extensions/spellcheck/hunspell/src/csutil.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/extensions/spellcheck/hunspell/src/csutil.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,5894 @@
     1.4 +/******* BEGIN LICENSE BLOCK *******
     1.5 + * Version: MPL 1.1/GPL 2.0/LGPL 2.1
     1.6 + * 
     1.7 + * The contents of this file are subject to the Mozilla Public License Version
     1.8 + * 1.1 (the "License"); you may not use this file except in compliance with
     1.9 + * the License. You may obtain a copy of the License at
    1.10 + * http://www.mozilla.org/MPL/
    1.11 + * 
    1.12 + * Software distributed under the License is distributed on an "AS IS" basis,
    1.13 + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
    1.14 + * for the specific language governing rights and limitations under the
    1.15 + * License.
    1.16 + * 
    1.17 + * The Initial Developers of the Original Code are Kevin Hendricks (MySpell)
    1.18 + * and László Németh (Hunspell). Portions created by the Initial Developers
    1.19 + * are Copyright (C) 2002-2005 the Initial Developers. All Rights Reserved.
    1.20 + * 
    1.21 + * Contributor(s): Kevin Hendricks (kevin.hendricks@sympatico.ca)
    1.22 + *                 David Einstein (deinst@world.std.com)
    1.23 + *                 László Németh (nemethl@gyorsposta.hu)
    1.24 + *                 L. David Baron (dbaron@dbaron.org)
    1.25 + *                 Caolan McNamara (caolanm@redhat.com)
    1.26 + *                 Davide Prina
    1.27 + *                 Giuseppe Modugno
    1.28 + *                 Gianluca Turconi
    1.29 + *                 Simon Brouwer
    1.30 + *                 Noll Janos
    1.31 + *                 Biro Arpad
    1.32 + *                 Goldman Eleonora
    1.33 + *                 Sarlos Tamas
    1.34 + *                 Bencsath Boldizsar
    1.35 + *                 Halacsy Peter
    1.36 + *                 Dvornik Laszlo
    1.37 + *                 Gefferth Andras
    1.38 + *                 Nagy Viktor
    1.39 + *                 Varga Daniel
    1.40 + *                 Chris Halls
    1.41 + *                 Rene Engelhard
    1.42 + *                 Bram Moolenaar
    1.43 + *                 Dafydd Jones
    1.44 + *                 Harri Pitkanen
    1.45 + *                 Andras Timar
    1.46 + *                 Tor Lillqvist
    1.47 + * 
    1.48 + * Alternatively, the contents of this file may be used under the terms of
    1.49 + * either the GNU General Public License Version 2 or later (the "GPL"), or
    1.50 + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    1.51 + * in which case the provisions of the GPL or the LGPL are applicable instead
    1.52 + * of those above. If you wish to allow use of your version of this file only
    1.53 + * under the terms of either the GPL or the LGPL, and not to allow others to
    1.54 + * use your version of this file under the terms of the MPL, indicate your
    1.55 + * decision by deleting the provisions above and replace them with the notice
    1.56 + * and other provisions required by the GPL or the LGPL. If you do not delete
    1.57 + * the provisions above, a recipient may use your version of this file under
    1.58 + * the terms of any one of the MPL, the GPL or the LGPL.
    1.59 + *
    1.60 + ******* END LICENSE BLOCK *******/
    1.61 +
    1.62 +#include <stdlib.h> 
    1.63 +#include <string.h>
    1.64 +#include <stdio.h> 
    1.65 +#include <ctype.h>
    1.66 +
    1.67 +#include "csutil.hxx"
    1.68 +#include "atypes.hxx"
    1.69 +#include "langnum.hxx"
    1.70 +
    1.71 +// Unicode character encoding information
    1.72 +struct unicode_info {
    1.73 +  unsigned short c;
    1.74 +  unsigned short cupper;
    1.75 +  unsigned short clower;
    1.76 +};
    1.77 +
    1.78 +#ifdef OPENOFFICEORG
    1.79 +#  include <unicode/uchar.h>
    1.80 +#else
    1.81 +#  ifndef MOZILLA_CLIENT
    1.82 +#    include "utf_info.cxx"
    1.83 +#    define UTF_LST_LEN (sizeof(utf_lst) / (sizeof(unicode_info)))
    1.84 +#  endif
    1.85 +#endif
    1.86 +
    1.87 +#ifdef MOZILLA_CLIENT
    1.88 +#include "nsCOMPtr.h"
    1.89 +#include "nsServiceManagerUtils.h"
    1.90 +#include "nsIUnicodeEncoder.h"
    1.91 +#include "nsIUnicodeDecoder.h"
    1.92 +#include "nsUnicharUtils.h"
    1.93 +#include "nsICharsetConverterManager.h"
    1.94 +
    1.95 +static NS_DEFINE_CID(kCharsetConverterManagerCID, NS_ICHARSETCONVERTERMANAGER_CID);
    1.96 +#endif
    1.97 +
    1.98 +struct unicode_info2 {
    1.99 +  char cletter;
   1.100 +  unsigned short cupper;
   1.101 +  unsigned short clower;
   1.102 +};
   1.103 +
   1.104 +static struct unicode_info2 * utf_tbl = NULL;
   1.105 +static int utf_tbl_count = 0; // utf_tbl can be used by multiple Hunspell instances
   1.106 +
   1.107 +/* only UTF-16 (BMP) implementation */
   1.108 +char * u16_u8(char * dest, int size, const w_char * src, int srclen) {
   1.109 +    signed char * u8 = (signed char *)dest;
   1.110 +    signed char * u8_max = (signed char *)(u8 + size);
   1.111 +    const w_char * u2 = src;
   1.112 +    const w_char * u2_max = src + srclen;
   1.113 +    while ((u2 < u2_max) && (u8 < u8_max)) {
   1.114 +        if (u2->h) { // > 0xFF
   1.115 +            // XXX 4-byte haven't implemented yet.
   1.116 +            if (u2->h >= 0x08) {   // >= 0x800 (3-byte UTF-8 character)
   1.117 +                *u8 = 0xe0 + (u2->h >> 4);
   1.118 +                u8++;
   1.119 +                if (u8 < u8_max) {
   1.120 +                    *u8 = 0x80 + ((u2->h & 0xf) << 2) + (u2->l >> 6);
   1.121 +                    u8++;
   1.122 +                    if (u8 < u8_max) {
   1.123 +                        *u8 = 0x80 + (u2->l & 0x3f);
   1.124 +                        u8++;
   1.125 +                    }
   1.126 +                }
   1.127 +            } else { // < 0x800 (2-byte UTF-8 character)
   1.128 +                *u8 = 0xc0 + (u2->h << 2) + (u2->l >> 6);
   1.129 +                u8++;
   1.130 +                if (u8 < u8_max) {
   1.131 +                    *u8 = 0x80 + (u2->l & 0x3f);
   1.132 +                    u8++;
   1.133 +                }
   1.134 +            }
   1.135 +        } else { // <= 0xFF
   1.136 +            if (u2->l & 0x80) { // >0x80 (2-byte UTF-8 character)
   1.137 +                *u8 = 0xc0 + (u2->l >> 6);
   1.138 +                u8++;
   1.139 +                if (u8 < u8_max) {
   1.140 +                    *u8 = 0x80 + (u2->l & 0x3f);
   1.141 +                    u8++;
   1.142 +                }
   1.143 +            } else { // < 0x80 (1-byte UTF-8 character)
   1.144 +                *u8 = u2->l;
   1.145 +                u8++;
   1.146 +            }
   1.147 +        }
   1.148 +        u2++;
   1.149 +    }
   1.150 +    *u8 = '\0';
   1.151 +    return dest;
   1.152 +}
   1.153 +
   1.154 +
   1.155 +/* only UTF-16 (BMP) implementation */
   1.156 +int u8_u16(w_char * dest, int size, const char * src) {
   1.157 +    const signed char * u8 = (const signed char *)src;
   1.158 +    w_char * u2 = dest;
   1.159 +    w_char * u2_max = u2 + size;
   1.160 +    
   1.161 +    while ((u2 < u2_max) && *u8) {
   1.162 +    switch ((*u8) & 0xf0) {
   1.163 +        case 0x00:
   1.164 +        case 0x10:
   1.165 +        case 0x20:
   1.166 +        case 0x30:
   1.167 +        case 0x40:
   1.168 +        case 0x50:
   1.169 +        case 0x60:
   1.170 +        case 0x70: {
   1.171 +            u2->h = 0;
   1.172 +            u2->l = *u8;
   1.173 +            break;
   1.174 +        }
   1.175 +        case 0x80:
   1.176 +        case 0x90:
   1.177 +        case 0xa0:
   1.178 +        case 0xb0: {
   1.179 +            HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Unexpected continuation bytes in %ld. character position\n%s\n", static_cast<long>(u8 - (signed char *)src), src);    
   1.180 +            u2->h = 0xff;
   1.181 +            u2->l = 0xfd;
   1.182 +            break;
   1.183 +        }
   1.184 +        case 0xc0:
   1.185 +        case 0xd0: {    // 2-byte UTF-8 codes
   1.186 +            if ((*(u8+1) & 0xc0) == 0x80) {
   1.187 +                u2->h = (*u8 & 0x1f) >> 2;
   1.188 +                u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);
   1.189 +                u8++;
   1.190 +            } else {
   1.191 +                HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed char *)src), src);
   1.192 +                u2->h = 0xff;
   1.193 +                u2->l = 0xfd;
   1.194 +            }
   1.195 +            break;
   1.196 +        }
   1.197 +        case 0xe0: {    // 3-byte UTF-8 codes
   1.198 +            if ((*(u8+1) & 0xc0) == 0x80) {
   1.199 +                u2->h = ((*u8 & 0x0f) << 4) + ((*(u8+1) & 0x3f) >> 2);
   1.200 +                u8++;
   1.201 +                if ((*(u8+1) & 0xc0) == 0x80) {
   1.202 +                    u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);
   1.203 +                    u8++;
   1.204 +                } else {
   1.205 +                    HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed char *)src), src);
   1.206 +                    u2->h = 0xff;
   1.207 +                    u2->l = 0xfd;
   1.208 +                }
   1.209 +            } else {
   1.210 +                HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed char *)src), src);
   1.211 +                u2->h = 0xff;
   1.212 +                u2->l = 0xfd;
   1.213 +            }
   1.214 +            break;
   1.215 +        }
   1.216 +        case 0xf0: {    // 4 or more byte UTF-8 codes
   1.217 +            HUNSPELL_WARNING(stderr, "This UTF-8 encoding can't convert to UTF-16:\n%s\n", src);
   1.218 +            u2->h = 0xff;
   1.219 +            u2->l = 0xfd;
   1.220 +            return -1;
   1.221 +        }
   1.222 +    }
   1.223 +    u8++;
   1.224 +    u2++;
   1.225 +    }
   1.226 +    return (int)(u2 - dest);
   1.227 +}
   1.228 +
   1.229 +void flag_qsort(unsigned short flags[], int begin, int end) {
   1.230 +    unsigned short reg;
   1.231 +    if (end > begin) {
   1.232 +        unsigned short pivot = flags[begin];
   1.233 +        int l = begin + 1;
   1.234 +        int r = end;
   1.235 +        while(l < r) {
   1.236 +            if (flags[l] <= pivot) {
   1.237 +                l++;
   1.238 +            } else {
   1.239 +             r--;
   1.240 +             reg = flags[l];
   1.241 +             flags[l] = flags[r];
   1.242 +             flags[r] = reg;
   1.243 +          }
   1.244 +       }
   1.245 +       l--;
   1.246 +       reg = flags[begin];
   1.247 +       flags[begin] = flags[l];
   1.248 +       flags[l] = reg;
   1.249 +
   1.250 +       flag_qsort(flags, begin, l);
   1.251 +       flag_qsort(flags, r, end);
   1.252 +    }
   1.253 + }
   1.254 +
   1.255 +int flag_bsearch(unsigned short flags[], unsigned short flag, int length) {
   1.256 +   int mid;
   1.257 +   int left = 0;
   1.258 +   int right = length - 1;
   1.259 +   while (left <= right) {
   1.260 +      mid = (left + right) / 2;
   1.261 +      if (flags[mid] == flag) return 1;
   1.262 +      if (flag < flags[mid]) right = mid - 1;
   1.263 +      else left = mid + 1;
   1.264 +   }
   1.265 +   return 0;
   1.266 +}
   1.267 +
   1.268 + // strip strings into token based on single char delimiter
   1.269 + // acts like strsep() but only uses a delim char and not
   1.270 + // a delim string
   1.271 + // default delimiter: white space characters
   1.272 + 
   1.273 + char * mystrsep(char ** stringp, const char delim)
   1.274 + {
   1.275 +   char * mp = *stringp;
   1.276 +   if (*mp != '\0') {
   1.277 +      char * dp;
   1.278 +      if (delim) {
   1.279 +        dp = strchr(mp, delim);
   1.280 +      } else {
   1.281 +        // don't use isspace() here, the string can be in some random charset
   1.282 +        // that's way different than the locale's
   1.283 +        for (dp = mp; (*dp && *dp != ' ' && *dp != '\t'); dp++);
   1.284 +        if (!*dp) dp = NULL;
   1.285 +      }
   1.286 +      if (dp) {
   1.287 +         *stringp = dp+1;
   1.288 +         *dp = '\0';
   1.289 +      } else {
   1.290 +         *stringp = mp + strlen(mp);
   1.291 +      }
   1.292 +      return mp;
   1.293 +   }
   1.294 +   return NULL;
   1.295 + }
   1.296 +
   1.297 + // replaces strdup with ansi version
   1.298 + char * mystrdup(const char * s)
   1.299 + {
   1.300 +   char * d = NULL;
   1.301 +   if (s) {
   1.302 +      size_t sl = strlen(s)+1;
   1.303 +      d = (char *) malloc(sl);
   1.304 +      if (d) {
   1.305 +         memcpy(d,s,sl);
   1.306 +      } else {
   1.307 +         HUNSPELL_WARNING(stderr, "Can't allocate memory.\n");
   1.308 +      }
   1.309 +   }
   1.310 +   return d;
   1.311 + }
   1.312 +
   1.313 + // strcat for limited length destination string
   1.314 + char * mystrcat(char * dest, const char * st, int max) {
   1.315 +   int len;
   1.316 +   int len2;
   1.317 +   if (dest == NULL || st == NULL) return dest;
   1.318 +   len = strlen(dest);
   1.319 +   len2 = strlen(st);
   1.320 +   if (len + len2 + 1 > max) return dest;
   1.321 +   strcpy(dest + len, st);
   1.322 +   return dest;
   1.323 + }
   1.324 +
   1.325 + // remove cross-platform text line end characters
   1.326 + void mychomp(char * s)
   1.327 + {
   1.328 +   size_t k = strlen(s);
   1.329 +   if ((k > 0) && ((*(s+k-1)=='\r') || (*(s+k-1)=='\n'))) *(s+k-1) = '\0';
   1.330 +   if ((k > 1) && (*(s+k-2) == '\r')) *(s+k-2) = '\0';
   1.331 + }
   1.332 + 
   1.333 + 
   1.334 + //  does an ansi strdup of the reverse of a string
   1.335 + char * myrevstrdup(const char * s)
   1.336 + {
   1.337 +     char * d = NULL;
   1.338 +     if (s) {
   1.339 +        size_t sl = strlen(s);
   1.340 +        d = (char *) malloc(sl+1);
   1.341 +        if (d) {
   1.342 +          const char * p = s + sl - 1;
   1.343 +          char * q = d;
   1.344 +          while (p >= s) *q++ = *p--;
   1.345 +          *q = '\0';
   1.346 +        } else {
   1.347 +          HUNSPELL_WARNING(stderr, "Can't allocate memory.\n");
   1.348 +        }
   1.349 +     }
   1.350 +     return d;
   1.351 + }
   1.352 +
   1.353 +// break text to lines
   1.354 +// return number of lines
   1.355 +int line_tok(const char * text, char *** lines, char breakchar) {
   1.356 +    int linenum = 0;
   1.357 +    if (!text) {
   1.358 +        return linenum;
   1.359 +    }
   1.360 +    char * dup = mystrdup(text);
   1.361 +    char * p = strchr(dup, breakchar);
   1.362 +    while (p) {
   1.363 +        linenum++;
   1.364 +        *p = '\0';
   1.365 +        p++;
   1.366 +        p = strchr(p, breakchar);
   1.367 +    }
   1.368 +    linenum++;
   1.369 +    *lines = (char **) malloc(linenum * sizeof(char *));
   1.370 +    if (!(*lines)) {
   1.371 +        free(dup);
   1.372 +        return 0;
   1.373 +    }
   1.374 +
   1.375 +    p = dup;
   1.376 +    int l = 0;
   1.377 +    for (int i = 0; i < linenum; i++) {
   1.378 +        if (*p != '\0') {
   1.379 +            (*lines)[l] = mystrdup(p);
   1.380 +            if (!(*lines)[l]) {
   1.381 +                for (i = 0; i < l; i++) free((*lines)[i]);
   1.382 +                free(dup);
   1.383 +                return 0;
   1.384 +            }
   1.385 +            l++;
   1.386 +        }
   1.387 +        p += strlen(p) + 1;
   1.388 +    }
   1.389 +    free(dup);
   1.390 +    if (!l) free(*lines);
   1.391 +    return l;
   1.392 +}
   1.393 +
   1.394 +// uniq line in place
   1.395 +char * line_uniq(char * text, char breakchar) {
   1.396 +    char ** lines;
   1.397 +    int linenum = line_tok(text, &lines, breakchar);
   1.398 +    int i;
   1.399 +    strcpy(text, lines[0]);
   1.400 +    for ( i = 1; i < linenum; i++ ) {
   1.401 +        int dup = 0;
   1.402 +        for (int j = 0; j < i; j++) {
   1.403 +            if (strcmp(lines[i], lines[j]) == 0) dup = 1;
   1.404 +        }
   1.405 +        if (!dup) {
   1.406 +            if ((i > 1) || (*(lines[0]) != '\0')) {
   1.407 +                sprintf(text + strlen(text), "%c", breakchar);
   1.408 +            }
   1.409 +            strcat(text, lines[i]);
   1.410 +        }
   1.411 +    }
   1.412 +    for ( i = 0; i < linenum; i++ ) {
   1.413 +        if (lines[i]) free(lines[i]);
   1.414 +    }
   1.415 +    if (lines) free(lines);
   1.416 +    return text;
   1.417 +}
   1.418 +
   1.419 +// uniq and boundary for compound analysis: "1\n\2\n\1" -> " ( \1 | \2 ) "
   1.420 +char * line_uniq_app(char ** text, char breakchar) {
   1.421 +    if (!strchr(*text, breakchar)) {
   1.422 +        return *text;
   1.423 +    }
   1.424 +    
   1.425 +    char ** lines;
   1.426 +    int i;
   1.427 +    int linenum = line_tok(*text, &lines, breakchar);
   1.428 +    int dup = 0;
   1.429 +    for (i = 0; i < linenum; i++) {
   1.430 +        for (int j = 0; j < (i - 1); j++) {
   1.431 +            if (strcmp(lines[i], lines[j]) == 0) {
   1.432 +                *(lines[i]) = '\0';
   1.433 +                dup++;
   1.434 +                break;
   1.435 +            }
   1.436 +        }
   1.437 +    }
   1.438 +    if ((linenum - dup) == 1) {
   1.439 +        strcpy(*text, lines[0]);
   1.440 +        freelist(&lines, linenum);
   1.441 +        return *text;
   1.442 +    }
   1.443 +    char * newtext = (char *) malloc(strlen(*text) + 2 * linenum + 3 + 1);
   1.444 +    if (newtext) {
   1.445 +        free(*text);
   1.446 +        *text = newtext;
   1.447 +    } else {
   1.448 +        freelist(&lines, linenum);
   1.449 +        return *text;
   1.450 +    }    
   1.451 +    strcpy(*text," ( ");
   1.452 +    for (i = 0; i < linenum; i++) if (*(lines[i])) {
   1.453 +        sprintf(*text + strlen(*text), "%s%s", lines[i], " | ");
   1.454 +    }
   1.455 +    (*text)[strlen(*text) - 2] = ')'; // " ) "
   1.456 +    freelist(&lines, linenum);
   1.457 +    return *text;
   1.458 +}
   1.459 +
   1.460 + // append s to ends of every lines in text
   1.461 + void strlinecat(char * dest, const char * s)
   1.462 + {
   1.463 +    char * dup = mystrdup(dest);
   1.464 +    char * source = dup;
   1.465 +    int len = strlen(s);
   1.466 +    if (dup) {
   1.467 +        while (*source) {
   1.468 +            if (*source == '\n') {
   1.469 +                strncpy(dest, s, len);
   1.470 +                dest += len;
   1.471 +            }
   1.472 +            *dest = *source;
   1.473 +            source++; dest++;
   1.474 +        }
   1.475 +        strcpy(dest, s);
   1.476 +        free(dup);
   1.477 +    }
   1.478 + }
   1.479 +
   1.480 +// change \n to char c
   1.481 +char * tr(char * text, char oldc, char newc) {
   1.482 +    char * p;
   1.483 +    for (p = text; *p; p++) if (*p == oldc) *p = newc;
   1.484 +    return text;
   1.485 +}
   1.486 +
   1.487 +// morphcmp(): compare MORPH_DERI_SFX, MORPH_INFL_SFX and MORPH_TERM_SFX fields
   1.488 +// in the first line of the inputs
   1.489 +// return 0, if inputs equal
   1.490 +// return 1, if inputs may equal with a secondary suffix
   1.491 +// otherwise return -1
   1.492 +int morphcmp(const char * s, const char * t)
   1.493 +{
   1.494 +    int se = 0;
   1.495 +    int te = 0;
   1.496 +    const char * sl;
   1.497 +    const char * tl;    
   1.498 +    const char * olds;
   1.499 +    const char * oldt;
   1.500 +    if (!s || !t) return 1;
   1.501 +    olds = s;
   1.502 +    sl = strchr(s, '\n');
   1.503 +    s = strstr(s, MORPH_DERI_SFX);
   1.504 +    if (!s || (sl && sl < s)) s = strstr(olds, MORPH_INFL_SFX);
   1.505 +    if (!s || (sl && sl < s)) {
   1.506 +        s= strstr(olds, MORPH_TERM_SFX);
   1.507 +        olds = NULL;
   1.508 +    }
   1.509 +    oldt = t;
   1.510 +    tl = strchr(t, '\n');
   1.511 +    t = strstr(t, MORPH_DERI_SFX);
   1.512 +    if (!t || (tl && tl < t)) t = strstr(oldt, MORPH_INFL_SFX);
   1.513 +    if (!t || (tl && tl < t)) {
   1.514 +        t = strstr(oldt, MORPH_TERM_SFX);
   1.515 +        oldt = NULL;
   1.516 +    }
   1.517 +    while (s && t && (!sl || sl > s) && (!tl || tl > t)) {
   1.518 +        s += MORPH_TAG_LEN;
   1.519 +        t += MORPH_TAG_LEN;
   1.520 +        se = 0;
   1.521 +        te = 0;
   1.522 +        while ((*s == *t) && !se && !te) {
   1.523 +            s++;
   1.524 +            t++;
   1.525 +            switch(*s) {
   1.526 +                case ' ':
   1.527 +                case '\n':
   1.528 +                case '\t':
   1.529 +                case '\0': se = 1;
   1.530 +            }
   1.531 +            switch(*t) {
   1.532 +                case ' ':
   1.533 +                case '\n':
   1.534 +                case '\t':
   1.535 +                case '\0': te = 1;
   1.536 +            }
   1.537 +        }
   1.538 +        if (!se || !te) {
   1.539 +            // not terminal suffix difference
   1.540 +            if (olds) return -1;
   1.541 +            return 1;
   1.542 +        }
   1.543 +        olds = s;
   1.544 +        s = strstr(s, MORPH_DERI_SFX);
   1.545 +        if (!s || (sl && sl < s)) s = strstr(olds, MORPH_INFL_SFX);
   1.546 +        if (!s || (sl && sl < s)) {
   1.547 +            s = strstr(olds, MORPH_TERM_SFX);
   1.548 +            olds = NULL;
   1.549 +        }
   1.550 +        oldt = t;
   1.551 +        t = strstr(t, MORPH_DERI_SFX);
   1.552 +        if (!t || (tl && tl < t)) t = strstr(oldt, MORPH_INFL_SFX);
   1.553 +        if (!t || (tl && tl < t)) {
   1.554 +            t = strstr(oldt, MORPH_TERM_SFX);
   1.555 +            oldt = NULL;
   1.556 +        }
   1.557 +    }
   1.558 +    if (!s && !t && se && te) return 0;
   1.559 +    return 1;
   1.560 +}
   1.561 +
   1.562 +int get_sfxcount(const char * morph)
   1.563 +{
   1.564 +    if (!morph || !*morph) return 0;
   1.565 +    int n = 0;
   1.566 +    const char * old = morph;
   1.567 +    morph = strstr(morph, MORPH_DERI_SFX);
   1.568 +    if (!morph) morph = strstr(old, MORPH_INFL_SFX);
   1.569 +    if (!morph) morph = strstr(old, MORPH_TERM_SFX);
   1.570 +    while (morph) {
   1.571 +        n++;
   1.572 +        old = morph;
   1.573 +        morph = strstr(morph + 1, MORPH_DERI_SFX);
   1.574 +        if (!morph) morph = strstr(old + 1, MORPH_INFL_SFX);
   1.575 +        if (!morph) morph = strstr(old + 1, MORPH_TERM_SFX);
   1.576 +    }
   1.577 +    return n;
   1.578 +}
   1.579 +
   1.580 +
   1.581 +int fieldlen(const char * r)
   1.582 +{
   1.583 +    int n = 0;
   1.584 +    while (r && *r != ' ' && *r != '\t' && *r != '\0' && *r != '\n') {
   1.585 +        r++;
   1.586 +        n++;
   1.587 +    }
   1.588 +    return n;
   1.589 +}
   1.590 +
   1.591 +char * copy_field(char * dest, const char * morph, const char * var)
   1.592 +{
   1.593 +    if (!morph) return NULL;
   1.594 +    const char * beg = strstr(morph, var);
   1.595 +    if (beg) {
   1.596 +       char * d = dest;
   1.597 +       for (beg += MORPH_TAG_LEN; *beg != ' ' && *beg != '\t' &&
   1.598 +            *beg != '\n' && *beg != '\0'; d++, beg++) {
   1.599 +         *d = *beg;
   1.600 +       }
   1.601 +       *d = '\0';
   1.602 +       return dest;
   1.603 +  }
   1.604 +  return NULL;
   1.605 +}
   1.606 +
   1.607 +char * mystrrep(char * word, const char * pat, const char * rep) {
   1.608 +    char * pos = strstr(word, pat);
   1.609 +    if (pos) {
   1.610 +      int replen = strlen(rep);
   1.611 +      int patlen = strlen(pat);
   1.612 +      while (pos) {
   1.613 +        if (replen < patlen) {
   1.614 +            char * end = word + strlen(word);
   1.615 +            char * next = pos + replen;
   1.616 +            char * prev = pos + strlen(pat);
   1.617 +            for (; prev < end; *next = *prev, prev++, next++);
   1.618 +            *next = '\0';
   1.619 +        } else if (replen > patlen) {
   1.620 +            char * end = pos + patlen;
   1.621 +            char * next = word + strlen(word) + replen - patlen;
   1.622 +            char * prev = next - replen + patlen;
   1.623 +            for (; prev >= end; *next = *prev, prev--, next--);
   1.624 +        }
   1.625 +        strncpy(pos, rep, replen);
   1.626 +        pos = strstr(word, pat);
   1.627 +      }
   1.628 +    }
   1.629 +    return word;
   1.630 +}
   1.631 +
   1.632 + // reverse word 
   1.633 + int reverseword(char * word) {
   1.634 +   char r;
   1.635 +   for (char * dest = word + strlen(word) - 1; word < dest; word++, dest--) {
   1.636 +     r=*word;
   1.637 +     *word = *dest;
   1.638 +     *dest = r;
   1.639 +   }
   1.640 +   return 0;
   1.641 + }
   1.642 +
   1.643 + // reverse word (error: 1)
   1.644 + int reverseword_utf(char * word) {
   1.645 +   w_char w[MAXWORDLEN];
   1.646 +   w_char * p;
   1.647 +   w_char r;
   1.648 +   int l = u8_u16(w, MAXWORDLEN, word);
   1.649 +   if (l == -1) return 1;
   1.650 +   p = w;
   1.651 +   for (w_char * dest = w + l - 1; p < dest; p++, dest--) {
   1.652 +     r=*p;
   1.653 +     *p = *dest;
   1.654 +     *dest = r;
   1.655 +   }
   1.656 +   u16_u8(word, MAXWORDUTF8LEN, w, l);
   1.657 +   return 0;
   1.658 + }
   1.659 +
   1.660 + int uniqlist(char ** list, int n) {
   1.661 +   int i;
   1.662 +   if (n < 2) return n;
   1.663 +   for (i = 0; i < n; i++) {
   1.664 +     for (int j = 0; j < i; j++) {
   1.665 +        if (list[j] && list[i] && (strcmp(list[j], list[i]) == 0)) {
   1.666 +            free(list[i]);
   1.667 +            list[i] = NULL;
   1.668 +            break;
   1.669 +        }
   1.670 +     }
   1.671 +   } 
   1.672 +   int m = 1;  
   1.673 +   for (i = 1; i < n; i++) if (list[i]) {
   1.674 +        list[m] = list[i];
   1.675 +        m++;
   1.676 +    }
   1.677 +   return m;
   1.678 + }
   1.679 + 
   1.680 + void freelist(char *** list, int n) {
   1.681 +   if (list && *list && n > 0) {
   1.682 +     for (int i = 0; i < n; i++) if ((*list)[i]) free((*list)[i]);
   1.683 +     free(*list);
   1.684 +     *list = NULL;
   1.685 +   }
   1.686 + }
   1.687 + 
   1.688 + // convert null terminated string to all caps
   1.689 + void mkallcap(char * p, const struct cs_info * csconv)
   1.690 + {
   1.691 +   while (*p != '\0') {
   1.692 +     *p = csconv[((unsigned char) *p)].cupper;
   1.693 +     p++;
   1.694 +   }
   1.695 + }
   1.696 +  
   1.697 + // convert null terminated string to all little
   1.698 + void mkallsmall(char * p, const struct cs_info * csconv)
   1.699 + {
   1.700 +   while (*p != '\0') {
   1.701 +     *p = csconv[((unsigned char) *p)].clower;
   1.702 +     p++;
   1.703 +   }
   1.704 + }
   1.705 +
   1.706 +void mkallsmall_utf(w_char * u, int nc, int langnum) {
   1.707 +    for (int i = 0; i < nc; i++) {
   1.708 +        unsigned short idx = (u[i].h << 8) + u[i].l;
   1.709 +        if (idx != unicodetolower(idx, langnum)) {
   1.710 +            u[i].h = (unsigned char) (unicodetolower(idx, langnum) >> 8);
   1.711 +            u[i].l = (unsigned char) (unicodetolower(idx, langnum) & 0x00FF);
   1.712 +        }
   1.713 +    }
   1.714 +}
   1.715 +
   1.716 +void mkallcap_utf(w_char * u, int nc, int langnum) {
   1.717 +    for (int i = 0; i < nc; i++) {
   1.718 +        unsigned short idx = (u[i].h << 8) + u[i].l;
   1.719 +        if (idx != unicodetoupper(idx, langnum)) {
   1.720 +            u[i].h = (unsigned char) (unicodetoupper(idx, langnum) >> 8);
   1.721 +            u[i].l = (unsigned char) (unicodetoupper(idx, langnum) & 0x00FF);
   1.722 +        }
   1.723 +    }
   1.724 +}
   1.725 + 
   1.726 + // convert null terminated string to have initial capital
   1.727 + void mkinitcap(char * p, const struct cs_info * csconv)
   1.728 + {
   1.729 +   if (*p != '\0') *p = csconv[((unsigned char)*p)].cupper;
   1.730 + }
   1.731 +
   1.732 + // conversion function for protected memory
   1.733 + void store_pointer(char * dest, char * source)
   1.734 + {
   1.735 +    memcpy(dest, &source, sizeof(char *));
   1.736 + }
   1.737 +
   1.738 + // conversion function for protected memory
   1.739 + char * get_stored_pointer(const char * s)
   1.740 + {
   1.741 +    char * p;
   1.742 +    memcpy(&p, s, sizeof(char *));
   1.743 +    return p;
   1.744 + }
   1.745 +
   1.746 +#ifndef MOZILLA_CLIENT
   1.747 + // convert null terminated string to all caps using encoding
   1.748 + void enmkallcap(char * d, const char * p, const char * encoding)
   1.749 + 
   1.750 + {
   1.751 +   struct cs_info * csconv = get_current_cs(encoding);
   1.752 +   while (*p != '\0') {
   1.753 +     *d++ = csconv[((unsigned char) *p)].cupper;
   1.754 +     p++;
   1.755 +   }
   1.756 +   *d = '\0';
   1.757 + }
   1.758 +
   1.759 + // convert null terminated string to all little using encoding
   1.760 + void enmkallsmall(char * d, const char * p, const char * encoding)
   1.761 + {
   1.762 +   struct cs_info * csconv = get_current_cs(encoding);
   1.763 +   while (*p != '\0') {
   1.764 +     *d++ = csconv[((unsigned char) *p)].clower;
   1.765 +     p++;
   1.766 +   }
   1.767 +   *d = '\0';
   1.768 + }
   1.769 +
   1.770 + // convert null terminated string to have initial capital using encoding
   1.771 + void enmkinitcap(char * d, const char * p, const char * encoding)
   1.772 + {
   1.773 +   struct cs_info * csconv = get_current_cs(encoding);
   1.774 +   memcpy(d,p,(strlen(p)+1));
   1.775 +   if (*p != '\0') *d= csconv[((unsigned char)*p)].cupper;
   1.776 + }
   1.777 +
   1.778 +// these are simple character mappings for the 
   1.779 +// encodings supported
   1.780 +// supplying isupper, tolower, and toupper
   1.781 +
   1.782 +static struct cs_info iso1_tbl[] = {
   1.783 +{ 0x00, 0x00, 0x00 },
   1.784 +{ 0x00, 0x01, 0x01 },
   1.785 +{ 0x00, 0x02, 0x02 },
   1.786 +{ 0x00, 0x03, 0x03 },
   1.787 +{ 0x00, 0x04, 0x04 },
   1.788 +{ 0x00, 0x05, 0x05 },
   1.789 +{ 0x00, 0x06, 0x06 },
   1.790 +{ 0x00, 0x07, 0x07 },
   1.791 +{ 0x00, 0x08, 0x08 },
   1.792 +{ 0x00, 0x09, 0x09 },
   1.793 +{ 0x00, 0x0a, 0x0a },
   1.794 +{ 0x00, 0x0b, 0x0b },
   1.795 +{ 0x00, 0x0c, 0x0c },
   1.796 +{ 0x00, 0x0d, 0x0d },
   1.797 +{ 0x00, 0x0e, 0x0e },
   1.798 +{ 0x00, 0x0f, 0x0f },
   1.799 +{ 0x00, 0x10, 0x10 },
   1.800 +{ 0x00, 0x11, 0x11 },
   1.801 +{ 0x00, 0x12, 0x12 },
   1.802 +{ 0x00, 0x13, 0x13 },
   1.803 +{ 0x00, 0x14, 0x14 },
   1.804 +{ 0x00, 0x15, 0x15 },
   1.805 +{ 0x00, 0x16, 0x16 },
   1.806 +{ 0x00, 0x17, 0x17 },
   1.807 +{ 0x00, 0x18, 0x18 },
   1.808 +{ 0x00, 0x19, 0x19 },
   1.809 +{ 0x00, 0x1a, 0x1a },
   1.810 +{ 0x00, 0x1b, 0x1b },
   1.811 +{ 0x00, 0x1c, 0x1c },
   1.812 +{ 0x00, 0x1d, 0x1d },
   1.813 +{ 0x00, 0x1e, 0x1e },
   1.814 +{ 0x00, 0x1f, 0x1f },
   1.815 +{ 0x00, 0x20, 0x20 },
   1.816 +{ 0x00, 0x21, 0x21 },
   1.817 +{ 0x00, 0x22, 0x22 },
   1.818 +{ 0x00, 0x23, 0x23 },
   1.819 +{ 0x00, 0x24, 0x24 },
   1.820 +{ 0x00, 0x25, 0x25 },
   1.821 +{ 0x00, 0x26, 0x26 },
   1.822 +{ 0x00, 0x27, 0x27 },
   1.823 +{ 0x00, 0x28, 0x28 },
   1.824 +{ 0x00, 0x29, 0x29 },
   1.825 +{ 0x00, 0x2a, 0x2a },
   1.826 +{ 0x00, 0x2b, 0x2b },
   1.827 +{ 0x00, 0x2c, 0x2c },
   1.828 +{ 0x00, 0x2d, 0x2d },
   1.829 +{ 0x00, 0x2e, 0x2e },
   1.830 +{ 0x00, 0x2f, 0x2f },
   1.831 +{ 0x00, 0x30, 0x30 },
   1.832 +{ 0x00, 0x31, 0x31 },
   1.833 +{ 0x00, 0x32, 0x32 },
   1.834 +{ 0x00, 0x33, 0x33 },
   1.835 +{ 0x00, 0x34, 0x34 },
   1.836 +{ 0x00, 0x35, 0x35 },
   1.837 +{ 0x00, 0x36, 0x36 },
   1.838 +{ 0x00, 0x37, 0x37 },
   1.839 +{ 0x00, 0x38, 0x38 },
   1.840 +{ 0x00, 0x39, 0x39 },
   1.841 +{ 0x00, 0x3a, 0x3a },
   1.842 +{ 0x00, 0x3b, 0x3b },
   1.843 +{ 0x00, 0x3c, 0x3c },
   1.844 +{ 0x00, 0x3d, 0x3d },
   1.845 +{ 0x00, 0x3e, 0x3e },
   1.846 +{ 0x00, 0x3f, 0x3f },
   1.847 +{ 0x00, 0x40, 0x40 },
   1.848 +{ 0x01, 0x61, 0x41 },
   1.849 +{ 0x01, 0x62, 0x42 },
   1.850 +{ 0x01, 0x63, 0x43 },
   1.851 +{ 0x01, 0x64, 0x44 },
   1.852 +{ 0x01, 0x65, 0x45 },
   1.853 +{ 0x01, 0x66, 0x46 },
   1.854 +{ 0x01, 0x67, 0x47 },
   1.855 +{ 0x01, 0x68, 0x48 },
   1.856 +{ 0x01, 0x69, 0x49 },
   1.857 +{ 0x01, 0x6a, 0x4a },
   1.858 +{ 0x01, 0x6b, 0x4b },
   1.859 +{ 0x01, 0x6c, 0x4c },
   1.860 +{ 0x01, 0x6d, 0x4d },
   1.861 +{ 0x01, 0x6e, 0x4e },
   1.862 +{ 0x01, 0x6f, 0x4f },
   1.863 +{ 0x01, 0x70, 0x50 },
   1.864 +{ 0x01, 0x71, 0x51 },
   1.865 +{ 0x01, 0x72, 0x52 },
   1.866 +{ 0x01, 0x73, 0x53 },
   1.867 +{ 0x01, 0x74, 0x54 },
   1.868 +{ 0x01, 0x75, 0x55 },
   1.869 +{ 0x01, 0x76, 0x56 },
   1.870 +{ 0x01, 0x77, 0x57 },
   1.871 +{ 0x01, 0x78, 0x58 },
   1.872 +{ 0x01, 0x79, 0x59 },
   1.873 +{ 0x01, 0x7a, 0x5a },
   1.874 +{ 0x00, 0x5b, 0x5b },
   1.875 +{ 0x00, 0x5c, 0x5c },
   1.876 +{ 0x00, 0x5d, 0x5d },
   1.877 +{ 0x00, 0x5e, 0x5e },
   1.878 +{ 0x00, 0x5f, 0x5f },
   1.879 +{ 0x00, 0x60, 0x60 },
   1.880 +{ 0x00, 0x61, 0x41 },
   1.881 +{ 0x00, 0x62, 0x42 },
   1.882 +{ 0x00, 0x63, 0x43 },
   1.883 +{ 0x00, 0x64, 0x44 },
   1.884 +{ 0x00, 0x65, 0x45 },
   1.885 +{ 0x00, 0x66, 0x46 },
   1.886 +{ 0x00, 0x67, 0x47 },
   1.887 +{ 0x00, 0x68, 0x48 },
   1.888 +{ 0x00, 0x69, 0x49 },
   1.889 +{ 0x00, 0x6a, 0x4a },
   1.890 +{ 0x00, 0x6b, 0x4b },
   1.891 +{ 0x00, 0x6c, 0x4c },
   1.892 +{ 0x00, 0x6d, 0x4d },
   1.893 +{ 0x00, 0x6e, 0x4e },
   1.894 +{ 0x00, 0x6f, 0x4f },
   1.895 +{ 0x00, 0x70, 0x50 },
   1.896 +{ 0x00, 0x71, 0x51 },
   1.897 +{ 0x00, 0x72, 0x52 },
   1.898 +{ 0x00, 0x73, 0x53 },
   1.899 +{ 0x00, 0x74, 0x54 },
   1.900 +{ 0x00, 0x75, 0x55 },
   1.901 +{ 0x00, 0x76, 0x56 },
   1.902 +{ 0x00, 0x77, 0x57 },
   1.903 +{ 0x00, 0x78, 0x58 },
   1.904 +{ 0x00, 0x79, 0x59 },
   1.905 +{ 0x00, 0x7a, 0x5a },
   1.906 +{ 0x00, 0x7b, 0x7b },
   1.907 +{ 0x00, 0x7c, 0x7c },
   1.908 +{ 0x00, 0x7d, 0x7d },
   1.909 +{ 0x00, 0x7e, 0x7e },
   1.910 +{ 0x00, 0x7f, 0x7f },
   1.911 +{ 0x00, 0x80, 0x80 },
   1.912 +{ 0x00, 0x81, 0x81 },
   1.913 +{ 0x00, 0x82, 0x82 },
   1.914 +{ 0x00, 0x83, 0x83 },
   1.915 +{ 0x00, 0x84, 0x84 },
   1.916 +{ 0x00, 0x85, 0x85 },
   1.917 +{ 0x00, 0x86, 0x86 },
   1.918 +{ 0x00, 0x87, 0x87 },
   1.919 +{ 0x00, 0x88, 0x88 },
   1.920 +{ 0x00, 0x89, 0x89 },
   1.921 +{ 0x00, 0x8a, 0x8a },
   1.922 +{ 0x00, 0x8b, 0x8b },
   1.923 +{ 0x00, 0x8c, 0x8c },
   1.924 +{ 0x00, 0x8d, 0x8d },
   1.925 +{ 0x00, 0x8e, 0x8e },
   1.926 +{ 0x00, 0x8f, 0x8f },
   1.927 +{ 0x00, 0x90, 0x90 },
   1.928 +{ 0x00, 0x91, 0x91 },
   1.929 +{ 0x00, 0x92, 0x92 },
   1.930 +{ 0x00, 0x93, 0x93 },
   1.931 +{ 0x00, 0x94, 0x94 },
   1.932 +{ 0x00, 0x95, 0x95 },
   1.933 +{ 0x00, 0x96, 0x96 },
   1.934 +{ 0x00, 0x97, 0x97 },
   1.935 +{ 0x00, 0x98, 0x98 },
   1.936 +{ 0x00, 0x99, 0x99 },
   1.937 +{ 0x00, 0x9a, 0x9a },
   1.938 +{ 0x00, 0x9b, 0x9b },
   1.939 +{ 0x00, 0x9c, 0x9c },
   1.940 +{ 0x00, 0x9d, 0x9d },
   1.941 +{ 0x00, 0x9e, 0x9e },
   1.942 +{ 0x00, 0x9f, 0x9f },
   1.943 +{ 0x00, 0xa0, 0xa0 },
   1.944 +{ 0x00, 0xa1, 0xa1 },
   1.945 +{ 0x00, 0xa2, 0xa2 },
   1.946 +{ 0x00, 0xa3, 0xa3 },
   1.947 +{ 0x00, 0xa4, 0xa4 },
   1.948 +{ 0x00, 0xa5, 0xa5 },
   1.949 +{ 0x00, 0xa6, 0xa6 },
   1.950 +{ 0x00, 0xa7, 0xa7 },
   1.951 +{ 0x00, 0xa8, 0xa8 },
   1.952 +{ 0x00, 0xa9, 0xa9 },
   1.953 +{ 0x00, 0xaa, 0xaa },
   1.954 +{ 0x00, 0xab, 0xab },
   1.955 +{ 0x00, 0xac, 0xac },
   1.956 +{ 0x00, 0xad, 0xad },
   1.957 +{ 0x00, 0xae, 0xae },
   1.958 +{ 0x00, 0xaf, 0xaf },
   1.959 +{ 0x00, 0xb0, 0xb0 },
   1.960 +{ 0x00, 0xb1, 0xb1 },
   1.961 +{ 0x00, 0xb2, 0xb2 },
   1.962 +{ 0x00, 0xb3, 0xb3 },
   1.963 +{ 0x00, 0xb4, 0xb4 },
   1.964 +{ 0x00, 0xb5, 0xb5 },
   1.965 +{ 0x00, 0xb6, 0xb6 },
   1.966 +{ 0x00, 0xb7, 0xb7 },
   1.967 +{ 0x00, 0xb8, 0xb8 },
   1.968 +{ 0x00, 0xb9, 0xb9 },
   1.969 +{ 0x00, 0xba, 0xba },
   1.970 +{ 0x00, 0xbb, 0xbb },
   1.971 +{ 0x00, 0xbc, 0xbc },
   1.972 +{ 0x00, 0xbd, 0xbd },
   1.973 +{ 0x00, 0xbe, 0xbe },
   1.974 +{ 0x00, 0xbf, 0xbf },
   1.975 +{ 0x01, 0xe0, 0xc0 },
   1.976 +{ 0x01, 0xe1, 0xc1 },
   1.977 +{ 0x01, 0xe2, 0xc2 },
   1.978 +{ 0x01, 0xe3, 0xc3 },
   1.979 +{ 0x01, 0xe4, 0xc4 },
   1.980 +{ 0x01, 0xe5, 0xc5 },
   1.981 +{ 0x01, 0xe6, 0xc6 },
   1.982 +{ 0x01, 0xe7, 0xc7 },
   1.983 +{ 0x01, 0xe8, 0xc8 },
   1.984 +{ 0x01, 0xe9, 0xc9 },
   1.985 +{ 0x01, 0xea, 0xca },
   1.986 +{ 0x01, 0xeb, 0xcb },
   1.987 +{ 0x01, 0xec, 0xcc },
   1.988 +{ 0x01, 0xed, 0xcd },
   1.989 +{ 0x01, 0xee, 0xce },
   1.990 +{ 0x01, 0xef, 0xcf },
   1.991 +{ 0x01, 0xf0, 0xd0 },
   1.992 +{ 0x01, 0xf1, 0xd1 },
   1.993 +{ 0x01, 0xf2, 0xd2 },
   1.994 +{ 0x01, 0xf3, 0xd3 },
   1.995 +{ 0x01, 0xf4, 0xd4 },
   1.996 +{ 0x01, 0xf5, 0xd5 },
   1.997 +{ 0x01, 0xf6, 0xd6 },
   1.998 +{ 0x00, 0xd7, 0xd7 },
   1.999 +{ 0x01, 0xf8, 0xd8 },
  1.1000 +{ 0x01, 0xf9, 0xd9 },
  1.1001 +{ 0x01, 0xfa, 0xda },
  1.1002 +{ 0x01, 0xfb, 0xdb },
  1.1003 +{ 0x01, 0xfc, 0xdc },
  1.1004 +{ 0x01, 0xfd, 0xdd },
  1.1005 +{ 0x01, 0xfe, 0xde },
  1.1006 +{ 0x00, 0xdf, 0xdf },
  1.1007 +{ 0x00, 0xe0, 0xc0 },
  1.1008 +{ 0x00, 0xe1, 0xc1 },
  1.1009 +{ 0x00, 0xe2, 0xc2 },
  1.1010 +{ 0x00, 0xe3, 0xc3 },
  1.1011 +{ 0x00, 0xe4, 0xc4 },
  1.1012 +{ 0x00, 0xe5, 0xc5 },
  1.1013 +{ 0x00, 0xe6, 0xc6 },
  1.1014 +{ 0x00, 0xe7, 0xc7 },
  1.1015 +{ 0x00, 0xe8, 0xc8 },
  1.1016 +{ 0x00, 0xe9, 0xc9 },
  1.1017 +{ 0x00, 0xea, 0xca },
  1.1018 +{ 0x00, 0xeb, 0xcb },
  1.1019 +{ 0x00, 0xec, 0xcc },
  1.1020 +{ 0x00, 0xed, 0xcd },
  1.1021 +{ 0x00, 0xee, 0xce },
  1.1022 +{ 0x00, 0xef, 0xcf },
  1.1023 +{ 0x00, 0xf0, 0xd0 },
  1.1024 +{ 0x00, 0xf1, 0xd1 },
  1.1025 +{ 0x00, 0xf2, 0xd2 },
  1.1026 +{ 0x00, 0xf3, 0xd3 },
  1.1027 +{ 0x00, 0xf4, 0xd4 },
  1.1028 +{ 0x00, 0xf5, 0xd5 },
  1.1029 +{ 0x00, 0xf6, 0xd6 },
  1.1030 +{ 0x00, 0xf7, 0xf7 },
  1.1031 +{ 0x00, 0xf8, 0xd8 },
  1.1032 +{ 0x00, 0xf9, 0xd9 },
  1.1033 +{ 0x00, 0xfa, 0xda },
  1.1034 +{ 0x00, 0xfb, 0xdb },
  1.1035 +{ 0x00, 0xfc, 0xdc },
  1.1036 +{ 0x00, 0xfd, 0xdd },
  1.1037 +{ 0x00, 0xfe, 0xde },
  1.1038 +{ 0x00, 0xff, 0xff }
  1.1039 +};
  1.1040 +
  1.1041 +
  1.1042 +static struct cs_info iso2_tbl[] = {
  1.1043 +{ 0x00, 0x00, 0x00 },
  1.1044 +{ 0x00, 0x01, 0x01 },
  1.1045 +{ 0x00, 0x02, 0x02 },
  1.1046 +{ 0x00, 0x03, 0x03 },
  1.1047 +{ 0x00, 0x04, 0x04 },
  1.1048 +{ 0x00, 0x05, 0x05 },
  1.1049 +{ 0x00, 0x06, 0x06 },
  1.1050 +{ 0x00, 0x07, 0x07 },
  1.1051 +{ 0x00, 0x08, 0x08 },
  1.1052 +{ 0x00, 0x09, 0x09 },
  1.1053 +{ 0x00, 0x0a, 0x0a },
  1.1054 +{ 0x00, 0x0b, 0x0b },
  1.1055 +{ 0x00, 0x0c, 0x0c },
  1.1056 +{ 0x00, 0x0d, 0x0d },
  1.1057 +{ 0x00, 0x0e, 0x0e },
  1.1058 +{ 0x00, 0x0f, 0x0f },
  1.1059 +{ 0x00, 0x10, 0x10 },
  1.1060 +{ 0x00, 0x11, 0x11 },
  1.1061 +{ 0x00, 0x12, 0x12 },
  1.1062 +{ 0x00, 0x13, 0x13 },
  1.1063 +{ 0x00, 0x14, 0x14 },
  1.1064 +{ 0x00, 0x15, 0x15 },
  1.1065 +{ 0x00, 0x16, 0x16 },
  1.1066 +{ 0x00, 0x17, 0x17 },
  1.1067 +{ 0x00, 0x18, 0x18 },
  1.1068 +{ 0x00, 0x19, 0x19 },
  1.1069 +{ 0x00, 0x1a, 0x1a },
  1.1070 +{ 0x00, 0x1b, 0x1b },
  1.1071 +{ 0x00, 0x1c, 0x1c },
  1.1072 +{ 0x00, 0x1d, 0x1d },
  1.1073 +{ 0x00, 0x1e, 0x1e },
  1.1074 +{ 0x00, 0x1f, 0x1f },
  1.1075 +{ 0x00, 0x20, 0x20 },
  1.1076 +{ 0x00, 0x21, 0x21 },
  1.1077 +{ 0x00, 0x22, 0x22 },
  1.1078 +{ 0x00, 0x23, 0x23 },
  1.1079 +{ 0x00, 0x24, 0x24 },
  1.1080 +{ 0x00, 0x25, 0x25 },
  1.1081 +{ 0x00, 0x26, 0x26 },
  1.1082 +{ 0x00, 0x27, 0x27 },
  1.1083 +{ 0x00, 0x28, 0x28 },
  1.1084 +{ 0x00, 0x29, 0x29 },
  1.1085 +{ 0x00, 0x2a, 0x2a },
  1.1086 +{ 0x00, 0x2b, 0x2b },
  1.1087 +{ 0x00, 0x2c, 0x2c },
  1.1088 +{ 0x00, 0x2d, 0x2d },
  1.1089 +{ 0x00, 0x2e, 0x2e },
  1.1090 +{ 0x00, 0x2f, 0x2f },
  1.1091 +{ 0x00, 0x30, 0x30 },
  1.1092 +{ 0x00, 0x31, 0x31 },
  1.1093 +{ 0x00, 0x32, 0x32 },
  1.1094 +{ 0x00, 0x33, 0x33 },
  1.1095 +{ 0x00, 0x34, 0x34 },
  1.1096 +{ 0x00, 0x35, 0x35 },
  1.1097 +{ 0x00, 0x36, 0x36 },
  1.1098 +{ 0x00, 0x37, 0x37 },
  1.1099 +{ 0x00, 0x38, 0x38 },
  1.1100 +{ 0x00, 0x39, 0x39 },
  1.1101 +{ 0x00, 0x3a, 0x3a },
  1.1102 +{ 0x00, 0x3b, 0x3b },
  1.1103 +{ 0x00, 0x3c, 0x3c },
  1.1104 +{ 0x00, 0x3d, 0x3d },
  1.1105 +{ 0x00, 0x3e, 0x3e },
  1.1106 +{ 0x00, 0x3f, 0x3f },
  1.1107 +{ 0x00, 0x40, 0x40 },
  1.1108 +{ 0x01, 0x61, 0x41 },
  1.1109 +{ 0x01, 0x62, 0x42 },
  1.1110 +{ 0x01, 0x63, 0x43 },
  1.1111 +{ 0x01, 0x64, 0x44 },
  1.1112 +{ 0x01, 0x65, 0x45 },
  1.1113 +{ 0x01, 0x66, 0x46 },
  1.1114 +{ 0x01, 0x67, 0x47 },
  1.1115 +{ 0x01, 0x68, 0x48 },
  1.1116 +{ 0x01, 0x69, 0x49 },
  1.1117 +{ 0x01, 0x6a, 0x4a },
  1.1118 +{ 0x01, 0x6b, 0x4b },
  1.1119 +{ 0x01, 0x6c, 0x4c },
  1.1120 +{ 0x01, 0x6d, 0x4d },
  1.1121 +{ 0x01, 0x6e, 0x4e },
  1.1122 +{ 0x01, 0x6f, 0x4f },
  1.1123 +{ 0x01, 0x70, 0x50 },
  1.1124 +{ 0x01, 0x71, 0x51 },
  1.1125 +{ 0x01, 0x72, 0x52 },
  1.1126 +{ 0x01, 0x73, 0x53 },
  1.1127 +{ 0x01, 0x74, 0x54 },
  1.1128 +{ 0x01, 0x75, 0x55 },
  1.1129 +{ 0x01, 0x76, 0x56 },
  1.1130 +{ 0x01, 0x77, 0x57 },
  1.1131 +{ 0x01, 0x78, 0x58 },
  1.1132 +{ 0x01, 0x79, 0x59 },
  1.1133 +{ 0x01, 0x7a, 0x5a },
  1.1134 +{ 0x00, 0x5b, 0x5b },
  1.1135 +{ 0x00, 0x5c, 0x5c },
  1.1136 +{ 0x00, 0x5d, 0x5d },
  1.1137 +{ 0x00, 0x5e, 0x5e },
  1.1138 +{ 0x00, 0x5f, 0x5f },
  1.1139 +{ 0x00, 0x60, 0x60 },
  1.1140 +{ 0x00, 0x61, 0x41 },
  1.1141 +{ 0x00, 0x62, 0x42 },
  1.1142 +{ 0x00, 0x63, 0x43 },
  1.1143 +{ 0x00, 0x64, 0x44 },
  1.1144 +{ 0x00, 0x65, 0x45 },
  1.1145 +{ 0x00, 0x66, 0x46 },
  1.1146 +{ 0x00, 0x67, 0x47 },
  1.1147 +{ 0x00, 0x68, 0x48 },
  1.1148 +{ 0x00, 0x69, 0x49 },
  1.1149 +{ 0x00, 0x6a, 0x4a },
  1.1150 +{ 0x00, 0x6b, 0x4b },
  1.1151 +{ 0x00, 0x6c, 0x4c },
  1.1152 +{ 0x00, 0x6d, 0x4d },
  1.1153 +{ 0x00, 0x6e, 0x4e },
  1.1154 +{ 0x00, 0x6f, 0x4f },
  1.1155 +{ 0x00, 0x70, 0x50 },
  1.1156 +{ 0x00, 0x71, 0x51 },
  1.1157 +{ 0x00, 0x72, 0x52 },
  1.1158 +{ 0x00, 0x73, 0x53 },
  1.1159 +{ 0x00, 0x74, 0x54 },
  1.1160 +{ 0x00, 0x75, 0x55 },
  1.1161 +{ 0x00, 0x76, 0x56 },
  1.1162 +{ 0x00, 0x77, 0x57 },
  1.1163 +{ 0x00, 0x78, 0x58 },
  1.1164 +{ 0x00, 0x79, 0x59 },
  1.1165 +{ 0x00, 0x7a, 0x5a },
  1.1166 +{ 0x00, 0x7b, 0x7b },
  1.1167 +{ 0x00, 0x7c, 0x7c },
  1.1168 +{ 0x00, 0x7d, 0x7d },
  1.1169 +{ 0x00, 0x7e, 0x7e },
  1.1170 +{ 0x00, 0x7f, 0x7f },
  1.1171 +{ 0x00, 0x80, 0x80 },
  1.1172 +{ 0x00, 0x81, 0x81 },
  1.1173 +{ 0x00, 0x82, 0x82 },
  1.1174 +{ 0x00, 0x83, 0x83 },
  1.1175 +{ 0x00, 0x84, 0x84 },
  1.1176 +{ 0x00, 0x85, 0x85 },
  1.1177 +{ 0x00, 0x86, 0x86 },
  1.1178 +{ 0x00, 0x87, 0x87 },
  1.1179 +{ 0x00, 0x88, 0x88 },
  1.1180 +{ 0x00, 0x89, 0x89 },
  1.1181 +{ 0x00, 0x8a, 0x8a },
  1.1182 +{ 0x00, 0x8b, 0x8b },
  1.1183 +{ 0x00, 0x8c, 0x8c },
  1.1184 +{ 0x00, 0x8d, 0x8d },
  1.1185 +{ 0x00, 0x8e, 0x8e },
  1.1186 +{ 0x00, 0x8f, 0x8f },
  1.1187 +{ 0x00, 0x90, 0x90 },
  1.1188 +{ 0x00, 0x91, 0x91 },
  1.1189 +{ 0x00, 0x92, 0x92 },
  1.1190 +{ 0x00, 0x93, 0x93 },
  1.1191 +{ 0x00, 0x94, 0x94 },
  1.1192 +{ 0x00, 0x95, 0x95 },
  1.1193 +{ 0x00, 0x96, 0x96 },
  1.1194 +{ 0x00, 0x97, 0x97 },
  1.1195 +{ 0x00, 0x98, 0x98 },
  1.1196 +{ 0x00, 0x99, 0x99 },
  1.1197 +{ 0x00, 0x9a, 0x9a },
  1.1198 +{ 0x00, 0x9b, 0x9b },
  1.1199 +{ 0x00, 0x9c, 0x9c },
  1.1200 +{ 0x00, 0x9d, 0x9d },
  1.1201 +{ 0x00, 0x9e, 0x9e },
  1.1202 +{ 0x00, 0x9f, 0x9f },
  1.1203 +{ 0x00, 0xa0, 0xa0 },
  1.1204 +{ 0x01, 0xb1, 0xa1 },
  1.1205 +{ 0x00, 0xa2, 0xa2 },
  1.1206 +{ 0x01, 0xb3, 0xa3 },
  1.1207 +{ 0x00, 0xa4, 0xa4 },
  1.1208 +{ 0x01, 0xb5, 0xa5 },
  1.1209 +{ 0x01, 0xb6, 0xa6 },
  1.1210 +{ 0x00, 0xa7, 0xa7 },
  1.1211 +{ 0x00, 0xa8, 0xa8 },
  1.1212 +{ 0x01, 0xb9, 0xa9 },
  1.1213 +{ 0x01, 0xba, 0xaa },
  1.1214 +{ 0x01, 0xbb, 0xab },
  1.1215 +{ 0x01, 0xbc, 0xac },
  1.1216 +{ 0x00, 0xad, 0xad },
  1.1217 +{ 0x01, 0xbe, 0xae },
  1.1218 +{ 0x01, 0xbf, 0xaf },
  1.1219 +{ 0x00, 0xb0, 0xb0 },
  1.1220 +{ 0x00, 0xb1, 0xa1 },
  1.1221 +{ 0x00, 0xb2, 0xb2 },
  1.1222 +{ 0x00, 0xb3, 0xa3 },
  1.1223 +{ 0x00, 0xb4, 0xb4 },
  1.1224 +{ 0x00, 0xb5, 0xa5 },
  1.1225 +{ 0x00, 0xb6, 0xa6 },
  1.1226 +{ 0x00, 0xb7, 0xb7 },
  1.1227 +{ 0x00, 0xb8, 0xb8 },
  1.1228 +{ 0x00, 0xb9, 0xa9 },
  1.1229 +{ 0x00, 0xba, 0xaa },
  1.1230 +{ 0x00, 0xbb, 0xab },
  1.1231 +{ 0x00, 0xbc, 0xac },
  1.1232 +{ 0x00, 0xbd, 0xbd },
  1.1233 +{ 0x00, 0xbe, 0xae },
  1.1234 +{ 0x00, 0xbf, 0xaf },
  1.1235 +{ 0x01, 0xe0, 0xc0 },
  1.1236 +{ 0x01, 0xe1, 0xc1 },
  1.1237 +{ 0x01, 0xe2, 0xc2 },
  1.1238 +{ 0x01, 0xe3, 0xc3 },
  1.1239 +{ 0x01, 0xe4, 0xc4 },
  1.1240 +{ 0x01, 0xe5, 0xc5 },
  1.1241 +{ 0x01, 0xe6, 0xc6 },
  1.1242 +{ 0x01, 0xe7, 0xc7 },
  1.1243 +{ 0x01, 0xe8, 0xc8 },
  1.1244 +{ 0x01, 0xe9, 0xc9 },
  1.1245 +{ 0x01, 0xea, 0xca },
  1.1246 +{ 0x01, 0xeb, 0xcb },
  1.1247 +{ 0x01, 0xec, 0xcc },
  1.1248 +{ 0x01, 0xed, 0xcd },
  1.1249 +{ 0x01, 0xee, 0xce },
  1.1250 +{ 0x01, 0xef, 0xcf },
  1.1251 +{ 0x01, 0xf0, 0xd0 },
  1.1252 +{ 0x01, 0xf1, 0xd1 },
  1.1253 +{ 0x01, 0xf2, 0xd2 },
  1.1254 +{ 0x01, 0xf3, 0xd3 },
  1.1255 +{ 0x01, 0xf4, 0xd4 },
  1.1256 +{ 0x01, 0xf5, 0xd5 },
  1.1257 +{ 0x01, 0xf6, 0xd6 },
  1.1258 +{ 0x00, 0xd7, 0xd7 },
  1.1259 +{ 0x01, 0xf8, 0xd8 },
  1.1260 +{ 0x01, 0xf9, 0xd9 },
  1.1261 +{ 0x01, 0xfa, 0xda },
  1.1262 +{ 0x01, 0xfb, 0xdb },
  1.1263 +{ 0x01, 0xfc, 0xdc },
  1.1264 +{ 0x01, 0xfd, 0xdd },
  1.1265 +{ 0x01, 0xfe, 0xde },
  1.1266 +{ 0x00, 0xdf, 0xdf },
  1.1267 +{ 0x00, 0xe0, 0xc0 },
  1.1268 +{ 0x00, 0xe1, 0xc1 },
  1.1269 +{ 0x00, 0xe2, 0xc2 },
  1.1270 +{ 0x00, 0xe3, 0xc3 },
  1.1271 +{ 0x00, 0xe4, 0xc4 },
  1.1272 +{ 0x00, 0xe5, 0xc5 },
  1.1273 +{ 0x00, 0xe6, 0xc6 },
  1.1274 +{ 0x00, 0xe7, 0xc7 },
  1.1275 +{ 0x00, 0xe8, 0xc8 },
  1.1276 +{ 0x00, 0xe9, 0xc9 },
  1.1277 +{ 0x00, 0xea, 0xca },
  1.1278 +{ 0x00, 0xeb, 0xcb },
  1.1279 +{ 0x00, 0xec, 0xcc },
  1.1280 +{ 0x00, 0xed, 0xcd },
  1.1281 +{ 0x00, 0xee, 0xce },
  1.1282 +{ 0x00, 0xef, 0xcf },
  1.1283 +{ 0x00, 0xf0, 0xd0 },
  1.1284 +{ 0x00, 0xf1, 0xd1 },
  1.1285 +{ 0x00, 0xf2, 0xd2 },
  1.1286 +{ 0x00, 0xf3, 0xd3 },
  1.1287 +{ 0x00, 0xf4, 0xd4 },
  1.1288 +{ 0x00, 0xf5, 0xd5 },
  1.1289 +{ 0x00, 0xf6, 0xd6 },
  1.1290 +{ 0x00, 0xf7, 0xf7 },
  1.1291 +{ 0x00, 0xf8, 0xd8 },
  1.1292 +{ 0x00, 0xf9, 0xd9 },
  1.1293 +{ 0x00, 0xfa, 0xda },
  1.1294 +{ 0x00, 0xfb, 0xdb },
  1.1295 +{ 0x00, 0xfc, 0xdc },
  1.1296 +{ 0x00, 0xfd, 0xdd },
  1.1297 +{ 0x00, 0xfe, 0xde },
  1.1298 +{ 0x00, 0xff, 0xff }
  1.1299 +};
  1.1300 +
  1.1301 +
  1.1302 +static struct cs_info iso3_tbl[] = {
  1.1303 +{ 0x00, 0x00, 0x00 },
  1.1304 +{ 0x00, 0x01, 0x01 },
  1.1305 +{ 0x00, 0x02, 0x02 },
  1.1306 +{ 0x00, 0x03, 0x03 },
  1.1307 +{ 0x00, 0x04, 0x04 },
  1.1308 +{ 0x00, 0x05, 0x05 },
  1.1309 +{ 0x00, 0x06, 0x06 },
  1.1310 +{ 0x00, 0x07, 0x07 },
  1.1311 +{ 0x00, 0x08, 0x08 },
  1.1312 +{ 0x00, 0x09, 0x09 },
  1.1313 +{ 0x00, 0x0a, 0x0a },
  1.1314 +{ 0x00, 0x0b, 0x0b },
  1.1315 +{ 0x00, 0x0c, 0x0c },
  1.1316 +{ 0x00, 0x0d, 0x0d },
  1.1317 +{ 0x00, 0x0e, 0x0e },
  1.1318 +{ 0x00, 0x0f, 0x0f },
  1.1319 +{ 0x00, 0x10, 0x10 },
  1.1320 +{ 0x00, 0x11, 0x11 },
  1.1321 +{ 0x00, 0x12, 0x12 },
  1.1322 +{ 0x00, 0x13, 0x13 },
  1.1323 +{ 0x00, 0x14, 0x14 },
  1.1324 +{ 0x00, 0x15, 0x15 },
  1.1325 +{ 0x00, 0x16, 0x16 },
  1.1326 +{ 0x00, 0x17, 0x17 },
  1.1327 +{ 0x00, 0x18, 0x18 },
  1.1328 +{ 0x00, 0x19, 0x19 },
  1.1329 +{ 0x00, 0x1a, 0x1a },
  1.1330 +{ 0x00, 0x1b, 0x1b },
  1.1331 +{ 0x00, 0x1c, 0x1c },
  1.1332 +{ 0x00, 0x1d, 0x1d },
  1.1333 +{ 0x00, 0x1e, 0x1e },
  1.1334 +{ 0x00, 0x1f, 0x1f },
  1.1335 +{ 0x00, 0x20, 0x20 },
  1.1336 +{ 0x00, 0x21, 0x21 },
  1.1337 +{ 0x00, 0x22, 0x22 },
  1.1338 +{ 0x00, 0x23, 0x23 },
  1.1339 +{ 0x00, 0x24, 0x24 },
  1.1340 +{ 0x00, 0x25, 0x25 },
  1.1341 +{ 0x00, 0x26, 0x26 },
  1.1342 +{ 0x00, 0x27, 0x27 },
  1.1343 +{ 0x00, 0x28, 0x28 },
  1.1344 +{ 0x00, 0x29, 0x29 },
  1.1345 +{ 0x00, 0x2a, 0x2a },
  1.1346 +{ 0x00, 0x2b, 0x2b },
  1.1347 +{ 0x00, 0x2c, 0x2c },
  1.1348 +{ 0x00, 0x2d, 0x2d },
  1.1349 +{ 0x00, 0x2e, 0x2e },
  1.1350 +{ 0x00, 0x2f, 0x2f },
  1.1351 +{ 0x00, 0x30, 0x30 },
  1.1352 +{ 0x00, 0x31, 0x31 },
  1.1353 +{ 0x00, 0x32, 0x32 },
  1.1354 +{ 0x00, 0x33, 0x33 },
  1.1355 +{ 0x00, 0x34, 0x34 },
  1.1356 +{ 0x00, 0x35, 0x35 },
  1.1357 +{ 0x00, 0x36, 0x36 },
  1.1358 +{ 0x00, 0x37, 0x37 },
  1.1359 +{ 0x00, 0x38, 0x38 },
  1.1360 +{ 0x00, 0x39, 0x39 },
  1.1361 +{ 0x00, 0x3a, 0x3a },
  1.1362 +{ 0x00, 0x3b, 0x3b },
  1.1363 +{ 0x00, 0x3c, 0x3c },
  1.1364 +{ 0x00, 0x3d, 0x3d },
  1.1365 +{ 0x00, 0x3e, 0x3e },
  1.1366 +{ 0x00, 0x3f, 0x3f },
  1.1367 +{ 0x00, 0x40, 0x40 },
  1.1368 +{ 0x01, 0x61, 0x41 },
  1.1369 +{ 0x01, 0x62, 0x42 },
  1.1370 +{ 0x01, 0x63, 0x43 },
  1.1371 +{ 0x01, 0x64, 0x44 },
  1.1372 +{ 0x01, 0x65, 0x45 },
  1.1373 +{ 0x01, 0x66, 0x46 },
  1.1374 +{ 0x01, 0x67, 0x47 },
  1.1375 +{ 0x01, 0x68, 0x48 },
  1.1376 +{ 0x01, 0x69, 0x49 },
  1.1377 +{ 0x01, 0x6a, 0x4a },
  1.1378 +{ 0x01, 0x6b, 0x4b },
  1.1379 +{ 0x01, 0x6c, 0x4c },
  1.1380 +{ 0x01, 0x6d, 0x4d },
  1.1381 +{ 0x01, 0x6e, 0x4e },
  1.1382 +{ 0x01, 0x6f, 0x4f },
  1.1383 +{ 0x01, 0x70, 0x50 },
  1.1384 +{ 0x01, 0x71, 0x51 },
  1.1385 +{ 0x01, 0x72, 0x52 },
  1.1386 +{ 0x01, 0x73, 0x53 },
  1.1387 +{ 0x01, 0x74, 0x54 },
  1.1388 +{ 0x01, 0x75, 0x55 },
  1.1389 +{ 0x01, 0x76, 0x56 },
  1.1390 +{ 0x01, 0x77, 0x57 },
  1.1391 +{ 0x01, 0x78, 0x58 },
  1.1392 +{ 0x01, 0x79, 0x59 },
  1.1393 +{ 0x01, 0x7a, 0x5a },
  1.1394 +{ 0x00, 0x5b, 0x5b },
  1.1395 +{ 0x00, 0x5c, 0x5c },
  1.1396 +{ 0x00, 0x5d, 0x5d },
  1.1397 +{ 0x00, 0x5e, 0x5e },
  1.1398 +{ 0x00, 0x5f, 0x5f },
  1.1399 +{ 0x00, 0x60, 0x60 },
  1.1400 +{ 0x00, 0x61, 0x41 },
  1.1401 +{ 0x00, 0x62, 0x42 },
  1.1402 +{ 0x00, 0x63, 0x43 },
  1.1403 +{ 0x00, 0x64, 0x44 },
  1.1404 +{ 0x00, 0x65, 0x45 },
  1.1405 +{ 0x00, 0x66, 0x46 },
  1.1406 +{ 0x00, 0x67, 0x47 },
  1.1407 +{ 0x00, 0x68, 0x48 },
  1.1408 +{ 0x00, 0x69, 0x49 },
  1.1409 +{ 0x00, 0x6a, 0x4a },
  1.1410 +{ 0x00, 0x6b, 0x4b },
  1.1411 +{ 0x00, 0x6c, 0x4c },
  1.1412 +{ 0x00, 0x6d, 0x4d },
  1.1413 +{ 0x00, 0x6e, 0x4e },
  1.1414 +{ 0x00, 0x6f, 0x4f },
  1.1415 +{ 0x00, 0x70, 0x50 },
  1.1416 +{ 0x00, 0x71, 0x51 },
  1.1417 +{ 0x00, 0x72, 0x52 },
  1.1418 +{ 0x00, 0x73, 0x53 },
  1.1419 +{ 0x00, 0x74, 0x54 },
  1.1420 +{ 0x00, 0x75, 0x55 },
  1.1421 +{ 0x00, 0x76, 0x56 },
  1.1422 +{ 0x00, 0x77, 0x57 },
  1.1423 +{ 0x00, 0x78, 0x58 },
  1.1424 +{ 0x00, 0x79, 0x59 },
  1.1425 +{ 0x00, 0x7a, 0x5a },
  1.1426 +{ 0x00, 0x7b, 0x7b },
  1.1427 +{ 0x00, 0x7c, 0x7c },
  1.1428 +{ 0x00, 0x7d, 0x7d },
  1.1429 +{ 0x00, 0x7e, 0x7e },
  1.1430 +{ 0x00, 0x7f, 0x7f },
  1.1431 +{ 0x00, 0x80, 0x80 },
  1.1432 +{ 0x00, 0x81, 0x81 },
  1.1433 +{ 0x00, 0x82, 0x82 },
  1.1434 +{ 0x00, 0x83, 0x83 },
  1.1435 +{ 0x00, 0x84, 0x84 },
  1.1436 +{ 0x00, 0x85, 0x85 },
  1.1437 +{ 0x00, 0x86, 0x86 },
  1.1438 +{ 0x00, 0x87, 0x87 },
  1.1439 +{ 0x00, 0x88, 0x88 },
  1.1440 +{ 0x00, 0x89, 0x89 },
  1.1441 +{ 0x00, 0x8a, 0x8a },
  1.1442 +{ 0x00, 0x8b, 0x8b },
  1.1443 +{ 0x00, 0x8c, 0x8c },
  1.1444 +{ 0x00, 0x8d, 0x8d },
  1.1445 +{ 0x00, 0x8e, 0x8e },
  1.1446 +{ 0x00, 0x8f, 0x8f },
  1.1447 +{ 0x00, 0x90, 0x90 },
  1.1448 +{ 0x00, 0x91, 0x91 },
  1.1449 +{ 0x00, 0x92, 0x92 },
  1.1450 +{ 0x00, 0x93, 0x93 },
  1.1451 +{ 0x00, 0x94, 0x94 },
  1.1452 +{ 0x00, 0x95, 0x95 },
  1.1453 +{ 0x00, 0x96, 0x96 },
  1.1454 +{ 0x00, 0x97, 0x97 },
  1.1455 +{ 0x00, 0x98, 0x98 },
  1.1456 +{ 0x00, 0x99, 0x99 },
  1.1457 +{ 0x00, 0x9a, 0x9a },
  1.1458 +{ 0x00, 0x9b, 0x9b },
  1.1459 +{ 0x00, 0x9c, 0x9c },
  1.1460 +{ 0x00, 0x9d, 0x9d },
  1.1461 +{ 0x00, 0x9e, 0x9e },
  1.1462 +{ 0x00, 0x9f, 0x9f },
  1.1463 +{ 0x00, 0xa0, 0xa0 },
  1.1464 +{ 0x01, 0xb1, 0xa1 },
  1.1465 +{ 0x00, 0xa2, 0xa2 },
  1.1466 +{ 0x00, 0xa3, 0xa3 },
  1.1467 +{ 0x00, 0xa4, 0xa4 },
  1.1468 +{ 0x00, 0xa5, 0xa5 },
  1.1469 +{ 0x01, 0xb6, 0xa6 },
  1.1470 +{ 0x00, 0xa7, 0xa7 },
  1.1471 +{ 0x00, 0xa8, 0xa8 },
  1.1472 +{ 0x01, 0x69, 0xa9 },
  1.1473 +{ 0x01, 0xba, 0xaa },
  1.1474 +{ 0x01, 0xbb, 0xab },
  1.1475 +{ 0x01, 0xbc, 0xac },
  1.1476 +{ 0x00, 0xad, 0xad },
  1.1477 +{ 0x00, 0xae, 0xae },
  1.1478 +{ 0x01, 0xbf, 0xaf },
  1.1479 +{ 0x00, 0xb0, 0xb0 },
  1.1480 +{ 0x00, 0xb1, 0xa1 },
  1.1481 +{ 0x00, 0xb2, 0xb2 },
  1.1482 +{ 0x00, 0xb3, 0xb3 },
  1.1483 +{ 0x00, 0xb4, 0xb4 },
  1.1484 +{ 0x00, 0xb5, 0xb5 },
  1.1485 +{ 0x00, 0xb6, 0xa6 },
  1.1486 +{ 0x00, 0xb7, 0xb7 },
  1.1487 +{ 0x00, 0xb8, 0xb8 },
  1.1488 +{ 0x00, 0xb9, 0x49 },
  1.1489 +{ 0x00, 0xba, 0xaa },
  1.1490 +{ 0x00, 0xbb, 0xab },
  1.1491 +{ 0x00, 0xbc, 0xac },
  1.1492 +{ 0x00, 0xbd, 0xbd },
  1.1493 +{ 0x00, 0xbe, 0xbe },
  1.1494 +{ 0x00, 0xbf, 0xaf },
  1.1495 +{ 0x01, 0xe0, 0xc0 },
  1.1496 +{ 0x01, 0xe1, 0xc1 },
  1.1497 +{ 0x01, 0xe2, 0xc2 },
  1.1498 +{ 0x00, 0xc3, 0xc3 },
  1.1499 +{ 0x01, 0xe4, 0xc4 },
  1.1500 +{ 0x01, 0xe5, 0xc5 },
  1.1501 +{ 0x01, 0xe6, 0xc6 },
  1.1502 +{ 0x01, 0xe7, 0xc7 },
  1.1503 +{ 0x01, 0xe8, 0xc8 },
  1.1504 +{ 0x01, 0xe9, 0xc9 },
  1.1505 +{ 0x01, 0xea, 0xca },
  1.1506 +{ 0x01, 0xeb, 0xcb },
  1.1507 +{ 0x01, 0xec, 0xcc },
  1.1508 +{ 0x01, 0xed, 0xcd },
  1.1509 +{ 0x01, 0xee, 0xce },
  1.1510 +{ 0x01, 0xef, 0xcf },
  1.1511 +{ 0x00, 0xd0, 0xd0 },
  1.1512 +{ 0x01, 0xf1, 0xd1 },
  1.1513 +{ 0x01, 0xf2, 0xd2 },
  1.1514 +{ 0x01, 0xf3, 0xd3 },
  1.1515 +{ 0x01, 0xf4, 0xd4 },
  1.1516 +{ 0x01, 0xf5, 0xd5 },
  1.1517 +{ 0x01, 0xf6, 0xd6 },
  1.1518 +{ 0x00, 0xd7, 0xd7 },
  1.1519 +{ 0x01, 0xf8, 0xd8 },
  1.1520 +{ 0x01, 0xf9, 0xd9 },
  1.1521 +{ 0x01, 0xfa, 0xda },
  1.1522 +{ 0x01, 0xfb, 0xdb },
  1.1523 +{ 0x01, 0xfc, 0xdc },
  1.1524 +{ 0x01, 0xfd, 0xdd },
  1.1525 +{ 0x01, 0xfe, 0xde },
  1.1526 +{ 0x00, 0xdf, 0xdf },
  1.1527 +{ 0x00, 0xe0, 0xc0 },
  1.1528 +{ 0x00, 0xe1, 0xc1 },
  1.1529 +{ 0x00, 0xe2, 0xc2 },
  1.1530 +{ 0x00, 0xe3, 0xe3 },
  1.1531 +{ 0x00, 0xe4, 0xc4 },
  1.1532 +{ 0x00, 0xe5, 0xc5 },
  1.1533 +{ 0x00, 0xe6, 0xc6 },
  1.1534 +{ 0x00, 0xe7, 0xc7 },
  1.1535 +{ 0x00, 0xe8, 0xc8 },
  1.1536 +{ 0x00, 0xe9, 0xc9 },
  1.1537 +{ 0x00, 0xea, 0xca },
  1.1538 +{ 0x00, 0xeb, 0xcb },
  1.1539 +{ 0x00, 0xec, 0xcc },
  1.1540 +{ 0x00, 0xed, 0xcd },
  1.1541 +{ 0x00, 0xee, 0xce },
  1.1542 +{ 0x00, 0xef, 0xcf },
  1.1543 +{ 0x00, 0xf0, 0xf0 },
  1.1544 +{ 0x00, 0xf1, 0xd1 },
  1.1545 +{ 0x00, 0xf2, 0xd2 },
  1.1546 +{ 0x00, 0xf3, 0xd3 },
  1.1547 +{ 0x00, 0xf4, 0xd4 },
  1.1548 +{ 0x00, 0xf5, 0xd5 },
  1.1549 +{ 0x00, 0xf6, 0xd6 },
  1.1550 +{ 0x00, 0xf7, 0xf7 },
  1.1551 +{ 0x00, 0xf8, 0xd8 },
  1.1552 +{ 0x00, 0xf9, 0xd9 },
  1.1553 +{ 0x00, 0xfa, 0xda },
  1.1554 +{ 0x00, 0xfb, 0xdb },
  1.1555 +{ 0x00, 0xfc, 0xdc },
  1.1556 +{ 0x00, 0xfd, 0xdd },
  1.1557 +{ 0x00, 0xfe, 0xde },
  1.1558 +{ 0x00, 0xff, 0xff }
  1.1559 +};
  1.1560 +
  1.1561 +static struct cs_info iso4_tbl[] = {
  1.1562 +{ 0x00, 0x00, 0x00 },
  1.1563 +{ 0x00, 0x01, 0x01 },
  1.1564 +{ 0x00, 0x02, 0x02 },
  1.1565 +{ 0x00, 0x03, 0x03 },
  1.1566 +{ 0x00, 0x04, 0x04 },
  1.1567 +{ 0x00, 0x05, 0x05 },
  1.1568 +{ 0x00, 0x06, 0x06 },
  1.1569 +{ 0x00, 0x07, 0x07 },
  1.1570 +{ 0x00, 0x08, 0x08 },
  1.1571 +{ 0x00, 0x09, 0x09 },
  1.1572 +{ 0x00, 0x0a, 0x0a },
  1.1573 +{ 0x00, 0x0b, 0x0b },
  1.1574 +{ 0x00, 0x0c, 0x0c },
  1.1575 +{ 0x00, 0x0d, 0x0d },
  1.1576 +{ 0x00, 0x0e, 0x0e },
  1.1577 +{ 0x00, 0x0f, 0x0f },
  1.1578 +{ 0x00, 0x10, 0x10 },
  1.1579 +{ 0x00, 0x11, 0x11 },
  1.1580 +{ 0x00, 0x12, 0x12 },
  1.1581 +{ 0x00, 0x13, 0x13 },
  1.1582 +{ 0x00, 0x14, 0x14 },
  1.1583 +{ 0x00, 0x15, 0x15 },
  1.1584 +{ 0x00, 0x16, 0x16 },
  1.1585 +{ 0x00, 0x17, 0x17 },
  1.1586 +{ 0x00, 0x18, 0x18 },
  1.1587 +{ 0x00, 0x19, 0x19 },
  1.1588 +{ 0x00, 0x1a, 0x1a },
  1.1589 +{ 0x00, 0x1b, 0x1b },
  1.1590 +{ 0x00, 0x1c, 0x1c },
  1.1591 +{ 0x00, 0x1d, 0x1d },
  1.1592 +{ 0x00, 0x1e, 0x1e },
  1.1593 +{ 0x00, 0x1f, 0x1f },
  1.1594 +{ 0x00, 0x20, 0x20 },
  1.1595 +{ 0x00, 0x21, 0x21 },
  1.1596 +{ 0x00, 0x22, 0x22 },
  1.1597 +{ 0x00, 0x23, 0x23 },
  1.1598 +{ 0x00, 0x24, 0x24 },
  1.1599 +{ 0x00, 0x25, 0x25 },
  1.1600 +{ 0x00, 0x26, 0x26 },
  1.1601 +{ 0x00, 0x27, 0x27 },
  1.1602 +{ 0x00, 0x28, 0x28 },
  1.1603 +{ 0x00, 0x29, 0x29 },
  1.1604 +{ 0x00, 0x2a, 0x2a },
  1.1605 +{ 0x00, 0x2b, 0x2b },
  1.1606 +{ 0x00, 0x2c, 0x2c },
  1.1607 +{ 0x00, 0x2d, 0x2d },
  1.1608 +{ 0x00, 0x2e, 0x2e },
  1.1609 +{ 0x00, 0x2f, 0x2f },
  1.1610 +{ 0x00, 0x30, 0x30 },
  1.1611 +{ 0x00, 0x31, 0x31 },
  1.1612 +{ 0x00, 0x32, 0x32 },
  1.1613 +{ 0x00, 0x33, 0x33 },
  1.1614 +{ 0x00, 0x34, 0x34 },
  1.1615 +{ 0x00, 0x35, 0x35 },
  1.1616 +{ 0x00, 0x36, 0x36 },
  1.1617 +{ 0x00, 0x37, 0x37 },
  1.1618 +{ 0x00, 0x38, 0x38 },
  1.1619 +{ 0x00, 0x39, 0x39 },
  1.1620 +{ 0x00, 0x3a, 0x3a },
  1.1621 +{ 0x00, 0x3b, 0x3b },
  1.1622 +{ 0x00, 0x3c, 0x3c },
  1.1623 +{ 0x00, 0x3d, 0x3d },
  1.1624 +{ 0x00, 0x3e, 0x3e },
  1.1625 +{ 0x00, 0x3f, 0x3f },
  1.1626 +{ 0x00, 0x40, 0x40 },
  1.1627 +{ 0x01, 0x61, 0x41 },
  1.1628 +{ 0x01, 0x62, 0x42 },
  1.1629 +{ 0x01, 0x63, 0x43 },
  1.1630 +{ 0x01, 0x64, 0x44 },
  1.1631 +{ 0x01, 0x65, 0x45 },
  1.1632 +{ 0x01, 0x66, 0x46 },
  1.1633 +{ 0x01, 0x67, 0x47 },
  1.1634 +{ 0x01, 0x68, 0x48 },
  1.1635 +{ 0x01, 0x69, 0x49 },
  1.1636 +{ 0x01, 0x6a, 0x4a },
  1.1637 +{ 0x01, 0x6b, 0x4b },
  1.1638 +{ 0x01, 0x6c, 0x4c },
  1.1639 +{ 0x01, 0x6d, 0x4d },
  1.1640 +{ 0x01, 0x6e, 0x4e },
  1.1641 +{ 0x01, 0x6f, 0x4f },
  1.1642 +{ 0x01, 0x70, 0x50 },
  1.1643 +{ 0x01, 0x71, 0x51 },
  1.1644 +{ 0x01, 0x72, 0x52 },
  1.1645 +{ 0x01, 0x73, 0x53 },
  1.1646 +{ 0x01, 0x74, 0x54 },
  1.1647 +{ 0x01, 0x75, 0x55 },
  1.1648 +{ 0x01, 0x76, 0x56 },
  1.1649 +{ 0x01, 0x77, 0x57 },
  1.1650 +{ 0x01, 0x78, 0x58 },
  1.1651 +{ 0x01, 0x79, 0x59 },
  1.1652 +{ 0x01, 0x7a, 0x5a },
  1.1653 +{ 0x00, 0x5b, 0x5b },
  1.1654 +{ 0x00, 0x5c, 0x5c },
  1.1655 +{ 0x00, 0x5d, 0x5d },
  1.1656 +{ 0x00, 0x5e, 0x5e },
  1.1657 +{ 0x00, 0x5f, 0x5f },
  1.1658 +{ 0x00, 0x60, 0x60 },
  1.1659 +{ 0x00, 0x61, 0x41 },
  1.1660 +{ 0x00, 0x62, 0x42 },
  1.1661 +{ 0x00, 0x63, 0x43 },
  1.1662 +{ 0x00, 0x64, 0x44 },
  1.1663 +{ 0x00, 0x65, 0x45 },
  1.1664 +{ 0x00, 0x66, 0x46 },
  1.1665 +{ 0x00, 0x67, 0x47 },
  1.1666 +{ 0x00, 0x68, 0x48 },
  1.1667 +{ 0x00, 0x69, 0x49 },
  1.1668 +{ 0x00, 0x6a, 0x4a },
  1.1669 +{ 0x00, 0x6b, 0x4b },
  1.1670 +{ 0x00, 0x6c, 0x4c },
  1.1671 +{ 0x00, 0x6d, 0x4d },
  1.1672 +{ 0x00, 0x6e, 0x4e },
  1.1673 +{ 0x00, 0x6f, 0x4f },
  1.1674 +{ 0x00, 0x70, 0x50 },
  1.1675 +{ 0x00, 0x71, 0x51 },
  1.1676 +{ 0x00, 0x72, 0x52 },
  1.1677 +{ 0x00, 0x73, 0x53 },
  1.1678 +{ 0x00, 0x74, 0x54 },
  1.1679 +{ 0x00, 0x75, 0x55 },
  1.1680 +{ 0x00, 0x76, 0x56 },
  1.1681 +{ 0x00, 0x77, 0x57 },
  1.1682 +{ 0x00, 0x78, 0x58 },
  1.1683 +{ 0x00, 0x79, 0x59 },
  1.1684 +{ 0x00, 0x7a, 0x5a },
  1.1685 +{ 0x00, 0x7b, 0x7b },
  1.1686 +{ 0x00, 0x7c, 0x7c },
  1.1687 +{ 0x00, 0x7d, 0x7d },
  1.1688 +{ 0x00, 0x7e, 0x7e },
  1.1689 +{ 0x00, 0x7f, 0x7f },
  1.1690 +{ 0x00, 0x80, 0x80 },
  1.1691 +{ 0x00, 0x81, 0x81 },
  1.1692 +{ 0x00, 0x82, 0x82 },
  1.1693 +{ 0x00, 0x83, 0x83 },
  1.1694 +{ 0x00, 0x84, 0x84 },
  1.1695 +{ 0x00, 0x85, 0x85 },
  1.1696 +{ 0x00, 0x86, 0x86 },
  1.1697 +{ 0x00, 0x87, 0x87 },
  1.1698 +{ 0x00, 0x88, 0x88 },
  1.1699 +{ 0x00, 0x89, 0x89 },
  1.1700 +{ 0x00, 0x8a, 0x8a },
  1.1701 +{ 0x00, 0x8b, 0x8b },
  1.1702 +{ 0x00, 0x8c, 0x8c },
  1.1703 +{ 0x00, 0x8d, 0x8d },
  1.1704 +{ 0x00, 0x8e, 0x8e },
  1.1705 +{ 0x00, 0x8f, 0x8f },
  1.1706 +{ 0x00, 0x90, 0x90 },
  1.1707 +{ 0x00, 0x91, 0x91 },
  1.1708 +{ 0x00, 0x92, 0x92 },
  1.1709 +{ 0x00, 0x93, 0x93 },
  1.1710 +{ 0x00, 0x94, 0x94 },
  1.1711 +{ 0x00, 0x95, 0x95 },
  1.1712 +{ 0x00, 0x96, 0x96 },
  1.1713 +{ 0x00, 0x97, 0x97 },
  1.1714 +{ 0x00, 0x98, 0x98 },
  1.1715 +{ 0x00, 0x99, 0x99 },
  1.1716 +{ 0x00, 0x9a, 0x9a },
  1.1717 +{ 0x00, 0x9b, 0x9b },
  1.1718 +{ 0x00, 0x9c, 0x9c },
  1.1719 +{ 0x00, 0x9d, 0x9d },
  1.1720 +{ 0x00, 0x9e, 0x9e },
  1.1721 +{ 0x00, 0x9f, 0x9f },
  1.1722 +{ 0x00, 0xa0, 0xa0 },
  1.1723 +{ 0x01, 0xb1, 0xa1 },
  1.1724 +{ 0x00, 0xa2, 0xa2 },
  1.1725 +{ 0x01, 0xb3, 0xa3 },
  1.1726 +{ 0x00, 0xa4, 0xa4 },
  1.1727 +{ 0x01, 0xb5, 0xa5 },
  1.1728 +{ 0x01, 0xb6, 0xa6 },
  1.1729 +{ 0x00, 0xa7, 0xa7 },
  1.1730 +{ 0x00, 0xa8, 0xa8 },
  1.1731 +{ 0x01, 0xb9, 0xa9 },
  1.1732 +{ 0x01, 0xba, 0xaa },
  1.1733 +{ 0x01, 0xbb, 0xab },
  1.1734 +{ 0x01, 0xbc, 0xac },
  1.1735 +{ 0x00, 0xad, 0xad },
  1.1736 +{ 0x01, 0xbe, 0xae },
  1.1737 +{ 0x00, 0xaf, 0xaf },
  1.1738 +{ 0x00, 0xb0, 0xb0 },
  1.1739 +{ 0x00, 0xb1, 0xa1 },
  1.1740 +{ 0x00, 0xb2, 0xb2 },
  1.1741 +{ 0x00, 0xb3, 0xa3 },
  1.1742 +{ 0x00, 0xb4, 0xb4 },
  1.1743 +{ 0x00, 0xb5, 0xa5 },
  1.1744 +{ 0x00, 0xb6, 0xa6 },
  1.1745 +{ 0x00, 0xb7, 0xb7 },
  1.1746 +{ 0x00, 0xb8, 0xb8 },
  1.1747 +{ 0x00, 0xb9, 0xa9 },
  1.1748 +{ 0x00, 0xba, 0xaa },
  1.1749 +{ 0x00, 0xbb, 0xab },
  1.1750 +{ 0x00, 0xbc, 0xac },
  1.1751 +{ 0x00, 0xbd, 0xbd },
  1.1752 +{ 0x00, 0xbe, 0xae },
  1.1753 +{ 0x00, 0xbf, 0xbf },
  1.1754 +{ 0x01, 0xe0, 0xc0 },
  1.1755 +{ 0x01, 0xe1, 0xc1 },
  1.1756 +{ 0x01, 0xe2, 0xc2 },
  1.1757 +{ 0x01, 0xe3, 0xc3 },
  1.1758 +{ 0x01, 0xe4, 0xc4 },
  1.1759 +{ 0x01, 0xe5, 0xc5 },
  1.1760 +{ 0x01, 0xe6, 0xc6 },
  1.1761 +{ 0x01, 0xe7, 0xc7 },
  1.1762 +{ 0x01, 0xe8, 0xc8 },
  1.1763 +{ 0x01, 0xe9, 0xc9 },
  1.1764 +{ 0x01, 0xea, 0xca },
  1.1765 +{ 0x01, 0xeb, 0xcb },
  1.1766 +{ 0x01, 0xec, 0xcc },
  1.1767 +{ 0x01, 0xed, 0xcd },
  1.1768 +{ 0x01, 0xee, 0xce },
  1.1769 +{ 0x01, 0xef, 0xcf },
  1.1770 +{ 0x01, 0xf0, 0xd0 },
  1.1771 +{ 0x01, 0xf1, 0xd1 },
  1.1772 +{ 0x01, 0xf2, 0xd2 },
  1.1773 +{ 0x01, 0xf3, 0xd3 },
  1.1774 +{ 0x01, 0xf4, 0xd4 },
  1.1775 +{ 0x01, 0xf5, 0xd5 },
  1.1776 +{ 0x01, 0xf6, 0xd6 },
  1.1777 +{ 0x00, 0xd7, 0xd7 },
  1.1778 +{ 0x01, 0xf8, 0xd8 },
  1.1779 +{ 0x01, 0xf9, 0xd9 },
  1.1780 +{ 0x01, 0xfa, 0xda },
  1.1781 +{ 0x01, 0xfb, 0xdb },
  1.1782 +{ 0x01, 0xfc, 0xdc },
  1.1783 +{ 0x01, 0xfd, 0xdd },
  1.1784 +{ 0x01, 0xfe, 0xde },
  1.1785 +{ 0x00, 0xdf, 0xdf },
  1.1786 +{ 0x00, 0xe0, 0xc0 },
  1.1787 +{ 0x00, 0xe1, 0xc1 },
  1.1788 +{ 0x00, 0xe2, 0xc2 },
  1.1789 +{ 0x00, 0xe3, 0xc3 },
  1.1790 +{ 0x00, 0xe4, 0xc4 },
  1.1791 +{ 0x00, 0xe5, 0xc5 },
  1.1792 +{ 0x00, 0xe6, 0xc6 },
  1.1793 +{ 0x00, 0xe7, 0xc7 },
  1.1794 +{ 0x00, 0xe8, 0xc8 },
  1.1795 +{ 0x00, 0xe9, 0xc9 },
  1.1796 +{ 0x00, 0xea, 0xca },
  1.1797 +{ 0x00, 0xeb, 0xcb },
  1.1798 +{ 0x00, 0xec, 0xcc },
  1.1799 +{ 0x00, 0xed, 0xcd },
  1.1800 +{ 0x00, 0xee, 0xce },
  1.1801 +{ 0x00, 0xef, 0xcf },
  1.1802 +{ 0x00, 0xf0, 0xd0 },
  1.1803 +{ 0x00, 0xf1, 0xd1 },
  1.1804 +{ 0x00, 0xf2, 0xd2 },
  1.1805 +{ 0x00, 0xf3, 0xd3 },
  1.1806 +{ 0x00, 0xf4, 0xd4 },
  1.1807 +{ 0x00, 0xf5, 0xd5 },
  1.1808 +{ 0x00, 0xf6, 0xd6 },
  1.1809 +{ 0x00, 0xf7, 0xf7 },
  1.1810 +{ 0x00, 0xf8, 0xd8 },
  1.1811 +{ 0x00, 0xf9, 0xd9 },
  1.1812 +{ 0x00, 0xfa, 0xda },
  1.1813 +{ 0x00, 0xfb, 0xdb },
  1.1814 +{ 0x00, 0xfc, 0xdc },
  1.1815 +{ 0x00, 0xfd, 0xdd },
  1.1816 +{ 0x00, 0xfe, 0xde },
  1.1817 +{ 0x00, 0xff, 0xff }
  1.1818 +};
  1.1819 +
  1.1820 +static struct cs_info iso5_tbl[] = {
  1.1821 +{ 0x00, 0x00, 0x00 },
  1.1822 +{ 0x00, 0x01, 0x01 },
  1.1823 +{ 0x00, 0x02, 0x02 },
  1.1824 +{ 0x00, 0x03, 0x03 },
  1.1825 +{ 0x00, 0x04, 0x04 },
  1.1826 +{ 0x00, 0x05, 0x05 },
  1.1827 +{ 0x00, 0x06, 0x06 },
  1.1828 +{ 0x00, 0x07, 0x07 },
  1.1829 +{ 0x00, 0x08, 0x08 },
  1.1830 +{ 0x00, 0x09, 0x09 },
  1.1831 +{ 0x00, 0x0a, 0x0a },
  1.1832 +{ 0x00, 0x0b, 0x0b },
  1.1833 +{ 0x00, 0x0c, 0x0c },
  1.1834 +{ 0x00, 0x0d, 0x0d },
  1.1835 +{ 0x00, 0x0e, 0x0e },
  1.1836 +{ 0x00, 0x0f, 0x0f },
  1.1837 +{ 0x00, 0x10, 0x10 },
  1.1838 +{ 0x00, 0x11, 0x11 },
  1.1839 +{ 0x00, 0x12, 0x12 },
  1.1840 +{ 0x00, 0x13, 0x13 },
  1.1841 +{ 0x00, 0x14, 0x14 },
  1.1842 +{ 0x00, 0x15, 0x15 },
  1.1843 +{ 0x00, 0x16, 0x16 },
  1.1844 +{ 0x00, 0x17, 0x17 },
  1.1845 +{ 0x00, 0x18, 0x18 },
  1.1846 +{ 0x00, 0x19, 0x19 },
  1.1847 +{ 0x00, 0x1a, 0x1a },
  1.1848 +{ 0x00, 0x1b, 0x1b },
  1.1849 +{ 0x00, 0x1c, 0x1c },
  1.1850 +{ 0x00, 0x1d, 0x1d },
  1.1851 +{ 0x00, 0x1e, 0x1e },
  1.1852 +{ 0x00, 0x1f, 0x1f },
  1.1853 +{ 0x00, 0x20, 0x20 },
  1.1854 +{ 0x00, 0x21, 0x21 },
  1.1855 +{ 0x00, 0x22, 0x22 },
  1.1856 +{ 0x00, 0x23, 0x23 },
  1.1857 +{ 0x00, 0x24, 0x24 },
  1.1858 +{ 0x00, 0x25, 0x25 },
  1.1859 +{ 0x00, 0x26, 0x26 },
  1.1860 +{ 0x00, 0x27, 0x27 },
  1.1861 +{ 0x00, 0x28, 0x28 },
  1.1862 +{ 0x00, 0x29, 0x29 },
  1.1863 +{ 0x00, 0x2a, 0x2a },
  1.1864 +{ 0x00, 0x2b, 0x2b },
  1.1865 +{ 0x00, 0x2c, 0x2c },
  1.1866 +{ 0x00, 0x2d, 0x2d },
  1.1867 +{ 0x00, 0x2e, 0x2e },
  1.1868 +{ 0x00, 0x2f, 0x2f },
  1.1869 +{ 0x00, 0x30, 0x30 },
  1.1870 +{ 0x00, 0x31, 0x31 },
  1.1871 +{ 0x00, 0x32, 0x32 },
  1.1872 +{ 0x00, 0x33, 0x33 },
  1.1873 +{ 0x00, 0x34, 0x34 },
  1.1874 +{ 0x00, 0x35, 0x35 },
  1.1875 +{ 0x00, 0x36, 0x36 },
  1.1876 +{ 0x00, 0x37, 0x37 },
  1.1877 +{ 0x00, 0x38, 0x38 },
  1.1878 +{ 0x00, 0x39, 0x39 },
  1.1879 +{ 0x00, 0x3a, 0x3a },
  1.1880 +{ 0x00, 0x3b, 0x3b },
  1.1881 +{ 0x00, 0x3c, 0x3c },
  1.1882 +{ 0x00, 0x3d, 0x3d },
  1.1883 +{ 0x00, 0x3e, 0x3e },
  1.1884 +{ 0x00, 0x3f, 0x3f },
  1.1885 +{ 0x00, 0x40, 0x40 },
  1.1886 +{ 0x01, 0x61, 0x41 },
  1.1887 +{ 0x01, 0x62, 0x42 },
  1.1888 +{ 0x01, 0x63, 0x43 },
  1.1889 +{ 0x01, 0x64, 0x44 },
  1.1890 +{ 0x01, 0x65, 0x45 },
  1.1891 +{ 0x01, 0x66, 0x46 },
  1.1892 +{ 0x01, 0x67, 0x47 },
  1.1893 +{ 0x01, 0x68, 0x48 },
  1.1894 +{ 0x01, 0x69, 0x49 },
  1.1895 +{ 0x01, 0x6a, 0x4a },
  1.1896 +{ 0x01, 0x6b, 0x4b },
  1.1897 +{ 0x01, 0x6c, 0x4c },
  1.1898 +{ 0x01, 0x6d, 0x4d },
  1.1899 +{ 0x01, 0x6e, 0x4e },
  1.1900 +{ 0x01, 0x6f, 0x4f },
  1.1901 +{ 0x01, 0x70, 0x50 },
  1.1902 +{ 0x01, 0x71, 0x51 },
  1.1903 +{ 0x01, 0x72, 0x52 },
  1.1904 +{ 0x01, 0x73, 0x53 },
  1.1905 +{ 0x01, 0x74, 0x54 },
  1.1906 +{ 0x01, 0x75, 0x55 },
  1.1907 +{ 0x01, 0x76, 0x56 },
  1.1908 +{ 0x01, 0x77, 0x57 },
  1.1909 +{ 0x01, 0x78, 0x58 },
  1.1910 +{ 0x01, 0x79, 0x59 },
  1.1911 +{ 0x01, 0x7a, 0x5a },
  1.1912 +{ 0x00, 0x5b, 0x5b },
  1.1913 +{ 0x00, 0x5c, 0x5c },
  1.1914 +{ 0x00, 0x5d, 0x5d },
  1.1915 +{ 0x00, 0x5e, 0x5e },
  1.1916 +{ 0x00, 0x5f, 0x5f },
  1.1917 +{ 0x00, 0x60, 0x60 },
  1.1918 +{ 0x00, 0x61, 0x41 },
  1.1919 +{ 0x00, 0x62, 0x42 },
  1.1920 +{ 0x00, 0x63, 0x43 },
  1.1921 +{ 0x00, 0x64, 0x44 },
  1.1922 +{ 0x00, 0x65, 0x45 },
  1.1923 +{ 0x00, 0x66, 0x46 },
  1.1924 +{ 0x00, 0x67, 0x47 },
  1.1925 +{ 0x00, 0x68, 0x48 },
  1.1926 +{ 0x00, 0x69, 0x49 },
  1.1927 +{ 0x00, 0x6a, 0x4a },
  1.1928 +{ 0x00, 0x6b, 0x4b },
  1.1929 +{ 0x00, 0x6c, 0x4c },
  1.1930 +{ 0x00, 0x6d, 0x4d },
  1.1931 +{ 0x00, 0x6e, 0x4e },
  1.1932 +{ 0x00, 0x6f, 0x4f },
  1.1933 +{ 0x00, 0x70, 0x50 },
  1.1934 +{ 0x00, 0x71, 0x51 },
  1.1935 +{ 0x00, 0x72, 0x52 },
  1.1936 +{ 0x00, 0x73, 0x53 },
  1.1937 +{ 0x00, 0x74, 0x54 },
  1.1938 +{ 0x00, 0x75, 0x55 },
  1.1939 +{ 0x00, 0x76, 0x56 },
  1.1940 +{ 0x00, 0x77, 0x57 },
  1.1941 +{ 0x00, 0x78, 0x58 },
  1.1942 +{ 0x00, 0x79, 0x59 },
  1.1943 +{ 0x00, 0x7a, 0x5a },
  1.1944 +{ 0x00, 0x7b, 0x7b },
  1.1945 +{ 0x00, 0x7c, 0x7c },
  1.1946 +{ 0x00, 0x7d, 0x7d },
  1.1947 +{ 0x00, 0x7e, 0x7e },
  1.1948 +{ 0x00, 0x7f, 0x7f },
  1.1949 +{ 0x00, 0x80, 0x80 },
  1.1950 +{ 0x00, 0x81, 0x81 },
  1.1951 +{ 0x00, 0x82, 0x82 },
  1.1952 +{ 0x00, 0x83, 0x83 },
  1.1953 +{ 0x00, 0x84, 0x84 },
  1.1954 +{ 0x00, 0x85, 0x85 },
  1.1955 +{ 0x00, 0x86, 0x86 },
  1.1956 +{ 0x00, 0x87, 0x87 },
  1.1957 +{ 0x00, 0x88, 0x88 },
  1.1958 +{ 0x00, 0x89, 0x89 },
  1.1959 +{ 0x00, 0x8a, 0x8a },
  1.1960 +{ 0x00, 0x8b, 0x8b },
  1.1961 +{ 0x00, 0x8c, 0x8c },
  1.1962 +{ 0x00, 0x8d, 0x8d },
  1.1963 +{ 0x00, 0x8e, 0x8e },
  1.1964 +{ 0x00, 0x8f, 0x8f },
  1.1965 +{ 0x00, 0x90, 0x90 },
  1.1966 +{ 0x00, 0x91, 0x91 },
  1.1967 +{ 0x00, 0x92, 0x92 },
  1.1968 +{ 0x00, 0x93, 0x93 },
  1.1969 +{ 0x00, 0x94, 0x94 },
  1.1970 +{ 0x00, 0x95, 0x95 },
  1.1971 +{ 0x00, 0x96, 0x96 },
  1.1972 +{ 0x00, 0x97, 0x97 },
  1.1973 +{ 0x00, 0x98, 0x98 },
  1.1974 +{ 0x00, 0x99, 0x99 },
  1.1975 +{ 0x00, 0x9a, 0x9a },
  1.1976 +{ 0x00, 0x9b, 0x9b },
  1.1977 +{ 0x00, 0x9c, 0x9c },
  1.1978 +{ 0x00, 0x9d, 0x9d },
  1.1979 +{ 0x00, 0x9e, 0x9e },
  1.1980 +{ 0x00, 0x9f, 0x9f },
  1.1981 +{ 0x00, 0xa0, 0xa0 },
  1.1982 +{ 0x01, 0xf1, 0xa1 },
  1.1983 +{ 0x01, 0xf2, 0xa2 },
  1.1984 +{ 0x01, 0xf3, 0xa3 },
  1.1985 +{ 0x01, 0xf4, 0xa4 },
  1.1986 +{ 0x01, 0xf5, 0xa5 },
  1.1987 +{ 0x01, 0xf6, 0xa6 },
  1.1988 +{ 0x01, 0xf7, 0xa7 },
  1.1989 +{ 0x01, 0xf8, 0xa8 },
  1.1990 +{ 0x01, 0xf9, 0xa9 },
  1.1991 +{ 0x01, 0xfa, 0xaa },
  1.1992 +{ 0x01, 0xfb, 0xab },
  1.1993 +{ 0x01, 0xfc, 0xac },
  1.1994 +{ 0x00, 0xad, 0xad },
  1.1995 +{ 0x01, 0xfe, 0xae },
  1.1996 +{ 0x01, 0xff, 0xaf },
  1.1997 +{ 0x01, 0xd0, 0xb0 },
  1.1998 +{ 0x01, 0xd1, 0xb1 },
  1.1999 +{ 0x01, 0xd2, 0xb2 },
  1.2000 +{ 0x01, 0xd3, 0xb3 },
  1.2001 +{ 0x01, 0xd4, 0xb4 },
  1.2002 +{ 0x01, 0xd5, 0xb5 },
  1.2003 +{ 0x01, 0xd6, 0xb6 },
  1.2004 +{ 0x01, 0xd7, 0xb7 },
  1.2005 +{ 0x01, 0xd8, 0xb8 },
  1.2006 +{ 0x01, 0xd9, 0xb9 },
  1.2007 +{ 0x01, 0xda, 0xba },
  1.2008 +{ 0x01, 0xdb, 0xbb },
  1.2009 +{ 0x01, 0xdc, 0xbc },
  1.2010 +{ 0x01, 0xdd, 0xbd },
  1.2011 +{ 0x01, 0xde, 0xbe },
  1.2012 +{ 0x01, 0xdf, 0xbf },
  1.2013 +{ 0x01, 0xe0, 0xc0 },
  1.2014 +{ 0x01, 0xe1, 0xc1 },
  1.2015 +{ 0x01, 0xe2, 0xc2 },
  1.2016 +{ 0x01, 0xe3, 0xc3 },
  1.2017 +{ 0x01, 0xe4, 0xc4 },
  1.2018 +{ 0x01, 0xe5, 0xc5 },
  1.2019 +{ 0x01, 0xe6, 0xc6 },
  1.2020 +{ 0x01, 0xe7, 0xc7 },
  1.2021 +{ 0x01, 0xe8, 0xc8 },
  1.2022 +{ 0x01, 0xe9, 0xc9 },
  1.2023 +{ 0x01, 0xea, 0xca },
  1.2024 +{ 0x01, 0xeb, 0xcb },
  1.2025 +{ 0x01, 0xec, 0xcc },
  1.2026 +{ 0x01, 0xed, 0xcd },
  1.2027 +{ 0x01, 0xee, 0xce },
  1.2028 +{ 0x01, 0xef, 0xcf },
  1.2029 +{ 0x00, 0xd0, 0xb0 },
  1.2030 +{ 0x00, 0xd1, 0xb1 },
  1.2031 +{ 0x00, 0xd2, 0xb2 },
  1.2032 +{ 0x00, 0xd3, 0xb3 },
  1.2033 +{ 0x00, 0xd4, 0xb4 },
  1.2034 +{ 0x00, 0xd5, 0xb5 },
  1.2035 +{ 0x00, 0xd6, 0xb6 },
  1.2036 +{ 0x00, 0xd7, 0xb7 },
  1.2037 +{ 0x00, 0xd8, 0xb8 },
  1.2038 +{ 0x00, 0xd9, 0xb9 },
  1.2039 +{ 0x00, 0xda, 0xba },
  1.2040 +{ 0x00, 0xdb, 0xbb },
  1.2041 +{ 0x00, 0xdc, 0xbc },
  1.2042 +{ 0x00, 0xdd, 0xbd },
  1.2043 +{ 0x00, 0xde, 0xbe },
  1.2044 +{ 0x00, 0xdf, 0xbf },
  1.2045 +{ 0x00, 0xe0, 0xc0 },
  1.2046 +{ 0x00, 0xe1, 0xc1 },
  1.2047 +{ 0x00, 0xe2, 0xc2 },
  1.2048 +{ 0x00, 0xe3, 0xc3 },
  1.2049 +{ 0x00, 0xe4, 0xc4 },
  1.2050 +{ 0x00, 0xe5, 0xc5 },
  1.2051 +{ 0x00, 0xe6, 0xc6 },
  1.2052 +{ 0x00, 0xe7, 0xc7 },
  1.2053 +{ 0x00, 0xe8, 0xc8 },
  1.2054 +{ 0x00, 0xe9, 0xc9 },
  1.2055 +{ 0x00, 0xea, 0xca },
  1.2056 +{ 0x00, 0xeb, 0xcb },
  1.2057 +{ 0x00, 0xec, 0xcc },
  1.2058 +{ 0x00, 0xed, 0xcd },
  1.2059 +{ 0x00, 0xee, 0xce },
  1.2060 +{ 0x00, 0xef, 0xcf },
  1.2061 +{ 0x00, 0xf0, 0xf0 },
  1.2062 +{ 0x00, 0xf1, 0xa1 },
  1.2063 +{ 0x00, 0xf2, 0xa2 },
  1.2064 +{ 0x00, 0xf3, 0xa3 },
  1.2065 +{ 0x00, 0xf4, 0xa4 },
  1.2066 +{ 0x00, 0xf5, 0xa5 },
  1.2067 +{ 0x00, 0xf6, 0xa6 },
  1.2068 +{ 0x00, 0xf7, 0xa7 },
  1.2069 +{ 0x00, 0xf8, 0xa8 },
  1.2070 +{ 0x00, 0xf9, 0xa9 },
  1.2071 +{ 0x00, 0xfa, 0xaa },
  1.2072 +{ 0x00, 0xfb, 0xab },
  1.2073 +{ 0x00, 0xfc, 0xac },
  1.2074 +{ 0x00, 0xfd, 0xfd },
  1.2075 +{ 0x00, 0xfe, 0xae },
  1.2076 +{ 0x00, 0xff, 0xaf }
  1.2077 +};
  1.2078 +
  1.2079 +static struct cs_info iso6_tbl[] = {
  1.2080 +{ 0x00, 0x00, 0x00 },
  1.2081 +{ 0x00, 0x01, 0x01 },
  1.2082 +{ 0x00, 0x02, 0x02 },
  1.2083 +{ 0x00, 0x03, 0x03 },
  1.2084 +{ 0x00, 0x04, 0x04 },
  1.2085 +{ 0x00, 0x05, 0x05 },
  1.2086 +{ 0x00, 0x06, 0x06 },
  1.2087 +{ 0x00, 0x07, 0x07 },
  1.2088 +{ 0x00, 0x08, 0x08 },
  1.2089 +{ 0x00, 0x09, 0x09 },
  1.2090 +{ 0x00, 0x0a, 0x0a },
  1.2091 +{ 0x00, 0x0b, 0x0b },
  1.2092 +{ 0x00, 0x0c, 0x0c },
  1.2093 +{ 0x00, 0x0d, 0x0d },
  1.2094 +{ 0x00, 0x0e, 0x0e },
  1.2095 +{ 0x00, 0x0f, 0x0f },
  1.2096 +{ 0x00, 0x10, 0x10 },
  1.2097 +{ 0x00, 0x11, 0x11 },
  1.2098 +{ 0x00, 0x12, 0x12 },
  1.2099 +{ 0x00, 0x13, 0x13 },
  1.2100 +{ 0x00, 0x14, 0x14 },
  1.2101 +{ 0x00, 0x15, 0x15 },
  1.2102 +{ 0x00, 0x16, 0x16 },
  1.2103 +{ 0x00, 0x17, 0x17 },
  1.2104 +{ 0x00, 0x18, 0x18 },
  1.2105 +{ 0x00, 0x19, 0x19 },
  1.2106 +{ 0x00, 0x1a, 0x1a },
  1.2107 +{ 0x00, 0x1b, 0x1b },
  1.2108 +{ 0x00, 0x1c, 0x1c },
  1.2109 +{ 0x00, 0x1d, 0x1d },
  1.2110 +{ 0x00, 0x1e, 0x1e },
  1.2111 +{ 0x00, 0x1f, 0x1f },
  1.2112 +{ 0x00, 0x20, 0x20 },
  1.2113 +{ 0x00, 0x21, 0x21 },
  1.2114 +{ 0x00, 0x22, 0x22 },
  1.2115 +{ 0x00, 0x23, 0x23 },
  1.2116 +{ 0x00, 0x24, 0x24 },
  1.2117 +{ 0x00, 0x25, 0x25 },
  1.2118 +{ 0x00, 0x26, 0x26 },
  1.2119 +{ 0x00, 0x27, 0x27 },
  1.2120 +{ 0x00, 0x28, 0x28 },
  1.2121 +{ 0x00, 0x29, 0x29 },
  1.2122 +{ 0x00, 0x2a, 0x2a },
  1.2123 +{ 0x00, 0x2b, 0x2b },
  1.2124 +{ 0x00, 0x2c, 0x2c },
  1.2125 +{ 0x00, 0x2d, 0x2d },
  1.2126 +{ 0x00, 0x2e, 0x2e },
  1.2127 +{ 0x00, 0x2f, 0x2f },
  1.2128 +{ 0x00, 0x30, 0x30 },
  1.2129 +{ 0x00, 0x31, 0x31 },
  1.2130 +{ 0x00, 0x32, 0x32 },
  1.2131 +{ 0x00, 0x33, 0x33 },
  1.2132 +{ 0x00, 0x34, 0x34 },
  1.2133 +{ 0x00, 0x35, 0x35 },
  1.2134 +{ 0x00, 0x36, 0x36 },
  1.2135 +{ 0x00, 0x37, 0x37 },
  1.2136 +{ 0x00, 0x38, 0x38 },
  1.2137 +{ 0x00, 0x39, 0x39 },
  1.2138 +{ 0x00, 0x3a, 0x3a },
  1.2139 +{ 0x00, 0x3b, 0x3b },
  1.2140 +{ 0x00, 0x3c, 0x3c },
  1.2141 +{ 0x00, 0x3d, 0x3d },
  1.2142 +{ 0x00, 0x3e, 0x3e },
  1.2143 +{ 0x00, 0x3f, 0x3f },
  1.2144 +{ 0x00, 0x40, 0x40 },
  1.2145 +{ 0x01, 0x61, 0x41 },
  1.2146 +{ 0x01, 0x62, 0x42 },
  1.2147 +{ 0x01, 0x63, 0x43 },
  1.2148 +{ 0x01, 0x64, 0x44 },
  1.2149 +{ 0x01, 0x65, 0x45 },
  1.2150 +{ 0x01, 0x66, 0x46 },
  1.2151 +{ 0x01, 0x67, 0x47 },
  1.2152 +{ 0x01, 0x68, 0x48 },
  1.2153 +{ 0x01, 0x69, 0x49 },
  1.2154 +{ 0x01, 0x6a, 0x4a },
  1.2155 +{ 0x01, 0x6b, 0x4b },
  1.2156 +{ 0x01, 0x6c, 0x4c },
  1.2157 +{ 0x01, 0x6d, 0x4d },
  1.2158 +{ 0x01, 0x6e, 0x4e },
  1.2159 +{ 0x01, 0x6f, 0x4f },
  1.2160 +{ 0x01, 0x70, 0x50 },
  1.2161 +{ 0x01, 0x71, 0x51 },
  1.2162 +{ 0x01, 0x72, 0x52 },
  1.2163 +{ 0x01, 0x73, 0x53 },
  1.2164 +{ 0x01, 0x74, 0x54 },
  1.2165 +{ 0x01, 0x75, 0x55 },
  1.2166 +{ 0x01, 0x76, 0x56 },
  1.2167 +{ 0x01, 0x77, 0x57 },
  1.2168 +{ 0x01, 0x78, 0x58 },
  1.2169 +{ 0x01, 0x79, 0x59 },
  1.2170 +{ 0x01, 0x7a, 0x5a },
  1.2171 +{ 0x00, 0x5b, 0x5b },
  1.2172 +{ 0x00, 0x5c, 0x5c },
  1.2173 +{ 0x00, 0x5d, 0x5d },
  1.2174 +{ 0x00, 0x5e, 0x5e },
  1.2175 +{ 0x00, 0x5f, 0x5f },
  1.2176 +{ 0x00, 0x60, 0x60 },
  1.2177 +{ 0x00, 0x61, 0x41 },
  1.2178 +{ 0x00, 0x62, 0x42 },
  1.2179 +{ 0x00, 0x63, 0x43 },
  1.2180 +{ 0x00, 0x64, 0x44 },
  1.2181 +{ 0x00, 0x65, 0x45 },
  1.2182 +{ 0x00, 0x66, 0x46 },
  1.2183 +{ 0x00, 0x67, 0x47 },
  1.2184 +{ 0x00, 0x68, 0x48 },
  1.2185 +{ 0x00, 0x69, 0x49 },
  1.2186 +{ 0x00, 0x6a, 0x4a },
  1.2187 +{ 0x00, 0x6b, 0x4b },
  1.2188 +{ 0x00, 0x6c, 0x4c },
  1.2189 +{ 0x00, 0x6d, 0x4d },
  1.2190 +{ 0x00, 0x6e, 0x4e },
  1.2191 +{ 0x00, 0x6f, 0x4f },
  1.2192 +{ 0x00, 0x70, 0x50 },
  1.2193 +{ 0x00, 0x71, 0x51 },
  1.2194 +{ 0x00, 0x72, 0x52 },
  1.2195 +{ 0x00, 0x73, 0x53 },
  1.2196 +{ 0x00, 0x74, 0x54 },
  1.2197 +{ 0x00, 0x75, 0x55 },
  1.2198 +{ 0x00, 0x76, 0x56 },
  1.2199 +{ 0x00, 0x77, 0x57 },
  1.2200 +{ 0x00, 0x78, 0x58 },
  1.2201 +{ 0x00, 0x79, 0x59 },
  1.2202 +{ 0x00, 0x7a, 0x5a },
  1.2203 +{ 0x00, 0x7b, 0x7b },
  1.2204 +{ 0x00, 0x7c, 0x7c },
  1.2205 +{ 0x00, 0x7d, 0x7d },
  1.2206 +{ 0x00, 0x7e, 0x7e },
  1.2207 +{ 0x00, 0x7f, 0x7f },
  1.2208 +{ 0x00, 0x80, 0x80 },
  1.2209 +{ 0x00, 0x81, 0x81 },
  1.2210 +{ 0x00, 0x82, 0x82 },
  1.2211 +{ 0x00, 0x83, 0x83 },
  1.2212 +{ 0x00, 0x84, 0x84 },
  1.2213 +{ 0x00, 0x85, 0x85 },
  1.2214 +{ 0x00, 0x86, 0x86 },
  1.2215 +{ 0x00, 0x87, 0x87 },
  1.2216 +{ 0x00, 0x88, 0x88 },
  1.2217 +{ 0x00, 0x89, 0x89 },
  1.2218 +{ 0x00, 0x8a, 0x8a },
  1.2219 +{ 0x00, 0x8b, 0x8b },
  1.2220 +{ 0x00, 0x8c, 0x8c },
  1.2221 +{ 0x00, 0x8d, 0x8d },
  1.2222 +{ 0x00, 0x8e, 0x8e },
  1.2223 +{ 0x00, 0x8f, 0x8f },
  1.2224 +{ 0x00, 0x90, 0x90 },
  1.2225 +{ 0x00, 0x91, 0x91 },
  1.2226 +{ 0x00, 0x92, 0x92 },
  1.2227 +{ 0x00, 0x93, 0x93 },
  1.2228 +{ 0x00, 0x94, 0x94 },
  1.2229 +{ 0x00, 0x95, 0x95 },
  1.2230 +{ 0x00, 0x96, 0x96 },
  1.2231 +{ 0x00, 0x97, 0x97 },
  1.2232 +{ 0x00, 0x98, 0x98 },
  1.2233 +{ 0x00, 0x99, 0x99 },
  1.2234 +{ 0x00, 0x9a, 0x9a },
  1.2235 +{ 0x00, 0x9b, 0x9b },
  1.2236 +{ 0x00, 0x9c, 0x9c },
  1.2237 +{ 0x00, 0x9d, 0x9d },
  1.2238 +{ 0x00, 0x9e, 0x9e },
  1.2239 +{ 0x00, 0x9f, 0x9f },
  1.2240 +{ 0x00, 0xa0, 0xa0 },
  1.2241 +{ 0x00, 0xa1, 0xa1 },
  1.2242 +{ 0x00, 0xa2, 0xa2 },
  1.2243 +{ 0x00, 0xa3, 0xa3 },
  1.2244 +{ 0x00, 0xa4, 0xa4 },
  1.2245 +{ 0x00, 0xa5, 0xa5 },
  1.2246 +{ 0x00, 0xa6, 0xa6 },
  1.2247 +{ 0x00, 0xa7, 0xa7 },
  1.2248 +{ 0x00, 0xa8, 0xa8 },
  1.2249 +{ 0x00, 0xa9, 0xa9 },
  1.2250 +{ 0x00, 0xaa, 0xaa },
  1.2251 +{ 0x00, 0xab, 0xab },
  1.2252 +{ 0x00, 0xac, 0xac },
  1.2253 +{ 0x00, 0xad, 0xad },
  1.2254 +{ 0x00, 0xae, 0xae },
  1.2255 +{ 0x00, 0xaf, 0xaf },
  1.2256 +{ 0x00, 0xb0, 0xb0 },
  1.2257 +{ 0x00, 0xb1, 0xb1 },
  1.2258 +{ 0x00, 0xb2, 0xb2 },
  1.2259 +{ 0x00, 0xb3, 0xb3 },
  1.2260 +{ 0x00, 0xb4, 0xb4 },
  1.2261 +{ 0x00, 0xb5, 0xb5 },
  1.2262 +{ 0x00, 0xb6, 0xb6 },
  1.2263 +{ 0x00, 0xb7, 0xb7 },
  1.2264 +{ 0x00, 0xb8, 0xb8 },
  1.2265 +{ 0x00, 0xb9, 0xb9 },
  1.2266 +{ 0x00, 0xba, 0xba },
  1.2267 +{ 0x00, 0xbb, 0xbb },
  1.2268 +{ 0x00, 0xbc, 0xbc },
  1.2269 +{ 0x00, 0xbd, 0xbd },
  1.2270 +{ 0x00, 0xbe, 0xbe },
  1.2271 +{ 0x00, 0xbf, 0xbf },
  1.2272 +{ 0x00, 0xc0, 0xc0 },
  1.2273 +{ 0x00, 0xc1, 0xc1 },
  1.2274 +{ 0x00, 0xc2, 0xc2 },
  1.2275 +{ 0x00, 0xc3, 0xc3 },
  1.2276 +{ 0x00, 0xc4, 0xc4 },
  1.2277 +{ 0x00, 0xc5, 0xc5 },
  1.2278 +{ 0x00, 0xc6, 0xc6 },
  1.2279 +{ 0x00, 0xc7, 0xc7 },
  1.2280 +{ 0x00, 0xc8, 0xc8 },
  1.2281 +{ 0x00, 0xc9, 0xc9 },
  1.2282 +{ 0x00, 0xca, 0xca },
  1.2283 +{ 0x00, 0xcb, 0xcb },
  1.2284 +{ 0x00, 0xcc, 0xcc },
  1.2285 +{ 0x00, 0xcd, 0xcd },
  1.2286 +{ 0x00, 0xce, 0xce },
  1.2287 +{ 0x00, 0xcf, 0xcf },
  1.2288 +{ 0x00, 0xd0, 0xd0 },
  1.2289 +{ 0x00, 0xd1, 0xd1 },
  1.2290 +{ 0x00, 0xd2, 0xd2 },
  1.2291 +{ 0x00, 0xd3, 0xd3 },
  1.2292 +{ 0x00, 0xd4, 0xd4 },
  1.2293 +{ 0x00, 0xd5, 0xd5 },
  1.2294 +{ 0x00, 0xd6, 0xd6 },
  1.2295 +{ 0x00, 0xd7, 0xd7 },
  1.2296 +{ 0x00, 0xd8, 0xd8 },
  1.2297 +{ 0x00, 0xd9, 0xd9 },
  1.2298 +{ 0x00, 0xda, 0xda },
  1.2299 +{ 0x00, 0xdb, 0xdb },
  1.2300 +{ 0x00, 0xdc, 0xdc },
  1.2301 +{ 0x00, 0xdd, 0xdd },
  1.2302 +{ 0x00, 0xde, 0xde },
  1.2303 +{ 0x00, 0xdf, 0xdf },
  1.2304 +{ 0x00, 0xe0, 0xe0 },
  1.2305 +{ 0x00, 0xe1, 0xe1 },
  1.2306 +{ 0x00, 0xe2, 0xe2 },
  1.2307 +{ 0x00, 0xe3, 0xe3 },
  1.2308 +{ 0x00, 0xe4, 0xe4 },
  1.2309 +{ 0x00, 0xe5, 0xe5 },
  1.2310 +{ 0x00, 0xe6, 0xe6 },
  1.2311 +{ 0x00, 0xe7, 0xe7 },
  1.2312 +{ 0x00, 0xe8, 0xe8 },
  1.2313 +{ 0x00, 0xe9, 0xe9 },
  1.2314 +{ 0x00, 0xea, 0xea },
  1.2315 +{ 0x00, 0xeb, 0xeb },
  1.2316 +{ 0x00, 0xec, 0xec },
  1.2317 +{ 0x00, 0xed, 0xed },
  1.2318 +{ 0x00, 0xee, 0xee },
  1.2319 +{ 0x00, 0xef, 0xef },
  1.2320 +{ 0x00, 0xf0, 0xf0 },
  1.2321 +{ 0x00, 0xf1, 0xf1 },
  1.2322 +{ 0x00, 0xf2, 0xf2 },
  1.2323 +{ 0x00, 0xf3, 0xf3 },
  1.2324 +{ 0x00, 0xf4, 0xf4 },
  1.2325 +{ 0x00, 0xf5, 0xf5 },
  1.2326 +{ 0x00, 0xf6, 0xf6 },
  1.2327 +{ 0x00, 0xf7, 0xf7 },
  1.2328 +{ 0x00, 0xf8, 0xf8 },
  1.2329 +{ 0x00, 0xf9, 0xf9 },
  1.2330 +{ 0x00, 0xfa, 0xfa },
  1.2331 +{ 0x00, 0xfb, 0xfb },
  1.2332 +{ 0x00, 0xfc, 0xfc },
  1.2333 +{ 0x00, 0xfd, 0xfd },
  1.2334 +{ 0x00, 0xfe, 0xfe },
  1.2335 +{ 0x00, 0xff, 0xff }
  1.2336 +};
  1.2337 +
  1.2338 +static struct cs_info iso7_tbl[] = {
  1.2339 +{ 0x00, 0x00, 0x00 },
  1.2340 +{ 0x00, 0x01, 0x01 },
  1.2341 +{ 0x00, 0x02, 0x02 },
  1.2342 +{ 0x00, 0x03, 0x03 },
  1.2343 +{ 0x00, 0x04, 0x04 },
  1.2344 +{ 0x00, 0x05, 0x05 },
  1.2345 +{ 0x00, 0x06, 0x06 },
  1.2346 +{ 0x00, 0x07, 0x07 },
  1.2347 +{ 0x00, 0x08, 0x08 },
  1.2348 +{ 0x00, 0x09, 0x09 },
  1.2349 +{ 0x00, 0x0a, 0x0a },
  1.2350 +{ 0x00, 0x0b, 0x0b },
  1.2351 +{ 0x00, 0x0c, 0x0c },
  1.2352 +{ 0x00, 0x0d, 0x0d },
  1.2353 +{ 0x00, 0x0e, 0x0e },
  1.2354 +{ 0x00, 0x0f, 0x0f },
  1.2355 +{ 0x00, 0x10, 0x10 },
  1.2356 +{ 0x00, 0x11, 0x11 },
  1.2357 +{ 0x00, 0x12, 0x12 },
  1.2358 +{ 0x00, 0x13, 0x13 },
  1.2359 +{ 0x00, 0x14, 0x14 },
  1.2360 +{ 0x00, 0x15, 0x15 },
  1.2361 +{ 0x00, 0x16, 0x16 },
  1.2362 +{ 0x00, 0x17, 0x17 },
  1.2363 +{ 0x00, 0x18, 0x18 },
  1.2364 +{ 0x00, 0x19, 0x19 },
  1.2365 +{ 0x00, 0x1a, 0x1a },
  1.2366 +{ 0x00, 0x1b, 0x1b },
  1.2367 +{ 0x00, 0x1c, 0x1c },
  1.2368 +{ 0x00, 0x1d, 0x1d },
  1.2369 +{ 0x00, 0x1e, 0x1e },
  1.2370 +{ 0x00, 0x1f, 0x1f },
  1.2371 +{ 0x00, 0x20, 0x20 },
  1.2372 +{ 0x00, 0x21, 0x21 },
  1.2373 +{ 0x00, 0x22, 0x22 },
  1.2374 +{ 0x00, 0x23, 0x23 },
  1.2375 +{ 0x00, 0x24, 0x24 },
  1.2376 +{ 0x00, 0x25, 0x25 },
  1.2377 +{ 0x00, 0x26, 0x26 },
  1.2378 +{ 0x00, 0x27, 0x27 },
  1.2379 +{ 0x00, 0x28, 0x28 },
  1.2380 +{ 0x00, 0x29, 0x29 },
  1.2381 +{ 0x00, 0x2a, 0x2a },
  1.2382 +{ 0x00, 0x2b, 0x2b },
  1.2383 +{ 0x00, 0x2c, 0x2c },
  1.2384 +{ 0x00, 0x2d, 0x2d },
  1.2385 +{ 0x00, 0x2e, 0x2e },
  1.2386 +{ 0x00, 0x2f, 0x2f },
  1.2387 +{ 0x00, 0x30, 0x30 },
  1.2388 +{ 0x00, 0x31, 0x31 },
  1.2389 +{ 0x00, 0x32, 0x32 },
  1.2390 +{ 0x00, 0x33, 0x33 },
  1.2391 +{ 0x00, 0x34, 0x34 },
  1.2392 +{ 0x00, 0x35, 0x35 },
  1.2393 +{ 0x00, 0x36, 0x36 },
  1.2394 +{ 0x00, 0x37, 0x37 },
  1.2395 +{ 0x00, 0x38, 0x38 },
  1.2396 +{ 0x00, 0x39, 0x39 },
  1.2397 +{ 0x00, 0x3a, 0x3a },
  1.2398 +{ 0x00, 0x3b, 0x3b },
  1.2399 +{ 0x00, 0x3c, 0x3c },
  1.2400 +{ 0x00, 0x3d, 0x3d },
  1.2401 +{ 0x00, 0x3e, 0x3e },
  1.2402 +{ 0x00, 0x3f, 0x3f },
  1.2403 +{ 0x00, 0x40, 0x40 },
  1.2404 +{ 0x01, 0x61, 0x41 },
  1.2405 +{ 0x01, 0x62, 0x42 },
  1.2406 +{ 0x01, 0x63, 0x43 },
  1.2407 +{ 0x01, 0x64, 0x44 },
  1.2408 +{ 0x01, 0x65, 0x45 },
  1.2409 +{ 0x01, 0x66, 0x46 },
  1.2410 +{ 0x01, 0x67, 0x47 },
  1.2411 +{ 0x01, 0x68, 0x48 },
  1.2412 +{ 0x01, 0x69, 0x49 },
  1.2413 +{ 0x01, 0x6a, 0x4a },
  1.2414 +{ 0x01, 0x6b, 0x4b },
  1.2415 +{ 0x01, 0x6c, 0x4c },
  1.2416 +{ 0x01, 0x6d, 0x4d },
  1.2417 +{ 0x01, 0x6e, 0x4e },
  1.2418 +{ 0x01, 0x6f, 0x4f },
  1.2419 +{ 0x01, 0x70, 0x50 },
  1.2420 +{ 0x01, 0x71, 0x51 },
  1.2421 +{ 0x01, 0x72, 0x52 },
  1.2422 +{ 0x01, 0x73, 0x53 },
  1.2423 +{ 0x01, 0x74, 0x54 },
  1.2424 +{ 0x01, 0x75, 0x55 },
  1.2425 +{ 0x01, 0x76, 0x56 },
  1.2426 +{ 0x01, 0x77, 0x57 },
  1.2427 +{ 0x01, 0x78, 0x58 },
  1.2428 +{ 0x01, 0x79, 0x59 },
  1.2429 +{ 0x01, 0x7a, 0x5a },
  1.2430 +{ 0x00, 0x5b, 0x5b },
  1.2431 +{ 0x00, 0x5c, 0x5c },
  1.2432 +{ 0x00, 0x5d, 0x5d },
  1.2433 +{ 0x00, 0x5e, 0x5e },
  1.2434 +{ 0x00, 0x5f, 0x5f },
  1.2435 +{ 0x00, 0x60, 0x60 },
  1.2436 +{ 0x00, 0x61, 0x41 },
  1.2437 +{ 0x00, 0x62, 0x42 },
  1.2438 +{ 0x00, 0x63, 0x43 },
  1.2439 +{ 0x00, 0x64, 0x44 },
  1.2440 +{ 0x00, 0x65, 0x45 },
  1.2441 +{ 0x00, 0x66, 0x46 },
  1.2442 +{ 0x00, 0x67, 0x47 },
  1.2443 +{ 0x00, 0x68, 0x48 },
  1.2444 +{ 0x00, 0x69, 0x49 },
  1.2445 +{ 0x00, 0x6a, 0x4a },
  1.2446 +{ 0x00, 0x6b, 0x4b },
  1.2447 +{ 0x00, 0x6c, 0x4c },
  1.2448 +{ 0x00, 0x6d, 0x4d },
  1.2449 +{ 0x00, 0x6e, 0x4e },
  1.2450 +{ 0x00, 0x6f, 0x4f },
  1.2451 +{ 0x00, 0x70, 0x50 },
  1.2452 +{ 0x00, 0x71, 0x51 },
  1.2453 +{ 0x00, 0x72, 0x52 },
  1.2454 +{ 0x00, 0x73, 0x53 },
  1.2455 +{ 0x00, 0x74, 0x54 },
  1.2456 +{ 0x00, 0x75, 0x55 },
  1.2457 +{ 0x00, 0x76, 0x56 },
  1.2458 +{ 0x00, 0x77, 0x57 },
  1.2459 +{ 0x00, 0x78, 0x58 },
  1.2460 +{ 0x00, 0x79, 0x59 },
  1.2461 +{ 0x00, 0x7a, 0x5a },
  1.2462 +{ 0x00, 0x7b, 0x7b },
  1.2463 +{ 0x00, 0x7c, 0x7c },
  1.2464 +{ 0x00, 0x7d, 0x7d },
  1.2465 +{ 0x00, 0x7e, 0x7e },
  1.2466 +{ 0x00, 0x7f, 0x7f },
  1.2467 +{ 0x00, 0x80, 0x80 },
  1.2468 +{ 0x00, 0x81, 0x81 },
  1.2469 +{ 0x00, 0x82, 0x82 },
  1.2470 +{ 0x00, 0x83, 0x83 },
  1.2471 +{ 0x00, 0x84, 0x84 },
  1.2472 +{ 0x00, 0x85, 0x85 },
  1.2473 +{ 0x00, 0x86, 0x86 },
  1.2474 +{ 0x00, 0x87, 0x87 },
  1.2475 +{ 0x00, 0x88, 0x88 },
  1.2476 +{ 0x00, 0x89, 0x89 },
  1.2477 +{ 0x00, 0x8a, 0x8a },
  1.2478 +{ 0x00, 0x8b, 0x8b },
  1.2479 +{ 0x00, 0x8c, 0x8c },
  1.2480 +{ 0x00, 0x8d, 0x8d },
  1.2481 +{ 0x00, 0x8e, 0x8e },
  1.2482 +{ 0x00, 0x8f, 0x8f },
  1.2483 +{ 0x00, 0x90, 0x90 },
  1.2484 +{ 0x00, 0x91, 0x91 },
  1.2485 +{ 0x00, 0x92, 0x92 },
  1.2486 +{ 0x00, 0x93, 0x93 },
  1.2487 +{ 0x00, 0x94, 0x94 },
  1.2488 +{ 0x00, 0x95, 0x95 },
  1.2489 +{ 0x00, 0x96, 0x96 },
  1.2490 +{ 0x00, 0x97, 0x97 },
  1.2491 +{ 0x00, 0x98, 0x98 },
  1.2492 +{ 0x00, 0x99, 0x99 },
  1.2493 +{ 0x00, 0x9a, 0x9a },
  1.2494 +{ 0x00, 0x9b, 0x9b },
  1.2495 +{ 0x00, 0x9c, 0x9c },
  1.2496 +{ 0x00, 0x9d, 0x9d },
  1.2497 +{ 0x00, 0x9e, 0x9e },
  1.2498 +{ 0x00, 0x9f, 0x9f },
  1.2499 +{ 0x00, 0xa0, 0xa0 },
  1.2500 +{ 0x00, 0xa1, 0xa1 },
  1.2501 +{ 0x00, 0xa2, 0xa2 },
  1.2502 +{ 0x00, 0xa3, 0xa3 },
  1.2503 +{ 0x00, 0xa4, 0xa4 },
  1.2504 +{ 0x00, 0xa5, 0xa5 },
  1.2505 +{ 0x00, 0xa6, 0xa6 },
  1.2506 +{ 0x00, 0xa7, 0xa7 },
  1.2507 +{ 0x00, 0xa8, 0xa8 },
  1.2508 +{ 0x00, 0xa9, 0xa9 },
  1.2509 +{ 0x00, 0xaa, 0xaa },
  1.2510 +{ 0x00, 0xab, 0xab },
  1.2511 +{ 0x00, 0xac, 0xac },
  1.2512 +{ 0x00, 0xad, 0xad },
  1.2513 +{ 0x00, 0xae, 0xae },
  1.2514 +{ 0x00, 0xaf, 0xaf },
  1.2515 +{ 0x00, 0xb0, 0xb0 },
  1.2516 +{ 0x00, 0xb1, 0xb1 },
  1.2517 +{ 0x00, 0xb2, 0xb2 },
  1.2518 +{ 0x00, 0xb3, 0xb3 },
  1.2519 +{ 0x00, 0xb4, 0xb4 },
  1.2520 +{ 0x00, 0xb5, 0xb5 },
  1.2521 +{ 0x01, 0xdc, 0xb6 },
  1.2522 +{ 0x00, 0xb7, 0xb7 },
  1.2523 +{ 0x01, 0xdd, 0xb8 },
  1.2524 +{ 0x01, 0xde, 0xb9 },
  1.2525 +{ 0x01, 0xdf, 0xba },
  1.2526 +{ 0x00, 0xbb, 0xbb },
  1.2527 +{ 0x01, 0xfc, 0xbc },
  1.2528 +{ 0x00, 0xbd, 0xbd },
  1.2529 +{ 0x01, 0xfd, 0xbe },
  1.2530 +{ 0x01, 0xfe, 0xbf },
  1.2531 +{ 0x00, 0xc0, 0xc0 },
  1.2532 +{ 0x01, 0xe1, 0xc1 },
  1.2533 +{ 0x01, 0xe2, 0xc2 },
  1.2534 +{ 0x01, 0xe3, 0xc3 },
  1.2535 +{ 0x01, 0xe4, 0xc4 },
  1.2536 +{ 0x01, 0xe5, 0xc5 },
  1.2537 +{ 0x01, 0xe6, 0xc6 },
  1.2538 +{ 0x01, 0xe7, 0xc7 },
  1.2539 +{ 0x01, 0xe8, 0xc8 },
  1.2540 +{ 0x01, 0xe9, 0xc9 },
  1.2541 +{ 0x01, 0xea, 0xca },
  1.2542 +{ 0x01, 0xeb, 0xcb },
  1.2543 +{ 0x01, 0xec, 0xcc },
  1.2544 +{ 0x01, 0xed, 0xcd },
  1.2545 +{ 0x01, 0xee, 0xce },
  1.2546 +{ 0x01, 0xef, 0xcf },
  1.2547 +{ 0x01, 0xf0, 0xd0 },
  1.2548 +{ 0x01, 0xf1, 0xd1 },
  1.2549 +{ 0x00, 0xd2, 0xd2 },
  1.2550 +{ 0x01, 0xf3, 0xd3 },
  1.2551 +{ 0x01, 0xf4, 0xd4 },
  1.2552 +{ 0x01, 0xf5, 0xd5 },
  1.2553 +{ 0x01, 0xf6, 0xd6 },
  1.2554 +{ 0x01, 0xf7, 0xd7 },
  1.2555 +{ 0x01, 0xf8, 0xd8 },
  1.2556 +{ 0x01, 0xf9, 0xd9 },
  1.2557 +{ 0x01, 0xfa, 0xda },
  1.2558 +{ 0x01, 0xfb, 0xdb },
  1.2559 +{ 0x00, 0xdc, 0xb6 },
  1.2560 +{ 0x00, 0xdd, 0xb8 },
  1.2561 +{ 0x00, 0xde, 0xb9 },
  1.2562 +{ 0x00, 0xdf, 0xba },
  1.2563 +{ 0x00, 0xe0, 0xe0 },
  1.2564 +{ 0x00, 0xe1, 0xc1 },
  1.2565 +{ 0x00, 0xe2, 0xc2 },
  1.2566 +{ 0x00, 0xe3, 0xc3 },
  1.2567 +{ 0x00, 0xe4, 0xc4 },
  1.2568 +{ 0x00, 0xe5, 0xc5 },
  1.2569 +{ 0x00, 0xe6, 0xc6 },
  1.2570 +{ 0x00, 0xe7, 0xc7 },
  1.2571 +{ 0x00, 0xe8, 0xc8 },
  1.2572 +{ 0x00, 0xe9, 0xc9 },
  1.2573 +{ 0x00, 0xea, 0xca },
  1.2574 +{ 0x00, 0xeb, 0xcb },
  1.2575 +{ 0x00, 0xec, 0xcc },
  1.2576 +{ 0x00, 0xed, 0xcd },
  1.2577 +{ 0x00, 0xee, 0xce },
  1.2578 +{ 0x00, 0xef, 0xcf },
  1.2579 +{ 0x00, 0xf0, 0xd0 },
  1.2580 +{ 0x00, 0xf1, 0xd1 },
  1.2581 +{ 0x00, 0xf2, 0xd3 },
  1.2582 +{ 0x00, 0xf3, 0xd3 },
  1.2583 +{ 0x00, 0xf4, 0xd4 },
  1.2584 +{ 0x00, 0xf5, 0xd5 },
  1.2585 +{ 0x00, 0xf6, 0xd6 },
  1.2586 +{ 0x00, 0xf7, 0xd7 },
  1.2587 +{ 0x00, 0xf8, 0xd8 },
  1.2588 +{ 0x00, 0xf9, 0xd9 },
  1.2589 +{ 0x00, 0xfa, 0xda },
  1.2590 +{ 0x00, 0xfb, 0xdb },
  1.2591 +{ 0x00, 0xfc, 0xbc },
  1.2592 +{ 0x00, 0xfd, 0xbe },
  1.2593 +{ 0x00, 0xfe, 0xbf },
  1.2594 +{ 0x00, 0xff, 0xff }
  1.2595 +};
  1.2596 +
  1.2597 +static struct cs_info iso8_tbl[] = {
  1.2598 +{ 0x00, 0x00, 0x00 },
  1.2599 +{ 0x00, 0x01, 0x01 },
  1.2600 +{ 0x00, 0x02, 0x02 },
  1.2601 +{ 0x00, 0x03, 0x03 },
  1.2602 +{ 0x00, 0x04, 0x04 },
  1.2603 +{ 0x00, 0x05, 0x05 },
  1.2604 +{ 0x00, 0x06, 0x06 },
  1.2605 +{ 0x00, 0x07, 0x07 },
  1.2606 +{ 0x00, 0x08, 0x08 },
  1.2607 +{ 0x00, 0x09, 0x09 },
  1.2608 +{ 0x00, 0x0a, 0x0a },
  1.2609 +{ 0x00, 0x0b, 0x0b },
  1.2610 +{ 0x00, 0x0c, 0x0c },
  1.2611 +{ 0x00, 0x0d, 0x0d },
  1.2612 +{ 0x00, 0x0e, 0x0e },
  1.2613 +{ 0x00, 0x0f, 0x0f },
  1.2614 +{ 0x00, 0x10, 0x10 },
  1.2615 +{ 0x00, 0x11, 0x11 },
  1.2616 +{ 0x00, 0x12, 0x12 },
  1.2617 +{ 0x00, 0x13, 0x13 },
  1.2618 +{ 0x00, 0x14, 0x14 },
  1.2619 +{ 0x00, 0x15, 0x15 },
  1.2620 +{ 0x00, 0x16, 0x16 },
  1.2621 +{ 0x00, 0x17, 0x17 },
  1.2622 +{ 0x00, 0x18, 0x18 },
  1.2623 +{ 0x00, 0x19, 0x19 },
  1.2624 +{ 0x00, 0x1a, 0x1a },
  1.2625 +{ 0x00, 0x1b, 0x1b },
  1.2626 +{ 0x00, 0x1c, 0x1c },
  1.2627 +{ 0x00, 0x1d, 0x1d },
  1.2628 +{ 0x00, 0x1e, 0x1e },
  1.2629 +{ 0x00, 0x1f, 0x1f },
  1.2630 +{ 0x00, 0x20, 0x20 },
  1.2631 +{ 0x00, 0x21, 0x21 },
  1.2632 +{ 0x00, 0x22, 0x22 },
  1.2633 +{ 0x00, 0x23, 0x23 },
  1.2634 +{ 0x00, 0x24, 0x24 },
  1.2635 +{ 0x00, 0x25, 0x25 },
  1.2636 +{ 0x00, 0x26, 0x26 },
  1.2637 +{ 0x00, 0x27, 0x27 },
  1.2638 +{ 0x00, 0x28, 0x28 },
  1.2639 +{ 0x00, 0x29, 0x29 },
  1.2640 +{ 0x00, 0x2a, 0x2a },
  1.2641 +{ 0x00, 0x2b, 0x2b },
  1.2642 +{ 0x00, 0x2c, 0x2c },
  1.2643 +{ 0x00, 0x2d, 0x2d },
  1.2644 +{ 0x00, 0x2e, 0x2e },
  1.2645 +{ 0x00, 0x2f, 0x2f },
  1.2646 +{ 0x00, 0x30, 0x30 },
  1.2647 +{ 0x00, 0x31, 0x31 },
  1.2648 +{ 0x00, 0x32, 0x32 },
  1.2649 +{ 0x00, 0x33, 0x33 },
  1.2650 +{ 0x00, 0x34, 0x34 },
  1.2651 +{ 0x00, 0x35, 0x35 },
  1.2652 +{ 0x00, 0x36, 0x36 },
  1.2653 +{ 0x00, 0x37, 0x37 },
  1.2654 +{ 0x00, 0x38, 0x38 },
  1.2655 +{ 0x00, 0x39, 0x39 },
  1.2656 +{ 0x00, 0x3a, 0x3a },
  1.2657 +{ 0x00, 0x3b, 0x3b },
  1.2658 +{ 0x00, 0x3c, 0x3c },
  1.2659 +{ 0x00, 0x3d, 0x3d },
  1.2660 +{ 0x00, 0x3e, 0x3e },
  1.2661 +{ 0x00, 0x3f, 0x3f },
  1.2662 +{ 0x00, 0x40, 0x40 },
  1.2663 +{ 0x01, 0x61, 0x41 },
  1.2664 +{ 0x01, 0x62, 0x42 },
  1.2665 +{ 0x01, 0x63, 0x43 },
  1.2666 +{ 0x01, 0x64, 0x44 },
  1.2667 +{ 0x01, 0x65, 0x45 },
  1.2668 +{ 0x01, 0x66, 0x46 },
  1.2669 +{ 0x01, 0x67, 0x47 },
  1.2670 +{ 0x01, 0x68, 0x48 },
  1.2671 +{ 0x01, 0x69, 0x49 },
  1.2672 +{ 0x01, 0x6a, 0x4a },
  1.2673 +{ 0x01, 0x6b, 0x4b },
  1.2674 +{ 0x01, 0x6c, 0x4c },
  1.2675 +{ 0x01, 0x6d, 0x4d },
  1.2676 +{ 0x01, 0x6e, 0x4e },
  1.2677 +{ 0x01, 0x6f, 0x4f },
  1.2678 +{ 0x01, 0x70, 0x50 },
  1.2679 +{ 0x01, 0x71, 0x51 },
  1.2680 +{ 0x01, 0x72, 0x52 },
  1.2681 +{ 0x01, 0x73, 0x53 },
  1.2682 +{ 0x01, 0x74, 0x54 },
  1.2683 +{ 0x01, 0x75, 0x55 },
  1.2684 +{ 0x01, 0x76, 0x56 },
  1.2685 +{ 0x01, 0x77, 0x57 },
  1.2686 +{ 0x01, 0x78, 0x58 },
  1.2687 +{ 0x01, 0x79, 0x59 },
  1.2688 +{ 0x01, 0x7a, 0x5a },
  1.2689 +{ 0x00, 0x5b, 0x5b },
  1.2690 +{ 0x00, 0x5c, 0x5c },
  1.2691 +{ 0x00, 0x5d, 0x5d },
  1.2692 +{ 0x00, 0x5e, 0x5e },
  1.2693 +{ 0x00, 0x5f, 0x5f },
  1.2694 +{ 0x00, 0x60, 0x60 },
  1.2695 +{ 0x00, 0x61, 0x41 },
  1.2696 +{ 0x00, 0x62, 0x42 },
  1.2697 +{ 0x00, 0x63, 0x43 },
  1.2698 +{ 0x00, 0x64, 0x44 },
  1.2699 +{ 0x00, 0x65, 0x45 },
  1.2700 +{ 0x00, 0x66, 0x46 },
  1.2701 +{ 0x00, 0x67, 0x47 },
  1.2702 +{ 0x00, 0x68, 0x48 },
  1.2703 +{ 0x00, 0x69, 0x49 },
  1.2704 +{ 0x00, 0x6a, 0x4a },
  1.2705 +{ 0x00, 0x6b, 0x4b },
  1.2706 +{ 0x00, 0x6c, 0x4c },
  1.2707 +{ 0x00, 0x6d, 0x4d },
  1.2708 +{ 0x00, 0x6e, 0x4e },
  1.2709 +{ 0x00, 0x6f, 0x4f },
  1.2710 +{ 0x00, 0x70, 0x50 },
  1.2711 +{ 0x00, 0x71, 0x51 },
  1.2712 +{ 0x00, 0x72, 0x52 },
  1.2713 +{ 0x00, 0x73, 0x53 },
  1.2714 +{ 0x00, 0x74, 0x54 },
  1.2715 +{ 0x00, 0x75, 0x55 },
  1.2716 +{ 0x00, 0x76, 0x56 },
  1.2717 +{ 0x00, 0x77, 0x57 },
  1.2718 +{ 0x00, 0x78, 0x58 },
  1.2719 +{ 0x00, 0x79, 0x59 },
  1.2720 +{ 0x00, 0x7a, 0x5a },
  1.2721 +{ 0x00, 0x7b, 0x7b },
  1.2722 +{ 0x00, 0x7c, 0x7c },
  1.2723 +{ 0x00, 0x7d, 0x7d },
  1.2724 +{ 0x00, 0x7e, 0x7e },
  1.2725 +{ 0x00, 0x7f, 0x7f },
  1.2726 +{ 0x00, 0x80, 0x80 },
  1.2727 +{ 0x00, 0x81, 0x81 },
  1.2728 +{ 0x00, 0x82, 0x82 },
  1.2729 +{ 0x00, 0x83, 0x83 },
  1.2730 +{ 0x00, 0x84, 0x84 },
  1.2731 +{ 0x00, 0x85, 0x85 },
  1.2732 +{ 0x00, 0x86, 0x86 },
  1.2733 +{ 0x00, 0x87, 0x87 },
  1.2734 +{ 0x00, 0x88, 0x88 },
  1.2735 +{ 0x00, 0x89, 0x89 },
  1.2736 +{ 0x00, 0x8a, 0x8a },
  1.2737 +{ 0x00, 0x8b, 0x8b },
  1.2738 +{ 0x00, 0x8c, 0x8c },
  1.2739 +{ 0x00, 0x8d, 0x8d },
  1.2740 +{ 0x00, 0x8e, 0x8e },
  1.2741 +{ 0x00, 0x8f, 0x8f },
  1.2742 +{ 0x00, 0x90, 0x90 },
  1.2743 +{ 0x00, 0x91, 0x91 },
  1.2744 +{ 0x00, 0x92, 0x92 },
  1.2745 +{ 0x00, 0x93, 0x93 },
  1.2746 +{ 0x00, 0x94, 0x94 },
  1.2747 +{ 0x00, 0x95, 0x95 },
  1.2748 +{ 0x00, 0x96, 0x96 },
  1.2749 +{ 0x00, 0x97, 0x97 },
  1.2750 +{ 0x00, 0x98, 0x98 },
  1.2751 +{ 0x00, 0x99, 0x99 },
  1.2752 +{ 0x00, 0x9a, 0x9a },
  1.2753 +{ 0x00, 0x9b, 0x9b },
  1.2754 +{ 0x00, 0x9c, 0x9c },
  1.2755 +{ 0x00, 0x9d, 0x9d },
  1.2756 +{ 0x00, 0x9e, 0x9e },
  1.2757 +{ 0x00, 0x9f, 0x9f },
  1.2758 +{ 0x00, 0xa0, 0xa0 },
  1.2759 +{ 0x00, 0xa1, 0xa1 },
  1.2760 +{ 0x00, 0xa2, 0xa2 },
  1.2761 +{ 0x00, 0xa3, 0xa3 },
  1.2762 +{ 0x00, 0xa4, 0xa4 },
  1.2763 +{ 0x00, 0xa5, 0xa5 },
  1.2764 +{ 0x00, 0xa6, 0xa6 },
  1.2765 +{ 0x00, 0xa7, 0xa7 },
  1.2766 +{ 0x00, 0xa8, 0xa8 },
  1.2767 +{ 0x00, 0xa9, 0xa9 },
  1.2768 +{ 0x00, 0xaa, 0xaa },
  1.2769 +{ 0x00, 0xab, 0xab },
  1.2770 +{ 0x00, 0xac, 0xac },
  1.2771 +{ 0x00, 0xad, 0xad },
  1.2772 +{ 0x00, 0xae, 0xae },
  1.2773 +{ 0x00, 0xaf, 0xaf },
  1.2774 +{ 0x00, 0xb0, 0xb0 },
  1.2775 +{ 0x00, 0xb1, 0xb1 },
  1.2776 +{ 0x00, 0xb2, 0xb2 },
  1.2777 +{ 0x00, 0xb3, 0xb3 },
  1.2778 +{ 0x00, 0xb4, 0xb4 },
  1.2779 +{ 0x00, 0xb5, 0xb5 },
  1.2780 +{ 0x00, 0xb6, 0xb6 },
  1.2781 +{ 0x00, 0xb7, 0xb7 },
  1.2782 +{ 0x00, 0xb8, 0xb8 },
  1.2783 +{ 0x00, 0xb9, 0xb9 },
  1.2784 +{ 0x00, 0xba, 0xba },
  1.2785 +{ 0x00, 0xbb, 0xbb },
  1.2786 +{ 0x00, 0xbc, 0xbc },
  1.2787 +{ 0x00, 0xbd, 0xbd },
  1.2788 +{ 0x00, 0xbe, 0xbe },
  1.2789 +{ 0x00, 0xbf, 0xbf },
  1.2790 +{ 0x00, 0xc0, 0xc0 },
  1.2791 +{ 0x00, 0xc1, 0xc1 },
  1.2792 +{ 0x00, 0xc2, 0xc2 },
  1.2793 +{ 0x00, 0xc3, 0xc3 },
  1.2794 +{ 0x00, 0xc4, 0xc4 },
  1.2795 +{ 0x00, 0xc5, 0xc5 },
  1.2796 +{ 0x00, 0xc6, 0xc6 },
  1.2797 +{ 0x00, 0xc7, 0xc7 },
  1.2798 +{ 0x00, 0xc8, 0xc8 },
  1.2799 +{ 0x00, 0xc9, 0xc9 },
  1.2800 +{ 0x00, 0xca, 0xca },
  1.2801 +{ 0x00, 0xcb, 0xcb },
  1.2802 +{ 0x00, 0xcc, 0xcc },
  1.2803 +{ 0x00, 0xcd, 0xcd },
  1.2804 +{ 0x00, 0xce, 0xce },
  1.2805 +{ 0x00, 0xcf, 0xcf },
  1.2806 +{ 0x00, 0xd0, 0xd0 },
  1.2807 +{ 0x00, 0xd1, 0xd1 },
  1.2808 +{ 0x00, 0xd2, 0xd2 },
  1.2809 +{ 0x00, 0xd3, 0xd3 },
  1.2810 +{ 0x00, 0xd4, 0xd4 },
  1.2811 +{ 0x00, 0xd5, 0xd5 },
  1.2812 +{ 0x00, 0xd6, 0xd6 },
  1.2813 +{ 0x00, 0xd7, 0xd7 },
  1.2814 +{ 0x00, 0xd8, 0xd8 },
  1.2815 +{ 0x00, 0xd9, 0xd9 },
  1.2816 +{ 0x00, 0xda, 0xda },
  1.2817 +{ 0x00, 0xdb, 0xdb },
  1.2818 +{ 0x00, 0xdc, 0xdc },
  1.2819 +{ 0x00, 0xdd, 0xdd },
  1.2820 +{ 0x00, 0xde, 0xde },
  1.2821 +{ 0x00, 0xdf, 0xdf },
  1.2822 +{ 0x00, 0xe0, 0xe0 },
  1.2823 +{ 0x00, 0xe1, 0xe1 },
  1.2824 +{ 0x00, 0xe2, 0xe2 },
  1.2825 +{ 0x00, 0xe3, 0xe3 },
  1.2826 +{ 0x00, 0xe4, 0xe4 },
  1.2827 +{ 0x00, 0xe5, 0xe5 },
  1.2828 +{ 0x00, 0xe6, 0xe6 },
  1.2829 +{ 0x00, 0xe7, 0xe7 },
  1.2830 +{ 0x00, 0xe8, 0xe8 },
  1.2831 +{ 0x00, 0xe9, 0xe9 },
  1.2832 +{ 0x00, 0xea, 0xea },
  1.2833 +{ 0x00, 0xeb, 0xeb },
  1.2834 +{ 0x00, 0xec, 0xec },
  1.2835 +{ 0x00, 0xed, 0xed },
  1.2836 +{ 0x00, 0xee, 0xee },
  1.2837 +{ 0x00, 0xef, 0xef },
  1.2838 +{ 0x00, 0xf0, 0xf0 },
  1.2839 +{ 0x00, 0xf1, 0xf1 },
  1.2840 +{ 0x00, 0xf2, 0xf2 },
  1.2841 +{ 0x00, 0xf3, 0xf3 },
  1.2842 +{ 0x00, 0xf4, 0xf4 },
  1.2843 +{ 0x00, 0xf5, 0xf5 },
  1.2844 +{ 0x00, 0xf6, 0xf6 },
  1.2845 +{ 0x00, 0xf7, 0xf7 },
  1.2846 +{ 0x00, 0xf8, 0xf8 },
  1.2847 +{ 0x00, 0xf9, 0xf9 },
  1.2848 +{ 0x00, 0xfa, 0xfa },
  1.2849 +{ 0x00, 0xfb, 0xfb },
  1.2850 +{ 0x00, 0xfc, 0xfc },
  1.2851 +{ 0x00, 0xfd, 0xfd },
  1.2852 +{ 0x00, 0xfe, 0xfe },
  1.2853 +{ 0x00, 0xff, 0xff }
  1.2854 +};
  1.2855 +
  1.2856 +static struct cs_info iso9_tbl[] = {
  1.2857 +{ 0x00, 0x00, 0x00 },
  1.2858 +{ 0x00, 0x01, 0x01 },
  1.2859 +{ 0x00, 0x02, 0x02 },
  1.2860 +{ 0x00, 0x03, 0x03 },
  1.2861 +{ 0x00, 0x04, 0x04 },
  1.2862 +{ 0x00, 0x05, 0x05 },
  1.2863 +{ 0x00, 0x06, 0x06 },
  1.2864 +{ 0x00, 0x07, 0x07 },
  1.2865 +{ 0x00, 0x08, 0x08 },
  1.2866 +{ 0x00, 0x09, 0x09 },
  1.2867 +{ 0x00, 0x0a, 0x0a },
  1.2868 +{ 0x00, 0x0b, 0x0b },
  1.2869 +{ 0x00, 0x0c, 0x0c },
  1.2870 +{ 0x00, 0x0d, 0x0d },
  1.2871 +{ 0x00, 0x0e, 0x0e },
  1.2872 +{ 0x00, 0x0f, 0x0f },
  1.2873 +{ 0x00, 0x10, 0x10 },
  1.2874 +{ 0x00, 0x11, 0x11 },
  1.2875 +{ 0x00, 0x12, 0x12 },
  1.2876 +{ 0x00, 0x13, 0x13 },
  1.2877 +{ 0x00, 0x14, 0x14 },
  1.2878 +{ 0x00, 0x15, 0x15 },
  1.2879 +{ 0x00, 0x16, 0x16 },
  1.2880 +{ 0x00, 0x17, 0x17 },
  1.2881 +{ 0x00, 0x18, 0x18 },
  1.2882 +{ 0x00, 0x19, 0x19 },
  1.2883 +{ 0x00, 0x1a, 0x1a },
  1.2884 +{ 0x00, 0x1b, 0x1b },
  1.2885 +{ 0x00, 0x1c, 0x1c },
  1.2886 +{ 0x00, 0x1d, 0x1d },
  1.2887 +{ 0x00, 0x1e, 0x1e },
  1.2888 +{ 0x00, 0x1f, 0x1f },
  1.2889 +{ 0x00, 0x20, 0x20 },
  1.2890 +{ 0x00, 0x21, 0x21 },
  1.2891 +{ 0x00, 0x22, 0x22 },
  1.2892 +{ 0x00, 0x23, 0x23 },
  1.2893 +{ 0x00, 0x24, 0x24 },
  1.2894 +{ 0x00, 0x25, 0x25 },
  1.2895 +{ 0x00, 0x26, 0x26 },
  1.2896 +{ 0x00, 0x27, 0x27 },
  1.2897 +{ 0x00, 0x28, 0x28 },
  1.2898 +{ 0x00, 0x29, 0x29 },
  1.2899 +{ 0x00, 0x2a, 0x2a },
  1.2900 +{ 0x00, 0x2b, 0x2b },
  1.2901 +{ 0x00, 0x2c, 0x2c },
  1.2902 +{ 0x00, 0x2d, 0x2d },
  1.2903 +{ 0x00, 0x2e, 0x2e },
  1.2904 +{ 0x00, 0x2f, 0x2f },
  1.2905 +{ 0x00, 0x30, 0x30 },
  1.2906 +{ 0x00, 0x31, 0x31 },
  1.2907 +{ 0x00, 0x32, 0x32 },
  1.2908 +{ 0x00, 0x33, 0x33 },
  1.2909 +{ 0x00, 0x34, 0x34 },
  1.2910 +{ 0x00, 0x35, 0x35 },
  1.2911 +{ 0x00, 0x36, 0x36 },
  1.2912 +{ 0x00, 0x37, 0x37 },
  1.2913 +{ 0x00, 0x38, 0x38 },
  1.2914 +{ 0x00, 0x39, 0x39 },
  1.2915 +{ 0x00, 0x3a, 0x3a },
  1.2916 +{ 0x00, 0x3b, 0x3b },
  1.2917 +{ 0x00, 0x3c, 0x3c },
  1.2918 +{ 0x00, 0x3d, 0x3d },
  1.2919 +{ 0x00, 0x3e, 0x3e },
  1.2920 +{ 0x00, 0x3f, 0x3f },
  1.2921 +{ 0x00, 0x40, 0x40 },
  1.2922 +{ 0x01, 0x61, 0x41 },
  1.2923 +{ 0x01, 0x62, 0x42 },
  1.2924 +{ 0x01, 0x63, 0x43 },
  1.2925 +{ 0x01, 0x64, 0x44 },
  1.2926 +{ 0x01, 0x65, 0x45 },
  1.2927 +{ 0x01, 0x66, 0x46 },
  1.2928 +{ 0x01, 0x67, 0x47 },
  1.2929 +{ 0x01, 0x68, 0x48 },
  1.2930 +{ 0x01, 0xfd, 0x49 },
  1.2931 +{ 0x01, 0x6a, 0x4a },
  1.2932 +{ 0x01, 0x6b, 0x4b },
  1.2933 +{ 0x01, 0x6c, 0x4c },
  1.2934 +{ 0x01, 0x6d, 0x4d },
  1.2935 +{ 0x01, 0x6e, 0x4e },
  1.2936 +{ 0x01, 0x6f, 0x4f },
  1.2937 +{ 0x01, 0x70, 0x50 },
  1.2938 +{ 0x01, 0x71, 0x51 },
  1.2939 +{ 0x01, 0x72, 0x52 },
  1.2940 +{ 0x01, 0x73, 0x53 },
  1.2941 +{ 0x01, 0x74, 0x54 },
  1.2942 +{ 0x01, 0x75, 0x55 },
  1.2943 +{ 0x01, 0x76, 0x56 },
  1.2944 +{ 0x01, 0x77, 0x57 },
  1.2945 +{ 0x01, 0x78, 0x58 },
  1.2946 +{ 0x01, 0x79, 0x59 },
  1.2947 +{ 0x01, 0x7a, 0x5a },
  1.2948 +{ 0x00, 0x5b, 0x5b },
  1.2949 +{ 0x00, 0x5c, 0x5c },
  1.2950 +{ 0x00, 0x5d, 0x5d },
  1.2951 +{ 0x00, 0x5e, 0x5e },
  1.2952 +{ 0x00, 0x5f, 0x5f },
  1.2953 +{ 0x00, 0x60, 0x60 },
  1.2954 +{ 0x00, 0x61, 0x41 },
  1.2955 +{ 0x00, 0x62, 0x42 },
  1.2956 +{ 0x00, 0x63, 0x43 },
  1.2957 +{ 0x00, 0x64, 0x44 },
  1.2958 +{ 0x00, 0x65, 0x45 },
  1.2959 +{ 0x00, 0x66, 0x46 },
  1.2960 +{ 0x00, 0x67, 0x47 },
  1.2961 +{ 0x00, 0x68, 0x48 },
  1.2962 +{ 0x00, 0x69, 0xdd },
  1.2963 +{ 0x00, 0x6a, 0x4a },
  1.2964 +{ 0x00, 0x6b, 0x4b },
  1.2965 +{ 0x00, 0x6c, 0x4c },
  1.2966 +{ 0x00, 0x6d, 0x4d },
  1.2967 +{ 0x00, 0x6e, 0x4e },
  1.2968 +{ 0x00, 0x6f, 0x4f },
  1.2969 +{ 0x00, 0x70, 0x50 },
  1.2970 +{ 0x00, 0x71, 0x51 },
  1.2971 +{ 0x00, 0x72, 0x52 },
  1.2972 +{ 0x00, 0x73, 0x53 },
  1.2973 +{ 0x00, 0x74, 0x54 },
  1.2974 +{ 0x00, 0x75, 0x55 },
  1.2975 +{ 0x00, 0x76, 0x56 },
  1.2976 +{ 0x00, 0x77, 0x57 },
  1.2977 +{ 0x00, 0x78, 0x58 },
  1.2978 +{ 0x00, 0x79, 0x59 },
  1.2979 +{ 0x00, 0x7a, 0x5a },
  1.2980 +{ 0x00, 0x7b, 0x7b },
  1.2981 +{ 0x00, 0x7c, 0x7c },
  1.2982 +{ 0x00, 0x7d, 0x7d },
  1.2983 +{ 0x00, 0x7e, 0x7e },
  1.2984 +{ 0x00, 0x7f, 0x7f },
  1.2985 +{ 0x00, 0x80, 0x80 },
  1.2986 +{ 0x00, 0x81, 0x81 },
  1.2987 +{ 0x00, 0x82, 0x82 },
  1.2988 +{ 0x00, 0x83, 0x83 },
  1.2989 +{ 0x00, 0x84, 0x84 },
  1.2990 +{ 0x00, 0x85, 0x85 },
  1.2991 +{ 0x00, 0x86, 0x86 },
  1.2992 +{ 0x00, 0x87, 0x87 },
  1.2993 +{ 0x00, 0x88, 0x88 },
  1.2994 +{ 0x00, 0x89, 0x89 },
  1.2995 +{ 0x00, 0x8a, 0x8a },
  1.2996 +{ 0x00, 0x8b, 0x8b },
  1.2997 +{ 0x00, 0x8c, 0x8c },
  1.2998 +{ 0x00, 0x8d, 0x8d },
  1.2999 +{ 0x00, 0x8e, 0x8e },
  1.3000 +{ 0x00, 0x8f, 0x8f },
  1.3001 +{ 0x00, 0x90, 0x90 },
  1.3002 +{ 0x00, 0x91, 0x91 },
  1.3003 +{ 0x00, 0x92, 0x92 },
  1.3004 +{ 0x00, 0x93, 0x93 },
  1.3005 +{ 0x00, 0x94, 0x94 },
  1.3006 +{ 0x00, 0x95, 0x95 },
  1.3007 +{ 0x00, 0x96, 0x96 },
  1.3008 +{ 0x00, 0x97, 0x97 },
  1.3009 +{ 0x00, 0x98, 0x98 },
  1.3010 +{ 0x00, 0x99, 0x99 },
  1.3011 +{ 0x00, 0x9a, 0x9a },
  1.3012 +{ 0x00, 0x9b, 0x9b },
  1.3013 +{ 0x00, 0x9c, 0x9c },
  1.3014 +{ 0x00, 0x9d, 0x9d },
  1.3015 +{ 0x00, 0x9e, 0x9e },
  1.3016 +{ 0x00, 0x9f, 0x9f },
  1.3017 +{ 0x00, 0xa0, 0xa0 },
  1.3018 +{ 0x00, 0xa1, 0xa1 },
  1.3019 +{ 0x00, 0xa2, 0xa2 },
  1.3020 +{ 0x00, 0xa3, 0xa3 },
  1.3021 +{ 0x00, 0xa4, 0xa4 },
  1.3022 +{ 0x00, 0xa5, 0xa5 },
  1.3023 +{ 0x00, 0xa6, 0xa6 },
  1.3024 +{ 0x00, 0xa7, 0xa7 },
  1.3025 +{ 0x00, 0xa8, 0xa8 },
  1.3026 +{ 0x00, 0xa9, 0xa9 },
  1.3027 +{ 0x00, 0xaa, 0xaa },
  1.3028 +{ 0x00, 0xab, 0xab },
  1.3029 +{ 0x00, 0xac, 0xac },
  1.3030 +{ 0x00, 0xad, 0xad },
  1.3031 +{ 0x00, 0xae, 0xae },
  1.3032 +{ 0x00, 0xaf, 0xaf },
  1.3033 +{ 0x00, 0xb0, 0xb0 },
  1.3034 +{ 0x00, 0xb1, 0xb1 },
  1.3035 +{ 0x00, 0xb2, 0xb2 },
  1.3036 +{ 0x00, 0xb3, 0xb3 },
  1.3037 +{ 0x00, 0xb4, 0xb4 },
  1.3038 +{ 0x00, 0xb5, 0xb5 },
  1.3039 +{ 0x00, 0xb6, 0xb6 },
  1.3040 +{ 0x00, 0xb7, 0xb7 },
  1.3041 +{ 0x00, 0xb8, 0xb8 },
  1.3042 +{ 0x00, 0xb9, 0xb9 },
  1.3043 +{ 0x00, 0xba, 0xba },
  1.3044 +{ 0x00, 0xbb, 0xbb },
  1.3045 +{ 0x00, 0xbc, 0xbc },
  1.3046 +{ 0x00, 0xbd, 0xbd },
  1.3047 +{ 0x00, 0xbe, 0xbe },
  1.3048 +{ 0x00, 0xbf, 0xbf },
  1.3049 +{ 0x01, 0xe0, 0xc0 },
  1.3050 +{ 0x01, 0xe1, 0xc1 },
  1.3051 +{ 0x01, 0xe2, 0xc2 },
  1.3052 +{ 0x01, 0xe3, 0xc3 },
  1.3053 +{ 0x01, 0xe4, 0xc4 },
  1.3054 +{ 0x01, 0xe5, 0xc5 },
  1.3055 +{ 0x01, 0xe6, 0xc6 },
  1.3056 +{ 0x01, 0xe7, 0xc7 },
  1.3057 +{ 0x01, 0xe8, 0xc8 },
  1.3058 +{ 0x01, 0xe9, 0xc9 },
  1.3059 +{ 0x01, 0xea, 0xca },
  1.3060 +{ 0x01, 0xeb, 0xcb },
  1.3061 +{ 0x01, 0xec, 0xcc },
  1.3062 +{ 0x01, 0xed, 0xcd },
  1.3063 +{ 0x01, 0xee, 0xce },
  1.3064 +{ 0x01, 0xef, 0xcf },
  1.3065 +{ 0x01, 0xf0, 0xd0 },
  1.3066 +{ 0x01, 0xf1, 0xd1 },
  1.3067 +{ 0x01, 0xf2, 0xd2 },
  1.3068 +{ 0x01, 0xf3, 0xd3 },
  1.3069 +{ 0x01, 0xf4, 0xd4 },
  1.3070 +{ 0x01, 0xf5, 0xd5 },
  1.3071 +{ 0x01, 0xf6, 0xd6 },
  1.3072 +{ 0x00, 0xd7, 0xd7 },
  1.3073 +{ 0x01, 0xf8, 0xd8 },
  1.3074 +{ 0x01, 0xf9, 0xd9 },
  1.3075 +{ 0x01, 0xfa, 0xda },
  1.3076 +{ 0x01, 0xfb, 0xdb },
  1.3077 +{ 0x01, 0xfc, 0xdc },
  1.3078 +{ 0x01, 0x69, 0xdd },
  1.3079 +{ 0x01, 0xfe, 0xde },
  1.3080 +{ 0x00, 0xdf, 0xdf },
  1.3081 +{ 0x00, 0xe0, 0xc0 },
  1.3082 +{ 0x00, 0xe1, 0xc1 },
  1.3083 +{ 0x00, 0xe2, 0xc2 },
  1.3084 +{ 0x00, 0xe3, 0xc3 },
  1.3085 +{ 0x00, 0xe4, 0xc4 },
  1.3086 +{ 0x00, 0xe5, 0xc5 },
  1.3087 +{ 0x00, 0xe6, 0xc6 },
  1.3088 +{ 0x00, 0xe7, 0xc7 },
  1.3089 +{ 0x00, 0xe8, 0xc8 },
  1.3090 +{ 0x00, 0xe9, 0xc9 },
  1.3091 +{ 0x00, 0xea, 0xca },
  1.3092 +{ 0x00, 0xeb, 0xcb },
  1.3093 +{ 0x00, 0xec, 0xcc },
  1.3094 +{ 0x00, 0xed, 0xcd },
  1.3095 +{ 0x00, 0xee, 0xce },
  1.3096 +{ 0x00, 0xef, 0xcf },
  1.3097 +{ 0x00, 0xf0, 0xd0 },
  1.3098 +{ 0x00, 0xf1, 0xd1 },
  1.3099 +{ 0x00, 0xf2, 0xd2 },
  1.3100 +{ 0x00, 0xf3, 0xd3 },
  1.3101 +{ 0x00, 0xf4, 0xd4 },
  1.3102 +{ 0x00, 0xf5, 0xd5 },
  1.3103 +{ 0x00, 0xf6, 0xd6 },
  1.3104 +{ 0x00, 0xf7, 0xf7 },
  1.3105 +{ 0x00, 0xf8, 0xd8 },
  1.3106 +{ 0x00, 0xf9, 0xd9 },
  1.3107 +{ 0x00, 0xfa, 0xda },
  1.3108 +{ 0x00, 0xfb, 0xdb },
  1.3109 +{ 0x00, 0xfc, 0xdc },
  1.3110 +{ 0x00, 0xfd, 0x49 },
  1.3111 +{ 0x00, 0xfe, 0xde },
  1.3112 +{ 0x00, 0xff, 0xff }
  1.3113 +};
  1.3114 +
  1.3115 +static struct cs_info iso10_tbl[] = {
  1.3116 +{ 0x00, 0x00, 0x00 },
  1.3117 +{ 0x00, 0x01, 0x01 },
  1.3118 +{ 0x00, 0x02, 0x02 },
  1.3119 +{ 0x00, 0x03, 0x03 },
  1.3120 +{ 0x00, 0x04, 0x04 },
  1.3121 +{ 0x00, 0x05, 0x05 },
  1.3122 +{ 0x00, 0x06, 0x06 },
  1.3123 +{ 0x00, 0x07, 0x07 },
  1.3124 +{ 0x00, 0x08, 0x08 },
  1.3125 +{ 0x00, 0x09, 0x09 },
  1.3126 +{ 0x00, 0x0a, 0x0a },
  1.3127 +{ 0x00, 0x0b, 0x0b },
  1.3128 +{ 0x00, 0x0c, 0x0c },
  1.3129 +{ 0x00, 0x0d, 0x0d },
  1.3130 +{ 0x00, 0x0e, 0x0e },
  1.3131 +{ 0x00, 0x0f, 0x0f },
  1.3132 +{ 0x00, 0x10, 0x10 },
  1.3133 +{ 0x00, 0x11, 0x11 },
  1.3134 +{ 0x00, 0x12, 0x12 },
  1.3135 +{ 0x00, 0x13, 0x13 },
  1.3136 +{ 0x00, 0x14, 0x14 },
  1.3137 +{ 0x00, 0x15, 0x15 },
  1.3138 +{ 0x00, 0x16, 0x16 },
  1.3139 +{ 0x00, 0x17, 0x17 },
  1.3140 +{ 0x00, 0x18, 0x18 },
  1.3141 +{ 0x00, 0x19, 0x19 },
  1.3142 +{ 0x00, 0x1a, 0x1a },
  1.3143 +{ 0x00, 0x1b, 0x1b },
  1.3144 +{ 0x00, 0x1c, 0x1c },
  1.3145 +{ 0x00, 0x1d, 0x1d },
  1.3146 +{ 0x00, 0x1e, 0x1e },
  1.3147 +{ 0x00, 0x1f, 0x1f },
  1.3148 +{ 0x00, 0x20, 0x20 },
  1.3149 +{ 0x00, 0x21, 0x21 },
  1.3150 +{ 0x00, 0x22, 0x22 },
  1.3151 +{ 0x00, 0x23, 0x23 },
  1.3152 +{ 0x00, 0x24, 0x24 },
  1.3153 +{ 0x00, 0x25, 0x25 },
  1.3154 +{ 0x00, 0x26, 0x26 },
  1.3155 +{ 0x00, 0x27, 0x27 },
  1.3156 +{ 0x00, 0x28, 0x28 },
  1.3157 +{ 0x00, 0x29, 0x29 },
  1.3158 +{ 0x00, 0x2a, 0x2a },
  1.3159 +{ 0x00, 0x2b, 0x2b },
  1.3160 +{ 0x00, 0x2c, 0x2c },
  1.3161 +{ 0x00, 0x2d, 0x2d },
  1.3162 +{ 0x00, 0x2e, 0x2e },
  1.3163 +{ 0x00, 0x2f, 0x2f },
  1.3164 +{ 0x00, 0x30, 0x30 },
  1.3165 +{ 0x00, 0x31, 0x31 },
  1.3166 +{ 0x00, 0x32, 0x32 },
  1.3167 +{ 0x00, 0x33, 0x33 },
  1.3168 +{ 0x00, 0x34, 0x34 },
  1.3169 +{ 0x00, 0x35, 0x35 },
  1.3170 +{ 0x00, 0x36, 0x36 },
  1.3171 +{ 0x00, 0x37, 0x37 },
  1.3172 +{ 0x00, 0x38, 0x38 },
  1.3173 +{ 0x00, 0x39, 0x39 },
  1.3174 +{ 0x00, 0x3a, 0x3a },
  1.3175 +{ 0x00, 0x3b, 0x3b },
  1.3176 +{ 0x00, 0x3c, 0x3c },
  1.3177 +{ 0x00, 0x3d, 0x3d },
  1.3178 +{ 0x00, 0x3e, 0x3e },
  1.3179 +{ 0x00, 0x3f, 0x3f },
  1.3180 +{ 0x00, 0x40, 0x40 },
  1.3181 +{ 0x01, 0x61, 0x41 },
  1.3182 +{ 0x01, 0x62, 0x42 },
  1.3183 +{ 0x01, 0x63, 0x43 },
  1.3184 +{ 0x01, 0x64, 0x44 },
  1.3185 +{ 0x01, 0x65, 0x45 },
  1.3186 +{ 0x01, 0x66, 0x46 },
  1.3187 +{ 0x01, 0x67, 0x47 },
  1.3188 +{ 0x01, 0x68, 0x48 },
  1.3189 +{ 0x01, 0x69, 0x49 },
  1.3190 +{ 0x01, 0x6a, 0x4a },
  1.3191 +{ 0x01, 0x6b, 0x4b },
  1.3192 +{ 0x01, 0x6c, 0x4c },
  1.3193 +{ 0x01, 0x6d, 0x4d },
  1.3194 +{ 0x01, 0x6e, 0x4e },
  1.3195 +{ 0x01, 0x6f, 0x4f },
  1.3196 +{ 0x01, 0x70, 0x50 },
  1.3197 +{ 0x01, 0x71, 0x51 },
  1.3198 +{ 0x01, 0x72, 0x52 },
  1.3199 +{ 0x01, 0x73, 0x53 },
  1.3200 +{ 0x01, 0x74, 0x54 },
  1.3201 +{ 0x01, 0x75, 0x55 },
  1.3202 +{ 0x01, 0x76, 0x56 },
  1.3203 +{ 0x01, 0x77, 0x57 },
  1.3204 +{ 0x01, 0x78, 0x58 },
  1.3205 +{ 0x01, 0x79, 0x59 },
  1.3206 +{ 0x01, 0x7a, 0x5a },
  1.3207 +{ 0x00, 0x5b, 0x5b },
  1.3208 +{ 0x00, 0x5c, 0x5c },
  1.3209 +{ 0x00, 0x5d, 0x5d },
  1.3210 +{ 0x00, 0x5e, 0x5e },
  1.3211 +{ 0x00, 0x5f, 0x5f },
  1.3212 +{ 0x00, 0x60, 0x60 },
  1.3213 +{ 0x00, 0x61, 0x41 },
  1.3214 +{ 0x00, 0x62, 0x42 },
  1.3215 +{ 0x00, 0x63, 0x43 },
  1.3216 +{ 0x00, 0x64, 0x44 },
  1.3217 +{ 0x00, 0x65, 0x45 },
  1.3218 +{ 0x00, 0x66, 0x46 },
  1.3219 +{ 0x00, 0x67, 0x47 },
  1.3220 +{ 0x00, 0x68, 0x48 },
  1.3221 +{ 0x00, 0x69, 0x49 },
  1.3222 +{ 0x00, 0x6a, 0x4a },
  1.3223 +{ 0x00, 0x6b, 0x4b },
  1.3224 +{ 0x00, 0x6c, 0x4c },
  1.3225 +{ 0x00, 0x6d, 0x4d },
  1.3226 +{ 0x00, 0x6e, 0x4e },
  1.3227 +{ 0x00, 0x6f, 0x4f },
  1.3228 +{ 0x00, 0x70, 0x50 },
  1.3229 +{ 0x00, 0x71, 0x51 },
  1.3230 +{ 0x00, 0x72, 0x52 },
  1.3231 +{ 0x00, 0x73, 0x53 },
  1.3232 +{ 0x00, 0x74, 0x54 },
  1.3233 +{ 0x00, 0x75, 0x55 },
  1.3234 +{ 0x00, 0x76, 0x56 },
  1.3235 +{ 0x00, 0x77, 0x57 },
  1.3236 +{ 0x00, 0x78, 0x58 },
  1.3237 +{ 0x00, 0x79, 0x59 },
  1.3238 +{ 0x00, 0x7a, 0x5a },
  1.3239 +{ 0x00, 0x7b, 0x7b },
  1.3240 +{ 0x00, 0x7c, 0x7c },
  1.3241 +{ 0x00, 0x7d, 0x7d },
  1.3242 +{ 0x00, 0x7e, 0x7e },
  1.3243 +{ 0x00, 0x7f, 0x7f },
  1.3244 +{ 0x00, 0x80, 0x80 },
  1.3245 +{ 0x00, 0x81, 0x81 },
  1.3246 +{ 0x00, 0x82, 0x82 },
  1.3247 +{ 0x00, 0x83, 0x83 },
  1.3248 +{ 0x00, 0x84, 0x84 },
  1.3249 +{ 0x00, 0x85, 0x85 },
  1.3250 +{ 0x00, 0x86, 0x86 },
  1.3251 +{ 0x00, 0x87, 0x87 },
  1.3252 +{ 0x00, 0x88, 0x88 },
  1.3253 +{ 0x00, 0x89, 0x89 },
  1.3254 +{ 0x00, 0x8a, 0x8a },
  1.3255 +{ 0x00, 0x8b, 0x8b },
  1.3256 +{ 0x00, 0x8c, 0x8c },
  1.3257 +{ 0x00, 0x8d, 0x8d },
  1.3258 +{ 0x00, 0x8e, 0x8e },
  1.3259 +{ 0x00, 0x8f, 0x8f },
  1.3260 +{ 0x00, 0x90, 0x90 },
  1.3261 +{ 0x00, 0x91, 0x91 },
  1.3262 +{ 0x00, 0x92, 0x92 },
  1.3263 +{ 0x00, 0x93, 0x93 },
  1.3264 +{ 0x00, 0x94, 0x94 },
  1.3265 +{ 0x00, 0x95, 0x95 },
  1.3266 +{ 0x00, 0x96, 0x96 },
  1.3267 +{ 0x00, 0x97, 0x97 },
  1.3268 +{ 0x00, 0x98, 0x98 },
  1.3269 +{ 0x00, 0x99, 0x99 },
  1.3270 +{ 0x00, 0x9a, 0x9a },
  1.3271 +{ 0x00, 0x9b, 0x9b },
  1.3272 +{ 0x00, 0x9c, 0x9c },
  1.3273 +{ 0x00, 0x9d, 0x9d },
  1.3274 +{ 0x00, 0x9e, 0x9e },
  1.3275 +{ 0x00, 0x9f, 0x9f },
  1.3276 +{ 0x00, 0xa0, 0xa0 },
  1.3277 +{ 0x00, 0xa1, 0xa1 },
  1.3278 +{ 0x00, 0xa2, 0xa2 },
  1.3279 +{ 0x00, 0xa3, 0xa3 },
  1.3280 +{ 0x00, 0xa4, 0xa4 },
  1.3281 +{ 0x00, 0xa5, 0xa5 },
  1.3282 +{ 0x00, 0xa6, 0xa6 },
  1.3283 +{ 0x00, 0xa7, 0xa7 },
  1.3284 +{ 0x00, 0xa8, 0xa8 },
  1.3285 +{ 0x00, 0xa9, 0xa9 },
  1.3286 +{ 0x00, 0xaa, 0xaa },
  1.3287 +{ 0x00, 0xab, 0xab },
  1.3288 +{ 0x00, 0xac, 0xac },
  1.3289 +{ 0x00, 0xad, 0xad },
  1.3290 +{ 0x00, 0xae, 0xae },
  1.3291 +{ 0x00, 0xaf, 0xaf },
  1.3292 +{ 0x00, 0xb0, 0xb0 },
  1.3293 +{ 0x00, 0xb1, 0xb1 },
  1.3294 +{ 0x00, 0xb2, 0xb2 },
  1.3295 +{ 0x00, 0xb3, 0xb3 },
  1.3296 +{ 0x00, 0xb4, 0xb4 },
  1.3297 +{ 0x00, 0xb5, 0xb5 },
  1.3298 +{ 0x00, 0xb6, 0xb6 },
  1.3299 +{ 0x00, 0xb7, 0xb7 },
  1.3300 +{ 0x00, 0xb8, 0xb8 },
  1.3301 +{ 0x00, 0xb9, 0xb9 },
  1.3302 +{ 0x00, 0xba, 0xba },
  1.3303 +{ 0x00, 0xbb, 0xbb },
  1.3304 +{ 0x00, 0xbc, 0xbc },
  1.3305 +{ 0x00, 0xbd, 0xbd },
  1.3306 +{ 0x00, 0xbe, 0xbe },
  1.3307 +{ 0x00, 0xbf, 0xbf },
  1.3308 +{ 0x00, 0xc0, 0xc0 },
  1.3309 +{ 0x00, 0xc1, 0xc1 },
  1.3310 +{ 0x00, 0xc2, 0xc2 },
  1.3311 +{ 0x00, 0xc3, 0xc3 },
  1.3312 +{ 0x00, 0xc4, 0xc4 },
  1.3313 +{ 0x00, 0xc5, 0xc5 },
  1.3314 +{ 0x00, 0xc6, 0xc6 },
  1.3315 +{ 0x00, 0xc7, 0xc7 },
  1.3316 +{ 0x00, 0xc8, 0xc8 },
  1.3317 +{ 0x00, 0xc9, 0xc9 },
  1.3318 +{ 0x00, 0xca, 0xca },
  1.3319 +{ 0x00, 0xcb, 0xcb },
  1.3320 +{ 0x00, 0xcc, 0xcc },
  1.3321 +{ 0x00, 0xcd, 0xcd },
  1.3322 +{ 0x00, 0xce, 0xce },
  1.3323 +{ 0x00, 0xcf, 0xcf },
  1.3324 +{ 0x00, 0xd0, 0xd0 },
  1.3325 +{ 0x00, 0xd1, 0xd1 },
  1.3326 +{ 0x00, 0xd2, 0xd2 },
  1.3327 +{ 0x00, 0xd3, 0xd3 },
  1.3328 +{ 0x00, 0xd4, 0xd4 },
  1.3329 +{ 0x00, 0xd5, 0xd5 },
  1.3330 +{ 0x00, 0xd6, 0xd6 },
  1.3331 +{ 0x00, 0xd7, 0xd7 },
  1.3332 +{ 0x00, 0xd8, 0xd8 },
  1.3333 +{ 0x00, 0xd9, 0xd9 },
  1.3334 +{ 0x00, 0xda, 0xda },
  1.3335 +{ 0x00, 0xdb, 0xdb },
  1.3336 +{ 0x00, 0xdc, 0xdc },
  1.3337 +{ 0x00, 0xdd, 0xdd },
  1.3338 +{ 0x00, 0xde, 0xde },
  1.3339 +{ 0x00, 0xdf, 0xdf },
  1.3340 +{ 0x00, 0xe0, 0xe0 },
  1.3341 +{ 0x00, 0xe1, 0xe1 },
  1.3342 +{ 0x00, 0xe2, 0xe2 },
  1.3343 +{ 0x00, 0xe3, 0xe3 },
  1.3344 +{ 0x00, 0xe4, 0xe4 },
  1.3345 +{ 0x00, 0xe5, 0xe5 },
  1.3346 +{ 0x00, 0xe6, 0xe6 },
  1.3347 +{ 0x00, 0xe7, 0xe7 },
  1.3348 +{ 0x00, 0xe8, 0xe8 },
  1.3349 +{ 0x00, 0xe9, 0xe9 },
  1.3350 +{ 0x00, 0xea, 0xea },
  1.3351 +{ 0x00, 0xeb, 0xeb },
  1.3352 +{ 0x00, 0xec, 0xec },
  1.3353 +{ 0x00, 0xed, 0xed },
  1.3354 +{ 0x00, 0xee, 0xee },
  1.3355 +{ 0x00, 0xef, 0xef },
  1.3356 +{ 0x00, 0xf0, 0xf0 },
  1.3357 +{ 0x00, 0xf1, 0xf1 },
  1.3358 +{ 0x00, 0xf2, 0xf2 },
  1.3359 +{ 0x00, 0xf3, 0xf3 },
  1.3360 +{ 0x00, 0xf4, 0xf4 },
  1.3361 +{ 0x00, 0xf5, 0xf5 },
  1.3362 +{ 0x00, 0xf6, 0xf6 },
  1.3363 +{ 0x00, 0xf7, 0xf7 },
  1.3364 +{ 0x00, 0xf8, 0xf8 },
  1.3365 +{ 0x00, 0xf9, 0xf9 },
  1.3366 +{ 0x00, 0xfa, 0xfa },
  1.3367 +{ 0x00, 0xfb, 0xfb },
  1.3368 +{ 0x00, 0xfc, 0xfc },
  1.3369 +{ 0x00, 0xfd, 0xfd },
  1.3370 +{ 0x00, 0xfe, 0xfe },
  1.3371 +{ 0x00, 0xff, 0xff }
  1.3372 +};
  1.3373 +
  1.3374 +static struct cs_info koi8r_tbl[] = {
  1.3375 +{ 0x00, 0x00, 0x00 },
  1.3376 +{ 0x00, 0x01, 0x01 },
  1.3377 +{ 0x00, 0x02, 0x02 },
  1.3378 +{ 0x00, 0x03, 0x03 },
  1.3379 +{ 0x00, 0x04, 0x04 },
  1.3380 +{ 0x00, 0x05, 0x05 },
  1.3381 +{ 0x00, 0x06, 0x06 },
  1.3382 +{ 0x00, 0x07, 0x07 },
  1.3383 +{ 0x00, 0x08, 0x08 },
  1.3384 +{ 0x00, 0x09, 0x09 },
  1.3385 +{ 0x00, 0x0a, 0x0a },
  1.3386 +{ 0x00, 0x0b, 0x0b },
  1.3387 +{ 0x00, 0x0c, 0x0c },
  1.3388 +{ 0x00, 0x0d, 0x0d },
  1.3389 +{ 0x00, 0x0e, 0x0e },
  1.3390 +{ 0x00, 0x0f, 0x0f },
  1.3391 +{ 0x00, 0x10, 0x10 },
  1.3392 +{ 0x00, 0x11, 0x11 },
  1.3393 +{ 0x00, 0x12, 0x12 },
  1.3394 +{ 0x00, 0x13, 0x13 },
  1.3395 +{ 0x00, 0x14, 0x14 },
  1.3396 +{ 0x00, 0x15, 0x15 },
  1.3397 +{ 0x00, 0x16, 0x16 },
  1.3398 +{ 0x00, 0x17, 0x17 },
  1.3399 +{ 0x00, 0x18, 0x18 },
  1.3400 +{ 0x00, 0x19, 0x19 },
  1.3401 +{ 0x00, 0x1a, 0x1a },
  1.3402 +{ 0x00, 0x1b, 0x1b },
  1.3403 +{ 0x00, 0x1c, 0x1c },
  1.3404 +{ 0x00, 0x1d, 0x1d },
  1.3405 +{ 0x00, 0x1e, 0x1e },
  1.3406 +{ 0x00, 0x1f, 0x1f },
  1.3407 +{ 0x00, 0x20, 0x20 },
  1.3408 +{ 0x00, 0x21, 0x21 },
  1.3409 +{ 0x00, 0x22, 0x22 },
  1.3410 +{ 0x00, 0x23, 0x23 },
  1.3411 +{ 0x00, 0x24, 0x24 },
  1.3412 +{ 0x00, 0x25, 0x25 },
  1.3413 +{ 0x00, 0x26, 0x26 },
  1.3414 +{ 0x00, 0x27, 0x27 },
  1.3415 +{ 0x00, 0x28, 0x28 },
  1.3416 +{ 0x00, 0x29, 0x29 },
  1.3417 +{ 0x00, 0x2a, 0x2a },
  1.3418 +{ 0x00, 0x2b, 0x2b },
  1.3419 +{ 0x00, 0x2c, 0x2c },
  1.3420 +{ 0x00, 0x2d, 0x2d },
  1.3421 +{ 0x00, 0x2e, 0x2e },
  1.3422 +{ 0x00, 0x2f, 0x2f },
  1.3423 +{ 0x00, 0x30, 0x30 },
  1.3424 +{ 0x00, 0x31, 0x31 },
  1.3425 +{ 0x00, 0x32, 0x32 },
  1.3426 +{ 0x00, 0x33, 0x33 },
  1.3427 +{ 0x00, 0x34, 0x34 },
  1.3428 +{ 0x00, 0x35, 0x35 },
  1.3429 +{ 0x00, 0x36, 0x36 },
  1.3430 +{ 0x00, 0x37, 0x37 },
  1.3431 +{ 0x00, 0x38, 0x38 },
  1.3432 +{ 0x00, 0x39, 0x39 },
  1.3433 +{ 0x00, 0x3a, 0x3a },
  1.3434 +{ 0x00, 0x3b, 0x3b },
  1.3435 +{ 0x00, 0x3c, 0x3c },
  1.3436 +{ 0x00, 0x3d, 0x3d },
  1.3437 +{ 0x00, 0x3e, 0x3e },
  1.3438 +{ 0x00, 0x3f, 0x3f },
  1.3439 +{ 0x00, 0x40, 0x40 },
  1.3440 +{ 0x01, 0x61, 0x41 },
  1.3441 +{ 0x01, 0x62, 0x42 },
  1.3442 +{ 0x01, 0x63, 0x43 },
  1.3443 +{ 0x01, 0x64, 0x44 },
  1.3444 +{ 0x01, 0x65, 0x45 },
  1.3445 +{ 0x01, 0x66, 0x46 },
  1.3446 +{ 0x01, 0x67, 0x47 },
  1.3447 +{ 0x01, 0x68, 0x48 },
  1.3448 +{ 0x01, 0x69, 0x49 },
  1.3449 +{ 0x01, 0x6a, 0x4a },
  1.3450 +{ 0x01, 0x6b, 0x4b },
  1.3451 +{ 0x01, 0x6c, 0x4c },
  1.3452 +{ 0x01, 0x6d, 0x4d },
  1.3453 +{ 0x01, 0x6e, 0x4e },
  1.3454 +{ 0x01, 0x6f, 0x4f },
  1.3455 +{ 0x01, 0x70, 0x50 },
  1.3456 +{ 0x01, 0x71, 0x51 },
  1.3457 +{ 0x01, 0x72, 0x52 },
  1.3458 +{ 0x01, 0x73, 0x53 },
  1.3459 +{ 0x01, 0x74, 0x54 },
  1.3460 +{ 0x01, 0x75, 0x55 },
  1.3461 +{ 0x01, 0x76, 0x56 },
  1.3462 +{ 0x01, 0x77, 0x57 },
  1.3463 +{ 0x01, 0x78, 0x58 },
  1.3464 +{ 0x01, 0x79, 0x59 },
  1.3465 +{ 0x01, 0x7a, 0x5a },
  1.3466 +{ 0x00, 0x5b, 0x5b },
  1.3467 +{ 0x00, 0x5c, 0x5c },
  1.3468 +{ 0x00, 0x5d, 0x5d },
  1.3469 +{ 0x00, 0x5e, 0x5e },
  1.3470 +{ 0x00, 0x5f, 0x5f },
  1.3471 +{ 0x00, 0x60, 0x60 },
  1.3472 +{ 0x00, 0x61, 0x41 },
  1.3473 +{ 0x00, 0x62, 0x42 },
  1.3474 +{ 0x00, 0x63, 0x43 },
  1.3475 +{ 0x00, 0x64, 0x44 },
  1.3476 +{ 0x00, 0x65, 0x45 },
  1.3477 +{ 0x00, 0x66, 0x46 },
  1.3478 +{ 0x00, 0x67, 0x47 },
  1.3479 +{ 0x00, 0x68, 0x48 },
  1.3480 +{ 0x00, 0x69, 0x49 },
  1.3481 +{ 0x00, 0x6a, 0x4a },
  1.3482 +{ 0x00, 0x6b, 0x4b },
  1.3483 +{ 0x00, 0x6c, 0x4c },
  1.3484 +{ 0x00, 0x6d, 0x4d },
  1.3485 +{ 0x00, 0x6e, 0x4e },
  1.3486 +{ 0x00, 0x6f, 0x4f },
  1.3487 +{ 0x00, 0x70, 0x50 },
  1.3488 +{ 0x00, 0x71, 0x51 },
  1.3489 +{ 0x00, 0x72, 0x52 },
  1.3490 +{ 0x00, 0x73, 0x53 },
  1.3491 +{ 0x00, 0x74, 0x54 },
  1.3492 +{ 0x00, 0x75, 0x55 },
  1.3493 +{ 0x00, 0x76, 0x56 },
  1.3494 +{ 0x00, 0x77, 0x57 },
  1.3495 +{ 0x00, 0x78, 0x58 },
  1.3496 +{ 0x00, 0x79, 0x59 },
  1.3497 +{ 0x00, 0x7a, 0x5a },
  1.3498 +{ 0x00, 0x7b, 0x7b },
  1.3499 +{ 0x00, 0x7c, 0x7c },
  1.3500 +{ 0x00, 0x7d, 0x7d },
  1.3501 +{ 0x00, 0x7e, 0x7e },
  1.3502 +{ 0x00, 0x7f, 0x7f },
  1.3503 +{ 0x00, 0x80, 0x80 },
  1.3504 +{ 0x00, 0x81, 0x81 },
  1.3505 +{ 0x00, 0x82, 0x82 },
  1.3506 +{ 0x00, 0x83, 0x83 },
  1.3507 +{ 0x00, 0x84, 0x84 },
  1.3508 +{ 0x00, 0x85, 0x85 },
  1.3509 +{ 0x00, 0x86, 0x86 },
  1.3510 +{ 0x00, 0x87, 0x87 },
  1.3511 +{ 0x00, 0x88, 0x88 },
  1.3512 +{ 0x00, 0x89, 0x89 },
  1.3513 +{ 0x00, 0x8a, 0x8a },
  1.3514 +{ 0x00, 0x8b, 0x8b },
  1.3515 +{ 0x00, 0x8c, 0x8c },
  1.3516 +{ 0x00, 0x8d, 0x8d },
  1.3517 +{ 0x00, 0x8e, 0x8e },
  1.3518 +{ 0x00, 0x8f, 0x8f },
  1.3519 +{ 0x00, 0x90, 0x90 },
  1.3520 +{ 0x00, 0x91, 0x91 },
  1.3521 +{ 0x00, 0x92, 0x92 },
  1.3522 +{ 0x00, 0x93, 0x93 },
  1.3523 +{ 0x00, 0x94, 0x94 },
  1.3524 +{ 0x00, 0x95, 0x95 },
  1.3525 +{ 0x00, 0x96, 0x96 },
  1.3526 +{ 0x00, 0x97, 0x97 },
  1.3527 +{ 0x00, 0x98, 0x98 },
  1.3528 +{ 0x00, 0x99, 0x99 },
  1.3529 +{ 0x00, 0x9a, 0x9a },
  1.3530 +{ 0x00, 0x9b, 0x9b },
  1.3531 +{ 0x00, 0x9c, 0x9c },
  1.3532 +{ 0x00, 0x9d, 0x9d },
  1.3533 +{ 0x00, 0x9e, 0x9e },
  1.3534 +{ 0x00, 0x9f, 0x9f },
  1.3535 +{ 0x00, 0xa0, 0xa0 },
  1.3536 +{ 0x00, 0xa1, 0xa1 },
  1.3537 +{ 0x00, 0xa2, 0xa2 },
  1.3538 +{ 0x00, 0xa3, 0xb3 },
  1.3539 +{ 0x00, 0xa4, 0xa4 },
  1.3540 +{ 0x00, 0xa5, 0xa5 },
  1.3541 +{ 0x00, 0xa6, 0xa6 },
  1.3542 +{ 0x00, 0xa7, 0xa7 },
  1.3543 +{ 0x00, 0xa8, 0xa8 },
  1.3544 +{ 0x00, 0xa9, 0xa9 },
  1.3545 +{ 0x00, 0xaa, 0xaa },
  1.3546 +{ 0x00, 0xab, 0xab },
  1.3547 +{ 0x00, 0xac, 0xac },
  1.3548 +{ 0x00, 0xad, 0xad },
  1.3549 +{ 0x00, 0xae, 0xae },
  1.3550 +{ 0x00, 0xaf, 0xaf },
  1.3551 +{ 0x00, 0xb0, 0xb0 },
  1.3552 +{ 0x00, 0xb1, 0xb1 },
  1.3553 +{ 0x00, 0xb2, 0xb2 },
  1.3554 +{ 0x01, 0xa3, 0xb3 },
  1.3555 +{ 0x00, 0xb4, 0xb4 },
  1.3556 +{ 0x00, 0xb5, 0xb5 },
  1.3557 +{ 0x00, 0xb6, 0xb6 },
  1.3558 +{ 0x00, 0xb7, 0xb7 },
  1.3559 +{ 0x00, 0xb8, 0xb8 },
  1.3560 +{ 0x00, 0xb9, 0xb9 },
  1.3561 +{ 0x00, 0xba, 0xba },
  1.3562 +{ 0x00, 0xbb, 0xbb },
  1.3563 +{ 0x00, 0xbc, 0xbc },
  1.3564 +{ 0x00, 0xbd, 0xbd },
  1.3565 +{ 0x00, 0xbe, 0xbe },
  1.3566 +{ 0x00, 0xbf, 0xbf },
  1.3567 +{ 0x00, 0xc0, 0xe0 },
  1.3568 +{ 0x00, 0xc1, 0xe1 },
  1.3569 +{ 0x00, 0xc2, 0xe2 },
  1.3570 +{ 0x00, 0xc3, 0xe3 },
  1.3571 +{ 0x00, 0xc4, 0xe4 },
  1.3572 +{ 0x00, 0xc5, 0xe5 },
  1.3573 +{ 0x00, 0xc6, 0xe6 },
  1.3574 +{ 0x00, 0xc7, 0xe7 },
  1.3575 +{ 0x00, 0xc8, 0xe8 },
  1.3576 +{ 0x00, 0xc9, 0xe9 },
  1.3577 +{ 0x00, 0xca, 0xea },
  1.3578 +{ 0x00, 0xcb, 0xeb },
  1.3579 +{ 0x00, 0xcc, 0xec },
  1.3580 +{ 0x00, 0xcd, 0xed },
  1.3581 +{ 0x00, 0xce, 0xee },
  1.3582 +{ 0x00, 0xcf, 0xef },
  1.3583 +{ 0x00, 0xd0, 0xf0 },
  1.3584 +{ 0x00, 0xd1, 0xf1 },
  1.3585 +{ 0x00, 0xd2, 0xf2 },
  1.3586 +{ 0x00, 0xd3, 0xf3 },
  1.3587 +{ 0x00, 0xd4, 0xf4 },
  1.3588 +{ 0x00, 0xd5, 0xf5 },
  1.3589 +{ 0x00, 0xd6, 0xf6 },
  1.3590 +{ 0x00, 0xd7, 0xf7 },
  1.3591 +{ 0x00, 0xd8, 0xf8 },
  1.3592 +{ 0x00, 0xd9, 0xf9 },
  1.3593 +{ 0x00, 0xda, 0xfa },
  1.3594 +{ 0x00, 0xdb, 0xfb },
  1.3595 +{ 0x00, 0xdc, 0xfc },
  1.3596 +{ 0x00, 0xdd, 0xfd },
  1.3597 +{ 0x00, 0xde, 0xfe },
  1.3598 +{ 0x00, 0xdf, 0xff },
  1.3599 +{ 0x01, 0xc0, 0xe0 },
  1.3600 +{ 0x01, 0xc1, 0xe1 },
  1.3601 +{ 0x01, 0xc2, 0xe2 },
  1.3602 +{ 0x01, 0xc3, 0xe3 },
  1.3603 +{ 0x01, 0xc4, 0xe4 },
  1.3604 +{ 0x01, 0xc5, 0xe5 },
  1.3605 +{ 0x01, 0xc6, 0xe6 },
  1.3606 +{ 0x01, 0xc7, 0xe7 },
  1.3607 +{ 0x01, 0xc8, 0xe8 },
  1.3608 +{ 0x01, 0xc9, 0xe9 },
  1.3609 +{ 0x01, 0xca, 0xea },
  1.3610 +{ 0x01, 0xcb, 0xeb },
  1.3611 +{ 0x01, 0xcc, 0xec },
  1.3612 +{ 0x01, 0xcd, 0xed },
  1.3613 +{ 0x01, 0xce, 0xee },
  1.3614 +{ 0x01, 0xcf, 0xef },
  1.3615 +{ 0x01, 0xd0, 0xf0 },
  1.3616 +{ 0x01, 0xd1, 0xf1 },
  1.3617 +{ 0x01, 0xd2, 0xf2 },
  1.3618 +{ 0x01, 0xd3, 0xf3 },
  1.3619 +{ 0x01, 0xd4, 0xf4 },
  1.3620 +{ 0x01, 0xd5, 0xf5 },
  1.3621 +{ 0x01, 0xd6, 0xf6 },
  1.3622 +{ 0x01, 0xd7, 0xf7 },
  1.3623 +{ 0x01, 0xd8, 0xf8 },
  1.3624 +{ 0x01, 0xd9, 0xf9 },
  1.3625 +{ 0x01, 0xda, 0xfa },
  1.3626 +{ 0x01, 0xdb, 0xfb },
  1.3627 +{ 0x01, 0xdc, 0xfc },
  1.3628 +{ 0x01, 0xdd, 0xfd },
  1.3629 +{ 0x01, 0xde, 0xfe },
  1.3630 +{ 0x01, 0xdf, 0xff }
  1.3631 +};
  1.3632 +
  1.3633 +static struct cs_info koi8u_tbl[] = {
  1.3634 +{ 0x00, 0x00, 0x00 },
  1.3635 +{ 0x00, 0x01, 0x01 },
  1.3636 +{ 0x00, 0x02, 0x02 },
  1.3637 +{ 0x00, 0x03, 0x03 },
  1.3638 +{ 0x00, 0x04, 0x04 },
  1.3639 +{ 0x00, 0x05, 0x05 },
  1.3640 +{ 0x00, 0x06, 0x06 },
  1.3641 +{ 0x00, 0x07, 0x07 },
  1.3642 +{ 0x00, 0x08, 0x08 },
  1.3643 +{ 0x00, 0x09, 0x09 },
  1.3644 +{ 0x00, 0x0a, 0x0a },
  1.3645 +{ 0x00, 0x0b, 0x0b },
  1.3646 +{ 0x00, 0x0c, 0x0c },
  1.3647 +{ 0x00, 0x0d, 0x0d },
  1.3648 +{ 0x00, 0x0e, 0x0e },
  1.3649 +{ 0x00, 0x0f, 0x0f },
  1.3650 +{ 0x00, 0x10, 0x10 },
  1.3651 +{ 0x00, 0x11, 0x11 },
  1.3652 +{ 0x00, 0x12, 0x12 },
  1.3653 +{ 0x00, 0x13, 0x13 },
  1.3654 +{ 0x00, 0x14, 0x14 },
  1.3655 +{ 0x00, 0x15, 0x15 },
  1.3656 +{ 0x00, 0x16, 0x16 },
  1.3657 +{ 0x00, 0x17, 0x17 },
  1.3658 +{ 0x00, 0x18, 0x18 },
  1.3659 +{ 0x00, 0x19, 0x19 },
  1.3660 +{ 0x00, 0x1a, 0x1a },
  1.3661 +{ 0x00, 0x1b, 0x1b },
  1.3662 +{ 0x00, 0x1c, 0x1c },
  1.3663 +{ 0x00, 0x1d, 0x1d },
  1.3664 +{ 0x00, 0x1e, 0x1e },
  1.3665 +{ 0x00, 0x1f, 0x1f },
  1.3666 +{ 0x00, 0x20, 0x20 },
  1.3667 +{ 0x00, 0x21, 0x21 },
  1.3668 +{ 0x00, 0x22, 0x22 },
  1.3669 +{ 0x00, 0x23, 0x23 },
  1.3670 +{ 0x00, 0x24, 0x24 },
  1.3671 +{ 0x00, 0x25, 0x25 },
  1.3672 +{ 0x00, 0x26, 0x26 },
  1.3673 +{ 0x00, 0x27, 0x27 },
  1.3674 +{ 0x00, 0x28, 0x28 },
  1.3675 +{ 0x00, 0x29, 0x29 },
  1.3676 +{ 0x00, 0x2a, 0x2a },
  1.3677 +{ 0x00, 0x2b, 0x2b },
  1.3678 +{ 0x00, 0x2c, 0x2c },
  1.3679 +{ 0x00, 0x2d, 0x2d },
  1.3680 +{ 0x00, 0x2e, 0x2e },
  1.3681 +{ 0x00, 0x2f, 0x2f },
  1.3682 +{ 0x00, 0x30, 0x30 },
  1.3683 +{ 0x00, 0x31, 0x31 },
  1.3684 +{ 0x00, 0x32, 0x32 },
  1.3685 +{ 0x00, 0x33, 0x33 },
  1.3686 +{ 0x00, 0x34, 0x34 },
  1.3687 +{ 0x00, 0x35, 0x35 },
  1.3688 +{ 0x00, 0x36, 0x36 },
  1.3689 +{ 0x00, 0x37, 0x37 },
  1.3690 +{ 0x00, 0x38, 0x38 },
  1.3691 +{ 0x00, 0x39, 0x39 },
  1.3692 +{ 0x00, 0x3a, 0x3a },
  1.3693 +{ 0x00, 0x3b, 0x3b },
  1.3694 +{ 0x00, 0x3c, 0x3c },
  1.3695 +{ 0x00, 0x3d, 0x3d },
  1.3696 +{ 0x00, 0x3e, 0x3e },
  1.3697 +{ 0x00, 0x3f, 0x3f },
  1.3698 +{ 0x00, 0x40, 0x40 },
  1.3699 +{ 0x01, 0x61, 0x41 },
  1.3700 +{ 0x01, 0x62, 0x42 },
  1.3701 +{ 0x01, 0x63, 0x43 },
  1.3702 +{ 0x01, 0x64, 0x44 },
  1.3703 +{ 0x01, 0x65, 0x45 },
  1.3704 +{ 0x01, 0x66, 0x46 },
  1.3705 +{ 0x01, 0x67, 0x47 },
  1.3706 +{ 0x01, 0x68, 0x48 },
  1.3707 +{ 0x01, 0x69, 0x49 },
  1.3708 +{ 0x01, 0x6a, 0x4a },
  1.3709 +{ 0x01, 0x6b, 0x4b },
  1.3710 +{ 0x01, 0x6c, 0x4c },
  1.3711 +{ 0x01, 0x6d, 0x4d },
  1.3712 +{ 0x01, 0x6e, 0x4e },
  1.3713 +{ 0x01, 0x6f, 0x4f },
  1.3714 +{ 0x01, 0x70, 0x50 },
  1.3715 +{ 0x01, 0x71, 0x51 },
  1.3716 +{ 0x01, 0x72, 0x52 },
  1.3717 +{ 0x01, 0x73, 0x53 },
  1.3718 +{ 0x01, 0x74, 0x54 },
  1.3719 +{ 0x01, 0x75, 0x55 },
  1.3720 +{ 0x01, 0x76, 0x56 },
  1.3721 +{ 0x01, 0x77, 0x57 },
  1.3722 +{ 0x01, 0x78, 0x58 },
  1.3723 +{ 0x01, 0x79, 0x59 },
  1.3724 +{ 0x01, 0x7a, 0x5a },
  1.3725 +{ 0x00, 0x5b, 0x5b },
  1.3726 +{ 0x00, 0x5c, 0x5c },
  1.3727 +{ 0x00, 0x5d, 0x5d },
  1.3728 +{ 0x00, 0x5e, 0x5e },
  1.3729 +{ 0x00, 0x5f, 0x5f },
  1.3730 +{ 0x00, 0x60, 0x60 },
  1.3731 +{ 0x00, 0x61, 0x41 },
  1.3732 +{ 0x00, 0x62, 0x42 },
  1.3733 +{ 0x00, 0x63, 0x43 },
  1.3734 +{ 0x00, 0x64, 0x44 },
  1.3735 +{ 0x00, 0x65, 0x45 },
  1.3736 +{ 0x00, 0x66, 0x46 },
  1.3737 +{ 0x00, 0x67, 0x47 },
  1.3738 +{ 0x00, 0x68, 0x48 },
  1.3739 +{ 0x00, 0x69, 0x49 },
  1.3740 +{ 0x00, 0x6a, 0x4a },
  1.3741 +{ 0x00, 0x6b, 0x4b },
  1.3742 +{ 0x00, 0x6c, 0x4c },
  1.3743 +{ 0x00, 0x6d, 0x4d },
  1.3744 +{ 0x00, 0x6e, 0x4e },
  1.3745 +{ 0x00, 0x6f, 0x4f },
  1.3746 +{ 0x00, 0x70, 0x50 },
  1.3747 +{ 0x00, 0x71, 0x51 },
  1.3748 +{ 0x00, 0x72, 0x52 },
  1.3749 +{ 0x00, 0x73, 0x53 },
  1.3750 +{ 0x00, 0x74, 0x54 },
  1.3751 +{ 0x00, 0x75, 0x55 },
  1.3752 +{ 0x00, 0x76, 0x56 },
  1.3753 +{ 0x00, 0x77, 0x57 },
  1.3754 +{ 0x00, 0x78, 0x58 },
  1.3755 +{ 0x00, 0x79, 0x59 },
  1.3756 +{ 0x00, 0x7a, 0x5a },
  1.3757 +{ 0x00, 0x7b, 0x7b },
  1.3758 +{ 0x00, 0x7c, 0x7c },
  1.3759 +{ 0x00, 0x7d, 0x7d },
  1.3760 +{ 0x00, 0x7e, 0x7e },
  1.3761 +{ 0x00, 0x7f, 0x7f },
  1.3762 +{ 0x00, 0x80, 0x80 },
  1.3763 +{ 0x00, 0x81, 0x81 },
  1.3764 +{ 0x00, 0x82, 0x82 },
  1.3765 +{ 0x00, 0x83, 0x83 },
  1.3766 +{ 0x00, 0x84, 0x84 },
  1.3767 +{ 0x00, 0x85, 0x85 },
  1.3768 +{ 0x00, 0x86, 0x86 },
  1.3769 +{ 0x00, 0x87, 0x87 },
  1.3770 +{ 0x00, 0x88, 0x88 },
  1.3771 +{ 0x00, 0x89, 0x89 },
  1.3772 +{ 0x00, 0x8a, 0x8a },
  1.3773 +{ 0x00, 0x8b, 0x8b },
  1.3774 +{ 0x00, 0x8c, 0x8c },
  1.3775 +{ 0x00, 0x8d, 0x8d },
  1.3776 +{ 0x00, 0x8e, 0x8e },
  1.3777 +{ 0x00, 0x8f, 0x8f },
  1.3778 +{ 0x00, 0x90, 0x90 },
  1.3779 +{ 0x00, 0x91, 0x91 },
  1.3780 +{ 0x00, 0x92, 0x92 },
  1.3781 +{ 0x00, 0x93, 0x93 },
  1.3782 +{ 0x00, 0x94, 0x94 },
  1.3783 +{ 0x00, 0x95, 0x95 },
  1.3784 +{ 0x00, 0x96, 0x96 },
  1.3785 +{ 0x00, 0x97, 0x97 },
  1.3786 +{ 0x00, 0x98, 0x98 },
  1.3787 +{ 0x00, 0x99, 0x99 },
  1.3788 +{ 0x00, 0x9a, 0x9a },
  1.3789 +{ 0x00, 0x9b, 0x9b },
  1.3790 +{ 0x00, 0x9c, 0x9c },
  1.3791 +{ 0x00, 0x9d, 0x9d },
  1.3792 +{ 0x00, 0x9e, 0x9e },
  1.3793 +{ 0x00, 0x9f, 0x9f },
  1.3794 +{ 0x00, 0xa0, 0xa0 },
  1.3795 +{ 0x00, 0xa1, 0xa1 },
  1.3796 +{ 0x00, 0xa2, 0xa2 },
  1.3797 +{ 0x00, 0xa3, 0xb3 },
  1.3798 +{ 0x00, 0xa4, 0xb4 }, /* ie */
  1.3799 +{ 0x00, 0xa5, 0xa5 },
  1.3800 +{ 0x00, 0xa6, 0xb6 }, /* i */
  1.3801 +{ 0x00, 0xa7, 0xb7 }, /* ii */
  1.3802 +{ 0x00, 0xa8, 0xa8 },
  1.3803 +{ 0x00, 0xa9, 0xa9 },
  1.3804 +{ 0x00, 0xaa, 0xaa },
  1.3805 +{ 0x00, 0xab, 0xab },
  1.3806 +{ 0x00, 0xac, 0xac },
  1.3807 +{ 0x00, 0xad, 0xbd }, /* g'' */
  1.3808 +{ 0x00, 0xae, 0xae },
  1.3809 +{ 0x00, 0xaf, 0xaf },
  1.3810 +{ 0x00, 0xb0, 0xb0 },
  1.3811 +{ 0x00, 0xb1, 0xb1 },
  1.3812 +{ 0x00, 0xb2, 0xb2 },
  1.3813 +{ 0x01, 0xa3, 0xb3 },
  1.3814 +{ 0x00, 0xb4, 0xb4 }, /* IE */
  1.3815 +{ 0x00, 0xb5, 0xb5 },
  1.3816 +{ 0x00, 0xb6, 0xb6 }, /* I */
  1.3817 +{ 0x00, 0xb7, 0xb7 }, /* II */
  1.3818 +{ 0x00, 0xb8, 0xb8 },
  1.3819 +{ 0x00, 0xb9, 0xb9 },
  1.3820 +{ 0x00, 0xba, 0xba },
  1.3821 +{ 0x00, 0xbb, 0xbb },
  1.3822 +{ 0x00, 0xbc, 0xbc },
  1.3823 +{ 0x00, 0xbd, 0xbd },
  1.3824 +{ 0x00, 0xbe, 0xbe },
  1.3825 +{ 0x00, 0xbf, 0xbf },
  1.3826 +{ 0x00, 0xc0, 0xe0 },
  1.3827 +{ 0x00, 0xc1, 0xe1 },
  1.3828 +{ 0x00, 0xc2, 0xe2 },
  1.3829 +{ 0x00, 0xc3, 0xe3 },
  1.3830 +{ 0x00, 0xc4, 0xe4 },
  1.3831 +{ 0x00, 0xc5, 0xe5 },
  1.3832 +{ 0x00, 0xc6, 0xe6 },
  1.3833 +{ 0x00, 0xc7, 0xe7 },
  1.3834 +{ 0x00, 0xc8, 0xe8 },
  1.3835 +{ 0x00, 0xc9, 0xe9 },
  1.3836 +{ 0x00, 0xca, 0xea },
  1.3837 +{ 0x00, 0xcb, 0xeb },
  1.3838 +{ 0x00, 0xcc, 0xec },
  1.3839 +{ 0x00, 0xcd, 0xed },
  1.3840 +{ 0x00, 0xce, 0xee },
  1.3841 +{ 0x00, 0xcf, 0xef },
  1.3842 +{ 0x00, 0xd0, 0xf0 },
  1.3843 +{ 0x00, 0xd1, 0xf1 },
  1.3844 +{ 0x00, 0xd2, 0xf2 },
  1.3845 +{ 0x00, 0xd3, 0xf3 },
  1.3846 +{ 0x00, 0xd4, 0xf4 },
  1.3847 +{ 0x00, 0xd5, 0xf5 },
  1.3848 +{ 0x00, 0xd6, 0xf6 },
  1.3849 +{ 0x00, 0xd7, 0xf7 },
  1.3850 +{ 0x00, 0xd8, 0xf8 },
  1.3851 +{ 0x00, 0xd9, 0xf9 },
  1.3852 +{ 0x00, 0xda, 0xfa },
  1.3853 +{ 0x00, 0xdb, 0xfb },
  1.3854 +{ 0x00, 0xdc, 0xfc },
  1.3855 +{ 0x00, 0xdd, 0xfd },
  1.3856 +{ 0x00, 0xde, 0xfe },
  1.3857 +{ 0x00, 0xdf, 0xff },
  1.3858 +{ 0x01, 0xc0, 0xe0 },
  1.3859 +{ 0x01, 0xc1, 0xe1 },
  1.3860 +{ 0x01, 0xc2, 0xe2 },
  1.3861 +{ 0x01, 0xc3, 0xe3 },
  1.3862 +{ 0x01, 0xc4, 0xe4 },
  1.3863 +{ 0x01, 0xc5, 0xe5 },
  1.3864 +{ 0x01, 0xc6, 0xe6 },
  1.3865 +{ 0x01, 0xc7, 0xe7 },
  1.3866 +{ 0x01, 0xc8, 0xe8 },
  1.3867 +{ 0x01, 0xc9, 0xe9 },
  1.3868 +{ 0x01, 0xca, 0xea },
  1.3869 +{ 0x01, 0xcb, 0xeb },
  1.3870 +{ 0x01, 0xcc, 0xec },
  1.3871 +{ 0x01, 0xcd, 0xed },
  1.3872 +{ 0x01, 0xce, 0xee },
  1.3873 +{ 0x01, 0xcf, 0xef },
  1.3874 +{ 0x01, 0xd0, 0xf0 },
  1.3875 +{ 0x01, 0xd1, 0xf1 },
  1.3876 +{ 0x01, 0xd2, 0xf2 },
  1.3877 +{ 0x01, 0xd3, 0xf3 },
  1.3878 +{ 0x01, 0xd4, 0xf4 },
  1.3879 +{ 0x01, 0xd5, 0xf5 },
  1.3880 +{ 0x01, 0xd6, 0xf6 },
  1.3881 +{ 0x01, 0xd7, 0xf7 },
  1.3882 +{ 0x01, 0xd8, 0xf8 },
  1.3883 +{ 0x01, 0xd9, 0xf9 },
  1.3884 +{ 0x01, 0xda, 0xfa },
  1.3885 +{ 0x01, 0xdb, 0xfb },
  1.3886 +{ 0x01, 0xdc, 0xfc },
  1.3887 +{ 0x01, 0xdd, 0xfd },
  1.3888 +{ 0x01, 0xde, 0xfe },
  1.3889 +{ 0x01, 0xdf, 0xff }
  1.3890 +};
  1.3891 +
  1.3892 +static struct cs_info cp1251_tbl[] = {
  1.3893 +{ 0x00, 0x00, 0x00 },
  1.3894 +{ 0x00, 0x01, 0x01 },
  1.3895 +{ 0x00, 0x02, 0x02 },
  1.3896 +{ 0x00, 0x03, 0x03 },
  1.3897 +{ 0x00, 0x04, 0x04 },
  1.3898 +{ 0x00, 0x05, 0x05 },
  1.3899 +{ 0x00, 0x06, 0x06 },
  1.3900 +{ 0x00, 0x07, 0x07 },
  1.3901 +{ 0x00, 0x08, 0x08 },
  1.3902 +{ 0x00, 0x09, 0x09 },
  1.3903 +{ 0x00, 0x0a, 0x0a },
  1.3904 +{ 0x00, 0x0b, 0x0b },
  1.3905 +{ 0x00, 0x0c, 0x0c },
  1.3906 +{ 0x00, 0x0d, 0x0d },
  1.3907 +{ 0x00, 0x0e, 0x0e },
  1.3908 +{ 0x00, 0x0f, 0x0f },
  1.3909 +{ 0x00, 0x10, 0x10 },
  1.3910 +{ 0x00, 0x11, 0x11 },
  1.3911 +{ 0x00, 0x12, 0x12 },
  1.3912 +{ 0x00, 0x13, 0x13 },
  1.3913 +{ 0x00, 0x14, 0x14 },
  1.3914 +{ 0x00, 0x15, 0x15 },
  1.3915 +{ 0x00, 0x16, 0x16 },
  1.3916 +{ 0x00, 0x17, 0x17 },
  1.3917 +{ 0x00, 0x18, 0x18 },
  1.3918 +{ 0x00, 0x19, 0x19 },
  1.3919 +{ 0x00, 0x1a, 0x1a },
  1.3920 +{ 0x00, 0x1b, 0x1b },
  1.3921 +{ 0x00, 0x1c, 0x1c },
  1.3922 +{ 0x00, 0x1d, 0x1d },
  1.3923 +{ 0x00, 0x1e, 0x1e },
  1.3924 +{ 0x00, 0x1f, 0x1f },
  1.3925 +{ 0x00, 0x20, 0x20 },
  1.3926 +{ 0x00, 0x21, 0x21 },
  1.3927 +{ 0x00, 0x22, 0x22 },
  1.3928 +{ 0x00, 0x23, 0x23 },
  1.3929 +{ 0x00, 0x24, 0x24 },
  1.3930 +{ 0x00, 0x25, 0x25 },
  1.3931 +{ 0x00, 0x26, 0x26 },
  1.3932 +{ 0x00, 0x27, 0x27 },
  1.3933 +{ 0x00, 0x28, 0x28 },
  1.3934 +{ 0x00, 0x29, 0x29 },
  1.3935 +{ 0x00, 0x2a, 0x2a },
  1.3936 +{ 0x00, 0x2b, 0x2b },
  1.3937 +{ 0x00, 0x2c, 0x2c },
  1.3938 +{ 0x00, 0x2d, 0x2d },
  1.3939 +{ 0x00, 0x2e, 0x2e },
  1.3940 +{ 0x00, 0x2f, 0x2f },
  1.3941 +{ 0x00, 0x30, 0x30 },
  1.3942 +{ 0x00, 0x31, 0x31 },
  1.3943 +{ 0x00, 0x32, 0x32 },
  1.3944 +{ 0x00, 0x33, 0x33 },
  1.3945 +{ 0x00, 0x34, 0x34 },
  1.3946 +{ 0x00, 0x35, 0x35 },
  1.3947 +{ 0x00, 0x36, 0x36 },
  1.3948 +{ 0x00, 0x37, 0x37 },
  1.3949 +{ 0x00, 0x38, 0x38 },
  1.3950 +{ 0x00, 0x39, 0x39 },
  1.3951 +{ 0x00, 0x3a, 0x3a },
  1.3952 +{ 0x00, 0x3b, 0x3b },
  1.3953 +{ 0x00, 0x3c, 0x3c },
  1.3954 +{ 0x00, 0x3d, 0x3d },
  1.3955 +{ 0x00, 0x3e, 0x3e },
  1.3956 +{ 0x00, 0x3f, 0x3f },
  1.3957 +{ 0x00, 0x40, 0x40 },
  1.3958 +{ 0x01, 0x61, 0x41 },
  1.3959 +{ 0x01, 0x62, 0x42 },
  1.3960 +{ 0x01, 0x63, 0x43 },
  1.3961 +{ 0x01, 0x64, 0x44 },
  1.3962 +{ 0x01, 0x65, 0x45 },
  1.3963 +{ 0x01, 0x66, 0x46 },
  1.3964 +{ 0x01, 0x67, 0x47 },
  1.3965 +{ 0x01, 0x68, 0x48 },
  1.3966 +{ 0x01, 0x69, 0x49 },
  1.3967 +{ 0x01, 0x6a, 0x4a },
  1.3968 +{ 0x01, 0x6b, 0x4b },
  1.3969 +{ 0x01, 0x6c, 0x4c },
  1.3970 +{ 0x01, 0x6d, 0x4d },
  1.3971 +{ 0x01, 0x6e, 0x4e },
  1.3972 +{ 0x01, 0x6f, 0x4f },
  1.3973 +{ 0x01, 0x70, 0x50 },
  1.3974 +{ 0x01, 0x71, 0x51 },
  1.3975 +{ 0x01, 0x72, 0x52 },
  1.3976 +{ 0x01, 0x73, 0x53 },
  1.3977 +{ 0x01, 0x74, 0x54 },
  1.3978 +{ 0x01, 0x75, 0x55 },
  1.3979 +{ 0x01, 0x76, 0x56 },
  1.3980 +{ 0x01, 0x77, 0x57 },
  1.3981 +{ 0x01, 0x78, 0x58 },
  1.3982 +{ 0x01, 0x79, 0x59 },
  1.3983 +{ 0x01, 0x7a, 0x5a },
  1.3984 +{ 0x00, 0x5b, 0x5b },
  1.3985 +{ 0x00, 0x5c, 0x5c },
  1.3986 +{ 0x00, 0x5d, 0x5d },
  1.3987 +{ 0x00, 0x5e, 0x5e },
  1.3988 +{ 0x00, 0x5f, 0x5f },
  1.3989 +{ 0x00, 0x60, 0x60 },
  1.3990 +{ 0x00, 0x61, 0x41 },
  1.3991 +{ 0x00, 0x62, 0x42 },
  1.3992 +{ 0x00, 0x63, 0x43 },
  1.3993 +{ 0x00, 0x64, 0x44 },
  1.3994 +{ 0x00, 0x65, 0x45 },
  1.3995 +{ 0x00, 0x66, 0x46 },
  1.3996 +{ 0x00, 0x67, 0x47 },
  1.3997 +{ 0x00, 0x68, 0x48 },
  1.3998 +{ 0x00, 0x69, 0x49 },
  1.3999 +{ 0x00, 0x6a, 0x4a },
  1.4000 +{ 0x00, 0x6b, 0x4b },
  1.4001 +{ 0x00, 0x6c, 0x4c },
  1.4002 +{ 0x00, 0x6d, 0x4d },
  1.4003 +{ 0x00, 0x6e, 0x4e },
  1.4004 +{ 0x00, 0x6f, 0x4f },
  1.4005 +{ 0x00, 0x70, 0x50 },
  1.4006 +{ 0x00, 0x71, 0x51 },
  1.4007 +{ 0x00, 0x72, 0x52 },
  1.4008 +{ 0x00, 0x73, 0x53 },
  1.4009 +{ 0x00, 0x74, 0x54 },
  1.4010 +{ 0x00, 0x75, 0x55 },
  1.4011 +{ 0x00, 0x76, 0x56 },
  1.4012 +{ 0x00, 0x77, 0x57 },
  1.4013 +{ 0x00, 0x78, 0x58 },
  1.4014 +{ 0x00, 0x79, 0x59 },
  1.4015 +{ 0x00, 0x7a, 0x5a },
  1.4016 +{ 0x00, 0x7b, 0x7b },
  1.4017 +{ 0x00, 0x7c, 0x7c },
  1.4018 +{ 0x00, 0x7d, 0x7d },
  1.4019 +{ 0x00, 0x7e, 0x7e },
  1.4020 +{ 0x00, 0x7f, 0x7f },
  1.4021 +{ 0x01, 0x90, 0x80 },
  1.4022 +{ 0x01, 0x83, 0x81 },
  1.4023 +{ 0x00, 0x82, 0x82 },
  1.4024 +{ 0x00, 0x83, 0x81 },
  1.4025 +{ 0x00, 0x84, 0x84 },
  1.4026 +{ 0x00, 0x85, 0x85 },
  1.4027 +{ 0x00, 0x86, 0x86 },
  1.4028 +{ 0x00, 0x87, 0x87 },
  1.4029 +{ 0x00, 0x88, 0x88 },
  1.4030 +{ 0x00, 0x89, 0x89 },
  1.4031 +{ 0x01, 0x9a, 0x8a },
  1.4032 +{ 0x00, 0x8b, 0x8b },
  1.4033 +{ 0x01, 0x9c, 0x8c },
  1.4034 +{ 0x01, 0x9d, 0x8d },
  1.4035 +{ 0x01, 0x9e, 0x8e },
  1.4036 +{ 0x01, 0x9f, 0x8f },
  1.4037 +{ 0x00, 0x90, 0x80 },
  1.4038 +{ 0x00, 0x91, 0x91 },
  1.4039 +{ 0x00, 0x92, 0x92 },
  1.4040 +{ 0x00, 0x93, 0x93 },
  1.4041 +{ 0x00, 0x94, 0x94 },
  1.4042 +{ 0x00, 0x95, 0x95 },
  1.4043 +{ 0x00, 0x96, 0x96 },
  1.4044 +{ 0x00, 0x97, 0x97 },
  1.4045 +{ 0x00, 0x98, 0x98 },
  1.4046 +{ 0x00, 0x99, 0x99 },
  1.4047 +{ 0x00, 0x9a, 0x8a },
  1.4048 +{ 0x00, 0x9b, 0x9b },
  1.4049 +{ 0x00, 0x9c, 0x8c },
  1.4050 +{ 0x00, 0x9d, 0x8d },
  1.4051 +{ 0x00, 0x9e, 0x8e },
  1.4052 +{ 0x00, 0x9f, 0x8f },
  1.4053 +{ 0x00, 0xa0, 0xa0 },
  1.4054 +{ 0x01, 0xa2, 0xa1 },
  1.4055 +{ 0x00, 0xa2, 0xa1 },
  1.4056 +{ 0x01, 0xbc, 0xa3 },
  1.4057 +{ 0x00, 0xa4, 0xa4 },
  1.4058 +{ 0x01, 0xb4, 0xa5 },
  1.4059 +{ 0x00, 0xa6, 0xa6 },
  1.4060 +{ 0x00, 0xa7, 0xa7 },
  1.4061 +{ 0x01, 0xb8, 0xa8 },
  1.4062 +{ 0x00, 0xa9, 0xa9 },
  1.4063 +{ 0x01, 0xba, 0xaa },
  1.4064 +{ 0x00, 0xab, 0xab },
  1.4065 +{ 0x00, 0xac, 0xac },
  1.4066 +{ 0x00, 0xad, 0xad },
  1.4067 +{ 0x00, 0xae, 0xae },
  1.4068 +{ 0x01, 0xbf, 0xaf },
  1.4069 +{ 0x00, 0xb0, 0xb0 },
  1.4070 +{ 0x00, 0xb1, 0xb1 },
  1.4071 +{ 0x01, 0xb3, 0xb2 },
  1.4072 +{ 0x00, 0xb3, 0xb2 },
  1.4073 +{ 0x00, 0xb4, 0xa5 },
  1.4074 +{ 0x00, 0xb5, 0xb5 },
  1.4075 +{ 0x00, 0xb6, 0xb6 },
  1.4076 +{ 0x00, 0xb7, 0xb7 },
  1.4077 +{ 0x00, 0xb8, 0xa8 },
  1.4078 +{ 0x00, 0xb9, 0xb9 },
  1.4079 +{ 0x00, 0xba, 0xaa },
  1.4080 +{ 0x00, 0xbb, 0xbb },
  1.4081 +{ 0x00, 0xbc, 0xa3 },
  1.4082 +{ 0x01, 0xbe, 0xbd },
  1.4083 +{ 0x00, 0xbe, 0xbd },
  1.4084 +{ 0x00, 0xbf, 0xaf },
  1.4085 +{ 0x01, 0xe0, 0xc0 },
  1.4086 +{ 0x01, 0xe1, 0xc1 },
  1.4087 +{ 0x01, 0xe2, 0xc2 },
  1.4088 +{ 0x01, 0xe3, 0xc3 },
  1.4089 +{ 0x01, 0xe4, 0xc4 },
  1.4090 +{ 0x01, 0xe5, 0xc5 },
  1.4091 +{ 0x01, 0xe6, 0xc6 },
  1.4092 +{ 0x01, 0xe7, 0xc7 },
  1.4093 +{ 0x01, 0xe8, 0xc8 },
  1.4094 +{ 0x01, 0xe9, 0xc9 },
  1.4095 +{ 0x01, 0xea, 0xca },
  1.4096 +{ 0x01, 0xeb, 0xcb },
  1.4097 +{ 0x01, 0xec, 0xcc },
  1.4098 +{ 0x01, 0xed, 0xcd },
  1.4099 +{ 0x01, 0xee, 0xce },
  1.4100 +{ 0x01, 0xef, 0xcf },
  1.4101 +{ 0x01, 0xf0, 0xd0 },
  1.4102 +{ 0x01, 0xf1, 0xd1 },
  1.4103 +{ 0x01, 0xf2, 0xd2 },
  1.4104 +{ 0x01, 0xf3, 0xd3 },
  1.4105 +{ 0x01, 0xf4, 0xd4 },
  1.4106 +{ 0x01, 0xf5, 0xd5 },
  1.4107 +{ 0x01, 0xf6, 0xd6 },
  1.4108 +{ 0x01, 0xf7, 0xd7 },
  1.4109 +{ 0x01, 0xf8, 0xd8 },
  1.4110 +{ 0x01, 0xf9, 0xd9 },
  1.4111 +{ 0x01, 0xfa, 0xda },
  1.4112 +{ 0x01, 0xfb, 0xdb },
  1.4113 +{ 0x01, 0xfc, 0xdc },
  1.4114 +{ 0x01, 0xfd, 0xdd },
  1.4115 +{ 0x01, 0xfe, 0xde },
  1.4116 +{ 0x01, 0xff, 0xdf },
  1.4117 +{ 0x00, 0xe0, 0xc0 },
  1.4118 +{ 0x00, 0xe1, 0xc1 },
  1.4119 +{ 0x00, 0xe2, 0xc2 },
  1.4120 +{ 0x00, 0xe3, 0xc3 },
  1.4121 +{ 0x00, 0xe4, 0xc4 },
  1.4122 +{ 0x00, 0xe5, 0xc5 },
  1.4123 +{ 0x00, 0xe6, 0xc6 },
  1.4124 +{ 0x00, 0xe7, 0xc7 },
  1.4125 +{ 0x00, 0xe8, 0xc8 },
  1.4126 +{ 0x00, 0xe9, 0xc9 },
  1.4127 +{ 0x00, 0xea, 0xca },
  1.4128 +{ 0x00, 0xeb, 0xcb },
  1.4129 +{ 0x00, 0xec, 0xcc },
  1.4130 +{ 0x00, 0xed, 0xcd },
  1.4131 +{ 0x00, 0xee, 0xce },
  1.4132 +{ 0x00, 0xef, 0xcf },
  1.4133 +{ 0x00, 0xf0, 0xd0 },
  1.4134 +{ 0x00, 0xf1, 0xd1 },
  1.4135 +{ 0x00, 0xf2, 0xd2 },
  1.4136 +{ 0x00, 0xf3, 0xd3 },
  1.4137 +{ 0x00, 0xf4, 0xd4 },
  1.4138 +{ 0x00, 0xf5, 0xd5 },
  1.4139 +{ 0x00, 0xf6, 0xd6 },
  1.4140 +{ 0x00, 0xf7, 0xd7 },
  1.4141 +{ 0x00, 0xf8, 0xd8 },
  1.4142 +{ 0x00, 0xf9, 0xd9 },
  1.4143 +{ 0x00, 0xfa, 0xda },
  1.4144 +{ 0x00, 0xfb, 0xdb },
  1.4145 +{ 0x00, 0xfc, 0xdc },
  1.4146 +{ 0x00, 0xfd, 0xdd },
  1.4147 +{ 0x00, 0xfe, 0xde },
  1.4148 +{ 0x00, 0xff, 0xdf }
  1.4149 +};
  1.4150 +
  1.4151 +static struct cs_info iso13_tbl[] = {
  1.4152 +{ 0x00, 0x00, 0x00 },
  1.4153 +{ 0x00, 0x01, 0x01 },
  1.4154 +{ 0x00, 0x02, 0x02 },
  1.4155 +{ 0x00, 0x03, 0x03 },
  1.4156 +{ 0x00, 0x04, 0x04 },
  1.4157 +{ 0x00, 0x05, 0x05 },
  1.4158 +{ 0x00, 0x06, 0x06 },
  1.4159 +{ 0x00, 0x07, 0x07 },
  1.4160 +{ 0x00, 0x08, 0x08 },
  1.4161 +{ 0x00, 0x09, 0x09 },
  1.4162 +{ 0x00, 0x0A, 0x0A },
  1.4163 +{ 0x00, 0x0B, 0x0B },
  1.4164 +{ 0x00, 0x0C, 0x0C },
  1.4165 +{ 0x00, 0x0D, 0x0D },
  1.4166 +{ 0x00, 0x0E, 0x0E },
  1.4167 +{ 0x00, 0x0F, 0x0F },
  1.4168 +{ 0x00, 0x10, 0x10 },
  1.4169 +{ 0x00, 0x11, 0x11 },
  1.4170 +{ 0x00, 0x12, 0x12 },
  1.4171 +{ 0x00, 0x13, 0x13 },
  1.4172 +{ 0x00, 0x14, 0x14 },
  1.4173 +{ 0x00, 0x15, 0x15 },
  1.4174 +{ 0x00, 0x16, 0x16 },
  1.4175 +{ 0x00, 0x17, 0x17 },
  1.4176 +{ 0x00, 0x18, 0x18 },
  1.4177 +{ 0x00, 0x19, 0x19 },
  1.4178 +{ 0x00, 0x1A, 0x1A },
  1.4179 +{ 0x00, 0x1B, 0x1B },
  1.4180 +{ 0x00, 0x1C, 0x1C },
  1.4181 +{ 0x00, 0x1D, 0x1D },
  1.4182 +{ 0x00, 0x1E, 0x1E },
  1.4183 +{ 0x00, 0x1F, 0x1F },
  1.4184 +{ 0x00, 0x20, 0x20 },
  1.4185 +{ 0x00, 0x21, 0x21 },
  1.4186 +{ 0x00, 0x22, 0x22 },
  1.4187 +{ 0x00, 0x23, 0x23 },
  1.4188 +{ 0x00, 0x24, 0x24 },
  1.4189 +{ 0x00, 0x25, 0x25 },
  1.4190 +{ 0x00, 0x26, 0x26 },
  1.4191 +{ 0x00, 0x27, 0x27 },
  1.4192 +{ 0x00, 0x28, 0x28 },
  1.4193 +{ 0x00, 0x29, 0x29 },
  1.4194 +{ 0x00, 0x2A, 0x2A },
  1.4195 +{ 0x00, 0x2B, 0x2B },
  1.4196 +{ 0x00, 0x2C, 0x2C },
  1.4197 +{ 0x00, 0x2D, 0x2D },
  1.4198 +{ 0x00, 0x2E, 0x2E },
  1.4199 +{ 0x00, 0x2F, 0x2F },
  1.4200 +{ 0x00, 0x30, 0x30 },
  1.4201 +{ 0x00, 0x31, 0x31 },
  1.4202 +{ 0x00, 0x32, 0x32 },
  1.4203 +{ 0x00, 0x33, 0x33 },
  1.4204 +{ 0x00, 0x34, 0x34 },
  1.4205 +{ 0x00, 0x35, 0x35 },
  1.4206 +{ 0x00, 0x36, 0x36 },
  1.4207 +{ 0x00, 0x37, 0x37 },
  1.4208 +{ 0x00, 0x38, 0x38 },
  1.4209 +{ 0x00, 0x39, 0x39 },
  1.4210 +{ 0x00, 0x3A, 0x3A },
  1.4211 +{ 0x00, 0x3B, 0x3B },
  1.4212 +{ 0x00, 0x3C, 0x3C },
  1.4213 +{ 0x00, 0x3D, 0x3D },
  1.4214 +{ 0x00, 0x3E, 0x3E },
  1.4215 +{ 0x00, 0x3F, 0x3F },
  1.4216 +{ 0x00, 0x40, 0x40 },
  1.4217 +{ 0x01, 0x61, 0x41 },
  1.4218 +{ 0x01, 0x62, 0x42 },
  1.4219 +{ 0x01, 0x63, 0x43 },
  1.4220 +{ 0x01, 0x64, 0x44 },
  1.4221 +{ 0x01, 0x65, 0x45 },
  1.4222 +{ 0x01, 0x66, 0x46 },
  1.4223 +{ 0x01, 0x67, 0x47 },
  1.4224 +{ 0x01, 0x68, 0x48 },
  1.4225 +{ 0x01, 0x69, 0x49 },
  1.4226 +{ 0x01, 0x6A, 0x4A },
  1.4227 +{ 0x01, 0x6B, 0x4B },
  1.4228 +{ 0x01, 0x6C, 0x4C },
  1.4229 +{ 0x01, 0x6D, 0x4D },
  1.4230 +{ 0x01, 0x6E, 0x4E },
  1.4231 +{ 0x01, 0x6F, 0x4F },
  1.4232 +{ 0x01, 0x70, 0x50 },
  1.4233 +{ 0x01, 0x71, 0x51 },
  1.4234 +{ 0x01, 0x72, 0x52 },
  1.4235 +{ 0x01, 0x73, 0x53 },
  1.4236 +{ 0x01, 0x74, 0x54 },
  1.4237 +{ 0x01, 0x75, 0x55 },
  1.4238 +{ 0x01, 0x76, 0x56 },
  1.4239 +{ 0x01, 0x77, 0x57 },
  1.4240 +{ 0x01, 0x78, 0x58 },
  1.4241 +{ 0x01, 0x79, 0x59 },
  1.4242 +{ 0x01, 0x7A, 0x5A },
  1.4243 +{ 0x00, 0x5B, 0x5B },
  1.4244 +{ 0x00, 0x5C, 0x5C },
  1.4245 +{ 0x00, 0x5D, 0x5D },
  1.4246 +{ 0x00, 0x5E, 0x5E },
  1.4247 +{ 0x00, 0x5F, 0x5F },
  1.4248 +{ 0x00, 0x60, 0x60 },
  1.4249 +{ 0x00, 0x61, 0x41 },
  1.4250 +{ 0x00, 0x62, 0x42 },
  1.4251 +{ 0x00, 0x63, 0x43 },
  1.4252 +{ 0x00, 0x64, 0x44 },
  1.4253 +{ 0x00, 0x65, 0x45 },
  1.4254 +{ 0x00, 0x66, 0x46 },
  1.4255 +{ 0x00, 0x67, 0x47 },
  1.4256 +{ 0x00, 0x68, 0x48 },
  1.4257 +{ 0x00, 0x69, 0x49 },
  1.4258 +{ 0x00, 0x6A, 0x4A },
  1.4259 +{ 0x00, 0x6B, 0x4B },
  1.4260 +{ 0x00, 0x6C, 0x4C },
  1.4261 +{ 0x00, 0x6D, 0x4D },
  1.4262 +{ 0x00, 0x6E, 0x4E },
  1.4263 +{ 0x00, 0x6F, 0x4F },
  1.4264 +{ 0x00, 0x70, 0x50 },
  1.4265 +{ 0x00, 0x71, 0x51 },
  1.4266 +{ 0x00, 0x72, 0x52 },
  1.4267 +{ 0x00, 0x73, 0x53 },
  1.4268 +{ 0x00, 0x74, 0x54 },
  1.4269 +{ 0x00, 0x75, 0x55 },
  1.4270 +{ 0x00, 0x76, 0x56 },
  1.4271 +{ 0x00, 0x77, 0x57 },
  1.4272 +{ 0x00, 0x78, 0x58 },
  1.4273 +{ 0x00, 0x79, 0x59 },
  1.4274 +{ 0x00, 0x7A, 0x5A },
  1.4275 +{ 0x00, 0x7B, 0x7B },
  1.4276 +{ 0x00, 0x7C, 0x7C },
  1.4277 +{ 0x00, 0x7D, 0x7D },
  1.4278 +{ 0x00, 0x7E, 0x7E },
  1.4279 +{ 0x00, 0x7F, 0x7F },
  1.4280 +{ 0x00, 0x80, 0x80 },
  1.4281 +{ 0x00, 0x81, 0x81 },
  1.4282 +{ 0x00, 0x82, 0x82 },
  1.4283 +{ 0x00, 0x83, 0x83 },
  1.4284 +{ 0x00, 0x84, 0x84 },
  1.4285 +{ 0x00, 0x85, 0x85 },
  1.4286 +{ 0x00, 0x86, 0x86 },
  1.4287 +{ 0x00, 0x87, 0x87 },
  1.4288 +{ 0x00, 0x88, 0x88 },
  1.4289 +{ 0x00, 0x89, 0x89 },
  1.4290 +{ 0x00, 0x8A, 0x8A },
  1.4291 +{ 0x00, 0x8B, 0x8B },
  1.4292 +{ 0x00, 0x8C, 0x8C },
  1.4293 +{ 0x00, 0x8D, 0x8D },
  1.4294 +{ 0x00, 0x8E, 0x8E },
  1.4295 +{ 0x00, 0x8F, 0x8F },
  1.4296 +{ 0x00, 0x90, 0x90 },
  1.4297 +{ 0x00, 0x91, 0x91 },
  1.4298 +{ 0x00, 0x92, 0x92 },
  1.4299 +{ 0x00, 0x93, 0x93 },
  1.4300 +{ 0x00, 0x94, 0x94 },
  1.4301 +{ 0x00, 0x95, 0x95 },
  1.4302 +{ 0x00, 0x96, 0x96 },
  1.4303 +{ 0x00, 0x97, 0x97 },
  1.4304 +{ 0x00, 0x98, 0x98 },
  1.4305 +{ 0x00, 0x99, 0x99 },
  1.4306 +{ 0x00, 0x9A, 0x9A },
  1.4307 +{ 0x00, 0x9B, 0x9B },
  1.4308 +{ 0x00, 0x9C, 0x9C },
  1.4309 +{ 0x00, 0x9D, 0x9D },
  1.4310 +{ 0x00, 0x9E, 0x9E },
  1.4311 +{ 0x00, 0x9F, 0x9F },
  1.4312 +{ 0x00, 0xA0, 0xA0 },
  1.4313 +{ 0x00, 0xA1, 0xA1 },
  1.4314 +{ 0x00, 0xA2, 0xA2 },
  1.4315 +{ 0x00, 0xA3, 0xA3 },
  1.4316 +{ 0x00, 0xA4, 0xA4 },
  1.4317 +{ 0x00, 0xA5, 0xA5 },
  1.4318 +{ 0x00, 0xA6, 0xA6 },
  1.4319 +{ 0x00, 0xA7, 0xA7 },
  1.4320 +{ 0x01, 0xB8, 0xA8 },
  1.4321 +{ 0x00, 0xA9, 0xA9 },
  1.4322 +{ 0x01, 0xBA, 0xAA },
  1.4323 +{ 0x00, 0xAB, 0xAB },
  1.4324 +{ 0x00, 0xAC, 0xAC },
  1.4325 +{ 0x00, 0xAD, 0xAD },
  1.4326 +{ 0x00, 0xAE, 0xAE },
  1.4327 +{ 0x01, 0xBF, 0xAF },
  1.4328 +{ 0x00, 0xB0, 0xB0 },
  1.4329 +{ 0x00, 0xB1, 0xB1 },
  1.4330 +{ 0x00, 0xB2, 0xB2 },
  1.4331 +{ 0x00, 0xB3, 0xB3 },
  1.4332 +{ 0x00, 0xB4, 0xB4 },
  1.4333 +{ 0x00, 0xB5, 0xB5 },
  1.4334 +{ 0x00, 0xB6, 0xB6 },
  1.4335 +{ 0x00, 0xB7, 0xB7 },
  1.4336 +{ 0x00, 0xB8, 0xA8 },
  1.4337 +{ 0x00, 0xB9, 0xB9 },
  1.4338 +{ 0x00, 0xBA, 0xAA },
  1.4339 +{ 0x00, 0xBB, 0xBB },
  1.4340 +{ 0x00, 0xBC, 0xBC },
  1.4341 +{ 0x00, 0xBD, 0xBD },
  1.4342 +{ 0x00, 0xBE, 0xBE },
  1.4343 +{ 0x00, 0xBF, 0xAF },
  1.4344 +{ 0x01, 0xE0, 0xC0 },
  1.4345 +{ 0x01, 0xE1, 0xC1 },
  1.4346 +{ 0x01, 0xE2, 0xC2 },
  1.4347 +{ 0x01, 0xE3, 0xC3 },
  1.4348 +{ 0x01, 0xE4, 0xC4 },
  1.4349 +{ 0x01, 0xE5, 0xC5 },
  1.4350 +{ 0x01, 0xE6, 0xC6 },
  1.4351 +{ 0x01, 0xE7, 0xC7 },
  1.4352 +{ 0x01, 0xE8, 0xC8 },
  1.4353 +{ 0x01, 0xE9, 0xC9 },
  1.4354 +{ 0x01, 0xEA, 0xCA },
  1.4355 +{ 0x01, 0xEB, 0xCB },
  1.4356 +{ 0x01, 0xEC, 0xCC },
  1.4357 +{ 0x01, 0xED, 0xCD },
  1.4358 +{ 0x01, 0xEE, 0xCE },
  1.4359 +{ 0x01, 0xEF, 0xCF },
  1.4360 +{ 0x01, 0xF0, 0xD0 },
  1.4361 +{ 0x01, 0xF1, 0xD1 },
  1.4362 +{ 0x01, 0xF2, 0xD2 },
  1.4363 +{ 0x01, 0xF3, 0xD3 },
  1.4364 +{ 0x01, 0xF4, 0xD4 },
  1.4365 +{ 0x01, 0xF5, 0xD5 },
  1.4366 +{ 0x01, 0xF6, 0xD6 },
  1.4367 +{ 0x00, 0xD7, 0xD7 },
  1.4368 +{ 0x01, 0xF8, 0xD8 },
  1.4369 +{ 0x01, 0xF9, 0xD9 },
  1.4370 +{ 0x01, 0xFA, 0xDA },
  1.4371 +{ 0x01, 0xFB, 0xDB },
  1.4372 +{ 0x01, 0xFC, 0xDC },
  1.4373 +{ 0x01, 0xFD, 0xDD },
  1.4374 +{ 0x01, 0xFE, 0xDE },
  1.4375 +{ 0x00, 0xDF, 0xDF },
  1.4376 +{ 0x00, 0xE0, 0xC0 },
  1.4377 +{ 0x00, 0xE1, 0xC1 },
  1.4378 +{ 0x00, 0xE2, 0xC2 },
  1.4379 +{ 0x00, 0xE3, 0xC3 },
  1.4380 +{ 0x00, 0xE4, 0xC4 },
  1.4381 +{ 0x00, 0xE5, 0xC5 },
  1.4382 +{ 0x00, 0xE6, 0xC6 },
  1.4383 +{ 0x00, 0xE7, 0xC7 },
  1.4384 +{ 0x00, 0xE8, 0xC8 },
  1.4385 +{ 0x00, 0xE9, 0xC9 },
  1.4386 +{ 0x00, 0xEA, 0xCA },
  1.4387 +{ 0x00, 0xEB, 0xCB },
  1.4388 +{ 0x00, 0xEC, 0xCC },
  1.4389 +{ 0x00, 0xED, 0xCD },
  1.4390 +{ 0x00, 0xEE, 0xCE },
  1.4391 +{ 0x00, 0xEF, 0xCF },
  1.4392 +{ 0x00, 0xF0, 0xD0 },
  1.4393 +{ 0x00, 0xF1, 0xD1 },
  1.4394 +{ 0x00, 0xF2, 0xD2 },
  1.4395 +{ 0x00, 0xF3, 0xD3 },
  1.4396 +{ 0x00, 0xF4, 0xD4 },
  1.4397 +{ 0x00, 0xF5, 0xD5 },
  1.4398 +{ 0x00, 0xF6, 0xD6 },
  1.4399 +{ 0x00, 0xF7, 0xF7 },
  1.4400 +{ 0x00, 0xF8, 0xD8 },
  1.4401 +{ 0x00, 0xF9, 0xD9 },
  1.4402 +{ 0x00, 0xFA, 0xDA },
  1.4403 +{ 0x00, 0xFB, 0xDB },
  1.4404 +{ 0x00, 0xFC, 0xDC },
  1.4405 +{ 0x00, 0xFD, 0xDD },
  1.4406 +{ 0x00, 0xFE, 0xDE },
  1.4407 +{ 0x00, 0xFF, 0xFF }
  1.4408 +};
  1.4409 +
  1.4410 +
  1.4411 +static struct cs_info iso14_tbl[] = {
  1.4412 +{ 0x00, 0x00, 0x00 },
  1.4413 +{ 0x00, 0x01, 0x01 },
  1.4414 +{ 0x00, 0x02, 0x02 },
  1.4415 +{ 0x00, 0x03, 0x03 },
  1.4416 +{ 0x00, 0x04, 0x04 },
  1.4417 +{ 0x00, 0x05, 0x05 },
  1.4418 +{ 0x00, 0x06, 0x06 },
  1.4419 +{ 0x00, 0x07, 0x07 },
  1.4420 +{ 0x00, 0x08, 0x08 },
  1.4421 +{ 0x00, 0x09, 0x09 },
  1.4422 +{ 0x00, 0x0a, 0x0a },
  1.4423 +{ 0x00, 0x0b, 0x0b },
  1.4424 +{ 0x00, 0x0c, 0x0c },
  1.4425 +{ 0x00, 0x0d, 0x0d },
  1.4426 +{ 0x00, 0x0e, 0x0e },
  1.4427 +{ 0x00, 0x0f, 0x0f },
  1.4428 +{ 0x00, 0x10, 0x10 },
  1.4429 +{ 0x00, 0x11, 0x11 },
  1.4430 +{ 0x00, 0x12, 0x12 },
  1.4431 +{ 0x00, 0x13, 0x13 },
  1.4432 +{ 0x00, 0x14, 0x14 },
  1.4433 +{ 0x00, 0x15, 0x15 },
  1.4434 +{ 0x00, 0x16, 0x16 },
  1.4435 +{ 0x00, 0x17, 0x17 },
  1.4436 +{ 0x00, 0x18, 0x18 },
  1.4437 +{ 0x00, 0x19, 0x19 },
  1.4438 +{ 0x00, 0x1a, 0x1a },
  1.4439 +{ 0x00, 0x1b, 0x1b },
  1.4440 +{ 0x00, 0x1c, 0x1c },
  1.4441 +{ 0x00, 0x1d, 0x1d },
  1.4442 +{ 0x00, 0x1e, 0x1e },
  1.4443 +{ 0x00, 0x1f, 0x1f },
  1.4444 +{ 0x00, 0x20, 0x20 },
  1.4445 +{ 0x00, 0x21, 0x21 },
  1.4446 +{ 0x00, 0x22, 0x22 },
  1.4447 +{ 0x00, 0x23, 0x23 },
  1.4448 +{ 0x00, 0x24, 0x24 },
  1.4449 +{ 0x00, 0x25, 0x25 },
  1.4450 +{ 0x00, 0x26, 0x26 },
  1.4451 +{ 0x00, 0x27, 0x27 },
  1.4452 +{ 0x00, 0x28, 0x28 },
  1.4453 +{ 0x00, 0x29, 0x29 },
  1.4454 +{ 0x00, 0x2a, 0x2a },
  1.4455 +{ 0x00, 0x2b, 0x2b },
  1.4456 +{ 0x00, 0x2c, 0x2c },
  1.4457 +{ 0x00, 0x2d, 0x2d },
  1.4458 +{ 0x00, 0x2e, 0x2e },
  1.4459 +{ 0x00, 0x2f, 0x2f },
  1.4460 +{ 0x00, 0x30, 0x30 },
  1.4461 +{ 0x00, 0x31, 0x31 },
  1.4462 +{ 0x00, 0x32, 0x32 },
  1.4463 +{ 0x00, 0x33, 0x33 },
  1.4464 +{ 0x00, 0x34, 0x34 },
  1.4465 +{ 0x00, 0x35, 0x35 },
  1.4466 +{ 0x00, 0x36, 0x36 },
  1.4467 +{ 0x00, 0x37, 0x37 },
  1.4468 +{ 0x00, 0x38, 0x38 },
  1.4469 +{ 0x00, 0x39, 0x39 },
  1.4470 +{ 0x00, 0x3a, 0x3a },
  1.4471 +{ 0x00, 0x3b, 0x3b },
  1.4472 +{ 0x00, 0x3c, 0x3c },
  1.4473 +{ 0x00, 0x3d, 0x3d },
  1.4474 +{ 0x00, 0x3e, 0x3e },
  1.4475 +{ 0x00, 0x3f, 0x3f },
  1.4476 +{ 0x00, 0x40, 0x40 },
  1.4477 +{ 0x01, 0x61, 0x41 },
  1.4478 +{ 0x01, 0x62, 0x42 },
  1.4479 +{ 0x01, 0x63, 0x43 },
  1.4480 +{ 0x01, 0x64, 0x44 },
  1.4481 +{ 0x01, 0x65, 0x45 },
  1.4482 +{ 0x01, 0x66, 0x46 },
  1.4483 +{ 0x01, 0x67, 0x47 },
  1.4484 +{ 0x01, 0x68, 0x48 },
  1.4485 +{ 0x01, 0x69, 0x49 },
  1.4486 +{ 0x01, 0x6a, 0x4a },
  1.4487 +{ 0x01, 0x6b, 0x4b },
  1.4488 +{ 0x01, 0x6c, 0x4c },
  1.4489 +{ 0x01, 0x6d, 0x4d },
  1.4490 +{ 0x01, 0x6e, 0x4e },
  1.4491 +{ 0x01, 0x6f, 0x4f },
  1.4492 +{ 0x01, 0x70, 0x50 },
  1.4493 +{ 0x01, 0x71, 0x51 },
  1.4494 +{ 0x01, 0x72, 0x52 },
  1.4495 +{ 0x01, 0x73, 0x53 },
  1.4496 +{ 0x01, 0x74, 0x54 },
  1.4497 +{ 0x01, 0x75, 0x55 },
  1.4498 +{ 0x01, 0x76, 0x56 },
  1.4499 +{ 0x01, 0x77, 0x57 },
  1.4500 +{ 0x01, 0x78, 0x58 },
  1.4501 +{ 0x01, 0x79, 0x59 },
  1.4502 +{ 0x01, 0x7a, 0x5a },
  1.4503 +{ 0x00, 0x5b, 0x5b },
  1.4504 +{ 0x00, 0x5c, 0x5c },
  1.4505 +{ 0x00, 0x5d, 0x5d },
  1.4506 +{ 0x00, 0x5e, 0x5e },
  1.4507 +{ 0x00, 0x5f, 0x5f },
  1.4508 +{ 0x00, 0x60, 0x60 },
  1.4509 +{ 0x00, 0x61, 0x41 },
  1.4510 +{ 0x00, 0x62, 0x42 },
  1.4511 +{ 0x00, 0x63, 0x43 },
  1.4512 +{ 0x00, 0x64, 0x44 },
  1.4513 +{ 0x00, 0x65, 0x45 },
  1.4514 +{ 0x00, 0x66, 0x46 },
  1.4515 +{ 0x00, 0x67, 0x47 },
  1.4516 +{ 0x00, 0x68, 0x48 },
  1.4517 +{ 0x00, 0x69, 0x49 },
  1.4518 +{ 0x00, 0x6a, 0x4a },
  1.4519 +{ 0x00, 0x6b, 0x4b },
  1.4520 +{ 0x00, 0x6c, 0x4c },
  1.4521 +{ 0x00, 0x6d, 0x4d },
  1.4522 +{ 0x00, 0x6e, 0x4e },
  1.4523 +{ 0x00, 0x6f, 0x4f },
  1.4524 +{ 0x00, 0x70, 0x50 },
  1.4525 +{ 0x00, 0x71, 0x51 },
  1.4526 +{ 0x00, 0x72, 0x52 },
  1.4527 +{ 0x00, 0x73, 0x53 },
  1.4528 +{ 0x00, 0x74, 0x54 },
  1.4529 +{ 0x00, 0x75, 0x55 },
  1.4530 +{ 0x00, 0x76, 0x56 },
  1.4531 +{ 0x00, 0x77, 0x57 },
  1.4532 +{ 0x00, 0x78, 0x58 },
  1.4533 +{ 0x00, 0x79, 0x59 },
  1.4534 +{ 0x00, 0x7a, 0x5a },
  1.4535 +{ 0x00, 0x7b, 0x7b },
  1.4536 +{ 0x00, 0x7c, 0x7c },
  1.4537 +{ 0x00, 0x7d, 0x7d },
  1.4538 +{ 0x00, 0x7e, 0x7e },
  1.4539 +{ 0x00, 0x7f, 0x7f },
  1.4540 +{ 0x00, 0x80, 0x80 },
  1.4541 +{ 0x00, 0x81, 0x81 },
  1.4542 +{ 0x00, 0x82, 0x82 },
  1.4543 +{ 0x00, 0x83, 0x83 },
  1.4544 +{ 0x00, 0x84, 0x84 },
  1.4545 +{ 0x00, 0x85, 0x85 },
  1.4546 +{ 0x00, 0x86, 0x86 },
  1.4547 +{ 0x00, 0x87, 0x87 },
  1.4548 +{ 0x00, 0x88, 0x88 },
  1.4549 +{ 0x00, 0x89, 0x89 },
  1.4550 +{ 0x00, 0x8a, 0x8a },
  1.4551 +{ 0x00, 0x8b, 0x8b },
  1.4552 +{ 0x00, 0x8c, 0x8c },
  1.4553 +{ 0x00, 0x8d, 0x8d },
  1.4554 +{ 0x00, 0x8e, 0x8e },
  1.4555 +{ 0x00, 0x8f, 0x8f },
  1.4556 +{ 0x00, 0x90, 0x90 },
  1.4557 +{ 0x00, 0x91, 0x91 },
  1.4558 +{ 0x00, 0x92, 0x92 },
  1.4559 +{ 0x00, 0x93, 0x93 },
  1.4560 +{ 0x00, 0x94, 0x94 },
  1.4561 +{ 0x00, 0x95, 0x95 },
  1.4562 +{ 0x00, 0x96, 0x96 },
  1.4563 +{ 0x00, 0x97, 0x97 },
  1.4564 +{ 0x00, 0x98, 0x98 },
  1.4565 +{ 0x00, 0x99, 0x99 },
  1.4566 +{ 0x00, 0x9a, 0x9a },
  1.4567 +{ 0x00, 0x9b, 0x9b },
  1.4568 +{ 0x00, 0x9c, 0x9c },
  1.4569 +{ 0x00, 0x9d, 0x9d },
  1.4570 +{ 0x00, 0x9e, 0x9e },
  1.4571 +{ 0x00, 0x9f, 0x9f },
  1.4572 +{ 0x00, 0xa0, 0xa0 },
  1.4573 +{ 0x01, 0xa2, 0xa1 },
  1.4574 +{ 0x00, 0xa2, 0xa1 },
  1.4575 +{ 0x00, 0xa3, 0xa3 },
  1.4576 +{ 0x01, 0xa5, 0xa4 },
  1.4577 +{ 0x00, 0xa5, 0xa4 },
  1.4578 +{ 0x01, 0xa6, 0xab },
  1.4579 +{ 0x00, 0xa7, 0xa7 },
  1.4580 +{ 0x01, 0xb8, 0xa8 },
  1.4581 +{ 0x00, 0xa9, 0xa9 },
  1.4582 +{ 0x01, 0xba, 0xaa },
  1.4583 +{ 0x00, 0xab, 0xa6 },
  1.4584 +{ 0x01, 0xbc, 0xac },
  1.4585 +{ 0x00, 0xad, 0xad },
  1.4586 +{ 0x00, 0xae, 0xae },
  1.4587 +{ 0x01, 0xff, 0xaf },
  1.4588 +{ 0x01, 0xb1, 0xb0 },
  1.4589 +{ 0x00, 0xb1, 0xb0 },
  1.4590 +{ 0x01, 0xb3, 0xb2 },
  1.4591 +{ 0x00, 0xb3, 0xb2 },
  1.4592 +{ 0x01, 0xb5, 0xb4 },
  1.4593 +{ 0x00, 0xb5, 0xb4 },
  1.4594 +{ 0x00, 0xb6, 0xb6 },
  1.4595 +{ 0x01, 0xb9, 0xb7 },
  1.4596 +{ 0x00, 0xb8, 0xa8 },
  1.4597 +{ 0x00, 0xb9, 0xb6 },
  1.4598 +{ 0x00, 0xba, 0xaa },
  1.4599 +{ 0x01, 0xbf, 0xbb },
  1.4600 +{ 0x00, 0xbc, 0xac },
  1.4601 +{ 0x01, 0xbe, 0xbd },
  1.4602 +{ 0x00, 0xbe, 0xbd },
  1.4603 +{ 0x00, 0xbf, 0xbb },
  1.4604 +{ 0x01, 0xe0, 0xc0 },
  1.4605 +{ 0x01, 0xe1, 0xc1 },
  1.4606 +{ 0x01, 0xe2, 0xc2 },
  1.4607 +{ 0x01, 0xe3, 0xc3 },
  1.4608 +{ 0x01, 0xe4, 0xc4 },
  1.4609 +{ 0x01, 0xe5, 0xc5 },
  1.4610 +{ 0x01, 0xe6, 0xc6 },
  1.4611 +{ 0x01, 0xe7, 0xc7 },
  1.4612 +{ 0x01, 0xe8, 0xc8 },
  1.4613 +{ 0x01, 0xe9, 0xc9 },
  1.4614 +{ 0x01, 0xea, 0xca },
  1.4615 +{ 0x01, 0xeb, 0xcb },
  1.4616 +{ 0x01, 0xec, 0xcc },
  1.4617 +{ 0x01, 0xed, 0xcd },
  1.4618 +{ 0x01, 0xee, 0xce },
  1.4619 +{ 0x01, 0xef, 0xcf },
  1.4620 +{ 0x01, 0xf0, 0xd0 },
  1.4621 +{ 0x01, 0xf1, 0xd1 },
  1.4622 +{ 0x01, 0xf2, 0xd2 },
  1.4623 +{ 0x01, 0xf3, 0xd3 },
  1.4624 +{ 0x01, 0xf4, 0xd4 },
  1.4625 +{ 0x01, 0xf5, 0xd5 },
  1.4626 +{ 0x01, 0xf6, 0xd6 },
  1.4627 +{ 0x01, 0xf7, 0xd7 },
  1.4628 +{ 0x01, 0xf8, 0xd8 },
  1.4629 +{ 0x01, 0xf9, 0xd9 },
  1.4630 +{ 0x01, 0xfa, 0xda },
  1.4631 +{ 0x01, 0xfb, 0xdb },
  1.4632 +{ 0x01, 0xfc, 0xdc },
  1.4633 +{ 0x01, 0xfd, 0xdd },
  1.4634 +{ 0x01, 0xfe, 0xde },
  1.4635 +{ 0x00, 0xdf, 0xdf },
  1.4636 +{ 0x00, 0xe0, 0xc0 },
  1.4637 +{ 0x00, 0xe1, 0xc1 },
  1.4638 +{ 0x00, 0xe2, 0xc2 },
  1.4639 +{ 0x00, 0xe3, 0xc3 },
  1.4640 +{ 0x00, 0xe4, 0xc4 },
  1.4641 +{ 0x00, 0xe5, 0xc5 },
  1.4642 +{ 0x00, 0xe6, 0xc6 },
  1.4643 +{ 0x00, 0xe7, 0xc7 },
  1.4644 +{ 0x00, 0xe8, 0xc8 },
  1.4645 +{ 0x00, 0xe9, 0xc9 },
  1.4646 +{ 0x00, 0xea, 0xca },
  1.4647 +{ 0x00, 0xeb, 0xcb },
  1.4648 +{ 0x00, 0xec, 0xcc },
  1.4649 +{ 0x00, 0xed, 0xcd },
  1.4650 +{ 0x00, 0xee, 0xce },
  1.4651 +{ 0x00, 0xef, 0xcf },
  1.4652 +{ 0x00, 0xf0, 0xd0 },
  1.4653 +{ 0x00, 0xf1, 0xd1 },
  1.4654 +{ 0x00, 0xf2, 0xd2 },
  1.4655 +{ 0x00, 0xf3, 0xd3 },
  1.4656 +{ 0x00, 0xf4, 0xd4 },
  1.4657 +{ 0x00, 0xf5, 0xd5 },
  1.4658 +{ 0x00, 0xf6, 0xd6 },
  1.4659 +{ 0x00, 0xf7, 0xd7 },
  1.4660 +{ 0x00, 0xf8, 0xd8 },
  1.4661 +{ 0x00, 0xf9, 0xd9 },
  1.4662 +{ 0x00, 0xfa, 0xda },
  1.4663 +{ 0x00, 0xfb, 0xdb },
  1.4664 +{ 0x00, 0xfc, 0xdc },
  1.4665 +{ 0x00, 0xfd, 0xdd },
  1.4666 +{ 0x00, 0xfe, 0xde },
  1.4667 +{ 0x00, 0xff, 0xff }
  1.4668 +};
  1.4669 +
  1.4670 +static struct cs_info iso15_tbl[] = {
  1.4671 +{ 0x00, 0x00, 0x00 },
  1.4672 +{ 0x00, 0x01, 0x01 },
  1.4673 +{ 0x00, 0x02, 0x02 },
  1.4674 +{ 0x00, 0x03, 0x03 },
  1.4675 +{ 0x00, 0x04, 0x04 },
  1.4676 +{ 0x00, 0x05, 0x05 },
  1.4677 +{ 0x00, 0x06, 0x06 },
  1.4678 +{ 0x00, 0x07, 0x07 },
  1.4679 +{ 0x00, 0x08, 0x08 },
  1.4680 +{ 0x00, 0x09, 0x09 },
  1.4681 +{ 0x00, 0x0a, 0x0a },
  1.4682 +{ 0x00, 0x0b, 0x0b },
  1.4683 +{ 0x00, 0x0c, 0x0c },
  1.4684 +{ 0x00, 0x0d, 0x0d },
  1.4685 +{ 0x00, 0x0e, 0x0e },
  1.4686 +{ 0x00, 0x0f, 0x0f },
  1.4687 +{ 0x00, 0x10, 0x10 },
  1.4688 +{ 0x00, 0x11, 0x11 },
  1.4689 +{ 0x00, 0x12, 0x12 },
  1.4690 +{ 0x00, 0x13, 0x13 },
  1.4691 +{ 0x00, 0x14, 0x14 },
  1.4692 +{ 0x00, 0x15, 0x15 },
  1.4693 +{ 0x00, 0x16, 0x16 },
  1.4694 +{ 0x00, 0x17, 0x17 },
  1.4695 +{ 0x00, 0x18, 0x18 },
  1.4696 +{ 0x00, 0x19, 0x19 },
  1.4697 +{ 0x00, 0x1a, 0x1a },
  1.4698 +{ 0x00, 0x1b, 0x1b },
  1.4699 +{ 0x00, 0x1c, 0x1c },
  1.4700 +{ 0x00, 0x1d, 0x1d },
  1.4701 +{ 0x00, 0x1e, 0x1e },
  1.4702 +{ 0x00, 0x1f, 0x1f },
  1.4703 +{ 0x00, 0x20, 0x20 },
  1.4704 +{ 0x00, 0x21, 0x21 },
  1.4705 +{ 0x00, 0x22, 0x22 },
  1.4706 +{ 0x00, 0x23, 0x23 },
  1.4707 +{ 0x00, 0x24, 0x24 },
  1.4708 +{ 0x00, 0x25, 0x25 },
  1.4709 +{ 0x00, 0x26, 0x26 },
  1.4710 +{ 0x00, 0x27, 0x27 },
  1.4711 +{ 0x00, 0x28, 0x28 },
  1.4712 +{ 0x00, 0x29, 0x29 },
  1.4713 +{ 0x00, 0x2a, 0x2a },
  1.4714 +{ 0x00, 0x2b, 0x2b },
  1.4715 +{ 0x00, 0x2c, 0x2c },
  1.4716 +{ 0x00, 0x2d, 0x2d },
  1.4717 +{ 0x00, 0x2e, 0x2e },
  1.4718 +{ 0x00, 0x2f, 0x2f },
  1.4719 +{ 0x00, 0x30, 0x30 },
  1.4720 +{ 0x00, 0x31, 0x31 },
  1.4721 +{ 0x00, 0x32, 0x32 },
  1.4722 +{ 0x00, 0x33, 0x33 },
  1.4723 +{ 0x00, 0x34, 0x34 },
  1.4724 +{ 0x00, 0x35, 0x35 },
  1.4725 +{ 0x00, 0x36, 0x36 },
  1.4726 +{ 0x00, 0x37, 0x37 },
  1.4727 +{ 0x00, 0x38, 0x38 },
  1.4728 +{ 0x00, 0x39, 0x39 },
  1.4729 +{ 0x00, 0x3a, 0x3a },
  1.4730 +{ 0x00, 0x3b, 0x3b },
  1.4731 +{ 0x00, 0x3c, 0x3c },
  1.4732 +{ 0x00, 0x3d, 0x3d },
  1.4733 +{ 0x00, 0x3e, 0x3e },
  1.4734 +{ 0x00, 0x3f, 0x3f },
  1.4735 +{ 0x00, 0x40, 0x40 },
  1.4736 +{ 0x01, 0x61, 0x41 },
  1.4737 +{ 0x01, 0x62, 0x42 },
  1.4738 +{ 0x01, 0x63, 0x43 },
  1.4739 +{ 0x01, 0x64, 0x44 },
  1.4740 +{ 0x01, 0x65, 0x45 },
  1.4741 +{ 0x01, 0x66, 0x46 },
  1.4742 +{ 0x01, 0x67, 0x47 },
  1.4743 +{ 0x01, 0x68, 0x48 },
  1.4744 +{ 0x01, 0x69, 0x49 },
  1.4745 +{ 0x01, 0x6a, 0x4a },
  1.4746 +{ 0x01, 0x6b, 0x4b },
  1.4747 +{ 0x01, 0x6c, 0x4c },
  1.4748 +{ 0x01, 0x6d, 0x4d },
  1.4749 +{ 0x01, 0x6e, 0x4e },
  1.4750 +{ 0x01, 0x6f, 0x4f },
  1.4751 +{ 0x01, 0x70, 0x50 },
  1.4752 +{ 0x01, 0x71, 0x51 },
  1.4753 +{ 0x01, 0x72, 0x52 },
  1.4754 +{ 0x01, 0x73, 0x53 },
  1.4755 +{ 0x01, 0x74, 0x54 },
  1.4756 +{ 0x01, 0x75, 0x55 },
  1.4757 +{ 0x01, 0x76, 0x56 },
  1.4758 +{ 0x01, 0x77, 0x57 },
  1.4759 +{ 0x01, 0x78, 0x58 },
  1.4760 +{ 0x01, 0x79, 0x59 },
  1.4761 +{ 0x01, 0x7a, 0x5a },
  1.4762 +{ 0x00, 0x5b, 0x5b },
  1.4763 +{ 0x00, 0x5c, 0x5c },
  1.4764 +{ 0x00, 0x5d, 0x5d },
  1.4765 +{ 0x00, 0x5e, 0x5e },
  1.4766 +{ 0x00, 0x5f, 0x5f },
  1.4767 +{ 0x00, 0x60, 0x60 },
  1.4768 +{ 0x00, 0x61, 0x41 },
  1.4769 +{ 0x00, 0x62, 0x42 },
  1.4770 +{ 0x00, 0x63, 0x43 },
  1.4771 +{ 0x00, 0x64, 0x44 },
  1.4772 +{ 0x00, 0x65, 0x45 },
  1.4773 +{ 0x00, 0x66, 0x46 },
  1.4774 +{ 0x00, 0x67, 0x47 },
  1.4775 +{ 0x00, 0x68, 0x48 },
  1.4776 +{ 0x00, 0x69, 0x49 },
  1.4777 +{ 0x00, 0x6a, 0x4a },
  1.4778 +{ 0x00, 0x6b, 0x4b },
  1.4779 +{ 0x00, 0x6c, 0x4c },
  1.4780 +{ 0x00, 0x6d, 0x4d },
  1.4781 +{ 0x00, 0x6e, 0x4e },
  1.4782 +{ 0x00, 0x6f, 0x4f },
  1.4783 +{ 0x00, 0x70, 0x50 },
  1.4784 +{ 0x00, 0x71, 0x51 },
  1.4785 +{ 0x00, 0x72, 0x52 },
  1.4786 +{ 0x00, 0x73, 0x53 },
  1.4787 +{ 0x00, 0x74, 0x54 },
  1.4788 +{ 0x00, 0x75, 0x55 },
  1.4789 +{ 0x00, 0x76, 0x56 },
  1.4790 +{ 0x00, 0x77, 0x57 },
  1.4791 +{ 0x00, 0x78, 0x58 },
  1.4792 +{ 0x00, 0x79, 0x59 },
  1.4793 +{ 0x00, 0x7a, 0x5a },
  1.4794 +{ 0x00, 0x7b, 0x7b },
  1.4795 +{ 0x00, 0x7c, 0x7c },
  1.4796 +{ 0x00, 0x7d, 0x7d },
  1.4797 +{ 0x00, 0x7e, 0x7e },
  1.4798 +{ 0x00, 0x7f, 0x7f },
  1.4799 +{ 0x00, 0x80, 0x80 },
  1.4800 +{ 0x00, 0x81, 0x81 },
  1.4801 +{ 0x00, 0x82, 0x82 },
  1.4802 +{ 0x00, 0x83, 0x83 },
  1.4803 +{ 0x00, 0x84, 0x84 },
  1.4804 +{ 0x00, 0x85, 0x85 },
  1.4805 +{ 0x00, 0x86, 0x86 },
  1.4806 +{ 0x00, 0x87, 0x87 },
  1.4807 +{ 0x00, 0x88, 0x88 },
  1.4808 +{ 0x00, 0x89, 0x89 },
  1.4809 +{ 0x00, 0x8a, 0x8a },
  1.4810 +{ 0x00, 0x8b, 0x8b },
  1.4811 +{ 0x00, 0x8c, 0x8c },
  1.4812 +{ 0x00, 0x8d, 0x8d },
  1.4813 +{ 0x00, 0x8e, 0x8e },
  1.4814 +{ 0x00, 0x8f, 0x8f },
  1.4815 +{ 0x00, 0x90, 0x90 },
  1.4816 +{ 0x00, 0x91, 0x91 },
  1.4817 +{ 0x00, 0x92, 0x92 },
  1.4818 +{ 0x00, 0x93, 0x93 },
  1.4819 +{ 0x00, 0x94, 0x94 },
  1.4820 +{ 0x00, 0x95, 0x95 },
  1.4821 +{ 0x00, 0x96, 0x96 },
  1.4822 +{ 0x00, 0x97, 0x97 },
  1.4823 +{ 0x00, 0x98, 0x98 },
  1.4824 +{ 0x00, 0x99, 0x99 },
  1.4825 +{ 0x00, 0x9a, 0x9a },
  1.4826 +{ 0x00, 0x9b, 0x9b },
  1.4827 +{ 0x00, 0x9c, 0x9c },
  1.4828 +{ 0x00, 0x9d, 0x9d },
  1.4829 +{ 0x00, 0x9e, 0x9e },
  1.4830 +{ 0x00, 0x9f, 0x9f },
  1.4831 +{ 0x00, 0xa0, 0xa0 },
  1.4832 +{ 0x00, 0xa1, 0xa1 },
  1.4833 +{ 0x00, 0xa2, 0xa2 },
  1.4834 +{ 0x00, 0xa3, 0xa3 },
  1.4835 +{ 0x00, 0xa4, 0xa4 },
  1.4836 +{ 0x00, 0xa5, 0xa5 },
  1.4837 +{ 0x01, 0xa8, 0xa6 },
  1.4838 +{ 0x00, 0xa7, 0xa7 },
  1.4839 +{ 0x00, 0xa8, 0xa6 },
  1.4840 +{ 0x00, 0xa9, 0xa9 },
  1.4841 +{ 0x00, 0xaa, 0xaa },
  1.4842 +{ 0x00, 0xab, 0xab },
  1.4843 +{ 0x00, 0xac, 0xac },
  1.4844 +{ 0x00, 0xad, 0xad },
  1.4845 +{ 0x00, 0xae, 0xae },
  1.4846 +{ 0x00, 0xaf, 0xaf },
  1.4847 +{ 0x00, 0xb0, 0xb0 },
  1.4848 +{ 0x00, 0xb1, 0xb1 },
  1.4849 +{ 0x00, 0xb2, 0xb2 },
  1.4850 +{ 0x00, 0xb3, 0xb3 },
  1.4851 +{ 0x01, 0xb8, 0xb4 },
  1.4852 +{ 0x00, 0xb5, 0xb5 },
  1.4853 +{ 0x00, 0xb6, 0xb6 },
  1.4854 +{ 0x00, 0xb7, 0xb7 },
  1.4855 +{ 0x00, 0xb8, 0xb4 },
  1.4856 +{ 0x00, 0xb9, 0xb9 },
  1.4857 +{ 0x00, 0xba, 0xba },
  1.4858 +{ 0x00, 0xbb, 0xbb },
  1.4859 +{ 0x01, 0xbd, 0xbc },
  1.4860 +{ 0x00, 0xbd, 0xbc },
  1.4861 +{ 0x01, 0xff, 0xbe },
  1.4862 +{ 0x00, 0xbf, 0xbf },
  1.4863 +{ 0x01, 0xe0, 0xc0 },
  1.4864 +{ 0x01, 0xe1, 0xc1 },
  1.4865 +{ 0x01, 0xe2, 0xc2 },
  1.4866 +{ 0x01, 0xe3, 0xc3 },
  1.4867 +{ 0x01, 0xe4, 0xc4 },
  1.4868 +{ 0x01, 0xe5, 0xc5 },
  1.4869 +{ 0x01, 0xe6, 0xc6 },
  1.4870 +{ 0x01, 0xe7, 0xc7 },
  1.4871 +{ 0x01, 0xe8, 0xc8 },
  1.4872 +{ 0x01, 0xe9, 0xc9 },
  1.4873 +{ 0x01, 0xea, 0xca },
  1.4874 +{ 0x01, 0xeb, 0xcb },
  1.4875 +{ 0x01, 0xec, 0xcc },
  1.4876 +{ 0x01, 0xed, 0xcd },
  1.4877 +{ 0x01, 0xee, 0xce },
  1.4878 +{ 0x01, 0xef, 0xcf },
  1.4879 +{ 0x01, 0xf0, 0xd0 },
  1.4880 +{ 0x01, 0xf1, 0xd1 },
  1.4881 +{ 0x01, 0xf2, 0xd2 },
  1.4882 +{ 0x01, 0xf3, 0xd3 },
  1.4883 +{ 0x01, 0xf4, 0xd4 },
  1.4884 +{ 0x01, 0xf5, 0xd5 },
  1.4885 +{ 0x01, 0xf6, 0xd6 },
  1.4886 +{ 0x00, 0xd7, 0xd7 },
  1.4887 +{ 0x01, 0xf8, 0xd8 },
  1.4888 +{ 0x01, 0xf9, 0xd9 },
  1.4889 +{ 0x01, 0xfa, 0xda },
  1.4890 +{ 0x01, 0xfb, 0xdb },
  1.4891 +{ 0x01, 0xfc, 0xdc },
  1.4892 +{ 0x01, 0xfd, 0xdd },
  1.4893 +{ 0x01, 0xfe, 0xde },
  1.4894 +{ 0x00, 0xdf, 0xdf },
  1.4895 +{ 0x00, 0xe0, 0xc0 },
  1.4896 +{ 0x00, 0xe1, 0xc1 },
  1.4897 +{ 0x00, 0xe2, 0xc2 },
  1.4898 +{ 0x00, 0xe3, 0xc3 },
  1.4899 +{ 0x00, 0xe4, 0xc4 },
  1.4900 +{ 0x00, 0xe5, 0xc5 },
  1.4901 +{ 0x00, 0xe6, 0xc6 },
  1.4902 +{ 0x00, 0xe7, 0xc7 },
  1.4903 +{ 0x00, 0xe8, 0xc8 },
  1.4904 +{ 0x00, 0xe9, 0xc9 },
  1.4905 +{ 0x00, 0xea, 0xca },
  1.4906 +{ 0x00, 0xeb, 0xcb },
  1.4907 +{ 0x00, 0xec, 0xcc },
  1.4908 +{ 0x00, 0xed, 0xcd },
  1.4909 +{ 0x00, 0xee, 0xce },
  1.4910 +{ 0x00, 0xef, 0xcf },
  1.4911 +{ 0x00, 0xf0, 0xd0 },
  1.4912 +{ 0x00, 0xf1, 0xd1 },
  1.4913 +{ 0x00, 0xf2, 0xd2 },
  1.4914 +{ 0x00, 0xf3, 0xd3 },
  1.4915 +{ 0x00, 0xf4, 0xd4 },
  1.4916 +{ 0x00, 0xf5, 0xd5 },
  1.4917 +{ 0x00, 0xf6, 0xd6 },
  1.4918 +{ 0x00, 0xf7, 0xf7 },
  1.4919 +{ 0x00, 0xf8, 0xd8 },
  1.4920 +{ 0x00, 0xf9, 0xd9 },
  1.4921 +{ 0x00, 0xfa, 0xda },
  1.4922 +{ 0x00, 0xfb, 0xdb },
  1.4923 +{ 0x00, 0xfc, 0xdc },
  1.4924 +{ 0x00, 0xfd, 0xdd },
  1.4925 +{ 0x00, 0xfe, 0xde },
  1.4926 +{ 0x00, 0xff, 0xbe }
  1.4927 +};
  1.4928 +
  1.4929 +static struct cs_info iscii_devanagari_tbl[] = {
  1.4930 +{ 0x00, 0x00, 0x00 },
  1.4931 +{ 0x00, 0x01, 0x01 },
  1.4932 +{ 0x00, 0x02, 0x02 },
  1.4933 +{ 0x00, 0x03, 0x03 },
  1.4934 +{ 0x00, 0x04, 0x04 },
  1.4935 +{ 0x00, 0x05, 0x05 },
  1.4936 +{ 0x00, 0x06, 0x06 },
  1.4937 +{ 0x00, 0x07, 0x07 },
  1.4938 +{ 0x00, 0x08, 0x08 },
  1.4939 +{ 0x00, 0x09, 0x09 },
  1.4940 +{ 0x00, 0x0a, 0x0a },
  1.4941 +{ 0x00, 0x0b, 0x0b },
  1.4942 +{ 0x00, 0x0c, 0x0c },
  1.4943 +{ 0x00, 0x0d, 0x0d },
  1.4944 +{ 0x00, 0x0e, 0x0e },
  1.4945 +{ 0x00, 0x0f, 0x0f },
  1.4946 +{ 0x00, 0x10, 0x10 },
  1.4947 +{ 0x00, 0x11, 0x11 },
  1.4948 +{ 0x00, 0x12, 0x12 },
  1.4949 +{ 0x00, 0x13, 0x13 },
  1.4950 +{ 0x00, 0x14, 0x14 },
  1.4951 +{ 0x00, 0x15, 0x15 },
  1.4952 +{ 0x00, 0x16, 0x16 },
  1.4953 +{ 0x00, 0x17, 0x17 },
  1.4954 +{ 0x00, 0x18, 0x18 },
  1.4955 +{ 0x00, 0x19, 0x19 },
  1.4956 +{ 0x00, 0x1a, 0x1a },
  1.4957 +{ 0x00, 0x1b, 0x1b },
  1.4958 +{ 0x00, 0x1c, 0x1c },
  1.4959 +{ 0x00, 0x1d, 0x1d },
  1.4960 +{ 0x00, 0x1e, 0x1e },
  1.4961 +{ 0x00, 0x1f, 0x1f },
  1.4962 +{ 0x00, 0x20, 0x20 },
  1.4963 +{ 0x00, 0x21, 0x21 },
  1.4964 +{ 0x00, 0x22, 0x22 },
  1.4965 +{ 0x00, 0x23, 0x23 },
  1.4966 +{ 0x00, 0x24, 0x24 },
  1.4967 +{ 0x00, 0x25, 0x25 },
  1.4968 +{ 0x00, 0x26, 0x26 },
  1.4969 +{ 0x00, 0x27, 0x27 },
  1.4970 +{ 0x00, 0x28, 0x28 },
  1.4971 +{ 0x00, 0x29, 0x29 },
  1.4972 +{ 0x00, 0x2a, 0x2a },
  1.4973 +{ 0x00, 0x2b, 0x2b },
  1.4974 +{ 0x00, 0x2c, 0x2c },
  1.4975 +{ 0x00, 0x2d, 0x2d },
  1.4976 +{ 0x00, 0x2e, 0x2e },
  1.4977 +{ 0x00, 0x2f, 0x2f },
  1.4978 +{ 0x00, 0x30, 0x30 },
  1.4979 +{ 0x00, 0x31, 0x31 },
  1.4980 +{ 0x00, 0x32, 0x32 },
  1.4981 +{ 0x00, 0x33, 0x33 },
  1.4982 +{ 0x00, 0x34, 0x34 },
  1.4983 +{ 0x00, 0x35, 0x35 },
  1.4984 +{ 0x00, 0x36, 0x36 },
  1.4985 +{ 0x00, 0x37, 0x37 },
  1.4986 +{ 0x00, 0x38, 0x38 },
  1.4987 +{ 0x00, 0x39, 0x39 },
  1.4988 +{ 0x00, 0x3a, 0x3a },
  1.4989 +{ 0x00, 0x3b, 0x3b },
  1.4990 +{ 0x00, 0x3c, 0x3c },
  1.4991 +{ 0x00, 0x3d, 0x3d },
  1.4992 +{ 0x00, 0x3e, 0x3e },
  1.4993 +{ 0x00, 0x3f, 0x3f },
  1.4994 +{ 0x00, 0x40, 0x40 },
  1.4995 +{ 0x01, 0x61, 0x41 },
  1.4996 +{ 0x01, 0x62, 0x42 },
  1.4997 +{ 0x01, 0x63, 0x43 },
  1.4998 +{ 0x01, 0x64, 0x44 },
  1.4999 +{ 0x01, 0x65, 0x45 },
  1.5000 +{ 0x01, 0x66, 0x46 },
  1.5001 +{ 0x01, 0x67, 0x47 },
  1.5002 +{ 0x01, 0x68, 0x48 },
  1.5003 +{ 0x01, 0x69, 0x49 },
  1.5004 +{ 0x01, 0x6a, 0x4a },
  1.5005 +{ 0x01, 0x6b, 0x4b },
  1.5006 +{ 0x01, 0x6c, 0x4c },
  1.5007 +{ 0x01, 0x6d, 0x4d },
  1.5008 +{ 0x01, 0x6e, 0x4e },
  1.5009 +{ 0x01, 0x6f, 0x4f },
  1.5010 +{ 0x01, 0x70, 0x50 },
  1.5011 +{ 0x01, 0x71, 0x51 },
  1.5012 +{ 0x01, 0x72, 0x52 },
  1.5013 +{ 0x01, 0x73, 0x53 },
  1.5014 +{ 0x01, 0x74, 0x54 },
  1.5015 +{ 0x01, 0x75, 0x55 },
  1.5016 +{ 0x01, 0x76, 0x56 },
  1.5017 +{ 0x01, 0x77, 0x57 },
  1.5018 +{ 0x01, 0x78, 0x58 },
  1.5019 +{ 0x01, 0x79, 0x59 },
  1.5020 +{ 0x01, 0x7a, 0x5a },
  1.5021 +{ 0x00, 0x5b, 0x5b },
  1.5022 +{ 0x00, 0x5c, 0x5c },
  1.5023 +{ 0x00, 0x5d, 0x5d },
  1.5024 +{ 0x00, 0x5e, 0x5e },
  1.5025 +{ 0x00, 0x5f, 0x5f },
  1.5026 +{ 0x00, 0x60, 0x60 },
  1.5027 +{ 0x00, 0x61, 0x41 },
  1.5028 +{ 0x00, 0x62, 0x42 },
  1.5029 +{ 0x00, 0x63, 0x43 },
  1.5030 +{ 0x00, 0x64, 0x44 },
  1.5031 +{ 0x00, 0x65, 0x45 },
  1.5032 +{ 0x00, 0x66, 0x46 },
  1.5033 +{ 0x00, 0x67, 0x47 },
  1.5034 +{ 0x00, 0x68, 0x48 },
  1.5035 +{ 0x00, 0x69, 0x49 },
  1.5036 +{ 0x00, 0x6a, 0x4a },
  1.5037 +{ 0x00, 0x6b, 0x4b },
  1.5038 +{ 0x00, 0x6c, 0x4c },
  1.5039 +{ 0x00, 0x6d, 0x4d },
  1.5040 +{ 0x00, 0x6e, 0x4e },
  1.5041 +{ 0x00, 0x6f, 0x4f },
  1.5042 +{ 0x00, 0x70, 0x50 },
  1.5043 +{ 0x00, 0x71, 0x51 },
  1.5044 +{ 0x00, 0x72, 0x52 },
  1.5045 +{ 0x00, 0x73, 0x53 },
  1.5046 +{ 0x00, 0x74, 0x54 },
  1.5047 +{ 0x00, 0x75, 0x55 },
  1.5048 +{ 0x00, 0x76, 0x56 },
  1.5049 +{ 0x00, 0x77, 0x57 },
  1.5050 +{ 0x00, 0x78, 0x58 },
  1.5051 +{ 0x00, 0x79, 0x59 },
  1.5052 +{ 0x00, 0x7a, 0x5a },
  1.5053 +{ 0x00, 0x7b, 0x7b },
  1.5054 +{ 0x00, 0x7c, 0x7c },
  1.5055 +{ 0x00, 0x7d, 0x7d },
  1.5056 +{ 0x00, 0x7e, 0x7e },
  1.5057 +{ 0x00, 0x7f, 0x7f },
  1.5058 +{ 0x00, 0x80, 0x80 },
  1.5059 +{ 0x00, 0x81, 0x81 },
  1.5060 +{ 0x00, 0x82, 0x82 },
  1.5061 +{ 0x00, 0x83, 0x83 },
  1.5062 +{ 0x00, 0x84, 0x84 },
  1.5063 +{ 0x00, 0x85, 0x85 },
  1.5064 +{ 0x00, 0x86, 0x86 },
  1.5065 +{ 0x00, 0x87, 0x87 },
  1.5066 +{ 0x00, 0x88, 0x88 },
  1.5067 +{ 0x00, 0x89, 0x89 },
  1.5068 +{ 0x00, 0x8a, 0x8a },
  1.5069 +{ 0x00, 0x8b, 0x8b },
  1.5070 +{ 0x00, 0x8c, 0x8c },
  1.5071 +{ 0x00, 0x8d, 0x8d },
  1.5072 +{ 0x00, 0x8e, 0x8e },
  1.5073 +{ 0x00, 0x8f, 0x8f },
  1.5074 +{ 0x00, 0x90, 0x90 },
  1.5075 +{ 0x00, 0x91, 0x91 },
  1.5076 +{ 0x00, 0x92, 0x92 },
  1.5077 +{ 0x00, 0x93, 0x93 },
  1.5078 +{ 0x00, 0x94, 0x94 },
  1.5079 +{ 0x00, 0x95, 0x95 },
  1.5080 +{ 0x00, 0x96, 0x96 },
  1.5081 +{ 0x00, 0x97, 0x97 },
  1.5082 +{ 0x00, 0x98, 0x98 },
  1.5083 +{ 0x00, 0x99, 0x99 },
  1.5084 +{ 0x00, 0x9a, 0x9a },
  1.5085 +{ 0x00, 0x9b, 0x9b },
  1.5086 +{ 0x00, 0x9c, 0x9c },
  1.5087 +{ 0x00, 0x9d, 0x9d },
  1.5088 +{ 0x00, 0x9e, 0x9e },
  1.5089 +{ 0x00, 0x9f, 0x9f },
  1.5090 +{ 0x00, 0xa0, 0xa0 },
  1.5091 +{ 0x00, 0xa1, 0xa1 },
  1.5092 +{ 0x00, 0xa2, 0xa2 },
  1.5093 +{ 0x00, 0xa3, 0xa3 },
  1.5094 +{ 0x00, 0xa4, 0xa4 },
  1.5095 +{ 0x00, 0xa5, 0xa5 },
  1.5096 +{ 0x00, 0xa6, 0xa6 },
  1.5097 +{ 0x00, 0xa7, 0xa7 },
  1.5098 +{ 0x00, 0xa8, 0xa8 },
  1.5099 +{ 0x00, 0xa9, 0xa9 },
  1.5100 +{ 0x00, 0xaa, 0xaa },
  1.5101 +{ 0x00, 0xab, 0xab },
  1.5102 +{ 0x00, 0xac, 0xac },
  1.5103 +{ 0x00, 0xad, 0xad },
  1.5104 +{ 0x00, 0xae, 0xae },
  1.5105 +{ 0x00, 0xaf, 0xaf },
  1.5106 +{ 0x00, 0xb0, 0xb0 },
  1.5107 +{ 0x00, 0xb1, 0xb1 },
  1.5108 +{ 0x00, 0xb2, 0xb2 },
  1.5109 +{ 0x00, 0xb3, 0xb3 },
  1.5110 +{ 0x00, 0xb4, 0xb4 },
  1.5111 +{ 0x00, 0xb5, 0xb5 },
  1.5112 +{ 0x00, 0xb6, 0xb6 },
  1.5113 +{ 0x00, 0xb7, 0xb7 },
  1.5114 +{ 0x00, 0xb8, 0xb8 },
  1.5115 +{ 0x00, 0xb9, 0xb9 },
  1.5116 +{ 0x00, 0xba, 0xba },
  1.5117 +{ 0x00, 0xbb, 0xbb },
  1.5118 +{ 0x00, 0xbc, 0xbc },
  1.5119 +{ 0x00, 0xbd, 0xbd },
  1.5120 +{ 0x00, 0xbe, 0xbe },
  1.5121 +{ 0x00, 0xbf, 0xbf },
  1.5122 +{ 0x00, 0xc0, 0xc0 },
  1.5123 +{ 0x00, 0xc1, 0xc1 },
  1.5124 +{ 0x00, 0xc2, 0xc2 },
  1.5125 +{ 0x00, 0xc3, 0xc3 },
  1.5126 +{ 0x00, 0xc4, 0xc4 },
  1.5127 +{ 0x00, 0xc5, 0xc5 },
  1.5128 +{ 0x00, 0xc6, 0xc6 },
  1.5129 +{ 0x00, 0xc7, 0xc7 },
  1.5130 +{ 0x00, 0xc8, 0xc8 },
  1.5131 +{ 0x00, 0xc9, 0xc9 },
  1.5132 +{ 0x00, 0xca, 0xca },
  1.5133 +{ 0x00, 0xcb, 0xcb },
  1.5134 +{ 0x00, 0xcc, 0xcc },
  1.5135 +{ 0x00, 0xcd, 0xcd },
  1.5136 +{ 0x00, 0xce, 0xce },
  1.5137 +{ 0x00, 0xcf, 0xcf },
  1.5138 +{ 0x00, 0xd0, 0xd0 },
  1.5139 +{ 0x00, 0xd1, 0xd1 },
  1.5140 +{ 0x00, 0xd2, 0xd2 },
  1.5141 +{ 0x00, 0xd3, 0xd3 },
  1.5142 +{ 0x00, 0xd4, 0xd4 },
  1.5143 +{ 0x00, 0xd5, 0xd5 },
  1.5144 +{ 0x00, 0xd6, 0xd6 },
  1.5145 +{ 0x00, 0xd7, 0xd7 },
  1.5146 +{ 0x00, 0xd8, 0xd8 },
  1.5147 +{ 0x00, 0xd9, 0xd9 },
  1.5148 +{ 0x00, 0xda, 0xda },
  1.5149 +{ 0x00, 0xdb, 0xdb },
  1.5150 +{ 0x00, 0xdc, 0xdc },
  1.5151 +{ 0x00, 0xdd, 0xdd },
  1.5152 +{ 0x00, 0xde, 0xde },
  1.5153 +{ 0x00, 0xdf, 0xdf },
  1.5154 +{ 0x00, 0xe0, 0xe0 },
  1.5155 +{ 0x00, 0xe1, 0xe1 },
  1.5156 +{ 0x00, 0xe2, 0xe2 },
  1.5157 +{ 0x00, 0xe3, 0xe3 },
  1.5158 +{ 0x00, 0xe4, 0xe4 },
  1.5159 +{ 0x00, 0xe5, 0xe5 },
  1.5160 +{ 0x00, 0xe6, 0xe6 },
  1.5161 +{ 0x00, 0xe7, 0xe7 },
  1.5162 +{ 0x00, 0xe8, 0xe8 },
  1.5163 +{ 0x00, 0xe9, 0xe9 },
  1.5164 +{ 0x00, 0xea, 0xea },
  1.5165 +{ 0x00, 0xeb, 0xeb },
  1.5166 +{ 0x00, 0xec, 0xec },
  1.5167 +{ 0x00, 0xed, 0xed },
  1.5168 +{ 0x00, 0xee, 0xee },
  1.5169 +{ 0x00, 0xef, 0xef },
  1.5170 +{ 0x00, 0xf0, 0xf0 },
  1.5171 +{ 0x00, 0xf1, 0xf1 },
  1.5172 +{ 0x00, 0xf2, 0xf2 },
  1.5173 +{ 0x00, 0xf3, 0xf3 },
  1.5174 +{ 0x00, 0xf4, 0xf4 },
  1.5175 +{ 0x00, 0xf5, 0xf5 },
  1.5176 +{ 0x00, 0xf6, 0xf6 },
  1.5177 +{ 0x00, 0xf7, 0xf7 },
  1.5178 +{ 0x00, 0xf8, 0xf8 },
  1.5179 +{ 0x00, 0xf9, 0xf9 },
  1.5180 +{ 0x00, 0xfa, 0xfa },
  1.5181 +{ 0x00, 0xfb, 0xfb },
  1.5182 +{ 0x00, 0xfc, 0xfc },
  1.5183 +{ 0x00, 0xfd, 0xfd },
  1.5184 +{ 0x00, 0xfe, 0xfe },
  1.5185 +{ 0x00, 0xff, 0xff }
  1.5186 +};
  1.5187 +
  1.5188 +static struct cs_info tis620_tbl[] = {
  1.5189 +{ 0x00, 0x00, 0x00 },
  1.5190 +{ 0x00, 0x01, 0x01 },
  1.5191 +{ 0x00, 0x02, 0x02 },
  1.5192 +{ 0x00, 0x03, 0x03 },
  1.5193 +{ 0x00, 0x04, 0x04 },
  1.5194 +{ 0x00, 0x05, 0x05 },
  1.5195 +{ 0x00, 0x06, 0x06 },
  1.5196 +{ 0x00, 0x07, 0x07 },
  1.5197 +{ 0x00, 0x08, 0x08 },
  1.5198 +{ 0x00, 0x09, 0x09 },
  1.5199 +{ 0x00, 0x0a, 0x0a },
  1.5200 +{ 0x00, 0x0b, 0x0b },
  1.5201 +{ 0x00, 0x0c, 0x0c },
  1.5202 +{ 0x00, 0x0d, 0x0d },
  1.5203 +{ 0x00, 0x0e, 0x0e },
  1.5204 +{ 0x00, 0x0f, 0x0f },
  1.5205 +{ 0x00, 0x10, 0x10 },
  1.5206 +{ 0x00, 0x11, 0x11 },
  1.5207 +{ 0x00, 0x12, 0x12 },
  1.5208 +{ 0x00, 0x13, 0x13 },
  1.5209 +{ 0x00, 0x14, 0x14 },
  1.5210 +{ 0x00, 0x15, 0x15 },
  1.5211 +{ 0x00, 0x16, 0x16 },
  1.5212 +{ 0x00, 0x17, 0x17 },
  1.5213 +{ 0x00, 0x18, 0x18 },
  1.5214 +{ 0x00, 0x19, 0x19 },
  1.5215 +{ 0x00, 0x1a, 0x1a },
  1.5216 +{ 0x00, 0x1b, 0x1b },
  1.5217 +{ 0x00, 0x1c, 0x1c },
  1.5218 +{ 0x00, 0x1d, 0x1d },
  1.5219 +{ 0x00, 0x1e, 0x1e },
  1.5220 +{ 0x00, 0x1f, 0x1f },
  1.5221 +{ 0x00, 0x20, 0x20 },
  1.5222 +{ 0x00, 0x21, 0x21 },
  1.5223 +{ 0x00, 0x22, 0x22 },
  1.5224 +{ 0x00, 0x23, 0x23 },
  1.5225 +{ 0x00, 0x24, 0x24 },
  1.5226 +{ 0x00, 0x25, 0x25 },
  1.5227 +{ 0x00, 0x26, 0x26 },
  1.5228 +{ 0x00, 0x27, 0x27 },
  1.5229 +{ 0x00, 0x28, 0x28 },
  1.5230 +{ 0x00, 0x29, 0x29 },
  1.5231 +{ 0x00, 0x2a, 0x2a },
  1.5232 +{ 0x00, 0x2b, 0x2b },
  1.5233 +{ 0x00, 0x2c, 0x2c },
  1.5234 +{ 0x00, 0x2d, 0x2d },
  1.5235 +{ 0x00, 0x2e, 0x2e },
  1.5236 +{ 0x00, 0x2f, 0x2f },
  1.5237 +{ 0x00, 0x30, 0x30 },
  1.5238 +{ 0x00, 0x31, 0x31 },
  1.5239 +{ 0x00, 0x32, 0x32 },
  1.5240 +{ 0x00, 0x33, 0x33 },
  1.5241 +{ 0x00, 0x34, 0x34 },
  1.5242 +{ 0x00, 0x35, 0x35 },
  1.5243 +{ 0x00, 0x36, 0x36 },
  1.5244 +{ 0x00, 0x37, 0x37 },
  1.5245 +{ 0x00, 0x38, 0x38 },
  1.5246 +{ 0x00, 0x39, 0x39 },
  1.5247 +{ 0x00, 0x3a, 0x3a },
  1.5248 +{ 0x00, 0x3b, 0x3b },
  1.5249 +{ 0x00, 0x3c, 0x3c },
  1.5250 +{ 0x00, 0x3d, 0x3d },
  1.5251 +{ 0x00, 0x3e, 0x3e },
  1.5252 +{ 0x00, 0x3f, 0x3f },
  1.5253 +{ 0x00, 0x40, 0x40 },
  1.5254 +{ 0x01, 0x61, 0x41 },
  1.5255 +{ 0x01, 0x62, 0x42 },
  1.5256 +{ 0x01, 0x63, 0x43 },
  1.5257 +{ 0x01, 0x64, 0x44 },
  1.5258 +{ 0x01, 0x65, 0x45 },
  1.5259 +{ 0x01, 0x66, 0x46 },
  1.5260 +{ 0x01, 0x67, 0x47 },
  1.5261 +{ 0x01, 0x68, 0x48 },
  1.5262 +{ 0x01, 0x69, 0x49 },
  1.5263 +{ 0x01, 0x6a, 0x4a },
  1.5264 +{ 0x01, 0x6b, 0x4b },
  1.5265 +{ 0x01, 0x6c, 0x4c },
  1.5266 +{ 0x01, 0x6d, 0x4d },
  1.5267 +{ 0x01, 0x6e, 0x4e },
  1.5268 +{ 0x01, 0x6f, 0x4f },
  1.5269 +{ 0x01, 0x70, 0x50 },
  1.5270 +{ 0x01, 0x71, 0x51 },
  1.5271 +{ 0x01, 0x72, 0x52 },
  1.5272 +{ 0x01, 0x73, 0x53 },
  1.5273 +{ 0x01, 0x74, 0x54 },
  1.5274 +{ 0x01, 0x75, 0x55 },
  1.5275 +{ 0x01, 0x76, 0x56 },
  1.5276 +{ 0x01, 0x77, 0x57 },
  1.5277 +{ 0x01, 0x78, 0x58 },
  1.5278 +{ 0x01, 0x79, 0x59 },
  1.5279 +{ 0x01, 0x7a, 0x5a },
  1.5280 +{ 0x00, 0x5b, 0x5b },
  1.5281 +{ 0x00, 0x5c, 0x5c },
  1.5282 +{ 0x00, 0x5d, 0x5d },
  1.5283 +{ 0x00, 0x5e, 0x5e },
  1.5284 +{ 0x00, 0x5f, 0x5f },
  1.5285 +{ 0x00, 0x60, 0x60 },
  1.5286 +{ 0x00, 0x61, 0x41 },
  1.5287 +{ 0x00, 0x62, 0x42 },
  1.5288 +{ 0x00, 0x63, 0x43 },
  1.5289 +{ 0x00, 0x64, 0x44 },
  1.5290 +{ 0x00, 0x65, 0x45 },
  1.5291 +{ 0x00, 0x66, 0x46 },
  1.5292 +{ 0x00, 0x67, 0x47 },
  1.5293 +{ 0x00, 0x68, 0x48 },
  1.5294 +{ 0x00, 0x69, 0x49 },
  1.5295 +{ 0x00, 0x6a, 0x4a },
  1.5296 +{ 0x00, 0x6b, 0x4b },
  1.5297 +{ 0x00, 0x6c, 0x4c },
  1.5298 +{ 0x00, 0x6d, 0x4d },
  1.5299 +{ 0x00, 0x6e, 0x4e },
  1.5300 +{ 0x00, 0x6f, 0x4f },
  1.5301 +{ 0x00, 0x70, 0x50 },
  1.5302 +{ 0x00, 0x71, 0x51 },
  1.5303 +{ 0x00, 0x72, 0x52 },
  1.5304 +{ 0x00, 0x73, 0x53 },
  1.5305 +{ 0x00, 0x74, 0x54 },
  1.5306 +{ 0x00, 0x75, 0x55 },
  1.5307 +{ 0x00, 0x76, 0x56 },
  1.5308 +{ 0x00, 0x77, 0x57 },
  1.5309 +{ 0x00, 0x78, 0x58 },
  1.5310 +{ 0x00, 0x79, 0x59 },
  1.5311 +{ 0x00, 0x7a, 0x5a },
  1.5312 +{ 0x00, 0x7b, 0x7b },
  1.5313 +{ 0x00, 0x7c, 0x7c },
  1.5314 +{ 0x00, 0x7d, 0x7d },
  1.5315 +{ 0x00, 0x7e, 0x7e },
  1.5316 +{ 0x00, 0x7f, 0x7f },
  1.5317 +{ 0x00, 0x80, 0x80 },
  1.5318 +{ 0x00, 0x81, 0x81 },
  1.5319 +{ 0x00, 0x82, 0x82 },
  1.5320 +{ 0x00, 0x83, 0x83 },
  1.5321 +{ 0x00, 0x84, 0x84 },
  1.5322 +{ 0x00, 0x85, 0x85 },
  1.5323 +{ 0x00, 0x86, 0x86 },
  1.5324 +{ 0x00, 0x87, 0x87 },
  1.5325 +{ 0x00, 0x88, 0x88 },
  1.5326 +{ 0x00, 0x89, 0x89 },
  1.5327 +{ 0x00, 0x8a, 0x8a },
  1.5328 +{ 0x00, 0x8b, 0x8b },
  1.5329 +{ 0x00, 0x8c, 0x8c },
  1.5330 +{ 0x00, 0x8d, 0x8d },
  1.5331 +{ 0x00, 0x8e, 0x8e },
  1.5332 +{ 0x00, 0x8f, 0x8f },
  1.5333 +{ 0x00, 0x90, 0x90 },
  1.5334 +{ 0x00, 0x91, 0x91 },
  1.5335 +{ 0x00, 0x92, 0x92 },
  1.5336 +{ 0x00, 0x93, 0x93 },
  1.5337 +{ 0x00, 0x94, 0x94 },
  1.5338 +{ 0x00, 0x95, 0x95 },
  1.5339 +{ 0x00, 0x96, 0x96 },
  1.5340 +{ 0x00, 0x97, 0x97 },
  1.5341 +{ 0x00, 0x98, 0x98 },
  1.5342 +{ 0x00, 0x99, 0x99 },
  1.5343 +{ 0x00, 0x9a, 0x9a },
  1.5344 +{ 0x00, 0x9b, 0x9b },
  1.5345 +{ 0x00, 0x9c, 0x9c },
  1.5346 +{ 0x00, 0x9d, 0x9d },
  1.5347 +{ 0x00, 0x9e, 0x9e },
  1.5348 +{ 0x00, 0x9f, 0x9f },
  1.5349 +{ 0x00, 0xa0, 0xa0 },
  1.5350 +{ 0x00, 0xa1, 0xa1 },
  1.5351 +{ 0x00, 0xa2, 0xa2 },
  1.5352 +{ 0x00, 0xa3, 0xa3 },
  1.5353 +{ 0x00, 0xa4, 0xa4 },
  1.5354 +{ 0x00, 0xa5, 0xa5 },
  1.5355 +{ 0x00, 0xa6, 0xa6 },
  1.5356 +{ 0x00, 0xa7, 0xa7 },
  1.5357 +{ 0x00, 0xa8, 0xa8 },
  1.5358 +{ 0x00, 0xa9, 0xa9 },
  1.5359 +{ 0x00, 0xaa, 0xaa },
  1.5360 +{ 0x00, 0xab, 0xab },
  1.5361 +{ 0x00, 0xac, 0xac },
  1.5362 +{ 0x00, 0xad, 0xad },
  1.5363 +{ 0x00, 0xae, 0xae },
  1.5364 +{ 0x00, 0xaf, 0xaf },
  1.5365 +{ 0x00, 0xb0, 0xb0 },
  1.5366 +{ 0x00, 0xb1, 0xb1 },
  1.5367 +{ 0x00, 0xb2, 0xb2 },
  1.5368 +{ 0x00, 0xb3, 0xb3 },
  1.5369 +{ 0x00, 0xb4, 0xb4 },
  1.5370 +{ 0x00, 0xb5, 0xb5 },
  1.5371 +{ 0x00, 0xb6, 0xb6 },
  1.5372 +{ 0x00, 0xb7, 0xb7 },
  1.5373 +{ 0x00, 0xb8, 0xb8 },
  1.5374 +{ 0x00, 0xb9, 0xb9 },
  1.5375 +{ 0x00, 0xba, 0xba },
  1.5376 +{ 0x00, 0xbb, 0xbb },
  1.5377 +{ 0x00, 0xbc, 0xbc },
  1.5378 +{ 0x00, 0xbd, 0xbd },
  1.5379 +{ 0x00, 0xbe, 0xbe },
  1.5380 +{ 0x00, 0xbf, 0xbf },
  1.5381 +{ 0x00, 0xc0, 0xc0 },
  1.5382 +{ 0x00, 0xc1, 0xc1 },
  1.5383 +{ 0x00, 0xc2, 0xc2 },
  1.5384 +{ 0x00, 0xc3, 0xc3 },
  1.5385 +{ 0x00, 0xc4, 0xc4 },
  1.5386 +{ 0x00, 0xc5, 0xc5 },
  1.5387 +{ 0x00, 0xc6, 0xc6 },
  1.5388 +{ 0x00, 0xc7, 0xc7 },
  1.5389 +{ 0x00, 0xc8, 0xc8 },
  1.5390 +{ 0x00, 0xc9, 0xc9 },
  1.5391 +{ 0x00, 0xca, 0xca },
  1.5392 +{ 0x00, 0xcb, 0xcb },
  1.5393 +{ 0x00, 0xcc, 0xcc },
  1.5394 +{ 0x00, 0xcd, 0xcd },
  1.5395 +{ 0x00, 0xce, 0xce },
  1.5396 +{ 0x00, 0xcf, 0xcf },
  1.5397 +{ 0x00, 0xd0, 0xd0 },
  1.5398 +{ 0x00, 0xd1, 0xd1 },
  1.5399 +{ 0x00, 0xd2, 0xd2 },
  1.5400 +{ 0x00, 0xd3, 0xd3 },
  1.5401 +{ 0x00, 0xd4, 0xd4 },
  1.5402 +{ 0x00, 0xd5, 0xd5 },
  1.5403 +{ 0x00, 0xd6, 0xd6 },
  1.5404 +{ 0x00, 0xd7, 0xd7 },
  1.5405 +{ 0x00, 0xd8, 0xd8 },
  1.5406 +{ 0x00, 0xd9, 0xd9 },
  1.5407 +{ 0x00, 0xda, 0xda },
  1.5408 +{ 0x00, 0xdb, 0xdb },
  1.5409 +{ 0x00, 0xdc, 0xdc },
  1.5410 +{ 0x00, 0xdd, 0xdd },
  1.5411 +{ 0x00, 0xde, 0xde },
  1.5412 +{ 0x00, 0xdf, 0xdf },
  1.5413 +{ 0x00, 0xe0, 0xe0 },
  1.5414 +{ 0x00, 0xe1, 0xe1 },
  1.5415 +{ 0x00, 0xe2, 0xe2 },
  1.5416 +{ 0x00, 0xe3, 0xe3 },
  1.5417 +{ 0x00, 0xe4, 0xe4 },
  1.5418 +{ 0x00, 0xe5, 0xe5 },
  1.5419 +{ 0x00, 0xe6, 0xe6 },
  1.5420 +{ 0x00, 0xe7, 0xe7 },
  1.5421 +{ 0x00, 0xe8, 0xe8 },
  1.5422 +{ 0x00, 0xe9, 0xe9 },
  1.5423 +{ 0x00, 0xea, 0xea },
  1.5424 +{ 0x00, 0xeb, 0xeb },
  1.5425 +{ 0x00, 0xec, 0xec },
  1.5426 +{ 0x00, 0xed, 0xed },
  1.5427 +{ 0x00, 0xee, 0xee },
  1.5428 +{ 0x00, 0xef, 0xef },
  1.5429 +{ 0x00, 0xf0, 0xf0 },
  1.5430 +{ 0x00, 0xf1, 0xf1 },
  1.5431 +{ 0x00, 0xf2, 0xf2 },
  1.5432 +{ 0x00, 0xf3, 0xf3 },
  1.5433 +{ 0x00, 0xf4, 0xf4 },
  1.5434 +{ 0x00, 0xf5, 0xf5 },
  1.5435 +{ 0x00, 0xf6, 0xf6 },
  1.5436 +{ 0x00, 0xf7, 0xf7 },
  1.5437 +{ 0x00, 0xf8, 0xf8 },
  1.5438 +{ 0x00, 0xf9, 0xf9 },
  1.5439 +{ 0x00, 0xfa, 0xfa },
  1.5440 +{ 0x00, 0xfb, 0xfb },
  1.5441 +{ 0x00, 0xfc, 0xfc },
  1.5442 +{ 0x00, 0xfd, 0xfd },
  1.5443 +{ 0x00, 0xfe, 0xfe },
  1.5444 +{ 0x00, 0xff, 0xff }
  1.5445 +};
  1.5446 +
  1.5447 +struct enc_entry {
  1.5448 +  const char * enc_name;
  1.5449 +  struct cs_info * cs_table;
  1.5450 +};
  1.5451 +
  1.5452 +static struct enc_entry encds[] = {
  1.5453 +  {"iso88591",iso1_tbl},                     //ISO-8859-1
  1.5454 +  {"iso88592",iso2_tbl},                     //ISO-8859-2
  1.5455 +  {"iso88593",iso3_tbl},                     //ISO-8859-3
  1.5456 +  {"iso88594",iso4_tbl},                     //ISO-8859-4
  1.5457 +  {"iso88595",iso5_tbl},                     //ISO-8859-5
  1.5458 +  {"iso88596",iso6_tbl},                     //ISO-8859-6
  1.5459 +  {"iso88597",iso7_tbl},                     //ISO-8859-7
  1.5460 +  {"iso88598",iso8_tbl},                     //ISO-8859-8
  1.5461 +  {"iso88599",iso9_tbl},                     //ISO-8859-9
  1.5462 +  {"iso885910",iso10_tbl},                   //ISO-8859-10
  1.5463 +  {"tis620",tis620_tbl},                     //TIS-620/ISO-8859-11
  1.5464 +  {"tis6202533",tis620_tbl},                 //TIS-620/ISO-8859-11
  1.5465 +  {"iso885911",tis620_tbl},                  //TIS-620/ISO-8859-11
  1.5466 +  {"iso885913", iso13_tbl},                  //ISO-8859-13
  1.5467 +  {"iso885914", iso14_tbl},                  //ISO-8859-14
  1.5468 +  {"iso885915", iso15_tbl},                  //ISO-8859-15
  1.5469 +  {"koi8r",koi8r_tbl},                       //KOI8-R
  1.5470 +  {"koi8u",koi8u_tbl},                       //KOI8-U
  1.5471 +  {"cp1251",cp1251_tbl},                     //CP-1251
  1.5472 +  {"microsoftcp1251",cp1251_tbl},            //microsoft-cp1251
  1.5473 +  {"xisciias", iscii_devanagari_tbl},        //x-iscii-as
  1.5474 +  {"isciidevanagari", iscii_devanagari_tbl}  //ISCII-DEVANAGARI
  1.5475 +};
  1.5476 +
  1.5477 +/* map to lower case and remove non alphanumeric chars */
  1.5478 +static void toAsciiLowerAndRemoveNonAlphanumeric( const char* pName, char* pBuf )
  1.5479 +{
  1.5480 +    while ( *pName )
  1.5481 +    {
  1.5482 +        /* A-Z */
  1.5483 +        if ( (*pName >= 0x41) && (*pName <= 0x5A) )
  1.5484 +        {
  1.5485 +            *pBuf = (*pName)+0x20;  /* toAsciiLower */
  1.5486 +            pBuf++;
  1.5487 +        }
  1.5488 +        /* a-z, 0-9 */
  1.5489 +        else if ( ((*pName >= 0x61) && (*pName <= 0x7A)) ||
  1.5490 +                  ((*pName >= 0x30) && (*pName <= 0x39)) )
  1.5491 +        {
  1.5492 +            *pBuf = *pName;
  1.5493 +            pBuf++;
  1.5494 +        }
  1.5495 +
  1.5496 +        pName++;
  1.5497 +    }
  1.5498 +
  1.5499 +    *pBuf = '\0';
  1.5500 +}
  1.5501 +
  1.5502 +struct cs_info * get_current_cs(const char * es) {
  1.5503 +  char *normalized_encoding = new char[strlen(es)+1];
  1.5504 +  toAsciiLowerAndRemoveNonAlphanumeric(es, normalized_encoding);
  1.5505 +
  1.5506 +  struct cs_info * ccs = NULL;
  1.5507 +  int n = sizeof(encds) / sizeof(encds[0]);
  1.5508 +  for (int i = 0; i < n; i++) {
  1.5509 +    if (strcmp(normalized_encoding,encds[i].enc_name) == 0) {
  1.5510 +      ccs = encds[i].cs_table;
  1.5511 +      break;
  1.5512 +    }
  1.5513 +  }
  1.5514 +
  1.5515 +  delete[] normalized_encoding;
  1.5516 +
  1.5517 +  if (!ccs) {
  1.5518 +    HUNSPELL_WARNING(stderr, "error: unknown encoding %s: using %s as fallback\n", es, encds[0].enc_name);
  1.5519 +    ccs = encds[0].cs_table;
  1.5520 +  }
  1.5521 +
  1.5522 +  return ccs;
  1.5523 +}
  1.5524 +#else
  1.5525 +// XXX This function was rewritten for mozilla. Instead of storing the
  1.5526 +// conversion tables static in this file, create them when needed
  1.5527 +// with help the mozilla backend.
  1.5528 +struct cs_info * get_current_cs(const char * es) {
  1.5529 +  struct cs_info *ccs = new cs_info[256];
  1.5530 +  // Initialze the array with dummy data so that we wouldn't need
  1.5531 +  // to return null in case of failures.
  1.5532 +  for (int i = 0; i <= 0xff; ++i) {
  1.5533 +    ccs[i].ccase = false;
  1.5534 +    ccs[i].clower = i;
  1.5535 +    ccs[i].cupper = i;
  1.5536 +  }
  1.5537 +
  1.5538 +  nsCOMPtr<nsIUnicodeEncoder> encoder; 
  1.5539 +  nsCOMPtr<nsIUnicodeDecoder> decoder; 
  1.5540 +
  1.5541 +  nsresult rv;
  1.5542 +  nsCOMPtr<nsICharsetConverterManager> ccm = do_GetService(kCharsetConverterManagerCID, &rv);
  1.5543 +  if (NS_FAILED(rv))
  1.5544 +    return ccs;
  1.5545 +
  1.5546 +  rv = ccm->GetUnicodeEncoder(es, getter_AddRefs(encoder));
  1.5547 +  if (NS_FAILED(rv))
  1.5548 +    return ccs;
  1.5549 +  encoder->SetOutputErrorBehavior(encoder->kOnError_Signal, nullptr, '?');
  1.5550 +  rv = ccm->GetUnicodeDecoder(es, getter_AddRefs(decoder));
  1.5551 +  if (NS_FAILED(rv))
  1.5552 +    return ccs;
  1.5553 +  decoder->SetInputErrorBehavior(decoder->kOnError_Signal);
  1.5554 +
  1.5555 +  if (NS_FAILED(rv))
  1.5556 +    return ccs;
  1.5557 +
  1.5558 +  for (unsigned int i = 0; i <= 0xff; ++i) {
  1.5559 +    bool success = false;
  1.5560 +    // We want to find the upper/lowercase equivalents of each byte
  1.5561 +    // in this 1-byte character encoding.  Call our encoding/decoding
  1.5562 +    // APIs separately for each byte since they may reject some of the
  1.5563 +    // bytes, and we want to handle errors separately for each byte.
  1.5564 +    char lower, upper;
  1.5565 +    do {
  1.5566 +      if (i == 0)
  1.5567 +        break;
  1.5568 +      const char source = char(i);
  1.5569 +      char16_t uni, uniCased;
  1.5570 +      int32_t charLength = 1, uniLength = 1;
  1.5571 +
  1.5572 +      rv = decoder->Convert(&source, &charLength, &uni, &uniLength);
  1.5573 +      // Explicitly check NS_OK because we don't want to allow
  1.5574 +      // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
  1.5575 +      if (rv != NS_OK || charLength != 1 || uniLength != 1)
  1.5576 +        break;
  1.5577 +      uniCased = ToLowerCase(uni);
  1.5578 +      rv = encoder->Convert(&uniCased, &uniLength, &lower, &charLength);
  1.5579 +      // Explicitly check NS_OK because we don't want to allow
  1.5580 +      // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
  1.5581 +      if (rv != NS_OK || charLength != 1 || uniLength != 1)
  1.5582 +        break;
  1.5583 +
  1.5584 +      uniCased = ToUpperCase(uni);
  1.5585 +      rv = encoder->Convert(&uniCased, &uniLength, &upper, &charLength);
  1.5586 +      // Explicitly check NS_OK because we don't want to allow
  1.5587 +      // NS_OK_UDEC_MOREOUTPUT or NS_OK_UDEC_MOREINPUT.
  1.5588 +      if (rv != NS_OK || charLength != 1 || uniLength != 1)
  1.5589 +        break;
  1.5590 +
  1.5591 +      success = true;
  1.5592 +    } while (0);
  1.5593 +
  1.5594 +    if (success) {
  1.5595 +      ccs[i].cupper = upper;
  1.5596 +      ccs[i].clower = lower;
  1.5597 +    } else {
  1.5598 +      ccs[i].cupper = i;
  1.5599 +      ccs[i].clower = i;
  1.5600 +    }
  1.5601 +
  1.5602 +    if (ccs[i].clower != (unsigned char)i)
  1.5603 +      ccs[i].ccase = true;
  1.5604 +    else
  1.5605 +      ccs[i].ccase = false;
  1.5606 +  }
  1.5607 +
  1.5608 +  return ccs;
  1.5609 +}
  1.5610 +#endif
  1.5611 +
  1.5612 +// primitive isalpha() replacement for tokenization
  1.5613 +char * get_casechars(const char * enc) {
  1.5614 +    struct cs_info * csconv = get_current_cs(enc);
  1.5615 +    char expw[MAXLNLEN];
  1.5616 +    char * p =  expw;
  1.5617 +    for (int i = 0; i <= 255; i++) {
  1.5618 +        if ((csconv[i].cupper != csconv[i].clower)) {
  1.5619 +    	    *p = (char) i;
  1.5620 +    	    p++;
  1.5621 +        }
  1.5622 +    }
  1.5623 +    *p = '\0';
  1.5624 +#ifdef MOZILLA_CLIENT
  1.5625 +    delete [] csconv;
  1.5626 +#endif
  1.5627 +    return mystrdup(expw);
  1.5628 +}
  1.5629 +
  1.5630 +// language to encoding default map
  1.5631 +
  1.5632 +struct lang_map {
  1.5633 +  const char * lang;
  1.5634 +  int num;
  1.5635 +};
  1.5636 +
  1.5637 +static struct lang_map lang2enc[] = {
  1.5638 +{"ar", LANG_ar},
  1.5639 +{"az", LANG_az},
  1.5640 +{"az_AZ", LANG_az}, // for back-compatibility
  1.5641 +{"bg", LANG_bg},
  1.5642 +{"ca", LANG_ca},
  1.5643 +{"cs", LANG_cs},
  1.5644 +{"da", LANG_da},
  1.5645 +{"de", LANG_de},
  1.5646 +{"el", LANG_el},
  1.5647 +{"en", LANG_en},
  1.5648 +{"es", LANG_es},
  1.5649 +{"eu", LANG_eu},
  1.5650 +{"gl", LANG_gl},
  1.5651 +{"fr", LANG_fr},
  1.5652 +{"hr", LANG_hr},
  1.5653 +{"hu", LANG_hu},
  1.5654 +{"hu_HU", LANG_hu}, // for back-compatibility
  1.5655 +{"it", LANG_it},
  1.5656 +{"la", LANG_la},
  1.5657 +{"lv", LANG_lv},
  1.5658 +{"nl", LANG_nl},
  1.5659 +{"pl", LANG_pl},
  1.5660 +{"pt", LANG_pt},
  1.5661 +{"sv", LANG_sv},
  1.5662 +{"tr", LANG_tr},
  1.5663 +{"tr_TR", LANG_tr}, // for back-compatibility
  1.5664 +{"ru", LANG_ru},
  1.5665 +{"uk", LANG_uk}
  1.5666 +};
  1.5667 +
  1.5668 +
  1.5669 +int get_lang_num(const char * lang) {
  1.5670 +  int n = sizeof(lang2enc) / sizeof(lang2enc[0]);
  1.5671 +  for (int i = 0; i < n; i++) {
  1.5672 +    if (strcmp(lang, lang2enc[i].lang) == 0) {
  1.5673 +      return lang2enc[i].num;
  1.5674 +    }
  1.5675 +  }
  1.5676 +  return LANG_xx;
  1.5677 +}
  1.5678 +
  1.5679 +#ifndef OPENOFFICEORG
  1.5680 +#ifndef MOZILLA_CLIENT
  1.5681 +int initialize_utf_tbl() {
  1.5682 +  utf_tbl_count++;
  1.5683 +  if (utf_tbl) return 0;
  1.5684 +  utf_tbl = (unicode_info2 *) malloc(CONTSIZE * sizeof(unicode_info2));
  1.5685 +  if (utf_tbl) {
  1.5686 +    size_t j;
  1.5687 +    for (j = 0; j < CONTSIZE; j++) {
  1.5688 +      utf_tbl[j].cletter = 0;
  1.5689 +      utf_tbl[j].clower = (unsigned short) j;
  1.5690 +      utf_tbl[j].cupper = (unsigned short) j;
  1.5691 +    }
  1.5692 +    for (j = 0; j < UTF_LST_LEN; j++) {
  1.5693 +      utf_tbl[utf_lst[j].c].cletter = 1;
  1.5694 +      utf_tbl[utf_lst[j].c].clower = utf_lst[j].clower;
  1.5695 +      utf_tbl[utf_lst[j].c].cupper = utf_lst[j].cupper;
  1.5696 +    }
  1.5697 +  } else return 1;
  1.5698 +  return 0;
  1.5699 +}
  1.5700 +#endif
  1.5701 +#endif
  1.5702 +
  1.5703 +void free_utf_tbl() {
  1.5704 +  if (utf_tbl_count > 0) utf_tbl_count--;
  1.5705 +  if (utf_tbl && (utf_tbl_count == 0)) {
  1.5706 +    free(utf_tbl);
  1.5707 +    utf_tbl = NULL;
  1.5708 +  }
  1.5709 +}
  1.5710 +
  1.5711 +unsigned short unicodetoupper(unsigned short c, int langnum)
  1.5712 +{
  1.5713 +  // In Azeri and Turkish, I and i dictinct letters:
  1.5714 +  // There are a dotless lower case i pair of upper `I',
  1.5715 +  // and an upper I with dot pair of lower `i'. 
  1.5716 +  if (c == 0x0069 && ((langnum == LANG_az) || (langnum == LANG_tr)))
  1.5717 +    return 0x0130;
  1.5718 +#ifdef OPENOFFICEORG
  1.5719 +  return u_toupper(c);
  1.5720 +#else
  1.5721 +#ifdef MOZILLA_CLIENT
  1.5722 +  return ToUpperCase((char16_t) c);
  1.5723 +#else
  1.5724 +  return (utf_tbl) ? utf_tbl[c].cupper : c;
  1.5725 +#endif
  1.5726 +#endif
  1.5727 +}
  1.5728 +
  1.5729 +unsigned short unicodetolower(unsigned short c, int langnum)
  1.5730 +{
  1.5731 +  // In Azeri and Turkish, I and i dictinct letters:
  1.5732 +  // There are a dotless lower case i pair of upper `I',
  1.5733 +  // and an upper I with dot pair of lower `i'. 
  1.5734 +  if (c == 0x0049 && ((langnum == LANG_az) || (langnum == LANG_tr)))
  1.5735 +    return 0x0131;
  1.5736 +#ifdef OPENOFFICEORG
  1.5737 +  return u_tolower(c);
  1.5738 +#else
  1.5739 +#ifdef MOZILLA_CLIENT
  1.5740 +  return ToLowerCase((char16_t) c);
  1.5741 +#else
  1.5742 +  return (utf_tbl) ? utf_tbl[c].clower : c;
  1.5743 +#endif
  1.5744 +#endif
  1.5745 +}
  1.5746 +
  1.5747 +int unicodeisalpha(unsigned short c)
  1.5748 +{
  1.5749 +#ifdef OPENOFFICEORG
  1.5750 +  return u_isalpha(c);
  1.5751 +#else
  1.5752 +  return (utf_tbl) ? utf_tbl[c].cletter : 0;
  1.5753 +#endif
  1.5754 +}
  1.5755 +
  1.5756 +/* get type of capitalization */
  1.5757 +int get_captype(char * word, int nl, cs_info * csconv) {
  1.5758 +   // now determine the capitalization type of the first nl letters
  1.5759 +   int ncap = 0;
  1.5760 +   int nneutral = 0;
  1.5761 +   int firstcap = 0;
  1.5762 +   if (csconv == NULL) return NOCAP;
  1.5763 +   for (char * q = word; *q != '\0'; q++) {
  1.5764 +      if (csconv[*((unsigned char *)q)].ccase) ncap++;
  1.5765 +      if (csconv[*((unsigned char *)q)].cupper == csconv[*((unsigned char *)q)].clower) nneutral++;
  1.5766 +   }
  1.5767 +   if (ncap) {
  1.5768 +     firstcap = csconv[*((unsigned char *) word)].ccase;
  1.5769 +   }
  1.5770 +
  1.5771 +   // now finally set the captype
  1.5772 +   if (ncap == 0) {
  1.5773 +        return NOCAP;
  1.5774 +   } else if ((ncap == 1) && firstcap) {
  1.5775 +        return INITCAP;
  1.5776 +   } else if ((ncap == nl) || ((ncap + nneutral) == nl)) {
  1.5777 +        return ALLCAP;
  1.5778 +   } else if ((ncap > 1) && firstcap) {
  1.5779 +        return HUHINITCAP;
  1.5780 +   }
  1.5781 +   return HUHCAP;
  1.5782 +}
  1.5783 +
  1.5784 +int get_captype_utf8(w_char * word, int nl, int langnum) {
  1.5785 +   // now determine the capitalization type of the first nl letters
  1.5786 +   int ncap = 0;
  1.5787 +   int nneutral = 0;
  1.5788 +   int firstcap = 0;
  1.5789 +   unsigned short idx;
  1.5790 +   // don't check too long words
  1.5791 +   if (nl >= MAXWORDLEN) return 0;
  1.5792 +   // big Unicode character (non BMP area)
  1.5793 +   if (nl == -1) return NOCAP;
  1.5794 +   for (int i = 0; i < nl; i++) {
  1.5795 +     idx = (word[i].h << 8) + word[i].l;
  1.5796 +     if (idx != unicodetolower(idx, langnum)) ncap++;
  1.5797 +     if (unicodetoupper(idx, langnum) == unicodetolower(idx, langnum)) nneutral++;
  1.5798 +   }
  1.5799 +   if (ncap) {
  1.5800 +      idx = (word[0].h << 8) + word[0].l;
  1.5801 +      firstcap = (idx != unicodetolower(idx, langnum));
  1.5802 +  }
  1.5803 +
  1.5804 +   // now finally set the captype
  1.5805 +   if (ncap == 0) {
  1.5806 +        return NOCAP;
  1.5807 +   } else if ((ncap == 1) && firstcap) {
  1.5808 +        return INITCAP;
  1.5809 +   } else if ((ncap == nl) || ((ncap + nneutral) == nl)) {
  1.5810 +        return ALLCAP;
  1.5811 +   } else if ((ncap > 1) && firstcap) {
  1.5812 +        return HUHINITCAP;
  1.5813 +   }
  1.5814 +   return HUHCAP;
  1.5815 +}
  1.5816 +
  1.5817 +
  1.5818 +// strip all ignored characters in the string
  1.5819 +void remove_ignored_chars_utf(char * word, unsigned short ignored_chars[], int ignored_len)
  1.5820 +{
  1.5821 +   w_char w[MAXWORDLEN];
  1.5822 +   w_char w2[MAXWORDLEN];
  1.5823 +   int i;
  1.5824 +   int j;
  1.5825 +   int len = u8_u16(w, MAXWORDLEN, word);
  1.5826 +   for (i = 0, j = 0; i < len; i++) {
  1.5827 +      if (!flag_bsearch(ignored_chars, ((unsigned short *) w)[i], ignored_len)) {
  1.5828 +         w2[j] = w[i];
  1.5829 +         j++;
  1.5830 +      }
  1.5831 +   }
  1.5832 +   if (j < i) u16_u8(word, MAXWORDUTF8LEN, w2, j);
  1.5833 +}
  1.5834 +
  1.5835 +// strip all ignored characters in the string
  1.5836 +void remove_ignored_chars(char * word, char * ignored_chars)
  1.5837 +{
  1.5838 +   for (char * p = word; *p != '\0'; p++) {
  1.5839 +      if (!strchr(ignored_chars, *p)) {
  1.5840 +        *word = *p;
  1.5841 +        word++;
  1.5842 +      }
  1.5843 +   }
  1.5844 +   *word = '\0';
  1.5845 +}
  1.5846 +
  1.5847 +int parse_string(char * line, char ** out, int ln)
  1.5848 +{
  1.5849 +   char * tp = line;
  1.5850 +   char * piece;
  1.5851 +   int i = 0;
  1.5852 +   int np = 0;
  1.5853 +   if (*out) {
  1.5854 +      HUNSPELL_WARNING(stderr, "error: line %d: multiple definitions\n", ln);
  1.5855 +      return 1;
  1.5856 +   }
  1.5857 +   piece = mystrsep(&tp, 0);
  1.5858 +   while (piece) {
  1.5859 +      if (*piece != '\0') {
  1.5860 +          switch(i) {
  1.5861 +              case 0: { np++; break; }
  1.5862 +              case 1: { 
  1.5863 +                *out = mystrdup(piece);
  1.5864 +                if (!*out) return 1;
  1.5865 +                np++;
  1.5866 +                break;
  1.5867 +              }
  1.5868 +              default: break;
  1.5869 +          }
  1.5870 +          i++;
  1.5871 +      }
  1.5872 +      // free(piece);
  1.5873 +      piece = mystrsep(&tp, 0);
  1.5874 +   }
  1.5875 +   if (np != 2) {
  1.5876 +      HUNSPELL_WARNING(stderr, "error: line %d: missing data\n", ln);
  1.5877 +      return 1;
  1.5878 +   } 
  1.5879 +   return 0;
  1.5880 +}
  1.5881 +
  1.5882 +int parse_array(char * line, char ** out, unsigned short ** out_utf16,
  1.5883 +       int * out_utf16_len, int utf8, int ln) {
  1.5884 +   if (parse_string(line, out, ln)) return 1;
  1.5885 +   if (utf8) {
  1.5886 +        w_char w[MAXWORDLEN];
  1.5887 +        int n = u8_u16(w, MAXWORDLEN, *out);
  1.5888 +        if (n > 0) {
  1.5889 +            flag_qsort((unsigned short *) w, 0, n);
  1.5890 +            *out_utf16 = (unsigned short *) malloc(n * sizeof(unsigned short));
  1.5891 +            if (!*out_utf16) return 1;
  1.5892 +            memcpy(*out_utf16, w, n * sizeof(unsigned short));
  1.5893 +        }
  1.5894 +        *out_utf16_len = n;
  1.5895 +   }
  1.5896 +   return 0;
  1.5897 +}

mercurial