//========================================================================
//
// FoFiEncodings.cc
//
// Copyright 1999-2003 Glyph & Cog, LLC
//
//========================================================================

//========================================================================
//
// Modified under the Poppler project - http://poppler.freedesktop.org
//
// All changes made under the Poppler project to this file are licensed
// under GPL version 2 or later
//
// Copyright (C) 2016 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2019 Volker Krause <vkrause@kde.org>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
//
//========================================================================

#include <config.h>

#include <cstdlib>
#include "FoFiEncodings.h"

//------------------------------------------------------------------------
// Type 1 and 1C font data
//------------------------------------------------------------------------

const char *const fofiType1StandardEncoding[256] = { nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "space",
                                                     "exclam",
                                                     "quotedbl",
                                                     "numbersign",
                                                     "dollar",
                                                     "percent",
                                                     "ampersand",
                                                     "quoteright",
                                                     "parenleft",
                                                     "parenright",
                                                     "asterisk",
                                                     "plus",
                                                     "comma",
                                                     "hyphen",
                                                     "period",
                                                     "slash",
                                                     "zero",
                                                     "one",
                                                     "two",
                                                     "three",
                                                     "four",
                                                     "five",
                                                     "six",
                                                     "seven",
                                                     "eight",
                                                     "nine",
                                                     "colon",
                                                     "semicolon",
                                                     "less",
                                                     "equal",
                                                     "greater",
                                                     "question",
                                                     "at",
                                                     "A",
                                                     "B",
                                                     "C",
                                                     "D",
                                                     "E",
                                                     "F",
                                                     "G",
                                                     "H",
                                                     "I",
                                                     "J",
                                                     "K",
                                                     "L",
                                                     "M",
                                                     "N",
                                                     "O",
                                                     "P",
                                                     "Q",
                                                     "R",
                                                     "S",
                                                     "T",
                                                     "U",
                                                     "V",
                                                     "W",
                                                     "X",
                                                     "Y",
                                                     "Z",
                                                     "bracketleft",
                                                     "backslash",
                                                     "bracketright",
                                                     "asciicircum",
                                                     "underscore",
                                                     "quoteleft",
                                                     "a",
                                                     "b",
                                                     "c",
                                                     "d",
                                                     "e",
                                                     "f",
                                                     "g",
                                                     "h",
                                                     "i",
                                                     "j",
                                                     "k",
                                                     "l",
                                                     "m",
                                                     "n",
                                                     "o",
                                                     "p",
                                                     "q",
                                                     "r",
                                                     "s",
                                                     "t",
                                                     "u",
                                                     "v",
                                                     "w",
                                                     "x",
                                                     "y",
                                                     "z",
                                                     "braceleft",
                                                     "bar",
                                                     "braceright",
                                                     "asciitilde",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "exclamdown",
                                                     "cent",
                                                     "sterling",
                                                     "fraction",
                                                     "yen",
                                                     "florin",
                                                     "section",
                                                     "currency",
                                                     "quotesingle",
                                                     "quotedblleft",
                                                     "guillemotleft",
                                                     "guilsinglleft",
                                                     "guilsinglright",
                                                     "fi",
                                                     "fl",
                                                     nullptr,
                                                     "endash",
                                                     "dagger",
                                                     "daggerdbl",
                                                     "periodcentered",
                                                     nullptr,
                                                     "paragraph",
                                                     "bullet",
                                                     "quotesinglbase",
                                                     "quotedblbase",
                                                     "quotedblright",
                                                     "guillemotright",
                                                     "ellipsis",
                                                     "perthousand",
                                                     nullptr,
                                                     "questiondown",
                                                     nullptr,
                                                     "grave",
                                                     "acute",
                                                     "circumflex",
                                                     "tilde",
                                                     "macron",
                                                     "breve",
                                                     "dotaccent",
                                                     "dieresis",
                                                     nullptr,
                                                     "ring",
                                                     "cedilla",
                                                     nullptr,
                                                     "hungarumlaut",
                                                     "ogonek",
                                                     "caron",
                                                     "emdash",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "AE",
                                                     nullptr,
                                                     "ordfeminine",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "Lslash",
                                                     "Oslash",
                                                     "OE",
                                                     "ordmasculine",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "ae",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     "dotlessi",
                                                     nullptr,
                                                     nullptr,
                                                     "lslash",
                                                     "oslash",
                                                     "oe",
                                                     "germandbls",
                                                     nullptr,
                                                     nullptr,
                                                     nullptr,
                                                     nullptr };

