X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/6005b6f8b888d708c285845a97b41252ccef4a66..8f664e7e91c918cd13248f6b684580c4dd2cdb31:/psdata.c diff --git a/psdata.c b/psdata.c index e9cad9c..8a01641 100644 --- a/psdata.c +++ b/psdata.c @@ -7,28 +7,28 @@ #include "halibut.h" #include "paper.h" -/* ---------------------------------------------------------------------- - * Mapping between PS character names (/aacute, /zcaron etc) and - * Unicode code points. - * - * Generated from the Adobe Glyph List at - * - * http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt - * - * by a succession of Perl/sh fragments, quoted alongside each - * array. - */ - /* + * Within the paper backends, PostScript glyph names are represented + * by small integers. For standard glyphs, these are indicies into + * a table generated from the Adobe Glyph List from + * . + * There are a few glyphs that are needed statically but aren't in the + * Glyph List. We manually add them with a mapping of U+FFFF. + * Since all the scripts that generate fragments of code for this file + * need that list, it's worth generating a file containing just the names. -grep '^[^#;][^;]*;[^ ][^ ][^ ][^ ]$' glyphlist.txt | sort -t\; +0 -1 | \ - cut -f1 -d\; | perl -ne 'chomp; print "\"$_\", "' | \ - fold -s -w68 | sed 's/^/ /'; echo +echo ".notdef;FFFF" >>glyphlist.txt +echo ".null;FFFF" >>glyphlist.txt +echo "nonmarkingreturn;FFFF" >>glyphlist.txt +grep '^[^#;][^;]*;[^ ][^ ][^ ][^ ]$' glyphlist.txt | sort -t\; -k1,1 | \ + cut -f1 -d\; > glyphnames.txt + +< glyphnames.txt xargs printf '"%s", ' | fold -s -w68 | sed 's/^/ /'; echo */ static const char *const ps_glyphs_alphabetic[] = { - "A", "AE", "AEacute", "AEmacron", "AEsmall", "Aacute", - "Aacutesmall", "Abreve", "Abreveacute", "Abrevecyrillic", + ".notdef", ".null", "A", "AE", "AEacute", "AEmacron", "AEsmall", + "Aacute", "Aacutesmall", "Abreve", "Abreveacute", "Abrevecyrillic", "Abrevedotbelow", "Abrevegrave", "Abrevehookabove", "Abrevetilde", "Acaron", "Acircle", "Acircumflex", "Acircumflexacute", "Acircumflexdotbelow", "Acircumflexgrave", "Acircumflexhookabove", @@ -688,7 +688,7 @@ static const char *const ps_glyphs_alphabetic[] = { "mmsquaredsquare", "mohiragana", "mohmsquare", "mokatakana", "mokatakanahalfwidth", "molsquare", "momathai", "moverssquare", "moverssquaredsquare", "mparen", "mpasquare", "mssquare", - "msuperior", "mturned", "mu", "mu1", "muasquare", "muchgreater", + "msuperior", "mturned", "mu", "mu1", "muasquare", "muchgreater", "muchless", "mufsquare", "mugreek", "mugsquare", "muhiragana", "mukatakana", "mukatakanahalfwidth", "mulsquare", "multiply", "mumsquare", "munahhebrew", "munahlefthebrew", "musicalnote", @@ -717,23 +717,24 @@ static const char *const ps_glyphs_alphabetic[] = { "nkatakanahalfwidth", "nlegrightlong", "nlinebelow", "nmonospace", "nmsquare", "nnabengali", "nnadeva", "nnagujarati", "nnagurmukhi", "nnnadeva", "nohiragana", "nokatakana", "nokatakanahalfwidth", - "nonbreakingspace", "nonenthai", "nonuthai", "noonarabic", - "noonfinalarabic", "noonghunnaarabic", "noonghunnafinalarabic", - "nooninitialarabic", "noonjeeminitialarabic", - "noonjeemisolatedarabic", "noonmedialarabic", - "noonmeeminitialarabic", "noonmeemisolatedarabic", - "noonnoonfinalarabic", "notcontains", "notelement", "notelementof", - "notequal", "notgreater", "notgreaternorequal", - "notgreaternorless", "notidentical", "notless", "notlessnorequal", - "notparallel", "notprecedes", "notsubset", "notsucceeds", - "notsuperset", "nowarmenian", "nparen", "nssquare", "nsuperior", - "ntilde", "nu", "nuhiragana", "nukatakana", "nukatakanahalfwidth", - "nuktabengali", "nuktadeva", "nuktagujarati", "nuktagurmukhi", - "numbersign", "numbersignmonospace", "numbersignsmall", - "numeralsigngreek", "numeralsignlowergreek", "numero", "nun", - "nundagesh", "nundageshhebrew", "nunhebrew", "nvsquare", - "nwsquare", "nyabengali", "nyadeva", "nyagujarati", "nyagurmukhi", - "o", "oacute", "oangthai", "obarred", "obarredcyrillic", + "nonbreakingspace", "nonenthai", "nonmarkingreturn", "nonuthai", + "noonarabic", "noonfinalarabic", "noonghunnaarabic", + "noonghunnafinalarabic", "nooninitialarabic", + "noonjeeminitialarabic", "noonjeemisolatedarabic", + "noonmedialarabic", "noonmeeminitialarabic", + "noonmeemisolatedarabic", "noonnoonfinalarabic", "notcontains", + "notelement", "notelementof", "notequal", "notgreater", + "notgreaternorequal", "notgreaternorless", "notidentical", + "notless", "notlessnorequal", "notparallel", "notprecedes", + "notsubset", "notsucceeds", "notsuperset", "nowarmenian", "nparen", + "nssquare", "nsuperior", "ntilde", "nu", "nuhiragana", + "nukatakana", "nukatakanahalfwidth", "nuktabengali", "nuktadeva", + "nuktagujarati", "nuktagurmukhi", "numbersign", + "numbersignmonospace", "numbersignsmall", "numeralsigngreek", + "numeralsignlowergreek", "numero", "nun", "nundagesh", + "nundageshhebrew", "nunhebrew", "nvsquare", "nwsquare", + "nyabengali", "nyadeva", "nyagujarati", "nyagurmukhi", "o", + "oacute", "oangthai", "obarred", "obarredcyrillic", "obarreddieresiscyrillic", "obengali", "obopomofo", "obreve", "ocandradeva", "ocandragujarati", "ocandravowelsigndeva", "ocandravowelsigngujarati", "ocaron", "ocircle", "ocircumflex", @@ -1120,560 +1121,611 @@ static const char *const ps_glyphs_alphabetic[] = { "zretroflexhook", "zstroke", "zuhiragana", "zukatakana", }; -/* +char const **extraglyphs = NULL; +glyph nextglyph = lenof(ps_glyphs_alphabetic); +tree234 *extrabyname = NULL; -grep '^[^#;][^;]*;[^ ][^ ][^ ][^ ]$' glyphlist.txt | sort -t\; +0 -1 | \ - cut -f2 -d\; | perl -ne 'chomp; print "0x$_, "' | \ - fold -s -w68 | sed 's/^/ /'; echo +char const *glyph_extern(glyph glyph) { + if (glyph == NOGLYPH) return ".notdef"; + if (glyph < lenof(ps_glyphs_alphabetic)) + return ps_glyphs_alphabetic[glyph]; + else + return extraglyphs[glyph - lenof(ps_glyphs_alphabetic)]; +} - */ -static const unsigned short ps_codes_alphabetic[] = { - 0x0041, 0x00C6, 0x01FC, 0x01E2, 0xF7E6, 0x00C1, 0xF7E1, 0x0102, - 0x1EAE, 0x04D0, 0x1EB6, 0x1EB0, 0x1EB2, 0x1EB4, 0x01CD, 0x24B6, - 0x00C2, 0x1EA4, 0x1EAC, 0x1EA6, 0x1EA8, 0xF7E2, 0x1EAA, 0xF6C9, - 0xF7B4, 0x0410, 0x0200, 0x00C4, 0x04D2, 0x01DE, 0xF7E4, 0x1EA0, - 0x01E0, 0x00C0, 0xF7E0, 0x1EA2, 0x04D4, 0x0202, 0x0391, 0x0386, - 0x0100, 0xFF21, 0x0104, 0x00C5, 0x01FA, 0x1E00, 0xF7E5, 0xF761, - 0x00C3, 0xF7E3, 0x0531, 0x0042, 0x24B7, 0x1E02, 0x1E04, 0x0411, - 0x0532, 0x0392, 0x0181, 0x1E06, 0xFF22, 0xF6F4, 0xF762, 0x0182, - 0x0043, 0x053E, 0x0106, 0xF6CA, 0xF6F5, 0x010C, 0x00C7, 0x1E08, - 0xF7E7, 0x24B8, 0x0108, 0x010A, 0x010A, 0xF7B8, 0x0549, 0x04BC, - 0x0427, 0x04BE, 0x04B6, 0x04F4, 0x0543, 0x04CB, 0x04B8, 0x03A7, - 0x0187, 0xF6F6, 0xFF23, 0x0551, 0xF763, 0x0044, 0x01F1, 0x01C4, - 0x0534, 0x0189, 0x010E, 0x1E10, 0x24B9, 0x1E12, 0x0110, 0x1E0A, - 0x1E0C, 0x0414, 0x03EE, 0x2206, 0x0394, 0x018A, 0xF6CB, 0xF6CC, - 0xF6CD, 0xF7A8, 0x03DC, 0x0402, 0x1E0E, 0xFF24, 0xF6F7, 0x0110, - 0xF764, 0x018B, 0x01F2, 0x01C5, 0x04E0, 0x0405, 0x040F, 0x0045, - 0x00C9, 0xF7E9, 0x0114, 0x011A, 0x1E1C, 0x0535, 0x24BA, 0x00CA, - 0x1EBE, 0x1E18, 0x1EC6, 0x1EC0, 0x1EC2, 0xF7EA, 0x1EC4, 0x0404, - 0x0204, 0x00CB, 0xF7EB, 0x0116, 0x0116, 0x1EB8, 0x0424, 0x00C8, - 0xF7E8, 0x0537, 0x1EBA, 0x2167, 0x0206, 0x0464, 0x041B, 0x216A, - 0x0112, 0x1E16, 0x1E14, 0x041C, 0xFF25, 0x041D, 0x04A2, 0x014A, - 0x04A4, 0x04C7, 0x0118, 0x0190, 0x0395, 0x0388, 0x0420, 0x018E, - 0x042D, 0x0421, 0x04AA, 0x01A9, 0xF765, 0x0397, 0x0538, 0x0389, - 0x00D0, 0xF7F0, 0x1EBC, 0x1E1A, 0x20AC, 0x01B7, 0x01EE, 0x01B8, - 0x0046, 0x24BB, 0x1E1E, 0x0556, 0x03E4, 0x0191, 0x0472, 0x2164, - 0xFF26, 0x2163, 0xF766, 0x0047, 0x3387, 0x01F4, 0x0393, 0x0194, - 0x03EA, 0x011E, 0x01E6, 0x0122, 0x24BC, 0x011C, 0x0122, 0x0120, - 0x0120, 0x0413, 0x0542, 0x0494, 0x0492, 0x0490, 0x0193, 0x0533, - 0x0403, 0x1E20, 0xFF27, 0xF6CE, 0xF760, 0xF767, 0x029B, 0x01E4, - 0x0048, 0x25CF, 0x25AA, 0x25AB, 0x25A1, 0x33CB, 0x04A8, 0x04B2, - 0x042A, 0x0126, 0x1E2A, 0x1E28, 0x24BD, 0x0124, 0x1E26, 0x1E22, - 0x1E24, 0xFF28, 0x0540, 0x03E8, 0xF768, 0xF6CF, 0xF6F8, 0x3390, - 0x0049, 0x042F, 0x0132, 0x042E, 0x00CD, 0xF7ED, 0x012C, 0x01CF, - 0x24BE, 0x00CE, 0xF7EE, 0x0406, 0x0208, 0x00CF, 0x1E2E, 0x04E4, - 0xF7EF, 0x0130, 0x0130, 0x1ECA, 0x04D6, 0x0415, 0x2111, 0x00CC, - 0xF7EC, 0x1EC8, 0x0418, 0x020A, 0x0419, 0x012A, 0x04E2, 0xFF29, - 0x053B, 0x0401, 0x012E, 0x0399, 0x0196, 0x03AA, 0x038A, 0xF769, - 0x0197, 0x0128, 0x1E2C, 0x0474, 0x0476, 0x004A, 0x0541, 0x24BF, - 0x0134, 0x0408, 0x054B, 0xFF2A, 0xF76A, 0x004B, 0x3385, 0x33CD, - 0x04A0, 0x1E30, 0x041A, 0x049A, 0x04C3, 0x039A, 0x049E, 0x049C, - 0x01E8, 0x0136, 0x24C0, 0x0136, 0x1E32, 0x0554, 0x053F, 0x0425, - 0x03E6, 0x0198, 0x040C, 0x1E34, 0xFF2B, 0x0480, 0x03DE, 0x046E, - 0xF76B, 0x004C, 0x01C7, 0xF6BF, 0x0139, 0x039B, 0x013D, 0x013B, - 0x24C1, 0x1E3C, 0x013B, 0x013F, 0x013F, 0x1E36, 0x1E38, 0x053C, - 0x01C8, 0x0409, 0x1E3A, 0xFF2C, 0x0141, 0xF6F9, 0xF76C, 0x004D, - 0x3386, 0xF6D0, 0xF7AF, 0x1E3E, 0x24C2, 0x1E40, 0x1E42, 0x0544, - 0xFF2D, 0xF76D, 0x019C, 0x039C, 0x004E, 0x01CA, 0x0143, 0x0147, - 0x0145, 0x24C3, 0x1E4A, 0x0145, 0x1E44, 0x1E46, 0x019D, 0x2168, - 0x01CB, 0x040A, 0x1E48, 0xFF2E, 0x0546, 0xF76E, 0x00D1, 0xF7F1, - 0x039D, 0x004F, 0x0152, 0xF6FA, 0x00D3, 0xF7F3, 0x04E8, 0x04EA, - 0x014E, 0x01D1, 0x019F, 0x24C4, 0x00D4, 0x1ED0, 0x1ED8, 0x1ED2, - 0x1ED4, 0xF7F4, 0x1ED6, 0x041E, 0x0150, 0x020C, 0x00D6, 0x04E6, - 0xF7F6, 0x1ECC, 0xF6FB, 0x00D2, 0xF7F2, 0x0555, 0x2126, 0x1ECE, - 0x01A0, 0x1EDA, 0x1EE2, 0x1EDC, 0x1EDE, 0x1EE0, 0x0150, 0x01A2, - 0x020E, 0x014C, 0x1E52, 0x1E50, 0x2126, 0x0460, 0x03A9, 0x047A, - 0x047C, 0x038F, 0x039F, 0x038C, 0xFF2F, 0x2160, 0x01EA, 0x01EC, - 0x0186, 0x00D8, 0x01FE, 0xF7F8, 0xF76F, 0x01FE, 0x047E, 0x00D5, - 0x1E4C, 0x1E4E, 0xF7F5, 0x0050, 0x1E54, 0x24C5, 0x1E56, 0x041F, - 0x054A, 0x04A6, 0x03A6, 0x01A4, 0x03A0, 0x0553, 0xFF30, 0x03A8, - 0x0470, 0xF770, 0x0051, 0x24C6, 0xFF31, 0xF771, 0x0052, 0x054C, - 0x0154, 0x0158, 0x0156, 0x24C7, 0x0156, 0x0210, 0x1E58, 0x1E5A, - 0x1E5C, 0x0550, 0x211C, 0x03A1, 0xF6FC, 0x0212, 0x1E5E, 0xFF32, - 0xF772, 0x0281, 0x02B6, 0x0053, 0x250C, 0x2514, 0x2510, 0x2518, - 0x253C, 0x252C, 0x2534, 0x251C, 0x2524, 0x2500, 0x2502, 0x2561, - 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, - 0x255B, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, - 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, - 0x2552, 0x2553, 0x256B, 0x256A, 0x015A, 0x1E64, 0x03E0, 0x0160, - 0x1E66, 0xF6FD, 0x015E, 0x018F, 0x04D8, 0x04DA, 0x24C8, 0x015C, - 0x0218, 0x1E60, 0x1E62, 0x1E68, 0x054D, 0x2166, 0x0547, 0x0428, - 0x0429, 0x03E2, 0x04BA, 0x03EC, 0x03A3, 0x2165, 0xFF33, 0x042C, - 0xF773, 0x03DA, 0x0054, 0x03A4, 0x0166, 0x0164, 0x0162, 0x24C9, - 0x1E70, 0x0162, 0x1E6A, 0x1E6C, 0x0422, 0x04AC, 0x2169, 0x04B4, - 0x0398, 0x01AC, 0x00DE, 0xF7FE, 0x2162, 0xF6FE, 0x054F, 0x1E6E, - 0xFF34, 0x0539, 0x01BC, 0x0184, 0x01A7, 0x01AE, 0x0426, 0x040B, - 0xF774, 0x216B, 0x2161, 0x0055, 0x00DA, 0xF7FA, 0x016C, 0x01D3, - 0x24CA, 0x00DB, 0x1E76, 0xF7FB, 0x0423, 0x0170, 0x0214, 0x00DC, - 0x01D7, 0x1E72, 0x01D9, 0x04F0, 0x01DB, 0x01D5, 0xF7FC, 0x1EE4, - 0x00D9, 0xF7F9, 0x1EE6, 0x01AF, 0x1EE8, 0x1EF0, 0x1EEA, 0x1EEC, - 0x1EEE, 0x0170, 0x04F2, 0x0216, 0x0478, 0x016A, 0x04EE, 0x1E7A, - 0xFF35, 0x0172, 0x03A5, 0x03D2, 0x03D3, 0x01B1, 0x03AB, 0x03D4, - 0x03D2, 0x038E, 0x016E, 0x040E, 0xF775, 0x04AE, 0x04B0, 0x0168, - 0x1E78, 0x1E74, 0x0056, 0x24CB, 0x1E7E, 0x0412, 0x054E, 0x01B2, - 0xFF36, 0x0548, 0xF776, 0x1E7C, 0x0057, 0x1E82, 0x24CC, 0x0174, - 0x1E84, 0x1E86, 0x1E88, 0x1E80, 0xFF37, 0xF777, 0x0058, 0x24CD, - 0x1E8C, 0x1E8A, 0x053D, 0x039E, 0xFF38, 0xF778, 0x0059, 0x00DD, - 0xF7FD, 0x0462, 0x24CE, 0x0176, 0x0178, 0xF7FF, 0x1E8E, 0x1EF4, - 0x042B, 0x04F8, 0x1EF2, 0x01B3, 0x1EF6, 0x0545, 0x0407, 0x0552, - 0xFF39, 0xF779, 0x1EF8, 0x046A, 0x046C, 0x0466, 0x0468, 0x005A, - 0x0536, 0x0179, 0x017D, 0xF6FF, 0x24CF, 0x1E90, 0x017B, 0x017B, - 0x1E92, 0x0417, 0x0498, 0x04DE, 0x0396, 0x053A, 0x04C1, 0x0416, - 0x0496, 0x04DC, 0x1E94, 0xFF3A, 0xF77A, 0x01B5, 0x0061, 0x0986, - 0x00E1, 0x0906, 0x0A86, 0x0A06, 0x0A3E, 0x3303, 0x09BE, 0x093E, - 0x0ABE, 0x055F, 0x0970, 0x0985, 0x311A, 0x0103, 0x1EAF, 0x04D1, - 0x1EB7, 0x1EB1, 0x1EB3, 0x1EB5, 0x01CE, 0x24D0, 0x00E2, 0x1EA5, - 0x1EAD, 0x1EA7, 0x1EA9, 0x1EAB, 0x00B4, 0x0317, 0x0301, 0x0301, - 0x0954, 0x02CF, 0x0341, 0x0430, 0x0201, 0x0A71, 0x0905, 0x00E4, - 0x04D3, 0x01DF, 0x1EA1, 0x01E1, 0x00E6, 0x01FD, 0x3150, 0x01E3, - 0x2015, 0x20A4, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, - 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, - 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, - 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, - 0x042D, 0x042E, 0x042F, 0x0490, 0x0402, 0x0403, 0x0404, 0x0405, - 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x040E, - 0xF6C4, 0xF6C5, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, - 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, - 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, - 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, - 0x044D, 0x044E, 0x044F, 0x0491, 0x0452, 0x0453, 0x0454, 0x0455, - 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x045E, - 0x040F, 0x0462, 0x0472, 0x0474, 0xF6C6, 0x045F, 0x0463, 0x0473, - 0x0475, 0xF6C7, 0xF6C8, 0x04D9, 0x200E, 0x200F, 0x200D, 0x066A, - 0x060C, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, - 0x0667, 0x0668, 0x0669, 0x061B, 0x061F, 0x0621, 0x0622, 0x0623, - 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062A, 0x062B, - 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, 0x0632, 0x0633, - 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, - 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0648, 0x0649, - 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, 0x0650, 0x0651, - 0x0652, 0x0647, 0x06A4, 0x067E, 0x0686, 0x0698, 0x06AF, 0x0679, - 0x0688, 0x0691, 0x06BA, 0x06D2, 0x06D5, 0x20AA, 0x05BE, 0x05C3, - 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, - 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, - 0x05E8, 0x05E9, 0x05EA, 0xFB2A, 0xFB2B, 0xFB4B, 0xFB1F, 0x05F0, - 0x05F1, 0x05F2, 0xFB35, 0x05B4, 0x05B5, 0x05B6, 0x05BB, 0x05B8, - 0x05B7, 0x05B0, 0x05B2, 0x05B1, 0x05B3, 0x05C2, 0x05C1, 0x05B9, - 0x05BC, 0x05BD, 0x05BF, 0x05C0, 0x02BC, 0x2105, 0x2113, 0x2116, - 0x202C, 0x202D, 0x202E, 0x200C, 0x066D, 0x02BD, 0x00E0, 0x0A85, - 0x0A05, 0x3042, 0x1EA3, 0x0990, 0x311E, 0x0910, 0x04D5, 0x0A90, - 0x0A10, 0x0A48, 0x0639, 0xFECA, 0xFECB, 0xFECC, 0x0203, 0x09C8, - 0x0948, 0x0AC8, 0x30A2, 0xFF71, 0x314F, 0x05D0, 0x0627, 0xFB30, - 0xFE8E, 0x0623, 0xFE84, 0x0625, 0xFE88, 0x05D0, 0xFB4F, 0x0622, - 0xFE82, 0x0649, 0xFEF0, 0xFEF3, 0xFEF4, 0xFB2E, 0xFB2F, 0x2135, - 0x224C, 0x03B1, 0x03AC, 0x0101, 0xFF41, 0x0026, 0xFF06, 0xF726, - 0x33C2, 0x3122, 0x3124, 0x0E5A, 0x2220, 0x3008, 0xFE3F, 0x3009, - 0xFE40, 0x2329, 0x232A, 0x212B, 0x0387, 0x0952, 0x0982, 0x0902, - 0x0A82, 0x0105, 0x3300, 0x249C, 0x055A, 0x02BC, 0xF8FF, 0x2250, - 0x2248, 0x2252, 0x2245, 0x318E, 0x318D, 0x2312, 0x1E9A, 0x00E5, - 0x01FB, 0x1E01, 0x2194, 0x21E3, 0x21E0, 0x21E2, 0x21E1, 0x21D4, - 0x21D3, 0x21D0, 0x21D2, 0x21D1, 0x2193, 0x2199, 0x2198, 0x21E9, - 0x02C5, 0x02C2, 0x02C3, 0x02C4, 0xF8E7, 0x2190, 0x21D0, 0x21CD, - 0x21C6, 0x21E6, 0x2192, 0x21CF, 0x279E, 0x21C4, 0x21E8, 0x21E4, - 0x21E5, 0x2191, 0x2195, 0x21A8, 0x21A8, 0x2196, 0x21C5, 0x2197, - 0x21E7, 0xF8E6, 0x005E, 0xFF3E, 0x007E, 0xFF5E, 0x0251, 0x0252, - 0x3041, 0x30A1, 0xFF67, 0x002A, 0x066D, 0x066D, 0x2217, 0xFF0A, - 0xFE61, 0x2042, 0xF6E9, 0x2243, 0x0040, 0x00E3, 0xFF20, 0xFE6B, - 0x0250, 0x0994, 0x3120, 0x0914, 0x0A94, 0x0A14, 0x09D7, 0x0A4C, - 0x09CC, 0x094C, 0x0ACC, 0x093D, 0x0561, 0x05E2, 0xFB20, 0x05E2, - 0x0062, 0x09AC, 0x005C, 0xFF3C, 0x092C, 0x0AAC, 0x0A2C, 0x3070, - 0x0E3F, 0x30D0, 0x007C, 0xFF5C, 0x3105, 0x24D1, 0x1E03, 0x1E05, - 0x266C, 0x2235, 0x0431, 0x0628, 0xFE90, 0xFE91, 0x3079, 0xFE92, - 0xFC9F, 0xFC08, 0xFC6D, 0x30D9, 0x0562, 0x05D1, 0x03B2, 0x03D0, - 0xFB31, 0xFB31, 0x05D1, 0xFB4C, 0x09AD, 0x092D, 0x0AAD, 0x0A2D, - 0x0253, 0x3073, 0x30D3, 0x0298, 0x0A02, 0x3331, 0x25CF, 0x25C6, - 0x25BC, 0x25C4, 0x25C0, 0x3010, 0xFE3B, 0x3011, 0xFE3C, 0x25E3, - 0x25E2, 0x25AC, 0x25BA, 0x25B6, 0x25AA, 0x263B, 0x25A0, 0x2605, - 0x25E4, 0x25E5, 0x25B4, 0x25B2, 0x2423, 0x1E07, 0x2588, 0xFF42, - 0x0E1A, 0x307C, 0x30DC, 0x249D, 0x33C3, 0xF8F4, 0x007B, 0xF8F3, - 0xF8F2, 0xFF5B, 0xFE5B, 0xF8F1, 0xFE37, 0x007D, 0xF8FE, 0xF8FD, - 0xFF5D, 0xFE5C, 0xF8FC, 0xFE38, 0x005B, 0xF8F0, 0xF8EF, 0xFF3B, - 0xF8EE, 0x005D, 0xF8FB, 0xF8FA, 0xFF3D, 0xF8F9, 0x02D8, 0x032E, - 0x0306, 0x032F, 0x0311, 0x0361, 0x032A, 0x033A, 0x00A6, 0x0180, - 0xF6EA, 0x0183, 0x3076, 0x30D6, 0x2022, 0x25D8, 0x2219, 0x25CE, - 0x0063, 0x056E, 0x099A, 0x0107, 0x091A, 0x0A9A, 0x0A1A, 0x3388, - 0x0981, 0x0310, 0x0901, 0x0A81, 0x21EA, 0x2105, 0x02C7, 0x032C, - 0x030C, 0x21B5, 0x3118, 0x010D, 0x00E7, 0x1E09, 0x24D2, 0x0109, - 0x0255, 0x010B, 0x010B, 0x33C5, 0x00B8, 0x0327, 0x00A2, 0x2103, - 0xF6DF, 0xFFE0, 0xF7A2, 0xF6E0, 0x0579, 0x099B, 0x091B, 0x0A9B, - 0x0A1B, 0x3114, 0x04BD, 0x2713, 0x0447, 0x04BF, 0x04B7, 0x04F5, - 0x0573, 0x04CC, 0x04B9, 0x03C7, 0x3277, 0x3217, 0x3269, 0x314A, - 0x3209, 0x0E0A, 0x0E08, 0x0E09, 0x0E0C, 0x0188, 0x3276, 0x3216, - 0x3268, 0x3148, 0x3208, 0x321C, 0x25CB, 0x2297, 0x2299, 0x2295, - 0x3036, 0x25D0, 0x25D1, 0x02C6, 0x032D, 0x0302, 0x2327, 0x01C2, - 0x01C0, 0x01C1, 0x01C3, 0x2663, 0x2663, 0x2667, 0x33A4, 0xFF43, - 0x33A0, 0x0581, 0x003A, 0x20A1, 0xFF1A, 0x20A1, 0xFE55, 0x02D1, - 0x02D0, 0x002C, 0x0313, 0x0315, 0xF6C3, 0x060C, 0x055D, 0xF6E1, - 0xFF0C, 0x0314, 0x02BD, 0xFE50, 0xF6E2, 0x0312, 0x02BB, 0x263C, - 0x2245, 0x222E, 0x2303, 0x0006, 0x0007, 0x0008, 0x0018, 0x000D, - 0x0011, 0x0012, 0x0013, 0x0014, 0x007F, 0x0010, 0x0019, 0x0005, - 0x0004, 0x001B, 0x0017, 0x0003, 0x000C, 0x001C, 0x001D, 0x0009, - 0x000A, 0x0015, 0x001E, 0x000F, 0x000E, 0x0002, 0x0001, 0x001A, - 0x0016, 0x001F, 0x000B, 0x00A9, 0xF8E9, 0xF6D9, 0x300C, 0xFF62, - 0xFE41, 0x300D, 0xFF63, 0xFE42, 0x337F, 0x33C7, 0x33C6, 0x249E, - 0x20A2, 0x0297, 0x22CF, 0x22CE, 0x00A4, 0xF6D1, 0xF6D2, 0xF6D4, - 0xF6D5, 0x0064, 0x0564, 0x09A6, 0x0636, 0x0926, 0xFEBE, 0xFEBF, - 0xFEC0, 0x05BC, 0x05BC, 0x2020, 0x2021, 0x0AA6, 0x0A26, 0x3060, - 0x30C0, 0x062F, 0x05D3, 0xFB33, 0xFB33, 0x05D3, 0xFEAA, 0x064F, - 0x064F, 0x064C, 0x064C, 0x0964, 0x05A7, 0x05A7, 0x0485, 0xF6D3, - 0x300A, 0xFE3D, 0x300B, 0xFE3E, 0x032B, 0x21D4, 0x21D2, 0x0965, - 0xF6D6, 0x030F, 0x222C, 0x2017, 0x0333, 0x033F, 0x02BA, 0x2016, - 0x030E, 0x3109, 0x33C8, 0x010F, 0x1E11, 0x24D3, 0x1E13, 0x0111, - 0x09A1, 0x0921, 0x0AA1, 0x0A21, 0x0688, 0xFB89, 0x095C, 0x09A2, - 0x0922, 0x0AA2, 0x0A22, 0x1E0B, 0x1E0D, 0x066B, 0x066B, 0x0434, - 0x00B0, 0x05AD, 0x3067, 0x03EF, 0x30C7, 0x232B, 0x2326, 0x03B4, - 0x018D, 0x09F8, 0x02A4, 0x09A7, 0x0927, 0x0AA7, 0x0A27, 0x0257, - 0x0385, 0x0344, 0x2666, 0x2662, 0x00A8, 0xF6D7, 0x0324, 0x0308, - 0xF6D8, 0x0385, 0x3062, 0x30C2, 0x3003, 0x00F7, 0x2223, 0x2215, - 0x0452, 0x2593, 0x1E0F, 0x3397, 0x0111, 0xFF44, 0x2584, 0x0E0E, - 0x0E14, 0x3069, 0x30C9, 0x0024, 0xF6E3, 0xFF04, 0xF724, 0xFE69, - 0xF6E4, 0x20AB, 0x3326, 0x02D9, 0x0307, 0x0323, 0x0323, 0x30FB, - 0x0131, 0xF6BE, 0x0284, 0x22C5, 0x25CC, 0xFB1F, 0xFB1F, 0x031E, - 0x02D5, 0x249F, 0xF6EB, 0x0256, 0x018C, 0x3065, 0x30C5, 0x01F3, - 0x02A3, 0x01C6, 0x02A5, 0x04E1, 0x0455, 0x045F, 0x0065, 0x00E9, - 0x2641, 0x098F, 0x311C, 0x0115, 0x090D, 0x0A8D, 0x0945, 0x0AC5, - 0x011B, 0x1E1D, 0x0565, 0x0587, 0x24D4, 0x00EA, 0x1EBF, 0x1E19, - 0x1EC7, 0x1EC1, 0x1EC3, 0x1EC5, 0x0454, 0x0205, 0x090F, 0x00EB, - 0x0117, 0x0117, 0x1EB9, 0x0A0F, 0x0A47, 0x0444, 0x00E8, 0x0A8F, - 0x0567, 0x311D, 0x3048, 0x1EBB, 0x311F, 0x0038, 0x0668, 0x09EE, - 0x2467, 0x2791, 0x096E, 0x2471, 0x2485, 0x2499, 0x0AEE, 0x0A6E, - 0x0668, 0x3028, 0x266B, 0x3227, 0x2088, 0xFF18, 0xF738, 0x247B, - 0x248F, 0x06F8, 0x2177, 0x2078, 0x0E58, 0x0207, 0x0465, 0x30A8, - 0xFF74, 0x0A74, 0x3154, 0x043B, 0x2208, 0x246A, 0x247E, 0x2492, - 0x217A, 0x2026, 0x22EE, 0x0113, 0x1E17, 0x1E15, 0x043C, 0x2014, - 0xFE31, 0xFF45, 0x055B, 0x2205, 0x3123, 0x043D, 0x2013, 0xFE32, - 0x04A3, 0x014B, 0x3125, 0x04A5, 0x04C8, 0x2002, 0x0119, 0x3153, - 0x025B, 0x029A, 0x025C, 0x025E, 0x025D, 0x24A0, 0x03B5, 0x03AD, - 0x003D, 0xFF1D, 0xFE66, 0x207C, 0x2261, 0x3126, 0x0440, 0x0258, - 0x044D, 0x0441, 0x04AB, 0x0283, 0x0286, 0x090E, 0x0946, 0x01AA, - 0x0285, 0x3047, 0x30A7, 0xFF6A, 0x212E, 0xF6EC, 0x03B7, 0x0568, - 0x03AE, 0x00F0, 0x1EBD, 0x1E1B, 0x0591, 0x0591, 0x0591, 0x0591, - 0x01DD, 0x3161, 0x20AC, 0x09C7, 0x0947, 0x0AC7, 0x0021, 0x055C, - 0x203C, 0x00A1, 0xF7A1, 0xFF01, 0xF721, 0x2203, 0x0292, 0x01EF, - 0x0293, 0x01B9, 0x01BA, 0x0066, 0x095E, 0x0A5E, 0x2109, 0x064E, - 0x064E, 0x064B, 0x3108, 0x24D5, 0x1E1F, 0x0641, 0x0586, 0xFED2, - 0xFED3, 0xFED4, 0x03E5, 0x2640, 0xFB00, 0xFB03, 0xFB04, 0xFB01, - 0x246E, 0x2482, 0x2496, 0x2012, 0x25A0, 0x25AC, 0x05DA, 0xFB3A, - 0xFB3A, 0x05DA, 0x05DD, 0x05DD, 0x05DF, 0x05DF, 0x05E3, 0x05E3, - 0x05E5, 0x05E5, 0x02C9, 0x25C9, 0x0473, 0x0035, 0x0665, 0x09EB, - 0x2464, 0x278E, 0x096B, 0x215D, 0x0AEB, 0x0A6B, 0x0665, 0x3025, - 0x3224, 0x2085, 0xFF15, 0xF735, 0x2478, 0x248C, 0x06F5, 0x2174, - 0x2075, 0x0E55, 0xFB02, 0x0192, 0xFF46, 0x3399, 0x0E1F, 0x0E1D, - 0x0E4F, 0x2200, 0x0034, 0x0664, 0x09EA, 0x2463, 0x278D, 0x096A, - 0x0AEA, 0x0A6A, 0x0664, 0x3024, 0x3223, 0x2084, 0xFF14, 0x09F7, - 0xF734, 0x2477, 0x248B, 0x06F4, 0x2173, 0x2074, 0x246D, 0x2481, - 0x2495, 0x0E54, 0x02CB, 0x24A1, 0x2044, 0x20A3, 0x0067, 0x0997, - 0x01F5, 0x0917, 0x06AF, 0xFB93, 0xFB94, 0xFB95, 0x0A97, 0x0A17, - 0x304C, 0x30AC, 0x03B3, 0x0263, 0x02E0, 0x03EB, 0x310D, 0x011F, - 0x01E7, 0x0123, 0x24D6, 0x011D, 0x0123, 0x0121, 0x0121, 0x0433, - 0x3052, 0x30B2, 0x2251, 0x059C, 0x05F3, 0x059D, 0x00DF, 0x059E, - 0x05F4, 0x3013, 0x0998, 0x0572, 0x0918, 0x0A98, 0x0A18, 0x063A, - 0xFECE, 0xFECF, 0xFED0, 0x0495, 0x0493, 0x0491, 0x095A, 0x0A5A, - 0x0260, 0x3393, 0x304E, 0x30AE, 0x0563, 0x05D2, 0xFB32, 0xFB32, - 0x05D2, 0x0453, 0x01BE, 0x0294, 0x0296, 0x02C0, 0x0295, 0x02C1, - 0x02E4, 0x02A1, 0x02A2, 0x1E21, 0xFF47, 0x3054, 0x30B4, 0x24A2, - 0x33AC, 0x2207, 0x0060, 0x0316, 0x0300, 0x0300, 0x0953, 0x02CE, - 0xFF40, 0x0340, 0x003E, 0x2265, 0x22DB, 0xFF1E, 0x2273, 0x2277, - 0x2267, 0xFE65, 0x0261, 0x01E5, 0x3050, 0x00AB, 0x00BB, 0x2039, - 0x203A, 0x30B0, 0x3318, 0x33C9, 0x0068, 0x04A9, 0x06C1, 0x09B9, - 0x04B3, 0x0939, 0x0AB9, 0x0A39, 0x062D, 0xFEA2, 0xFEA3, 0x306F, - 0xFEA4, 0x332A, 0x30CF, 0xFF8A, 0x0A4D, 0x0621, 0x0621, 0x3164, - 0x044A, 0x21BC, 0x21C0, 0x33CA, 0x05B2, 0x05B2, 0x05B2, 0x05B2, - 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x05B3, 0x05B3, 0x05B3, 0x05B3, - 0x05B3, 0x05B3, 0x05B3, 0x05B3, 0x05B1, 0x05B1, 0x05B1, 0x05B1, - 0x05B1, 0x05B1, 0x05B1, 0x05B1, 0x0127, 0x310F, 0x1E2B, 0x1E29, - 0x24D7, 0x0125, 0x1E27, 0x1E23, 0x1E25, 0x05D4, 0x2665, 0x2665, - 0x2661, 0xFB34, 0xFB34, 0x06C1, 0x0647, 0x05D4, 0xFBA7, 0xFEEA, - 0xFEEA, 0xFBA5, 0xFBA4, 0xFBA8, 0xFEEB, 0x3078, 0xFBA9, 0xFEEC, - 0x337B, 0x30D8, 0xFF8D, 0x3336, 0x0267, 0x3339, 0x05D7, 0x05D7, - 0x0266, 0x02B1, 0x327B, 0x321B, 0x326D, 0x314E, 0x320D, 0x3072, - 0x30D2, 0xFF8B, 0x05B4, 0x05B4, 0x05B4, 0x05B4, 0x05B4, 0x05B4, - 0x05B4, 0x05B4, 0x1E96, 0xFF48, 0x0570, 0x0E2B, 0x307B, 0x30DB, - 0xFF8E, 0x05B9, 0x05B9, 0x05B9, 0x05B9, 0x05B9, 0x05B9, 0x05B9, - 0x05B9, 0x0E2E, 0x0309, 0x0309, 0x0321, 0x0322, 0x3342, 0x03E9, - 0x2015, 0x031B, 0x2668, 0x2302, 0x24A3, 0x02B0, 0x0265, 0x3075, - 0x3333, 0x30D5, 0xFF8C, 0x02DD, 0x030B, 0x0195, 0x002D, 0xF6E5, - 0xFF0D, 0xFE63, 0xF6E6, 0x2010, 0x0069, 0x00ED, 0x044F, 0x0987, - 0x3127, 0x012D, 0x01D0, 0x24D8, 0x00EE, 0x0456, 0x0209, 0x328F, - 0x328B, 0x323F, 0x323A, 0x32A5, 0x3006, 0x3001, 0xFF64, 0x3237, - 0x32A3, 0x322F, 0x323D, 0x329D, 0x3240, 0x3296, 0x3236, 0x322B, - 0x3232, 0x32A4, 0x3005, 0x3298, 0x3238, 0x32A7, 0x32A6, 0x32A9, - 0x322E, 0x322A, 0x3234, 0x3002, 0x329E, 0x3243, 0x3239, 0x323E, - 0x32A8, 0x3299, 0x3242, 0x3233, 0x3000, 0x3235, 0x3231, 0x323B, - 0x3230, 0x323C, 0x322C, 0x322D, 0x3007, 0x328E, 0x328A, 0x3294, - 0x3290, 0x328C, 0x328D, 0x0907, 0x00EF, 0x1E2F, 0x04E5, 0x1ECB, - 0x04D7, 0x0435, 0x3275, 0x3215, 0x3267, 0x3147, 0x3207, 0x00EC, - 0x0A87, 0x0A07, 0x3044, 0x1EC9, 0x0988, 0x0438, 0x0908, 0x0A88, - 0x0A08, 0x0A40, 0x020B, 0x0439, 0x09C0, 0x0940, 0x0AC0, 0x0133, - 0x30A4, 0xFF72, 0x3163, 0x02DC, 0x05AC, 0x012B, 0x04E3, 0x2253, - 0x0A3F, 0xFF49, 0x2206, 0x221E, 0x056B, 0x222B, 0x2321, 0x2321, - 0xF8F5, 0x2320, 0x2320, 0x2229, 0x3305, 0x25D8, 0x25D9, 0x263B, - 0x0451, 0x012F, 0x03B9, 0x03CA, 0x0390, 0x0269, 0x03AF, 0x24A4, - 0x0A72, 0x3043, 0x30A3, 0xFF68, 0x09FA, 0x0268, 0xF6ED, 0x309D, - 0x30FD, 0x0129, 0x1E2D, 0x3129, 0x044E, 0x09BF, 0x093F, 0x0ABF, - 0x0475, 0x0477, 0x006A, 0x0571, 0x099C, 0x091C, 0x0A9C, 0x0A1C, - 0x3110, 0x01F0, 0x24D9, 0x0135, 0x029D, 0x025F, 0x0458, 0x062C, - 0xFE9E, 0xFE9F, 0xFEA0, 0x0698, 0xFB8B, 0x099D, 0x091D, 0x0A9D, - 0x0A1D, 0x057B, 0x3004, 0xFF4A, 0x24A5, 0x02B2, 0x006B, 0x04A1, - 0x0995, 0x1E31, 0x043A, 0x049B, 0x0915, 0x05DB, 0x0643, 0xFB3B, - 0xFB3B, 0xFEDA, 0x05DB, 0xFEDB, 0xFEDC, 0xFB4D, 0x0A95, 0x0A15, - 0x304B, 0x04C4, 0x30AB, 0xFF76, 0x03BA, 0x03F0, 0x3171, 0x3184, - 0x3178, 0x3179, 0x330D, 0x0640, 0x0640, 0x30F5, 0x3384, 0x0650, - 0x064D, 0x049F, 0xFF70, 0x049D, 0x310E, 0x3389, 0x01E9, 0x0137, - 0x24DA, 0x0137, 0x1E33, 0x0584, 0x3051, 0x30B1, 0xFF79, 0x056F, - 0x30F6, 0x0138, 0x0996, 0x0445, 0x0916, 0x0A96, 0x0A16, 0x062E, - 0xFEA6, 0xFEA7, 0xFEA8, 0x03E7, 0x0959, 0x0A59, 0x3278, 0x3218, - 0x326A, 0x314B, 0x320A, 0x0E02, 0x0E05, 0x0E03, 0x0E04, 0x0E5B, - 0x0199, 0x0E06, 0x3391, 0x304D, 0x30AD, 0xFF77, 0x3315, 0x3316, - 0x3314, 0x326E, 0x320E, 0x3260, 0x3131, 0x3200, 0x3133, 0x045C, - 0x1E35, 0x3398, 0x33A6, 0xFF4B, 0x33A2, 0x3053, 0x33C0, 0x0E01, - 0x30B3, 0xFF7A, 0x331E, 0x0481, 0x327F, 0x0343, 0x24A6, 0x33AA, - 0x046F, 0x33CF, 0x029E, 0x304F, 0x30AF, 0xFF78, 0x33B8, 0x33BE, - 0x006C, 0x09B2, 0x013A, 0x0932, 0x0AB2, 0x0A32, 0x0E45, 0xFEFC, - 0xFEF8, 0xFEF7, 0xFEFA, 0xFEF9, 0xFEFB, 0xFEF6, 0xFEF5, 0x0644, - 0x03BB, 0x019B, 0x05DC, 0xFB3C, 0xFB3C, 0x05DC, 0xFEDE, 0xFCCA, - 0xFEDF, 0xFCC9, 0xFCCB, 0xFDF2, 0xFEE0, 0xFD88, 0xFCCC, 0x25EF, - 0x019A, 0x026C, 0x310C, 0x013E, 0x013C, 0x24DB, 0x1E3D, 0x013C, - 0x0140, 0x0140, 0x1E37, 0x1E39, 0x031A, 0x0318, 0x003C, 0x2264, - 0x22DA, 0xFF1C, 0x2272, 0x2276, 0x2266, 0xFE64, 0x026E, 0x258C, - 0x026D, 0x20A4, 0x056C, 0x01C9, 0x0459, 0xF6C0, 0x0933, 0x0AB3, - 0x1E3B, 0x0934, 0x09E1, 0x0961, 0x09E3, 0x0963, 0x026B, 0xFF4C, - 0x33D0, 0x0E2C, 0x2227, 0x00AC, 0x2310, 0x2228, 0x0E25, 0x017F, - 0xFE4E, 0x0332, 0xFE4D, 0x25CA, 0x24A7, 0x0142, 0x2113, 0xF6EE, - 0x2591, 0x0E26, 0x098C, 0x090C, 0x09E2, 0x0962, 0x33D3, 0x006D, - 0x09AE, 0x00AF, 0x0331, 0x0304, 0x02CD, 0xFFE3, 0x1E3F, 0x092E, - 0x0AAE, 0x0A2E, 0x05A4, 0x05A4, 0x307E, 0xF895, 0xF894, 0x0E4B, - 0xF893, 0xF88C, 0xF88B, 0x0E48, 0xF88A, 0xF884, 0x0E31, 0xF889, - 0x0E47, 0xF88F, 0xF88E, 0x0E49, 0xF88D, 0xF892, 0xF891, 0x0E4A, - 0xF890, 0x0E46, 0x30DE, 0xFF8F, 0x2642, 0x3347, 0x05BE, 0x2642, - 0x05AF, 0x3383, 0x3107, 0x33D4, 0x24DC, 0x33A5, 0x1E41, 0x1E43, - 0x0645, 0xFEE2, 0xFEE3, 0xFEE4, 0xFCD1, 0xFC48, 0x334D, 0x3081, - 0x337E, 0x30E1, 0xFF92, 0x05DE, 0xFB3E, 0xFB3E, 0x05DE, 0x0574, - 0x05A5, 0x05A6, 0x05A6, 0x05A5, 0x0271, 0x3392, 0xFF65, 0x00B7, - 0x3272, 0x3212, 0x3264, 0x3141, 0x3170, 0x3204, 0x316E, 0x316F, - 0x307F, 0x30DF, 0xFF90, 0x2212, 0x0320, 0x2296, 0x02D7, 0x2213, - 0x2032, 0x334A, 0x3349, 0x0270, 0x3396, 0x33A3, 0xFF4D, 0x339F, - 0x3082, 0x33C1, 0x30E2, 0xFF93, 0x33D6, 0x0E21, 0x33A7, 0x33A8, - 0x24A8, 0x33AB, 0x33B3, 0xF6EF, 0x026F, 0x00B5, 0x00B5, 0x3382, - 0x226B, 0x226A, 0x338C, 0x03BC, 0x338D, 0x3080, 0x30E0, 0xFF91, - 0x3395, 0x00D7, 0x339B, 0x05A3, 0x05A3, 0x266A, 0x266B, 0x266D, - 0x266F, 0x33B2, 0x33B6, 0x33BC, 0x33B9, 0x33B7, 0x33BF, 0x33BD, - 0x006E, 0x09A8, 0x2207, 0x0144, 0x0928, 0x0AA8, 0x0A28, 0x306A, - 0x30CA, 0xFF85, 0x0149, 0x3381, 0x310B, 0x00A0, 0x0148, 0x0146, - 0x24DD, 0x1E4B, 0x0146, 0x1E45, 0x1E47, 0x306D, 0x30CD, 0xFF88, - 0x20AA, 0x338B, 0x0999, 0x0919, 0x0A99, 0x0A19, 0x0E07, 0x3093, - 0x0272, 0x0273, 0x326F, 0x320F, 0x3135, 0x3261, 0x3136, 0x3134, - 0x3168, 0x3201, 0x3167, 0x3166, 0x306B, 0x30CB, 0xFF86, 0xF899, - 0x0E4D, 0x0039, 0x0669, 0x09EF, 0x2468, 0x2792, 0x096F, 0x0AEF, - 0x0A6F, 0x0669, 0x3029, 0x3228, 0x2089, 0xFF19, 0xF739, 0x247C, - 0x2490, 0x06F9, 0x2178, 0x2079, 0x2472, 0x2486, 0x249A, 0x0E59, - 0x01CC, 0x045A, 0x30F3, 0xFF9D, 0x019E, 0x1E49, 0xFF4E, 0x339A, - 0x09A3, 0x0923, 0x0AA3, 0x0A23, 0x0929, 0x306E, 0x30CE, 0xFF89, - 0x00A0, 0x0E13, 0x0E19, 0x0646, 0xFEE6, 0x06BA, 0xFB9F, 0xFEE7, - 0xFCD2, 0xFC4B, 0xFEE8, 0xFCD5, 0xFC4E, 0xFC8D, 0x220C, 0x2209, - 0x2209, 0x2260, 0x226F, 0x2271, 0x2279, 0x2262, 0x226E, 0x2270, - 0x2226, 0x2280, 0x2284, 0x2281, 0x2285, 0x0576, 0x24A9, 0x33B1, - 0x207F, 0x00F1, 0x03BD, 0x306C, 0x30CC, 0xFF87, 0x09BC, 0x093C, - 0x0ABC, 0x0A3C, 0x0023, 0xFF03, 0xFE5F, 0x0374, 0x0375, 0x2116, - 0x05E0, 0xFB40, 0xFB40, 0x05E0, 0x33B5, 0x33BB, 0x099E, 0x091E, - 0x0A9E, 0x0A1E, 0x006F, 0x00F3, 0x0E2D, 0x0275, 0x04E9, 0x04EB, - 0x0993, 0x311B, 0x014F, 0x0911, 0x0A91, 0x0949, 0x0AC9, 0x01D2, - 0x24DE, 0x00F4, 0x1ED1, 0x1ED9, 0x1ED3, 0x1ED5, 0x1ED7, 0x043E, - 0x0151, 0x020D, 0x0913, 0x00F6, 0x04E7, 0x1ECD, 0x0153, 0x315A, - 0x02DB, 0x0328, 0x00F2, 0x0A93, 0x0585, 0x304A, 0x1ECF, 0x01A1, - 0x1EDB, 0x1EE3, 0x1EDD, 0x1EDF, 0x1EE1, 0x0151, 0x01A3, 0x020F, - 0x30AA, 0xFF75, 0x3157, 0x05AB, 0x014D, 0x1E53, 0x1E51, 0x0950, - 0x03C9, 0x03D6, 0x0461, 0x0277, 0x047B, 0x047D, 0x03CE, 0x0AD0, - 0x03BF, 0x03CC, 0xFF4F, 0x0031, 0x0661, 0x09E7, 0x2460, 0x278A, - 0x0967, 0x2024, 0x215B, 0xF6DC, 0x0AE7, 0x0A67, 0x0661, 0x00BD, - 0x3021, 0x3220, 0x2081, 0xFF11, 0x09F4, 0xF731, 0x2474, 0x2488, - 0x06F1, 0x00BC, 0x2170, 0x00B9, 0x0E51, 0x2153, 0x01EB, 0x01ED, - 0x0A13, 0x0A4B, 0x0254, 0x24AA, 0x25E6, 0x2325, 0x00AA, 0x00BA, - 0x221F, 0x0912, 0x094A, 0x00F8, 0x01FF, 0x3049, 0x30A9, 0xFF6B, - 0x01FF, 0xF6F0, 0x047F, 0x00F5, 0x1E4D, 0x1E4F, 0x3121, 0x203E, - 0xFE4A, 0x0305, 0xFE49, 0xFE4C, 0xFE4B, 0x00AF, 0x09CB, 0x094B, - 0x0ACB, 0x0070, 0x3380, 0x332B, 0x09AA, 0x1E55, 0x092A, 0x21DF, - 0x21DE, 0x0AAA, 0x0A2A, 0x3071, 0x0E2F, 0x30D1, 0x0484, 0x04C0, - 0x317F, 0x00B6, 0x2225, 0x0028, 0xFD3E, 0xF8ED, 0xF8EC, 0x208D, - 0xFF08, 0xFE59, 0x207D, 0xF8EB, 0xFE35, 0x0029, 0xFD3F, 0xF8F8, - 0xF8F7, 0x208E, 0xFF09, 0xFE5A, 0x207E, 0xF8F6, 0xFE36, 0x2202, - 0x05C0, 0x0599, 0x33A9, 0x05B7, 0x05B7, 0x05B7, 0x05B7, 0x05B7, - 0x05B7, 0x05B7, 0x05B7, 0x05A1, 0x3106, 0x24DF, 0x1E57, 0x05E4, - 0x043F, 0xFB44, 0xFB44, 0x333B, 0xFB43, 0x067E, 0x057A, 0x05E4, - 0xFB57, 0xFB58, 0x307A, 0xFB59, 0x30DA, 0x04A7, 0xFB4E, 0x0025, - 0x066A, 0xFF05, 0xFE6A, 0x002E, 0x0589, 0x00B7, 0xFF61, 0xF6E7, - 0xFF0E, 0xFE52, 0xF6E8, 0x0342, 0x22A5, 0x2030, 0x20A7, 0x338A, - 0x09AB, 0x092B, 0x0AAB, 0x0A2B, 0x03C6, 0x03D5, 0x327A, 0x321A, - 0x326C, 0x314D, 0x320C, 0x0278, 0x0E3A, 0x03D5, 0x01A5, 0x0E1E, - 0x0E1C, 0x0E20, 0x03C0, 0x3273, 0x3213, 0x3176, 0x3265, 0x3172, - 0x3142, 0x3205, 0x3174, 0x3144, 0x3175, 0x3177, 0x3173, 0x3074, - 0x30D4, 0x03D6, 0x0583, 0x002B, 0x031F, 0x2295, 0x00B1, 0x02D6, - 0xFF0B, 0xFE62, 0x207A, 0xFF50, 0x33D8, 0x307D, 0x261F, 0x261C, - 0x261E, 0x261D, 0x30DD, 0x0E1B, 0x3012, 0x3020, 0x24AB, 0x227A, - 0x211E, 0x02B9, 0x2035, 0x220F, 0x2305, 0x30FC, 0x2318, 0x2282, - 0x2283, 0x2237, 0x221D, 0x03C8, 0x0471, 0x0486, 0x33B0, 0x3077, - 0x30D7, 0x33B4, 0x33BA, 0x0071, 0x0958, 0x05A8, 0x0642, 0xFED6, - 0xFED7, 0xFED8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, - 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, - 0x05B8, 0x05B8, 0x059F, 0x3111, 0x24E0, 0x02A0, 0xFF51, 0x05E7, - 0xFB47, 0xFB47, 0x05E7, 0x24AC, 0x2669, 0x05BB, 0x05BB, 0x05BB, - 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x003F, 0x061F, 0x055E, - 0x00BF, 0xF7BF, 0x037E, 0xFF1F, 0xF73F, 0x0022, 0x201E, 0x201C, - 0xFF02, 0x301E, 0x301D, 0x201D, 0x2018, 0x201B, 0x201B, 0x2019, - 0x0149, 0x201A, 0x0027, 0xFF07, 0x0072, 0x057C, 0x09B0, 0x0155, - 0x0930, 0x221A, 0xF8E5, 0x33AE, 0x33AF, 0x33AD, 0x05BF, 0x05BF, - 0x0AB0, 0x0A30, 0x3089, 0x30E9, 0xFF97, 0x09F1, 0x09F0, 0x0264, - 0x2236, 0x3116, 0x0159, 0x0157, 0x24E1, 0x0157, 0x0211, 0x1E59, - 0x1E5B, 0x1E5D, 0x203B, 0x2286, 0x2287, 0x00AE, 0xF8E8, 0xF6DA, - 0x0631, 0x0580, 0xFEAE, 0x308C, 0x30EC, 0xFF9A, 0x05E8, 0xFB48, - 0x05E8, 0x223D, 0x0597, 0x0597, 0x2310, 0x027E, 0x027F, 0x09DD, - 0x095D, 0x03C1, 0x027D, 0x027B, 0x02B5, 0x03F1, 0x02DE, 0x3271, - 0x3211, 0x3263, 0x3140, 0x313A, 0x3169, 0x3139, 0x313B, 0x316C, - 0x3203, 0x313F, 0x313C, 0x316B, 0x313D, 0x313E, 0x316A, 0x316D, - 0x221F, 0x0319, 0x22BF, 0x308A, 0x30EA, 0xFF98, 0x02DA, 0x0325, - 0x030A, 0x02BF, 0x0559, 0x031C, 0x02D3, 0x02BE, 0x0339, 0x02D2, - 0x0213, 0x3351, 0x1E5F, 0x027C, 0x027A, 0xFF52, 0x308D, 0x30ED, - 0xFF9B, 0x0E23, 0x24AD, 0x09DC, 0x0931, 0x0A5C, 0x0691, 0xFB8D, - 0x09E0, 0x0960, 0x0AE0, 0x09C4, 0x0944, 0x0AC4, 0xF6F1, 0x2590, - 0x0279, 0x02B4, 0x308B, 0x30EB, 0xFF99, 0x09F2, 0x09F3, 0xF6DD, - 0x0E24, 0x098B, 0x090B, 0x0A8B, 0x09C3, 0x0943, 0x0AC3, 0x0073, - 0x09B8, 0x015B, 0x1E65, 0x0635, 0x0938, 0xFEBA, 0xFEBB, 0xFEBC, - 0x0AB8, 0x0A38, 0x3055, 0x30B5, 0xFF7B, 0xFDFA, 0x05E1, 0xFB41, - 0xFB41, 0x05E1, 0x0E32, 0x0E41, 0x0E44, 0x0E43, 0x0E33, 0x0E30, - 0x0E40, 0xF886, 0x0E35, 0xF885, 0x0E34, 0x0E42, 0xF888, 0x0E37, - 0xF887, 0x0E36, 0x0E38, 0x0E39, 0x3119, 0x0161, 0x1E67, 0x015F, - 0x0259, 0x04D9, 0x04DB, 0x025A, 0x24E2, 0x015D, 0x0219, 0x1E61, - 0x1E63, 0x1E69, 0x033C, 0x2033, 0x02CA, 0x00A7, 0x0633, 0xFEB2, - 0xFEB3, 0xFEB4, 0x05B6, 0x05B6, 0x05B6, 0x05B6, 0x05B6, 0x05B6, - 0x05B6, 0x0592, 0x05B6, 0x057D, 0x305B, 0x30BB, 0xFF7E, 0x003B, - 0x061B, 0xFF1B, 0xFE54, 0x309C, 0xFF9F, 0x3322, 0x3323, 0x0037, - 0x0667, 0x09ED, 0x2466, 0x2790, 0x096D, 0x215E, 0x0AED, 0x0A6D, - 0x0667, 0x3027, 0x3226, 0x2087, 0xFF17, 0xF737, 0x247A, 0x248E, - 0x06F7, 0x2176, 0x2077, 0x2470, 0x2484, 0x2498, 0x0E57, 0x00AD, - 0x0577, 0x09B6, 0x0448, 0x0651, 0xFC61, 0xFC5E, 0xFC60, 0xFC62, - 0xFC5F, 0x2592, 0x2593, 0x2591, 0x2592, 0x0936, 0x0AB6, 0x0A36, - 0x0593, 0x3115, 0x0449, 0x0634, 0xFEB6, 0xFEB7, 0xFEB8, 0x03E3, - 0x20AA, 0x20AA, 0x05B0, 0x05B0, 0x05B0, 0x05B0, 0x05B0, 0x05B0, - 0x05B0, 0x05B0, 0x05B0, 0x04BB, 0x03ED, 0x05E9, 0xFB49, 0xFB49, - 0xFB2C, 0xFB2C, 0xFB2D, 0xFB2D, 0x05C1, 0x05E9, 0xFB2A, 0xFB2A, - 0xFB2B, 0xFB2B, 0x0282, 0x03C3, 0x03C2, 0x03C2, 0x03F2, 0x3057, - 0x30B7, 0xFF7C, 0x05BD, 0x05BD, 0x223C, 0x05C2, 0x3274, 0x3214, - 0x317E, 0x3266, 0x317A, 0x3145, 0x317B, 0x3206, 0x317D, 0x317C, - 0x0036, 0x0666, 0x09EC, 0x2465, 0x278F, 0x096C, 0x0AEC, 0x0A6C, - 0x0666, 0x3026, 0x3225, 0x2086, 0xFF16, 0xF736, 0x2479, 0x248D, - 0x06F6, 0x2175, 0x2076, 0x246F, 0x09F9, 0x2483, 0x2497, 0x0E56, - 0x002F, 0xFF0F, 0x017F, 0x1E9B, 0x263A, 0xFF53, 0x05C3, 0x00AD, - 0x044C, 0x305D, 0x30BD, 0xFF7F, 0x0338, 0x0337, 0x0E29, 0x0E28, - 0x0E0B, 0x0E2A, 0x0020, 0x0020, 0x2660, 0x2660, 0x2664, 0x24AE, - 0x033B, 0x33C4, 0x339D, 0x25A9, 0x25A4, 0x338F, 0x339E, 0x33CE, - 0x33D1, 0x33D2, 0x338E, 0x33D5, 0x339C, 0x33A1, 0x25A6, 0x25A7, - 0x25A8, 0x25A5, 0x25A3, 0x33DB, 0x09B7, 0x0937, 0x0AB7, 0x3149, - 0x3185, 0x3180, 0x3132, 0x3165, 0x3143, 0x3146, 0x3138, 0xF6F2, - 0x00A3, 0xFFE1, 0x0336, 0x0335, 0x2282, 0x228A, 0x2286, 0x227B, - 0x220B, 0x3059, 0x30B9, 0xFF7D, 0x0652, 0x2211, 0x263C, 0x2283, - 0x228B, 0x2287, 0x33DC, 0x337C, 0x0074, 0x09A4, 0x22A4, 0x22A3, - 0x0924, 0x0AA4, 0x0A24, 0x0637, 0xFEC2, 0xFEC3, 0x305F, 0xFEC4, - 0x337D, 0x30BF, 0xFF80, 0x0640, 0x03C4, 0x05EA, 0xFB4A, 0xFB4A, - 0xFB4A, 0x05EA, 0x0167, 0x310A, 0x0165, 0x02A8, 0x0163, 0x0686, - 0xFB7B, 0xFB7C, 0xFB7D, 0x24E3, 0x1E71, 0x0163, 0x1E97, 0x1E6B, - 0x1E6D, 0x0442, 0x04AD, 0x062A, 0xFE96, 0xFCA2, 0xFC0C, 0xFE97, - 0x3066, 0xFCA1, 0xFC0B, 0x0629, 0xFE94, 0xFE98, 0xFCA4, 0xFC0E, - 0xFC73, 0x30C6, 0xFF83, 0x2121, 0x260E, 0x05A0, 0x05A9, 0x2469, - 0x3229, 0x247D, 0x2491, 0x2179, 0x02A7, 0x05D8, 0xFB38, 0xFB38, - 0x05D8, 0x04B5, 0x059B, 0x059B, 0x09A5, 0x0925, 0x0AA5, 0x0A25, - 0x0630, 0xFEAC, 0xF898, 0xF897, 0x0E4C, 0xF896, 0x062B, 0xFE9A, - 0xFE9B, 0xFE9C, 0x2203, 0x2234, 0x03B8, 0x03D1, 0x03D1, 0x3279, - 0x3219, 0x326B, 0x314C, 0x320B, 0x246C, 0x2480, 0x2494, 0x0E11, - 0x01AD, 0x0E12, 0x00FE, 0x0E17, 0x0E10, 0x0E18, 0x0E16, 0x0482, - 0x066C, 0x066C, 0x0033, 0x0663, 0x09E9, 0x2462, 0x278C, 0x0969, - 0x215C, 0x0AE9, 0x0A69, 0x0663, 0x3023, 0x3222, 0x2083, 0xFF13, - 0x09F6, 0xF733, 0x2476, 0x248A, 0x06F3, 0x00BE, 0xF6DE, 0x2172, - 0x00B3, 0x0E53, 0x3394, 0x3061, 0x30C1, 0xFF81, 0x3270, 0x3210, - 0x3262, 0x3137, 0x3202, 0x02DC, 0x0330, 0x0303, 0x0303, 0x0360, - 0x223C, 0x0334, 0x033E, 0x2297, 0x0596, 0x0596, 0x0A70, 0x0483, - 0x057F, 0x1E6F, 0xFF54, 0x0569, 0x3068, 0x30C8, 0xFF84, 0x02E5, - 0x02E9, 0x02E6, 0x02E8, 0x02E7, 0x01BD, 0x0185, 0x01A8, 0x0384, - 0x3327, 0x0E0F, 0x3014, 0xFE5D, 0xFE39, 0x3015, 0xFE5E, 0xFE3A, - 0x0E15, 0x01AB, 0x24AF, 0x2122, 0xF8EA, 0xF6DB, 0x0288, 0x25BC, - 0x25C4, 0x25BA, 0x25B2, 0x02A6, 0x05E6, 0xFB46, 0xFB46, 0x05E6, - 0x0446, 0x05B5, 0x05B5, 0x05B5, 0x05B5, 0x05B5, 0x05B5, 0x05B5, - 0x05B5, 0x045B, 0xF6F3, 0x099F, 0x091F, 0x0A9F, 0x0A1F, 0x0679, - 0xFB67, 0xFB68, 0xFB69, 0x09A0, 0x0920, 0x0AA0, 0x0A20, 0x0287, - 0x3064, 0x30C4, 0xFF82, 0x3063, 0x30C3, 0xFF6F, 0x246B, 0x247F, - 0x2493, 0x217B, 0x2473, 0x5344, 0x2487, 0x249B, 0x0032, 0x0662, - 0x09E8, 0x2461, 0x278B, 0x0968, 0x2025, 0x2025, 0xFE30, 0x0AE8, - 0x0A68, 0x0662, 0x3022, 0x3221, 0x2082, 0xFF12, 0x09F5, 0xF732, - 0x2475, 0x2489, 0x06F2, 0x2171, 0x01BB, 0x00B2, 0x0E52, 0x2154, - 0x0075, 0x00FA, 0x0289, 0x0989, 0x3128, 0x016D, 0x01D4, 0x24E4, - 0x00FB, 0x1E77, 0x0443, 0x0951, 0x0171, 0x0215, 0x0909, 0x00FC, - 0x01D8, 0x1E73, 0x01DA, 0x04F1, 0x01DC, 0x01D6, 0x1EE5, 0x00F9, - 0x0A89, 0x0A09, 0x3046, 0x1EE7, 0x01B0, 0x1EE9, 0x1EF1, 0x1EEB, - 0x1EED, 0x1EEF, 0x0171, 0x04F3, 0x0217, 0x30A6, 0xFF73, 0x0479, - 0x315C, 0x016B, 0x04EF, 0x1E7B, 0x0A41, 0xFF55, 0x005F, 0x2017, - 0xFF3F, 0xFE33, 0xFE4F, 0x222A, 0x2200, 0x0173, 0x24B0, 0x2580, - 0x05C4, 0x03C5, 0x03CB, 0x03B0, 0x028A, 0x03CD, 0x031D, 0x02D4, - 0x0A73, 0x016F, 0x045E, 0x3045, 0x30A5, 0xFF69, 0x04AF, 0x04B1, - 0x0169, 0x1E79, 0x1E75, 0x098A, 0x090A, 0x0A8A, 0x0A0A, 0x0A42, - 0x09C2, 0x0942, 0x0AC2, 0x09C1, 0x0941, 0x0AC1, 0x0076, 0x0935, - 0x0AB5, 0x0A35, 0x30F7, 0x05D5, 0xFB35, 0xFB35, 0xFB35, 0x05D5, - 0xFB4B, 0xFB4B, 0x05F0, 0x05F1, 0x24E5, 0x1E7F, 0x0432, 0x06A4, - 0xFB6B, 0xFB6C, 0xFB6D, 0x30F9, 0x2640, 0x007C, 0x030D, 0x0329, - 0x02CC, 0x02C8, 0x057E, 0x028B, 0x30F8, 0x09CD, 0x094D, 0x0ACD, - 0x0983, 0x0903, 0x0A83, 0xFF56, 0x0578, 0x309E, 0x30FE, 0x309B, - 0xFF9E, 0x30FA, 0x24B1, 0x1E7D, 0x028C, 0x3094, 0x30F4, 0x0077, - 0x1E83, 0x3159, 0x308F, 0x30EF, 0xFF9C, 0x3158, 0x308E, 0x30EE, - 0x3357, 0x301C, 0xFE34, 0x0648, 0xFEEE, 0x0624, 0xFE86, 0x33DD, - 0x24E6, 0x0175, 0x1E85, 0x1E87, 0x1E89, 0x3091, 0x2118, 0x30F1, - 0x315E, 0x315D, 0x1E81, 0x25E6, 0x25CB, 0x25D9, 0x300E, 0xFE43, - 0x300F, 0xFE44, 0x25C7, 0x25C8, 0x25BF, 0x25BD, 0x25C3, 0x25C1, - 0x3016, 0x3017, 0x25B9, 0x25B7, 0x25AB, 0x263A, 0x25A1, 0x2606, - 0x260F, 0x3018, 0x3019, 0x25B5, 0x25B3, 0x3090, 0x30F0, 0x315F, - 0xFF57, 0x3092, 0x30F2, 0xFF66, 0x20A9, 0xFFE6, 0x0E27, 0x24B2, - 0x1E98, 0x02B7, 0x028D, 0x01BF, 0x0078, 0x033D, 0x3112, 0x24E7, - 0x1E8D, 0x1E8B, 0x056D, 0x03BE, 0xFF58, 0x24B3, 0x02E3, 0x0079, - 0x334E, 0x09AF, 0x00FD, 0x092F, 0x3152, 0x0AAF, 0x0A2F, 0x3084, - 0x30E4, 0xFF94, 0x3151, 0x0E4E, 0x3083, 0x30E3, 0xFF6C, 0x0463, - 0x24E8, 0x0177, 0x00FF, 0x1E8F, 0x1EF5, 0x064A, 0x06D2, 0xFBAF, - 0xFEF2, 0x0626, 0xFE8A, 0xFE8B, 0xFE8C, 0xFEF3, 0xFEF4, 0xFCDD, - 0xFC58, 0xFC94, 0x06D1, 0x3156, 0x00A5, 0xFFE5, 0x3155, 0x3186, - 0x05AA, 0x05AA, 0x044B, 0x04F9, 0x3181, 0x3183, 0x3182, 0x059A, - 0x1EF3, 0x01B4, 0x1EF7, 0x0575, 0x0457, 0x3162, 0x262F, 0x0582, - 0xFF59, 0x05D9, 0xFB39, 0xFB39, 0x05D9, 0x05F2, 0xFB1F, 0x3088, - 0x3189, 0x30E8, 0xFF96, 0x315B, 0x3087, 0x30E7, 0xFF6E, 0x03F3, - 0x3188, 0x3187, 0x0E22, 0x0E0D, 0x24B4, 0x037A, 0x0345, 0x01A6, - 0x1E99, 0x02B8, 0x1EF9, 0x028E, 0x3086, 0x318C, 0x30E6, 0xFF95, - 0x3160, 0x046B, 0x046D, 0x0467, 0x0469, 0x3085, 0x30E5, 0xFF6D, - 0x318B, 0x318A, 0x09DF, 0x095F, 0x007A, 0x0566, 0x017A, 0x095B, - 0x0A5B, 0x0638, 0xFEC6, 0xFEC7, 0x3056, 0xFEC8, 0x0632, 0xFEB0, - 0x30B6, 0x0595, 0x0594, 0x0598, 0x05D6, 0xFB36, 0xFB36, 0x05D6, - 0x3117, 0x017E, 0x24E9, 0x1E91, 0x0291, 0x017C, 0x017C, 0x1E93, - 0x0437, 0x0499, 0x04DF, 0x305C, 0x30BC, 0x0030, 0x0660, 0x09E6, - 0x0966, 0x0AE6, 0x0A66, 0x0660, 0x2080, 0xFF10, 0xF730, 0x06F0, - 0x2070, 0x0E50, 0xFEFF, 0x200C, 0x200B, 0x03B6, 0x3113, 0x056A, - 0x04C2, 0x0436, 0x0497, 0x04DD, 0x3058, 0x30B8, 0x05AE, 0x1E95, - 0xFF5A, 0x305E, 0x30BE, 0x24B5, 0x0290, 0x01B6, 0x305A, 0x30BA, -}; +static int glyphcmp(void *a, void *b) { + glyph ga = *(glyph *)a, gb = *(glyph *)b; + return strcmp(glyph_extern(ga), glyph_extern(gb)); +} -wchar_t ps_glyph_to_unicode(char const *glyph) -{ +static int glyphcmp_search(void *a, void *b) { + glyph gb = *(glyph *)b; + return strcmp(a, glyph_extern(gb)); +} + +glyph glyph_intern(char const *glyphname) { int i, j, k, c; + glyph *gp; i = -1; j = lenof(ps_glyphs_alphabetic); while (j-i > 1) { k = (i + j) / 2; - c = strcmp(glyph, ps_glyphs_alphabetic[k]); + c = strcmp(glyphname, ps_glyphs_alphabetic[k]); if (c == 0) - return ps_codes_alphabetic[k]; + return k; else if (c < 0) j = k; else i = k; } + /* Non-standard glyph. We may need to add it to our tree. */ + if (extrabyname == NULL) + extrabyname = newtree234(glyphcmp); + gp = find234(extrabyname, (void *)glyphname, glyphcmp_search); + if (gp) { + k = *gp; + } else { + extraglyphs = sresize(extraglyphs, nextglyph, char const *); + k = nextglyph++; + extraglyphs[k - lenof(ps_glyphs_alphabetic)] = dupstr(glyphname); + gp = snew(glyph); + *gp = k; + add234(extrabyname, gp); + } + return k; +} - return 0xFFFF; /* illegal value means not found */ +/* ---------------------------------------------------------------------- + * Mapping between PS character names (/aacute, /zcaron etc) and + * Unicode code points. + * + * Generated from the Adobe Glyph List at + * + * http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt + * + * by another Perl/sh fragment. + +grep '^[^#;][^;]*;[^ ][^ ][^ ][^ ]$' glyphlist.txt | sort -t\; -k1,1 | \ + cut -f2 -d\; | perl -ne 'chomp; print "0x$_, "' | \ + fold -s -w68 | sed 's/^/ /'; echo + + */ +static const unsigned short ps_codes_alphabetic[] = { + 0xFFFF, 0xFFFF, 0x0041, 0x00C6, 0x01FC, 0x01E2, 0xF7E6, 0x00C1, + 0xF7E1, 0x0102, 0x1EAE, 0x04D0, 0x1EB6, 0x1EB0, 0x1EB2, 0x1EB4, + 0x01CD, 0x24B6, 0x00C2, 0x1EA4, 0x1EAC, 0x1EA6, 0x1EA8, 0xF7E2, + 0x1EAA, 0xF6C9, 0xF7B4, 0x0410, 0x0200, 0x00C4, 0x04D2, 0x01DE, + 0xF7E4, 0x1EA0, 0x01E0, 0x00C0, 0xF7E0, 0x1EA2, 0x04D4, 0x0202, + 0x0391, 0x0386, 0x0100, 0xFF21, 0x0104, 0x00C5, 0x01FA, 0x1E00, + 0xF7E5, 0xF761, 0x00C3, 0xF7E3, 0x0531, 0x0042, 0x24B7, 0x1E02, + 0x1E04, 0x0411, 0x0532, 0x0392, 0x0181, 0x1E06, 0xFF22, 0xF6F4, + 0xF762, 0x0182, 0x0043, 0x053E, 0x0106, 0xF6CA, 0xF6F5, 0x010C, + 0x00C7, 0x1E08, 0xF7E7, 0x24B8, 0x0108, 0x010A, 0x010A, 0xF7B8, + 0x0549, 0x04BC, 0x0427, 0x04BE, 0x04B6, 0x04F4, 0x0543, 0x04CB, + 0x04B8, 0x03A7, 0x0187, 0xF6F6, 0xFF23, 0x0551, 0xF763, 0x0044, + 0x01F1, 0x01C4, 0x0534, 0x0189, 0x010E, 0x1E10, 0x24B9, 0x1E12, + 0x0110, 0x1E0A, 0x1E0C, 0x0414, 0x03EE, 0x2206, 0x0394, 0x018A, + 0xF6CB, 0xF6CC, 0xF6CD, 0xF7A8, 0x03DC, 0x0402, 0x1E0E, 0xFF24, + 0xF6F7, 0x0110, 0xF764, 0x018B, 0x01F2, 0x01C5, 0x04E0, 0x0405, + 0x040F, 0x0045, 0x00C9, 0xF7E9, 0x0114, 0x011A, 0x1E1C, 0x0535, + 0x24BA, 0x00CA, 0x1EBE, 0x1E18, 0x1EC6, 0x1EC0, 0x1EC2, 0xF7EA, + 0x1EC4, 0x0404, 0x0204, 0x00CB, 0xF7EB, 0x0116, 0x0116, 0x1EB8, + 0x0424, 0x00C8, 0xF7E8, 0x0537, 0x1EBA, 0x2167, 0x0206, 0x0464, + 0x041B, 0x216A, 0x0112, 0x1E16, 0x1E14, 0x041C, 0xFF25, 0x041D, + 0x04A2, 0x014A, 0x04A4, 0x04C7, 0x0118, 0x0190, 0x0395, 0x0388, + 0x0420, 0x018E, 0x042D, 0x0421, 0x04AA, 0x01A9, 0xF765, 0x0397, + 0x0538, 0x0389, 0x00D0, 0xF7F0, 0x1EBC, 0x1E1A, 0x20AC, 0x01B7, + 0x01EE, 0x01B8, 0x0046, 0x24BB, 0x1E1E, 0x0556, 0x03E4, 0x0191, + 0x0472, 0x2164, 0xFF26, 0x2163, 0xF766, 0x0047, 0x3387, 0x01F4, + 0x0393, 0x0194, 0x03EA, 0x011E, 0x01E6, 0x0122, 0x24BC, 0x011C, + 0x0122, 0x0120, 0x0120, 0x0413, 0x0542, 0x0494, 0x0492, 0x0490, + 0x0193, 0x0533, 0x0403, 0x1E20, 0xFF27, 0xF6CE, 0xF760, 0xF767, + 0x029B, 0x01E4, 0x0048, 0x25CF, 0x25AA, 0x25AB, 0x25A1, 0x33CB, + 0x04A8, 0x04B2, 0x042A, 0x0126, 0x1E2A, 0x1E28, 0x24BD, 0x0124, + 0x1E26, 0x1E22, 0x1E24, 0xFF28, 0x0540, 0x03E8, 0xF768, 0xF6CF, + 0xF6F8, 0x3390, 0x0049, 0x042F, 0x0132, 0x042E, 0x00CD, 0xF7ED, + 0x012C, 0x01CF, 0x24BE, 0x00CE, 0xF7EE, 0x0406, 0x0208, 0x00CF, + 0x1E2E, 0x04E4, 0xF7EF, 0x0130, 0x0130, 0x1ECA, 0x04D6, 0x0415, + 0x2111, 0x00CC, 0xF7EC, 0x1EC8, 0x0418, 0x020A, 0x0419, 0x012A, + 0x04E2, 0xFF29, 0x053B, 0x0401, 0x012E, 0x0399, 0x0196, 0x03AA, + 0x038A, 0xF769, 0x0197, 0x0128, 0x1E2C, 0x0474, 0x0476, 0x004A, + 0x0541, 0x24BF, 0x0134, 0x0408, 0x054B, 0xFF2A, 0xF76A, 0x004B, + 0x3385, 0x33CD, 0x04A0, 0x1E30, 0x041A, 0x049A, 0x04C3, 0x039A, + 0x049E, 0x049C, 0x01E8, 0x0136, 0x24C0, 0x0136, 0x1E32, 0x0554, + 0x053F, 0x0425, 0x03E6, 0x0198, 0x040C, 0x1E34, 0xFF2B, 0x0480, + 0x03DE, 0x046E, 0xF76B, 0x004C, 0x01C7, 0xF6BF, 0x0139, 0x039B, + 0x013D, 0x013B, 0x24C1, 0x1E3C, 0x013B, 0x013F, 0x013F, 0x1E36, + 0x1E38, 0x053C, 0x01C8, 0x0409, 0x1E3A, 0xFF2C, 0x0141, 0xF6F9, + 0xF76C, 0x004D, 0x3386, 0xF6D0, 0xF7AF, 0x1E3E, 0x24C2, 0x1E40, + 0x1E42, 0x0544, 0xFF2D, 0xF76D, 0x019C, 0x039C, 0x004E, 0x01CA, + 0x0143, 0x0147, 0x0145, 0x24C3, 0x1E4A, 0x0145, 0x1E44, 0x1E46, + 0x019D, 0x2168, 0x01CB, 0x040A, 0x1E48, 0xFF2E, 0x0546, 0xF76E, + 0x00D1, 0xF7F1, 0x039D, 0x004F, 0x0152, 0xF6FA, 0x00D3, 0xF7F3, + 0x04E8, 0x04EA, 0x014E, 0x01D1, 0x019F, 0x24C4, 0x00D4, 0x1ED0, + 0x1ED8, 0x1ED2, 0x1ED4, 0xF7F4, 0x1ED6, 0x041E, 0x0150, 0x020C, + 0x00D6, 0x04E6, 0xF7F6, 0x1ECC, 0xF6FB, 0x00D2, 0xF7F2, 0x0555, + 0x2126, 0x1ECE, 0x01A0, 0x1EDA, 0x1EE2, 0x1EDC, 0x1EDE, 0x1EE0, + 0x0150, 0x01A2, 0x020E, 0x014C, 0x1E52, 0x1E50, 0x2126, 0x0460, + 0x03A9, 0x047A, 0x047C, 0x038F, 0x039F, 0x038C, 0xFF2F, 0x2160, + 0x01EA, 0x01EC, 0x0186, 0x00D8, 0x01FE, 0xF7F8, 0xF76F, 0x01FE, + 0x047E, 0x00D5, 0x1E4C, 0x1E4E, 0xF7F5, 0x0050, 0x1E54, 0x24C5, + 0x1E56, 0x041F, 0x054A, 0x04A6, 0x03A6, 0x01A4, 0x03A0, 0x0553, + 0xFF30, 0x03A8, 0x0470, 0xF770, 0x0051, 0x24C6, 0xFF31, 0xF771, + 0x0052, 0x054C, 0x0154, 0x0158, 0x0156, 0x24C7, 0x0156, 0x0210, + 0x1E58, 0x1E5A, 0x1E5C, 0x0550, 0x211C, 0x03A1, 0xF6FC, 0x0212, + 0x1E5E, 0xFF32, 0xF772, 0x0281, 0x02B6, 0x0053, 0x250C, 0x2514, + 0x2510, 0x2518, 0x253C, 0x252C, 0x2534, 0x251C, 0x2524, 0x2500, + 0x2502, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, + 0x255D, 0x255C, 0x255B, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, + 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, 0x2565, + 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x015A, 0x1E64, + 0x03E0, 0x0160, 0x1E66, 0xF6FD, 0x015E, 0x018F, 0x04D8, 0x04DA, + 0x24C8, 0x015C, 0x0218, 0x1E60, 0x1E62, 0x1E68, 0x054D, 0x2166, + 0x0547, 0x0428, 0x0429, 0x03E2, 0x04BA, 0x03EC, 0x03A3, 0x2165, + 0xFF33, 0x042C, 0xF773, 0x03DA, 0x0054, 0x03A4, 0x0166, 0x0164, + 0x0162, 0x24C9, 0x1E70, 0x0162, 0x1E6A, 0x1E6C, 0x0422, 0x04AC, + 0x2169, 0x04B4, 0x0398, 0x01AC, 0x00DE, 0xF7FE, 0x2162, 0xF6FE, + 0x054F, 0x1E6E, 0xFF34, 0x0539, 0x01BC, 0x0184, 0x01A7, 0x01AE, + 0x0426, 0x040B, 0xF774, 0x216B, 0x2161, 0x0055, 0x00DA, 0xF7FA, + 0x016C, 0x01D3, 0x24CA, 0x00DB, 0x1E76, 0xF7FB, 0x0423, 0x0170, + 0x0214, 0x00DC, 0x01D7, 0x1E72, 0x01D9, 0x04F0, 0x01DB, 0x01D5, + 0xF7FC, 0x1EE4, 0x00D9, 0xF7F9, 0x1EE6, 0x01AF, 0x1EE8, 0x1EF0, + 0x1EEA, 0x1EEC, 0x1EEE, 0x0170, 0x04F2, 0x0216, 0x0478, 0x016A, + 0x04EE, 0x1E7A, 0xFF35, 0x0172, 0x03A5, 0x03D2, 0x03D3, 0x01B1, + 0x03AB, 0x03D4, 0x03D2, 0x038E, 0x016E, 0x040E, 0xF775, 0x04AE, + 0x04B0, 0x0168, 0x1E78, 0x1E74, 0x0056, 0x24CB, 0x1E7E, 0x0412, + 0x054E, 0x01B2, 0xFF36, 0x0548, 0xF776, 0x1E7C, 0x0057, 0x1E82, + 0x24CC, 0x0174, 0x1E84, 0x1E86, 0x1E88, 0x1E80, 0xFF37, 0xF777, + 0x0058, 0x24CD, 0x1E8C, 0x1E8A, 0x053D, 0x039E, 0xFF38, 0xF778, + 0x0059, 0x00DD, 0xF7FD, 0x0462, 0x24CE, 0x0176, 0x0178, 0xF7FF, + 0x1E8E, 0x1EF4, 0x042B, 0x04F8, 0x1EF2, 0x01B3, 0x1EF6, 0x0545, + 0x0407, 0x0552, 0xFF39, 0xF779, 0x1EF8, 0x046A, 0x046C, 0x0466, + 0x0468, 0x005A, 0x0536, 0x0179, 0x017D, 0xF6FF, 0x24CF, 0x1E90, + 0x017B, 0x017B, 0x1E92, 0x0417, 0x0498, 0x04DE, 0x0396, 0x053A, + 0x04C1, 0x0416, 0x0496, 0x04DC, 0x1E94, 0xFF3A, 0xF77A, 0x01B5, + 0x0061, 0x0986, 0x00E1, 0x0906, 0x0A86, 0x0A06, 0x0A3E, 0x3303, + 0x09BE, 0x093E, 0x0ABE, 0x055F, 0x0970, 0x0985, 0x311A, 0x0103, + 0x1EAF, 0x04D1, 0x1EB7, 0x1EB1, 0x1EB3, 0x1EB5, 0x01CE, 0x24D0, + 0x00E2, 0x1EA5, 0x1EAD, 0x1EA7, 0x1EA9, 0x1EAB, 0x00B4, 0x0317, + 0x0301, 0x0301, 0x0954, 0x02CF, 0x0341, 0x0430, 0x0201, 0x0A71, + 0x0905, 0x00E4, 0x04D3, 0x01DF, 0x1EA1, 0x01E1, 0x00E6, 0x01FD, + 0x3150, 0x01E3, 0x2015, 0x20A4, 0x0410, 0x0411, 0x0412, 0x0413, + 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, + 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, + 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, + 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0490, 0x0402, 0x0403, + 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040A, 0x040B, + 0x040C, 0x040E, 0xF6C4, 0xF6C5, 0x0430, 0x0431, 0x0432, 0x0433, + 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, + 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, 0x0440, 0x0441, 0x0442, + 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, + 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x0491, 0x0452, 0x0453, + 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045A, 0x045B, + 0x045C, 0x045E, 0x040F, 0x0462, 0x0472, 0x0474, 0xF6C6, 0x045F, + 0x0463, 0x0473, 0x0475, 0xF6C7, 0xF6C8, 0x04D9, 0x200E, 0x200F, + 0x200D, 0x066A, 0x060C, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, + 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0x061B, 0x061F, 0x0621, + 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, + 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631, + 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, + 0x063A, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, + 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F, + 0x0650, 0x0651, 0x0652, 0x0647, 0x06A4, 0x067E, 0x0686, 0x0698, + 0x06AF, 0x0679, 0x0688, 0x0691, 0x06BA, 0x06D2, 0x06D5, 0x20AA, + 0x05BE, 0x05C3, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, + 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, + 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, + 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0xFB2A, 0xFB2B, 0xFB4B, + 0xFB1F, 0x05F0, 0x05F1, 0x05F2, 0xFB35, 0x05B4, 0x05B5, 0x05B6, + 0x05BB, 0x05B8, 0x05B7, 0x05B0, 0x05B2, 0x05B1, 0x05B3, 0x05C2, + 0x05C1, 0x05B9, 0x05BC, 0x05BD, 0x05BF, 0x05C0, 0x02BC, 0x2105, + 0x2113, 0x2116, 0x202C, 0x202D, 0x202E, 0x200C, 0x066D, 0x02BD, + 0x00E0, 0x0A85, 0x0A05, 0x3042, 0x1EA3, 0x0990, 0x311E, 0x0910, + 0x04D5, 0x0A90, 0x0A10, 0x0A48, 0x0639, 0xFECA, 0xFECB, 0xFECC, + 0x0203, 0x09C8, 0x0948, 0x0AC8, 0x30A2, 0xFF71, 0x314F, 0x05D0, + 0x0627, 0xFB30, 0xFE8E, 0x0623, 0xFE84, 0x0625, 0xFE88, 0x05D0, + 0xFB4F, 0x0622, 0xFE82, 0x0649, 0xFEF0, 0xFEF3, 0xFEF4, 0xFB2E, + 0xFB2F, 0x2135, 0x224C, 0x03B1, 0x03AC, 0x0101, 0xFF41, 0x0026, + 0xFF06, 0xF726, 0x33C2, 0x3122, 0x3124, 0x0E5A, 0x2220, 0x3008, + 0xFE3F, 0x3009, 0xFE40, 0x2329, 0x232A, 0x212B, 0x0387, 0x0952, + 0x0982, 0x0902, 0x0A82, 0x0105, 0x3300, 0x249C, 0x055A, 0x02BC, + 0xF8FF, 0x2250, 0x2248, 0x2252, 0x2245, 0x318E, 0x318D, 0x2312, + 0x1E9A, 0x00E5, 0x01FB, 0x1E01, 0x2194, 0x21E3, 0x21E0, 0x21E2, + 0x21E1, 0x21D4, 0x21D3, 0x21D0, 0x21D2, 0x21D1, 0x2193, 0x2199, + 0x2198, 0x21E9, 0x02C5, 0x02C2, 0x02C3, 0x02C4, 0xF8E7, 0x2190, + 0x21D0, 0x21CD, 0x21C6, 0x21E6, 0x2192, 0x21CF, 0x279E, 0x21C4, + 0x21E8, 0x21E4, 0x21E5, 0x2191, 0x2195, 0x21A8, 0x21A8, 0x2196, + 0x21C5, 0x2197, 0x21E7, 0xF8E6, 0x005E, 0xFF3E, 0x007E, 0xFF5E, + 0x0251, 0x0252, 0x3041, 0x30A1, 0xFF67, 0x002A, 0x066D, 0x066D, + 0x2217, 0xFF0A, 0xFE61, 0x2042, 0xF6E9, 0x2243, 0x0040, 0x00E3, + 0xFF20, 0xFE6B, 0x0250, 0x0994, 0x3120, 0x0914, 0x0A94, 0x0A14, + 0x09D7, 0x0A4C, 0x09CC, 0x094C, 0x0ACC, 0x093D, 0x0561, 0x05E2, + 0xFB20, 0x05E2, 0x0062, 0x09AC, 0x005C, 0xFF3C, 0x092C, 0x0AAC, + 0x0A2C, 0x3070, 0x0E3F, 0x30D0, 0x007C, 0xFF5C, 0x3105, 0x24D1, + 0x1E03, 0x1E05, 0x266C, 0x2235, 0x0431, 0x0628, 0xFE90, 0xFE91, + 0x3079, 0xFE92, 0xFC9F, 0xFC08, 0xFC6D, 0x30D9, 0x0562, 0x05D1, + 0x03B2, 0x03D0, 0xFB31, 0xFB31, 0x05D1, 0xFB4C, 0x09AD, 0x092D, + 0x0AAD, 0x0A2D, 0x0253, 0x3073, 0x30D3, 0x0298, 0x0A02, 0x3331, + 0x25CF, 0x25C6, 0x25BC, 0x25C4, 0x25C0, 0x3010, 0xFE3B, 0x3011, + 0xFE3C, 0x25E3, 0x25E2, 0x25AC, 0x25BA, 0x25B6, 0x25AA, 0x263B, + 0x25A0, 0x2605, 0x25E4, 0x25E5, 0x25B4, 0x25B2, 0x2423, 0x1E07, + 0x2588, 0xFF42, 0x0E1A, 0x307C, 0x30DC, 0x249D, 0x33C3, 0xF8F4, + 0x007B, 0xF8F3, 0xF8F2, 0xFF5B, 0xFE5B, 0xF8F1, 0xFE37, 0x007D, + 0xF8FE, 0xF8FD, 0xFF5D, 0xFE5C, 0xF8FC, 0xFE38, 0x005B, 0xF8F0, + 0xF8EF, 0xFF3B, 0xF8EE, 0x005D, 0xF8FB, 0xF8FA, 0xFF3D, 0xF8F9, + 0x02D8, 0x032E, 0x0306, 0x032F, 0x0311, 0x0361, 0x032A, 0x033A, + 0x00A6, 0x0180, 0xF6EA, 0x0183, 0x3076, 0x30D6, 0x2022, 0x25D8, + 0x2219, 0x25CE, 0x0063, 0x056E, 0x099A, 0x0107, 0x091A, 0x0A9A, + 0x0A1A, 0x3388, 0x0981, 0x0310, 0x0901, 0x0A81, 0x21EA, 0x2105, + 0x02C7, 0x032C, 0x030C, 0x21B5, 0x3118, 0x010D, 0x00E7, 0x1E09, + 0x24D2, 0x0109, 0x0255, 0x010B, 0x010B, 0x33C5, 0x00B8, 0x0327, + 0x00A2, 0x2103, 0xF6DF, 0xFFE0, 0xF7A2, 0xF6E0, 0x0579, 0x099B, + 0x091B, 0x0A9B, 0x0A1B, 0x3114, 0x04BD, 0x2713, 0x0447, 0x04BF, + 0x04B7, 0x04F5, 0x0573, 0x04CC, 0x04B9, 0x03C7, 0x3277, 0x3217, + 0x3269, 0x314A, 0x3209, 0x0E0A, 0x0E08, 0x0E09, 0x0E0C, 0x0188, + 0x3276, 0x3216, 0x3268, 0x3148, 0x3208, 0x321C, 0x25CB, 0x2297, + 0x2299, 0x2295, 0x3036, 0x25D0, 0x25D1, 0x02C6, 0x032D, 0x0302, + 0x2327, 0x01C2, 0x01C0, 0x01C1, 0x01C3, 0x2663, 0x2663, 0x2667, + 0x33A4, 0xFF43, 0x33A0, 0x0581, 0x003A, 0x20A1, 0xFF1A, 0x20A1, + 0xFE55, 0x02D1, 0x02D0, 0x002C, 0x0313, 0x0315, 0xF6C3, 0x060C, + 0x055D, 0xF6E1, 0xFF0C, 0x0314, 0x02BD, 0xFE50, 0xF6E2, 0x0312, + 0x02BB, 0x263C, 0x2245, 0x222E, 0x2303, 0x0006, 0x0007, 0x0008, + 0x0018, 0x000D, 0x0011, 0x0012, 0x0013, 0x0014, 0x007F, 0x0010, + 0x0019, 0x0005, 0x0004, 0x001B, 0x0017, 0x0003, 0x000C, 0x001C, + 0x001D, 0x0009, 0x000A, 0x0015, 0x001E, 0x000F, 0x000E, 0x0002, + 0x0001, 0x001A, 0x0016, 0x001F, 0x000B, 0x00A9, 0xF8E9, 0xF6D9, + 0x300C, 0xFF62, 0xFE41, 0x300D, 0xFF63, 0xFE42, 0x337F, 0x33C7, + 0x33C6, 0x249E, 0x20A2, 0x0297, 0x22CF, 0x22CE, 0x00A4, 0xF6D1, + 0xF6D2, 0xF6D4, 0xF6D5, 0x0064, 0x0564, 0x09A6, 0x0636, 0x0926, + 0xFEBE, 0xFEBF, 0xFEC0, 0x05BC, 0x05BC, 0x2020, 0x2021, 0x0AA6, + 0x0A26, 0x3060, 0x30C0, 0x062F, 0x05D3, 0xFB33, 0xFB33, 0x05D3, + 0xFEAA, 0x064F, 0x064F, 0x064C, 0x064C, 0x0964, 0x05A7, 0x05A7, + 0x0485, 0xF6D3, 0x300A, 0xFE3D, 0x300B, 0xFE3E, 0x032B, 0x21D4, + 0x21D2, 0x0965, 0xF6D6, 0x030F, 0x222C, 0x2017, 0x0333, 0x033F, + 0x02BA, 0x2016, 0x030E, 0x3109, 0x33C8, 0x010F, 0x1E11, 0x24D3, + 0x1E13, 0x0111, 0x09A1, 0x0921, 0x0AA1, 0x0A21, 0x0688, 0xFB89, + 0x095C, 0x09A2, 0x0922, 0x0AA2, 0x0A22, 0x1E0B, 0x1E0D, 0x066B, + 0x066B, 0x0434, 0x00B0, 0x05AD, 0x3067, 0x03EF, 0x30C7, 0x232B, + 0x2326, 0x03B4, 0x018D, 0x09F8, 0x02A4, 0x09A7, 0x0927, 0x0AA7, + 0x0A27, 0x0257, 0x0385, 0x0344, 0x2666, 0x2662, 0x00A8, 0xF6D7, + 0x0324, 0x0308, 0xF6D8, 0x0385, 0x3062, 0x30C2, 0x3003, 0x00F7, + 0x2223, 0x2215, 0x0452, 0x2593, 0x1E0F, 0x3397, 0x0111, 0xFF44, + 0x2584, 0x0E0E, 0x0E14, 0x3069, 0x30C9, 0x0024, 0xF6E3, 0xFF04, + 0xF724, 0xFE69, 0xF6E4, 0x20AB, 0x3326, 0x02D9, 0x0307, 0x0323, + 0x0323, 0x30FB, 0x0131, 0xF6BE, 0x0284, 0x22C5, 0x25CC, 0xFB1F, + 0xFB1F, 0x031E, 0x02D5, 0x249F, 0xF6EB, 0x0256, 0x018C, 0x3065, + 0x30C5, 0x01F3, 0x02A3, 0x01C6, 0x02A5, 0x04E1, 0x0455, 0x045F, + 0x0065, 0x00E9, 0x2641, 0x098F, 0x311C, 0x0115, 0x090D, 0x0A8D, + 0x0945, 0x0AC5, 0x011B, 0x1E1D, 0x0565, 0x0587, 0x24D4, 0x00EA, + 0x1EBF, 0x1E19, 0x1EC7, 0x1EC1, 0x1EC3, 0x1EC5, 0x0454, 0x0205, + 0x090F, 0x00EB, 0x0117, 0x0117, 0x1EB9, 0x0A0F, 0x0A47, 0x0444, + 0x00E8, 0x0A8F, 0x0567, 0x311D, 0x3048, 0x1EBB, 0x311F, 0x0038, + 0x0668, 0x09EE, 0x2467, 0x2791, 0x096E, 0x2471, 0x2485, 0x2499, + 0x0AEE, 0x0A6E, 0x0668, 0x3028, 0x266B, 0x3227, 0x2088, 0xFF18, + 0xF738, 0x247B, 0x248F, 0x06F8, 0x2177, 0x2078, 0x0E58, 0x0207, + 0x0465, 0x30A8, 0xFF74, 0x0A74, 0x3154, 0x043B, 0x2208, 0x246A, + 0x247E, 0x2492, 0x217A, 0x2026, 0x22EE, 0x0113, 0x1E17, 0x1E15, + 0x043C, 0x2014, 0xFE31, 0xFF45, 0x055B, 0x2205, 0x3123, 0x043D, + 0x2013, 0xFE32, 0x04A3, 0x014B, 0x3125, 0x04A5, 0x04C8, 0x2002, + 0x0119, 0x3153, 0x025B, 0x029A, 0x025C, 0x025E, 0x025D, 0x24A0, + 0x03B5, 0x03AD, 0x003D, 0xFF1D, 0xFE66, 0x207C, 0x2261, 0x3126, + 0x0440, 0x0258, 0x044D, 0x0441, 0x04AB, 0x0283, 0x0286, 0x090E, + 0x0946, 0x01AA, 0x0285, 0x3047, 0x30A7, 0xFF6A, 0x212E, 0xF6EC, + 0x03B7, 0x0568, 0x03AE, 0x00F0, 0x1EBD, 0x1E1B, 0x0591, 0x0591, + 0x0591, 0x0591, 0x01DD, 0x3161, 0x20AC, 0x09C7, 0x0947, 0x0AC7, + 0x0021, 0x055C, 0x203C, 0x00A1, 0xF7A1, 0xFF01, 0xF721, 0x2203, + 0x0292, 0x01EF, 0x0293, 0x01B9, 0x01BA, 0x0066, 0x095E, 0x0A5E, + 0x2109, 0x064E, 0x064E, 0x064B, 0x3108, 0x24D5, 0x1E1F, 0x0641, + 0x0586, 0xFED2, 0xFED3, 0xFED4, 0x03E5, 0x2640, 0xFB00, 0xFB03, + 0xFB04, 0xFB01, 0x246E, 0x2482, 0x2496, 0x2012, 0x25A0, 0x25AC, + 0x05DA, 0xFB3A, 0xFB3A, 0x05DA, 0x05DD, 0x05DD, 0x05DF, 0x05DF, + 0x05E3, 0x05E3, 0x05E5, 0x05E5, 0x02C9, 0x25C9, 0x0473, 0x0035, + 0x0665, 0x09EB, 0x2464, 0x278E, 0x096B, 0x215D, 0x0AEB, 0x0A6B, + 0x0665, 0x3025, 0x3224, 0x2085, 0xFF15, 0xF735, 0x2478, 0x248C, + 0x06F5, 0x2174, 0x2075, 0x0E55, 0xFB02, 0x0192, 0xFF46, 0x3399, + 0x0E1F, 0x0E1D, 0x0E4F, 0x2200, 0x0034, 0x0664, 0x09EA, 0x2463, + 0x278D, 0x096A, 0x0AEA, 0x0A6A, 0x0664, 0x3024, 0x3223, 0x2084, + 0xFF14, 0x09F7, 0xF734, 0x2477, 0x248B, 0x06F4, 0x2173, 0x2074, + 0x246D, 0x2481, 0x2495, 0x0E54, 0x02CB, 0x24A1, 0x2044, 0x20A3, + 0x0067, 0x0997, 0x01F5, 0x0917, 0x06AF, 0xFB93, 0xFB94, 0xFB95, + 0x0A97, 0x0A17, 0x304C, 0x30AC, 0x03B3, 0x0263, 0x02E0, 0x03EB, + 0x310D, 0x011F, 0x01E7, 0x0123, 0x24D6, 0x011D, 0x0123, 0x0121, + 0x0121, 0x0433, 0x3052, 0x30B2, 0x2251, 0x059C, 0x05F3, 0x059D, + 0x00DF, 0x059E, 0x05F4, 0x3013, 0x0998, 0x0572, 0x0918, 0x0A98, + 0x0A18, 0x063A, 0xFECE, 0xFECF, 0xFED0, 0x0495, 0x0493, 0x0491, + 0x095A, 0x0A5A, 0x0260, 0x3393, 0x304E, 0x30AE, 0x0563, 0x05D2, + 0xFB32, 0xFB32, 0x05D2, 0x0453, 0x01BE, 0x0294, 0x0296, 0x02C0, + 0x0295, 0x02C1, 0x02E4, 0x02A1, 0x02A2, 0x1E21, 0xFF47, 0x3054, + 0x30B4, 0x24A2, 0x33AC, 0x2207, 0x0060, 0x0316, 0x0300, 0x0300, + 0x0953, 0x02CE, 0xFF40, 0x0340, 0x003E, 0x2265, 0x22DB, 0xFF1E, + 0x2273, 0x2277, 0x2267, 0xFE65, 0x0261, 0x01E5, 0x3050, 0x00AB, + 0x00BB, 0x2039, 0x203A, 0x30B0, 0x3318, 0x33C9, 0x0068, 0x04A9, + 0x06C1, 0x09B9, 0x04B3, 0x0939, 0x0AB9, 0x0A39, 0x062D, 0xFEA2, + 0xFEA3, 0x306F, 0xFEA4, 0x332A, 0x30CF, 0xFF8A, 0x0A4D, 0x0621, + 0x0621, 0x3164, 0x044A, 0x21BC, 0x21C0, 0x33CA, 0x05B2, 0x05B2, + 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x05B2, 0x05B3, 0x05B3, + 0x05B3, 0x05B3, 0x05B3, 0x05B3, 0x05B3, 0x05B3, 0x05B1, 0x05B1, + 0x05B1, 0x05B1, 0x05B1, 0x05B1, 0x05B1, 0x05B1, 0x0127, 0x310F, + 0x1E2B, 0x1E29, 0x24D7, 0x0125, 0x1E27, 0x1E23, 0x1E25, 0x05D4, + 0x2665, 0x2665, 0x2661, 0xFB34, 0xFB34, 0x06C1, 0x0647, 0x05D4, + 0xFBA7, 0xFEEA, 0xFEEA, 0xFBA5, 0xFBA4, 0xFBA8, 0xFEEB, 0x3078, + 0xFBA9, 0xFEEC, 0x337B, 0x30D8, 0xFF8D, 0x3336, 0x0267, 0x3339, + 0x05D7, 0x05D7, 0x0266, 0x02B1, 0x327B, 0x321B, 0x326D, 0x314E, + 0x320D, 0x3072, 0x30D2, 0xFF8B, 0x05B4, 0x05B4, 0x05B4, 0x05B4, + 0x05B4, 0x05B4, 0x05B4, 0x05B4, 0x1E96, 0xFF48, 0x0570, 0x0E2B, + 0x307B, 0x30DB, 0xFF8E, 0x05B9, 0x05B9, 0x05B9, 0x05B9, 0x05B9, + 0x05B9, 0x05B9, 0x05B9, 0x0E2E, 0x0309, 0x0309, 0x0321, 0x0322, + 0x3342, 0x03E9, 0x2015, 0x031B, 0x2668, 0x2302, 0x24A3, 0x02B0, + 0x0265, 0x3075, 0x3333, 0x30D5, 0xFF8C, 0x02DD, 0x030B, 0x0195, + 0x002D, 0xF6E5, 0xFF0D, 0xFE63, 0xF6E6, 0x2010, 0x0069, 0x00ED, + 0x044F, 0x0987, 0x3127, 0x012D, 0x01D0, 0x24D8, 0x00EE, 0x0456, + 0x0209, 0x328F, 0x328B, 0x323F, 0x323A, 0x32A5, 0x3006, 0x3001, + 0xFF64, 0x3237, 0x32A3, 0x322F, 0x323D, 0x329D, 0x3240, 0x3296, + 0x3236, 0x322B, 0x3232, 0x32A4, 0x3005, 0x3298, 0x3238, 0x32A7, + 0x32A6, 0x32A9, 0x322E, 0x322A, 0x3234, 0x3002, 0x329E, 0x3243, + 0x3239, 0x323E, 0x32A8, 0x3299, 0x3242, 0x3233, 0x3000, 0x3235, + 0x3231, 0x323B, 0x3230, 0x323C, 0x322C, 0x322D, 0x3007, 0x328E, + 0x328A, 0x3294, 0x3290, 0x328C, 0x328D, 0x0907, 0x00EF, 0x1E2F, + 0x04E5, 0x1ECB, 0x04D7, 0x0435, 0x3275, 0x3215, 0x3267, 0x3147, + 0x3207, 0x00EC, 0x0A87, 0x0A07, 0x3044, 0x1EC9, 0x0988, 0x0438, + 0x0908, 0x0A88, 0x0A08, 0x0A40, 0x020B, 0x0439, 0x09C0, 0x0940, + 0x0AC0, 0x0133, 0x30A4, 0xFF72, 0x3163, 0x02DC, 0x05AC, 0x012B, + 0x04E3, 0x2253, 0x0A3F, 0xFF49, 0x2206, 0x221E, 0x056B, 0x222B, + 0x2321, 0x2321, 0xF8F5, 0x2320, 0x2320, 0x2229, 0x3305, 0x25D8, + 0x25D9, 0x263B, 0x0451, 0x012F, 0x03B9, 0x03CA, 0x0390, 0x0269, + 0x03AF, 0x24A4, 0x0A72, 0x3043, 0x30A3, 0xFF68, 0x09FA, 0x0268, + 0xF6ED, 0x309D, 0x30FD, 0x0129, 0x1E2D, 0x3129, 0x044E, 0x09BF, + 0x093F, 0x0ABF, 0x0475, 0x0477, 0x006A, 0x0571, 0x099C, 0x091C, + 0x0A9C, 0x0A1C, 0x3110, 0x01F0, 0x24D9, 0x0135, 0x029D, 0x025F, + 0x0458, 0x062C, 0xFE9E, 0xFE9F, 0xFEA0, 0x0698, 0xFB8B, 0x099D, + 0x091D, 0x0A9D, 0x0A1D, 0x057B, 0x3004, 0xFF4A, 0x24A5, 0x02B2, + 0x006B, 0x04A1, 0x0995, 0x1E31, 0x043A, 0x049B, 0x0915, 0x05DB, + 0x0643, 0xFB3B, 0xFB3B, 0xFEDA, 0x05DB, 0xFEDB, 0xFEDC, 0xFB4D, + 0x0A95, 0x0A15, 0x304B, 0x04C4, 0x30AB, 0xFF76, 0x03BA, 0x03F0, + 0x3171, 0x3184, 0x3178, 0x3179, 0x330D, 0x0640, 0x0640, 0x30F5, + 0x3384, 0x0650, 0x064D, 0x049F, 0xFF70, 0x049D, 0x310E, 0x3389, + 0x01E9, 0x0137, 0x24DA, 0x0137, 0x1E33, 0x0584, 0x3051, 0x30B1, + 0xFF79, 0x056F, 0x30F6, 0x0138, 0x0996, 0x0445, 0x0916, 0x0A96, + 0x0A16, 0x062E, 0xFEA6, 0xFEA7, 0xFEA8, 0x03E7, 0x0959, 0x0A59, + 0x3278, 0x3218, 0x326A, 0x314B, 0x320A, 0x0E02, 0x0E05, 0x0E03, + 0x0E04, 0x0E5B, 0x0199, 0x0E06, 0x3391, 0x304D, 0x30AD, 0xFF77, + 0x3315, 0x3316, 0x3314, 0x326E, 0x320E, 0x3260, 0x3131, 0x3200, + 0x3133, 0x045C, 0x1E35, 0x3398, 0x33A6, 0xFF4B, 0x33A2, 0x3053, + 0x33C0, 0x0E01, 0x30B3, 0xFF7A, 0x331E, 0x0481, 0x327F, 0x0343, + 0x24A6, 0x33AA, 0x046F, 0x33CF, 0x029E, 0x304F, 0x30AF, 0xFF78, + 0x33B8, 0x33BE, 0x006C, 0x09B2, 0x013A, 0x0932, 0x0AB2, 0x0A32, + 0x0E45, 0xFEFC, 0xFEF8, 0xFEF7, 0xFEFA, 0xFEF9, 0xFEFB, 0xFEF6, + 0xFEF5, 0x0644, 0x03BB, 0x019B, 0x05DC, 0xFB3C, 0xFB3C, 0x05DC, + 0xFEDE, 0xFCCA, 0xFEDF, 0xFCC9, 0xFCCB, 0xFDF2, 0xFEE0, 0xFD88, + 0xFCCC, 0x25EF, 0x019A, 0x026C, 0x310C, 0x013E, 0x013C, 0x24DB, + 0x1E3D, 0x013C, 0x0140, 0x0140, 0x1E37, 0x1E39, 0x031A, 0x0318, + 0x003C, 0x2264, 0x22DA, 0xFF1C, 0x2272, 0x2276, 0x2266, 0xFE64, + 0x026E, 0x258C, 0x026D, 0x20A4, 0x056C, 0x01C9, 0x0459, 0xF6C0, + 0x0933, 0x0AB3, 0x1E3B, 0x0934, 0x09E1, 0x0961, 0x09E3, 0x0963, + 0x026B, 0xFF4C, 0x33D0, 0x0E2C, 0x2227, 0x00AC, 0x2310, 0x2228, + 0x0E25, 0x017F, 0xFE4E, 0x0332, 0xFE4D, 0x25CA, 0x24A7, 0x0142, + 0x2113, 0xF6EE, 0x2591, 0x0E26, 0x098C, 0x090C, 0x09E2, 0x0962, + 0x33D3, 0x006D, 0x09AE, 0x00AF, 0x0331, 0x0304, 0x02CD, 0xFFE3, + 0x1E3F, 0x092E, 0x0AAE, 0x0A2E, 0x05A4, 0x05A4, 0x307E, 0xF895, + 0xF894, 0x0E4B, 0xF893, 0xF88C, 0xF88B, 0x0E48, 0xF88A, 0xF884, + 0x0E31, 0xF889, 0x0E47, 0xF88F, 0xF88E, 0x0E49, 0xF88D, 0xF892, + 0xF891, 0x0E4A, 0xF890, 0x0E46, 0x30DE, 0xFF8F, 0x2642, 0x3347, + 0x05BE, 0x2642, 0x05AF, 0x3383, 0x3107, 0x33D4, 0x24DC, 0x33A5, + 0x1E41, 0x1E43, 0x0645, 0xFEE2, 0xFEE3, 0xFEE4, 0xFCD1, 0xFC48, + 0x334D, 0x3081, 0x337E, 0x30E1, 0xFF92, 0x05DE, 0xFB3E, 0xFB3E, + 0x05DE, 0x0574, 0x05A5, 0x05A6, 0x05A6, 0x05A5, 0x0271, 0x3392, + 0xFF65, 0x00B7, 0x3272, 0x3212, 0x3264, 0x3141, 0x3170, 0x3204, + 0x316E, 0x316F, 0x307F, 0x30DF, 0xFF90, 0x2212, 0x0320, 0x2296, + 0x02D7, 0x2213, 0x2032, 0x334A, 0x3349, 0x0270, 0x3396, 0x33A3, + 0xFF4D, 0x339F, 0x3082, 0x33C1, 0x30E2, 0xFF93, 0x33D6, 0x0E21, + 0x33A7, 0x33A8, 0x24A8, 0x33AB, 0x33B3, 0xF6EF, 0x026F, 0x00B5, + 0x00B5, 0x3382, 0x226B, 0x226A, 0x338C, 0x03BC, 0x338D, 0x3080, + 0x30E0, 0xFF91, 0x3395, 0x00D7, 0x339B, 0x05A3, 0x05A3, 0x266A, + 0x266B, 0x266D, 0x266F, 0x33B2, 0x33B6, 0x33BC, 0x33B9, 0x33B7, + 0x33BF, 0x33BD, 0x006E, 0x09A8, 0x2207, 0x0144, 0x0928, 0x0AA8, + 0x0A28, 0x306A, 0x30CA, 0xFF85, 0x0149, 0x3381, 0x310B, 0x00A0, + 0x0148, 0x0146, 0x24DD, 0x1E4B, 0x0146, 0x1E45, 0x1E47, 0x306D, + 0x30CD, 0xFF88, 0x20AA, 0x338B, 0x0999, 0x0919, 0x0A99, 0x0A19, + 0x0E07, 0x3093, 0x0272, 0x0273, 0x326F, 0x320F, 0x3135, 0x3261, + 0x3136, 0x3134, 0x3168, 0x3201, 0x3167, 0x3166, 0x306B, 0x30CB, + 0xFF86, 0xF899, 0x0E4D, 0x0039, 0x0669, 0x09EF, 0x2468, 0x2792, + 0x096F, 0x0AEF, 0x0A6F, 0x0669, 0x3029, 0x3228, 0x2089, 0xFF19, + 0xF739, 0x247C, 0x2490, 0x06F9, 0x2178, 0x2079, 0x2472, 0x2486, + 0x249A, 0x0E59, 0x01CC, 0x045A, 0x30F3, 0xFF9D, 0x019E, 0x1E49, + 0xFF4E, 0x339A, 0x09A3, 0x0923, 0x0AA3, 0x0A23, 0x0929, 0x306E, + 0x30CE, 0xFF89, 0x00A0, 0x0E13, 0xFFFF, 0x0E19, 0x0646, 0xFEE6, + 0x06BA, 0xFB9F, 0xFEE7, 0xFCD2, 0xFC4B, 0xFEE8, 0xFCD5, 0xFC4E, + 0xFC8D, 0x220C, 0x2209, 0x2209, 0x2260, 0x226F, 0x2271, 0x2279, + 0x2262, 0x226E, 0x2270, 0x2226, 0x2280, 0x2284, 0x2281, 0x2285, + 0x0576, 0x24A9, 0x33B1, 0x207F, 0x00F1, 0x03BD, 0x306C, 0x30CC, + 0xFF87, 0x09BC, 0x093C, 0x0ABC, 0x0A3C, 0x0023, 0xFF03, 0xFE5F, + 0x0374, 0x0375, 0x2116, 0x05E0, 0xFB40, 0xFB40, 0x05E0, 0x33B5, + 0x33BB, 0x099E, 0x091E, 0x0A9E, 0x0A1E, 0x006F, 0x00F3, 0x0E2D, + 0x0275, 0x04E9, 0x04EB, 0x0993, 0x311B, 0x014F, 0x0911, 0x0A91, + 0x0949, 0x0AC9, 0x01D2, 0x24DE, 0x00F4, 0x1ED1, 0x1ED9, 0x1ED3, + 0x1ED5, 0x1ED7, 0x043E, 0x0151, 0x020D, 0x0913, 0x00F6, 0x04E7, + 0x1ECD, 0x0153, 0x315A, 0x02DB, 0x0328, 0x00F2, 0x0A93, 0x0585, + 0x304A, 0x1ECF, 0x01A1, 0x1EDB, 0x1EE3, 0x1EDD, 0x1EDF, 0x1EE1, + 0x0151, 0x01A3, 0x020F, 0x30AA, 0xFF75, 0x3157, 0x05AB, 0x014D, + 0x1E53, 0x1E51, 0x0950, 0x03C9, 0x03D6, 0x0461, 0x0277, 0x047B, + 0x047D, 0x03CE, 0x0AD0, 0x03BF, 0x03CC, 0xFF4F, 0x0031, 0x0661, + 0x09E7, 0x2460, 0x278A, 0x0967, 0x2024, 0x215B, 0xF6DC, 0x0AE7, + 0x0A67, 0x0661, 0x00BD, 0x3021, 0x3220, 0x2081, 0xFF11, 0x09F4, + 0xF731, 0x2474, 0x2488, 0x06F1, 0x00BC, 0x2170, 0x00B9, 0x0E51, + 0x2153, 0x01EB, 0x01ED, 0x0A13, 0x0A4B, 0x0254, 0x24AA, 0x25E6, + 0x2325, 0x00AA, 0x00BA, 0x221F, 0x0912, 0x094A, 0x00F8, 0x01FF, + 0x3049, 0x30A9, 0xFF6B, 0x01FF, 0xF6F0, 0x047F, 0x00F5, 0x1E4D, + 0x1E4F, 0x3121, 0x203E, 0xFE4A, 0x0305, 0xFE49, 0xFE4C, 0xFE4B, + 0x00AF, 0x09CB, 0x094B, 0x0ACB, 0x0070, 0x3380, 0x332B, 0x09AA, + 0x1E55, 0x092A, 0x21DF, 0x21DE, 0x0AAA, 0x0A2A, 0x3071, 0x0E2F, + 0x30D1, 0x0484, 0x04C0, 0x317F, 0x00B6, 0x2225, 0x0028, 0xFD3E, + 0xF8ED, 0xF8EC, 0x208D, 0xFF08, 0xFE59, 0x207D, 0xF8EB, 0xFE35, + 0x0029, 0xFD3F, 0xF8F8, 0xF8F7, 0x208E, 0xFF09, 0xFE5A, 0x207E, + 0xF8F6, 0xFE36, 0x2202, 0x05C0, 0x0599, 0x33A9, 0x05B7, 0x05B7, + 0x05B7, 0x05B7, 0x05B7, 0x05B7, 0x05B7, 0x05B7, 0x05A1, 0x3106, + 0x24DF, 0x1E57, 0x05E4, 0x043F, 0xFB44, 0xFB44, 0x333B, 0xFB43, + 0x067E, 0x057A, 0x05E4, 0xFB57, 0xFB58, 0x307A, 0xFB59, 0x30DA, + 0x04A7, 0xFB4E, 0x0025, 0x066A, 0xFF05, 0xFE6A, 0x002E, 0x0589, + 0x00B7, 0xFF61, 0xF6E7, 0xFF0E, 0xFE52, 0xF6E8, 0x0342, 0x22A5, + 0x2030, 0x20A7, 0x338A, 0x09AB, 0x092B, 0x0AAB, 0x0A2B, 0x03C6, + 0x03D5, 0x327A, 0x321A, 0x326C, 0x314D, 0x320C, 0x0278, 0x0E3A, + 0x03D5, 0x01A5, 0x0E1E, 0x0E1C, 0x0E20, 0x03C0, 0x3273, 0x3213, + 0x3176, 0x3265, 0x3172, 0x3142, 0x3205, 0x3174, 0x3144, 0x3175, + 0x3177, 0x3173, 0x3074, 0x30D4, 0x03D6, 0x0583, 0x002B, 0x031F, + 0x2295, 0x00B1, 0x02D6, 0xFF0B, 0xFE62, 0x207A, 0xFF50, 0x33D8, + 0x307D, 0x261F, 0x261C, 0x261E, 0x261D, 0x30DD, 0x0E1B, 0x3012, + 0x3020, 0x24AB, 0x227A, 0x211E, 0x02B9, 0x2035, 0x220F, 0x2305, + 0x30FC, 0x2318, 0x2282, 0x2283, 0x2237, 0x221D, 0x03C8, 0x0471, + 0x0486, 0x33B0, 0x3077, 0x30D7, 0x33B4, 0x33BA, 0x0071, 0x0958, + 0x05A8, 0x0642, 0xFED6, 0xFED7, 0xFED8, 0x05B8, 0x05B8, 0x05B8, + 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, + 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x05B8, 0x059F, 0x3111, 0x24E0, + 0x02A0, 0xFF51, 0x05E7, 0xFB47, 0xFB47, 0x05E7, 0x24AC, 0x2669, + 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x05BB, 0x05BB, + 0x003F, 0x061F, 0x055E, 0x00BF, 0xF7BF, 0x037E, 0xFF1F, 0xF73F, + 0x0022, 0x201E, 0x201C, 0xFF02, 0x301E, 0x301D, 0x201D, 0x2018, + 0x201B, 0x201B, 0x2019, 0x0149, 0x201A, 0x0027, 0xFF07, 0x0072, + 0x057C, 0x09B0, 0x0155, 0x0930, 0x221A, 0xF8E5, 0x33AE, 0x33AF, + 0x33AD, 0x05BF, 0x05BF, 0x0AB0, 0x0A30, 0x3089, 0x30E9, 0xFF97, + 0x09F1, 0x09F0, 0x0264, 0x2236, 0x3116, 0x0159, 0x0157, 0x24E1, + 0x0157, 0x0211, 0x1E59, 0x1E5B, 0x1E5D, 0x203B, 0x2286, 0x2287, + 0x00AE, 0xF8E8, 0xF6DA, 0x0631, 0x0580, 0xFEAE, 0x308C, 0x30EC, + 0xFF9A, 0x05E8, 0xFB48, 0x05E8, 0x223D, 0x0597, 0x0597, 0x2310, + 0x027E, 0x027F, 0x09DD, 0x095D, 0x03C1, 0x027D, 0x027B, 0x02B5, + 0x03F1, 0x02DE, 0x3271, 0x3211, 0x3263, 0x3140, 0x313A, 0x3169, + 0x3139, 0x313B, 0x316C, 0x3203, 0x313F, 0x313C, 0x316B, 0x313D, + 0x313E, 0x316A, 0x316D, 0x221F, 0x0319, 0x22BF, 0x308A, 0x30EA, + 0xFF98, 0x02DA, 0x0325, 0x030A, 0x02BF, 0x0559, 0x031C, 0x02D3, + 0x02BE, 0x0339, 0x02D2, 0x0213, 0x3351, 0x1E5F, 0x027C, 0x027A, + 0xFF52, 0x308D, 0x30ED, 0xFF9B, 0x0E23, 0x24AD, 0x09DC, 0x0931, + 0x0A5C, 0x0691, 0xFB8D, 0x09E0, 0x0960, 0x0AE0, 0x09C4, 0x0944, + 0x0AC4, 0xF6F1, 0x2590, 0x0279, 0x02B4, 0x308B, 0x30EB, 0xFF99, + 0x09F2, 0x09F3, 0xF6DD, 0x0E24, 0x098B, 0x090B, 0x0A8B, 0x09C3, + 0x0943, 0x0AC3, 0x0073, 0x09B8, 0x015B, 0x1E65, 0x0635, 0x0938, + 0xFEBA, 0xFEBB, 0xFEBC, 0x0AB8, 0x0A38, 0x3055, 0x30B5, 0xFF7B, + 0xFDFA, 0x05E1, 0xFB41, 0xFB41, 0x05E1, 0x0E32, 0x0E41, 0x0E44, + 0x0E43, 0x0E33, 0x0E30, 0x0E40, 0xF886, 0x0E35, 0xF885, 0x0E34, + 0x0E42, 0xF888, 0x0E37, 0xF887, 0x0E36, 0x0E38, 0x0E39, 0x3119, + 0x0161, 0x1E67, 0x015F, 0x0259, 0x04D9, 0x04DB, 0x025A, 0x24E2, + 0x015D, 0x0219, 0x1E61, 0x1E63, 0x1E69, 0x033C, 0x2033, 0x02CA, + 0x00A7, 0x0633, 0xFEB2, 0xFEB3, 0xFEB4, 0x05B6, 0x05B6, 0x05B6, + 0x05B6, 0x05B6, 0x05B6, 0x05B6, 0x0592, 0x05B6, 0x057D, 0x305B, + 0x30BB, 0xFF7E, 0x003B, 0x061B, 0xFF1B, 0xFE54, 0x309C, 0xFF9F, + 0x3322, 0x3323, 0x0037, 0x0667, 0x09ED, 0x2466, 0x2790, 0x096D, + 0x215E, 0x0AED, 0x0A6D, 0x0667, 0x3027, 0x3226, 0x2087, 0xFF17, + 0xF737, 0x247A, 0x248E, 0x06F7, 0x2176, 0x2077, 0x2470, 0x2484, + 0x2498, 0x0E57, 0x00AD, 0x0577, 0x09B6, 0x0448, 0x0651, 0xFC61, + 0xFC5E, 0xFC60, 0xFC62, 0xFC5F, 0x2592, 0x2593, 0x2591, 0x2592, + 0x0936, 0x0AB6, 0x0A36, 0x0593, 0x3115, 0x0449, 0x0634, 0xFEB6, + 0xFEB7, 0xFEB8, 0x03E3, 0x20AA, 0x20AA, 0x05B0, 0x05B0, 0x05B0, + 0x05B0, 0x05B0, 0x05B0, 0x05B0, 0x05B0, 0x05B0, 0x04BB, 0x03ED, + 0x05E9, 0xFB49, 0xFB49, 0xFB2C, 0xFB2C, 0xFB2D, 0xFB2D, 0x05C1, + 0x05E9, 0xFB2A, 0xFB2A, 0xFB2B, 0xFB2B, 0x0282, 0x03C3, 0x03C2, + 0x03C2, 0x03F2, 0x3057, 0x30B7, 0xFF7C, 0x05BD, 0x05BD, 0x223C, + 0x05C2, 0x3274, 0x3214, 0x317E, 0x3266, 0x317A, 0x3145, 0x317B, + 0x3206, 0x317D, 0x317C, 0x0036, 0x0666, 0x09EC, 0x2465, 0x278F, + 0x096C, 0x0AEC, 0x0A6C, 0x0666, 0x3026, 0x3225, 0x2086, 0xFF16, + 0xF736, 0x2479, 0x248D, 0x06F6, 0x2175, 0x2076, 0x246F, 0x09F9, + 0x2483, 0x2497, 0x0E56, 0x002F, 0xFF0F, 0x017F, 0x1E9B, 0x263A, + 0xFF53, 0x05C3, 0x00AD, 0x044C, 0x305D, 0x30BD, 0xFF7F, 0x0338, + 0x0337, 0x0E29, 0x0E28, 0x0E0B, 0x0E2A, 0x0020, 0x0020, 0x2660, + 0x2660, 0x2664, 0x24AE, 0x033B, 0x33C4, 0x339D, 0x25A9, 0x25A4, + 0x338F, 0x339E, 0x33CE, 0x33D1, 0x33D2, 0x338E, 0x33D5, 0x339C, + 0x33A1, 0x25A6, 0x25A7, 0x25A8, 0x25A5, 0x25A3, 0x33DB, 0x09B7, + 0x0937, 0x0AB7, 0x3149, 0x3185, 0x3180, 0x3132, 0x3165, 0x3143, + 0x3146, 0x3138, 0xF6F2, 0x00A3, 0xFFE1, 0x0336, 0x0335, 0x2282, + 0x228A, 0x2286, 0x227B, 0x220B, 0x3059, 0x30B9, 0xFF7D, 0x0652, + 0x2211, 0x263C, 0x2283, 0x228B, 0x2287, 0x33DC, 0x337C, 0x0074, + 0x09A4, 0x22A4, 0x22A3, 0x0924, 0x0AA4, 0x0A24, 0x0637, 0xFEC2, + 0xFEC3, 0x305F, 0xFEC4, 0x337D, 0x30BF, 0xFF80, 0x0640, 0x03C4, + 0x05EA, 0xFB4A, 0xFB4A, 0xFB4A, 0x05EA, 0x0167, 0x310A, 0x0165, + 0x02A8, 0x0163, 0x0686, 0xFB7B, 0xFB7C, 0xFB7D, 0x24E3, 0x1E71, + 0x0163, 0x1E97, 0x1E6B, 0x1E6D, 0x0442, 0x04AD, 0x062A, 0xFE96, + 0xFCA2, 0xFC0C, 0xFE97, 0x3066, 0xFCA1, 0xFC0B, 0x0629, 0xFE94, + 0xFE98, 0xFCA4, 0xFC0E, 0xFC73, 0x30C6, 0xFF83, 0x2121, 0x260E, + 0x05A0, 0x05A9, 0x2469, 0x3229, 0x247D, 0x2491, 0x2179, 0x02A7, + 0x05D8, 0xFB38, 0xFB38, 0x05D8, 0x04B5, 0x059B, 0x059B, 0x09A5, + 0x0925, 0x0AA5, 0x0A25, 0x0630, 0xFEAC, 0xF898, 0xF897, 0x0E4C, + 0xF896, 0x062B, 0xFE9A, 0xFE9B, 0xFE9C, 0x2203, 0x2234, 0x03B8, + 0x03D1, 0x03D1, 0x3279, 0x3219, 0x326B, 0x314C, 0x320B, 0x246C, + 0x2480, 0x2494, 0x0E11, 0x01AD, 0x0E12, 0x00FE, 0x0E17, 0x0E10, + 0x0E18, 0x0E16, 0x0482, 0x066C, 0x066C, 0x0033, 0x0663, 0x09E9, + 0x2462, 0x278C, 0x0969, 0x215C, 0x0AE9, 0x0A69, 0x0663, 0x3023, + 0x3222, 0x2083, 0xFF13, 0x09F6, 0xF733, 0x2476, 0x248A, 0x06F3, + 0x00BE, 0xF6DE, 0x2172, 0x00B3, 0x0E53, 0x3394, 0x3061, 0x30C1, + 0xFF81, 0x3270, 0x3210, 0x3262, 0x3137, 0x3202, 0x02DC, 0x0330, + 0x0303, 0x0303, 0x0360, 0x223C, 0x0334, 0x033E, 0x2297, 0x0596, + 0x0596, 0x0A70, 0x0483, 0x057F, 0x1E6F, 0xFF54, 0x0569, 0x3068, + 0x30C8, 0xFF84, 0x02E5, 0x02E9, 0x02E6, 0x02E8, 0x02E7, 0x01BD, + 0x0185, 0x01A8, 0x0384, 0x3327, 0x0E0F, 0x3014, 0xFE5D, 0xFE39, + 0x3015, 0xFE5E, 0xFE3A, 0x0E15, 0x01AB, 0x24AF, 0x2122, 0xF8EA, + 0xF6DB, 0x0288, 0x25BC, 0x25C4, 0x25BA, 0x25B2, 0x02A6, 0x05E6, + 0xFB46, 0xFB46, 0x05E6, 0x0446, 0x05B5, 0x05B5, 0x05B5, 0x05B5, + 0x05B5, 0x05B5, 0x05B5, 0x05B5, 0x045B, 0xF6F3, 0x099F, 0x091F, + 0x0A9F, 0x0A1F, 0x0679, 0xFB67, 0xFB68, 0xFB69, 0x09A0, 0x0920, + 0x0AA0, 0x0A20, 0x0287, 0x3064, 0x30C4, 0xFF82, 0x3063, 0x30C3, + 0xFF6F, 0x246B, 0x247F, 0x2493, 0x217B, 0x2473, 0x5344, 0x2487, + 0x249B, 0x0032, 0x0662, 0x09E8, 0x2461, 0x278B, 0x0968, 0x2025, + 0x2025, 0xFE30, 0x0AE8, 0x0A68, 0x0662, 0x3022, 0x3221, 0x2082, + 0xFF12, 0x09F5, 0xF732, 0x2475, 0x2489, 0x06F2, 0x2171, 0x01BB, + 0x00B2, 0x0E52, 0x2154, 0x0075, 0x00FA, 0x0289, 0x0989, 0x3128, + 0x016D, 0x01D4, 0x24E4, 0x00FB, 0x1E77, 0x0443, 0x0951, 0x0171, + 0x0215, 0x0909, 0x00FC, 0x01D8, 0x1E73, 0x01DA, 0x04F1, 0x01DC, + 0x01D6, 0x1EE5, 0x00F9, 0x0A89, 0x0A09, 0x3046, 0x1EE7, 0x01B0, + 0x1EE9, 0x1EF1, 0x1EEB, 0x1EED, 0x1EEF, 0x0171, 0x04F3, 0x0217, + 0x30A6, 0xFF73, 0x0479, 0x315C, 0x016B, 0x04EF, 0x1E7B, 0x0A41, + 0xFF55, 0x005F, 0x2017, 0xFF3F, 0xFE33, 0xFE4F, 0x222A, 0x2200, + 0x0173, 0x24B0, 0x2580, 0x05C4, 0x03C5, 0x03CB, 0x03B0, 0x028A, + 0x03CD, 0x031D, 0x02D4, 0x0A73, 0x016F, 0x045E, 0x3045, 0x30A5, + 0xFF69, 0x04AF, 0x04B1, 0x0169, 0x1E79, 0x1E75, 0x098A, 0x090A, + 0x0A8A, 0x0A0A, 0x0A42, 0x09C2, 0x0942, 0x0AC2, 0x09C1, 0x0941, + 0x0AC1, 0x0076, 0x0935, 0x0AB5, 0x0A35, 0x30F7, 0x05D5, 0xFB35, + 0xFB35, 0xFB35, 0x05D5, 0xFB4B, 0xFB4B, 0x05F0, 0x05F1, 0x24E5, + 0x1E7F, 0x0432, 0x06A4, 0xFB6B, 0xFB6C, 0xFB6D, 0x30F9, 0x2640, + 0x007C, 0x030D, 0x0329, 0x02CC, 0x02C8, 0x057E, 0x028B, 0x30F8, + 0x09CD, 0x094D, 0x0ACD, 0x0983, 0x0903, 0x0A83, 0xFF56, 0x0578, + 0x309E, 0x30FE, 0x309B, 0xFF9E, 0x30FA, 0x24B1, 0x1E7D, 0x028C, + 0x3094, 0x30F4, 0x0077, 0x1E83, 0x3159, 0x308F, 0x30EF, 0xFF9C, + 0x3158, 0x308E, 0x30EE, 0x3357, 0x301C, 0xFE34, 0x0648, 0xFEEE, + 0x0624, 0xFE86, 0x33DD, 0x24E6, 0x0175, 0x1E85, 0x1E87, 0x1E89, + 0x3091, 0x2118, 0x30F1, 0x315E, 0x315D, 0x1E81, 0x25E6, 0x25CB, + 0x25D9, 0x300E, 0xFE43, 0x300F, 0xFE44, 0x25C7, 0x25C8, 0x25BF, + 0x25BD, 0x25C3, 0x25C1, 0x3016, 0x3017, 0x25B9, 0x25B7, 0x25AB, + 0x263A, 0x25A1, 0x2606, 0x260F, 0x3018, 0x3019, 0x25B5, 0x25B3, + 0x3090, 0x30F0, 0x315F, 0xFF57, 0x3092, 0x30F2, 0xFF66, 0x20A9, + 0xFFE6, 0x0E27, 0x24B2, 0x1E98, 0x02B7, 0x028D, 0x01BF, 0x0078, + 0x033D, 0x3112, 0x24E7, 0x1E8D, 0x1E8B, 0x056D, 0x03BE, 0xFF58, + 0x24B3, 0x02E3, 0x0079, 0x334E, 0x09AF, 0x00FD, 0x092F, 0x3152, + 0x0AAF, 0x0A2F, 0x3084, 0x30E4, 0xFF94, 0x3151, 0x0E4E, 0x3083, + 0x30E3, 0xFF6C, 0x0463, 0x24E8, 0x0177, 0x00FF, 0x1E8F, 0x1EF5, + 0x064A, 0x06D2, 0xFBAF, 0xFEF2, 0x0626, 0xFE8A, 0xFE8B, 0xFE8C, + 0xFEF3, 0xFEF4, 0xFCDD, 0xFC58, 0xFC94, 0x06D1, 0x3156, 0x00A5, + 0xFFE5, 0x3155, 0x3186, 0x05AA, 0x05AA, 0x044B, 0x04F9, 0x3181, + 0x3183, 0x3182, 0x059A, 0x1EF3, 0x01B4, 0x1EF7, 0x0575, 0x0457, + 0x3162, 0x262F, 0x0582, 0xFF59, 0x05D9, 0xFB39, 0xFB39, 0x05D9, + 0x05F2, 0xFB1F, 0x3088, 0x3189, 0x30E8, 0xFF96, 0x315B, 0x3087, + 0x30E7, 0xFF6E, 0x03F3, 0x3188, 0x3187, 0x0E22, 0x0E0D, 0x24B4, + 0x037A, 0x0345, 0x01A6, 0x1E99, 0x02B8, 0x1EF9, 0x028E, 0x3086, + 0x318C, 0x30E6, 0xFF95, 0x3160, 0x046B, 0x046D, 0x0467, 0x0469, + 0x3085, 0x30E5, 0xFF6D, 0x318B, 0x318A, 0x09DF, 0x095F, 0x007A, + 0x0566, 0x017A, 0x095B, 0x0A5B, 0x0638, 0xFEC6, 0xFEC7, 0x3056, + 0xFEC8, 0x0632, 0xFEB0, 0x30B6, 0x0595, 0x0594, 0x0598, 0x05D6, + 0xFB36, 0xFB36, 0x05D6, 0x3117, 0x017E, 0x24E9, 0x1E91, 0x0291, + 0x017C, 0x017C, 0x1E93, 0x0437, 0x0499, 0x04DF, 0x305C, 0x30BC, + 0x0030, 0x0660, 0x09E6, 0x0966, 0x0AE6, 0x0A66, 0x0660, 0x2080, + 0xFF10, 0xF730, 0x06F0, 0x2070, 0x0E50, 0xFEFF, 0x200C, 0x200B, + 0x03B6, 0x3113, 0x056A, 0x04C2, 0x0436, 0x0497, 0x04DD, 0x3058, + 0x30B8, 0x05AE, 0x1E95, 0xFF5A, 0x305E, 0x30BE, 0x24B5, 0x0290, + 0x01B6, 0x305A, 0x30BA, +}; + +wchar_t ps_glyph_to_unicode(glyph g) +{ + if (g < lenof(ps_codes_alphabetic)) + return ps_codes_alphabetic[g]; + return 0xFFFF; } /* ---------------------------------------------------------------------- @@ -1790,6 +1842,49 @@ const char *const ps_std_glyphs[] = { }; /* + * Standard TrueType glyph mapping, from the TrueType reference manual. + */ + +/* + +wget http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6post.html +< Chap6post.html \ +sed -n '/\.notdef/,/<\/table>/s/^.*\([^0-9].*\)<\/td>$/\1/p' | +perl -e ' +open G, "glyphnames.txt" or die; +chomp(@g = ); %g = map(($_, $i++), @g); +while(<>){chomp;print"$g{$_}, "} +print "NOGLYPH\n";' | fold -sw68 | sed 's/^/ /' + +*/ + +glyph const tt_std_glyphs[] = { + 0, 1, 2740, 3501, 1776, 3136, 2781, 1597, 2994, 1079, 3149, 2942, + 2952, 1165, 3046, 1411, 2128, 2998, 3483, 4168, 2862, 3793, 3669, + 1860, 1831, 3459, 3362, 1671, 2699, 1404, 3354, 2464, 1738, 1972, + 3128, 1174, 2, 53, 66, 95, 129, 194, 205, 234, 258, 303, 311, 339, + 361, 374, 395, 461, 476, 480, 501, 572, 605, 660, 670, 680, 688, + 713, 1286, 1196, 1291, 1156, 3865, 1964, 736, 1194, 1314, 1483, + 1632, 1789, 1888, 1990, 2134, 2276, 2304, 2418, 2513, 2650, 2797, + 2924, 3086, 3151, 3282, 3559, 3819, 3905, 3954, 4023, 4034, 4135, + 1272, 1204, 1279, 1158, 29, 45, 72, 130, 392, 416, 617, 738, 1032, + 760, 777, 1175, 1113, 1334, 1633, 1664, 1647, 1657, 2135, 2209, + 2142, 2198, 2772, 2798, 2829, 2812, 2822, 2910, 3820, 3842, 3827, + 3834, 1493, 1554, 1344, 3539, 3336, 1310, 2940, 1920, 3184, 1461, + 3742, 766, 1574, 2756, 3, 451, 2237, 3049, 2465, 1973, 4071, 2623, + 2962, 3552, 3070, 3029, 2239, 2897, 2898, 438, 782, 2902, 3131, + 1779, 2493, 3156, 1853, 1106, 109, 1983, 1984, 1707, 2738, 35, 50, + 457, 396, 2825, 1720, 1713, 3138, 3142, 3143, 3146, 1583, 2501, + 4053, 694, 1886, 1478, 1985, 1986, 1809, 1852, 1494, 3000, 3148, + 3137, 3008, 18, 137, 7, 147, 153, 262, 267, 271, 281, 398, 406, + 1104, 421, 606, 611, 626, 1610, 1389, 3702, 2515, 1296, 1605, 3233, + 1342, 2125, 2827, 1328, 358, 2503, 545, 3320, 716, 4156, 1304, 186, + 1763, 689, 4037, 588, 3661, 2597, 2635, 2886, 3816, 3691, 2874, + 2884, 3688, 1887, 211, 1905, 276, 548, 3322, 68, 1317, 71, 1333, + 1537, NOGLYPH +}; + +/* * Character width information from the standard PS fonts. * Units are UNITS_PER_PT defined in paper.h. * Extracted from the AFM files in @@ -1803,23 +1898,27 @@ fonts="Times-Roman Times-Italic Times-Bold Times-BoldItalic \ for i in $fonts; do printf 'static const kern_pair %s_kerns[] = {\n' $(echo $i | tr 'A-Z\-' a-z_) perl -e ' -open G, "stdchars.txt" or die; -chomp(@g = ); %g = map(($_, $i++), @g); +open S, "stdchars.txt" or die; +chomp(@s = ); +open G, "glyphnames.txt" or die; +chomp(@g = ); %g = map(($_, $i++), @g); %g = map(($_, $g{$_}), @s); open M, "$ARGV[0].afm" or die; while () { /KPX (\S+) (\S+) (\S+)/ and exists $g{$1} and exists $g{$2} and print "{$g{$1},$g{$2},$3}, "; } print "\n"' $i |\ fold -sw 68 | sed 's/^/ /' - printf ' {0xFFFF,0xFFFF,0}\n};\n' + printf ' {NOGLYPH,NOGLYPH,0}\n};\n' printf 'static const ligature %s_ligs[] = {\n' $(echo $i | tr 'A-Z\-' a-z_) perl -e ' -open G, "stdchars.txt" or die; -chomp(@g = ); %g = map(($_, $i++), @g); +open S, "stdchars.txt" or die; +chomp(@s = ); +open G, "glyphnames.txt" or die; +chomp(@g = ); %g = map(($_, $i++), @g); %g = map(($_, $g{$_}), @s); open M, "$ARGV[0].afm" or die; while () { / N (\S+) / and $l = $1; while (/ L (\S+) (\S+) /g) { exists $g{$l} and exists $g{$1} and exists $g{$2} and print "{$g{$l},$g{$1},$g{$2}}, "; } } print "\n"' $i |\ fold -sw 68 | sed 's/^/ /' - printf ' {0xFFFF,0xFFFF,0xFFFF}\n};\n' + printf ' {NOGLYPH,NOGLYPH,NOGLYPH}\n};\n' done cat <fp = NULL; + fi->fontfile = NULL; fi->name = ps_std_fonts[i].name; - fi->nglyphs = lenof(ps_std_glyphs) - 1; - fi->glyphs = ps_std_glyphs; - fi->widths = ps_std_fonts[i].widths; - fi->kerns = newtree234(kern_cmp); - for (kern = ps_std_fonts[i].kerns; kern->left != 0xFFFF; kern++) - add234(fi->kerns, (void *)kern); - fi->ligs = newtree234(lig_cmp); - for (lig = ps_std_fonts[i].ligs; lig->left != 0xFFFF; lig++) - add234(fi->ligs, (void *)lig); + fi->widths = newtree234(width_cmp); for (j = 0; j < (int)lenof(fi->bmp); j++) - fi->bmp[j] = 0xFFFF; - for (j = 0; j < fi->nglyphs; j++) { + fi->bmp[j] = NOGLYPH; + for (j = 0; j < (int)lenof(ps_std_glyphs) - 1; j++) { + glyph_width *w = snew(glyph_width); wchar_t ucs; - ucs = ps_glyph_to_unicode(fi->glyphs[j]); + w->glyph = glyph_intern(ps_std_glyphs[j]); + w->width = ps_std_fonts[i].widths[j]; + add234(fi->widths, w); + ucs = ps_glyph_to_unicode(w->glyph); assert(ucs != 0xFFFF); - fi->bmp[ucs] = j; + fi->bmp[ucs] = w->glyph; } + fi->kerns = newtree234(kern_cmp); + for (kern = ps_std_fonts[i].kerns; kern->left != NOGLYPH; kern++) + add234(fi->kerns, (void *)kern); + fi->ligs = newtree234(lig_cmp); + for (lig = ps_std_fonts[i].ligs; lig->left != NOGLYPH; lig++) + add234(fi->ligs, (void *)lig); fi->next = all_fonts; all_fonts = fi; }