Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

qstring.cpp

Go to the documentation of this file.
00001 /****************************************************************************
00002 ** $Id: qstring.cpp,v 1.2 2003/07/10 02:40:12 llornkcor Exp $
00003 **
00004 ** Implementation of the QString class and related Unicode functions
00005 **
00006 ** Created : 920722
00007 **
00008 ** Copyright (C) 1992-2002 Trolltech AS.  All rights reserved.
00009 **
00010 ** This file is part of the tools module of the Qt GUI Toolkit.
00011 **
00012 ** This file may be distributed under the terms of the Q Public License
00013 ** as defined by Trolltech AS of Norway and appearing in the file
00014 ** LICENSE.QPL included in the packaging of this file.
00015 **
00016 ** This file may be distributed and/or modified under the terms of the
00017 ** GNU General Public License version 2 as published by the Free Software
00018 ** Foundation and appearing in the file LICENSE.GPL included in the
00019 ** packaging of this file.
00020 **
00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
00022 ** licenses may use this file in accordance with the Qt Commercial License
00023 ** Agreement provided with the Software.
00024 **
00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00027 **
00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
00029 **   information about Qt Commercial License Agreements.
00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
00032 **
00033 ** Contact info@trolltech.com if any conditions of this licensing are
00034 ** not clear to you.
00035 **
00036 **********************************************************************/
00037 
00038 // Don't define it while compiling this module, or USERS of Qt will
00039 // not be able to link.
00040 #ifdef QT_NO_CAST_ASCII
00041 #undef QT_NO_CAST_ASCII
00042 #endif
00043 
00044 #include "qstring.h"
00045 #include "qregexp.h"
00046 #include "qdatastream.h"
00047 #ifndef QT_NO_TEXTCODEC
00048 #include "qtextcodec.h"
00049 #endif
00050 #include <limits.h>
00051 #include <stdarg.h>
00052 #include <stdio.h>
00053 #include <stdlib.h>
00054 #include <string.h>
00055 #if defined(Q_WS_WIN)
00056 #include "qt_windows.h"
00057 #endif
00058 #if !defined( QT_NO_COMPONENT ) && !defined( QT_LITE_COMPONENT )
00059 #include "qcleanuphandler.h"
00060 #endif
00061 
00062 #ifdef QT_NO_UNICODETABLES
00063 # include <ctype.h>
00064 #endif
00065 
00066 
00067 /* -------------------------------------------------------------------------
00068  * unicode information
00069  * these tables are generated from the unicode reference file
00070  * ftp://ftp.unicode.org/Public/3.2-Update/UnicodeData.txt
00071  *
00072  * Lars
00073  * -------------------------------------------------------------------------
00074  */
00075 
00076 /* Perl script to generate (run perl -x tools/qstring.cpp)
00077 
00078 #!perl
00079 
00080 sub numberize
00081 {
00082     my(%r, $n, $id);
00083     for $id ( @_ ) {
00084       $i = $id;
00085         $i="" if $i eq "EMPTY";
00086         $r{$i}=$n++;
00087     }
00088     return %r;
00089 }
00090 
00091 
00092 sub readUnicodeDataLine {
00093     $code = shift @_;
00094     for $n (qw{
00095             name category combining_class bidi_category
00096             character_decomposition decimal_digit_value digit_value
00097             numeric_value mirrored oldname comment
00098             uppercase lowercase titlecase})
00099     {
00100         $id = shift @_;
00101         $codes = "${n}_code";
00102         if ( defined %$codes && defined $$codes{$id} ) {
00103             $id = $$codes{$id};
00104         }
00105         ${$n}{$code}=$id;
00106     }
00107     $decomp = $character_decomposition{$code};
00108     if ( length $decomp == 0 ) {
00109         $decomp = "<single>";
00110     }
00111     if (substr($decomp, 0, 1) ne '<') {
00112         $decomp = "<canonical> " . $decomp;
00113     }
00114     @_ = split(" ", $decomp);
00115     $tag = shift @_;
00116     $tag = $character_decomposition_tag{$tag};
00117     $decomp = join( ", 0x", @_ );
00118     $decomp = "0x".$decomp;
00119     $decomposition{$code} = $decomp;
00120     $decomposition_tag{$code} = $tag;
00121     $decomposition_pos{$code} = $position;
00122     $len = scalar(@_);
00123     $decomposition_len{$code} = $len;
00124 
00125 #   we use canonical decompositions longer than 1 char
00126 #   we exlude Arabic ligatures from the table
00127     if($len > 1 and $tag == 1) {
00128 #      ligature to add...
00129         $start = shift @_;
00130         $ligature{$start} = $ligature{$start}." ".$code;
00131     }
00132 
00133 #   adjust position
00134     if($len != 0) {
00135         $position += $len + 3;
00136     }
00137 }
00138 
00139 
00140 # Code to integer mappings...
00141 #
00142 %category_code = numberize(qw{
00143       EMPTY
00144       Mn Mc Me
00145       Nd Nl No
00146       Zs Zl Zp
00147       Cc Cf Cs Co Cn
00148 
00149       Lu Ll Lt Lm Lo
00150       Pc Pd Ps Pe Pi Pf Po
00151       Sm Sc Sk So
00152 });
00153 %bidi_category_code = numberize(qw{
00154       L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN});
00155 %character_decomposition_tag = numberize(qw{
00156       <single> <canonical> <font> <noBreak> <initial> <medial>
00157       <final> <isolated> <circle> <super> <sub> <vertical>
00158       <wide> <narrow> <small> <square> <compat> <fraction>
00159 });
00160 %mirrored_code = numberize(qw{N Y});
00161 
00162 %joining_code = numberize(qw{U D R C});
00163 
00164 # Read data into hashes...
00165 #
00166 open IN, "UnicodeData.txt";
00167 $position = 1;
00168 while (<IN>) {
00169     @fields = split /;/;
00170     if ( length($fields[0]) < 5 ) {
00171       if ( $fields[1] =~ /, First>/ ) {
00172         $codeRangeBegin = $fields[0];
00173       } elsif ( $fields[1] =~ /, Last>/ ) {
00174         for ( $i=hex($codeRangeBegin); $i<=hex($fields[0]); $i+=1 ) {
00175           @fields2 = @fields;
00176           $fields2[0] = sprintf "%lX", $i;
00177           readUnicodeDataLine @fields2;
00178         }
00179       } else {
00180         readUnicodeDataLine @fields;
00181       }
00182     }
00183 }
00184 
00185 open IN2, "ArabicShaping.txt";
00186 $position = 1;
00187 while (<IN2>) {
00188     @fields = split /;/;
00189     $code = shift @fields;
00190     $dummy = shift @fields;
00191     $join = shift @fields;
00192     $join =~ s/ //g;
00193     $join = $joining_code{$join};
00194     $joining{$code}=$join;
00195 }
00196 
00197 # Build pages...
00198 #
00199 $rowtable_txt =
00200     "static const Q_UINT8 * const unicode_info[256] = {";
00201 for $row ( 0..255 ) {
00202     $nonzero=0;
00203     $txt = "";
00204     for $cell ( 0..255 ) {
00205         $code = sprintf("%02X%02X",$row,$cell);
00206         $info = $category{$code};
00207         $info = 0 if !defined $info;
00208         $txt .= "\n    " if $cell%8 == 0;
00209         $txt .= "$info, ";
00210     }
00211     $therow = $row{$txt};
00212     if ( !defined $therow ) {
00213         $size+=256;
00214         $therow = "ui_".sprintf("%02X",$row);
00215         $rowtext{$therow} =
00216             "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
00217         $row{$txt}=$therow;
00218     }
00219     $rowtable_txt .= "\n    " if $row%8 == 0;
00220     $rowtable_txt .= "$therow, ";
00221 }
00222 
00223 print "// START OF GENERATED DATA\n\n";
00224 print "#ifndef QT_NO_UNICODETABLES\n\n";
00225 
00226 # Print pages...
00227 #
00228 for $r ( sort keys %rowtext ) {
00229     print $rowtext{$r};
00230 }
00231 print "$rowtable_txt\n};\n";
00232 $size += 256*4;
00233 print "// $size bytes\n\n";
00234 
00235 # Build decomposition tables
00236 #
00237 $rowtable_txt =
00238     "static const Q_UINT16 * const decomposition_info[256] = {";
00239 $table_txt =
00240     "static const Q_UINT16 decomposition_map[] = {\n    0,\n";
00241 for $row ( 0..255 ) {
00242     $nonzero=0;
00243     $txt = "";
00244     for $cell ( 0..255 ) {
00245         $code = sprintf("%02X%02X",$row,$cell);
00246         $txt .= "\n   " if $cell%8 == 0;
00247         if( $decomposition_tag{$code} != 0 ) {
00248             $txt .= " $decomposition_pos{$code},";
00249             $table_txt .= "    $decomposition_tag{$code},";
00250             $table_txt .= " 0x$code,";
00251             $table_txt .= " $decomposition{$code}, 0,\n";
00252             $size += 2 * $decomposition_len{$code} + 6;
00253         } else {
00254             $txt .= " 0,";
00255         }
00256     }
00257     $therow = $row{$txt};
00258     if ( !defined $therow ) {
00259         $size+=512;
00260         $therow = "di_".sprintf("%02X",$row);
00261         $dec_rowtext{$therow} =
00262             "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
00263         $row{$txt}=$therow;
00264     }
00265     $rowtable_txt .= "\n    " if $row%8 == 0;
00266     $rowtable_txt .= "$therow, ";
00267 }
00268 
00269 # Print decomposition tables
00270 #
00271 print "$table_txt\n};\n\n";
00272 for $r ( sort keys %dec_rowtext ) {
00273     print $dec_rowtext{$r};
00274 }
00275 print "$rowtable_txt\n};\n";
00276 $size += 256*4;
00277 print "// $size bytes\n\n";
00278 
00279 
00280 # build ligature tables
00281 #
00282 $size = 0;
00283 $position = 1;
00284 $rowtable_txt =
00285     "static const Q_UINT16 * const ligature_info[256] = {";
00286 $table_txt =
00287     "static const Q_UINT16 ligature_map[] = {\n    0,\n";
00288 for $lig_row ( 0..255 ) {
00289     $nonzero=0;
00290     $txt = "";
00291     for $cell ( 0..255 ) {
00292         $code = sprintf("%02X%02X",$lig_row,$cell);
00293         $txt .= "\n   " if $cell%8 == 0;
00294         if( defined $ligature{$code} ) {
00295             $txt .= " $position,";
00296             @ligature = split(" ", $ligature{$code});
00297 #           we need to sort ligatures according to their length.
00298 #           long ones have to come first!
00299             @ligature_sort = sort { $decomposition_len{$b} <=>  $decomposition_len{$a} } @ligature;
00300 #           now replace each code by its position in
00301 #           the decomposition map.
00302             undef(@lig_pos);
00303             for $n (@ligature_sort) {
00304                 push(@lig_pos, $decomposition_pos{$n});
00305             }
00306 #           debug info
00307             if( 0 ) {
00308                 print "ligatures: $ligature{$code}\n";
00309                 $sort = join(" ", @ligature_sort);
00310                 print "sorted   : $sort\n";
00311             }
00312             $lig = join(", ", @lig_pos);
00313             $table_txt .= "    $lig, 0,\n";
00314             $size += 2 * scalar(@ligature) + 2;
00315             $position += scalar(@ligature) + 1;
00316         } else {
00317             $txt .= " 0,";
00318         }
00319     }
00320     $therow = $lig_row{$txt};
00321     if ( !defined $therow ) {
00322         $size+=512;
00323         $therow = "li_".sprintf("%02X",$lig_row);
00324         $lig_rowtext{$therow} =
00325             "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
00326         $lig_row{$txt}=$therow;
00327     }
00328     $rowtable_txt .= "\n    " if $lig_row%8 == 0;
00329     $rowtable_txt .= "$therow, ";
00330 }
00331 
00332 # Print ligature tables
00333 #
00334 print "$table_txt\n};\n\n";
00335 for $r ( sort keys %lig_rowtext ) {
00336     print $lig_rowtext{$r};
00337 }
00338 print "$rowtable_txt\n};\n";
00339 $size += 256*4;
00340 print "// $size bytes\n\n";
00341 
00342 
00343 
00344 # Build direction/joining/mirrored pages...
00345 #
00346 $rowtable_txt =
00347     "static const Q_UINT8 * const direction_info[256] = {";
00348 for $dir_row ( 0..255 ) {
00349     $nonzero=0;
00350     $txt = "";
00351     for $cell ( 0..255 ) {
00352         $code = sprintf("%02X%02X",$dir_row,$cell);
00353         $dir = $bidi_category{$code};
00354         $dir = 0 if !defined $dir;
00355         $join = $joining{$code};
00356         $join = 0 if !defined $join;
00357         $mirr = $mirrored{$code};
00358         $mirr = 0 if !defined $mirr;
00359         $info = $dir + 32*$join + 128*$mirr;
00360         $txt .= "\n    " if $cell%8 == 0;
00361         $txt .= "$info, ";
00362     }
00363     $therow = $dir_row{$txt};
00364     if ( !defined $therow ) {
00365         $size+=256;
00366         $therow = "dir_".sprintf("%02X",$dir_row);
00367         $dir_rowtext{$therow} =
00368             "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
00369         $dir_row{$txt}=$therow;
00370     }
00371     $rowtable_txt .= "\n    " if $dir_row%8 == 0;
00372     $rowtable_txt .= "$therow, ";
00373 }
00374 
00375 # Print pages...
00376 #
00377 for $r ( sort keys %dir_rowtext ) {
00378     print $dir_rowtext{$r};
00379 }
00380 print "$rowtable_txt\n};\n";
00381 $size += 256*4;
00382 print "// $size bytes\n\n";
00383 
00384 # Build table of combining classes
00385 #
00386 $rowtable_txt =
00387     "static const Q_UINT8 * const combining_info[256] = {";
00388 for $combining_row ( 0..255 ) {
00389     $nonzero=0;
00390     $txt = "";
00391     for $cell ( 0..255 ) {
00392         $code = sprintf("%02X%02X",$combining_row,$cell);
00393         $info = $combining_class{$code};
00394         $info = 0 if !defined $info;
00395         $txt .= "\n    " if $cell%8 == 0;
00396         $txt .= "$info, ";
00397     }
00398     $therow = $combining_row{$txt};
00399     if ( !defined $therow ) {
00400         $size+=256;
00401         $therow = "cmb_".sprintf("%02X",$combining_row);
00402         $combining_rowtext{$therow} =
00403             "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
00404         $combining_row{$txt}=$therow;
00405     }
00406     $rowtable_txt .= "\n    " if $combining_row%8 == 0;
00407     $rowtable_txt .= "$therow, ";
00408 }
00409 
00410 # Print pages...
00411 #
00412 for $r ( sort keys %combining_rowtext ) {
00413     print $combining_rowtext{$r};
00414 }
00415 print "$rowtable_txt\n};\n";
00416 $size += 256*4;
00417 print "// $size bytes\n\n";
00418 
00419 # Build case info
00420 #
00421 $rowtable_txt =
00422     "static const Q_UINT16 * const case_info[256] = {";
00423 for $row ( 0..255 ) {
00424     $nonzero=0;
00425     $txt = "";
00426     for $cell ( 0..255 ) {
00427         $code = sprintf("%02X%02X",$row,$cell);
00428         $info = $uppercase{$code};
00429         if ( length( $info ) eq 0 ) {
00430           $info = $lowercase{$code};
00431         }
00432         $info =~ s/^0+//;
00433         if ( length( $info ) eq 0 ) {
00434           $info = "0";
00435         } else {
00436           $info = "0x".lc($info);
00437         }
00438         if ( length( $info ) ne 1 ) {
00439           $nonzero = 1;
00440         }
00441         $txt .= "\n    " if $cell%8 == 0;
00442         $txt .= "$info, ";
00443     }
00444     $therow = $case_row{$txt};
00445     if ( !defined $therow && $nonzero ne 0 ) {
00446         $size+=512;
00447         $therow = "case_".sprintf("%02X",$row);
00448         $case_rowtext{$therow} =
00449             "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
00450         $case_row{$txt}=$therow;
00451     }
00452     $rowtable_txt .= "\n    " if $row%8 == 0;
00453     if ( $nonzero ne 0 ) {
00454       $rowtable_txt .= "$therow, ";
00455     } else {
00456       $rowtable_txt .= "0, ";
00457     }
00458 }
00459 
00460 # Print pages...
00461 #
00462 for $r ( sort keys %case_rowtext ) {
00463     print $case_rowtext{$r};
00464 }
00465 print "$rowtable_txt\n};\n";
00466 $size += 256*4;
00467 print "// $size bytes\n\n";
00468 
00469 # Build decimal info
00470 #
00471 $rowtable_txt =
00472     "static const Q_INT8 * const decimal_info[256] = {";
00473 for $row ( 0..255 ) {
00474     $nonzero=0;
00475     $txt = "";
00476     for $cell ( 0..255 ) {
00477         $code = sprintf("%02X%02X",$row,$cell);
00478         $info = $digit_value{$code};
00479         if ( length( $info ) eq 0 ) {
00480           $info = -1;
00481         } else {
00482           $nonzero = 1;
00483         }
00484         $txt .= "\n    " if $cell%8 == 0;
00485         $txt .= "$info, ";
00486     }
00487     $therow = $decimal_row{$txt};
00488     if ( !defined $therow && $nonzero ne 0 ) {
00489         $size+=512;
00490         $therow = "num_".sprintf("%02X",$row);
00491         $decimal_rowtext{$therow} =
00492             "static const Q_INT8 ${therow}[] = {$txt\n};\n\n";
00493         $decimal_row{$txt}=$therow;
00494     }
00495     $rowtable_txt .= "\n    " if $row%8 == 0;
00496     if ( $nonzero ne 0 ) {
00497       $rowtable_txt .= "$therow, ";
00498     } else {
00499       $rowtable_txt .= "0, ";
00500     }
00501 }
00502 
00503 # Print pages...
00504 #
00505 for $r ( sort keys %decimal_rowtext ) {
00506     print $decimal_rowtext{$r};
00507 }
00508 print "$rowtable_txt\n};\n";
00509 $size += 256*4;
00510 print "// $size bytes\n\n";
00511 
00512 
00513 
00514 print "#endif\n\n";
00515 print "// END OF GENERATED DATA\n\n";
00516 
00517 
00518 
00519 __END__
00520 
00521 */
00522 
00523 // START OF GENERATED DATA
00524 
00525 static const Q_UINT8 ui_00[] = {
00526     10, 10, 10, 10, 10, 10, 10, 10,
00527     10, 10, 10, 10, 10, 10, 10, 10,
00528     10, 10, 10, 10, 10, 10, 10, 10,
00529     10, 10, 10, 10, 10, 10, 10, 10,
00530     7, 26, 26, 26, 28, 26, 26, 26,
00531     22, 23, 26, 27, 26, 21, 26, 26,
00532     4, 4, 4, 4, 4, 4, 4, 4,
00533     4, 4, 26, 26, 27, 27, 27, 26,
00534     26, 15, 15, 15, 15, 15, 15, 15,
00535     15, 15, 15, 15, 15, 15, 15, 15,
00536     15, 15, 15, 15, 15, 15, 15, 15,
00537     15, 15, 15, 22, 26, 23, 29, 20,
00538     29, 16, 16, 16, 16, 16, 16, 16,
00539     16, 16, 16, 16, 16, 16, 16, 16,
00540     16, 16, 16, 16, 16, 16, 16, 16,
00541     16, 16, 16, 22, 27, 23, 27, 10,
00542     10, 10, 10, 10, 10, 10, 10, 10,
00543     10, 10, 10, 10, 10, 10, 10, 10,
00544     10, 10, 10, 10, 10, 10, 10, 10,
00545     10, 10, 10, 10, 10, 10, 10, 10,
00546     7, 26, 28, 28, 28, 28, 30, 30,
00547     29, 30, 16, 24, 27, 21, 30, 29,
00548     30, 27, 6, 6, 29, 16, 30, 26,
00549     29, 6, 16, 25, 6, 6, 6, 26,
00550     15, 15, 15, 15, 15, 15, 15, 15,
00551     15, 15, 15, 15, 15, 15, 15, 15,
00552     15, 15, 15, 15, 15, 15, 15, 27,
00553     15, 15, 15, 15, 15, 15, 15, 16,
00554     16, 16, 16, 16, 16, 16, 16, 16,
00555     16, 16, 16, 16, 16, 16, 16, 16,
00556     16, 16, 16, 16, 16, 16, 16, 27,
00557     16, 16, 16, 16, 16, 16, 16, 16,
00558 };
00559 
00560 #ifndef QT_NO_UNICODETABLES
00561 
00562 static const Q_UINT8 ui_01[] = {
00563     15, 16, 15, 16, 15, 16, 15, 16,
00564     15, 16, 15, 16, 15, 16, 15, 16,
00565     15, 16, 15, 16, 15, 16, 15, 16,
00566     15, 16, 15, 16, 15, 16, 15, 16,
00567     15, 16, 15, 16, 15, 16, 15, 16,
00568     15, 16, 15, 16, 15, 16, 15, 16,
00569     15, 16, 15, 16, 15, 16, 15, 16,
00570     16, 15, 16, 15, 16, 15, 16, 15,
00571     16, 15, 16, 15, 16, 15, 16, 15,
00572     16, 16, 15, 16, 15, 16, 15, 16,
00573     15, 16, 15, 16, 15, 16, 15, 16,
00574     15, 16, 15, 16, 15, 16, 15, 16,
00575     15, 16, 15, 16, 15, 16, 15, 16,
00576     15, 16, 15, 16, 15, 16, 15, 16,
00577     15, 16, 15, 16, 15, 16, 15, 16,
00578     15, 15, 16, 15, 16, 15, 16, 16,
00579     16, 15, 15, 16, 15, 16, 15, 15,
00580     16, 15, 15, 15, 16, 16, 15, 15,
00581     15, 15, 16, 15, 15, 16, 15, 15,
00582     15, 16, 16, 16, 15, 15, 16, 15,
00583     15, 16, 15, 16, 15, 16, 15, 15,
00584     16, 15, 16, 16, 15, 16, 15, 15,
00585     16, 15, 15, 15, 16, 15, 16, 15,
00586     15, 16, 16, 19, 15, 16, 16, 16,
00587     19, 19, 19, 19, 15, 17, 16, 15,
00588     17, 16, 15, 17, 16, 15, 16, 15,
00589     16, 15, 16, 15, 16, 15, 16, 15,
00590     16, 15, 16, 15, 16, 16, 15, 16,
00591     15, 16, 15, 16, 15, 16, 15, 16,
00592     15, 16, 15, 16, 15, 16, 15, 16,
00593     16, 15, 17, 16, 15, 16, 15, 15,
00594     15, 16, 15, 16, 15, 16, 15, 16,
00595 };
00596 
00597 static const Q_UINT8 ui_02[] = {
00598     15, 16, 15, 16, 15, 16, 15, 16,
00599     15, 16, 15, 16, 15, 16, 15, 16,
00600     15, 16, 15, 16, 15, 16, 15, 16,
00601     15, 16, 15, 16, 15, 16, 15, 16,
00602     15, 0, 15, 16, 15, 16, 15, 16,
00603     15, 16, 15, 16, 15, 16, 15, 16,
00604     15, 16, 15, 16, 0, 0, 0, 0,
00605     0, 0, 0, 0, 0, 0, 0, 0,
00606     0, 0, 0, 0, 0, 0, 0, 0,
00607     0, 0, 0, 0, 0, 0, 0, 0,
00608     16, 16, 16, 16, 16, 16, 16, 16,
00609     16, 16, 16, 16, 16, 16, 16, 16,
00610     16, 16, 16, 16, 16, 16, 16, 16,
00611     16, 16, 16, 16, 16, 16, 16, 16,
00612     16, 16, 16, 16, 16, 16, 16, 16,
00613     16, 16, 16, 16, 16, 16, 16, 16,
00614     16, 16, 16, 16, 16, 16, 16, 16,
00615     16, 16, 16, 16, 16, 16, 16, 16,
00616     16, 16, 16, 16, 16, 16, 16, 16,
00617     16, 16, 16, 16, 16, 16, 16, 16,
00618     16, 16, 16, 16, 16, 16, 16, 16,
00619     16, 16, 16, 16, 16, 16, 0, 0,
00620     18, 18, 18, 18, 18, 18, 18, 18,
00621     18, 29, 29, 18, 18, 18, 18, 18,
00622     18, 18, 29, 29, 29, 29, 29, 29,
00623     29, 29, 29, 29, 29, 29, 29, 29,
00624     18, 18, 29, 29, 29, 29, 29, 29,
00625     29, 29, 29, 29, 29, 29, 29, 29,
00626     18, 18, 18, 18, 18, 29, 29, 29,
00627     29, 29, 29, 29, 29, 29, 18, 0,
00628     0, 0, 0, 0, 0, 0, 0, 0,
00629     0, 0, 0, 0, 0, 0, 0, 0,
00630 };
00631 
00632 static const Q_UINT8 ui_03[] = {
00633     1, 1, 1, 1, 1, 1, 1, 1,
00634     1, 1, 1, 1, 1, 1, 1, 1,
00635     1, 1, 1, 1, 1, 1, 1, 1,
00636     1, 1, 1, 1, 1, 1, 1, 1,
00637     1, 1, 1, 1, 1, 1, 1, 1,
00638     1, 1, 1, 1, 1, 1, 1, 1,
00639     1, 1, 1, 1, 1, 1, 1, 1,
00640     1, 1, 1, 1, 1, 1, 1, 1,
00641     1, 1, 1, 1, 1, 1, 1, 1,
00642     1, 1, 1, 1, 1, 1, 1, 1,
00643     0, 0, 0, 0, 0, 0, 0, 0,
00644     0, 0, 0, 0, 0, 0, 0, 0,
00645     1, 1, 1, 1, 1, 1, 1, 1,
00646     1, 1, 1, 1, 1, 1, 1, 1,
00647     0, 0, 0, 0, 29, 29, 0, 0,
00648     0, 0, 18, 0, 0, 0, 26, 0,
00649     0, 0, 0, 0, 29, 29, 15, 26,
00650     15, 15, 15, 0, 15, 0, 15, 15,
00651     16, 15, 15, 15, 15, 15, 15, 15,
00652     15, 15, 15, 15, 15, 15, 15, 15,
00653     15, 15, 0, 15, 15, 15, 15, 15,
00654     15, 15, 15, 15, 16, 16, 16, 16,
00655     16, 16, 16, 16, 16, 16, 16, 16,
00656     16, 16, 16, 16, 16, 16, 16, 16,
00657     16, 16, 16, 16, 16, 16, 16, 16,
00658     16, 16, 16, 16, 16, 16, 16, 0,
00659     16, 16, 15, 15, 15, 16, 16, 16,
00660     15, 16, 15, 16, 15, 16, 15, 16,
00661     15, 16, 15, 16, 15, 16, 15, 16,
00662     15, 16, 15, 16, 15, 16, 15, 16,
00663     16, 16, 16, 16, 15, 16, 27, 0,
00664     0, 0, 0, 0, 0, 0, 0, 0,
00665 };
00666 
00667 static const Q_UINT8 ui_04[] = {
00668     15, 15, 15, 15, 15, 15, 15, 15,
00669     15, 15, 15, 15, 15, 15, 15, 15,
00670     15, 15, 15, 15, 15, 15, 15, 15,
00671     15, 15, 15, 15, 15, 15, 15, 15,
00672     15, 15, 15, 15, 15, 15, 15, 15,
00673     15, 15, 15, 15, 15, 15, 15, 15,
00674     16, 16, 16, 16, 16, 16, 16, 16,
00675     16, 16, 16, 16, 16, 16, 16, 16,
00676     16, 16, 16, 16, 16, 16, 16, 16,
00677     16, 16, 16, 16, 16, 16, 16, 16,
00678     16, 16, 16, 16, 16, 16, 16, 16,
00679     16, 16, 16, 16, 16, 16, 16, 16,
00680     15, 16, 15, 16, 15, 16, 15, 16,
00681     15, 16, 15, 16, 15, 16, 15, 16,
00682     15, 16, 15, 16, 15, 16, 15, 16,
00683     15, 16, 15, 16, 15, 16, 15, 16,
00684     15, 16, 30, 1, 1, 1, 1, 0,
00685     3, 3, 15, 16, 15, 16, 15, 16,
00686     15, 16, 15, 16, 15, 16, 15, 16,
00687     15, 16, 15, 16, 15, 16, 15, 16,
00688     15, 16, 15, 16, 15, 16, 15, 16,
00689     15, 16, 15, 16, 15, 16, 15, 16,
00690     15, 16, 15, 16, 15, 16, 15, 16,
00691     15, 16, 15, 16, 15, 16, 15, 16,
00692     15, 15, 16, 15, 16, 15, 16, 15,
00693     16, 15, 16, 15, 16, 15, 16, 0,
00694     15, 16, 15, 16, 15, 16, 15, 16,
00695     15, 16, 15, 16, 15, 16, 15, 16,
00696     15, 16, 15, 16, 15, 16, 15, 16,
00697     15, 16, 15, 16, 15, 16, 15, 16,
00698     15, 16, 15, 16, 15, 16, 0, 0,
00699     15, 16, 0, 0, 0, 0, 0, 0,
00700 };
00701 
00702 static const Q_UINT8 ui_05[] = {
00703     15, 16, 15, 16, 15, 16, 15, 16,
00704     15, 16, 15, 16, 15, 16, 15, 16,
00705     0, 0, 0, 0, 0, 0, 0, 0,
00706     0, 0, 0, 0, 0, 0, 0, 0,
00707     0, 0, 0, 0, 0, 0, 0, 0,
00708     0, 0, 0, 0, 0, 0, 0, 0,
00709     0, 15, 15, 15, 15, 15, 15, 15,
00710     15, 15, 15, 15, 15, 15, 15, 15,
00711     15, 15, 15, 15, 15, 15, 15, 15,
00712     15, 15, 15, 15, 15, 15, 15, 15,
00713     15, 15, 15, 15, 15, 15, 15, 0,
00714     0, 18, 26, 26, 26, 26, 26, 26,
00715     0, 16, 16, 16, 16, 16, 16, 16,
00716     16, 16, 16, 16, 16, 16, 16, 16,
00717     16, 16, 16, 16, 16, 16, 16, 16,
00718     16, 16, 16, 16, 16, 16, 16, 16,
00719     16, 16, 16, 16, 16, 16, 16, 16,
00720     0, 26, 21, 0, 0, 0, 0, 0,
00721     0, 1, 1, 1, 1, 1, 1, 1,
00722     1, 1, 1, 1, 1, 1, 1, 1,
00723     1, 1, 0, 1, 1, 1, 1, 1,
00724     1, 1, 1, 1, 1, 1, 1, 1,
00725     1, 1, 1, 1, 1, 1, 1, 1,
00726     1, 1, 0, 1, 1, 1, 26, 1,
00727     26, 1, 1, 26, 1, 0, 0, 0,
00728     0, 0, 0, 0, 0, 0, 0, 0,
00729     19, 19, 19, 19, 19, 19, 19, 19,
00730     19, 19, 19, 19, 19, 19, 19, 19,
00731     19, 19, 19, 19, 19, 19, 19, 19,
00732     19, 19, 19, 0, 0, 0, 0, 0,
00733     19, 19, 19, 26, 26, 0, 0, 0,
00734     0, 0, 0, 0, 0, 0, 0, 0,
00735 };
00736 
00737 static const Q_UINT8 ui_06[] = {
00738     0, 0, 0, 0, 0, 0, 0, 0,
00739     0, 0, 0, 0, 26, 0, 0, 0,
00740     0, 0, 0, 0, 0, 0, 0, 0,
00741     0, 0, 0, 26, 0, 0, 0, 26,
00742     0, 19, 19, 19, 19, 19, 19, 19,
00743     19, 19, 19, 19, 19, 19, 19, 19,
00744     19, 19, 19, 19, 19, 19, 19, 19,
00745     19, 19, 19, 0, 0, 0, 0, 0,
00746     18, 19, 19, 19, 19, 19, 19, 19,
00747     19, 19, 19, 1, 1, 1, 1, 1,
00748     1, 1, 1, 1, 1, 1, 0, 0,
00749     0, 0, 0, 0, 0, 0, 0, 0,
00750     4, 4, 4, 4, 4, 4, 4, 4,
00751     4, 4, 26, 26, 26, 26, 19, 19,
00752     1, 19, 19, 19, 19, 19, 19, 19,
00753     19, 19, 19, 19, 19, 19, 19, 19,
00754     19, 19, 19, 19, 19, 19, 19, 19,
00755     19, 19, 19, 19, 19, 19, 19, 19,
00756     19, 19, 19, 19, 19, 19, 19, 19,
00757     19, 19, 19, 19, 19, 19, 19, 19,
00758     19, 19, 19, 19, 19, 19, 19, 19,
00759     19, 19, 19, 19, 19, 19, 19, 19,
00760     19, 19, 19, 19, 19, 19, 19, 19,
00761     19, 19, 19, 19, 19, 19, 19, 19,
00762     19, 19, 19, 19, 19, 19, 19, 19,
00763     19, 19, 19, 19, 19, 19, 19, 19,
00764     19, 19, 19, 19, 26, 19, 1, 1,
00765     1, 1, 1, 1, 1, 11, 3, 1,
00766     1, 1, 1, 1, 1, 18, 18, 1,
00767     1, 30, 1, 1, 1, 1, 0, 0,
00768     4, 4, 4, 4, 4, 4, 4, 4,
00769     4, 4, 19, 19, 19, 30, 30, 0,
00770 };
00771 
00772 static const Q_UINT8 ui_07[] = {
00773     26, 26, 26, 26, 26, 26, 26, 26,
00774     26, 26, 26, 26, 26, 26, 0, 11,
00775     19, 1, 19, 19, 19, 19, 19, 19,
00776     19, 19, 19, 19, 19, 19, 19, 19,
00777     19, 19, 19, 19, 19, 19, 19, 19,
00778     19, 19, 19, 19, 19, 0, 0, 0,
00779     1, 1, 1, 1, 1, 1, 1, 1,
00780     1, 1, 1, 1, 1, 1, 1, 1,
00781     1, 1, 1, 1, 1, 1, 1, 1,
00782     1, 1, 1, 0, 0, 0, 0, 0,
00783     0, 0, 0, 0, 0, 0, 0, 0,
00784     0, 0, 0, 0, 0, 0, 0, 0,
00785     0, 0, 0, 0, 0, 0, 0, 0,
00786     0, 0, 0, 0, 0, 0, 0, 0,
00787     0, 0, 0, 0, 0, 0, 0, 0,
00788     0, 0, 0, 0, 0, 0, 0, 0,
00789     19, 19, 19, 19, 19, 19, 19, 19,
00790     19, 19, 19, 19, 19, 19, 19, 19,
00791     19, 19, 19, 19, 19, 19, 19, 19,
00792     19, 19, 19, 19, 19, 19, 19, 19,
00793     19, 19, 19, 19, 19, 19, 1, 1,
00794     1, 1, 1, 1, 1, 1, 1, 1,
00795     1, 19, 0, 0, 0, 0, 0, 0,
00796     0, 0, 0, 0, 0, 0, 0, 0,
00797     0, 0, 0, 0, 0, 0, 0, 0,
00798     0, 0, 0, 0, 0, 0, 0, 0,
00799     0, 0, 0, 0, 0, 0, 0, 0,
00800     0, 0, 0, 0, 0, 0, 0, 0,
00801     0, 0, 0, 0, 0, 0, 0, 0,
00802     0, 0, 0, 0, 0, 0, 0, 0,
00803     0, 0, 0, 0, 0, 0, 0, 0,
00804     0, 0, 0, 0, 0, 0, 0, 0,
00805 };
00806 
00807 static const Q_UINT8 ui_08[] = {
00808     0, 0, 0, 0, 0, 0, 0, 0,
00809     0, 0, 0, 0, 0, 0, 0, 0,
00810     0, 0, 0, 0, 0, 0, 0, 0,
00811     0, 0, 0, 0, 0, 0, 0, 0,
00812     0, 0, 0, 0, 0, 0, 0, 0,
00813     0, 0, 0, 0, 0, 0, 0, 0,
00814     0, 0, 0, 0, 0, 0, 0, 0,
00815     0, 0, 0, 0, 0, 0, 0, 0,
00816     0, 0, 0, 0, 0, 0, 0, 0,
00817     0, 0, 0, 0, 0, 0, 0, 0,
00818     0, 0, 0, 0, 0, 0, 0, 0,
00819     0, 0, 0, 0, 0, 0, 0, 0,
00820     0, 0, 0, 0, 0, 0, 0, 0,
00821     0, 0, 0, 0, 0, 0, 0, 0,
00822     0, 0, 0, 0, 0, 0, 0, 0,
00823     0, 0, 0, 0, 0, 0, 0, 0,
00824     0, 0, 0, 0, 0, 0, 0, 0,
00825     0, 0, 0, 0, 0, 0, 0, 0,
00826     0, 0, 0, 0, 0, 0, 0, 0,
00827     0, 0, 0, 0, 0, 0, 0, 0,
00828     0, 0, 0, 0, 0, 0, 0, 0,
00829     0, 0, 0, 0, 0, 0, 0, 0,
00830     0, 0, 0, 0, 0, 0, 0, 0,
00831     0, 0, 0, 0, 0, 0, 0, 0,
00832     0, 0, 0, 0, 0, 0, 0, 0,
00833     0, 0, 0, 0, 0, 0, 0, 0,
00834     0, 0, 0, 0, 0, 0, 0, 0,
00835     0, 0, 0, 0, 0, 0, 0, 0,
00836     0, 0, 0, 0, 0, 0, 0, 0,
00837     0, 0, 0, 0, 0, 0, 0, 0,
00838     0, 0, 0, 0, 0, 0, 0, 0,
00839     0, 0, 0, 0, 0, 0, 0, 0,
00840 };
00841 
00842 static const Q_UINT8 ui_09[] = {
00843     0, 1, 1, 2, 0, 19, 19, 19,
00844     19, 19, 19, 19, 19, 19, 19, 19,
00845     19, 19, 19, 19, 19, 19, 19, 19,
00846     19, 19, 19, 19, 19, 19, 19, 19,
00847     19, 19, 19, 19, 19, 19, 19, 19,
00848     19, 19, 19, 19, 19, 19, 19, 19,
00849     19, 19, 19, 19, 19, 19, 19, 19,
00850     19, 19, 0, 0, 1, 19, 2, 2,
00851     2, 1, 1, 1, 1, 1, 1, 1,
00852     1, 2, 2, 2, 2, 1, 0, 0,
00853     19, 1, 1, 1, 1, 0, 0, 0,
00854     19, 19, 19, 19, 19, 19, 19, 19,
00855     19, 19, 1, 1, 26, 26, 4, 4,
00856     4, 4, 4, 4, 4, 4, 4, 4,
00857     26, 0, 0, 0, 0, 0, 0, 0,
00858     0, 0, 0, 0, 0, 0, 0, 0,
00859     0, 1, 2, 2, 0, 19, 19, 19,
00860     19, 19, 19, 19, 19, 0, 0, 19,
00861     19, 0, 0, 19, 19, 19, 19, 19,
00862     19, 19, 19, 19, 19, 19, 19, 19,
00863     19, 19, 19, 19, 19, 19, 19, 19,
00864     19, 0, 19, 19, 19, 19, 19, 19,
00865     19, 0, 19, 0, 0, 0, 19, 19,
00866     19, 19, 0, 0, 1, 0, 2, 2,
00867     2, 1, 1, 1, 1, 0, 0, 2,
00868     2, 0, 0, 2, 2, 1, 0, 0,
00869     0, 0, 0, 0, 0, 0, 0, 2,
00870     0, 0, 0, 0, 19, 19, 0, 19,
00871     19, 19, 1, 1, 0, 0, 4, 4,
00872     4, 4, 4, 4, 4, 4, 4, 4,
00873     19, 19, 28, 28, 6, 6, 6, 6,
00874     6, 6, 30, 0, 0, 0, 0, 0,
00875 };
00876 
00877 static const Q_UINT8 ui_0A[] = {
00878     0, 0, 1, 0, 0, 19, 19, 19,
00879     19, 19, 19, 0, 0, 0, 0, 19,
00880     19, 0, 0, 19, 19, 19, 19, 19,
00881     19, 19, 19, 19, 19, 19, 19, 19,
00882     19, 19, 19, 19, 19, 19, 19, 19,
00883     19, 0, 19, 19, 19, 19, 19, 19,
00884     19, 0, 19, 19, 0, 19, 19, 0,
00885     19, 19, 0, 0, 1, 0, 2, 2,
00886     2, 1, 1, 0, 0, 0, 0, 1,
00887     1, 0, 0, 1, 1, 1, 0, 0,
00888     0, 0, 0, 0, 0, 0, 0, 0,
00889     0, 19, 19, 19, 19, 0, 19, 0,
00890     0, 0, 0, 0, 0, 0, 4, 4,
00891     4, 4, 4, 4, 4, 4, 4, 4,
00892     1, 1, 19, 19, 19, 0, 0, 0,
00893     0, 0, 0, 0, 0, 0, 0, 0,
00894     0, 1, 1, 2, 0, 19, 19, 19,
00895     19, 19, 19, 19, 0, 19, 0, 19,
00896     19, 19, 0, 19, 19, 19, 19, 19,
00897     19, 19, 19, 19, 19, 19, 19, 19,
00898     19, 19, 19, 19, 19, 19, 19, 19,
00899     19, 0, 19, 19, 19, 19, 19, 19,
00900     19, 0, 19, 19, 0, 19, 19, 19,
00901     19, 19, 0, 0, 1, 19, 2, 2,
00902     2, 1, 1, 1, 1, 1, 0, 1,
00903     1, 2, 0, 2, 2, 1, 0, 0,
00904     19, 0, 0, 0, 0, 0, 0, 0,
00905     0, 0, 0, 0, 0, 0, 0, 0,
00906     19, 0, 0, 0, 0, 0, 4, 4,
00907     4, 4, 4, 4, 4, 4, 4, 4,
00908     0, 0, 0, 0, 0, 0, 0, 0,
00909     0, 0, 0, 0, 0, 0, 0, 0,
00910 };
00911 
00912 static const Q_UINT8 ui_0B[] = {
00913     0, 1, 2, 2, 0, 19, 19, 19,
00914     19, 19, 19, 19, 19, 0, 0, 19,
00915     19, 0, 0, 19, 19, 19, 19, 19,
00916     19, 19, 19, 19, 19, 19, 19, 19,
00917     19, 19, 19, 19, 19, 19, 19, 19,
00918     19, 0, 19, 19, 19, 19, 19, 19,
00919     19, 0, 19, 19, 0, 0, 19, 19,
00920     19, 19, 0, 0, 1, 19, 2, 1,
00921     2, 1, 1, 1, 0, 0, 0, 2,
00922     2, 0, 0, 2, 2, 1, 0, 0,
00923     0, 0, 0, 0, 0, 0, 1, 2,
00924     0, 0, 0, 0, 19, 19, 0, 19,
00925     19, 19, 0, 0, 0, 0, 4, 4,
00926     4, 4, 4, 4, 4, 4, 4, 4,
00927     30, 0, 0, 0, 0, 0, 0, 0,
00928     0, 0, 0, 0, 0, 0, 0, 0,
00929     0, 0, 1, 19, 0, 19, 19, 19,
00930     19, 19, 19, 0, 0, 0, 19, 19,
00931     19, 0, 19, 19, 19, 19, 0, 0,
00932     0, 19, 19, 0, 19, 0, 19, 19,
00933     0, 0, 0, 19, 19, 0, 0, 0,
00934     19, 19, 19, 0, 0, 0, 19, 19,
00935     19, 19, 19, 19, 19, 19, 0, 19,
00936     19, 19, 0, 0, 0, 0, 2, 2,
00937     1, 2, 2, 0, 0, 0, 2, 2,
00938     2, 0, 2, 2, 2, 1, 0, 0,
00939     0, 0, 0, 0, 0, 0, 0, 2,
00940     0, 0, 0, 0, 0, 0, 0, 0,
00941     0, 0, 0, 0, 0, 0, 0, 4,
00942     4, 4, 4, 4, 4, 4, 4, 4,
00943     6, 6, 6, 0, 0, 0, 0, 0,
00944     0, 0, 0, 0, 0, 0, 0, 0,
00945 };
00946 
00947 static const Q_UINT8 ui_0C[] = {
00948     0, 2, 2, 2, 0, 19, 19, 19,
00949     19, 19, 19, 19, 19, 0, 19, 19,
00950     19, 0, 19, 19, 19, 19, 19, 19,
00951     19, 19, 19, 19, 19, 19, 19, 19,
00952     19, 19, 19, 19, 19, 19, 19, 19,
00953     19, 0, 19, 19, 19, 19, 19, 19,
00954     19, 19, 19, 19, 0, 19, 19, 19,
00955     19, 19, 0, 0, 0, 0, 1, 1,
00956     1, 2, 2, 2, 2, 0, 1, 1,
00957     1, 0, 1, 1, 1, 1, 0, 0,
00958     0, 0, 0, 0, 0, 1, 1, 0,
00959     0, 0, 0, 0, 0, 0, 0, 0,
00960     19, 19, 0, 0, 0, 0, 4, 4,
00961     4, 4, 4, 4, 4, 4, 4, 4,
00962     0, 0, 0, 0, 0, 0, 0, 0,
00963     0, 0, 0, 0, 0, 0, 0, 0,
00964     0, 0, 2, 2, 0, 19, 19, 19,
00965     19, 19, 19, 19, 19, 0, 19, 19,
00966     19, 0, 19, 19, 19, 19, 19, 19,
00967     19, 19, 19, 19, 19, 19, 19, 19,
00968     19, 19, 19, 19, 19, 19, 19, 19,
00969     19, 0, 19, 19, 19, 19, 19, 19,
00970     19, 19, 19, 19, 0, 19, 19, 19,
00971     19, 19, 0, 0, 0, 0, 2, 1,
00972     2, 2, 2, 2, 2, 0, 1, 2,
00973     2, 0, 2, 2, 1, 1, 0, 0,
00974     0, 0, 0, 0, 0, 2, 2, 0,
00975     0, 0, 0, 0, 0, 0, 19, 0,
00976     19, 19, 0, 0, 0, 0, 4, 4,
00977     4, 4, 4, 4, 4, 4, 4, 4,
00978     0, 0, 0, 0, 0, 0, 0, 0,
00979     0, 0, 0, 0, 0, 0, 0, 0,
00980 };
00981 
00982 static const Q_UINT8 ui_0D[] = {
00983     0, 0, 2, 2, 0, 19, 19, 19,
00984     19, 19, 19, 19, 19, 0, 19, 19,
00985     19, 0, 19, 19, 19, 19, 19, 19,
00986     19, 19, 19, 19, 19, 19, 19, 19,
00987     19, 19, 19, 19, 19, 19, 19, 19,
00988     19, 0, 19, 19, 19, 19, 19, 19,
00989     19, 19, 19, 19, 19, 19, 19, 19,
00990     19, 19, 0, 0, 0, 0, 2, 2,
00991     2, 1, 1, 1, 0, 0, 2, 2,
00992     2, 0, 2, 2, 2, 1, 0, 0,
00993     0, 0, 0, 0, 0, 0, 0, 2,
00994     0, 0, 0, 0, 0, 0, 0, 0,
00995     19, 19, 0, 0, 0, 0, 4, 4,
00996     4, 4, 4, 4, 4, 4, 4, 4,
00997     0, 0, 0, 0, 0, 0, 0, 0,
00998     0, 0, 0, 0, 0, 0, 0, 0,
00999     0, 0, 2, 2, 0, 19, 19, 19,
01000     19, 19, 19, 19, 19, 19, 19, 19,
01001     19, 19, 19, 19, 19, 19, 19, 0,
01002     0, 0, 19, 19, 19, 19, 19, 19,
01003     19, 19, 19, 19, 19, 19, 19, 19,
01004     19, 19, 19, 19, 19, 19, 19, 19,
01005     19, 19, 0, 19, 19, 19, 19, 19,
01006     19, 19, 19, 19, 0, 19, 0, 0,
01007     19, 19, 19, 19, 19, 19, 19, 0,
01008     0, 0, 1, 0, 0, 0, 0, 2,
01009     2, 2, 1, 1, 1, 0, 1, 0,
01010     2, 2, 2, 2, 2, 2, 2, 2,
01011     0, 0, 0, 0, 0, 0, 0, 0,
01012     0, 0, 0, 0, 0, 0, 0, 0,
01013     0, 0, 2, 2, 26, 0, 0, 0,
01014     0, 0, 0, 0, 0, 0, 0, 0,
01015 };
01016 
01017 static const Q_UINT8 ui_0E[] = {
01018     0, 19, 19, 19, 19, 19, 19, 19,
01019     19, 19, 19, 19, 19, 19, 19, 19,
01020     19, 19, 19, 19, 19, 19, 19, 19,
01021     19, 19, 19, 19, 19, 19, 19, 19,
01022     19, 19, 19, 19, 19, 19, 19, 19,
01023     19, 19, 19, 19, 19, 19, 19, 19,
01024     19, 1, 19, 19, 1, 1, 1, 1,
01025     1, 1, 1, 0, 0, 0, 0, 28,
01026     19, 19, 19, 19, 19, 19, 18, 1,
01027     1, 1, 1, 1, 1, 1, 1, 26,
01028     4, 4, 4, 4, 4, 4, 4, 4,
01029     4, 4, 26, 26, 0, 0, 0, 0,
01030     0, 0, 0, 0, 0, 0, 0, 0,
01031     0, 0, 0, 0, 0, 0, 0, 0,
01032     0, 0, 0, 0, 0, 0, 0, 0,
01033     0, 0, 0, 0, 0, 0, 0, 0,
01034     0, 19, 19, 0, 19, 0, 0, 19,
01035     19, 0, 19, 0, 0, 19, 0, 0,
01036     0, 0, 0, 0, 19, 19, 19, 19,
01037     0, 19, 19, 19, 19, 19, 19, 19,
01038     0, 19, 19, 19, 0, 19, 0, 19,
01039     0, 0, 19, 19, 0, 19, 19, 19,
01040     19, 1, 19, 19, 1, 1, 1, 1,
01041     1, 1, 0, 1, 1, 19, 0, 0,
01042     19, 19, 19, 19, 19, 0, 18, 0,
01043     1, 1, 1, 1, 1, 1, 0, 0,
01044     4, 4, 4, 4, 4, 4, 4, 4,
01045     4, 4, 0, 0, 19, 19, 0, 0,
01046     0, 0, 0, 0, 0, 0, 0, 0,
01047     0, 0, 0, 0, 0, 0, 0, 0,
01048     0, 0, 0, 0, 0, 0, 0, 0,
01049     0, 0, 0, 0, 0, 0, 0, 0,
01050 };
01051 
01052 static const Q_UINT8 ui_0F[] = {
01053     19, 30, 30, 30, 26, 26, 26, 26,
01054     26, 26, 26, 26, 26, 26, 26, 26,
01055     26, 26, 26, 30, 30, 30, 30, 30,
01056     1, 1, 30, 30, 30, 30, 30, 30,
01057     4, 4, 4, 4, 4, 4, 4, 4,
01058     4, 4, 6, 6, 6, 6, 6, 6,
01059     6, 6, 6, 6, 30, 1, 30, 1,
01060     30, 1, 22, 23, 22, 23, 2, 2,
01061     19, 19, 19, 19, 19, 19, 19, 19,
01062     0, 19, 19, 19, 19, 19, 19, 19,
01063     19, 19, 19, 19, 19, 19, 19, 19,
01064     19, 19, 19, 19, 19, 19, 19, 19,
01065     19, 19, 19, 19, 19, 19, 19, 19,
01066     19, 19, 19, 0, 0, 0, 0, 0,
01067     0, 1, 1, 1, 1, 1, 1, 1,
01068     1, 1, 1, 1, 1, 1, 1, 2,
01069     1, 1, 1, 1, 1, 26, 1, 1,
01070     19, 19, 19, 19, 0, 0, 0, 0,
01071     1, 1, 1, 1, 1, 1, 1, 1,
01072     0, 1, 1, 1, 1, 1, 1, 1,
01073     1, 1, 1, 1, 1, 1, 1, 1,
01074     1, 1, 1, 1, 1, 1, 1, 1,
01075     1, 1, 1, 1, 1, 1, 1, 1,
01076     1, 1, 1, 1, 1, 0, 30, 30,
01077     30, 30, 30, 30, 30, 30, 1, 30,
01078     30, 30, 30, 30, 30, 0, 0, 30,
01079     0, 0, 0, 0, 0, 0, 0, 0,
01080     0, 0, 0, 0, 0, 0, 0, 0,
01081     0, 0, 0, 0, 0, 0, 0, 0,
01082     0, 0, 0, 0, 0, 0, 0, 0,
01083     0, 0, 0, 0, 0, 0, 0, 0,
01084     0, 0, 0, 0, 0, 0, 0, 0,
01085 };
01086 
01087 static const Q_UINT8 ui_10[] = {
01088     19, 19, 19, 19, 19, 19, 19, 19,
01089     19, 19, 19, 19, 19, 19, 19, 19,
01090     19, 19, 19, 19, 19, 19, 19, 19,
01091     19, 19, 19, 19, 19, 19, 19, 19,
01092     19, 19, 0, 19, 19, 19, 19, 19,
01093     0, 19, 19, 0, 2, 1, 1, 1,
01094     1, 2, 1, 0, 0, 0, 1, 1,
01095     2, 1, 0, 0, 0, 0, 0, 0,
01096     4, 4, 4, 4, 4, 4, 4, 4,
01097     4, 4, 26, 26, 26, 26, 26, 26,
01098     19, 19, 19, 19, 19, 19, 2, 2,
01099     1, 1, 0, 0, 0, 0, 0, 0,
01100     0, 0, 0, 0, 0, 0, 0, 0,
01101     0, 0, 0, 0, 0, 0, 0, 0,
01102     0, 0, 0, 0, 0, 0, 0, 0,
01103     0, 0, 0, 0, 0, 0, 0, 0,
01104     0, 0, 0, 0, 0, 0, 0, 0,
01105     0, 0, 0, 0, 0, 0, 0, 0,
01106     0, 0, 0, 0, 0, 0, 0, 0,
01107     0, 0, 0, 0, 0, 0, 0, 0,
01108     15, 15, 15, 15, 15, 15, 15, 15,
01109     15, 15, 15, 15, 15, 15, 15, 15,
01110     15, 15, 15, 15, 15, 15, 15, 15,
01111     15, 15, 15, 15, 15, 15, 15, 15,
01112     15, 15, 15, 15, 15, 15, 0, 0,
01113     0, 0, 0, 0, 0, 0, 0, 0,
01114     19, 19, 19, 19, 19, 19, 19, 19,
01115     19, 19, 19, 19, 19, 19, 19, 19,
01116     19, 19, 19, 19, 19, 19, 19, 19,
01117     19, 19, 19, 19, 19, 19, 19, 19,
01118     19, 19, 19, 19, 19, 19, 19, 19,
01119     19, 0, 0, 26, 0, 0, 0, 0,
01120 };
01121 
01122 static const Q_UINT8 ui_11[] = {
01123     19, 19, 19, 19, 19, 19, 19, 19,
01124     19, 19, 19, 19, 19, 19, 19, 19,
01125     19, 19, 19, 19, 19, 19, 19, 19,
01126     19, 19, 19, 19, 19, 19, 19, 19,
01127     19, 19, 19, 19, 19, 19, 19, 19,
01128     19, 19, 19, 19, 19, 19, 19, 19,
01129     19, 19, 19, 19, 19, 19, 19, 19,
01130     19, 19, 19, 19, 19, 19, 19, 19,
01131     19, 19, 19, 19, 19, 19, 19, 19,
01132     19, 19, 19, 19, 19, 19, 19, 19,
01133     19, 19, 19, 19, 19, 19, 19, 19,
01134     19, 19, 0, 0, 0, 0, 0, 19,
01135     19, 19, 19, 19, 19, 19, 19, 19,
01136     19, 19, 19, 19, 19, 19, 19, 19,
01137     19, 19, 19, 19, 19, 19, 19, 19,
01138     19, 19, 19, 19, 19, 19, 19, 19,
01139     19, 19, 19, 19, 19, 19, 19, 19,
01140     19, 19, 19, 19, 19, 19, 19, 19,
01141     19, 19, 19, 19, 19, 19, 19, 19,
01142     19, 19, 19, 19, 19, 19, 19, 19,
01143     19, 19, 19, 0, 0, 0, 0, 0,
01144     19, 19, 19, 19, 19, 19, 19, 19,
01145     19, 19, 19, 19, 19, 19, 19, 19,
01146     19, 19, 19, 19, 19, 19, 19, 19,
01147     19, 19, 19, 19, 19, 19, 19, 19,
01148     19, 19, 19, 19, 19, 19, 19, 19,
01149     19, 19, 19, 19, 19, 19, 19, 19,
01150     19, 19, 19, 19, 19, 19, 19, 19,
01151     19, 19, 19, 19, 19, 19, 19, 19,
01152     19, 19, 19, 19, 19, 19, 19, 19,
01153     19, 19, 19, 19, 19, 19, 19, 19,
01154     19, 19, 0, 0, 0, 0, 0, 0,
01155 };
01156 
01157 static const Q_UINT8 ui_12[] = {
01158     19, 19, 19, 19, 19, 19, 19, 0,
01159     19, 19, 19, 19, 19, 19, 19, 19,
01160     19, 19, 19, 19, 19, 19, 19, 19,
01161     19, 19, 19, 19, 19, 19, 19, 19,
01162     19, 19, 19, 19, 19, 19, 19, 19,
01163     19, 19, 19, 19, 19, 19, 19, 19,
01164     19, 19, 19, 19, 19, 19, 19, 19,
01165     19, 19, 19, 19, 19, 19, 19, 19,
01166     19, 19, 19, 19, 19, 19, 19, 0,
01167     19, 0, 19, 19, 19, 19, 0, 0,
01168     19, 19, 19, 19, 19, 19, 19, 0,
01169     19, 0, 19, 19, 19, 19, 0, 0,
01170     19, 19, 19, 19, 19, 19, 19, 19,
01171     19, 19, 19, 19, 19, 19, 19, 19,
01172     19, 19, 19, 19, 19, 19, 19, 19,
01173     19, 19, 19, 19, 19, 19, 19, 19,
01174     19, 19, 19, 19, 19, 19, 19, 0,
01175     19, 0, 19, 19, 19, 19, 0, 0,
01176     19, 19, 19, 19, 19, 19, 19, 19,
01177     19, 19, 19, 19, 19, 19, 19, 19,
01178     19, 19, 19, 19, 19, 19, 19, 19,
01179     19, 19, 19, 19, 19, 19, 19, 0,
01180     19, 0, 19, 19, 19, 19, 0, 0,
01181     19, 19, 19, 19, 19, 19, 19, 0,
01182     19, 0, 19, 19, 19, 19, 0, 0,
01183     19, 19, 19, 19, 19, 19, 19, 0,
01184     19, 19, 19, 19, 19, 19, 19, 0,
01185     19, 19, 19, 19, 19, 19, 19, 19,
01186     19, 19, 19, 19, 19, 19, 19, 19,
01187     19, 19, 19, 19, 19, 19, 19, 0,
01188     19, 19, 19, 19, 19, 19, 19, 19,
01189     19, 19, 19, 19, 19, 19, 19, 19,
01190 };
01191 
01192 static const Q_UINT8 ui_13[] = {
01193     19, 19, 19, 19, 19, 19, 19, 19,
01194     19, 19, 19, 19, 19, 19, 19, 0,
01195     19, 0, 19, 19, 19, 19, 0, 0,
01196     19, 19, 19, 19, 19, 19, 19, 0,
01197     19, 19, 19, 19, 19, 19, 19, 19,
01198     19, 19, 19, 19, 19, 19, 19, 19,
01199     19, 19, 19, 19, 19, 19, 19, 19,
01200     19, 19, 19, 19, 19, 19, 19, 19,
01201     19, 19, 19, 19, 19, 19, 19, 0,
01202     19, 19, 19, 19, 19, 19, 19, 19,
01203     19, 19, 19, 19, 19, 19, 19, 19,
01204     19, 19, 19, 0, 0, 0, 0, 0,
01205     0, 26, 26, 26, 26, 26, 26, 26,
01206     26, 4, 4, 4, 4, 4, 4, 4,
01207     4, 4, 6, 6, 6, 6, 6, 6,
01208     6, 6, 6, 6, 6, 0, 0, 0,
01209     0, 0, 0, 0, 0, 0, 0, 0,
01210     0, 0, 0, 0, 0, 0, 0, 0,
01211     0, 0, 0, 0, 0, 0, 0, 0,
01212     0, 0, 0, 0, 0, 0, 0, 0,
01213     19, 19, 19, 19, 19, 19, 19, 19,
01214     19, 19, 19, 19, 19, 19, 19, 19,
01215     19, 19, 19, 19, 19, 19, 19, 19,
01216     19, 19, 19, 19, 19, 19, 19, 19,
01217     19, 19, 19, 19, 19, 19, 19, 19,
01218     19, 19, 19, 19, 19, 19, 19, 19,
01219     19, 19, 19, 19, 19, 19, 19, 19,
01220     19, 19, 19, 19, 19, 19, 19, 19,
01221     19, 19, 19, 19, 19, 19, 19, 19,
01222     19, 19, 19, 19, 19, 19, 19, 19,
01223     19, 19, 19, 19, 19, 0, 0, 0,
01224     0, 0, 0, 0, 0, 0, 0, 0,
01225 };
01226 
01227 static const Q_UINT8 ui_14[] = {
01228     0, 19, 19, 19, 19, 19, 19, 19,
01229     19, 19, 19, 19, 19, 19, 19, 19,
01230     19, 19, 19, 19, 19, 19, 19, 19,
01231     19, 19, 19, 19, 19, 19, 19, 19,
01232     19, 19, 19, 19, 19, 19, 19, 19,
01233     19, 19, 19, 19, 19, 19, 19, 19,
01234     19, 19, 19, 19, 19, 19, 19, 19,
01235     19, 19, 19, 19, 19, 19, 19, 19,
01236     19, 19, 19, 19, 19, 19, 19, 19,
01237     19, 19, 19, 19, 19, 19, 19, 19,
01238     19, 19, 19, 19, 19, 19, 19, 19,
01239     19, 19, 19, 19, 19, 19, 19, 19,
01240     19, 19, 19, 19, 19, 19, 19, 19,
01241     19, 19, 19, 19, 19, 19, 19, 19,
01242     19, 19, 19, 19, 19, 19, 19, 19,
01243     19, 19, 19, 19, 19, 19, 19, 19,
01244     19, 19, 19, 19, 19, 19, 19, 19,
01245     19, 19, 19, 19, 19, 19, 19, 19,
01246     19, 19, 19, 19, 19, 19, 19, 19,
01247     19, 19, 19, 19, 19, 19, 19, 19,
01248     19, 19, 19, 19, 19, 19, 19, 19,
01249     19, 19, 19, 19, 19, 19, 19, 19,
01250     19, 19, 19, 19, 19, 19, 19, 19,
01251     19, 19, 19, 19, 19, 19, 19, 19,
01252     19, 19, 19, 19, 19, 19, 19, 19,
01253     19, 19, 19, 19, 19, 19, 19, 19,
01254     19, 19, 19, 19, 19, 19, 19, 19,
01255     19, 19, 19, 19, 19, 19, 19, 19,
01256     19, 19, 19, 19, 19, 19, 19, 19,
01257     19, 19, 19, 19, 19, 19, 19, 19,
01258     19, 19, 19, 19, 19, 19, 19, 19,
01259     19, 19, 19, 19, 19, 19, 19, 19,
01260 };
01261 
01262 static const Q_UINT8 ui_15[] = {
01263     19, 19, 19, 19, 19, 19, 19, 19,
01264     19, 19, 19, 19, 19, 19, 19, 19,
01265     19, 19, 19, 19, 19, 19, 19, 19,
01266     19, 19, 19, 19, 19, 19, 19, 19,
01267     19, 19, 19, 19, 19, 19, 19, 19,
01268     19, 19, 19, 19, 19, 19, 19, 19,
01269     19, 19, 19, 19, 19, 19, 19, 19,
01270     19, 19, 19, 19, 19, 19, 19, 19,
01271     19, 19, 19, 19, 19, 19, 19, 19,
01272     19, 19, 19, 19, 19, 19, 19, 19,
01273     19, 19, 19, 19, 19, 19, 19, 19,
01274     19, 19, 19, 19, 19, 19, 19, 19,
01275     19, 19, 19, 19, 19, 19, 19, 19,
01276     19, 19, 19, 19, 19, 19, 19, 19,
01277     19, 19, 19, 19, 19, 19, 19, 19,
01278     19, 19, 19, 19, 19, 19, 19, 19,
01279     19, 19, 19, 19, 19, 19, 19, 19,
01280     19, 19, 19, 19, 19, 19, 19, 19,
01281     19, 19, 19, 19, 19, 19, 19, 19,
01282     19, 19, 19, 19, 19, 19, 19, 19,
01283     19, 19, 19, 19, 19, 19, 19, 19,
01284     19, 19, 19, 19, 19, 19, 19, 19,
01285     19, 19, 19, 19, 19, 19, 19, 19,
01286     19, 19, 19, 19, 19, 19, 19, 19,
01287     19, 19, 19, 19, 19, 19, 19, 19,
01288     19, 19, 19, 19, 19, 19, 19, 19,
01289     19, 19, 19, 19, 19, 19, 19, 19,
01290     19, 19, 19, 19, 19, 19, 19, 19,
01291     19, 19, 19, 19, 19, 19, 19, 19,
01292     19, 19, 19, 19, 19, 19, 19, 19,
01293     19, 19, 19, 19, 19, 19, 19, 19,
01294     19, 19, 19, 19, 19, 19, 19, 19,
01295 };
01296 
01297 static const Q_UINT8 ui_16[] = {
01298     19, 19, 19, 19, 19, 19, 19, 19,
01299     19, 19, 19, 19, 19, 19, 19, 19,
01300     19, 19, 19, 19, 19, 19, 19, 19,
01301     19, 19, 19, 19, 19, 19, 19, 19,
01302     19, 19, 19, 19, 19, 19, 19, 19,
01303     19, 19, 19, 19, 19, 19, 19, 19,
01304     19, 19, 19, 19, 19, 19, 19, 19,
01305     19, 19, 19, 19, 19, 19, 19, 19,
01306     19, 19, 19, 19, 19, 19, 19, 19,
01307     19, 19, 19, 19, 19, 19, 19, 19,
01308     19, 19, 19, 19, 19, 19, 19, 19,
01309     19, 19, 19, 19, 19, 19, 19, 19,
01310     19, 19, 19, 19, 19, 19, 19, 19,
01311     19, 19, 19, 19, 19, 26, 26, 19,
01312     19, 19, 19, 19, 19, 19, 19, 0,
01313     0, 0, 0, 0, 0, 0, 0, 0,
01314     7, 19, 19, 19, 19, 19, 19, 19,
01315     19, 19, 19, 19, 19, 19, 19, 19,
01316     19, 19, 19, 19, 19, 19, 19, 19,
01317     19, 19, 19, 22, 23, 0, 0, 0,
01318     19, 19, 19, 19, 19, 19, 19, 19,
01319     19, 19, 19, 19, 19, 19, 19, 19,
01320     19, 19, 19, 19, 19, 19, 19, 19,
01321     19, 19, 19, 19, 19, 19, 19, 19,
01322     19, 19, 19, 19, 19, 19, 19, 19,
01323     19, 19, 19, 19, 19, 19, 19, 19,
01324     19, 19, 19, 19, 19, 19, 19, 19,
01325     19, 19, 19, 19, 19, 19, 19, 19,
01326     19, 19, 19, 19, 19, 19, 19, 19,
01327     19, 19, 19, 26, 26, 26, 5, 5,
01328     5, 0, 0, 0, 0, 0, 0, 0,
01329     0, 0, 0, 0, 0, 0, 0, 0,
01330 };
01331 
01332 static const Q_UINT8 ui_17[] = {
01333     19, 19, 19, 19, 19, 19, 19, 19,
01334     19, 19, 19, 19, 19, 0, 19, 19,
01335     19, 19, 1, 1, 1, 0, 0, 0,
01336     0, 0, 0, 0, 0, 0, 0, 0,
01337     19, 19, 19, 19, 19, 19, 19, 19,
01338     19, 19, 19, 19, 19, 19, 19, 19,
01339     19, 19, 1, 1, 1, 26, 26, 0,
01340     0, 0, 0, 0, 0, 0, 0, 0,
01341     19, 19, 19, 19, 19, 19, 19, 19,
01342     19, 19, 19, 19, 19, 19, 19, 19,
01343     19, 19, 1, 1, 0, 0, 0, 0,
01344     0, 0, 0, 0, 0, 0, 0, 0,
01345     19, 19, 19, 19, 19, 19, 19, 19,
01346     19, 19, 19, 19, 19, 0, 19, 19,
01347     19, 0, 1, 1, 0, 0, 0, 0,
01348     0, 0, 0, 0, 0, 0, 0, 0,
01349     19, 19, 19, 19, 19, 19, 19, 19,
01350     19, 19, 19, 19, 19, 19, 19, 19,
01351     19, 19, 19, 19, 19, 19, 19, 19,
01352     19, 19, 19, 19, 19, 19, 19, 19,
01353     19, 19, 19, 19, 19, 19, 19, 19,
01354     19, 19, 19, 19, 19, 19, 19, 19,
01355     19, 19, 19, 19, 2, 2, 2, 1,
01356     1, 1, 1, 1, 1, 1, 2, 2,
01357     2, 2, 2, 2, 2, 2, 1, 2,
01358     2, 1, 1, 1, 1, 1, 1, 1,
01359     1, 1, 1, 1, 26, 26, 26, 18,
01360     26, 26, 26, 28, 19, 0, 0, 0,
01361     4, 4, 4, 4, 4, 4, 4, 4,
01362     4, 4, 0, 0, 0, 0, 0, 0,
01363     0, 0, 0, 0, 0, 0, 0, 0,
01364     0, 0, 0, 0, 0, 0, 0, 0,
01365 };
01366 
01367 static const Q_UINT8 ui_18[] = {
01368     26, 26, 26, 26, 26, 26, 21, 26,
01369     26, 26, 26, 1, 1, 1, 11, 0,
01370     4, 4, 4, 4, 4, 4, 4, 4,
01371     4, 4, 0, 0, 0, 0, 0, 0,
01372     19, 19, 19, 19, 19, 19, 19, 19,
01373     19, 19, 19, 19, 19, 19, 19, 19,
01374     19, 19, 19, 19, 19, 19, 19, 19,
01375     19, 19, 19, 19, 19, 19, 19, 19,
01376     19, 19, 19, 18, 19, 19, 19, 19,
01377     19, 19, 19, 19, 19, 19, 19, 19,
01378     19, 19, 19, 19, 19, 19, 19, 19,
01379     19, 19, 19, 19, 19, 19, 19, 19,
01380     19, 19, 19, 19, 19, 19, 19, 19,
01381     19, 19, 19, 19, 19, 19, 19, 19,
01382     19, 19, 19, 19, 19, 19, 19, 19,
01383     0, 0, 0, 0, 0, 0, 0, 0,
01384     19, 19, 19, 19, 19, 19, 19, 19,
01385     19, 19, 19, 19, 19, 19, 19, 19,
01386     19, 19, 19, 19, 19, 19, 19, 19,
01387     19, 19, 19, 19, 19, 19, 19, 19,
01388     19, 19, 19, 19, 19, 19, 19, 19,
01389     19, 1, 0, 0, 0, 0, 0, 0,
01390     0, 0, 0, 0, 0, 0, 0, 0,
01391     0, 0, 0, 0, 0, 0, 0, 0,
01392     0, 0, 0, 0, 0, 0, 0, 0,
01393     0, 0, 0, 0, 0, 0, 0, 0,
01394     0, 0, 0, 0, 0, 0, 0, 0,
01395     0, 0, 0, 0, 0, 0, 0, 0,
01396     0, 0, 0, 0, 0, 0, 0, 0,
01397     0, 0, 0, 0, 0, 0, 0, 0,
01398     0, 0, 0, 0, 0, 0, 0, 0,
01399     0, 0, 0, 0, 0, 0, 0, 0,
01400 };
01401 
01402 static const Q_UINT8 ui_1E[] = {
01403     15, 16, 15, 16, 15, 16, 15, 16,
01404     15, 16, 15, 16, 15, 16, 15, 16,
01405     15, 16, 15, 16, 15, 16, 15, 16,
01406     15, 16, 15, 16, 15, 16, 15, 16,
01407     15, 16, 15, 16, 15, 16, 15, 16,
01408     15, 16, 15, 16, 15, 16, 15, 16,
01409     15, 16, 15, 16, 15, 16, 15, 16,
01410     15, 16, 15, 16, 15, 16, 15, 16,
01411     15, 16, 15, 16, 15, 16, 15, 16,
01412     15, 16, 15, 16, 15, 16, 15, 16,
01413     15, 16, 15, 16, 15, 16, 15, 16,
01414     15, 16, 15, 16, 15, 16, 15, 16,
01415     15, 16, 15, 16, 15, 16, 15, 16,
01416     15, 16, 15, 16, 15, 16, 15, 16,
01417     15, 16, 15, 16, 15, 16, 15, 16,
01418     15, 16, 15, 16, 15, 16, 15, 16,
01419     15, 16, 15, 16, 15, 16, 15, 16,
01420     15, 16, 15, 16, 15, 16, 15, 16,
01421     15, 16, 15, 16, 15, 16, 16, 16,
01422     16, 16, 16, 16, 0, 0, 0, 0,
01423     15, 16, 15, 16, 15, 16, 15, 16,
01424     15, 16, 15, 16, 15, 16, 15, 16,
01425     15, 16, 15, 16, 15, 16, 15, 16,
01426     15, 16, 15, 16, 15, 16, 15, 16,
01427     15, 16, 15, 16, 15, 16, 15, 16,
01428     15, 16, 15, 16, 15, 16, 15, 16,
01429     15, 16, 15, 16, 15, 16, 15, 16,
01430     15, 16, 15, 16, 15, 16, 15, 16,
01431     15, 16, 15, 16, 15, 16, 15, 16,
01432     15, 16, 15, 16, 15, 16, 15, 16,
01433     15, 16, 15, 16, 15, 16, 15, 16,
01434     15, 16, 0, 0, 0, 0, 0, 0,
01435 };
01436 
01437 static const Q_UINT8 ui_1F[] = {
01438     16, 16, 16, 16, 16, 16, 16, 16,
01439     15, 15, 15, 15, 15, 15, 15, 15,
01440     16, 16, 16, 16, 16, 16, 0, 0,
01441     15, 15, 15, 15, 15, 15, 0, 0,
01442     16, 16, 16, 16, 16, 16, 16, 16,
01443     15, 15, 15, 15, 15, 15, 15, 15,
01444     16, 16, 16, 16, 16, 16, 16, 16,
01445     15, 15, 15, 15, 15, 15, 15, 15,
01446     16, 16, 16, 16, 16, 16, 0, 0,
01447     15, 15, 15, 15, 15, 15, 0, 0,
01448     16, 16, 16, 16, 16, 16, 16, 16,
01449     0, 15, 0, 15, 0, 15, 0, 15,
01450     16, 16, 16, 16, 16, 16, 16, 16,
01451     15, 15, 15, 15, 15, 15, 15, 15,
01452     16, 16, 16, 16, 16, 16, 16, 16,
01453     16, 16, 16, 16, 16, 16, 0, 0,
01454     16, 16, 16, 16, 16, 16, 16, 16,
01455     17, 17, 17, 17, 17, 17, 17, 17,
01456     16, 16, 16, 16, 16, 16, 16, 16,
01457     17, 17, 17, 17, 17, 17, 17, 17,
01458     16, 16, 16, 16, 16, 16, 16, 16,
01459     17, 17, 17, 17, 17, 17, 17, 17,
01460     16, 16, 16, 16, 16, 0, 16, 16,
01461     15, 15, 15, 15, 17, 29, 16, 29,
01462     29, 29, 16, 16, 16, 0, 16, 16,
01463     15, 15, 15, 15, 17, 29, 29, 29,
01464     16, 16, 16, 16, 0, 0, 16, 16,
01465     15, 15, 15, 15, 0, 29, 29, 29,
01466     16, 16, 16, 16, 16, 16, 16, 16,
01467     15, 15, 15, 15, 15, 29, 29, 29,
01468     0, 0, 16, 16, 16, 0, 16, 16,
01469     15, 15, 15, 15, 17, 29, 29, 0,
01470 };
01471 
01472 static const Q_UINT8 ui_20[] = {
01473     7, 7, 7, 7, 7, 7, 7, 7,
01474     7, 7, 7, 7, 11, 11, 11, 11,
01475     21, 21, 21, 21, 21, 21, 26, 26,
01476     24, 25, 22, 24, 24, 25, 22, 24,
01477     26, 26, 26, 26, 26, 26, 26, 26,
01478     8, 9, 11, 11, 11, 11, 11, 7,
01479     26, 26, 26, 26, 26, 26, 26, 26,
01480     26, 24, 25, 26, 26, 26, 26, 20,
01481     20, 26, 26, 26, 27, 22, 23, 26,
01482     26, 26, 26, 26, 26, 26, 26, 26,
01483     26, 26, 27, 0, 0, 0, 0, 26,
01484     0, 0, 0, 0, 0, 0, 0, 7,
01485     11, 11, 11, 11, 0, 0, 0, 0,
01486     0, 0, 11, 11, 11, 11, 11, 11,
01487     6, 16, 0, 0, 6, 6, 6, 6,
01488     6, 6, 27, 27, 27, 22, 23, 16,
01489     6, 6, 6, 6, 6, 6, 6, 6,
01490     6, 6, 27, 27, 27, 22, 23, 0,
01491     0, 0, 0, 0, 0, 0, 0, 0,
01492     0, 0, 0, 0, 0, 0, 0, 0,
01493     28, 28, 28, 28, 28, 28, 28, 28,
01494     28, 28, 28, 28, 28, 28, 28, 28,
01495     28, 28, 0, 0, 0, 0, 0, 0,
01496     0, 0, 0, 0, 0, 0, 0, 0,
01497     0, 0, 0, 0, 0, 0, 0, 0,
01498     0, 0, 0, 0, 0, 0, 0, 0,
01499     1, 1, 1, 1, 1, 1, 1, 1,
01500     1, 1, 1, 1, 1, 3, 3, 3,
01501     3, 1, 3, 3, 3, 1, 1, 1,
01502     1, 1, 1, 0, 0, 0, 0, 0,
01503     0, 0, 0, 0, 0, 0, 0, 0,
01504     0, 0, 0, 0, 0, 0, 0, 0,
01505 };
01506 
01507 static const Q_UINT8 ui_21[] = {
01508     30, 30, 15, 30, 30, 30, 30, 15,
01509     30, 30, 16, 15, 15, 15, 16, 16,
01510     15, 15, 15, 16, 30, 15, 30, 30,
01511     30, 15, 15, 15, 15, 15, 30, 30,
01512     30, 30, 30, 30, 15, 30, 15, 30,
01513     15, 30, 15, 15, 15, 15, 30, 16,
01514     15, 15, 30, 15, 16, 19, 19, 19,
01515     19, 16, 30, 0, 0, 16, 15, 15,
01516     27, 27, 27, 27, 27, 15, 16, 16,
01517     16, 16, 30, 27, 0, 0, 0, 0,
01518     0, 0, 0, 6, 6, 6, 6, 6,
01519     6, 6, 6, 6, 6, 6, 6, 6,
01520     5, 5, 5, 5, 5, 5, 5, 5,
01521     5, 5, 5, 5, 5, 5, 5, 5,
01522     5, 5, 5, 5, 5, 5, 5, 5,
01523     5, 5, 5, 5, 5, 5, 5, 5,
01524     5, 5, 5, 5, 0, 0, 0, 0,
01525     0, 0, 0, 0, 0, 0, 0, 0,
01526     27, 27, 27, 27, 27, 30, 30, 30,
01527     30, 30, 27, 27, 30, 30, 30, 30,
01528     27, 30, 30, 27, 30, 30, 27, 30,
01529     30, 30, 30, 30, 30, 30, 27, 30,
01530     30, 30, 30, 30, 30, 30, 30, 30,
01531     30, 30, 30, 30, 30, 30, 30, 30,
01532     30, 30, 30, 30, 30, 30, 30, 30,
01533     30, 30, 30, 30, 30, 30, 27, 27,
01534     30, 30, 27, 30, 27, 30, 30, 30,
01535     30, 30, 30, 30, 30, 30, 30, 30,
01536     30, 30, 30, 30, 30, 30, 30, 30,
01537     30, 30, 30, 30, 30, 30, 30, 30,
01538     30, 30, 30, 30, 27, 27, 27, 27,
01539     27, 27, 27, 27, 27, 27, 27, 27,
01540 };
01541 
01542 static const Q_UINT8 ui_22[] = {
01543     27, 27, 27, 27, 27, 27, 27, 27,
01544     27, 27, 27, 27, 27, 27, 27, 27,
01545     27, 27, 27, 27, 27, 27, 27, 27,
01546     27, 27, 27, 27, 27, 27, 27, 27,
01547     27, 27, 27, 27, 27, 27, 27, 27,
01548     27, 27, 27, 27, 27, 27, 27, 27,
01549     27, 27, 27, 27, 27, 27, 27, 27,
01550     27, 27, 27, 27, 27, 27, 27, 27,
01551     27, 27, 27, 27, 27, 27, 27, 27,
01552     27, 27, 27, 27, 27, 27, 27, 27,
01553     27, 27, 27, 27, 27, 27, 27, 27,
01554     27, 27, 27, 27, 27, 27, 27, 27,
01555     27, 27, 27, 27, 27, 27, 27, 27,
01556     27, 27, 27, 27, 27, 27, 27, 27,
01557     27, 27, 27, 27, 27, 27, 27, 27,
01558     27, 27, 27, 27, 27, 27, 27, 27,
01559     27, 27, 27, 27, 27, 27, 27, 27,
01560     27, 27, 27, 27, 27, 27, 27, 27,
01561     27, 27, 27, 27, 27, 27, 27, 27,
01562     27, 27, 27, 27, 27, 27, 27, 27,
01563     27, 27, 27, 27, 27, 27, 27, 27,
01564     27, 27, 27, 27, 27, 27, 27, 27,
01565     27, 27, 27, 27, 27, 27, 27, 27,
01566     27, 27, 27, 27, 27, 27, 27, 27,
01567     27, 27, 27, 27, 27, 27, 27, 27,
01568     27, 27, 27, 27, 27, 27, 27, 27,
01569     27, 27, 27, 27, 27, 27, 27, 27,
01570     27, 27, 27, 27, 27, 27, 27, 27,
01571     27, 27, 27, 27, 27, 27, 27, 27,
01572     27, 27, 27, 27, 27, 27, 27, 27,
01573     27, 27, 27, 27, 27, 27, 27, 27,
01574     27, 27, 27, 27, 27, 27, 27, 27,
01575 };
01576 
01577 static const Q_UINT8 ui_23[] = {
01578     30, 30, 30, 30, 30, 30, 30, 30,
01579     27, 27, 27, 27, 30, 30, 30, 30,
01580     30, 30, 30, 30, 30, 30, 30, 30,
01581     30, 30, 30, 30, 30, 30, 30, 30,
01582     27, 27, 30, 30, 30, 30, 30, 30,
01583     30, 22, 23, 30, 30, 30, 30, 30,
01584     30, 30, 30, 30, 30, 30, 30, 30,
01585     30, 30, 30, 30, 30, 30, 30, 30,
01586     30, 30, 30, 30, 30, 30, 30, 30,
01587     30, 30, 30, 30, 30, 30, 30, 30,
01588     30, 30, 30, 30, 30, 30, 30, 30,
01589     30, 30, 30, 30, 30, 30, 30, 30,
01590     30, 30, 30, 30, 30, 30, 30, 30,
01591     30, 30, 30, 30, 30, 30, 30, 30,
01592     30, 30, 30, 30, 30, 30, 30, 30,
01593     30, 30, 30, 30, 27, 30, 30, 30,
01594     30, 30, 30, 30, 30, 30, 30, 30,
01595     30, 30, 30, 30, 30, 30, 30, 30,
01596     30, 30, 30, 30, 30, 30, 30, 30,
01597     30, 30, 30, 27, 27, 27, 27, 27,
01598     27, 27, 27, 27, 27, 27, 27, 27,
01599     27, 27, 27, 27, 27, 27, 27, 27,
01600     27, 27, 27, 27, 22, 23, 26, 30,
01601     30, 30, 30, 30, 30, 30, 30, 30,
01602     30, 30, 30, 30, 30, 30, 30, 30,
01603     30, 30, 30, 30, 30, 30, 30, 0,
01604     0, 0, 0, 0, 0, 0, 0, 0,
01605     0, 0, 0, 0, 0, 0, 0, 0,
01606     0, 0, 0, 0, 0, 0, 0, 0,
01607     0, 0, 0, 0, 0, 0, 0, 0,
01608     0, 0, 0, 0, 0, 0, 0, 0,
01609     0, 0, 0, 0, 0, 0, 0, 0,
01610 };
01611 
01612 static const Q_UINT8 ui_24[] = {
01613     30, 30, 30, 30, 30, 30, 30, 30,
01614     30, 30, 30, 30, 30, 30, 30, 30,
01615     30, 30, 30, 30, 30, 30, 30, 30,
01616     30, 30, 30, 30, 30, 30, 30, 30,
01617     30, 30, 30, 30, 30, 30, 30, 0,
01618     0, 0, 0, 0, 0, 0, 0, 0,
01619     0, 0, 0, 0, 0, 0, 0, 0,
01620     0, 0, 0, 0, 0, 0, 0, 0,
01621     30, 30, 30, 30, 30, 30, 30, 30,
01622     30, 30, 30, 0, 0, 0, 0, 0,
01623     0, 0, 0, 0, 0, 0, 0, 0,
01624     0, 0, 0, 0, 0, 0, 0, 0,
01625     6, 6, 6, 6, 6, 6, 6, 6,
01626     6, 6, 6, 6, 6, 6, 6, 6,
01627     6, 6, 6, 6, 6, 6, 6, 6,
01628     6, 6, 6, 6, 6, 6, 6, 6,
01629     6, 6, 6, 6, 6, 6, 6, 6,
01630     6, 6, 6, 6, 6, 6, 6, 6,
01631     6, 6, 6, 6, 6, 6, 6, 6,
01632     6, 6, 6, 6, 30, 30, 30, 30,
01633     30, 30, 30, 30, 30, 30, 30, 30,
01634     30, 30, 30, 30, 30, 30, 30, 30,
01635     30, 30, 30, 30, 30, 30, 30, 30,
01636     30, 30, 30, 30, 30, 30, 30, 30,
01637     30, 30, 30, 30, 30, 30, 30, 30,
01638     30, 30, 30, 30, 30, 30, 30, 30,
01639     30, 30, 30, 30, 30, 30, 30, 30,
01640     30, 30, 30, 30, 30, 30, 30, 30,
01641     30, 30, 30, 30, 30, 30, 30, 30,
01642     30, 30, 6, 6, 6, 6, 6, 6,
01643     6, 6, 6, 6, 6, 6, 6, 6,
01644     6, 6, 6, 6, 6, 6, 6, 0,
01645 };
01646 
01647 static const Q_UINT8 ui_25[] = {
01648     30, 30, 30, 30, 30, 30, 30, 30,
01649     30, 30, 30, 30, 30, 30, 30, 30,
01650     30, 30, 30, 30, 30, 30, 30, 30,
01651     30, 30, 30, 30, 30, 30, 30, 30,
01652     30, 30, 30, 30, 30, 30, 30, 30,
01653     30, 30, 30, 30, 30, 30, 30, 30,
01654     30, 30, 30, 30, 30, 30, 30, 30,
01655     30, 30, 30, 30, 30, 30, 30, 30,
01656     30, 30, 30, 30, 30, 30, 30, 30,
01657     30, 30, 30, 30, 30, 30, 30, 30,
01658     30, 30, 30, 30, 30, 30, 30, 30,
01659     30, 30, 30, 30, 30, 30, 30, 30,
01660     30, 30, 30, 30, 30, 30, 30, 30,
01661     30, 30, 30, 30, 30, 30, 30, 30,
01662     30, 30, 30, 30, 30, 30, 30, 30,
01663     30, 30, 30, 30, 30, 30, 30, 30,
01664     30, 30, 30, 30, 30, 30, 30, 30,
01665     30, 30, 30, 30, 30, 30, 30, 30,
01666     30, 30, 30, 30, 30, 30, 30, 30,
01667     30, 30, 30, 30, 30, 30, 30, 30,
01668     30, 30, 30, 30, 30, 30, 30, 30,
01669     30, 30, 30, 30, 30, 30, 30, 30,
01670     30, 30, 30, 30, 30, 30, 30, 27,
01671     30, 30, 30, 30, 30, 30, 30, 30,
01672     30, 27, 30, 30, 30, 30, 30, 30,
01673     30, 30, 30, 30, 30, 30, 30, 30,
01674     30, 30, 30, 30, 30, 30, 30, 30,
01675     30, 30, 30, 30, 30, 30, 30, 30,
01676     30, 30, 30, 30, 30, 30, 30, 30,
01677     30, 30, 30, 30, 30, 30, 30, 30,
01678     30, 30, 30, 30, 30, 30, 30, 30,
01679     27, 27, 27, 27, 27, 27, 27, 27,
01680 };
01681 
01682 static const Q_UINT8 ui_26[] = {
01683     30, 30, 30, 30, 30, 30, 30, 30,
01684     30, 30, 30, 30, 30, 30, 30, 30,
01685     30, 30, 30, 30, 0, 0, 30, 30,
01686     0, 30, 30, 30, 30, 30, 30, 30,
01687     30, 30, 30, 30, 30, 30, 30, 30,
01688     30, 30, 30, 30, 30, 30, 30, 30,
01689     30, 30, 30, 30, 30, 30, 30, 30,
01690     30, 30, 30, 30, 30, 30, 30, 30,
01691     30, 30, 30, 30, 30, 30, 30, 30,
01692     30, 30, 30, 30, 30, 30, 30, 30,
01693     30, 30, 30, 30, 30, 30, 30, 30,
01694     30, 30, 30, 30, 30, 30, 30, 30,
01695     30, 30, 30, 30, 30, 30, 30, 30,
01696     30, 30, 30, 30, 30, 30, 30, 27,
01697     30, 30, 30, 30, 30, 30, 30, 30,
01698     30, 30, 30, 30, 30, 30, 0, 0,
01699     30, 30, 30, 30, 30, 30, 30, 30,
01700     30, 30, 0, 0, 0, 0, 0, 0,
01701     0, 0, 0, 0, 0, 0, 0, 0,
01702     0, 0, 0, 0, 0, 0, 0, 0,
01703     0, 0, 0, 0, 0, 0, 0, 0,
01704     0, 0, 0, 0, 0, 0, 0, 0,
01705     0, 0, 0, 0, 0, 0, 0, 0,
01706     0, 0, 0, 0, 0, 0, 0, 0,
01707     0, 0, 0, 0, 0, 0, 0, 0,
01708     0, 0, 0, 0, 0, 0, 0, 0,
01709     0, 0, 0, 0, 0, 0, 0, 0,
01710     0, 0, 0, 0, 0, 0, 0, 0,
01711     0, 0, 0, 0, 0, 0, 0, 0,
01712     0, 0, 0, 0, 0, 0, 0, 0,
01713     0, 0, 0, 0, 0, 0, 0, 0,
01714     0, 0, 0, 0, 0, 0, 0, 0,
01715 };
01716 
01717 static const Q_UINT8 ui_27[] = {
01718     0, 30, 30, 30, 30, 0, 30, 30,
01719     30, 30, 0, 0, 30, 30, 30, 30,
01720     30, 30, 30, 30, 30, 30, 30, 30,
01721     30, 30, 30, 30, 30, 30, 30, 30,
01722     30, 30, 30, 30, 30, 30, 30, 30,
01723     0, 30, 30, 30, 30, 30, 30, 30,
01724     30, 30, 30, 30, 30, 30, 30, 30,
01725     30, 30, 30, 30, 30, 30, 30, 30,
01726     30, 30, 30, 30, 30, 30, 30, 30,
01727     30, 30, 30, 30, 0, 30, 0, 30,
01728     30, 30, 30, 0, 0, 0, 30, 0,
01729     30, 30, 30, 30, 30, 30, 30, 0,
01730     0, 30, 30, 30, 30, 30, 30, 30,
01731     22, 23, 22, 23, 22, 23, 22, 23,
01732     22, 23, 22, 23, 22, 23, 6, 6,
01733     6, 6, 6, 6, 6, 6, 6, 6,
01734     6, 6, 6, 6, 6, 6, 6, 6,
01735     6, 6, 6, 6, 6, 6, 6, 6,
01736     6, 6, 6, 6, 30, 0, 0, 0,
01737     30, 30, 30, 30, 30, 30, 30, 30,
01738     30, 30, 30, 30, 30, 30, 30, 30,
01739     30, 30, 30, 30, 30, 30, 30, 30,
01740     0, 30, 30, 30, 30, 30, 30, 30,
01741     30, 30, 30, 30, 30, 30, 30, 0,
01742     0, 0, 0, 0, 0, 0, 0, 0,
01743     0, 0, 0, 0, 0, 0, 0, 0,
01744     27, 27, 27, 27, 27, 27, 27, 27,
01745     27, 27, 27, 27, 27, 27, 27, 27,
01746     27, 27, 27, 27, 27, 27, 22, 23,
01747     22, 23, 22, 23, 0, 0, 0, 0,
01748     27, 27, 27, 27, 27, 27, 27, 27,
01749     27, 27, 27, 27, 27, 27, 27, 27,
01750 };
01751 
01752 static const Q_UINT8 ui_28[] = {
01753     30, 30, 30, 30, 30, 30, 30, 30,
01754     30, 30, 30, 30, 30, 30, 30, 30,
01755     30, 30, 30, 30, 30, 30, 30, 30,
01756     30, 30, 30, 30, 30, 30, 30, 30,
01757     30, 30, 30, 30, 30, 30, 30, 30,
01758     30, 30, 30, 30, 30, 30, 30, 30,
01759     30, 30, 30, 30, 30, 30, 30, 30,
01760     30, 30, 30, 30, 30, 30, 30, 30,
01761     30, 30, 30, 30, 30, 30, 30, 30,
01762     30, 30, 30, 30, 30, 30, 30, 30,
01763     30, 30, 30, 30, 30, 30, 30, 30,
01764     30, 30, 30, 30, 30, 30, 30, 30,
01765     30, 30, 30, 30, 30, 30, 30, 30,
01766     30, 30, 30, 30, 30, 30, 30, 30,
01767     30, 30, 30, 30, 30, 30, 30, 30,
01768     30, 30, 30, 30, 30, 30, 30, 30,
01769     30, 30, 30, 30, 30, 30, 30, 30,
01770     30, 30, 30, 30, 30, 30, 30, 30,
01771     30, 30, 30, 30, 30, 30, 30, 30,
01772     30, 30, 30, 30, 30, 30, 30, 30,
01773     30, 30, 30, 30, 30, 30, 30, 30,
01774     30, 30, 30, 30, 30, 30, 30, 30,
01775     30, 30, 30, 30, 30, 30, 30, 30,
01776     30, 30, 30, 30, 30, 30, 30, 30,
01777     30, 30, 30, 30, 30, 30, 30, 30,
01778     30, 30, 30, 30, 30, 30, 30, 30,
01779     30, 30, 30, 30, 30, 30, 30, 30,
01780     30, 30, 30, 30, 30, 30, 30, 30,
01781     30, 30, 30, 30, 30, 30, 30, 30,
01782     30, 30, 30, 30, 30, 30, 30, 30,
01783     30, 30, 30, 30, 30, 30, 30, 30,
01784     30, 30, 30, 30, 30, 30, 30, 30,
01785 };
01786 
01787 static const Q_UINT8 ui_29[] = {
01788     27, 27, 27, 27, 27, 27, 27, 27,
01789     27, 27, 27, 27, 27, 27, 27, 27,
01790     27, 27, 27, 27, 27, 27, 27, 27,
01791     27, 27, 27, 27, 27, 27, 27, 27,
01792     27, 27, 27, 27, 27, 27, 27, 27,
01793     27, 27, 27, 27, 27, 27, 27, 27,
01794     27, 27, 27, 27, 27, 27, 27, 27,
01795     27, 27, 27, 27, 27, 27, 27, 27,
01796     27, 27, 27, 27, 27, 27, 27, 27,
01797     27, 27, 27, 27, 27, 27, 27, 27,
01798     27, 27, 27, 27, 27, 27, 27, 27,
01799     27, 27, 27, 27, 27, 27, 27, 27,
01800     27, 27, 27, 27, 27, 27, 27, 27,
01801     27, 27, 27, 27, 27, 27, 27, 27,
01802     27, 27, 27, 27, 27, 27, 27, 27,
01803     27, 27, 27, 27, 27, 27, 27, 27,
01804     27, 27, 27, 22, 23, 22, 23, 22,
01805     23, 22, 23, 22, 23, 22, 23, 22,
01806     23, 22, 23, 22, 23, 22, 23, 22,
01807     23, 27, 27, 27, 27, 27, 27, 27,
01808     27, 27, 27, 27, 27, 27, 27, 27,
01809     27, 27, 27, 27, 27, 27, 27, 27,
01810     27, 27, 27, 27, 27, 27, 27, 27,
01811     27, 27, 27, 27, 27, 27, 27, 27,
01812     27, 27, 27, 27, 27, 27, 27, 27,
01813     27, 27, 27, 27, 27, 27, 27, 27,
01814     27, 27, 27, 27, 27, 27, 27, 27,
01815     22, 23, 22, 23, 27, 27, 27, 27,
01816     27, 27, 27, 27, 27, 27, 27, 27,
01817     27, 27, 27, 27, 27, 27, 27, 27,
01818     27, 27, 27, 27, 27, 27, 27, 27,
01819     27, 27, 27, 27, 22, 23, 27, 27,
01820 };
01821 
01822 static const Q_UINT8 ui_2E[] = {
01823     0, 0, 0, 0, 0, 0, 0, 0,
01824     0, 0, 0, 0, 0, 0, 0, 0,
01825     0, 0, 0, 0, 0, 0, 0, 0,
01826     0, 0, 0, 0, 0, 0, 0, 0,
01827     0, 0, 0, 0, 0, 0, 0, 0,
01828     0, 0, 0, 0, 0, 0, 0, 0,
01829     0, 0, 0, 0, 0, 0, 0, 0,
01830     0, 0, 0, 0, 0, 0, 0, 0,
01831     0, 0, 0, 0, 0, 0, 0, 0,
01832     0, 0, 0, 0, 0, 0, 0, 0,
01833     0, 0, 0, 0, 0, 0, 0, 0,
01834     0, 0, 0, 0, 0, 0, 0, 0,
01835     0, 0, 0, 0, 0, 0, 0, 0,
01836     0, 0, 0, 0, 0, 0, 0, 0,
01837     0, 0, 0, 0, 0, 0, 0, 0,
01838     0, 0, 0, 0, 0, 0, 0, 0,
01839     30, 30, 30, 30, 30, 30, 30, 30,
01840     30, 30, 30, 30, 30, 30, 30, 30,
01841     30, 30, 30, 30, 30, 30, 30, 30,
01842     30, 30, 0, 30, 30, 30, 30, 30,
01843     30, 30, 30, 30, 30, 30, 30, 30,
01844     30, 30, 30, 30, 30, 30, 30, 30,
01845     30, 30, 30, 30, 30, 30, 30, 30,
01846     30, 30, 30, 30, 30, 30, 30, 30,
01847     30, 30, 30, 30, 30, 30, 30, 30,
01848     30, 30, 30, 30, 30, 30, 30, 30,
01849     30, 30, 30, 30, 30, 30, 30, 30,
01850     30, 30, 30, 30, 30, 30, 30, 30,
01851     30, 30, 30, 30, 30, 30, 30, 30,
01852     30, 30, 30, 30, 30, 30, 30, 30,
01853     30, 30, 30, 30, 0, 0, 0, 0,
01854     0, 0, 0, 0, 0, 0, 0, 0,
01855 };
01856 
01857 static const Q_UINT8 ui_2F[] = {
01858     30, 30, 30, 30, 30, 30, 30, 30,
01859     30, 30, 30, 30, 30, 30, 30, 30,
01860     30, 30, 30, 30, 30, 30, 30, 30,
01861     30, 30, 30, 30, 30, 30, 30, 30,
01862     30, 30, 30, 30, 30, 30, 30, 30,
01863     30, 30, 30, 30, 30, 30, 30, 30,
01864     30, 30, 30, 30, 30, 30, 30, 30,
01865     30, 30, 30, 30, 30, 30, 30, 30,
01866     30, 30, 30, 30, 30, 30, 30, 30,
01867     30, 30, 30, 30, 30, 30, 30, 30,
01868     30, 30, 30, 30, 30, 30, 30, 30,
01869     30, 30, 30, 30, 30, 30, 30, 30,
01870     30, 30, 30, 30, 30, 30, 30, 30,
01871     30, 30, 30, 30, 30, 30, 30, 30,
01872     30, 30, 30, 30, 30, 30, 30, 30,
01873     30, 30, 30, 30, 30, 30, 30, 30,
01874     30, 30, 30, 30, 30, 30, 30, 30,
01875     30, 30, 30, 30, 30, 30, 30, 30,
01876     30, 30, 30, 30, 30, 30, 30, 30,
01877     30, 30, 30, 30, 30, 30, 30, 30,
01878     30, 30, 30, 30, 30, 30, 30, 30,
01879     30, 30, 30, 30, 30, 30, 30, 30,
01880     30, 30, 30, 30, 30, 30, 30, 30,
01881     30, 30, 30, 30, 30, 30, 30, 30,
01882     30, 30, 30, 30, 30, 30, 30, 30,
01883     30, 30, 30, 30, 30, 30, 30, 30,
01884     30, 30, 30, 30, 30, 30, 0, 0,
01885     0, 0, 0, 0, 0, 0, 0, 0,
01886     0, 0, 0, 0, 0, 0, 0, 0,
01887     0, 0, 0, 0, 0, 0, 0, 0,
01888     30, 30, 30, 30, 30, 30, 30, 30,
01889     30, 30, 30, 30, 0, 0, 0, 0,
01890 };
01891 
01892 static const Q_UINT8 ui_30[] = {
01893     7, 26, 26, 26, 30, 18, 19, 5,
01894     22, 23, 22, 23, 22, 23, 22, 23,
01895     22, 23, 30, 30, 22, 23, 22, 23,
01896     22, 23, 22, 23, 21, 22, 23, 23,
01897     30, 5, 5, 5, 5, 5, 5, 5,
01898     5, 5, 1, 1, 1, 1, 1, 1,
01899     21, 18, 18, 18, 18, 18, 30, 30,
01900     5, 5, 5, 18, 19, 26, 30, 30,
01901     0, 19, 19, 19, 19, 19, 19, 19,
01902     19, 19, 19, 19, 19, 19, 19, 19,
01903     19, 19, 19, 19, 19, 19, 19, 19,
01904     19, 19, 19, 19, 19, 19, 19, 19,
01905     19, 19, 19, 19, 19, 19, 19, 19,
01906     19, 19, 19, 19, 19, 19, 19, 19,
01907     19, 19, 19, 19, 19, 19, 19, 19,
01908     19, 19, 19, 19, 19, 19, 19, 19,
01909     19, 19, 19, 19, 19, 19, 19, 19,
01910     19, 19, 19, 19, 19, 19, 19, 19,
01911     19, 19, 19, 19, 19, 19, 19, 0,
01912     0, 1, 1, 29, 29, 18, 18, 19,
01913     21, 19, 19, 19, 19, 19, 19, 19,
01914     19, 19, 19, 19, 19, 19, 19, 19,
01915     19, 19, 19, 19, 19, 19, 19, 19,
01916     19, 19, 19, 19, 19, 19, 19, 19,
01917     19, 19, 19, 19, 19, 19, 19, 19,
01918     19, 19, 19, 19, 19, 19, 19, 19,
01919     19, 19, 19, 19, 19, 19, 19, 19,
01920     19, 19, 19, 19, 19, 19, 19, 19,
01921     19, 19, 19, 19, 19, 19, 19, 19,
01922     19, 19, 19, 19, 19, 19, 19, 19,
01923     19, 19, 19, 19, 19, 19, 19, 19,
01924     19, 19, 19, 20, 18, 18, 18, 19,
01925 };
01926 
01927 static const Q_UINT8 ui_31[] = {
01928     0, 0, 0, 0, 0, 19, 19, 19,
01929     19, 19, 19, 19, 19, 19, 19, 19,
01930     19, 19, 19, 19, 19, 19, 19, 19,
01931     19, 19, 19, 19, 19, 19, 19, 19,
01932     19, 19, 19, 19, 19, 19, 19, 19,
01933     19, 19, 19, 19, 19, 0, 0, 0,
01934     0, 19, 19, 19, 19, 19, 19, 19,
01935     19, 19, 19, 19, 19, 19, 19, 19,
01936     19, 19, 19, 19, 19, 19, 19, 19,
01937     19, 19, 19, 19, 19, 19, 19, 19,
01938     19, 19, 19, 19, 19, 19, 19, 19,
01939     19, 19, 19, 19, 19, 19, 19, 19,
01940     19, 19, 19, 19, 19, 19, 19, 19,
01941     19, 19, 19, 19, 19, 19, 19, 19,
01942     19, 19, 19, 19, 19, 19, 19, 19,
01943     19, 19, 19, 19, 19, 19, 19, 19,
01944     19, 19, 19, 19, 19, 19, 19, 19,
01945     19, 19, 19, 19, 19, 19, 19, 0,
01946     30, 30, 6, 6, 6, 6, 30, 30,
01947     30, 30, 30, 30, 30, 30, 30, 30,
01948     19, 19, 19, 19, 19, 19, 19, 19,
01949     19, 19, 19, 19, 19, 19, 19, 19,
01950     19, 19, 19, 19, 19, 19, 19, 19,
01951     0, 0, 0, 0, 0, 0, 0, 0,
01952     0, 0, 0, 0, 0, 0, 0, 0,
01953     0, 0, 0, 0, 0, 0, 0, 0,
01954     0, 0, 0, 0, 0, 0, 0, 0,
01955     0, 0, 0, 0, 0, 0, 0, 0,
01956     0, 0, 0, 0, 0, 0, 0, 0,
01957     0, 0, 0, 0, 0, 0, 0, 0,
01958     19, 19, 19, 19, 19, 19, 19, 19,
01959     19, 19, 19, 19, 19, 19, 19, 19,
01960 };
01961 
01962 static const Q_UINT8 ui_32[] = {
01963     30, 30, 30, 30, 30, 30, 30, 30,
01964     30, 30, 30, 30, 30, 30, 30, 30,
01965     30, 30, 30, 30, 30, 30, 30, 30,
01966     30, 30, 30, 30, 30, 0, 0, 0,
01967     6, 6, 6, 6, 6, 6, 6, 6,
01968     6, 6, 30, 30, 30, 30, 30, 30,
01969     30, 30, 30, 30, 30, 30, 30, 30,
01970     30, 30, 30, 30, 30, 30, 30, 30,
01971     30, 30, 30, 30, 0, 0, 0, 0,
01972     0, 0, 0, 0, 0, 0, 0, 0,
01973     0, 6, 6, 6, 6, 6, 6, 6,
01974     6, 6, 6, 6, 6, 6, 6, 6,
01975     30, 30, 30, 30, 30, 30, 30, 30,
01976     30, 30, 30, 30, 30, 30, 30, 30,
01977     30, 30, 30, 30, 30, 30, 30, 30,
01978     30, 30, 30, 30, 0, 0, 0, 30,
01979     6, 6, 6, 6, 6, 6, 6, 6,
01980     6, 6, 30, 30, 30, 30, 30, 30,
01981     30, 30, 30, 30, 30, 30, 30, 30,
01982     30, 30, 30, 30, 30, 30, 30, 30,
01983     30, 30, 30, 30, 30, 30, 30, 30,
01984     30, 30, 30, 30, 30, 30, 30, 30,
01985     30, 6, 6, 6, 6, 6, 6, 6,
01986     6, 6, 6, 6, 6, 6, 6, 6,
01987     30, 30, 30, 30, 30, 30, 30, 30,
01988     30, 30, 30, 30, 0, 0, 0, 0,
01989     30, 30, 30, 30, 30, 30, 30, 30,
01990     30, 30, 30, 30, 30, 30, 30, 30,
01991     30, 30, 30, 30, 30, 30, 30, 30,
01992     30, 30, 30, 30, 30, 30, 30, 30,
01993     30, 30, 30, 30, 30, 30, 30, 30,
01994     30, 30, 30, 30, 30, 30, 30, 0,
01995 };
01996 
01997 static const Q_UINT8 ui_33[] = {
01998     30, 30, 30, 30, 30, 30, 30, 30,
01999     30, 30, 30, 30, 30, 30, 30, 30,
02000     30, 30, 30, 30, 30, 30, 30, 30,
02001     30, 30, 30, 30, 30, 30, 30, 30,
02002     30, 30, 30, 30, 30, 30, 30, 30,
02003     30, 30, 30, 30, 30, 30, 30, 30,
02004     30, 30, 30, 30, 30, 30, 30, 30,
02005     30, 30, 30, 30, 30, 30, 30, 30,
02006     30, 30, 30, 30, 30, 30, 30, 30,
02007     30, 30, 30, 30, 30, 30, 30, 30,
02008     30, 30, 30, 30, 30, 30, 30, 30,
02009     30, 30, 30, 30, 30, 30, 30, 30,
02010     30, 30, 30, 30, 30, 30, 30, 30,
02011     30, 30, 30, 30, 30, 30, 30, 30,
02012     30, 30, 30, 30, 30, 30, 30, 0,
02013     0, 0, 0, 30, 30, 30, 30, 30,
02014     30, 30, 30, 30, 30, 30, 30, 30,
02015     30, 30, 30, 30, 30, 30, 30, 30,
02016     30, 30, 30, 30, 30, 30, 30, 30,
02017     30, 30, 30, 30, 30, 30, 30, 30,
02018     30, 30, 30, 30, 30, 30, 30, 30,
02019     30, 30, 30, 30, 30, 30, 30, 30,
02020     30, 30, 30, 30, 30, 30, 30, 30,
02021     30, 30, 30, 30, 30, 30, 30, 30,
02022     30, 30, 30, 30, 30, 30, 30, 30,
02023     30, 30, 30, 30, 30, 30, 30, 30,
02024     30, 30, 30, 30, 30, 30, 30, 30,
02025     30, 30, 30, 30, 30, 30, 0, 0,
02026     30, 30, 30, 30, 30, 30, 30, 30,
02027     30, 30, 30, 30, 30, 30, 30, 30,
02028     30, 30, 30, 30, 30, 30, 30, 30,
02029     30, 30, 30, 30, 30, 30, 30, 0,
02030 };
02031 
02032 static const Q_UINT8 ui_4D[] = {
02033     19, 19, 19, 19, 19, 19, 19, 19,
02034     19, 19, 19, 19, 19, 19, 19, 19,
02035     19, 19, 19, 19, 19, 19, 19, 19,
02036     19, 19, 19, 19, 19, 19, 19, 19,
02037     19, 19, 19, 19, 19, 19, 19, 19,
02038     19, 19, 19, 19, 19, 19, 19, 19,
02039     19, 19, 19, 19, 19, 19, 19, 19,
02040     19, 19, 19, 19, 19, 19, 19, 19,
02041     19, 19, 19, 19, 19, 19, 19, 19,
02042     19, 19, 19, 19, 19, 19, 19, 19,
02043     19, 19, 19, 19, 19, 19, 19, 19,
02044     19, 19, 19, 19, 19, 19, 19, 19,
02045     19, 19, 19, 19, 19, 19, 19, 19,
02046     19, 19, 19, 19, 19, 19, 19, 19,
02047     19, 19, 19, 19, 19, 19, 19, 19,
02048     19, 19, 19, 19, 19, 19, 19, 19,
02049     19, 19, 19, 19, 19, 19, 19, 19,
02050     19, 19, 19, 19, 19, 19, 19, 19,
02051     19, 19, 19, 19, 19, 19, 19, 19,
02052     19, 19, 19, 19, 19, 19, 19, 19,
02053     19, 19, 19, 19, 19, 19, 19, 19,
02054     19, 19, 19, 19, 19, 19, 19, 19,
02055     19, 19, 19, 19, 19, 19, 0, 0,
02056     0, 0, 0, 0, 0, 0, 0, 0,
02057     0, 0, 0, 0, 0, 0, 0, 0,
02058     0, 0, 0, 0, 0, 0, 0, 0,
02059     0, 0, 0, 0, 0, 0, 0, 0,
02060     0, 0, 0, 0, 0, 0, 0, 0,
02061     0, 0, 0, 0, 0, 0, 0, 0,
02062     0, 0, 0, 0, 0, 0, 0, 0,
02063     0, 0, 0, 0, 0, 0, 0, 0,
02064     0, 0, 0, 0, 0, 0, 0, 0,
02065 };
02066 
02067 static const Q_UINT8 ui_9F[] = {
02068     19, 19, 19, 19, 19, 19, 19, 19,
02069     19, 19, 19, 19, 19, 19, 19, 19,
02070     19, 19, 19, 19, 19, 19, 19, 19,
02071     19, 19, 19, 19, 19, 19, 19, 19,
02072     19, 19, 19, 19, 19, 19, 19, 19,
02073     19, 19, 19, 19, 19, 19, 19, 19,
02074     19, 19, 19, 19, 19, 19, 19, 19,
02075     19, 19, 19, 19, 19, 19, 19, 19,
02076     19, 19, 19, 19, 19, 19, 19, 19,
02077     19, 19, 19, 19, 19, 19, 19, 19,
02078     19, 19, 19, 19, 19, 19, 19, 19,
02079     19, 19, 19, 19, 19, 19, 19, 19,
02080     19, 19, 19, 19, 19, 19, 19, 19,
02081     19, 19, 19, 19, 19, 19, 19, 19,
02082     19, 19, 19, 19, 19, 19, 19, 19,
02083     19, 19, 19, 19, 19, 19, 19, 19,
02084     19, 19, 19, 19, 19, 19, 19, 19,
02085     19, 19, 19, 19, 19, 19, 19, 19,
02086     19, 19, 19, 19, 19, 19, 19, 19,
02087     19, 19, 19, 19, 19, 19, 19, 19,
02088     19, 19, 19, 19, 19, 19, 0, 0,
02089     0, 0, 0, 0, 0, 0, 0, 0,
02090     0, 0, 0, 0, 0, 0, 0, 0,
02091     0, 0, 0, 0, 0, 0, 0, 0,
02092     0, 0, 0, 0, 0, 0, 0, 0,
02093     0, 0, 0, 0, 0, 0, 0, 0,
02094     0, 0, 0, 0, 0, 0, 0, 0,
02095     0, 0, 0, 0, 0, 0, 0, 0,
02096     0, 0, 0, 0, 0, 0, 0, 0,
02097     0, 0, 0, 0, 0, 0, 0, 0,
02098     0, 0, 0, 0, 0, 0, 0, 0,
02099     0, 0, 0, 0, 0, 0, 0, 0,
02100 };
02101 
02102 static const Q_UINT8 ui_A4[] = {
02103     19, 19, 19, 19, 19, 19, 19, 19,
02104     19, 19, 19, 19, 19, 19, 19, 19,
02105     19, 19, 19, 19, 19, 19, 19, 19,
02106     19, 19, 19, 19, 19, 19, 19, 19,
02107     19, 19, 19, 19, 19, 19, 19, 19,
02108     19, 19, 19, 19, 19, 19, 19, 19,
02109     19, 19, 19, 19, 19, 19, 19, 19,
02110     19, 19, 19, 19, 19, 19, 19, 19,
02111     19, 19, 19, 19, 19, 19, 19, 19,
02112     19, 19, 19, 19, 19, 19, 19, 19,
02113     19, 19, 19, 19, 19, 19, 19, 19,
02114     19, 19, 19, 19, 19, 19, 19, 19,
02115     19, 19, 19, 19, 19, 19, 19, 19,
02116     19, 19, 19, 19, 19, 19, 19, 19,
02117     19, 19, 19, 19, 19, 19, 19, 19,
02118     19, 19, 19, 19, 19, 19, 19, 19,
02119     19, 19, 19, 19, 19, 19, 19, 19,
02120     19, 19, 19, 19, 19, 0, 0, 0,
02121     30, 30, 30, 30, 30, 30, 30, 30,
02122     30, 30, 30, 30, 30, 30, 30, 30,
02123     30, 30, 30, 30, 30, 30, 30, 30,
02124     30, 30, 30, 30, 30, 30, 30, 30,
02125     30, 30, 30, 30, 30, 30, 30, 30,
02126     30, 30, 30, 30, 30, 30, 30, 30,
02127     30, 30, 30, 30, 30, 30, 30, 0,
02128     0, 0, 0, 0, 0, 0, 0, 0,
02129     0, 0, 0, 0, 0, 0, 0, 0,
02130     0, 0, 0, 0, 0, 0, 0, 0,
02131     0, 0, 0, 0, 0, 0, 0, 0,
02132     0, 0, 0, 0, 0, 0, 0, 0,
02133     0, 0, 0, 0, 0, 0, 0, 0,
02134     0, 0, 0, 0, 0, 0, 0, 0,
02135 };
02136 
02137 static const Q_UINT8 ui_D7[] = {
02138     19, 19, 19, 19, 19, 19, 19, 19,
02139     19, 19, 19, 19, 19, 19, 19, 19,
02140     19, 19, 19, 19, 19, 19, 19, 19,
02141     19, 19, 19, 19, 19, 19, 19, 19,
02142     19, 19, 19, 19, 19, 19, 19, 19,
02143     19, 19, 19, 19, 19, 19, 19, 19,
02144     19, 19, 19, 19, 19, 19, 19, 19,
02145     19, 19, 19, 19, 19, 19, 19, 19,
02146     19, 19, 19, 19, 19, 19, 19, 19,
02147     19, 19, 19, 19, 19, 19, 19, 19,
02148     19, 19, 19, 19, 19, 19, 19, 19,
02149     19, 19, 19, 19, 19, 19, 19, 19,
02150     19, 19, 19, 19, 19, 19, 19, 19,
02151     19, 19, 19, 19, 19, 19, 19, 19,
02152     19, 19, 19, 19, 19, 19, 19, 19,
02153     19, 19, 19, 19, 19, 19, 19, 19,
02154     19, 19, 19, 19, 19, 19, 19, 19,
02155     19, 19, 19, 19, 19, 19, 19, 19,
02156     19, 19, 19, 19, 19, 19, 19, 19,
02157     19, 19, 19, 19, 19, 19, 19, 19,
02158     19, 19, 19, 19, 0, 0, 0, 0,
02159     0, 0, 0, 0, 0, 0, 0, 0,
02160     0, 0, 0, 0, 0, 0, 0, 0,
02161     0, 0, 0, 0, 0, 0, 0, 0,
02162     0, 0, 0, 0, 0, 0, 0, 0,
02163     0, 0, 0, 0, 0, 0, 0, 0,
02164     0, 0, 0, 0, 0, 0, 0, 0,
02165     0, 0, 0, 0, 0, 0, 0, 0,
02166     0, 0, 0, 0, 0, 0, 0, 0,
02167     0, 0, 0, 0, 0, 0, 0, 0,
02168     0, 0, 0, 0, 0, 0, 0, 0,
02169     0, 0, 0, 0, 0, 0, 0, 0,
02170 };
02171 
02172 static const Q_UINT8 ui_D8[] = {
02173     12, 12, 12, 12, 12, 12, 12, 12,
02174     12, 12, 12, 12, 12, 12, 12, 12,
02175     12, 12, 12, 12, 12, 12, 12, 12,
02176     12, 12, 12, 12, 12, 12, 12, 12,
02177     12, 12, 12, 12, 12, 12, 12, 12,
02178     12, 12, 12, 12, 12, 12, 12, 12,
02179     12, 12, 12, 12, 12, 12, 12, 12,
02180     12, 12, 12, 12, 12, 12, 12, 12,
02181     12, 12, 12, 12, 12, 12, 12, 12,
02182     12, 12, 12, 12, 12, 12, 12, 12,
02183     12, 12, 12, 12, 12, 12, 12, 12,
02184     12, 12, 12, 12, 12, 12, 12, 12,
02185     12, 12, 12, 12, 12, 12, 12, 12,
02186     12, 12, 12, 12, 12, 12, 12, 12,
02187     12, 12, 12, 12, 12, 12, 12, 12,
02188     12, 12, 12, 12, 12, 12, 12, 12,
02189     12, 12, 12, 12, 12, 12, 12, 12,
02190     12, 12, 12, 12, 12, 12, 12, 12,
02191     12, 12, 12, 12, 12, 12, 12, 12,
02192     12, 12, 12, 12, 12, 12, 12, 12,
02193     12, 12, 12, 12, 12, 12, 12, 12,
02194     12, 12, 12, 12, 12, 12, 12, 12,
02195     12, 12, 12, 12, 12, 12, 12, 12,
02196     12, 12, 12, 12, 12, 12, 12, 12,
02197     12, 12, 12, 12, 12, 12, 12, 12,
02198     12, 12, 12, 12, 12, 12, 12, 12,
02199     12, 12, 12, 12, 12, 12, 12, 12,
02200     12, 12, 12, 12, 12, 12, 12, 12,
02201     12, 12, 12, 12, 12, 12, 12, 12,
02202     12, 12, 12, 12, 12, 12, 12, 12,
02203     12, 12, 12, 12, 12, 12, 12, 12,
02204     12, 12, 12, 12, 12, 12, 12, 12,
02205 };
02206 
02207 static const Q_UINT8 ui_E0[] = {
02208     13, 13, 13, 13, 13, 13, 13, 13,
02209     13, 13, 13, 13, 13, 13, 13, 13,
02210     13, 13, 13, 13, 13, 13, 13, 13,
02211     13, 13, 13, 13, 13, 13, 13, 13,
02212     13, 13, 13, 13, 13, 13, 13, 13,
02213     13, 13, 13, 13, 13, 13, 13, 13,
02214     13, 13, 13, 13, 13, 13, 13, 13,
02215     13, 13, 13, 13, 13, 13, 13, 13,
02216     13, 13, 13, 13, 13, 13, 13, 13,
02217     13, 13, 13, 13, 13, 13, 13, 13,
02218     13, 13, 13, 13, 13, 13, 13, 13,
02219     13, 13, 13, 13, 13, 13, 13, 13,
02220     13, 13, 13, 13, 13, 13, 13, 13,
02221     13, 13, 13, 13, 13, 13, 13, 13,
02222     13, 13, 13, 13, 13, 13, 13, 13,
02223     13, 13, 13, 13, 13, 13, 13, 13,
02224     13, 13, 13, 13, 13, 13, 13, 13,
02225     13, 13, 13, 13, 13, 13, 13, 13,
02226     13, 13, 13, 13, 13, 13, 13, 13,
02227     13, 13, 13, 13, 13, 13, 13, 13,
02228     13, 13, 13, 13, 13, 13, 13, 13,
02229     13, 13, 13, 13, 13, 13, 13, 13,
02230     13, 13, 13, 13, 13, 13, 13, 13,
02231     13, 13, 13, 13, 13, 13, 13, 13,
02232     13, 13, 13, 13, 13, 13, 13, 13,
02233     13, 13, 13, 13, 13, 13, 13, 13,
02234     13, 13, 13, 13, 13, 13, 13, 13,
02235     13, 13, 13, 13, 13, 13, 13, 13,
02236     13, 13, 13, 13, 13, 13, 13, 13,
02237     13, 13, 13, 13, 13, 13, 13, 13,
02238     13, 13, 13, 13, 13, 13, 13, 13,
02239     13, 13, 13, 13, 13, 13, 13, 13,
02240 };
02241 
02242 static const Q_UINT8 ui_FA[] = {
02243     19, 19, 19, 19, 19, 19, 19, 19,
02244     19, 19, 19, 19, 19, 19, 19, 19,
02245     19, 19, 19, 19, 19, 19, 19, 19,
02246     19, 19, 19, 19, 19, 19, 19, 19,
02247     19, 19, 19, 19, 19, 19, 19, 19,
02248     19, 19, 19, 19, 19, 19, 0, 0,
02249     19, 19, 19, 19, 19, 19, 19, 19,
02250     19, 19, 19, 19, 19, 19, 19, 19,
02251     19, 19, 19, 19, 19, 19, 19, 19,
02252     19, 19, 19, 19, 19, 19, 19, 19,
02253     19, 19, 19, 19, 19, 19, 19, 19,
02254     19, 19, 19, 19, 19, 19, 19, 19,
02255     19, 19, 19, 19, 19, 19, 19, 19,
02256     19, 19, 19, 0, 0, 0, 0, 0,
02257     0, 0, 0, 0, 0, 0, 0, 0,
02258     0, 0, 0, 0, 0, 0, 0, 0,
02259     0, 0, 0, 0, 0, 0, 0, 0,
02260     0, 0, 0, 0, 0, 0, 0, 0,
02261     0, 0, 0, 0, 0, 0, 0, 0,
02262     0, 0, 0, 0, 0, 0, 0, 0,
02263     0, 0, 0, 0, 0, 0, 0, 0,
02264     0, 0, 0, 0, 0, 0, 0, 0,
02265     0, 0, 0, 0, 0, 0, 0, 0,
02266     0, 0, 0, 0, 0, 0, 0, 0,
02267     0, 0, 0, 0, 0, 0, 0, 0,
02268     0, 0, 0, 0, 0, 0, 0, 0,
02269     0, 0, 0, 0, 0, 0, 0, 0,
02270     0, 0, 0, 0, 0, 0, 0, 0,
02271     0, 0, 0, 0, 0, 0, 0, 0,
02272     0, 0, 0, 0, 0, 0, 0, 0,
02273     0, 0, 0, 0, 0, 0, 0, 0,
02274     0, 0, 0, 0, 0, 0, 0, 0,
02275 };
02276 
02277 static const Q_UINT8 ui_FB[] = {
02278     16, 16, 16, 16, 16, 16, 16, 0,
02279     0, 0, 0, 0, 0, 0, 0, 0,
02280     0, 0, 0, 16, 16, 16, 16, 16,
02281     0, 0, 0, 0, 0, 19, 1, 19,
02282     19, 19, 19, 19, 19, 19, 19, 19,
02283     19, 27, 19, 19, 19, 19, 19, 19,
02284     19, 19, 19, 19, 19, 19, 19, 0,
02285     19, 19, 19, 19, 19, 0, 19, 0,
02286     19, 19, 0, 19, 19, 0, 19, 19,
02287     19, 19, 19, 19, 19, 19, 19, 19,
02288     19, 19, 19, 19, 19, 19, 19, 19,
02289     19, 19, 19, 19, 19, 19, 19, 19,
02290     19, 19, 19, 19, 19, 19, 19, 19,
02291     19, 19, 19, 19, 19, 19, 19, 19,
02292     19, 19, 19, 19, 19, 19, 19, 19,
02293     19, 19, 19, 19, 19, 19, 19, 19,
02294     19, 19, 19, 19, 19, 19, 19, 19,
02295     19, 19, 19, 19, 19, 19, 19, 19,
02296     19, 19, 19, 19, 19, 19, 19, 19,
02297     19, 19, 19, 19, 19, 19, 19, 19,
02298     19, 19, 19, 19, 19, 19, 19, 19,
02299     19, 19, 19, 19, 19, 19, 19, 19,
02300     19, 19, 0, 0, 0, 0, 0, 0,
02301     0, 0, 0, 0, 0, 0, 0, 0,
02302     0, 0, 0, 0, 0, 0, 0, 0,
02303     0, 0, 0, 0, 0, 0, 0, 0,
02304     0, 0, 0, 19, 19, 19, 19, 19,
02305     19, 19, 19, 19, 19, 19, 19, 19,
02306     19, 19, 19, 19, 19, 19, 19, 19,
02307     19, 19, 19, 19, 19, 19, 19, 19,
02308     19, 19, 19, 19, 19, 19, 19, 19,
02309     19, 19, 19, 19, 19, 19, 19, 19,
02310 };
02311 
02312 static const Q_UINT8 ui_FD[] = {
02313     19, 19, 19, 19, 19, 19, 19, 19,
02314     19, 19, 19, 19, 19, 19, 19, 19,
02315     19, 19, 19, 19, 19, 19, 19, 19,
02316     19, 19, 19, 19, 19, 19, 19, 19,
02317     19, 19, 19, 19, 19, 19, 19, 19,
02318     19, 19, 19, 19, 19, 19, 19, 19,
02319     19, 19, 19, 19, 19, 19, 19, 19,
02320     19, 19, 19, 19, 19, 19, 22, 23,
02321     0, 0, 0, 0, 0, 0, 0, 0,
02322     0, 0, 0, 0, 0, 0, 0, 0,
02323     19, 19, 19, 19, 19, 19, 19, 19,
02324     19, 19, 19, 19, 19, 19, 19, 19,
02325     19, 19, 19, 19, 19, 19, 19, 19,
02326     19, 19, 19, 19, 19, 19, 19, 19,
02327     19, 19, 19, 19, 19, 19, 19, 19,
02328     19, 19, 19, 19, 19, 19, 19, 19,
02329     19, 19, 19, 19, 19, 19, 19, 19,
02330     19, 19, 19, 19, 19, 19, 19, 19,
02331     0, 0, 19, 19, 19, 19, 19, 19,
02332     19, 19, 19, 19, 19, 19, 19, 19,
02333     19, 19, 19, 19, 19, 19, 19, 19,
02334     19, 19, 19, 19, 19, 19, 19, 19,
02335     19, 19, 19, 19, 19, 19, 19, 19,
02336     19, 19, 19, 19, 19, 19, 19, 19,
02337     19, 19, 19, 19, 19, 19, 19, 19,
02338     0, 0, 0, 0, 0, 0, 0, 0,
02339     0, 0, 0, 0, 0, 0, 0, 0,
02340     0, 0, 0, 0, 0, 0, 0, 0,
02341     0, 0, 0, 0, 0, 0, 0, 0,
02342     0, 0, 0, 0, 0, 0, 0, 0,
02343     19, 19, 19, 19, 19, 19, 19, 19,
02344     19, 19, 19, 19, 28, 0, 0, 0,
02345 };
02346 
02347 static const Q_UINT8 ui_FE[] = {
02348     1, 1, 1, 1, 1, 1, 1, 1,
02349     1, 1, 1, 1, 1, 1, 1, 1,
02350     0, 0, 0, 0, 0, 0, 0, 0,
02351     0, 0, 0, 0, 0, 0, 0, 0,
02352     1, 1, 1, 1, 0, 0, 0, 0,
02353     0, 0, 0, 0, 0, 0, 0, 0,
02354     26, 21, 21, 20, 20, 22, 23, 22,
02355     23, 22, 23, 22, 23, 22, 23, 22,
02356     23, 22, 23, 22, 23, 26, 26, 0,
02357     0, 26, 26, 26, 26, 20, 20, 20,
02358     26, 26, 26, 0, 26, 26, 26, 26,
02359     21, 22, 23, 22, 23, 22, 23, 26,
02360     26, 26, 27, 21, 27, 27, 27, 0,
02361     26, 28, 26, 26, 0, 0, 0, 0,
02362     19, 19, 19, 19, 19, 0, 19, 19,
02363     19, 19, 19, 19, 19, 19, 19, 19,
02364     19, 19, 19, 19, 19, 19, 19, 19,
02365     19, 19, 19, 19, 19, 19, 19, 19,
02366     19, 19, 19, 19, 19, 19, 19, 19,
02367     19, 19, 19, 19, 19, 19, 19, 19,
02368     19, 19, 19, 19, 19, 19, 19, 19,
02369     19, 19, 19, 19, 19, 19, 19, 19,
02370     19, 19, 19, 19, 19, 19, 19, 19,
02371     19, 19, 19, 19, 19, 19, 19, 19,
02372     19, 19, 19, 19, 19, 19, 19, 19,
02373     19, 19, 19, 19, 19, 19, 19, 19,
02374     19, 19, 19, 19, 19, 19, 19, 19,
02375     19, 19, 19, 19, 19, 19, 19, 19,
02376     19, 19, 19, 19, 19, 19, 19, 19,
02377     19, 19, 19, 19, 19, 19, 19, 19,
02378     19, 19, 19, 19, 19, 19, 19, 19,
02379     19, 19, 19, 19, 19, 0, 0, 11,
02380 };
02381 
02382 static const Q_UINT8 ui_FF[] = {
02383     0, 26, 26, 26, 28, 26, 26, 26,
02384     22, 23, 26, 27, 26, 21, 26, 26,
02385     4, 4, 4, 4, 4, 4, 4, 4,
02386     4, 4, 26, 26, 27, 27, 27, 26,
02387     26, 15, 15, 15, 15, 15, 15, 15,
02388     15, 15, 15, 15, 15, 15, 15, 15,
02389     15, 15, 15, 15, 15, 15, 15, 15,
02390     15, 15, 15, 22, 26, 23, 29, 20,
02391     29, 16, 16, 16, 16, 16, 16, 16,
02392     16, 16, 16, 16, 16, 16, 16, 16,
02393     16, 16, 16, 16, 16, 16, 16, 16,
02394     16, 16, 16, 22, 27, 23, 27, 22,
02395     23, 26, 22, 23, 26, 20, 19, 19,
02396     19, 19, 19, 19, 19, 19, 19, 19,
02397     18, 19, 19, 19, 19, 19, 19, 19,
02398     19, 19, 19, 19, 19, 19, 19, 19,
02399     19, 19, 19, 19, 19, 19, 19, 19,
02400     19, 19, 19, 19, 19, 19, 19, 19,
02401     19, 19, 19, 19, 19, 19, 19, 19,
02402     19, 19, 19, 19, 19, 19, 18, 18,
02403     19, 19, 19, 19, 19, 19, 19, 19,
02404     19, 19, 19, 19, 19, 19, 19, 19,
02405     19, 19, 19, 19, 19, 19, 19, 19,
02406     19, 19, 19, 19, 19, 19, 19, 0,
02407     0, 0, 19, 19, 19, 19, 19, 19,
02408     0, 0, 19, 19, 19, 19, 19, 19,
02409     0, 0, 19, 19, 19, 19, 19, 19,
02410     0, 0, 19, 19, 19, 0, 0, 0,
02411     28, 28, 27, 29, 30, 28, 28, 0,
02412     30, 27, 27, 27, 27, 30, 30, 0,
02413     0, 0, 0, 0, 0, 0, 0, 0,
02414     0, 11, 11, 11, 30, 30, 0, 0,
02415 };
02416 
02417 static const Q_UINT8 * const unicode_info[256] = {
02418     ui_00, ui_01, ui_02, ui_03, ui_04, ui_05, ui_06, ui_07,
02419     ui_08, ui_09, ui_0A, ui_0B, ui_0C, ui_0D, ui_0E, ui_0F,
02420     ui_10, ui_11, ui_12, ui_13, ui_14, ui_15, ui_16, ui_17,
02421     ui_18, ui_08, ui_08, ui_08, ui_08, ui_08, ui_1E, ui_1F,
02422     ui_20, ui_21, ui_22, ui_23, ui_24, ui_25, ui_26, ui_27,
02423     ui_28, ui_29, ui_22, ui_08, ui_08, ui_08, ui_2E, ui_2F,
02424     ui_30, ui_31, ui_32, ui_33, ui_15, ui_15, ui_15, ui_15,
02425     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02426     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02427     ui_15, ui_15, ui_15, ui_15, ui_15, ui_4D, ui_15, ui_15,
02428     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02429     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02430     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02431     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02432     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02433     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02434     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02435     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02436     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02437     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_9F,
02438     ui_15, ui_15, ui_15, ui_15, ui_A4, ui_08, ui_08, ui_08,
02439     ui_08, ui_08, ui_08, ui_08, ui_15, ui_15, ui_15, ui_15,
02440     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02441     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02442     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02443     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15,
02444     ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_15, ui_D7,
02445     ui_D8, ui_D8, ui_D8, ui_D8, ui_D8, ui_D8, ui_D8, ui_D8,
02446     ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0,
02447     ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0,
02448     ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0, ui_E0,
02449     ui_E0, ui_15, ui_FA, ui_FB, ui_15, ui_FD, ui_FE, ui_FF,
02450 };
02451 // 14848 bytes
02452 
02453 static const Q_UINT16 decomposition_map[] = {
02454     0,
02455     3, 0x00A0, 0x0020, 0,
02456     16, 0x00A8, 0x0020, 0x0308, 0,
02457     9, 0x00AA, 0x0061, 0,
02458     16, 0x00AF, 0x0020, 0x0304, 0,
02459     9, 0x00B2, 0x0032, 0,
02460     9, 0x00B3, 0x0033, 0,
02461     16, 0x00B4, 0x0020, 0x0301, 0,
02462     16, 0x00B5, 0x03BC, 0,
02463     16, 0x00B8, 0x0020, 0x0327, 0,
02464     9, 0x00B9, 0x0031, 0,
02465     9, 0x00BA, 0x006F, 0,
02466     17, 0x00BC, 0x0031, 0x2044, 0x0034, 0,
02467     17, 0x00BD, 0x0031, 0x2044, 0x0032, 0,
02468     17, 0x00BE, 0x0033, 0x2044, 0x0034, 0,
02469     1, 0x00C0, 0x0041, 0x0300, 0,
02470     1, 0x00C1, 0x0041, 0x0301, 0,
02471     1, 0x00C2, 0x0041, 0x0302, 0,
02472     1, 0x00C3, 0x0041, 0x0303, 0,
02473     1, 0x00C4, 0x0041, 0x0308, 0,
02474     1, 0x00C5, 0x0041, 0x030A, 0,
02475     1, 0x00C7, 0x0043, 0x0327, 0,
02476     1, 0x00C8, 0x0045, 0x0300, 0,
02477     1, 0x00C9, 0x0045, 0x0301, 0,
02478     1, 0x00CA, 0x0045, 0x0302, 0,
02479     1, 0x00CB, 0x0045, 0x0308, 0,
02480     1, 0x00CC, 0x0049, 0x0300, 0,
02481     1, 0x00CD, 0x0049, 0x0301, 0,
02482     1, 0x00CE, 0x0049, 0x0302, 0,
02483     1, 0x00CF, 0x0049, 0x0308, 0,
02484     1, 0x00D1, 0x004E, 0x0303, 0,
02485     1, 0x00D2, 0x004F, 0x0300, 0,
02486     1, 0x00D3, 0x004F, 0x0301, 0,
02487     1, 0x00D4, 0x004F, 0x0302, 0,
02488     1, 0x00D5, 0x004F, 0x0303, 0,
02489     1, 0x00D6, 0x004F, 0x0308, 0,
02490     1, 0x00D9, 0x0055, 0x0300, 0,
02491     1, 0x00DA, 0x0055, 0x0301, 0,
02492     1, 0x00DB, 0x0055, 0x0302, 0,
02493     1, 0x00DC, 0x0055, 0x0308, 0,
02494     1, 0x00DD, 0x0059, 0x0301, 0,
02495     1, 0x00E0, 0x0061, 0x0300, 0,
02496     1, 0x00E1, 0x0061, 0x0301, 0,
02497     1, 0x00E2, 0x0061, 0x0302, 0,
02498     1, 0x00E3, 0x0061, 0x0303, 0,
02499     1, 0x00E4, 0x0061, 0x0308, 0,
02500     1, 0x00E5, 0x0061, 0x030A, 0,
02501     1, 0x00E7, 0x0063, 0x0327, 0,
02502     1, 0x00E8, 0x0065, 0x0300, 0,
02503     1, 0x00E9, 0x0065, 0x0301, 0,
02504     1, 0x00EA, 0x0065, 0x0302, 0,
02505     1, 0x00EB, 0x0065, 0x0308, 0,
02506     1, 0x00EC, 0x0069, 0x0300, 0,
02507     1, 0x00ED, 0x0069, 0x0301, 0,
02508     1, 0x00EE, 0x0069, 0x0302, 0,
02509     1, 0x00EF, 0x0069, 0x0308, 0,
02510     1, 0x00F1, 0x006E, 0x0303, 0,
02511     1, 0x00F2, 0x006F, 0x0300, 0,
02512     1, 0x00F3, 0x006F, 0x0301, 0,
02513     1, 0x00F4, 0x006F, 0x0302, 0,
02514     1, 0x00F5, 0x006F, 0x0303, 0,
02515     1, 0x00F6, 0x006F, 0x0308, 0,
02516     1, 0x00F9, 0x0075, 0x0300, 0,
02517     1, 0x00FA, 0x0075, 0x0301, 0,
02518     1, 0x00FB, 0x0075, 0x0302, 0,
02519     1, 0x00FC, 0x0075, 0x0308, 0,
02520     1, 0x00FD, 0x0079, 0x0301, 0,
02521     1, 0x00FF, 0x0079, 0x0308, 0,
02522     1, 0x0100, 0x0041, 0x0304, 0,
02523     1, 0x0101, 0x0061, 0x0304, 0,
02524     1, 0x0102, 0x0041, 0x0306, 0,
02525     1, 0x0103, 0x0061, 0x0306, 0,
02526     1, 0x0104, 0x0041, 0x0328, 0,
02527     1, 0x0105, 0x0061, 0x0328, 0,
02528     1, 0x0106, 0x0043, 0x0301, 0,
02529     1, 0x0107, 0x0063, 0x0301, 0,
02530     1, 0x0108, 0x0043, 0x0302, 0,
02531     1, 0x0109, 0x0063, 0x0302, 0,
02532     1, 0x010A, 0x0043, 0x0307, 0,
02533     1, 0x010B, 0x0063, 0x0307, 0,
02534     1, 0x010C, 0x0043, 0x030C, 0,
02535     1, 0x010D, 0x0063, 0x030C, 0,
02536     1, 0x010E, 0x0044, 0x030C, 0,
02537     1, 0x010F, 0x0064, 0x030C, 0,
02538     1, 0x0112, 0x0045, 0x0304, 0,
02539     1, 0x0113, 0x0065, 0x0304, 0,
02540     1, 0x0114, 0x0045, 0x0306, 0,
02541     1, 0x0115, 0x0065, 0x0306, 0,
02542     1, 0x0116, 0x0045, 0x0307, 0,
02543     1, 0x0117, 0x0065, 0x0307, 0,
02544     1, 0x0118, 0x0045, 0x0328, 0,
02545     1, 0x0119, 0x0065, 0x0328, 0,
02546     1, 0x011A, 0x0045, 0x030C, 0,
02547     1, 0x011B, 0x0065, 0x030C, 0,
02548     1, 0x011C, 0x0047, 0x0302, 0,
02549     1, 0x011D, 0x0067, 0x0302, 0,
02550     1, 0x011E, 0x0047, 0x0306, 0,
02551     1, 0x011F, 0x0067, 0x0306, 0,
02552     1, 0x0120, 0x0047, 0x0307, 0,
02553     1, 0x0121, 0x0067, 0x0307, 0,
02554     1, 0x0122, 0x0047, 0x0327, 0,
02555     1, 0x0123, 0x0067, 0x0327, 0,
02556     1, 0x0124, 0x0048, 0x0302, 0,
02557     1, 0x0125, 0x0068, 0x0302, 0,
02558     1, 0x0128, 0x0049, 0x0303, 0,
02559     1, 0x0129, 0x0069, 0x0303, 0,
02560     1, 0x012A, 0x0049, 0x0304, 0,
02561     1, 0x012B, 0x0069, 0x0304, 0,
02562     1, 0x012C, 0x0049, 0x0306, 0,
02563     1, 0x012D, 0x0069, 0x0306, 0,
02564     1, 0x012E, 0x0049, 0x0328, 0,
02565     1, 0x012F, 0x0069, 0x0328, 0,
02566     1, 0x0130, 0x0049, 0x0307, 0,
02567     16, 0x0132, 0x0049, 0x004A, 0,
02568     16, 0x0133, 0x0069, 0x006A, 0,
02569     1, 0x0134, 0x004A, 0x0302, 0,
02570     1, 0x0135, 0x006A, 0x0302, 0,
02571     1, 0x0136, 0x004B, 0x0327, 0,
02572     1, 0x0137, 0x006B, 0x0327, 0,
02573     1, 0x0139, 0x004C, 0x0301, 0,
02574     1, 0x013A, 0x006C, 0x0301, 0,
02575     1, 0x013B, 0x004C, 0x0327, 0,
02576     1, 0x013C, 0x006C, 0x0327, 0,
02577     1, 0x013D, 0x004C, 0x030C, 0,
02578     1, 0x013E, 0x006C, 0x030C, 0,
02579     16, 0x013F, 0x004C, 0x00B7, 0,
02580     16, 0x0140, 0x006C, 0x00B7, 0,
02581     1, 0x0143, 0x004E, 0x0301, 0,
02582     1, 0x0144, 0x006E, 0x0301, 0,
02583     1, 0x0145, 0x004E, 0x0327, 0,
02584     1, 0x0146, 0x006E, 0x0327, 0,
02585     1, 0x0147, 0x004E, 0x030C, 0,
02586     1, 0x0148, 0x006E, 0x030C, 0,
02587     16, 0x0149, 0x02BC, 0x006E, 0,
02588     1, 0x014C, 0x004F, 0x0304, 0,
02589     1, 0x014D, 0x006F, 0x0304, 0,
02590     1, 0x014E, 0x004F, 0x0306, 0,
02591     1, 0x014F, 0x006F, 0x0306, 0,
02592     1, 0x0150, 0x004F, 0x030B, 0,
02593     1, 0x0151, 0x006F, 0x030B, 0,
02594     1, 0x0154, 0x0052, 0x0301, 0,
02595     1, 0x0155, 0x0072, 0x0301, 0,
02596     1, 0x0156, 0x0052, 0x0327, 0,
02597     1, 0x0157, 0x0072, 0x0327, 0,
02598     1, 0x0158, 0x0052, 0x030C, 0,
02599     1, 0x0159, 0x0072, 0x030C, 0,
02600     1, 0x015A, 0x0053, 0x0301, 0,
02601     1, 0x015B, 0x0073, 0x0301, 0,
02602     1, 0x015C, 0x0053, 0x0302, 0,
02603     1, 0x015D, 0x0073, 0x0302, 0,
02604     1, 0x015E, 0x0053, 0x0327, 0,
02605     1, 0x015F, 0x0073, 0x0327, 0,
02606     1, 0x0160, 0x0053, 0x030C, 0,
02607     1, 0x0161, 0x0073, 0x030C, 0,
02608     1, 0x0162, 0x0054, 0x0327, 0,
02609     1, 0x0163, 0x0074, 0x0327, 0,
02610     1, 0x0164, 0x0054, 0x030C, 0,
02611     1, 0x0165, 0x0074, 0x030C, 0,
02612     1, 0x0168, 0x0055, 0x0303, 0,
02613     1, 0x0169, 0x0075, 0x0303, 0,
02614     1, 0x016A, 0x0055, 0x0304, 0,
02615     1, 0x016B, 0x0075, 0x0304, 0,
02616     1, 0x016C, 0x0055, 0x0306, 0,
02617     1, 0x016D, 0x0075, 0x0306, 0,
02618     1, 0x016E, 0x0055, 0x030A, 0,
02619     1, 0x016F, 0x0075, 0x030A, 0,
02620     1, 0x0170, 0x0055, 0x030B, 0,
02621     1, 0x0171, 0x0075, 0x030B, 0,
02622     1, 0x0172, 0x0055, 0x0328, 0,
02623     1, 0x0173, 0x0075, 0x0328, 0,
02624     1, 0x0174, 0x0057, 0x0302, 0,
02625     1, 0x0175, 0x0077, 0x0302, 0,
02626     1, 0x0176, 0x0059, 0x0302, 0,
02627     1, 0x0177, 0x0079, 0x0302, 0,
02628     1, 0x0178, 0x0059, 0x0308, 0,
02629     1, 0x0179, 0x005A, 0x0301, 0,
02630     1, 0x017A, 0x007A, 0x0301, 0,
02631     1, 0x017B, 0x005A, 0x0307, 0,
02632     1, 0x017C, 0x007A, 0x0307, 0,
02633     1, 0x017D, 0x005A, 0x030C, 0,
02634     1, 0x017E, 0x007A, 0x030C, 0,
02635     16, 0x017F, 0x0073, 0,
02636     1, 0x01A0, 0x004F, 0x031B, 0,
02637     1, 0x01A1, 0x006F, 0x031B, 0,
02638     1, 0x01AF, 0x0055, 0x031B, 0,
02639     1, 0x01B0, 0x0075, 0x031B, 0,
02640     16, 0x01C4, 0x0044, 0x017D, 0,
02641     16, 0x01C5, 0x0044, 0x017E, 0,
02642     16, 0x01C6, 0x0064, 0x017E, 0,
02643     16, 0x01C7, 0x004C, 0x004A, 0,
02644     16, 0x01C8, 0x004C, 0x006A, 0,
02645     16, 0x01C9, 0x006C, 0x006A, 0,
02646     16, 0x01CA, 0x004E, 0x004A, 0,
02647     16, 0x01CB, 0x004E, 0x006A, 0,
02648     16, 0x01CC, 0x006E, 0x006A, 0,
02649     1, 0x01CD, 0x0041, 0x030C, 0,
02650     1, 0x01CE, 0x0061, 0x030C, 0,
02651     1, 0x01CF, 0x0049, 0x030C, 0,
02652     1, 0x01D0, 0x0069, 0x030C, 0,
02653     1, 0x01D1, 0x004F, 0x030C, 0,
02654     1, 0x01D2, 0x006F, 0x030C, 0,
02655     1, 0x01D3, 0x0055, 0x030C, 0,
02656     1, 0x01D4, 0x0075, 0x030C, 0,
02657     1, 0x01D5, 0x00DC, 0x0304, 0,
02658     1, 0x01D6, 0x00FC, 0x0304, 0,
02659     1, 0x01D7, 0x00DC, 0x0301, 0,
02660     1, 0x01D8, 0x00FC, 0x0301, 0,
02661     1, 0x01D9, 0x00DC, 0x030C, 0,
02662     1, 0x01DA, 0x00FC, 0x030C, 0,
02663     1, 0x01DB, 0x00DC, 0x0300, 0,
02664     1, 0x01DC, 0x00FC, 0x0300, 0,
02665     1, 0x01DE, 0x00C4, 0x0304, 0,
02666     1, 0x01DF, 0x00E4, 0x0304, 0,
02667     1, 0x01E0, 0x0226, 0x0304, 0,
02668     1, 0x01E1, 0x0227, 0x0304, 0,
02669     1, 0x01E2, 0x00C6, 0x0304, 0,
02670     1, 0x01E3, 0x00E6, 0x0304, 0,
02671     1, 0x01E6, 0x0047, 0x030C, 0,
02672     1, 0x01E7, 0x0067, 0x030C, 0,
02673     1, 0x01E8, 0x004B, 0x030C, 0,
02674     1, 0x01E9, 0x006B, 0x030C, 0,
02675     1, 0x01EA, 0x004F, 0x0328, 0,
02676     1, 0x01EB, 0x006F, 0x0328, 0,
02677     1, 0x01EC, 0x01EA, 0x0304, 0,
02678     1, 0x01ED, 0x01EB, 0x0304, 0,
02679     1, 0x01EE, 0x01B7, 0x030C, 0,
02680     1, 0x01EF, 0x0292, 0x030C, 0,
02681     1, 0x01F0, 0x006A, 0x030C, 0,
02682     16, 0x01F1, 0x0044, 0x005A, 0,
02683     16, 0x01F2, 0x0044, 0x007A, 0,
02684     16, 0x01F3, 0x0064, 0x007A, 0,
02685     1, 0x01F4, 0x0047, 0x0301, 0,
02686     1, 0x01F5, 0x0067, 0x0301, 0,
02687     1, 0x01F8, 0x004E, 0x0300, 0,
02688     1, 0x01F9, 0x006E, 0x0300, 0,
02689     1, 0x01FA, 0x00C5, 0x0301, 0,
02690     1, 0x01FB, 0x00E5, 0x0301, 0,
02691     1, 0x01FC, 0x00C6, 0x0301, 0,
02692     1, 0x01FD, 0x00E6, 0x0301, 0,
02693     1, 0x01FE, 0x00D8, 0x0301, 0,
02694     1, 0x01FF, 0x00F8, 0x0301, 0,
02695     1, 0x0200, 0x0041, 0x030F, 0,
02696     1, 0x0201, 0x0061, 0x030F, 0,
02697     1, 0x0202, 0x0041, 0x0311, 0,
02698     1, 0x0203, 0x0061, 0x0311, 0,
02699     1, 0x0204, 0x0045, 0x030F, 0,
02700     1, 0x0205, 0x0065, 0x030F, 0,
02701     1, 0x0206, 0x0045, 0x0311, 0,
02702     1, 0x0207, 0x0065, 0x0311, 0,
02703     1, 0x0208, 0x0049, 0x030F, 0,
02704     1, 0x0209, 0x0069, 0x030F, 0,
02705     1, 0x020A, 0x0049, 0x0311, 0,
02706     1, 0x020B, 0x0069, 0x0311, 0,
02707     1, 0x020C, 0x004F, 0x030F, 0,
02708     1, 0x020D, 0x006F, 0x030F, 0,
02709     1, 0x020E, 0x004F, 0x0311, 0,
02710     1, 0x020F, 0x006F, 0x0311, 0,
02711     1, 0x0210, 0x0052, 0x030F, 0,
02712     1, 0x0211, 0x0072, 0x030F, 0,
02713     1, 0x0212, 0x0052, 0x0311, 0,
02714     1, 0x0213, 0x0072, 0x0311, 0,
02715     1, 0x0214, 0x0055, 0x030F, 0,
02716     1, 0x0215, 0x0075, 0x030F, 0,
02717     1, 0x0216, 0x0055, 0x0311, 0,
02718     1, 0x0217, 0x0075, 0x0311, 0,
02719     1, 0x0218, 0x0053, 0x0326, 0,
02720     1, 0x0219, 0x0073, 0x0326, 0,
02721     1, 0x021A, 0x0054, 0x0326, 0,
02722     1, 0x021B, 0x0074, 0x0326, 0,
02723     1, 0x021E, 0x0048, 0x030C, 0,
02724     1, 0x021F, 0x0068, 0x030C, 0,
02725     1, 0x0226, 0x0041, 0x0307, 0,
02726     1, 0x0227, 0x0061, 0x0307, 0,
02727     1, 0x0228, 0x0045, 0x0327, 0,
02728     1, 0x0229, 0x0065, 0x0327, 0,
02729     1, 0x022A, 0x00D6, 0x0304, 0,
02730     1, 0x022B, 0x00F6, 0x0304, 0,
02731     1, 0x022C, 0x00D5, 0x0304, 0,
02732     1, 0x022D, 0x00F5, 0x0304, 0,
02733     1, 0x022E, 0x004F, 0x0307, 0,
02734     1, 0x022F, 0x006F, 0x0307, 0,
02735     1, 0x0230, 0x022E, 0x0304, 0,
02736     1, 0x0231, 0x022F, 0x0304, 0,
02737     1, 0x0232, 0x0059, 0x0304, 0,
02738     1, 0x0233, 0x0079, 0x0304, 0,
02739     9, 0x02B0, 0x0068, 0,
02740     9, 0x02B1, 0x0266, 0,
02741     9, 0x02B2, 0x006A, 0,
02742     9, 0x02B3, 0x0072, 0,
02743     9, 0x02B4, 0x0279, 0,
02744     9, 0x02B5, 0x027B, 0,
02745     9, 0x02B6, 0x0281, 0,
02746     9, 0x02B7, 0x0077, 0,
02747     9, 0x02B8, 0x0079, 0,
02748     16, 0x02D8, 0x0020, 0x0306, 0,
02749     16, 0x02D9, 0x0020, 0x0307, 0,
02750     16, 0x02DA, 0x0020, 0x030A, 0,
02751     16, 0x02DB, 0x0020, 0x0328, 0,
02752     16, 0x02DC, 0x0020, 0x0303, 0,
02753     16, 0x02DD, 0x0020, 0x030B, 0,
02754     9, 0x02E0, 0x0263, 0,
02755     9, 0x02E1, 0x006C, 0,
02756     9, 0x02E2, 0x0073, 0,
02757     9, 0x02E3, 0x0078, 0,
02758     9, 0x02E4, 0x0295, 0,
02759     1, 0x0340, 0x0300, 0,
02760     1, 0x0341, 0x0301, 0,
02761     1, 0x0343, 0x0313, 0,
02762     1, 0x0344, 0x0308, 0x0301, 0,
02763     1, 0x0374, 0x02B9, 0,
02764     16, 0x037A, 0x0020, 0x0345, 0,
02765     1, 0x037E, 0x003B, 0,
02766     16, 0x0384, 0x0020, 0x0301, 0,
02767     1, 0x0385, 0x00A8, 0x0301, 0,
02768     1, 0x0386, 0x0391, 0x0301, 0,
02769     1, 0x0387, 0x00B7, 0,
02770     1, 0x0388, 0x0395, 0x0301, 0,
02771     1, 0x0389, 0x0397, 0x0301, 0,
02772     1, 0x038A, 0x0399, 0x0301, 0,
02773     1, 0x038C, 0x039F, 0x0301, 0,
02774     1, 0x038E, 0x03A5, 0x0301, 0,
02775     1, 0x038F, 0x03A9, 0x0301, 0,
02776     1, 0x0390, 0x03CA, 0x0301, 0,
02777     1, 0x03AA, 0x0399, 0x0308, 0,
02778     1, 0x03AB, 0x03A5, 0x0308, 0,
02779     1, 0x03AC, 0x03B1, 0x0301, 0,
02780     1, 0x03AD, 0x03B5, 0x0301, 0,
02781     1, 0x03AE, 0x03B7, 0x0301, 0,
02782     1, 0x03AF, 0x03B9, 0x0301, 0,
02783     1, 0x03B0, 0x03CB, 0x0301, 0,
02784     1, 0x03CA, 0x03B9, 0x0308, 0,
02785     1, 0x03CB, 0x03C5, 0x0308, 0,
02786     1, 0x03CC, 0x03BF, 0x0301, 0,
02787     1, 0x03CD, 0x03C5, 0x0301, 0,
02788     1, 0x03CE, 0x03C9, 0x0301, 0,
02789     16, 0x03D0, 0x03B2, 0,
02790     16, 0x03D1, 0x03B8, 0,
02791     16, 0x03D2, 0x03A5, 0,
02792     1, 0x03D3, 0x03D2, 0x0301, 0,
02793     1, 0x03D4, 0x03D2, 0x0308, 0,
02794     16, 0x03D5, 0x03C6, 0,
02795     16, 0x03D6, 0x03C0, 0,
02796     16, 0x03F0, 0x03BA, 0,
02797     16, 0x03F1, 0x03C1, 0,
02798     16, 0x03F2, 0x03C2, 0,
02799     16, 0x03F4, 0x0398, 0,
02800     16, 0x03F5, 0x03B5, 0,
02801     1, 0x0400, 0x0415, 0x0300, 0,
02802     1, 0x0401, 0x0415, 0x0308, 0,
02803     1, 0x0403, 0x0413, 0x0301, 0,
02804     1, 0x0407, 0x0406, 0x0308, 0,
02805     1, 0x040C, 0x041A, 0x0301, 0,
02806     1, 0x040D, 0x0418, 0x0300, 0,
02807     1, 0x040E, 0x0423, 0x0306, 0,
02808     1, 0x0419, 0x0418, 0x0306, 0,
02809     1, 0x0439, 0x0438, 0x0306, 0,
02810     1, 0x0450, 0x0435, 0x0300, 0,
02811     1, 0x0451, 0x0435, 0x0308, 0,
02812     1, 0x0453, 0x0433, 0x0301, 0,
02813     1, 0x0457, 0x0456, 0x0308, 0,
02814     1, 0x045C, 0x043A, 0x0301, 0,
02815     1, 0x045D, 0x0438, 0x0300, 0,
02816     1, 0x045E, 0x0443, 0x0306, 0,
02817     1, 0x0476, 0x0474, 0x030F, 0,
02818     1, 0x0477, 0x0475, 0x030F, 0,
02819     1, 0x04C1, 0x0416, 0x0306, 0,
02820     1, 0x04C2, 0x0436, 0x0306, 0,
02821     1, 0x04D0, 0x0410, 0x0306, 0,
02822     1, 0x04D1, 0x0430, 0x0306, 0,
02823     1, 0x04D2, 0x0410, 0x0308, 0,
02824     1, 0x04D3, 0x0430, 0x0308, 0,
02825     1, 0x04D6, 0x0415, 0x0306, 0,
02826     1, 0x04D7, 0x0435, 0x0306, 0,
02827     1, 0x04DA, 0x04D8, 0x0308, 0,
02828     1, 0x04DB, 0x04D9, 0x0308, 0,
02829     1, 0x04DC, 0x0416, 0x0308, 0,
02830     1, 0x04DD, 0x0436, 0x0308, 0,
02831     1, 0x04DE, 0x0417, 0x0308, 0,
02832     1, 0x04DF, 0x0437, 0x0308, 0,
02833     1, 0x04E2, 0x0418, 0x0304, 0,
02834     1, 0x04E3, 0x0438, 0x0304, 0,
02835     1, 0x04E4, 0x0418, 0x0308, 0,
02836     1, 0x04E5, 0x0438, 0x0308, 0,
02837     1, 0x04E6, 0x041E, 0x0308, 0,
02838     1, 0x04E7, 0x043E, 0x0308, 0,
02839     1, 0x04EA, 0x04E8, 0x0308, 0,
02840     1, 0x04EB, 0x04E9, 0x0308, 0,
02841     1, 0x04EC, 0x042D, 0x0308, 0,
02842     1, 0x04ED, 0x044D, 0x0308, 0,
02843     1, 0x04EE, 0x0423, 0x0304, 0,
02844     1, 0x04EF, 0x0443, 0x0304, 0,
02845     1, 0x04F0, 0x0423, 0x0308, 0,
02846     1, 0x04F1, 0x0443, 0x0308, 0,
02847     1, 0x04F2, 0x0423, 0x030B, 0,
02848     1, 0x04F3, 0x0443, 0x030B, 0,
02849     1, 0x04F4, 0x0427, 0x0308, 0,
02850     1, 0x04F5, 0x0447, 0x0308, 0,
02851     1, 0x04F8, 0x042B, 0x0308, 0,
02852     1, 0x04F9, 0x044B, 0x0308, 0,
02853     16, 0x0587, 0x0565, 0x0582, 0,
02854     1, 0x0622, 0x0627, 0x0653, 0,
02855     1, 0x0623, 0x0627, 0x0654, 0,
02856     1, 0x0624, 0x0648, 0x0654, 0,
02857     1, 0x0625, 0x0627, 0x0655, 0,
02858     1, 0x0626, 0x064A, 0x0654, 0,
02859     16, 0x0675, 0x0627, 0x0674, 0,
02860     16, 0x0676, 0x0648, 0x0674, 0,
02861     16, 0x0677, 0x06C7, 0x0674, 0,
02862     16, 0x0678, 0x064A, 0x0674, 0,
02863     1, 0x06C0, 0x06D5, 0x0654, 0,
02864     1, 0x06C2, 0x06C1, 0x0654, 0,
02865     1, 0x06D3, 0x06D2, 0x0654, 0,
02866     1, 0x0929, 0x0928, 0x093C, 0,
02867     1, 0x0931, 0x0930, 0x093C, 0,
02868     1, 0x0934, 0x0933, 0x093C, 0,
02869     1, 0x0958, 0x0915, 0x093C, 0,
02870     1, 0x0959, 0x0916, 0x093C, 0,
02871     1, 0x095A, 0x0917, 0x093C, 0,
02872     1, 0x095B, 0x091C, 0x093C, 0,
02873     1, 0x095C, 0x0921, 0x093C, 0,
02874     1, 0x095D, 0x0922, 0x093C, 0,
02875     1, 0x095E, 0x092B, 0x093C, 0,
02876     1, 0x095F, 0x092F, 0x093C, 0,
02877     1, 0x09CB, 0x09C7, 0x09BE, 0,
02878     1, 0x09CC, 0x09C7, 0x09D7, 0,
02879     1, 0x09DC, 0x09A1, 0x09BC, 0,
02880     1, 0x09DD, 0x09A2, 0x09BC, 0,
02881     1, 0x09DF, 0x09AF, 0x09BC, 0,
02882     1, 0x0A33, 0x0A32, 0x0A3C, 0,
02883     1, 0x0A36, 0x0A38, 0x0A3C, 0,
02884     1, 0x0A59, 0x0A16, 0x0A3C, 0,
02885     1, 0x0A5A, 0x0A17, 0x0A3C, 0,
02886     1, 0x0A5B, 0x0A1C, 0x0A3C, 0,
02887     1, 0x0A5E, 0x0A2B, 0x0A3C, 0,
02888     1, 0x0B48, 0x0B47, 0x0B56, 0,
02889     1, 0x0B4B, 0x0B47, 0x0B3E, 0,
02890     1, 0x0B4C, 0x0B47, 0x0B57, 0,
02891     1, 0x0B5C, 0x0B21, 0x0B3C, 0,
02892     1, 0x0B5D, 0x0B22, 0x0B3C, 0,
02893     1, 0x0B94, 0x0B92, 0x0BD7, 0,
02894     1, 0x0BCA, 0x0BC6, 0x0BBE, 0,
02895     1, 0x0BCB, 0x0BC7, 0x0BBE, 0,
02896     1, 0x0BCC, 0x0BC6, 0x0BD7, 0,
02897     1, 0x0C48, 0x0C46, 0x0C56, 0,
02898     1, 0x0CC0, 0x0CBF, 0x0CD5, 0,
02899     1, 0x0CC7, 0x0CC6, 0x0CD5, 0,
02900     1, 0x0CC8, 0x0CC6, 0x0CD6, 0,
02901     1, 0x0CCA, 0x0CC6, 0x0CC2, 0,
02902     1, 0x0CCB, 0x0CCA, 0x0CD5, 0,
02903     1, 0x0D4A, 0x0D46, 0x0D3E, 0,
02904     1, 0x0D4B, 0x0D47, 0x0D3E, 0,
02905     1, 0x0D4C, 0x0D46, 0x0D57, 0,
02906     1, 0x0DDA, 0x0DD9, 0x0DCA, 0,
02907     1, 0x0DDC, 0x0DD9, 0x0DCF, 0,
02908     1, 0x0DDD, 0x0DDC, 0x0DCA, 0,
02909     1, 0x0DDE, 0x0DD9, 0x0DDF, 0,
02910     16, 0x0E33, 0x0E4D, 0x0E32, 0,
02911     16, 0x0EB3, 0x0ECD, 0x0EB2, 0,
02912     16, 0x0EDC, 0x0EAB, 0x0E99, 0,
02913     16, 0x0EDD, 0x0EAB, 0x0EA1, 0,
02914     3, 0x0F0C, 0x0F0B, 0,
02915     1, 0x0F43, 0x0F42, 0x0FB7, 0,
02916     1, 0x0F4D, 0x0F4C, 0x0FB7, 0,
02917     1, 0x0F52, 0x0F51, 0x0FB7, 0,
02918     1, 0x0F57, 0x0F56, 0x0FB7, 0,
02919     1, 0x0F5C, 0x0F5B, 0x0FB7, 0,
02920     1, 0x0F69, 0x0F40, 0x0FB5, 0,
02921     1, 0x0F73, 0x0F71, 0x0F72, 0,
02922     1, 0x0F75, 0x0F71, 0x0F74, 0,
02923     1, 0x0F76, 0x0FB2, 0x0F80, 0,
02924     16, 0x0F77, 0x0FB2, 0x0F81, 0,
02925     1, 0x0F78, 0x0FB3, 0x0F80, 0,
02926     16, 0x0F79, 0x0FB3, 0x0F81, 0,
02927     1, 0x0F81, 0x0F71, 0x0F80, 0,
02928     1, 0x0F93, 0x0F92, 0x0FB7, 0,
02929     1, 0x0F9D, 0x0F9C, 0x0FB7, 0,
02930     1, 0x0FA2, 0x0FA1, 0x0FB7, 0,
02931     1, 0x0FA7, 0x0FA6, 0x0FB7, 0,
02932     1, 0x0FAC, 0x0FAB, 0x0FB7, 0,
02933     1, 0x0FB9, 0x0F90, 0x0FB5, 0,
02934     1, 0x1026, 0x1025, 0x102E, 0,
02935     1, 0x1E00, 0x0041, 0x0325, 0,
02936     1, 0x1E01, 0x0061, 0x0325, 0,
02937     1, 0x1E02, 0x0042, 0x0307, 0,
02938     1, 0x1E03, 0x0062, 0x0307, 0,
02939     1, 0x1E04, 0x0042, 0x0323, 0,
02940     1, 0x1E05, 0x0062, 0x0323, 0,
02941     1, 0x1E06, 0x0042, 0x0331, 0,
02942     1, 0x1E07, 0x0062, 0x0331, 0,
02943     1, 0x1E08, 0x00C7, 0x0301, 0,
02944     1, 0x1E09, 0x00E7, 0x0301, 0,
02945     1, 0x1E0A, 0x0044, 0x0307, 0,
02946     1, 0x1E0B, 0x0064, 0x0307, 0,
02947     1, 0x1E0C, 0x0044, 0x0323, 0,
02948     1, 0x1E0D, 0x0064, 0x0323, 0,
02949     1, 0x1E0E, 0x0044, 0x0331, 0,
02950     1, 0x1E0F, 0x0064, 0x0331, 0,
02951     1, 0x1E10, 0x0044, 0x0327, 0,
02952     1, 0x1E11, 0x0064, 0x0327, 0,
02953     1, 0x1E12, 0x0044, 0x032D, 0,
02954     1, 0x1E13, 0x0064, 0x032D, 0,
02955     1, 0x1E14, 0x0112, 0x0300, 0,
02956     1, 0x1E15, 0x0113, 0x0300, 0,
02957     1, 0x1E16, 0x0112, 0x0301, 0,
02958     1, 0x1E17, 0x0113, 0x0301, 0,
02959     1, 0x1E18, 0x0045, 0x032D, 0,
02960     1, 0x1E19, 0x0065, 0x032D, 0,
02961     1, 0x1E1A, 0x0045, 0x0330, 0,
02962     1, 0x1E1B, 0x0065, 0x0330, 0,
02963     1, 0x1E1C, 0x0228, 0x0306, 0,
02964     1, 0x1E1D, 0x0229, 0x0306, 0,
02965     1, 0x1E1E, 0x0046, 0x0307, 0,
02966     1, 0x1E1F, 0x0066, 0x0307, 0,
02967     1, 0x1E20, 0x0047, 0x0304, 0,
02968     1, 0x1E21, 0x0067, 0x0304, 0,
02969     1, 0x1E22, 0x0048, 0x0307, 0,
02970     1, 0x1E23, 0x0068, 0x0307, 0,
02971     1, 0x1E24, 0x0048, 0x0323, 0,
02972     1, 0x1E25, 0x0068, 0x0323, 0,
02973     1, 0x1E26, 0x0048, 0x0308, 0,
02974     1, 0x1E27, 0x0068, 0x0308, 0,
02975     1, 0x1E28, 0x0048, 0x0327, 0,
02976     1, 0x1E29, 0x0068, 0x0327, 0,
02977     1, 0x1E2A, 0x0048, 0x032E, 0,
02978     1, 0x1E2B, 0x0068, 0x032E, 0,
02979     1, 0x1E2C, 0x0049, 0x0330, 0,
02980     1, 0x1E2D, 0x0069, 0x0330, 0,
02981     1, 0x1E2E, 0x00CF, 0x0301, 0,
02982     1, 0x1E2F, 0x00EF, 0x0301, 0,
02983     1, 0x1E30, 0x004B, 0x0301, 0,
02984     1, 0x1E31, 0x006B, 0x0301, 0,
02985     1, 0x1E32, 0x004B, 0x0323, 0,
02986     1, 0x1E33, 0x006B, 0x0323, 0,
02987     1, 0x1E34, 0x004B, 0x0331, 0,
02988     1, 0x1E35, 0x006B, 0x0331, 0,
02989     1, 0x1E36, 0x004C, 0x0323, 0,
02990     1, 0x1E37, 0x006C, 0x0323, 0,
02991     1, 0x1E38, 0x1E36, 0x0304, 0,
02992     1, 0x1E39, 0x1E37, 0x0304, 0,
02993     1, 0x1E3A, 0x004C, 0x0331, 0,
02994     1, 0x1E3B, 0x006C, 0x0331, 0,
02995     1, 0x1E3C, 0x004C, 0x032D, 0,
02996     1, 0x1E3D, 0x006C, 0x032D, 0,
02997     1, 0x1E3E, 0x004D, 0x0301, 0,
02998     1, 0x1E3F, 0x006D, 0x0301, 0,
02999     1, 0x1E40, 0x004D, 0x0307, 0,
03000     1, 0x1E41, 0x006D, 0x0307, 0,
03001     1, 0x1E42, 0x004D, 0x0323, 0,
03002     1, 0x1E43, 0x006D, 0x0323, 0,
03003     1, 0x1E44, 0x004E, 0x0307, 0,
03004     1, 0x1E45, 0x006E, 0x0307, 0,
03005     1, 0x1E46, 0x004E, 0x0323, 0,
03006     1, 0x1E47, 0x006E, 0x0323, 0,
03007     1, 0x1E48, 0x004E, 0x0331, 0,
03008     1, 0x1E49, 0x006E, 0x0331, 0,
03009     1, 0x1E4A, 0x004E, 0x032D, 0,
03010     1, 0x1E4B, 0x006E, 0x032D, 0,
03011     1, 0x1E4C, 0x00D5, 0x0301, 0,
03012     1, 0x1E4D, 0x00F5, 0x0301, 0,
03013     1, 0x1E4E, 0x00D5, 0x0308, 0,
03014     1, 0x1E4F, 0x00F5, 0x0308, 0,
03015     1, 0x1E50, 0x014C, 0x0300, 0,
03016     1, 0x1E51, 0x014D, 0x0300, 0,
03017     1, 0x1E52, 0x014C, 0x0301, 0,
03018     1, 0x1E53, 0x014D, 0x0301, 0,
03019     1, 0x1E54, 0x0050, 0x0301, 0,
03020     1, 0x1E55, 0x0070, 0x0301, 0,
03021     1, 0x1E56, 0x0050, 0x0307, 0,
03022     1, 0x1E57, 0x0070, 0x0307, 0,
03023     1, 0x1E58, 0x0052, 0x0307, 0,
03024     1, 0x1E59, 0x0072, 0x0307, 0,
03025     1, 0x1E5A, 0x0052, 0x0323, 0,
03026     1, 0x1E5B, 0x0072, 0x0323, 0,
03027     1, 0x1E5C, 0x1E5A, 0x0304, 0,
03028     1, 0x1E5D, 0x1E5B, 0x0304, 0,
03029     1, 0x1E5E, 0x0052, 0x0331, 0,
03030     1, 0x1E5F, 0x0072, 0x0331, 0,
03031     1, 0x1E60, 0x0053, 0x0307, 0,
03032     1, 0x1E61, 0x0073, 0x0307, 0,
03033     1, 0x1E62, 0x0053, 0x0323, 0,
03034     1, 0x1E63, 0x0073, 0x0323, 0,
03035     1, 0x1E64, 0x015A, 0x0307, 0,
03036     1, 0x1E65, 0x015B, 0x0307, 0,
03037     1, 0x1E66, 0x0160, 0x0307, 0,
03038     1, 0x1E67, 0x0161, 0x0307, 0,
03039     1, 0x1E68, 0x1E62, 0x0307, 0,
03040     1, 0x1E69, 0x1E63, 0x0307, 0,
03041     1, 0x1E6A, 0x0054, 0x0307, 0,
03042     1, 0x1E6B, 0x0074, 0x0307, 0,
03043     1, 0x1E6C, 0x0054, 0x0323, 0,
03044     1, 0x1E6D, 0x0074, 0x0323, 0,
03045     1, 0x1E6E, 0x0054, 0x0331, 0,
03046     1, 0x1E6F, 0x0074, 0x0331, 0,
03047     1, 0x1E70, 0x0054, 0x032D, 0,
03048     1, 0x1E71, 0x0074, 0x032D, 0,
03049     1, 0x1E72, 0x0055, 0x0324, 0,
03050     1, 0x1E73, 0x0075, 0x0324, 0,
03051     1, 0x1E74, 0x0055, 0x0330, 0,
03052     1, 0x1E75, 0x0075, 0x0330, 0,
03053     1, 0x1E76, 0x0055, 0x032D, 0,
03054     1, 0x1E77, 0x0075, 0x032D, 0,
03055     1, 0x1E78, 0x0168, 0x0301, 0,
03056     1, 0x1E79, 0x0169, 0x0301, 0,
03057     1, 0x1E7A, 0x016A, 0x0308, 0,
03058     1, 0x1E7B, 0x016B, 0x0308, 0,
03059     1, 0x1E7C, 0x0056, 0x0303, 0,
03060     1, 0x1E7D, 0x0076, 0x0303, 0,
03061     1, 0x1E7E, 0x0056, 0x0323, 0,
03062     1, 0x1E7F, 0x0076, 0x0323, 0,
03063     1, 0x1E80, 0x0057, 0x0300, 0,
03064     1, 0x1E81, 0x0077, 0x0300, 0,
03065     1, 0x1E82, 0x0057, 0x0301, 0,
03066     1, 0x1E83, 0x0077, 0x0301, 0,
03067     1, 0x1E84, 0x0057, 0x0308, 0,
03068     1, 0x1E85, 0x0077, 0x0308, 0,
03069     1, 0x1E86, 0x0057, 0x0307, 0,
03070     1, 0x1E87, 0x0077, 0x0307, 0,
03071     1, 0x1E88, 0x0057, 0x0323, 0,
03072     1, 0x1E89, 0x0077, 0x0323, 0,
03073     1, 0x1E8A, 0x0058, 0x0307, 0,
03074     1, 0x1E8B, 0x0078, 0x0307, 0,
03075     1, 0x1E8C, 0x0058, 0x0308, 0,
03076     1, 0x1E8D, 0x0078, 0x0308, 0,
03077     1, 0x1E8E, 0x0059, 0x0307, 0,
03078     1, 0x1E8F, 0x0079, 0x0307, 0,
03079     1, 0x1E90, 0x005A, 0x0302, 0,
03080     1, 0x1E91, 0x007A, 0x0302, 0,
03081     1, 0x1E92, 0x005A, 0x0323, 0,
03082     1, 0x1E93, 0x007A, 0x0323, 0,
03083     1, 0x1E94, 0x005A, 0x0331, 0,
03084     1, 0x1E95, 0x007A, 0x0331, 0,
03085     1, 0x1E96, 0x0068, 0x0331, 0,
03086     1, 0x1E97, 0x0074, 0x0308, 0,
03087     1, 0x1E98, 0x0077, 0x030A, 0,
03088     1, 0x1E99, 0x0079, 0x030A, 0,
03089     16, 0x1E9A, 0x0061, 0x02BE, 0,
03090     1, 0x1E9B, 0x017F, 0x0307, 0,
03091     1, 0x1EA0, 0x0041, 0x0323, 0,
03092     1, 0x1EA1, 0x0061, 0x0323, 0,
03093     1, 0x1EA2, 0x0041, 0x0309, 0,
03094     1, 0x1EA3, 0x0061, 0x0309, 0,
03095     1, 0x1EA4, 0x00C2, 0x0301, 0,
03096     1, 0x1EA5, 0x00E2, 0x0301, 0,
03097     1, 0x1EA6, 0x00C2, 0x0300, 0,
03098     1, 0x1EA7, 0x00E2, 0x0300, 0,
03099     1, 0x1EA8, 0x00C2, 0x0309, 0,
03100     1, 0x1EA9, 0x00E2, 0x0309, 0,
03101     1, 0x1EAA, 0x00C2, 0x0303, 0,
03102     1, 0x1EAB, 0x00E2, 0x0303, 0,
03103     1, 0x1EAC, 0x1EA0, 0x0302, 0,
03104     1, 0x1EAD, 0x1EA1, 0x0302, 0,
03105     1, 0x1EAE, 0x0102, 0x0301, 0,
03106     1, 0x1EAF, 0x0103, 0x0301, 0,
03107     1, 0x1EB0, 0x0102, 0x0300, 0,
03108     1, 0x1EB1, 0x0103, 0x0300, 0,
03109     1, 0x1EB2, 0x0102, 0x0309, 0,
03110     1, 0x1EB3, 0x0103, 0x0309, 0,
03111     1, 0x1EB4, 0x0102, 0x0303, 0,
03112     1, 0x1EB5, 0x0103, 0x0303, 0,
03113     1, 0x1EB6, 0x1EA0, 0x0306, 0,
03114     1, 0x1EB7, 0x1EA1, 0x0306, 0,
03115     1, 0x1EB8, 0x0045, 0x0323, 0,
03116     1, 0x1EB9, 0x0065, 0x0323, 0,
03117     1, 0x1EBA, 0x0045, 0x0309, 0,
03118     1, 0x1EBB, 0x0065, 0x0309, 0,
03119     1, 0x1EBC, 0x0045, 0x0303, 0,
03120     1, 0x1EBD, 0x0065, 0x0303, 0,
03121     1, 0x1EBE, 0x00CA, 0x0301, 0,
03122     1, 0x1EBF, 0x00EA, 0x0301, 0,
03123     1, 0x1EC0, 0x00CA, 0x0300, 0,
03124     1, 0x1EC1, 0x00EA, 0x0300, 0,
03125     1, 0x1EC2, 0x00CA, 0x0309, 0,
03126     1, 0x1EC3, 0x00EA, 0x0309, 0,
03127     1, 0x1EC4, 0x00CA, 0x0303, 0,
03128     1, 0x1EC5, 0x00EA, 0x0303, 0,
03129     1, 0x1EC6, 0x1EB8, 0x0302, 0,
03130     1, 0x1EC7, 0x1EB9, 0x0302, 0,
03131     1, 0x1EC8, 0x0049, 0x0309, 0,
03132     1, 0x1EC9, 0x0069, 0x0309, 0,
03133     1, 0x1ECA, 0x0049, 0x0323, 0,
03134     1, 0x1ECB, 0x0069, 0x0323, 0,
03135     1, 0x1ECC, 0x004F, 0x0323, 0,
03136     1, 0x1ECD, 0x006F, 0x0323, 0,
03137     1, 0x1ECE, 0x004F, 0x0309, 0,
03138     1, 0x1ECF, 0x006F, 0x0309, 0,
03139     1, 0x1ED0, 0x00D4, 0x0301, 0,
03140     1, 0x1ED1, 0x00F4, 0x0301, 0,
03141     1, 0x1ED2, 0x00D4, 0x0300, 0,
03142     1, 0x1ED3, 0x00F4, 0x0300, 0,
03143     1, 0x1ED4, 0x00D4, 0x0309, 0,
03144     1, 0x1ED5, 0x00F4, 0x0309, 0,
03145     1, 0x1ED6, 0x00D4, 0x0303, 0,
03146     1, 0x1ED7, 0x00F4, 0x0303, 0,
03147     1, 0x1ED8, 0x1ECC, 0x0302, 0,
03148     1, 0x1ED9, 0x1ECD, 0x0302, 0,
03149     1, 0x1EDA, 0x01A0, 0x0301, 0,
03150     1, 0x1EDB, 0x01A1, 0x0301, 0,
03151     1, 0x1EDC, 0x01A0, 0x0300, 0,
03152     1, 0x1EDD, 0x01A1, 0x0300, 0,
03153     1, 0x1EDE, 0x01A0, 0x0309, 0,
03154     1, 0x1EDF, 0x01A1, 0x0309, 0,
03155     1, 0x1EE0, 0x01A0, 0x0303, 0,
03156     1, 0x1EE1, 0x01A1, 0x0303, 0,
03157     1, 0x1EE2, 0x01A0, 0x0323, 0,
03158     1, 0x1EE3, 0x01A1, 0x0323, 0,
03159     1, 0x1EE4, 0x0055, 0x0323, 0,
03160     1, 0x1EE5, 0x0075, 0x0323, 0,
03161     1, 0x1EE6, 0x0055, 0x0309, 0,
03162     1, 0x1EE7, 0x0075, 0x0309, 0,
03163     1, 0x1EE8, 0x01AF, 0x0301, 0,
03164     1, 0x1EE9, 0x01B0, 0x0301, 0,
03165     1, 0x1EEA, 0x01AF, 0x0300, 0,
03166     1, 0x1EEB, 0x01B0, 0x0300, 0,
03167     1, 0x1EEC, 0x01AF, 0x0309, 0,
03168     1, 0x1EED, 0x01B0, 0x0309, 0,
03169     1, 0x1EEE, 0x01AF, 0x0303, 0,
03170     1, 0x1EEF, 0x01B0, 0x0303, 0,
03171     1, 0x1EF0, 0x01AF, 0x0323, 0,
03172     1, 0x1EF1, 0x01B0, 0x0323, 0,
03173     1, 0x1EF2, 0x0059, 0x0300, 0,
03174     1, 0x1EF3, 0x0079, 0x0300, 0,
03175     1, 0x1EF4, 0x0059, 0x0323, 0,
03176     1, 0x1EF5, 0x0079, 0x0323, 0,
03177     1, 0x1EF6, 0x0059, 0x0309, 0,
03178     1, 0x1EF7, 0x0079, 0x0309, 0,
03179     1, 0x1EF8, 0x0059, 0x0303, 0,
03180     1, 0x1EF9, 0x0079, 0x0303, 0,
03181     1, 0x1F00, 0x03B1, 0x0313, 0,
03182     1, 0x1F01, 0x03B1, 0x0314, 0,
03183     1, 0x1F02, 0x1F00, 0x0300, 0,
03184     1, 0x1F03, 0x1F01, 0x0300, 0,
03185     1, 0x1F04, 0x1F00, 0x0301, 0,
03186     1, 0x1F05, 0x1F01, 0x0301, 0,
03187     1, 0x1F06, 0x1F00, 0x0342, 0,
03188     1, 0x1F07, 0x1F01, 0x0342, 0,
03189     1, 0x1F08, 0x0391, 0x0313, 0,
03190     1, 0x1F09, 0x0391, 0x0314, 0,
03191     1, 0x1F0A, 0x1F08, 0x0300, 0,
03192     1, 0x1F0B, 0x1F09, 0x0300, 0,
03193     1, 0x1F0C, 0x1F08, 0x0301, 0,
03194     1, 0x1F0D, 0x1F09, 0x0301, 0,
03195     1, 0x1F0E, 0x1F08, 0x0342, 0,
03196     1, 0x1F0F, 0x1F09, 0x0342, 0,
03197     1, 0x1F10, 0x03B5, 0x0313, 0,
03198     1, 0x1F11, 0x03B5, 0x0314, 0,
03199     1, 0x1F12, 0x1F10, 0x0300, 0,
03200     1, 0x1F13, 0x1F11, 0x0300, 0,
03201     1, 0x1F14, 0x1F10, 0x0301, 0,
03202     1, 0x1F15, 0x1F11, 0x0301, 0,
03203     1, 0x1F18, 0x0395, 0x0313, 0,
03204     1, 0x1F19, 0x0395, 0x0314, 0,
03205     1, 0x1F1A, 0x1F18, 0x0300, 0,
03206     1, 0x1F1B, 0x1F19, 0x0300, 0,
03207     1, 0x1F1C, 0x1F18, 0x0301, 0,
03208     1, 0x1F1D, 0x1F19, 0x0301, 0,
03209     1, 0x1F20, 0x03B7, 0x0313, 0,
03210     1, 0x1F21, 0x03B7, 0x0314, 0,
03211     1, 0x1F22, 0x1F20, 0x0300, 0,
03212     1, 0x1F23, 0x1F21, 0x0300, 0,
03213     1, 0x1F24, 0x1F20, 0x0301, 0,
03214     1, 0x1F25, 0x1F21, 0x0301, 0,
03215     1, 0x1F26, 0x1F20, 0x0342, 0,
03216     1, 0x1F27, 0x1F21, 0x0342, 0,
03217     1, 0x1F28, 0x0397, 0x0313, 0,
03218     1, 0x1F29, 0x0397, 0x0314, 0,
03219     1, 0x1F2A, 0x1F28, 0x0300, 0,
03220     1, 0x1F2B, 0x1F29, 0x0300, 0,
03221     1, 0x1F2C, 0x1F28, 0x0301, 0,
03222     1, 0x1F2D, 0x1F29, 0x0301, 0,
03223     1, 0x1F2E, 0x1F28, 0x0342, 0,
03224     1, 0x1F2F, 0x1F29, 0x0342, 0,
03225     1, 0x1F30, 0x03B9, 0x0313, 0,
03226     1, 0x1F31, 0x03B9, 0x0314, 0,
03227     1, 0x1F32, 0x1F30, 0x0300, 0,
03228     1, 0x1F33, 0x1F31, 0x0300, 0,
03229     1, 0x1F34, 0x1F30, 0x0301, 0,
03230     1, 0x1F35, 0x1F31, 0x0301, 0,
03231     1, 0x1F36, 0x1F30, 0x0342, 0,
03232     1, 0x1F37, 0x1F31, 0x0342, 0,
03233     1, 0x1F38, 0x0399, 0x0313, 0,
03234     1, 0x1F39, 0x0399, 0x0314, 0,
03235     1, 0x1F3A, 0x1F38, 0x0300, 0,
03236     1, 0x1F3B, 0x1F39, 0x0300, 0,
03237     1, 0x1F3C, 0x1F38, 0x0301, 0,
03238     1, 0x1F3D, 0x1F39, 0x0301, 0,
03239     1, 0x1F3E, 0x1F38, 0x0342, 0,
03240     1, 0x1F3F, 0x1F39, 0x0342, 0,
03241     1, 0x1F40, 0x03BF, 0x0313, 0,
03242     1, 0x1F41, 0x03BF, 0x0314, 0,
03243     1, 0x1F42, 0x1F40, 0x0300, 0,
03244     1, 0x1F43, 0x1F41, 0x0300, 0,
03245     1, 0x1F44, 0x1F40, 0x0301, 0,
03246     1, 0x1F45, 0x1F41, 0x0301, 0,
03247     1, 0x1F48, 0x039F, 0x0313, 0,
03248     1, 0x1F49, 0x039F, 0x0314, 0,
03249     1, 0x1F4A, 0x1F48, 0x0300, 0,
03250     1, 0x1F4B, 0x1F49, 0x0300, 0,
03251     1, 0x1F4C, 0x1F48, 0x0301, 0,
03252     1, 0x1F4D, 0x1F49, 0x0301, 0,
03253     1, 0x1F50, 0x03C5, 0x0313, 0,
03254     1, 0x1F51, 0x03C5, 0x0314, 0,
03255     1, 0x1F52, 0x1F50, 0x0300, 0,
03256     1, 0x1F53, 0x1F51, 0x0300, 0,
03257     1, 0x1F54, 0x1F50, 0x0301, 0,
03258     1, 0x1F55, 0x1F51, 0x0301, 0,
03259     1, 0x1F56, 0x1F50, 0x0342, 0,
03260     1, 0x1F57, 0x1F51, 0x0342, 0,
03261     1, 0x1F59, 0x03A5, 0x0314, 0,
03262     1, 0x1F5B, 0x1F59, 0x0300, 0,
03263     1, 0x1F5D, 0x1F59, 0x0301, 0,
03264     1, 0x1F5F, 0x1F59, 0x0342, 0,
03265     1, 0x1F60, 0x03C9, 0x0313, 0,
03266     1, 0x1F61, 0x03C9, 0x0314, 0,
03267     1, 0x1F62, 0x1F60, 0x0300, 0,
03268     1, 0x1F63, 0x1F61, 0x0300, 0,
03269     1, 0x1F64, 0x1F60, 0x0301, 0,
03270     1, 0x1F65, 0x1F61, 0x0301, 0,
03271     1, 0x1F66, 0x1F60, 0x0342, 0,
03272     1, 0x1F67, 0x1F61, 0x0342, 0,
03273     1, 0x1F68, 0x03A9, 0x0313, 0,
03274     1, 0x1F69, 0x03A9, 0x0314, 0,
03275     1, 0x1F6A, 0x1F68, 0x0300, 0,
03276     1, 0x1F6B, 0x1F69, 0x0300, 0,
03277     1, 0x1F6C, 0x1F68, 0x0301, 0,
03278     1, 0x1F6D, 0x1F69, 0x0301, 0,
03279     1, 0x1F6E, 0x1F68, 0x0342, 0,
03280     1, 0x1F6F, 0x1F69, 0x0342, 0,
03281     1, 0x1F70, 0x03B1, 0x0300, 0,
03282     1, 0x1F71, 0x03AC, 0,
03283     1, 0x1F72, 0x03B5, 0x0300, 0,
03284     1, 0x1F73, 0x03AD, 0,
03285     1, 0x1F74, 0x03B7, 0x0300, 0,
03286     1, 0x1F75, 0x03AE, 0,
03287     1, 0x1F76, 0x03B9, 0x0300, 0,
03288     1, 0x1F77, 0x03AF, 0,
03289     1, 0x1F78, 0x03BF, 0x0300, 0,
03290     1, 0x1F79, 0x03CC, 0,
03291     1, 0x1F7A, 0x03C5, 0x0300, 0,
03292     1, 0x1F7B, 0x03CD, 0,
03293     1, 0x1F7C, 0x03C9, 0x0300, 0,
03294     1, 0x1F7D, 0x03CE, 0,
03295     1, 0x1F80, 0x1F00, 0x0345, 0,
03296     1, 0x1F81, 0x1F01, 0x0345, 0,
03297     1, 0x1F82, 0x1F02, 0x0345, 0,
03298     1, 0x1F83, 0x1F03, 0x0345, 0,
03299     1, 0x1F84, 0x1F04, 0x0345, 0,
03300     1, 0x1F85, 0x1F05, 0x0345, 0,
03301     1, 0x1F86, 0x1F06, 0x0345, 0,
03302     1, 0x1F87, 0x1F07, 0x0345, 0,
03303     1, 0x1F88, 0x1F08, 0x0345, 0,
03304     1, 0x1F89, 0x1F09, 0x0345, 0,
03305     1, 0x1F8A, 0x1F0A, 0x0345, 0,
03306     1, 0x1F8B, 0x1F0B, 0x0345, 0,
03307     1, 0x1F8C, 0x1F0C, 0x0345, 0,
03308     1, 0x1F8D, 0x1F0D, 0x0345, 0,
03309     1, 0x1F8E, 0x1F0E, 0x0345, 0,
03310     1, 0x1F8F, 0x1F0F, 0x0345, 0,
03311     1, 0x1F90, 0x1F20, 0x0345, 0,
03312     1, 0x1F91, 0x1F21, 0x0345, 0,
03313     1, 0x1F92, 0x1F22, 0x0345, 0,
03314     1, 0x1F93, 0x1F23, 0x0345, 0,
03315     1, 0x1F94, 0x1F24, 0x0345, 0,
03316     1, 0x1F95, 0x1F25, 0x0345, 0,
03317     1, 0x1F96, 0x1F26, 0x0345, 0,
03318     1, 0x1F97, 0x1F27, 0x0345, 0,
03319     1, 0x1F98, 0x1F28, 0x0345, 0,
03320     1, 0x1F99, 0x1F29, 0x0345, 0,
03321     1, 0x1F9A, 0x1F2A, 0x0345, 0,
03322     1, 0x1F9B, 0x1F2B, 0x0345, 0,
03323     1, 0x1F9C, 0x1F2C, 0x0345, 0,
03324     1, 0x1F9D, 0x1F2D, 0x0345, 0,
03325     1, 0x1F9E, 0x1F2E, 0x0345, 0,
03326     1, 0x1F9F, 0x1F2F, 0x0345, 0,
03327     1, 0x1FA0, 0x1F60, 0x0345, 0,
03328     1, 0x1FA1, 0x1F61, 0x0345, 0,
03329     1, 0x1FA2, 0x1F62, 0x0345, 0,
03330     1, 0x1FA3, 0x1F63, 0x0345, 0,
03331     1, 0x1FA4, 0x1F64, 0x0345, 0,
03332     1, 0x1FA5, 0x1F65, 0x0345, 0,
03333     1, 0x1FA6, 0x1F66, 0x0345, 0,
03334     1, 0x1FA7, 0x1F67, 0x0345, 0,
03335     1, 0x1FA8, 0x1F68, 0x0345, 0,
03336     1, 0x1FA9, 0x1F69, 0x0345, 0,
03337     1, 0x1FAA, 0x1F6A, 0x0345, 0,
03338     1, 0x1FAB, 0x1F6B, 0x0345, 0,
03339     1, 0x1FAC, 0x1F6C, 0x0345, 0,
03340     1, 0x1FAD, 0x1F6D, 0x0345, 0,
03341     1, 0x1FAE, 0x1F6E, 0x0345, 0,
03342     1, 0x1FAF, 0x1F6F, 0x0345, 0,
03343     1, 0x1FB0, 0x03B1, 0x0306, 0,
03344     1, 0x1FB1, 0x03B1, 0x0304, 0,
03345     1, 0x1FB2, 0x1F70, 0x0345, 0,
03346     1, 0x1FB3, 0x03B1, 0x0345, 0,
03347     1, 0x1FB4, 0x03AC, 0x0345, 0,
03348     1, 0x1FB6, 0x03B1, 0x0342, 0,
03349     1, 0x1FB7, 0x1FB6, 0x0345, 0,
03350     1, 0x1FB8, 0x0391, 0x0306, 0,
03351     1, 0x1FB9, 0x0391, 0x0304, 0,
03352     1, 0x1FBA, 0x0391, 0x0300, 0,
03353     1, 0x1FBB, 0x0386, 0,
03354     1, 0x1FBC, 0x0391, 0x0345, 0,
03355     16, 0x1FBD, 0x0020, 0x0313, 0,
03356     1, 0x1FBE, 0x03B9, 0,
03357     16, 0x1FBF, 0x0020, 0x0313, 0,
03358     16, 0x1FC0, 0x0020, 0x0342, 0,
03359     1, 0x1FC1, 0x00A8, 0x0342, 0,
03360     1, 0x1FC2, 0x1F74, 0x0345, 0,
03361     1, 0x1FC3, 0x03B7, 0x0345, 0,
03362     1, 0x1FC4, 0x03AE, 0x0345, 0,
03363     1, 0x1FC6, 0x03B7, 0x0342, 0,
03364     1, 0x1FC7, 0x1FC6, 0x0345, 0,
03365     1, 0x1FC8, 0x0395, 0x0300, 0,
03366     1, 0x1FC9, 0x0388, 0,
03367     1, 0x1FCA, 0x0397, 0x0300, 0,
03368     1, 0x1FCB, 0x0389, 0,
03369     1, 0x1FCC, 0x0397, 0x0345, 0,
03370     1, 0x1FCD, 0x1FBF, 0x0300, 0,
03371     1, 0x1FCE, 0x1FBF, 0x0301, 0,
03372     1, 0x1FCF, 0x1FBF, 0x0342, 0,
03373     1, 0x1FD0, 0x03B9, 0x0306, 0,
03374     1, 0x1FD1, 0x03B9, 0x0304, 0,
03375     1, 0x1FD2, 0x03CA, 0x0300, 0,
03376     1, 0x1FD3, 0x0390, 0,
03377     1, 0x1FD6, 0x03B9, 0x0342, 0,
03378     1, 0x1FD7, 0x03CA, 0x0342, 0,
03379     1, 0x1FD8, 0x0399, 0x0306, 0,
03380     1, 0x1FD9, 0x0399, 0x0304, 0,
03381     1, 0x1FDA, 0x0399, 0x0300, 0,
03382     1, 0x1FDB, 0x038A, 0,
03383     1, 0x1FDD, 0x1FFE, 0x0300, 0,
03384     1, 0x1FDE, 0x1FFE, 0x0301, 0,
03385     1, 0x1FDF, 0x1FFE, 0x0342, 0,
03386     1, 0x1FE0, 0x03C5, 0x0306, 0,
03387     1, 0x1FE1, 0x03C5, 0x0304, 0,
03388     1, 0x1FE2, 0x03CB, 0x0300, 0,
03389     1, 0x1FE3, 0x03B0, 0,
03390     1, 0x1FE4, 0x03C1, 0x0313, 0,
03391     1, 0x1FE5, 0x03C1, 0x0314, 0,
03392     1, 0x1FE6, 0x03C5, 0x0342, 0,
03393     1, 0x1FE7, 0x03CB, 0x0342, 0,
03394     1, 0x1FE8, 0x03A5, 0x0306, 0,
03395     1, 0x1FE9, 0x03A5, 0x0304, 0,
03396     1, 0x1FEA, 0x03A5, 0x0300, 0,
03397     1, 0x1FEB, 0x038E, 0,
03398     1, 0x1FEC, 0x03A1, 0x0314, 0,
03399     1, 0x1FED, 0x00A8, 0x0300, 0,
03400     1, 0x1FEE, 0x0385, 0,
03401     1, 0x1FEF, 0x0060, 0,
03402     1, 0x1FF2, 0x1F7C, 0x0345, 0,
03403     1, 0x1FF3, 0x03C9, 0x0345, 0,
03404     1, 0x1FF4, 0x03CE, 0x0345, 0,
03405     1, 0x1FF6, 0x03C9, 0x0342, 0,
03406     1, 0x1FF7, 0x1FF6, 0x0345, 0,
03407     1, 0x1FF8, 0x039F, 0x0300, 0,
03408     1, 0x1FF9, 0x038C, 0,
03409     1, 0x1FFA, 0x03A9, 0x0300, 0,
03410     1, 0x1FFB, 0x038F, 0,
03411     1, 0x1FFC, 0x03A9, 0x0345, 0,
03412     1, 0x1FFD, 0x00B4, 0,
03413     16, 0x1FFE, 0x0020, 0x0314, 0,
03414     1, 0x2000, 0x2002, 0,
03415     1, 0x2001, 0x2003, 0,
03416     16, 0x2002, 0x0020, 0,
03417     16, 0x2003, 0x0020, 0,
03418     16, 0x2004, 0x0020, 0,
03419     16, 0x2005, 0x0020, 0,
03420     16, 0x2006, 0x0020, 0,
03421     3, 0x2007, 0x0020, 0,
03422     16, 0x2008, 0x0020, 0,
03423     16, 0x2009, 0x0020, 0,
03424     16, 0x200A, 0x0020, 0,
03425     3, 0x2011, 0x2010, 0,
03426     16, 0x2017, 0x0020, 0x0333, 0,
03427     16, 0x2024, 0x002E, 0,
03428     16, 0x2025, 0x002E, 0x002E, 0,
03429     16, 0x2026, 0x002E, 0x002E, 0x002E, 0,
03430     3, 0x202F, 0x0020, 0,
03431     16, 0x2033, 0x2032, 0x2032, 0,
03432     16, 0x2034, 0x2032, 0x2032, 0x2032, 0,
03433     16, 0x2036, 0x2035, 0x2035, 0,
03434     16, 0x2037, 0x2035, 0x2035, 0x2035, 0,
03435     16, 0x203C, 0x0021, 0x0021, 0,
03436     16, 0x203E, 0x0020, 0x0305, 0,
03437     16, 0x2047, 0x003F, 0x003F, 0,
03438     16, 0x2048, 0x003F, 0x0021, 0,
03439     16, 0x2049, 0x0021, 0x003F, 0,
03440     16, 0x2057, 0x2032, 0x2032, 0x2032, 0x2032, 0,
03441     16, 0x205F, 0x0020, 0,
03442     9, 0x2070, 0x0030, 0,
03443     9, 0x2071, 0x0069, 0,
03444     9, 0x2074, 0x0034, 0,
03445     9, 0x2075, 0x0035, 0,
03446     9, 0x2076, 0x0036, 0,
03447     9, 0x2077, 0x0037, 0,
03448     9, 0x2078, 0x0038, 0,
03449     9, 0x2079, 0x0039, 0,
03450     9, 0x207A, 0x002B, 0,
03451     9, 0x207B, 0x2212, 0,
03452     9, 0x207C, 0x003D, 0,
03453     9, 0x207D, 0x0028, 0,
03454     9, 0x207E, 0x0029, 0,
03455     9, 0x207F, 0x006E, 0,
03456     10, 0x2080, 0x0030, 0,
03457     10, 0x2081, 0x0031, 0,
03458     10, 0x2082, 0x0032, 0,
03459     10, 0x2083, 0x0033, 0,
03460     10, 0x2084, 0x0034, 0,
03461     10, 0x2085, 0x0035, 0,
03462     10, 0x2086, 0x0036, 0,
03463     10, 0x2087, 0x0037, 0,
03464     10, 0x2088, 0x0038, 0,
03465     10, 0x2089, 0x0039, 0,
03466     10, 0x208A, 0x002B, 0,
03467     10, 0x208B, 0x2212, 0,
03468     10, 0x208C, 0x003D, 0,
03469     10, 0x208D, 0x0028, 0,
03470     10, 0x208E, 0x0029, 0,
03471     16, 0x20A8, 0x0052, 0x0073, 0,
03472     16, 0x2100, 0x0061, 0x002F, 0x0063, 0,
03473     16, 0x2101, 0x0061, 0x002F, 0x0073, 0,
03474     2, 0x2102, 0x0043, 0,
03475     16, 0x2103, 0x00B0, 0x0043, 0,
03476     16, 0x2105, 0x0063, 0x002F, 0x006F, 0,
03477     16, 0x2106, 0x0063, 0x002F, 0x0075, 0,
03478     16, 0x2107, 0x0190, 0,
03479     16, 0x2109, 0x00B0, 0x0046, 0,
03480     2, 0x210A, 0x0067, 0,
03481     2, 0x210B, 0x0048, 0,
03482     2, 0x210C, 0x0048, 0,
03483     2, 0x210D, 0x0048, 0,
03484     2, 0x210E, 0x0068, 0,
03485     2, 0x210F, 0x0127, 0,
03486     2, 0x2110, 0x0049, 0,
03487     2, 0x2111, 0x0049, 0,
03488     2, 0x2112, 0x004C, 0,
03489     2, 0x2113, 0x006C, 0,
03490     2, 0x2115, 0x004E, 0,
03491     16, 0x2116, 0x004E, 0x006F, 0,
03492     2, 0x2119, 0x0050, 0,
03493     2, 0x211A, 0x0051, 0,
03494     2, 0x211B, 0x0052, 0,
03495     2, 0x211C, 0x0052, 0,
03496     2, 0x211D, 0x0052, 0,
03497     9, 0x2120, 0x0053, 0x004D, 0,
03498     16, 0x2121, 0x0054, 0x0045, 0x004C, 0,
03499     9, 0x2122, 0x0054, 0x004D, 0,
03500     2, 0x2124, 0x005A, 0,
03501     1, 0x2126, 0x03A9, 0,
03502     2, 0x2128, 0x005A, 0,
03503     1, 0x212A, 0x004B, 0,
03504     1, 0x212B, 0x00C5, 0,
03505     2, 0x212C, 0x0042, 0,
03506     2, 0x212D, 0x0043, 0,
03507     2, 0x212F, 0x0065, 0,
03508     2, 0x2130, 0x0045, 0,
03509     2, 0x2131, 0x0046, 0,
03510     2, 0x2133, 0x004D, 0,
03511     2, 0x2134, 0x006F, 0,
03512     16, 0x2135, 0x05D0, 0,
03513     16, 0x2136, 0x05D1, 0,
03514     16, 0x2137, 0x05D2, 0,
03515     16, 0x2138, 0x05D3, 0,
03516     2, 0x2139, 0x0069, 0,
03517     2, 0x213D, 0x03B3, 0,
03518     2, 0x213E, 0x0393, 0,
03519     2, 0x213F, 0x03A0, 0,
03520     2, 0x2140, 0x2211, 0,
03521     2, 0x2145, 0x0044, 0,
03522     2, 0x2146, 0x0064, 0,
03523     2, 0x2147, 0x0065, 0,
03524     2, 0x2148, 0x0069, 0,
03525     2, 0x2149, 0x006A, 0,
03526     17, 0x2153, 0x0031, 0x2044, 0x0033, 0,
03527     17, 0x2154, 0x0032, 0x2044, 0x0033, 0,
03528     17, 0x2155, 0x0031, 0x2044, 0x0035, 0,
03529     17, 0x2156, 0x0032, 0x2044, 0x0035, 0,
03530     17, 0x2157, 0x0033, 0x2044, 0x0035, 0,
03531     17, 0x2158, 0x0034, 0x2044, 0x0035, 0,
03532     17, 0x2159, 0x0031, 0x2044, 0x0036, 0,
03533     17, 0x215A, 0x0035, 0x2044, 0x0036, 0,
03534     17, 0x215B, 0x0031, 0x2044, 0x0038, 0,
03535     17, 0x215C, 0x0033, 0x2044, 0x0038, 0,
03536     17, 0x215D, 0x0035, 0x2044, 0x0038, 0,
03537     17, 0x215E, 0x0037, 0x2044, 0x0038, 0,
03538     17, 0x215F, 0x0031, 0x2044, 0,
03539     16, 0x2160, 0x0049, 0,
03540     16, 0x2161, 0x0049, 0x0049, 0,
03541     16, 0x2162, 0x0049, 0x0049, 0x0049, 0,
03542     16, 0x2163, 0x0049, 0x0056, 0,
03543     16, 0x2164, 0x0056, 0,
03544     16, 0x2165, 0x0056, 0x0049, 0,
03545     16, 0x2166, 0x0056, 0x0049, 0x0049, 0,
03546     16, 0x2167, 0x0056, 0x0049, 0x0049, 0x0049, 0,
03547     16, 0x2168, 0x0049, 0x0058, 0,
03548     16, 0x2169, 0x0058, 0,
03549     16, 0x216A, 0x0058, 0x0049, 0,
03550     16, 0x216B, 0x0058, 0x0049, 0x0049, 0,
03551     16, 0x216C, 0x004C, 0,
03552     16, 0x216D, 0x0043, 0,
03553     16, 0x216E, 0x0044, 0,
03554     16, 0x216F, 0x004D, 0,
03555     16, 0x2170, 0x0069, 0,
03556     16, 0x2171, 0x0069, 0x0069, 0,
03557     16, 0x2172, 0x0069, 0x0069, 0x0069, 0,
03558     16, 0x2173, 0x0069, 0x0076, 0,
03559     16, 0x2174, 0x0076, 0,
03560     16, 0x2175, 0x0076, 0x0069, 0,
03561     16, 0x2176, 0x0076, 0x0069, 0x0069, 0,
03562     16, 0x2177, 0x0076, 0x0069, 0x0069, 0x0069, 0,
03563     16, 0x2178, 0x0069, 0x0078, 0,
03564     16, 0x2179, 0x0078, 0,
03565     16, 0x217A, 0x0078, 0x0069, 0,
03566     16, 0x217B, 0x0078, 0x0069, 0x0069, 0,
03567     16, 0x217C, 0x006C, 0,
03568     16, 0x217D, 0x0063, 0,
03569     16, 0x217E, 0x0064, 0,
03570     16, 0x217F, 0x006D, 0,
03571     1, 0x219A, 0x2190, 0x0338, 0,
03572     1, 0x219B, 0x2192, 0x0338, 0,
03573     1, 0x21AE, 0x2194, 0x0338, 0,
03574     1, 0x21CD, 0x21D0, 0x0338, 0,
03575     1, 0x21CE, 0x21D4, 0x0338, 0,
03576     1, 0x21CF, 0x21D2, 0x0338, 0,
03577     1, 0x2204, 0x2203, 0x0338, 0,
03578     1, 0x2209, 0x2208, 0x0338, 0,
03579     1, 0x220C, 0x220B, 0x0338, 0,
03580     1, 0x2224, 0x2223, 0x0338, 0,
03581     1, 0x2226, 0x2225, 0x0338, 0,
03582     16, 0x222C, 0x222B, 0x222B, 0,
03583     16, 0x222D, 0x222B, 0x222B, 0x222B, 0,
03584     16, 0x222F, 0x222E, 0x222E, 0,
03585     16, 0x2230, 0x222E, 0x222E, 0x222E, 0,
03586     1, 0x2241, 0x223C, 0x0338, 0,
03587     1, 0x2244, 0x2243, 0x0338, 0,
03588     1, 0x2247, 0x2245, 0x0338, 0,
03589     1, 0x2249, 0x2248, 0x0338, 0,
03590     1, 0x2260, 0x003D, 0x0338, 0,
03591     1, 0x2262, 0x2261, 0x0338, 0,
03592     1, 0x226D, 0x224D, 0x0338, 0,
03593     1, 0x226E, 0x003C, 0x0338, 0,
03594     1, 0x226F, 0x003E, 0x0338, 0,
03595     1, 0x2270, 0x2264, 0x0338, 0,
03596     1, 0x2271, 0x2265, 0x0338, 0,
03597     1, 0x2274, 0x2272, 0x0338, 0,
03598     1, 0x2275, 0x2273, 0x0338, 0,
03599     1, 0x2278, 0x2276, 0x0338, 0,
03600     1, 0x2279, 0x2277, 0x0338, 0,
03601     1, 0x2280, 0x227A, 0x0338, 0,
03602     1, 0x2281, 0x227B, 0x0338, 0,
03603     1, 0x2284, 0x2282, 0x0338, 0,
03604     1, 0x2285, 0x2283, 0x0338, 0,
03605     1, 0x2288, 0x2286, 0x0338, 0,
03606     1, 0x2289, 0x2287, 0x0338, 0,
03607     1, 0x22AC, 0x22A2, 0x0338, 0,
03608     1, 0x22AD, 0x22A8, 0x0338, 0,
03609     1, 0x22AE, 0x22A9, 0x0338, 0,
03610     1, 0x22AF, 0x22AB, 0x0338, 0,
03611     1, 0x22E0, 0x227C, 0x0338, 0,
03612     1, 0x22E1, 0x227D, 0x0338, 0,
03613     1, 0x22E2, 0x2291, 0x0338, 0,
03614     1, 0x22E3, 0x2292, 0x0338, 0,
03615     1, 0x22EA, 0x22B2, 0x0338, 0,
03616     1, 0x22EB, 0x22B3, 0x0338, 0,
03617     1, 0x22EC, 0x22B4, 0x0338, 0,
03618     1, 0x22ED, 0x22B5, 0x0338, 0,
03619     1, 0x2329, 0x3008, 0,
03620     1, 0x232A, 0x3009, 0,
03621     8, 0x2460, 0x0031, 0,
03622     8, 0x2461, 0x0032, 0,
03623     8, 0x2462, 0x0033, 0,
03624     8, 0x2463, 0x0034, 0,
03625     8, 0x2464, 0x0035, 0,
03626     8, 0x2465, 0x0036, 0,
03627     8, 0x2466, 0x0037, 0,
03628     8, 0x2467, 0x0038, 0,
03629     8, 0x2468, 0x0039, 0,
03630     8, 0x2469, 0x0031, 0x0030, 0,
03631     8, 0x246A, 0x0031, 0x0031, 0,
03632     8, 0x246B, 0x0031, 0x0032, 0,
03633     8, 0x246C, 0x0031, 0x0033, 0,
03634     8, 0x246D, 0x0031, 0x0034, 0,
03635     8, 0x246E, 0x0031, 0x0035, 0,
03636     8, 0x246F, 0x0031, 0x0036, 0,
03637     8, 0x2470, 0x0031, 0x0037, 0,
03638     8, 0x2471, 0x0031, 0x0038, 0,
03639     8, 0x2472, 0x0031, 0x0039, 0,
03640     8, 0x2473, 0x0032, 0x0030, 0,
03641     16, 0x2474, 0x0028, 0x0031, 0x0029, 0,
03642     16, 0x2475, 0x0028, 0x0032, 0x0029, 0,
03643     16, 0x2476, 0x0028, 0x0033, 0x0029, 0,
03644     16, 0x2477, 0x0028, 0x0034, 0x0029, 0,
03645     16, 0x2478, 0x0028, 0x0035, 0x0029, 0,
03646     16, 0x2479, 0x0028, 0x0036, 0x0029, 0,
03647     16, 0x247A, 0x0028, 0x0037, 0x0029, 0,
03648     16, 0x247B, 0x0028, 0x0038, 0x0029, 0,
03649     16, 0x247C, 0x0028, 0x0039, 0x0029, 0,
03650     16, 0x247D, 0x0028, 0x0031, 0x0030, 0x0029, 0,
03651     16, 0x247E, 0x0028, 0x0031, 0x0031, 0x0029, 0,
03652     16, 0x247F, 0x0028, 0x0031, 0x0032, 0x0029, 0,
03653     16, 0x2480, 0x0028, 0x0031, 0x0033, 0x0029, 0,
03654     16, 0x2481, 0x0028, 0x0031, 0x0034, 0x0029, 0,
03655     16, 0x2482, 0x0028, 0x0031, 0x0035, 0x0029, 0,
03656     16, 0x2483, 0x0028, 0x0031, 0x0036, 0x0029, 0,
03657     16, 0x2484, 0x0028, 0x0031, 0x0037, 0x0029, 0,
03658     16, 0x2485, 0x0028, 0x0031, 0x0038, 0x0029, 0,
03659     16, 0x2486, 0x0028, 0x0031, 0x0039, 0x0029, 0,
03660     16, 0x2487, 0x0028, 0x0032, 0x0030, 0x0029, 0,
03661     16, 0x2488, 0x0031, 0x002E, 0,
03662     16, 0x2489, 0x0032, 0x002E, 0,
03663     16, 0x248A, 0x0033, 0x002E, 0,
03664     16, 0x248B, 0x0034, 0x002E, 0,
03665     16, 0x248C, 0x0035, 0x002E, 0,
03666     16, 0x248D, 0x0036, 0x002E, 0,
03667     16, 0x248E, 0x0037, 0x002E, 0,
03668     16, 0x248F, 0x0038, 0x002E, 0,
03669     16, 0x2490, 0x0039, 0x002E, 0,
03670     16, 0x2491, 0x0031, 0x0030, 0x002E, 0,
03671     16, 0x2492, 0x0031, 0x0031, 0x002E, 0,
03672     16, 0x2493, 0x0031, 0x0032, 0x002E, 0,
03673     16, 0x2494, 0x0031, 0x0033, 0x002E, 0,
03674     16, 0x2495, 0x0031, 0x0034, 0x002E, 0,
03675     16, 0x2496, 0x0031, 0x0035, 0x002E, 0,
03676     16, 0x2497, 0x0031, 0x0036, 0x002E, 0,
03677     16, 0x2498, 0x0031, 0x0037, 0x002E, 0,
03678     16, 0x2499, 0x0031, 0x0038, 0x002E, 0,
03679     16, 0x249A, 0x0031, 0x0039, 0x002E, 0,
03680     16, 0x249B, 0x0032, 0x0030, 0x002E, 0,
03681     16, 0x249C, 0x0028, 0x0061, 0x0029, 0,
03682     16, 0x249D, 0x0028, 0x0062, 0x0029, 0,
03683     16, 0x249E, 0x0028, 0x0063, 0x0029, 0,
03684     16, 0x249F, 0x0028, 0x0064, 0x0029, 0,
03685     16, 0x24A0, 0x0028, 0x0065, 0x0029, 0,
03686     16, 0x24A1, 0x0028, 0x0066, 0x0029, 0,
03687     16, 0x24A2, 0x0028, 0x0067, 0x0029, 0,
03688     16, 0x24A3, 0x0028, 0x0068, 0x0029, 0,
03689     16, 0x24A4, 0x0028, 0x0069, 0x0029, 0,
03690     16, 0x24A5, 0x0028, 0x006A, 0x0029, 0,
03691     16, 0x24A6, 0x0028, 0x006B, 0x0029, 0,
03692     16, 0x24A7, 0x0028, 0x006C, 0x0029, 0,
03693     16, 0x24A8, 0x0028, 0x006D, 0x0029, 0,
03694     16, 0x24A9, 0x0028, 0x006E, 0x0029, 0,
03695     16, 0x24AA, 0x0028, 0x006F, 0x0029, 0,
03696     16, 0x24AB, 0x0028, 0x0070, 0x0029, 0,
03697     16, 0x24AC, 0x0028, 0x0071, 0x0029, 0,
03698     16, 0x24AD, 0x0028, 0x0072, 0x0029, 0,
03699     16, 0x24AE, 0x0028, 0x0073, 0x0029, 0,
03700     16, 0x24AF, 0x0028, 0x0074, 0x0029, 0,
03701     16, 0x24B0, 0x0028, 0x0075, 0x0029, 0,
03702     16, 0x24B1, 0x0028, 0x0076, 0x0029, 0,
03703     16, 0x24B2, 0x0028, 0x0077, 0x0029, 0,
03704     16, 0x24B3, 0x0028, 0x0078, 0x0029, 0,
03705     16, 0x24B4, 0x0028, 0x0079, 0x0029, 0,
03706     16, 0x24B5, 0x0028, 0x007A, 0x0029, 0,
03707     8, 0x24B6, 0x0041, 0,
03708     8, 0x24B7, 0x0042, 0,
03709     8, 0x24B8, 0x0043, 0,
03710     8, 0x24B9, 0x0044, 0,
03711     8, 0x24BA, 0x0045, 0,
03712     8, 0x24BB, 0x0046, 0,
03713     8, 0x24BC, 0x0047, 0,
03714     8, 0x24BD, 0x0048, 0,
03715     8, 0x24BE, 0x0049, 0,
03716     8, 0x24BF, 0x004A, 0,
03717     8, 0x24C0, 0x004B, 0,
03718     8, 0x24C1, 0x004C, 0,
03719     8, 0x24C2, 0x004D, 0,
03720     8, 0x24C3, 0x004E, 0,
03721     8, 0x24C4, 0x004F, 0,
03722     8, 0x24C5, 0x0050, 0,
03723     8, 0x24C6, 0x0051, 0,
03724     8, 0x24C7, 0x0052, 0,
03725     8, 0x24C8, 0x0053, 0,
03726     8, 0x24C9, 0x0054, 0,
03727     8, 0x24CA, 0x0055, 0,
03728     8, 0x24CB, 0x0056, 0,
03729     8, 0x24CC, 0x0057, 0,
03730     8, 0x24CD, 0x0058, 0,
03731     8, 0x24CE, 0x0059, 0,
03732     8, 0x24CF, 0x005A, 0,
03733     8, 0x24D0, 0x0061, 0,
03734     8, 0x24D1, 0x0062, 0,
03735     8, 0x24D2, 0x0063, 0,
03736     8, 0x24D3, 0x0064, 0,
03737     8, 0x24D4, 0x0065, 0,
03738     8, 0x24D5, 0x0066, 0,
03739     8, 0x24D6, 0x0067, 0,
03740     8, 0x24D7, 0x0068, 0,
03741     8, 0x24D8, 0x0069, 0,
03742     8, 0x24D9, 0x006A, 0,
03743     8, 0x24DA, 0x006B, 0,
03744     8, 0x24DB, 0x006C, 0,
03745     8, 0x24DC, 0x006D, 0,
03746     8, 0x24DD, 0x006E, 0,
03747     8, 0x24DE, 0x006F, 0,
03748     8, 0x24DF, 0x0070, 0,
03749     8, 0x24E0, 0x0071, 0,
03750     8, 0x24E1, 0x0072, 0,
03751     8, 0x24E2, 0x0073, 0,
03752     8, 0x24E3, 0x0074, 0,
03753     8, 0x24E4, 0x0075, 0,
03754     8, 0x24E5, 0x0076, 0,
03755     8, 0x24E6, 0x0077, 0,
03756     8, 0x24E7, 0x0078, 0,
03757     8, 0x24E8, 0x0079, 0,
03758     8, 0x24E9, 0x007A, 0,
03759     8, 0x24EA, 0x0030, 0,
03760     16, 0x2A0C, 0x222B, 0x222B, 0x222B, 0x222B, 0,
03761     16, 0x2A74, 0x003A, 0x003A, 0x003D, 0,
03762     16, 0x2A75, 0x003D, 0x003D, 0,
03763     16, 0x2A76, 0x003D, 0x003D, 0x003D, 0,
03764     1, 0x2ADC, 0x2ADD, 0x0338, 0,
03765     16, 0x2E9F, 0x6BCD, 0,
03766     16, 0x2EF3, 0x9F9F, 0,
03767     16, 0x2F00, 0x4E00, 0,
03768     16, 0x2F01, 0x4E28, 0,
03769     16, 0x2F02, 0x4E36, 0,
03770     16, 0x2F03, 0x4E3F, 0,
03771     16, 0x2F04, 0x4E59, 0,
03772     16, 0x2F05, 0x4E85, 0,
03773     16, 0x2F06, 0x4E8C, 0,
03774     16, 0x2F07, 0x4EA0, 0,
03775     16, 0x2F08, 0x4EBA, 0,
03776     16, 0x2F09, 0x513F, 0,
03777     16, 0x2F0A, 0x5165, 0,
03778     16, 0x2F0B, 0x516B, 0,
03779     16, 0x2F0C, 0x5182, 0,
03780     16, 0x2F0D, 0x5196, 0,
03781     16, 0x2F0E, 0x51AB, 0,
03782     16, 0x2F0F, 0x51E0, 0,
03783     16, 0x2F10, 0x51F5, 0,
03784     16, 0x2F11, 0x5200, 0,
03785     16, 0x2F12, 0x529B, 0,
03786     16, 0x2F13, 0x52F9, 0,
03787     16, 0x2F14, 0x5315, 0,
03788     16, 0x2F15, 0x531A, 0,
03789     16, 0x2F16, 0x5338, 0,
03790     16, 0x2F17, 0x5341, 0,
03791     16, 0x2F18, 0x535C, 0,
03792     16, 0x2F19, 0x5369, 0,
03793     16, 0x2F1A, 0x5382, 0,
03794     16, 0x2F1B, 0x53B6, 0,
03795     16, 0x2F1C, 0x53C8, 0,
03796     16, 0x2F1D, 0x53E3, 0,
03797     16, 0x2F1E, 0x56D7, 0,
03798     16, 0x2F1F, 0x571F, 0,
03799     16, 0x2F20, 0x58EB, 0,
03800     16, 0x2F21, 0x5902, 0,
03801     16, 0x2F22, 0x590A, 0,
03802     16, 0x2F23, 0x5915, 0,
03803     16, 0x2F24, 0x5927, 0,
03804     16, 0x2F25, 0x5973, 0,
03805     16, 0x2F26, 0x5B50, 0,
03806     16, 0x2F27, 0x5B80, 0,
03807     16, 0x2F28, 0x5BF8, 0,
03808     16, 0x2F29, 0x5C0F, 0,
03809     16, 0x2F2A, 0x5C22, 0,
03810     16, 0x2F2B, 0x5C38, 0,
03811     16, 0x2F2C, 0x5C6E, 0,
03812     16, 0x2F2D, 0x5C71, 0,
03813     16, 0x2F2E, 0x5DDB, 0,
03814     16, 0x2F2F, 0x5DE5, 0,
03815     16, 0x2F30, 0x5DF1, 0,
03816     16, 0x2F31, 0x5DFE, 0,
03817     16, 0x2F32, 0x5E72, 0,
03818     16, 0x2F33, 0x5E7A, 0,
03819     16, 0x2F34, 0x5E7F, 0,
03820     16, 0x2F35, 0x5EF4, 0,
03821     16, 0x2F36, 0x5EFE, 0,
03822     16, 0x2F37, 0x5F0B, 0,
03823     16, 0x2F38, 0x5F13, 0,
03824     16, 0x2F39, 0x5F50, 0,
03825     16, 0x2F3A, 0x5F61, 0,
03826     16, 0x2F3B, 0x5F73, 0,
03827     16, 0x2F3C, 0x5FC3, 0,
03828     16, 0x2F3D, 0x6208, 0,
03829     16, 0x2F3E, 0x6236, 0,
03830     16, 0x2F3F, 0x624B, 0,
03831     16, 0x2F40, 0x652F, 0,
03832     16, 0x2F41, 0x6534, 0,
03833     16, 0x2F42, 0x6587, 0,
03834     16, 0x2F43, 0x6597, 0,
03835     16, 0x2F44, 0x65A4, 0,
03836     16, 0x2F45, 0x65B9, 0,
03837     16, 0x2F46, 0x65E0, 0,
03838     16, 0x2F47, 0x65E5, 0,
03839     16, 0x2F48, 0x66F0, 0,
03840     16, 0x2F49, 0x6708, 0,
03841     16, 0x2F4A, 0x6728, 0,
03842     16, 0x2F4B, 0x6B20, 0,
03843     16, 0x2F4C, 0x6B62, 0,
03844     16, 0x2F4D, 0x6B79, 0,
03845     16, 0x2F4E, 0x6BB3, 0,
03846     16, 0x2F4F, 0x6BCB, 0,
03847     16, 0x2F50, 0x6BD4, 0,
03848     16, 0x2F51, 0x6BDB, 0,
03849     16, 0x2F52, 0x6C0F, 0,
03850     16, 0x2F53, 0x6C14, 0,
03851     16, 0x2F54, 0x6C34, 0,
03852     16, 0x2F55, 0x706B, 0,
03853     16, 0x2F56, 0x722A, 0,
03854     16, 0x2F57, 0x7236, 0,
03855     16, 0x2F58, 0x723B, 0,
03856     16, 0x2F59, 0x723F, 0,
03857     16, 0x2F5A, 0x7247, 0,
03858     16, 0x2F5B, 0x7259, 0,
03859     16, 0x2F5C, 0x725B, 0,
03860     16, 0x2F5D, 0x72AC, 0,
03861     16, 0x2F5E, 0x7384, 0,
03862     16, 0x2F5F, 0x7389, 0,
03863     16, 0x2F60, 0x74DC, 0,
03864     16, 0x2F61, 0x74E6, 0,
03865     16, 0x2F62, 0x7518, 0,
03866     16, 0x2F63, 0x751F, 0,
03867     16, 0x2F64, 0x7528, 0,
03868     16, 0x2F65, 0x7530, 0,
03869     16, 0x2F66, 0x758B, 0,
03870     16, 0x2F67, 0x7592, 0,
03871     16, 0x2F68, 0x7676, 0,
03872     16, 0x2F69, 0x767D, 0,
03873     16, 0x2F6A, 0x76AE, 0,
03874     16, 0x2F6B, 0x76BF, 0,
03875     16, 0x2F6C, 0x76EE, 0,
03876     16, 0x2F6D, 0x77DB, 0,
03877     16, 0x2F6E, 0x77E2, 0,
03878     16, 0x2F6F, 0x77F3, 0,
03879     16, 0x2F70, 0x793A, 0,
03880     16, 0x2F71, 0x79B8, 0,
03881     16, 0x2F72, 0x79BE, 0,
03882     16, 0x2F73, 0x7A74, 0,
03883     16, 0x2F74, 0x7ACB, 0,
03884     16, 0x2F75, 0x7AF9, 0,
03885     16, 0x2F76, 0x7C73, 0,
03886     16, 0x2F77, 0x7CF8, 0,
03887     16, 0x2F78, 0x7F36, 0,
03888     16, 0x2F79, 0x7F51, 0,
03889     16, 0x2F7A, 0x7F8A, 0,
03890     16, 0x2F7B, 0x7FBD, 0,
03891     16, 0x2F7C, 0x8001, 0,
03892     16, 0x2F7D, 0x800C, 0,
03893     16, 0x2F7E, 0x8012, 0,
03894     16, 0x2F7F, 0x8033, 0,
03895     16, 0x2F80, 0x807F, 0,
03896     16, 0x2F81, 0x8089, 0,
03897     16, 0x2F82, 0x81E3, 0,
03898     16, 0x2F83, 0x81EA, 0,
03899     16, 0x2F84, 0x81F3, 0,
03900     16, 0x2F85, 0x81FC, 0,
03901     16, 0x2F86, 0x820C, 0,
03902     16, 0x2F87, 0x821B, 0,
03903     16, 0x2F88, 0x821F, 0,
03904     16, 0x2F89, 0x826E, 0,
03905     16, 0x2F8A, 0x8272, 0,
03906     16, 0x2F8B, 0x8278, 0,
03907     16, 0x2F8C, 0x864D, 0,
03908     16, 0x2F8D, 0x866B, 0,
03909     16, 0x2F8E, 0x8840, 0,
03910     16, 0x2F8F, 0x884C, 0,
03911     16, 0x2F90, 0x8863, 0,
03912     16, 0x2F91, 0x897E, 0,
03913     16, 0x2F92, 0x898B, 0,
03914     16, 0x2F93, 0x89D2, 0,
03915     16, 0x2F94, 0x8A00, 0,
03916     16, 0x2F95, 0x8C37, 0,
03917     16, 0x2F96, 0x8C46, 0,
03918     16, 0x2F97, 0x8C55, 0,
03919     16, 0x2F98, 0x8C78, 0,
03920     16, 0x2F99, 0x8C9D, 0,
03921     16, 0x2F9A, 0x8D64, 0,
03922     16, 0x2F9B, 0x8D70, 0,
03923     16, 0x2F9C, 0x8DB3, 0,
03924     16, 0x2F9D, 0x8EAB, 0,
03925     16, 0x2F9E, 0x8ECA, 0,
03926     16, 0x2F9F, 0x8F9B, 0,
03927     16, 0x2FA0, 0x8FB0, 0,
03928     16, 0x2FA1, 0x8FB5, 0,
03929     16, 0x2FA2, 0x9091, 0,
03930     16, 0x2FA3, 0x9149, 0,
03931     16, 0x2FA4, 0x91C6, 0,
03932     16, 0x2FA5, 0x91CC, 0,
03933     16, 0x2FA6, 0x91D1, 0,
03934     16, 0x2FA7, 0x9577, 0,
03935     16, 0x2FA8, 0x9580, 0,
03936     16, 0x2FA9, 0x961C, 0,
03937     16, 0x2FAA, 0x96B6, 0,
03938     16, 0x2FAB, 0x96B9, 0,
03939     16, 0x2FAC, 0x96E8, 0,
03940     16, 0x2FAD, 0x9751, 0,
03941     16, 0x2FAE, 0x975E, 0,
03942     16, 0x2FAF, 0x9762, 0,
03943     16, 0x2FB0, 0x9769, 0,
03944     16, 0x2FB1, 0x97CB, 0,
03945     16, 0x2FB2, 0x97ED, 0,
03946     16, 0x2FB3, 0x97F3, 0,
03947     16, 0x2FB4, 0x9801, 0,
03948     16, 0x2FB5, 0x98A8, 0,
03949     16, 0x2FB6, 0x98DB, 0,
03950     16, 0x2FB7, 0x98DF, 0,
03951     16, 0x2FB8, 0x9996, 0,
03952     16, 0x2FB9, 0x9999, 0,
03953     16, 0x2FBA, 0x99AC, 0,
03954     16, 0x2FBB, 0x9AA8, 0,
03955     16, 0x2FBC, 0x9AD8, 0,
03956     16, 0x2FBD, 0x9ADF, 0,
03957     16, 0x2FBE, 0x9B25, 0,
03958     16, 0x2FBF, 0x9B2F, 0,
03959     16, 0x2FC0, 0x9B32, 0,
03960     16, 0x2FC1, 0x9B3C, 0,
03961     16, 0x2FC2, 0x9B5A, 0,
03962     16, 0x2FC3, 0x9CE5, 0,
03963     16, 0x2FC4, 0x9E75, 0,
03964     16, 0x2FC5, 0x9E7F, 0,
03965     16, 0x2FC6, 0x9EA5, 0,
03966     16, 0x2FC7, 0x9EBB, 0,
03967     16, 0x2FC8, 0x9EC3, 0,
03968     16, 0x2FC9, 0x9ECD, 0,
03969     16, 0x2FCA, 0x9ED1, 0,
03970     16, 0x2FCB, 0x9EF9, 0,
03971     16, 0x2FCC, 0x9EFD, 0,
03972     16, 0x2FCD, 0x9F0E, 0,
03973     16, 0x2FCE, 0x9F13, 0,
03974     16, 0x2FCF, 0x9F20, 0,
03975     16, 0x2FD0, 0x9F3B, 0,
03976     16, 0x2FD1, 0x9F4A, 0,
03977     16, 0x2FD2, 0x9F52, 0,
03978     16, 0x2FD3, 0x9F8D, 0,
03979     16, 0x2FD4, 0x9F9C, 0,
03980     16, 0x2FD5, 0x9FA0, 0,
03981     12, 0x3000, 0x0020, 0,
03982     16, 0x3036, 0x3012, 0,
03983     16, 0x3038, 0x5341, 0,
03984     16, 0x3039, 0x5344, 0,
03985     16, 0x303A, 0x5345, 0,
03986     1, 0x304C, 0x304B, 0x3099, 0,
03987     1, 0x304E, 0x304D, 0x3099, 0,
03988     1, 0x3050, 0x304F, 0x3099, 0,
03989     1, 0x3052, 0x3051, 0x3099, 0,
03990     1, 0x3054, 0x3053, 0x3099, 0,
03991     1, 0x3056, 0x3055, 0x3099, 0,
03992     1, 0x3058, 0x3057, 0x3099, 0,
03993     1, 0x305A, 0x3059, 0x3099, 0,
03994     1, 0x305C, 0x305B, 0x3099, 0,
03995     1, 0x305E, 0x305D, 0x3099, 0,
03996     1, 0x3060, 0x305F, 0x3099, 0,
03997     1, 0x3062, 0x3061, 0x3099, 0,
03998     1, 0x3065, 0x3064, 0x3099, 0,
03999     1, 0x3067, 0x3066, 0x3099, 0,
04000     1, 0x3069, 0x3068, 0x3099, 0,
04001     1, 0x3070, 0x306F, 0x3099, 0,
04002     1, 0x3071, 0x306F, 0x309A, 0,
04003     1, 0x3073, 0x3072, 0x3099, 0,
04004     1, 0x3074, 0x3072, 0x309A, 0,
04005     1, 0x3076, 0x3075, 0x3099, 0,
04006     1, 0x3077, 0x3075, 0x309A, 0,
04007     1, 0x3079, 0x3078, 0x3099, 0,
04008     1, 0x307A, 0x3078, 0x309A, 0,
04009     1, 0x307C, 0x307B, 0x3099, 0,
04010     1, 0x307D, 0x307B, 0x309A, 0,
04011     1, 0x3094, 0x3046, 0x3099, 0,
04012     16, 0x309B, 0x0020, 0x3099, 0,
04013     16, 0x309C, 0x0020, 0x309A, 0,
04014     1, 0x309E, 0x309D, 0x3099, 0,
04015     11, 0x309F, 0x3088, 0x308A, 0,
04016     1, 0x30AC, 0x30AB, 0x3099, 0,
04017     1, 0x30AE, 0x30AD, 0x3099, 0,
04018     1, 0x30B0, 0x30AF, 0x3099, 0,
04019     1, 0x30B2, 0x30B1, 0x3099, 0,
04020     1, 0x30B4, 0x30B3, 0x3099, 0,
04021     1, 0x30B6, 0x30B5, 0x3099, 0,
04022     1, 0x30B8, 0x30B7, 0x3099, 0,
04023     1, 0x30BA, 0x30B9, 0x3099, 0,
04024     1, 0x30BC, 0x30BB, 0x3099, 0,
04025     1, 0x30BE, 0x30BD, 0x3099, 0,
04026     1, 0x30C0, 0x30BF, 0x3099, 0,
04027     1, 0x30C2, 0x30C1, 0x3099, 0,
04028     1, 0x30C5, 0x30C4, 0x3099, 0,
04029     1, 0x30C7, 0x30C6, 0x3099, 0,
04030     1, 0x30C9, 0x30C8, 0x3099, 0,
04031     1, 0x30D0, 0x30CF, 0x3099, 0,
04032     1, 0x30D1, 0x30CF, 0x309A, 0,
04033     1, 0x30D3, 0x30D2, 0x3099, 0,
04034     1, 0x30D4, 0x30D2, 0x309A, 0,
04035     1, 0x30D6, 0x30D5, 0x3099, 0,
04036     1, 0x30D7, 0x30D5, 0x309A, 0,
04037     1, 0x30D9, 0x30D8, 0x3099, 0,
04038     1, 0x30DA, 0x30D8, 0x309A, 0,
04039     1, 0x30DC, 0x30DB, 0x3099, 0,
04040     1, 0x30DD, 0x30DB, 0x309A, 0,
04041     1, 0x30F4, 0x30A6, 0x3099, 0,
04042     1, 0x30F7, 0x30EF, 0x3099, 0,
04043     1, 0x30F8, 0x30F0, 0x3099, 0,
04044     1, 0x30F9, 0x30F1, 0x3099, 0,
04045     1, 0x30FA, 0x30F2, 0x3099, 0,
04046     1, 0x30FE, 0x30FD, 0x3099, 0,
04047     11, 0x30FF, 0x30B3, 0x30C8, 0,
04048     16, 0x3131, 0x1100, 0,
04049     16, 0x3132, 0x1101, 0,
04050     16, 0x3133, 0x11AA, 0,
04051     16, 0x3134, 0x1102, 0,
04052     16, 0x3135, 0x11AC, 0,
04053     16, 0x3136, 0x11AD, 0,
04054     16, 0x3137, 0x1103, 0,
04055     16, 0x3138, 0x1104, 0,
04056     16, 0x3139, 0x1105, 0,
04057     16, 0x313A, 0x11B0, 0,
04058     16, 0x313B, 0x11B1, 0,
04059     16, 0x313C, 0x11B2, 0,
04060     16, 0x313D, 0x11B3, 0,
04061     16, 0x313E, 0x11B4, 0,
04062     16, 0x313F, 0x11B5, 0,
04063     16, 0x3140, 0x111A, 0,
04064     16, 0x3141, 0x1106, 0,
04065     16, 0x3142, 0x1107, 0,
04066     16, 0x3143, 0x1108, 0,
04067     16, 0x3144, 0x1121, 0,
04068     16, 0x3145, 0x1109, 0,
04069     16, 0x3146, 0x110A, 0,
04070     16, 0x3147, 0x110B, 0,
04071     16, 0x3148, 0x110C, 0,
04072     16, 0x3149, 0x110D, 0,
04073     16, 0x314A, 0x110E, 0,
04074     16, 0x314B, 0x110F, 0,
04075     16, 0x314C, 0x1110, 0,
04076     16, 0x314D, 0x1111, 0,
04077     16, 0x314E, 0x1112, 0,
04078     16, 0x314F, 0x1161, 0,
04079     16, 0x3150, 0x1162, 0,
04080     16, 0x3151, 0x1163, 0,
04081     16, 0x3152, 0x1164, 0,
04082     16, 0x3153, 0x1165, 0,
04083     16, 0x3154, 0x1166, 0,
04084     16, 0x3155, 0x1167, 0,
04085     16, 0x3156, 0x1168, 0,
04086     16, 0x3157, 0x1169, 0,
04087     16, 0x3158, 0x116A, 0,
04088     16, 0x3159, 0x116B, 0,
04089     16, 0x315A, 0x116C, 0,
04090     16, 0x315B, 0x116D, 0,
04091     16, 0x315C, 0x116E, 0,
04092     16, 0x315D, 0x116F, 0,
04093     16, 0x315E, 0x1170, 0,
04094     16, 0x315F, 0x1171, 0,
04095     16, 0x3160, 0x1172, 0,
04096     16, 0x3161, 0x1173, 0,
04097     16, 0x3162, 0x1174, 0,
04098     16, 0x3163, 0x1175, 0,
04099     16, 0x3164, 0x1160, 0,
04100     16, 0x3165, 0x1114, 0,
04101     16, 0x3166, 0x1115, 0,
04102     16, 0x3167, 0x11C7, 0,
04103     16, 0x3168, 0x11C8, 0,
04104     16, 0x3169, 0x11CC, 0,
04105     16, 0x316A, 0x11CE, 0,
04106     16, 0x316B, 0x11D3, 0,
04107     16, 0x316C, 0x11D7, 0,
04108     16, 0x316D, 0x11D9, 0,
04109     16, 0x316E, 0x111C, 0,
04110     16, 0x316F, 0x11DD, 0,
04111     16, 0x3170, 0x11DF, 0,
04112     16, 0x3171, 0x111D, 0,
04113     16, 0x3172, 0x111E, 0,
04114     16, 0x3173, 0x1120, 0,
04115     16, 0x3174, 0x1122, 0,
04116     16, 0x3175, 0x1123, 0,
04117     16, 0x3176, 0x1127, 0,
04118     16, 0x3177, 0x1129, 0,
04119     16, 0x3178, 0x112B, 0,
04120     16, 0x3179, 0x112C, 0,
04121     16, 0x317A, 0x112D, 0,
04122     16, 0x317B, 0x112E, 0,
04123     16, 0x317C, 0x112F, 0,
04124     16, 0x317D, 0x1132, 0,
04125     16, 0x317E, 0x1136, 0,
04126     16, 0x317F, 0x1140, 0,
04127     16, 0x3180, 0x1147, 0,
04128     16, 0x3181, 0x114C, 0,
04129     16, 0x3182, 0x11F1, 0,
04130     16, 0x3183, 0x11F2, 0,
04131     16, 0x3184, 0x1157, 0,
04132     16, 0x3185, 0x1158, 0,
04133     16, 0x3186, 0x1159, 0,
04134     16, 0x3187, 0x1184, 0,
04135     16, 0x3188, 0x1185, 0,
04136     16, 0x3189, 0x1188, 0,
04137     16, 0x318A, 0x1191, 0,
04138     16, 0x318B, 0x1192, 0,
04139     16, 0x318C, 0x1194, 0,
04140     16, 0x318D, 0x119E, 0,
04141     16, 0x318E, 0x11A1, 0,
04142     9, 0x3192, 0x4E00, 0,
04143     9, 0x3193, 0x4E8C, 0,
04144     9, 0x3194, 0x4E09, 0,
04145     9, 0x3195, 0x56DB, 0,
04146     9, 0x3196, 0x4E0A, 0,
04147     9, 0x3197, 0x4E2D, 0,
04148     9, 0x3198, 0x4E0B, 0,
04149     9, 0x3199, 0x7532, 0,
04150     9, 0x319A, 0x4E59, 0,
04151     9, 0x319B, 0x4E19, 0,
04152     9, 0x319C, 0x4E01, 0,
04153     9, 0x319D, 0x5929, 0,
04154     9, 0x319E, 0x5730, 0,
04155     9, 0x319F, 0x4EBA, 0,
04156     16, 0x3200, 0x0028, 0x1100, 0x0029, 0,
04157     16, 0x3201, 0x0028, 0x1102, 0x0029, 0,
04158     16, 0x3202, 0x0028, 0x1103, 0x0029, 0,
04159     16, 0x3203, 0x0028, 0x1105, 0x0029, 0,
04160     16, 0x3204, 0x0028, 0x1106, 0x0029, 0,
04161     16, 0x3205, 0x0028, 0x1107, 0x0029, 0,
04162     16, 0x3206, 0x0028, 0x1109, 0x0029, 0,
04163     16, 0x3207, 0x0028, 0x110B, 0x0029, 0,
04164     16, 0x3208, 0x0028, 0x110C, 0x0029, 0,
04165     16, 0x3209, 0x0028, 0x110E, 0x0029, 0,
04166     16, 0x320A, 0x0028, 0x110F, 0x0029, 0,
04167     16, 0x320B, 0x0028, 0x1110, 0x0029, 0,
04168     16, 0x320C, 0x0028, 0x1111, 0x0029, 0,
04169     16, 0x320D, 0x0028, 0x1112, 0x0029, 0,
04170     16, 0x320E, 0x0028, 0x1100, 0x1161, 0x0029, 0,
04171     16, 0x320F, 0x0028, 0x1102, 0x1161, 0x0029, 0,
04172     16, 0x3210, 0x0028, 0x1103, 0x1161, 0x0029, 0,
04173     16, 0x3211, 0x0028, 0x1105, 0x1161, 0x0029, 0,
04174     16, 0x3212, 0x0028, 0x1106, 0x1161, 0x0029, 0,
04175     16, 0x3213, 0x0028, 0x1107, 0x1161, 0x0029, 0,
04176     16, 0x3214, 0x0028, 0x1109, 0x1161, 0x0029, 0,
04177     16, 0x3215, 0x0028, 0x110B, 0x1161, 0x0029, 0,
04178     16, 0x3216, 0x0028, 0x110C, 0x1161, 0x0029, 0,
04179     16, 0x3217, 0x0028, 0x110E, 0x1161, 0x0029, 0,
04180     16, 0x3218, 0x0028, 0x110F, 0x1161, 0x0029, 0,
04181     16, 0x3219, 0x0028, 0x1110, 0x1161, 0x0029, 0,
04182     16, 0x321A, 0x0028, 0x1111, 0x1161, 0x0029, 0,
04183     16, 0x321B, 0x0028, 0x1112, 0x1161, 0x0029, 0,
04184     16, 0x321C, 0x0028, 0x110C, 0x116E, 0x0029, 0,
04185     16, 0x3220, 0x0028, 0x4E00, 0x0029, 0,
04186     16, 0x3221, 0x0028, 0x4E8C, 0x0029, 0,
04187     16, 0x3222, 0x0028, 0x4E09, 0x0029, 0,
04188     16, 0x3223, 0x0028, 0x56DB, 0x0029, 0,
04189     16, 0x3224, 0x0028, 0x4E94, 0x0029, 0,
04190     16, 0x3225, 0x0028, 0x516D, 0x0029, 0,
04191     16, 0x3226, 0x0028, 0x4E03, 0x0029, 0,
04192     16, 0x3227, 0x0028, 0x516B, 0x0029, 0,
04193     16, 0x3228, 0x0028, 0x4E5D, 0x0029, 0,
04194     16, 0x3229, 0x0028, 0x5341, 0x0029, 0,
04195     16, 0x322A, 0x0028, 0x6708, 0x0029, 0,
04196     16, 0x322B, 0x0028, 0x706B, 0x0029, 0,
04197     16, 0x322C, 0x0028, 0x6C34, 0x0029, 0,
04198     16, 0x322D, 0x0028, 0x6728, 0x0029, 0,
04199     16, 0x322E, 0x0028, 0x91D1, 0x0029, 0,
04200     16, 0x322F, 0x0028, 0x571F, 0x0029, 0,
04201     16, 0x3230, 0x0028, 0x65E5, 0x0029, 0,
04202     16, 0x3231, 0x0028, 0x682A, 0x0029, 0,
04203     16, 0x3232, 0x0028, 0x6709, 0x0029, 0,
04204     16, 0x3233, 0x0028, 0x793E, 0x0029, 0,
04205     16, 0x3234, 0x0028, 0x540D, 0x0029, 0,
04206     16, 0x3235, 0x0028, 0x7279, 0x0029, 0,
04207     16, 0x3236, 0x0028, 0x8CA1, 0x0029, 0,
04208     16, 0x3237, 0x0028, 0x795D, 0x0029, 0,
04209     16, 0x3238, 0x0028, 0x52B4, 0x0029, 0,
04210     16, 0x3239, 0x0028, 0x4EE3, 0x0029, 0,
04211     16, 0x323A, 0x0028, 0x547C, 0x0029, 0,
04212     16, 0x323B, 0x0028, 0x5B66, 0x0029, 0,
04213     16, 0x323C, 0x0028, 0x76E3, 0x0029, 0,
04214     16, 0x323D, 0x0028, 0x4F01, 0x0029, 0,
04215     16, 0x323E, 0x0028, 0x8CC7, 0x0029, 0,
04216     16, 0x323F, 0x0028, 0x5354, 0x0029, 0,
04217     16, 0x3240, 0x0028, 0x796D, 0x0029, 0,
04218     16, 0x3241, 0x0028, 0x4F11, 0x0029, 0,
04219     16, 0x3242, 0x0028, 0x81EA, 0x0029, 0,
04220     16, 0x3243, 0x0028, 0x81F3, 0x0029, 0,
04221     8, 0x3251, 0x0032, 0x0031, 0,
04222     8, 0x3252, 0x0032, 0x0032, 0,
04223     8, 0x3253, 0x0032, 0x0033, 0,
04224     8, 0x3254, 0x0032, 0x0034, 0,
04225     8, 0x3255, 0x0032, 0x0035, 0,
04226     8, 0x3256, 0x0032, 0x0036, 0,
04227     8, 0x3257, 0x0032, 0x0037, 0,
04228     8, 0x3258, 0x0032, 0x0038, 0,
04229     8, 0x3259, 0x0032, 0x0039, 0,
04230     8, 0x325A, 0x0033, 0x0030, 0,
04231     8, 0x325B, 0x0033, 0x0031, 0,
04232     8, 0x325C, 0x0033, 0x0032, 0,
04233     8, 0x325D, 0x0033, 0x0033, 0,
04234     8, 0x325E, 0x0033, 0x0034, 0,
04235     8, 0x325F, 0x0033, 0x0035, 0,
04236     8, 0x3260, 0x1100, 0,
04237     8, 0x3261, 0x1102, 0,
04238     8, 0x3262, 0x1103, 0,
04239     8, 0x3263, 0x1105, 0,
04240     8, 0x3264, 0x1106, 0,
04241     8, 0x3265, 0x1107, 0,
04242     8, 0x3266, 0x1109, 0,
04243     8, 0x3267, 0x110B, 0,
04244     8, 0x3268, 0x110C, 0,
04245     8, 0x3269, 0x110E, 0,
04246     8, 0x326A, 0x110F, 0,
04247     8, 0x326B, 0x1110, 0,
04248     8, 0x326C, 0x1111, 0,
04249     8, 0x326D, 0x1112, 0,
04250     8, 0x326E, 0x1100, 0x1161, 0,
04251     8, 0x326F, 0x1102, 0x1161, 0,
04252     8, 0x3270, 0x1103, 0x1161, 0,
04253     8, 0x3271, 0x1105, 0x1161, 0,
04254     8, 0x3272, 0x1106, 0x1161, 0,
04255     8, 0x3273, 0x1107, 0x1161, 0,
04256     8, 0x3274, 0x1109, 0x1161, 0,
04257     8, 0x3275, 0x110B, 0x1161, 0,
04258     8, 0x3276, 0x110C, 0x1161, 0,
04259     8, 0x3277, 0x110E, 0x1161, 0,
04260     8, 0x3278, 0x110F, 0x1161, 0,
04261     8, 0x3279, 0x1110, 0x1161, 0,
04262     8, 0x327A, 0x1111, 0x1161, 0,
04263     8, 0x327B, 0x1112, 0x1161, 0,
04264     8, 0x3280, 0x4E00, 0,
04265     8, 0x3281, 0x4E8C, 0,
04266     8, 0x3282, 0x4E09, 0,
04267     8, 0x3283, 0x56DB, 0,
04268     8, 0x3284, 0x4E94, 0,
04269     8, 0x3285, 0x516D, 0,
04270     8, 0x3286, 0x4E03, 0,
04271     8, 0x3287, 0x516B, 0,
04272     8, 0x3288, 0x4E5D, 0,
04273     8, 0x3289, 0x5341, 0,
04274     8, 0x328A, 0x6708, 0,
04275     8, 0x328B, 0x706B, 0,
04276     8, 0x328C, 0x6C34, 0,
04277     8, 0x328D, 0x6728, 0,
04278     8, 0x328E, 0x91D1, 0,
04279     8, 0x328F, 0x571F, 0,
04280     8, 0x3290, 0x65E5, 0,
04281     8, 0x3291, 0x682A, 0,
04282     8, 0x3292, 0x6709, 0,
04283     8, 0x3293, 0x793E, 0,
04284     8, 0x3294, 0x540D, 0,
04285     8, 0x3295, 0x7279, 0,
04286     8, 0x3296, 0x8CA1, 0,
04287     8, 0x3297, 0x795D, 0,
04288     8, 0x3298, 0x52B4, 0,
04289     8, 0x3299, 0x79D8, 0,
04290     8, 0x329A, 0x7537, 0,
04291     8, 0x329B, 0x5973, 0,
04292     8, 0x329C, 0x9069, 0,
04293     8, 0x329D, 0x512A, 0,
04294     8, 0x329E, 0x5370, 0,
04295     8, 0x329F, 0x6CE8, 0,
04296     8, 0x32A0, 0x9805, 0,
04297     8, 0x32A1, 0x4F11, 0,
04298     8, 0x32A2, 0x5199, 0,
04299     8, 0x32A3, 0x6B63, 0,
04300     8, 0x32A4, 0x4E0A, 0,
04301     8, 0x32A5, 0x4E2D, 0,
04302     8, 0x32A6, 0x4E0B, 0,
04303     8, 0x32A7, 0x5DE6, 0,
04304     8, 0x32A8, 0x53F3, 0,
04305     8, 0x32A9, 0x533B, 0,
04306     8, 0x32AA, 0x5B97, 0,
04307     8, 0x32AB, 0x5B66, 0,
04308     8, 0x32AC, 0x76E3, 0,
04309     8, 0x32AD, 0x4F01, 0,
04310     8, 0x32AE, 0x8CC7, 0,
04311     8, 0x32AF, 0x5354, 0,
04312     8, 0x32B0, 0x591C, 0,
04313     8, 0x32B1, 0x0033, 0x0036, 0,
04314     8, 0x32B2, 0x0033, 0x0037, 0,
04315     8, 0x32B3, 0x0033, 0x0038, 0,
04316     8, 0x32B4, 0x0033, 0x0039, 0,
04317     8, 0x32B5, 0x0034, 0x0030, 0,
04318     8, 0x32B6, 0x0034, 0x0031, 0,
04319     8, 0x32B7, 0x0034, 0x0032, 0,
04320     8, 0x32B8, 0x0034, 0x0033, 0,
04321     8, 0x32B9, 0x0034, 0x0034, 0,
04322     8, 0x32BA, 0x0034, 0x0035, 0,
04323     8, 0x32BB, 0x0034, 0x0036, 0,
04324     8, 0x32BC, 0x0034, 0x0037, 0,
04325     8, 0x32BD, 0x0034, 0x0038, 0,
04326     8, 0x32BE, 0x0034, 0x0039, 0,
04327     8, 0x32BF, 0x0035, 0x0030, 0,
04328     16, 0x32C0, 0x0031, 0x6708, 0,
04329     16, 0x32C1, 0x0032, 0x6708, 0,
04330     16, 0x32C2, 0x0033, 0x6708, 0,
04331     16, 0x32C3, 0x0034, 0x6708, 0,
04332     16, 0x32C4, 0x0035, 0x6708, 0,
04333     16, 0x32C5, 0x0036, 0x6708, 0,
04334     16, 0x32C6, 0x0037, 0x6708, 0,
04335     16, 0x32C7, 0x0038, 0x6708, 0,
04336     16, 0x32C8, 0x0039, 0x6708, 0,
04337     16, 0x32C9, 0x0031, 0x0030, 0x6708, 0,
04338     16, 0x32CA, 0x0031, 0x0031, 0x6708, 0,
04339     16, 0x32CB, 0x0031, 0x0032, 0x6708, 0,
04340     8, 0x32D0, 0x30A2, 0,
04341     8, 0x32D1, 0x30A4, 0,
04342     8, 0x32D2, 0x30A6, 0,
04343     8, 0x32D3, 0x30A8, 0,
04344     8, 0x32D4, 0x30AA, 0,
04345     8, 0x32D5, 0x30AB, 0,
04346     8, 0x32D6, 0x30AD, 0,
04347     8, 0x32D7, 0x30AF, 0,
04348     8, 0x32D8, 0x30B1, 0,
04349     8, 0x32D9, 0x30B3, 0,
04350     8, 0x32DA, 0x30B5, 0,
04351     8, 0x32DB, 0x30B7, 0,
04352     8, 0x32DC, 0x30B9, 0,
04353     8, 0x32DD, 0x30BB, 0,
04354     8, 0x32DE, 0x30BD, 0,
04355     8, 0x32DF, 0x30BF, 0,
04356     8, 0x32E0, 0x30C1, 0,
04357     8, 0x32E1, 0x30C4, 0,
04358     8, 0x32E2, 0x30C6, 0,
04359     8, 0x32E3, 0x30C8, 0,
04360     8, 0x32E4, 0x30CA, 0,
04361     8, 0x32E5, 0x30CB, 0,
04362     8, 0x32E6, 0x30CC, 0,
04363     8, 0x32E7, 0x30CD, 0,
04364     8, 0x32E8, 0x30CE, 0,
04365     8, 0x32E9, 0x30CF, 0,
04366     8, 0x32EA, 0x30D2, 0,
04367     8, 0x32EB, 0x30D5, 0,
04368     8, 0x32EC, 0x30D8, 0,
04369     8, 0x32ED, 0x30DB, 0,
04370     8, 0x32EE, 0x30DE, 0,
04371     8, 0x32EF, 0x30DF, 0,
04372     8, 0x32F0, 0x30E0, 0,
04373     8, 0x32F1, 0x30E1, 0,
04374     8, 0x32F2, 0x30E2, 0,
04375     8, 0x32F3, 0x30E4, 0,
04376     8, 0x32F4, 0x30E6, 0,
04377     8, 0x32F5, 0x30E8, 0,
04378     8, 0x32F6, 0x30E9, 0,
04379     8, 0x32F7, 0x30EA, 0,
04380     8, 0x32F8, 0x30EB, 0,
04381     8, 0x32F9, 0x30EC, 0,
04382     8, 0x32FA, 0x30ED, 0,
04383     8, 0x32FB, 0x30EF, 0,
04384     8, 0x32FC, 0x30F0, 0,
04385     8, 0x32FD, 0x30F1, 0,
04386     8, 0x32FE, 0x30F2, 0,
04387     15, 0x3300, 0x30A2, 0x30D1, 0x30FC, 0x30C8, 0,
04388     15, 0x3301, 0x30A2, 0x30EB, 0x30D5, 0x30A1, 0,
04389     15, 0x3302, 0x30A2, 0x30F3, 0x30DA, 0x30A2, 0,
04390     15, 0x3303, 0x30A2, 0x30FC, 0x30EB, 0,
04391     15, 0x3304, 0x30A4, 0x30CB, 0x30F3, 0x30B0, 0,
04392     15, 0x3305, 0x30A4, 0x30F3, 0x30C1, 0,
04393     15, 0x3306, 0x30A6, 0x30A9, 0x30F3, 0,
04394     15, 0x3307, 0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9, 0,
04395     15, 0x3308, 0x30A8, 0x30FC, 0x30AB, 0x30FC, 0,
04396     15, 0x3309, 0x30AA, 0x30F3, 0x30B9, 0,
04397     15, 0x330A, 0x30AA, 0x30FC, 0x30E0, 0,
04398     15, 0x330B, 0x30AB, 0x30A4, 0x30EA, 0,
04399     15, 0x330C, 0x30AB, 0x30E9, 0x30C3, 0x30C8, 0,
04400     15, 0x330D, 0x30AB, 0x30ED, 0x30EA, 0x30FC, 0,
04401     15, 0x330E, 0x30AC, 0x30ED, 0x30F3, 0,
04402     15, 0x330F, 0x30AC, 0x30F3, 0x30DE, 0,
04403     15, 0x3310, 0x30AE, 0x30AC, 0,
04404     15, 0x3311, 0x30AE, 0x30CB, 0x30FC, 0,
04405     15, 0x3312, 0x30AD, 0x30E5, 0x30EA, 0x30FC, 0,
04406     15, 0x3313, 0x30AE, 0x30EB, 0x30C0, 0x30FC, 0,
04407     15, 0x3314, 0x30AD, 0x30ED, 0,
04408     15, 0x3315, 0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0, 0,
04409     15, 0x3316, 0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
04410     15, 0x3317, 0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8, 0,
04411     15, 0x3318, 0x30B0, 0x30E9, 0x30E0, 0,
04412     15, 0x3319, 0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3, 0,
04413     15, 0x331A, 0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED, 0,
04414     15, 0x331B, 0x30AF, 0x30ED, 0x30FC, 0x30CD, 0,
04415     15, 0x331C, 0x30B1, 0x30FC, 0x30B9, 0,
04416     15, 0x331D, 0x30B3, 0x30EB, 0x30CA, 0,
04417     15, 0x331E, 0x30B3, 0x30FC, 0x30DD, 0,
04418     15, 0x331F, 0x30B5, 0x30A4, 0x30AF, 0x30EB, 0,
04419     15, 0x3320, 0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0, 0,
04420     15, 0x3321, 0x30B7, 0x30EA, 0x30F3, 0x30B0, 0,
04421     15, 0x3322, 0x30BB, 0x30F3, 0x30C1, 0,
04422     15, 0x3323, 0x30BB, 0x30F3, 0x30C8, 0,
04423     15, 0x3324, 0x30C0, 0x30FC, 0x30B9, 0,
04424     15, 0x3325, 0x30C7, 0x30B7, 0,
04425     15, 0x3326, 0x30C9, 0x30EB, 0,
04426     15, 0x3327, 0x30C8, 0x30F3, 0,
04427     15, 0x3328, 0x30CA, 0x30CE, 0,
04428     15, 0x3329, 0x30CE, 0x30C3, 0x30C8, 0,
04429     15, 0x332A, 0x30CF, 0x30A4, 0x30C4, 0,
04430     15, 0x332B, 0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8, 0,
04431     15, 0x332C, 0x30D1, 0x30FC, 0x30C4, 0,
04432     15, 0x332D, 0x30D0, 0x30FC, 0x30EC, 0x30EB, 0,
04433     15, 0x332E, 0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB, 0,
04434     15, 0x332F, 0x30D4, 0x30AF, 0x30EB, 0,
04435     15, 0x3330, 0x30D4, 0x30B3, 0,
04436     15, 0x3331, 0x30D3, 0x30EB, 0,
04437     15, 0x3332, 0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9, 0,
04438     15, 0x3333, 0x30D5, 0x30A3, 0x30FC, 0x30C8, 0,
04439     15, 0x3334, 0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB, 0,
04440     15, 0x3335, 0x30D5, 0x30E9, 0x30F3, 0,
04441     15, 0x3336, 0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB, 0,
04442     15, 0x3337, 0x30DA, 0x30BD, 0,
04443     15, 0x3338, 0x30DA, 0x30CB, 0x30D2, 0,
04444     15, 0x3339, 0x30D8, 0x30EB, 0x30C4, 0,
04445     15, 0x333A, 0x30DA, 0x30F3, 0x30B9, 0,
04446     15, 0x333B, 0x30DA, 0x30FC, 0x30B8, 0,
04447     15, 0x333C, 0x30D9, 0x30FC, 0x30BF, 0,
04448     15, 0x333D, 0x30DD, 0x30A4, 0x30F3, 0x30C8, 0,
04449     15, 0x333E, 0x30DC, 0x30EB, 0x30C8, 0,
04450     15, 0x333F, 0x30DB, 0x30F3, 0,
04451     15, 0x3340, 0x30DD, 0x30F3, 0x30C9, 0,
04452     15, 0x3341, 0x30DB, 0x30FC, 0x30EB, 0,
04453     15, 0x3342, 0x30DB, 0x30FC, 0x30F3, 0,
04454     15, 0x3343, 0x30DE, 0x30A4, 0x30AF, 0x30ED, 0,
04455     15, 0x3344, 0x30DE, 0x30A4, 0x30EB, 0,
04456     15, 0x3345, 0x30DE, 0x30C3, 0x30CF, 0,
04457     15, 0x3346, 0x30DE, 0x30EB, 0x30AF, 0,
04458     15, 0x3347, 0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3, 0,
04459     15, 0x3348, 0x30DF, 0x30AF, 0x30ED, 0x30F3, 0,
04460     15, 0x3349, 0x30DF, 0x30EA, 0,
04461     15, 0x334A, 0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB, 0,
04462     15, 0x334B, 0x30E1, 0x30AC, 0,
04463     15, 0x334C, 0x30E1, 0x30AC, 0x30C8, 0x30F3, 0,
04464     15, 0x334D, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
04465     15, 0x334E, 0x30E4, 0x30FC, 0x30C9, 0,
04466     15, 0x334F, 0x30E4, 0x30FC, 0x30EB, 0,
04467     15, 0x3350, 0x30E6, 0x30A2, 0x30F3, 0,
04468     15, 0x3351, 0x30EA, 0x30C3, 0x30C8, 0x30EB, 0,
04469     15, 0x3352, 0x30EA, 0x30E9, 0,
04470     15, 0x3353, 0x30EB, 0x30D4, 0x30FC, 0,
04471     15, 0x3354, 0x30EB, 0x30FC, 0x30D6, 0x30EB, 0,
04472     15, 0x3355, 0x30EC, 0x30E0, 0,
04473     15, 0x3356, 0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3, 0,
04474     15, 0x3357, 0x30EF, 0x30C3, 0x30C8, 0,
04475     16, 0x3358, 0x0030, 0x70B9, 0,
04476     16, 0x3359, 0x0031, 0x70B9, 0,
04477     16, 0x335A, 0x0032, 0x70B9, 0,
04478     16, 0x335B, 0x0033, 0x70B9, 0,
04479     16, 0x335C, 0x0034, 0x70B9, 0,
04480     16, 0x335D, 0x0035, 0x70B9, 0,
04481     16, 0x335E, 0x0036, 0x70B9, 0,
04482     16, 0x335F, 0x0037, 0x70B9, 0,
04483     16, 0x3360, 0x0038, 0x70B9, 0,
04484     16, 0x3361, 0x0039, 0x70B9, 0,
04485     16, 0x3362, 0x0031, 0x0030, 0x70B9, 0,
04486     16, 0x3363, 0x0031, 0x0031, 0x70B9, 0,
04487     16, 0x3364, 0x0031, 0x0032, 0x70B9, 0,
04488     16, 0x3365, 0x0031, 0x0033, 0x70B9, 0,
04489     16, 0x3366, 0x0031, 0x0034, 0x70B9, 0,
04490     16, 0x3367, 0x0031, 0x0035, 0x70B9, 0,
04491     16, 0x3368, 0x0031, 0x0036, 0x70B9, 0,
04492     16, 0x3369, 0x0031, 0x0037, 0x70B9, 0,
04493     16, 0x336A, 0x0031, 0x0038, 0x70B9, 0,
04494     16, 0x336B, 0x0031, 0x0039, 0x70B9, 0,
04495     16, 0x336C, 0x0032, 0x0030, 0x70B9, 0,
04496     16, 0x336D, 0x0032, 0x0031, 0x70B9, 0,
04497     16, 0x336E, 0x0032, 0x0032, 0x70B9, 0,
04498     16, 0x336F, 0x0032, 0x0033, 0x70B9, 0,
04499     16, 0x3370, 0x0032, 0x0034, 0x70B9, 0,
04500     15, 0x3371, 0x0068, 0x0050, 0x0061, 0,
04501     15, 0x3372, 0x0064, 0x0061, 0,
04502     15, 0x3373, 0x0041, 0x0055, 0,
04503     15, 0x3374, 0x0062, 0x0061, 0x0072, 0,
04504     15, 0x3375, 0x006F, 0x0056, 0,
04505     15, 0x3376, 0x0070, 0x0063, 0,
04506     15, 0x337B, 0x5E73, 0x6210, 0,
04507     15, 0x337C, 0x662D, 0x548C, 0,
04508     15, 0x337D, 0x5927, 0x6B63, 0,
04509     15, 0x337E, 0x660E, 0x6CBB, 0,
04510     15, 0x337F, 0x682A, 0x5F0F, 0x4F1A, 0x793E, 0,
04511     15, 0x3380, 0x0070, 0x0041, 0,
04512     15, 0x3381, 0x006E, 0x0041, 0,
04513     15, 0x3382, 0x03BC, 0x0041, 0,
04514     15, 0x3383, 0x006D, 0x0041, 0,
04515     15, 0x3384, 0x006B, 0x0041, 0,
04516     15, 0x3385, 0x004B, 0x0042, 0,
04517     15, 0x3386, 0x004D, 0x0042, 0,
04518     15, 0x3387, 0x0047, 0x0042, 0,
04519     15, 0x3388, 0x0063, 0x0061, 0x006C, 0,
04520     15, 0x3389, 0x006B, 0x0063, 0x0061, 0x006C, 0,
04521     15, 0x338A, 0x0070, 0x0046, 0,
04522     15, 0x338B, 0x006E, 0x0046, 0,
04523     15, 0x338C, 0x03BC, 0x0046, 0,
04524     15, 0x338D, 0x03BC, 0x0067, 0,
04525     15, 0x338E, 0x006D, 0x0067, 0,
04526     15, 0x338F, 0x006B, 0x0067, 0,
04527     15, 0x3390, 0x0048, 0x007A, 0,
04528     15, 0x3391, 0x006B, 0x0048, 0x007A, 0,
04529     15, 0x3392, 0x004D, 0x0048, 0x007A, 0,
04530     15, 0x3393, 0x0047, 0x0048, 0x007A, 0,
04531     15, 0x3394, 0x0054, 0x0048, 0x007A, 0,
04532     15, 0x3395, 0x03BC, 0x2113, 0,
04533     15, 0x3396, 0x006D, 0x2113, 0,
04534     15, 0x3397, 0x0064, 0x2113, 0,
04535     15, 0x3398, 0x006B, 0x2113, 0,
04536     15, 0x3399, 0x0066, 0x006D, 0,
04537     15, 0x339A, 0x006E, 0x006D, 0,
04538     15, 0x339B, 0x03BC, 0x006D, 0,
04539     15, 0x339C, 0x006D, 0x006D, 0,
04540     15, 0x339D, 0x0063, 0x006D, 0,
04541     15, 0x339E, 0x006B, 0x006D, 0,
04542     15, 0x339F, 0x006D, 0x006D, 0x00B2, 0,
04543     15, 0x33A0, 0x0063, 0x006D, 0x00B2, 0,
04544     15, 0x33A1, 0x006D, 0x00B2, 0,
04545     15, 0x33A2, 0x006B, 0x006D, 0x00B2, 0,
04546     15, 0x33A3, 0x006D, 0x006D, 0x00B3, 0,
04547     15, 0x33A4, 0x0063, 0x006D, 0x00B3, 0,
04548     15, 0x33A5, 0x006D, 0x00B3, 0,
04549     15, 0x33A6, 0x006B, 0x006D, 0x00B3, 0,
04550     15, 0x33A7, 0x006D, 0x2215, 0x0073, 0,
04551     15, 0x33A8, 0x006D, 0x2215, 0x0073, 0x00B2, 0,
04552     15, 0x33A9, 0x0050, 0x0061, 0,
04553     15, 0x33AA, 0x006B, 0x0050, 0x0061, 0,
04554     15, 0x33AB, 0x004D, 0x0050, 0x0061, 0,
04555     15, 0x33AC, 0x0047, 0x0050, 0x0061, 0,
04556     15, 0x33AD, 0x0072, 0x0061, 0x0064, 0,
04557     15, 0x33AE, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0,
04558     15, 0x33AF, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0x00B2, 0,
04559     15, 0x33B0, 0x0070, 0x0073, 0,
04560     15, 0x33B1, 0x006E, 0x0073, 0,
04561     15, 0x33B2, 0x03BC, 0x0073, 0,
04562     15, 0x33B3, 0x006D, 0x0073, 0,
04563     15, 0x33B4, 0x0070, 0x0056, 0,
04564     15, 0x33B5, 0x006E, 0x0056, 0,
04565     15, 0x33B6, 0x03BC, 0x0056, 0,
04566     15, 0x33B7, 0x006D, 0x0056, 0,
04567     15, 0x33B8, 0x006B, 0x0056, 0,
04568     15, 0x33B9, 0x004D, 0x0056, 0,
04569     15, 0x33BA, 0x0070, 0x0057, 0,
04570     15, 0x33BB, 0x006E, 0x0057, 0,
04571     15, 0x33BC, 0x03BC, 0x0057, 0,
04572     15, 0x33BD, 0x006D, 0x0057, 0,
04573     15, 0x33BE, 0x006B, 0x0057, 0,
04574     15, 0x33BF, 0x004D, 0x0057, 0,
04575     15, 0x33C0, 0x006B, 0x03A9, 0,
04576     15, 0x33C1, 0x004D, 0x03A9, 0,
04577     15, 0x33C2, 0x0061, 0x002E, 0x006D, 0x002E, 0,
04578     15, 0x33C3, 0x0042, 0x0071, 0,
04579     15, 0x33C4, 0x0063, 0x0063, 0,
04580     15, 0x33C5, 0x0063, 0x0064, 0,
04581     15, 0x33C6, 0x0043, 0x2215, 0x006B, 0x0067, 0,
04582     15, 0x33C7, 0x0043, 0x006F, 0x002E, 0,
04583     15, 0x33C8, 0x0064, 0x0042, 0,
04584     15, 0x33C9, 0x0047, 0x0079, 0,
04585     15, 0x33CA, 0x0068, 0x0061, 0,
04586     15, 0x33CB, 0x0048, 0x0050, 0,
04587     15, 0x33CC, 0x0069, 0x006E, 0,
04588     15, 0x33CD, 0x004B, 0x004B, 0,
04589     15, 0x33CE, 0x004B, 0x004D, 0,
04590     15, 0x33CF, 0x006B, 0x0074, 0,
04591     15, 0x33D0, 0x006C, 0x006D, 0,
04592     15, 0x33D1, 0x006C, 0x006E, 0,
04593     15, 0x33D2, 0x006C, 0x006F, 0x0067, 0,
04594     15, 0x33D3, 0x006C, 0x0078, 0,
04595     15, 0x33D4, 0x006D, 0x0062, 0,
04596     15, 0x33D5, 0x006D, 0x0069, 0x006C, 0,
04597     15, 0x33D6, 0x006D, 0x006F, 0x006C, 0,
04598     15, 0x33D7, 0x0050, 0x0048, 0,
04599     15, 0x33D8, 0x0070, 0x002E, 0x006D, 0x002E, 0,
04600     15, 0x33D9, 0x0050, 0x0050, 0x004D, 0,
04601     15, 0x33DA, 0x0050, 0x0052, 0,
04602     15, 0x33DB, 0x0073, 0x0072, 0,
04603     15, 0x33DC, 0x0053, 0x0076, 0,
04604     15, 0x33DD, 0x0057, 0x0062, 0,
04605     16, 0x33E0, 0x0031, 0x65E5, 0,
04606     16, 0x33E1, 0x0032, 0x65E5, 0,
04607     16, 0x33E2, 0x0033, 0x65E5, 0,
04608     16, 0x33E3, 0x0034, 0x65E5, 0,
04609     16, 0x33E4, 0x0035, 0x65E5, 0,
04610     16, 0x33E5, 0x0036, 0x65E5, 0,
04611     16, 0x33E6, 0x0037, 0x65E5, 0,
04612     16, 0x33E7, 0x0038, 0x65E5, 0,
04613     16, 0x33E8, 0x0039, 0x65E5, 0,
04614     16, 0x33E9, 0x0031, 0x0030, 0x65E5, 0,
04615     16, 0x33EA, 0x0031, 0x0031, 0x65E5, 0,
04616     16, 0x33EB, 0x0031, 0x0032, 0x65E5, 0,
04617     16, 0x33EC, 0x0031, 0x0033, 0x65E5, 0,
04618     16, 0x33ED, 0x0031, 0x0034, 0x65E5, 0,
04619     16, 0x33EE, 0x0031, 0x0035, 0x65E5, 0,
04620     16, 0x33EF, 0x0031, 0x0036, 0x65E5, 0,
04621     16, 0x33F0, 0x0031, 0x0037, 0x65E5, 0,
04622     16, 0x33F1, 0x0031, 0x0038, 0x65E5, 0,
04623     16, 0x33F2, 0x0031, 0x0039, 0x65E5, 0,
04624     16, 0x33F3, 0x0032, 0x0030, 0x65E5, 0,
04625     16, 0x33F4, 0x0032, 0x0031, 0x65E5, 0,
04626     16, 0x33F5, 0x0032, 0x0032, 0x65E5, 0,
04627     16, 0x33F6, 0x0032, 0x0033, 0x65E5, 0,
04628     16, 0x33F7, 0x0032, 0x0034, 0x65E5, 0,
04629     16, 0x33F8, 0x0032, 0x0035, 0x65E5, 0,
04630     16, 0x33F9, 0x0032, 0x0036, 0x65E5, 0,
04631     16, 0x33FA, 0x0032, 0x0037, 0x65E5, 0,
04632     16, 0x33FB, 0x0032, 0x0038, 0x65E5, 0,
04633     16, 0x33FC, 0x0032, 0x0039, 0x65E5, 0,
04634     16, 0x33FD, 0x0033, 0x0030, 0x65E5, 0,
04635     16, 0x33FE, 0x0033, 0x0031, 0x65E5, 0,
04636     1, 0xF900, 0x8C48, 0,
04637     1, 0xF901, 0x66F4, 0,
04638     1, 0xF902, 0x8ECA, 0,
04639     1, 0xF903, 0x8CC8, 0,
04640     1, 0xF904, 0x6ED1, 0,
04641     1, 0xF905, 0x4E32, 0,
04642     1, 0xF906, 0x53E5, 0,
04643     1, 0xF907, 0x9F9C, 0,
04644     1, 0xF908, 0x9F9C, 0,
04645     1, 0xF909, 0x5951, 0,
04646     1, 0xF90A, 0x91D1, 0,
04647     1, 0xF90B, 0x5587, 0,
04648     1, 0xF90C, 0x5948, 0,
04649     1, 0xF90D, 0x61F6, 0,
04650     1, 0xF90E, 0x7669, 0,
04651     1, 0xF90F, 0x7F85, 0,
04652     1, 0xF910, 0x863F, 0,
04653     1, 0xF911, 0x87BA, 0,
04654     1, 0xF912, 0x88F8, 0,
04655     1, 0xF913, 0x908F, 0,
04656     1, 0xF914, 0x6A02, 0,
04657     1, 0xF915, 0x6D1B, 0,
04658     1, 0xF916, 0x70D9, 0,
04659     1, 0xF917, 0x73DE, 0,
04660     1, 0xF918, 0x843D, 0,
04661     1, 0xF919, 0x916A, 0,
04662     1, 0xF91A, 0x99F1, 0,
04663     1, 0xF91B, 0x4E82, 0,
04664     1, 0xF91C, 0x5375, 0,
04665     1, 0xF91D, 0x6B04, 0,
04666     1, 0xF91E, 0x721B, 0,
04667     1, 0xF91F, 0x862D, 0,
04668     1, 0xF920, 0x9E1E, 0,
04669     1, 0xF921, 0x5D50, 0,
04670     1, 0xF922, 0x6FEB, 0,
04671     1, 0xF923, 0x85CD, 0,
04672     1, 0xF924, 0x8964, 0,
04673     1, 0xF925, 0x62C9, 0,
04674     1, 0xF926, 0x81D8, 0,
04675     1, 0xF927, 0x881F, 0,
04676     1, 0xF928, 0x5ECA, 0,
04677     1, 0xF929, 0x6717, 0,
04678     1, 0xF92A, 0x6D6A, 0,
04679     1, 0xF92B, 0x72FC, 0,
04680     1, 0xF92C, 0x90CE, 0,
04681     1, 0xF92D, 0x4F86, 0,
04682     1, 0xF92E, 0x51B7, 0,
04683     1, 0xF92F, 0x52DE, 0,
04684     1, 0xF930, 0x64C4, 0,
04685     1, 0xF931, 0x6AD3, 0,
04686     1, 0xF932, 0x7210, 0,
04687     1, 0xF933, 0x76E7, 0,
04688     1, 0xF934, 0x8001, 0,
04689     1, 0xF935, 0x8606, 0,
04690     1, 0xF936, 0x865C, 0,
04691     1, 0xF937, 0x8DEF, 0,
04692     1, 0xF938, 0x9732, 0,
04693     1, 0xF939, 0x9B6F, 0,
04694     1, 0xF93A, 0x9DFA, 0,
04695     1, 0xF93B, 0x788C, 0,
04696     1, 0xF93C, 0x797F, 0,
04697     1, 0xF93D, 0x7DA0, 0,
04698     1, 0xF93E, 0x83C9, 0,
04699     1, 0xF93F, 0x9304, 0,
04700     1, 0xF940, 0x9E7F, 0,
04701     1, 0xF941, 0x8AD6, 0,
04702     1, 0xF942, 0x58DF, 0,
04703     1, 0xF943, 0x5F04, 0,
04704     1, 0xF944, 0x7C60, 0,
04705     1, 0xF945, 0x807E, 0,
04706     1, 0xF946, 0x7262, 0,
04707     1, 0xF947, 0x78CA, 0,
04708     1, 0xF948, 0x8CC2, 0,
04709     1, 0xF949, 0x96F7, 0,
04710     1, 0xF94A, 0x58D8, 0,
04711     1, 0xF94B, 0x5C62, 0,
04712     1, 0xF94C, 0x6A13, 0,
04713     1, 0xF94D, 0x6DDA, 0,
04714     1, 0xF94E, 0x6F0F, 0,
04715     1, 0xF94F, 0x7D2F, 0,
04716     1, 0xF950, 0x7E37, 0,
04717     1, 0xF951, 0x964B, 0,
04718     1, 0xF952, 0x52D2, 0,
04719     1, 0xF953, 0x808B, 0,
04720     1, 0xF954, 0x51DC, 0,
04721     1, 0xF955, 0x51CC, 0,
04722     1, 0xF956, 0x7A1C, 0,
04723     1, 0xF957, 0x7DBE, 0,
04724     1, 0xF958, 0x83F1, 0,
04725     1, 0xF959, 0x9675, 0,
04726     1, 0xF95A, 0x8B80, 0,
04727     1, 0xF95B, 0x62CF, 0,
04728     1, 0xF95C, 0x6A02, 0,
04729     1, 0xF95D, 0x8AFE, 0,
04730     1, 0xF95E, 0x4E39, 0,
04731     1, 0xF95F, 0x5BE7, 0,
04732     1, 0xF960, 0x6012, 0,
04733     1, 0xF961, 0x7387, 0,
04734     1, 0xF962, 0x7570, 0,
04735     1, 0xF963, 0x5317, 0,
04736     1, 0xF964, 0x78FB, 0,
04737     1, 0xF965, 0x4FBF, 0,
04738     1, 0xF966, 0x5FA9, 0,
04739     1, 0xF967, 0x4E0D, 0,
04740     1, 0xF968, 0x6CCC, 0,
04741     1, 0xF969, 0x6578, 0,
04742     1, 0xF96A, 0x7D22, 0,
04743     1, 0xF96B, 0x53C3, 0,
04744     1, 0xF96C, 0x585E, 0,
04745     1, 0xF96D, 0x7701, 0,
04746     1, 0xF96E, 0x8449, 0,
04747     1, 0xF96F, 0x8AAA, 0,
04748     1, 0xF970, 0x6BBA, 0,
04749     1, 0xF971, 0x8FB0, 0,
04750     1, 0xF972, 0x6C88, 0,
04751     1, 0xF973, 0x62FE, 0,
04752     1, 0xF974, 0x82E5, 0,
04753     1, 0xF975, 0x63A0, 0,
04754     1, 0xF976, 0x7565, 0,
04755     1, 0xF977, 0x4EAE, 0,
04756     1, 0xF978, 0x5169, 0,
04757     1, 0xF979, 0x51C9, 0,
04758     1, 0xF97A, 0x6881, 0,
04759     1, 0xF97B, 0x7CE7, 0,
04760     1, 0xF97C, 0x826F, 0,
04761     1, 0xF97D, 0x8AD2, 0,
04762     1, 0xF97E, 0x91CF, 0,
04763     1, 0xF97F, 0x52F5, 0,
04764     1, 0xF980, 0x5442, 0,
04765     1, 0xF981, 0x5973, 0,
04766     1, 0xF982, 0x5EEC, 0,
04767     1, 0xF983, 0x65C5, 0,
04768     1, 0xF984, 0x6FFE, 0,
04769     1, 0xF985, 0x792A, 0,
04770     1, 0xF986, 0x95AD, 0,
04771     1, 0xF987, 0x9A6A, 0,
04772     1, 0xF988, 0x9E97, 0,
04773     1, 0xF989, 0x9ECE, 0,
04774     1, 0xF98A, 0x529B, 0,
04775     1, 0xF98B, 0x66C6, 0,
04776     1, 0xF98C, 0x6B77, 0,
04777     1, 0xF98D, 0x8F62, 0,
04778     1, 0xF98E, 0x5E74, 0,
04779     1, 0xF98F, 0x6190, 0,
04780     1, 0xF990, 0x6200, 0,
04781     1, 0xF991, 0x649A, 0,
04782     1, 0xF992, 0x6F23, 0,
04783     1, 0xF993, 0x7149, 0,
04784     1, 0xF994, 0x7489, 0,
04785     1, 0xF995, 0x79CA, 0,
04786     1, 0xF996, 0x7DF4, 0,
04787     1, 0xF997, 0x806F, 0,
04788     1, 0xF998, 0x8F26, 0,
04789     1, 0xF999, 0x84EE, 0,
04790     1, 0xF99A, 0x9023, 0,
04791     1, 0xF99B, 0x934A, 0,
04792     1, 0xF99C, 0x5217, 0,
04793     1, 0xF99D, 0x52A3, 0,
04794     1, 0xF99E, 0x54BD, 0,
04795     1, 0xF99F, 0x70C8, 0,
04796     1, 0xF9A0, 0x88C2, 0,
04797     1, 0xF9A1, 0x8AAA, 0,
04798     1, 0xF9A2, 0x5EC9, 0,
04799     1, 0xF9A3, 0x5FF5, 0,
04800     1, 0xF9A4, 0x637B, 0,
04801     1, 0xF9A5, 0x6BAE, 0,
04802     1, 0xF9A6, 0x7C3E, 0,
04803     1, 0xF9A7, 0x7375, 0,
04804     1, 0xF9A8, 0x4EE4, 0,
04805     1, 0xF9A9, 0x56F9, 0,
04806     1, 0xF9AA, 0x5BE7, 0,
04807     1, 0xF9AB, 0x5DBA, 0,
04808     1, 0xF9AC, 0x601C, 0,
04809     1, 0xF9AD, 0x73B2, 0,
04810     1, 0xF9AE, 0x7469, 0,
04811     1, 0xF9AF, 0x7F9A, 0,
04812     1, 0xF9B0, 0x8046, 0,
04813     1, 0xF9B1, 0x9234, 0,
04814     1, 0xF9B2, 0x96F6, 0,
04815     1, 0xF9B3, 0x9748, 0,
04816     1, 0xF9B4, 0x9818, 0,
04817     1, 0xF9B5, 0x4F8B, 0,
04818     1, 0xF9B6, 0x79AE, 0,
04819     1, 0xF9B7, 0x91B4, 0,
04820     1, 0xF9B8, 0x96B8, 0,
04821     1, 0xF9B9, 0x60E1, 0,
04822     1, 0xF9BA, 0x4E86, 0,
04823     1, 0xF9BB, 0x50DA, 0,
04824     1, 0xF9BC, 0x5BEE, 0,
04825     1, 0xF9BD, 0x5C3F, 0,
04826     1, 0xF9BE, 0x6599, 0,
04827     1, 0xF9BF, 0x6A02, 0,
04828     1, 0xF9C0, 0x71CE, 0,
04829     1, 0xF9C1, 0x7642, 0,
04830     1, 0xF9C2, 0x84FC, 0,
04831     1, 0xF9C3, 0x907C, 0,
04832     1, 0xF9C4, 0x9F8D, 0,
04833     1, 0xF9C5, 0x6688, 0,
04834     1, 0xF9C6, 0x962E, 0,
04835     1, 0xF9C7, 0x5289, 0,
04836     1, 0xF9C8, 0x677B, 0,
04837     1, 0xF9C9, 0x67F3, 0,
04838     1, 0xF9CA, 0x6D41, 0,
04839     1, 0xF9CB, 0x6E9C, 0,
04840     1, 0xF9CC, 0x7409, 0,
04841     1, 0xF9CD, 0x7559, 0,
04842     1, 0xF9CE, 0x786B, 0,
04843     1, 0xF9CF, 0x7D10, 0,
04844     1, 0xF9D0, 0x985E, 0,
04845     1, 0xF9D1, 0x516D, 0,
04846     1, 0xF9D2, 0x622E, 0,
04847     1, 0xF9D3, 0x9678, 0,
04848     1, 0xF9D4, 0x502B, 0,
04849     1, 0xF9D5, 0x5D19, 0,
04850     1, 0xF9D6, 0x6DEA, 0,
04851     1, 0xF9D7, 0x8F2A, 0,
04852     1, 0xF9D8, 0x5F8B, 0,
04853     1, 0xF9D9, 0x6144, 0,
04854     1, 0xF9DA, 0x6817, 0,
04855     1, 0xF9DB, 0x7387, 0,
04856     1, 0xF9DC, 0x9686, 0,
04857     1, 0xF9DD, 0x5229, 0,
04858     1, 0xF9DE, 0x540F, 0,
04859     1, 0xF9DF, 0x5C65, 0,
04860     1, 0xF9E0, 0x6613, 0,
04861     1, 0xF9E1, 0x674E, 0,
04862     1, 0xF9E2, 0x68A8, 0,
04863     1, 0xF9E3, 0x6CE5, 0,
04864     1, 0xF9E4, 0x7406, 0,
04865     1, 0xF9E5, 0x75E2, 0,
04866     1, 0xF9E6, 0x7F79, 0,
04867     1, 0xF9E7, 0x88CF, 0,
04868     1, 0xF9E8, 0x88E1, 0,
04869     1, 0xF9E9, 0x91CC, 0,
04870     1, 0xF9EA, 0x96E2, 0,
04871     1, 0xF9EB, 0x533F, 0,
04872     1, 0xF9EC, 0x6EBA, 0,
04873     1, 0xF9ED, 0x541D, 0,
04874     1, 0xF9EE, 0x71D0, 0,
04875     1, 0xF9EF, 0x7498, 0,
04876     1, 0xF9F0, 0x85FA, 0,
04877     1, 0xF9F1, 0x96A3, 0,
04878     1, 0xF9F2, 0x9C57, 0,
04879     1, 0xF9F3, 0x9E9F, 0,
04880     1, 0xF9F4, 0x6797, 0,
04881     1, 0xF9F5, 0x6DCB, 0,
04882     1, 0xF9F6, 0x81E8, 0,
04883     1, 0xF9F7, 0x7ACB, 0,
04884     1, 0xF9F8, 0x7B20, 0,
04885     1, 0xF9F9, 0x7C92, 0,
04886     1, 0xF9FA, 0x72C0, 0,
04887     1, 0xF9FB, 0x7099, 0,
04888     1, 0xF9FC, 0x8B58, 0,
04889     1, 0xF9FD, 0x4EC0, 0,
04890     1, 0xF9FE, 0x8336, 0,
04891     1, 0xF9FF, 0x523A, 0,
04892     1, 0xFA00, 0x5207, 0,
04893     1, 0xFA01, 0x5EA6, 0,
04894     1, 0xFA02, 0x62D3, 0,
04895     1, 0xFA03, 0x7CD6, 0,
04896     1, 0xFA04, 0x5B85, 0,
04897     1, 0xFA05, 0x6D1E, 0,
04898     1, 0xFA06, 0x66B4, 0,
04899     1, 0xFA07, 0x8F3B, 0,
04900     1, 0xFA08, 0x884C, 0,
04901     1, 0xFA09, 0x964D, 0,
04902     1, 0xFA0A, 0x898B, 0,
04903     1, 0xFA0B, 0x5ED3, 0,
04904     1, 0xFA0C, 0x5140, 0,
04905     1, 0xFA0D, 0x55C0, 0,
04906     1, 0xFA10, 0x585A, 0,
04907     1, 0xFA12, 0x6674, 0,
04908     1, 0xFA15, 0x51DE, 0,
04909     1, 0xFA16, 0x732A, 0,
04910     1, 0xFA17, 0x76CA, 0,
04911     1, 0xFA18, 0x793C, 0,
04912     1, 0xFA19, 0x795E, 0,
04913     1, 0xFA1A, 0x7965, 0,
04914     1, 0xFA1B, 0x798F, 0,
04915     1, 0xFA1C, 0x9756, 0,
04916     1, 0xFA1D, 0x7CBE, 0,
04917     1, 0xFA1E, 0x7FBD, 0,
04918     1, 0xFA20, 0x8612, 0,
04919     1, 0xFA22, 0x8AF8, 0,
04920     1, 0xFA25, 0x9038, 0,
04921     1, 0xFA26, 0x90FD, 0,
04922     1, 0xFA2A, 0x98EF, 0,
04923     1, 0xFA2B, 0x98FC, 0,
04924     1, 0xFA2C, 0x9928, 0,
04925     1, 0xFA2D, 0x9DB4, 0,
04926     1, 0xFA30, 0x4FAE, 0,
04927     1, 0xFA31, 0x50E7, 0,
04928     1, 0xFA32, 0x514D, 0,
04929     1, 0xFA33, 0x52C9, 0,
04930     1, 0xFA34, 0x52E4, 0,
04931     1, 0xFA35, 0x5351, 0,
04932     1, 0xFA36, 0x559D, 0,
04933     1, 0xFA37, 0x5606, 0,
04934     1, 0xFA38, 0x5668, 0,
04935     1, 0xFA39, 0x5840, 0,
04936     1, 0xFA3A, 0x58A8, 0,
04937     1, 0xFA3B, 0x5C64, 0,
04938     1, 0xFA3C, 0x5C6E, 0,
04939     1, 0xFA3D, 0x6094, 0,
04940     1, 0xFA3E, 0x6168, 0,
04941     1, 0xFA3F, 0x618E, 0,
04942     1, 0xFA40, 0x61F2, 0,
04943     1, 0xFA41, 0x654F, 0,
04944     1, 0xFA42, 0x65E2, 0,
04945     1, 0xFA43, 0x6691, 0,
04946     1, 0xFA44, 0x6885, 0,
04947     1, 0xFA45, 0x6D77, 0,
04948     1, 0xFA46, 0x6E1A, 0,
04949     1, 0xFA47, 0x6F22, 0,
04950     1, 0xFA48, 0x716E, 0,
04951     1, 0xFA49, 0x722B, 0,
04952     1, 0xFA4A, 0x7422, 0,
04953     1, 0xFA4B, 0x7891, 0,
04954     1, 0xFA4C, 0x793E, 0,
04955     1, 0xFA4D, 0x7949, 0,
04956     1, 0xFA4E, 0x7948, 0,
04957     1, 0xFA4F, 0x7950, 0,
04958     1, 0xFA50, 0x7956, 0,
04959     1, 0xFA51, 0x795D, 0,
04960     1, 0xFA52, 0x798D, 0,
04961     1, 0xFA53, 0x798E, 0,
04962     1, 0xFA54, 0x7A40, 0,
04963     1, 0xFA55, 0x7A81, 0,
04964     1, 0xFA56, 0x7BC0, 0,
04965     1, 0xFA57, 0x7DF4, 0,
04966     1, 0xFA58, 0x7E09, 0,
04967     1, 0xFA59, 0x7E41, 0,
04968     1, 0xFA5A, 0x7F72, 0,
04969     1, 0xFA5B, 0x8005, 0,
04970     1, 0xFA5C, 0x81ED, 0,
04971     1, 0xFA5D, 0x8279, 0,
04972     1, 0xFA5E, 0x8279, 0,
04973     1, 0xFA5F, 0x8457, 0,
04974     1, 0xFA60, 0x8910, 0,
04975     1, 0xFA61, 0x8996, 0,
04976     1, 0xFA62, 0x8B01, 0,
04977     1, 0xFA63, 0x8B39, 0,
04978     1, 0xFA64, 0x8CD3, 0,
04979     1, 0xFA65, 0x8D08, 0,
04980     1, 0xFA66, 0x8FB6, 0,
04981     1, 0xFA67, 0x9038, 0,
04982     1, 0xFA68, 0x96E3, 0,
04983     1, 0xFA69, 0x97FF, 0,
04984     1, 0xFA6A, 0x983B, 0,
04985     16, 0xFB00, 0x0066, 0x0066, 0,
04986     16, 0xFB01, 0x0066, 0x0069, 0,
04987     16, 0xFB02, 0x0066, 0x006C, 0,
04988     16, 0xFB03, 0x0066, 0x0066, 0x0069, 0,
04989     16, 0xFB04, 0x0066, 0x0066, 0x006C, 0,
04990     16, 0xFB05, 0x017F, 0x0074, 0,
04991     16, 0xFB06, 0x0073, 0x0074, 0,
04992     16, 0xFB13, 0x0574, 0x0576, 0,
04993     16, 0xFB14, 0x0574, 0x0565, 0,
04994     16, 0xFB15, 0x0574, 0x056B, 0,
04995     16, 0xFB16, 0x057E, 0x0576, 0,
04996     16, 0xFB17, 0x0574, 0x056D, 0,
04997     1, 0xFB1D, 0x05D9, 0x05B4, 0,
04998     1, 0xFB1F, 0x05F2, 0x05B7, 0,
04999     2, 0xFB20, 0x05E2, 0,
05000     2, 0xFB21, 0x05D0, 0,
05001     2, 0xFB22, 0x05D3, 0,
05002     2, 0xFB23, 0x05D4, 0,
05003     2, 0xFB24, 0x05DB, 0,
05004     2, 0xFB25, 0x05DC, 0,
05005     2, 0xFB26, 0x05DD, 0,
05006     2, 0xFB27, 0x05E8, 0,
05007     2, 0xFB28, 0x05EA, 0,
05008     2, 0xFB29, 0x002B, 0,
05009     1, 0xFB2A, 0x05E9, 0x05C1, 0,
05010     1, 0xFB2B, 0x05E9, 0x05C2, 0,
05011     1, 0xFB2C, 0xFB49, 0x05C1, 0,
05012     1, 0xFB2D, 0xFB49, 0x05C2, 0,
05013     1, 0xFB2E, 0x05D0, 0x05B7, 0,
05014     1, 0xFB2F, 0x05D0, 0x05B8, 0,
05015     1, 0xFB30, 0x05D0, 0x05BC, 0,
05016     1, 0xFB31, 0x05D1, 0x05BC, 0,
05017     1, 0xFB32, 0x05D2, 0x05BC, 0,
05018     1, 0xFB33, 0x05D3, 0x05BC, 0,
05019     1, 0xFB34, 0x05D4, 0x05BC, 0,
05020     1, 0xFB35, 0x05D5, 0x05BC, 0,
05021     1, 0xFB36, 0x05D6, 0x05BC, 0,
05022     1, 0xFB38, 0x05D8, 0x05BC, 0,
05023     1, 0xFB39, 0x05D9, 0x05BC, 0,
05024     1, 0xFB3A, 0x05DA, 0x05BC, 0,
05025     1, 0xFB3B, 0x05DB, 0x05BC, 0,
05026     1, 0xFB3C, 0x05DC, 0x05BC, 0,
05027     1, 0xFB3E, 0x05DE, 0x05BC, 0,
05028     1, 0xFB40, 0x05E0, 0x05BC, 0,
05029     1, 0xFB41, 0x05E1, 0x05BC, 0,
05030     1, 0xFB43, 0x05E3, 0x05BC, 0,
05031     1, 0xFB44, 0x05E4, 0x05BC, 0,
05032     1, 0xFB46, 0x05E6, 0x05BC, 0,
05033     1, 0xFB47, 0x05E7, 0x05BC, 0,
05034     1, 0xFB48, 0x05E8, 0x05BC, 0,
05035     1, 0xFB49, 0x05E9, 0x05BC, 0,
05036     1, 0xFB4A, 0x05EA, 0x05BC, 0,
05037     1, 0xFB4B, 0x05D5, 0x05B9, 0,
05038     1, 0xFB4C, 0x05D1, 0x05BF, 0,
05039     1, 0xFB4D, 0x05DB, 0x05BF, 0,
05040     1, 0xFB4E, 0x05E4, 0x05BF, 0,
05041     16, 0xFB4F, 0x05D0, 0x05DC, 0,
05042     7, 0xFB50, 0x0671, 0,
05043     6, 0xFB51, 0x0671, 0,
05044     7, 0xFB52, 0x067B, 0,
05045     6, 0xFB53, 0x067B, 0,
05046     4, 0xFB54, 0x067B, 0,
05047     5, 0xFB55, 0x067B, 0,
05048     7, 0xFB56, 0x067E, 0,
05049     6, 0xFB57, 0x067E, 0,
05050     4, 0xFB58, 0x067E, 0,
05051     5, 0xFB59, 0x067E, 0,
05052     7, 0xFB5A, 0x0680, 0,
05053     6, 0xFB5B, 0x0680, 0,
05054     4, 0xFB5C, 0x0680, 0,
05055     5, 0xFB5D, 0x0680, 0,
05056     7, 0xFB5E, 0x067A, 0,
05057     6, 0xFB5F, 0x067A, 0,
05058     4, 0xFB60, 0x067A, 0,
05059     5, 0xFB61, 0x067A, 0,
05060     7, 0xFB62, 0x067F, 0,
05061     6, 0xFB63, 0x067F, 0,
05062     4, 0xFB64, 0x067F, 0,
05063     5, 0xFB65, 0x067F, 0,
05064     7, 0xFB66, 0x0679, 0,
05065     6, 0xFB67, 0x0679, 0,
05066     4, 0xFB68, 0x0679, 0,
05067     5, 0xFB69, 0x0679, 0,
05068     7, 0xFB6A, 0x06A4, 0,
05069     6, 0xFB6B, 0x06A4, 0,
05070     4, 0xFB6C, 0x06A4, 0,
05071     5, 0xFB6D, 0x06A4, 0,
05072     7, 0xFB6E, 0x06A6, 0,
05073     6, 0xFB6F, 0x06A6, 0,
05074     4, 0xFB70, 0x06A6, 0,
05075     5, 0xFB71, 0x06A6, 0,
05076     7, 0xFB72, 0x0684, 0,
05077     6, 0xFB73, 0x0684, 0,
05078     4, 0xFB74, 0x0684, 0,
05079     5, 0xFB75, 0x0684, 0,
05080     7, 0xFB76, 0x0683, 0,
05081     6, 0xFB77, 0x0683, 0,
05082     4, 0xFB78, 0x0683, 0,
05083     5, 0xFB79, 0x0683, 0,
05084     7, 0xFB7A, 0x0686, 0,
05085     6, 0xFB7B, 0x0686, 0,
05086     4, 0xFB7C, 0x0686, 0,
05087     5, 0xFB7D, 0x0686, 0,
05088     7, 0xFB7E, 0x0687, 0,
05089     6, 0xFB7F, 0x0687, 0,
05090     4, 0xFB80, 0x0687, 0,
05091     5, 0xFB81, 0x0687, 0,
05092     7, 0xFB82, 0x068D, 0,
05093     6, 0xFB83, 0x068D, 0,
05094     7, 0xFB84, 0x068C, 0,
05095     6, 0xFB85, 0x068C, 0,
05096     7, 0xFB86, 0x068E, 0,
05097     6, 0xFB87, 0x068E, 0,
05098     7, 0xFB88, 0x0688, 0,
05099     6, 0xFB89, 0x0688, 0,
05100     7, 0xFB8A, 0x0698, 0,
05101     6, 0xFB8B, 0x0698, 0,
05102     7, 0xFB8C, 0x0691, 0,
05103     6, 0xFB8D, 0x0691, 0,
05104     7, 0xFB8E, 0x06A9, 0,
05105     6, 0xFB8F, 0x06A9, 0,
05106     4, 0xFB90, 0x06A9, 0,
05107     5, 0xFB91, 0x06A9, 0,
05108     7, 0xFB92, 0x06AF, 0,
05109     6, 0xFB93, 0x06AF, 0,
05110     4, 0xFB94, 0x06AF, 0,
05111     5, 0xFB95, 0x06AF, 0,
05112     7, 0xFB96, 0x06B3, 0,
05113     6, 0xFB97, 0x06B3, 0,
05114     4, 0xFB98, 0x06B3, 0,
05115     5, 0xFB99, 0x06B3, 0,
05116     7, 0xFB9A, 0x06B1, 0,
05117     6, 0xFB9B, 0x06B1, 0,
05118     4, 0xFB9C, 0x06B1, 0,
05119     5, 0xFB9D, 0x06B1, 0,
05120     7, 0xFB9E, 0x06BA, 0,
05121     6, 0xFB9F, 0x06BA, 0,
05122     7, 0xFBA0, 0x06BB, 0,
05123     6, 0xFBA1, 0x06BB, 0,
05124     4, 0xFBA2, 0x06BB, 0,
05125     5, 0xFBA3, 0x06BB, 0,
05126     7, 0xFBA4, 0x06C0, 0,
05127     6, 0xFBA5, 0x06C0, 0,
05128     7, 0xFBA6, 0x06C1, 0,
05129     6, 0xFBA7, 0x06C1, 0,
05130     4, 0xFBA8, 0x06C1, 0,
05131     5, 0xFBA9, 0x06C1, 0,
05132     7, 0xFBAA, 0x06BE, 0,
05133     6, 0xFBAB, 0x06BE, 0,
05134     4, 0xFBAC, 0x06BE, 0,
05135     5, 0xFBAD, 0x06BE, 0,
05136     7, 0xFBAE, 0x06D2, 0,
05137     6, 0xFBAF, 0x06D2, 0,
05138     7, 0xFBB0, 0x06D3, 0,
05139     6, 0xFBB1, 0x06D3, 0,
05140     7, 0xFBD3, 0x06AD, 0,
05141     6, 0xFBD4, 0x06AD, 0,
05142     4, 0xFBD5, 0x06AD, 0,
05143     5, 0xFBD6, 0x06AD, 0,
05144     7, 0xFBD7, 0x06C7, 0,
05145     6, 0xFBD8, 0x06C7, 0,
05146     7, 0xFBD9, 0x06C6, 0,
05147     6, 0xFBDA, 0x06C6, 0,
05148     7, 0xFBDB, 0x06C8, 0,
05149     6, 0xFBDC, 0x06C8, 0,
05150     7, 0xFBDD, 0x0677, 0,
05151     7, 0xFBDE, 0x06CB, 0,
05152     6, 0xFBDF, 0x06CB, 0,
05153     7, 0xFBE0, 0x06C5, 0,
05154     6, 0xFBE1, 0x06C5, 0,
05155     7, 0xFBE2, 0x06C9, 0,
05156     6, 0xFBE3, 0x06C9, 0,
05157     7, 0xFBE4, 0x06D0, 0,
05158     6, 0xFBE5, 0x06D0, 0,
05159     4, 0xFBE6, 0x06D0, 0,
05160     5, 0xFBE7, 0x06D0, 0,
05161     4, 0xFBE8, 0x0649, 0,
05162     5, 0xFBE9, 0x0649, 0,
05163     7, 0xFBEA, 0x0626, 0x0627, 0,
05164     6, 0xFBEB, 0x0626, 0x0627, 0,
05165     7, 0xFBEC, 0x0626, 0x06D5, 0,
05166     6, 0xFBED, 0x0626, 0x06D5, 0,
05167     7, 0xFBEE, 0x0626, 0x0648, 0,
05168     6, 0xFBEF, 0x0626, 0x0648, 0,
05169     7, 0xFBF0, 0x0626, 0x06C7, 0,
05170     6, 0xFBF1, 0x0626, 0x06C7, 0,
05171     7, 0xFBF2, 0x0626, 0x06C6, 0,
05172     6, 0xFBF3, 0x0626, 0x06C6, 0,
05173     7, 0xFBF4, 0x0626, 0x06C8, 0,
05174     6, 0xFBF5, 0x0626, 0x06C8, 0,
05175     7, 0xFBF6, 0x0626, 0x06D0, 0,
05176     6, 0xFBF7, 0x0626, 0x06D0, 0,
05177     4, 0xFBF8, 0x0626, 0x06D0, 0,
05178     7, 0xFBF9, 0x0626, 0x0649, 0,
05179     6, 0xFBFA, 0x0626, 0x0649, 0,
05180     4, 0xFBFB, 0x0626, 0x0649, 0,
05181     7, 0xFBFC, 0x06CC, 0,
05182     6, 0xFBFD, 0x06CC, 0,
05183     4, 0xFBFE, 0x06CC, 0,
05184     5, 0xFBFF, 0x06CC, 0,
05185     7, 0xFC00, 0x0626, 0x062C, 0,
05186     7, 0xFC01, 0x0626, 0x062D, 0,
05187     7, 0xFC02, 0x0626, 0x0645, 0,
05188     7, 0xFC03, 0x0626, 0x0649, 0,
05189     7, 0xFC04, 0x0626, 0x064A, 0,
05190     7, 0xFC05, 0x0628, 0x062C, 0,
05191     7, 0xFC06, 0x0628, 0x062D, 0,
05192     7, 0xFC07, 0x0628, 0x062E, 0,
05193     7, 0xFC08, 0x0628, 0x0645, 0,
05194     7, 0xFC09, 0x0628, 0x0649, 0,
05195     7, 0xFC0A, 0x0628, 0x064A, 0,
05196     7, 0xFC0B, 0x062A, 0x062C, 0,
05197     7, 0xFC0C, 0x062A, 0x062D, 0,
05198     7, 0xFC0D, 0x062A, 0x062E, 0,
05199     7, 0xFC0E, 0x062A, 0x0645, 0,
05200     7, 0xFC0F, 0x062A, 0x0649, 0,
05201     7, 0xFC10, 0x062A, 0x064A, 0,
05202     7, 0xFC11, 0x062B, 0x062C, 0,
05203     7, 0xFC12, 0x062B, 0x0645, 0,
05204     7, 0xFC13, 0x062B, 0x0649, 0,
05205     7, 0xFC14, 0x062B, 0x064A, 0,
05206     7, 0xFC15, 0x062C, 0x062D, 0,
05207     7, 0xFC16, 0x062C, 0x0645, 0,
05208     7, 0xFC17, 0x062D, 0x062C, 0,
05209     7, 0xFC18, 0x062D, 0x0645, 0,
05210     7, 0xFC19, 0x062E, 0x062C, 0,
05211     7, 0xFC1A, 0x062E, 0x062D, 0,
05212     7, 0xFC1B, 0x062E, 0x0645, 0,
05213     7, 0xFC1C, 0x0633, 0x062C, 0,
05214     7, 0xFC1D, 0x0633, 0x062D, 0,
05215     7, 0xFC1E, 0x0633, 0x062E, 0,
05216     7, 0xFC1F, 0x0633, 0x0645, 0,
05217     7, 0xFC20, 0x0635, 0x062D, 0,
05218     7, 0xFC21, 0x0635, 0x0645, 0,
05219     7, 0xFC22, 0x0636, 0x062C, 0,
05220     7, 0xFC23, 0x0636, 0x062D, 0,
05221     7, 0xFC24, 0x0636, 0x062E, 0,
05222     7, 0xFC25, 0x0636, 0x0645, 0,
05223     7, 0xFC26, 0x0637, 0x062D, 0,
05224     7, 0xFC27, 0x0637, 0x0645, 0,
05225     7, 0xFC28, 0x0638, 0x0645, 0,
05226     7, 0xFC29, 0x0639, 0x062C, 0,
05227     7, 0xFC2A, 0x0639, 0x0645, 0,
05228     7, 0xFC2B, 0x063A, 0x062C, 0,
05229     7, 0xFC2C, 0x063A, 0x0645, 0,
05230     7, 0xFC2D, 0x0641, 0x062C, 0,
05231     7, 0xFC2E, 0x0641, 0x062D, 0,
05232     7, 0xFC2F, 0x0641, 0x062E, 0,
05233     7, 0xFC30, 0x0641, 0x0645, 0,
05234     7, 0xFC31, 0x0641, 0x0649, 0,
05235     7, 0xFC32, 0x0641, 0x064A, 0,
05236     7, 0xFC33, 0x0642, 0x062D, 0,
05237     7, 0xFC34, 0x0642, 0x0645, 0,
05238     7, 0xFC35, 0x0642, 0x0649, 0,
05239     7, 0xFC36, 0x0642, 0x064A, 0,
05240     7, 0xFC37, 0x0643, 0x0627, 0,
05241     7, 0xFC38, 0x0643, 0x062C, 0,
05242     7, 0xFC39, 0x0643, 0x062D, 0,
05243     7, 0xFC3A, 0x0643, 0x062E, 0,
05244     7, 0xFC3B, 0x0643, 0x0644, 0,
05245     7, 0xFC3C, 0x0643, 0x0645, 0,
05246     7, 0xFC3D, 0x0643, 0x0649, 0,
05247     7, 0xFC3E, 0x0643, 0x064A, 0,
05248     7, 0xFC3F, 0x0644, 0x062C, 0,
05249     7, 0xFC40, 0x0644, 0x062D, 0,
05250     7, 0xFC41, 0x0644, 0x062E, 0,
05251     7, 0xFC42, 0x0644, 0x0645, 0,
05252     7, 0xFC43, 0x0644, 0x0649, 0,
05253     7, 0xFC44, 0x0644, 0x064A, 0,
05254     7, 0xFC45, 0x0645, 0x062C, 0,
05255     7, 0xFC46, 0x0645, 0x062D, 0,
05256     7, 0xFC47, 0x0645, 0x062E, 0,
05257     7, 0xFC48, 0x0645, 0x0645, 0,
05258     7, 0xFC49, 0x0645, 0x0649, 0,
05259     7, 0xFC4A, 0x0645, 0x064A, 0,
05260     7, 0xFC4B, 0x0646, 0x062C, 0,
05261     7, 0xFC4C, 0x0646, 0x062D, 0,
05262     7, 0xFC4D, 0x0646, 0x062E, 0,
05263     7, 0xFC4E, 0x0646, 0x0645, 0,
05264     7, 0xFC4F, 0x0646, 0x0649, 0,
05265     7, 0xFC50, 0x0646, 0x064A, 0,
05266     7, 0xFC51, 0x0647, 0x062C, 0,
05267     7, 0xFC52, 0x0647, 0x0645, 0,
05268     7, 0xFC53, 0x0647, 0x0649, 0,
05269     7, 0xFC54, 0x0647, 0x064A, 0,
05270     7, 0xFC55, 0x064A, 0x062C, 0,
05271     7, 0xFC56, 0x064A, 0x062D, 0,
05272     7, 0xFC57, 0x064A, 0x062E, 0,
05273     7, 0xFC58, 0x064A, 0x0645, 0,
05274     7, 0xFC59, 0x064A, 0x0649, 0,
05275     7, 0xFC5A, 0x064A, 0x064A, 0,
05276     7, 0xFC5B, 0x0630, 0x0670, 0,
05277     7, 0xFC5C, 0x0631, 0x0670, 0,
05278     7, 0xFC5D, 0x0649, 0x0670, 0,
05279     7, 0xFC5E, 0x0020, 0x064C, 0x0651, 0,
05280     7, 0xFC5F, 0x0020, 0x064D, 0x0651, 0,
05281     7, 0xFC60, 0x0020, 0x064E, 0x0651, 0,
05282     7, 0xFC61, 0x0020, 0x064F, 0x0651, 0,
05283     7, 0xFC62, 0x0020, 0x0650, 0x0651, 0,
05284     7, 0xFC63, 0x0020, 0x0651, 0x0670, 0,
05285     6, 0xFC64, 0x0626, 0x0631, 0,
05286     6, 0xFC65, 0x0626, 0x0632, 0,
05287     6, 0xFC66, 0x0626, 0x0645, 0,
05288     6, 0xFC67, 0x0626, 0x0646, 0,
05289     6, 0xFC68, 0x0626, 0x0649, 0,
05290     6, 0xFC69, 0x0626, 0x064A, 0,
05291     6, 0xFC6A, 0x0628, 0x0631, 0,
05292     6, 0xFC6B, 0x0628, 0x0632, 0,
05293     6, 0xFC6C, 0x0628, 0x0645, 0,
05294     6, 0xFC6D, 0x0628, 0x0646, 0,
05295     6, 0xFC6E, 0x0628, 0x0649, 0,
05296     6, 0xFC6F, 0x0628, 0x064A, 0,
05297     6, 0xFC70, 0x062A, 0x0631, 0,
05298     6, 0xFC71, 0x062A, 0x0632, 0,
05299     6, 0xFC72, 0x062A, 0x0645, 0,
05300     6, 0xFC73, 0x062A, 0x0646, 0,
05301     6, 0xFC74, 0x062A, 0x0649, 0,
05302     6, 0xFC75, 0x062A, 0x064A, 0,
05303     6, 0xFC76, 0x062B, 0x0631, 0,
05304     6, 0xFC77, 0x062B, 0x0632, 0,
05305     6, 0xFC78, 0x062B, 0x0645, 0,
05306     6, 0xFC79, 0x062B, 0x0646, 0,
05307     6, 0xFC7A, 0x062B, 0x0649, 0,
05308     6, 0xFC7B, 0x062B, 0x064A, 0,
05309     6, 0xFC7C, 0x0641, 0x0649, 0,
05310     6, 0xFC7D, 0x0641, 0x064A, 0,
05311     6, 0xFC7E, 0x0642, 0x0649, 0,
05312     6, 0xFC7F, 0x0642, 0x064A, 0,
05313     6, 0xFC80, 0x0643, 0x0627, 0,
05314     6, 0xFC81, 0x0643, 0x0644, 0,
05315     6, 0xFC82, 0x0643, 0x0645, 0,
05316     6, 0xFC83, 0x0643, 0x0649, 0,
05317     6, 0xFC84, 0x0643, 0x064A, 0,
05318     6, 0xFC85, 0x0644, 0x0645, 0,
05319     6, 0xFC86, 0x0644, 0x0649, 0,
05320     6, 0xFC87, 0x0644, 0x064A, 0,
05321     6, 0xFC88, 0x0645, 0x0627, 0,
05322     6, 0xFC89, 0x0645, 0x0645, 0,
05323     6, 0xFC8A, 0x0646, 0x0631, 0,
05324     6, 0xFC8B, 0x0646, 0x0632, 0,
05325     6, 0xFC8C, 0x0646, 0x0645, 0,
05326     6, 0xFC8D, 0x0646, 0x0646, 0,
05327     6, 0xFC8E, 0x0646, 0x0649, 0,
05328     6, 0xFC8F, 0x0646, 0x064A, 0,
05329     6, 0xFC90, 0x0649, 0x0670, 0,
05330     6, 0xFC91, 0x064A, 0x0631, 0,
05331     6, 0xFC92, 0x064A, 0x0632, 0,
05332     6, 0xFC93, 0x064A, 0x0645, 0,
05333     6, 0xFC94, 0x064A, 0x0646, 0,
05334     6, 0xFC95, 0x064A, 0x0649, 0,
05335     6, 0xFC96, 0x064A, 0x064A, 0,
05336     4, 0xFC97, 0x0626, 0x062C, 0,
05337     4, 0xFC98, 0x0626, 0x062D, 0,
05338     4, 0xFC99, 0x0626, 0x062E, 0,
05339     4, 0xFC9A, 0x0626, 0x0645, 0,
05340     4, 0xFC9B, 0x0626, 0x0647, 0,
05341     4, 0xFC9C, 0x0628, 0x062C, 0,
05342     4, 0xFC9D, 0x0628, 0x062D, 0,
05343     4, 0xFC9E, 0x0628, 0x062E, 0,
05344     4, 0xFC9F, 0x0628, 0x0645, 0,
05345     4, 0xFCA0, 0x0628, 0x0647, 0,
05346     4, 0xFCA1, 0x062A, 0x062C, 0,
05347     4, 0xFCA2, 0x062A, 0x062D, 0,
05348     4, 0xFCA3, 0x062A, 0x062E, 0,
05349     4, 0xFCA4, 0x062A, 0x0645, 0,
05350     4, 0xFCA5, 0x062A, 0x0647, 0,
05351     4, 0xFCA6, 0x062B, 0x0645, 0,
05352     4, 0xFCA7, 0x062C, 0x062D, 0,
05353     4, 0xFCA8, 0x062C, 0x0645, 0,
05354     4, 0xFCA9, 0x062D, 0x062C, 0,
05355     4, 0xFCAA, 0x062D, 0x0645, 0,
05356     4, 0xFCAB, 0x062E, 0x062C, 0,
05357     4, 0xFCAC, 0x062E, 0x0645, 0,
05358     4, 0xFCAD, 0x0633, 0x062C, 0,
05359     4, 0xFCAE, 0x0633, 0x062D, 0,
05360     4, 0xFCAF, 0x0633, 0x062E, 0,
05361     4, 0xFCB0, 0x0633, 0x0645, 0,
05362     4, 0xFCB1, 0x0635, 0x062D, 0,
05363     4, 0xFCB2, 0x0635, 0x062E, 0,
05364     4, 0xFCB3, 0x0635, 0x0645, 0,
05365     4, 0xFCB4, 0x0636, 0x062C, 0,
05366     4, 0xFCB5, 0x0636, 0x062D, 0,
05367     4, 0xFCB6, 0x0636, 0x062E, 0,
05368     4, 0xFCB7, 0x0636, 0x0645, 0,
05369     4, 0xFCB8, 0x0637, 0x062D, 0,
05370     4, 0xFCB9, 0x0638, 0x0645, 0,
05371     4, 0xFCBA, 0x0639, 0x062C, 0,
05372     4, 0xFCBB, 0x0639, 0x0645, 0,
05373     4, 0xFCBC, 0x063A, 0x062C, 0,
05374     4, 0xFCBD, 0x063A, 0x0645, 0,
05375     4, 0xFCBE, 0x0641, 0x062C, 0,
05376     4, 0xFCBF, 0x0641, 0x062D, 0,
05377     4, 0xFCC0, 0x0641, 0x062E, 0,
05378     4, 0xFCC1, 0x0641, 0x0645, 0,
05379     4, 0xFCC2, 0x0642, 0x062D, 0,
05380     4, 0xFCC3, 0x0642, 0x0645, 0,
05381     4, 0xFCC4, 0x0643, 0x062C, 0,
05382     4, 0xFCC5, 0x0643, 0x062D, 0,
05383     4, 0xFCC6, 0x0643, 0x062E, 0,
05384     4, 0xFCC7, 0x0643, 0x0644, 0,
05385     4, 0xFCC8, 0x0643, 0x0645, 0,
05386     4, 0xFCC9, 0x0644, 0x062C, 0,
05387     4, 0xFCCA, 0x0644, 0x062D, 0,
05388     4, 0xFCCB, 0x0644, 0x062E, 0,
05389     4, 0xFCCC, 0x0644, 0x0645, 0,
05390     4, 0xFCCD, 0x0644, 0x0647, 0,
05391     4, 0xFCCE, 0x0645, 0x062C, 0,
05392     4, 0xFCCF, 0x0645, 0x062D, 0,
05393     4, 0xFCD0, 0x0645, 0x062E, 0,
05394     4, 0xFCD1, 0x0645, 0x0645, 0,
05395     4, 0xFCD2, 0x0646, 0x062C, 0,
05396     4, 0xFCD3, 0x0646, 0x062D, 0,
05397     4, 0xFCD4, 0x0646, 0x062E, 0,
05398     4, 0xFCD5, 0x0646, 0x0645, 0,
05399     4, 0xFCD6, 0x0646, 0x0647, 0,
05400     4, 0xFCD7, 0x0647, 0x062C, 0,
05401     4, 0xFCD8, 0x0647, 0x0645, 0,
05402     4, 0xFCD9, 0x0647, 0x0670, 0,
05403     4, 0xFCDA, 0x064A, 0x062C, 0,
05404     4, 0xFCDB, 0x064A, 0x062D, 0,
05405     4, 0xFCDC, 0x064A, 0x062E, 0,
05406     4, 0xFCDD, 0x064A, 0x0645, 0,
05407     4, 0xFCDE, 0x064A, 0x0647, 0,
05408     5, 0xFCDF, 0x0626, 0x0645, 0,
05409     5, 0xFCE0, 0x0626, 0x0647, 0,
05410     5, 0xFCE1, 0x0628, 0x0645, 0,
05411     5, 0xFCE2, 0x0628, 0x0647, 0,
05412     5, 0xFCE3, 0x062A, 0x0645, 0,
05413     5, 0xFCE4, 0x062A, 0x0647, 0,
05414     5, 0xFCE5, 0x062B, 0x0645, 0,
05415     5, 0xFCE6, 0x062B, 0x0647, 0,
05416     5, 0xFCE7, 0x0633, 0x0645, 0,
05417     5, 0xFCE8, 0x0633, 0x0647, 0,
05418     5, 0xFCE9, 0x0634, 0x0645, 0,
05419     5, 0xFCEA, 0x0634, 0x0647, 0,
05420     5, 0xFCEB, 0x0643, 0x0644, 0,
05421     5, 0xFCEC, 0x0643, 0x0645, 0,
05422     5, 0xFCED, 0x0644, 0x0645, 0,
05423     5, 0xFCEE, 0x0646, 0x0645, 0,
05424     5, 0xFCEF, 0x0646, 0x0647, 0,
05425     5, 0xFCF0, 0x064A, 0x0645, 0,
05426     5, 0xFCF1, 0x064A, 0x0647, 0,
05427     5, 0xFCF2, 0x0640, 0x064E, 0x0651, 0,
05428     5, 0xFCF3, 0x0640, 0x064F, 0x0651, 0,
05429     5, 0xFCF4, 0x0640, 0x0650, 0x0651, 0,
05430     7, 0xFCF5, 0x0637, 0x0649, 0,
05431     7, 0xFCF6, 0x0637, 0x064A, 0,
05432     7, 0xFCF7, 0x0639, 0x0649, 0,
05433     7, 0xFCF8, 0x0639, 0x064A, 0,
05434     7, 0xFCF9, 0x063A, 0x0649, 0,
05435     7, 0xFCFA, 0x063A, 0x064A, 0,
05436     7, 0xFCFB, 0x0633, 0x0649, 0,
05437     7, 0xFCFC, 0x0633, 0x064A, 0,
05438     7, 0xFCFD, 0x0634, 0x0649, 0,
05439     7, 0xFCFE, 0x0634, 0x064A, 0,
05440     7, 0xFCFF, 0x062D, 0x0649, 0,
05441     7, 0xFD00, 0x062D, 0x064A, 0,
05442     7, 0xFD01, 0x062C, 0x0649, 0,
05443     7, 0xFD02, 0x062C, 0x064A, 0,
05444     7, 0xFD03, 0x062E, 0x0649, 0,
05445     7, 0xFD04, 0x062E, 0x064A, 0,
05446     7, 0xFD05, 0x0635, 0x0649, 0,
05447     7, 0xFD06, 0x0635, 0x064A, 0,
05448     7, 0xFD07, 0x0636, 0x0649, 0,
05449     7, 0xFD08, 0x0636, 0x064A, 0,
05450     7, 0xFD09, 0x0634, 0x062C, 0,
05451     7, 0xFD0A, 0x0634, 0x062D, 0,
05452     7, 0xFD0B, 0x0634, 0x062E, 0,
05453     7, 0xFD0C, 0x0634, 0x0645, 0,
05454     7, 0xFD0D, 0x0634, 0x0631, 0,
05455     7, 0xFD0E, 0x0633, 0x0631, 0,
05456     7, 0xFD0F, 0x0635, 0x0631, 0,
05457     7, 0xFD10, 0x0636, 0x0631, 0,
05458     6, 0xFD11, 0x0637, 0x0649, 0,
05459     6, 0xFD12, 0x0637, 0x064A, 0,
05460     6, 0xFD13, 0x0639, 0x0649, 0,
05461     6, 0xFD14, 0x0639, 0x064A, 0,
05462     6, 0xFD15, 0x063A, 0x0649, 0,
05463     6, 0xFD16, 0x063A, 0x064A, 0,
05464     6, 0xFD17, 0x0633, 0x0649, 0,
05465     6, 0xFD18, 0x0633, 0x064A, 0,
05466     6, 0xFD19, 0x0634, 0x0649, 0,
05467     6, 0xFD1A, 0x0634, 0x064A, 0,
05468     6, 0xFD1B, 0x062D, 0x0649, 0,
05469     6, 0xFD1C, 0x062D, 0x064A, 0,
05470     6, 0xFD1D, 0x062C, 0x0649, 0,
05471     6, 0xFD1E, 0x062C, 0x064A, 0,
05472     6, 0xFD1F, 0x062E, 0x0649, 0,
05473     6, 0xFD20, 0x062E, 0x064A, 0,
05474     6, 0xFD21, 0x0635, 0x0649, 0,
05475     6, 0xFD22, 0x0635, 0x064A, 0,
05476     6, 0xFD23, 0x0636, 0x0649, 0,
05477     6, 0xFD24, 0x0636, 0x064A, 0,
05478     6, 0xFD25, 0x0634, 0x062C, 0,
05479     6, 0xFD26, 0x0634, 0x062D, 0,
05480     6, 0xFD27, 0x0634, 0x062E, 0,
05481     6, 0xFD28, 0x0634, 0x0645, 0,
05482     6, 0xFD29, 0x0634, 0x0631, 0,
05483     6, 0xFD2A, 0x0633, 0x0631, 0,
05484     6, 0xFD2B, 0x0635, 0x0631, 0,
05485     6, 0xFD2C, 0x0636, 0x0631, 0,
05486     4, 0xFD2D, 0x0634, 0x062C, 0,
05487     4, 0xFD2E, 0x0634, 0x062D, 0,
05488     4, 0xFD2F, 0x0634, 0x062E, 0,
05489     4, 0xFD30, 0x0634, 0x0645, 0,
05490     4, 0xFD31, 0x0633, 0x0647, 0,
05491     4, 0xFD32, 0x0634, 0x0647, 0,
05492     4, 0xFD33, 0x0637, 0x0645, 0,
05493     5, 0xFD34, 0x0633, 0x062C, 0,
05494     5, 0xFD35, 0x0633, 0x062D, 0,
05495     5, 0xFD36, 0x0633, 0x062E, 0,
05496     5, 0xFD37, 0x0634, 0x062C, 0,
05497     5, 0xFD38, 0x0634, 0x062D, 0,
05498     5, 0xFD39, 0x0634, 0x062E, 0,
05499     5, 0xFD3A, 0x0637, 0x0645, 0,
05500     5, 0xFD3B, 0x0638, 0x0645, 0,
05501     6, 0xFD3C, 0x0627, 0x064B, 0,
05502     7, 0xFD3D, 0x0627, 0x064B, 0,
05503     4, 0xFD50, 0x062A, 0x062C, 0x0645, 0,
05504     6, 0xFD51, 0x062A, 0x062D, 0x062C, 0,
05505     4, 0xFD52, 0x062A, 0x062D, 0x062C, 0,
05506     4, 0xFD53, 0x062A, 0x062D, 0x0645, 0,
05507     4, 0xFD54, 0x062A, 0x062E, 0x0645, 0,
05508     4, 0xFD55, 0x062A, 0x0645, 0x062C, 0,
05509     4, 0xFD56, 0x062A, 0x0645, 0x062D, 0,
05510     4, 0xFD57, 0x062A, 0x0645, 0x062E, 0,
05511     6, 0xFD58, 0x062C, 0x0645, 0x062D, 0,
05512     4, 0xFD59, 0x062C, 0x0645, 0x062D, 0,
05513     6, 0xFD5A, 0x062D, 0x0645, 0x064A, 0,
05514     6, 0xFD5B, 0x062D, 0x0645, 0x0649, 0,
05515     4, 0xFD5C, 0x0633, 0x062D, 0x062C, 0,
05516     4, 0xFD5D, 0x0633, 0x062C, 0x062D, 0,
05517     6, 0xFD5E, 0x0633, 0x062C, 0x0649, 0,
05518     6, 0xFD5F, 0x0633, 0x0645, 0x062D, 0,
05519     4, 0xFD60, 0x0633, 0x0645, 0x062D, 0,
05520     4, 0xFD61, 0x0633, 0x0645, 0x062C, 0,
05521     6, 0xFD62, 0x0633, 0x0645, 0x0645, 0,
05522     4, 0xFD63, 0x0633, 0x0645, 0x0645, 0,
05523     6, 0xFD64, 0x0635, 0x062D, 0x062D, 0,
05524     4, 0xFD65, 0x0635, 0x062D, 0x062D, 0,
05525     6, 0xFD66, 0x0635, 0x0645, 0x0645, 0,
05526     6, 0xFD67, 0x0634, 0x062D, 0x0645, 0,
05527     4, 0xFD68, 0x0634, 0x062D, 0x0645, 0,
05528     6, 0xFD69, 0x0634, 0x062C, 0x064A, 0,
05529     6, 0xFD6A, 0x0634, 0x0645, 0x062E, 0,
05530     4, 0xFD6B, 0x0634, 0x0645, 0x062E, 0,
05531     6, 0xFD6C, 0x0634, 0x0645, 0x0645, 0,
05532     4, 0xFD6D, 0x0634, 0x0645, 0x0645, 0,
05533     6, 0xFD6E, 0x0636, 0x062D, 0x0649, 0,
05534     6, 0xFD6F, 0x0636, 0x062E, 0x0645, 0,
05535     4, 0xFD70, 0x0636, 0x062E, 0x0645, 0,
05536     6, 0xFD71, 0x0637, 0x0645, 0x062D, 0,
05537     4, 0xFD72, 0x0637, 0x0645, 0x062D, 0,
05538     4, 0xFD73, 0x0637, 0x0645, 0x0645, 0,
05539     6, 0xFD74, 0x0637, 0x0645, 0x064A, 0,
05540     6, 0xFD75, 0x0639, 0x062C, 0x0645, 0,
05541     6, 0xFD76, 0x0639, 0x0645, 0x0645, 0,
05542     4, 0xFD77, 0x0639, 0x0645, 0x0645, 0,
05543     6, 0xFD78, 0x0639, 0x0645, 0x0649, 0,
05544     6, 0xFD79, 0x063A, 0x0645, 0x0645, 0,
05545     6, 0xFD7A, 0x063A, 0x0645, 0x064A, 0,
05546     6, 0xFD7B, 0x063A, 0x0645, 0x0649, 0,
05547     6, 0xFD7C, 0x0641, 0x062E, 0x0645, 0,
05548     4, 0xFD7D, 0x0641, 0x062E, 0x0645, 0,
05549     6, 0xFD7E, 0x0642, 0x0645, 0x062D, 0,
05550     6, 0xFD7F, 0x0642, 0x0645, 0x0645, 0,
05551     6, 0xFD80, 0x0644, 0x062D, 0x0645, 0,
05552     6, 0xFD81, 0x0644, 0x062D, 0x064A, 0,
05553     6, 0xFD82, 0x0644, 0x062D, 0x0649, 0,
05554     4, 0xFD83, 0x0644, 0x062C, 0x062C, 0,
05555     6, 0xFD84, 0x0644, 0x062C, 0x062C, 0,
05556     6, 0xFD85, 0x0644, 0x062E, 0x0645, 0,
05557     4, 0xFD86, 0x0644, 0x062E, 0x0645, 0,
05558     6, 0xFD87, 0x0644, 0x0645, 0x062D, 0,
05559     4, 0xFD88, 0x0644, 0x0645, 0x062D, 0,
05560     4, 0xFD89, 0x0645, 0x062D, 0x062C, 0,
05561     4, 0xFD8A, 0x0645, 0x062D, 0x0645, 0,
05562     6, 0xFD8B, 0x0645, 0x062D, 0x064A, 0,
05563     4, 0xFD8C, 0x0645, 0x062C, 0x062D, 0,
05564     4, 0xFD8D, 0x0645, 0x062C, 0x0645, 0,
05565     4, 0xFD8E, 0x0645, 0x062E, 0x062C, 0,
05566     4, 0xFD8F, 0x0645, 0x062E, 0x0645, 0,
05567     4, 0xFD92, 0x0645, 0x062C, 0x062E, 0,
05568     4, 0xFD93, 0x0647, 0x0645, 0x062C, 0,
05569     4, 0xFD94, 0x0647, 0x0645, 0x0645, 0,
05570     4, 0xFD95, 0x0646, 0x062D, 0x0645, 0,
05571     6, 0xFD96, 0x0646, 0x062D, 0x0649, 0,
05572     6, 0xFD97, 0x0646, 0x062C, 0x0645, 0,
05573     4, 0xFD98, 0x0646, 0x062C, 0x0645, 0,
05574     6, 0xFD99, 0x0646, 0x062C, 0x0649, 0,
05575     6, 0xFD9A, 0x0646, 0x0645, 0x064A, 0,
05576     6, 0xFD9B, 0x0646, 0x0645, 0x0649, 0,
05577     6, 0xFD9C, 0x064A, 0x0645, 0x0645, 0,
05578     4, 0xFD9D, 0x064A, 0x0645, 0x0645, 0,
05579     6, 0xFD9E, 0x0628, 0x062E, 0x064A, 0,
05580     6, 0xFD9F, 0x062A, 0x062C, 0x064A, 0,
05581     6, 0xFDA0, 0x062A, 0x062C, 0x0649, 0,
05582     6, 0xFDA1, 0x062A, 0x062E, 0x064A, 0,
05583     6, 0xFDA2, 0x062A, 0x062E, 0x0649, 0,
05584     6, 0xFDA3, 0x062A, 0x0645, 0x064A, 0,
05585     6, 0xFDA4, 0x062A, 0x0645, 0x0649, 0,
05586     6, 0xFDA5, 0x062C, 0x0645, 0x064A, 0,
05587     6, 0xFDA6, 0x062C, 0x062D, 0x0649, 0,
05588     6, 0xFDA7, 0x062C, 0x0645, 0x0649, 0,
05589     6, 0xFDA8, 0x0633, 0x062E, 0x0649, 0,
05590     6, 0xFDA9, 0x0635, 0x062D, 0x064A, 0,
05591     6, 0xFDAA, 0x0634, 0x062D, 0x064A, 0,
05592     6, 0xFDAB, 0x0636, 0x062D, 0x064A, 0,
05593     6, 0xFDAC, 0x0644, 0x062C, 0x064A, 0,
05594     6, 0xFDAD, 0x0644, 0x0645, 0x064A, 0,
05595     6, 0xFDAE, 0x064A, 0x062D, 0x064A, 0,
05596     6, 0xFDAF, 0x064A, 0x062C, 0x064A, 0,
05597     6, 0xFDB0, 0x064A, 0x0645, 0x064A, 0,
05598     6, 0xFDB1, 0x0645, 0x0645, 0x064A, 0,
05599     6, 0xFDB2, 0x0642, 0x0645, 0x064A, 0,
05600     6, 0xFDB3, 0x0646, 0x062D, 0x064A, 0,
05601     4, 0xFDB4, 0x0642, 0x0645, 0x062D, 0,
05602     4, 0xFDB5, 0x0644, 0x062D, 0x0645, 0,
05603     6, 0xFDB6, 0x0639, 0x0645, 0x064A, 0,
05604     6, 0xFDB7, 0x0643, 0x0645, 0x064A, 0,
05605     4, 0xFDB8, 0x0646, 0x062C, 0x062D, 0,
05606     6, 0xFDB9, 0x0645, 0x062E, 0x064A, 0,
05607     4, 0xFDBA, 0x0644, 0x062C, 0x0645, 0,
05608     6, 0xFDBB, 0x0643, 0x0645, 0x0645, 0,
05609     6, 0xFDBC, 0x0644, 0x062C, 0x0645, 0,
05610     6, 0xFDBD, 0x0646, 0x062C, 0x062D, 0,
05611     6, 0xFDBE, 0x062C, 0x062D, 0x064A, 0,
05612     6, 0xFDBF, 0x062D, 0x062C, 0x064A, 0,
05613     6, 0xFDC0, 0x0645, 0x062C, 0x064A, 0,
05614     6, 0xFDC1, 0x0641, 0x0645, 0x064A, 0,
05615     6, 0xFDC2, 0x0628, 0x062D, 0x064A, 0,
05616     4, 0xFDC3, 0x0643, 0x0645, 0x0645, 0,
05617     4, 0xFDC4, 0x0639, 0x062C, 0x0645, 0,
05618     4, 0xFDC5, 0x0635, 0x0645, 0x0645, 0,
05619     6, 0xFDC6, 0x0633, 0x062E, 0x064A, 0,
05620     6, 0xFDC7, 0x0646, 0x062C, 0x064A, 0,
05621     7, 0xFDF0, 0x0635, 0x0644, 0x06D2, 0,
05622     7, 0xFDF1, 0x0642, 0x0644, 0x06D2, 0,
05623     7, 0xFDF2, 0x0627, 0x0644, 0x0644, 0x0647, 0,
05624     7, 0xFDF3, 0x0627, 0x0643, 0x0628, 0x0631, 0,
05625     7, 0xFDF4, 0x0645, 0x062D, 0x0645, 0x062F, 0,
05626     7, 0xFDF5, 0x0635, 0x0644, 0x0639, 0x0645, 0,
05627     7, 0xFDF6, 0x0631, 0x0633, 0x0648, 0x0644, 0,
05628     7, 0xFDF7, 0x0639, 0x0644, 0x064A, 0x0647, 0,
05629     7, 0xFDF8, 0x0648, 0x0633, 0x0644, 0x0645, 0,
05630     7, 0xFDF9, 0x0635, 0x0644, 0x0649, 0,
05631     7, 0xFDFA, 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645, 0,
05632     7, 0xFDFB, 0x062C, 0x0644, 0x0020, 0x062C, 0x0644, 0x0627, 0x0644, 0x0647, 0,
05633     7, 0xFDFC, 0x0631, 0x06CC, 0x0627, 0x0644, 0,
05634     11, 0xFE30, 0x2025, 0,
05635     11, 0xFE31, 0x2014, 0,
05636     11, 0xFE32, 0x2013, 0,
05637     11, 0xFE33, 0x005F, 0,
05638     11, 0xFE34, 0x005F, 0,
05639     11, 0xFE35, 0x0028, 0,
05640     11, 0xFE36, 0x0029, 0,
05641     11, 0xFE37, 0x007B, 0,
05642     11, 0xFE38, 0x007D, 0,
05643     11, 0xFE39, 0x3014, 0,
05644     11, 0xFE3A, 0x3015, 0,
05645     11, 0xFE3B, 0x3010, 0,
05646     11, 0xFE3C, 0x3011, 0,
05647     11, 0xFE3D, 0x300A, 0,
05648     11, 0xFE3E, 0x300B, 0,
05649     11, 0xFE3F, 0x3008, 0,
05650     11, 0xFE40, 0x3009, 0,
05651     11, 0xFE41, 0x300C, 0,
05652     11, 0xFE42, 0x300D, 0,
05653     11, 0xFE43, 0x300E, 0,
05654     11, 0xFE44, 0x300F, 0,
05655     16, 0xFE49, 0x203E, 0,
05656     16, 0xFE4A, 0x203E, 0,
05657     16, 0xFE4B, 0x203E, 0,
05658     16, 0xFE4C, 0x203E, 0,
05659     16, 0xFE4D, 0x005F, 0,
05660     16, 0xFE4E, 0x005F, 0,
05661     16, 0xFE4F, 0x005F, 0,
05662     14, 0xFE50, 0x002C, 0,
05663     14, 0xFE51, 0x3001, 0,
05664     14, 0xFE52, 0x002E, 0,
05665     14, 0xFE54, 0x003B, 0,
05666     14, 0xFE55, 0x003A, 0,
05667     14, 0xFE56, 0x003F, 0,
05668     14, 0xFE57, 0x0021, 0,
05669     14, 0xFE58, 0x2014, 0,
05670     14, 0xFE59, 0x0028, 0,
05671     14, 0xFE5A, 0x0029, 0,
05672     14, 0xFE5B, 0x007B, 0,
05673     14, 0xFE5C, 0x007D, 0,
05674     14, 0xFE5D, 0x3014, 0,
05675     14, 0xFE5E, 0x3015, 0,
05676     14, 0xFE5F, 0x0023, 0,
05677     14, 0xFE60, 0x0026, 0,
05678     14, 0xFE61, 0x002A, 0,
05679     14, 0xFE62, 0x002B, 0,
05680     14, 0xFE63, 0x002D, 0,
05681     14, 0xFE64, 0x003C, 0,
05682     14, 0xFE65, 0x003E, 0,
05683     14, 0xFE66, 0x003D, 0,
05684     14, 0xFE68, 0x005C, 0,
05685     14, 0xFE69, 0x0024, 0,
05686     14, 0xFE6A, 0x0025, 0,
05687     14, 0xFE6B, 0x0040, 0,
05688     7, 0xFE70, 0x0020, 0x064B, 0,
05689     5, 0xFE71, 0x0640, 0x064B, 0,
05690     7, 0xFE72, 0x0020, 0x064C, 0,
05691     7, 0xFE74, 0x0020, 0x064D, 0,
05692     7, 0xFE76, 0x0020, 0x064E, 0,
05693     5, 0xFE77, 0x0640, 0x064E, 0,
05694     7, 0xFE78, 0x0020, 0x064F, 0,
05695     5, 0xFE79, 0x0640, 0x064F, 0,
05696     7, 0xFE7A, 0x0020, 0x0650, 0,
05697     5, 0xFE7B, 0x0640, 0x0650, 0,
05698     7, 0xFE7C, 0x0020, 0x0651, 0,
05699     5, 0xFE7D, 0x0640, 0x0651, 0,
05700     7, 0xFE7E, 0x0020, 0x0652, 0,
05701     5, 0xFE7F, 0x0640, 0x0652, 0,
05702     7, 0xFE80, 0x0621, 0,
05703     7, 0xFE81, 0x0622, 0,
05704     6, 0xFE82, 0x0622, 0,
05705     7, 0xFE83, 0x0623, 0,
05706     6, 0xFE84, 0x0623, 0,
05707     7, 0xFE85, 0x0624, 0,
05708     6, 0xFE86, 0x0624, 0,
05709     7, 0xFE87, 0x0625, 0,
05710     6, 0xFE88, 0x0625, 0,
05711     7, 0xFE89, 0x0626, 0,
05712     6, 0xFE8A, 0x0626, 0,
05713     4, 0xFE8B, 0x0626, 0,
05714     5, 0xFE8C, 0x0626, 0,
05715     7, 0xFE8D, 0x0627, 0,
05716     6, 0xFE8E, 0x0627, 0,
05717     7, 0xFE8F, 0x0628, 0,
05718     6, 0xFE90, 0x0628, 0,
05719     4, 0xFE91, 0x0628, 0,
05720     5, 0xFE92, 0x0628, 0,
05721     7, 0xFE93, 0x0629, 0,
05722     6, 0xFE94, 0x0629, 0,
05723     7, 0xFE95, 0x062A, 0,
05724     6, 0xFE96, 0x062A, 0,
05725     4, 0xFE97, 0x062A, 0,
05726     5, 0xFE98, 0x062A, 0,
05727     7, 0xFE99, 0x062B, 0,
05728     6, 0xFE9A, 0x062B, 0,
05729     4, 0xFE9B, 0x062B, 0,
05730     5, 0xFE9C, 0x062B, 0,
05731     7, 0xFE9D, 0x062C, 0,
05732     6, 0xFE9E, 0x062C, 0,
05733     4, 0xFE9F, 0x062C, 0,
05734     5, 0xFEA0, 0x062C, 0,
05735     7, 0xFEA1, 0x062D, 0,
05736     6, 0xFEA2, 0x062D, 0,
05737     4, 0xFEA3, 0x062D, 0,
05738     5, 0xFEA4, 0x062D, 0,
05739     7, 0xFEA5, 0x062E, 0,
05740     6, 0xFEA6, 0x062E, 0,
05741     4, 0xFEA7, 0x062E, 0,
05742     5, 0xFEA8, 0x062E, 0,
05743     7, 0xFEA9, 0x062F, 0,
05744     6, 0xFEAA, 0x062F, 0,
05745     7, 0xFEAB, 0x0630, 0,
05746     6, 0xFEAC, 0x0630, 0,
05747     7, 0xFEAD, 0x0631, 0,
05748     6, 0xFEAE, 0x0631, 0,
05749     7, 0xFEAF, 0x0632, 0,
05750     6, 0xFEB0, 0x0632, 0,
05751     7, 0xFEB1, 0x0633, 0,
05752     6, 0xFEB2, 0x0633, 0,
05753     4, 0xFEB3, 0x0633, 0,
05754     5, 0xFEB4, 0x0633, 0,
05755     7, 0xFEB5, 0x0634, 0,
05756     6, 0xFEB6, 0x0634, 0,
05757     4, 0xFEB7, 0x0634, 0,
05758     5, 0xFEB8, 0x0634, 0,
05759     7, 0xFEB9, 0x0635, 0,
05760     6, 0xFEBA, 0x0635, 0,
05761     4, 0xFEBB, 0x0635, 0,
05762     5, 0xFEBC, 0x0635, 0,
05763     7, 0xFEBD, 0x0636, 0,
05764     6, 0xFEBE, 0x0636, 0,
05765     4, 0xFEBF, 0x0636, 0,
05766     5, 0xFEC0, 0x0636, 0,
05767     7, 0xFEC1, 0x0637, 0,
05768     6, 0xFEC2, 0x0637, 0,
05769     4, 0xFEC3, 0x0637, 0,
05770     5, 0xFEC4, 0x0637, 0,
05771     7, 0xFEC5, 0x0638, 0,
05772     6, 0xFEC6, 0x0638, 0,
05773     4, 0xFEC7, 0x0638, 0,
05774     5, 0xFEC8, 0x0638, 0,
05775     7, 0xFEC9, 0x0639, 0,
05776     6, 0xFECA, 0x0639, 0,
05777     4, 0xFECB, 0x0639, 0,
05778     5, 0xFECC, 0x0639, 0,
05779     7, 0xFECD, 0x063A, 0,
05780     6, 0xFECE, 0x063A, 0,
05781     4, 0xFECF, 0x063A, 0,
05782     5, 0xFED0, 0x063A, 0,
05783     7, 0xFED1, 0x0641, 0,
05784     6, 0xFED2, 0x0641, 0,
05785     4, 0xFED3, 0x0641, 0,
05786     5, 0xFED4, 0x0641, 0,
05787     7, 0xFED5, 0x0642, 0,
05788     6, 0xFED6, 0x0642, 0,
05789     4, 0xFED7, 0x0642, 0,
05790     5, 0xFED8, 0x0642, 0,
05791     7, 0xFED9, 0x0643, 0,
05792     6, 0xFEDA, 0x0643, 0,
05793     4, 0xFEDB, 0x0643, 0,
05794     5, 0xFEDC, 0x0643, 0,
05795     7, 0xFEDD, 0x0644, 0,
05796     6, 0xFEDE, 0x0644, 0,
05797     4, 0xFEDF, 0x0644, 0,
05798     5, 0xFEE0, 0x0644, 0,
05799     7, 0xFEE1, 0x0645, 0,
05800     6, 0xFEE2, 0x0645, 0,
05801     4, 0xFEE3, 0x0645, 0,
05802     5, 0xFEE4, 0x0645, 0,
05803     7, 0xFEE5, 0x0646, 0,
05804     6, 0xFEE6, 0x0646, 0,
05805     4, 0xFEE7, 0x0646, 0,
05806     5, 0xFEE8, 0x0646, 0,
05807     7, 0xFEE9, 0x0647, 0,
05808     6, 0xFEEA, 0x0647, 0,
05809     4, 0xFEEB, 0x0647, 0,
05810     5, 0xFEEC, 0x0647, 0,
05811     7, 0xFEED, 0x0648, 0,
05812     6, 0xFEEE, 0x0648, 0,
05813     7, 0xFEEF, 0x0649, 0,
05814     6, 0xFEF0, 0x0649, 0,
05815     7, 0xFEF1, 0x064A, 0,
05816     6, 0xFEF2, 0x064A, 0,
05817     4, 0xFEF3, 0x064A, 0,
05818     5, 0xFEF4, 0x064A, 0,
05819     7, 0xFEF5, 0x0644, 0x0622, 0,
05820     6, 0xFEF6, 0x0644, 0x0622, 0,
05821     7, 0xFEF7, 0x0644, 0x0623, 0,
05822     6, 0xFEF8, 0x0644, 0x0623, 0,
05823     7, 0xFEF9, 0x0644, 0x0625, 0,
05824     6, 0xFEFA, 0x0644, 0x0625, 0,
05825     7, 0xFEFB, 0x0644, 0x0627, 0,
05826     6, 0xFEFC, 0x0644, 0x0627, 0,
05827     12, 0xFF01, 0x0021, 0,
05828     12, 0xFF02, 0x0022, 0,
05829     12, 0xFF03, 0x0023, 0,
05830     12, 0xFF04, 0x0024, 0,
05831     12, 0xFF05, 0x0025, 0,
05832     12, 0xFF06, 0x0026, 0,
05833     12, 0xFF07, 0x0027, 0,
05834     12, 0xFF08, 0x0028, 0,
05835     12, 0xFF09, 0x0029, 0,
05836     12, 0xFF0A, 0x002A, 0,
05837     12, 0xFF0B, 0x002B, 0,
05838     12, 0xFF0C, 0x002C, 0,
05839     12, 0xFF0D, 0x002D, 0,
05840     12, 0xFF0E, 0x002E, 0,
05841     12, 0xFF0F, 0x002F, 0,
05842     12, 0xFF10, 0x0030, 0,
05843     12, 0xFF11, 0x0031, 0,
05844     12, 0xFF12, 0x0032, 0,
05845     12, 0xFF13, 0x0033, 0,
05846     12, 0xFF14, 0x0034, 0,
05847     12, 0xFF15, 0x0035, 0,
05848     12, 0xFF16, 0x0036, 0,
05849     12, 0xFF17, 0x0037, 0,
05850     12, 0xFF18, 0x0038, 0,
05851     12, 0xFF19, 0x0039, 0,
05852     12, 0xFF1A, 0x003A, 0,
05853     12, 0xFF1B, 0x003B, 0,
05854     12, 0xFF1C, 0x003C, 0,
05855     12, 0xFF1D, 0x003D, 0,
05856     12, 0xFF1E, 0x003E, 0,
05857     12, 0xFF1F, 0x003F, 0,
05858     12, 0xFF20, 0x0040, 0,
05859     12, 0xFF21, 0x0041, 0,
05860     12, 0xFF22, 0x0042, 0,
05861     12, 0xFF23, 0x0043, 0,
05862     12, 0xFF24, 0x0044, 0,
05863     12, 0xFF25, 0x0045, 0,
05864     12, 0xFF26, 0x0046, 0,
05865     12, 0xFF27, 0x0047, 0,
05866     12, 0xFF28, 0x0048, 0,
05867     12, 0xFF29, 0x0049, 0,
05868     12, 0xFF2A, 0x004A, 0,
05869     12, 0xFF2B, 0x004B, 0,
05870     12, 0xFF2C, 0x004C, 0,
05871     12, 0xFF2D, 0x004D, 0,
05872     12, 0xFF2E, 0x004E, 0,
05873     12, 0xFF2F, 0x004F, 0,
05874     12, 0xFF30, 0x0050, 0,
05875     12, 0xFF31, 0x0051, 0,
05876     12, 0xFF32, 0x0052, 0,
05877     12, 0xFF33, 0x0053, 0,
05878     12, 0xFF34, 0x0054, 0,
05879     12, 0xFF35, 0x0055, 0,
05880     12, 0xFF36, 0x0056, 0,
05881     12, 0xFF37, 0x0057, 0,
05882     12, 0xFF38, 0x0058, 0,
05883     12, 0xFF39, 0x0059, 0,
05884     12, 0xFF3A, 0x005A, 0,
05885     12, 0xFF3B, 0x005B, 0,
05886     12, 0xFF3C, 0x005C, 0,
05887     12, 0xFF3D, 0x005D, 0,
05888     12, 0xFF3E, 0x005E, 0,
05889     12, 0xFF3F, 0x005F, 0,
05890     12, 0xFF40, 0x0060, 0,
05891     12, 0xFF41, 0x0061, 0,
05892     12, 0xFF42, 0x0062, 0,
05893     12, 0xFF43, 0x0063, 0,
05894     12, 0xFF44, 0x0064, 0,
05895     12, 0xFF45, 0x0065, 0,
05896     12, 0xFF46, 0x0066, 0,
05897     12, 0xFF47, 0x0067, 0,
05898     12, 0xFF48, 0x0068, 0,
05899     12, 0xFF49, 0x0069, 0,
05900     12, 0xFF4A, 0x006A, 0,
05901     12, 0xFF4B, 0x006B, 0,
05902     12, 0xFF4C, 0x006C, 0,
05903     12, 0xFF4D, 0x006D, 0,
05904     12, 0xFF4E, 0x006E, 0,
05905     12, 0xFF4F, 0x006F, 0,
05906     12, 0xFF50, 0x0070, 0,
05907     12, 0xFF51, 0x0071, 0,
05908     12, 0xFF52, 0x0072, 0,
05909     12, 0xFF53, 0x0073, 0,
05910     12, 0xFF54, 0x0074, 0,
05911     12, 0xFF55, 0x0075, 0,
05912     12, 0xFF56, 0x0076, 0,
05913     12, 0xFF57, 0x0077, 0,
05914     12, 0xFF58, 0x0078, 0,
05915     12, 0xFF59, 0x0079, 0,
05916     12, 0xFF5A, 0x007A, 0,
05917     12, 0xFF5B, 0x007B, 0,
05918     12, 0xFF5C, 0x007C, 0,
05919     12, 0xFF5D, 0x007D, 0,
05920     12, 0xFF5E, 0x007E, 0,
05921     12, 0xFF5F, 0x2985, 0,
05922     12, 0xFF60, 0x2986, 0,
05923     13, 0xFF61, 0x3002, 0,
05924     13, 0xFF62, 0x300C, 0,
05925     13, 0xFF63, 0x300D, 0,
05926     13, 0xFF64, 0x3001, 0,
05927     13, 0xFF65, 0x30FB, 0,
05928     13, 0xFF66, 0x30F2, 0,
05929     13, 0xFF67, 0x30A1, 0,
05930     13, 0xFF68, 0x30A3, 0,
05931     13, 0xFF69, 0x30A5, 0,
05932     13, 0xFF6A, 0x30A7, 0,
05933     13, 0xFF6B, 0x30A9, 0,
05934     13, 0xFF6C, 0x30E3, 0,
05935     13, 0xFF6D, 0x30E5, 0,
05936     13, 0xFF6E, 0x30E7, 0,
05937     13, 0xFF6F, 0x30C3, 0,
05938     13, 0xFF70, 0x30FC, 0,
05939     13, 0xFF71, 0x30A2, 0,
05940     13, 0xFF72, 0x30A4, 0,
05941     13, 0xFF73, 0x30A6, 0,
05942     13, 0xFF74, 0x30A8, 0,
05943     13, 0xFF75, 0x30AA, 0,
05944     13, 0xFF76, 0x30AB, 0,
05945     13, 0xFF77, 0x30AD, 0,
05946     13, 0xFF78, 0x30AF, 0,
05947     13, 0xFF79, 0x30B1, 0,
05948     13, 0xFF7A, 0x30B3, 0,
05949     13, 0xFF7B, 0x30B5, 0,
05950     13, 0xFF7C, 0x30B7, 0,
05951     13, 0xFF7D, 0x30B9, 0,
05952     13, 0xFF7E, 0x30BB, 0,
05953     13, 0xFF7F, 0x30BD, 0,
05954     13, 0xFF80, 0x30BF, 0,
05955     13, 0xFF81, 0x30C1, 0,
05956     13, 0xFF82, 0x30C4, 0,
05957     13, 0xFF83, 0x30C6, 0,
05958     13, 0xFF84, 0x30C8, 0,
05959     13, 0xFF85, 0x30CA, 0,
05960     13, 0xFF86, 0x30CB, 0,
05961     13, 0xFF87, 0x30CC, 0,
05962     13, 0xFF88, 0x30CD, 0,
05963     13, 0xFF89, 0x30CE, 0,
05964     13, 0xFF8A, 0x30CF, 0,
05965     13, 0xFF8B, 0x30D2, 0,
05966     13, 0xFF8C, 0x30D5, 0,
05967     13, 0xFF8D, 0x30D8, 0,
05968     13, 0xFF8E, 0x30DB, 0,
05969     13, 0xFF8F, 0x30DE, 0,
05970     13, 0xFF90, 0x30DF, 0,
05971     13, 0xFF91, 0x30E0, 0,
05972     13, 0xFF92, 0x30E1, 0,
05973     13, 0xFF93, 0x30E2, 0,
05974     13, 0xFF94, 0x30E4, 0,
05975     13, 0xFF95, 0x30E6, 0,
05976     13, 0xFF96, 0x30E8, 0,
05977     13, 0xFF97, 0x30E9, 0,
05978     13, 0xFF98, 0x30EA, 0,
05979     13, 0xFF99, 0x30EB, 0,
05980     13, 0xFF9A, 0x30EC, 0,
05981     13, 0xFF9B, 0x30ED, 0,
05982     13, 0xFF9C, 0x30EF, 0,
05983     13, 0xFF9D, 0x30F3, 0,
05984     13, 0xFF9E, 0x3099, 0,
05985     13, 0xFF9F, 0x309A, 0,
05986     13, 0xFFA0, 0x3164, 0,
05987     13, 0xFFA1, 0x3131, 0,
05988     13, 0xFFA2, 0x3132, 0,
05989     13, 0xFFA3, 0x3133, 0,
05990     13, 0xFFA4, 0x3134, 0,
05991     13, 0xFFA5, 0x3135, 0,
05992     13, 0xFFA6, 0x3136, 0,
05993     13, 0xFFA7, 0x3137, 0,
05994     13, 0xFFA8, 0x3138, 0,
05995     13, 0xFFA9, 0x3139, 0,
05996     13, 0xFFAA, 0x313A, 0,
05997     13, 0xFFAB, 0x313B, 0,
05998     13, 0xFFAC, 0x313C, 0,
05999     13, 0xFFAD, 0x313D, 0,
06000     13, 0xFFAE, 0x313E, 0,
06001     13, 0xFFAF, 0x313F, 0,
06002     13, 0xFFB0, 0x3140, 0,
06003     13, 0xFFB1, 0x3141, 0,
06004     13, 0xFFB2, 0x3142, 0,
06005     13, 0xFFB3, 0x3143, 0,
06006     13, 0xFFB4, 0x3144, 0,
06007     13, 0xFFB5, 0x3145, 0,
06008     13, 0xFFB6, 0x3146, 0,
06009     13, 0xFFB7, 0x3147, 0,
06010     13, 0xFFB8, 0x3148, 0,
06011     13, 0xFFB9, 0x3149, 0,
06012     13, 0xFFBA, 0x314A, 0,
06013     13, 0xFFBB, 0x314B, 0,
06014     13, 0xFFBC, 0x314C, 0,
06015     13, 0xFFBD, 0x314D, 0,
06016     13, 0xFFBE, 0x314E, 0,
06017     13, 0xFFC2, 0x314F, 0,
06018     13, 0xFFC3, 0x3150, 0,
06019     13, 0xFFC4, 0x3151, 0,
06020     13, 0xFFC5, 0x3152, 0,
06021     13, 0xFFC6, 0x3153, 0,
06022     13, 0xFFC7, 0x3154, 0,
06023     13, 0xFFCA, 0x3155, 0,
06024     13, 0xFFCB, 0x3156, 0,
06025     13, 0xFFCC, 0x3157, 0,
06026     13, 0xFFCD, 0x3158, 0,
06027     13, 0xFFCE, 0x3159, 0,
06028     13, 0xFFCF, 0x315A, 0,
06029     13, 0xFFD2, 0x315B, 0,
06030     13, 0xFFD3, 0x315C, 0,
06031     13, 0xFFD4, 0x315D, 0,
06032     13, 0xFFD5, 0x315E, 0,
06033     13, 0xFFD6, 0x315F, 0,
06034     13, 0xFFD7, 0x3160, 0,
06035     13, 0xFFDA, 0x3161, 0,
06036     13, 0xFFDB, 0x3162, 0,
06037     13, 0xFFDC, 0x3163, 0,
06038     12, 0xFFE0, 0x00A2, 0,
06039     12, 0xFFE1, 0x00A3, 0,
06040     12, 0xFFE2, 0x00AC, 0,
06041     12, 0xFFE3, 0x00AF, 0,
06042     12, 0xFFE4, 0x00A6, 0,
06043     12, 0xFFE5, 0x00A5, 0,
06044     12, 0xFFE6, 0x20A9, 0,
06045     13, 0xFFE8, 0x2502, 0,
06046     13, 0xFFE9, 0x2190, 0,
06047     13, 0xFFEA, 0x2191, 0,
06048     13, 0xFFEB, 0x2192, 0,
06049     13, 0xFFEC, 0x2193, 0,
06050     13, 0xFFED, 0x25A0, 0,
06051     13, 0xFFEE, 0x25CB, 0,
06052 
06053 };
06054 
06055 static const Q_UINT16 di_00[] = {
06056     0, 0, 0, 0, 0, 0, 0, 0,
06057     0, 0, 0, 0, 0, 0, 0, 0,
06058     0, 0, 0, 0, 0, 0, 0, 0,
06059     0, 0, 0, 0, 0, 0, 0, 0,
06060     0, 0, 0, 0, 0, 0, 0, 0,
06061     0, 0, 0, 0, 0, 0, 0, 0,
06062     0, 0, 0, 0, 0, 0, 0, 0,
06063     0, 0, 0, 0, 0, 0, 0, 0,
06064     0, 0, 0, 0, 0, 0, 0, 0,
06065     0, 0, 0, 0, 0, 0, 0, 0,
06066     0, 0, 0, 0, 0, 0, 0, 0,
06067     0, 0, 0, 0, 0, 0, 0, 0,
06068     0, 0, 0, 0, 0, 0, 0, 0,
06069     0, 0, 0, 0, 0, 0, 0, 0,
06070     0, 0, 0, 0, 0, 0, 0, 0,
06071     0, 0, 0, 0, 0, 0, 0, 0,
06072     0, 0, 0, 0, 0, 0, 0, 0,
06073     0, 0, 0, 0, 0, 0, 0, 0,
06074     0, 0, 0, 0, 0, 0, 0, 0,
06075     0, 0, 0, 0, 0, 0, 0, 0,
06076     1, 0, 0, 0, 0, 0, 0, 0,
06077     5, 0, 10, 0, 0, 0, 0, 14,
06078     0, 0, 19, 23, 27, 32, 0, 0,
06079     36, 41, 45, 0, 49, 55, 61, 0,
06080     67, 72, 77, 82, 87, 92, 0, 97,
06081     102, 107, 112, 117, 122, 127, 132, 137,
06082     0, 142, 147, 152, 157, 162, 167, 0,
06083     0, 172, 177, 182, 187, 192, 0, 0,
06084     197, 202, 207, 212, 217, 222, 0, 227,
06085     232, 237, 242, 247, 252, 257, 262, 267,
06086     0, 272, 277, 282, 287, 292, 297, 0,
06087     0, 302, 307, 312, 317, 322, 0, 327,
06088 };
06089 
06090 static const Q_UINT16 di_01[] = {
06091     332, 337, 342, 347, 352, 357, 362, 367,
06092     372, 377, 382, 387, 392, 397, 402, 407,
06093     0, 0, 412, 417, 422, 427, 432, 437,
06094     442, 447, 452, 457, 462, 467, 472, 477,
06095     482, 487, 492, 497, 502, 507, 0, 0,
06096     512, 517, 522, 527, 532, 537, 542, 547,
06097     552, 0, 557, 562, 567, 572, 577, 582,
06098     0, 587, 592, 597, 602, 607, 612, 617,
06099     622, 0, 0, 627, 632, 637, 642, 647,
06100     652, 657, 0, 0, 662, 667, 672, 677,
06101     682, 687, 0, 0, 692, 697, 702, 707,
06102     712, 717, 722, 727, 732, 737, 742, 747,
06103     752, 757, 762, 767, 772, 777, 0, 0,
06104     782, 787, 792, 797, 802, 807, 812, 817,
06105     822, 827, 832, 837, 842, 847, 852, 857,
06106     862, 867, 872, 877, 882, 887, 892, 897,
06107     0, 0, 0, 0, 0, 0, 0, 0,
06108     0, 0, 0, 0, 0, 0, 0, 0,
06109     0, 0, 0, 0, 0, 0, 0, 0,
06110     0, 0, 0, 0, 0, 0, 0, 0,
06111     901, 906, 0, 0, 0, 0, 0, 0,
06112     0, 0, 0, 0, 0, 0, 0, 911,
06113     916, 0, 0, 0, 0, 0, 0, 0,
06114     0, 0, 0, 0, 0, 0, 0, 0,
06115     0, 0, 0, 0, 921, 926, 931, 936,
06116     941, 946, 951, 956, 961, 966, 971, 976,
06117     981, 986, 991, 996, 1001, 1006, 1011, 1016,
06118     1021, 1026, 1031, 1036, 1041, 0, 1046, 1051,
06119     1056, 1061, 1066, 1071, 0, 0, 1076, 1081,
06120     1086, 1091, 1096, 1101, 1106, 1111, 1116, 1121,
06121     1126, 1131, 1136, 1141, 1146, 1151, 0, 0,
06122     1156, 1161, 1166, 1171, 1176, 1181, 1186, 1191,
06123 };
06124 
06125 static const Q_UINT16 di_02[] = {
06126     1196, 1201, 1206, 1211, 1216, 1221, 1226, 1231,
06127     1236, 1241, 1246, 1251, 1256, 1261, 1266, 1271,
06128     1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311,
06129     1316, 1321, 1326, 1331, 0, 0, 1336, 1341,
06130     0, 0, 0, 0, 0, 0, 1346, 1351,
06131     1356, 1361, 1366, 1371, 1376, 1381, 1386, 1391,
06132     1396, 1401, 1406, 1411, 0, 0, 0, 0,
06133     0, 0, 0, 0, 0, 0, 0, 0,
06134     0, 0, 0, 0, 0, 0, 0, 0,
06135     0, 0, 0, 0, 0, 0, 0, 0,
06136     0, 0, 0, 0, 0, 0, 0, 0,
06137     0, 0, 0, 0, 0, 0, 0, 0,
06138     0, 0, 0, 0, 0, 0, 0, 0,
06139     0, 0, 0, 0, 0, 0, 0, 0,
06140     0, 0, 0, 0, 0, 0, 0, 0,
06141     0, 0, 0, 0, 0, 0, 0, 0,
06142     0, 0, 0, 0, 0, 0, 0, 0,
06143     0, 0, 0, 0, 0, 0, 0, 0,
06144     0, 0, 0, 0, 0, 0, 0, 0,
06145     0, 0, 0, 0, 0, 0, 0, 0,
06146     0, 0, 0, 0, 0, 0, 0, 0,
06147     0, 0, 0, 0, 0, 0, 0, 0,
06148     1416, 1420, 1424, 1428, 1432, 1436, 1440, 1444,
06149     1448, 0, 0, 0, 0, 0, 0, 0,
06150     0, 0, 0, 0, 0, 0, 0, 0,
06151     0, 0, 0, 0, 0, 0, 0, 0,
06152     0, 0, 0, 0, 0, 0, 0, 0,
06153     1452, 1457, 1462, 1467, 1472, 1477, 0, 0,
06154     1482, 1486, 1490, 1494, 1498, 0, 0, 0,
06155     0, 0, 0, 0, 0, 0, 0, 0,
06156     0, 0, 0, 0, 0, 0, 0, 0,
06157     0, 0, 0, 0, 0, 0, 0, 0,
06158 };
06159 
06160 static const Q_UINT16 di_03[] = {
06161     0, 0, 0, 0, 0, 0, 0, 0,
06162     0, 0, 0, 0, 0, 0, 0, 0,
06163     0, 0, 0, 0, 0, 0, 0, 0,
06164     0, 0, 0, 0, 0, 0, 0, 0,
06165     0, 0, 0, 0, 0, 0, 0, 0,
06166     0, 0, 0, 0, 0, 0, 0, 0,
06167     0, 0, 0, 0, 0, 0, 0, 0,
06168     0, 0, 0, 0, 0, 0, 0, 0,
06169     1502, 1506, 0, 1510, 1514, 0, 0, 0,
06170     0, 0, 0, 0, 0, 0, 0, 0,
06171     0, 0, 0, 0, 0, 0, 0, 0,
06172     0, 0, 0, 0, 0, 0, 0, 0,
06173     0, 0, 0, 0, 0, 0, 0, 0,
06174     0, 0, 0, 0, 0, 0, 0, 0,
06175     0, 0, 0, 0, 1519, 0, 0, 0,
06176     0, 0, 1523, 0, 0, 0, 1528, 0,
06177     0, 0, 0, 0, 1532, 1537, 1542, 1547,
06178     1551, 1556, 1561, 0, 1566, 0, 1571, 1576,
06179     1581, 0, 0, 0, 0, 0, 0, 0,
06180     0, 0, 0, 0, 0, 0, 0, 0,
06181     0, 0, 0, 0, 0, 0, 0, 0,
06182     0, 0, 1586, 1591, 1596, 1601, 1606, 1611,
06183     1616, 0, 0, 0, 0, 0, 0, 0,
06184     0, 0, 0, 0, 0, 0, 0, 0,
06185     0, 0, 0, 0, 0, 0, 0, 0,
06186     0, 0, 1621, 1626, 1631, 1636, 1641, 0,
06187     1646, 1650, 1654, 1658, 1663, 1668, 1672, 0,
06188     0, 0, 0, 0, 0, 0, 0, 0,
06189     0, 0, 0, 0, 0, 0, 0, 0,
06190     0, 0, 0, 0, 0, 0, 0, 0,
06191     1676, 1680, 1684, 0, 1688, 1692, 0, 0,
06192     0, 0, 0, 0, 0, 0, 0, 0,
06193 };
06194 
06195 static const Q_UINT16 di_04[] = {
06196     1696, 1701, 0, 1706, 0, 0, 0, 1711,
06197     0, 0, 0, 0, 1716, 1721, 1726, 0,
06198     0, 0, 0, 0, 0, 0, 0, 0,
06199     0, 1731, 0, 0, 0, 0, 0, 0,
06200     0, 0, 0, 0, 0, 0, 0, 0,
06201     0, 0, 0, 0, 0, 0, 0, 0,
06202     0, 0, 0, 0, 0, 0, 0, 0,
06203     0, 1736, 0, 0, 0, 0, 0, 0,
06204     0, 0, 0, 0, 0, 0, 0, 0,
06205     0, 0, 0, 0, 0, 0, 0, 0,
06206     1741, 1746, 0, 1751, 0, 0, 0, 1756,
06207     0, 0, 0, 0, 1761, 1766, 1771, 0,
06208     0, 0, 0, 0, 0, 0, 0, 0,
06209     0, 0, 0, 0, 0, 0, 0, 0,
06210     0, 0, 0, 0, 0, 0, 1776, 1781,
06211     0, 0, 0, 0, 0, 0, 0, 0,
06212     0, 0, 0, 0, 0, 0, 0, 0,
06213     0, 0, 0, 0, 0, 0, 0, 0,
06214     0, 0, 0, 0, 0, 0, 0, 0,
06215     0, 0, 0, 0, 0, 0, 0, 0,
06216     0, 0, 0, 0, 0, 0, 0, 0,
06217     0, 0, 0, 0, 0, 0, 0, 0,
06218     0, 0, 0, 0, 0, 0, 0, 0,
06219     0, 0, 0, 0, 0, 0, 0, 0,
06220     0, 1786, 1791, 0, 0, 0, 0, 0,
06221     0, 0, 0, 0, 0, 0, 0, 0,
06222     1796, 1801, 1806, 1811, 0, 0, 1816, 1821,
06223     0, 0, 1826, 1831, 1836, 1841, 1846, 1851,
06224     0, 0, 1856, 1861, 1866, 1871, 1876, 1881,
06225     0, 0, 1886, 1891, 1896, 1901, 1906, 1911,
06226     1916, 1921, 1926, 1931, 1936, 1941, 0, 0,
06227     1946, 1951, 0, 0, 0, 0, 0, 0,
06228 };
06229 
06230 static const Q_UINT16 di_05[] = {
06231     0, 0, 0, 0, 0, 0, 0, 0,
06232     0, 0, 0, 0, 0, 0, 0, 0,
06233     0, 0, 0, 0, 0, 0, 0, 0,
06234     0, 0, 0, 0, 0, 0, 0, 0,
06235     0, 0, 0, 0, 0, 0, 0, 0,
06236     0, 0, 0, 0, 0, 0, 0, 0,
06237     0, 0, 0, 0, 0, 0, 0, 0,
06238     0, 0, 0, 0, 0, 0, 0, 0,
06239     0, 0, 0, 0, 0, 0, 0, 0,
06240     0, 0, 0, 0, 0, 0, 0, 0,
06241     0, 0, 0, 0, 0, 0, 0, 0,
06242     0, 0, 0, 0, 0, 0, 0, 0,
06243     0, 0, 0, 0, 0, 0, 0, 0,
06244     0, 0, 0, 0, 0, 0, 0, 0,
06245     0, 0, 0, 0, 0, 0, 0, 0,
06246     0, 0, 0, 0, 0, 0, 0, 0,
06247     0, 0, 0, 0, 0, 0, 0, 1956,
06248     0, 0, 0, 0, 0, 0, 0, 0,
06249     0, 0, 0, 0, 0, 0, 0, 0,
06250     0, 0, 0, 0, 0, 0, 0, 0,
06251     0, 0, 0, 0, 0, 0, 0, 0,
06252     0, 0, 0, 0, 0, 0, 0, 0,
06253     0, 0, 0, 0, 0, 0, 0, 0,
06254     0, 0, 0, 0, 0, 0, 0, 0,
06255     0, 0, 0, 0, 0, 0, 0, 0,
06256     0, 0, 0, 0, 0, 0, 0, 0,
06257     0, 0, 0, 0, 0, 0, 0, 0,
06258     0, 0, 0, 0, 0, 0, 0, 0,
06259     0, 0, 0, 0, 0, 0, 0, 0,
06260     0, 0, 0, 0, 0, 0, 0, 0,
06261     0, 0, 0, 0, 0, 0, 0, 0,
06262     0, 0, 0, 0, 0, 0, 0, 0,
06263 };
06264 
06265 static const Q_UINT16 di_06[] = {
06266     0, 0, 0, 0, 0, 0, 0, 0,
06267     0, 0, 0, 0, 0, 0, 0, 0,
06268     0, 0, 0, 0, 0, 0, 0, 0,
06269     0, 0, 0, 0, 0, 0, 0, 0,
06270     0, 0, 1961, 1966, 1971, 1976, 1981, 0,
06271     0, 0, 0, 0, 0, 0, 0, 0,
06272     0, 0, 0, 0, 0, 0, 0, 0,
06273     0, 0, 0, 0, 0, 0, 0, 0,
06274     0, 0, 0, 0, 0, 0, 0, 0,
06275     0, 0, 0, 0, 0, 0, 0, 0,
06276     0, 0, 0, 0, 0, 0, 0, 0,
06277     0, 0, 0, 0, 0, 0, 0, 0,
06278     0, 0, 0, 0, 0, 0, 0, 0,
06279     0, 0, 0, 0, 0, 0, 0, 0,
06280     0, 0, 0, 0, 0, 1986, 1991, 1996,
06281     2001, 0, 0, 0, 0, 0, 0, 0,
06282     0, 0, 0, 0, 0, 0, 0, 0,
06283     0, 0, 0, 0, 0, 0, 0, 0,
06284     0, 0, 0, 0, 0, 0, 0, 0,
06285     0, 0, 0, 0, 0, 0, 0, 0,
06286     0, 0, 0, 0, 0, 0, 0, 0,
06287     0, 0, 0, 0, 0, 0, 0, 0,
06288     0, 0, 0, 0, 0, 0, 0, 0,
06289     0, 0, 0, 0, 0, 0, 0, 0,
06290     2006, 0, 2011, 0, 0, 0, 0, 0,
06291     0, 0, 0, 0, 0, 0, 0, 0,
06292     0, 0, 0, 2016, 0, 0, 0, 0,
06293     0, 0, 0, 0, 0, 0, 0, 0,
06294     0, 0, 0, 0, 0, 0, 0, 0,
06295     0, 0, 0, 0, 0, 0, 0, 0,
06296     0, 0, 0, 0, 0, 0, 0, 0,
06297     0, 0, 0, 0, 0, 0, 0, 0,
06298 };
06299 
06300 static const Q_UINT16 di_07[] = {
06301     0, 0, 0, 0, 0, 0, 0, 0,
06302     0, 0, 0, 0, 0, 0, 0, 0,
06303     0, 0, 0, 0, 0, 0, 0, 0,
06304     0, 0, 0, 0, 0, 0, 0, 0,
06305     0, 0, 0, 0, 0, 0, 0, 0,
06306     0, 0, 0, 0, 0, 0, 0, 0,
06307     0, 0, 0, 0, 0, 0, 0, 0,
06308     0, 0, 0, 0, 0, 0, 0, 0,
06309     0, 0, 0, 0, 0, 0, 0, 0,
06310     0, 0, 0, 0, 0, 0, 0, 0,
06311     0, 0, 0, 0, 0, 0, 0, 0,
06312     0, 0, 0, 0, 0, 0, 0, 0,
06313     0, 0, 0, 0, 0, 0, 0, 0,
06314     0, 0, 0, 0, 0, 0, 0, 0,
06315     0, 0, 0, 0, 0, 0, 0, 0,
06316     0, 0, 0, 0, 0, 0, 0, 0,
06317     0, 0, 0, 0, 0, 0, 0, 0,
06318     0, 0, 0, 0, 0, 0, 0, 0,
06319     0, 0, 0, 0, 0, 0, 0, 0,
06320     0, 0, 0, 0, 0, 0, 0, 0,
06321     0, 0, 0, 0, 0, 0, 0, 0,
06322     0, 0, 0, 0, 0, 0, 0, 0,
06323     0, 0, 0, 0, 0, 0, 0, 0,
06324     0, 0, 0, 0, 0, 0, 0, 0,
06325     0, 0, 0, 0, 0, 0, 0, 0,
06326     0, 0, 0, 0, 0, 0, 0, 0,
06327     0, 0, 0, 0, 0, 0, 0, 0,
06328     0, 0, 0, 0, 0, 0, 0, 0,
06329     0, 0, 0, 0, 0, 0, 0, 0,
06330     0, 0, 0, 0, 0, 0, 0, 0,
06331     0, 0, 0, 0, 0, 0, 0, 0,
06332     0, 0, 0, 0, 0, 0, 0, 0,
06333 };
06334 
06335 static const Q_UINT16 di_09[] = {
06336     0, 0, 0, 0, 0, 0, 0, 0,
06337     0, 0, 0, 0, 0, 0, 0, 0,
06338     0, 0, 0, 0, 0, 0, 0, 0,
06339     0, 0, 0, 0, 0, 0, 0, 0,
06340     0, 0, 0, 0, 0, 0, 0, 0,
06341     0, 2021, 0, 0, 0, 0, 0, 0,
06342     0, 2026, 0, 0, 2031, 0, 0, 0,
06343     0, 0, 0, 0, 0, 0, 0, 0,
06344     0, 0, 0, 0, 0, 0, 0, 0,
06345     0, 0, 0, 0, 0, 0, 0, 0,
06346     0, 0, 0, 0, 0, 0, 0, 0,
06347     2036, 2041, 2046, 2051, 2056, 2061, 2066, 2071,
06348     0, 0, 0, 0, 0, 0, 0, 0,
06349     0, 0, 0, 0, 0, 0, 0, 0,
06350     0, 0, 0, 0, 0, 0, 0, 0,
06351     0, 0, 0, 0, 0, 0, 0, 0,
06352     0, 0, 0, 0, 0, 0, 0, 0,
06353     0, 0, 0, 0, 0, 0, 0, 0,
06354     0, 0, 0, 0, 0, 0, 0, 0,
06355     0, 0, 0, 0, 0, 0, 0, 0,
06356     0, 0, 0, 0, 0, 0, 0, 0,
06357     0, 0, 0, 0, 0, 0, 0, 0,
06358     0, 0, 0, 0, 0, 0, 0, 0,
06359     0, 0, 0, 0, 0, 0, 0, 0,
06360     0, 0, 0, 0, 0, 0, 0, 0,
06361     0, 0, 0, 2076, 2081, 0, 0, 0,
06362     0, 0, 0, 0, 0, 0, 0, 0,
06363     0, 0, 0, 0, 2086, 2091, 0, 2096,
06364     0, 0, 0, 0, 0, 0, 0, 0,
06365     0, 0, 0, 0, 0, 0, 0, 0,
06366     0, 0, 0, 0, 0, 0, 0, 0,
06367     0, 0, 0, 0, 0, 0, 0, 0,
06368 };
06369 
06370 static const Q_UINT16 di_0A[] = {
06371     0, 0, 0, 0, 0, 0, 0, 0,
06372     0, 0, 0, 0, 0, 0, 0, 0,
06373     0, 0, 0, 0, 0, 0, 0, 0,
06374     0, 0, 0, 0, 0, 0, 0, 0,
06375     0, 0, 0, 0, 0, 0, 0, 0,
06376     0, 0, 0, 0, 0, 0, 0, 0,
06377     0, 0, 0, 2101, 0, 0, 2106, 0,
06378     0, 0, 0, 0, 0, 0, 0, 0,
06379     0, 0, 0, 0, 0, 0, 0, 0,
06380     0, 0, 0, 0, 0, 0, 0, 0,
06381     0, 0, 0, 0, 0, 0, 0, 0,
06382     0, 2111, 2116, 2121, 0, 0, 2126, 0,
06383     0, 0, 0, 0, 0, 0, 0, 0,
06384     0, 0, 0, 0, 0, 0, 0, 0,
06385     0, 0, 0, 0, 0, 0, 0, 0,
06386     0, 0, 0, 0, 0, 0, 0, 0,
06387     0, 0, 0, 0, 0, 0, 0, 0,
06388     0, 0, 0, 0, 0, 0, 0, 0,
06389     0, 0, 0, 0, 0, 0, 0, 0,
06390     0, 0, 0, 0, 0, 0, 0, 0,
06391     0, 0, 0, 0, 0, 0, 0, 0,
06392     0, 0, 0, 0, 0, 0, 0, 0,
06393     0, 0, 0, 0, 0, 0, 0, 0,
06394     0, 0, 0, 0, 0, 0, 0, 0,
06395     0, 0, 0, 0, 0, 0, 0, 0,
06396     0, 0, 0, 0, 0, 0, 0, 0,
06397     0, 0, 0, 0, 0, 0, 0, 0,
06398     0, 0, 0, 0, 0, 0, 0, 0,
06399     0, 0, 0, 0, 0, 0, 0, 0,
06400     0, 0, 0, 0, 0, 0, 0, 0,
06401     0, 0, 0, 0, 0, 0, 0, 0,
06402     0, 0, 0, 0, 0, 0, 0, 0,
06403 };
06404 
06405 static const Q_UINT16 di_0B[] = {
06406     0, 0, 0, 0, 0, 0, 0, 0,
06407     0, 0, 0, 0, 0, 0, 0, 0,
06408     0, 0, 0, 0, 0, 0, 0, 0,
06409     0, 0, 0, 0, 0, 0, 0, 0,
06410     0, 0, 0, 0, 0, 0, 0, 0,
06411     0, 0, 0, 0, 0, 0, 0, 0,
06412     0, 0, 0, 0, 0, 0, 0, 0,
06413     0, 0, 0, 0, 0, 0, 0, 0,
06414     0, 0, 0, 0, 0, 0, 0, 0,
06415     2131, 0, 0, 2136, 2141, 0, 0, 0,
06416     0, 0, 0, 0, 0, 0, 0, 0,
06417     0, 0, 0, 0, 2146, 2151, 0, 0,
06418     0, 0, 0, 0, 0, 0, 0, 0,
06419     0, 0, 0, 0, 0, 0, 0, 0,
06420     0, 0, 0, 0, 0, 0, 0, 0,
06421     0, 0, 0, 0, 0, 0, 0, 0,
06422     0, 0, 0, 0, 0, 0, 0, 0,
06423     0, 0, 0, 0, 0, 0, 0, 0,
06424     0, 0, 0, 0, 2156, 0, 0, 0,
06425     0, 0, 0, 0, 0, 0, 0, 0,
06426     0, 0, 0, 0, 0, 0, 0, 0,
06427     0, 0, 0, 0, 0, 0, 0, 0,
06428     0, 0, 0, 0, 0, 0, 0, 0,
06429     0, 0, 0, 0, 0, 0, 0, 0,
06430     0, 0, 0, 0, 0, 0, 0, 0,
06431     0, 0, 2161, 2166, 2171, 0, 0, 0,
06432     0, 0, 0, 0, 0, 0, 0, 0,
06433     0, 0, 0, 0, 0, 0, 0, 0,
06434     0, 0, 0, 0, 0, 0, 0, 0,
06435     0, 0, 0, 0, 0, 0, 0, 0,
06436     0, 0, 0, 0, 0, 0, 0, 0,
06437     0, 0, 0, 0, 0, 0, 0, 0,
06438 };
06439 
06440 static const Q_UINT16 di_0C[] = {
06441     0, 0, 0, 0, 0, 0, 0, 0,
06442     0, 0, 0, 0, 0, 0, 0, 0,
06443     0, 0, 0, 0, 0, 0, 0, 0,
06444     0, 0, 0, 0, 0, 0, 0, 0,
06445     0, 0, 0, 0, 0, 0, 0, 0,
06446     0, 0, 0, 0, 0, 0, 0, 0,
06447     0, 0, 0, 0, 0, 0, 0, 0,
06448     0, 0, 0, 0, 0, 0, 0, 0,
06449     0, 0, 0, 0, 0, 0, 0, 0,
06450     2176, 0, 0, 0, 0, 0, 0, 0,
06451     0, 0, 0, 0, 0, 0, 0, 0,
06452     0, 0, 0, 0, 0, 0, 0, 0,
06453     0, 0, 0, 0, 0, 0, 0, 0,
06454     0, 0, 0, 0, 0, 0, 0, 0,
06455     0, 0, 0, 0, 0, 0, 0, 0,
06456     0, 0, 0, 0, 0, 0, 0, 0,
06457     0, 0, 0, 0, 0, 0, 0, 0,
06458     0, 0, 0, 0, 0, 0, 0, 0,
06459     0, 0, 0, 0, 0, 0, 0, 0,
06460     0, 0, 0, 0, 0, 0, 0, 0,
06461     0, 0, 0, 0, 0, 0, 0, 0,
06462     0, 0, 0, 0, 0, 0, 0, 0,
06463     0, 0, 0, 0, 0, 0, 0, 0,
06464     0, 0, 0, 0, 0, 0, 0, 0,
06465     2181, 0, 0, 0, 0, 0, 0, 2186,
06466     2191, 0, 2196, 2201, 0, 0, 0, 0,
06467     0, 0, 0, 0, 0, 0, 0, 0,
06468     0, 0, 0, 0, 0, 0, 0, 0,
06469     0, 0, 0, 0, 0, 0, 0, 0,
06470     0, 0, 0, 0, 0, 0, 0, 0,
06471     0, 0, 0, 0, 0, 0, 0, 0,
06472     0, 0, 0, 0, 0, 0, 0, 0,
06473 };
06474 
06475 static const Q_UINT16 di_0D[] = {
06476     0, 0, 0, 0, 0, 0, 0, 0,
06477     0, 0, 0, 0, 0, 0, 0, 0,
06478     0, 0, 0, 0, 0, 0, 0, 0,
06479     0, 0, 0, 0, 0, 0, 0, 0,
06480     0, 0, 0, 0, 0, 0, 0, 0,
06481     0, 0, 0, 0, 0, 0, 0, 0,
06482     0, 0, 0, 0, 0, 0, 0, 0,
06483     0, 0, 0, 0, 0, 0, 0, 0,
06484     0, 0, 0, 0, 0, 0, 0, 0,
06485     0, 0, 2206, 2211, 2216, 0, 0, 0,
06486     0, 0, 0, 0, 0, 0, 0, 0,
06487     0, 0, 0, 0, 0, 0, 0, 0,
06488     0, 0, 0, 0, 0, 0, 0, 0,
06489     0, 0, 0, 0, 0, 0, 0, 0,
06490     0, 0, 0, 0, 0, 0, 0, 0,
06491     0, 0, 0, 0, 0, 0, 0, 0,
06492     0, 0, 0, 0, 0, 0, 0, 0,
06493     0, 0, 0, 0, 0, 0, 0, 0,
06494     0, 0, 0, 0, 0, 0, 0, 0,
06495     0, 0, 0, 0, 0, 0, 0, 0,
06496     0, 0, 0, 0, 0, 0, 0, 0,
06497     0, 0, 0, 0, 0, 0, 0, 0,
06498     0, 0, 0, 0, 0, 0, 0, 0,
06499     0, 0, 0, 0, 0, 0, 0, 0,
06500     0, 0, 0, 0, 0, 0, 0, 0,
06501     0, 0, 0, 0, 0, 0, 0, 0,
06502     0, 0, 0, 0, 0, 0, 0, 0,
06503     0, 0, 2221, 0, 2226, 2231, 2236, 0,
06504     0, 0, 0, 0, 0, 0, 0, 0,
06505     0, 0, 0, 0, 0, 0, 0, 0,
06506     0, 0, 0, 0, 0, 0, 0, 0,
06507     0, 0, 0, 0, 0, 0, 0, 0,
06508 };
06509 
06510 static const Q_UINT16 di_0E[] = {
06511     0, 0, 0, 0, 0, 0, 0, 0,
06512     0, 0, 0, 0, 0, 0, 0, 0,
06513     0, 0, 0, 0, 0, 0, 0, 0,
06514     0, 0, 0, 0, 0, 0, 0, 0,
06515     0, 0, 0, 0, 0, 0, 0, 0,
06516     0, 0, 0, 0, 0, 0, 0, 0,
06517     0, 0, 0, 2241, 0, 0, 0, 0,
06518     0, 0, 0, 0, 0, 0, 0, 0,
06519     0, 0, 0, 0, 0, 0, 0, 0,
06520     0, 0, 0, 0, 0, 0, 0, 0,
06521     0, 0, 0, 0, 0, 0, 0, 0,
06522     0, 0, 0, 0, 0, 0, 0, 0,
06523     0, 0, 0, 0, 0, 0, 0, 0,
06524     0, 0, 0, 0, 0, 0, 0, 0,
06525     0, 0, 0, 0, 0, 0, 0, 0,
06526     0, 0, 0, 0, 0, 0, 0, 0,
06527     0, 0, 0, 0, 0, 0, 0, 0,
06528     0, 0, 0, 0, 0, 0, 0, 0,
06529     0, 0, 0, 0, 0, 0, 0, 0,
06530     0, 0, 0, 0, 0, 0, 0, 0,
06531     0, 0, 0, 0, 0, 0, 0, 0,
06532     0, 0, 0, 0, 0, 0, 0, 0,
06533     0, 0, 0, 2246, 0, 0, 0, 0,
06534     0, 0, 0, 0, 0, 0, 0, 0,
06535     0, 0, 0, 0, 0, 0, 0, 0,
06536     0, 0, 0, 0, 0, 0, 0, 0,
06537     0, 0, 0, 0, 0, 0, 0, 0,
06538     0, 0, 0, 0, 2251, 2256, 0, 0,
06539     0, 0, 0, 0, 0, 0, 0, 0,
06540     0, 0, 0, 0, 0, 0, 0, 0,
06541     0, 0, 0, 0, 0, 0, 0, 0,
06542     0, 0, 0, 0, 0, 0, 0, 0,
06543 };
06544 
06545 static const Q_UINT16 di_0F[] = {
06546     0, 0, 0, 0, 0, 0, 0, 0,
06547     0, 0, 0, 0, 2261, 0, 0, 0,
06548     0, 0, 0, 0, 0, 0, 0, 0,
06549     0, 0, 0, 0, 0, 0, 0, 0,
06550     0, 0, 0, 0, 0, 0, 0, 0,
06551     0, 0, 0, 0, 0, 0, 0, 0,
06552     0, 0, 0, 0, 0, 0, 0, 0,
06553     0, 0, 0, 0, 0, 0, 0, 0,
06554     0, 0, 0, 2265, 0, 0, 0, 0,
06555     0, 0, 0, 0, 0, 2270, 0, 0,
06556     0, 0, 2275, 0, 0, 0, 0, 2280,
06557     0, 0, 0, 0, 2285, 0, 0, 0,
06558     0, 0, 0, 0, 0, 0, 0, 0,
06559     0, 2290, 0, 0, 0, 0, 0, 0,
06560     0, 0, 0, 2295, 0, 2300, 2305, 2310,
06561     2315, 2320, 0, 0, 0, 0, 0, 0,
06562     0, 2325, 0, 0, 0, 0, 0, 0,
06563     0, 0, 0, 0, 0, 0, 0, 0,
06564     0, 0, 0, 2330, 0, 0, 0, 0,
06565     0, 0, 0, 0, 0, 2335, 0, 0,
06566     0, 0, 2340, 0, 0, 0, 0, 2345,
06567     0, 0, 0, 0, 2350, 0, 0, 0,
06568     0, 0, 0, 0, 0, 0, 0, 0,
06569     0, 2355, 0, 0, 0, 0, 0, 0,
06570     0, 0, 0, 0, 0, 0, 0, 0,
06571     0, 0, 0, 0, 0, 0, 0, 0,
06572     0, 0, 0, 0, 0, 0, 0, 0,
06573     0, 0, 0, 0, 0, 0, 0, 0,
06574     0, 0, 0, 0, 0, 0, 0, 0,
06575     0, 0, 0, 0, 0, 0, 0, 0,
06576     0, 0, 0, 0, 0, 0, 0, 0,
06577     0, 0, 0, 0, 0, 0, 0, 0,
06578 };
06579 
06580 static const Q_UINT16 di_10[] = {
06581     0, 0, 0, 0, 0, 0, 0, 0,
06582     0, 0, 0, 0, 0, 0, 0, 0,
06583     0, 0, 0, 0, 0, 0, 0, 0,
06584     0, 0, 0, 0, 0, 0, 0, 0,
06585     0, 0, 0, 0, 0, 0, 2360, 0,
06586     0, 0, 0, 0, 0, 0, 0, 0,
06587     0, 0, 0, 0, 0, 0, 0, 0,
06588     0, 0, 0, 0, 0, 0, 0, 0,
06589     0, 0, 0, 0, 0, 0, 0, 0,
06590     0, 0, 0, 0, 0, 0, 0, 0,
06591     0, 0, 0, 0, 0, 0, 0, 0,
06592     0, 0, 0, 0, 0, 0, 0, 0,
06593     0, 0, 0, 0, 0, 0, 0, 0,
06594     0, 0, 0, 0, 0, 0, 0, 0,
06595     0, 0, 0, 0, 0, 0, 0, 0,
06596     0, 0, 0, 0, 0, 0, 0, 0,
06597     0, 0, 0, 0, 0, 0, 0, 0,
06598     0, 0, 0, 0, 0, 0, 0, 0,
06599     0, 0, 0, 0, 0, 0, 0, 0,
06600     0, 0, 0, 0, 0, 0, 0, 0,
06601     0, 0, 0, 0, 0, 0, 0, 0,
06602     0, 0, 0, 0, 0, 0, 0, 0,
06603     0, 0, 0, 0, 0, 0, 0, 0,
06604     0, 0, 0, 0, 0, 0, 0, 0,
06605     0, 0, 0, 0, 0, 0, 0, 0,
06606     0, 0, 0, 0, 0, 0, 0, 0,
06607     0, 0, 0, 0, 0, 0, 0, 0,
06608     0, 0, 0, 0, 0, 0, 0, 0,
06609     0, 0, 0, 0, 0, 0, 0, 0,
06610     0, 0, 0, 0, 0, 0, 0, 0,
06611     0, 0, 0, 0, 0, 0, 0, 0,
06612     0, 0, 0, 0, 0, 0, 0, 0,
06613 };
06614 
06615 static const Q_UINT16 di_1E[] = {
06616     2365, 2370, 2375, 2380, 2385, 2390, 2395, 2400,
06617     2405, 2410, 2415, 2420, 2425, 2430, 2435, 2440,
06618     2445, 2450, 2455, 2460, 2465, 2470, 2475, 2480,
06619     2485, 2490, 2495, 2500, 2505, 2510, 2515, 2520,
06620     2525, 2530, 2535, 2540, 2545, 2550, 2555, 2560,
06621     2565, 2570, 2575, 2580, 2585, 2590, 2595, 2600,
06622     2605, 2610, 2615, 2620, 2625, 2630, 2635, 2640,
06623     2645, 2650, 2655, 2660, 2665, 2670, 2675, 2680,
06624     2685, 2690, 2695, 2700, 2705, 2710, 2715, 2720,
06625     2725, 2730, 2735, 2740, 2745, 2750, 2755, 2760,
06626     2765, 2770, 2775, 2780, 2785, 2790, 2795, 2800,
06627     2805, 2810, 2815, 2820, 2825, 2830, 2835, 2840,
06628     2845, 2850, 2855, 2860, 2865, 2870, 2875, 2880,
06629     2885, 2890, 2895, 2900, 2905, 2910, 2915, 2920,
06630     2925, 2930, 2935, 2940, 2945, 2950, 2955, 2960,
06631     2965, 2970, 2975, 2980, 2985, 2990, 2995, 3000,
06632     3005, 3010, 3015, 3020, 3025, 3030, 3035, 3040,
06633     3045, 3050, 3055, 3060, 3065, 3070, 3075, 3080,
06634     3085, 3090, 3095, 3100, 3105, 3110, 3115, 3120,
06635     3125, 3130, 3135, 3140, 0, 0, 0, 0,
06636     3145, 3150, 3155, 3160, 3165, 3170, 3175, 3180,
06637     3185, 3190, 3195, 3200, 3205, 3210, 3215, 3220,
06638     3225, 3230, 3235, 3240, 3245, 3250, 3255, 3260,
06639     3265, 3270, 3275, 3280, 3285, 3290, 3295, 3300,
06640     3305, 3310, 3315, 3320, 3325, 3330, 3335, 3340,
06641     3345, 3350, 3355, 3360, 3365, 3370, 3375, 3380,
06642     3385, 3390, 3395, 3400, 3405, 3410, 3415, 3420,
06643     3425, 3430, 3435, 3440, 3445, 3450, 3455, 3460,
06644     3465, 3470, 3475, 3480, 3485, 3490, 3495, 3500,
06645     3505, 3510, 3515, 3520, 3525, 3530, 3535, 3540,
06646     3545, 3550, 3555, 3560, 3565, 3570, 3575, 3580,
06647     3585, 3590, 0, 0, 0, 0, 0, 0,
06648 };
06649 
06650 static const Q_UINT16 di_1F[] = {
06651     3595, 3600, 3605, 3610, 3615, 3620, 3625, 3630,
06652     3635, 3640, 3645, 3650, 3655, 3660, 3665, 3670,
06653     3675, 3680, 3685, 3690, 3695, 3700, 0, 0,
06654     3705, 3710, 3715, 3720, 3725, 3730, 0, 0,
06655     3735, 3740, 3745, 3750, 3755, 3760, 3765, 3770,
06656     3775, 3780, 3785, 3790, 3795, 3800, 3805, 3810,
06657     3815, 3820, 3825, 3830, 3835, 3840, 3845, 3850,
06658     3855, 3860, 3865, 3870, 3875, 3880, 3885, 3890,
06659     3895, 3900, 3905, 3910, 3915, 3920, 0, 0,
06660     3925, 3930, 3935, 3940, 3945, 3950, 0, 0,
06661     3955, 3960, 3965, 3970, 3975, 3980, 3985, 3990,
06662     0, 3995, 0, 4000, 0, 4005, 0, 4010,
06663     4015, 4020, 4025, 4030, 4035, 4040, 4045, 4050,
06664     4055, 4060, 4065, 4070, 4075, 4080, 4085, 4090,
06665     4095, 4100, 4104, 4109, 4113, 4118, 4122, 4127,
06666     4131, 4136, 4140, 4145, 4149, 4154, 0, 0,
06667     4158, 4163, 4168, 4173, 4178, 4183, 4188, 4193,
06668     4198, 4203, 4208, 4213, 4218, 4223, 4228, 4233,
06669     4238, 4243, 4248, 4253, 4258, 4263, 4268, 4273,
06670     4278, 4283, 4288, 4293, 4298, 4303, 4308, 4313,
06671     4318, 4323, 4328, 4333, 4338, 4343, 4348, 4353,
06672     4358, 4363, 4368, 4373, 4378, 4383, 4388, 4393,
06673     4398, 4403, 4408, 4413, 4418, 0, 4423, 4428,
06674     4433, 4438, 4443, 4448, 4452, 4457, 4462, 4466,
06675     4471, 4476, 4481, 4486, 4491, 0, 4496, 4501,
06676     4506, 4511, 4515, 4520, 4524, 4529, 4534, 4539,
06677     4544, 4549, 4554, 4559, 0, 0, 4563, 4568,
06678     4573, 4578, 4583, 4588, 0, 4592, 4597, 4602,
06679     4607, 4612, 4617, 4622, 4626, 4631, 4636, 4641,
06680     4646, 4651, 4656, 4661, 4665, 4670, 4675, 4679,
06681     0, 0, 4683, 4688, 4693, 0, 4698, 4703,
06682     4708, 4713, 4717, 4722, 4726, 4731, 4735, 0,
06683 };
06684 
06685 static const Q_UINT16 di_20[] = {
06686     4740, 4744, 4748, 4752, 4756, 4760, 4764, 4768,
06687     4772, 4776, 4780, 0, 0, 0, 0, 0,
06688     0, 4784, 0, 0, 0, 0, 0, 4788,
06689     0, 0, 0, 0, 0, 0, 0, 0,
06690     0, 0, 0, 0, 4793, 4797, 4802, 0,
06691     0, 0, 0, 0, 0, 0, 0, 4808,
06692     0, 0, 0, 4812, 4817, 0, 4823, 4828,
06693     0, 0, 0, 0, 4834, 0, 4839, 0,
06694     0, 0, 0, 0, 0, 0, 0, 4844,
06695     4849, 4854, 0, 0, 0, 0, 0, 0,
06696     0, 0, 0, 0, 0, 0, 0, 4859,
06697     0, 0, 0, 0, 0, 0, 0, 4866,
06698     0, 0, 0, 0, 0, 0, 0, 0,
06699     0, 0, 0, 0, 0, 0, 0, 0,
06700     4870, 4874, 0, 0, 4878, 4882, 4886, 4890,
06701     4894, 4898, 4902, 4906, 4910, 4914, 4918, 4922,
06702     4926, 4930, 4934, 4938, 4942, 4946, 4950, 4954,
06703     4958, 4962, 4966, 4970, 4974, 4978, 4982, 0,
06704     0, 0, 0, 0, 0, 0, 0, 0,
06705     0, 0, 0, 0, 0, 0, 0, 0,
06706     0, 0, 0, 0, 0, 0, 0, 0,
06707     4986, 0, 0, 0, 0, 0, 0, 0,
06708     0, 0, 0, 0, 0, 0, 0, 0,
06709     0, 0, 0, 0, 0, 0, 0, 0,
06710     0, 0, 0, 0, 0, 0, 0, 0,
06711     0, 0, 0, 0, 0, 0, 0, 0,
06712     0, 0, 0, 0, 0, 0, 0, 0,
06713     0, 0, 0, 0, 0, 0, 0, 0,
06714     0, 0, 0, 0, 0, 0, 0, 0,
06715     0, 0, 0, 0, 0, 0, 0, 0,
06716     0, 0, 0, 0, 0, 0, 0, 0,
06717     0, 0, 0, 0, 0, 0, 0, 0,
06718 };
06719 
06720 static const Q_UINT16 di_21[] = {
06721     4991, 4997, 5003, 5007, 0, 5012, 5018, 5024,
06722     0, 5028, 5033, 5037, 5041, 5045, 5049, 5053,
06723     5057, 5061, 5065, 5069, 0, 5073, 5077, 0,
06724     0, 5082, 5086, 5090, 5094, 5098, 0, 0,
06725     5102, 5107, 5113, 0, 5118, 0, 5122, 0,
06726     5126, 0, 5130, 5134, 5138, 5142, 0, 5146,
06727     5150, 5154, 0, 5158, 5162, 5166, 5170, 5174,
06728     5178, 5182, 0, 0, 0, 5186, 5190, 5194,
06729     5198, 0, 0, 0, 0, 5202, 5206, 5210,
06730     5214, 5218, 0, 0, 0, 0, 0, 0,
06731     0, 0, 0, 5222, 5228, 5234, 5240, 5246,
06732     5252, 5258, 5264, 5270, 5276, 5282, 5288, 5294,
06733     5299, 5303, 5308, 5314, 5319, 5323, 5328, 5334,
06734     5341, 5346, 5350, 5355, 5361, 5365, 5369, 5373,
06735     5377, 5381, 5386, 5392, 5397, 5401, 5406, 5412,
06736     5419, 5424, 5428, 5433, 5439, 5443, 5447, 5451,
06737     0, 0, 0, 0, 0, 0, 0, 0,
06738     0, 0, 0, 0, 0, 0, 0, 0,
06739     0, 0, 0, 0, 0, 0, 0, 0,
06740     0, 0, 5455, 5460, 0, 0, 0, 0,
06741     0, 0, 0, 0, 0, 0, 0, 0,
06742     0, 0, 0, 0, 0, 0, 5465, 0,
06743     0, 0, 0, 0, 0, 0, 0, 0,
06744     0, 0, 0, 0, 0, 0, 0, 0,
06745     0, 0, 0, 0, 0, 0, 0, 0,
06746     0, 0, 0, 0, 0, 5470, 5475, 5480,
06747     0, 0, 0, 0, 0, 0, 0, 0,
06748     0, 0, 0, 0, 0, 0, 0, 0,
06749     0, 0, 0, 0, 0, 0, 0, 0,
06750     0, 0, 0, 0, 0, 0, 0, 0,
06751     0, 0, 0, 0, 0, 0, 0, 0,
06752     0, 0, 0, 0, 0, 0, 0, 0,
06753 };
06754 
06755 static const Q_UINT16 di_22[] = {
06756     0, 0, 0, 0, 5485, 0, 0, 0,
06757     0, 5490, 0, 0, 5495, 0, 0, 0,
06758     0, 0, 0, 0, 0, 0, 0, 0,
06759     0, 0, 0, 0, 0, 0, 0, 0,
06760     0, 0, 0, 0, 5500, 0, 5505, 0,
06761     0, 0, 0, 0, 5510, 5515, 0, 5521,
06762     5526, 0, 0, 0, 0, 0, 0, 0,
06763     0, 0, 0, 0, 0, 0, 0, 0,
06764     0, 5532, 0, 0, 5537, 0, 0, 5542,
06765     0, 5547, 0, 0, 0, 0, 0, 0,
06766     0, 0, 0, 0, 0, 0, 0, 0,
06767     0, 0, 0, 0, 0, 0, 0, 0,
06768     5552, 0, 5557, 0, 0, 0, 0, 0,
06769     0, 0, 0, 0, 0, 5562, 5567, 5572,
06770     5577, 5582, 0, 0, 5587, 5592, 0, 0,
06771     5597, 5602, 0, 0, 0, 0, 0, 0,
06772     5607, 5612, 0, 0, 5617, 5622, 0, 0,
06773     5627, 5632, 0, 0, 0, 0, 0, 0,
06774     0, 0, 0, 0, 0, 0, 0, 0,
06775     0, 0, 0, 0, 0, 0, 0, 0,
06776     0, 0, 0, 0, 0, 0, 0, 0,
06777     0, 0, 0, 0, 5637, 5642, 5647, 5652,
06778     0, 0, 0, 0, 0, 0, 0, 0,
06779     0, 0, 0, 0, 0, 0, 0, 0,
06780     0, 0, 0, 0, 0, 0, 0, 0,
06781     0, 0, 0, 0, 0, 0, 0, 0,
06782     0, 0, 0, 0, 0, 0, 0, 0,
06783     0, 0, 0, 0, 0, 0, 0, 0,
06784     5657, 5662, 5667, 5672, 0, 0, 0, 0,
06785     0, 0, 5677, 5682, 5687, 5692, 0, 0,
06786     0, 0, 0, 0, 0, 0, 0, 0,
06787     0, 0, 0, 0, 0, 0, 0, 0,
06788 };
06789 
06790 static const Q_UINT16 di_23[] = {
06791     0, 0, 0, 0, 0, 0, 0, 0,
06792     0, 0, 0, 0, 0, 0, 0, 0,
06793     0, 0, 0, 0, 0, 0, 0, 0,
06794     0, 0, 0, 0, 0, 0, 0, 0,
06795     0, 0, 0, 0, 0, 0, 0, 0,
06796     0, 5697, 5701, 0, 0, 0, 0, 0,
06797     0, 0, 0, 0, 0, 0, 0, 0,
06798     0, 0, 0, 0, 0, 0, 0, 0,
06799     0, 0, 0, 0, 0, 0, 0, 0,
06800     0, 0, 0, 0, 0, 0, 0, 0,
06801     0, 0, 0, 0, 0, 0, 0, 0,
06802     0, 0, 0, 0, 0, 0, 0, 0,
06803     0, 0, 0, 0, 0, 0, 0, 0,
06804     0, 0, 0, 0, 0, 0, 0, 0,
06805     0, 0, 0, 0, 0, 0, 0, 0,
06806     0, 0, 0, 0, 0, 0, 0, 0,
06807     0, 0, 0, 0, 0, 0, 0, 0,
06808     0, 0, 0, 0, 0, 0, 0, 0,
06809     0, 0, 0, 0, 0, 0, 0, 0,
06810     0, 0, 0, 0, 0, 0, 0, 0,
06811     0, 0, 0, 0, 0, 0, 0, 0,
06812     0, 0, 0, 0, 0, 0, 0, 0,
06813     0, 0, 0, 0, 0, 0, 0, 0,
06814     0, 0, 0, 0, 0, 0, 0, 0,
06815     0, 0, 0, 0, 0, 0, 0, 0,
06816     0, 0, 0, 0, 0, 0, 0, 0,
06817     0, 0, 0, 0, 0, 0, 0, 0,
06818     0, 0, 0, 0, 0, 0, 0, 0,
06819     0, 0, 0, 0, 0, 0, 0, 0,
06820     0, 0, 0, 0, 0, 0, 0, 0,
06821     0, 0, 0, 0, 0, 0, 0, 0,
06822     0, 0, 0, 0, 0, 0, 0, 0,
06823 };
06824 
06825 static const Q_UINT16 di_24[] = {
06826     0, 0, 0, 0, 0, 0, 0, 0,
06827     0, 0, 0, 0, 0, 0, 0, 0,
06828     0, 0, 0, 0, 0, 0, 0, 0,
06829     0, 0, 0, 0, 0, 0, 0, 0,
06830     0, 0, 0, 0, 0, 0, 0, 0,
06831     0, 0, 0, 0, 0, 0, 0, 0,
06832     0, 0, 0, 0, 0, 0, 0, 0,
06833     0, 0, 0, 0, 0, 0, 0, 0,
06834     0, 0, 0, 0, 0, 0, 0, 0,
06835     0, 0, 0, 0, 0, 0, 0, 0,
06836     0, 0, 0, 0, 0, 0, 0, 0,
06837     0, 0, 0, 0, 0, 0, 0, 0,
06838     5705, 5709, 5713, 5717, 5721, 5725, 5729, 5733,
06839     5737, 5741, 5746, 5751, 5756, 5761, 5766, 5771,
06840     5776, 5781, 5786, 5791, 5796, 5802, 5808, 5814,
06841     5820, 5826, 5832, 5838, 5844, 5850, 5857, 5864,
06842     5871, 5878, 5885, 5892, 5899, 5906, 5913, 5920,
06843     5927, 5932, 5937, 5942, 5947, 5952, 5957, 5962,
06844     5967, 5972, 5978, 5984, 5990, 5996, 6002, 6008,
06845     6014, 6020, 6026, 6032, 6038, 6044, 6050, 6056,
06846     6062, 6068, 6074, 6080, 6086, 6092, 6098, 6104,
06847     6110, 6116, 6122, 6128, 6134, 6140, 6146, 6152,
06848     6158, 6164, 6170, 6176, 6182, 6188, 6194, 6198,
06849     6202, 6206, 6210, 6214, 6218, 6222, 6226, 6230,
06850     6234, 6238, 6242, 6246, 6250, 6254, 6258, 6262,
06851     6266, 6270, 6274, 6278, 6282, 6286, 6290, 6294,
06852     6298, 6302, 6306, 6310, 6314, 6318, 6322, 6326,
06853     6330, 6334, 6338, 6342, 6346, 6350, 6354, 6358,
06854     6362, 6366, 6370, 6374, 6378, 6382, 6386, 6390,
06855     6394, 6398, 6402, 0, 0, 0, 0, 0,
06856     0, 0, 0, 0, 0, 0, 0, 0,
06857     0, 0, 0, 0, 0, 0, 0, 0,
06858 };
06859 
06860 static const Q_UINT16 di_2A[] = {
06861     0, 0, 0, 0, 0, 0, 0, 0,
06862     0, 0, 0, 0, 6406, 0, 0, 0,
06863     0, 0, 0, 0, 0, 0, 0, 0,
06864     0, 0, 0, 0, 0, 0, 0, 0,
06865     0, 0, 0, 0, 0, 0, 0, 0,
06866     0, 0, 0, 0, 0, 0, 0, 0,
06867     0, 0, 0, 0, 0, 0, 0, 0,
06868     0, 0, 0, 0, 0, 0, 0, 0,
06869     0, 0, 0, 0, 0, 0, 0, 0,
06870     0, 0, 0, 0, 0, 0, 0, 0,
06871     0, 0, 0, 0, 0, 0, 0, 0,
06872     0, 0, 0, 0, 0, 0, 0, 0,
06873     0, 0, 0, 0, 0, 0, 0, 0,
06874     0, 0, 0, 0, 0, 0, 0, 0,
06875     0, 0, 0, 0, 6413, 6419, 6424, 0,
06876     0, 0, 0, 0, 0, 0, 0, 0,
06877     0, 0, 0, 0, 0, 0, 0, 0,
06878     0, 0, 0, 0, 0, 0, 0, 0,
06879     0, 0, 0, 0, 0, 0, 0, 0,
06880     0, 0, 0, 0, 0, 0, 0, 0,
06881     0, 0, 0, 0, 0, 0, 0, 0,
06882     0, 0, 0, 0, 0, 0, 0, 0,
06883     0, 0, 0, 0, 0, 0, 0, 0,
06884     0, 0, 0, 0, 0, 0, 0, 0,
06885     0, 0, 0, 0, 0, 0, 0, 0,
06886     0, 0, 0, 0, 0, 0, 0, 0,
06887     0, 0, 0, 0, 0, 0, 0, 0,
06888     0, 0, 0, 0, 6430, 0, 0, 0,
06889     0, 0, 0, 0, 0, 0, 0, 0,
06890     0, 0, 0, 0, 0, 0, 0, 0,
06891     0, 0, 0, 0, 0, 0, 0, 0,
06892     0, 0, 0, 0, 0, 0, 0, 0,
06893 };
06894 
06895 static const Q_UINT16 di_2E[] = {
06896     0, 0, 0, 0, 0, 0, 0, 0,
06897     0, 0, 0, 0, 0, 0, 0, 0,
06898     0, 0, 0, 0, 0, 0, 0, 0,
06899     0, 0, 0, 0, 0, 0, 0, 0,
06900     0, 0, 0, 0, 0, 0, 0, 0,
06901     0, 0, 0, 0, 0, 0, 0, 0,
06902     0, 0, 0, 0, 0, 0, 0, 0,
06903     0, 0, 0, 0, 0, 0, 0, 0,
06904     0, 0, 0, 0, 0, 0, 0, 0,
06905     0, 0, 0, 0, 0, 0, 0, 0,
06906     0, 0, 0, 0, 0, 0, 0, 0,
06907     0, 0, 0, 0, 0, 0, 0, 0,
06908     0, 0, 0, 0, 0, 0, 0, 0,
06909     0, 0, 0, 0, 0, 0, 0, 0,
06910     0, 0, 0, 0, 0, 0, 0, 0,
06911     0, 0, 0, 0, 0, 0, 0, 0,
06912     0, 0, 0, 0, 0, 0, 0, 0,
06913     0, 0, 0, 0, 0, 0, 0, 0,
06914     0, 0, 0, 0, 0, 0, 0, 0,
06915     0, 0, 0, 0, 0, 0, 0, 6435,
06916     0, 0, 0, 0, 0, 0, 0, 0,
06917     0, 0, 0, 0, 0, 0, 0, 0,
06918     0, 0, 0, 0, 0, 0, 0, 0,
06919     0, 0, 0, 0, 0, 0, 0, 0,
06920     0, 0, 0, 0, 0, 0, 0, 0,
06921     0, 0, 0, 0, 0, 0, 0, 0,
06922     0, 0, 0, 0, 0, 0, 0, 0,
06923     0, 0, 0, 0, 0, 0, 0, 0,
06924     0, 0, 0, 0, 0, 0, 0, 0,
06925     0, 0, 0, 0, 0, 0, 0, 0,
06926     0, 0, 0, 6439, 0, 0, 0, 0,
06927     0, 0, 0, 0, 0, 0, 0, 0,
06928 };
06929 
06930 static const Q_UINT16 di_2F[] = {
06931     6443, 6447, 6451, 6455, 6459, 6463, 6467, 6471,
06932     6475, 6479, 6483, 6487, 6491, 6495, 6499, 6503,
06933     6507, 6511, 6515, 6519, 6523, 6527, 6531, 6535,
06934     6539, 6543, 6547, 6551, 6555, 6559, 6563, 6567,
06935     6571, 6575, 6579, 6583, 6587, 6591, 6595, 6599,
06936     6603, 6607, 6611, 6615, 6619, 6623, 6627, 6631,
06937     6635, 6639, 6643, 6647, 6651, 6655, 6659, 6663,
06938     6667, 6671, 6675, 6679, 6683, 6687, 6691, 6695,
06939     6699, 6703, 6707, 6711, 6715, 6719, 6723, 6727,
06940     6731, 6735, 6739, 6743, 6747, 6751, 6755, 6759,
06941     6763, 6767, 6771, 6775, 6779, 6783, 6787, 6791,
06942     6795, 6799, 6803, 6807, 6811, 6815, 6819, 6823,
06943     6827, 6831, 6835, 6839, 6843, 6847, 6851, 6855,
06944     6859, 6863, 6867, 6871, 6875, 6879, 6883, 6887,
06945     6891, 6895, 6899, 6903, 6907, 6911, 6915, 6919,
06946     6923, 6927, 6931, 6935, 6939, 6943, 6947, 6951,
06947     6955, 6959, 6963, 6967, 6971, 6975, 6979, 6983,
06948     6987, 6991, 6995, 6999, 7003, 7007, 7011, 7015,
06949     7019, 7023, 7027, 7031, 7035, 7039, 7043, 7047,
06950     7051, 7055, 7059, 7063, 7067, 7071, 7075, 7079,
06951     7083, 7087, 7091, 7095, 7099, 7103, 7107, 7111,
06952     7115, 7119, 7123, 7127, 7131, 7135, 7139, 7143,
06953     7147, 7151, 7155, 7159, 7163, 7167, 7171, 7175,
06954     7179, 7183, 7187, 7191, 7195, 7199, 7203, 7207,
06955     7211, 7215, 7219, 7223, 7227, 7231, 7235, 7239,
06956     7243, 7247, 7251, 7255, 7259, 7263, 7267, 7271,
06957     7275, 7279, 7283, 7287, 7291, 7295, 0, 0,
06958     0, 0, 0, 0, 0, 0, 0, 0,
06959     0, 0, 0, 0, 0, 0, 0, 0,
06960     0, 0, 0, 0, 0, 0, 0, 0,
06961     0, 0, 0, 0, 0, 0, 0, 0,
06962     0, 0, 0, 0, 0, 0, 0, 0,
06963 };
06964 
06965 static const Q_UINT16 di_30[] = {
06966     7299, 0, 0, 0, 0, 0, 0, 0,
06967     0, 0, 0, 0, 0, 0, 0, 0,
06968     0, 0, 0, 0, 0, 0, 0, 0,
06969     0, 0, 0, 0, 0, 0, 0, 0,
06970     0, 0, 0, 0, 0, 0, 0, 0,
06971     0, 0, 0, 0, 0, 0, 0, 0,
06972     0, 0, 0, 0, 0, 0, 7303, 0,
06973     7307, 7311, 7315, 0, 0, 0, 0, 0,
06974     0, 0, 0, 0, 0, 0, 0, 0,
06975     0, 0, 0, 0, 7319, 0, 7324, 0,
06976     7329, 0, 7334, 0, 7339, 0, 7344, 0,
06977     7349, 0, 7354, 0, 7359, 0, 7364, 0,
06978     7369, 0, 7374, 0, 0, 7379, 0, 7384,
06979     0, 7389, 0, 0, 0, 0, 0, 0,
06980     7394, 7399, 0, 7404, 7409, 0, 7414, 7419,
06981     0, 7424, 7429, 0, 7434, 7439, 0, 0,
06982     0, 0, 0, 0, 0, 0, 0, 0,
06983     0, 0, 0, 0, 0, 0, 0, 0,
06984     0, 0, 0, 0, 7444, 0, 0, 0,
06985     0, 0, 0, 7449, 7454, 0, 7459, 7464,
06986     0, 0, 0, 0, 0, 0, 0, 0,
06987     0, 0, 0, 0, 7469, 0, 7474, 0,
06988     7479, 0, 7484, 0, 7489, 0, 7494, 0,
06989     7499, 0, 7504, 0, 7509, 0, 7514, 0,
06990     7519, 0, 7524, 0, 0, 7529, 0, 7534,
06991     0, 7539, 0, 0, 0, 0, 0, 0,
06992     7544, 7549, 0, 7554, 7559, 0, 7564, 7569,
06993     0, 7574, 7579, 0, 7584, 7589, 0, 0,
06994     0, 0, 0, 0, 0, 0, 0, 0,
06995     0, 0, 0, 0, 0, 0, 0, 0,
06996     0, 0, 0, 0, 7594, 0, 0, 7599,
06997     7604, 7609, 7614, 0, 0, 0, 7619, 7624,
06998 };
06999 
07000 static const Q_UINT16 di_31[] = {
07001     0, 0, 0, 0, 0, 0, 0, 0,
07002     0, 0, 0, 0, 0, 0, 0, 0,
07003     0, 0, 0, 0, 0, 0, 0, 0,
07004     0, 0, 0, 0, 0, 0, 0, 0,
07005     0, 0, 0, 0, 0, 0, 0, 0,
07006     0, 0, 0, 0, 0, 0, 0, 0,
07007     0, 7629, 7633, 7637, 7641, 7645, 7649, 7653,
07008     7657, 7661, 7665, 7669, 7673, 7677, 7681, 7685,
07009     7689, 7693, 7697, 7701, 7705, 7709, 7713, 7717,
07010     7721, 7725, 7729, 7733, 7737, 7741, 7745, 7749,
07011     7753, 7757, 7761, 7765, 7769, 7773, 7777, 7781,
07012     7785, 7789, 7793, 7797, 7801, 7805, 7809, 7813,
07013     7817, 7821, 7825, 7829, 7833, 7837, 7841, 7845,
07014     7849, 7853, 7857, 7861, 7865, 7869, 7873, 7877,
07015     7881, 7885, 7889, 7893, 7897, 7901, 7905, 7909,
07016     7913, 7917, 7921, 7925, 7929, 7933, 7937, 7941,
07017     7945, 7949, 7953, 7957, 7961, 7965, 7969, 7973,
07018     7977, 7981, 7985, 7989, 7993, 7997, 8001, 0,
07019     0, 0, 8005, 8009, 8013, 8017, 8021, 8025,
07020     8029, 8033, 8037, 8041, 8045, 8049, 8053, 8057,
07021     0, 0, 0, 0, 0, 0, 0, 0,
07022     0, 0, 0, 0, 0, 0, 0, 0,
07023     0, 0, 0, 0, 0, 0, 0, 0,
07024     0, 0, 0, 0, 0, 0, 0, 0,
07025     0, 0, 0, 0, 0, 0, 0, 0,
07026     0, 0, 0, 0, 0, 0, 0, 0,
07027     0, 0, 0, 0, 0, 0, 0, 0,
07028     0, 0, 0, 0, 0, 0, 0, 0,
07029     0, 0, 0, 0, 0, 0, 0, 0,
07030     0, 0, 0, 0, 0, 0, 0, 0,
07031     0, 0, 0, 0, 0, 0, 0, 0,
07032     0, 0, 0, 0, 0, 0, 0, 0,
07033 };
07034 
07035 static const Q_UINT16 di_32[] = {
07036     8061, 8067, 8073, 8079, 8085, 8091, 8097, 8103,
07037     8109, 8115, 8121, 8127, 8133, 8139, 8145, 8152,
07038     8159, 8166, 8173, 8180, 8187, 8194, 8201, 8208,
07039     8215, 8222, 8229, 8236, 8243, 0, 0, 0,
07040     8250, 8256, 8262, 8268, 8274, 8280, 8286, 8292,
07041     8298, 8304, 8310, 8316, 8322, 8328, 8334, 8340,
07042     8346, 8352, 8358, 8364, 8370, 8376, 8382, 8388,
07043     8394, 8400, 8406, 8412, 8418, 8424, 8430, 8436,
07044     8442, 8448, 8454, 8460, 0, 0, 0, 0,
07045     0, 0, 0, 0, 0, 0, 0, 0,
07046     0, 8466, 8471, 8476, 8481, 8486, 8491, 8496,
07047     8501, 8506, 8511, 8516, 8521, 8526, 8531, 8536,
07048     8541, 8545, 8549, 8553, 8557, 8561, 8565, 8569,
07049     8573, 8577, 8581, 8585, 8589, 8593, 8597, 8602,
07050     8607, 8612, 8617, 8622, 8627, 8632, 8637, 8642,
07051     8647, 8652, 8657, 8662, 0, 0, 0, 0,
07052     8667, 8671, 8675, 8679, 8683, 8687, 8691, 8695,
07053     8699, 8703, 8707, 8711, 8715, 8719, 8723, 8727,
07054     8731, 8735, 8739, 8743, 8747, 8751, 8755, 8759,
07055     8763, 8767, 8771, 8775, 8779, 8783, 8787, 8791,
07056     8795, 8799, 8803, 8807, 8811, 8815, 8819, 8823,
07057     8827, 8831, 8835, 8839, 8843, 8847, 8851, 8855,
07058     8859, 8863, 8868, 8873, 8878, 8883, 8888, 8893,
07059     8898, 8903, 8908, 8913, 8918, 8923, 8928, 8933,
07060     8938, 8943, 8948, 8953, 8958, 8963, 8968, 8973,
07061     8978, 8983, 8989, 8995, 0, 0, 0, 0,
07062     9001, 9005, 9009, 9013, 9017, 9021, 9025, 9029,
07063     9033, 9037, 9041, 9045, 9049, 9053, 9057, 9061,
07064     9065, 9069, 9073, 9077, 9081, 9085, 9089, 9093,
07065     9097, 9101, 9105, 9109, 9113, 9117, 9121, 9125,
07066     9129, 9133, 9137, 9141, 9145, 9149, 9153, 9157,
07067     9161, 9165, 9169, 9173, 9177, 9181, 9185, 0,
07068 };
07069 
07070 static const Q_UINT16 di_33[] = {
07071     9189, 9196, 9203, 9210, 9216, 9223, 9229, 9235,
07072     9243, 9250, 9256, 9262, 9268, 9275, 9282, 9288,
07073     9294, 9299, 9305, 9312, 9319, 9324, 9332, 9341,
07074     9349, 9355, 9363, 9371, 9378, 9384, 9390, 9396,
07075     9403, 9411, 9418, 9424, 9430, 9436, 9441, 9446,
07076     9451, 9456, 9462, 9468, 9476, 9482, 9489, 9497,
07077     9503, 9508, 9513, 9521, 9528, 9536, 9542, 9550,
07078     9555, 9561, 9567, 9573, 9579, 9585, 9592, 9598,
07079     9603, 9609, 9615, 9621, 9628, 9634, 9640, 9646,
07080     9654, 9661, 9666, 9674, 9679, 9686, 9693, 9699,
07081     9705, 9711, 9718, 9723, 9729, 9736, 9741, 9749,
07082     9755, 9760, 9765, 9770, 9775, 9780, 9785, 9790,
07083     9795, 9800, 9805, 9811, 9817, 9823, 9829, 9835,
07084     9841, 9847, 9853, 9859, 9865, 9871, 9877, 9883,
07085     9889, 9895, 9901, 9906, 9911, 9917, 9922, 0,
07086     0, 0, 0, 9927, 9932, 9937, 9942, 9947,
07087     9954, 9959, 9964, 9969, 9974, 9979, 9984, 9989,
07088     9994, 10000, 10007, 10012, 10017, 10022, 10027, 10032,
07089     10037, 10042, 10048, 10054, 10060, 10066, 10071, 10076,
07090     10081, 10086, 10091, 10096, 10101, 10106, 10111, 10116,
07091     10122, 10128, 10133, 10139, 10145, 10151, 10156, 10162,
07092     10168, 10175, 10180, 10186, 10192, 10198, 10204, 10212,
07093     10221, 10226, 10231, 10236, 10241, 10246, 10251, 10256,
07094     10261, 10266, 10271, 10276, 10281, 10286, 10291, 10296,
07095     10301, 10306, 10311, 10318, 10323, 10328, 10333, 10340,
07096     10346, 10351, 10356, 10361, 10366, 10371, 10376, 10381,
07097     10386, 10391, 10396, 10402, 10407, 10412, 10418, 10424,
07098     10429, 10436, 10442, 10447, 10452, 10457, 0, 0,
07099     10462, 10467, 10472, 10477, 10482, 10487, 10492, 10497,
07100     10502, 10507, 10513, 10519, 10525, 10531, 10537, 10543,
07101     10549, 10555, 10561, 10567, 10573, 10579, 10585, 10591,
07102     10597, 10603, 10609, 10615, 10621, 10627, 10633, 0,
07103 };
07104 
07105 static const Q_UINT16 di_F9[] = {
07106     10639, 10643, 10647, 10651, 10655, 10659, 10663, 10667,
07107     10671, 10675, 10679, 10683, 10687, 10691, 10695, 10699,
07108     10703, 10707, 10711, 10715, 10719, 10723, 10727, 10731,
07109     10735, 10739, 10743, 10747, 10751, 10755, 10759, 10763,
07110     10767, 10771, 10775, 10779, 10783, 10787, 10791, 10795,
07111     10799, 10803, 10807, 10811, 10815, 10819, 10823, 10827,
07112     10831, 10835, 10839, 10843, 10847, 10851, 10855, 10859,
07113     10863, 10867, 10871, 10875, 10879, 10883, 10887, 10891,
07114     10895, 10899, 10903, 10907, 10911, 10915, 10919, 10923,
07115     10927, 10931, 10935, 10939, 10943, 10947, 10951, 10955,
07116     10959, 10963, 10967, 10971, 10975, 10979, 10983, 10987,
07117     10991, 10995, 10999, 11003, 11007, 11011, 11015, 11019,
07118     11023, 11027, 11031, 11035, 11039, 11043, 11047, 11051,
07119     11055, 11059, 11063, 11067, 11071, 11075, 11079, 11083,
07120     11087, 11091, 11095, 11099, 11103, 11107, 11111, 11115,
07121     11119, 11123, 11127, 11131, 11135, 11139, 11143, 11147,
07122     11151, 11155, 11159, 11163, 11167, 11171, 11175, 11179,
07123     11183, 11187, 11191, 11195, 11199, 11203, 11207, 11211,
07124     11215, 11219, 11223, 11227, 11231, 11235, 11239, 11243,
07125     11247, 11251, 11255, 11259, 11263, 11267, 11271, 11275,
07126     11279, 11283, 11287, 11291, 11295, 11299, 11303, 11307,
07127     11311, 11315, 11319, 11323, 11327, 11331, 11335, 11339,
07128     11343, 11347, 11351, 11355, 11359, 11363, 11367, 11371,
07129     11375, 11379, 11383, 11387, 11391, 11395, 11399, 11403,
07130     11407, 11411, 11415, 11419, 11423, 11427, 11431, 11435,
07131     11439, 11443, 11447, 11451, 11455, 11459, 11463, 11467,
07132     11471, 11475, 11479, 11483, 11487, 11491, 11495, 11499,
07133     11503, 11507, 11511, 11515, 11519, 11523, 11527, 11531,
07134     11535, 11539, 11543, 11547, 11551, 11555, 11559, 11563,
07135     11567, 11571, 11575, 11579, 11583, 11587, 11591, 11595,
07136     11599, 11603, 11607, 11611, 11615, 11619, 11623, 11627,
07137     11631, 11635, 11639, 11643, 11647, 11651, 11655, 11659,
07138 };
07139 
07140 static const Q_UINT16 di_FA[] = {
07141     11663, 11667, 11671, 11675, 11679, 11683, 11687, 11691,
07142     11695, 11699, 11703, 11707, 11711, 11715, 0, 0,
07143     11719, 0, 11723, 0, 0, 11727, 11731, 11735,
07144     11739, 11743, 11747, 11751, 11755, 11759, 11763, 0,
07145     11767, 0, 11771, 0, 0, 11775, 11779, 0,
07146     0, 0, 11783, 11787, 11791, 11795, 0, 0,
07147     11799, 11803, 11807, 11811, 11815, 11819, 11823, 11827,
07148     11831, 11835, 11839, 11843, 11847, 11851, 11855, 11859,
07149     11863, 11867, 11871, 11875, 11879, 11883, 11887, 11891,
07150     11895, 11899, 11903, 11907, 11911, 11915, 11919, 11923,
07151     11927, 11931, 11935, 11939, 11943, 11947, 11951, 11955,
07152     11959, 11963, 11967, 11971, 11975, 11979, 11983, 11987,
07153     11991, 11995, 11999, 12003, 12007, 12011, 12015, 12019,
07154     12023, 12027, 12031, 0, 0, 0, 0, 0,
07155     0, 0, 0, 0, 0, 0, 0, 0,
07156     0, 0, 0, 0, 0, 0, 0, 0,
07157     0, 0, 0, 0, 0, 0, 0, 0,
07158     0, 0, 0, 0, 0, 0, 0, 0,
07159     0, 0, 0, 0, 0, 0, 0, 0,
07160     0, 0, 0, 0, 0, 0, 0, 0,
07161     0, 0, 0, 0, 0, 0, 0, 0,
07162     0, 0, 0, 0, 0, 0, 0, 0,
07163     0, 0, 0, 0, 0, 0, 0, 0,
07164     0, 0, 0, 0, 0, 0, 0, 0,
07165     0, 0, 0, 0, 0, 0, 0, 0,
07166     0, 0, 0, 0, 0, 0, 0, 0,
07167     0, 0, 0, 0, 0, 0, 0, 0,
07168     0, 0, 0, 0, 0, 0, 0, 0,
07169     0, 0, 0, 0, 0, 0, 0, 0,
07170     0, 0, 0, 0, 0, 0, 0, 0,
07171     0, 0, 0, 0, 0, 0, 0, 0,
07172     0, 0, 0, 0, 0, 0, 0, 0,
07173 };
07174 
07175 static const Q_UINT16 di_FB[] = {
07176     12035, 12040, 12045, 12050, 12056, 12062, 12067, 0,
07177     0, 0, 0, 0, 0, 0, 0, 0,
07178     0, 0, 0, 12072, 12077, 12082, 12087, 12092,
07179     0, 0, 0, 0, 0, 12097, 0, 12102,
07180     12107, 12111, 12115, 12119, 12123, 12127, 12131, 12135,
07181     12139, 12143, 12147, 12152, 12157, 12162, 12167, 12172,
07182     12177, 12182, 12187, 12192, 12197, 12202, 12207, 0,
07183     12212, 12217, 12222, 12227, 12232, 0, 12237, 0,
07184     12242, 12247, 0, 12252, 12257, 0, 12262, 12267,
07185     12272, 12277, 12282, 12287, 12292, 12297, 12302, 12307,
07186     12312, 12316, 12320, 12324, 12328, 12332, 12336, 12340,
07187     12344, 12348, 12352, 12356, 12360, 12364, 12368, 12372,
07188     12376, 12380, 12384, 12388, 12392, 12396, 12400, 12404,
07189     12408, 12412, 12416, 12420, 12424, 12428, 12432, 12436,
07190     12440, 12444, 12448, 12452, 12456, 12460, 12464, 12468,
07191     12472, 12476, 12480, 12484, 12488, 12492, 12496, 12500,
07192     12504, 12508, 12512, 12516, 12520, 12524, 12528, 12532,
07193     12536, 12540, 12544, 12548, 12552, 12556, 12560, 12564,
07194     12568, 12572, 12576, 12580, 12584, 12588, 12592, 12596,
07195     12600, 12604, 12608, 12612, 12616, 12620, 12624, 12628,
07196     12632, 12636, 12640, 12644, 12648, 12652, 12656, 12660,
07197     12664, 12668, 12672, 12676, 12680, 12684, 12688, 12692,
07198     12696, 12700, 0, 0, 0, 0, 0, 0,
07199     0, 0, 0, 0, 0, 0, 0, 0,
07200     0, 0, 0, 0, 0, 0, 0, 0,
07201     0, 0, 0, 0, 0, 0, 0, 0,
07202     0, 0, 0, 12704, 12708, 12712, 12716, 12720,
07203     12724, 12728, 12732, 12736, 12740, 12744, 12748, 12752,
07204     12756, 12760, 12764, 12768, 12772, 12776, 12780, 12784,
07205     12788, 12792, 12796, 12801, 12806, 12811, 12816, 12821,
07206     12826, 12831, 12836, 12841, 12846, 12851, 12856, 12861,
07207     12866, 12871, 12876, 12881, 12886, 12890, 12894, 12898,
07208 };
07209 
07210 static const Q_UINT16 di_FC[] = {
07211     12902, 12907, 12912, 12917, 12922, 12927, 12932, 12937,
07212     12942, 12947, 12952, 12957, 12962, 12967, 12972, 12977,
07213     12982, 12987, 12992, 12997, 13002, 13007, 13012, 13017,
07214     13022, 13027, 13032, 13037, 13042, 13047, 13052, 13057,
07215     13062, 13067, 13072, 13077, 13082, 13087, 13092, 13097,
07216     13102, 13107, 13112, 13117, 13122, 13127, 13132, 13137,
07217     13142, 13147, 13152, 13157, 13162, 13167, 13172, 13177,
07218     13182, 13187, 13192, 13197, 13202, 13207, 13212, 13217,
07219     13222, 13227, 13232, 13237, 13242, 13247, 13252, 13257,
07220     13262, 13267, 13272, 13277, 13282, 13287, 13292, 13297,
07221     13302, 13307, 13312, 13317, 13322, 13327, 13332, 13337,
07222     13342, 13347, 13352, 13357, 13362, 13367, 13372, 13378,
07223     13384, 13390, 13396, 13402, 13408, 13413, 13418, 13423,
07224     13428, 13433, 13438, 13443, 13448, 13453, 13458, 13463,
07225     13468, 13473, 13478, 13483, 13488, 13493, 13498, 13503,
07226     13508, 13513, 13518, 13523, 13528, 13533, 13538, 13543,
07227     13548, 13553, 13558, 13563, 13568, 13573, 13578, 13583,
07228     13588, 13593, 13598, 13603, 13608, 13613, 13618, 13623,
07229     13628, 13633, 13638, 13643, 13648, 13653, 13658, 13663,
07230     13668, 13673, 13678, 13683, 13688, 13693, 13698, 13703,
07231     13708, 13713, 13718, 13723, 13728, 13733, 13738, 13743,
07232     13748, 13753, 13758, 13763, 13768, 13773, 13778, 13783,
07233     13788, 13793, 13798, 13803, 13808, 13813, 13818, 13823,
07234     13828, 13833, 13838, 13843, 13848, 13853, 13858, 13863,
07235     13868, 13873, 13878, 13883, 13888, 13893, 13898, 13903,
07236     13908, 13913, 13918, 13923, 13928, 13933, 13938, 13943,
07237     13948, 13953, 13958, 13963, 13968, 13973, 13978, 13983,
07238     13988, 13993, 13998, 14003, 14008, 14013, 14018, 14023,
07239     14028, 14033, 14038, 14043, 14048, 14053, 14058, 14063,
07240     14068, 14073, 14078, 14083, 14088, 14093, 14098, 14103,
07241     14108, 14113, 14118, 14124, 14130, 14136, 14141, 14146,
07242     14151, 14156, 14161, 14166, 14171, 14176, 14181, 14186,
07243 };
07244 
07245 static const Q_UINT16 di_FD[] = {
07246     14191, 14196, 14201, 14206, 14211, 14216, 14221, 14226,
07247     14231, 14236, 14241, 14246, 14251, 14256, 14261, 14266,
07248     14271, 14276, 14281, 14286, 14291, 14296, 14301, 14306,
07249     14311, 14316, 14321, 14326, 14331, 14336, 14341, 14346,
07250     14351, 14356, 14361, 14366, 14371, 14376, 14381, 14386,
07251     14391, 14396, 14401, 14406, 14411, 14416, 14421, 14426,
07252     14431, 14436, 14441, 14446, 14451, 14456, 14461, 14466,
07253     14471, 14476, 14481, 14486, 14491, 14496, 0, 0,
07254     0, 0, 0, 0, 0, 0, 0, 0,
07255     0, 0, 0, 0, 0, 0, 0, 0,
07256     14501, 14507, 14513, 14519, 14525, 14531, 14537, 14543,
07257     14549, 14555, 14561, 14567, 14573, 14579, 14585, 14591,
07258     14597, 14603, 14609, 14615, 14621, 14627, 14633, 14639,
07259     14645, 14651, 14657, 14663, 14669, 14675, 14681, 14687,
07260     14693, 14699, 14705, 14711, 14717, 14723, 14729, 14735,
07261     14741, 14747, 14753, 14759, 14765, 14771, 14777, 14783,
07262     14789, 14795, 14801, 14807, 14813, 14819, 14825, 14831,
07263     14837, 14843, 14849, 14855, 14861, 14867, 14873, 14879,
07264     0, 0, 14885, 14891, 14897, 14903, 14909, 14915,
07265     14921, 14927, 14933, 14939, 14945, 14951, 14957, 14963,
07266     14969, 14975, 14981, 14987, 14993, 14999, 15005, 15011,
07267     15017, 15023, 15029, 15035, 15041, 15047, 15053, 15059,
07268     15065, 15071, 15077, 15083, 15089, 15095, 15101, 15107,
07269     15113, 15119, 15125, 15131, 15137, 15143, 15149, 15155,
07270     15161, 15167, 15173, 15179, 15185, 15191, 15197, 15203,
07271     0, 0, 0, 0, 0, 0, 0, 0,
07272     0, 0, 0, 0, 0, 0, 0, 0,
07273     0, 0, 0, 0, 0, 0, 0, 0,
07274     0, 0, 0, 0, 0, 0, 0, 0,
07275     0, 0, 0, 0, 0, 0, 0, 0,
07276     15209, 15215, 15221, 15228, 15235, 15242, 15249, 15256,
07277     15263, 15270, 15276, 15297, 15308, 0, 0, 0,
07278 };
07279 
07280 static const Q_UINT16 di_FE[] = {
07281     0, 0, 0, 0, 0, 0, 0, 0,
07282     0, 0, 0, 0, 0, 0, 0, 0,
07283     0, 0, 0, 0, 0, 0, 0, 0,
07284     0, 0, 0, 0, 0, 0, 0, 0,
07285     0, 0, 0, 0, 0, 0, 0, 0,
07286     0, 0, 0, 0, 0, 0, 0, 0,
07287     15315, 15319, 15323, 15327, 15331, 15335, 15339, 15343,
07288     15347, 15351, 15355, 15359, 15363, 15367, 15371, 15375,
07289     15379, 15383, 15387, 15391, 15395, 0, 0, 0,
07290     0, 15399, 15403, 15407, 15411, 15415, 15419, 15423,
07291     15427, 15431, 15435, 0, 15439, 15443, 15447, 15451,
07292     15455, 15459, 15463, 15467, 15471, 15475, 15479, 15483,
07293     15487, 15491, 15495, 15499, 15503, 15507, 15511, 0,
07294     15515, 15519, 15523, 15527, 0, 0, 0, 0,
07295     15531, 15536, 15541, 0, 15546, 0, 15551, 15556,
07296     15561, 15566, 15571, 15576, 15581, 15586, 15591, 15596,
07297     15601, 15605, 15609, 15613, 15617, 15621, 15625, 15629,
07298     15633, 15637, 15641, 15645, 15649, 15653, 15657, 15661,
07299     15665, 15669, 15673, 15677, 15681, 15685, 15689, 15693,
07300     15697, 15701, 15705, 15709, 15713, 15717, 15721, 15725,
07301     15729, 15733, 15737, 15741, 15745, 15749, 15753, 15757,
07302     15761, 15765, 15769, 15773, 15777, 15781, 15785, 15789,
07303     15793, 15797, 15801, 15805, 15809, 15813, 15817, 15821,
07304     15825, 15829, 15833, 15837, 15841, 15845, 15849, 15853,
07305     15857, 15861, 15865, 15869, 15873, 15877, 15881, 15885,
07306     15889, 15893, 15897, 15901, 15905, 15909, 15913, 15917,
07307     15921, 15925, 15929, 15933, 15937, 15941, 15945, 15949,
07308     15953, 15957, 15961, 15965, 15969, 15973, 15977, 15981,
07309     15985, 15989, 15993, 15997, 16001, 16005, 16009, 16013,
07310     16017, 16021, 16025, 16029, 16033, 16037, 16041, 16045,
07311     16049, 16053, 16057, 16061, 16065, 16069, 16074, 16079,
07312     16084, 16089, 16094, 16099, 16104, 0, 0, 0,
07313 };
07314 
07315 static const Q_UINT16 di_FF[] = {
07316     0, 16109, 16113, 16117, 16121, 16125, 16129, 16133,
07317     16137, 16141, 16145, 16149, 16153, 16157, 16161, 16165,
07318     16169, 16173, 16177, 16181, 16185, 16189, 16193, 16197,
07319     16201, 16205, 16209, 16213, 16217, 16221, 16225, 16229,
07320     16233, 16237, 16241, 16245, 16249, 16253, 16257, 16261,
07321     16265, 16269, 16273, 16277, 16281, 16285, 16289, 16293,
07322     16297, 16301, 16305, 16309, 16313, 16317, 16321, 16325,
07323     16329, 16333, 16337, 16341, 16345, 16349, 16353, 16357,
07324     16361, 16365, 16369, 16373, 16377, 16381, 16385, 16389,
07325     16393, 16397, 16401, 16405, 16409, 16413, 16417, 16421,
07326     16425, 16429, 16433, 16437, 16441, 16445, 16449, 16453,
07327     16457, 16461, 16465, 16469, 16473, 16477, 16481, 16485,
07328     16489, 16493, 16497, 16501, 16505, 16509, 16513, 16517,
07329     16521, 16525, 16529, 16533, 16537, 16541, 16545, 16549,
07330     16553, 16557, 16561, 16565, 16569, 16573, 16577, 16581,
07331     16585, 16589, 16593, 16597, 16601, 16605, 16609, 16613,
07332     16617, 16621, 16625, 16629, 16633, 16637, 16641, 16645,
07333     16649, 16653, 16657, 16661, 16665, 16669, 16673, 16677,
07334     16681, 16685, 16689, 16693, 16697, 16701, 16705, 16709,
07335     16713, 16717, 16721, 16725, 16729, 16733, 16737, 16741,
07336     16745, 16749, 16753, 16757, 16761, 16765, 16769, 16773,
07337     16777, 16781, 16785, 16789, 16793, 16797, 16801, 16805,
07338     16809, 16813, 16817, 16821, 16825, 16829, 16833, 16837,
07339     16841, 16845, 16849, 16853, 16857, 16861, 16865, 0,
07340     0, 0, 16869, 16873, 16877, 16881, 16885, 16889,
07341     0, 0, 16893, 16897, 16901, 16905, 16909, 16913,
07342     0, 0, 16917, 16921, 16925, 16929, 16933, 16937,
07343     0, 0, 16941, 16945, 16949, 0, 0, 0,
07344     16953, 16957, 16961, 16965, 16969, 16973, 16977, 0,
07345     16981, 16985, 16989, 16993, 16997, 17001, 17005, 0,
07346     0, 0, 0, 0, 0, 0, 0, 0,
07347     0, 0, 0, 0, 0, 0, 0, 0,
07348 };
07349 
07350 static const Q_UINT16 * const decomposition_info[256] = {
07351     di_00, di_01, di_02, di_03, di_04, di_05, di_06, di_07,
07352     di_07, di_09, di_0A, di_0B, di_0C, di_0D, di_0E, di_0F,
07353     di_10, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07354     di_07, di_07, di_07, di_07, di_07, di_07, di_1E, di_1F,
07355     di_20, di_21, di_22, di_23, di_24, di_07, di_07, di_07,
07356     di_07, di_07, di_2A, di_07, di_07, di_07, di_2E, di_2F,
07357     di_30, di_31, di_32, di_33, di_07, di_07, di_07, di_07,
07358     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07359     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07360     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07361     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07362     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07363     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07364     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07365     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07366     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07367     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07368     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07369     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07370     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07371     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07372     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07373     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07374     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07375     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07376     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07377     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07378     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07379     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07380     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07381     di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
07382     di_07, di_F9, di_FA, di_FB, di_FC, di_FD, di_FE, di_FF,
07383 };
07384 // 68832 bytes
07385 
07386 static const Q_UINT16 ligature_map[] = {
07387     0,
07388     5567, 0,
07389     5552, 0,
07390     5572, 0,
07391     67, 72, 77, 82, 87, 92, 332, 342, 352, 966, 1196, 1206, 1346, 2365, 3145, 3155, 0,
07392     2375, 2385, 2395, 0,
07393     97, 362, 372, 382, 392, 0,
07394     402, 2415, 2425, 2435, 2445, 2455, 0,
07395     102, 107, 112, 117, 412, 422, 432, 442, 452, 1216, 1226, 1356, 2485, 2495, 3265, 3275, 3285, 0,
07396     2515, 0,
07397     462, 472, 482, 492, 1076, 1146, 2525, 0,
07398     502, 1336, 2535, 2545, 2555, 2565, 2575, 0,
07399     122, 127, 132, 137, 512, 522, 532, 542, 552, 976, 1236, 1246, 2585, 3345, 3355, 0,
07400     567, 0,
07401     577, 1086, 2605, 2615, 2625, 0,
07402     587, 597, 607, 2635, 2655, 2665, 0,
07403     2675, 2685, 2695, 0,
07404     142, 627, 637, 647, 1156, 2705, 2715, 2725, 2735, 0,
07405     147, 152, 157, 162, 167, 662, 672, 682, 901, 986, 1096, 1256, 1266, 1386, 3365, 3375, 0,
07406     2785, 2795, 0,
07407     692, 702, 712, 1276, 1286, 2805, 2815, 2835, 0,
07408     722, 732, 742, 752, 1316, 2845, 2855, 0,
07409     762, 772, 1326, 2895, 2905, 2915, 2925, 0,
07410     172, 177, 182, 187, 782, 792, 802, 812, 822, 832, 911, 996, 1296, 1306, 2935, 2945, 2955, 3485, 3495, 0,
07411     2985, 2995, 0,
07412     842, 3005, 3015, 3025, 3035, 3045, 0,
07413     3055, 3065, 0,
07414     192, 852, 862, 1406, 3075, 3555, 3565, 3575, 3585, 0,
07415     867, 877, 887, 3085, 3095, 3105, 0,
07416     197, 202, 207, 212, 217, 222, 337, 347, 357, 971, 1201, 1211, 1351, 2370, 3150, 3160, 0,
07417     2380, 2390, 2400, 0,
07418     227, 367, 377, 387, 397, 0,
07419     407, 2420, 2430, 2440, 2450, 2460, 0,
07420     232, 237, 242, 247, 417, 427, 437, 447, 457, 1221, 1231, 1361, 2490, 2500, 3270, 3280, 3290, 0,
07421     2520, 0,
07422     467, 477, 487, 497, 1081, 1151, 2530, 0,
07423     507, 1341, 2540, 2550, 2560, 2570, 2580, 3115, 0,
07424     252, 257, 262, 267, 517, 527, 537, 547, 981, 1241, 1251, 2590, 3350, 3360, 0,
07425     572, 1126, 0,
07426     582, 1091, 2610, 2620, 2630, 0,
07427     592, 602, 612, 2640, 2660, 2670, 0,
07428     2680, 2690, 2700, 0,
07429     272, 632, 642, 652, 1161, 2710, 2720, 2730, 2740, 0,
07430     277, 282, 287, 292, 297, 667, 677, 687, 906, 991, 1101, 1261, 1271, 1391, 3370, 3380, 0,
07431     2790, 2800, 0,
07432     697, 707, 717, 1281, 1291, 2810, 2820, 2840, 0,
07433     727, 737, 747, 757, 1321, 2850, 2860, 0,
07434     767, 777, 1331, 2900, 2910, 2920, 2930, 3120, 0,
07435     302, 307, 312, 317, 787, 797, 807, 817, 827, 837, 916, 1001, 1301, 1311, 2940, 2950, 2960, 3490, 3500, 0,
07436     2990, 3000, 0,
07437     847, 3010, 3020, 3030, 3040, 3050, 3125, 0,
07438     3060, 3070, 0,
07439     322, 327, 857, 1411, 3080, 3130, 3560, 3570, 3580, 3590, 0,
07440     872, 882, 892, 3090, 3100, 3110, 0,
07441     1537, 4476, 4670, 0,
07442     3165, 3175, 3185, 3195, 0,
07443     1046, 0,
07444     1166, 0,
07445     1066, 1176, 0,
07446     2405, 0,
07447     3295, 3305, 3315, 3325, 0,
07448     2595, 0,
07449     3385, 3395, 3405, 3415, 0,
07450     1376, 2745, 2755, 0,
07451     1366, 0,
07452     1186, 0,
07453     1006, 1016, 1026, 1036, 0,
07454     3170, 3180, 3190, 3200, 0,
07455     1051, 0,
07456     1171, 0,
07457     1071, 1181, 0,
07458     2410, 0,
07459     3300, 3310, 3320, 3330, 0,
07460     2600, 0,
07461     3390, 3400, 3410, 3420, 0,
07462     1381, 2750, 2760, 0,
07463     1371, 0,
07464     1191, 0,
07465     1011, 1021, 1031, 1041, 0,
07466     3215, 3225, 3235, 3245, 0,
07467     3220, 3230, 3240, 3250, 0,
07468     2465, 2475, 0,
07469     2470, 2480, 0,
07470     2765, 2775, 0,
07471     2770, 2780, 0,
07472     2865, 0,
07473     2870, 0,
07474     2875, 0,
07475     2880, 0,
07476     2965, 0,
07477     2970, 0,
07478     2975, 0,
07479     2980, 0,
07480     3140, 0,
07481     3435, 3445, 3455, 3465, 3475, 0,
07482     3440, 3450, 3460, 3470, 3480, 0,
07483     3505, 3515, 3525, 3535, 3545, 0,
07484     3510, 3520, 3530, 3540, 3550, 0,
07485     1116, 0,
07486     1106, 0,
07487     1111, 0,
07488     1056, 0,
07489     1061, 0,
07490     2505, 0,
07491     2510, 0,
07492     1396, 0,
07493     1401, 0,
07494     1121, 0,
07495     1514, 0,
07496     1542, 3635, 3640, 4433, 4438, 4443, 4452, 0,
07497     1551, 3705, 3710, 4506, 0,
07498     1556, 3775, 3780, 4515, 4524, 0,
07499     1561, 1586, 3855, 3860, 4573, 4578, 4583, 0,
07500     1566, 3925, 3930, 4708, 0,
07501     4665, 0,
07502     1571, 1591, 3995, 4646, 4651, 4656, 0,
07503     1576, 4055, 4060, 4717, 4726, 0,
07504     4418, 0,
07505     4491, 0,
07506     1596, 3595, 3600, 4095, 4398, 4403, 4413, 4423, 0,
07507     1601, 3675, 3680, 4104, 0,
07508     1606, 3735, 3740, 4113, 4486, 4496, 0,
07509     1611, 1621, 3815, 3820, 4122, 4544, 4549, 4563, 0,
07510     1631, 3895, 3900, 4131, 0,
07511     4626, 4631, 0,
07512     1626, 1636, 3955, 3960, 4140, 4607, 4612, 4636, 0,
07513     1641, 4015, 4020, 4149, 4688, 4698, 0,
07514     1581, 4554, 4568, 0,
07515     1616, 4617, 4641, 0,
07516     4693, 0,
07517     1658, 1663, 0,
07518     1711, 0,
07519     1796, 1806, 0,
07520     1706, 0,
07521     1696, 1701, 1816, 0,
07522     1786, 1836, 0,
07523     1846, 0,
07524     1721, 1731, 1856, 1866, 0,
07525     1716, 0,
07526     1876, 0,
07527     1726, 1906, 1916, 1926, 0,
07528     1936, 0,
07529     1946, 0,
07530     1896, 0,
07531     1801, 1811, 0,
07532     1751, 0,
07533     1741, 1746, 1821, 0,
07534     1791, 1841, 0,
07535     1851, 0,
07536     1736, 1766, 1861, 1871, 0,
07537     1761, 0,
07538     1881, 0,
07539     1771, 1911, 1921, 1931, 0,
07540     1941, 0,
07541     1951, 0,
07542     1901, 0,
07543     1756, 0,
07544     1776, 0,
07545     1781, 0,
07546     1826, 0,
07547     1831, 0,
07548     1886, 0,
07549     1891, 0,
07550     12167, 12172, 12177, 0,
07551     12182, 12292, 0,
07552     12187, 0,
07553     12192, 0,
07554     12197, 0,
07555     12202, 12287, 0,
07556     12207, 0,
07557     12212, 0,
07558     12097, 12217, 0,
07559     12222, 0,
07560     12227, 12297, 0,
07561     12232, 0,
07562     12237, 0,
07563     12242, 0,
07564     12247, 0,
07565     12252, 0,
07566     12257, 12302, 0,
07567     12262, 0,
07568     12267, 0,
07569     12272, 0,
07570     12147, 12152, 12277, 0,
07571     12282, 0,
07572     12102, 0,
07573     1961, 1966, 1976, 0,
07574     1971, 0,
07575     1981, 0,
07576     2011, 0,
07577     2016, 0,
07578     2006, 0,
07579     2036, 0,
07580     2041, 0,
07581     2046, 0,
07582     2051, 0,
07583     2056, 0,
07584     2061, 0,
07585     2021, 0,
07586     2066, 0,
07587     2071, 0,
07588     2026, 0,
07589     2031, 0,
07590     2086, 0,
07591     2091, 0,
07592     2096, 0,
07593     2076, 2081, 0,
07594     2111, 0,
07595     2116, 0,
07596     2121, 0,
07597     2126, 0,
07598     2101, 0,
07599     2106, 0,
07600     2146, 0,
07601     2151, 0,
07602     2131, 2136, 2141, 0,
07603     2156, 0,
07604     2161, 2171, 0,
07605     2166, 0,
07606     2176, 0,
07607     2181, 0,
07608     2186, 2191, 2196, 0,
07609     2201, 0,
07610     2206, 2216, 0,
07611     2211, 0,
07612     2221, 2226, 2236, 0,
07613     2231, 0,
07614     2290, 0,
07615     2265, 0,
07616     2270, 0,
07617     2275, 0,
07618     2280, 0,
07619     2285, 0,
07620     2295, 2300, 2325, 0,
07621     2355, 0,
07622     2330, 0,
07623     2335, 0,
07624     2340, 0,
07625     2345, 0,
07626     2350, 0,
07627     2305, 0,
07628     2315, 0,
07629     2360, 0,
07630     2645, 0,
07631     2650, 0,
07632     2825, 0,
07633     2830, 0,
07634     2885, 0,
07635     2890, 0,
07636     3205, 3255, 0,
07637     3210, 3260, 0,
07638     3335, 0,
07639     3340, 0,
07640     3425, 0,
07641     3430, 0,
07642     3605, 3615, 3625, 4158, 0,
07643     3610, 3620, 3630, 4163, 0,
07644     4168, 0,
07645     4173, 0,
07646     4178, 0,
07647     4183, 0,
07648     4188, 0,
07649     4193, 0,
07650     3645, 3655, 3665, 4198, 0,
07651     3650, 3660, 3670, 4203, 0,
07652     4208, 0,
07653     4213, 0,
07654     4218, 0,
07655     4223, 0,
07656     4228, 0,
07657     4233, 0,
07658     3685, 3695, 0,
07659     3690, 3700, 0,
07660     3715, 3725, 0,
07661     3720, 3730, 0,
07662     3745, 3755, 3765, 4238, 0,
07663     3750, 3760, 3770, 4243, 0,
07664     4248, 0,
07665     4253, 0,
07666     4258, 0,
07667     4263, 0,
07668     4268, 0,
07669     4273, 0,
07670     3785, 3795, 3805, 4278, 0,
07671     3790, 3800, 3810, 4283, 0,
07672     4288, 0,
07673     4293, 0,
07674     4298, 0,
07675     4303, 0,
07676     4308, 0,
07677     4313, 0,
07678     3825, 3835, 3845, 0,
07679     3830, 3840, 3850, 0,
07680     3865, 3875, 3885, 0,
07681     3870, 3880, 3890, 0,
07682     3905, 3915, 0,
07683     3910, 3920, 0,
07684     3935, 3945, 0,
07685     3940, 3950, 0,
07686     3965, 3975, 3985, 0,
07687     3970, 3980, 3990, 0,
07688     4000, 4005, 4010, 0,
07689     4025, 4035, 4045, 4318, 0,
07690     4030, 4040, 4050, 4323, 0,
07691     4328, 0,
07692     4333, 0,
07693     4338, 0,
07694     4343, 0,
07695     4348, 0,
07696     4353, 0,
07697     4065, 4075, 4085, 4358, 0,
07698     4070, 4080, 4090, 4363, 0,
07699     4368, 0,
07700     4373, 0,
07701     4378, 0,
07702     4383, 0,
07703     4388, 0,
07704     4393, 0,
07705     4408, 0,
07706     4481, 0,
07707     4683, 0,
07708     4428, 0,
07709     4529, 4534, 4539, 0,
07710     4501, 0,
07711     4703, 0,
07712     4592, 4597, 4602, 0,
07713     5455, 0,
07714     5460, 0,
07715     5465, 0,
07716     5470, 0,
07717     5480, 0,
07718     5475, 0,
07719     5485, 0,
07720     5490, 0,
07721     5495, 0,
07722     5500, 0,
07723     5505, 0,
07724     5532, 0,
07725     5537, 0,
07726     5542, 0,
07727     5547, 0,
07728     5562, 0,
07729     5557, 0,
07730     5577, 0,
07731     5582, 0,
07732     5587, 0,
07733     5592, 0,
07734     5597, 0,
07735     5602, 0,
07736     5607, 0,
07737     5612, 0,
07738     5657, 0,
07739     5662, 0,
07740     5617, 0,
07741     5622, 0,
07742     5627, 0,
07743     5632, 0,
07744     5667, 0,
07745     5672, 0,
07746     5637, 0,
07747     5642, 0,
07748     5647, 0,
07749     5652, 0,
07750     5677, 0,
07751     5682, 0,
07752     5687, 0,
07753     5692, 0,
07754     6430, 0,
07755     7444, 0,
07756     7319, 0,
07757     7324, 0,
07758     7329, 0,
07759     7334, 0,
07760     7339, 0,
07761     7344, 0,
07762     7349, 0,
07763     7354, 0,
07764     7359, 0,
07765     7364, 0,
07766     7369, 0,
07767     7374, 0,
07768     7379, 0,
07769     7384, 0,
07770     7389, 0,
07771     7394, 7399, 0,
07772     7404, 7409, 0,
07773     7414, 7419, 0,
07774     7424, 7429, 0,
07775     7434, 7439, 0,
07776     7459, 0,
07777     7594, 0,
07778     7469, 0,
07779     7474, 0,
07780     7479, 0,
07781     7484, 0,
07782     7489, 0,
07783     7494, 0,
07784     7499, 0,
07785     7504, 0,
07786     7509, 0,
07787     7514, 0,
07788     7519, 0,
07789     7524, 0,
07790     7529, 0,
07791     7534, 0,
07792     7539, 0,
07793     7544, 7549, 0,
07794     7554, 7559, 0,
07795     7564, 7569, 0,
07796     7574, 7579, 0,
07797     7584, 7589, 0,
07798     7599, 0,
07799     7604, 0,
07800     7609, 0,
07801     7614, 0,
07802     7619, 0,
07803     12157, 12162, 0,
07804 
07805 };
07806 
07807 static const Q_UINT16 li_00[] = {
07808     0, 0, 0, 0, 0, 0, 0, 0,
07809     0, 0, 0, 0, 0, 0, 0, 0,
07810     0, 0, 0, 0, 0, 0, 0, 0,
07811     0, 0, 0, 0, 0, 0, 0, 0,
07812     0, 0, 0, 0, 0, 0, 0, 0,
07813     0, 0, 0, 0, 0, 0, 0, 0,
07814     0, 0, 0, 0, 0, 0, 0, 0,
07815     0, 0, 0, 0, 1, 3, 5, 0,
07816     0, 7, 24, 28, 34, 41, 59, 61,
07817     69, 77, 93, 95, 101, 108, 112, 122,
07818     139, 0, 142, 151, 159, 167, 187, 190,
07819     197, 200, 210, 0, 0, 0, 0, 0,
07820     0, 217, 234, 238, 244, 251, 269, 271,
07821     279, 288, 303, 306, 312, 319, 323, 333,
07822     350, 0, 353, 362, 370, 379, 399, 402,
07823     410, 413, 424, 0, 0, 0, 0, 0,
07824     0, 0, 0, 0, 0, 0, 0, 0,
07825     0, 0, 0, 0, 0, 0, 0, 0,
07826     0, 0, 0, 0, 0, 0, 0, 0,
07827     0, 0, 0, 0, 0, 0, 0, 0,
07828     0, 0, 0, 0, 0, 0, 0, 0,
07829     431, 0, 0, 0, 0, 0, 0, 0,
07830     0, 0, 0, 0, 0, 0, 0, 0,
07831     0, 0, 0, 0, 0, 0, 0, 0,
07832     0, 0, 435, 0, 440, 442, 444, 447,
07833     0, 0, 449, 0, 0, 0, 0, 454,
07834     0, 0, 0, 0, 456, 461, 465, 0,
07835     467, 0, 0, 0, 469, 0, 0, 0,
07836     0, 0, 474, 0, 479, 481, 483, 486,
07837     0, 0, 488, 0, 0, 0, 0, 493,
07838     0, 0, 0, 0, 495, 500, 504, 0,
07839     506, 0, 0, 0, 508, 0, 0, 0,
07840 };
07841 
07842 static const Q_UINT16 li_01[] = {
07843     0, 0, 513, 518, 0, 0, 0, 0,
07844     0, 0, 0, 0, 0, 0, 0, 0,
07845     0, 0, 523, 526, 0, 0, 0, 0,
07846     0, 0, 0, 0, 0, 0, 0, 0,
07847     0, 0, 0, 0, 0, 0, 0, 0,
07848     0, 0, 0, 0, 0, 0, 0, 0,
07849     0, 0, 0, 0, 0, 0, 0, 0,
07850     0, 0, 0, 0, 0, 0, 0, 0,
07851     0, 0, 0, 0, 0, 0, 0, 0,
07852     0, 0, 0, 0, 529, 532, 0, 0,
07853     0, 0, 0, 0, 0, 0, 0, 0,
07854     0, 0, 535, 537, 0, 0, 0, 0,
07855     539, 541, 0, 0, 0, 0, 0, 0,
07856     543, 545, 547, 549, 0, 0, 0, 0,
07857     0, 0, 0, 0, 0, 0, 0, 0,
07858     0, 0, 0, 0, 0, 0, 0, 551,
07859     0, 0, 0, 0, 0, 0, 0, 0,
07860     0, 0, 0, 0, 0, 0, 0, 0,
07861     0, 0, 0, 0, 0, 0, 0, 0,
07862     0, 0, 0, 0, 0, 0, 0, 0,
07863     553, 559, 0, 0, 0, 0, 0, 0,
07864     0, 0, 0, 0, 0, 0, 0, 565,
07865     571, 0, 0, 0, 0, 0, 0, 577,
07866     0, 0, 0, 0, 0, 0, 0, 0,
07867     0, 0, 0, 0, 0, 0, 0, 0,
07868     0, 0, 0, 0, 0, 0, 0, 0,
07869     0, 0, 0, 0, 0, 0, 0, 0,
07870     0, 0, 0, 0, 0, 0, 0, 0,
07871     0, 0, 0, 0, 0, 0, 0, 0,
07872     0, 0, 579, 581, 0, 0, 0, 0,
07873     0, 0, 0, 0, 0, 0, 0, 0,
07874     0, 0, 0, 0, 0, 0, 0, 0,
07875 };
07876 
07877 static const Q_UINT16 li_02[] = {
07878     0, 0, 0, 0, 0, 0, 0, 0,
07879     0, 0, 0, 0, 0, 0, 0, 0,
07880     0, 0, 0, 0, 0, 0, 0, 0,
07881     0, 0, 0, 0, 0, 0, 0, 0,
07882     0, 0, 0, 0, 0, 0, 583, 585,
07883     587, 589, 0, 0, 0, 0, 591, 593,
07884     0, 0, 0, 0, 0, 0, 0, 0,
07885     0, 0, 0, 0, 0, 0, 0, 0,
07886     0, 0, 0, 0, 0, 0, 0, 0,
07887     0, 0, 0, 0, 0, 0, 0, 0,
07888     0, 0, 0, 0, 0, 0, 0, 0,
07889     0, 0, 0, 0, 0, 0, 0, 0,
07890     0, 0, 0, 0, 0, 0, 0, 0,
07891     0, 0, 0, 0, 0, 0, 0, 0,
07892     0, 0, 0, 0, 0, 0, 0, 0,
07893     0, 0, 0, 0, 0, 0, 0, 0,
07894     0, 0, 0, 0, 0, 0, 0, 0,
07895     0, 0, 0, 0, 0, 0, 0, 0,
07896     0, 0, 595, 0, 0, 0, 0, 0,
07897     0, 0, 0, 0, 0, 0, 0, 0,
07898     0, 0, 0, 0, 0, 0, 0, 0,
07899     0, 0, 0, 0, 0, 0, 0, 0,
07900     0, 0, 0, 0, 0, 0, 0, 0,
07901     0, 0, 0, 0, 0, 0, 0, 0,
07902     0, 0, 0, 0, 0, 0, 0, 0,
07903     0, 0, 0, 0, 0, 0, 0, 0,
07904     0, 0, 0, 0, 0, 0, 0, 0,
07905     0, 0, 0, 0, 0, 0, 0, 0,
07906     0, 0, 0, 0, 0, 0, 0, 0,
07907     0, 0, 0, 0, 0, 0, 0, 0,
07908     0, 0, 0, 0, 0, 0, 0, 0,
07909     0, 0, 0, 0, 0, 0, 0, 0,
07910 };
07911 
07912 static const Q_UINT16 li_03[] = {
07913     0, 0, 0, 0, 0, 0, 0, 0,
07914     597, 0, 0, 0, 0, 0, 0, 0,
07915     0, 0, 0, 0, 0, 0, 0, 0,
07916     0, 0, 0, 0, 0, 0, 0, 0,
07917     0, 0, 0, 0, 0, 0, 0, 0,
07918     0, 0, 0, 0, 0, 0, 0, 0,
07919     0, 0, 0, 0, 0, 0, 0, 0,
07920     0, 0, 0, 0, 0, 0, 0, 0,
07921     0, 0, 0, 0, 0, 0, 0, 0,
07922     0, 0, 0, 0, 0, 0, 0, 0,
07923     0, 0, 0, 0, 0, 0, 0, 0,
07924     0, 0, 0, 0, 0, 0, 0, 0,
07925     0, 0, 0, 0, 0, 0, 0, 0,
07926     0, 0, 0, 0, 0, 0, 0, 0,
07927     0, 0, 0, 0, 0, 0, 0, 0,
07928     0, 0, 0, 0, 0, 0, 0, 0,
07929     0, 0, 0, 0, 0, 0, 0, 0,
07930     0, 0, 0, 0, 0, 0, 0, 0,
07931     0, 599, 0, 0, 0, 607, 0, 612,
07932     0, 618, 0, 0, 0, 0, 0, 626,
07933     0, 631, 0, 0, 0, 633, 0, 0,
07934     0, 640, 0, 0, 646, 0, 648, 0,
07935     0, 650, 0, 0, 0, 659, 0, 664,
07936     0, 671, 0, 0, 0, 0, 0, 680,
07937     0, 685, 0, 0, 0, 688, 0, 0,
07938     0, 697, 704, 708, 0, 0, 712, 0,
07939     0, 0, 714, 0, 0, 0, 0, 0,
07940     0, 0, 0, 0, 0, 0, 0, 0,
07941     0, 0, 0, 0, 0, 0, 0, 0,
07942     0, 0, 0, 0, 0, 0, 0, 0,
07943     0, 0, 0, 0, 0, 0, 0, 0,
07944     0, 0, 0, 0, 0, 0, 0, 0,
07945 };
07946 
07947 static const Q_UINT16 li_04[] = {
07948     0, 0, 0, 0, 0, 0, 717, 0,
07949     0, 0, 0, 0, 0, 0, 0, 0,
07950     719, 0, 0, 722, 0, 724, 728, 731,
07951     733, 0, 738, 0, 0, 0, 740, 0,
07952     0, 0, 0, 742, 0, 0, 0, 747,
07953     0, 0, 0, 749, 0, 751, 0, 0,
07954     753, 0, 0, 756, 0, 758, 762, 765,
07955     767, 0, 772, 0, 0, 0, 774, 0,
07956     0, 0, 0, 776, 0, 0, 0, 781,
07957     0, 0, 0, 783, 0, 785, 0, 0,
07958     0, 0, 0, 0, 0, 0, 787, 0,
07959     0, 0, 0, 0, 0, 0, 0, 0,
07960     0, 0, 0, 0, 0, 0, 0, 0,
07961     0, 0, 0, 0, 0, 0, 0, 0,
07962     0, 0, 0, 0, 789, 791, 0, 0,
07963     0, 0, 0, 0, 0, 0, 0, 0,
07964     0, 0, 0, 0, 0, 0, 0, 0,
07965     0, 0, 0, 0, 0, 0, 0, 0,
07966     0, 0, 0, 0, 0, 0, 0, 0,
07967     0, 0, 0, 0, 0, 0, 0, 0,
07968     0, 0, 0, 0, 0, 0, 0, 0,
07969     0, 0, 0, 0, 0, 0, 0, 0,
07970     0, 0, 0, 0, 0, 0, 0, 0,
07971     0, 0, 0, 0, 0, 0, 0, 0,
07972     0, 0, 0, 0, 0, 0, 0, 0,
07973     0, 0, 0, 0, 0, 0, 0, 0,
07974     0, 0, 0, 0, 0, 0, 0, 0,
07975     793, 795, 0, 0, 0, 0, 0, 0,
07976     0, 0, 0, 0, 0, 0, 0, 0,
07977     797, 799, 0, 0, 0, 0, 0, 0,
07978     0, 0, 0, 0, 0, 0, 0, 0,
07979     0, 0, 0, 0, 0, 0, 0, 0,
07980 };
07981 
07982 static const Q_UINT16 li_05[] = {
07983     0, 0, 0, 0, 0, 0, 0, 0,
07984     0, 0, 0, 0, 0, 0, 0, 0,
07985     0, 0, 0, 0, 0, 0, 0, 0,
07986     0, 0, 0, 0, 0, 0, 0, 0,
07987     0, 0, 0, 0, 0, 0, 0, 0,
07988     0, 0, 0, 0, 0, 0, 0, 0,
07989     0, 0, 0, 0, 0, 0, 0, 0,
07990     0, 0, 0, 0, 0, 0, 0, 0,
07991     0, 0, 0, 0, 0, 0, 0, 0,
07992     0, 0, 0, 0, 0, 0, 0, 0,
07993     0, 0, 0, 0, 0, 0, 0, 0,
07994     0, 0, 0, 0, 0, 0, 0, 0,
07995     0, 0, 0, 0, 0, 0, 0, 0,
07996     0, 0, 0, 0, 0, 0, 0, 0,
07997     0, 0, 0, 0, 0, 0, 0, 0,
07998     0, 0, 0, 0, 0, 0, 0, 0,
07999     0, 0, 0, 0, 0, 0, 0, 0,
08000     0, 0, 0, 0, 0, 0, 0, 0,
08001     0, 0, 0, 0, 0, 0, 0, 0,
08002     0, 0, 0, 0, 0, 0, 0, 0,
08003     0, 0, 0, 0, 0, 0, 0, 0,
08004     0, 0, 0, 0, 0, 0, 0, 0,
08005     0, 0, 0, 0, 0, 0, 0, 0,
08006     0, 0, 0, 0, 0, 0, 0, 0,
08007     0, 0, 0, 0, 0, 0, 0, 0,
08008     0, 0, 0, 0, 0, 0, 0, 0,
08009     801, 805, 808, 810, 812, 814, 817, 0,
08010     819, 821, 824, 826, 829, 0, 831, 0,
08011     833, 835, 0, 837, 839, 0, 842, 844,
08012     846, 848, 852, 0, 0, 0, 0, 0,
08013     0, 0, 854, 0, 0, 0, 0, 0,
08014     0, 0, 0, 0, 0, 0, 0, 0,
08015 };
08016 
08017 static const Q_UINT16 li_06[] = {
08018     0, 0, 0, 0, 0, 0, 0, 0,
08019     0, 0, 0, 0, 0, 0, 0, 0,
08020     0, 0, 0, 0, 0, 0, 0, 0,
08021     0, 0, 0, 0, 0, 0, 0, 0,
08022     0, 0, 0, 0, 0, 0, 0, 856,
08023     0, 0, 0, 0, 0, 0, 0, 0,
08024     0, 0, 0, 0, 0, 0, 0, 0,
08025     0, 0, 0, 0, 0, 0, 0, 0,
08026     0, 0, 0, 0, 0, 0, 0, 0,
08027     860, 0, 862, 0, 0, 0, 0, 0,
08028     0, 0, 0, 0, 0, 0, 0, 0,
08029     0, 0, 0, 0, 0, 0, 0, 0,
08030     0, 0, 0, 0, 0, 0, 0, 0,
08031     0, 0, 0, 0, 0, 0, 0, 0,
08032     0, 0, 0, 0, 0, 0, 0, 0,
08033     0, 0, 0, 0, 0, 0, 0, 0,
08034     0, 0, 0, 0, 0, 0, 0, 0,
08035     0, 0, 0, 0, 0, 0, 0, 0,
08036     0, 0, 0, 0, 0, 0, 0, 0,
08037     0, 0, 0, 0, 0, 0, 0, 0,
08038     0, 0, 0, 0, 0, 0, 0, 0,
08039     0, 0, 0, 0, 0, 0, 0, 0,
08040     0, 0, 0, 0, 0, 0, 0, 0,
08041     0, 0, 0, 0, 0, 0, 0, 0,
08042     0, 864, 0, 0, 0, 0, 0, 0,
08043     0, 0, 0, 0, 0, 0, 0, 0,
08044     0, 0, 866, 0, 0, 868, 0, 0,
08045     0, 0, 0, 0, 0, 0, 0, 0,
08046     0, 0, 0, 0, 0, 0, 0, 0,
08047     0, 0, 0, 0, 0, 0, 0, 0,
08048     0, 0, 0, 0, 0, 0, 0, 0,
08049     0, 0, 0, 0, 0, 0, 0, 0,
08050 };
08051 
08052 static const Q_UINT16 li_07[] = {
08053     0, 0, 0, 0, 0, 0, 0, 0,
08054     0, 0, 0, 0, 0, 0, 0, 0,
08055     0, 0, 0, 0, 0, 0, 0, 0,
08056     0, 0, 0, 0, 0, 0, 0, 0,
08057     0, 0, 0, 0, 0, 0, 0, 0,
08058     0, 0, 0, 0, 0, 0, 0, 0,
08059     0, 0, 0, 0, 0, 0, 0, 0,
08060     0, 0, 0, 0, 0, 0, 0, 0,
08061     0, 0, 0, 0, 0, 0, 0, 0,
08062     0, 0, 0, 0, 0, 0, 0, 0,
08063     0, 0, 0, 0, 0, 0, 0, 0,
08064     0, 0, 0, 0, 0, 0, 0, 0,
08065     0, 0, 0, 0, 0, 0, 0, 0,
08066     0, 0, 0, 0, 0, 0, 0, 0,
08067     0, 0, 0, 0, 0, 0, 0, 0,
08068     0, 0, 0, 0, 0, 0, 0, 0,
08069     0, 0, 0, 0, 0, 0, 0, 0,
08070     0, 0, 0, 0, 0, 0, 0, 0,
08071     0, 0, 0, 0, 0, 0, 0, 0,
08072     0, 0, 0, 0, 0, 0, 0, 0,
08073     0, 0, 0, 0, 0, 0, 0, 0,
08074     0, 0, 0, 0, 0, 0, 0, 0,
08075     0, 0, 0, 0, 0, 0, 0, 0,
08076     0, 0, 0, 0, 0, 0, 0, 0,
08077     0, 0, 0, 0, 0, 0, 0, 0,
08078     0, 0, 0, 0, 0, 0, 0, 0,
08079     0, 0, 0, 0, 0, 0, 0, 0,
08080     0, 0, 0, 0, 0, 0, 0, 0,
08081     0, 0, 0, 0, 0, 0, 0, 0,
08082     0, 0, 0, 0, 0, 0, 0, 0,
08083     0, 0, 0, 0, 0, 0, 0, 0,
08084     0, 0, 0, 0, 0, 0, 0, 0,
08085 };
08086 
08087 static const Q_UINT16 li_09[] = {
08088     0, 0, 0, 0, 0, 0, 0, 0,
08089     0, 0, 0, 0, 0, 0, 0, 0,
08090     0, 0, 0, 0, 0, 870, 872, 874,
08091     0, 0, 0, 0, 876, 0, 0, 0,
08092     0, 878, 880, 0, 0, 0, 0, 0,
08093     882, 0, 0, 884, 0, 0, 0, 886,
08094     888, 0, 0, 890, 0, 0, 0, 0,
08095     0, 0, 0, 0, 0, 0, 0, 0,
08096     0, 0, 0, 0, 0, 0, 0, 0,
08097     0, 0, 0, 0, 0, 0, 0, 0,
08098     0, 0, 0, 0, 0, 0, 0, 0,
08099     0, 0, 0, 0, 0, 0, 0, 0,
08100     0, 0, 0, 0, 0, 0, 0, 0,
08101     0, 0, 0, 0, 0, 0, 0, 0,
08102     0, 0, 0, 0, 0, 0, 0, 0,
08103     0, 0, 0, 0, 0, 0, 0, 0,
08104     0, 0, 0, 0, 0, 0, 0, 0,
08105     0, 0, 0, 0, 0, 0, 0, 0,
08106     0, 0, 0, 0, 0, 0, 0, 0,
08107     0, 0, 0, 0, 0, 0, 0, 0,
08108     0, 892, 894, 0, 0, 0, 0, 0,
08109     0, 0, 0, 0, 0, 0, 0, 896,
08110     0, 0, 0, 0, 0, 0, 0, 0,
08111     0, 0, 0, 0, 0, 0, 0, 0,
08112     0, 0, 0, 0, 0, 0, 0, 898,
08113     0, 0, 0, 0, 0, 0, 0, 0,
08114     0, 0, 0, 0, 0, 0, 0, 0,
08115     0, 0, 0, 0, 0, 0, 0, 0,
08116     0, 0, 0, 0, 0, 0, 0, 0,
08117     0, 0, 0, 0, 0, 0, 0, 0,
08118     0, 0, 0, 0, 0, 0, 0, 0,
08119     0, 0, 0, 0, 0, 0, 0, 0,
08120 };
08121 
08122 static const Q_UINT16 li_0A[] = {
08123     0, 0, 0, 0, 0, 0, 0, 0,
08124     0, 0, 0, 0, 0, 0, 0, 0,
08125     0, 0, 0, 0, 0, 0, 901, 903,
08126     0, 0, 0, 0, 905, 0, 0, 0,
08127     0, 0, 0, 0, 0, 0, 0, 0,
08128     0, 0, 0, 907, 0, 0, 0, 0,
08129     0, 0, 909, 0, 0, 0, 0, 0,
08130     911, 0, 0, 0, 0, 0, 0, 0,
08131     0, 0, 0, 0, 0, 0, 0, 0,
08132     0, 0, 0, 0, 0, 0, 0, 0,
08133     0, 0, 0, 0, 0, 0, 0, 0,
08134     0, 0, 0, 0, 0, 0, 0, 0,
08135     0, 0, 0, 0, 0, 0, 0, 0,
08136     0, 0, 0, 0, 0, 0, 0, 0,
08137     0, 0, 0, 0, 0, 0, 0, 0,
08138     0, 0, 0, 0, 0, 0, 0, 0,
08139     0, 0, 0, 0, 0, 0, 0, 0,
08140     0, 0, 0, 0, 0, 0, 0, 0,
08141     0, 0, 0, 0, 0, 0, 0, 0,
08142     0, 0, 0, 0, 0, 0, 0, 0,
08143     0, 0, 0, 0, 0, 0, 0, 0,
08144     0, 0, 0, 0, 0, 0, 0, 0,
08145     0, 0, 0, 0, 0, 0, 0, 0,
08146     0, 0, 0, 0, 0, 0, 0, 0,
08147     0, 0, 0, 0, 0, 0, 0, 0,
08148     0, 0, 0, 0, 0, 0, 0, 0,
08149     0, 0, 0, 0, 0, 0, 0, 0,
08150     0, 0, 0, 0, 0, 0, 0, 0,
08151     0, 0, 0, 0, 0, 0, 0, 0,
08152     0, 0, 0, 0, 0, 0, 0, 0,
08153     0, 0, 0, 0, 0, 0, 0, 0,
08154     0, 0, 0, 0, 0, 0, 0, 0,
08155 };
08156 
08157 static const Q_UINT16 li_0B[] = {
08158     0, 0, 0, 0, 0, 0, 0, 0,
08159     0, 0, 0, 0, 0, 0, 0, 0,
08160     0, 0, 0, 0, 0, 0, 0, 0,
08161     0, 0, 0, 0, 0, 0, 0, 0,
08162     0, 913, 915, 0, 0, 0, 0, 0,
08163     0, 0, 0, 0, 0, 0, 0, 0,
08164     0, 0, 0, 0, 0, 0, 0, 0,
08165     0, 0, 0, 0, 0, 0, 0, 0,
08166     0, 0, 0, 0, 0, 0, 0, 917,
08167     0, 0, 0, 0, 0, 0, 0, 0,
08168     0, 0, 0, 0, 0, 0, 0, 0,
08169     0, 0, 0, 0, 0, 0, 0, 0,
08170     0, 0, 0, 0, 0, 0, 0, 0,
08171     0, 0, 0, 0, 0, 0, 0, 0,
08172     0, 0, 0, 0, 0, 0, 0, 0,
08173     0, 0, 0, 0, 0, 0, 0, 0,
08174     0, 0, 0, 0, 0, 0, 0, 0,
08175     0, 0, 0, 0, 0, 0, 0, 0,
08176     0, 0, 921, 0, 0, 0, 0, 0,
08177     0, 0, 0, 0, 0, 0, 0, 0,
08178     0, 0, 0, 0, 0, 0, 0, 0,
08179     0, 0, 0, 0, 0, 0, 0, 0,
08180     0, 0, 0, 0, 0, 0, 0, 0,
08181     0, 0, 0, 0, 0, 0, 0, 0,
08182     0, 0, 0, 0, 0, 0, 923, 926,
08183     0, 0, 0, 0, 0, 0, 0, 0,
08184     0, 0, 0, 0, 0, 0, 0, 0,
08185     0, 0, 0, 0, 0, 0, 0, 0,
08186     0, 0, 0, 0, 0, 0, 0, 0,
08187     0, 0, 0, 0, 0, 0, 0, 0,
08188     0, 0, 0, 0, 0, 0, 0, 0,
08189     0, 0, 0, 0, 0, 0, 0, 0,
08190 };
08191 
08192 static const Q_UINT16 li_0C[] = {
08193     0, 0, 0, 0, 0, 0, 0, 0,
08194     0, 0, 0, 0, 0, 0, 0, 0,
08195     0, 0, 0, 0, 0, 0, 0, 0,
08196     0, 0, 0, 0, 0, 0, 0, 0,
08197     0, 0, 0, 0, 0, 0, 0, 0,
08198     0, 0, 0, 0, 0, 0, 0, 0,
08199     0, 0, 0, 0, 0, 0, 0, 0,
08200     0, 0, 0, 0, 0, 0, 0, 0,
08201     0, 0, 0, 0, 0, 0, 928, 0,
08202     0, 0, 0, 0, 0, 0, 0, 0,
08203     0, 0, 0, 0, 0, 0, 0, 0,
08204     0, 0, 0, 0, 0, 0, 0, 0,
08205     0, 0, 0, 0, 0, 0, 0, 0,
08206     0, 0, 0, 0, 0, 0, 0, 0,
08207     0, 0, 0, 0, 0, 0, 0, 0,
08208     0, 0, 0, 0, 0, 0, 0, 0,
08209     0, 0, 0, 0, 0, 0, 0, 0,
08210     0, 0, 0, 0, 0, 0, 0, 0,
08211     0, 0, 0, 0, 0, 0, 0, 0,
08212     0, 0, 0, 0, 0, 0, 0, 0,
08213     0, 0, 0, 0, 0, 0, 0, 0,
08214     0, 0, 0, 0, 0, 0, 0, 0,
08215     0, 0, 0, 0, 0, 0, 0, 0,
08216     0, 0, 0, 0, 0, 0, 0, 930,
08217     0, 0, 0, 0, 0, 0, 932, 0,
08218     0, 0, 936, 0, 0, 0, 0, 0,
08219     0, 0, 0, 0, 0, 0, 0, 0,
08220     0, 0, 0, 0, 0, 0, 0, 0,
08221     0, 0, 0, 0, 0, 0, 0, 0,
08222     0, 0, 0, 0, 0, 0, 0, 0,
08223     0, 0, 0, 0, 0, 0, 0, 0,
08224     0, 0, 0, 0, 0, 0, 0, 0,
08225 };
08226 
08227 static const Q_UINT16 li_0D[] = {
08228     0, 0, 0, 0, 0, 0, 0, 0,
08229     0, 0, 0, 0, 0, 0, 0, 0,
08230     0, 0, 0, 0, 0, 0, 0, 0,
08231     0, 0, 0, 0, 0, 0, 0, 0,
08232     0, 0, 0, 0, 0, 0, 0, 0,
08233     0, 0, 0, 0, 0, 0, 0, 0,
08234     0, 0, 0, 0, 0, 0, 0, 0,
08235     0, 0, 0, 0, 0, 0, 0, 0,
08236     0, 0, 0, 0, 0, 0, 938, 941,
08237     0, 0, 0, 0, 0, 0, 0, 0,
08238     0, 0, 0, 0, 0, 0, 0, 0,
08239     0, 0, 0, 0, 0, 0, 0, 0,
08240     0, 0, 0, 0, 0, 0, 0, 0,
08241     0, 0, 0, 0, 0, 0, 0, 0,
08242     0, 0, 0, 0, 0, 0, 0, 0,
08243     0, 0, 0, 0, 0, 0, 0, 0,
08244     0, 0, 0, 0, 0, 0, 0, 0,
08245     0, 0, 0, 0, 0, 0, 0, 0,
08246     0, 0, 0, 0, 0, 0, 0, 0,
08247     0, 0, 0, 0, 0, 0, 0, 0,
08248     0, 0, 0, 0, 0, 0, 0, 0,
08249     0, 0, 0, 0, 0, 0, 0, 0,
08250     0, 0, 0, 0, 0, 0, 0, 0,
08251     0, 0, 0, 0, 0, 0, 0, 0,
08252     0, 0, 0, 0, 0, 0, 0, 0,
08253     0, 0, 0, 0, 0, 0, 0, 0,
08254     0, 0, 0, 0, 0, 0, 0, 0,
08255     0, 943, 0, 0, 947, 0, 0, 0,
08256     0, 0, 0, 0, 0, 0, 0, 0,
08257     0, 0, 0, 0, 0, 0, 0, 0,
08258     0, 0, 0, 0, 0, 0, 0, 0,
08259     0, 0, 0, 0, 0, 0, 0, 0,
08260 };
08261 
08262 static const Q_UINT16 li_0F[] = {
08263     0, 0, 0, 0, 0, 0, 0, 0,
08264     0, 0, 0, 0, 0, 0, 0, 0,
08265     0, 0, 0, 0, 0, 0, 0, 0,
08266     0, 0, 0, 0, 0, 0, 0, 0,
08267     0, 0, 0, 0, 0, 0, 0, 0,
08268     0, 0, 0, 0, 0, 0, 0, 0,
08269     0, 0, 0, 0, 0, 0, 0, 0,
08270     0, 0, 0, 0, 0, 0, 0, 0,
08271     949, 0, 951, 0, 0, 0, 0, 0,
08272     0, 0, 0, 0, 953, 0, 0, 0,
08273     0, 955, 0, 0, 0, 0, 957, 0,
08274     0, 0, 0, 959, 0, 0, 0, 0,
08275     0, 0, 0, 0, 0, 0, 0, 0,
08276     0, 0, 0, 0, 0, 0, 0, 0,
08277     0, 961, 0, 0, 0, 0, 0, 0,
08278     0, 0, 0, 0, 0, 0, 0, 0,
08279     0, 0, 0, 0, 0, 0, 0, 0,
08280     0, 0, 0, 0, 0, 0, 0, 0,
08281     965, 0, 967, 0, 0, 0, 0, 0,
08282     0, 0, 0, 0, 969, 0, 0, 0,
08283     0, 971, 0, 0, 0, 0, 973, 0,
08284     0, 0, 0, 975, 0, 0, 0, 0,
08285     0, 0, 977, 979, 0, 0, 0, 0,
08286     0, 0, 0, 0, 0, 0, 0, 0,
08287     0, 0, 0, 0, 0, 0, 0, 0,
08288     0, 0, 0, 0, 0, 0, 0, 0,
08289     0, 0, 0, 0, 0, 0, 0, 0,
08290     0, 0, 0, 0, 0, 0, 0, 0,
08291     0, 0, 0, 0, 0, 0, 0, 0,
08292     0, 0, 0, 0, 0, 0, 0, 0,
08293     0, 0, 0, 0, 0, 0, 0, 0,
08294     0, 0, 0, 0, 0, 0, 0, 0,
08295 };
08296 
08297 static const Q_UINT16 li_10[] = {
08298     0, 0, 0, 0, 0, 0, 0, 0,
08299     0, 0, 0, 0, 0, 0, 0, 0,
08300     0, 0, 0, 0, 0, 0, 0, 0,
08301     0, 0, 0, 0, 0, 0, 0, 0,
08302     0, 0, 0, 0, 0, 981, 0, 0,
08303     0, 0, 0, 0, 0, 0, 0, 0,
08304     0, 0, 0, 0, 0, 0, 0, 0,
08305     0, 0, 0, 0, 0, 0, 0, 0,
08306     0, 0, 0, 0, 0, 0, 0, 0,
08307     0, 0, 0, 0, 0, 0, 0, 0,
08308     0, 0, 0, 0, 0, 0, 0, 0,
08309     0, 0, 0, 0, 0, 0, 0, 0,
08310     0, 0, 0, 0, 0, 0, 0, 0,
08311     0, 0, 0, 0, 0, 0, 0, 0,
08312     0, 0, 0, 0, 0, 0, 0, 0,
08313     0, 0, 0, 0, 0, 0, 0, 0,
08314     0, 0, 0, 0, 0, 0, 0, 0,
08315     0, 0, 0, 0, 0, 0, 0, 0,
08316     0, 0, 0, 0, 0, 0, 0, 0,
08317     0, 0, 0, 0, 0, 0, 0, 0,
08318     0, 0, 0, 0, 0, 0, 0, 0,
08319     0, 0, 0, 0, 0, 0, 0, 0,
08320     0, 0, 0, 0, 0, 0, 0, 0,
08321     0, 0, 0, 0, 0, 0, 0, 0,
08322     0, 0, 0, 0, 0, 0, 0, 0,
08323     0, 0, 0, 0, 0, 0, 0, 0,
08324     0, 0, 0, 0, 0, 0, 0, 0,
08325     0, 0, 0, 0, 0, 0, 0, 0,
08326     0, 0, 0, 0, 0, 0, 0, 0,
08327     0, 0, 0, 0, 0, 0, 0, 0,
08328     0, 0, 0, 0, 0, 0, 0, 0,
08329     0, 0, 0, 0, 0, 0, 0, 0,
08330 };
08331 
08332 static const Q_UINT16 li_1E[] = {
08333     0, 0, 0, 0, 0, 0, 0, 0,
08334     0, 0, 0, 0, 0, 0, 0, 0,
08335     0, 0, 0, 0, 0, 0, 0, 0,
08336     0, 0, 0, 0, 0, 0, 0, 0,
08337     0, 0, 0, 0, 0, 0, 0, 0,
08338     0, 0, 0, 0, 0, 0, 0, 0,
08339     0, 0, 0, 0, 0, 0, 983, 985,
08340     0, 0, 0, 0, 0, 0, 0, 0,
08341     0, 0, 0, 0, 0, 0, 0, 0,
08342     0, 0, 0, 0, 0, 0, 0, 0,
08343     0, 0, 0, 0, 0, 0, 0, 0,
08344     0, 0, 987, 989, 0, 0, 0, 0,
08345     0, 0, 991, 993, 0, 0, 0, 0,
08346     0, 0, 0, 0, 0, 0, 0, 0,
08347     0, 0, 0, 0, 0, 0, 0, 0,
08348     0, 0, 0, 0, 0, 0, 0, 0,
08349     0, 0, 0, 0, 0, 0, 0, 0,
08350     0, 0, 0, 0, 0, 0, 0, 0,
08351     0, 0, 0, 0, 0, 0, 0, 0,
08352     0, 0, 0, 0, 0, 0, 0, 0,
08353     995, 998, 0, 0, 0, 0, 0, 0,
08354     0, 0, 0, 0, 0, 0, 0, 0,
08355     0, 0, 0, 0, 0, 0, 0, 0,
08356     1001, 1003, 0, 0, 0, 0, 0, 0,
08357     0, 0, 0, 0, 0, 0, 0, 0,
08358     0, 0, 0, 0, 1005, 1007, 0, 0,
08359     0, 0, 0, 0, 0, 0, 0, 0,
08360     0, 0, 0, 0, 0, 0, 0, 0,
08361     0, 0, 0, 0, 0, 0, 0, 0,
08362     0, 0, 0, 0, 0, 0, 0, 0,
08363     0, 0, 0, 0, 0, 0, 0, 0,
08364     0, 0, 0, 0, 0, 0, 0, 0,
08365 };
08366 
08367 static const Q_UINT16 li_1F[] = {
08368     1009, 1014, 1019, 1021, 1023, 1025, 1027, 1029,
08369     1031, 1036, 1041, 1043, 1045, 1047, 1049, 1051,
08370     1053, 1056, 0, 0, 0, 0, 0, 0,
08371     1059, 1062, 0, 0, 0, 0, 0, 0,
08372     1065, 1070, 1075, 1077, 1079, 1081, 1083, 1085,
08373     1087, 1092, 1097, 1099, 1101, 1103, 1105, 1107,
08374     1109, 1113, 0, 0, 0, 0, 0, 0,
08375     1117, 1121, 0, 0, 0, 0, 0, 0,
08376     1125, 1128, 0, 0, 0, 0, 0, 0,
08377     1131, 1134, 0, 0, 0, 0, 0, 0,
08378     1137, 1141, 0, 0, 0, 0, 0, 0,
08379     0, 1145, 0, 0, 0, 0, 0, 0,
08380     1149, 1154, 1159, 1161, 1163, 1165, 1167, 1169,
08381     1171, 1176, 1181, 1183, 1185, 1187, 1189, 1191,
08382     1193, 0, 0, 0, 1195, 0, 0, 0,
08383     0, 0, 0, 0, 1197, 0, 0, 0,
08384     0, 0, 0, 0, 0, 0, 0, 0,
08385     0, 0, 0, 0, 0, 0, 0, 0,
08386     0, 0, 0, 0, 0, 0, 0, 0,
08387     0, 0, 0, 0, 0, 0, 0, 0,
08388     0, 0, 0, 0, 0, 0, 0, 0,
08389     0, 0, 0, 0, 0, 0, 0, 0,
08390     0, 0, 0, 0, 0, 0, 1199, 0,
08391     0, 0, 0, 0, 0, 0, 0, 1201,
08392     0, 0, 0, 0, 0, 0, 1205, 0,
08393     0, 0, 0, 0, 0, 0, 0, 0,
08394     0, 0, 0, 0, 0, 0, 0, 0,
08395     0, 0, 0, 0, 0, 0, 0, 0,
08396     0, 0, 0, 0, 0, 0, 0, 0,
08397     0, 0, 0, 0, 0, 0, 0, 0,
08398     0, 0, 0, 0, 0, 0, 1207, 0,
08399     0, 0, 0, 0, 0, 0, 1209, 0,
08400 };
08401 
08402 static const Q_UINT16 li_21[] = {
08403     0, 0, 0, 0, 0, 0, 0, 0,
08404     0, 0, 0, 0, 0, 0, 0, 0,
08405     0, 0, 0, 0, 0, 0, 0, 0,
08406     0, 0, 0, 0, 0, 0, 0, 0,
08407     0, 0, 0, 0, 0, 0, 0, 0,
08408     0, 0, 0, 0, 0, 0, 0, 0,
08409     0, 0, 0, 0, 0, 0, 0, 0,
08410     0, 0, 0, 0, 0, 0, 0, 0,
08411     0, 0, 0, 0, 0, 0, 0, 0,
08412     0, 0, 0, 0, 0, 0, 0, 0,
08413     0, 0, 0, 0, 0, 0, 0, 0,
08414     0, 0, 0, 0, 0, 0, 0, 0,
08415     0, 0, 0, 0, 0, 0, 0, 0,
08416     0, 0, 0, 0, 0, 0, 0, 0,
08417     0, 0, 0, 0, 0, 0, 0, 0,
08418     0, 0, 0, 0, 0, 0, 0, 0,
08419     0, 0, 0, 0, 0, 0, 0, 0,
08420     0, 0, 0, 0, 0, 0, 0, 0,
08421     1213, 0, 1215, 0, 1217, 0, 0, 0,
08422     0, 0, 0, 0, 0, 0, 0, 0,
08423     0, 0, 0, 0, 0, 0, 0, 0,
08424     0, 0, 0, 0, 0, 0, 0, 0,
08425     0, 0, 0, 0, 0, 0, 0, 0,
08426     0, 0, 0, 0, 0, 0, 0, 0,
08427     0, 0, 0, 0, 0, 0, 0, 0,
08428     0, 0, 0, 0, 0, 0, 0, 0,
08429     1219, 0, 1221, 0, 1223, 0, 0, 0,
08430     0, 0, 0, 0, 0, 0, 0, 0,
08431     0, 0, 0, 0, 0, 0, 0, 0,
08432     0, 0, 0, 0, 0, 0, 0, 0,
08433     0, 0, 0, 0, 0, 0, 0, 0,
08434     0, 0, 0, 0, 0, 0, 0, 0,
08435 };
08436 
08437 static const Q_UINT16 li_22[] = {
08438     0, 0, 0, 1225, 0, 0, 0, 0,
08439     1227, 0, 0, 1229, 0, 0, 0, 0,
08440     0, 0, 0, 0, 0, 0, 0, 0,
08441     0, 0, 0, 0, 0, 0, 0, 0,
08442     0, 0, 0, 1231, 0, 1233, 0, 0,
08443     0, 0, 0, 0, 0, 0, 0, 0,
08444     0, 0, 0, 0, 0, 0, 0, 0,
08445     0, 0, 0, 0, 1235, 0, 0, 0,
08446     0, 0, 0, 1237, 0, 1239, 0, 0,
08447     1241, 0, 0, 0, 0, 1243, 0, 0,
08448     0, 0, 0, 0, 0, 0, 0, 0,
08449     0, 0, 0, 0, 0, 0, 0, 0,
08450     0, 1245, 0, 0, 1247, 1249, 0, 0,
08451     0, 0, 0, 0, 0, 0, 0, 0,
08452     0, 0, 1251, 1253, 0, 0, 1255, 1257,
08453     0, 0, 1259, 1261, 1263, 1265, 0, 0,
08454     0, 0, 1267, 1269, 0, 0, 1271, 1273,
08455     0, 0, 0, 0, 0, 0, 0, 0,
08456     0, 1275, 1277, 0, 0, 0, 0, 0,
08457     0, 0, 0, 0, 0, 0, 0, 0,
08458     0, 0, 1279, 0, 0, 0, 0, 0,
08459     1281, 1283, 0, 1285, 0, 0, 0, 0,
08460     0, 0, 1287, 1289, 1291, 1293, 0, 0,
08461     0, 0, 0, 0, 0, 0, 0, 0,
08462     0, 0, 0, 0, 0, 0, 0, 0,
08463     0, 0, 0, 0, 0, 0, 0, 0,
08464     0, 0, 0, 0, 0, 0, 0, 0,
08465     0, 0, 0, 0, 0, 0, 0, 0,
08466     0, 0, 0, 0, 0, 0, 0, 0,
08467     0, 0, 0, 0, 0, 0, 0, 0,
08468     0, 0, 0, 0, 0, 0, 0, 0,
08469     0, 0, 0, 0, 0, 0, 0, 0,
08470 };
08471 
08472 static const Q_UINT16 li_2A[] = {
08473     0, 0, 0, 0, 0, 0, 0, 0,
08474     0, 0, 0, 0, 0, 0, 0, 0,
08475     0, 0, 0, 0, 0, 0, 0, 0,
08476     0, 0, 0, 0, 0, 0, 0, 0,
08477     0, 0, 0, 0, 0, 0, 0, 0,
08478     0, 0, 0, 0, 0, 0, 0, 0,
08479     0, 0, 0, 0, 0, 0, 0, 0,
08480     0, 0, 0, 0, 0, 0, 0, 0,
08481     0, 0, 0, 0, 0, 0, 0, 0,
08482     0, 0, 0, 0, 0, 0, 0, 0,
08483     0, 0, 0, 0, 0, 0, 0, 0,
08484     0, 0, 0, 0, 0, 0, 0, 0,
08485     0, 0, 0, 0, 0, 0, 0, 0,
08486     0, 0, 0, 0, 0, 0, 0, 0,
08487     0, 0, 0, 0, 0, 0, 0, 0,
08488     0, 0, 0, 0, 0, 0, 0, 0,
08489     0, 0, 0, 0, 0, 0, 0, 0,
08490     0, 0, 0, 0, 0, 0, 0, 0,
08491     0, 0, 0, 0, 0, 0, 0, 0,
08492     0, 0, 0, 0, 0, 0, 0, 0,
08493     0, 0, 0, 0, 0, 0, 0, 0,
08494     0, 0, 0, 0, 0, 0, 0, 0,
08495     0, 0, 0, 0, 0, 0, 0, 0,
08496     0, 0, 0, 0, 0, 0, 0, 0,
08497     0, 0, 0, 0, 0, 0, 0, 0,
08498     0, 0, 0, 0, 0, 0, 0, 0,
08499     0, 0, 0, 0, 0, 0, 0, 0,
08500     0, 0, 0, 0, 0, 1295, 0, 0,
08501     0, 0, 0, 0, 0, 0, 0, 0,
08502     0, 0, 0, 0, 0, 0, 0, 0,
08503     0, 0, 0, 0, 0, 0, 0, 0,
08504     0, 0, 0, 0, 0, 0, 0, 0,
08505 };
08506 
08507 static const Q_UINT16 li_30[] = {
08508     0, 0, 0, 0, 0, 0, 0, 0,
08509     0, 0, 0, 0, 0, 0, 0, 0,
08510     0, 0, 0, 0, 0, 0, 0, 0,
08511     0, 0, 0, 0, 0, 0, 0, 0,
08512     0, 0, 0, 0, 0, 0, 0, 0,
08513     0, 0, 0, 0, 0, 0, 0, 0,
08514     0, 0, 0, 0, 0, 0, 0, 0,
08515     0, 0, 0, 0, 0, 0, 0, 0,
08516     0, 0, 0, 0, 0, 0, 1297, 0,
08517     0, 0, 0, 1299, 0, 1301, 0, 1303,
08518     0, 1305, 0, 1307, 0, 1309, 0, 1311,
08519     0, 1313, 0, 1315, 0, 1317, 0, 1319,
08520     0, 1321, 0, 0, 1323, 0, 1325, 0,
08521     1327, 0, 0, 0, 0, 0, 0, 1329,
08522     0, 0, 1332, 0, 0, 1335, 0, 0,
08523     1338, 0, 0, 1341, 0, 0, 0, 0,
08524     0, 0, 0, 0, 0, 0, 0, 0,
08525     0, 0, 0, 0, 0, 0, 0, 0,
08526     0, 0, 0, 0, 0, 0, 0, 0,
08527     0, 0, 0, 0, 0, 1344, 0, 0,
08528     0, 0, 0, 0, 0, 0, 1346, 0,
08529     0, 0, 0, 1348, 0, 1350, 0, 1352,
08530     0, 1354, 0, 1356, 0, 1358, 0, 1360,
08531     0, 1362, 0, 1364, 0, 1366, 0, 1368,
08532     0, 1370, 0, 0, 1372, 0, 1374, 0,
08533     1376, 0, 0, 0, 0, 0, 0, 1378,
08534     0, 0, 1381, 0, 0, 1384, 0, 0,
08535     1387, 0, 0, 1390, 0, 0, 0, 0,
08536     0, 0, 0, 0, 0, 0, 0, 0,
08537     0, 0, 0, 0, 0, 0, 0, 1393,
08538     1395, 1397, 1399, 0, 0, 0, 0, 0,
08539     0, 0, 0, 0, 0, 1401, 0, 0,
08540 };
08541 
08542 static const Q_UINT16 li_FB[] = {
08543     0, 0, 0, 0, 0, 0, 0, 0,
08544     0, 0, 0, 0, 0, 0, 0, 0,
08545     0, 0, 0, 0, 0, 0, 0, 0,
08546     0, 0, 0, 0, 0, 0, 0, 0,
08547     0, 0, 0, 0, 0, 0, 0, 0,
08548     0, 0, 0, 0, 0, 0, 0, 0,
08549     0, 0, 0, 0, 0, 0, 0, 0,
08550     0, 0, 0, 0, 0, 0, 0, 0,
08551     0, 0, 0, 0, 0, 0, 0, 0,
08552     0, 1403, 0, 0, 0, 0, 0, 0,
08553     0, 0, 0, 0, 0, 0, 0, 0,
08554     0, 0, 0, 0, 0, 0, 0, 0,
08555     0, 0, 0, 0, 0, 0, 0, 0,
08556     0, 0, 0, 0, 0, 0, 0, 0,
08557     0, 0, 0, 0, 0, 0, 0, 0,
08558     0, 0, 0, 0, 0, 0, 0, 0,
08559     0, 0, 0, 0, 0, 0, 0, 0,
08560     0, 0, 0, 0, 0, 0, 0, 0,
08561     0, 0, 0, 0, 0, 0, 0, 0,
08562     0, 0, 0, 0, 0, 0, 0, 0,
08563     0, 0, 0, 0, 0, 0, 0, 0,
08564     0, 0, 0, 0, 0, 0, 0, 0,
08565     0, 0, 0, 0, 0, 0, 0, 0,
08566     0, 0, 0, 0, 0, 0, 0, 0,
08567     0, 0, 0, 0, 0, 0, 0, 0,
08568     0, 0, 0, 0, 0, 0, 0, 0,
08569     0, 0, 0, 0, 0, 0, 0, 0,
08570     0, 0, 0, 0, 0, 0, 0, 0,
08571     0, 0, 0, 0, 0, 0, 0, 0,
08572     0, 0, 0, 0, 0, 0, 0, 0,
08573     0, 0, 0, 0, 0, 0, 0, 0,
08574     0, 0, 0, 0, 0, 0, 0, 0,
08575 };
08576 
08577 static const Q_UINT16 * const ligature_info[256] = {
08578     li_00, li_01, li_02, li_03, li_04, li_05, li_06, li_07,
08579     li_07, li_09, li_0A, li_0B, li_0C, li_0D, li_07, li_0F,
08580     li_10, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08581     li_07, li_07, li_07, li_07, li_07, li_07, li_1E, li_1F,
08582     li_07, li_21, li_22, li_07, li_07, li_07, li_07, li_07,
08583     li_07, li_07, li_2A, li_07, li_07, li_07, li_07, li_07,
08584     li_30, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08585     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08586     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08587     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08588     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08589     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08590     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08591     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08592     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08593     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08594     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08595     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08596     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08597     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08598     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08599     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08600     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08601     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08602     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08603     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08604     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08605     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08606     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08607     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08608     li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
08609     li_07, li_07, li_07, li_FB, li_07, li_07, li_07, li_07,
08610 };
08611 // 15098 bytes
08612 
08613 static const Q_UINT8 dir_00[] = {
08614     18, 18, 18, 18, 18, 18, 18, 18,
08615     18, 8, 7, 8, 9, 7, 18, 18,
08616     18, 18, 18, 18, 18, 18, 18, 18,
08617     18, 18, 18, 18, 7, 7, 7, 8,
08618     9, 10, 10, 4, 4, 4, 10, 10,
08619     138, 138, 10, 4, 6, 4, 6, 3,
08620     2, 2, 2, 2, 2, 2, 2, 2,
08621     2, 2, 6, 10, 138, 10, 138, 10,
08622     10, 0, 0, 0, 0, 0, 0, 0,
08623     0, 0, 0, 0, 0, 0, 0, 0,
08624     0, 0, 0, 0, 0, 0, 0, 0,
08625     0, 0, 0, 138, 10, 138, 10, 10,
08626     10, 0, 0, 0, 0, 0, 0, 0,
08627     0, 0, 0, 0, 0, 0, 0, 0,
08628     0, 0, 0, 0, 0, 0, 0, 0,
08629     0, 0, 0, 138, 10, 138, 10, 18,
08630     18, 18, 18, 18, 18, 7, 18, 18,
08631     18, 18, 18, 18, 18, 18, 18, 18,
08632     18, 18, 18, 18, 18, 18, 18, 18,
08633     18, 18, 18, 18, 18, 18, 18, 18,
08634     6, 10, 4, 4, 4, 4, 10, 10,
08635     10, 10, 0, 138, 10, 10, 10, 10,
08636     4, 4, 2, 2, 10, 0, 10, 10,
08637     10, 2, 0, 138, 10, 10, 10, 10,
08638     0, 0, 0, 0, 0, 0, 0, 0,
08639     0, 0, 0, 0, 0, 0, 0, 0,
08640     0, 0, 0, 0, 0, 0, 0, 10,
08641     0, 0, 0, 0, 0, 0, 0, 0,
08642     0, 0, 0, 0, 0, 0, 0, 0,
08643     0, 0, 0, 0, 0, 0, 0, 0,
08644     0, 0, 0, 0, 0, 0, 0, 10,
08645     0, 0, 0, 0, 0, 0, 0, 0,
08646 };
08647 
08648 static const Q_UINT8 dir_01[] = {
08649     0, 0, 0, 0, 0, 0, 0, 0,
08650     0, 0, 0, 0, 0, 0, 0, 0,
08651     0, 0, 0, 0, 0, 0, 0, 0,
08652     0, 0, 0, 0, 0, 0, 0, 0,
08653     0, 0, 0, 0, 0, 0, 0, 0,
08654     0, 0, 0, 0, 0, 0, 0, 0,
08655     0, 0, 0, 0, 0, 0, 0, 0,
08656     0, 0, 0, 0, 0, 0, 0, 0,
08657     0, 0, 0, 0, 0, 0, 0, 0,
08658     0, 0, 0, 0, 0, 0, 0, 0,
08659     0, 0, 0, 0, 0, 0, 0, 0,
08660     0, 0, 0, 0, 0, 0, 0, 0,
08661     0, 0, 0, 0, 0, 0, 0, 0,
08662     0, 0, 0, 0, 0, 0, 0, 0,
08663     0, 0, 0, 0, 0, 0, 0, 0,
08664     0, 0, 0, 0, 0, 0, 0, 0,
08665     0, 0, 0, 0, 0, 0, 0, 0,
08666     0, 0, 0, 0, 0, 0, 0, 0,
08667     0, 0, 0, 0, 0, 0, 0, 0,
08668     0, 0, 0, 0, 0, 0, 0, 0,
08669     0, 0, 0, 0, 0, 0, 0, 0,
08670     0, 0, 0, 0, 0, 0, 0, 0,
08671     0, 0, 0, 0, 0, 0, 0, 0,
08672     0, 0, 0, 0, 0, 0, 0, 0,
08673     0, 0, 0, 0, 0, 0, 0, 0,
08674     0, 0, 0, 0, 0, 0, 0, 0,
08675     0, 0, 0, 0, 0, 0, 0, 0,
08676     0, 0, 0, 0, 0, 0, 0, 0,
08677     0, 0, 0, 0, 0, 0, 0, 0,
08678     0, 0, 0, 0, 0, 0, 0, 0,
08679     0, 0, 0, 0, 0, 0, 0, 0,
08680     0, 0, 0, 0, 0, 0, 0, 0,
08681 };
08682 
08683 static const Q_UINT8 dir_02[] = {
08684     0, 0, 0, 0, 0, 0, 0, 0,
08685     0, 0, 0, 0, 0, 0, 0, 0,
08686     0, 0, 0, 0, 0, 0, 0, 0,
08687     0, 0, 0, 0, 0, 0, 0, 0,
08688     0, 0, 0, 0, 0, 0, 0, 0,
08689     0, 0, 0, 0, 0, 0, 0, 0,
08690     0, 0, 0, 0, 0, 0, 0, 0,
08691     0, 0, 0, 0, 0, 0, 0, 0,
08692     0, 0, 0, 0, 0, 0, 0, 0,
08693     0, 0, 0, 0, 0, 0, 0, 0,
08694     0, 0, 0, 0, 0, 0, 0, 0,
08695     0, 0, 0, 0, 0, 0, 0, 0,
08696     0, 0, 0, 0, 0, 0, 0, 0,
08697     0, 0, 0, 0, 0, 0, 0, 0,
08698     0, 0, 0, 0, 0, 0, 0, 0,
08699     0, 0, 0, 0, 0, 0, 0, 0,
08700     0, 0, 0, 0, 0, 0, 0, 0,
08701     0, 0, 0, 0, 0, 0, 0, 0,
08702     0, 0, 0, 0, 0, 0, 0, 0,
08703     0, 0, 0, 0, 0, 0, 0, 0,
08704     0, 0, 0, 0, 0, 0, 0, 0,
08705     0, 0, 0, 0, 0, 0, 0, 0,
08706     0, 0, 0, 0, 0, 0, 0, 0,
08707     0, 10, 10, 0, 0, 0, 0, 0,
08708     0, 0, 10, 10, 10, 10, 10, 10,
08709     10, 10, 10, 10, 10, 10, 10, 10,
08710     0, 0, 10, 10, 10, 10, 10, 10,
08711     10, 10, 10, 10, 10, 10, 10, 10,
08712     0, 0, 0, 0, 0, 10, 10, 10,
08713     10, 10, 10, 10, 10, 10, 0, 0,
08714     0, 0, 0, 0, 0, 0, 0, 0,
08715     0, 0, 0, 0, 0, 0, 0, 0,
08716 };
08717 
08718 static const Q_UINT8 dir_03[] = {
08719     17, 17, 17, 17, 17, 17, 17, 17,
08720     17, 17, 17, 17, 17, 17, 17, 17,
08721     17, 17, 17, 17, 17, 17, 17, 17,
08722     17, 17, 17, 17, 17, 17, 17, 17,
08723     17, 17, 17, 17, 17, 17, 17, 17,
08724     17, 17, 17, 17, 17, 17, 17, 17,
08725     17, 17, 17, 17, 17, 17, 17, 17,
08726     17, 17, 17, 17, 17, 17, 17, 17,
08727     17, 17, 17, 17, 17, 17, 17, 17,
08728     17, 17, 17, 17, 17, 17, 17, 17,
08729     0, 0, 0, 0, 0, 0, 0, 0,
08730     0, 0, 0, 0, 0, 0, 0, 0,
08731     17, 17, 17, 17, 17, 17, 17, 17,
08732     17, 17, 17, 17, 17, 17, 17, 17,
08733     0, 0, 0, 0, 10, 10, 0, 0,
08734     0, 0, 0, 0, 0, 0, 10, 0,
08735     0, 0, 0, 0, 10, 10, 0, 10,
08736     0, 0, 0, 0, 0, 0, 0, 0,
08737     0, 0, 0, 0, 0, 0, 0, 0,
08738     0, 0, 0, 0, 0, 0, 0, 0,
08739     0, 0, 0, 0, 0, 0, 0, 0,
08740     0, 0, 0, 0, 0, 0, 0, 0,
08741     0, 0, 0, 0, 0, 0, 0, 0,
08742     0, 0, 0, 0, 0, 0, 0, 0,
08743     0, 0, 0, 0, 0, 0, 0, 0,
08744     0, 0, 0, 0, 0, 0, 0, 0,
08745     0, 0, 0, 0, 0, 0, 0, 0,
08746     0, 0, 0, 0, 0, 0, 0, 0,
08747     0, 0, 0, 0, 0, 0, 0, 0,
08748     0, 0, 0, 0, 0, 0, 0, 0,
08749     0, 0, 0, 0, 0, 0, 10, 0,
08750     0, 0, 0, 0, 0, 0, 0, 0,
08751 };
08752 
08753 static const Q_UINT8 dir_04[] = {
08754     0, 0, 0, 0, 0, 0, 0, 0,
08755     0, 0, 0, 0, 0, 0, 0, 0,
08756     0, 0, 0, 0, 0, 0, 0, 0,
08757     0, 0, 0, 0, 0, 0, 0, 0,
08758     0, 0, 0, 0, 0, 0, 0, 0,
08759     0, 0, 0, 0, 0, 0, 0, 0,
08760     0, 0, 0, 0, 0, 0, 0, 0,
08761     0, 0, 0, 0, 0, 0, 0, 0,
08762     0, 0, 0, 0, 0, 0, 0, 0,
08763     0, 0, 0, 0, 0, 0, 0, 0,
08764     0, 0, 0, 0, 0, 0, 0, 0,
08765     0, 0, 0, 0, 0, 0, 0, 0,
08766     0, 0, 0, 0, 0, 0, 0, 0,
08767     0, 0, 0, 0, 0, 0, 0, 0,
08768     0, 0, 0, 0, 0, 0, 0, 0,
08769     0, 0, 0, 0, 0, 0, 0, 0,
08770     0, 0, 0, 17, 17, 17, 17, 0,
08771     17, 17, 0, 0, 0, 0, 0, 0,
08772     0, 0, 0, 0, 0, 0, 0, 0,
08773     0, 0, 0, 0, 0, 0, 0, 0,
08774     0, 0, 0, 0, 0, 0, 0, 0,
08775     0, 0, 0, 0, 0, 0, 0, 0,
08776     0, 0, 0, 0, 0, 0, 0, 0,
08777     0, 0, 0, 0, 0, 0, 0, 0,
08778     0, 0, 0, 0, 0, 0, 0, 0,
08779     0, 0, 0, 0, 0, 0, 0, 0,
08780     0, 0, 0, 0, 0, 0, 0, 0,
08781     0, 0, 0, 0, 0, 0, 0, 0,
08782     0, 0, 0, 0, 0, 0, 0, 0,
08783     0, 0, 0, 0, 0, 0, 0, 0,
08784     0, 0, 0, 0, 0, 0, 0, 0,
08785     0, 0, 0, 0, 0, 0, 0, 0,
08786 };
08787 
08788 static const Q_UINT8 dir_05[] = {
08789     0, 0, 0, 0, 0, 0, 0, 0,
08790     0, 0, 0, 0, 0, 0, 0, 0,
08791     0, 0, 0, 0, 0, 0, 0, 0,
08792     0, 0, 0, 0, 0, 0, 0, 0,
08793     0, 0, 0, 0, 0, 0, 0, 0,
08794     0, 0, 0, 0, 0, 0, 0, 0,
08795     0, 0, 0, 0, 0, 0, 0, 0,
08796     0, 0, 0, 0, 0, 0, 0, 0,
08797     0, 0, 0, 0, 0, 0, 0, 0,
08798     0, 0, 0, 0, 0, 0, 0, 0,
08799     0, 0, 0, 0, 0, 0, 0, 0,
08800     0, 0, 0, 0, 0, 0, 0, 0,
08801     0, 0, 0, 0, 0, 0, 0, 0,
08802     0, 0, 0, 0, 0, 0, 0, 0,
08803     0, 0, 0, 0, 0, 0, 0, 0,
08804     0, 0, 0, 0, 0, 0, 0, 0,
08805     0, 0, 0, 0, 0, 0, 0, 0,
08806     0, 0, 10, 0, 0, 0, 0, 0,
08807     0, 17, 17, 17, 17, 17, 17, 17,
08808     17, 17, 17, 17, 17, 17, 17, 17,
08809     17, 17, 0, 17, 17, 17, 17, 17,
08810     17, 17, 17, 17, 17, 17, 17, 17,
08811     17, 17, 17, 17, 17, 17, 17, 17,
08812     17, 17, 0, 17, 17, 17, 1, 17,
08813     1, 17, 17, 1, 17, 0, 0, 0,
08814     0, 0, 0, 0, 0, 0, 0, 0,
08815     1, 1, 1, 1, 1, 1, 1, 1,
08816     1, 1, 1, 1, 1, 1, 1, 1,
08817     1, 1, 1, 1, 1, 1, 1, 1,
08818     1, 1, 1, 0, 0, 0, 0, 0,
08819     1, 1, 1, 1, 1, 0, 0, 0,
08820     0, 0, 0, 0, 0, 0, 0, 0,
08821 };
08822 
08823 static const Q_UINT8 dir_06[] = {
08824     0, 0, 0, 0, 0, 0, 0, 0,
08825     0, 0, 0, 0, 6, 0, 0, 0,
08826     0, 0, 0, 0, 0, 0, 0, 0,
08827     0, 0, 0, 13, 0, 0, 0, 13,
08828     0, 13, 77, 77, 77, 77, 45, 77,
08829     45, 77, 45, 45, 45, 45, 45, 77,
08830     77, 77, 77, 45, 45, 45, 45, 45,
08831     45, 45, 45, 0, 0, 0, 0, 0,
08832     109, 45, 45, 45, 45, 45, 45, 45,
08833     77, 45, 45, 17, 17, 17, 17, 17,
08834     17, 17, 17, 17, 17, 17, 0, 0,
08835     0, 0, 0, 0, 0, 0, 0, 0,
08836     5, 5, 5, 5, 5, 5, 5, 5,
08837     5, 5, 4, 5, 5, 13, 45, 45,
08838     17, 77, 77, 77, 13, 77, 77, 77,
08839     45, 45, 45, 45, 45, 45, 45, 45,
08840     45, 45, 45, 45, 45, 45, 45, 45,
08841     77, 77, 77, 77, 77, 77, 77, 77,
08842     77, 77, 77, 77, 77, 77, 77, 77,
08843     77, 77, 45, 45, 45, 45, 45, 45,
08844     45, 45, 45, 45, 45, 45, 45, 45,
08845     45, 45, 45, 45, 45, 45, 45, 45,
08846     45, 45, 45, 45, 45, 45, 45, 45,
08847     45, 45, 45, 45, 45, 45, 45, 45,
08848     77, 45, 77, 77, 77, 77, 77, 77,
08849     77, 77, 77, 77, 45, 77, 45, 77,
08850     45, 45, 77, 77, 13, 77, 17, 17,
08851     17, 17, 17, 17, 17, 13, 17, 17,
08852     17, 17, 17, 17, 17, 13, 13, 17,
08853     17, 10, 17, 17, 17, 17, 0, 0,
08854     2, 2, 2, 2, 2, 2, 2, 2,
08855     2, 2, 45, 45, 45, 13, 13, 0,
08856 };
08857 
08858 static const Q_UINT8 dir_07[] = {
08859     13, 13, 13, 13, 13, 13, 13, 13,
08860     13, 13, 13, 13, 13, 13, 0, 18,
08861     77, 17, 45, 45, 45, 77, 77, 77,
08862     77, 77, 45, 45, 45, 45, 77, 45,
08863     45, 45, 45, 45, 45, 45, 45, 45,
08864     77, 45, 77, 45, 77, 0, 0, 0,
08865     17, 17, 17, 17, 17, 17, 17, 17,
08866     17, 17, 17, 17, 17, 17, 17, 17,
08867     17, 17, 17, 17, 17, 17, 17, 17,
08868     17, 17, 17, 0, 0, 0, 0, 0,
08869     0, 0, 0, 0, 0, 0, 0, 0,
08870     0, 0, 0, 0, 0, 0, 0, 0,
08871     0, 0, 0, 0, 0, 0, 0, 0,
08872     0, 0, 0, 0, 0, 0, 0, 0,
08873     0, 0, 0, 0, 0, 0, 0, 0,
08874     0, 0, 0, 0, 0, 0, 0, 0,
08875     13, 13, 13, 13, 13, 13, 13, 13,
08876     13, 13, 13, 13, 13, 13, 13, 13,
08877     13, 13, 13, 13, 13, 13, 13, 13,
08878     13, 13, 13, 13, 13, 13, 13, 13,
08879     13, 13, 13, 13, 13, 13, 17, 17,
08880     17, 17, 17, 17, 17, 17, 17, 17,
08881     17, 13, 0, 0, 0, 0, 0, 0,
08882     0, 0, 0, 0, 0, 0, 0, 0,
08883     0, 0, 0, 0, 0, 0, 0, 0,
08884     0, 0, 0, 0, 0, 0, 0, 0,
08885     0, 0, 0, 0, 0, 0, 0, 0,
08886     0, 0, 0, 0, 0, 0, 0, 0,
08887     0, 0, 0, 0, 0, 0, 0, 0,
08888     0, 0, 0, 0, 0, 0, 0, 0,
08889     0, 0, 0, 0, 0, 0, 0, 0,
08890     0, 0, 0, 0, 0, 0, 0, 0,
08891 };
08892 
08893 static const Q_UINT8 dir_09[] = {
08894     0, 17, 17, 0, 0, 0, 0, 0,
08895     0, 0, 0, 0, 0, 0, 0, 0,
08896     0, 0, 0, 0, 0, 0, 0, 0,
08897     0, 0, 0, 0, 0, 0, 0, 0,
08898     0, 0, 0, 0, 0, 0, 0, 0,
08899     0, 0, 0, 0, 0, 0, 0, 0,
08900     0, 0, 0, 0, 0, 0, 0, 0,
08901     0, 0, 0, 0, 17, 0, 0, 0,
08902     0, 17, 17, 17, 17, 17, 17, 17,
08903     17, 0, 0, 0, 0, 17, 0, 0,
08904     0, 17, 17, 17, 17, 0, 0, 0,
08905     0, 0, 0, 0, 0, 0, 0, 0,
08906     0, 0, 17, 17, 0, 0, 0, 0,
08907     0, 0, 0, 0, 0, 0, 0, 0,
08908     0, 0, 0, 0, 0, 0, 0, 0,
08909     0, 0, 0, 0, 0, 0, 0, 0,
08910     0, 17, 0, 0, 0, 0, 0, 0,
08911     0, 0, 0, 0, 0, 0, 0, 0,
08912     0, 0, 0, 0, 0, 0, 0, 0,
08913     0, 0, 0, 0, 0, 0, 0, 0,
08914     0, 0, 0, 0, 0, 0, 0, 0,
08915     0, 0, 0, 0, 0, 0, 0, 0,
08916     0, 0, 0, 0, 0, 0, 0, 0,
08917     0, 0, 0, 0, 17, 0, 0, 0,
08918     0, 17, 17, 17, 17, 0, 0, 0,
08919     0, 0, 0, 0, 0, 17, 0, 0,
08920     0, 0, 0, 0, 0, 0, 0, 0,
08921     0, 0, 0, 0, 0, 0, 0, 0,
08922     0, 0, 17, 17, 0, 0, 0, 0,
08923     0, 0, 0, 0, 0, 0, 0, 0,
08924     0, 0, 4, 4, 0, 0, 0, 0,
08925     0, 0, 0, 0, 0, 0, 0, 0,
08926 };
08927 
08928 static const Q_UINT8 dir_0A[] = {
08929     0, 0, 17, 0, 0, 0, 0, 0,
08930     0, 0, 0, 0, 0, 0, 0, 0,
08931     0, 0, 0, 0, 0, 0, 0, 0,
08932     0, 0, 0, 0, 0, 0, 0, 0,
08933     0, 0, 0, 0, 0, 0, 0, 0,
08934     0, 0, 0, 0, 0, 0, 0, 0,
08935     0, 0, 0, 0, 0, 0, 0, 0,
08936     0, 0, 0, 0, 17, 0, 0, 0,
08937     0, 17, 17, 0, 0, 0, 0, 17,
08938     17, 0, 0, 17, 17, 17, 0, 0,
08939     0, 0, 0, 0, 0, 0, 0, 0,
08940     0, 0, 0, 0, 0, 0, 0, 0,
08941     0, 0, 0, 0, 0, 0, 0, 0,
08942     0, 0, 0, 0, 0, 0, 0, 0,
08943     17, 17, 0, 0, 0, 0, 0, 0,
08944     0, 0, 0, 0, 0, 0, 0, 0,
08945     0, 17, 17, 0, 0, 0, 0, 0,
08946     0, 0, 0, 0, 0, 0, 0, 0,
08947     0, 0, 0, 0, 0, 0, 0, 0,
08948     0, 0, 0, 0, 0, 0, 0, 0,
08949     0, 0, 0, 0, 0, 0, 0, 0,
08950     0, 0, 0, 0, 0, 0, 0, 0,
08951     0, 0, 0, 0, 0, 0, 0, 0,
08952     0, 0, 0, 0, 17, 0, 0, 0,
08953     0, 17, 17, 17, 17, 17, 0, 17,
08954     17, 0, 0, 0, 0, 17, 0, 0,
08955     0, 0, 0, 0, 0, 0, 0, 0,
08956     0, 0, 0, 0, 0, 0, 0, 0,
08957     0, 0, 0, 0, 0, 0, 0, 0,
08958     0, 0, 0, 0, 0, 0, 0, 0,
08959     0, 0, 0, 0, 0, 0, 0, 0,
08960     0, 0, 0, 0, 0, 0, 0, 0,
08961 };
08962 
08963 static const Q_UINT8 dir_0B[] = {
08964     0, 17, 0, 0, 0, 0, 0, 0,
08965     0, 0, 0, 0, 0, 0, 0, 0,
08966     0, 0, 0, 0, 0, 0, 0, 0,
08967     0, 0, 0, 0, 0, 0, 0, 0,
08968     0, 0, 0, 0, 0, 0, 0, 0,
08969     0, 0, 0, 0, 0, 0, 0, 0,
08970     0, 0, 0, 0, 0, 0, 0, 0,
08971     0, 0, 0, 0, 17, 0, 0, 17,
08972     0, 17, 17, 17, 0, 0, 0, 0,
08973     0, 0, 0, 0, 0, 17, 0, 0,
08974     0, 0, 0, 0, 0, 0, 17, 0,
08975     0, 0, 0, 0, 0, 0, 0, 0,
08976     0, 0, 0, 0, 0, 0, 0, 0,
08977     0, 0, 0, 0, 0, 0, 0, 0,
08978     0, 0, 0, 0, 0, 0, 0, 0,
08979     0, 0, 0, 0, 0, 0, 0, 0,
08980     0, 0, 17, 0, 0, 0, 0, 0,
08981     0, 0, 0, 0, 0, 0, 0, 0,
08982     0, 0, 0, 0, 0, 0, 0, 0,
08983     0, 0, 0, 0, 0, 0, 0, 0,
08984     0, 0, 0, 0, 0, 0, 0, 0,
08985     0, 0, 0, 0, 0, 0, 0, 0,
08986     0, 0, 0, 0, 0, 0, 0, 0,
08987     0, 0, 0, 0, 0, 0, 0, 0,
08988     17, 0, 0, 0, 0, 0, 0, 0,
08989     0, 0, 0, 0, 0, 17, 0, 0,
08990     0, 0, 0, 0, 0, 0, 0, 0,
08991     0, 0, 0, 0, 0, 0, 0, 0,
08992     0, 0, 0, 0, 0, 0, 0, 0,
08993     0, 0, 0, 0, 0, 0, 0, 0,
08994     0, 0, 0, 0, 0, 0, 0, 0,
08995     0, 0, 0, 0, 0, 0, 0, 0,
08996 };
08997 
08998 static const Q_UINT8 dir_0C[] = {
08999     0, 0, 0, 0, 0, 0, 0, 0,
09000     0, 0, 0, 0, 0, 0, 0, 0,
09001     0, 0, 0, 0, 0, 0, 0, 0,
09002     0, 0, 0, 0, 0, 0, 0, 0,
09003     0, 0, 0, 0, 0, 0, 0, 0,
09004     0, 0, 0, 0, 0, 0, 0, 0,
09005     0, 0, 0, 0, 0, 0, 0, 0,
09006     0, 0, 0, 0, 0, 0, 17, 17,
09007     17, 0, 0, 0, 0, 0, 17, 17,
09008     17, 0, 17, 17, 17, 17, 0, 0,
09009     0, 0, 0, 0, 0, 17, 17, 0,
09010     0, 0, 0, 0, 0, 0, 0, 0,
09011     0, 0, 0, 0, 0, 0, 0, 0,
09012     0, 0, 0, 0, 0, 0, 0, 0,
09013     0, 0, 0, 0, 0, 0, 0, 0,
09014     0, 0, 0, 0, 0, 0, 0, 0,
09015     0, 0, 0, 0, 0, 0, 0, 0,
09016     0, 0, 0, 0, 0, 0, 0, 0,
09017     0, 0, 0, 0, 0, 0, 0, 0,
09018     0, 0, 0, 0, 0, 0, 0, 0,
09019     0, 0, 0, 0, 0, 0, 0, 0,
09020     0, 0, 0, 0, 0, 0, 0, 0,
09021     0, 0, 0, 0, 0, 0, 0, 0,
09022     0, 0, 0, 0, 0, 0, 0, 17,
09023     0, 0, 0, 0, 0, 0, 17, 0,
09024     0, 0, 0, 0, 17, 17, 0, 0,
09025     0, 0, 0, 0, 0, 0, 0, 0,
09026     0, 0, 0, 0, 0, 0, 0, 0,
09027     0, 0, 0, 0, 0, 0, 0, 0,
09028     0, 0, 0, 0, 0, 0, 0, 0,
09029     0, 0, 0, 0, 0, 0, 0, 0,
09030     0, 0, 0, 0, 0, 0, 0, 0,
09031 };
09032 
09033 static const Q_UINT8 dir_0D[] = {
09034     0, 0, 0, 0, 0, 0, 0, 0,
09035     0, 0, 0, 0, 0, 0, 0, 0,
09036     0, 0, 0, 0, 0, 0, 0, 0,
09037     0, 0, 0, 0, 0, 0, 0, 0,
09038     0, 0, 0, 0, 0, 0, 0, 0,
09039     0, 0, 0, 0, 0, 0, 0, 0,
09040     0, 0, 0, 0, 0, 0, 0, 0,
09041     0, 0, 0, 0, 0, 0, 0, 0,
09042     0, 17, 17, 17, 0, 0, 0, 0,
09043     0, 0, 0, 0, 0, 17, 0, 0,
09044     0, 0, 0, 0, 0, 0, 0, 0,
09045     0, 0, 0, 0, 0, 0, 0, 0,
09046     0, 0, 0, 0, 0, 0, 0, 0,
09047     0, 0, 0, 0, 0, 0, 0, 0,
09048     0, 0, 0, 0, 0, 0, 0, 0,
09049     0, 0, 0, 0, 0, 0, 0, 0,
09050     0, 0, 0, 0, 0, 0, 0, 0,
09051     0, 0, 0, 0, 0, 0, 0, 0,
09052     0, 0, 0, 0, 0, 0, 0, 0,
09053     0, 0, 0, 0, 0, 0, 0, 0,
09054     0, 0, 0, 0, 0, 0, 0, 0,
09055     0, 0, 0, 0, 0, 0, 0, 0,
09056     0, 0, 0, 0, 0, 0, 0, 0,
09057     0, 0, 0, 0, 0, 0, 0, 0,
09058     0, 0, 0, 0, 0, 0, 0, 0,
09059     0, 0, 17, 0, 0, 0, 0, 0,
09060     0, 0, 17, 17, 17, 0, 17, 0,
09061     0, 0, 0, 0, 0, 0, 0, 0,
09062     0, 0, 0, 0, 0, 0, 0, 0,
09063     0, 0, 0, 0, 0, 0, 0, 0,
09064     0, 0, 0, 0, 0, 0, 0, 0,
09065     0, 0, 0, 0, 0, 0, 0, 0,
09066 };
09067 
09068 static const Q_UINT8 dir_0E[] = {
09069     0, 0, 0, 0, 0, 0, 0, 0,
09070     0, 0, 0, 0, 0, 0, 0, 0,
09071     0, 0, 0, 0, 0, 0, 0, 0,
09072     0, 0, 0, 0, 0, 0, 0, 0,
09073     0, 0, 0, 0, 0, 0, 0, 0,
09074     0, 0, 0, 0, 0, 0, 0, 0,
09075     0, 17, 0, 0, 17, 17, 17, 17,
09076     17, 17, 17, 0, 0, 0, 0, 4,
09077     0, 0, 0, 0, 0, 0, 0, 17,
09078     17, 17, 17, 17, 17, 17, 17, 0,
09079     0, 0, 0, 0, 0, 0, 0, 0,
09080     0, 0, 0, 0, 0, 0, 0, 0,
09081     0, 0, 0, 0, 0, 0, 0, 0,
09082     0, 0, 0, 0, 0, 0, 0, 0,
09083     0, 0, 0, 0, 0, 0, 0, 0,
09084     0, 0, 0, 0, 0, 0, 0, 0,
09085     0, 0, 0, 0, 0, 0, 0, 0,
09086     0, 0, 0, 0, 0, 0, 0, 0,
09087     0, 0, 0, 0, 0, 0, 0, 0,
09088     0, 0, 0, 0, 0, 0, 0, 0,
09089     0, 0, 0, 0, 0, 0, 0, 0,
09090     0, 0, 0, 0, 0, 0, 0, 0,
09091     0, 17, 0, 0, 17, 17, 17, 17,
09092     17, 17, 0, 17, 17, 0, 0, 0,
09093     0, 0, 0, 0, 0, 0, 0, 0,
09094     17, 17, 17, 17, 17, 17, 0, 0,
09095     0, 0, 0, 0, 0, 0, 0, 0,
09096     0, 0, 0, 0, 0, 0, 0, 0,
09097     0, 0, 0, 0, 0, 0, 0, 0,
09098     0, 0, 0, 0, 0, 0, 0, 0,
09099     0, 0, 0, 0, 0, 0, 0, 0,
09100     0, 0, 0, 0, 0, 0, 0, 0,
09101 };
09102 
09103 static const Q_UINT8 dir_0F[] = {
09104     0, 0, 0, 0, 0, 0, 0, 0,
09105     0, 0, 0, 0, 0, 0, 0, 0,
09106     0, 0, 0, 0, 0, 0, 0, 0,
09107     17, 17, 0, 0, 0, 0, 0, 0,
09108     0, 0, 0, 0, 0, 0, 0, 0,
09109     0, 0, 0, 0, 0, 0, 0, 0,
09110     0, 0, 0, 0, 0, 17, 0, 17,
09111     0, 17, 10, 10, 10, 10, 0, 0,
09112     0, 0, 0, 0, 0, 0, 0, 0,
09113     0, 0, 0, 0, 0, 0, 0, 0,
09114     0, 0, 0, 0, 0, 0, 0, 0,
09115     0, 0, 0, 0, 0, 0, 0, 0,
09116     0, 0, 0, 0, 0, 0, 0, 0,
09117     0, 0, 0, 0, 0, 0, 0, 0,
09118     0, 17, 17, 17, 17, 17, 17, 17,
09119     17, 17, 17, 17, 17, 17, 17, 0,
09120     17, 17, 17, 17, 17, 0, 17, 17,
09121     0, 0, 0, 0, 0, 0, 0, 0,
09122     17, 17, 17, 17, 17, 17, 17, 17,
09123     0, 17, 17, 17, 17, 17, 17, 17,
09124     17, 17, 17, 17, 17, 17, 17, 17,
09125     17, 17, 17, 17, 17, 17, 17, 17,
09126     17, 17, 17, 17, 17, 17, 17, 17,
09127     17, 17, 17, 17, 17, 0, 0, 0,
09128     0, 0, 0, 0, 0, 0, 17, 0,
09129     0, 0, 0, 0, 0, 0, 0, 0,
09130     0, 0, 0, 0, 0, 0, 0, 0,
09131     0, 0, 0, 0, 0, 0, 0, 0,
09132     0, 0, 0, 0, 0, 0, 0, 0,
09133     0, 0, 0, 0, 0, 0, 0, 0,
09134     0, 0, 0, 0, 0, 0, 0, 0,
09135     0, 0, 0, 0, 0, 0, 0, 0,
09136 };
09137 
09138 static const Q_UINT8 dir_10[] = {
09139     0, 0, 0, 0, 0, 0, 0, 0,
09140     0, 0, 0, 0, 0, 0, 0, 0,
09141     0, 0, 0, 0, 0, 0, 0, 0,
09142     0, 0, 0, 0, 0, 0, 0, 0,
09143     0, 0, 0, 0, 0, 0, 0, 0,
09144     0, 0, 0, 0, 0, 17, 17, 17,
09145     17, 0, 17, 0, 0, 0, 17, 17,
09146     0, 17, 0, 0, 0, 0, 0, 0,
09147     0, 0, 0, 0, 0, 0, 0, 0,
09148     0, 0, 0, 0, 0, 0, 0, 0,
09149     0, 0, 0, 0, 0, 0, 0, 0,
09150     17, 17, 0, 0, 0, 0, 0, 0,
09151     0, 0, 0, 0, 0, 0, 0, 0,
09152     0, 0, 0, 0, 0, 0, 0, 0,
09153     0, 0, 0, 0, 0, 0, 0, 0,
09154     0, 0, 0, 0, 0, 0, 0, 0,
09155     0, 0, 0, 0, 0, 0, 0, 0,
09156     0, 0, 0, 0, 0, 0, 0, 0,
09157     0, 0, 0, 0, 0, 0, 0, 0,
09158     0, 0, 0, 0, 0, 0, 0, 0,
09159     0, 0, 0, 0, 0, 0, 0, 0,
09160     0, 0, 0, 0, 0, 0, 0, 0,
09161     0, 0, 0, 0, 0, 0, 0, 0,
09162     0, 0, 0, 0, 0, 0, 0, 0,
09163     0, 0, 0, 0, 0, 0, 0, 0,
09164     0, 0, 0, 0, 0, 0, 0, 0,
09165     0, 0, 0, 0, 0, 0, 0, 0,
09166     0, 0, 0, 0, 0, 0, 0, 0,
09167     0, 0, 0, 0, 0, 0, 0, 0,
09168     0, 0, 0, 0, 0, 0, 0, 0,
09169     0, 0, 0, 0, 0, 0, 0, 0,
09170     0, 0, 0, 0, 0, 0, 0, 0,
09171 };
09172 
09173 static const Q_UINT8 dir_16[] = {
09174     0, 0, 0, 0, 0, 0, 0, 0,
09175     0, 0, 0, 0, 0, 0, 0, 0,
09176     0, 0, 0, 0, 0, 0, 0, 0,
09177     0, 0, 0, 0, 0, 0, 0, 0,
09178     0, 0, 0, 0, 0, 0, 0, 0,
09179     0, 0, 0, 0, 0, 0, 0, 0,
09180     0, 0, 0, 0, 0, 0, 0, 0,
09181     0, 0, 0, 0, 0, 0, 0, 0,
09182     0, 0, 0, 0, 0, 0, 0, 0,
09183     0, 0, 0, 0, 0, 0, 0, 0,
09184     0, 0, 0, 0, 0, 0, 0, 0,
09185     0, 0, 0, 0, 0, 0, 0, 0,
09186     0, 0, 0, 0, 0, 0, 0, 0,
09187     0, 0, 0, 0, 0, 0, 0, 0,
09188     0, 0, 0, 0, 0, 0, 0, 0,
09189     0, 0, 0, 0, 0, 0, 0, 0,
09190     9, 0, 0, 0, 0, 0, 0, 0,
09191     0, 0, 0, 0, 0, 0, 0, 0,
09192     0, 0, 0, 0, 0, 0, 0, 0,
09193     0, 0, 0, 10, 10, 0, 0, 0,
09194     0, 0, 0, 0, 0, 0, 0, 0,
09195     0, 0, 0, 0, 0, 0, 0, 0,
09196     0, 0, 0, 0, 0, 0, 0, 0,
09197     0, 0, 0, 0, 0, 0, 0, 0,
09198     0, 0, 0, 0, 0, 0, 0, 0,
09199     0, 0, 0, 0, 0, 0, 0, 0,
09200     0, 0, 0, 0, 0, 0, 0, 0,
09201     0, 0, 0, 0, 0, 0, 0, 0,
09202     0, 0, 0, 0, 0, 0, 0, 0,
09203     0, 0, 0, 0, 0, 0, 0, 0,
09204     0, 0, 0, 0, 0, 0, 0, 0,
09205     0, 0, 0, 0, 0, 0, 0, 0,
09206 };
09207 
09208 static const Q_UINT8 dir_17[] = {
09209     0, 0, 0, 0, 0, 0, 0, 0,
09210     0, 0, 0, 0, 0, 0, 0, 0,
09211     0, 0, 17, 17, 17, 0, 0, 0,
09212     0, 0, 0, 0, 0, 0, 0, 0,
09213     0, 0, 0, 0, 0, 0, 0, 0,
09214     0, 0, 0, 0, 0, 0, 0, 0,
09215     0, 0, 17, 17, 17, 0, 0, 0,
09216     0, 0, 0, 0, 0, 0, 0, 0,
09217     0, 0, 0, 0, 0, 0, 0, 0,
09218     0, 0, 0, 0, 0, 0, 0, 0,
09219     0, 0, 17, 17, 0, 0, 0, 0,
09220     0, 0, 0, 0, 0, 0, 0, 0,
09221     0, 0, 0, 0, 0, 0, 0, 0,
09222     0, 0, 0, 0, 0, 0, 0, 0,
09223     0, 0, 17, 17, 0, 0, 0, 0,
09224     0, 0, 0, 0, 0, 0, 0, 0,
09225     0, 0, 0, 0, 0, 0, 0, 0,
09226     0, 0, 0, 0, 0, 0, 0, 0,
09227     0, 0, 0, 0, 0, 0, 0, 0,
09228     0, 0, 0, 0, 0, 0, 0, 0,
09229     0, 0, 0, 0, 0, 0, 0, 0,
09230     0, 0, 0, 0, 0, 0, 0, 0,
09231     0, 0, 0, 0, 0, 0, 0, 17,
09232     17, 17, 17, 17, 17, 17, 0, 0,
09233     0, 0, 0, 0, 0, 0, 17, 0,
09234     0, 17, 17, 17, 17, 17, 17, 17,
09235     17, 17, 17, 17, 0, 0, 0, 0,
09236     0, 0, 0, 4, 0, 0, 0, 0,
09237     0, 0, 0, 0, 0, 0, 0, 0,
09238     0, 0, 0, 0, 0, 0, 0, 0,
09239     0, 0, 0, 0, 0, 0, 0, 0,
09240     0, 0, 0, 0, 0, 0, 0, 0,
09241 };
09242 
09243 static const Q_UINT8 dir_18[] = {
09244     10, 10, 10, 10, 10, 10, 10, 10,
09245     10, 10, 10, 17, 17, 17, 18, 0,
09246     0, 0, 0, 0, 0, 0, 0, 0,
09247     0, 0, 0, 0, 0, 0, 0, 0,
09248     0, 0, 0, 0, 0, 0, 0, 0,
09249     0, 0, 0, 0, 0, 0, 0, 0,
09250     0, 0, 0, 0, 0, 0, 0, 0,
09251     0, 0, 0, 0, 0, 0, 0, 0,
09252     0, 0, 0, 0, 0, 0, 0, 0,
09253     0, 0, 0, 0, 0, 0, 0, 0,
09254     0, 0, 0, 0, 0, 0, 0, 0,
09255     0, 0, 0, 0, 0, 0, 0, 0,
09256     0, 0, 0, 0, 0, 0, 0, 0,
09257     0, 0, 0, 0, 0, 0, 0, 0,
09258     0, 0, 0, 0, 0, 0, 0, 0,
09259     0, 0, 0, 0, 0, 0, 0, 0,
09260     0, 0, 0, 0, 0, 0, 0, 0,
09261     0, 0, 0, 0, 0, 0, 0, 0,
09262     0, 0, 0, 0, 0, 0, 0, 0,
09263     0, 0, 0, 0, 0, 0, 0, 0,
09264     0, 0, 0, 0, 0, 0, 0, 0,
09265     0, 17, 0, 0, 0, 0, 0, 0,
09266     0, 0, 0, 0, 0, 0, 0, 0,
09267     0, 0, 0, 0, 0, 0, 0, 0,
09268     0, 0, 0, 0, 0, 0, 0, 0,
09269     0, 0, 0, 0, 0, 0, 0, 0,
09270     0, 0, 0, 0, 0, 0, 0, 0,
09271     0, 0, 0, 0, 0, 0, 0, 0,
09272     0, 0, 0, 0, 0, 0, 0, 0,
09273     0, 0, 0, 0, 0, 0, 0, 0,
09274     0, 0, 0, 0, 0, 0, 0, 0,
09275     0, 0, 0, 0, 0, 0, 0, 0,
09276 };
09277 
09278 static const Q_UINT8 dir_1F[] = {
09279     0, 0, 0, 0, 0, 0, 0, 0,
09280     0, 0, 0, 0, 0, 0, 0, 0,
09281     0, 0, 0, 0, 0, 0, 0, 0,
09282     0, 0, 0, 0, 0, 0, 0, 0,
09283     0, 0, 0, 0, 0, 0, 0, 0,
09284     0, 0, 0, 0, 0, 0, 0, 0,
09285     0, 0, 0, 0, 0, 0, 0, 0,
09286     0, 0, 0, 0, 0, 0, 0, 0,
09287     0, 0, 0, 0, 0, 0, 0, 0,
09288     0, 0, 0, 0, 0, 0, 0, 0,
09289     0, 0, 0, 0, 0, 0, 0, 0,
09290     0, 0, 0, 0, 0, 0, 0, 0,
09291     0, 0, 0, 0, 0, 0, 0, 0,
09292     0, 0, 0, 0, 0, 0, 0, 0,
09293     0, 0, 0, 0, 0, 0, 0, 0,
09294     0, 0, 0, 0, 0, 0, 0, 0,
09295     0, 0, 0, 0, 0, 0, 0, 0,
09296     0, 0, 0, 0, 0, 0, 0, 0,
09297     0, 0, 0, 0, 0, 0, 0, 0,
09298     0, 0, 0, 0, 0, 0, 0, 0,
09299     0, 0, 0, 0, 0, 0, 0, 0,
09300     0, 0, 0, 0, 0, 0, 0, 0,
09301     0, 0, 0, 0, 0, 0, 0, 0,
09302     0, 0, 0, 0, 0, 10, 0, 10,
09303     10, 10, 0, 0, 0, 0, 0, 0,
09304     0, 0, 0, 0, 0, 10, 10, 10,
09305     0, 0, 0, 0, 0, 0, 0, 0,
09306     0, 0, 0, 0, 0, 10, 10, 10,
09307     0, 0, 0, 0, 0, 0, 0, 0,
09308     0, 0, 0, 0, 0, 10, 10, 10,
09309     0, 0, 0, 0, 0, 0, 0, 0,
09310     0, 0, 0, 0, 0, 10, 10, 0,
09311 };
09312 
09313 static const Q_UINT8 dir_20[] = {
09314     9, 9, 9, 9, 9, 9, 9, 9,
09315     9, 9, 9, 18, 18, 114, 0, 1,
09316     10, 10, 10, 10, 10, 10, 10, 10,
09317     10, 10, 10, 10, 10, 10, 10, 10,
09318     10, 10, 10, 10, 10, 10, 10, 10,
09319     9, 7, 11, 14, 16, 12, 15, 9,
09320     4, 4, 4, 4, 4, 10, 10, 10,
09321     10, 138, 138, 10, 10, 10, 10, 10,
09322     10, 10, 10, 10, 10, 138, 138, 10,
09323     10, 10, 10, 10, 10, 10, 10, 10,
09324     10, 10, 10, 0, 0, 0, 0, 10,
09325     0, 0, 0, 0, 0, 0, 0, 9,
09326     18, 18, 18, 18, 0, 0, 0, 0,
09327     0, 0, 18, 18, 18, 18, 18, 18,
09328     2, 0, 0, 0, 2, 2, 2, 2,
09329     2, 2, 4, 4, 10, 138, 138, 0,
09330     2, 2, 2, 2, 2, 2, 2, 2,
09331     2, 2, 4, 4, 10, 138, 138, 0,
09332     0, 0, 0, 0, 0, 0, 0, 0,
09333     0, 0, 0, 0, 0, 0, 0, 0,
09334     4, 4, 4, 4, 4, 4, 4, 4,
09335     4, 4, 4, 4, 4, 4, 4, 4,
09336     4, 4, 0, 0, 0, 0, 0, 0,
09337     0, 0, 0, 0, 0, 0, 0, 0,
09338     0, 0, 0, 0, 0, 0, 0, 0,
09339     0, 0, 0, 0, 0, 0, 0, 0,
09340     17, 17, 17, 17, 17, 17, 17, 17,
09341     17, 17, 17, 17, 17, 17, 17, 17,
09342     17, 17, 17, 17, 17, 17, 17, 17,
09343     17, 17, 17, 0, 0, 0, 0, 0,
09344     0, 0, 0, 0, 0, 0, 0, 0,
09345     0, 0, 0, 0, 0, 0, 0, 0,
09346 };
09347 
09348 static const Q_UINT8 dir_21[] = {
09349     10, 10, 0, 10, 10, 10, 10, 0,
09350     10, 10, 0, 0, 0, 0, 0, 0,
09351     0, 0, 0, 0, 10, 0, 10, 10,
09352     10, 0, 0, 0, 0, 0, 10, 10,
09353     10, 10, 10, 10, 0, 10, 0, 10,
09354     0, 10, 0, 0, 0, 0, 4, 0,
09355     0, 0, 10, 0, 0, 0, 0, 0,
09356     0, 0, 10, 0, 0, 0, 0, 0,
09357     138, 10, 10, 10, 10, 0, 0, 0,
09358     0, 0, 10, 10, 0, 0, 0, 0,
09359     0, 0, 0, 10, 10, 10, 10, 10,
09360     10, 10, 10, 10, 10, 10, 10, 10,
09361     0, 0, 0, 0, 0, 0, 0, 0,
09362     0, 0, 0, 0, 0, 0, 0, 0,
09363     0, 0, 0, 0, 0, 0, 0, 0,
09364     0, 0, 0, 0, 0, 0, 0, 0,
09365     0, 0, 0, 0, 0, 0, 0, 0,
09366     0, 0, 0, 0, 0, 0, 0, 0,
09367     10, 10, 10, 10, 10, 10, 10, 10,
09368     10, 10, 10, 10, 10, 10, 10, 10,
09369     10, 10, 10, 10, 10, 10, 10, 10,
09370     10, 10, 10, 10, 10, 10, 10, 10,
09371     10, 10, 10, 10, 10, 10, 10, 10,
09372     10, 10, 10, 10, 10, 10, 10, 10,
09373     10, 10, 10, 10, 10, 10, 10, 10,
09374     10, 10, 10, 10, 10, 10, 10, 10,
09375     10, 10, 10, 10, 10, 10, 10, 10,
09376     10, 10, 10, 10, 10, 10, 10, 10,
09377     10, 10, 10, 10, 10, 10, 10, 10,
09378     10, 10, 10, 10, 10, 10, 10, 10,
09379     10, 10, 10, 10, 10, 10, 10, 10,
09380     10, 10, 10, 10, 10, 10, 10, 10,
09381 };
09382 
09383 static const Q_UINT8 dir_22[] = {
09384     10, 138, 138, 138, 138, 10, 10, 10,
09385     138, 138, 138, 138, 138, 138, 10, 10,
09386     10, 138, 4, 4, 10, 138, 138, 10,
09387     10, 10, 138, 138, 138, 138, 10, 138,
09388     138, 138, 138, 10, 138, 10, 138, 10,
09389     10, 10, 10, 138, 138, 138, 138, 138,
09390     138, 138, 138, 138, 10, 10, 10, 10,
09391     10, 138, 10, 138, 138, 138, 138, 138,
09392     138, 138, 138, 138, 138, 138, 138, 138,
09393     138, 138, 138, 138, 138, 10, 10, 10,
09394     10, 10, 138, 138, 138, 138, 10, 10,
09395     10, 10, 10, 10, 10, 10, 10, 138,
09396     138, 10, 138, 10, 138, 138, 138, 138,
09397     138, 138, 138, 138, 10, 10, 138, 138,
09398     138, 138, 138, 138, 138, 138, 138, 138,
09399     138, 138, 138, 138, 138, 138, 138, 138,
09400     138, 138, 138, 138, 138, 138, 138, 138,
09401     138, 138, 138, 138, 138, 10, 10, 138,
09402     138, 138, 138, 10, 10, 10, 10, 10,
09403     138, 10, 10, 10, 10, 10, 10, 10,
09404     10, 10, 138, 138, 10, 10, 138, 138,
09405     138, 138, 138, 138, 138, 138, 138, 138,
09406     138, 138, 138, 138, 138, 138, 138, 138,
09407     138, 10, 10, 10, 10, 10, 138, 138,
09408     10, 10, 10, 10, 10, 10, 10, 10,
09409     10, 138, 138, 138, 138, 138, 10, 10,
09410     138, 138, 10, 10, 10, 10, 138, 138,
09411     138, 138, 138, 138, 138, 138, 138, 138,
09412     138, 138, 138, 138, 138, 138, 138, 138,
09413     138, 138, 138, 138, 138, 138, 10, 10,
09414     138, 138, 138, 138, 138, 138, 138, 138,
09415     138, 138, 138, 138, 138, 138, 138, 138,
09416 };
09417 
09418 static const Q_UINT8 dir_23[] = {
09419     10, 10, 10, 10, 10, 10, 10, 10,
09420     138, 138, 138, 138, 10, 10, 10, 10,
09421     10, 10, 10, 10, 10, 10, 10, 10,
09422     10, 10, 10, 10, 10, 10, 10, 10,
09423     138, 138, 10, 10, 10, 10, 10, 10,
09424     10, 138, 138, 10, 10, 10, 10, 10,
09425     10, 10, 10, 10, 10, 10, 0, 0,
09426     0, 0, 0, 0, 0, 0, 0, 0,
09427     0, 0, 0, 0, 0, 0, 0, 0,
09428     0, 0, 0, 0, 0, 0, 0, 0,
09429     0, 0, 0, 0, 0, 0, 0, 0,
09430     0, 0, 0, 0, 0, 0, 0, 0,
09431     0, 0, 0, 0, 0, 0, 0, 0,
09432     0, 0, 0, 0, 0, 0, 0, 0,
09433     0, 0, 0, 0, 0, 0, 0, 0,
09434     0, 0, 0, 10, 10, 10, 10, 10,
09435     10, 10, 10, 10, 10, 10, 10, 10,
09436     10, 10, 10, 10, 10, 10, 10, 10,
09437     10, 10, 10, 10, 10, 0, 10, 10,
09438     10, 10, 10, 10, 10, 10, 10, 10,
09439     10, 10, 10, 10, 10, 10, 10, 10,
09440     10, 10, 10, 10, 10, 10, 10, 10,
09441     10, 10, 10, 10, 10, 10, 10, 10,
09442     10, 10, 10, 10, 10, 10, 10, 10,
09443     10, 10, 10, 10, 10, 10, 10, 10,
09444     10, 10, 10, 10, 10, 10, 10, 0,
09445     0, 0, 0, 0, 0, 0, 0, 0,
09446     0, 0, 0, 0, 0, 0, 0, 0,
09447     0, 0, 0, 0, 0, 0, 0, 0,
09448     0, 0, 0, 0, 0, 0, 0, 0,
09449     0, 0, 0, 0, 0, 0, 0, 0,
09450     0, 0, 0, 0, 0, 0, 0, 0,
09451 };
09452 
09453 static const Q_UINT8 dir_24[] = {
09454     10, 10, 10, 10, 10, 10, 10, 10,
09455     10, 10, 10, 10, 10, 10, 10, 10,
09456     10, 10, 10, 10, 10, 10, 10, 10,
09457     10, 10, 10, 10, 10, 10, 10, 10,
09458     10, 10, 10, 10, 10, 10, 10, 0,
09459     0, 0, 0, 0, 0, 0, 0, 0,
09460     0, 0, 0, 0, 0, 0, 0, 0,
09461     0, 0, 0, 0, 0, 0, 0, 0,
09462     10, 10, 10, 10, 10, 10, 10, 10,
09463     10, 10, 10, 0, 0, 0, 0, 0,
09464     0, 0, 0, 0, 0, 0, 0, 0,
09465     0, 0, 0, 0, 0, 0, 0, 0,
09466     2, 2, 2, 2, 2, 2, 2, 2,
09467     2, 2, 2, 2, 2, 2, 2, 2,
09468     2, 2, 2, 2, 2, 2, 2, 2,
09469     2, 2, 2, 2, 2, 2, 2, 2,
09470     2, 2, 2, 2, 2, 2, 2, 2,
09471     2, 2, 2, 2, 2, 2, 2, 2,
09472     2, 2, 2, 2, 2, 2, 2, 2,
09473     2, 2, 2, 2, 0, 0, 0, 0,
09474     0, 0, 0, 0, 0, 0, 0, 0,
09475     0, 0, 0, 0, 0, 0, 0, 0,
09476     0, 0, 0, 0, 0, 0, 0, 0,
09477     0, 0, 0, 0, 0, 0, 0, 0,
09478     0, 0, 0, 0, 0, 0, 0, 0,
09479     0, 0, 0, 0, 0, 0, 0, 0,
09480     0, 0, 0, 0, 0, 0, 0, 0,
09481     0, 0, 0, 0, 0, 0, 0, 0,
09482     0, 0, 0, 0, 0, 0, 0, 0,
09483     0, 0, 2, 10, 10, 10, 10, 10,
09484     10, 10, 10, 10, 10, 10, 10, 10,
09485     10, 10, 10, 10, 10, 10, 10, 0,
09486 };
09487 
09488 static const Q_UINT8 dir_25[] = {
09489     10, 10, 10, 10, 10, 10, 10, 10,
09490     10, 10, 10, 10, 10, 10, 10, 10,
09491     10, 10, 10, 10, 10, 10, 10, 10,
09492     10, 10, 10, 10, 10, 10, 10, 10,
09493     10, 10, 10, 10, 10, 10, 10, 10,
09494     10, 10, 10, 10, 10, 10, 10, 10,
09495     10, 10, 10, 10, 10, 10, 10, 10,
09496     10, 10, 10, 10, 10, 10, 10, 10,
09497     10, 10, 10, 10, 10, 10, 10, 10,
09498     10, 10, 10, 10, 10, 10, 10, 10,
09499     10, 10, 10, 10, 10, 10, 10, 10,
09500     10, 10, 10, 10, 10, 10, 10, 10,
09501     10, 10, 10, 10, 10, 10, 10, 10,
09502     10, 10, 10, 10, 10, 10, 10, 10,
09503     10, 10, 10, 10, 10, 10, 10, 10,
09504     10, 10, 10, 10, 10, 10, 10, 10,
09505     10, 10, 10, 10, 10, 10, 10, 10,
09506     10, 10, 10, 10, 10, 10, 10, 10,
09507     10, 10, 10, 10, 10, 10, 10, 10,
09508     10, 10, 10, 10, 10, 10, 10, 10,
09509     10, 10, 10, 10, 10, 10, 10, 10,
09510     10, 10, 10, 10, 10, 10, 10, 10,
09511     10, 10, 10, 10, 10, 10, 10, 10,
09512     10, 10, 10, 10, 10, 10, 10, 10,
09513     10, 10, 10, 10, 10, 10, 10, 10,
09514     10, 10, 10, 10, 10, 10, 10, 10,
09515     10, 10, 10, 10, 10, 10, 10, 10,
09516     10, 10, 10, 10, 10, 10, 10, 10,
09517     10, 10, 10, 10, 10, 10, 10, 10,
09518     10, 10, 10, 10, 10, 10, 10, 10,
09519     10, 10, 10, 10, 10, 10, 10, 10,
09520     10, 10, 10, 10, 10, 10, 10, 10,
09521 };
09522 
09523 static const Q_UINT8 dir_26[] = {
09524     10, 10, 10, 10, 10, 10, 10, 10,
09525     10, 10, 10, 10, 10, 10, 10, 10,
09526     10, 10, 10, 10, 0, 0, 10, 10,
09527     0, 10, 10, 10, 10, 10, 10, 10,
09528     10, 10, 10, 10, 10, 10, 10, 10,
09529     10, 10, 10, 10, 10, 10, 10, 10,
09530     10, 10, 10, 10, 10, 10, 10, 10,
09531     10, 10, 10, 10, 10, 10, 10, 10,
09532     10, 10, 10, 10, 10, 10, 10, 10,
09533     10, 10, 10, 10, 10, 10, 10, 10,
09534     10, 10, 10, 10, 10, 10, 10, 10,
09535     10, 10, 10, 10, 10, 10, 10, 10,
09536     10, 10, 10, 10, 10, 10, 10, 10,
09537     10, 10, 10, 10, 10, 10, 10, 10,
09538     10, 10, 10, 10, 10, 10, 10, 10,
09539     10, 10, 10, 10, 10, 10, 0, 0,
09540     10, 10, 10, 10, 10, 10, 10, 10,
09541     10, 10, 0, 0, 0, 0, 0, 0,
09542     0, 0, 0, 0, 0, 0, 0, 0,
09543     0, 0, 0, 0, 0, 0, 0, 0,
09544     0, 0, 0, 0, 0, 0, 0, 0,
09545     0, 0, 0, 0, 0, 0, 0, 0,
09546     0, 0, 0, 0, 0, 0, 0, 0,
09547     0, 0, 0, 0, 0, 0, 0, 0,
09548     0, 0, 0, 0, 0, 0, 0, 0,
09549     0, 0, 0, 0, 0, 0, 0, 0,
09550     0, 0, 0, 0, 0, 0, 0, 0,
09551     0, 0, 0, 0, 0, 0, 0, 0,
09552     0, 0, 0, 0, 0, 0, 0, 0,
09553     0, 0, 0, 0, 0, 0, 0, 0,
09554     0, 0, 0, 0, 0, 0, 0, 0,
09555     0, 0, 0, 0, 0, 0, 0, 0,
09556 };
09557 
09558 static const Q_UINT8 dir_27[] = {
09559     0, 10, 10, 10, 10, 0, 10, 10,
09560     10, 10, 0, 0, 10, 10, 10, 10,
09561     10, 10, 10, 10, 10, 10, 10, 10,
09562     10, 10, 10, 10, 10, 10, 10, 10,
09563     10, 10, 10, 10, 10, 10, 10, 10,
09564     0, 10, 10, 10, 10, 10, 10, 10,
09565     10, 10, 10, 10, 10, 10, 10, 10,
09566     10, 10, 10, 10, 10, 10, 10, 10,
09567     10, 10, 10, 10, 10, 10, 10, 10,
09568     10, 10, 10, 10, 0, 10, 0, 10,
09569     10, 10, 10, 0, 0, 0, 10, 0,
09570     10, 10, 10, 10, 10, 10, 10, 0,
09571     0, 10, 10, 10, 10, 10, 10, 10,
09572     138, 138, 138, 138, 138, 138, 138, 138,
09573     138, 138, 138, 138, 138, 138, 10, 10,
09574     10, 10, 10, 10, 10, 10, 10, 10,
09575     10, 10, 10, 10, 10, 10, 10, 10,
09576     10, 10, 10, 10, 10, 10, 10, 10,
09577     10, 10, 10, 10, 10, 0, 0, 0,
09578     10, 10, 10, 10, 10, 10, 10, 10,
09579     10, 10, 10, 10, 10, 10, 10, 10,
09580     10, 10, 10, 10, 10, 10, 10, 10,
09581     0, 10, 10, 10, 10, 10, 10, 10,
09582     10, 10, 10, 10, 10, 10, 10, 0,
09583     0, 0, 0, 0, 0, 0, 0, 0,
09584     0, 0, 0, 0, 0, 0, 0, 0,
09585     10, 10, 10, 138, 138, 138, 138, 10,
09586     10, 10, 10, 10, 138, 138, 138, 10,
09587     10, 10, 138, 138, 138, 138, 138, 138,
09588     138, 138, 138, 138, 0, 0, 0, 0,
09589     10, 10, 10, 10, 10, 10, 10, 10,
09590     10, 10, 10, 10, 10, 10, 10, 10,
09591 };
09592 
09593 static const Q_UINT8 dir_29[] = {
09594     10, 10, 10, 10, 10, 10, 10, 10,
09595     10, 10, 10, 10, 10, 10, 10, 10,
09596     10, 10, 10, 10, 10, 10, 10, 10,
09597     10, 10, 10, 10, 10, 10, 10, 10,
09598     10, 10, 10, 10, 10, 10, 10, 10,
09599     10, 10, 10, 10, 10, 10, 10, 10,
09600     10, 10, 10, 10, 10, 10, 10, 10,
09601     10, 10, 10, 10, 10, 10, 10, 10,
09602     10, 10, 10, 10, 10, 10, 10, 10,
09603     10, 10, 10, 10, 10, 10, 10, 10,
09604     10, 10, 10, 10, 10, 10, 10, 10,
09605     10, 10, 10, 10, 10, 10, 10, 10,
09606     10, 10, 10, 10, 10, 10, 10, 10,
09607     10, 10, 10, 10, 10, 10, 10, 10,
09608     10, 10, 10, 10, 10, 10, 10, 10,
09609     10, 10, 10, 10, 10, 10, 10, 10,
09610     10, 10, 10, 138, 138, 138, 138, 138,
09611     138, 138, 138, 138, 138, 138, 138, 138,
09612     138, 138, 138, 138, 138, 138, 138, 138,
09613     138, 10, 10, 138, 138, 138, 138, 138,
09614     138, 138, 138, 138, 138, 138, 138, 138,
09615     138, 138, 138, 138, 138, 138, 138, 138,
09616     10, 10, 10, 10, 10, 10, 10, 10,
09617     138, 10, 10, 10, 10, 10, 10, 10,
09618     138, 138, 138, 138, 138, 138, 10, 10,
09619     10, 138, 10, 10, 10, 10, 138, 138,
09620     138, 138, 138, 10, 138, 138, 10, 10,
09621     138, 138, 138, 138, 138, 10, 10, 10,
09622     10, 138, 10, 138, 138, 138, 10, 10,
09623     138, 138, 10, 10, 10, 10, 10, 10,
09624     10, 10, 10, 10, 138, 138, 138, 138,
09625     138, 138, 10, 10, 138, 138, 10, 10,
09626 };
09627 
09628 static const Q_UINT8 dir_2A[] = {
09629     10, 10, 10, 10, 10, 10, 10, 10,
09630     10, 10, 138, 138, 138, 138, 138, 138,
09631     138, 138, 138, 138, 138, 138, 138, 138,
09632     138, 138, 138, 138, 138, 10, 138, 138,
09633     138, 138, 10, 10, 138, 10, 138, 10,
09634     10, 138, 10, 138, 138, 138, 138, 10,
09635     10, 10, 10, 10, 138, 138, 10, 10,
09636     10, 10, 10, 10, 138, 138, 138, 10,
09637     10, 10, 10, 10, 10, 10, 10, 10,
09638     10, 10, 10, 10, 10, 10, 10, 10,
09639     10, 10, 10, 10, 10, 10, 10, 138,
09640     138, 10, 10, 10, 10, 10, 10, 10,
09641     10, 10, 10, 10, 138, 138, 10, 10,
09642     10, 10, 138, 138, 138, 138, 10, 138,
09643     138, 10, 10, 138, 138, 10, 10, 10,
09644     10, 138, 138, 138, 138, 138, 138, 138,
09645     138, 138, 138, 138, 138, 138, 138, 138,
09646     138, 138, 138, 138, 138, 138, 138, 138,
09647     138, 138, 138, 138, 138, 138, 138, 138,
09648     138, 138, 138, 138, 138, 138, 138, 138,
09649     138, 138, 138, 138, 10, 10, 138, 138,
09650     138, 138, 138, 138, 138, 138, 10, 138,
09651     138, 138, 138, 138, 138, 138, 138, 138,
09652     138, 138, 138, 138, 138, 138, 138, 138,
09653     138, 138, 138, 138, 138, 138, 138, 138,
09654     138, 138, 138, 138, 138, 138, 138, 138,
09655     138, 138, 138, 138, 138, 138, 138, 10,
09656     10, 10, 10, 10, 138, 10, 138, 10,
09657     10, 10, 138, 138, 138, 138, 138, 10,
09658     10, 10, 10, 10, 138, 138, 138, 10,
09659     10, 10, 10, 138, 10, 10, 10, 138,
09660     138, 138, 138, 138, 10, 138, 10, 10,
09661 };
09662 
09663 static const Q_UINT8 dir_2E[] = {
09664     0, 0, 0, 0, 0, 0, 0, 0,
09665     0, 0, 0, 0, 0, 0, 0, 0,
09666     0, 0, 0, 0, 0, 0, 0, 0,
09667     0, 0, 0, 0, 0, 0, 0, 0,
09668     0, 0, 0, 0, 0, 0, 0, 0,
09669     0, 0, 0, 0, 0, 0, 0, 0,
09670     0, 0, 0, 0, 0, 0, 0, 0,
09671     0, 0, 0, 0, 0, 0, 0, 0,
09672     0, 0, 0, 0, 0, 0, 0, 0,
09673     0, 0, 0, 0, 0, 0, 0, 0,
09674     0, 0, 0, 0, 0, 0, 0, 0,
09675     0, 0, 0, 0, 0, 0, 0, 0,
09676     0, 0, 0, 0, 0, 0, 0, 0,
09677     0, 0, 0, 0, 0, 0, 0, 0,
09678     0, 0, 0, 0, 0, 0, 0, 0,
09679     0, 0, 0, 0, 0, 0, 0, 0,
09680     10, 10, 10, 10, 10, 10, 10, 10,
09681     10, 10, 10, 10, 10, 10, 10, 10,
09682     10, 10, 10, 10, 10, 10, 10, 10,
09683     10, 10, 0, 10, 10, 10, 10, 10,
09684     10, 10, 10, 10, 10, 10, 10, 10,
09685     10, 10, 10, 10, 10, 10, 10, 10,
09686     10, 10, 10, 10, 10, 10, 10, 10,
09687     10, 10, 10, 10, 10, 10, 10, 10,
09688     10, 10, 10, 10, 10, 10, 10, 10,
09689     10, 10, 10, 10, 10, 10, 10, 10,
09690     10, 10, 10, 10, 10, 10, 10, 10,
09691     10, 10, 10, 10, 10, 10, 10, 10,
09692     10, 10, 10, 10, 10, 10, 10, 10,
09693     10, 10, 10, 10, 10, 10, 10, 10,
09694     10, 10, 10, 10, 0, 0, 0, 0,
09695     0, 0, 0, 0, 0, 0, 0, 0,
09696 };
09697 
09698 static const Q_UINT8 dir_2F[] = {
09699     10, 10, 10, 10, 10, 10, 10, 10,
09700     10, 10, 10, 10, 10, 10, 10, 10,
09701     10, 10, 10, 10, 10, 10, 10, 10,
09702     10, 10, 10, 10, 10, 10, 10, 10,
09703     10, 10, 10, 10, 10, 10, 10, 10,
09704     10, 10, 10, 10, 10, 10, 10, 10,
09705     10, 10, 10, 10, 10, 10, 10, 10,
09706     10, 10, 10, 10, 10, 10, 10, 10,
09707     10, 10, 10, 10, 10, 10, 10, 10,
09708     10, 10, 10, 10, 10, 10, 10, 10,
09709     10, 10, 10, 10, 10, 10, 10, 10,
09710     10, 10, 10, 10, 10, 10, 10, 10,
09711     10, 10, 10, 10, 10, 10, 10, 10,
09712     10, 10, 10, 10, 10, 10, 10, 10,
09713     10, 10, 10, 10, 10, 10, 10, 10,
09714     10, 10, 10, 10, 10, 10, 10, 10,
09715     10, 10, 10, 10, 10, 10, 10, 10,
09716     10, 10, 10, 10, 10, 10, 10, 10,
09717     10, 10, 10, 10, 10, 10, 10, 10,
09718     10, 10, 10, 10, 10, 10, 10, 10,
09719     10, 10, 10, 10, 10, 10, 10, 10,
09720     10, 10, 10, 10, 10, 10, 10, 10,
09721     10, 10, 10, 10, 10, 10, 10, 10,
09722     10, 10, 10, 10, 10, 10, 10, 10,
09723     10, 10, 10, 10, 10, 10, 10, 10,
09724     10, 10, 10, 10, 10, 10, 10, 10,
09725     10, 10, 10, 10, 10, 10, 0, 0,
09726     0, 0, 0, 0, 0, 0, 0, 0,
09727     0, 0, 0, 0, 0, 0, 0, 0,
09728     0, 0, 0, 0, 0, 0, 0, 0,
09729     10, 10, 10, 10, 10, 10, 10, 10,
09730     10, 10, 10, 10, 0, 0, 0, 0,
09731 };
09732 
09733 static const Q_UINT8 dir_30[] = {
09734     9, 10, 10, 10, 10, 0, 0, 0,
09735     138, 138, 138, 138, 138, 138, 138, 138,
09736     138, 138, 10, 10, 138, 138, 138, 138,
09737     138, 138, 138, 138, 10, 10, 10, 10,
09738     10, 0, 0, 0, 0, 0, 0, 0,
09739     0, 0, 17, 17, 17, 17, 17, 17,
09740     10, 0, 0, 0, 0, 0, 10, 10,
09741     0, 0, 0, 0, 0, 10, 10, 10,
09742     0, 0, 0, 0, 0, 0, 0, 0,
09743     0, 0, 0, 0, 0, 0, 0, 0,
09744     0, 0, 0, 0, 0, 0, 0, 0,
09745     0, 0, 0, 0, 0, 0, 0, 0,
09746     0, 0, 0, 0, 0, 0, 0, 0,
09747     0, 0, 0, 0, 0, 0, 0, 0,
09748     0, 0, 0, 0, 0, 0, 0, 0,
09749     0, 0, 0, 0, 0, 0, 0, 0,
09750     0, 0, 0, 0, 0, 0, 0, 0,
09751     0, 0, 0, 0, 0, 0, 0, 0,
09752     0, 0, 0, 0, 0, 0, 0, 0,
09753     0, 17, 17, 10, 10, 0, 0, 0,
09754     10, 0, 0, 0, 0, 0, 0, 0,
09755     0, 0, 0, 0, 0, 0, 0, 0,
09756     0, 0, 0, 0, 0, 0, 0, 0,
09757     0, 0, 0, 0, 0, 0, 0, 0,
09758     0, 0, 0, 0, 0, 0, 0, 0,
09759     0, 0, 0, 0, 0, 0, 0, 0,
09760     0, 0, 0, 0, 0, 0, 0, 0,
09761     0, 0, 0, 0, 0, 0, 0, 0,
09762     0, 0, 0, 0, 0, 0, 0, 0,
09763     0, 0, 0, 0, 0, 0, 0, 0,
09764     0, 0, 0, 0, 0, 0, 0, 0,
09765     0, 0, 0, 10, 0, 0, 0, 0,
09766 };
09767 
09768 static const Q_UINT8 dir_32[] = {
09769     0, 0, 0, 0, 0, 0, 0, 0,
09770     0, 0, 0, 0, 0, 0, 0, 0,
09771     0, 0, 0, 0, 0, 0, 0, 0,
09772     0, 0, 0, 0, 0, 0, 0, 0,
09773     0, 0, 0, 0, 0, 0, 0, 0,
09774     0, 0, 0, 0, 0, 0, 0, 0,
09775     0, 0, 0, 0, 0, 0, 0, 0,
09776     0, 0, 0, 0, 0, 0, 0, 0,
09777     0, 0, 0, 0, 0, 0, 0, 0,
09778     0, 0, 0, 0, 0, 0, 0, 0,
09779     0, 10, 10, 10, 10, 10, 10, 10,
09780     10, 10, 10, 10, 10, 10, 10, 10,
09781     0, 0, 0, 0, 0, 0, 0, 0,
09782     0, 0, 0, 0, 0, 0, 0, 0,
09783     0, 0, 0, 0, 0, 0, 0, 0,
09784     0, 0, 0, 0, 0, 0, 0, 0,
09785     0, 0, 0, 0, 0, 0, 0, 0,
09786     0, 0, 0, 0, 0, 0, 0, 0,
09787     0, 0, 0, 0, 0, 0, 0, 0,
09788     0, 0, 0, 0, 0, 0, 0, 0,
09789     0, 0, 0, 0, 0, 0, 0, 0,
09790     0, 0, 0, 0, 0, 0, 0, 0,
09791     0, 10, 10, 10, 10, 10, 10, 10,
09792     10, 10, 10, 10, 10, 10, 10, 10,
09793     0, 0, 0, 0, 0, 0, 0, 0,
09794     0, 0, 0, 0, 0, 0, 0, 0,
09795     0, 0, 0, 0, 0, 0, 0, 0,
09796     0, 0, 0, 0, 0, 0, 0, 0,
09797     0, 0, 0, 0, 0, 0, 0, 0,
09798     0, 0, 0, 0, 0, 0, 0, 0,
09799     0, 0, 0, 0, 0, 0, 0, 0,
09800     0, 0, 0, 0, 0, 0, 0, 0,
09801 };
09802 
09803 static const Q_UINT8 dir_A4[] = {
09804     0, 0, 0, 0, 0, 0, 0, 0,
09805     0, 0, 0, 0, 0, 0, 0, 0,
09806     0, 0, 0, 0, 0, 0, 0, 0,
09807     0, 0, 0, 0, 0, 0, 0, 0,
09808     0, 0, 0, 0, 0, 0, 0, 0,
09809     0, 0, 0, 0, 0, 0, 0, 0,
09810     0, 0, 0, 0, 0, 0, 0, 0,
09811     0, 0, 0, 0, 0, 0, 0, 0,
09812     0, 0, 0, 0, 0, 0, 0, 0,
09813     0, 0, 0, 0, 0, 0, 0, 0,
09814     0, 0, 0, 0, 0, 0, 0, 0,
09815     0, 0, 0, 0, 0, 0, 0, 0,
09816     0, 0, 0, 0, 0, 0, 0, 0,
09817     0, 0, 0, 0, 0, 0, 0, 0,
09818     0, 0, 0, 0, 0, 0, 0, 0,
09819     0, 0, 0, 0, 0, 0, 0, 0,
09820     0, 0, 0, 0, 0, 0, 0, 0,
09821     0, 0, 0, 0, 0, 0, 0, 0,
09822     10, 10, 10, 10, 10, 10, 10, 10,
09823     10, 10, 10, 10, 10, 10, 10, 10,
09824     10, 10, 10, 10, 10, 10, 10, 10,
09825     10, 10, 10, 10, 10, 10, 10, 10,
09826     10, 10, 10, 10, 10, 10, 10, 10,
09827     10, 10, 10, 10, 10, 10, 10, 10,
09828     10, 10, 10, 10, 10, 10, 10, 0,
09829     0, 0, 0, 0, 0, 0, 0, 0,
09830     0, 0, 0, 0, 0, 0, 0, 0,
09831     0, 0, 0, 0, 0, 0, 0, 0,
09832     0, 0, 0, 0, 0, 0, 0, 0,
09833     0, 0, 0, 0, 0, 0, 0, 0,
09834     0, 0, 0, 0, 0, 0, 0, 0,
09835     0, 0, 0, 0, 0, 0, 0, 0,
09836 };
09837 
09838 static const Q_UINT8 dir_FB[] = {
09839     0, 0, 0, 0, 0, 0, 0, 0,
09840     0, 0, 0, 0, 0, 0, 0, 0,
09841     0, 0, 0, 0, 0, 0, 0, 0,
09842     0, 0, 0, 0, 0, 1, 17, 1,
09843     1, 1, 1, 1, 1, 1, 1, 1,
09844     1, 4, 1, 1, 1, 1, 1, 1,
09845     1, 1, 1, 1, 1, 1, 1, 0,
09846     1, 1, 1, 1, 1, 0, 1, 0,
09847     1, 1, 0, 1, 1, 0, 1, 1,
09848     1, 1, 1, 1, 1, 1, 1, 1,
09849     13, 13, 13, 13, 13, 13, 13, 13,
09850     13, 13, 13, 13, 13, 13, 13, 13,
09851     13, 13, 13, 13, 13, 13, 13, 13,
09852     13, 13, 13, 13, 13, 13, 13, 13,
09853     13, 13, 13, 13, 13, 13, 13, 13,
09854     13, 13, 13, 13, 13, 13, 13, 13,
09855     13, 13, 13, 13, 13, 13, 13, 13,
09856     13, 13, 13, 13, 13, 13, 13, 13,
09857     13, 13, 13, 13, 13, 13, 13, 13,
09858     13, 13, 13, 13, 13, 13, 13, 13,
09859     13, 13, 13, 13, 13, 13, 13, 13,
09860     13, 13, 13, 13, 13, 13, 13, 13,
09861     13, 13, 0, 0, 0, 0, 0, 0,
09862     0, 0, 0, 0, 0, 0, 0, 0,
09863     0, 0, 0, 0, 0, 0, 0, 0,
09864     0, 0, 0, 0, 0, 0, 0, 0,
09865     0, 0, 0, 13, 13, 13, 13, 13,
09866     13, 13, 13, 13, 13, 13, 13, 13,
09867     13, 13, 13, 13, 13, 13, 13, 13,
09868     13, 13, 13, 13, 13, 13, 13, 13,
09869     13, 13, 13, 13, 13, 13, 13, 13,
09870     13, 13, 13, 13, 13, 13, 13, 13,
09871 };
09872 
09873 static const Q_UINT8 dir_FC[] = {
09874     13, 13, 13, 13, 13, 13, 13, 13,
09875     13, 13, 13, 13, 13, 13, 13, 13,
09876     13, 13, 13, 13, 13, 13, 13, 13,
09877     13, 13, 13, 13, 13, 13, 13, 13,
09878     13, 13, 13, 13, 13, 13, 13, 13,
09879     13, 13, 13, 13, 13, 13, 13, 13,
09880     13, 13, 13, 13, 13, 13, 13, 13,
09881     13, 13, 13, 13, 13, 13, 13, 13,
09882     13, 13, 13, 13, 13, 13, 13, 13,
09883     13, 13, 13, 13, 13, 13, 13, 13,
09884     13, 13, 13, 13, 13, 13, 13, 13,
09885     13, 13, 13, 13, 13, 13, 13, 13,
09886     13, 13, 13, 13, 13, 13, 13, 13,
09887     13, 13, 13, 13, 13, 13, 13, 13,
09888     13, 13, 13, 13, 13, 13, 13, 13,
09889     13, 13, 13, 13, 13, 13, 13, 13,
09890     13, 13, 13, 13, 13, 13, 13, 13,
09891     13, 13, 13, 13, 13, 13, 13, 13,
09892     13, 13, 13, 13, 13, 13, 13, 13,
09893     13, 13, 13, 13, 13, 13, 13, 13,
09894     13, 13, 13, 13, 13, 13, 13, 13,
09895     13, 13, 13, 13, 13, 13, 13, 13,
09896     13, 13, 13, 13, 13, 13, 13, 13,
09897     13, 13, 13, 13, 13, 13, 13, 13,
09898     13, 13, 13, 13, 13, 13, 13, 13,
09899     13, 13, 13, 13, 13, 13, 13, 13,
09900     13, 13, 13, 13, 13, 13, 13, 13,
09901     13, 13, 13, 13, 13, 13, 13, 13,
09902     13, 13, 13, 13, 13, 13, 13, 13,
09903     13, 13, 13, 13, 13, 13, 13, 13,
09904     13, 13, 13, 13, 13, 13, 13, 13,
09905     13, 13, 13, 13, 13, 13, 13, 13,
09906 };
09907 
09908 static const Q_UINT8 dir_FD[] = {
09909     13, 13, 13, 13, 13, 13, 13, 13,
09910     13, 13, 13, 13, 13, 13, 13, 13,
09911     13, 13, 13, 13, 13, 13, 13, 13,
09912     13, 13, 13, 13, 13, 13, 13, 13,
09913     13, 13, 13, 13, 13, 13, 13, 13,
09914     13, 13, 13, 13, 13, 13, 13, 13,
09915     13, 13, 13, 13, 13, 13, 13, 13,
09916     13, 13, 13, 13, 13, 13, 10, 10,
09917     0, 0, 0, 0, 0, 0, 0, 0,
09918     0, 0, 0, 0, 0, 0, 0, 0,
09919     13, 13, 13, 13, 13, 13, 13, 13,
09920     13, 13, 13, 13, 13, 13, 13, 13,
09921     13, 13, 13, 13, 13, 13, 13, 13,
09922     13, 13, 13, 13, 13, 13, 13, 13,
09923     13, 13, 13, 13, 13, 13, 13, 13,
09924     13, 13, 13, 13, 13, 13, 13, 13,
09925     13, 13, 13, 13, 13, 13, 13, 13,
09926     13, 13, 13, 13, 13, 13, 13, 13,
09927     0, 0, 13, 13, 13, 13, 13, 13,
09928     13, 13, 13, 13, 13, 13, 13, 13,
09929     13, 13, 13, 13, 13, 13, 13, 13,
09930     13, 13, 13, 13, 13, 13, 13, 13,
09931     13, 13, 13, 13, 13, 13, 13, 13,
09932     13, 13, 13, 13, 13, 13, 13, 13,
09933     13, 13, 13, 13, 13, 13, 13, 13,
09934     0, 0, 0, 0, 0, 0, 0, 0,
09935     0, 0, 0, 0, 0, 0, 0, 0,
09936     0, 0, 0, 0, 0, 0, 0, 0,
09937     0, 0, 0, 0, 0, 0, 0, 0,
09938     0, 0, 0, 0, 0, 0, 0, 0,
09939     13, 13, 13, 13, 13, 13, 13, 13,
09940     13, 13, 13, 13, 13, 0, 0, 0,
09941 };
09942 
09943 static const Q_UINT8 dir_FE[] = {
09944     17, 17, 17, 17, 17, 17, 17, 17,
09945     17, 17, 17, 17, 17, 17, 17, 17,
09946     0, 0, 0, 0, 0, 0, 0, 0,
09947     0, 0, 0, 0, 0, 0, 0, 0,
09948     17, 17, 17, 17, 0, 0, 0, 0,
09949     0, 0, 0, 0, 0, 0, 0, 0,
09950     10, 10, 10, 10, 10, 10, 10, 10,
09951     10, 10, 10, 10, 10, 10, 10, 10,
09952     10, 10, 10, 10, 10, 10, 10, 0,
09953     0, 10, 10, 10, 10, 10, 10, 10,
09954     6, 10, 6, 0, 10, 6, 10, 10,
09955     10, 10, 10, 10, 10, 10, 10, 4,
09956     10, 10, 4, 4, 10, 10, 10, 0,
09957     10, 4, 4, 10, 0, 0, 0, 0,
09958     13, 13, 13, 13, 13, 0, 13, 13,
09959     13, 13, 13, 13, 13, 13, 13, 13,
09960     13, 13, 13, 13, 13, 13, 13, 13,
09961     13, 13, 13, 13, 13, 13, 13, 13,
09962     13, 13, 13, 13, 13, 13, 13, 13,
09963     13, 13, 13, 13, 13, 13, 13, 13,
09964     13, 13, 13, 13, 13, 13, 13, 13,
09965     13, 13, 13, 13, 13, 13, 13, 13,
09966     13, 13, 13, 13, 13, 13, 13, 13,
09967     13, 13, 13, 13, 13, 13, 13, 13,
09968     13, 13, 13, 13, 13, 13, 13, 13,
09969     13, 13, 13, 13, 13, 13, 13, 13,
09970     13, 13, 13, 13, 13, 13, 13, 13,
09971     13, 13, 13, 13, 13, 13, 13, 13,
09972     13, 13, 13, 13, 13, 13, 13, 13,
09973     13, 13, 13, 13, 13, 13, 13, 13,
09974     13, 13, 13, 13, 13, 13, 13, 13,
09975     13, 13, 13, 13, 13, 0, 0, 18,
09976 };
09977 
09978 static const Q_UINT8 dir_FF[] = {
09979     0, 10, 10, 4, 4, 4, 10, 10,
09980     138, 138, 10, 4, 6, 4, 6, 3,
09981     2, 2, 2, 2, 2, 2, 2, 2,
09982     2, 2, 6, 10, 138, 10, 138, 10,
09983     10, 0, 0, 0, 0, 0, 0, 0,
09984     0, 0, 0, 0, 0, 0, 0, 0,
09985     0, 0, 0, 0, 0, 0, 0, 0,
09986     0, 0, 0, 138, 10, 138, 10, 10,
09987     10, 0, 0, 0, 0, 0, 0, 0,
09988     0, 0, 0, 0, 0, 0, 0, 0,
09989     0, 0, 0, 0, 0, 0, 0, 0,
09990     0, 0, 0, 138, 10, 138, 10, 138,
09991     138, 10, 138, 138, 10, 10, 0, 0,
09992     0, 0, 0, 0, 0, 0, 0, 0,
09993     0, 0, 0, 0, 0, 0, 0, 0,
09994     0, 0, 0, 0, 0, 0, 0, 0,
09995     0, 0, 0, 0, 0, 0, 0, 0,
09996     0, 0, 0, 0, 0, 0, 0, 0,
09997     0, 0, 0, 0, 0, 0, 0, 0,
09998     0, 0, 0, 0, 0, 0, 0, 0,
09999     0, 0, 0, 0, 0, 0, 0, 0,
10000     0, 0, 0, 0, 0, 0, 0, 0,
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     4, 4, 10, 10, 10, 4, 4, 0,
10008     10, 10, 10, 10, 10, 10, 10, 0,
10009     0, 0, 0, 0, 0, 0, 0, 0,
10010     0, 18, 18, 18, 10, 10, 0, 0,
10011 };
10012 
10013 static const Q_UINT8 * const direction_info[256] = {
10014     dir_00, dir_01, dir_02, dir_03, dir_04, dir_05, dir_06, dir_07,
10015     dir_01, dir_09, dir_0A, dir_0B, dir_0C, dir_0D, dir_0E, dir_0F,
10016     dir_10, dir_01, dir_01, dir_01, dir_01, dir_01, dir_16, dir_17,
10017     dir_18, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_1F,
10018     dir_20, dir_21, dir_22, dir_23, dir_24, dir_25, dir_26, dir_27,
10019     dir_25, dir_29, dir_2A, dir_01, dir_01, dir_01, dir_2E, dir_2F,
10020     dir_30, dir_01, dir_32, dir_01, dir_01, dir_01, dir_01, dir_01,
10021     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10022     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10023     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10024     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10025     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10026     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10027     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10028     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10029     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10030     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10031     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10032     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10033     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10034     dir_01, dir_01, dir_01, dir_01, dir_A4, dir_01, dir_01, dir_01,
10035     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10036     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10037     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10038     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10039     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10040     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10041     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10042     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10043     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10044     dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
10045     dir_01, dir_01, dir_01, dir_FB, dir_FC, dir_FD, dir_FE, dir_FF,
10046 };
10047 // 26362 bytes
10048 
10049 static const Q_UINT8 cmb_00[] = {
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     0, 0, 0, 0, 0, 0, 0, 0,
10057     0, 0, 0, 0, 0, 0, 0, 0,
10058     0, 0, 0, 0, 0, 0, 0, 0,
10059     0, 0, 0, 0, 0, 0, 0, 0,
10060     0, 0, 0, 0, 0, 0, 0, 0,
10061     0, 0, 0, 0, 0, 0, 0, 0,
10062     0, 0, 0, 0, 0, 0, 0, 0,
10063     0, 0, 0, 0, 0, 0, 0, 0,
10064     0, 0, 0, 0, 0, 0, 0, 0,
10065     0, 0, 0, 0, 0, 0, 0, 0,
10066     0, 0, 0, 0, 0, 0, 0, 0,
10067     0, 0, 0, 0, 0, 0, 0, 0,
10068     0, 0, 0, 0, 0, 0, 0, 0,
10069     0, 0, 0, 0, 0, 0, 0, 0,
10070     0, 0, 0, 0, 0, 0, 0, 0,
10071     0, 0, 0, 0, 0, 0, 0, 0,
10072     0, 0, 0, 0, 0, 0, 0, 0,
10073     0, 0, 0, 0, 0, 0, 0, 0,
10074     0, 0, 0, 0, 0, 0, 0, 0,
10075     0, 0, 0, 0, 0, 0, 0, 0,
10076     0, 0, 0, 0, 0, 0, 0, 0,
10077     0, 0, 0, 0, 0, 0, 0, 0,
10078     0, 0, 0, 0, 0, 0, 0, 0,
10079     0, 0, 0, 0, 0, 0, 0, 0,
10080     0, 0, 0, 0, 0, 0, 0, 0,
10081     0, 0, 0, 0, 0, 0, 0, 0,
10082 };
10083 
10084 static const Q_UINT8 cmb_03[] = {
10085     230, 230, 230, 230, 230, 230, 230, 230,
10086     230, 230, 230, 230, 230, 230, 230, 230,
10087     230, 230, 230, 230, 230, 232, 220, 220,
10088     220, 220, 232, 216, 220, 220, 220, 220,
10089     220, 202, 202, 220, 220, 220, 220, 202,
10090     202, 220, 220, 220, 220, 220, 220, 220,
10091     220, 220, 220, 220, 1, 1, 1, 1,
10092     1, 220, 220, 220, 220, 230, 230, 230,
10093     230, 230, 230, 230, 230, 240, 230, 220,
10094     220, 220, 230, 230, 230, 220, 220, 0,
10095     0, 0, 0, 0, 0, 0, 0, 0,
10096     0, 0, 0, 0, 0, 0, 0, 0,
10097     234, 234, 233, 230, 230, 230, 230, 230,
10098     230, 230, 230, 230, 230, 230, 230, 230,
10099     0, 0, 0, 0, 0, 0, 0, 0,
10100     0, 0, 0, 0, 0, 0, 0, 0,
10101     0, 0, 0, 0, 0, 0, 0, 0,
10102     0, 0, 0, 0, 0, 0, 0, 0,
10103     0, 0, 0, 0, 0, 0, 0, 0,
10104     0, 0, 0, 0, 0, 0, 0, 0,
10105     0, 0, 0, 0, 0, 0, 0, 0,
10106     0, 0, 0, 0, 0, 0, 0, 0,
10107     0, 0, 0, 0, 0, 0, 0, 0,
10108     0, 0, 0, 0, 0, 0, 0, 0,
10109     0, 0, 0, 0, 0, 0, 0, 0,
10110     0, 0, 0, 0, 0, 0, 0, 0,
10111     0, 0, 0, 0, 0, 0, 0, 0,
10112     0, 0, 0, 0, 0, 0, 0, 0,
10113     0, 0, 0, 0, 0, 0, 0, 0,
10114     0, 0, 0, 0, 0, 0, 0, 0,
10115     0, 0, 0, 0, 0, 0, 0, 0,
10116     0, 0, 0, 0, 0, 0, 0, 0,
10117 };
10118 
10119 static const Q_UINT8 cmb_04[] = {
10120     0, 0, 0, 0, 0, 0, 0, 0,
10121     0, 0, 0, 0, 0, 0, 0, 0,
10122     0, 0, 0, 0, 0, 0, 0, 0,
10123     0, 0, 0, 0, 0, 0, 0, 0,
10124     0, 0, 0, 0, 0, 0, 0, 0,
10125     0, 0, 0, 0, 0, 0, 0, 0,
10126     0, 0, 0, 0, 0, 0, 0, 0,
10127     0, 0, 0, 0, 0, 0, 0, 0,
10128     0, 0, 0, 0, 0, 0, 0, 0,
10129     0, 0, 0, 0, 0, 0, 0, 0,
10130     0, 0, 0, 0, 0, 0, 0, 0,
10131     0, 0, 0, 0, 0, 0, 0, 0,
10132     0, 0, 0, 0, 0, 0, 0, 0,
10133     0, 0, 0, 0, 0, 0, 0, 0,
10134     0, 0, 0, 0, 0, 0, 0, 0,
10135     0, 0, 0, 0, 0, 0, 0, 0,
10136     0, 0, 0, 230, 230, 230, 230, 0,
10137     0, 0, 0, 0, 0, 0, 0, 0,
10138     0, 0, 0, 0, 0, 0, 0, 0,
10139     0, 0, 0, 0, 0, 0, 0, 0,
10140     0, 0, 0, 0, 0, 0, 0, 0,
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 };
10153 
10154 static const Q_UINT8 cmb_05[] = {
10155     0, 0, 0, 0, 0, 0, 0, 0,
10156     0, 0, 0, 0, 0, 0, 0, 0,
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     0, 220, 230, 230, 230, 230, 220, 230,
10174     230, 230, 222, 220, 230, 230, 230, 230,
10175     230, 230, 0, 220, 220, 220, 220, 220,
10176     230, 230, 220, 230, 230, 222, 228, 230,
10177     10, 11, 12, 13, 14, 15, 16, 17,
10178     18, 19, 0, 20, 21, 22, 0, 23,
10179     0, 24, 25, 0, 230, 0, 0, 0,
10180     0, 0, 0, 0, 0, 0, 0, 0,
10181     0, 0, 0, 0, 0, 0, 0, 0,
10182     0, 0, 0, 0, 0, 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 };
10188 
10189 static const Q_UINT8 cmb_06[] = {
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, 27, 28, 29, 30, 31,
10200     32, 33, 34, 230, 230, 220, 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     35, 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     0, 0, 0, 0, 0, 0, 0, 0,
10209     0, 0, 0, 0, 0, 0, 0, 0,
10210     0, 0, 0, 0, 0, 0, 0, 0,
10211     0, 0, 0, 0, 0, 0, 0, 0,
10212     0, 0, 0, 0, 0, 0, 0, 0,
10213     0, 0, 0, 0, 0, 0, 0, 0,
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, 230, 230,
10217     230, 230, 230, 230, 230, 0, 0, 230,
10218     230, 230, 230, 220, 230, 0, 0, 230,
10219     230, 0, 220, 230, 230, 220, 0, 0,
10220     0, 0, 0, 0, 0, 0, 0, 0,
10221     0, 0, 0, 0, 0, 0, 0, 0,
10222 };
10223 
10224 static const Q_UINT8 cmb_07[] = {
10225     0, 0, 0, 0, 0, 0, 0, 0,
10226     0, 0, 0, 0, 0, 0, 0, 0,
10227     0, 36, 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     230, 220, 230, 230, 220, 230, 230, 220,
10232     220, 220, 230, 220, 220, 230, 220, 230,
10233     230, 230, 220, 230, 220, 230, 220, 230,
10234     220, 230, 230, 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     0, 0, 0, 0, 0, 0, 0, 0,
10244     0, 0, 0, 0, 0, 0, 0, 0,
10245     0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 0,
10251     0, 0, 0, 0, 0, 0, 0, 0,
10252     0, 0, 0, 0, 0, 0, 0, 0,
10253     0, 0, 0, 0, 0, 0, 0, 0,
10254     0, 0, 0, 0, 0, 0, 0, 0,
10255     0, 0, 0, 0, 0, 0, 0, 0,
10256     0, 0, 0, 0, 0, 0, 0, 0,
10257 };
10258 
10259 static const Q_UINT8 cmb_09[] = {
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, 7, 0, 0, 0,
10268     0, 0, 0, 0, 0, 0, 0, 0,
10269     0, 0, 0, 0, 0, 9, 0, 0,
10270     0, 230, 220, 230, 230, 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     0, 0, 0, 0, 0, 0, 0, 0,
10279     0, 0, 0, 0, 0, 0, 0, 0,
10280     0, 0, 0, 0, 0, 0, 0, 0,
10281     0, 0, 0, 0, 0, 0, 0, 0,
10282     0, 0, 0, 0, 0, 0, 0, 0,
10283     0, 0, 0, 0, 7, 0, 0, 0,
10284     0, 0, 0, 0, 0, 0, 0, 0,
10285     0, 0, 0, 0, 0, 9, 0, 0,
10286     0, 0, 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 };
10293 
10294 static const Q_UINT8 cmb_0A[] = {
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, 7, 0, 0, 0,
10303     0, 0, 0, 0, 0, 0, 0, 0,
10304     0, 0, 0, 0, 0, 9, 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, 0, 0, 0, 0, 0,
10314     0, 0, 0, 0, 0, 0, 0, 0,
10315     0, 0, 0, 0, 0, 0, 0, 0,
10316     0, 0, 0, 0, 0, 0, 0, 0,
10317     0, 0, 0, 0, 0, 0, 0, 0,
10318     0, 0, 0, 0, 7, 0, 0, 0,
10319     0, 0, 0, 0, 0, 0, 0, 0,
10320     0, 0, 0, 0, 0, 9, 0, 0,
10321     0, 0, 0, 0, 0, 0, 0, 0,
10322     0, 0, 0, 0, 0, 0, 0, 0,
10323     0, 0, 0, 0, 0, 0, 0, 0,
10324     0, 0, 0, 0, 0, 0, 0, 0,
10325     0, 0, 0, 0, 0, 0, 0, 0,
10326     0, 0, 0, 0, 0, 0, 0, 0,
10327 };
10328 
10329 static const Q_UINT8 cmb_0B[] = {
10330     0, 0, 0, 0, 0, 0, 0, 0,
10331     0, 0, 0, 0, 0, 0, 0, 0,
10332     0, 0, 0, 0, 0, 0, 0, 0,
10333     0, 0, 0, 0, 0, 0, 0, 0,
10334     0, 0, 0, 0, 0, 0, 0, 0,
10335     0, 0, 0, 0, 0, 0, 0, 0,
10336     0, 0, 0, 0, 0, 0, 0, 0,
10337     0, 0, 0, 0, 7, 0, 0, 0,
10338     0, 0, 0, 0, 0, 0, 0, 0,
10339     0, 0, 0, 0, 0, 9, 0, 0,
10340     0, 0, 0, 0, 0, 0, 0, 0,
10341     0, 0, 0, 0, 0, 0, 0, 0,
10342     0, 0, 0, 0, 0, 0, 0, 0,
10343     0, 0, 0, 0, 0, 0, 0, 0,
10344     0, 0, 0, 0, 0, 0, 0, 0,
10345     0, 0, 0, 0, 0, 0, 0, 0,
10346     0, 0, 0, 0, 0, 0, 0, 0,
10347     0, 0, 0, 0, 0, 0, 0, 0,
10348     0, 0, 0, 0, 0, 0, 0, 0,
10349     0, 0, 0, 0, 0, 0, 0, 0,
10350     0, 0, 0, 0, 0, 0, 0, 0,
10351     0, 0, 0, 0, 0, 0, 0, 0,
10352     0, 0, 0, 0, 0, 0, 0, 0,
10353     0, 0, 0, 0, 0, 0, 0, 0,
10354     0, 0, 0, 0, 0, 0, 0, 0,
10355     0, 0, 0, 0, 0, 9, 0, 0,
10356     0, 0, 0, 0, 0, 0, 0, 0,
10357     0, 0, 0, 0, 0, 0, 0, 0,
10358     0, 0, 0, 0, 0, 0, 0, 0,
10359     0, 0, 0, 0, 0, 0, 0, 0,
10360     0, 0, 0, 0, 0, 0, 0, 0,
10361     0, 0, 0, 0, 0, 0, 0, 0,
10362 };
10363 
10364 static const Q_UINT8 cmb_0C[] = {
10365     0, 0, 0, 0, 0, 0, 0, 0,
10366     0, 0, 0, 0, 0, 0, 0, 0,
10367     0, 0, 0, 0, 0, 0, 0, 0,
10368     0, 0, 0, 0, 0, 0, 0, 0,
10369     0, 0, 0, 0, 0, 0, 0, 0,
10370     0, 0, 0, 0, 0, 0, 0, 0,
10371     0, 0, 0, 0, 0, 0, 0, 0,
10372     0, 0, 0, 0, 0, 0, 0, 0,
10373     0, 0, 0, 0, 0, 0, 0, 0,
10374     0, 0, 0, 0, 0, 9, 0, 0,
10375     0, 0, 0, 0, 0, 84, 91, 0,
10376     0, 0, 0, 0, 0, 0, 0, 0,
10377     0, 0, 0, 0, 0, 0, 0, 0,
10378     0, 0, 0, 0, 0, 0, 0, 0,
10379     0, 0, 0, 0, 0, 0, 0, 0,
10380     0, 0, 0, 0, 0, 0, 0, 0,
10381     0, 0, 0, 0, 0, 0, 0, 0,
10382     0, 0, 0, 0, 0, 0, 0, 0,
10383     0, 0, 0, 0, 0, 0, 0, 0,
10384     0, 0, 0, 0, 0, 0, 0, 0,
10385     0, 0, 0, 0, 0, 0, 0, 0,
10386     0, 0, 0, 0, 0, 0, 0, 0,
10387     0, 0, 0, 0, 0, 0, 0, 0,
10388     0, 0, 0, 0, 0, 0, 0, 0,
10389     0, 0, 0, 0, 0, 0, 0, 0,
10390     0, 0, 0, 0, 0, 9, 0, 0,
10391     0, 0, 0, 0, 0, 0, 0, 0,
10392     0, 0, 0, 0, 0, 0, 0, 0,
10393     0, 0, 0, 0, 0, 0, 0, 0,
10394     0, 0, 0, 0, 0, 0, 0, 0,
10395     0, 0, 0, 0, 0, 0, 0, 0,
10396     0, 0, 0, 0, 0, 0, 0, 0,
10397 };
10398 
10399 static const Q_UINT8 cmb_0D[] = {
10400     0, 0, 0, 0, 0, 0, 0, 0,
10401     0, 0, 0, 0, 0, 0, 0, 0,
10402     0, 0, 0, 0, 0, 0, 0, 0,
10403     0, 0, 0, 0, 0, 0, 0, 0,
10404     0, 0, 0, 0, 0, 0, 0, 0,
10405     0, 0, 0, 0, 0, 0, 0, 0,
10406     0, 0, 0, 0, 0, 0, 0, 0,
10407     0, 0, 0, 0, 0, 0, 0, 0,
10408     0, 0, 0, 0, 0, 0, 0, 0,
10409     0, 0, 0, 0, 0, 9, 0, 0,
10410     0, 0, 0, 0, 0, 0, 0, 0,
10411     0, 0, 0, 0, 0, 0, 0, 0,
10412     0, 0, 0, 0, 0, 0, 0, 0,
10413     0, 0, 0, 0, 0, 0, 0, 0,
10414     0, 0, 0, 0, 0, 0, 0, 0,
10415     0, 0, 0, 0, 0, 0, 0, 0,
10416     0, 0, 0, 0, 0, 0, 0, 0,
10417     0, 0, 0, 0, 0, 0, 0, 0,
10418     0, 0, 0, 0, 0, 0, 0, 0,
10419     0, 0, 0, 0, 0, 0, 0, 0,
10420     0, 0, 0, 0, 0, 0, 0, 0,
10421     0, 0, 0, 0, 0, 0, 0, 0,
10422     0, 0, 0, 0, 0, 0, 0, 0,
10423     0, 0, 0, 0, 0, 0, 0, 0,
10424     0, 0, 0, 0, 0, 0, 0, 0,
10425     0, 0, 9, 0, 0, 0, 0, 0,
10426     0, 0, 0, 0, 0, 0, 0, 0,
10427     0, 0, 0, 0, 0, 0, 0, 0,
10428     0, 0, 0, 0, 0, 0, 0, 0,
10429     0, 0, 0, 0, 0, 0, 0, 0,
10430     0, 0, 0, 0, 0, 0, 0, 0,
10431     0, 0, 0, 0, 0, 0, 0, 0,
10432 };
10433 
10434 static const Q_UINT8 cmb_0E[] = {
10435     0, 0, 0, 0, 0, 0, 0, 0,
10436     0, 0, 0, 0, 0, 0, 0, 0,
10437     0, 0, 0, 0, 0, 0, 0, 0,
10438     0, 0, 0, 0, 0, 0, 0, 0,
10439     0, 0, 0, 0, 0, 0, 0, 0,
10440     0, 0, 0, 0, 0, 0, 0, 0,
10441     0, 0, 0, 0, 0, 0, 0, 0,
10442     103, 103, 9, 0, 0, 0, 0, 0,
10443     0, 0, 0, 0, 0, 0, 0, 0,
10444     107, 107, 107, 107, 0, 0, 0, 0,
10445     0, 0, 0, 0, 0, 0, 0, 0,
10446     0, 0, 0, 0, 0, 0, 0, 0,
10447     0, 0, 0, 0, 0, 0, 0, 0,
10448     0, 0, 0, 0, 0, 0, 0, 0,
10449     0, 0, 0, 0, 0, 0, 0, 0,
10450     0, 0, 0, 0, 0, 0, 0, 0,
10451     0, 0, 0, 0, 0, 0, 0, 0,
10452     0, 0, 0, 0, 0, 0, 0, 0,
10453     0, 0, 0, 0, 0, 0, 0, 0,
10454     0, 0, 0, 0, 0, 0, 0, 0,
10455     0, 0, 0, 0, 0, 0, 0, 0,
10456     0, 0, 0, 0, 0, 0, 0, 0,
10457     0, 0, 0, 0, 0, 0, 0, 0,
10458     118, 118, 0, 0, 0, 0, 0, 0,
10459     0, 0, 0, 0, 0, 0, 0, 0,
10460     122, 122, 122, 122, 0, 0, 0, 0,
10461     0, 0, 0, 0, 0, 0, 0, 0,
10462     0, 0, 0, 0, 0, 0, 0, 0,
10463     0, 0, 0, 0, 0, 0, 0, 0,
10464     0, 0, 0, 0, 0, 0, 0, 0,
10465     0, 0, 0, 0, 0, 0, 0, 0,
10466     0, 0, 0, 0, 0, 0, 0, 0,
10467 };
10468 
10469 static const Q_UINT8 cmb_0F[] = {
10470     0, 0, 0, 0, 0, 0, 0, 0,
10471     0, 0, 0, 0, 0, 0, 0, 0,
10472     0, 0, 0, 0, 0, 0, 0, 0,
10473     220, 220, 0, 0, 0, 0, 0, 0,
10474     0, 0, 0, 0, 0, 0, 0, 0,
10475     0, 0, 0, 0, 0, 0, 0, 0,
10476     0, 0, 0, 0, 0, 220, 0, 220,
10477     0, 216, 0, 0, 0, 0, 0, 0,
10478     0, 0, 0, 0, 0, 0, 0, 0,
10479     0, 0, 0, 0, 0, 0, 0, 0,
10480     0, 0, 0, 0, 0, 0, 0, 0,
10481     0, 0, 0, 0, 0, 0, 0, 0,
10482     0, 0, 0, 0, 0, 0, 0, 0,
10483     0, 0, 0, 0, 0, 0, 0, 0,
10484     0, 129, 130, 0, 132, 0, 0, 0,
10485     0, 0, 130, 130, 130, 130, 0, 0,
10486     130, 0, 230, 230, 9, 0, 230, 230,
10487     0, 0, 0, 0, 0, 0, 0, 0,
10488     0, 0, 0, 0, 0, 0, 0, 0,
10489     0, 0, 0, 0, 0, 0, 0, 0,
10490     0, 0, 0, 0, 0, 0, 0, 0,
10491     0, 0, 0, 0, 0, 0, 0, 0,
10492     0, 0, 0, 0, 0, 0, 0, 0,
10493     0, 0, 0, 0, 0, 0, 0, 0,
10494     0, 0, 0, 0, 0, 0, 220, 0,
10495     0, 0, 0, 0, 0, 0, 0, 0,
10496     0, 0, 0, 0, 0, 0, 0, 0,
10497     0, 0, 0, 0, 0, 0, 0, 0,
10498     0, 0, 0, 0, 0, 0, 0, 0,
10499     0, 0, 0, 0, 0, 0, 0, 0,
10500     0, 0, 0, 0, 0, 0, 0, 0,
10501     0, 0, 0, 0, 0, 0, 0, 0,
10502 };
10503 
10504 static const Q_UINT8 cmb_10[] = {
10505     0, 0, 0, 0, 0, 0, 0, 0,
10506     0, 0, 0, 0, 0, 0, 0, 0,
10507     0, 0, 0, 0, 0, 0, 0, 0,
10508     0, 0, 0, 0, 0, 0, 0, 0,
10509     0, 0, 0, 0, 0, 0, 0, 0,
10510     0, 0, 0, 0, 0, 0, 0, 0,
10511     0, 0, 0, 0, 0, 0, 0, 7,
10512     0, 9, 0, 0, 0, 0, 0, 0,
10513     0, 0, 0, 0, 0, 0, 0, 0,
10514     0, 0, 0, 0, 0, 0, 0, 0,
10515     0, 0, 0, 0, 0, 0, 0, 0,
10516     0, 0, 0, 0, 0, 0, 0, 0,
10517     0, 0, 0, 0, 0, 0, 0, 0,
10518     0, 0, 0, 0, 0, 0, 0, 0,
10519     0, 0, 0, 0, 0, 0, 0, 0,
10520     0, 0, 0, 0, 0, 0, 0, 0,
10521     0, 0, 0, 0, 0, 0, 0, 0,
10522     0, 0, 0, 0, 0, 0, 0, 0,
10523     0, 0, 0, 0, 0, 0, 0, 0,
10524     0, 0, 0, 0, 0, 0, 0, 0,
10525     0, 0, 0, 0, 0, 0, 0, 0,
10526     0, 0, 0, 0, 0, 0, 0, 0,
10527     0, 0, 0, 0, 0, 0, 0, 0,
10528     0, 0, 0, 0, 0, 0, 0, 0,
10529     0, 0, 0, 0, 0, 0, 0, 0,
10530     0, 0, 0, 0, 0, 0, 0, 0,
10531     0, 0, 0, 0, 0, 0, 0, 0,
10532     0, 0, 0, 0, 0, 0, 0, 0,
10533     0, 0, 0, 0, 0, 0, 0, 0,
10534     0, 0, 0, 0, 0, 0, 0, 0,
10535     0, 0, 0, 0, 0, 0, 0, 0,
10536     0, 0, 0, 0, 0, 0, 0, 0,
10537 };
10538 
10539 static const Q_UINT8 cmb_17[] = {
10540     0, 0, 0, 0, 0, 0, 0, 0,
10541     0, 0, 0, 0, 0, 0, 0, 0,
10542     0, 0, 0, 0, 9, 0, 0, 0,
10543     0, 0, 0, 0, 0, 0, 0, 0,
10544     0, 0, 0, 0, 0, 0, 0, 0,
10545     0, 0, 0, 0, 0, 0, 0, 0,
10546     0, 0, 0, 0, 9, 0, 0, 0,
10547     0, 0, 0, 0, 0, 0, 0, 0,
10548     0, 0, 0, 0, 0, 0, 0, 0,
10549     0, 0, 0, 0, 0, 0, 0, 0,
10550     0, 0, 0, 0, 0, 0, 0, 0,
10551     0, 0, 0, 0, 0, 0, 0, 0,
10552     0, 0, 0, 0, 0, 0, 0, 0,
10553     0, 0, 0, 0, 0, 0, 0, 0,
10554     0, 0, 0, 0, 0, 0, 0, 0,
10555     0, 0, 0, 0, 0, 0, 0, 0,
10556     0, 0, 0, 0, 0, 0, 0, 0,
10557     0, 0, 0, 0, 0, 0, 0, 0,
10558     0, 0, 0, 0, 0, 0, 0, 0,
10559     0, 0, 0, 0, 0, 0, 0, 0,
10560     0, 0, 0, 0, 0, 0, 0, 0,
10561     0, 0, 0, 0, 0, 0, 0, 0,
10562     0, 0, 0, 0, 0, 0, 0, 0,
10563     0, 0, 0, 0, 0, 0, 0, 0,
10564     0, 0, 0, 0, 0, 0, 0, 0,
10565     0, 0, 0, 0, 0, 0, 0, 0,
10566     0, 0, 9, 0, 0, 0, 0, 0,
10567     0, 0, 0, 0, 0, 0, 0, 0,
10568     0, 0, 0, 0, 0, 0, 0, 0,
10569     0, 0, 0, 0, 0, 0, 0, 0,
10570     0, 0, 0, 0, 0, 0, 0, 0,
10571     0, 0, 0, 0, 0, 0, 0, 0,
10572 };
10573 
10574 static const Q_UINT8 cmb_18[] = {
10575     0, 0, 0, 0, 0, 0, 0, 0,
10576     0, 0, 0, 0, 0, 0, 0, 0,
10577     0, 0, 0, 0, 0, 0, 0, 0,
10578     0, 0, 0, 0, 0, 0, 0, 0,
10579     0, 0, 0, 0, 0, 0, 0, 0,
10580     0, 0, 0, 0, 0, 0, 0, 0,
10581     0, 0, 0, 0, 0, 0, 0, 0,
10582     0, 0, 0, 0, 0, 0, 0, 0,
10583     0, 0, 0, 0, 0, 0, 0, 0,
10584     0, 0, 0, 0, 0, 0, 0, 0,
10585     0, 0, 0, 0, 0, 0, 0, 0,
10586     0, 0, 0, 0, 0, 0, 0, 0,
10587     0, 0, 0, 0, 0, 0, 0, 0,
10588     0, 0, 0, 0, 0, 0, 0, 0,
10589     0, 0, 0, 0, 0, 0, 0, 0,
10590     0, 0, 0, 0, 0, 0, 0, 0,
10591     0, 0, 0, 0, 0, 0, 0, 0,
10592     0, 0, 0, 0, 0, 0, 0, 0,
10593     0, 0, 0, 0, 0, 0, 0, 0,
10594     0, 0, 0, 0, 0, 0, 0, 0,
10595     0, 0, 0, 0, 0, 0, 0, 0,
10596     0, 228, 0, 0, 0, 0, 0, 0,
10597     0, 0, 0, 0, 0, 0, 0, 0,
10598     0, 0, 0, 0, 0, 0, 0, 0,
10599     0, 0, 0, 0, 0, 0, 0, 0,
10600     0, 0, 0, 0, 0, 0, 0, 0,
10601     0, 0, 0, 0, 0, 0, 0, 0,
10602     0, 0, 0, 0, 0, 0, 0, 0,
10603     0, 0, 0, 0, 0, 0, 0, 0,
10604     0, 0, 0, 0, 0, 0, 0, 0,
10605     0, 0, 0, 0, 0, 0, 0, 0,
10606     0, 0, 0, 0, 0, 0, 0, 0,
10607 };
10608 
10609 static const Q_UINT8 cmb_20[] = {
10610     0, 0, 0, 0, 0, 0, 0, 0,
10611     0, 0, 0, 0, 0, 0, 0, 0,
10612     0, 0, 0, 0, 0, 0, 0, 0,
10613     0, 0, 0, 0, 0, 0, 0, 0,
10614     0, 0, 0, 0, 0, 0, 0, 0,
10615     0, 0, 0, 0, 0, 0, 0, 0,
10616     0, 0, 0, 0, 0, 0, 0, 0,
10617     0, 0, 0, 0, 0, 0, 0, 0,
10618     0, 0, 0, 0, 0, 0, 0, 0,
10619     0, 0, 0, 0, 0, 0, 0, 0,
10620     0, 0, 0, 0, 0, 0, 0, 0,
10621     0, 0, 0, 0, 0, 0, 0, 0,
10622     0, 0, 0, 0, 0, 0, 0, 0,
10623     0, 0, 0, 0, 0, 0, 0, 0,
10624     0, 0, 0, 0, 0, 0, 0, 0,
10625     0, 0, 0, 0, 0, 0, 0, 0,
10626     0, 0, 0, 0, 0, 0, 0, 0,
10627     0, 0, 0, 0, 0, 0, 0, 0,
10628     0, 0, 0, 0, 0, 0, 0, 0,
10629     0, 0, 0, 0, 0, 0, 0, 0,
10630     0, 0, 0, 0, 0, 0, 0, 0,
10631     0, 0, 0, 0, 0, 0, 0, 0,
10632     0, 0, 0, 0, 0, 0, 0, 0,
10633     0, 0, 0, 0, 0, 0, 0, 0,
10634     0, 0, 0, 0, 0, 0, 0, 0,
10635     0, 0, 0, 0, 0, 0, 0, 0,
10636     230, 230, 1, 1, 230, 230, 230, 230,
10637     1, 1, 1, 230, 230, 0, 0, 0,
10638     0, 230, 0, 0, 0, 1, 1, 230,
10639     220, 230, 1, 0, 0, 0, 0, 0,
10640     0, 0, 0, 0, 0, 0, 0, 0,
10641     0, 0, 0, 0, 0, 0, 0, 0,
10642 };
10643 
10644 static const Q_UINT8 cmb_30[] = {
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, 218, 228, 232, 222, 224, 224,
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, 0,
10664     0, 8, 8, 0, 0, 0, 0, 0,
10665     0, 0, 0, 0, 0, 0, 0, 0,
10666     0, 0, 0, 0, 0, 0, 0, 0,
10667     0, 0, 0, 0, 0, 0, 0, 0,
10668     0, 0, 0, 0, 0, 0, 0, 0,
10669     0, 0, 0, 0, 0, 0, 0, 0,
10670     0, 0, 0, 0, 0, 0, 0, 0,
10671     0, 0, 0, 0, 0, 0, 0, 0,
10672     0, 0, 0, 0, 0, 0, 0, 0,
10673     0, 0, 0, 0, 0, 0, 0, 0,
10674     0, 0, 0, 0, 0, 0, 0, 0,
10675     0, 0, 0, 0, 0, 0, 0, 0,
10676     0, 0, 0, 0, 0, 0, 0, 0,
10677 };
10678 
10679 static const Q_UINT8 cmb_FB[] = {
10680     0, 0, 0, 0, 0, 0, 0, 0,
10681     0, 0, 0, 0, 0, 0, 0, 0,
10682     0, 0, 0, 0, 0, 0, 0, 0,
10683     0, 0, 0, 0, 0, 0, 26, 0,
10684     0, 0, 0, 0, 0, 0, 0, 0,
10685     0, 0, 0, 0, 0, 0, 0, 0,
10686     0, 0, 0, 0, 0, 0, 0, 0,
10687     0, 0, 0, 0, 0, 0, 0, 0,
10688     0, 0, 0, 0, 0, 0, 0, 0,
10689     0, 0, 0, 0, 0, 0, 0, 0,
10690     0, 0, 0, 0, 0, 0, 0, 0,
10691     0, 0, 0, 0, 0, 0, 0, 0,
10692     0, 0, 0, 0, 0, 0, 0, 0,
10693     0, 0, 0, 0, 0, 0, 0, 0,
10694     0, 0, 0, 0, 0, 0, 0, 0,
10695     0, 0, 0, 0, 0, 0, 0, 0,
10696     0, 0, 0, 0, 0, 0, 0, 0,
10697     0, 0, 0, 0, 0, 0, 0, 0,
10698     0, 0, 0, 0, 0, 0, 0, 0,
10699     0, 0, 0, 0, 0, 0, 0, 0,
10700     0, 0, 0, 0, 0, 0, 0, 0,
10701     0, 0, 0, 0, 0, 0, 0, 0,
10702     0, 0, 0, 0, 0, 0, 0, 0,
10703     0, 0, 0, 0, 0, 0, 0, 0,
10704     0, 0, 0, 0, 0, 0, 0, 0,
10705     0, 0, 0, 0, 0, 0, 0, 0,
10706     0, 0, 0, 0, 0, 0, 0, 0,
10707     0, 0, 0, 0, 0, 0, 0, 0,
10708     0, 0, 0, 0, 0, 0, 0, 0,
10709     0, 0, 0, 0, 0, 0, 0, 0,
10710     0, 0, 0, 0, 0, 0, 0, 0,
10711     0, 0, 0, 0, 0, 0, 0, 0,
10712 };
10713 
10714 static const Q_UINT8 cmb_FE[] = {
10715     0, 0, 0, 0, 0, 0, 0, 0,
10716     0, 0, 0, 0, 0, 0, 0, 0,
10717     0, 0, 0, 0, 0, 0, 0, 0,
10718     0, 0, 0, 0, 0, 0, 0, 0,
10719     230, 230, 230, 230, 0, 0, 0, 0,
10720     0, 0, 0, 0, 0, 0, 0, 0,
10721     0, 0, 0, 0, 0, 0, 0, 0,
10722     0, 0, 0, 0, 0, 0, 0, 0,
10723     0, 0, 0, 0, 0, 0, 0, 0,
10724     0, 0, 0, 0, 0, 0, 0, 0,
10725     0, 0, 0, 0, 0, 0, 0, 0,
10726     0, 0, 0, 0, 0, 0, 0, 0,
10727     0, 0, 0, 0, 0, 0, 0, 0,
10728     0, 0, 0, 0, 0, 0, 0, 0,
10729     0, 0, 0, 0, 0, 0, 0, 0,
10730     0, 0, 0, 0, 0, 0, 0, 0,
10731     0, 0, 0, 0, 0, 0, 0, 0,
10732     0, 0, 0, 0, 0, 0, 0, 0,
10733     0, 0, 0, 0, 0, 0, 0, 0,
10734     0, 0, 0, 0, 0, 0, 0, 0,
10735     0, 0, 0, 0, 0, 0, 0, 0,
10736     0, 0, 0, 0, 0, 0, 0, 0,
10737     0, 0, 0, 0, 0, 0, 0, 0,
10738     0, 0, 0, 0, 0, 0, 0, 0,
10739     0, 0, 0, 0, 0, 0, 0, 0,
10740     0, 0, 0, 0, 0, 0, 0, 0,
10741     0, 0, 0, 0, 0, 0, 0, 0,
10742     0, 0, 0, 0, 0, 0, 0, 0,
10743     0, 0, 0, 0, 0, 0, 0, 0,
10744     0, 0, 0, 0, 0, 0, 0, 0,
10745     0, 0, 0, 0, 0, 0, 0, 0,
10746     0, 0, 0, 0, 0, 0, 0, 0,
10747 };
10748 
10749 static const Q_UINT8 * const combining_info[256] = {
10750     cmb_00, cmb_00, cmb_00, cmb_03, cmb_04, cmb_05, cmb_06, cmb_07,
10751     cmb_00, cmb_09, cmb_0A, cmb_0B, cmb_0C, cmb_0D, cmb_0E, cmb_0F,
10752     cmb_10, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_17,
10753     cmb_18, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10754     cmb_20, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10755     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10756     cmb_30, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10757     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10758     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10759     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10760     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10761     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10762     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10763     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10764     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10765     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10766     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10767     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10768     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10769     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10770     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10771     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10772     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10773     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10774     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10775     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10776     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10777     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10778     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10779     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10780     cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00, cmb_00,
10781     cmb_00, cmb_00, cmb_00, cmb_FB, cmb_00, cmb_00, cmb_FE, cmb_00,
10782 };
10783 // 32506 bytes
10784 
10785 static const Q_UINT16 case_00[] = {
10786     0, 0, 0, 0, 0, 0, 0, 0,
10787     0, 0, 0, 0, 0, 0, 0, 0,
10788     0, 0, 0, 0, 0, 0, 0, 0,
10789     0, 0, 0, 0, 0, 0, 0, 0,
10790     0, 0, 0, 0, 0, 0, 0, 0,
10791     0, 0, 0, 0, 0, 0, 0, 0,
10792     0, 0, 0, 0, 0, 0, 0, 0,
10793     0, 0, 0, 0, 0, 0, 0, 0,
10794     0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
10795     0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
10796     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
10797     0x78, 0x79, 0x7a, 0, 0, 0, 0, 0,
10798     0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
10799     0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
10800     0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
10801     0x58, 0x59, 0x5a, 0, 0, 0, 0, 0,
10802     0, 0, 0, 0, 0, 0, 0, 0,
10803     0, 0, 0, 0, 0, 0, 0, 0,
10804     0, 0, 0, 0, 0, 0, 0, 0,
10805     0, 0, 0, 0, 0, 0, 0, 0,
10806     0, 0, 0, 0, 0, 0, 0, 0,
10807     0, 0, 0, 0, 0, 0, 0, 0,
10808     0, 0, 0, 0, 0, 0x39c, 0, 0,
10809     0, 0, 0, 0, 0, 0, 0, 0,
10810     0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
10811     0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
10812     0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0,
10813     0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0,
10814     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
10815     0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
10816     0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0,
10817     0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0x178,
10818 };
10819 
10820 static const Q_UINT16 case_01[] = {
10821     0x101, 0x100, 0x103, 0x102, 0x105, 0x104, 0x107, 0x106,
10822     0x109, 0x108, 0x10b, 0x10a, 0x10d, 0x10c, 0x10f, 0x10e,
10823     0x111, 0x110, 0x113, 0x112, 0x115, 0x114, 0x117, 0x116,
10824     0x119, 0x118, 0x11b, 0x11a, 0x11d, 0x11c, 0x11f, 0x11e,
10825     0x121, 0x120, 0x123, 0x122, 0x125, 0x124, 0x127, 0x126,
10826     0x129, 0x128, 0x12b, 0x12a, 0x12d, 0x12c, 0x12f, 0x12e,
10827     0x69, 0x49, 0x133, 0x132, 0x135, 0x134, 0x137, 0x136,
10828     0, 0x13a, 0x139, 0x13c, 0x13b, 0x13e, 0x13d, 0x140,
10829     0x13f, 0x142, 0x141, 0x144, 0x143, 0x146, 0x145, 0x148,
10830     0x147, 0, 0x14b, 0x14a, 0x14d, 0x14c, 0x14f, 0x14e,
10831     0x151, 0x150, 0x153, 0x152, 0x155, 0x154, 0x157, 0x156,
10832     0x159, 0x158, 0x15b, 0x15a, 0x15d, 0x15c, 0x15f, 0x15e,
10833     0x161, 0x160, 0x163, 0x162, 0x165, 0x164, 0x167, 0x166,
10834     0x169, 0x168, 0x16b, 0x16a, 0x16d, 0x16c, 0x16f, 0x16e,
10835     0x171, 0x170, 0x173, 0x172, 0x175, 0x174, 0x177, 0x176,
10836     0xff, 0x17a, 0x179, 0x17c, 0x17b, 0x17e, 0x17d, 0x53,
10837     0, 0x253, 0x183, 0x182, 0x185, 0x184, 0x254, 0x188,
10838     0x187, 0x256, 0x257, 0x18c, 0x18b, 0, 0x1dd, 0x259,
10839     0x25b, 0x192, 0x191, 0x260, 0x263, 0x1f6, 0x269, 0x268,
10840     0x199, 0x198, 0, 0, 0x26f, 0x272, 0x220, 0x275,
10841     0x1a1, 0x1a0, 0x1a3, 0x1a2, 0x1a5, 0x1a4, 0x280, 0x1a8,
10842     0x1a7, 0x283, 0, 0, 0x1ad, 0x1ac, 0x288, 0x1b0,
10843     0x1af, 0x28a, 0x28b, 0x1b4, 0x1b3, 0x1b6, 0x1b5, 0x292,
10844     0x1b9, 0x1b8, 0, 0, 0x1bd, 0x1bc, 0, 0x1f7,
10845     0, 0, 0, 0, 0x1c6, 0x1c4, 0x1c4, 0x1c9,
10846     0x1c7, 0x1c7, 0x1cc, 0x1ca, 0x1ca, 0x1ce, 0x1cd, 0x1d0,
10847     0x1cf, 0x1d2, 0x1d1, 0x1d4, 0x1d3, 0x1d6, 0x1d5, 0x1d8,
10848     0x1d7, 0x1da, 0x1d9, 0x1dc, 0x1db, 0x18e, 0x1df, 0x1de,
10849     0x1e1, 0x1e0, 0x1e3, 0x1e2, 0x1e5, 0x1e4, 0x1e7, 0x1e6,
10850     0x1e9, 0x1e8, 0x1eb, 0x1ea, 0x1ed, 0x1ec, 0x1ef, 0x1ee,
10851     0, 0x1f3, 0x1f1, 0x1f1, 0x1f5, 0x1f4, 0x195, 0x1bf,
10852     0x1f9, 0x1f8, 0x1fb, 0x1fa, 0x1fd, 0x1fc, 0x1ff, 0x1fe,
10853 };
10854 
10855 static const Q_UINT16 case_02[] = {
10856     0x201, 0x200, 0x203, 0x202, 0x205, 0x204, 0x207, 0x206,
10857     0x209, 0x208, 0x20b, 0x20a, 0x20d, 0x20c, 0x20f, 0x20e,
10858     0x211, 0x210, 0x213, 0x212, 0x215, 0x214, 0x217, 0x216,
10859     0x219, 0x218, 0x21b, 0x21a, 0x21d, 0x21c, 0x21f, 0x21e,
10860     0x19e, 0, 0x223, 0x222, 0x225, 0x224, 0x227, 0x226,
10861     0x229, 0x228, 0x22b, 0x22a, 0x22d, 0x22c, 0x22f, 0x22e,
10862     0x231, 0x230, 0x233, 0x232, 0, 0, 0, 0,
10863     0, 0, 0, 0, 0, 0, 0, 0,
10864     0, 0, 0, 0, 0, 0, 0, 0,
10865     0, 0, 0, 0, 0, 0, 0, 0,
10866     0, 0, 0, 0x181, 0x186, 0, 0x189, 0x18a,
10867     0, 0x18f, 0, 0x190, 0, 0, 0, 0,
10868     0x193, 0, 0, 0x194, 0, 0, 0, 0,
10869     0x197, 0x196, 0, 0, 0, 0, 0, 0x19c,
10870     0, 0, 0x19d, 0, 0, 0x19f, 0, 0,
10871     0, 0, 0, 0, 0, 0, 0, 0,
10872     0x1a6, 0, 0, 0x1a9, 0, 0, 0, 0,
10873     0x1ae, 0, 0x1b1, 0x1b2, 0, 0, 0, 0,
10874     0, 0, 0x1b7, 0, 0, 0, 0, 0,
10875     0, 0, 0, 0, 0, 0, 0, 0,
10876     0, 0, 0, 0, 0, 0, 0, 0,
10877     0, 0, 0, 0, 0, 0, 0, 0,
10878     0, 0, 0, 0, 0, 0, 0, 0,
10879     0, 0, 0, 0, 0, 0, 0, 0,
10880     0, 0, 0, 0, 0, 0, 0, 0,
10881     0, 0, 0, 0, 0, 0, 0, 0,
10882     0, 0, 0, 0, 0, 0, 0, 0,
10883     0, 0, 0, 0, 0, 0, 0, 0,
10884     0, 0, 0, 0, 0, 0, 0, 0,
10885     0, 0, 0, 0, 0, 0, 0, 0,
10886     0, 0, 0, 0, 0, 0, 0, 0,
10887     0, 0, 0, 0, 0, 0, 0, 0,
10888 };
10889 
10890 static const Q_UINT16 case_03[] = {
10891     0, 0, 0, 0, 0, 0, 0, 0,
10892     0, 0, 0, 0, 0, 0, 0, 0,
10893     0, 0, 0, 0, 0, 0, 0, 0,
10894     0, 0, 0, 0, 0, 0, 0, 0,
10895     0, 0, 0, 0, 0, 0, 0, 0,
10896     0, 0, 0, 0, 0, 0, 0, 0,
10897     0, 0, 0, 0, 0, 0, 0, 0,
10898     0, 0, 0, 0, 0, 0, 0, 0,
10899     0, 0, 0, 0, 0, 0x399, 0, 0,
10900     0, 0, 0, 0, 0, 0, 0, 0,
10901     0, 0, 0, 0, 0, 0, 0, 0,
10902     0, 0, 0, 0, 0, 0, 0, 0,
10903     0, 0, 0, 0, 0, 0, 0, 0,
10904     0, 0, 0, 0, 0, 0, 0, 0,
10905     0, 0, 0, 0, 0, 0, 0, 0,
10906     0, 0, 0, 0, 0, 0, 0, 0,
10907     0, 0, 0, 0, 0, 0, 0x3ac, 0,
10908     0x3ad, 0x3ae, 0x3af, 0, 0x3cc, 0, 0x3cd, 0x3ce,
10909     0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7,
10910     0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf,
10911     0x3c0, 0x3c1, 0, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7,
10912     0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x386, 0x388, 0x389, 0x38a,
10913     0, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397,
10914     0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f,
10915     0x3a0, 0x3a1, 0x3a3, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7,
10916     0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x38c, 0x38e, 0x38f, 0,
10917     0x392, 0x398, 0, 0, 0, 0x3a6, 0x3a0, 0,
10918     0x3d9, 0x3d8, 0x3db, 0x3da, 0x3dd, 0x3dc, 0x3df, 0x3de,
10919     0x3e1, 0x3e0, 0x3e3, 0x3e2, 0x3e5, 0x3e4, 0x3e7, 0x3e6,
10920     0x3e9, 0x3e8, 0x3eb, 0x3ea, 0x3ed, 0x3ec, 0x3ef, 0x3ee,
10921     0x39a, 0x3a1, 0x3a3, 0, 0x3b8, 0x395, 0, 0,
10922     0, 0, 0, 0, 0, 0, 0, 0,
10923 };
10924 
10925 static const Q_UINT16 case_04[] = {
10926     0x450, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457,
10927     0x458, 0x459, 0x45a, 0x45b, 0x45c, 0x45d, 0x45e, 0x45f,
10928     0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437,
10929     0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f,
10930     0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447,
10931     0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f,
10932     0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417,
10933     0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f,
10934     0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427,
10935     0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f,
10936     0x400, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407,
10937     0x408, 0x409, 0x40a, 0x40b, 0x40c, 0x40d, 0x40e, 0x40f,
10938     0x461, 0x460, 0x463, 0x462, 0x465, 0x464, 0x467, 0x466,
10939     0x469, 0x468, 0x46b, 0x46a, 0x46d, 0x46c, 0x46f, 0x46e,
10940     0x471, 0x470, 0x473, 0x472, 0x475, 0x474, 0x477, 0x476,
10941     0x479, 0x478, 0x47b, 0x47a, 0x47d, 0x47c, 0x47f, 0x47e,
10942     0x481, 0x480, 0, 0, 0, 0, 0, 0,
10943     0, 0, 0x48b, 0x48a, 0x48d, 0x48c, 0x48f, 0x48e,
10944     0x491, 0x490, 0x493, 0x492, 0x495, 0x494, 0x497, 0x496,
10945     0x499, 0x498, 0x49b, 0x49a, 0x49d, 0x49c, 0x49f, 0x49e,
10946     0x4a1, 0x4a0, 0x4a3, 0x4a2, 0x4a5, 0x4a4, 0x4a7, 0x4a6,
10947     0x4a9, 0x4a8, 0x4ab, 0x4aa, 0x4ad, 0x4ac, 0x4af, 0x4ae,
10948     0x4b1, 0x4b0, 0x4b3, 0x4b2, 0x4b5, 0x4b4, 0x4b7, 0x4b6,
10949     0x4b9, 0x4b8, 0x4bb, 0x4ba, 0x4bd, 0x4bc, 0x4bf, 0x4be,
10950     0, 0x4c2, 0x4c1, 0x4c4, 0x4c3, 0x4c6, 0x4c5, 0x4c8,
10951     0x4c7, 0x4ca, 0x4c9, 0x4cc, 0x4cb, 0x4ce, 0x4cd, 0,
10952     0x4d1, 0x4d0, 0x4d3, 0x4d2, 0x4d5, 0x4d4, 0x4d7, 0x4d6,
10953     0x4d9, 0x4d8, 0x4db, 0x4da, 0x4dd, 0x4dc, 0x4df, 0x4de,
10954     0x4e1, 0x4e0, 0x4e3, 0x4e2, 0x4e5, 0x4e4, 0x4e7, 0x4e6,
10955     0x4e9, 0x4e8, 0x4eb, 0x4ea, 0x4ed, 0x4ec, 0x4ef, 0x4ee,
10956     0x4f1, 0x4f0, 0x4f3, 0x4f2, 0x4f5, 0x4f4, 0, 0,
10957     0x4f9, 0x4f8, 0, 0, 0, 0, 0, 0,
10958 };
10959 
10960 static const Q_UINT16 case_05[] = {
10961     0x501, 0x500, 0x503, 0x502, 0x505, 0x504, 0x507, 0x506,
10962     0x509, 0x508, 0x50b, 0x50a, 0x50d, 0x50c, 0x50f, 0x50e,
10963     0, 0, 0, 0, 0, 0, 0, 0,
10964     0, 0, 0, 0, 0, 0, 0, 0,
10965     0, 0, 0, 0, 0, 0, 0, 0,
10966     0, 0, 0, 0, 0, 0, 0, 0,
10967     0, 0x561, 0x562, 0x563, 0x564, 0x565, 0x566, 0x567,
10968     0x568, 0x569, 0x56a, 0x56b, 0x56c, 0x56d, 0x56e, 0x56f,
10969     0x570, 0x571, 0x572, 0x573, 0x574, 0x575, 0x576, 0x577,
10970     0x578, 0x579, 0x57a, 0x57b, 0x57c, 0x57d, 0x57e, 0x57f,
10971     0x580, 0x581, 0x582, 0x583, 0x584, 0x585, 0x586, 0,
10972     0, 0, 0, 0, 0, 0, 0, 0,
10973     0, 0x531, 0x532, 0x533, 0x534, 0x535, 0x536, 0x537,
10974     0x538, 0x539, 0x53a, 0x53b, 0x53c, 0x53d, 0x53e, 0x53f,
10975     0x540, 0x541, 0x542, 0x543, 0x544, 0x545, 0x546, 0x547,
10976     0x548, 0x549, 0x54a, 0x54b, 0x54c, 0x54d, 0x54e, 0x54f,
10977     0x550, 0x551, 0x552, 0x553, 0x554, 0x555, 0x556, 0,
10978     0, 0, 0, 0, 0, 0, 0, 0,
10979     0, 0, 0, 0, 0, 0, 0, 0,
10980     0, 0, 0, 0, 0, 0, 0, 0,
10981     0, 0, 0, 0, 0, 0, 0, 0,
10982     0, 0, 0, 0, 0, 0, 0, 0,
10983     0, 0, 0, 0, 0, 0, 0, 0,
10984     0, 0, 0, 0, 0, 0, 0, 0,
10985     0, 0, 0, 0, 0, 0, 0, 0,
10986     0, 0, 0, 0, 0, 0, 0, 0,
10987     0, 0, 0, 0, 0, 0, 0, 0,
10988     0, 0, 0, 0, 0, 0, 0, 0,
10989     0, 0, 0, 0, 0, 0, 0, 0,
10990     0, 0, 0, 0, 0, 0, 0, 0,
10991     0, 0, 0, 0, 0, 0, 0, 0,
10992     0, 0, 0, 0, 0, 0, 0, 0,
10993 };
10994 
10995 static const Q_UINT16 case_1E[] = {
10996     0x1e01, 0x1e00, 0x1e03, 0x1e02, 0x1e05, 0x1e04, 0x1e07, 0x1e06,
10997     0x1e09, 0x1e08, 0x1e0b, 0x1e0a, 0x1e0d, 0x1e0c, 0x1e0f, 0x1e0e,
10998     0x1e11, 0x1e10, 0x1e13, 0x1e12, 0x1e15, 0x1e14, 0x1e17, 0x1e16,
10999     0x1e19, 0x1e18, 0x1e1b, 0x1e1a, 0x1e1d, 0x1e1c, 0x1e1f, 0x1e1e,
11000     0x1e21, 0x1e20, 0x1e23, 0x1e22, 0x1e25, 0x1e24, 0x1e27, 0x1e26,
11001     0x1e29, 0x1e28, 0x1e2b, 0x1e2a, 0x1e2d, 0x1e2c, 0x1e2f, 0x1e2e,
11002     0x1e31, 0x1e30, 0x1e33, 0x1e32, 0x1e35, 0x1e34, 0x1e37, 0x1e36,
11003     0x1e39, 0x1e38, 0x1e3b, 0x1e3a, 0x1e3d, 0x1e3c, 0x1e3f, 0x1e3e,
11004     0x1e41, 0x1e40, 0x1e43, 0x1e42, 0x1e45, 0x1e44, 0x1e47, 0x1e46,
11005     0x1e49, 0x1e48, 0x1e4b, 0x1e4a, 0x1e4d, 0x1e4c, 0x1e4f, 0x1e4e,
11006     0x1e51, 0x1e50, 0x1e53, 0x1e52, 0x1e55, 0x1e54, 0x1e57, 0x1e56,
11007     0x1e59, 0x1e58, 0x1e5b, 0x1e5a, 0x1e5d, 0x1e5c, 0x1e5f, 0x1e5e,
11008     0x1e61, 0x1e60, 0x1e63, 0x1e62, 0x1e65, 0x1e64, 0x1e67, 0x1e66,
11009     0x1e69, 0x1e68, 0x1e6b, 0x1e6a, 0x1e6d, 0x1e6c, 0x1e6f, 0x1e6e,
11010     0x1e71, 0x1e70, 0x1e73, 0x1e72, 0x1e75, 0x1e74, 0x1e77, 0x1e76,
11011     0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, 0x1e7f, 0x1e7e,
11012     0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, 0x1e86,
11013     0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e,
11014     0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0, 0,
11015     0, 0, 0, 0x1e60, 0, 0, 0, 0,
11016     0x1ea1, 0x1ea0, 0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6,
11017     0x1ea9, 0x1ea8, 0x1eab, 0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae,
11018     0x1eb1, 0x1eb0, 0x1eb3, 0x1eb2, 0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6,
11019     0x1eb9, 0x1eb8, 0x1ebb, 0x1eba, 0x1ebd, 0x1ebc, 0x1ebf, 0x1ebe,
11020     0x1ec1, 0x1ec0, 0x1ec3, 0x1ec2, 0x1ec5, 0x1ec4, 0x1ec7, 0x1ec6,
11021     0x1ec9, 0x1ec8, 0x1ecb, 0x1eca, 0x1ecd, 0x1ecc, 0x1ecf, 0x1ece,
11022     0x1ed1, 0x1ed0, 0x1ed3, 0x1ed2, 0x1ed5, 0x1ed4, 0x1ed7, 0x1ed6,
11023     0x1ed9, 0x1ed8, 0x1edb, 0x1eda, 0x1edd, 0x1edc, 0x1edf, 0x1ede,
11024     0x1ee1, 0x1ee0, 0x1ee3, 0x1ee2, 0x1ee5, 0x1ee4, 0x1ee7, 0x1ee6,
11025     0x1ee9, 0x1ee8, 0x1eeb, 0x1eea, 0x1eed, 0x1eec, 0x1eef, 0x1eee,
11026     0x1ef1, 0x1ef0, 0x1ef3, 0x1ef2, 0x1ef5, 0x1ef4, 0x1ef7, 0x1ef6,
11027     0x1ef9, 0x1ef8, 0, 0, 0, 0, 0, 0,
11028 };
11029 
11030 static const Q_UINT16 case_1F[] = {
11031     0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e, 0x1f0f,
11032     0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07,
11033     0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0, 0,
11034     0x1f10, 0x1f11, 0x1f12, 0x1f13, 0x1f14, 0x1f15, 0, 0,
11035     0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f,
11036     0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27,
11037     0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f,
11038     0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37,
11039     0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0, 0,
11040     0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0, 0,
11041     0, 0x1f59, 0, 0x1f5b, 0, 0x1f5d, 0, 0x1f5f,
11042     0, 0x1f51, 0, 0x1f53, 0, 0x1f55, 0, 0x1f57,
11043     0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f,
11044     0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67,
11045     0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fda, 0x1fdb,
11046     0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa, 0x1ffb, 0, 0,
11047     0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
11048     0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
11049     0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
11050     0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
11051     0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
11052     0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
11053     0x1fb8, 0x1fb9, 0, 0x1fbc, 0, 0, 0, 0,
11054     0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x1fb3, 0, 0x399, 0,
11055     0, 0, 0, 0x1fcc, 0, 0, 0, 0,
11056     0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x1fc3, 0, 0, 0,
11057     0x1fd8, 0x1fd9, 0, 0, 0, 0, 0, 0,
11058     0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0, 0, 0, 0,
11059     0x1fe8, 0x1fe9, 0, 0, 0, 0x1fec, 0, 0,
11060     0x1fe0, 0x1fe1, 0x1f7a, 0x1f7b, 0x1fe5, 0, 0, 0,
11061     0, 0, 0, 0x1ffc, 0, 0, 0, 0,
11062     0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 0x1ff3, 0, 0, 0,
11063 };
11064 
11065 static const Q_UINT16 case_21[] = {
11066     0, 0, 0, 0, 0, 0, 0, 0,
11067     0, 0, 0, 0, 0, 0, 0, 0,
11068     0, 0, 0, 0, 0, 0, 0, 0,
11069     0, 0, 0, 0, 0, 0, 0, 0,
11070     0, 0, 0, 0, 0, 0, 0x3c9, 0,
11071     0, 0, 0x6b, 0xe5, 0, 0, 0, 0,
11072     0, 0, 0, 0, 0, 0, 0, 0,
11073     0, 0, 0, 0, 0, 0, 0, 0,
11074     0, 0, 0, 0, 0, 0, 0, 0,
11075     0, 0, 0, 0, 0, 0, 0, 0,
11076     0, 0, 0, 0, 0, 0, 0, 0,
11077     0, 0, 0, 0, 0, 0, 0, 0,
11078     0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177,
11079     0x2178, 0x2179, 0x217a, 0x217b, 0x217c, 0x217d, 0x217e, 0x217f,
11080     0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
11081     0x2168, 0x2169, 0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f,
11082     0, 0, 0, 0, 0, 0, 0, 0,
11083     0, 0, 0, 0, 0, 0, 0, 0,
11084     0, 0, 0, 0, 0, 0, 0, 0,
11085     0, 0, 0, 0, 0, 0, 0, 0,
11086     0, 0, 0, 0, 0, 0, 0, 0,
11087     0, 0, 0, 0, 0, 0, 0, 0,
11088     0, 0, 0, 0, 0, 0, 0, 0,
11089     0, 0, 0, 0, 0, 0, 0, 0,
11090     0, 0, 0, 0, 0, 0, 0, 0,
11091     0, 0, 0, 0, 0, 0, 0, 0,
11092     0, 0, 0, 0, 0, 0, 0, 0,
11093     0, 0, 0, 0, 0, 0, 0, 0,
11094     0, 0, 0, 0, 0, 0, 0, 0,
11095     0, 0, 0, 0, 0, 0, 0, 0,
11096     0, 0, 0, 0, 0, 0, 0, 0,
11097     0, 0, 0, 0, 0, 0, 0, 0,
11098 };
11099 
11100 static const Q_UINT16 case_24[] = {
11101     0, 0, 0, 0, 0, 0, 0, 0,
11102     0, 0, 0, 0, 0, 0, 0, 0,
11103     0, 0, 0, 0, 0, 0, 0, 0,
11104     0, 0, 0, 0, 0, 0, 0, 0,
11105     0, 0, 0, 0, 0, 0, 0, 0,
11106     0, 0, 0, 0, 0, 0, 0, 0,
11107     0, 0, 0, 0, 0, 0, 0, 0,
11108     0, 0, 0, 0, 0, 0, 0, 0,
11109     0, 0, 0, 0, 0, 0, 0, 0,
11110     0, 0, 0, 0, 0, 0, 0, 0,
11111     0, 0, 0, 0, 0, 0, 0, 0,
11112     0, 0, 0, 0, 0, 0, 0, 0,
11113     0, 0, 0, 0, 0, 0, 0, 0,
11114     0, 0, 0, 0, 0, 0, 0, 0,
11115     0, 0, 0, 0, 0, 0, 0, 0,
11116     0, 0, 0, 0, 0, 0, 0, 0,
11117     0, 0, 0, 0, 0, 0, 0, 0,
11118     0, 0, 0, 0, 0, 0, 0, 0,
11119     0, 0, 0, 0, 0, 0, 0, 0,
11120     0, 0, 0, 0, 0, 0, 0, 0,
11121     0, 0, 0, 0, 0, 0, 0, 0,
11122     0, 0, 0, 0, 0, 0, 0, 0,
11123     0, 0, 0, 0, 0, 0, 0x24d0, 0x24d1,
11124     0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9,
11125     0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1,
11126     0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9,
11127     0x24b6, 0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc, 0x24bd,
11128     0x24be, 0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4, 0x24c5,
11129     0x24c6, 0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc, 0x24cd,
11130     0x24ce, 0x24cf, 0, 0, 0, 0, 0, 0,
11131     0, 0, 0, 0, 0, 0, 0, 0,
11132     0, 0, 0, 0, 0, 0, 0, 0,
11133 };
11134 
11135 static const Q_UINT16 case_FF[] = {
11136     0, 0, 0, 0, 0, 0, 0, 0,
11137     0, 0, 0, 0, 0, 0, 0, 0,
11138     0, 0, 0, 0, 0, 0, 0, 0,
11139     0, 0, 0, 0, 0, 0, 0, 0,
11140     0, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
11141     0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
11142     0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
11143     0xff58, 0xff59, 0xff5a, 0, 0, 0, 0, 0,
11144     0, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27,
11145     0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
11146     0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
11147     0xff38, 0xff39, 0xff3a, 0, 0, 0, 0, 0,
11148     0, 0, 0, 0, 0, 0, 0, 0,
11149     0, 0, 0, 0, 0, 0, 0, 0,
11150     0, 0, 0, 0, 0, 0, 0, 0,
11151     0, 0, 0, 0, 0, 0, 0, 0,
11152     0, 0, 0, 0, 0, 0, 0, 0,
11153     0, 0, 0, 0, 0, 0, 0, 0,
11154     0, 0, 0, 0, 0, 0, 0, 0,
11155     0, 0, 0, 0, 0, 0, 0, 0,
11156     0, 0, 0, 0, 0, 0, 0, 0,
11157     0, 0, 0, 0, 0, 0, 0, 0,
11158     0, 0, 0, 0, 0, 0, 0, 0,
11159     0, 0, 0, 0, 0, 0, 0, 0,
11160     0, 0, 0, 0, 0, 0, 0, 0,
11161     0, 0, 0, 0, 0, 0, 0, 0,
11162     0, 0, 0, 0, 0, 0, 0, 0,
11163     0, 0, 0, 0, 0, 0, 0, 0,
11164     0, 0, 0, 0, 0, 0, 0, 0,
11165     0, 0, 0, 0, 0, 0, 0, 0,
11166     0, 0, 0, 0, 0, 0, 0, 0,
11167     0, 0, 0, 0, 0, 0, 0, 0,
11168 };
11169 
11170 static const Q_UINT16 * const case_info[256] = {
11171     case_00, case_01, case_02, case_03, case_04, case_05, 0, 0,
11172     0, 0, 0, 0, 0, 0, 0, 0,
11173     0, 0, 0, 0, 0, 0, 0, 0,
11174     0, 0, 0, 0, 0, 0, case_1E, case_1F,
11175     0, case_21, 0, 0, case_24, 0, 0, 0,
11176     0, 0, 0, 0, 0, 0, 0, 0,
11177     0, 0, 0, 0, 0, 0, 0, 0,
11178     0, 0, 0, 0, 0, 0, 0, 0,
11179     0, 0, 0, 0, 0, 0, 0, 0,
11180     0, 0, 0, 0, 0, 0, 0, 0,
11181     0, 0, 0, 0, 0, 0, 0, 0,
11182     0, 0, 0, 0, 0, 0, 0, 0,
11183     0, 0, 0, 0, 0, 0, 0, 0,
11184     0, 0, 0, 0, 0, 0, 0, 0,
11185     0, 0, 0, 0, 0, 0, 0, 0,
11186     0, 0, 0, 0, 0, 0, 0, 0,
11187     0, 0, 0, 0, 0, 0, 0, 0,
11188     0, 0, 0, 0, 0, 0, 0, 0,
11189     0, 0, 0, 0, 0, 0, 0, 0,
11190     0, 0, 0, 0, 0, 0, 0, 0,
11191     0, 0, 0, 0, 0, 0, 0, 0,
11192     0, 0, 0, 0, 0, 0, 0, 0,
11193     0, 0, 0, 0, 0, 0, 0, 0,
11194     0, 0, 0, 0, 0, 0, 0, 0,
11195     0, 0, 0, 0, 0, 0, 0, 0,
11196     0, 0, 0, 0, 0, 0, 0, 0,
11197     0, 0, 0, 0, 0, 0, 0, 0,
11198     0, 0, 0, 0, 0, 0, 0, 0,
11199     0, 0, 0, 0, 0, 0, 0, 0,
11200     0, 0, 0, 0, 0, 0, 0, 0,
11201     0, 0, 0, 0, 0, 0, 0, 0,
11202     0, 0, 0, 0, 0, 0, 0, case_FF,
11203 };
11204 // 39162 bytes
11205 
11206 static const Q_INT8 num_00[] = {
11207     -1, -1, -1, -1, -1, -1, -1, -1,
11208     -1, -1, -1, -1, -1, -1, -1, -1,
11209     -1, -1, -1, -1, -1, -1, -1, -1,
11210     -1, -1, -1, -1, -1, -1, -1, -1,
11211     -1, -1, -1, -1, -1, -1, -1, -1,
11212     -1, -1, -1, -1, -1, -1, -1, -1,
11213     0, 1, 2, 3, 4, 5, 6, 7,
11214     8, 9, -1, -1, -1, -1, -1, -1,
11215     -1, -1, -1, -1, -1, -1, -1, -1,
11216     -1, -1, -1, -1, -1, -1, -1, -1,
11217     -1, -1, -1, -1, -1, -1, -1, -1,
11218     -1, -1, -1, -1, -1, -1, -1, -1,
11219     -1, -1, -1, -1, -1, -1, -1, -1,
11220     -1, -1, -1, -1, -1, -1, -1, -1,
11221     -1, -1, -1, -1, -1, -1, -1, -1,
11222     -1, -1, -1, -1, -1, -1, -1, -1,
11223     -1, -1, -1, -1, -1, -1, -1, -1,
11224     -1, -1, -1, -1, -1, -1, -1, -1,
11225     -1, -1, -1, -1, -1, -1, -1, -1,
11226     -1, -1, -1, -1, -1, -1, -1, -1,
11227     -1, -1, -1, -1, -1, -1, -1, -1,
11228     -1, -1, -1, -1, -1, -1, -1, -1,
11229     -1, -1, 2, 3, -1, -1, -1, -1,
11230     -1, 1, -1, -1, -1, -1, -1, -1,
11231     -1, -1, -1, -1, -1, -1, -1, -1,
11232     -1, -1, -1, -1, -1, -1, -1, -1,
11233     -1, -1, -1, -1, -1, -1, -1, -1,
11234     -1, -1, -1, -1, -1, -1, -1, -1,
11235     -1, -1, -1, -1, -1, -1, -1, -1,
11236     -1, -1, -1, -1, -1, -1, -1, -1,
11237     -1, -1, -1, -1, -1, -1, -1, -1,
11238     -1, -1, -1, -1, -1, -1, -1, -1,
11239 };
11240 
11241 static const Q_INT8 num_06[] = {
11242     -1, -1, -1, -1, -1, -1, -1, -1,
11243     -1, -1, -1, -1, -1, -1, -1, -1,
11244     -1, -1, -1, -1, -1, -1, -1, -1,
11245     -1, -1, -1, -1, -1, -1, -1, -1,
11246     -1, -1, -1, -1, -1, -1, -1, -1,
11247     -1, -1, -1, -1, -1, -1, -1, -1,
11248     -1, -1, -1, -1, -1, -1, -1, -1,
11249     -1, -1, -1, -1, -1, -1, -1, -1,
11250     -1, -1, -1, -1, -1, -1, -1, -1,
11251     -1, -1, -1, -1, -1, -1, -1, -1,
11252     -1, -1, -1, -1, -1, -1, -1, -1,
11253     -1, -1, -1, -1, -1, -1, -1, -1,
11254     0, 1, 2, 3, 4, 5, 6, 7,
11255     8, 9, -1, -1, -1, -1, -1, -1,
11256     -1, -1, -1, -1, -1, -1, -1, -1,
11257     -1, -1, -1, -1, -1, -1, -1, -1,
11258     -1, -1, -1, -1, -1, -1, -1, -1,
11259     -1, -1, -1, -1, -1, -1, -1, -1,
11260     -1, -1, -1, -1, -1, -1, -1, -1,
11261     -1, -1, -1, -1, -1, -1, -1, -1,
11262     -1, -1, -1, -1, -1, -1, -1, -1,
11263     -1, -1, -1, -1, -1, -1, -1, -1,
11264     -1, -1, -1, -1, -1, -1, -1, -1,
11265     -1, -1, -1, -1, -1, -1, -1, -1,
11266     -1, -1, -1, -1, -1, -1, -1, -1,
11267     -1, -1, -1, -1, -1, -1, -1, -1,
11268     -1, -1, -1, -1, -1, -1, -1, -1,
11269     -1, -1, -1, -1, -1, -1, -1, -1,
11270     -1, -1, -1, -1, -1, -1, -1, -1,
11271     -1, -1, -1, -1, -1, -1, -1, -1,
11272     0, 1, 2, 3, 4, 5, 6, 7,
11273     8, 9, -1, -1, -1, -1, -1, -1,
11274 };
11275 
11276 static const Q_INT8 num_09[] = {
11277     -1, -1, -1, -1, -1, -1, -1, -1,
11278     -1, -1, -1, -1, -1, -1, -1, -1,
11279     -1, -1, -1, -1, -1, -1, -1, -1,
11280     -1, -1, -1, -1, -1, -1, -1, -1,
11281     -1, -1, -1, -1, -1, -1, -1, -1,
11282     -1, -1, -1, -1, -1, -1, -1, -1,
11283     -1, -1, -1, -1, -1, -1, -1, -1,
11284     -1, -1, -1, -1, -1, -1, -1, -1,
11285     -1, -1, -1, -1, -1, -1, -1, -1,
11286     -1, -1, -1, -1, -1, -1, -1, -1,
11287     -1, -1, -1, -1, -1, -1, -1, -1,
11288     -1, -1, -1, -1, -1, -1, -1, -1,
11289     -1, -1, -1, -1, -1, -1, 0, 1,
11290     2, 3, 4, 5, 6, 7, 8, 9,
11291     -1, -1, -1, -1, -1, -1, -1, -1,
11292     -1, -1, -1, -1, -1, -1, -1, -1,
11293     -1, -1, -1, -1, -1, -1, -1, -1,
11294     -1, -1, -1, -1, -1, -1, -1, -1,
11295     -1, -1, -1, -1, -1, -1, -1, -1,
11296     -1, -1, -1, -1, -1, -1, -1, -1,
11297     -1, -1, -1, -1, -1, -1, -1, -1,
11298     -1, -1, -1, -1, -1, -1, -1, -1,
11299     -1, -1, -1, -1, -1, -1, -1, -1,
11300     -1, -1, -1, -1, -1, -1, -1, -1,
11301     -1, -1, -1, -1, -1, -1, -1, -1,
11302     -1, -1, -1, -1, -1, -1, -1, -1,
11303     -1, -1, -1, -1, -1, -1, -1, -1,
11304     -1, -1, -1, -1, -1, -1, -1, -1,
11305     -1, -1, -1, -1, -1, -1, 0, 1,
11306     2, 3, 4, 5, 6, 7, 8, 9,
11307     -1, -1, -1, -1, -1, -1, -1, -1,
11308     -1, -1, -1, -1, -1, -1, -1, -1,
11309 };
11310 
11311 static const Q_INT8 num_0B[] = {
11312     -1, -1, -1, -1, -1, -1, -1, -1,
11313     -1, -1, -1, -1, -1, -1, -1, -1,
11314     -1, -1, -1, -1, -1, -1, -1, -1,
11315     -1, -1, -1, -1, -1, -1, -1, -1,
11316     -1, -1, -1, -1, -1, -1, -1, -1,
11317     -1, -1, -1, -1, -1, -1, -1, -1,
11318     -1, -1, -1, -1, -1, -1, -1, -1,
11319     -1, -1, -1, -1, -1, -1, -1, -1,
11320     -1, -1, -1, -1, -1, -1, -1, -1,
11321     -1, -1, -1, -1, -1, -1, -1, -1,
11322     -1, -1, -1, -1, -1, -1, -1, -1,
11323     -1, -1, -1, -1, -1, -1, -1, -1,
11324     -1, -1, -1, -1, -1, -1, 0, 1,
11325     2, 3, 4, 5, 6, 7, 8, 9,
11326     -1, -1, -1, -1, -1, -1, -1, -1,
11327     -1, -1, -1, -1, -1, -1, -1, -1,
11328     -1, -1, -1, -1, -1, -1, -1, -1,
11329     -1, -1, -1, -1, -1, -1, -1, -1,
11330     -1, -1, -1, -1, -1, -1, -1, -1,
11331     -1, -1, -1, -1, -1, -1, -1, -1,
11332     -1, -1, -1, -1, -1, -1, -1, -1,
11333     -1, -1, -1, -1, -1, -1, -1, -1,
11334     -1, -1, -1, -1, -1, -1, -1, -1,
11335     -1, -1, -1, -1, -1, -1, -1, -1,
11336     -1, -1, -1, -1, -1, -1, -1, -1,
11337     -1, -1, -1, -1, -1, -1, -1, -1,
11338     -1, -1, -1, -1, -1, -1, -1, -1,
11339     -1, -1, -1, -1, -1, -1, -1, -1,
11340     -1, -1, -1, -1, -1, -1, -1, 1,
11341     2, 3, 4, 5, 6, 7, 8, 9,
11342     -1, -1, -1, -1, -1, -1, -1, -1,
11343     -1, -1, -1, -1, -1, -1, -1, -1,
11344 };
11345 
11346 static const Q_INT8 num_0D[] = {
11347     -1, -1, -1, -1, -1, -1, -1, -1,
11348     -1, -1, -1, -1, -1, -1, -1, -1,
11349     -1, -1, -1, -1, -1, -1, -1, -1,
11350     -1, -1, -1, -1, -1, -1, -1, -1,
11351     -1, -1, -1, -1, -1, -1, -1, -1,
11352     -1, -1, -1, -1, -1, -1, -1, -1,
11353     -1, -1, -1, -1, -1, -1, -1, -1,
11354     -1, -1, -1, -1, -1, -1, -1, -1,
11355     -1, -1, -1, -1, -1, -1, -1, -1,
11356     -1, -1, -1, -1, -1, -1, -1, -1,
11357     -1, -1, -1, -1, -1, -1, -1, -1,
11358     -1, -1, -1, -1, -1, -1, -1, -1,
11359     -1, -1, -1, -1, -1, -1, 0, 1,
11360     2, 3, 4, 5, 6, 7, 8, 9,
11361     -1, -1, -1, -1, -1, -1, -1, -1,
11362     -1, -1, -1, -1, -1, -1, -1, -1,
11363     -1, -1, -1, -1, -1, -1, -1, -1,
11364     -1, -1, -1, -1, -1, -1, -1, -1,
11365     -1, -1, -1, -1, -1, -1, -1, -1,
11366     -1, -1, -1, -1, -1, -1, -1, -1,
11367     -1, -1, -1, -1, -1, -1, -1, -1,
11368     -1, -1, -1, -1, -1, -1, -1, -1,
11369     -1, -1, -1, -1, -1, -1, -1, -1,
11370     -1, -1, -1, -1, -1, -1, -1, -1,
11371     -1, -1, -1, -1, -1, -1, -1, -1,
11372     -1, -1, -1, -1, -1, -1, -1, -1,
11373     -1, -1, -1, -1, -1, -1, -1, -1,
11374     -1, -1, -1, -1, -1, -1, -1, -1,
11375     -1, -1, -1, -1, -1, -1, -1, -1,
11376     -1, -1, -1, -1, -1, -1, -1, -1,
11377     -1, -1, -1, -1, -1, -1, -1, -1,
11378     -1, -1, -1, -1, -1, -1, -1, -1,
11379 };
11380 
11381 static const Q_INT8 num_0E[] = {
11382     -1, -1, -1, -1, -1, -1, -1, -1,
11383     -1, -1, -1, -1, -1, -1, -1, -1,
11384     -1, -1, -1, -1, -1, -1, -1, -1,
11385     -1, -1, -1, -1, -1, -1, -1, -1,
11386     -1, -1, -1, -1, -1, -1, -1, -1,
11387     -1, -1, -1, -1, -1, -1, -1, -1,
11388     -1, -1, -1, -1, -1, -1, -1, -1,
11389     -1, -1, -1, -1, -1, -1, -1, -1,
11390     -1, -1, -1, -1, -1, -1, -1, -1,
11391     -1, -1, -1, -1, -1, -1, -1, -1,
11392     0, 1, 2, 3, 4, 5, 6, 7,
11393     8, 9, -1, -1, -1, -1, -1, -1,
11394     -1, -1, -1, -1, -1, -1, -1, -1,
11395     -1, -1, -1, -1, -1, -1, -1, -1,
11396     -1, -1, -1, -1, -1, -1, -1, -1,
11397     -1, -1, -1, -1, -1, -1, -1, -1,
11398     -1, -1, -1, -1, -1, -1, -1, -1,
11399     -1, -1, -1, -1, -1, -1, -1, -1,
11400     -1, -1, -1, -1, -1, -1, -1, -1,
11401     -1, -1, -1, -1, -1, -1, -1, -1,
11402     -1, -1, -1, -1, -1, -1, -1, -1,
11403     -1, -1, -1, -1, -1, -1, -1, -1,
11404     -1, -1, -1, -1, -1, -1, -1, -1,
11405     -1, -1, -1, -1, -1, -1, -1, -1,
11406     -1, -1, -1, -1, -1, -1, -1, -1,
11407     -1, -1, -1, -1, -1, -1, -1, -1,
11408     0, 1, 2, 3, 4, 5, 6, 7,
11409     8, 9, -1, -1, -1, -1, -1, -1,
11410     -1, -1, -1, -1, -1, -1, -1, -1,
11411     -1, -1, -1, -1, -1, -1, -1, -1,
11412     -1, -1, -1, -1, -1, -1, -1, -1,
11413     -1, -1, -1, -1, -1, -1, -1, -1,
11414 };
11415 
11416 static const Q_INT8 num_0F[] = {
11417     -1, -1, -1, -1, -1, -1, -1, -1,
11418     -1, -1, -1, -1, -1, -1, -1, -1,
11419     -1, -1, -1, -1, -1, -1, -1, -1,
11420     -1, -1, -1, -1, -1, -1, -1, -1,
11421     0, 1, 2, 3, 4, 5, 6, 7,
11422     8, 9, -1, -1, -1, -1, -1, -1,
11423     -1, -1, -1, -1, -1, -1, -1, -1,
11424     -1, -1, -1, -1, -1, -1, -1, -1,
11425     -1, -1, -1, -1, -1, -1, -1, -1,
11426     -1, -1, -1, -1, -1, -1, -1, -1,
11427     -1, -1, -1, -1, -1, -1, -1, -1,
11428     -1, -1, -1, -1, -1, -1, -1, -1,
11429     -1, -1, -1, -1, -1, -1, -1, -1,
11430     -1, -1, -1, -1, -1, -1, -1, -1,
11431     -1, -1, -1, -1, -1, -1, -1, -1,
11432     -1, -1, -1, -1, -1, -1, -1, -1,
11433     -1, -1, -1, -1, -1, -1, -1, -1,
11434     -1, -1, -1, -1, -1, -1, -1, -1,
11435     -1, -1, -1, -1, -1, -1, -1, -1,
11436     -1, -1, -1, -1, -1, -1, -1, -1,
11437     -1, -1, -1, -1, -1, -1, -1, -1,
11438     -1, -1, -1, -1, -1, -1, -1, -1,
11439     -1, -1, -1, -1, -1, -1, -1, -1,
11440     -1, -1, -1, -1, -1, -1, -1, -1,
11441     -1, -1, -1, -1, -1, -1, -1, -1,
11442     -1, -1, -1, -1, -1, -1, -1, -1,
11443     -1, -1, -1, -1, -1, -1, -1, -1,
11444     -1, -1, -1, -1, -1, -1, -1, -1,
11445     -1, -1, -1, -1, -1, -1, -1, -1,
11446     -1, -1, -1, -1, -1, -1, -1, -1,
11447     -1, -1, -1, -1, -1, -1, -1, -1,
11448     -1, -1, -1, -1, -1, -1, -1, -1,
11449 };
11450 
11451 static const Q_INT8 num_10[] = {
11452     -1, -1, -1, -1, -1, -1, -1, -1,
11453     -1, -1, -1, -1, -1, -1, -1, -1,
11454     -1, -1, -1, -1, -1, -1, -1, -1,
11455     -1, -1, -1, -1, -1, -1, -1, -1,
11456     -1, -1, -1, -1, -1, -1, -1, -1,
11457     -1, -1, -1, -1, -1, -1, -1, -1,
11458     -1, -1, -1, -1, -1, -1, -1, -1,
11459     -1, -1, -1, -1, -1, -1, -1, -1,
11460     0, 1, 2, 3, 4, 5, 6, 7,
11461     8, 9, -1, -1, -1, -1, -1, -1,
11462     -1, -1, -1, -1, -1, -1, -1, -1,
11463     -1, -1, -1, -1, -1, -1, -1, -1,
11464     -1, -1, -1, -1, -1, -1, -1, -1,
11465     -1, -1, -1, -1, -1, -1, -1, -1,
11466     -1, -1, -1, -1, -1, -1, -1, -1,
11467     -1, -1, -1, -1, -1, -1, -1, -1,
11468     -1, -1, -1, -1, -1, -1, -1, -1,
11469     -1, -1, -1, -1, -1, -1, -1, -1,
11470     -1, -1, -1, -1, -1, -1, -1, -1,
11471     -1, -1, -1, -1, -1, -1, -1, -1,
11472     -1, -1, -1, -1, -1, -1, -1, -1,
11473     -1, -1, -1, -1, -1, -1, -1, -1,
11474     -1, -1, -1, -1, -1, -1, -1, -1,
11475     -1, -1, -1, -1, -1, -1, -1, -1,
11476     -1, -1, -1, -1, -1, -1, -1, -1,
11477     -1, -1, -1, -1, -1, -1, -1, -1,
11478     -1, -1, -1, -1, -1, -1, -1, -1,
11479     -1, -1, -1, -1, -1, -1, -1, -1,
11480     -1, -1, -1, -1, -1, -1, -1, -1,
11481     -1, -1, -1, -1, -1, -1, -1, -1,
11482     -1, -1, -1, -1, -1, -1, -1, -1,
11483     -1, -1, -1, -1, -1, -1, -1, -1,
11484 };
11485 
11486 static const Q_INT8 num_13[] = {
11487     -1, -1, -1, -1, -1, -1, -1, -1,
11488     -1, -1, -1, -1, -1, -1, -1, -1,
11489     -1, -1, -1, -1, -1, -1, -1, -1,
11490     -1, -1, -1, -1, -1, -1, -1, -1,
11491     -1, -1, -1, -1, -1, -1, -1, -1,
11492     -1, -1, -1, -1, -1, -1, -1, -1,
11493     -1, -1, -1, -1, -1, -1, -1, -1,
11494     -1, -1, -1, -1, -1, -1, -1, -1,
11495     -1, -1, -1, -1, -1, -1, -1, -1,
11496     -1, -1, -1, -1, -1, -1, -1, -1,
11497     -1, -1, -1, -1, -1, -1, -1, -1,
11498     -1, -1, -1, -1, -1, -1, -1, -1,
11499     -1, -1, -1, -1, -1, -1, -1, -1,
11500     -1, 1, 2, 3, 4, 5, 6, 7,
11501     8, 9, -1, -1, -1, -1, -1, -1,
11502     -1, -1, -1, -1, -1, -1, -1, -1,
11503     -1, -1, -1, -1, -1, -1, -1, -1,
11504     -1, -1, -1, -1, -1, -1, -1, -1,
11505     -1, -1, -1, -1, -1, -1, -1, -1,
11506     -1, -1, -1, -1, -1, -1, -1, -1,
11507     -1, -1, -1, -1, -1, -1, -1, -1,
11508     -1, -1, -1, -1, -1, -1, -1, -1,
11509     -1, -1, -1, -1, -1, -1, -1, -1,
11510     -1, -1, -1, -1, -1, -1, -1, -1,
11511     -1, -1, -1, -1, -1, -1, -1, -1,
11512     -1, -1, -1, -1, -1, -1, -1, -1,
11513     -1, -1, -1, -1, -1, -1, -1, -1,
11514     -1, -1, -1, -1, -1, -1, -1, -1,
11515     -1, -1, -1, -1, -1, -1, -1, -1,
11516     -1, -1, -1, -1, -1, -1, -1, -1,
11517     -1, -1, -1, -1, -1, -1, -1, -1,
11518     -1, -1, -1, -1, -1, -1, -1, -1,
11519 };
11520 
11521 static const Q_INT8 num_17[] = {
11522     -1, -1, -1, -1, -1, -1, -1, -1,
11523     -1, -1, -1, -1, -1, -1, -1, -1,
11524     -1, -1, -1, -1, -1, -1, -1, -1,
11525     -1, -1, -1, -1, -1, -1, -1, -1,
11526     -1, -1, -1, -1, -1, -1, -1, -1,
11527     -1, -1, -1, -1, -1, -1, -1, -1,
11528     -1, -1, -1, -1, -1, -1, -1, -1,
11529     -1, -1, -1, -1, -1, -1, -1, -1,
11530     -1, -1, -1, -1, -1, -1, -1, -1,
11531     -1, -1, -1, -1, -1, -1, -1, -1,
11532     -1, -1, -1, -1, -1, -1, -1, -1,
11533     -1, -1, -1, -1, -1, -1, -1, -1,
11534     -1, -1, -1, -1, -1, -1, -1, -1,
11535     -1, -1, -1, -1, -1, -1, -1, -1,
11536     -1, -1, -1, -1, -1, -1, -1, -1,
11537     -1, -1, -1, -1, -1, -1, -1, -1,
11538     -1, -1, -1, -1, -1, -1, -1, -1,
11539     -1, -1, -1, -1, -1, -1, -1, -1,
11540     -1, -1, -1, -1, -1, -1, -1, -1,
11541     -1, -1, -1, -1, -1, -1, -1, -1,
11542     -1, -1, -1, -1, -1, -1, -1, -1,
11543     -1, -1, -1, -1, -1, -1, -1, -1,
11544     -1, -1, -1, -1, -1, -1, -1, -1,
11545     -1, -1, -1, -1, -1, -1, -1, -1,
11546     -1, -1, -1, -1, -1, -1, -1, -1,
11547     -1, -1, -1, -1, -1, -1, -1, -1,
11548     -1, -1, -1, -1, -1, -1, -1, -1,
11549     -1, -1, -1, -1, -1, -1, -1, -1,
11550     0, 1, 2, 3, 4, 5, 6, 7,
11551     8, 9, -1, -1, -1, -1, -1, -1,
11552     -1, -1, -1, -1, -1, -1, -1, -1,
11553     -1, -1, -1, -1, -1, -1, -1, -1,
11554 };
11555 
11556 static const Q_INT8 num_18[] = {
11557     -1, -1, -1, -1, -1, -1, -1, -1,
11558     -1, -1, -1, -1, -1, -1, -1, -1,
11559     0, 1, 2, 3, 4, 5, 6, 7,
11560     8, 9, -1, -1, -1, -1, -1, -1,
11561     -1, -1, -1, -1, -1, -1, -1, -1,
11562     -1, -1, -1, -1, -1, -1, -1, -1,
11563     -1, -1, -1, -1, -1, -1, -1, -1,
11564     -1, -1, -1, -1, -1, -1, -1, -1,
11565     -1, -1, -1, -1, -1, -1, -1, -1,
11566     -1, -1, -1, -1, -1, -1, -1, -1,
11567     -1, -1, -1, -1, -1, -1, -1, -1,
11568     -1, -1, -1, -1, -1, -1, -1, -1,
11569     -1, -1, -1, -1, -1, -1, -1, -1,
11570     -1, -1, -1, -1, -1, -1, -1, -1,
11571     -1, -1, -1, -1, -1, -1, -1, -1,
11572     -1, -1, -1, -1, -1, -1, -1, -1,
11573     -1, -1, -1, -1, -1, -1, -1, -1,
11574     -1, -1, -1, -1, -1, -1, -1, -1,
11575     -1, -1, -1, -1, -1, -1, -1, -1,
11576     -1, -1, -1, -1, -1, -1, -1, -1,
11577     -1, -1, -1, -1, -1, -1, -1, -1,
11578     -1, -1, -1, -1, -1, -1, -1, -1,
11579     -1, -1, -1, -1, -1, -1, -1, -1,
11580     -1, -1, -1, -1, -1, -1, -1, -1,
11581     -1, -1, -1, -1, -1, -1, -1, -1,
11582     -1, -1, -1, -1, -1, -1, -1, -1,
11583     -1, -1, -1, -1, -1, -1, -1, -1,
11584     -1, -1, -1, -1, -1, -1, -1, -1,
11585     -1, -1, -1, -1, -1, -1, -1, -1,
11586     -1, -1, -1, -1, -1, -1, -1, -1,
11587     -1, -1, -1, -1, -1, -1, -1, -1,
11588     -1, -1, -1, -1, -1, -1, -1, -1,
11589 };
11590 
11591 static const Q_INT8 num_20[] = {
11592     -1, -1, -1, -1, -1, -1, -1, -1,
11593     -1, -1, -1, -1, -1, -1, -1, -1,
11594     -1, -1, -1, -1, -1, -1, -1, -1,
11595     -1, -1, -1, -1, -1, -1, -1, -1,
11596     -1, -1, -1, -1, -1, -1, -1, -1,
11597     -1, -1, -1, -1, -1, -1, -1, -1,
11598     -1, -1, -1, -1, -1, -1, -1, -1,
11599     -1, -1, -1, -1, -1, -1, -1, -1,
11600     -1, -1, -1, -1, -1, -1, -1, -1,
11601     -1, -1, -1, -1, -1, -1, -1, -1,
11602     -1, -1, -1, -1, -1, -1, -1, -1,
11603     -1, -1, -1, -1, -1, -1, -1, -1,
11604     -1, -1, -1, -1, -1, -1, -1, -1,
11605     -1, -1, -1, -1, -1, -1, -1, -1,
11606     0, -1, -1, -1, 4, 5, 6, 7,
11607     8, 9, -1, -1, -1, -1, -1, -1,
11608     0, 1, 2, 3, 4, 5, 6, 7,
11609     8, 9, -1, -1, -1, -1, -1, -1,
11610     -1, -1, -1, -1, -1, -1, -1, -1,
11611     -1, -1, -1, -1, -1, -1, -1, -1,
11612     -1, -1, -1, -1, -1, -1, -1, -1,
11613     -1, -1, -1, -1, -1, -1, -1, -1,
11614     -1, -1, -1, -1, -1, -1, -1, -1,
11615     -1, -1, -1, -1, -1, -1, -1, -1,
11616     -1, -1, -1, -1, -1, -1, -1, -1,
11617     -1, -1, -1, -1, -1, -1, -1, -1,
11618     -1, -1, -1, -1, -1, -1, -1, -1,
11619     -1, -1, -1, -1, -1, -1, -1, -1,
11620     -1, -1, -1, -1, -1, -1, -1, -1,
11621     -1, -1, -1, -1, -1, -1, -1, -1,
11622     -1, -1, -1, -1, -1, -1, -1, -1,
11623     -1, -1, -1, -1, -1, -1, -1, -1,
11624 };
11625 
11626 static const Q_INT8 num_24[] = {
11627     -1, -1, -1, -1, -1, -1, -1, -1,
11628     -1, -1, -1, -1, -1, -1, -1, -1,
11629     -1, -1, -1, -1, -1, -1, -1, -1,
11630     -1, -1, -1, -1, -1, -1, -1, -1,
11631     -1, -1, -1, -1, -1, -1, -1, -1,
11632     -1, -1, -1, -1, -1, -1, -1, -1,
11633     -1, -1, -1, -1, -1, -1, -1, -1,
11634     -1, -1, -1, -1, -1, -1, -1, -1,
11635     -1, -1, -1, -1, -1, -1, -1, -1,
11636     -1, -1, -1, -1, -1, -1, -1, -1,
11637     -1, -1, -1, -1, -1, -1, -1, -1,
11638     -1, -1, -1, -1, -1, -1, -1, -1,
11639     1, 2, 3, 4, 5, 6, 7, 8,
11640     9, -1, -1, -1, -1, -1, -1, -1,
11641     -1, -1, -1, -1, 1, 2, 3, 4,
11642     5, 6, 7, 8, 9, -1, -1, -1,
11643     -1, -1, -1, -1, -1, -1, -1, -1,
11644     1, 2, 3, 4, 5, 6, 7, 8,
11645     9, -1, -1, -1, -1, -1, -1, -1,
11646     -1, -1, -1, -1, -1, -1, -1, -1,
11647     -1, -1, -1, -1, -1, -1, -1, -1,
11648     -1, -1, -1, -1, -1, -1, -1, -1,
11649     -1, -1, -1, -1, -1, -1, -1, -1,
11650     -1, -1, -1, -1, -1, -1, -1, -1,
11651     -1, -1, -1, -1, -1, -1, -1, -1,
11652     -1, -1, -1, -1, -1, -1, -1, -1,
11653     -1, -1, -1, -1, -1, -1, -1, -1,
11654     -1, -1, -1, -1, -1, -1, -1, -1,
11655     -1, -1, -1, -1, -1, -1, -1, -1,
11656     -1, -1, 0, -1, -1, -1, -1, -1,
11657     -1, -1, -1, -1, -1, 1, 2, 3,
11658     4, 5, 6, 7, 8, 9, -1, -1,
11659 };
11660 
11661 static const Q_INT8 num_27[] = {
11662     -1, -1, -1, -1, -1, -1, -1, -1,
11663     -1, -1, -1, -1, -1, -1, -1, -1,
11664     -1, -1, -1, -1, -1, -1, -1, -1,
11665     -1, -1, -1, -1, -1, -1, -1, -1,
11666     -1, -1, -1, -1, -1, -1, -1, -1,
11667     -1, -1, -1, -1, -1, -1, -1, -1,
11668     -1, -1, -1, -1, -1, -1, -1, -1,
11669     -1, -1, -1, -1, -1, -1, -1, -1,
11670     -1, -1, -1, -1, -1, -1, -1, -1,
11671     -1, -1, -1, -1, -1, -1, -1, -1,
11672     -1, -1, -1, -1, -1, -1, -1, -1,
11673     -1, -1, -1, -1, -1, -1, -1, -1,
11674     -1, -1, -1, -1, -1, -1, -1, -1,
11675     -1, -1, -1, -1, -1, -1, -1, -1,
11676     -1, -1, -1, -1, -1, -1, 1, 2,
11677     3, 4, 5, 6, 7, 8, 9, -1,
11678     1, 2, 3, 4, 5, 6, 7, 8,
11679     9, -1, 1, 2, 3, 4, 5, 6,
11680     7, 8, 9, -1, -1, -1, -1, -1,
11681     -1, -1, -1, -1, -1, -1, -1, -1,
11682     -1, -1, -1, -1, -1, -1, -1, -1,
11683     -1, -1, -1, -1, -1, -1, -1, -1,
11684     -1, -1, -1, -1, -1, -1, -1, -1,
11685     -1, -1, -1, -1, -1, -1, -1, -1,
11686     -1, -1, -1, -1, -1, -1, -1, -1,
11687     -1, -1, -1, -1, -1, -1, -1, -1,
11688     -1, -1, -1, -1, -1, -1, -1, -1,
11689     -1, -1, -1, -1, -1, -1, -1, -1,
11690     -1, -1, -1, -1, -1, -1, -1, -1,
11691     -1, -1, -1, -1, -1, -1, -1, -1,
11692     -1, -1, -1, -1, -1, -1, -1, -1,
11693     -1, -1, -1, -1, -1, -1, -1, -1,
11694 };
11695 
11696 static const Q_INT8 * const decimal_info[256] = {
11697     num_00, 0, 0, 0, 0, 0, num_06, 0,
11698     0, num_09, num_09, num_0B, num_09, num_0D, num_0E, num_0F,
11699     num_10, 0, 0, num_13, 0, 0, 0, num_17,
11700     num_18, 0, 0, 0, 0, 0, 0, 0,
11701     num_20, 0, 0, 0, num_24, 0, 0, num_27,
11702     0, 0, 0, 0, 0, 0, 0, 0,
11703     0, 0, 0, 0, 0, 0, 0, 0,
11704     0, 0, 0, 0, 0, 0, 0, 0,
11705     0, 0, 0, 0, 0, 0, 0, 0,
11706     0, 0, 0, 0, 0, 0, 0, 0,
11707     0, 0, 0, 0, 0, 0, 0, 0,
11708     0, 0, 0, 0, 0, 0, 0, 0,
11709     0, 0, 0, 0, 0, 0, 0, 0,
11710     0, 0, 0, 0, 0, 0, 0, 0,
11711     0, 0, 0, 0, 0, 0, 0, 0,
11712     0, 0, 0, 0, 0, 0, 0, 0,
11713     0, 0, 0, 0, 0, 0, 0, 0,
11714     0, 0, 0, 0, 0, 0, 0, 0,
11715     0, 0, 0, 0, 0, 0, 0, 0,
11716     0, 0, 0, 0, 0, 0, 0, 0,
11717     0, 0, 0, 0, 0, 0, 0, 0,
11718     0, 0, 0, 0, 0, 0, 0, 0,
11719     0, 0, 0, 0, 0, 0, 0, 0,
11720     0, 0, 0, 0, 0, 0, 0, 0,
11721     0, 0, 0, 0, 0, 0, 0, 0,
11722     0, 0, 0, 0, 0, 0, 0, 0,
11723     0, 0, 0, 0, 0, 0, 0, 0,
11724     0, 0, 0, 0, 0, 0, 0, 0,
11725     0, 0, 0, 0, 0, 0, 0, 0,
11726     0, 0, 0, 0, 0, 0, 0, 0,
11727     0, 0, 0, 0, 0, 0, 0, 0,
11728     0, 0, 0, 0, 0, 0, 0, num_18,
11729 };
11730 // 47354 bytes
11731 
11732 // END OF GENERATED DATA
11733 
11734 #endif
11735 
11736 static inline QChar::Category category( const QChar &c )
11737 {
11738 #ifndef QT_NO_UNICODETABLES
11739     return (QChar::Category)(unicode_info[c.row()][c.cell()]);
11740 #else
11741 // ### just ASCII
11742     if ( c.unicode() < 0x100 ) {
11743         return (QChar::Category)(ui_00[c.unicode()]);
11744     }
11745     return QChar::Letter_Uppercase; //#######
11746 #endif
11747 }
11748 
11749 static inline QChar lower( const QChar &c )
11750 {
11751 #ifndef QT_NO_UNICODETABLES
11752     uchar row = c.row();
11753     uchar cell = c.cell();
11754     if ( unicode_info[row][cell] != QChar::Letter_Uppercase )
11755         return c;
11756     Q_UINT16 lower = *( case_info[row] + cell );
11757     if ( lower == 0 )
11758         return c;
11759     return lower;
11760 #else
11761     if ( c.row() )
11762         return c;
11763     else
11764         return QChar( tolower((uchar) c.latin1()) );
11765 #endif
11766 }
11767 
11768 static inline QChar upper( const QChar &c )
11769 {
11770 #ifndef QT_NO_UNICODETABLES
11771     uchar row = c.row();
11772     uchar cell = c.cell();
11773     if ( unicode_info[row][cell] != QChar::Letter_Lowercase )
11774         return c;
11775     Q_UINT16 upper = *(case_info[row]+cell);
11776     if ( upper == 0 )
11777         return c;
11778     return upper;
11779 #else
11780     if ( c.row() )
11781         return c;
11782     else
11783         return QChar( toupper((uchar) c.latin1()) );
11784 #endif
11785 }
11786 
11787 static inline QChar::Direction direction( const QChar &c )
11788 {
11789 #ifndef QT_NO_UNICODETABLES
11790     const Q_UINT8 *rowp = direction_info[c.row()];
11791     if(!rowp) return QChar::DirL;
11792     return (QChar::Direction) ( *(rowp+c.cell()) & 0x1f );
11793 #else
11794     Q_UNUSED(c);
11795     return QChar::DirL;
11796 #endif
11797 }
11798 
11799 static inline bool mirrored( const QChar &c )
11800 {
11801 #ifndef QT_NO_UNICODETABLES
11802     const Q_UINT8 *rowp = direction_info[c.row()];
11803     if ( !rowp )
11804         return FALSE;
11805     return *(rowp+c.cell())>128;
11806 #else
11807     Q_UNUSED(c);
11808     return FALSE;
11809 #endif
11810 }
11811 
11812 #ifndef QT_NO_UNICODETABLES
11813 static const Q_UINT16 symmetricPairs[] = {
11814     0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
11815     0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
11816     0x208D, 0x208E, 0x2208, 0x220B, 0x2209, 0x220C, 0x220A, 0x220D,
11817     0x2215, 0x29F5, 0x223C, 0x223D, 0x2243, 0x22CD, 0x2252, 0x2253,
11818     0x2254, 0x2255, 0x2264, 0x2265, 0x2266, 0x2267, 0x2268, 0x2269,
11819     0x226A, 0x226B, 0x226E, 0x226F, 0x2270, 0x2271, 0x2272, 0x2273,
11820     0x2274, 0x2275, 0x2276, 0x2277, 0x2278, 0x2279, 0x227A, 0x227B,
11821     0x227C, 0x227D, 0x227E, 0x227F, 0x2280, 0x2281, 0x2282, 0x2283,
11822     0x2284, 0x2285, 0x2286, 0x2287, 0x2288, 0x2289, 0x228A, 0x228B,
11823     0x228F, 0x2290, 0x2291, 0x2292, 0x2298, 0x29B8, 0x22A2, 0x22A3,
11824     0x22A6, 0x2ADE, 0x22A8, 0x2AE4, 0x22A9, 0x2AE3, 0x22AB, 0x2AE5,
11825     0x22B0, 0x22B1, 0x22B2, 0x22B3, 0x22B4, 0x22B5, 0x22B6, 0x22B7,
11826     0x22C9, 0x22CA, 0x22CB, 0x22CC, 0x22D0, 0x22D1, 0x22D6, 0x22D7,
11827     0x22D8, 0x22D9, 0x22DA, 0x22DB, 0x22DC, 0x22DD, 0x22DE, 0x22DF,
11828     0x22E0, 0x22E1, 0x22E2, 0x22E3, 0x22E4, 0x22E5, 0x22E6, 0x22E7,
11829     0x22E8, 0x22E9, 0x22EA, 0x22EB, 0x22EC, 0x22ED, 0x22F0, 0x22F1,
11830     0x22F2, 0x22FA, 0x22F3, 0x22FB, 0x22F4, 0x22FC, 0x22F6, 0x22FD,
11831     0x22F7, 0x22FE, 0x2308, 0x2309, 0x230A, 0x230B, 0x2329, 0x232A,
11832     0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D, 0x276E, 0x276F,
11833     0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, 0x27D5, 0x27D6,
11834     0x27DD, 0x27DE, 0x27E2, 0x27E3, 0x27E4, 0x27E5, 0x27E6, 0x27E7,
11835     0x27E8, 0x27E9, 0x27EA, 0x27EB, 0x2983, 0x2984, 0x2985, 0x2986,
11836     0x2987, 0x2988, 0x2989, 0x298A, 0x298B, 0x298C, 0x298D, 0x2990,
11837     0x298E, 0x298F, 0x2991, 0x2992, 0x2993, 0x2994, 0x2995, 0x2996,
11838     0x2997, 0x2998, 0x29C0, 0x29C1, 0x29C4, 0x29C5, 0x29CF, 0x29D0,
11839     0x29D1, 0x29D2, 0x29D4, 0x29D5, 0x29D8, 0x29D9, 0x29DA, 0x29DB,
11840     0x29F8, 0x29F9, 0x29FC, 0x29FD, 0x2A2B, 0x2A2C, 0x2A34, 0x2A35,
11841     0x2A3C, 0x2A3D, 0x2A64, 0x2A65, 0x2A79, 0x2A7A, 0x2A7D, 0x2A7E,
11842     0x2A7F, 0x2A80, 0x2A81, 0x2A82, 0x2A83, 0x2A84, 0x2A8B, 0x2A8C,
11843     0x2A91, 0x2A92, 0x2A93, 0x2A94, 0x2A95, 0x2A96, 0x2A97, 0x2A98,
11844     0x2A99, 0x2A9A, 0x2A9B, 0x2A9C, 0x2AA1, 0x2AA2, 0x2AA6, 0x2AA7,
11845     0x2AA8, 0x2AA9, 0x2AAA, 0x2AAB, 0x2AAC, 0x2AAD, 0x2AAF, 0x2AB0,
11846     0x2AB3, 0x2AB4, 0x2ABB, 0x2ABC, 0x2ABD, 0x2ABE, 0x2ABF, 0x2AC0,
11847     0x2AC1, 0x2AC2, 0x2AC3, 0x2AC4, 0x2AC5, 0x2AC6, 0x2ACD, 0x2ACE,
11848     0x2ACF, 0x2AD0, 0x2AD1, 0x2AD2, 0x2AD3, 0x2AD4, 0x2AD5, 0x2AD6,
11849     0x2AEC, 0x2AED, 0x2AF7, 0x2AF8, 0x2AF9, 0x2AFA, 0x3008, 0x3009,
11850     0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011,
11851     0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301A, 0x301B,
11852     0xFF08, 0xFF09, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D,
11853     0xFF5F, 0xFF60, 0xFF62, 0xFF63,
11854 };
11855 
11856 // ### shouldn't this be const?
11857 static const int symmetricPairsSize =
11858    sizeof(symmetricPairs)/sizeof(symmetricPairs[0]);
11859 
11860 /*
11861  * ----------------------------------------------------------------------
11862  * End of unicode tables
11863  * ----------------------------------------------------------------------
11864  */
11865 
11866 #endif
11867 
11868 static int ucstrcmp( const QString &as, const QString &bs )
11869 {
11870     const QChar *a = as.unicode();
11871     const QChar *b = bs.unicode();
11872     if ( a == b )
11873         return 0;
11874     if ( a == 0 )
11875         return 1;
11876     if ( b == 0 )
11877         return -1;
11878     int l=QMIN(as.length(),bs.length());
11879     while ( l-- && *a == *b )
11880         a++,b++;
11881     if ( l==-1 )
11882         return ( as.length()-bs.length() );
11883     return a->unicode() - b->unicode();
11884 }
11885 
11886 static int ucstrncmp( const QChar *a, const QChar *b, int l )
11887 {
11888     while ( l-- && *a == *b )
11889         a++,b++;
11890     if ( l==-1 )
11891         return 0;
11892     return a->unicode() - b->unicode();
11893 }
11894 
11895 static int ucstrnicmp( const QChar *a, const QChar *b, int l )
11896 {
11897     while ( l-- && ::lower( *a ) == ::lower( *b ) )
11898         a++,b++;
11899     if ( l==-1 )
11900         return 0;
11901     return ::lower( *a ).unicode() - ::lower( *b ).unicode();
11902 }
11903 
11904 static uint computeNewMax( uint len )
11905 {
11906     uint newMax = 4;
11907     while ( newMax < len )
11908         newMax *= 2;
11909     // try to save some memory
11910     if ( newMax >= 1024 * 1024 && len <= newMax - (newMax >> 2) )
11911         newMax -= newMax >> 2;
11912     return newMax;
11913 }
11914 
12228 bool QChar::isPrint() const
12229 {
12230     Category c = ::category( *this );
12231     return !(c == Other_Control || c == Other_NotAssigned);
12232 }
12233 
12238 bool QChar::isSpace() const
12239 {
12240     if( ucs >= 9 && ucs <=13 ) return TRUE;
12241     Category c = ::category( *this );
12242     return c >= Separator_Space && c <= Separator_Paragraph;
12243 }
12244 
12249 bool QChar::isMark() const
12250 {
12251     Category c = ::category( *this );
12252     return c >= Mark_NonSpacing && c <= Mark_Enclosing;
12253 }
12254 
12259 bool QChar::isPunct() const
12260 {
12261     Category c = ::category( *this );
12262     return (c >= Punctuation_Connector && c <= Punctuation_Other);
12263 }
12264 
12269 bool QChar::isLetter() const
12270 {
12271     Category c = ::category( *this );
12272     return (c >= Letter_Uppercase && c <= Letter_Other);
12273 }
12274 
12281 bool QChar::isNumber() const
12282 {
12283     Category c = ::category( *this );
12284     return c >= Number_DecimalDigit && c <= Number_Other;
12285 }
12286 
12291 bool QChar::isLetterOrNumber() const
12292 {
12293     Category c = ::category( *this );
12294     return (c >= Letter_Uppercase && c <= Letter_Other)
12295         || (c >= Number_DecimalDigit && c <= Number_Other);
12296 }
12297 
12298 
12303 bool QChar::isDigit() const
12304 {
12305     return (::category( *this ) == Number_DecimalDigit);
12306 }
12307 
12308 
12313 bool QChar::isSymbol() const
12314 {
12315     Category c = ::category( *this );
12316     return c >= Symbol_Math && c <= Symbol_Other;
12317 }
12318 
12323 int QChar::digitValue() const
12324 {
12325 #ifndef QT_NO_UNICODETABLES
12326     const Q_INT8 *dec_row = decimal_info[row()];
12327     if( !dec_row )
12328         return -1;
12329     return dec_row[cell()];
12330 #else
12331     // ##### just latin1
12332     if ( ucs < '0' || ucs > '9' )
12333         return -1;
12334     else
12335         return ucs - '0';
12336 #endif
12337 }
12338 
12344 QChar::Category QChar::category() const
12345 {
12346      return ::category( *this );
12347 }
12348 
12354 QChar::Direction QChar::direction() const
12355 {
12356      return ::direction( *this );
12357 }
12358 
12366 QChar::Joining QChar::joining() const
12367 {
12368 #ifndef QT_NO_UNICODETABLES
12369     const Q_UINT8 *rowp = direction_info[row()];
12370     if ( !rowp )
12371         return QChar::OtherJoining;
12372     return (Joining) ((*(rowp+cell()) >> 5) &0x3);
12373 #else
12374     return OtherJoining;
12375 #endif
12376 }
12377 
12378 
12384 bool QChar::mirrored() const
12385 {
12386     return ::mirrored( *this );
12387 }
12388 
12393 QChar QChar::mirroredChar() const
12394 {
12395 #ifndef QT_NO_UNICODETABLES
12396     if(!::mirrored( *this ))
12397         return *this;
12398 
12399     int i;
12400     int c = unicode();
12401     for (i = 0; i < symmetricPairsSize; i ++) {
12402         if (symmetricPairs[i] == c)
12403           return symmetricPairs[(i%2) ? (i-1) : (i+1)];
12404     }
12405 #endif
12406     return *this;
12407 }
12408 
12409 #ifndef QT_NO_UNICODETABLES
12410 // ### REMOVE ME 4.0
12411 static QString shared_decomp;
12412 #endif
12413 
12419 const QString &QChar::decomposition() const
12420 {
12421 #ifndef QT_NO_UNICODETABLES
12422     const Q_UINT16 *r = decomposition_info[row()];
12423     if(!r) return QString::null;
12424 
12425     Q_UINT16 pos = r[cell()];
12426     if(!pos) return QString::null;
12427     pos+=2;
12428 
12429     QString s;
12430     Q_UINT16 c;
12431     while((c = decomposition_map[pos++]) != 0) s += QChar(c);
12432     // ### In 4.0, return s, and not shared_decomp.  shared_decomp
12433     // prevents this function from being reentrant.
12434     shared_decomp = s;
12435     return shared_decomp;
12436 #else
12437     return QString::null;
12438 #endif
12439 }
12440 
12445 QChar::Decomposition QChar::decompositionTag() const
12446 {
12447 #ifndef QT_NO_UNICODETABLES
12448     const Q_UINT16 *r = decomposition_info[row()];
12449     if(!r) return QChar::Single;
12450 
12451     Q_UINT16 pos = r[cell()];
12452     if(!pos) return QChar::Single;
12453 
12454     return (QChar::Decomposition) decomposition_map[pos];
12455 #else
12456     return Single; // ########### FIX eg. just latin1
12457 #endif
12458 }
12459 
12468 unsigned char QChar::combiningClass() const
12469 {
12470 #ifndef QT_NO_UNICODETABLES
12471     const Q_UINT8 *rowp = combining_info[row()];
12472     if ( !rowp )
12473         return 0;
12474     return *(rowp+cell());
12475 #else
12476     return 0;
12477 #endif
12478 }
12479 
12480 
12485 QChar QChar::lower() const
12486 {
12487      return ::lower( *this );
12488 }
12489 
12494 QChar QChar::upper() const
12495 {
12496      return ::upper( *this );
12497 }
12498 
12526 /*****************************************************************************
12527   Documentation of QChar related functions
12528  *****************************************************************************/
12529 
12712 #ifndef QT_NO_UNICODETABLES
12713 
12714 // small class used internally in QString::Compose()
12715 class QLigature
12716 {
12717 public:
12718     QLigature( QChar c );
12719 
12720     Q_UINT16 first() { cur = ligatures; return cur ? *cur : 0; }
12721     Q_UINT16 next() { return cur && *cur ? *(cur++) : 0; }
12722     Q_UINT16 current() { return cur ? *cur : 0; }
12723 
12724     int match(QString & str, unsigned int index);
12725     QChar head();
12726     QChar::Decomposition tag();
12727 
12728 private:
12729     Q_UINT16 *ligatures;
12730     Q_UINT16 *cur;
12731 };
12732 
12733 QLigature::QLigature( QChar c )
12734 {
12735     const Q_UINT16 *r = ligature_info[c.row()];
12736     if( !r )
12737         ligatures = 0;
12738     else
12739     {
12740         const Q_UINT16 pos = r[c.cell()];
12741         ligatures = (Q_UINT16 *)&(ligature_map[pos]);
12742     }
12743     cur = ligatures;
12744 }
12745 
12746 QChar QLigature::head()
12747 {
12748     if(current())
12749         return QChar(decomposition_map[current()+1]);
12750 
12751     return QChar::null;
12752 }
12753 
12754 QChar::Decomposition QLigature::tag()
12755 {
12756     if(current())
12757         return (QChar::Decomposition) decomposition_map[current()];
12758 
12759     return QChar::Canonical;
12760 }
12761 
12762 int QLigature::match(QString & str, unsigned int index)
12763 {
12764     unsigned int i=index;
12765 
12766     if(!current()) return 0;
12767 
12768     Q_UINT16 lig = current() + 2;
12769     Q_UINT16 ch;
12770 
12771     while ((i < str.length()) && (ch = decomposition_map[lig])) {
12772         if (str[(int)i] != QChar(ch))
12773             return 0;
12774         i++;
12775         lig++;
12776     }
12777 
12778     if (!decomposition_map[lig])
12779     {
12780         return i-index;
12781     }
12782     return 0;
12783 }
12784 
12785 
12786 // this function is just used in QString::compose()
12787 static inline bool format(QChar::Decomposition tag, QString & str,
12788                           int index, int len)
12789 {
12790     unsigned int l = index + len;
12791     unsigned int r = index;
12792 
12793     bool left = FALSE, right = FALSE;
12794 
12795     left = ((l < str.length()) &&
12796             ((str[(int)l].joining() == QChar::Dual) ||
12797              (str[(int)l].joining() == QChar::Right)));
12798     if (r > 0) {
12799         r--;
12800         //printf("joining(right) = %d\n", str[(int)r].joining());
12801         right = (str[(int)r].joining() == QChar::Dual);
12802     }
12803 
12804 
12805     switch (tag) {
12806     case QChar::Medial:
12807         return (left & right);
12808     case QChar::Initial:
12809         return (left && !right);
12810     case QChar::Final:
12811         return (right);// && !left);
12812     case QChar::Isolated:
12813     default:
12814         return (!right && !left);
12815     }
12816 } // format()
12817 #endif
12818 
12819 /*
12820   QString::compose() and visual() were developed by Gordon Tisher
12821   <tisher@uniserve.ca>, with input from Lars Knoll <knoll@mpi-hd.mpg.de>,
12822   who developed the unicode data tables.
12823 */
12836 void QString::compose()
12837 {
12838 #ifndef QT_NO_UNICODETABLES
12839     unsigned int index=0, len;
12840     unsigned int cindex = 0;
12841 
12842     QChar code, head;
12843 
12844     QMemArray<QChar> dia;
12845 
12846     QString composed = *this;
12847 
12848     while (index < length()) {
12849         code = at(index);
12850         //printf("\n\nligature for 0x%x:\n", code.unicode());
12851         QLigature ligature(code);
12852         ligature.first();
12853         while(ligature.current()) {
12854             if ((len = ligature.match(*this, index)) != 0) {
12855                 head = ligature.head();
12856                 unsigned short code = head.unicode();
12857                 // we exclude Arabic presentation forms A and a few
12858                 // other ligatures, which are undefined in most fonts
12859                 if(!(code > 0xfb50 && code < 0xfe80) &&
12860                    !(code > 0xfb00 && code < 0xfb2a)) {
12861                                 // joining info is only needed for Arabic
12862                     if (format(ligature.tag(), *this, index, len)) {
12863                         //printf("using ligature 0x%x, len=%d\n",code,len);
12864                         // replace letter
12865                         composed.replace(cindex, len, QChar(head));
12866                         index += len-1;
12867                         // we continue searching in case we have a final
12868                         // form because medial ones are preferred.
12869                         if ( len != 1 || ligature.tag() !=QChar::Final )
12870                             break;
12871                     }
12872                 }
12873             }
12874             ligature.next();
12875         }
12876         cindex++;
12877         index++;
12878     }
12879     *this = composed;
12880 #endif
12881 }
12882 
12883 
12884 // These macros are used for efficient allocation of QChar strings.
12885 // IMPORTANT! If you change these, make sure you also change the
12886 // "delete unicode" statement in ~QStringData() in qstring.h correspondingly!
12887 
12888 #define QT_ALLOC_QCHAR_VEC( N ) (QChar*) new char[ sizeof(QChar)*( N ) ]
12889 #define QT_DELETE_QCHAR_VEC( P ) delete[] ((char*)( P ))
12890 
12891 
12900 QChar* QString::latin1ToUnicode( const QByteArray& ba, uint* len )
12901 {
12902     if ( ba.isNull() ) {
12903         *len = 0;
12904         return 0;
12905     }
12906     int l = 0;
12907     while ( l < (int)ba.size() && ba[l] )
12908         l++;
12909     char* str = ba.data();
12910     QChar *uc = new QChar[ l ];   // Can't use macro, since function is public
12911     QChar *result = uc;
12912     if ( len )
12913         *len = l;
12914     while (l--)
12915         *uc++ = *str++;
12916     return result;
12917 }
12918 
12919 static QChar* internalLatin1ToUnicode( const QByteArray& ba, uint* len )
12920 {
12921     if ( ba.isNull() ) {
12922         *len = 0;
12923         return 0;
12924     }
12925     int l = 0;
12926     while ( l < (int)ba.size() && ba[l] )
12927         l++;
12928     char* str = ba.data();
12929     QChar *uc = QT_ALLOC_QCHAR_VEC( l );
12930     QChar *result = uc;
12931     if ( len )
12932         *len = l;
12933     while (l--)
12934         *uc++ = *str++;
12935     return result;
12936 }
12937 
12949 QChar* QString::latin1ToUnicode( const char *str, uint* len, uint maxlen )
12950 {
12951     QChar* result = 0;
12952     uint l = 0;
12953     if ( str ) {
12954         if ( maxlen != (uint)-1 ) {
12955             while ( l < maxlen && str[l] )
12956                 l++;
12957         } else {
12958             // Faster?
12959             l = strlen( str );
12960         }
12961         QChar *uc = new QChar[ l ]; // Can't use macro since function is public
12962         result = uc;
12963         uint i = l;
12964         while ( i-- )
12965             *uc++ = *str++;
12966     }
12967     if ( len )
12968         *len = l;
12969     return result;
12970 }
12971 
12972 static QChar* internalLatin1ToUnicode( const char *str, uint* len,
12973                                       uint maxlen = (uint)-1 )
12974 {
12975     QChar* result = 0;
12976     uint l = 0;
12977     if ( str ) {
12978         if ( maxlen != (uint)-1 ) {
12979             while ( l < maxlen && str[l] )
12980                 l++;
12981         } else {
12982             // Faster?
12983             l = strlen( str );
12984         }
12985         QChar *uc = QT_ALLOC_QCHAR_VEC( l );
12986         result = uc;
12987         uint i = l;
12988         while ( i-- )
12989             *uc++ = *str++;
12990     }
12991     if ( len )
12992         *len = l;
12993     return result;
12994 }
12995 
13003 char* QString::unicodeToLatin1(const QChar *uc, uint l)
13004 {
13005     if (!uc) {
13006         return 0;
13007     }
13008     char *a = new char[l+1];
13009     char *result = a;
13010     while (l--) {
13011         *a++ = (uc->unicode() > 0xff) ? '?' : (char)uc->unicode();
13012         uc++;
13013     }
13014     *a = '\0';
13015     return result;
13016 }
13017 
13018 /*****************************************************************************
13019   QString member functions
13020  *****************************************************************************/
13021 
13148 Q_EXPORT QStringData *QString::shared_null = 0;
13149 QT_STATIC_CONST_IMPL QString QString::null;
13150 QT_STATIC_CONST_IMPL QChar QChar::null;
13151 QT_STATIC_CONST_IMPL QChar QChar::replacement((ushort)0xfffd);
13152 QT_STATIC_CONST_IMPL QChar QChar::byteOrderMark((ushort)0xfeff);
13153 QT_STATIC_CONST_IMPL QChar QChar::byteOrderSwapped((ushort)0xfffe);
13154 QT_STATIC_CONST_IMPL QChar QChar::nbsp((ushort)0x00a0);
13155 
13156 QStringData* QString::makeSharedNull()
13157 {
13158     QString::shared_null = new QStringData;
13159 #if defined( Q_OS_MAC )
13160     QString *that = const_cast<QString *>(&QString::null);
13161     that->d = QString::shared_null;
13162 #endif
13163     return QString::shared_null;
13164 }
13165 
13178 QString::QString( QChar ch )
13179 {
13180     d = new QStringData( QT_ALLOC_QCHAR_VEC( 1 ), 1, 1 );
13181     d->unicode[0] = ch;
13182 }
13183 
13188 QString::QString( const QString &s ) :
13189     d(s.d)
13190 {
13191     d->ref();
13192 }
13193 
13206 QString::QString( int size, bool /*dummy*/ )
13207 {
13208     if ( size ) {
13209         int l = size;
13210         QChar* uc = QT_ALLOC_QCHAR_VEC( l );
13211         d = new QStringData( uc, 0, l );
13212     } else {
13213         d = shared_null ? shared_null : (shared_null=new QStringData);
13214         d->ref();
13215     }
13216 }
13217 
13223 QString::QString( const QByteArray& ba )
13224 {
13225 #ifndef QT_NO_TEXTCODEC
13226     if ( QTextCodec::codecForCStrings() ) {
13227         d = 0;
13228         *this = fromAscii( ba.data(), ba.size() );
13229         return;
13230     }
13231 #endif
13232     uint l;
13233     QChar *uc = internalLatin1ToUnicode(ba,&l);
13234     d = new QStringData(uc,l,l);
13235 }
13236 
13252 QString::QString( const QChar* unicode, uint length )
13253 {
13254     if ( !unicode && !length ) {
13255         d = shared_null ? shared_null : makeSharedNull();
13256         d->ref();
13257     } else {
13258         QChar* uc = QT_ALLOC_QCHAR_VEC( length );
13259         if ( unicode )
13260             memcpy(uc, unicode, length*sizeof(QChar));
13261         d = new QStringData(uc,unicode ? length : 0,length);
13262     }
13263 }
13264 
13282 QString::QString( const char *str )
13283 {
13284 #ifndef QT_NO_TEXTCODEC
13285     if ( QTextCodec::codecForCStrings() ) {
13286         d = 0;
13287         *this = fromAscii( str );
13288         return;
13289     }
13290 #endif
13291     uint l;
13292     QChar *uc = internalLatin1ToUnicode(str,&l);
13293     d = new QStringData(uc,l,l);
13294 }
13295 
13296 #ifndef QT_NO_STL
13297 
13303 QString::QString( const std::string &str )
13304 {
13305 #ifndef QT_NO_TEXTCODEC
13306     if ( QTextCodec::codecForCStrings() ) {
13307         d = 0;
13308         *this = fromAscii( str.c_str() );
13309         return;
13310     }
13311 #endif
13312     uint l;
13313     QChar *uc = internalLatin1ToUnicode(str.c_str(),&l);
13314     d = new QStringData(uc,l,l);
13315 }
13316 #endif
13317 
13335 void QString::real_detach()
13336 {
13337     setLength( length() );
13338 }
13339 
13340 void QString::deref()
13341 {
13342     if ( d && d->deref() ) {
13343         if ( d != shared_null )
13344             delete d;
13345         d = 0;
13346     }
13347 }
13348 
13349 void QStringData::deleteSelf()
13350 {
13351     delete this;
13352 }
13353 
13384 QString &QString::operator=( const QString &s )
13385 {
13386     s.d->ref();
13387     deref();
13388     d = s.d;
13389     return *this;
13390 }
13391 
13398 QString &QString::operator=( const QCString& cs )
13399 {
13400     return setAscii(cs);
13401 }
13402 
13403 
13414 QString &QString::operator=( const char *str )
13415 {
13416     return setAscii(str);
13417 }
13418 
13419 
13477 void QString::truncate( uint newLen )
13478 {
13479     if ( newLen < d->len )
13480         setLength( newLen );
13481 }
13482 
13516 void QString::setLength( uint newLen )
13517 {
13518     if ( d->count != 1 || newLen > d->maxl ||
13519          ( newLen * 4 < d->maxl && d->maxl > 4 ) ) {
13520         // detach, grow or shrink
13521         uint newMax = computeNewMax( newLen );
13522         QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
13523         if ( nd ) {
13524             uint len = QMIN( d->len, newLen );
13525             if ( d->unicode )
13526                 memcpy( nd, d->unicode, sizeof(QChar)*len );
13527             deref();
13528             d = new QStringData( nd, newLen, newMax );
13529         }
13530     } else {
13531         d->len = newLen;
13532         d->setDirty();
13533     }
13534 }
13535 
13564 QString QString::arg( const QString& a, int fieldwidth ) const
13565 {
13566     int pos, len;
13567     QString r = *this;
13568 
13569     if ( !findArg( pos, len ) ) {
13570         qWarning( "QString::arg(): Argument missing: %s, %s",
13571                   latin1(), a.latin1() );
13572         // Make sure the text at least appears SOMEWHERE
13573         r += ' ';
13574         pos = r.length();
13575         len = 0;
13576     }
13577 
13578     r.replace( pos, len, a );
13579     if ( fieldwidth < 0 ) {
13580         QString s;
13581         while ( (uint)-fieldwidth > a.length() ) {
13582             s += ' ';
13583             fieldwidth++;
13584         }
13585         r.insert( pos + a.length(), s );
13586     } else if ( fieldwidth ) {
13587         QString s;
13588         while ( (uint)fieldwidth > a.length() ) {
13589             s += ' ';
13590             fieldwidth--;
13591         }
13592         r.insert( pos, s );
13593     }
13594 
13595     return r;
13596 }
13597 
13598 
13617 QString QString::arg( long a, int fieldwidth, int base ) const
13618 {
13619     return arg( QString::number(a, base), fieldwidth );
13620 }
13621 
13628 QString QString::arg( ulong a, int fieldwidth, int base ) const
13629 {
13630     return arg( QString::number(a, base), fieldwidth );
13631 }
13632 
13675 QString QString::arg( char a, int fieldwidth ) const
13676 {
13677     QString c;
13678     c += a;
13679     return arg( c, fieldwidth );
13680 }
13681 
13685 QString QString::arg( QChar a, int fieldwidth ) const
13686 {
13687     QString c;
13688     c += a;
13689     return arg( c, fieldwidth );
13690 }
13691 
13720 QString QString::arg( double a, int fieldwidth, char fmt, int prec ) const
13721 {
13722     return arg( QString::number( a, fmt, prec ), fieldwidth );
13723 }
13724 
13725 
13726 /*
13727     Just 1-digit arguments.
13728 */
13729 bool QString::findArg( int& pos, int& len ) const
13730 {
13731     char lowest=0;
13732     register const QChar *uc = d->unicode;
13733     const uint l = length();
13734     for (uint i = 0; i < l; i++) {
13735         if ( uc[i] == '%' && i+1<l ) {
13736             QChar dig = uc[i+1];
13737             if ( dig >= '0' && dig <= '9' ) {
13738                 if ( !lowest || dig < lowest ) {
13739                     lowest = dig;
13740                     pos = i;
13741                     len = 2;
13742                 }
13743             }
13744         }
13745     }
13746     return lowest != 0;
13747 }
13748 
13776 #ifndef QT_NO_SPRINTF
13777 QString &QString::sprintf( const char* cformat, ... )
13778 {
13779     va_list ap;
13780     va_start( ap, cformat );
13781 
13782     if ( !cformat || !*cformat ) {
13783         // Qt 1.x compat
13784         *this = fromLatin1( "" );
13785         return *this;
13786     }
13787     QString format = fromAscii( cformat );
13788 
13789     QRegExp escape( "%#?0?-? ?\\+?'?[0-9*]*\\.?[0-9*]*h?l?L?q?Z?" );
13790     QString result;
13791     uint last = 0;
13792     int pos;
13793     int len = 0;
13794 
13795     for (;;) {
13796         pos = escape.search( format, last );
13797         len = escape.matchedLength();
13798         // Non-escaped text
13799         if ( pos > (int)last )
13800             result += format.mid( last, pos - last );
13801         if ( pos < 0 ) {
13802             // The rest
13803             if ( last < format.length() )
13804                 result += format.mid( last );
13805             break;
13806         }
13807         last = pos + len + 1;
13808 
13809         // Escape
13810         QString f = format.mid( pos, len );
13811         uint width, decimals;
13812         int params = 0;
13813         int wpos = f.find('*');
13814         if ( wpos >= 0 ) {
13815             params++;
13816             width = va_arg( ap, int );
13817             if ( f.find('*', wpos + 1) >= 0 ) {
13818                 decimals = va_arg( ap, int );
13819                 params++;
13820             } else {
13821                 decimals = 0;
13822             }
13823         } else {
13824             decimals = width = 0;
13825         }
13826         QString replacement;
13827         if ( format[pos + len] == 's' || format[pos + len] == 'S' ||
13828              format[pos + len] == 'c' )
13829         {
13830             bool rightjust = ( f.find('-') < 0 );
13831             // %-5s really means left adjust in sprintf
13832 
13833             if ( wpos < 0 ) {
13834                 QRegExp num( fromLatin1("[0-9]+") );
13835                 int p = num.search( f );
13836                 int nlen = num.matchedLength();
13837                 int q = f.find( '.' );
13838                 if ( q < 0 || (p < q && p >= 0) )
13839                     width = f.mid( p, nlen ).toInt();
13840                 if ( q >= 0 ) {
13841                     p = num.search( f, q );
13842                     // "decimals" is used to specify string truncation
13843                     if ( p >= 0 )
13844                         decimals = f.mid( p, nlen ).toInt();
13845                 }
13846             }
13847 
13848             if ( format[pos + len] == 's' ) {
13849                 QString s = QString::fromUtf8( va_arg(ap, char*) );
13850                 replacement = ( decimals <= 0 ) ? s : s.left( decimals );
13851             } else {
13852                 int ch = va_arg(ap, int);
13853                 replacement = QChar((ushort)ch);
13854             }
13855             if ( replacement.length() < width ) {
13856                 replacement = rightjust
13857                     ? replacement.rightJustify(width)
13858                     : replacement.leftJustify(width);
13859             }
13860         } else if ( format[pos+len] == '%' ) {
13861             replacement = '%';
13862         } else if ( format[pos+len] == 'n' ) {
13863             int* n = va_arg(ap, int*);
13864             *n = result.length();
13865         } else {
13866             char in[64], out[330];
13867             strncpy(in,f.latin1(),63);
13868             out[0] = '\0';
13869             char fch = format[pos+len].latin1();
13870             in[f.length()] = fch;
13871             switch ( fch ) {
13872             case 'd':
13873             case 'i':
13874             case 'o':
13875             case 'u':
13876             case 'x':
13877             case 'X':
13878                 {
13879                     int value = va_arg( ap, int );
13880                     switch ( params ) {
13881                     case 0:
13882 			::sprintf( out, in, value );
13883                         break;
13884                     case 1:
13885 			::sprintf( out, in, width, value );
13886                         break;
13887                     case 2:
13888 			::sprintf( out, in, width, decimals, value );
13889                     }
13890                 }
13891                 break;
13892             case 'e':
13893             case 'E':
13894             case 'f':
13895             case 'g':
13896             case 'G':
13897                 {
13898                     double value = va_arg( ap, double );
13899                     switch ( params ) {
13900                     case 0:
13901 			::sprintf( out, in, value );
13902                         break;
13903                     case 1:
13904 			::sprintf( out, in, width, value );
13905                         break;
13906                     case 2:
13907 			::sprintf( out, in, width, decimals, value );
13908                     }
13909                 }
13910                 break;
13911             case 'p':
13912                 {
13913                     void* value = va_arg( ap, void * );
13914                     switch ( params ) {
13915                     case 0:
13916 			::sprintf( out, in, value );
13917                         break;
13918                     case 1:
13919 			::sprintf( out, in, width, value );
13920                         break;
13921                     case 2:
13922 			::sprintf( out, in, width, decimals, value );
13923                     }
13924                 }
13925             }
13926             replacement = fromAscii( out );
13927         }
13928         result += replacement;
13929     }
13930     *this = result;
13931 
13932     va_end( ap );
13933     return *this;
13934 }
13935 #endif
13936 
13950 QString& QString::fill( QChar c, int len )
13951 {
13952     if ( len < 0 )
13953         len = length();
13954     if ( len == 0 ) {
13955         *this = "";
13956     } else {
13957         deref();
13958         QChar * nd = QT_ALLOC_QCHAR_VEC( len );
13959         d = new QStringData(nd,len,len);
13960         while (len--) *nd++ = c;
13961     }
13962     return *this;
13963 }
13964 
13965 
13989 int QString::find( QChar c, int index, bool cs ) const
13990 {
13991     const uint l = length();
13992     if ( index < 0 )
13993         index += l;
13994     if ( (uint)index >= l )
13995         return -1;
13996     register const QChar *uc = unicode()+index;
13997     const QChar *end = unicode() + l;
13998     if ( cs ) {
13999         while ( uc < end && *uc != c )
14000             uc++;
14001     } else {
14002         c = ::lower( c );
14003         while ( uc < end && ::lower( *uc ) != c )
14004             uc++;
14005     }
14006     if ( uint(uc - unicode()) >= l )
14007         return -1;
14008     return (int)(uc - unicode());
14009 }
14010 
14011 /* an implementation of the Boyer-Moore search algorithm
14012 */
14013 
14014 /* initializes the skiptable to know haw far ahead we can skip on a wrong match
14015 */
14016 static void bm_init_skiptable( const QString &pattern, uint *skiptable, bool cs )
14017 {
14018     int i = 0;
14019     register uint *st = skiptable;
14020     int l = pattern.length();
14021     while ( i++ < 0x100/8 ) {
14022         *(st++) = l;
14023         *(st++) = l;
14024         *(st++) = l;
14025         *(st++) = l;
14026         *(st++) = l;
14027         *(st++) = l;
14028         *(st++) = l;
14029         *(st++) = l;
14030     }
14031     const QChar *uc = pattern.unicode();
14032     if ( cs ) {
14033         while( l-- ) {
14034             skiptable[ uc->cell() ] = l;
14035             uc++;
14036         }
14037     } else {
14038         while( l-- ) {
14039             skiptable[ ::lower( *uc ).cell() ] = l;
14040             uc++;
14041         }
14042     }
14043 }
14044 
14045 static int bm_find( const QString &str, int index, const QString &pattern, uint *skiptable, bool cs )
14046 {
14047     const uint l = str.length();
14048     if ( pattern.isEmpty() )
14049         return index > (int)l ? -1 : index;
14050 
14051     const QChar *uc = str.unicode();
14052     const QChar *puc = pattern.unicode();
14053     const uint pl = pattern.length();
14054     const uint pl_minus_one = pl - 1;
14055 
14056     register const QChar *current = uc + index + pl_minus_one;
14057     const QChar *end = uc + l;
14058     if ( cs ) {
14059         while( current < end ) {
14060             uint skip = skiptable[ current->cell() ];
14061             if ( !skip ) {
14062                 // possible match
14063                 while( skip < pl ) {
14064                     if ( *(current - skip ) != puc[pl_minus_one-skip] )
14065                         break;
14066                     skip++;
14067                 }
14068                 if ( skip > pl_minus_one ) { // we have a match
14069                     return (current - uc) - skip + 1;
14070                 }
14071                 // in case we don't have a match we are a bit inefficient as we only skip by one
14072                 // when we have the non matching char in the string.
14073                 if ( skiptable[ (current-skip)->cell() ] == pl )
14074                     skip = pl - skip;
14075                 else
14076                     skip = 1;
14077             }
14078             current += skip;
14079         }
14080     } else {
14081         while( current < end ) {
14082             uint skip = skiptable[ ::lower( *current ).cell() ];
14083             if ( !skip ) {
14084                 // possible match
14085                 while( skip < pl ) {
14086                     if ( ::lower( *(current - skip) ) != ::lower( puc[pl_minus_one-skip] ) )
14087                         break;
14088                     skip++;
14089                 }
14090                 if ( skip > pl_minus_one ) // we have a match
14091                     return (current - uc) - skip + 1;
14092                 // in case we don't have a match we are a bit inefficient as we only skip by one
14093                 // when we have the non matching char in the string.
14094                 if ( skiptable[ ::lower( (current - skip)->cell() ) ] == pl )
14095                     skip = pl - skip;
14096                 else
14097                     skip = 1;
14098             }
14099             current += skip;
14100         }
14101     }
14102     // not found
14103     return -1;
14104 }
14105 
14106 
14107 #define REHASH( a ) \
14108     if ( sl_minus_1 < sizeof(uint) * CHAR_BIT ) \
14109         hashHaystack -= (a) << sl_minus_1; \
14110     hashHaystack <<= 1
14111 
14126 int QString::find( const QString& str, int index, bool cs ) const
14127 {
14128     const uint l = length();
14129     const uint sl = str.length();
14130     if ( index < 0 )
14131         index += l;
14132     if ( sl + index > l )
14133         return -1;
14134     if ( !sl )
14135         return index;
14136 
14137 #ifndef MACOSX_101
14138     if ( sl == 1 )
14139         return find( *str.unicode(), index, cs );
14140 #endif
14141 
14142     // we use the Boyer-Moore algorithm in cases where the overhead
14143     // for the hash table should pay off, otherwise we use a simple
14144     // hash function
14145     if ( l > 500 && sl > 5 ) {
14146         uint skiptable[0x100];
14147         bm_init_skiptable( str, skiptable, cs );
14148         return bm_find( *this, index, str, skiptable, cs );
14149     }
14150 
14151     /*
14152       We use some hashing for efficiency's sake. Instead of
14153       comparing strings, we compare the hash value of str with that of
14154       a part of this QString. Only if that matches, we call ucstrncmp
14155       or ucstrnicmp.
14156     */
14157     const QChar* needle = str.unicode();
14158     const QChar* haystack = unicode() + index;
14159     const QChar* end = unicode() + (l-sl);
14160     const uint sl_minus_1 = sl-1;
14161     uint hashNeedle = 0, hashHaystack = 0, i;
14162 
14163     if ( cs ) {
14164         for ( i = 0; i < sl; ++i ) {
14165             hashNeedle = ((hashNeedle<<1) + needle[i].unicode() );
14166             hashHaystack = ((hashHaystack<<1) + haystack[i].unicode() );
14167         }
14168         hashHaystack -= (haystack+sl_minus_1)->unicode();
14169 
14170         while ( haystack <= end ) {
14171             hashHaystack += (haystack+sl_minus_1)->unicode();
14172             if ( hashHaystack == hashNeedle
14173                  && ucstrncmp( needle, haystack, sl ) == 0 )
14174                 return haystack-unicode();
14175 
14176             REHASH( haystack->unicode() );
14177             ++haystack;
14178         }
14179     } else {
14180         for ( i = 0; i < sl; ++i ) {
14181             hashNeedle = ((hashNeedle<<1) +
14182 			  ::lower( needle[i].unicode() ).unicode() );
14183             hashHaystack = ((hashHaystack<<1) +
14184 			    ::lower( haystack[i].unicode() ).unicode() );
14185         }
14186 
14187         hashHaystack -= ::lower(*(haystack+sl_minus_1)).unicode();
14188         while ( haystack <= end ) {
14189             hashHaystack += ::lower(*(haystack+sl_minus_1)).unicode();
14190             if ( hashHaystack == hashNeedle
14191                  && ucstrnicmp( needle, haystack, sl ) == 0 )
14192                 return haystack-unicode();
14193 
14194             REHASH( ::lower(*haystack).unicode() );
14195             ++haystack;
14196         }
14197     }
14198     return -1;
14199 }
14200 
14234 int QString::findRev( QChar c, int index, bool cs ) const
14235 {
14236 #ifdef MACOSX_101
14237     return findRev( QString( c ), index, cs );
14238 #else
14239     const uint l = length();
14240     if ( index < 0 )
14241         index += l;
14242     if ( (uint)index >= l )
14243         return -1;
14244     const QChar *end = unicode();
14245     register const QChar *uc = end + index;
14246     if ( cs ) {
14247         while ( uc >= end && *uc != c )
14248             uc--;
14249     } else {
14250         c = ::lower( c );
14251         while ( uc >= end && ::lower( *uc ) != c )
14252             uc--;
14253     }
14254     return uc - end;
14255 #endif
14256 }
14257 
14277 int QString::findRev( const QString& str, int index, bool cs ) const
14278 {
14279     /*
14280       See QString::find() for explanations.
14281     */
14282     const uint l = length();
14283     if ( index < 0 )
14284         index += l;
14285     const uint sl = str.length();
14286     int delta = l-sl;
14287     if ( index < 0 || index > (int)l || delta < 0 )
14288         return -1;
14289     if ( index > delta )
14290         index = delta;
14291 
14292 #ifndef MACOSX_101
14293     if ( sl == 1 )
14294         return findRev( *str.unicode(), index, cs );
14295 #endif
14296 
14297     const QChar* needle = str.unicode();
14298     const QChar* haystack = unicode() + index;
14299     const QChar* end = unicode();
14300     const uint sl_minus_1 = sl-1;
14301     const QChar* n = needle+sl_minus_1;
14302     const QChar* h = haystack+sl_minus_1;
14303     uint hashNeedle = 0, hashHaystack = 0, i;
14304 
14305     if ( cs ) {
14306         for ( i = 0; i < sl; ++i ) {
14307             hashNeedle = ((hashNeedle<<1) + (n-i)->unicode() );
14308             hashHaystack = ((hashHaystack<<1) + (h-i)->unicode() );
14309         }
14310         hashHaystack -= haystack->unicode();
14311 
14312         while ( haystack >= end ) {
14313             hashHaystack += haystack->unicode();
14314             if ( hashHaystack == hashNeedle
14315                  && ucstrncmp( needle, haystack, sl ) == 0 )
14316                 return haystack-unicode();
14317             --haystack;
14318             REHASH( (haystack+sl)->unicode() );
14319         }
14320     } else {
14321         for ( i = 0; i < sl; ++i ) {
14322             hashNeedle = ((hashNeedle<<1)
14323                           + ::lower( (n-i)->unicode() ).unicode() );
14324             hashHaystack = ((hashHaystack<<1)
14325                             + ::lower( (h-i)->unicode() ).unicode() );
14326         }
14327         hashHaystack -= ::lower(*haystack).unicode();
14328 
14329         while ( haystack >= end ) {
14330             hashHaystack += ::lower(*haystack).unicode();
14331             if ( hashHaystack == hashNeedle
14332                  && ucstrnicmp( needle, haystack, sl ) == 0 )
14333                 return haystack-unicode();
14334             --haystack;
14335             REHASH( ::lower(*(haystack+sl)).unicode() );
14336         }
14337     }
14338     return -1;
14339 }
14340 
14341 #undef REHASH
14342 
14443 QString QString::section( const QString &sep, int start, int end, int flags ) const
14444 {
14445     const QChar *uc = unicode();
14446     if ( !uc )
14447         return QString();
14448     QString _sep = (flags & SectionCaseInsensitiveSeps) ? sep.lower() : sep;
14449     const QChar *uc_sep = _sep.unicode();
14450     if(!uc_sep)
14451         return QString();
14452     bool match = FALSE, last_match = TRUE;
14453 
14454     //find start
14455     int n = length(), sep_len = _sep.length();
14456     const QChar *begin = start < 0 ? uc + n : uc;
14457     while(start) {
14458         match = FALSE;
14459         int c = 0;
14460         for(const QChar *tmp = start < 0 ? begin - sep_len : begin;
14461             c < sep_len && tmp < uc + n && tmp >= uc; tmp++, c++) {
14462             if(flags & SectionCaseInsensitiveSeps) {
14463                 if( ::lower( *tmp ) != *(uc_sep + c))
14464                     break;
14465             } else {
14466                 if( *tmp != *(uc_sep + c) )
14467                     break;
14468             }
14469             if(c == sep_len - 1) {
14470                 match = TRUE;
14471                 break;
14472             }
14473         }
14474         if(start > 0 && (flags & SectionSkipEmpty) && match && last_match)
14475             match = FALSE;
14476         last_match = match;
14477 
14478         if(start < 0) {
14479             if(match) {
14480                 begin -= sep_len;
14481                 if(!++start)
14482                     break;
14483             } else {
14484                 if(start == -1 && begin == uc)
14485                     break;
14486                 begin--;
14487             }
14488         } else {
14489             if(match) {
14490                 if(!--start)
14491                     break;
14492                 begin += sep_len;
14493             } else {
14494                 if(start == 1 && begin == uc + n)
14495                     break;
14496                 begin++;
14497             }
14498         }
14499         if(begin > uc + n || begin < uc)
14500             return QString();
14501     }
14502     if(match && !(flags & SectionIncludeLeadingSep))
14503         begin+=sep_len;
14504     if(begin > uc + n || begin < uc)
14505         return QString();
14506 
14507     //now find last
14508     match = FALSE;
14509     const QChar *last = end < 0 ? uc + n : uc;
14510     if(end == -1) {
14511         int c = 0;
14512         for(const QChar *tmp = end < 0 ? last - sep_len : last;
14513             c < sep_len && tmp < uc + n && tmp >= uc; tmp++, c++) {
14514             if(flags & SectionCaseInsensitiveSeps) {
14515                 if( ::lower( *tmp ) != *(uc_sep + c))
14516                     break;
14517             } else {
14518                 if( *tmp != *(uc_sep + c) )
14519                     break;
14520             }
14521             if(c == sep_len - 1) {
14522                 match = TRUE;
14523                 break;
14524             }
14525         }
14526     } else {
14527         end++;
14528         last_match = TRUE;
14529         while(end) {
14530             match = FALSE;
14531             int c = 0;
14532             for(const QChar *tmp = end < 0 ? last - sep_len : last;
14533                 c < sep_len && tmp < uc + n && tmp >= uc; tmp++, c++) {
14534                 if(flags & SectionCaseInsensitiveSeps) {
14535                     if( ::lower( *tmp ) != *(uc_sep + c))
14536                         break;
14537                 } else {
14538                     if( *tmp != *(uc_sep + c) )
14539                         break;
14540                 }
14541                 if(c == sep_len - 1) {
14542                     match = TRUE;
14543                     break;
14544                 }
14545             }
14546             if(end > 0 && (flags & SectionSkipEmpty) && match && last_match)
14547                 match = FALSE;
14548             last_match = match;
14549 
14550             if(end < 0) {
14551                 if(match) {
14552                     if(!++end)
14553                         break;
14554                     last -= sep_len;
14555                 } else {
14556                     last--;
14557                 }
14558             } else {
14559                 if(match) {
14560                     last += sep_len;
14561                     if(!--end)
14562                         break;
14563                 } else {
14564                     last++;
14565                 }
14566             }
14567             if(last >= uc + n) {
14568                 last = uc + n;
14569                 break;
14570             } else if(last < uc) {
14571                 return QString();
14572             }
14573         }
14574     }
14575     if(match && !(flags & SectionIncludeTrailingSep))
14576         last -= sep_len;
14577     if(last < uc || last > uc + n || begin >= last)
14578         return QString();
14579 
14580     //done
14581     return QString(begin, last - begin);
14582 }
14583 
14584 #ifndef QT_NO_REGEXP
14585 class section_chunk {
14586 public:
14587     section_chunk(int l, QString s) { length = l; string = s; }
14588     int length;
14589     QString string;
14590 };
14630 QString QString::section( const QRegExp &reg, int start, int end, int flags ) const
14631 {
14632     const QChar *uc = unicode();
14633     if(!uc)
14634         return QString();
14635 
14636     QRegExp sep(reg);
14637     sep.setCaseSensitive(!(flags & SectionCaseInsensitiveSeps));
14638 
14639     QPtrList<section_chunk> l;
14640     l.setAutoDelete(TRUE);
14641     int n = length(), m = 0, last_m = 0, last = 0, last_len = 0;
14642 
14643     while( ( m = sep.search( *this, m ) ) != -1 ) {
14644         l.append(new section_chunk(last_len, QString(uc + last_m, m - last_m)));
14645         last_m = m;
14646         last_len = sep.matchedLength();
14647         if((m += sep.matchedLength()) >= n) {
14648             last = 1;
14649             break;
14650         }
14651     }
14652     if(!last)
14653         l.append(new section_chunk(last_len, QString(uc + last_m, n - last_m)));
14654 
14655     if(start < 0)
14656         start = l.count() + start;
14657     if(end == -1)
14658         end = l.count();
14659     else if(end < 0)
14660         end = l.count() + end;
14661 
14662     int i = 0;
14663     QString ret;
14664     for ( section_chunk *chk=l.first(); chk; chk=l.next(), i++ ) {
14665         if((flags & SectionSkipEmpty) && chk->length == (int)chk->string.length()) {
14666             if(i <= start)
14667                 start++;
14668             end++;
14669         }
14670         if(i == start) {
14671             ret = (flags & SectionIncludeLeadingSep) ? chk->string : chk->string.mid(chk->length);
14672         } else if(i > start) {
14673             ret += chk->string;
14674         }
14675         if(i == end) {
14676             if((chk=l.next()) && flags & SectionIncludeTrailingSep)
14677                 ret += chk->string.left(chk->length);
14678             break;
14679         }
14680     }
14681     return ret;
14682 }
14683 #endif
14684 
14711 int QString::contains( QChar c, bool cs ) const
14712 {
14713     int count = 0;
14714     const QChar *uc = unicode();
14715     if ( !uc )
14716         return 0;
14717     int n = length();
14718     if ( cs ) {
14719         while ( n-- )
14720             if ( *uc++ == c )
14721                 count++;
14722     } else {
14723         c = ::lower( c );
14724         while ( n-- ) {
14725             if ( ::lower( *uc ) == c )
14726                 count++;
14727             uc++;
14728         }
14729     }
14730     return count;
14731 }
14732 
14741 int QString::contains( const char* str, bool cs ) const
14742 {
14743     return contains( QString(str), cs );
14744 }
14745 
14794 int QString::contains( const QString &str, bool cs ) const
14795 {
14796     if ( isNull() )
14797         return 0;
14798     int count = 0;
14799     uint skiptable[0x100];
14800     bm_init_skiptable( str, skiptable, cs );
14801     int i = -1;
14802     // use boyer-moore for the ultimate speed experience
14803     while ( ( i = bm_find( *this, i+1, str, skiptable, cs ) ) != -1 )
14804         count++;
14805     return count;
14806 }
14807 
14823 QString QString::left( uint len ) const
14824 {
14825     if ( isEmpty() ) {
14826         return QString();
14827     } else if ( len == 0 ) {                    // ## just for 1.x compat:
14828         return fromLatin1( "" );
14829     } else if ( len >= length() ) {
14830         return *this;
14831     } else {
14832         QString s( len, TRUE );
14833         memcpy( s.d->unicode, d->unicode, len * sizeof(QChar) );
14834         s.d->len = len;
14835         return s;
14836     }
14837 }
14838 
14854 QString QString::right( uint len ) const
14855 {
14856     if ( isEmpty() ) {
14857         return QString();
14858     } else if ( len == 0 ) {                    // ## just for 1.x compat:
14859         return fromLatin1( "" );
14860     } else {
14861         uint l = length();
14862         if ( len >= l )
14863             return *this;
14864         QString s( len, TRUE );
14865         memcpy( s.d->unicode, d->unicode+(l-len), len*sizeof(QChar) );
14866         s.d->len = len;
14867         return s;
14868     }
14869 }
14870 
14887 QString QString::mid( uint index, uint len ) const
14888 {
14889     uint slen = length();
14890     if ( isEmpty() || index >= slen ) {
14891         return QString();
14892     } else if ( len == 0 ) {                    // ## just for 1.x compat:
14893         return fromLatin1( "" );
14894     } else {
14895         if ( len > slen-index )
14896             len = slen - index;
14897         if ( index == 0 && len == slen )
14898             return *this;
14899         register const QChar *p = unicode()+index;
14900         QString s( len, TRUE );
14901         memcpy( s.d->unicode, p, len * sizeof(QChar) );
14902         s.d->len = len;
14903         return s;
14904     }
14905 }
14906 
14926 QString QString::leftJustify( uint width, QChar fill, bool truncate ) const
14927 {
14928     QString result;
14929     int len = length();
14930     int padlen = width - len;
14931     if ( padlen > 0 ) {
14932         result.setLength(len+padlen);
14933         if ( len )
14934             memcpy( result.d->unicode, unicode(), sizeof(QChar)*len );
14935         QChar* uc = result.d->unicode + len;
14936         while (padlen--)
14937             *uc++ = fill;
14938     } else {
14939         if ( truncate )
14940             result = left( width );
14941         else
14942             result = *this;
14943     }
14944     return result;
14945 }
14946 
14966 QString QString::rightJustify( uint width, QChar fill, bool truncate ) const
14967 {
14968     QString result;
14969     int len = length();
14970     int padlen = width - len;
14971     if ( padlen > 0 ) {
14972         result.setLength( len+padlen );
14973         QChar* uc = result.d->unicode;
14974         while (padlen--)
14975             *uc++ = fill;
14976         if ( len )
14977             memcpy( uc, unicode(), sizeof(QChar)*len );
14978     } else {
14979         if ( truncate )
14980             result = left( width );
14981         else
14982             result = *this;
14983     }
14984     return result;
14985 }
14986 
14998 QString QString::lower() const
14999 {
15000     int l = length();
15001     register QChar *p = d->unicode;
15002     while ( l ) {
15003         if ( *p != ::lower(*p) ) {
15004             QString s( *this );
15005             s.real_detach();
15006             p = s.d->unicode + ( p - d->unicode );
15007             while ( l ) {
15008                 *p = ::lower( *p );
15009                 l--;
15010                 p++;
15011             }
15012             return s;
15013         }
15014         l--;
15015         p++;
15016     }
15017     return *this;
15018 }
15019 
15031 QString QString::upper() const
15032 {
15033     int l = length();
15034     register QChar *p = d->unicode;
15035     while ( l ) {
15036         if ( *p != ::upper(*p) ) {
15037             QString s( *this );
15038             s.real_detach();
15039             p = s.d->unicode + ( p - d->unicode );
15040             while ( l ) {
15041                 *p = ::upper( *p );
15042                 l--;
15043                 p++;
15044             }
15045             return s;
15046         }
15047         l--;
15048         p++;
15049     }
15050     return *this;
15051 }
15052 
15053 
15071 QString QString::stripWhiteSpace() const
15072 {
15073     if ( isEmpty() )                            // nothing to do
15074         return *this;
15075     register const QChar *s = unicode();
15076     if ( !s->isSpace() && !s[length()-1].isSpace() )
15077         return *this;
15078 
15079     int start = 0;
15080     int end = length() - 1;
15081     while ( start<=end && s[start].isSpace() )  // skip white space from start
15082         start++;
15083     if ( start <= end ) {                          // only white space
15084         while ( end && s[end].isSpace() )           // skip white space from end
15085             end--;
15086     }
15087     int l = end - start + 1;
15088     if ( l <= 0 )
15089         return QString::fromLatin1("");
15090 
15091     QString result( l, TRUE );
15092     memcpy( result.d->unicode, &s[start], sizeof(QChar)*l );
15093     result.d->len = l;
15094     return result;
15095 }
15096 
15097 
15116 QString QString::simplifyWhiteSpace() const
15117 {
15118     if ( isEmpty() )
15119         return *this;
15120     QString result;
15121     result.setLength( length() );
15122     const QChar *from = unicode();
15123     const QChar *fromend = from+length();
15124     int outc=0;
15125     QChar *to   = result.d->unicode;
15126     for (;;) {
15127         while ( from!=fromend && from->isSpace() )
15128             from++;
15129         while ( from!=fromend && !from->isSpace() )
15130             to[outc++] = *from++;
15131         if ( from!=fromend )
15132             to[outc++] = ' ';
15133         else
15134             break;
15135     }
15136     if ( outc > 0 && to[outc-1] == ' ' )
15137         outc--;
15138     result.truncate( outc );
15139     return result;
15140 }
15141 
15142 
15159 QString &QString::insert( uint index, const QString &s )
15160 {
15161     // the sub function takes care of &s == this case.
15162     return insert( index, s.unicode(), s.length() );
15163 }
15164 
15172 QString &QString::insert( uint index, const QChar* s, uint len )
15173 {
15174     if ( len == 0 )
15175         return *this;
15176     uint olen = length();
15177     int nlen = olen + len;
15178 
15179     if ( s >= d->unicode && (uint)(s - d->unicode) < d->maxl ) {
15180         // Part of me - take a copy.
15181         QChar *tmp = QT_ALLOC_QCHAR_VEC( len );
15182         memcpy(tmp,s,len*sizeof(QChar));
15183         insert(index,tmp,len);
15184         QT_DELETE_QCHAR_VEC( tmp );
15185         return *this;
15186     }
15187 
15188     if ( index >= olen ) {                      // insert after end of string
15189         setLength( len + index );
15190         int n = index - olen;
15191         QChar* uc = d->unicode+olen;
15192         while (n--)
15193             *uc++ = ' ';
15194         memcpy( d->unicode+index, s, sizeof(QChar)*len );
15195     } else {                                    // normal insert
15196         setLength( nlen );
15197         memmove( d->unicode + index + len, unicode() + index,
15198                  sizeof(QChar) * (olen - index) );
15199         memcpy( d->unicode + index, s, sizeof(QChar) * len );
15200     }
15201     return *this;
15202 }
15203 
15215 QString &QString::insert( uint index, QChar c ) // insert char
15216 {
15217     QString s( c );
15218     return insert( index, s );
15219 }
15220 
15301 QString &QString::prepend( const char *s )
15302 {
15303     return insert( 0, QString(s) );
15304 }
15305 
15323 QString &QString::remove( uint index, uint len )
15324 {
15325     uint olen = length();
15326     if ( index >= olen  ) {
15327         // range problems
15328     } else if ( index + len >= olen ) {  // index ok
15329         setLength( index );
15330     } else if ( len != 0 ) {
15331         real_detach();
15332         memmove( d->unicode+index, d->unicode+index+len,
15333                  sizeof(QChar)*(olen-index-len) );
15334         setLength( olen-len );
15335     }
15336     return *this;
15337 }
15338 
15346 QString &QString::remove( QChar c )
15347 {
15348     int i = 0;
15349     while ( i < (int) length() ) {
15350         if ( constref(i) == c ) {
15351             remove( i, 1 );
15352         } else {
15353             i++;
15354         }
15355     }
15356     return *this;
15357 }
15358 
15376 QString &QString::remove( const QString & str )
15377 {
15378     int index = 0;
15379     if ( !str.isEmpty() ) {
15380         while ( (index = find(str, index)) != -1 )
15381             remove( index, str.length() );
15382     }
15383     return *this;
15384 }
15385 
15391 QString &QString::replace( QChar c1, QChar c2 )
15392 {
15393      real_detach();
15394      uint i = 0;
15395      while ( i < d->len ) {
15396           if ( d->unicode[i] == c1 )
15397                d->unicode[i] = c2;
15398           i++;
15399      }
15400      return *this;
15401 }
15402 
15403 
15404 #ifndef QT_NO_REGEXP_CAPTURE
15405 
15414 QString &QString::remove( const QRegExp & rx )
15415 {
15416     return replace( rx, QString::null );
15417 }
15418 
15419 #endif
15420 
15426 QString &QString::remove( const char *str )
15427 {
15428     return remove( QString::fromLatin1(str) );
15429 }
15430 
15450 QString &QString::replace( uint index, uint len, const QString &s )
15451 {
15452     return replace( index, len, s.unicode(), s.length() );
15453 }
15454 
15459 QString &QString::replace( uint index, uint len, QChar c )
15460 {
15461     return replace( index, len, &c, 1 );
15462 }
15463 
15480 QString &QString::replace( uint index, uint len, const QChar* s, uint slen )
15481 {
15482     real_detach();
15483     if ( len == slen && index + len <= length() ) {
15484         // Optimized common case: replace without size change
15485         memcpy( d->unicode+index, s, len * sizeof(QChar) );
15486     } else if ( s >= d->unicode && (uint)(s - d->unicode) < d->maxl ) {
15487         // Part of me - take a copy.
15488         QChar *tmp = QT_ALLOC_QCHAR_VEC( slen );
15489         memcpy( tmp, s, slen * sizeof(QChar) );
15490         replace( index, len, tmp, slen );
15491         QT_DELETE_QCHAR_VEC( tmp );
15492     } else {
15493         remove( index, len );
15494         insert( index, s, slen );
15495     }
15496     return *this;
15497 }
15498 
15511 QString &QString::replace( QChar c, const QString & after )
15512 {
15513     return replace( QString( c ), after );
15514 }
15515 
15535 QString &QString::replace( const QString & before, const QString & after )
15536 {
15537     if ( before == after || isNull() )
15538         return *this;
15539 
15540     real_detach();
15541 
15542     int index = 0;
15543     uint skiptable[256];
15544     bm_init_skiptable( before, skiptable, TRUE );
15545     const int bl = before.length();
15546     const int al = after.length();
15547 
15548     if ( bl == al ) {
15549         if ( bl ) {
15550             const QChar *auc = after.unicode();
15551             while( (index = bm_find(*this, index, before, skiptable, TRUE) ) != -1 ) {
15552                 memcpy( d->unicode+index, auc, al*sizeof(QChar) );
15553                 index += bl;
15554             }
15555         }
15556     } else if ( al < bl ) {
15557         const QChar *auc = after.unicode();
15558         uint to = 0;
15559         uint movestart = 0;
15560         uint num = 0;
15561         while( (index = bm_find(*this, index, before, skiptable, TRUE) ) != -1 ) {
15562             if ( num ) {
15563                 int msize = index - movestart;
15564                 if ( msize > 0 ) {
15565                     memmove( d->unicode + to, d->unicode + movestart, msize*sizeof(QChar) );
15566                     to += msize;
15567                 }
15568             } else {
15569                 to = index;
15570             }
15571             if ( al ) {
15572                 memcpy( d->unicode+to, auc, al*sizeof(QChar) );
15573                 to += al;
15574             }
15575             index += bl;
15576             movestart = index;
15577             num++;
15578         }
15579         if ( num ) {
15580             int msize = d->len - movestart;
15581             if ( msize > 0 )
15582                 memmove( d->unicode + to, d->unicode + movestart, msize*sizeof(QChar) );
15583             setLength( d->len - num*(bl-al) );
15584         }
15585     } else {
15586         // the most complex case. We don't want to loose performance by doing repeated
15587         // copies and reallocs of the string.
15588         while( index != -1 ) {
15589             uint indices[4096];
15590             uint pos = 0;
15591             while( pos < 4095 ) {
15592                 index = bm_find(*this, index, before, skiptable, TRUE);
15593                 if ( index == -1 )
15594                     break;
15595                 indices[pos++] = index;
15596                 index += bl;
15597                 // avoid infinite loop
15598                 if ( !bl )
15599                     index++;
15600             }
15601             if ( !pos )
15602                 break;
15603 
15604             // we have a table of replacement positions, use them for fast replacing
15605             int adjust = pos*(al-bl);
15606             // index has to be adjusted in case we get back into the loop above.
15607             if ( index != -1 )
15608                 index += adjust;
15609             uint newlen = d->len + adjust;
15610             int moveend = d->len;
15611             if ( newlen > d->len )
15612                 setLength( newlen );
15613 
15614             while( pos ) {
15615                 pos--;
15616                 int movestart = indices[pos] + bl;
15617                 int insertstart = indices[pos] + pos*(al-bl);
15618                 int moveto = insertstart + al;
15619                 memmove( d->unicode + moveto, d->unicode + movestart, (moveend - movestart)*sizeof(QChar) );
15620                 memcpy( d->unicode + insertstart, after.unicode(), al*sizeof(QChar) );
15621                 moveend = movestart-bl;
15622             }
15623         }
15624     }
15625     return *this;
15626 }
15627 
15628 #ifndef QT_NO_REGEXP_CAPTURE
15629 
15652 QString &QString::replace( const QRegExp &rx, const QString &str )
15653 {
15654     if ( isNull() )
15655         return *this;
15656 
15657     real_detach();
15658 
15659     QRegExp rx2 = rx;
15660     int index = 0;
15661     int numCaptures = rx2.numCaptures();
15662     int al = str.length();
15663     QRegExp::CaretMode caretMode = QRegExp::CaretAtZero;
15664 
15665     if ( numCaptures > 0 ) {
15666         if ( numCaptures > 9 )
15667             numCaptures = 9;
15668 
15669         const QChar *uc = str.unicode();
15670         int numBackRefs = 0;
15671 
15672         for ( int i = 0; i < al - 1; i++ ) {
15673             if ( uc[i] == '\\' ) {
15674                 int no = uc[i + 1].digitValue();
15675                 if ( no > 0 && no <= numCaptures )
15676                     numBackRefs++;
15677             }
15678         }
15679 
15680         /*
15681           This is the harder case where we have back-references. We
15682           don't try to optimize it.
15683         */
15684         if ( numBackRefs > 0 ) {
15685             int *capturePositions = new int[numBackRefs];
15686             int *captureNumbers = new int[numBackRefs];
15687             int j = 0;
15688 
15689             for ( int i = 0; i < al - 1; i++ ) {
15690                 if ( uc[i] == '\\' ) {
15691                     int no = uc[i + 1].digitValue();
15692                     if ( no > 0 && no <= numCaptures ) {
15693                         capturePositions[j] = i;
15694                         captureNumbers[j] = no;
15695                         j++;
15696                     }
15697                 }
15698             }
15699 
15700             while ( index <= (int)length() ) {
15701                 index = rx2.search( *this, index, caretMode );
15702                 if ( index == -1 )
15703                     break;
15704 
15705                 QString str2 = str;
15706                 for ( j = numBackRefs - 1; j >= 0; j-- )
15707                     str2.replace( capturePositions[j], 2,
15708                                   rx2.cap(captureNumbers[j]) );
15709 
15710                 replace( index, rx2.matchedLength(), str2 );
15711                 index += str2.length();
15712 
15713                 if ( rx2.matchedLength() == 0 ) {
15714                     // avoid infinite loop on 0-length matches (e.g., [a-z]*)
15715                     index++;
15716                 } else if ( index == 0 ) {
15717                     caretMode = QRegExp::CaretWontMatch;
15718                 }
15719             }
15720             delete[] capturePositions;
15721             delete[] captureNumbers;
15722             return *this;
15723         }
15724     }
15725 
15726     /*
15727       This is the simple and optimized case where we don't have
15728       back-references.
15729     */
15730     while ( index != -1 ) {
15731         struct {
15732             int pos;
15733             int length;
15734         } replacements[2048];
15735 
15736         uint pos = 0;
15737         int adjust = 0;
15738         while( pos < 2047 ) {
15739             index = rx2.search( *this, index, caretMode );
15740             if ( index == -1 )
15741                 break;
15742             int ml = rx2.matchedLength();
15743             replacements[pos].pos = index;
15744             replacements[pos++].length = ml;
15745             index += ml;
15746             adjust += al - ml;
15747             // avoid infinite loop
15748             if ( !ml )
15749                 index++;
15750         }
15751         if ( !pos )
15752             break;
15753         replacements[pos].pos = d->len;
15754         uint newlen = d->len + adjust;
15755 
15756         // to continue searching at the right position after we did
15757         // the first round of replacements
15758         if ( index != -1 )
15759             index += adjust;
15760         QChar *newuc = QT_ALLOC_QCHAR_VEC( newlen + 1 );
15761         QChar *uc = newuc;
15762         int copystart = 0;
15763         uint i = 0;
15764         while( i < pos ) {
15765             int copyend = replacements[i].pos;
15766             int size = copyend - copystart;
15767             memcpy( uc, d->unicode + copystart, size*sizeof(QChar) );
15768             uc += size;
15769             memcpy( uc, str.unicode(), al*sizeof( QChar ) );
15770             uc += al;
15771             copystart = copyend + replacements[i].length;
15772             i++;
15773         }
15774         memcpy( uc, d->unicode + copystart,
15775                 (d->len - copystart) * sizeof(QChar) );
15776         QT_DELETE_QCHAR_VEC( d->unicode );
15777         d->unicode = newuc;
15778         d->len = newlen;
15779         d->maxl = newlen + 1;
15780         d->setDirty();
15781         caretMode = QRegExp::CaretWontMatch;
15782     }
15783     return *this;
15784 }
15785 #endif
15786 
15787 #ifndef QT_NO_REGEXP
15788 
15805 int QString::find( const QRegExp &rx, int index ) const
15806 {
15807     return rx.search( *this, index );
15808 }
15809 
15828 int QString::findRev( const QRegExp &rx, int index ) const
15829 {
15830     return rx.searchRev( *this, index );
15831 }
15832 
15851 int QString::contains( const QRegExp &rx ) const
15852 {
15853     int count = 0;
15854     int index = -1;
15855     int len = length();
15856     while ( index < len - 1 ) {                 // count overlapping matches
15857         index = rx.search( *this, index + 1 );
15858         if ( index == -1 )
15859             break;
15860         count++;
15861     }
15862     return count;
15863 }
15864 
15865 #endif //QT_NO_REGEXP
15866 
15867 static bool ok_in_base( QChar c, int base )
15868 {
15869     if ( base <= 10 )
15870         return c.isDigit() && c.digitValue() < base;
15871     else
15872         return c.isDigit() || (c >= 'a' && c < char('a'+base-10))
15873                            || (c >= 'A' && c < char('A'+base-10));
15874 }
15875 
15886 long QString::toLong( bool *ok, int base ) const
15887 {
15888     const QChar *p = unicode();
15889     ulong val = 0;
15890     int l = length();
15891     const ulong max_mult = LONG_MAX / base;
15892     bool is_ok = FALSE;
15893     int neg = 0;
15894     if ( !p )
15895         goto bye;
15896     while ( l && p->isSpace() )                 // skip leading space
15897         l--,p++;
15898     if ( !l )
15899         goto bye;
15900     if ( *p == '-' ) {
15901         l--;
15902         p++;
15903         neg = 1;
15904     } else if ( *p == '+' ) {
15905         l--;
15906         p++;
15907     }
15908 
15909     // NOTE: toULong() code is similar
15910     if ( !l || !ok_in_base(*p,base) )
15911         goto bye;
15912     while ( l && ok_in_base(*p,base) ) {
15913         l--;
15914         int dv;
15915         if ( p->isDigit() ) {
15916             dv = p->digitValue();
15917         } else {
15918             if ( *p >= 'a' && *p <= 'z' )
15919                 dv = *p - 'a' + 10;
15920             else
15921                 dv = *p - 'A' + 10;
15922         }
15923         if ( val > max_mult ||
15924             (val == max_mult && dv > (LONG_MAX % base) + neg) )
15925             goto bye;
15926         val = base * val + dv;
15927         p++;
15928     }
15929     while ( l && p->isSpace() )                 // skip trailing space
15930         l--, p++;
15931     if ( !l )
15932         is_ok = TRUE;
15933 bye:
15934     if ( ok )
15935         *ok = is_ok;
15936     return is_ok ? ( neg ? -( (long) val ) : (long) val ) : 0L;
15937 }
15938 
15949 ulong QString::toULong( bool *ok, int base ) const
15950 {
15951     const QChar *p = unicode();
15952     ulong val = 0;
15953     int l = length();
15954     const ulong max_mult = ULONG_MAX / base;
15955     bool is_ok = FALSE;
15956     if ( !p )
15957         goto bye;
15958     while ( l && p->isSpace() )                 // skip leading space
15959         l--,p++;
15960     if ( !l )
15961         goto bye;
15962     if ( *p == '+' )
15963         l--,p++;
15964 
15965     // NOTE: toLong() code is similar
15966     if ( !l || !ok_in_base(*p,base) )
15967         goto bye;
15968     while ( l && ok_in_base(*p,base) ) {
15969         l--;
15970         uint dv;
15971         if ( p->isDigit() ) {
15972             dv = p->digitValue();
15973         } else {
15974             if ( *p >= 'a' && *p <= 'z' )
15975                 dv = *p - 'a' + 10;
15976             else
15977                 dv = *p - 'A' + 10;
15978         }
15979         if ( val > max_mult || (val == max_mult && dv > ULONG_MAX % base) )
15980             goto bye;
15981         val = base * val + dv;
15982         p++;
15983     }
15984 
15985     while ( l && p->isSpace() )                 // skip trailing space
15986         l--,p++;
15987     if ( !l )
15988         is_ok = TRUE;
15989 bye:
15990     if ( ok )
15991         *ok = is_ok;
15992     return is_ok ? val : 0;
15993 }
15994 
16003 short QString::toShort( bool *ok, int base ) const
16004 {
16005     long v = toLong( ok, base );
16006     if ( ok && *ok && (v < SHRT_MIN || v > SHRT_MAX) ) {
16007         *ok = FALSE;
16008         v = 0;
16009     }
16010     return (short)v;
16011 }
16012 
16022 ushort QString::toUShort( bool *ok, int base ) const
16023 {
16024     ulong v = toULong( ok, base );
16025     if ( ok && *ok && (v > USHRT_MAX) ) {
16026         *ok = FALSE;
16027         v = 0;
16028     }
16029     return (ushort)v;
16030 }
16031 
16032 
16050 int QString::toInt( bool *ok, int base ) const
16051 {
16052     long v = toLong( ok, base );
16053     if ( ok && *ok && (v < INT_MIN || v > INT_MAX) ) {
16054         *ok = FALSE;
16055         v = 0;
16056     }
16057     return (int)v;
16058 }
16059 
16070 uint QString::toUInt( bool *ok, int base ) const
16071 {
16072     ulong v = toULong( ok, base );
16073     if ( ok && *ok && (v > UINT_MAX) ) {
16074         *ok = FALSE;
16075         v = 0;
16076     }
16077     return (uint)v;
16078 }
16079 
16094 double QString::toDouble( bool *ok ) const
16095 {
16096     char *end;
16097 
16098     const char *a = latin1();
16099     double val = strtod( a ? a : "", &end );
16100     if ( ok )
16101         *ok = ( a && *a && (end == 0 || *end == '\0') );
16102     return val;
16103 }
16104 
16114 float QString::toFloat( bool *ok ) const
16115 {
16116     return (float)toDouble( ok );
16117 }
16118 
16119 
16132 QString &QString::setNum( long n, int base )
16133 {
16134 #if defined(QT_CHECK_RANGE)
16135     if ( base < 2 || base > 36 ) {
16136         qWarning( "QString::setNum: Invalid base %d", base );
16137         base = 10;
16138     }
16139 #endif
16140     char   charbuf[65*sizeof(QChar)];
16141     QChar *buf = (QChar*)charbuf;
16142     QChar *p = &buf[64];
16143     int  len = 0;
16144     bool neg;
16145     if ( n < 0 ) {
16146         neg = TRUE;
16147         if ( n == LONG_MIN ) {
16148             // Cannot always negate this special case
16149             QString s1, s2;
16150             s1.setNum(n/base, base );
16151             s2.setNum((-(n+base))%base, base );
16152             *this = s1 + s2;
16153             return *this;
16154         }
16155         n = -n;
16156     } else {
16157         neg = FALSE;
16158     }
16159     do {
16160         *--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
16161         n /= base;
16162         ++len;
16163     } while ( n );
16164     if ( neg ) {
16165         *--p = '-';
16166         ++len;
16167     }
16168     return setUnicode( p, len );
16169 }
16170 
16180 QString &QString::setNum( ulong n, int base )
16181 {
16182 #if defined(QT_CHECK_RANGE)
16183     if ( base < 2 || base > 36 ) {
16184         qWarning( "QString::setNum: Invalid base %d", base );
16185         base = 10;
16186     }
16187 #endif
16188     char   charbuf[65*sizeof(QChar)];
16189     QChar *buf = (QChar*)charbuf;
16190     QChar *p = &buf[64];
16191     int len = 0;
16192     do {
16193         *--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
16194         n /= base;
16195         len++;
16196     } while ( n );
16197     return setUnicode(p,len);
16198 }
16199 
16255 QString &QString::setNum( double n, char f, int prec )
16256 {
16257 #if defined(QT_CHECK_RANGE)
16258     if ( !(f=='f' || f=='F' || f=='e' || f=='E' || f=='g' || f=='G') ) {
16259         qWarning( "QString::setNum: Invalid format char '%c'", f );
16260         f = 'f';
16261     }
16262 #endif
16263     char format[20];
16264     char *fs = format; // generate format string: %.<prec>l<f>
16265     *fs++ = '%';
16266     if ( prec >= 0 ) {
16267         if ( prec > 99 ) // rather than crash in sprintf()
16268             prec = 99;
16269         *fs++ = '.';
16270         if ( prec >= 10 ) {
16271             *fs++ = prec / 10 + '0';
16272             *fs++ = prec % 10 + '0';
16273         } else {
16274             *fs++ = prec + '0';
16275         }
16276     }
16277     *fs++ = 'l';
16278     *fs++ = f;
16279     *fs = '\0';
16280 #ifndef QT_NO_SPRINTF
16281     sprintf( format, n );
16282     return *this;
16283 #else
16284     char buf[512];
16285     ::sprintf( buf, format, n );        // snprintf is unfortunately not portable
16286     return setLatin1(buf);
16287 #endif
16288 }
16289 
16317 QString QString::number( long n, int base )
16318 {
16319     QString s;
16320     s.setNum( n, base );
16321     return s;
16322 }
16323 
16329 QString QString::number( ulong n, int base )
16330 {
16331     QString s;
16332     s.setNum( n, base );
16333     return s;
16334 }
16335 
16341 QString QString::number( int n, int base )
16342 {
16343     QString s;
16344     s.setNum( n, base );
16345     return s;
16346 }
16347 
16357 QString QString::number( uint n, int base )
16358 {
16359     QString s;
16360     s.setNum( n, base );
16361     return s;
16362 }
16363 
16392 QString QString::number( double n, char f, int prec )
16393 {
16394     QString s;
16395     s.setNum( n, f, prec );
16396     return s;
16397 }
16398 
16399 
16409 void QString::setExpand( uint index, QChar c )
16410 {
16411     int spaces = index - d->len;
16412     at(index) = c;
16413     while (spaces-->0)
16414         d->unicode[--index]=' ';
16415 }
16416 
16417 
16530 QString& QString::operator+=( const QString &str )
16531 {
16532     uint len1 = length();
16533     uint len2 = str.length();
16534     if ( len2 ) {
16535         setLength(len1+len2);
16536         memcpy( d->unicode+len1, str.unicode(), sizeof(QChar)*len2 );
16537     } else if ( isNull() && !str.isNull() ) {   // ## just for 1.x compat:
16538         *this = fromLatin1( "" );
16539     }
16540     return *this;
16541 }
16542 
16548 #ifndef QT_NO_CAST_ASCII
16549 QString& QString::operator+=( const char *str )
16550 {
16551     if ( str ) {
16552 #ifndef QT_NO_TEXTCODEC
16553         if ( QTextCodec::codecForCStrings() )
16554             return operator+=( fromAscii( str ) );
16555 #endif
16556 
16557         uint len1 = length();
16558         uint len2 = strlen( str );
16559         if ( len2 ) {
16560             setLength(len1+len2);
16561             uint i = 0;
16562             while( i < len2 ) {
16563                 d->unicode[len1+i] = str[i];
16564                 i++;
16565             }
16566         } else if ( isNull() ) {   // ## just for 1.x compat:
16567             *this = fromLatin1( "" );
16568         }
16569     }
16570     return *this;
16571 }
16572 #endif
16573 
16579 QString &QString::operator+=( QChar c )
16580 {
16581     setLength(length()+1);
16582     d->unicode[length()-1] = c;
16583     return *this;
16584 }
16585 
16592 QString &QString::operator+=( char c )
16593 {
16594 #ifndef QT_NO_TEXTCODEC
16595     if ( QTextCodec::codecForCStrings() )
16596         return operator+=( fromAscii( &c, 1 ) );
16597 #endif
16598     setLength(length()+1);
16599     d->unicode[length()-1] = c;
16600     return *this;
16601 }
16602 
16641 const char* QString::latin1() const
16642 {
16643     if ( !d->ascii  || !d->islatin1 ) {
16644         d->ascii = unicodeToLatin1( d->unicode, d->len );
16645         d->islatin1 = TRUE;
16646     }
16647     return d->ascii;
16648 }
16649 
16659 const char* QString::ascii() const
16660 {
16661 #ifndef QT_NO_TEXTCODEC
16662     if ( QTextCodec::codecForCStrings() ) {
16663         if ( !d->ascii || d->islatin1 ) {
16664             QCString s = QTextCodec::codecForCStrings()->fromUnicode( *this );
16665             s.detach();
16666             d->ascii = s.data();
16667             d->islatin1 = FALSE;
16668             s.resetRawData( s.data(), s.size() ); // we have stolen the data
16669         }
16670         return d->ascii;
16671     }
16672 #endif // QT_NO_TEXTCODEC
16673     return latin1();
16674 }
16675 
16683 QCString QString::utf8() const
16684 {
16685     int l = length();
16686     int rlen = l*3+1;
16687     QCString rstr(rlen);
16688     uchar* cursor = (uchar*)rstr.data();
16689     const QChar *ch = d->unicode;
16690     for (int i=0; i<l; i++) {
16691         ushort u = ch->unicode();
16692         if ( u < 0x80 ) {
16693             *cursor++ = (uchar)u;
16694         } else {
16695             if ( u < 0x0800 ) {
16696                 *cursor++ = 0xc0 | ((uchar) (u >> 6));
16697             } else {
16698                 *cursor++ = 0xe0 | ((uchar) (u >> 12));
16699                 *cursor++ = 0x80 | ( ((uchar) (u >> 6)) & 0x3f);
16700             }
16701             *cursor++ = 0x80 | ((uchar) (u&0x3f));
16702         }
16703         ch++;
16704     }
16705     rstr.truncate( cursor - (uchar*)rstr.data() );
16706     return rstr;
16707 }
16708 
16722 QString QString::fromUtf8( const char* utf8, int len )
16723 {
16724     if ( !utf8 )
16725         return QString::null;
16726 
16727     if ( len < 0 )
16728         len = strlen( utf8 );
16729     QString result;
16730     result.setLength( len ); // worst case
16731     QChar *qch = (QChar *)result.unicode();
16732     ushort uc = 0;
16733     int need = 0;
16734     for (int i=0; i<len; i++) {
16735         uchar ch = utf8[i];
16736         if (need) {
16737             if ( (ch&0xc0) == 0x80 ) {
16738                 uc = (uc << 6) | (ch & 0x3f);
16739                 need--;
16740                 if ( !need ) {
16741                     *qch = uc;
16742                     qch++;
16743                 }
16744             } else {
16745                 // error
16746                 *qch = QChar::replacement;
16747                 qch++;
16748                 need = 0;
16749             }
16750         } else {
16751             if ( ch < 128 ) {
16752                 *qch = ch;
16753                 qch++;
16754             } else if ( (ch&0xe0) == 0xc0 ) {
16755                 uc = ch &0x1f;
16756                 need = 1;
16757             } else if ( (ch&0xf0) == 0xe0 ) {
16758                 uc = ch &0x0f;
16759                 need = 2;
16760             }
16761         }
16762     }
16763     result.truncate( qch - result.unicode() );
16764     return result;
16765 }
16766 
16788 QString QString::fromAscii( const char* ascii, int len )
16789 {
16790 #ifndef QT_NO_TEXTCODEC
16791     if ( QTextCodec::codecForCStrings() ) {
16792         if ( !ascii )
16793             return QString::null;
16794         if ( len < 0 )
16795             len = strlen( ascii );
16796         if ( len == 0 || *ascii == '\0' )
16797             return QString::fromLatin1( "" );
16798         return QTextCodec::codecForCStrings()->toUnicode( ascii, len );
16799     }
16800 #endif
16801     return fromLatin1( ascii, len );
16802 }
16803 
16804 
16814 QString QString::fromLatin1( const char* chars, int len )
16815 {
16816     uint l;
16817     QChar *uc;
16818     if ( len < 0 )
16819          len = -1;
16820     uc = internalLatin1ToUnicode( chars, &l, len );
16821     return QString( new QStringData(uc, l, l), TRUE );
16822 }
16823 
16843 QCString QString::local8Bit() const
16844 {
16845 #ifdef QT_NO_TEXTCODEC
16846     return latin1();
16847 #else
16848 #ifdef Q_WS_X11
16849     QTextCodec* codec = QTextCodec::codecForLocale();
16850     return codec
16851             ? codec->fromUnicode(*this)
16852             : QCString(latin1());
16853 #endif
16854 #if defined( Q_WS_MACX )
16855     return utf8();
16856 #endif
16857 #if defined( Q_WS_MAC9 )
16858     return QCString(latin1()); //I'm evil..
16859 #endif
16860 #ifdef Q_WS_WIN
16861     return qt_winQString2MB( *this );
16862 #endif
16863 #ifdef Q_WS_QWS
16864     return utf8(); // ### if there is any 8 bit format supported?
16865 #endif
16866 #endif
16867 }
16868 
16885 QString QString::fromLocal8Bit( const char* local8Bit, int len )
16886 {
16887 #ifdef QT_NO_TEXTCODEC
16888     return fromLatin1( local8Bit, len );
16889 #else
16890 
16891     if ( !local8Bit )
16892         return QString::null;
16893 #ifdef Q_WS_X11
16894     QTextCodec* codec = QTextCodec::codecForLocale();
16895     if ( len < 0 )
16896         len = strlen( local8Bit );
16897     return codec
16898             ? codec->toUnicode( local8Bit, len )
16899             : fromLatin1( local8Bit, len );
16900 #endif
16901 #if defined( Q_WS_MAC )
16902     return fromUtf8(local8Bit,len);
16903 #endif
16904 // Should this be OS_WIN32?
16905 #ifdef Q_WS_WIN
16906     if ( len >= 0 ) {
16907         QCString s(local8Bit,len+1);
16908         return qt_winMB2QString(s);
16909     }
16910     return qt_winMB2QString( local8Bit );
16911 #endif
16912 #ifdef Q_WS_QWS
16913     return fromUtf8(local8Bit,len);
16914 #endif
16915 #endif // QT_NO_TEXTCODEC
16916 }
16917 
16943 const unsigned short *QString::ucs2() const
16944 {
16945     if ( ! d->unicode )
16946         return 0;
16947     unsigned int len = d->len;
16948     if ( d->maxl < len + 1 ) {
16949         // detach, grow or shrink
16950         uint newMax = computeNewMax( len + 1 );
16951         QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
16952         if ( nd ) {
16953             if ( d->unicode )
16954                 memcpy( nd, d->unicode, sizeof(QChar)*len );
16955             ((QString *)this)->deref();
16956             ((QString *)this)->d = new QStringData( nd, len, newMax );
16957         }
16958     }
16959     d->unicode[len] = 0;
16960     return (unsigned short *) d->unicode;
16961 }
16962 
16971 QString QString::fromUcs2( const unsigned short *str )
16972 {
16973     if ( !str ) {
16974         return QString::null;
16975     } else {
16976         int length = 0;
16977         while( str[length] != 0 )
16978             length++;
16979         QChar* uc = QT_ALLOC_QCHAR_VEC( length );
16980         memcpy( uc, str, length*sizeof(QChar) );
16981         return QString( new QStringData( uc, length, length ), TRUE );
16982     }
16983 }
16984 
17074 /*
17075   Internal chunk of code to handle the
17076   uncommon cases of at() above.
17077 */
17078 void QString::subat( uint i )
17079 {
17080     uint olen = d->len;
17081     if ( i >= olen ) {
17082         setLength( i+1 );               // i is index; i+1 is needed length
17083         for ( uint j=olen; j<=i; j++ )
17084             d->unicode[j] = QChar::null;
17085     } else {
17086         // Just be sure to detach
17087         real_detach();
17088     }
17089 }
17090 
17091 
17101 QString& QString::setUnicode( const QChar *unicode, uint len )
17102 {
17103     if ( len == 0 ) {                           // set to null string
17104         if ( d != shared_null ) {               // beware of nullstring being set to nullstring
17105             deref();
17106             d = shared_null ? shared_null : makeSharedNull();
17107             d->ref();
17108         }
17109     } else if ( d->count != 1 || len > d->maxl ||
17110                 ( len * 4 < d->maxl && d->maxl > 4 ) ) {
17111         // detach, grown or shrink
17112         uint newMax = computeNewMax( len );
17113         QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
17114         if ( unicode )
17115             memcpy( nd, unicode, sizeof(QChar)*len );
17116         deref();
17117         d = new QStringData( nd, len, newMax );
17118     } else {
17119         d->len = len;
17120         d->setDirty();
17121         if ( unicode )
17122             memcpy( d->unicode, unicode, sizeof(QChar)*len );
17123     }
17124     return *this;
17125 }
17126 
17138 QString& QString::setUnicodeCodes( const ushort* unicode_as_ushorts, uint len )
17139 {
17140      return setUnicode((const QChar*)unicode_as_ushorts, len);
17141 }
17142 
17143 
17155 QString &QString::setAscii( const char *str, int len )
17156 {
17157 #ifndef QT_NO_TEXTCODEC
17158     if ( QTextCodec::codecForCStrings() ) {
17159         *this = QString::fromAscii( str, len );
17160         return *this;
17161     }
17162 #endif // QT_NO_TEXTCODEC
17163     return setLatin1( str, len );
17164 }
17165 
17177 QString &QString::setLatin1( const char *str, int len )
17178 {
17179     if ( str == 0 )
17180         return setUnicode(0,0);
17181     if ( len < 0 )
17182         len = strlen( str );
17183     if ( len == 0 ) {                           // won't make a null string
17184         *this = QString::fromLatin1( "" );
17185     } else {
17186         setUnicode( 0, len );                   // resize but not copy
17187         QChar *p = d->unicode;
17188         while ( len-- )
17189             *p++ = *str++;
17190     }
17191     return *this;
17192 }
17193 
17196 void QString::checkSimpleText() const
17197 {
17198     QChar *p = d->unicode;
17199     QChar *end = p + d->len;
17200     while( p < end ) {
17201         ushort uc = p->unicode();
17202         // sort out regions of complex text formatting
17203         if ( uc > 0x058f && ( uc < 0x1100 || uc > 0xfb0f ) ) {
17204             d->issimpletext = FALSE;
17205             return;
17206         }
17207         p++;
17208     }
17209     d->issimpletext = TRUE;
17210 }
17211 
17218 bool QString::isRightToLeft() const
17219 {
17220     int len = length();
17221     QChar *p = d->unicode;
17222     while( len-- ) {
17223         switch( ::direction( *p ) )
17224         {
17225         case QChar::DirL:
17226         case QChar::DirLRO:
17227         case QChar::DirLRE:
17228             return FALSE;
17229         case QChar::DirR:
17230         case QChar::DirAL:
17231         case QChar::DirRLO:
17232         case QChar::DirRLE:
17233             return TRUE;
17234         default:
17235             break;
17236         }
17237         ++p;
17238     }
17239     return FALSE;
17240 }
17241 
17242 
17269 int QString::compare( const QString& s ) const
17270 {
17271     return ucstrcmp( *this, s );
17272 }
17273 
17294 #if !defined(CSTR_LESS_THAN)
17295 #define CSTR_LESS_THAN    1
17296 #define CSTR_EQUAL        2
17297 #define CSTR_GREATER_THAN 3
17298 #endif
17299 
17300 int QString::localeAwareCompare( const QString& s ) const
17301 {
17302     // do the right thing for null and empty
17303     if ( isEmpty() || s.isEmpty() )
17304         return compare( s );
17305 
17306 #if defined(Q_WS_WIN)
17307     int res;
17308     QT_WA( {
17309         const TCHAR* s1 = (TCHAR*)ucs2();
17310         const TCHAR* s2 = (TCHAR*)s.ucs2();
17311         res = CompareStringW( LOCALE_USER_DEFAULT, 0, s1, length(), s2, s.length() );
17312     } , {
17313         QCString s1 = local8Bit();
17314         QCString s2 = s.local8Bit();
17315         res = CompareStringA( LOCALE_USER_DEFAULT, 0, s1.data(), s1.length(), s2.data(), s2.length() );
17316     } );
17317 
17318     switch ( res ) {
17319     case CSTR_LESS_THAN:
17320         return -1;
17321     case CSTR_GREATER_THAN:
17322         return 1;
17323     default:
17324         return 0;
17325     }
17326 #elif defined(Q_WS_X11)
17327     // declared in <string.h>
17328     int delta = strcoll( local8Bit(), s.local8Bit() );
17329     if ( delta == 0 )
17330         delta = ucstrcmp( *this, s );
17331     return delta;
17332 #else
17333     return ucstrcmp( *this, s );
17334 #endif
17335 }
17336 
17337 bool operator==( const QString &s1, const QString &s2 )
17338 {
17339     if ( s1.unicode() == s2.unicode() )
17340         return TRUE;
17341     return (s1.length() == s2.length()) && s1.isNull() == s2.isNull() &&
17342          (memcmp((char*)s1.unicode(),(char*)s2.unicode(),
17343                  s1.length()*sizeof(QChar)) == 0 );
17344 }
17345 
17346 bool operator!=( const QString &s1, const QString &s2 )
17347 { return !(s1==s2); }
17348 
17349 bool operator<( const QString &s1, const QString &s2 )
17350 { return ucstrcmp(s1,s2) < 0; }
17351 
17352 bool operator<=( const QString &s1, const QString &s2 )
17353 { return ucstrcmp(s1,s2) <= 0; }
17354 
17355 bool operator>( const QString &s1, const QString &s2 )
17356 { return ucstrcmp(s1,s2) > 0; }
17357 
17358 bool operator>=( const QString &s1, const QString &s2 )
17359 { return ucstrcmp(s1,s2) >= 0; }
17360 
17361 
17362 bool operator==( const QString &s1, const char *s2 )
17363 {
17364     if ( !s2 )
17365         return s1.isNull();
17366 
17367     int len = s1.length();
17368     const QChar *uc = s1.unicode();
17369     while ( len ) {
17370         if ( !(*s2) || uc->unicode() != (uchar) *s2 )
17371             return FALSE;
17372         ++uc;
17373         ++s2;
17374         --len;
17375     }
17376     return !*s2;
17377 }
17378 
17379 bool operator==( const char *s1, const QString &s2 )
17380 { return (s2 == s1); }
17381 
17382 bool operator!=( const QString &s1, const char *s2 )
17383 { return !(s1==s2); }
17384 
17385 bool operator!=( const char *s1, const QString &s2 )
17386 { return !(s1==s2); }
17387 
17388 bool operator<( const QString &s1, const char *s2 )
17389 { return ucstrcmp(s1,s2) < 0; }
17390 
17391 bool operator<( const char *s1, const QString &s2 )
17392 { return ucstrcmp(s1,s2) < 0; }
17393 
17394 bool operator<=( const QString &s1, const char *s2 )
17395 { return ucstrcmp(s1,s2) <= 0; }
17396 
17397 bool operator<=( const char *s1, const QString &s2 )
17398 { return ucstrcmp(s1,s2) <= 0; }
17399 
17400 bool operator>( const QString &s1, const char *s2 )
17401 { return ucstrcmp(s1,s2) > 0; }
17402 
17403 bool operator>( const char *s1, const QString &s2 )
17404 { return ucstrcmp(s1,s2) > 0; }
17405 
17406 bool operator>=( const QString &s1, const char *s2 )
17407 { return ucstrcmp(s1,s2) >= 0; }
17408 
17409 bool operator>=( const char *s1, const QString &s2 )
17410 { return ucstrcmp(s1,s2) >= 0; }
17411 
17412 
17413 /*****************************************************************************
17414   Documentation for QString related functions
17415  *****************************************************************************/
17416 
17667 /*****************************************************************************
17668   QString stream functions
17669  *****************************************************************************/
17670 #ifndef QT_NO_DATASTREAM
17671 
17679 QDataStream &operator<<( QDataStream &s, const QString &str )
17680 {
17681     if ( s.version() == 1 ) {
17682         QCString l( str.latin1() );
17683         s << l;
17684     }
17685     else {
17686         int byteOrder = s.byteOrder();
17687         const QChar* ub = str.unicode();
17688         if ( ub || s.version() < 3 ) {
17689             static const uint auto_size = 1024;
17690             char t[auto_size];
17691             char *b;
17692             if ( str.length()*sizeof(QChar) > auto_size ) {
17693                 b = new char[str.length()*sizeof(QChar)];
17694             } else {
17695                 b = t;
17696             }
17697             int l = str.length();
17698             char *c=b;
17699             while ( l-- ) {
17700                 if ( byteOrder == QDataStream::BigEndian ) {
17701                     *c++ = (char)ub->row();
17702                     *c++ = (char)ub->cell();
17703                 } else {
17704                     *c++ = (char)ub->cell();
17705                     *c++ = (char)ub->row();
17706                 }
17707                 ub++;
17708             }
17709             s.writeBytes( b, sizeof(QChar)*str.length() );
17710             if ( str.length()*sizeof(QChar) > auto_size )
17711                 delete [] b;
17712         } else {
17713             // write null marker
17714             s << (Q_UINT32)0xffffffff;
17715         }
17716     }
17717     return s;
17718 }
17719 
17728 QDataStream &operator>>( QDataStream &s, QString &str )
17729 {
17730 #ifdef QT_QSTRING_UCS_4
17731 #if defined(Q_CC_GNU)
17732 #warning "operator>> not working properly"
17733 #endif
17734 #endif
17735     if ( s.version() == 1 ) {
17736         QCString l;
17737         s >> l;
17738         str = QString( l );
17739     }
17740     else {
17741         Q_UINT32 bytes;
17742         s >> bytes;                                     // read size of string
17743         if ( bytes == 0xffffffff ) {                    // null string
17744             str = QString::null;
17745         } else if ( bytes > 0 ) {                       // not empty
17746             int byteOrder = s.byteOrder();
17747             str.setLength( bytes/2 );
17748             QChar* ch = str.d->unicode;
17749             static const uint auto_size = 1024;
17750             char t[auto_size];
17751             char *b;
17752             if ( bytes > auto_size ) {
17753                 b = new char[bytes];
17754             } else {
17755                 b = t;
17756             }
17757             s.readRawBytes( b, bytes );
17758             int bt = bytes/2;
17759             char *oldb = b;
17760             while ( bt-- ) {
17761                 if ( byteOrder == QDataStream::BigEndian )
17762                     *ch++ = (ushort) (((ushort)b[0])<<8) | (uchar)b[1];
17763                 else
17764                     *ch++ = (ushort) (((ushort)b[1])<<8) | (uchar)b[0];
17765                 b += 2;
17766             }
17767             if ( bytes > auto_size )
17768                 delete [] oldb;
17769         } else {
17770             str = "";
17771         }
17772     }
17773     return s;
17774 }
17775 #endif // QT_NO_DATASTREAM
17776 
17777 /*****************************************************************************
17778   QConstString member functions
17779  *****************************************************************************/
17780 
17806 QConstString::QConstString( const QChar* unicode, uint length ) :
17807     QString( new QStringData( (QChar*)unicode, length, length ), TRUE )
17808 {
17809 }
17810 
17815 QConstString::~QConstString()
17816 {
17817     if ( d->count > 1 ) {
17818         QChar* cp = QT_ALLOC_QCHAR_VEC( d->len );
17819         memcpy( cp, d->unicode, d->len*sizeof(QChar) );
17820         d->unicode = cp;
17821     } else {
17822         d->unicode = 0;
17823     }
17824 
17825     // The original d->unicode is now unlinked.
17826 }
17827 
17846 bool QString::startsWith( const QString& s ) const
17847 {
17848     if ( isNull() )
17849         return s.isNull();
17850     if ( s.length() > length() )
17851         return FALSE;
17852     for ( int i =0; i < (int) s.length(); i++ ) {
17853         if ( d->unicode[i] != s[i] )
17854             return FALSE;
17855     }
17856     return TRUE;
17857 }
17858 
17865 bool QString::endsWith( const QString& s ) const
17866 {
17867     if ( isNull() )
17868         return s.isNull();
17869     int pos = length() - s.length();
17870     if ( pos < 0 )
17871         return FALSE;
17872     for ( uint i = 0; i < s.length(); i++ ) {
17873         if ( d->unicode[pos+i] != s[(int)i] )
17874             return FALSE;
17875     }
17876     return TRUE;
17877 }
17878 
17886 #if defined(Q_OS_WIN32)
17887 
17888 #include <windows.h>
17889 
17901 const void* qt_winTchar(const QString& str, bool)
17902 {
17903     // So that the return value lives long enough.
17904     static QString str_cache;
17905     str_cache = str;
17906 #ifdef UNICODE
17907     return str_cache.ucs2();
17908 #else
17909     return str_cache.latin1();
17910 #endif
17911 }
17912 
17916 void* qt_winTchar_new(const QString& str)
17917 {
17918     if ( str.isNull() )
17919         return 0;
17920     int l = str.length()+1;
17921     TCHAR *tc = new TCHAR[ l ];
17922 #ifdef UNICODE
17923     memcpy( tc, str.ucs2(), sizeof(TCHAR)*l );
17924 #else
17925     memcpy( tc, str.latin1(), sizeof(TCHAR)*l );
17926 #endif
17927     return tc;
17928 }
17929 
17933 QString qt_winQString(void* tc)
17934 {
17935 #ifdef UNICODE
17936     return QString::fromUcs2( (ushort*)tc );
17937 #else
17938     return QString::fromLatin1( (TCHAR *)tc );
17939 #endif
17940 }
17941 
17942 QCString qt_winQString2MB( const QString& s, int uclen )
17943 {
17944     if ( uclen < 0 )
17945         uclen = s.length();
17946     if ( s.isNull() )
17947         return QCString();
17948     if ( uclen == 0 )
17949         return QCString("");
17950     BOOL used_def;
17951     QCString mb(4096);
17952     int len;
17953     while ( !(len=WideCharToMultiByte(CP_ACP, 0, (const WCHAR*)s.unicode(), uclen,
17954                 mb.data(), mb.size()-1, 0, &used_def)) )
17955     {
17956         int r = GetLastError();
17957         if ( r == ERROR_INSUFFICIENT_BUFFER ) {
17958             mb.resize(1+WideCharToMultiByte( CP_ACP, 0,
17959                                 (const WCHAR*)s.unicode(), uclen,
17960                                 0, 0, 0, &used_def));
17961                 // and try again...
17962         } else {
17963 #ifndef QT_NO_DEBUG
17964             // Fail.
17965             qWarning("WideCharToMultiByte cannot convert multibyte text (error %d): %s (UTF8)",
17966                 r, s.utf8().data());
17967 #endif
17968             break;
17969         }
17970     }
17971     mb[len]='\0';
17972     return mb;
17973 }
17974 
17975 // WATCH OUT: mblen must include the NUL (or just use -1)
17976 QString qt_winMB2QString( const char* mb, int mblen )
17977 {
17978     if ( !mb || !mblen )
17979         return QString::null;
17980     const int wclen_auto = 4096;
17981     WCHAR wc_auto[wclen_auto];
17982     int wclen = wclen_auto;
17983     WCHAR *wc = wc_auto;
17984     int len;
17985     while ( !(len=MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
17986                 mb, mblen, wc, wclen )) )
17987     {
17988         int r = GetLastError();
17989         if ( r == ERROR_INSUFFICIENT_BUFFER ) {
17990             if ( wc != wc_auto ) {
17991                 qWarning("Size changed in MultiByteToWideChar");
17992                 break;
17993             } else {
17994                 wclen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
17995                                     mb, mblen, 0, 0 );
17996                 wc = new WCHAR[wclen];
17997                 // and try again...
17998             }
17999         } else {
18000             // Fail.
18001             qWarning("MultiByteToWideChar cannot convert multibyte text");
18002             break;
18003         }
18004     }
18005     if ( len <= 0 )
18006         return QString::null;
18007     QString s( (QChar*)wc, len - 1 ); // len - 1: we don't want terminator
18008     if ( wc != wc_auto )
18009         delete [] wc;
18010     return s;
18011 }
18012 
18013 #endif // Q_OS_WIN32

Generated on Sat Nov 5 16:18:34 2005 for OPIE by  doxygen 1.4.2