const char *const fofiType1ExpertEncoding[256] = { nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   "space",
                                                   "exclamsmall",
                                                   "Hungarumlautsmall",
                                                   nullptr,
                                                   "dollaroldstyle",
                                                   "dollarsuperior",
                                                   "ampersandsmall",
                                                   "Acutesmall",
                                                   "parenleftsuperior",
                                                   "parenrightsuperior",
                                                   "twodotenleader",
                                                   "onedotenleader",
                                                   "comma",
                                                   "hyphen",
                                                   "period",
                                                   "fraction",
                                                   "zerooldstyle",
                                                   "oneoldstyle",
                                                   "twooldstyle",
                                                   "threeoldstyle",
                                                   "fouroldstyle",
                                                   "fiveoldstyle",
                                                   "sixoldstyle",
                                                   "sevenoldstyle",
                                                   "eightoldstyle",
                                                   "nineoldstyle",
                                                   "colon",
                                                   "semicolon",
                                                   "commasuperior",
                                                   "threequartersemdash",
                                                   "periodsuperior",
                                                   "questionsmall",
                                                   nullptr,
                                                   "asuperior",
                                                   "bsuperior",
                                                   "centsuperior",
                                                   "dsuperior",
                                                   "esuperior",
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   "isuperior",
                                                   nullptr,
                                                   nullptr,
                                                   "lsuperior",
                                                   "msuperior",
                                                   "nsuperior",
                                                   "osuperior",
                                                   nullptr,
                                                   nullptr,
                                                   "rsuperior",
                                                   "ssuperior",
                                                   "tsuperior",
                                                   nullptr,
                                                   "ff",
                                                   "fi",
                                                   "fl",
                                                   "ffi",
                                                   "ffl",
                                                   "parenleftinferior",
                                                   nullptr,
                                                   "parenrightinferior",
                                                   "Circumflexsmall",
                                                   "hyphensuperior",
                                                   "Gravesmall",
                                                   "Asmall",
                                                   "Bsmall",
                                                   "Csmall",
                                                   "Dsmall",
                                                   "Esmall",
                                                   "Fsmall",
                                                   "Gsmall",
                                                   "Hsmall",
                                                   "Ismall",
                                                   "Jsmall",
                                                   "Ksmall",
                                                   "Lsmall",
                                                   "Msmall",
                                                   "Nsmall",
                                                   "Osmall",
                                                   "Psmall",
                                                   "Qsmall",
                                                   "Rsmall",
                                                   "Ssmall",
                                                   "Tsmall",
                                                   "Usmall",
                                                   "Vsmall",
                                                   "Wsmall",
                                                   "Xsmall",
                                                   "Ysmall",
                                                   "Zsmall",
                                                   "colonmonetary",
                                                   "onefitted",
                                                   "rupiah",
                                                   "Tildesmall",
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   "exclamdownsmall",
                                                   "centoldstyle",
                                                   "Lslashsmall",
                                                   nullptr,
                                                   nullptr,
                                                   "Scaronsmall",
                                                   "Zcaronsmall",
                                                   "Dieresissmall",
                                                   "Brevesmall",
                                                   "Caronsmall",
                                                   nullptr,
                                                   "Dotaccentsmall",
                                                   nullptr,
                                                   nullptr,
                                                   "Macronsmall",
                                                   nullptr,
                                                   nullptr,
                                                   "figuredash",
                                                   "hypheninferior",
                                                   nullptr,
                                                   nullptr,
                                                   "Ogoneksmall",
                                                   "Ringsmall",
                                                   "Cedillasmall",
                                                   nullptr,
                                                   nullptr,
                                                   nullptr,
                                                   "onequarter",
                                                   "onehalf",
                                                   "threequarters",
                                                   "questiondownsmall",
                                                   "oneeighth",
                                                   "threeeighths",
                                                   "fiveeighths",
                                                   "seveneighths",
                                                   "onethird",
                                                   "twothirds",
                                                   nullptr,
                                                   nullptr,
                                                   "zerosuperior",
                                                   "onesuperior",
                                                   "twosuperior",
                                                   "threesuperior",
                                                   "foursuperior",
                                                   "fivesuperior",
                                                   "sixsuperior",
                                                   "sevensuperior",
                                                   "eightsuperior",
                                                   "ninesuperior",
                                                   "zeroinferior",
                                                   "oneinferior",
                                                   "twoinferior",
                                                   "threeinferior",
                                                   "fourinferior",
                                                   "fiveinferior",
                                                   "sixinferior",
                                                   "seveninferior",
                                                   "eightinferior",
                                                   "nineinferior",
                                                   "centinferior",
                                                   "dollarinferior",
                                                   "periodinferior",
                                                   "commainferior",
                                                   "Agravesmall",
                                                   "Aacutesmall",
                                                   "Acircumflexsmall",
                                                   "Atildesmall",
                                                   "Adieresissmall",
                                                   "Aringsmall",
                                                   "AEsmall",
                                                   "Ccedillasmall",
                                                   "Egravesmall",
                                                   "Eacutesmall",
                                                   "Ecircumflexsmall",
                                                   "Edieresissmall",
                                                   "Igravesmall",
                                                   "Iacutesmall",
                                                   "Icircumflexsmall",
                                                   "Idieresissmall",
                                                   "Ethsmall",
                                                   "Ntildesmall",
                                                   "Ogravesmall",
                                                   "Oacutesmall",
                                                   "Ocircumflexsmall",
                                                   "Otildesmall",
                                                   "Odieresissmall",
                                                   "OEsmall",
                                                   "Oslashsmall",
                                                   "Ugravesmall",
                                                   "Uacutesmall",
                                                   "Ucircumflexsmall",
                                                   "Udieresissmall",
                                                   "Yacutesmall",
                                                   "Thornsmall",
                                                   "Ydieresissmall" };

//------------------------------------------------------------------------
// Type 1C font data
//------------------------------------------------------------------------

const char *fofiType1CStdStrings[391] = { ".notdef",
                                          "space",
                                          "exclam",
                                          "quotedbl",
                                          "numbersign",
                                          "dollar",
                                          "percent",
                                          "ampersand",
                                          "quoteright",
                                          "parenleft",
                                          "parenright",
                                          "asterisk",
                                          "plus",
                                          "comma",
                                          "hyphen",
                                          "period",
                                          "slash",
                                          "zero",
                                          "one",
                                          "two",
                                          "three",
                                          "four",
                                          "five",
                                          "six",
                                          "seven",
                                          "eight",
                                          "nine",
                                          "colon",
                                          "semicolon",
                                          "less",
                                          "equal",
                                          "greater",
                                          "question",
                                          "at",
                                          "A",
                                          "B",
                                          "C",
                                          "D",
                                          "E",
                                          "F",
                                          "G",
                                          "H",
                                          "I",
                                          "J",
                                          "K",
                                          "L",
                                          "M",
                                          "N",
                                          "O",
                                          "P",
                                          "Q",
                                          "R",
                                          "S",
                                          "T",
                                          "U",
                                          "V",
                                          "W",
                                          "X",
                                          "Y",
                                          "Z",
                                          "bracketleft",
                                          "backslash",
                                          "bracketright",
                                          "asciicircum",
                                          "underscore",
                                          "quoteleft",
                                          "a",
                                          "b",
                                          "c",
                                          "d",
                                          "e",
                                          "f",
                                          "g",
                                          "h",
                                          "i",
                                          "j",
                                          "k",
                                          "l",
                                          "m",
                                          "n",
                                          "o",
                                          "p",
                                          "q",
                                          "r",
                                          "s",
                                          "t",
                                          "u",
                                          "v",
                                          "w",
                                          "x",
                                          "y",
                                          "z",
                                          "braceleft",
                                          "bar",
                                          "braceright",
                                          "asciitilde",
                                          "exclamdown",
                                          "cent",
                                          "sterling",
                                          "fraction",
                                          "yen",
                                          "florin",
                                          "section",
                                          "currency",
                                          "quotesingle",
                                          "quotedblleft",
                                          "guillemotleft",
                                          "guilsinglleft",
                                          "guilsinglright",
                                          "fi",
                                          "fl",
                                          "endash",
                                          "dagger",
                                          "daggerdbl",
                                          "periodcentered",
                                          "paragraph",
                                          "bullet",
                                          "quotesinglbase",
                                          "quotedblbase",
                                          "quotedblright",
                                          "guillemotright",
                                          "ellipsis",
                                          "perthousand",
                                          "questiondown",
                                          "grave",
                                          "acute",
                                          "circumflex",
                                          "tilde",
                                          "macron",
                                          "breve",
                                          "dotaccent",
                                          "dieresis",
                                          "ring",
                                          "cedilla",
                                          "hungarumlaut",
                                          "ogonek",
                                          "caron",
                                          "emdash",
                                          "AE",
                                          "ordfeminine",
                                          "Lslash",
                                          "Oslash",
                                          "OE",
                                          "ordmasculine",
                                          "ae",
                                          "dotlessi",
                                          "lslash",
                                          "oslash",
                                          "oe",
                                          "germandbls",
                                          "onesuperior",
                                          "logicalnot",
                                          "mu",
                                          "trademark",
                                          "Eth",
                                          "onehalf",
                                          "plusminus",
                                          "Thorn",
                                          "onequarter",
                                          "divide",
                                          "brokenbar",
                                          "degree",
                                          "thorn",
                                          "threequarters",
                                          "twosuperior",
                                          "registered",
                                          "minus",
                                          "eth",
                                          "multiply",
                                          "threesuperior",
                                          "copyright",
                                          "Aacute",
                                          "Acircumflex",
                                          "Adieresis",
                                          "Agrave",
                                          "Aring",
                                          "Atilde",
                                          "Ccedilla",
                                          "Eacute",
                                          "Ecircumflex",
                                          "Edieresis",
                                          "Egrave",
                                          "Iacute",
                                          "Icircumflex",
                                          "Idieresis",
                                          "Igrave",
                                          "Ntilde",
                                          "Oacute",
                                          "Ocircumflex",
                                          "Odieresis",
                                          "Ograve",
                                          "Otilde",
                                          "Scaron",
                                          "Uacute",
                                          "Ucircumflex",
                                          "Udieresis",
                                          "Ugrave",
                                          "Yacute",
                                          "Ydieresis",
                                          "Zcaron",
                                          "aacute",
                                          "acircumflex",
                                          "adieresis",
                                          "agrave",
                                          "aring",
                                          "atilde",
                                          "ccedilla",
                                          "eacute",
                                          "ecircumflex",
                                          "edieresis",
                                          "egrave",
                                          "iacute",
                                          "icircumflex",
                                          "idieresis",
                                          "igrave",
                                          "ntilde",
                                          "oacute",
                                          "ocircumflex",
                                          "odieresis",
                                          "ograve",
                                          "otilde",
                                          "scaron",
                                          "uacute",
                                          "ucircumflex",
                                          "udieresis",
                                          "ugrave",
                                          "yacute",
                                          "ydieresis",
                                          "zcaron",
                                          "exclamsmall",
                                          "Hungarumlautsmall",
                                          "dollaroldstyle",
                                          "dollarsuperior",
                                          "ampersandsmall",
                                          "Acutesmall",
                                          "parenleftsuperior",
                                          "parenrightsuperior",
                                          "twodotenleader",
                                          "onedotenleader",
                                          "zerooldstyle",
                                          "oneoldstyle",
                                          "twooldstyle",
                                          "threeoldstyle",
                                          "fouroldstyle",
                                          "fiveoldstyle",
                                          "sixoldstyle",
                                          "sevenoldstyle",
                                          "eightoldstyle",
                                          "nineoldstyle",
                                          "commasuperior",
                                          "threequartersemdash",
                                          "periodsuperior",
                                          "questionsmall",
                                          "asuperior",
                                          "bsuperior",
                                          "centsuperior",
                                          "dsuperior",
                                          "esuperior",
                                          "isuperior",
                                          "lsuperior",
                                          "msuperior",
                                          "nsuperior",
                                          "osuperior",
                                          "rsuperior",
                                          "ssuperior",
                                          "tsuperior",
                                          "ff",
                                          "ffi",
                                          "ffl",
                                          "parenleftinferior",
                                          "parenrightinferior",
                                          "Circumflexsmall",
                                          "hyphensuperior",
                                          "Gravesmall",
                                          "Asmall",
                                          "Bsmall",
                                          "Csmall",
                                          "Dsmall",
                                          "Esmall",
                                          "Fsmall",
                                          "Gsmall",
                                          "Hsmall",
                                          "Ismall",
                                          "Jsmall",
                                          "Ksmall",
                                          "Lsmall",
                                          "Msmall",
                                          "Nsmall",
                                          "Osmall",
                                          "Psmall",
                                          "Qsmall",
                                          "Rsmall",
                                          "Ssmall",
                                          "Tsmall",
                                          "Usmall",
                                          "Vsmall",
                                          "Wsmall",
                                          "Xsmall",
                                          "Ysmall",
                                          "Zsmall",
                                          "colonmonetary",
                                          "onefitted",
                                          "rupiah",
                                          "Tildesmall",
                                          "exclamdownsmall",
                                          "centoldstyle",
                                          "Lslashsmall",
                                          "Scaronsmall",
                                          "Zcaronsmall",
                                          "Dieresissmall",
                                          "Brevesmall",
                                          "Caronsmall",
                                          "Dotaccentsmall",
                                          "Macronsmall",
                                          "figuredash",
                                          "hypheninferior",
                                          "Ogoneksmall",
                                          "Ringsmall",
                                          "Cedillasmall",
                                          "questiondownsmall",
                                          "oneeighth",
                                          "threeeighths",
                                          "fiveeighths",
                                          "seveneighths",
                                          "onethird",
                                          "twothirds",
                                          "zerosuperior",
                                          "foursuperior",
                                          "fivesuperior",
                                          "sixsuperior",
                                          "sevensuperior",
                                          "eightsuperior",
                                          "ninesuperior",
                                          "zeroinferior",
                                          "oneinferior",
                                          "twoinferior",
                                          "threeinferior",
                                          "fourinferior",
                                          "fiveinferior",
                                          "sixinferior",
                                          "seveninferior",
                                          "eightinferior",
                                          "nineinferior",
                                          "centinferior",
                                          "dollarinferior",
                                          "periodinferior",
                                          "commainferior",
                                          "Agravesmall",
                                          "Aacutesmall",
                                          "Acircumflexsmall",
                                          "Atildesmall",
                                          "Adieresissmall",
                                          "Aringsmall",
                                          "AEsmall",
                                          "Ccedillasmall",
                                          "Egravesmall",
                                          "Eacutesmall",
                                          "Ecircumflexsmall",
                                          "Edieresissmall",
                                          "Igravesmall",
                                          "Iacutesmall",
                                          "Icircumflexsmall",
                                          "Idieresissmall",
                                          "Ethsmall",
                                          "Ntildesmall",
                                          "Ogravesmall",
                                          "Oacutesmall",
                                          "Ocircumflexsmall",
                                          "Otildesmall",
                                          "Odieresissmall",
                                          "OEsmall",
                                          "Oslashsmall",
                                          "Ugravesmall",
                                          "Uacutesmall",
                                          "Ucircumflexsmall",
                                          "Udieresissmall",
                                          "Yacutesmall",
                                          "Thornsmall",
                                          "Ydieresissmall",
                                          "001.000",
                                          "001.001",
                                          "001.002",
                                          "001.003",
                                          "Black",
                                          "Bold",
                                          "Book",
                                          "Light",
                                          "Medium",
                                          "Regular",
                                          "Roman",
                                          "Semibold" };

const unsigned short fofiType1CISOAdobeCharset[229] = { 0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,
                                                        33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,
                                                        66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,  98,
                                                        99,  100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
                                                        132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
                                                        165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
                                                        198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228 };

const unsigned short fofiType1CExpertCharset[166] = { 0,   1,   229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 13,  14,  15,  99,  239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 27,  28,  249, 250, 251, 252, 253, 254,
                                                      255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 109, 110, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
                                                      287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 158, 155,
                                                      163, 319, 320, 321, 322, 323, 324, 325, 326, 150, 164, 169, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
                                                      349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378 };

const unsigned short fofiType1CExpertSubsetCharset[87] = { 0,   1,   231, 232, 235, 236, 237, 238, 13,  14,  15,  99,  239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 27,  28,  249, 250, 251, 253, 254,
                                                           255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 109, 110, 267, 268, 269, 270, 272, 300, 301, 302, 305, 314, 315, 158, 155, 163, 320,
                                                           321, 322, 323, 324, 325, 326, 150, 164, 169, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346 };
