diff options
author | wkj <devnull@localhost> | 2004-04-21 01:15:41 +0000 |
---|---|---|
committer | wkj <devnull@localhost> | 2004-04-21 01:15:41 +0000 |
commit | a31db67d14c0e50353eac3db342f3c969cabdf76 (patch) | |
tree | 0cebd9a65bab940355f5be0751f53238366555d7 /src/cmd/tcs | |
parent | ba03b8910dd07511378e6f1007faf0539ed25598 (diff) | |
download | plan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.tar.gz plan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.tar.bz2 plan9port-a31db67d14c0e50353eac3db342f3c969cabdf76.zip |
Add tcs; it compiles in my world, but I haven't tried it in Russ's yet.
Diffstat (limited to 'src/cmd/tcs')
40 files changed, 10784 insertions, 0 deletions
diff --git a/src/cmd/tcs/big5.c b/src/cmd/tcs/big5.c new file mode 100644 index 00000000..dda738fa --- /dev/null +++ b/src/cmd/tcs/big5.c @@ -0,0 +1,1751 @@ +#include "big5.h" + +long tabbig5[BIG5MAX] = { +0x3000,0xff0c,0x3001,0x3002,0xff0e,0x30fb,0xff1b,0xff1a, +0xff1f,0xff01,0xfe30,0x2026,0x2025,0xfe50,0xfe51,0xfe52, +0x00b7,0xfe54,0xfe55,0xfe56,0xfe57,0xfe32,0x2013,0xfe31, +0x2014,0xfe33, -1,0xfe34,0xfe4f,0xff08,0xff09,0xfe35, +0xfe36,0xff5b,0xff5d,0xfe37,0xfe38,0x3014,0x3015,0xfe39, +0xfe3a,0x3010,0x3011,0xfe3b,0xfe3c,0x300a,0x300b,0xfe3d, +0xfe3e,0x3008,0x3009,0xfe3f,0xfe40,0x300c,0x300d,0xfe41, +0xfe42,0x300e,0x300f,0xfe43,0xfe44,0xfe59,0xfe5a,0xfe5b, +0xfe5c,0xfe5d,0xfe5e,0x2018,0x2019,0x201c,0x201d,0x301d, +0x301e,0x2035,0x2032,0xff03,0xff06,0xff0a,0x203b,0x00a7, +0x3003,0x25cb,0x25cf,0x25b3,0x25b2,0x25ce,0x2606,0x2605, +0x25c7,0x25c6,0x25a1,0x25a0,0x25bd,0x25bc,0x32a3,0x2105, +0x203e, -1,0xff3f, -1,0xfe49,0xfe4a,0xfe4d,0xfe4e, +0xfe4b,0xfe4c,0x0023,0x0026,0x002a,0xff0b,0xff0d,0x00d7, +0x00f7,0x00b1,0x221a,0xff1c,0xff1e,0xff1d,0x2264,0x2265, +0x2260,0x221e,0x2252,0x2261,0xfe62,0xfe63,0xfe64,0xfe65, +0xfe66,0x223c,0x2229,0x222a,0x22a5,0x2220,0x221f,0x22bf, +0x33d2,0x33d1,0x222b,0x222e,0x2235,0x2234,0x2640,0x2642, +0x2641,0x2609,0x2191,0x2193,0x2190,0x2192,0x2196,0x2197, +0x2199,0x2198,0x2225,0x2223, -1, -1,0xff0f,0xff3c, +0xff04,0x00a5,0x3012,0x00a2,0x00a3,0xff05,0xff20,0x2103, +0x2109,0x0024,0x0025,0x0040,0x33d5,0x339c,0x339d,0x339e, +0x33ce,0x33a1,0x338e,0x338f,0x33c4,0x00b0,0x5159,0x515b, +0x515e,0x515d,0x5161,0x5163,0x55e7,0x74e9,0x7cce,0x2581, +0x2582,0x2583,0x2584,0x2585,0x2586,0x2587,0x2588,0x258f, +0x258e,0x258d,0x258c,0x258b,0x258a,0x2589,0x253c,0x2534, +0x252c,0x2524,0x251c,0x2594,0x2500,0x2502,0x2595,0x250c, +0x2510,0x2514,0x2518,0x256d,0x256e,0x2570,0x256f,0x2550, +0x255e,0x256a,0x2561,0x25e2,0x25e3,0x25e5,0x25e4,0x2571, +0x2572,0x2573,0xff10,0xff11,0xff12,0xff13,0xff14,0xff15, +0xff16,0xff17,0xff18,0xff19,0x2160,0x2161,0x2162,0x2163, +0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,0x3021,0x3022, +0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,0x3029, -1, +0x5344, -1,0xff21,0xff22,0xff23,0xff24,0xff25,0xff26, +0xff27,0xff28,0xff29,0xff2a,0xff2b,0xff2c,0xff2d,0xff2e, +0xff2f,0xff30,0xff31,0xff32,0xff33,0xff34,0xff35,0xff36, +0xff37,0xff38,0xff39,0xff3a,0xff41,0xff42,0xff43,0xff44, +0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b,0xff4c, +0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53,0xff54, +0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0x0391,0x0392, +0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039a, +0x039b,0x039c,0x039d,0x039e,0x039f,0x03a0,0x03a1,0x03a3, +0x03a4,0x03a5,0x03a6,0x03a7,0x03a8,0x03a9,0x03b1,0x03b2, +0x03b3,0x03b4,0x03b5,0x03b6,0x03b7,0x03b8,0x03b9,0x03ba, +0x03bb,0x03bc,0x03bd,0x03be,0x03bf,0x03c0,0x03c1,0x03c3, +0x03c4,0x03c5,0x03c6,0x03c7,0x03c8,0x03c9,0x3105,0x3106, +0x3107,0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e, +0x310f,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116, +0x3117,0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e, +0x311f,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126, +0x3127,0x3128,0x3129,0x02d9,0x02c9,0x02ca,0x02c7,0x02cb, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1,0x4e00, +0x4e59,0x4e01,0x4e03,0x4e43,0x4e5d,0x4e86,0x4e8c,0x4eba, +0x513f,0x5165,0x516b,0x51e0,0x5200,0x5201,0x529b,0x5315, +0x5341,0x535c,0x53c8,0x4e09,0x4e0b,0x4e08,0x4e0a,0x4e2b, +0x4e38,0x51e1,0x4e45,0x4e48,0x4e5f,0x4e5e,0x4e8e,0x4ea1, +0x5140,0x5203,0x52fa,0x5343,0x53c9,0x53e3,0x571f,0x58eb, +0x5915,0x5927,0x5973,0x5b50,0x5b51,0x5b53,0x5bf8,0x5c0f, +0x5c22,0x5c38,0x5c71,0x5ddd,0x5de5,0x5df1,0x5df2,0x5df3, +0x5dfe,0x5e72,0x5efe,0x5f0b,0x5f13,0x624d,0x4e11,0x4e10, +0x4e0d,0x4e2d,0x4e30,0x4e39,0x4e4b,0x5c39,0x4e88,0x4e91, +0x4e95,0x4e92,0x4e94,0x4ea2,0x4ec1,0x4ec0,0x4ec3,0x4ec6, +0x4ec7,0x4ecd,0x4eca,0x4ecb,0x4ec4,0x5143,0x5141,0x5167, +0x516d,0x516e,0x516c,0x5197,0x51f6,0x5206,0x5207,0x5208, +0x52fb,0x52fe,0x52ff,0x5316,0x5339,0x5348,0x5347,0x5345, +0x535e,0x5384,0x53cb,0x53ca,0x53cd,0x58ec,0x5929,0x592b, +0x592a,0x592d,0x5b54,0x5c11,0x5c24,0x5c3a,0x5c6f,0x5df4, +0x5e7b,0x5eff,0x5f14,0x5f15,0x5fc3,0x6208,0x6236,0x624b, +0x624e,0x652f,0x6587,0x6597,0x65a4,0x65b9,0x65e5,0x66f0, +0x6708,0x6728,0x6b20,0x6b62,0x6b79,0x6bcb,0x6bd4,0x6bdb, +0x6c0f,0x6c34,0x706b,0x722a,0x7236,0x723b,0x7247,0x7259, +0x725b,0x72ac,0x738b,0x4e19,0x4e16,0x4e15,0x4e14,0x4e18, +0x4e3b,0x4e4d,0x4e4f,0x4e4e,0x4ee5,0x4ed8,0x4ed4,0x4ed5, +0x4ed6,0x4ed7,0x4ee3,0x4ee4,0x4ed9,0x4ede,0x5145,0x5144, +0x5189,0x518a,0x51ac,0x51f9,0x51fa,0x51f8,0x520a,0x52a0, +0x529f,0x5305,0x5306,0x5317,0x531d,0x4edf,0x534a,0x5349, +0x5361,0x5360,0x536f,0x536e,0x53bb,0x53ef,0x53e4,0x53f3, +0x53ec,0x53ee,0x53e9,0x53e8,0x53fc,0x53f8,0x53f5,0x53eb, +0x53e6,0x53ea,0x53f2,0x53f1,0x53f0,0x53e5,0x53ed,0x53fb, +0x56db,0x56da,0x5916,0x592e,0x5931,0x5974,0x5976,0x5b55, +0x5b83,0x5c3c,0x5de8,0x5de7,0x5de6,0x5e02,0x5e03,0x5e73, +0x5e7c,0x5f01,0x5f18,0x5f17,0x5fc5,0x620a,0x6253,0x6254, +0x6252,0x6251,0x65a5,0x65e6,0x672e,0x672c,0x672a,0x672b, +0x672d,0x6b63,0x6bcd,0x6c11,0x6c10,0x6c38,0x6c41,0x6c40, +0x6c3e,0x72af,0x7384,0x7389,0x74dc,0x74e6,0x7518,0x751f, +0x7528,0x7529,0x7530,0x7531,0x7532,0x7533,0x758b,0x767d, +0x76ae,0x76bf,0x76ee,0x77db,0x77e2,0x77f3,0x793a,0x79be, +0x7a74,0x7acb,0x4e1e,0x4e1f,0x4e52,0x4e53,0x4e69,0x4e99, +0x4ea4,0x4ea6,0x4ea5,0x4eff,0x4f09,0x4f19,0x4f0a,0x4f15, +0x4f0d,0x4f10,0x4f11,0x4f0f,0x4ef2,0x4ef6,0x4efb,0x4ef0, +0x4ef3,0x4efd,0x4f01,0x4f0b,0x5149,0x5147,0x5146,0x5148, +0x5168,0x5171,0x518d,0x51b0,0x5217,0x5211,0x5212,0x520e, +0x5216,0x52a3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409, +0x540f,0x540c,0x540a,0x5410,0x5401,0x540b,0x5404,0x5411, +0x540d,0x5408,0x5403,0x540e,0x5406,0x5412,0x56e0,0x56de, +0x56dd,0x5733,0x5730,0x5728,0x572d,0x572c,0x572f,0x5729, +0x5919,0x591a,0x5937,0x5938,0x5984,0x5978,0x5983,0x597d, +0x5979,0x5982,0x5981,0x5b57,0x5b58,0x5b87,0x5b88,0x5b85, +0x5b89,0x5bfa,0x5c16,0x5c79,0x5dde,0x5e06,0x5e76,0x5e74, +0x5f0f,0x5f1b,0x5fd9,0x5fd6,0x620e,0x620c,0x620d,0x6210, +0x6263,0x625b,0x6258,0x6536,0x65e9,0x65e8,0x65ec,0x65ed, +0x66f2,0x66f3,0x6709,0x673d,0x6734,0x6731,0x6735,0x6b21, +0x6b64,0x6b7b,0x6c16,0x6c5d,0x6c57,0x6c59,0x6c5f,0x6c60, +0x6c50,0x6c55,0x6c61,0x6c5b,0x6c4d,0x6c4e,0x7070,0x725f, +0x725d,0x767e,0x7af9,0x7c73,0x7cf8,0x7f36,0x7f8a,0x7fbd, +0x8001,0x8003,0x800c,0x8012,0x8033,0x807f,0x8089,0x808b, +0x808c,0x81e3,0x81ea,0x81f3,0x81fc,0x820c,0x821b,0x821f, +0x826e,0x8272,0x827e,0x866b,0x8840,0x884c,0x8863,0x897f, +0x9621,0x4e32,0x4ea8,0x4f4d,0x4f4f,0x4f47,0x4f57,0x4f5e, +0x4f34,0x4f5b,0x4f55,0x4f30,0x4f50,0x4f51,0x4f3d,0x4f3a, +0x4f38,0x4f43,0x4f54,0x4f3c,0x4f46,0x4f63,0x4f5c,0x4f60, +0x4f2f,0x4f4e,0x4f36,0x4f59,0x4f5d,0x4f48,0x4f5a,0x514c, +0x514b,0x514d,0x5175,0x51b6,0x51b7,0x5225,0x5224,0x5229, +0x522a,0x5228,0x52ab,0x52a9,0x52aa,0x52ac,0x5323,0x5373, +0x5375,0x541d,0x542d,0x541e,0x543e,0x5426,0x544e,0x5427, +0x5446,0x5443,0x5433,0x5448,0x5442,0x541b,0x5429,0x544a, +0x5439,0x543b,0x5438,0x542e,0x5435,0x5436,0x5420,0x543c, +0x5440,0x5431,0x542b,0x541f,0x542c,0x56ea,0x56f0,0x56e4, +0x56eb,0x574a,0x5751,0x5740,0x574d,0x5747,0x574e,0x573e, +0x5750,0x574f,0x573b,0x58ef,0x593e,0x599d,0x5992,0x59a8, +0x599e,0x59a3,0x5999,0x5996,0x598d,0x59a4,0x5993,0x598a, +0x59a5,0x5b5d,0x5b5c,0x5b5a,0x5b5b,0x5b8c,0x5b8b,0x5b8f, +0x5c2c,0x5c40,0x5c41,0x5c3f,0x5c3e,0x5c90,0x5c91,0x5c94, +0x5c8c,0x5deb,0x5e0c,0x5e8f,0x5e87,0x5e8a,0x5ef7,0x5f04, +0x5f1f,0x5f64,0x5f62,0x5f77,0x5f79,0x5fd8,0x5fcc,0x5fd7, +0x5fcd,0x5ff1,0x5feb,0x5ff8,0x5fea,0x6212,0x6211,0x6284, +0x6297,0x6296,0x6280,0x6276,0x6289,0x626d,0x628a,0x627c, +0x627e,0x6279,0x6273,0x6292,0x626f,0x6298,0x626e,0x6295, +0x6293,0x6291,0x6286,0x6539,0x653b,0x6538,0x65f1,0x66f4, +0x675f,0x674e,0x674f,0x6750,0x6751,0x675c,0x6756,0x675e, +0x6749,0x6746,0x6760,0x6753,0x6757,0x6b65,0x6bcf,0x6c42, +0x6c5e,0x6c99,0x6c81,0x6c88,0x6c89,0x6c85,0x6c9b,0x6c6a, +0x6c7a,0x6c90,0x6c70,0x6c8c,0x6c68,0x6c96,0x6c92,0x6c7d, +0x6c83,0x6c72,0x6c7e,0x6c74,0x6c86,0x6c76,0x6c8d,0x6c94, +0x6c98,0x6c82,0x7076,0x707c,0x707d,0x7078,0x7262,0x7261, +0x7260,0x72c4,0x72c2,0x7396,0x752c,0x752b,0x7537,0x7538, +0x7682,0x76ef,0x77e3,0x79c1,0x79c0,0x79bf,0x7a76,0x7cfb, +0x7f55,0x8096,0x8093,0x809d,0x8098,0x809b,0x809a,0x80b2, +0x826f,0x8292,0x828b,0x828d,0x898b,0x89d2,0x8a00,0x8c37, +0x8c46,0x8c55,0x8c9d,0x8d64,0x8d70,0x8db3,0x8eab,0x8eca, +0x8f9b,0x8fb0,0x8fc2,0x8fc6,0x8fc5,0x8fc4,0x5de1,0x9091, +0x90a2,0x90aa,0x90a6,0x90a3,0x9149,0x91c6,0x91cc,0x9632, +0x962e,0x9631,0x962a,0x962c,0x4e26,0x4e56,0x4e73,0x4e8b, +0x4e9b,0x4e9e,0x4eab,0x4eac,0x4f6f,0x4f9d,0x4f8d,0x4f73, +0x4f7f,0x4f6c,0x4f9b,0x4f8b,0x4f86,0x4f83,0x4f70,0x4f75, +0x4f88,0x4f69,0x4f7b,0x4f96,0x4f7e,0x4f8f,0x4f91,0x4f7a, +0x5154,0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51bd, +0x51fd,0x523b,0x5238,0x5237,0x523a,0x5230,0x522e,0x5236, +0x5241,0x52be,0x52bb,0x5352,0x5354,0x5353,0x5351,0x5366, +0x5377,0x5378,0x5379,0x53d6,0x53d4,0x53d7,0x5473,0x5475, +0x5496,0x5478,0x5495,0x5480,0x547b,0x5477,0x5484,0x5492, +0x5486,0x547c,0x5490,0x5471,0x5476,0x548c,0x549a,0x5462, +0x5468,0x548b,0x547d,0x548e,0x56fa,0x5783,0x5777,0x576a, +0x5769,0x5761,0x5766,0x5764,0x577c,0x591c,0x5949,0x5947, +0x5948,0x5944,0x5954,0x59be,0x59bb,0x59d4,0x59b9,0x59ae, +0x59d1,0x59c6,0x59d0,0x59cd,0x59cb,0x59d3,0x59ca,0x59af, +0x59b3,0x59d2,0x59c5,0x5b5f,0x5b64,0x5b63,0x5b97,0x5b9a, +0x5b98,0x5b9c,0x5b99,0x5b9b,0x5c1a,0x5c48,0x5c45,0x5c46, +0x5cb7,0x5ca1,0x5cb8,0x5ca9,0x5cab,0x5cb1,0x5cb3,0x5e18, +0x5e1a,0x5e16,0x5e15,0x5e1b,0x5e11,0x5e78,0x5e9a,0x5e97, +0x5e9c,0x5e95,0x5e96,0x5ef6,0x5f26,0x5f27,0x5f29,0x5f80, +0x5f81,0x5f7f,0x5f7c,0x5fdd,0x5fe0,0x5ffd,0x5ff5,0x5fff, +0x600f,0x6014,0x602f,0x6035,0x6016,0x602a,0x6015,0x6021, +0x6027,0x6029,0x602b,0x601b,0x6216,0x6215,0x623f,0x623e, +0x6240,0x627f,0x62c9,0x62cc,0x62c4,0x62bf,0x62c2,0x62b9, +0x62d2,0x62db,0x62ab,0x62d3,0x62d4,0x62cb,0x62c8,0x62a8, +0x62bd,0x62bc,0x62d0,0x62d9,0x62c7,0x62cd,0x62b5,0x62da, +0x62b1,0x62d8,0x62d6,0x62d7,0x62c6,0x62ac,0x62ce,0x653e, +0x65a7,0x65bc,0x65fa,0x6614,0x6613,0x660c,0x6606,0x6602, +0x660e,0x6600,0x660f,0x6615,0x660a,0x6607,0x670d,0x670b, +0x676d,0x678b,0x6795,0x6771,0x679c,0x6773,0x6777,0x6787, +0x679d,0x6797,0x676f,0x6770,0x677f,0x6789,0x677e,0x6790, +0x6775,0x679a,0x6793,0x677c,0x676a,0x6772,0x6b23,0x6b66, +0x6b67,0x6b7f,0x6c13,0x6c1b,0x6ce3,0x6ce8,0x6cf3,0x6cb1, +0x6ccc,0x6ce5,0x6cb3,0x6cbd,0x6cbe,0x6cbc,0x6ce2,0x6cab, +0x6cd5,0x6cd3,0x6cb8,0x6cc4,0x6cb9,0x6cc1,0x6cae,0x6cd7, +0x6cc5,0x6cf1,0x6cbf,0x6cbb,0x6ce1,0x6cdb,0x6cca,0x6cac, +0x6cef,0x6cdc,0x6cd6,0x6ce0,0x7095,0x708e,0x7092,0x708a, +0x7099,0x722c,0x722d,0x7238,0x7248,0x7267,0x7269,0x72c0, +0x72ce,0x72d9,0x72d7,0x72d0,0x73a9,0x73a8,0x739f,0x73ab, +0x73a5,0x753d,0x759d,0x7599,0x759a,0x7684,0x76c2,0x76f2, +0x76f4,0x77e5,0x77fd,0x793e,0x7940,0x7941,0x79c9,0x79c8, +0x7a7a,0x7a79,0x7afa,0x7cfe,0x7f54,0x7f8c,0x7f8b,0x8005, +0x80ba,0x80a5,0x80a2,0x80b1,0x80a1,0x80ab,0x80a9,0x80b4, +0x80aa,0x80af,0x81e5,0x81fe,0x820d,0x82b3,0x829d,0x8299, +0x82ad,0x82bd,0x829f,0x82b9,0x82b1,0x82ac,0x82a5,0x82af, +0x82b8,0x82a3,0x82b0,0x82be,0x82b7,0x864e,0x8671,0x521d, +0x8868,0x8ecb,0x8fce,0x8fd4,0x8fd1,0x90b5,0x90b8,0x90b1, +0x90b6,0x91c7,0x91d1,0x9577,0x9580,0x961c,0x9640,0x963f, +0x963b,0x9644,0x9642,0x96b9,0x96e8,0x9752,0x975e,0x4e9f, +0x4ead,0x4eae,0x4fe1,0x4fb5,0x4faf,0x4fbf,0x4fe0,0x4fd1, +0x4fcf,0x4fdd,0x4fc3,0x4fb6,0x4fd8,0x4fdf,0x4fca,0x4fd7, +0x4fae,0x4fd0,0x4fc4,0x4fc2,0x4fda,0x4fce,0x4fde,0x4fb7, +0x5157,0x5192,0x5191,0x51a0,0x524e,0x5243,0x524a,0x524d, +0x524c,0x524b,0x5247,0x52c7,0x52c9,0x52c3,0x52c1,0x530d, +0x5357,0x537b,0x539a,0x53db,0x54ac,0x54c0,0x54a8,0x54ce, +0x54c9,0x54b8,0x54a6,0x54b3,0x54c7,0x54c2,0x54bd,0x54aa, +0x54c1,0x54c4,0x54c8,0x54af,0x54ab,0x54b1,0x54bb,0x54a9, +0x54a7,0x54bf,0x56ff,0x5782,0x578b,0x57a0,0x57a3,0x57a2, +0x57ce,0x57ae,0x5793,0x5955,0x5951,0x594f,0x594e,0x5950, +0x59dc,0x59d8,0x59ff,0x59e3,0x59e8,0x5a03,0x59e5,0x59ea, +0x59da,0x59e6,0x5a01,0x59fb,0x5b69,0x5ba3,0x5ba6,0x5ba4, +0x5ba2,0x5ba5,0x5c01,0x5c4e,0x5c4f,0x5c4d,0x5c4b,0x5cd9, +0x5cd2,0x5df7,0x5e1d,0x5e25,0x5e1f,0x5e7d,0x5ea0,0x5ea6, +0x5efa,0x5f08,0x5f2d,0x5f65,0x5f88,0x5f85,0x5f8a,0x5f8b, +0x5f87,0x5f8c,0x5f89,0x6012,0x601d,0x6020,0x6025,0x600e, +0x6028,0x604d,0x6070,0x6068,0x6062,0x6046,0x6043,0x606c, +0x606b,0x606a,0x6064,0x6241,0x62dc,0x6316,0x6309,0x62fc, +0x62ed,0x6301,0x62ee,0x62fd,0x6307,0x62f1,0x62f7,0x62ef, +0x62ec,0x62fe,0x62f4,0x6311,0x6302,0x653f,0x6545,0x65ab, +0x65bd,0x65e2,0x6625,0x662d,0x6620,0x6627,0x662f,0x661f, +0x6628,0x6631,0x6624,0x66f7,0x67ff,0x67d3,0x67f1,0x67d4, +0x67d0,0x67ec,0x67b6,0x67af,0x67f5,0x67e9,0x67ef,0x67c4, +0x67d1,0x67b4,0x67da,0x67e5,0x67b8,0x67cf,0x67de,0x67f3, +0x67b0,0x67d9,0x67e2,0x67dd,0x67d2,0x6b6a,0x6b83,0x6b86, +0x6bb5,0x6bd2,0x6bd7,0x6c1f,0x6cc9,0x6d0b,0x6d32,0x6d2a, +0x6d41,0x6d25,0x6d0c,0x6d31,0x6d1e,0x6d17,0x6d3b,0x6d3d, +0x6d3e,0x6d36,0x6d1b,0x6cf5,0x6d39,0x6d27,0x6d38,0x6d29, +0x6d2e,0x6d35,0x6d0e,0x6d2b,0x70ab,0x70ba,0x70b3,0x70ac, +0x70af,0x70ad,0x70b8,0x70ae,0x70a4,0x7230,0x7272,0x726f, +0x7274,0x72e9,0x72e0,0x72e1,0x73b7,0x73ca,0x73bb,0x73b2, +0x73cd,0x73c0,0x73b3,0x751a,0x752d,0x754f,0x754c,0x754e, +0x754b,0x75ab,0x75a4,0x75a5,0x75a2,0x75a3,0x7678,0x7686, +0x7687,0x7688,0x76c8,0x76c6,0x76c3,0x76c5,0x7701,0x76f9, +0x76f8,0x7709,0x770b,0x76fe,0x76fc,0x7707,0x77dc,0x7802, +0x7814,0x780c,0x780d,0x7946,0x7949,0x7948,0x7947,0x79b9, +0x79ba,0x79d1,0x79d2,0x79cb,0x7a7f,0x7a81,0x7aff,0x7afd, +0x7c7d,0x7d02,0x7d05,0x7d00,0x7d09,0x7d07,0x7d04,0x7d06, +0x7f38,0x7f8e,0x7fbf,0x8004,0x8010,0x800d,0x8011,0x8036, +0x80d6,0x80e5,0x80da,0x80c3,0x80c4,0x80cc,0x80e1,0x80db, +0x80ce,0x80de,0x80e4,0x80dd,0x81f4,0x8222,0x82e7,0x8303, +0x8305,0x82e3,0x82db,0x82e6,0x8304,0x82e5,0x8302,0x8309, +0x82d2,0x82d7,0x82f1,0x8301,0x82dc,0x82d4,0x82d1,0x82de, +0x82d3,0x82df,0x82ef,0x8306,0x8650,0x8679,0x867b,0x867a, +0x884d,0x886b,0x8981,0x89d4,0x8a08,0x8a02,0x8a03,0x8c9e, +0x8ca0,0x8d74,0x8d73,0x8db4,0x8ecd,0x8ecc,0x8ff0,0x8fe6, +0x8fe2,0x8fea,0x8fe5,0x8fed,0x8feb,0x8fe4,0x8fe8,0x90ca, +0x90ce,0x90c1,0x90c3,0x914b,0x914a,0x91cd,0x9582,0x9650, +0x964b,0x964c,0x964d,0x9762,0x9769,0x97cb,0x97ed,0x97f3, +0x9801,0x98a8,0x98db,0x98df,0x9996,0x9999,0x4e58,0x4eb3, +0x500c,0x500d,0x5023,0x4fef,0x5026,0x5025,0x4ff8,0x5029, +0x5016,0x5006,0x503c,0x501f,0x501a,0x5012,0x5011,0x4ffa, +0x5000,0x5014,0x5028,0x4ff1,0x5021,0x500b,0x5019,0x5018, +0x4ff3,0x4fee,0x502d,0x502a,0x4ffe,0x502b,0x5009,0x517c, +0x51a4,0x51a5,0x51a2,0x51cd,0x51cc,0x51c6,0x51cb,0x5256, +0x525c,0x5254,0x525b,0x525d,0x532a,0x537f,0x539f,0x539d, +0x53df,0x54e8,0x5510,0x5501,0x5537,0x54fc,0x54e5,0x54f2, +0x5506,0x54fa,0x5514,0x54e9,0x54ed,0x54e1,0x5509,0x54ee, +0x54ea,0x54e6,0x5527,0x5507,0x54fd,0x550f,0x5703,0x5704, +0x57c2,0x57d4,0x57cb,0x57c3,0x5809,0x590f,0x5957,0x5958, +0x595a,0x5a11,0x5a18,0x5a1c,0x5a1f,0x5a1b,0x5a13,0x59ec, +0x5a20,0x5a23,0x5a29,0x5a25,0x5a0c,0x5a09,0x5b6b,0x5c58, +0x5bb0,0x5bb3,0x5bb6,0x5bb4,0x5bae,0x5bb5,0x5bb9,0x5bb8, +0x5c04,0x5c51,0x5c55,0x5c50,0x5ced,0x5cfd,0x5cfb,0x5cea, +0x5ce8,0x5cf0,0x5cf6,0x5d01,0x5cf4,0x5dee,0x5e2d,0x5e2b, +0x5eab,0x5ead,0x5ea7,0x5f31,0x5f92,0x5f91,0x5f90,0x6059, +0x6063,0x6065,0x6050,0x6055,0x606d,0x6069,0x606f,0x6084, +0x609f,0x609a,0x608d,0x6094,0x608c,0x6085,0x6096,0x6247, +0x62f3,0x6308,0x62ff,0x634e,0x633e,0x632f,0x6355,0x6342, +0x6346,0x634f,0x6349,0x633a,0x6350,0x633d,0x632a,0x632b, +0x6328,0x634d,0x634c,0x6548,0x6549,0x6599,0x65c1,0x65c5, +0x6642,0x6649,0x664f,0x6643,0x6652,0x664c,0x6645,0x6641, +0x66f8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,0x6846, +0x6853,0x6839,0x6842,0x6854,0x6829,0x68b3,0x6817,0x684c, +0x6851,0x683d,0x67f4,0x6850,0x6840,0x683c,0x6843,0x682a, +0x6845,0x6813,0x6818,0x6841,0x6b8a,0x6b89,0x6bb7,0x6c23, +0x6c27,0x6c28,0x6c26,0x6c24,0x6cf0,0x6d6a,0x6d95,0x6d88, +0x6d87,0x6d66,0x6d78,0x6d77,0x6d59,0x6d93,0x6d6c,0x6d89, +0x6d6e,0x6d5a,0x6d74,0x6d69,0x6d8c,0x6d8a,0x6d79,0x6d85, +0x6d65,0x6d94,0x70ca,0x70d8,0x70e4,0x70d9,0x70c8,0x70cf, +0x7239,0x7279,0x72fc,0x72f9,0x72fd,0x72f8,0x72f7,0x7386, +0x73ed,0x7409,0x73ee,0x73e0,0x73ea,0x73de,0x7554,0x755d, +0x755c,0x755a,0x7559,0x75be,0x75c5,0x75c7,0x75b2,0x75b3, +0x75bd,0x75bc,0x75b9,0x75c2,0x75b8,0x768b,0x76b0,0x76ca, +0x76cd,0x76ce,0x7729,0x771f,0x7720,0x7728,0x77e9,0x7830, +0x7827,0x7838,0x781d,0x7834,0x7837,0x7825,0x782d,0x7820, +0x781f,0x7832,0x7955,0x7950,0x7960,0x795f,0x7956,0x795e, +0x795d,0x7957,0x795a,0x79e4,0x79e3,0x79e7,0x79df,0x79e6, +0x79e9,0x79d8,0x7a84,0x7a88,0x7ad9,0x7b06,0x7b11,0x7c89, +0x7d21,0x7d17,0x7d0b,0x7d0a,0x7d20,0x7d22,0x7d14,0x7d10, +0x7d15,0x7d1a,0x7d1c,0x7d0d,0x7d19,0x7d1b,0x7f3a,0x7f5f, +0x7f94,0x7fc5,0x7fc1,0x8006,0x8018,0x8015,0x8019,0x8017, +0x803d,0x803f,0x80f1,0x8102,0x80f0,0x8105,0x80ed,0x80f4, +0x8106,0x80f8,0x80f3,0x8108,0x80fd,0x810a,0x80fc,0x80ef, +0x81ed,0x81ec,0x8200,0x8210,0x822a,0x822b,0x8228,0x822c, +0x82bb,0x832b,0x8352,0x8354,0x834a,0x8338,0x8350,0x8349, +0x8335,0x8334,0x834f,0x8332,0x8339,0x8336,0x8317,0x8340, +0x8331,0x8328,0x8343,0x8654,0x868a,0x86aa,0x8693,0x86a4, +0x86a9,0x868c,0x86a3,0x869c,0x8870,0x8877,0x8881,0x8882, +0x887d,0x8879,0x8a18,0x8a10,0x8a0e,0x8a0c,0x8a15,0x8a0a, +0x8a17,0x8a13,0x8a16,0x8a0f,0x8a11,0x8c48,0x8c7a,0x8c79, +0x8ca1,0x8ca2,0x8d77,0x8eac,0x8ed2,0x8ed4,0x8ecf,0x8fb1, +0x9001,0x9006,0x8ff7,0x9000,0x8ffa,0x8ff4,0x9003,0x8ffd, +0x9005,0x8ff8,0x9095,0x90e1,0x90dd,0x90e2,0x9152,0x914d, +0x914c,0x91d8,0x91dd,0x91d7,0x91dc,0x91d9,0x9583,0x9662, +0x9663,0x9661,0x965b,0x965d,0x9664,0x9658,0x965e,0x96bb, +0x98e2,0x99ac,0x9aa8,0x9ad8,0x9b25,0x9b32,0x9b3c,0x4e7e, +0x507a,0x507d,0x505c,0x5047,0x5043,0x504c,0x505a,0x5049, +0x5065,0x5076,0x504e,0x5055,0x5075,0x5074,0x5077,0x504f, +0x500f,0x506f,0x506d,0x515c,0x5195,0x51f0,0x526a,0x526f, +0x52d2,0x52d9,0x52d8,0x52d5,0x5310,0x530f,0x5319,0x533f, +0x5340,0x533e,0x53c3,0x66fc,0x5546,0x556a,0x5566,0x5544, +0x555e,0x5561,0x5543,0x554a,0x5531,0x5556,0x554f,0x5555, +0x552f,0x5564,0x5538,0x552e,0x555c,0x552c,0x5563,0x5533, +0x5541,0x5557,0x5708,0x570b,0x5709,0x57df,0x5805,0x580a, +0x5806,0x57e0,0x57e4,0x57fa,0x5802,0x5835,0x57f7,0x57f9, +0x5920,0x5962,0x5a36,0x5a41,0x5a49,0x5a66,0x5a6a,0x5a40, +0x5a3c,0x5a62,0x5a5a,0x5a46,0x5a4a,0x5b70,0x5bc7,0x5bc5, +0x5bc4,0x5bc2,0x5bbf,0x5bc6,0x5c09,0x5c08,0x5c07,0x5c60, +0x5c5c,0x5c5d,0x5d07,0x5d06,0x5d0e,0x5d1b,0x5d16,0x5d22, +0x5d11,0x5d29,0x5d14,0x5d19,0x5d24,0x5d27,0x5d17,0x5de2, +0x5e38,0x5e36,0x5e33,0x5e37,0x5eb7,0x5eb8,0x5eb6,0x5eb5, +0x5ebe,0x5f35,0x5f37,0x5f57,0x5f6c,0x5f69,0x5f6b,0x5f97, +0x5f99,0x5f9e,0x5f98,0x5fa1,0x5fa0,0x5f9c,0x607f,0x60a3, +0x6089,0x60a0,0x60a8,0x60cb,0x60b4,0x60e6,0x60bd,0x60c5, +0x60bb,0x60b5,0x60dc,0x60bc,0x60d8,0x60d5,0x60c6,0x60df, +0x60b8,0x60da,0x60c7,0x621a,0x621b,0x6248,0x63a0,0x63a7, +0x6372,0x6396,0x63a2,0x63a5,0x6377,0x6367,0x6398,0x63aa, +0x6371,0x63a9,0x6389,0x6383,0x639b,0x636b,0x63a8,0x6384, +0x6388,0x6399,0x63a1,0x63ac,0x6392,0x638f,0x6380,0x637b, +0x6369,0x6368,0x637a,0x655d,0x6556,0x6551,0x6559,0x6557, +0x555f,0x654f,0x6558,0x6555,0x6554,0x659c,0x659b,0x65ac, +0x65cf,0x65cb,0x65cc,0x65ce,0x665d,0x665a,0x6664,0x6668, +0x6666,0x665e,0x66f9,0x52d7,0x671b,0x6881,0x68af,0x68a2, +0x6893,0x68b5,0x687f,0x6876,0x68b1,0x68a7,0x6897,0x68b0, +0x6883,0x68c4,0x68ad,0x6886,0x6885,0x6894,0x689d,0x68a8, +0x689f,0x68a1,0x6882,0x6b32,0x6bba,0x6beb,0x6bec,0x6c2b, +0x6d8e,0x6dbc,0x6df3,0x6dd9,0x6db2,0x6de1,0x6dcc,0x6de4, +0x6dfb,0x6dfa,0x6e05,0x6dc7,0x6dcb,0x6daf,0x6dd1,0x6dae, +0x6dde,0x6df9,0x6db8,0x6df7,0x6df5,0x6dc5,0x6dd2,0x6e1a, +0x6db5,0x6dda,0x6deb,0x6dd8,0x6dea,0x6df1,0x6dee,0x6de8, +0x6dc6,0x6dc4,0x6daa,0x6dec,0x6dbf,0x6de6,0x70f9,0x7109, +0x710a,0x70fd,0x70ef,0x723d,0x727d,0x7281,0x731c,0x731b, +0x7316,0x7313,0x7319,0x7387,0x7405,0x740a,0x7403,0x7406, +0x73fe,0x740d,0x74e0,0x74f6,0x74f7,0x751c,0x7522,0x7565, +0x7566,0x7562,0x7570,0x758f,0x75d4,0x75d5,0x75b5,0x75ca, +0x75cd,0x768e,0x76d4,0x76d2,0x76db,0x7737,0x773e,0x773c, +0x7736,0x7738,0x773a,0x786b,0x7843,0x784e,0x7965,0x7968, +0x796d,0x79fb,0x7a92,0x7a95,0x7b20,0x7b28,0x7b1b,0x7b2c, +0x7b26,0x7b19,0x7b1e,0x7b2e,0x7c92,0x7c97,0x7c95,0x7d46, +0x7d43,0x7d71,0x7d2e,0x7d39,0x7d3c,0x7d40,0x7d30,0x7d33, +0x7d44,0x7d2f,0x7d42,0x7d32,0x7d31,0x7f3d,0x7f9e,0x7f9a, +0x7fcc,0x7fce,0x7fd2,0x801c,0x804a,0x8046,0x812f,0x8116, +0x8123,0x812b,0x8129,0x8130,0x8124,0x8202,0x8235,0x8237, +0x8236,0x8239,0x838e,0x839e,0x8398,0x8378,0x83a2,0x8396, +0x83bd,0x83ab,0x8392,0x838a,0x8393,0x8389,0x83a0,0x8377, +0x837b,0x837c,0x8386,0x83a7,0x8655,0x5f6a,0x86c7,0x86c0, +0x86b6,0x86c4,0x86b5,0x86c6,0x86cb,0x86b1,0x86af,0x86c9, +0x8853,0x889e,0x8888,0x88ab,0x8892,0x8896,0x888d,0x888b, +0x8993,0x898f,0x8a2a,0x8a1d,0x8a23,0x8a25,0x8a31,0x8a2d, +0x8a1f,0x8a1b,0x8a22,0x8c49,0x8c5a,0x8ca9,0x8cac,0x8cab, +0x8ca8,0x8caa,0x8ca7,0x8d67,0x8d66,0x8dbe,0x8dba,0x8edb, +0x8edf,0x9019,0x900d,0x901a,0x9017,0x9023,0x901f,0x901d, +0x9010,0x9015,0x901e,0x9020,0x900f,0x9022,0x9016,0x901b, +0x9014,0x90e8,0x90ed,0x90fd,0x9157,0x91ce,0x91f5,0x91e6, +0x91e3,0x91e7,0x91ed,0x91e9,0x9589,0x966a,0x9675,0x9673, +0x9678,0x9670,0x9674,0x9676,0x9677,0x966c,0x96c0,0x96ea, +0x96e9,0x7ae0,0x7adf,0x9802,0x9803,0x9b5a,0x9ce5,0x9e75, +0x9e7f,0x9ea5,0x9ebb,0x50a2,0x508d,0x5085,0x5099,0x5091, +0x5080,0x5096,0x5098,0x509a,0x6700,0x51f1,0x5272,0x5274, +0x5275,0x5269,0x52de,0x52dd,0x52db,0x535a,0x53a5,0x557b, +0x5580,0x55a7,0x557c,0x558a,0x559d,0x5598,0x5582,0x559c, +0x55aa,0x5594,0x5587,0x558b,0x5583,0x55b3,0x55ae,0x559f, +0x553e,0x55b2,0x559a,0x55bb,0x55ac,0x55b1,0x557e,0x5589, +0x55ab,0x5599,0x570d,0x582f,0x582a,0x5834,0x5824,0x5830, +0x5831,0x5821,0x581d,0x5820,0x58f9,0x58fa,0x5960,0x5a77, +0x5a9a,0x5a7f,0x5a92,0x5a9b,0x5aa7,0x5b73,0x5b71,0x5bd2, +0x5bcc,0x5bd3,0x5bd0,0x5c0a,0x5c0b,0x5c31,0x5d4c,0x5d50, +0x5d34,0x5d47,0x5dfd,0x5e45,0x5e3d,0x5e40,0x5e43,0x5e7e, +0x5eca,0x5ec1,0x5ec2,0x5ec4,0x5f3c,0x5f6d,0x5fa9,0x5faa, +0x5fa8,0x60d1,0x60e1,0x60b2,0x60b6,0x60e0,0x611c,0x6123, +0x60fa,0x6115,0x60f0,0x60fb,0x60f4,0x6168,0x60f1,0x610e, +0x60f6,0x6109,0x6100,0x6112,0x621f,0x6249,0x63a3,0x638c, +0x63cf,0x63c0,0x63e9,0x63c9,0x63c6,0x63cd,0x63d2,0x63e3, +0x63d0,0x63e1,0x63d6,0x63ed,0x63ee,0x6376,0x63f4,0x63ea, +0x63db,0x6452,0x63da,0x63f9,0x655e,0x6566,0x6562,0x6563, +0x6591,0x6590,0x65af,0x666e,0x6670,0x6674,0x6676,0x666f, +0x6691,0x667a,0x667e,0x6677,0x66fe,0x66ff,0x671f,0x671d, +0x68fa,0x68d5,0x68e0,0x68d8,0x68d7,0x6905,0x68df,0x68f5, +0x68ee,0x68e7,0x68f9,0x68d2,0x68f2,0x68e3,0x68cb,0x68cd, +0x690d,0x6912,0x690e,0x68c9,0x68da,0x696e,0x68fb,0x6b3e, +0x6b3a,0x6b3d,0x6b98,0x6b96,0x6bbc,0x6bef,0x6c2e,0x6c2f, +0x6c2c,0x6e2f,0x6e38,0x6e54,0x6e21,0x6e32,0x6e67,0x6e4a, +0x6e20,0x6e25,0x6e23,0x6e1b,0x6e5b,0x6e58,0x6e24,0x6e56, +0x6e6e,0x6e2d,0x6e26,0x6e6f,0x6e34,0x6e4d,0x6e3a,0x6e2c, +0x6e43,0x6e1d,0x6e3e,0x6ecb,0x6e89,0x6e19,0x6e4e,0x6e63, +0x6e44,0x6e72,0x6e69,0x6e5f,0x7119,0x711a,0x7126,0x7130, +0x7121,0x7136,0x716e,0x711c,0x724c,0x7284,0x7280,0x7336, +0x7325,0x7334,0x7329,0x743a,0x742a,0x7433,0x7422,0x7425, +0x7435,0x7436,0x7434,0x742f,0x741b,0x7426,0x7428,0x7525, +0x7526,0x756b,0x756a,0x75e2,0x75db,0x75e3,0x75d9,0x75d8, +0x75de,0x75e0,0x767b,0x767c,0x7696,0x7693,0x76b4,0x76dc, +0x774f,0x77ed,0x785d,0x786c,0x786f,0x7a0d,0x7a08,0x7a0b, +0x7a05,0x7a00,0x7a98,0x7a97,0x7a96,0x7ae5,0x7ae3,0x7b49, +0x7b56,0x7b46,0x7b50,0x7b52,0x7b54,0x7b4d,0x7b4b,0x7b4f, +0x7b51,0x7c9f,0x7ca5,0x7d5e,0x7d50,0x7d68,0x7d55,0x7d2b, +0x7d6e,0x7d72,0x7d61,0x7d66,0x7d62,0x7d70,0x7d73,0x5584, +0x7fd4,0x7fd5,0x800b,0x8052,0x8085,0x8155,0x8154,0x814b, +0x8151,0x814e,0x8139,0x8146,0x813e,0x814c,0x8153,0x8174, +0x8212,0x821c,0x83e9,0x8403,0x83f8,0x840d,0x83e0,0x83c5, +0x840b,0x83c1,0x83ef,0x83f1,0x83f4,0x8457,0x840a,0x83f0, +0x840c,0x83cc,0x83fd,0x83f2,0x83ca,0x8438,0x840e,0x8404, +0x83dc,0x8407,0x83d4,0x83df,0x865b,0x86df,0x86d9,0x86ed, +0x86d4,0x86db,0x86e4,0x86d0,0x86de,0x8857,0x88c1,0x88c2, +0x88b1,0x8983,0x8996,0x8a3b,0x8a60,0x8a55,0x8a5e,0x8a3c, +0x8a41,0x8a54,0x8a5b,0x8a50,0x8a46,0x8a34,0x8a3a,0x8a36, +0x8a56,0x8c61,0x8c82,0x8caf,0x8cbc,0x8cb3,0x8cbd,0x8cc1, +0x8cbb,0x8cc0,0x8cb4,0x8cb7,0x8cb6,0x8cbf,0x8cb8,0x8d8a, +0x8d85,0x8d81,0x8dce,0x8ddd,0x8dcb,0x8dda,0x8dd1,0x8dcc, +0x8ddb,0x8dc6,0x8efb,0x8ef8,0x8efc,0x8f9c,0x902e,0x9035, +0x9031,0x9038,0x9032,0x9036,0x9102,0x90f5,0x9109,0x90fe, +0x9163,0x9165,0x91cf,0x9214,0x9215,0x9223,0x9209,0x921e, +0x920d,0x9210,0x9207,0x9211,0x9594,0x958f,0x958b,0x9591, +0x9593,0x9592,0x958e,0x968a,0x968e,0x968b,0x967d,0x9685, +0x9686,0x968d,0x9672,0x9684,0x96c1,0x96c5,0x96c4,0x96c6, +0x96c7,0x96ef,0x96f2,0x97cc,0x9805,0x9806,0x9808,0x98e7, +0x98ea,0x98ef,0x98e9,0x98f2,0x98ed,0x99ae,0x99ad,0x9ec3, +0x9ecd,0x9ed1,0x4e82,0x50ad,0x50b5,0x50b2,0x50b3,0x50c5, +0x50be,0x50ac,0x50b7,0x50bb,0x50af,0x50c7,0x527f,0x5277, +0x527d,0x52df,0x52e6,0x52e4,0x52e2,0x52e3,0x532f,0x55df, +0x55e8,0x55d3,0x55e6,0x55ce,0x55dc,0x55c7,0x55d1,0x55e3, +0x55e4,0x55ef,0x55da,0x55e1,0x55c5,0x55c6,0x55e5,0x55c9, +0x5712,0x5713,0x585e,0x5851,0x5858,0x5857,0x585a,0x5854, +0x586b,0x584c,0x586d,0x584a,0x5862,0x5852,0x584b,0x5967, +0x5ac1,0x5ac9,0x5acc,0x5abe,0x5abd,0x5abc,0x5ab3,0x5ac2, +0x5ab2,0x5d69,0x5d6f,0x5e4c,0x5e79,0x5ec9,0x5ec8,0x5f12, +0x5f59,0x5fac,0x5fae,0x611a,0x610f,0x6148,0x611f,0x60f3, +0x611b,0x60f9,0x6101,0x6108,0x614e,0x614c,0x6144,0x614d, +0x613e,0x6134,0x6127,0x610d,0x6106,0x6137,0x6221,0x6222, +0x6413,0x643e,0x641e,0x642a,0x642d,0x643d,0x642c,0x640f, +0x641c,0x6414,0x640d,0x6436,0x6416,0x6417,0x6406,0x656c, +0x659f,0x65b0,0x6697,0x6689,0x6687,0x6688,0x6696,0x6684, +0x6698,0x668d,0x6703,0x6994,0x696d,0x695a,0x6977,0x6960, +0x6954,0x6975,0x6930,0x6982,0x694a,0x6968,0x696b,0x695e, +0x6953,0x6979,0x6986,0x695d,0x6963,0x695b,0x6b47,0x6b72, +0x6bc0,0x6bbf,0x6bd3,0x6bfd,0x6ea2,0x6eaf,0x6ed3,0x6eb6, +0x6ec2,0x6e90,0x6e9d,0x6ec7,0x6ec5,0x6ea5,0x6e98,0x6ebc, +0x6eba,0x6eab,0x6ed1,0x6e96,0x6e9c,0x6ec4,0x6ed4,0x6eaa, +0x6ea7,0x6eb4,0x714e,0x7159,0x7169,0x7164,0x7149,0x7167, +0x715c,0x716c,0x7166,0x714c,0x7165,0x715e,0x7146,0x7168, +0x7156,0x723a,0x7252,0x7337,0x7345,0x733f,0x733e,0x746f, +0x745a,0x7455,0x745f,0x745e,0x7441,0x743f,0x7459,0x745b, +0x745c,0x7576,0x7578,0x7600,0x75f0,0x7601,0x75f2,0x75f1, +0x75fa,0x75ff,0x75f4,0x75f3,0x76de,0x76df,0x775b,0x776b, +0x7766,0x775e,0x7763,0x7779,0x776a,0x776c,0x775c,0x7765, +0x7768,0x7762,0x77ee,0x788e,0x78b0,0x7897,0x7898,0x788c, +0x7889,0x787c,0x7891,0x7893,0x787f,0x797a,0x797f,0x7981, +0x842c,0x79bd,0x7a1c,0x7a1a,0x7a20,0x7a14,0x7a1f,0x7a1e, +0x7a9f,0x7aa0,0x7b77,0x7bc0,0x7b60,0x7b6e,0x7b67,0x7cb1, +0x7cb3,0x7cb5,0x7d93,0x7d79,0x7d91,0x7d81,0x7d8f,0x7d5b, +0x7f6e,0x7f69,0x7f6a,0x7f72,0x7fa9,0x7fa8,0x7fa4,0x8056, +0x8058,0x8086,0x8084,0x8171,0x8170,0x8178,0x8165,0x816e, +0x8173,0x816b,0x8179,0x817a,0x8166,0x8205,0x8247,0x8482, +0x8477,0x843d,0x8431,0x8475,0x8466,0x846b,0x8449,0x846c, +0x845b,0x843c,0x8435,0x8461,0x8463,0x8469,0x846d,0x8446, +0x865e,0x865c,0x865f,0x86f9,0x8713,0x8708,0x8707,0x8700, +0x86fe,0x86fb,0x8702,0x8703,0x8706,0x870a,0x8859,0x88df, +0x88d4,0x88d9,0x88dc,0x88d8,0x88dd,0x88e1,0x88ca,0x88d5, +0x88d2,0x899c,0x89e3,0x8a6b,0x8a72,0x8a73,0x8a66,0x8a69, +0x8a70,0x8a87,0x8a7c,0x8a63,0x8aa0,0x8a71,0x8a85,0x8a6d, +0x8a62,0x8a6e,0x8a6c,0x8a79,0x8a7b,0x8a3e,0x8a68,0x8c62, +0x8c8a,0x8c89,0x8cca,0x8cc7,0x8cc8,0x8cc4,0x8cb2,0x8cc3, +0x8cc2,0x8cc5,0x8de1,0x8ddf,0x8de8,0x8def,0x8df3,0x8dfa, +0x8dea,0x8de4,0x8de6,0x8eb2,0x8f03,0x8f09,0x8efe,0x8f0a, +0x8f9f,0x8fb2,0x904b,0x904a,0x9053,0x9042,0x9054,0x903c, +0x9055,0x9050,0x9047,0x904f,0x904e,0x904d,0x9051,0x903e, +0x9041,0x9112,0x9117,0x916c,0x916a,0x9169,0x91c9,0x9237, +0x9257,0x9238,0x923d,0x9240,0x923e,0x925b,0x924b,0x9264, +0x9251,0x9234,0x9249,0x924d,0x9245,0x9239,0x923f,0x925a, +0x9598,0x9698,0x9694,0x9695,0x96cd,0x96cb,0x96c9,0x96ca, +0x96f7,0x96fb,0x96f9,0x96f6,0x9756,0x9774,0x9776,0x9810, +0x9811,0x9813,0x980a,0x9812,0x980c,0x98fc,0x98f4,0x98fd, +0x98fe,0x99b3,0x99b1,0x99b4,0x9ae1,0x9ce9,0x9e82,0x9f0e, +0x9f13,0x9f20,0x50e7,0x50ee,0x50e5,0x50d6,0x50ed,0x50da, +0x50d5,0x50cf,0x50d1,0x50f1,0x50ce,0x50e9,0x5162,0x51f3, +0x5283,0x5282,0x5331,0x53ad,0x55fe,0x5600,0x561b,0x5617, +0x55fd,0x5614,0x5606,0x5609,0x560d,0x560e,0x55f7,0x5616, +0x561f,0x5608,0x5610,0x55f6,0x5718,0x5716,0x5875,0x587e, +0x5883,0x5893,0x588a,0x5879,0x5885,0x587d,0x58fd,0x5925, +0x5922,0x5924,0x596a,0x5969,0x5ae1,0x5ae6,0x5ae9,0x5ad7, +0x5ad6,0x5ad8,0x5ae3,0x5b75,0x5bde,0x5be7,0x5be1,0x5be5, +0x5be6,0x5be8,0x5be2,0x5be4,0x5bdf,0x5c0d,0x5c62,0x5d84, +0x5d87,0x5e5b,0x5e63,0x5e55,0x5e57,0x5e54,0x5ed3,0x5ed6, +0x5f0a,0x5f46,0x5f70,0x5fb9,0x6147,0x613f,0x614b,0x6177, +0x6162,0x6163,0x615f,0x615a,0x6158,0x6175,0x622a,0x6487, +0x6458,0x6454,0x64a4,0x6478,0x645f,0x647a,0x6451,0x6467, +0x6434,0x646d,0x647b,0x6572,0x65a1,0x65d7,0x65d6,0x66a2, +0x66a8,0x669d,0x699c,0x69a8,0x6995,0x69c1,0x69ae,0x69d3, +0x69cb,0x699b,0x69b7,0x69bb,0x69ab,0x69b4,0x69d0,0x69cd, +0x69ad,0x69cc,0x69a6,0x69c3,0x69a3,0x6b49,0x6b4c,0x6c33, +0x6f33,0x6f14,0x6efe,0x6f13,0x6ef4,0x6f29,0x6f3e,0x6f20, +0x6f2c,0x6f0f,0x6f02,0x6f22,0x6eff,0x6eef,0x6f06,0x6f31, +0x6f38,0x6f32,0x6f23,0x6f15,0x6f2b,0x6f2f,0x6f88,0x6f2a, +0x6eec,0x6f01,0x6ef2,0x6ecc,0x6ef7,0x7194,0x7199,0x717d, +0x718a,0x7184,0x7192,0x723e,0x7292,0x7296,0x7344,0x7350, +0x7464,0x7463,0x746a,0x7470,0x746d,0x7504,0x7591,0x7627, +0x760d,0x760b,0x7609,0x7613,0x76e1,0x76e3,0x7784,0x777d, +0x777f,0x7761,0x78c1,0x789f,0x78a7,0x78b3,0x78a9,0x78a3, +0x798e,0x798f,0x798d,0x7a2e,0x7a31,0x7aaa,0x7aa9,0x7aed, +0x7aef,0x7ba1,0x7b95,0x7b8b,0x7b75,0x7b97,0x7b9d,0x7b94, +0x7b8f,0x7bb8,0x7b87,0x7b84,0x7cb9,0x7cbd,0x7cbe,0x7dbb, +0x7db0,0x7d9c,0x7dbd,0x7dbe,0x7da0,0x7dca,0x7db4,0x7db2, +0x7db1,0x7dba,0x7da2,0x7dbf,0x7db5,0x7db8,0x7dad,0x7dd2, +0x7dc7,0x7dac,0x7f70,0x7fe0,0x7fe1,0x7fdf,0x805e,0x805a, +0x8087,0x8150,0x8180,0x818f,0x8188,0x818a,0x817f,0x8182, +0x81e7,0x81fa,0x8207,0x8214,0x821e,0x824b,0x84c9,0x84bf, +0x84c6,0x84c4,0x8499,0x849e,0x84b2,0x849c,0x84cb,0x84b8, +0x84c0,0x84d3,0x8490,0x84bc,0x84d1,0x84ca,0x873f,0x871c, +0x873b,0x8722,0x8725,0x8734,0x8718,0x8755,0x8737,0x8729, +0x88f3,0x8902,0x88f4,0x88f9,0x88f8,0x88fd,0x88e8,0x891a, +0x88ef,0x8aa6,0x8a8c,0x8a9e,0x8aa3,0x8a8d,0x8aa1,0x8a93, +0x8aa4,0x8aaa,0x8aa5,0x8aa8,0x8a98,0x8a91,0x8a9a,0x8aa7, +0x8c6a,0x8c8d,0x8c8c,0x8cd3,0x8cd1,0x8cd2,0x8d6b,0x8d99, +0x8d95,0x8dfc,0x8f14,0x8f12,0x8f15,0x8f13,0x8fa3,0x9060, +0x9058,0x905c,0x9063,0x9059,0x905e,0x9062,0x905d,0x905b, +0x9119,0x9118,0x911e,0x9175,0x9178,0x9177,0x9174,0x9278, +0x9280,0x9285,0x9298,0x9296,0x927b,0x9293,0x929c,0x92a8, +0x927c,0x9291,0x95a1,0x95a8,0x95a9,0x95a3,0x95a5,0x95a4, +0x9699,0x969c,0x969b,0x96cc,0x96d2,0x9700,0x977c,0x9785, +0x97f6,0x9817,0x9818,0x98af,0x98b1,0x9903,0x9905,0x990c, +0x9909,0x99c1,0x9aaf,0x9ab0,0x9ae6,0x9b41,0x9b42,0x9cf4, +0x9cf6,0x9cf3,0x9ebc,0x9f3b,0x9f4a,0x5104,0x5100,0x50fb, +0x50f5,0x50f9,0x5102,0x5108,0x5109,0x5105,0x51dc,0x5287, +0x5288,0x5289,0x528d,0x528a,0x52f0,0x53b2,0x562e,0x563b, +0x5639,0x5632,0x563f,0x5634,0x5629,0x5653,0x564e,0x5657, +0x5674,0x5636,0x562f,0x5630,0x5880,0x589f,0x589e,0x58b3, +0x589c,0x58ae,0x58a9,0x58a6,0x596d,0x5b09,0x5afb,0x5b0b, +0x5af5,0x5b0c,0x5b08,0x5bee,0x5bec,0x5be9,0x5beb,0x5c64, +0x5c65,0x5d9d,0x5d94,0x5e62,0x5e5f,0x5e61,0x5ee2,0x5eda, +0x5edf,0x5edd,0x5ee3,0x5ee0,0x5f48,0x5f71,0x5fb7,0x5fb5, +0x6176,0x6167,0x616e,0x615d,0x6155,0x6182,0x617c,0x6170, +0x616b,0x617e,0x61a7,0x6190,0x61ab,0x618e,0x61ac,0x619a, +0x61a4,0x6194,0x61ae,0x622e,0x6469,0x646f,0x6479,0x649e, +0x64b2,0x6488,0x6490,0x64b0,0x64a5,0x6493,0x6495,0x64a9, +0x6492,0x64ae,0x64ad,0x64ab,0x649a,0x64ac,0x6499,0x64a2, +0x64b3,0x6575,0x6577,0x6578,0x66ae,0x66ab,0x66b4,0x66b1, +0x6a23,0x6a1f,0x69e8,0x6a01,0x6a1e,0x6a19,0x69fd,0x6a21, +0x6a13,0x6a0a,0x69f3,0x6a02,0x6a05,0x69ed,0x6a11,0x6b50, +0x6b4e,0x6ba4,0x6bc5,0x6bc6,0x6f3f,0x6f7c,0x6f84,0x6f51, +0x6f66,0x6f54,0x6f86,0x6f6d,0x6f5b,0x6f78,0x6f6e,0x6f8e, +0x6f7a,0x6f70,0x6f64,0x6f97,0x6f58,0x6ed5,0x6f6f,0x6f60, +0x6f5f,0x719f,0x71ac,0x71b1,0x71a8,0x7256,0x729b,0x734e, +0x7357,0x7469,0x748b,0x7483,0x747e,0x7480,0x757f,0x7620, +0x7629,0x761f,0x7624,0x7626,0x7621,0x7622,0x769a,0x76ba, +0x76e4,0x778e,0x7787,0x778c,0x7791,0x778b,0x78cb,0x78c5, +0x78ba,0x78ca,0x78be,0x78d5,0x78bc,0x78d0,0x7a3f,0x7a3c, +0x7a40,0x7a3d,0x7a37,0x7a3b,0x7aaf,0x7aae,0x7bad,0x7bb1, +0x7bc4,0x7bb4,0x7bc6,0x7bc7,0x7bc1,0x7ba0,0x7bcc,0x7cca, +0x7de0,0x7df4,0x7def,0x7dfb,0x7dd8,0x7dec,0x7ddd,0x7de8, +0x7de3,0x7dda,0x7dde,0x7de9,0x7d9e,0x7dd9,0x7df2,0x7df9, +0x7f75,0x7f77,0x7faf,0x7fe9,0x8026,0x819b,0x819c,0x819d, +0x81a0,0x819a,0x8198,0x8517,0x853d,0x851a,0x84ee,0x852c, +0x852d,0x8513,0x8511,0x8523,0x8521,0x8514,0x84ec,0x8525, +0x84ff,0x8506,0x8782,0x8774,0x8776,0x8760,0x8766,0x8778, +0x8768,0x8759,0x8757,0x874c,0x8753,0x885b,0x885d,0x8910, +0x8907,0x8912,0x8913,0x8915,0x890a,0x8abc,0x8ad2,0x8ac7, +0x8ac4,0x8a95,0x8acb,0x8af8,0x8ab2,0x8ac9,0x8ac2,0x8abf, +0x8ab0,0x8ad6,0x8acd,0x8ab6,0x8ab9,0x8adb,0x8c4c,0x8c4e, +0x8c6c,0x8ce0,0x8cde,0x8ce6,0x8ce4,0x8cec,0x8ced,0x8ce2, +0x8ce3,0x8cdc,0x8cea,0x8ce1,0x8d6d,0x8d9f,0x8da3,0x8e2b, +0x8e10,0x8e1d,0x8e22,0x8e0f,0x8e29,0x8e1f,0x8e21,0x8e1e, +0x8eba,0x8f1d,0x8f1b,0x8f1f,0x8f29,0x8f26,0x8f2a,0x8f1c, +0x8f1e,0x8f25,0x9069,0x906e,0x9068,0x906d,0x9077,0x9130, +0x912d,0x9127,0x9131,0x9187,0x9189,0x918b,0x9183,0x92c5, +0x92bb,0x92b7,0x92ea,0x92ac,0x92e4,0x92c1,0x92b3,0x92bc, +0x92d2,0x92c7,0x92f0,0x92b2,0x95ad,0x95b1,0x9704,0x9706, +0x9707,0x9709,0x9760,0x978d,0x978b,0x978f,0x9821,0x982b, +0x981c,0x98b3,0x990a,0x9913,0x9912,0x9918,0x99dd,0x99d0, +0x99df,0x99db,0x99d1,0x99d5,0x99d2,0x99d9,0x9ab7,0x9aee, +0x9aef,0x9b27,0x9b45,0x9b44,0x9b77,0x9b6f,0x9d06,0x9d09, +0x9d03,0x9ea9,0x9ebe,0x9ece,0x58a8,0x9f52,0x5112,0x5118, +0x5114,0x5110,0x5115,0x5180,0x51aa,0x51dd,0x5291,0x5293, +0x52f3,0x5659,0x566b,0x5679,0x5669,0x5664,0x5678,0x566a, +0x5668,0x5665,0x5671,0x566f,0x566c,0x5662,0x5676,0x58c1, +0x58be,0x58c7,0x58c5,0x596e,0x5b1d,0x5b34,0x5b78,0x5bf0, +0x5c0e,0x5f4a,0x61b2,0x6191,0x61a9,0x618a,0x61cd,0x61b6, +0x61be,0x61ca,0x61c8,0x6230,0x64c5,0x64c1,0x64cb,0x64bb, +0x64bc,0x64da,0x64c4,0x64c7,0x64c2,0x64cd,0x64bf,0x64d2, +0x64d4,0x64be,0x6574,0x66c6,0x66c9,0x66b9,0x66c4,0x66c7, +0x66b8,0x6a3d,0x6a38,0x6a3a,0x6a59,0x6a6b,0x6a58,0x6a39, +0x6a44,0x6a62,0x6a61,0x6a4b,0x6a47,0x6a35,0x6a5f,0x6a48, +0x6b59,0x6b77,0x6c05,0x6fc2,0x6fb1,0x6fa1,0x6fc3,0x6fa4, +0x6fc1,0x6fa7,0x6fb3,0x6fc0,0x6fb9,0x6fb6,0x6fa6,0x6fa0, +0x6fb4,0x71be,0x71c9,0x71d0,0x71d2,0x71c8,0x71d5,0x71b9, +0x71ce,0x71d9,0x71dc,0x71c3,0x71c4,0x7368,0x749c,0x74a3, +0x7498,0x749f,0x749e,0x74e2,0x750c,0x750d,0x7634,0x7638, +0x763a,0x76e7,0x76e5,0x77a0,0x779e,0x779f,0x77a5,0x78e8, +0x78da,0x78ec,0x78e7,0x79a6,0x7a4d,0x7a4e,0x7a46,0x7a4c, +0x7a4b,0x7aba,0x7bd9,0x7c11,0x7bc9,0x7be4,0x7bdb,0x7be1, +0x7be9,0x7be6,0x7cd5,0x7cd6,0x7e0a,0x7e11,0x7e08,0x7e1b, +0x7e23,0x7e1e,0x7e1d,0x7e09,0x7e10,0x7f79,0x7fb2,0x7ff0, +0x7ff1,0x7fee,0x8028,0x81b3,0x81a9,0x81a8,0x81fb,0x8208, +0x8258,0x8259,0x854a,0x8559,0x8548,0x8568,0x8569,0x8543, +0x8549,0x856d,0x856a,0x855e,0x8783,0x879f,0x879e,0x87a2, +0x878d,0x8861,0x892a,0x8932,0x8925,0x892b,0x8921,0x89aa, +0x89a6,0x8ae6,0x8afa,0x8aeb,0x8af1,0x8b00,0x8adc,0x8ae7, +0x8aee,0x8afe,0x8b01,0x8b02,0x8af7,0x8aed,0x8af3,0x8af6, +0x8afc,0x8c6b,0x8c6d,0x8c93,0x8cf4,0x8e44,0x8e31,0x8e34, +0x8e42,0x8e39,0x8e35,0x8f3b,0x8f2f,0x8f38,0x8f33,0x8fa8, +0x8fa6,0x9075,0x9074,0x9078,0x9072,0x907c,0x907a,0x9134, +0x9192,0x9320,0x9336,0x92f8,0x9333,0x932f,0x9322,0x92fc, +0x932b,0x9304,0x931a,0x9310,0x9326,0x9321,0x9315,0x932e, +0x9319,0x95bb,0x96a7,0x96a8,0x96aa,0x96d5,0x970e,0x9711, +0x9716,0x970d,0x9713,0x970f,0x975b,0x975c,0x9766,0x9798, +0x9830,0x9838,0x983b,0x9837,0x982d,0x9839,0x9824,0x9910, +0x9928,0x991e,0x991b,0x9921,0x991a,0x99ed,0x99e2,0x99f1, +0x9ab8,0x9abc,0x9afb,0x9aed,0x9b28,0x9b91,0x9d15,0x9d23, +0x9d26,0x9d28,0x9d12,0x9d1b,0x9ed8,0x9ed4,0x9f8d,0x9f9c, +0x512a,0x511f,0x5121,0x5132,0x52f5,0x568e,0x5680,0x5690, +0x5685,0x5687,0x568f,0x58d5,0x58d3,0x58d1,0x58ce,0x5b30, +0x5b2a,0x5b24,0x5b7a,0x5c37,0x5c68,0x5dbc,0x5dba,0x5dbd, +0x5db8,0x5e6b,0x5f4c,0x5fbd,0x61c9,0x61c2,0x61c7,0x61e6, +0x61cb,0x6232,0x6234,0x64ce,0x64ca,0x64d8,0x64e0,0x64f0, +0x64e6,0x64ec,0x64f1,0x64e2,0x64ed,0x6582,0x6583,0x66d9, +0x66d6,0x6a80,0x6a94,0x6a84,0x6aa2,0x6a9c,0x6adb,0x6aa3, +0x6a7e,0x6a97,0x6a90,0x6aa0,0x6b5c,0x6bae,0x6bda,0x6c08, +0x6fd8,0x6ff1,0x6fdf,0x6fe0,0x6fdb,0x6fe4,0x6feb,0x6fef, +0x6f80,0x6fec,0x6fe1,0x6fe9,0x6fd5,0x6fee,0x6ff0,0x71e7, +0x71df,0x71ee,0x71e6,0x71e5,0x71ed,0x71ec,0x71f4,0x71e0, +0x7235,0x7246,0x7370,0x7372,0x74a9,0x74b0,0x74a6,0x74a8, +0x7646,0x7642,0x764c,0x76ea,0x77b3,0x77aa,0x77b0,0x77ac, +0x77a7,0x77ad,0x77ef,0x78f7,0x78fa,0x78f4,0x78ef,0x7901, +0x79a7,0x79aa,0x7a57,0x7abf,0x7c07,0x7c0d,0x7bfe,0x7bf7, +0x7c0c,0x7be0,0x7ce0,0x7cdc,0x7cde,0x7ce2,0x7cdf,0x7cd9, +0x7cdd,0x7e2e,0x7e3e,0x7e46,0x7e37,0x7e32,0x7e43,0x7e2b, +0x7e3d,0x7e31,0x7e45,0x7e41,0x7e34,0x7e39,0x7e48,0x7e35, +0x7e3f,0x7e2f,0x7f44,0x7ff3,0x7ffc,0x8071,0x8072,0x8070, +0x806f,0x8073,0x81c6,0x81c3,0x81ba,0x81c2,0x81c0,0x81bf, +0x81bd,0x81c9,0x81be,0x81e8,0x8209,0x8271,0x85aa,0x8584, +0x857e,0x859c,0x8591,0x8594,0x85af,0x859b,0x8587,0x85a8, +0x858a,0x8667,0x87c0,0x87d1,0x87b3,0x87d2,0x87c6,0x87ab, +0x87bb,0x87ba,0x87c8,0x87cb,0x893b,0x8936,0x8944,0x8938, +0x893d,0x89ac,0x8b0e,0x8b17,0x8b19,0x8b1b,0x8b0a,0x8b20, +0x8b1d,0x8b04,0x8b10,0x8c41,0x8c3f,0x8c73,0x8cfa,0x8cfd, +0x8cfc,0x8cf8,0x8cfb,0x8da8,0x8e49,0x8e4b,0x8e48,0x8e4a, +0x8f44,0x8f3e,0x8f42,0x8f45,0x8f3f,0x907f,0x907d,0x9084, +0x9081,0x9082,0x9080,0x9139,0x91a3,0x919e,0x919c,0x934d, +0x9382,0x9328,0x9375,0x934a,0x9365,0x934b,0x9318,0x937e, +0x936c,0x935b,0x9370,0x935a,0x9354,0x95ca,0x95cb,0x95cc, +0x95c8,0x95c6,0x96b1,0x96b8,0x96d6,0x971c,0x971e,0x97a0, +0x97d3,0x9846,0x98b6,0x9935,0x9a01,0x99ff,0x9bae,0x9bab, +0x9baa,0x9bad,0x9d3b,0x9d3f,0x9e8b,0x9ecf,0x9ede,0x9edc, +0x9edd,0x9edb,0x9f3e,0x9f4b,0x53e2,0x5695,0x56ae,0x58d9, +0x58d8,0x5b38,0x5f5d,0x61e3,0x6233,0x64f4,0x64f2,0x64fe, +0x6506,0x64fa,0x64fb,0x64f7,0x65b7,0x66dc,0x6726,0x6ab3, +0x6aac,0x6ac3,0x6abb,0x6ab8,0x6ac2,0x6aae,0x6aaf,0x6b5f, +0x6b78,0x6baf,0x7009,0x700b,0x6ffe,0x7006,0x6ffa,0x7011, +0x700f,0x71fb,0x71fc,0x71fe,0x71f8,0x7377,0x7375,0x74a7, +0x74bf,0x7515,0x7656,0x7658,0x7652,0x77bd,0x77bf,0x77bb, +0x77bc,0x790e,0x79ae,0x7a61,0x7a62,0x7a60,0x7ac4,0x7ac5, +0x7c2b,0x7c27,0x7c2a,0x7c1e,0x7c23,0x7c21,0x7ce7,0x7e54, +0x7e55,0x7e5e,0x7e5a,0x7e61,0x7e52,0x7e59,0x7f48,0x7ff9, +0x7ffb,0x8077,0x8076,0x81cd,0x81cf,0x820a,0x85cf,0x85a9, +0x85cd,0x85d0,0x85c9,0x85b0,0x85ba,0x85b9,0x85a6,0x87ef, +0x87ec,0x87f2,0x87e0,0x8986,0x89b2,0x89f4,0x8b28,0x8b39, +0x8b2c,0x8b2b,0x8c50,0x8d05,0x8e59,0x8e63,0x8e66,0x8e64, +0x8e5f,0x8e55,0x8ec0,0x8f49,0x8f4d,0x9087,0x9083,0x9088, +0x91ab,0x91ac,0x91d0,0x9394,0x938a,0x9396,0x93a2,0x93b3, +0x93ae,0x93ac,0x93b0,0x9398,0x939a,0x9397,0x95d4,0x95d6, +0x95d0,0x95d5,0x96e2,0x96dc,0x96d9,0x96db,0x96de,0x9724, +0x97a3,0x97a6,0x97ad,0x97f9,0x984d,0x984f,0x984c,0x984e, +0x9853,0x98ba,0x993e,0x993f,0x993d,0x992e,0x99a5,0x9a0e, +0x9ac1,0x9b03,0x9b06,0x9b4f,0x9b4e,0x9b4d,0x9bca,0x9bc9, +0x9bfd,0x9bc8,0x9bc0,0x9d51,0x9d5d,0x9d60,0x9ee0,0x9f15, +0x9f2c,0x5133,0x56a5,0x58de,0x58df,0x58e2,0x5bf5,0x9f90, +0x5eec,0x61f2,0x61f7,0x61f6,0x61f5,0x6500,0x650f,0x66e0, +0x66dd,0x6ae5,0x6add,0x6ada,0x6ad3,0x701b,0x701f,0x7028, +0x701a,0x701d,0x7015,0x7018,0x7206,0x720d,0x7258,0x72a2, +0x7378,0x737a,0x74bd,0x74ca,0x74e3,0x7587,0x7586,0x765f, +0x7661,0x77c7,0x7919,0x79b1,0x7a6b,0x7a69,0x7c3e,0x7c3f, +0x7c38,0x7c3d,0x7c37,0x7c40,0x7e6b,0x7e6d,0x7e79,0x7e69, +0x7e6a,0x7f85,0x7e73,0x7fb6,0x7fb9,0x7fb8,0x81d8,0x85e9, +0x85dd,0x85ea,0x85d5,0x85e4,0x85e5,0x85f7,0x87fb,0x8805, +0x880d,0x87f9,0x87fe,0x8960,0x895f,0x8956,0x895e,0x8b41, +0x8b5c,0x8b58,0x8b49,0x8b5a,0x8b4e,0x8b4f,0x8b46,0x8b59, +0x8d08,0x8d0a,0x8e7c,0x8e72,0x8e87,0x8e76,0x8e6c,0x8e7a, +0x8e74,0x8f54,0x8f4e,0x8fad,0x908a,0x908b,0x91b1,0x91ae, +0x93e1,0x93d1,0x93df,0x93c3,0x93c8,0x93dc,0x93dd,0x93d6, +0x93e2,0x93cd,0x93d8,0x93e4,0x93d7,0x93e8,0x95dc,0x96b4, +0x96e3,0x972a,0x9727,0x9761,0x97dc,0x97fb,0x985e,0x9858, +0x985b,0x98bc,0x9945,0x9949,0x9a16,0x9a19,0x9b0d,0x9be8, +0x9be7,0x9bd6,0x9bdb,0x9d89,0x9d61,0x9d72,0x9d6a,0x9d6c, +0x9e92,0x9e97,0x9e93,0x9eb4,0x52f8,0x56a8,0x56b7,0x56b6, +0x56b4,0x56bc,0x58e4,0x5b40,0x5b43,0x5b7d,0x5bf6,0x5dc9, +0x61f8,0x61fa,0x6518,0x6514,0x6519,0x66e6,0x6727,0x6aec, +0x703e,0x7030,0x7032,0x7210,0x737b,0x74cf,0x7662,0x7665, +0x7926,0x792a,0x792c,0x792b,0x7ac7,0x7af6,0x7c4c,0x7c43, +0x7c4d,0x7cef,0x7cf0,0x8fae,0x7e7d,0x7e7c,0x7e82,0x7f4c, +0x8000,0x81da,0x8266,0x85fb,0x85f9,0x8611,0x85fa,0x8606, +0x860b,0x8607,0x860a,0x8814,0x8815,0x8964,0x89ba,0x89f8, +0x8b70,0x8b6c,0x8b66,0x8b6f,0x8b5f,0x8b6b,0x8d0f,0x8d0d, +0x8e89,0x8e81,0x8e85,0x8e82,0x91b4,0x91cb,0x9418,0x9403, +0x93fd,0x95e1,0x9730,0x98c4,0x9952,0x9951,0x99a8,0x9a2b, +0x9a30,0x9a37,0x9a35,0x9c13,0x9c0d,0x9e79,0x9eb5,0x9ee8, +0x9f2f,0x9f5f,0x9f63,0x9f61,0x5137,0x5138,0x56c1,0x56c0, +0x56c2,0x5914,0x5c6c,0x5dcd,0x61fc,0x61fe,0x651d,0x651c, +0x6595,0x66e9,0x6afb,0x6b04,0x6afa,0x6bb2,0x704c,0x721b, +0x72a7,0x74d6,0x74d4,0x7669,0x77d3,0x7c50,0x7e8f,0x7e8c, +0x7fbc,0x8617,0x862d,0x861a,0x8823,0x8822,0x8821,0x881f, +0x896a,0x896c,0x89bd,0x8b74,0x8b77,0x8b7d,0x8d13,0x8e8a, +0x8e8d,0x8e8b,0x8f5f,0x8faf,0x91ba,0x942e,0x9433,0x9435, +0x943a,0x9438,0x9432,0x942b,0x95e2,0x9738,0x9739,0x9732, +0x97ff,0x9867,0x9865,0x9957,0x9a45,0x9a43,0x9a40,0x9a3e, +0x9acf,0x9b54,0x9b51,0x9c2d,0x9c25,0x9daf,0x9db4,0x9dc2, +0x9db8,0x9e9d,0x9eef,0x9f19,0x9f5c,0x9f66,0x9f67,0x513c, +0x513b,0x56c8,0x56ca,0x56c9,0x5b7f,0x5dd4,0x5dd2,0x5f4e, +0x61ff,0x6524,0x6b0a,0x6b61,0x7051,0x7058,0x7380,0x74e4, +0x758a,0x766e,0x766c,0x79b3,0x7c60,0x7c5f,0x807e,0x807d, +0x81df,0x8972,0x896f,0x89fc,0x8b80,0x8d16,0x8d17,0x8e91, +0x8e93,0x8f61,0x9148,0x9444,0x9451,0x9452,0x973d,0x973e, +0x97c3,0x97c1,0x986b,0x9955,0x9a55,0x9a4d,0x9ad2,0x9b1a, +0x9c49,0x9c31,0x9c3e,0x9c3b,0x9dd3,0x9dd7,0x9f34,0x9f6c, +0x9f6a,0x9f94,0x56cc,0x5dd6,0x6200,0x6523,0x652b,0x652a, +0x66ec,0x6b10,0x74da,0x7aca,0x7c64,0x7c63,0x7c65,0x7e93, +0x7e96,0x7e94,0x81e2,0x8638,0x863f,0x8831,0x8b8a,0x9090, +0x908f,0x9463,0x9460,0x9464,0x9768,0x986f,0x995c,0x9a5a, +0x9a5b,0x9a57,0x9ad3,0x9ad4,0x9ad1,0x9c54,0x9c57,0x9c56, +0x9de5,0x9e9f,0x9ef4,0x56d1,0x58e9,0x652c,0x705e,0x7671, +0x7672,0x77d7,0x7f50,0x7f88,0x8836,0x8839,0x8862,0x8b93, +0x8b92,0x8b96,0x8277,0x8d1b,0x91c0,0x946a,0x9742,0x9748, +0x9744,0x97c6,0x9870,0x9a5f,0x9b22,0x9b58,0x9c5f,0x9df9, +0x9dfa,0x9e7c,0x9e7d,0x9f07,0x9f77,0x9f72,0x5ef3,0x6b16, +0x7063,0x7c6c,0x7c6e,0x883b,0x89c0,0x8ea1,0x91c1,0x9472, +0x9470,0x9871,0x995e,0x9ad6,0x9b23,0x9ecc,0x7064,0x77da, +0x8b9a,0x9477,0x97c9,0x9a62,0x9a65,0x7e9c,0x8b9c,0x8eaa, +0x91c5,0x947d,0x947e,0x947c,0x9c77,0x9c78,0x9ef7,0x8c54, +0x947f,0x9e1a,0x7228,0x9a6a,0x9b31,0x9e1b,0x9e1e,0x7c72, +0x30fe,0x309d,0x309e,0x3005,0x3041,0x3042,0x3043,0x3044, +0x3045,0x3046,0x3047,0x3048,0x3049,0x304a,0x304b,0x304c, +0x304d,0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054, +0x3055,0x3056,0x3057,0x3058,0x3059,0x305a,0x305b,0x305c, +0x305d,0x305e,0x305f,0x3060,0x3061,0x3062,0x3063,0x3064, +0x3065,0x3066,0x3067,0x3068,0x3069,0x306a,0x306b,0x306c, +0x306d,0x306e,0x306f,0x3070,0x3071,0x3072,0x3073,0x3074, +0x3075,0x3076,0x3077,0x3078,0x3079,0x307a,0x307b,0x307c, +0x307d,0x307e,0x307f,0x3080,0x3081,0x3082,0x3083,0x3084, +0x3085,0x3086,0x3087,0x3088,0x3089,0x308a,0x308b,0x308c, +0x308d,0x308e,0x308f,0x3090,0x3091,0x3092,0x3093,0x30a1, +0x30a2,0x30a3,0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9, +0x30aa,0x30ab,0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1, +0x30b2,0x30b3,0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9, +0x30ba,0x30bb,0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1, +0x30c2,0x30c3,0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9, +0x30ca,0x30cb,0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1, +0x30d2,0x30d3,0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9, +0x30da,0x30db,0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1, +0x30e2,0x30e3,0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9, +0x30ea,0x30eb,0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1, +0x30f2,0x30f3,0x30f4,0x30f5,0x30f6,0x0414,0x0415,0x0401, +0x0416,0x0417,0x0418,0x0419,0x041a,0x041b,0x041c,0x0423, +0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042a,0x042b, +0x042c,0x042d,0x042e,0x042f,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,0x2460,0x2461,0x2462, +0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,0x2474, +0x2475,0x2476,0x2477,0x2478,0x2479,0x247a,0x247b,0x247c, +0x247d, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x4e42,0x4e5c,0x51f5,0x531a,0x5382,0x4e07,0x4e0c,0x4e47, +0x4e8d,0x56d7,0xfa0c,0x5c6e,0x5f73,0x4e0f,0x5187,0x4e0e, +0x4e2e,0x4e93,0x4ec2,0x4ec9,0x4ec8,0x5198,0x52fc,0x536c, +0x53b9,0x5720,0x5903,0x592c,0x5c10,0x5dff,0x65e1,0x6bb3, +0x6bcc,0x6c14,0x723f,0x4e31,0x4e3c,0x4ee8,0x4edc,0x4ee9, +0x4ee1,0x4edd,0x4eda,0x520c,0x531c,0x534c,0x5722,0x5723, +0x5917,0x592f,0x5b81,0x5b84,0x5c12,0x5c3b,0x5c74,0x5c73, +0x5e04,0x5e80,0x5e82,0x5fc9,0x6209,0x6250,0x6c15,0x6c36, +0x6c43,0x6c3f,0x6c3b,0x72ae,0x72b0,0x738a,0x79b8,0x808a, +0x961e,0x4f0e,0x4f18,0x4f2c,0x4ef5,0x4f14,0x4ef1,0x4f00, +0x4ef7,0x4f08,0x4f1d,0x4f02,0x4f05,0x4f22,0x4f13,0x4f04, +0x4ef4,0x4f12,0x51b1,0x5213,0x5209,0x5210,0x52a6,0x5322, +0x531f,0x534d,0x538a,0x5407,0x56e1,0x56df,0x572e,0x572a, +0x5734,0x593c,0x5980,0x597c,0x5985,0x597b,0x597e,0x5977, +0x597f,0x5b56,0x5c15,0x5c25,0x5c7c,0x5c7a,0x5c7b,0x5c7e, +0x5ddf,0x5e75,0x5e84,0x5f02,0x5f1a,0x5f74,0x5fd5,0x5fd4, +0x5fcf,0x625c,0x625e,0x6264,0x6261,0x6266,0x6262,0x6259, +0x6260,0x625a,0x6265,0x65ef,0x65ee,0x673e,0x6739,0x6738, +0x673b,0x673a,0x673f,0x673c,0x6733,0x6c18,0x6c46,0x6c52, +0x6c5c,0x6c4f,0x6c4a,0x6c54,0x6c4b,0x6c4c,0x7071,0x725e, +0x72b4,0x72b5,0x738e,0x752a,0x767f,0x7a75,0x7f51,0x8278, +0x827c,0x8280,0x827d,0x827f,0x864d,0x897e,0x9099,0x9097, +0x9098,0x909b,0x9094,0x9622,0x9624,0x9620,0x9623,0x4f56, +0x4f3b,0x4f62,0x4f49,0x4f53,0x4f64,0x4f3e,0x4f67,0x4f52, +0x4f5f,0x4f41,0x4f58,0x4f2d,0x4f33,0x4f3f,0x4f61,0x518f, +0x51b9,0x521c,0x521e,0x5221,0x52ad,0x52ae,0x5309,0x5363, +0x5372,0x538e,0x538f,0x5430,0x5437,0x542a,0x5454,0x5445, +0x5419,0x541c,0x5425,0x5418,0x543d,0x544f,0x5441,0x5428, +0x5424,0x5447,0x56ee,0x56e7,0x56e5,0x5741,0x5745,0x574c, +0x5749,0x574b,0x5752,0x5906,0x5940,0x59a6,0x5998,0x59a0, +0x5997,0x598e,0x59a2,0x5990,0x598f,0x59a7,0x59a1,0x5b8e, +0x5b92,0x5c28,0x5c2a,0x5c8d,0x5c8f,0x5c88,0x5c8b,0x5c89, +0x5c92,0x5c8a,0x5c86,0x5c93,0x5c95,0x5de0,0x5e0a,0x5e0e, +0x5e8b,0x5e89,0x5e8c,0x5e88,0x5e8d,0x5f05,0x5f1d,0x5f78, +0x5f76,0x5fd2,0x5fd1,0x5fd0,0x5fed,0x5fe8,0x5fee,0x5ff3, +0x5fe1,0x5fe4,0x5fe3,0x5ffa,0x5fef,0x5ff7,0x5ffb,0x6000, +0x5ff4,0x623a,0x6283,0x628c,0x628e,0x628f,0x6294,0x6287, +0x6271,0x627b,0x627a,0x6270,0x6281,0x6288,0x6277,0x627d, +0x6272,0x6274,0x6537,0x65f0,0x65f4,0x65f3,0x65f2,0x65f5, +0x6745,0x6747,0x6759,0x6755,0x674c,0x6748,0x675d,0x674d, +0x675a,0x674b,0x6bd0,0x6c19,0x6c1a,0x6c78,0x6c67,0x6c6b, +0x6c84,0x6c8b,0x6c8f,0x6c71,0x6c6f,0x6c69,0x6c9a,0x6c6d, +0x6c87,0x6c95,0x6c9c,0x6c66,0x6c73,0x6c65,0x6c7b,0x6c8e, +0x7074,0x707a,0x7263,0x72bf,0x72bd,0x72c3,0x72c6,0x72c1, +0x72ba,0x72c5,0x7395,0x7397,0x7393,0x7394,0x7392,0x753a, +0x7539,0x7594,0x7595,0x7681,0x793d,0x8034,0x8095,0x8099, +0x8090,0x8092,0x809c,0x8290,0x828f,0x8285,0x828e,0x8291, +0x8293,0x828a,0x8283,0x8284,0x8c78,0x8fc9,0x8fbf,0x909f, +0x90a1,0x90a5,0x909e,0x90a7,0x90a0,0x9630,0x9628,0x962f, +0x962d,0x4e33,0x4f98,0x4f7c,0x4f85,0x4f7d,0x4f80,0x4f87, +0x4f76,0x4f74,0x4f89,0x4f84,0x4f77,0x4f4c,0x4f97,0x4f6a, +0x4f9a,0x4f79,0x4f81,0x4f78,0x4f90,0x4f9c,0x4f94,0x4f9e, +0x4f92,0x4f82,0x4f95,0x4f6b,0x4f6e,0x519e,0x51bc,0x51be, +0x5235,0x5232,0x5233,0x5246,0x5231,0x52bc,0x530a,0x530b, +0x533c,0x5392,0x5394,0x5487,0x547f,0x5481,0x5491,0x5482, +0x5488,0x546b,0x547a,0x547e,0x5465,0x546c,0x5474,0x5466, +0x548d,0x546f,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464, +0x56f7,0x56f9,0x576f,0x5772,0x576d,0x576b,0x5771,0x5770, +0x5776,0x5780,0x5775,0x577b,0x5773,0x5774,0x5762,0x5768, +0x577d,0x590c,0x5945,0x59b5,0x59ba,0x59cf,0x59ce,0x59b2, +0x59cc,0x59c1,0x59b6,0x59bc,0x59c3,0x59d6,0x59b1,0x59bd, +0x59c0,0x59c8,0x59b4,0x59c7,0x5b62,0x5b65,0x5b93,0x5b95, +0x5c44,0x5c47,0x5cae,0x5ca4,0x5ca0,0x5cb5,0x5caf,0x5ca8, +0x5cac,0x5c9f,0x5ca3,0x5cad,0x5ca2,0x5caa,0x5ca7,0x5c9d, +0x5ca5,0x5cb6,0x5cb0,0x5ca6,0x5e17,0x5e14,0x5e19,0x5f28, +0x5f22,0x5f23,0x5f24,0x5f54,0x5f82,0x5f7e,0x5f7d,0x5fde, +0x5fe5,0x602d,0x6026,0x6019,0x6032,0x600b,0x6034,0x600a, +0x6017,0x6033,0x601a,0x601e,0x602c,0x6022,0x600d,0x6010, +0x602e,0x6013,0x6011,0x600c,0x6009,0x601c,0x6214,0x623d, +0x62ad,0x62b4,0x62d1,0x62be,0x62aa,0x62b6,0x62ca,0x62ae, +0x62b3,0x62af,0x62bb,0x62a9,0x62b0,0x62b8,0x653d,0x65a8, +0x65bb,0x6609,0x65fc,0x6604,0x6612,0x6608,0x65fb,0x6603, +0x660b,0x660d,0x6605,0x65fd,0x6611,0x6610,0x66f6,0x670a, +0x6785,0x676c,0x678e,0x6792,0x6776,0x677b,0x6798,0x6786, +0x6784,0x6774,0x678d,0x678c,0x677a,0x679f,0x6791,0x6799, +0x6783,0x677d,0x6781,0x6778,0x6779,0x6794,0x6b25,0x6b80, +0x6b7e,0x6bde,0x6c1d,0x6c93,0x6cec,0x6ceb,0x6cee,0x6cd9, +0x6cb6,0x6cd4,0x6cad,0x6ce7,0x6cb7,0x6cd0,0x6cc2,0x6cba, +0x6cc3,0x6cc6,0x6ced,0x6cf2,0x6cd2,0x6cdd,0x6cb4,0x6c8a, +0x6c9d,0x6c80,0x6cde,0x6cc0,0x6d30,0x6ccd,0x6cc7,0x6cb0, +0x6cf9,0x6ccf,0x6ce9,0x6cd1,0x7094,0x7098,0x7085,0x7093, +0x7086,0x7084,0x7091,0x7096,0x7082,0x709a,0x7083,0x726a, +0x72d6,0x72cb,0x72d8,0x72c9,0x72dc,0x72d2,0x72d4,0x72da, +0x72cc,0x72d1,0x73a4,0x73a1,0x73ad,0x73a6,0x73a2,0x73a0, +0x73ac,0x739d,0x74dd,0x74e8,0x753f,0x7540,0x753e,0x758c, +0x7598,0x76af,0x76f3,0x76f1,0x76f0,0x76f5,0x77f8,0x77fc, +0x77f9,0x77fb,0x77fa,0x77f7,0x7942,0x793f,0x79c5,0x7a78, +0x7a7b,0x7afb,0x7c75,0x7cfd,0x8035,0x808f,0x80ae,0x80a3, +0x80b8,0x80b5,0x80ad,0x8220,0x82a0,0x82c0,0x82ab,0x829a, +0x8298,0x829b,0x82b5,0x82a7,0x82ae,0x82bc,0x829e,0x82ba, +0x82b4,0x82a8,0x82a1,0x82a9,0x82c2,0x82a4,0x82c3,0x82b6, +0x82a2,0x8670,0x866f,0x866d,0x866e,0x8c56,0x8fd2,0x8fcb, +0x8fd3,0x8fcd,0x8fd6,0x8fd5,0x8fd7,0x90b2,0x90b4,0x90af, +0x90b3,0x90b0,0x9639,0x963d,0x963c,0x963a,0x9643,0x4fcd, +0x4fc5,0x4fd3,0x4fb2,0x4fc9,0x4fcb,0x4fc1,0x4fd4,0x4fdc, +0x4fd9,0x4fbb,0x4fb3,0x4fdb,0x4fc7,0x4fd6,0x4fba,0x4fc0, +0x4fb9,0x4fec,0x5244,0x5249,0x52c0,0x52c2,0x533d,0x537c, +0x5397,0x5396,0x5399,0x5398,0x54ba,0x54a1,0x54ad,0x54a5, +0x54cf,0x54c3,0x830d,0x54b7,0x54ae,0x54d6,0x54b6,0x54c5, +0x54c6,0x54a0,0x5470,0x54bc,0x54a2,0x54be,0x5472,0x54de, +0x54b0,0x57b5,0x579e,0x579f,0x57a4,0x578c,0x5797,0x579d, +0x579b,0x5794,0x5798,0x578f,0x5799,0x57a5,0x579a,0x5795, +0x58f4,0x590d,0x5953,0x59e1,0x59de,0x59ee,0x5a00,0x59f1, +0x59dd,0x59fa,0x59fd,0x59fc,0x59f6,0x59e4,0x59f2,0x59f7, +0x59db,0x59e9,0x59f3,0x59f5,0x59e0,0x59fe,0x59f4,0x59ed, +0x5ba8,0x5c4c,0x5cd0,0x5cd8,0x5ccc,0x5cd7,0x5ccb,0x5cdb, +0x5cde,0x5cda,0x5cc9,0x5cc7,0x5cca,0x5cd6,0x5cd3,0x5cd4, +0x5ccf,0x5cc8,0x5cc6,0x5cce,0x5cdf,0x5cf8,0x5df9,0x5e21, +0x5e22,0x5e23,0x5e20,0x5e24,0x5eb0,0x5ea4,0x5ea2,0x5e9b, +0x5ea3,0x5ea5,0x5f07,0x5f2e,0x5f56,0x5f86,0x6037,0x6039, +0x6054,0x6072,0x605e,0x6045,0x6053,0x6047,0x6049,0x605b, +0x604c,0x6040,0x6042,0x605f,0x6024,0x6044,0x6058,0x6066, +0x606e,0x6242,0x6243,0x62cf,0x630d,0x630b,0x62f5,0x630e, +0x6303,0x62eb,0x62f9,0x630f,0x630c,0x62f8,0x62f6,0x6300, +0x6313,0x6314,0x62fa,0x6315,0x62fb,0x62f0,0x6541,0x6543, +0x65aa,0x65bf,0x6636,0x6621,0x6632,0x6635,0x661c,0x6626, +0x6622,0x6633,0x662b,0x663a,0x661d,0x6634,0x6639,0x662e, +0x670f,0x6710,0x67c1,0x67f2,0x67c8,0x67ba,0x67dc,0x67bb, +0x67f8,0x67d8,0x67c0,0x67b7,0x67c5,0x67eb,0x67e4,0x67df, +0x67b5,0x67cd,0x67b3,0x67f7,0x67f6,0x67ee,0x67e3,0x67c2, +0x67b9,0x67ce,0x67e7,0x67f0,0x67b2,0x67fc,0x67c6,0x67ed, +0x67cc,0x67ae,0x67e6,0x67db,0x67fa,0x67c9,0x67ca,0x67c3, +0x67ea,0x67cb,0x6b28,0x6b82,0x6b84,0x6bb6,0x6bd6,0x6bd8, +0x6be0,0x6c20,0x6c21,0x6d28,0x6d34,0x6d2d,0x6d1f,0x6d3c, +0x6d3f,0x6d12,0x6d0a,0x6cda,0x6d33,0x6d04,0x6d19,0x6d3a, +0x6d1a,0x6d11,0x6d00,0x6d1d,0x6d42,0x6d01,0x6d18,0x6d37, +0x6d03,0x6d0f,0x6d40,0x6d07,0x6d20,0x6d2c,0x6d08,0x6d22, +0x6d09,0x6d10,0x70b7,0x709f,0x70be,0x70b1,0x70b0,0x70a1, +0x70b4,0x70b5,0x70a9,0x7241,0x7249,0x724a,0x726c,0x7270, +0x7273,0x726e,0x72ca,0x72e4,0x72e8,0x72eb,0x72df,0x72ea, +0x72e6,0x72e3,0x7385,0x73cc,0x73c2,0x73c8,0x73c5,0x73b9, +0x73b6,0x73b5,0x73b4,0x73eb,0x73bf,0x73c7,0x73be,0x73c3, +0x73c6,0x73b8,0x73cb,0x74ec,0x74ee,0x752e,0x7547,0x7548, +0x75a7,0x75aa,0x7679,0x76c4,0x7708,0x7703,0x7704,0x7705, +0x770a,0x76f7,0x76fb,0x76fa,0x77e7,0x77e8,0x7806,0x7811, +0x7812,0x7805,0x7810,0x780f,0x780e,0x7809,0x7803,0x7813, +0x794a,0x794c,0x794b,0x7945,0x7944,0x79d5,0x79cd,0x79cf, +0x79d6,0x79ce,0x7a80,0x7a7e,0x7ad1,0x7b00,0x7b01,0x7c7a, +0x7c78,0x7c79,0x7c7f,0x7c80,0x7c81,0x7d03,0x7d08,0x7d01, +0x7f58,0x7f91,0x7f8d,0x7fbe,0x8007,0x800e,0x800f,0x8014, +0x8037,0x80d8,0x80c7,0x80e0,0x80d1,0x80c8,0x80c2,0x80d0, +0x80c5,0x80e3,0x80d9,0x80dc,0x80ca,0x80d5,0x80c9,0x80cf, +0x80d7,0x80e6,0x80cd,0x81ff,0x8221,0x8294,0x82d9,0x82fe, +0x82f9,0x8307,0x82e8,0x8300,0x82d5,0x833a,0x82eb,0x82d6, +0x82f4,0x82ec,0x82e1,0x82f2,0x82f5,0x830c,0x82fb,0x82f6, +0x82f0,0x82ea,0x82e4,0x82e0,0x82fa,0x82f3,0x82ed,0x8677, +0x8674,0x867c,0x8673,0x8841,0x884e,0x8867,0x886a,0x8869, +0x89d3,0x8a04,0x8a07,0x8d72,0x8fe3,0x8fe1,0x8fee,0x8fe0, +0x90f1,0x90bd,0x90bf,0x90d5,0x90c5,0x90be,0x90c7,0x90cb, +0x90c8,0x91d4,0x91d3,0x9654,0x964f,0x9651,0x9653,0x964a, +0x964e,0x501e,0x5005,0x5007,0x5013,0x5022,0x5030,0x501b, +0x4ff5,0x4ff4,0x5033,0x5037,0x502c,0x4ff6,0x4ff7,0x5017, +0x501c,0x5020,0x5027,0x5035,0x502f,0x5031,0x500e,0x515a, +0x5194,0x5193,0x51ca,0x51c4,0x51c5,0x51c8,0x51ce,0x5261, +0x525a,0x5252,0x525e,0x525f,0x5255,0x5262,0x52cd,0x530e, +0x539e,0x5526,0x54e2,0x5517,0x5512,0x54e7,0x54f3,0x54e4, +0x551a,0x54ff,0x5504,0x5508,0x54eb,0x5511,0x5505,0x54f1, +0x550a,0x54fb,0x54f7,0x54f8,0x54e0,0x550e,0x5503,0x550b, +0x5701,0x5702,0x57cc,0x5832,0x57d5,0x57d2,0x57ba,0x57c6, +0x57bd,0x57bc,0x57b8,0x57b6,0x57bf,0x57c7,0x57d0,0x57b9, +0x57c1,0x590e,0x594a,0x5a19,0x5a16,0x5a2d,0x5a2e,0x5a15, +0x5a0f,0x5a17,0x5a0a,0x5a1e,0x5a33,0x5b6c,0x5ba7,0x5bad, +0x5bac,0x5c03,0x5c56,0x5c54,0x5cec,0x5cff,0x5cee,0x5cf1, +0x5cf7,0x5d00,0x5cf9,0x5e29,0x5e28,0x5ea8,0x5eae,0x5eaa, +0x5eac,0x5f33,0x5f30,0x5f67,0x605d,0x605a,0x6067,0x6041, +0x60a2,0x6088,0x6080,0x6092,0x6081,0x609d,0x6083,0x6095, +0x609b,0x6097,0x6087,0x609c,0x608e,0x6219,0x6246,0x62f2, +0x6310,0x6356,0x632c,0x6344,0x6345,0x6336,0x6343,0x63e4, +0x6339,0x634b,0x634a,0x633c,0x6329,0x6341,0x6334,0x6358, +0x6354,0x6359,0x632d,0x6347,0x6333,0x635a,0x6351,0x6338, +0x6357,0x6340,0x6348,0x654a,0x6546,0x65c6,0x65c3,0x65c4, +0x65c2,0x664a,0x665f,0x6647,0x6651,0x6712,0x6713,0x681f, +0x681a,0x6849,0x6832,0x6833,0x683b,0x684b,0x684f,0x6816, +0x6831,0x681c,0x6835,0x682b,0x682d,0x682f,0x684e,0x6844, +0x6834,0x681d,0x6812,0x6814,0x6826,0x6828,0x682e,0x684d, +0x683a,0x6825,0x6820,0x6b2c,0x6b2f,0x6b2d,0x6b31,0x6b34, +0x6b6d,0x8082,0x6b88,0x6be6,0x6be4,0x6be8,0x6be3,0x6be2, +0x6be7,0x6c25,0x6d7a,0x6d63,0x6d64,0x6d76,0x6d0d,0x6d61, +0x6d92,0x6d58,0x6d62,0x6d6d,0x6d6f,0x6d91,0x6d8d,0x6def, +0x6d7f,0x6d86,0x6d5e,0x6d67,0x6d60,0x6d97,0x6d70,0x6d7c, +0x6d5f,0x6d82,0x6d98,0x6d2f,0x6d68,0x6d8b,0x6d7e,0x6d80, +0x6d84,0x6d16,0x6d83,0x6d7b,0x6d7d,0x6d75,0x6d90,0x70dc, +0x70d3,0x70d1,0x70dd,0x70cb,0x7f39,0x70e2,0x70d7,0x70d2, +0x70de,0x70e0,0x70d4,0x70cd,0x70c5,0x70c6,0x70c7,0x70da, +0x70ce,0x70e1,0x7242,0x7278,0x7277,0x7276,0x7300,0x72fa, +0x72f4,0x72fe,0x72f6,0x72f3,0x72fb,0x7301,0x73d3,0x73d9, +0x73e5,0x73d6,0x73bc,0x73e7,0x73e3,0x73e9,0x73dc,0x73d2, +0x73db,0x73d4,0x73dd,0x73da,0x73d7,0x73d8,0x73e8,0x74de, +0x74df,0x74f4,0x74f5,0x7521,0x755b,0x755f,0x75b0,0x75c1, +0x75bb,0x75c4,0x75c0,0x75bf,0x75b6,0x75ba,0x768a,0x76c9, +0x771d,0x771b,0x7710,0x7713,0x7712,0x7723,0x7711,0x7715, +0x7719,0x771a,0x7722,0x7727,0x7823,0x782c,0x7822,0x7835, +0x782f,0x7828,0x782e,0x782b,0x7821,0x7829,0x7833,0x782a, +0x7831,0x7954,0x795b,0x794f,0x795c,0x7953,0x7952,0x7951, +0x79eb,0x79ec,0x79e0,0x79ee,0x79ed,0x79ea,0x79dc,0x79de, +0x79dd,0x7a86,0x7a89,0x7a85,0x7a8b,0x7a8c,0x7a8a,0x7a87, +0x7ad8,0x7b10,0x7b04,0x7b13,0x7b05,0x7b0f,0x7b08,0x7b0a, +0x7b0e,0x7b09,0x7b12,0x7c84,0x7c91,0x7c8a,0x7c8c,0x7c88, +0x7c8d,0x7c85,0x7d1e,0x7d1d,0x7d11,0x7d0e,0x7d18,0x7d16, +0x7d13,0x7d1f,0x7d12,0x7d0f,0x7d0c,0x7f5c,0x7f61,0x7f5e, +0x7f60,0x7f5d,0x7f5b,0x7f96,0x7f92,0x7fc3,0x7fc2,0x7fc0, +0x8016,0x803e,0x8039,0x80fa,0x80f2,0x80f9,0x80f5,0x8101, +0x80fb,0x8100,0x8201,0x822f,0x8225,0x8333,0x832d,0x8344, +0x8319,0x8351,0x8325,0x8356,0x833f,0x8341,0x8326,0x831c, +0x8322,0x8342,0x834e,0x831b,0x832a,0x8308,0x833c,0x834d, +0x8316,0x8324,0x8320,0x8337,0x832f,0x8329,0x8347,0x8345, +0x834c,0x8353,0x831e,0x832c,0x834b,0x8327,0x8348,0x8653, +0x8652,0x86a2,0x86a8,0x8696,0x868d,0x8691,0x869e,0x8687, +0x8697,0x8686,0x868b,0x869a,0x8685,0x86a5,0x8699,0x86a1, +0x86a7,0x8695,0x8698,0x868e,0x869d,0x8690,0x8694,0x8843, +0x8844,0x886d,0x8875,0x8876,0x8872,0x8880,0x8871,0x887f, +0x886f,0x8883,0x887e,0x8874,0x887c,0x8a12,0x8c47,0x8c57, +0x8c7b,0x8ca4,0x8ca3,0x8d76,0x8d78,0x8db5,0x8db7,0x8db6, +0x8ed1,0x8ed3,0x8ffe,0x8ff5,0x9002,0x8fff,0x8ffb,0x9004, +0x8ffc,0x8ff6,0x90d6,0x90e0,0x90d9,0x90da,0x90e3,0x90df, +0x90e5,0x90d8,0x90db,0x90d7,0x90dc,0x90e4,0x9150,0x914e, +0x914f,0x91d5,0x91e2,0x91da,0x965c,0x965f,0x96bc,0x98e3, +0x9adf,0x9b2f,0x4e7f,0x5070,0x506a,0x5061,0x505e,0x5060, +0x5053,0x504b,0x505d,0x5072,0x5048,0x504d,0x5041,0x505b, +0x504a,0x5062,0x5015,0x5045,0x505f,0x5069,0x506b,0x5063, +0x5064,0x5046,0x5040,0x506e,0x5073,0x5057,0x5051,0x51d0, +0x526b,0x526d,0x526c,0x526e,0x52d6,0x52d3,0x532d,0x539c, +0x5575,0x5576,0x553c,0x554d,0x5550,0x5534,0x552a,0x5551, +0x5562,0x5536,0x5535,0x5530,0x5552,0x5545,0x550c,0x5532, +0x5565,0x554e,0x5539,0x5548,0x552d,0x553b,0x5540,0x554b, +0x570a,0x5707,0x57fb,0x5814,0x57e2,0x57f6,0x57dc,0x57f4, +0x5800,0x57ed,0x57fd,0x5808,0x57f8,0x580b,0x57f3,0x57cf, +0x5807,0x57ee,0x57e3,0x57f2,0x57e5,0x57ec,0x57e1,0x580e, +0x57fc,0x5810,0x57e7,0x5801,0x580c,0x57f1,0x57e9,0x57f0, +0x580d,0x5804,0x595c,0x5a60,0x5a58,0x5a55,0x5a67,0x5a5e, +0x5a38,0x5a35,0x5a6d,0x5a50,0x5a5f,0x5a65,0x5a6c,0x5a53, +0x5a64,0x5a57,0x5a43,0x5a5d,0x5a52,0x5a44,0x5a5b,0x5a48, +0x5a8e,0x5a3e,0x5a4d,0x5a39,0x5a4c,0x5a70,0x5a69,0x5a47, +0x5a51,0x5a56,0x5a42,0x5a5c,0x5b72,0x5b6e,0x5bc1,0x5bc0, +0x5c59,0x5d1e,0x5d0b,0x5d1d,0x5d1a,0x5d20,0x5d0c,0x5d28, +0x5d0d,0x5d26,0x5d25,0x5d0f,0x5d30,0x5d12,0x5d23,0x5d1f, +0x5d2e,0x5e3e,0x5e34,0x5eb1,0x5eb4,0x5eb9,0x5eb2,0x5eb3, +0x5f36,0x5f38,0x5f9b,0x5f96,0x5f9f,0x608a,0x6090,0x6086, +0x60be,0x60b0,0x60ba,0x60d3,0x60d4,0x60cf,0x60e4,0x60d9, +0x60dd,0x60c8,0x60b1,0x60db,0x60b7,0x60ca,0x60bf,0x60c3, +0x60cd,0x60c0,0x6332,0x6365,0x638a,0x6382,0x637d,0x63bd, +0x639e,0x63ad,0x639d,0x6397,0x63ab,0x638e,0x636f,0x6387, +0x6390,0x636e,0x63af,0x6375,0x639c,0x636d,0x63ae,0x637c, +0x63a4,0x633b,0x639f,0x6378,0x6385,0x6381,0x6391,0x638d, +0x6370,0x6553,0x65cd,0x6665,0x6661,0x665b,0x6659,0x665c, +0x6662,0x6718,0x6879,0x6887,0x6890,0x689c,0x686d,0x686e, +0x68ae,0x68ab,0x6956,0x686f,0x68a3,0x68ac,0x68a9,0x6875, +0x6874,0x68b2,0x688f,0x6877,0x6892,0x687c,0x686b,0x6872, +0x68aa,0x6880,0x6871,0x687e,0x689b,0x6896,0x688b,0x68a0, +0x6889,0x68a4,0x6878,0x687b,0x6891,0x688c,0x688a,0x687d, +0x6b36,0x6b33,0x6b37,0x6b38,0x6b91,0x6b8f,0x6b8d,0x6b8e, +0x6b8c,0x6c2a,0x6dc0,0x6dab,0x6db4,0x6db3,0x6e74,0x6dac, +0x6de9,0x6de2,0x6db7,0x6df6,0x6dd4,0x6e00,0x6dc8,0x6de0, +0x6ddf,0x6dd6,0x6dbe,0x6de5,0x6ddc,0x6ddd,0x6ddb,0x6df4, +0x6dca,0x6dbd,0x6ded,0x6df0,0x6dba,0x6dd5,0x6dc2,0x6dcf, +0x6dc9,0x6dd0,0x6df2,0x6dd3,0x6dfd,0x6dd7,0x6dcd,0x6de3, +0x6dbb,0x70fa,0x710d,0x70f7,0x7117,0x70f4,0x710c,0x70f0, +0x7104,0x70f3,0x7110,0x70fc,0x70ff,0x7106,0x7113,0x7100, +0x70f8,0x70f6,0x710b,0x7102,0x710e,0x727e,0x727b,0x727c, +0x727f,0x731d,0x7317,0x7307,0x7311,0x7318,0x730a,0x7308, +0x72ff,0x730f,0x731e,0x7388,0x73f6,0x73f8,0x73f5,0x7404, +0x7401,0x73fd,0x7407,0x7400,0x73fa,0x73fc,0x73ff,0x740c, +0x740b,0x73f4,0x7408,0x7564,0x7563,0x75ce,0x75d2,0x75cf, +0x75cb,0x75cc,0x75d1,0x75d0,0x768f,0x7689,0x76d3,0x7739, +0x772f,0x772d,0x7731,0x7732,0x7734,0x7733,0x773d,0x7725, +0x773b,0x7735,0x7848,0x7852,0x7849,0x784d,0x784a,0x784c, +0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796a,0x7963, +0x796b,0x7961,0x79bb,0x79fa,0x79f8,0x79f6,0x79f7,0x7a8f, +0x7a94,0x7a90,0x7b35,0x7b47,0x7b34,0x7b25,0x7b30,0x7b22, +0x7b24,0x7b33,0x7b18,0x7b2a,0x7b1d,0x7b31,0x7b2b,0x7b2d, +0x7b2f,0x7b32,0x7b38,0x7b1a,0x7b23,0x7c94,0x7c98,0x7c96, +0x7ca3,0x7d35,0x7d3d,0x7d38,0x7d36,0x7d3a,0x7d45,0x7d2c, +0x7d29,0x7d41,0x7d47,0x7d3e,0x7d3f,0x7d4a,0x7d3b,0x7d28, +0x7f63,0x7f95,0x7f9c,0x7f9d,0x7f9b,0x7fca,0x7fcb,0x7fcd, +0x7fd0,0x7fd1,0x7fc7,0x7fcf,0x7fc9,0x801f,0x801e,0x801b, +0x8047,0x8043,0x8048,0x8118,0x8125,0x8119,0x811b,0x812d, +0x811f,0x812c,0x811e,0x8121,0x8115,0x8127,0x811d,0x8122, +0x8211,0x8238,0x8233,0x823a,0x8234,0x8232,0x8274,0x8390, +0x83a3,0x83a8,0x838d,0x837a,0x8373,0x83a4,0x8374,0x838f, +0x8381,0x8395,0x8399,0x8375,0x8394,0x83a9,0x837d,0x8383, +0x838c,0x839d,0x839b,0x83aa,0x838b,0x837e,0x83a5,0x83af, +0x8388,0x8397,0x83b0,0x837f,0x83a6,0x8387,0x83ae,0x8376, +0x839a,0x8659,0x8656,0x86bf,0x86b7,0x86c2,0x86c1,0x86c5, +0x86ba,0x86b0,0x86c8,0x86b9,0x86b3,0x86b8,0x86cc,0x86b4, +0x86bb,0x86bc,0x86c3,0x86bd,0x86be,0x8852,0x8889,0x8895, +0x88a8,0x88a2,0x88aa,0x889a,0x8891,0x88a1,0x889f,0x8898, +0x88a7,0x8899,0x889b,0x8897,0x88a4,0x88ac,0x888c,0x8893, +0x888e,0x8982,0x89d6,0x89d9,0x89d5,0x8a30,0x8a27,0x8a2c, +0x8a1e,0x8c39,0x8c3b,0x8c5c,0x8c5d,0x8c7d,0x8ca5,0x8d7d, +0x8d7b,0x8d79,0x8dbc,0x8dc2,0x8db9,0x8dbf,0x8dc1,0x8ed8, +0x8ede,0x8edd,0x8edc,0x8ed7,0x8ee0,0x8ee1,0x9024,0x900b, +0x9011,0x901c,0x900c,0x9021,0x90ef,0x90ea,0x90f0,0x90f4, +0x90f2,0x90f3,0x90d4,0x90eb,0x90ec,0x90e9,0x9156,0x9158, +0x915a,0x9153,0x9155,0x91ec,0x91f4,0x91f1,0x91f3,0x91f8, +0x91e4,0x91f9,0x91ea,0x91eb,0x91f7,0x91e8,0x91ee,0x957a, +0x9586,0x9588,0x967c,0x966d,0x966b,0x9671,0x966f,0x96bf, +0x976a,0x9804,0x98e5,0x9997,0x509b,0x5095,0x5094,0x509e, +0x508b,0x50a3,0x5083,0x508c,0x508e,0x509d,0x5068,0x509c, +0x5092,0x5082,0x5087,0x515f,0x51d4,0x5312,0x5311,0x53a4, +0x53a7,0x5591,0x55a8,0x55a5,0x55ad,0x5577,0x5645,0x55a2, +0x5593,0x5588,0x558f,0x55b5,0x5581,0x55a3,0x5592,0x55a4, +0x557d,0x558c,0x55a6,0x557f,0x5595,0x55a1,0x558e,0x570c, +0x5829,0x5837,0x5819,0x581e,0x5827,0x5823,0x5828,0x57f5, +0x5848,0x5825,0x581c,0x581b,0x5833,0x583f,0x5836,0x582e, +0x5839,0x5838,0x582d,0x582c,0x583b,0x5961,0x5aaf,0x5a94, +0x5a9f,0x5a7a,0x5aa2,0x5a9e,0x5a78,0x5aa6,0x5a7c,0x5aa5, +0x5aac,0x5a95,0x5aae,0x5a37,0x5a84,0x5a8a,0x5a97,0x5a83, +0x5a8b,0x5aa9,0x5a7b,0x5a7d,0x5a8c,0x5a9c,0x5a8f,0x5a93, +0x5a9d,0x5bea,0x5bcd,0x5bcb,0x5bd4,0x5bd1,0x5bca,0x5bce, +0x5c0c,0x5c30,0x5d37,0x5d43,0x5d6b,0x5d41,0x5d4b,0x5d3f, +0x5d35,0x5d51,0x5d4e,0x5d55,0x5d33,0x5d3a,0x5d52,0x5d3d, +0x5d31,0x5d59,0x5d42,0x5d39,0x5d49,0x5d38,0x5d3c,0x5d32, +0x5d36,0x5d40,0x5d45,0x5e44,0x5e41,0x5f58,0x5fa6,0x5fa5, +0x5fab,0x60c9,0x60b9,0x60cc,0x60e2,0x60ce,0x60c4,0x6114, +0x60f2,0x610a,0x6116,0x6105,0x60f5,0x6113,0x60f8,0x60fc, +0x60fe,0x60c1,0x6103,0x6118,0x611d,0x6110,0x60ff,0x6104, +0x610b,0x624a,0x6394,0x63b1,0x63b0,0x63ce,0x63e5,0x63e8, +0x63ef,0x63c3,0x649d,0x63f3,0x63ca,0x63e0,0x63f6,0x63d5, +0x63f2,0x63f5,0x6461,0x63df,0x63be,0x63dd,0x63dc,0x63c4, +0x63d8,0x63d3,0x63c2,0x63c7,0x63cc,0x63cb,0x63c8,0x63f0, +0x63d7,0x63d9,0x6532,0x6567,0x656a,0x6564,0x655c,0x6568, +0x6565,0x658c,0x659d,0x659e,0x65ae,0x65d0,0x65d2,0x667c, +0x666c,0x667b,0x6680,0x6671,0x6679,0x666a,0x6672,0x6701, +0x690c,0x68d3,0x6904,0x68dc,0x692a,0x68ec,0x68ea,0x68f1, +0x690f,0x68d6,0x68f7,0x68eb,0x68e4,0x68f6,0x6913,0x6910, +0x68f3,0x68e1,0x6907,0x68cc,0x6908,0x6970,0x68b4,0x6911, +0x68ef,0x68c6,0x6914,0x68f8,0x68d0,0x68fd,0x68fc,0x68e8, +0x690b,0x690a,0x6917,0x68ce,0x68c8,0x68dd,0x68de,0x68e6, +0x68f4,0x68d1,0x6906,0x68d4,0x68e9,0x6915,0x6925,0x68c7, +0x6b39,0x6b3b,0x6b3f,0x6b3c,0x6b94,0x6b97,0x6b99,0x6b95, +0x6bbd,0x6bf0,0x6bf2,0x6bf3,0x6c30,0x6dfc,0x6e46,0x6e47, +0x6e1f,0x6e49,0x6e88,0x6e3c,0x6e3d,0x6e45,0x6e62,0x6e2b, +0x6e3f,0x6e41,0x6e5d,0x6e73,0x6e1c,0x6e33,0x6e4b,0x6e40, +0x6e51,0x6e3b,0x6e03,0x6e2e,0x6e5e,0x6e68,0x6e5c,0x6e61, +0x6e31,0x6e28,0x6e60,0x6e71,0x6e6b,0x6e39,0x6e22,0x6e30, +0x6e53,0x6e65,0x6e27,0x6e78,0x6e64,0x6e77,0x6e55,0x6e79, +0x6e52,0x6e66,0x6e35,0x6e36,0x6e5a,0x7120,0x711e,0x712f, +0x70fb,0x712e,0x7131,0x7123,0x7125,0x7122,0x7132,0x711f, +0x7128,0x713a,0x711b,0x724b,0x725a,0x7288,0x7289,0x7286, +0x7285,0x728b,0x7312,0x730b,0x7330,0x7322,0x7331,0x7333, +0x7327,0x7332,0x732d,0x7326,0x7323,0x7335,0x730c,0x742e, +0x742c,0x7430,0x742b,0x7416,0x741a,0x7421,0x742d,0x7431, +0x7424,0x7423,0x741d,0x7429,0x7420,0x7432,0x74fb,0x752f, +0x756f,0x756c,0x75e7,0x75da,0x75e1,0x75e6,0x75dd,0x75df, +0x75e4,0x75d7,0x7695,0x7692,0x76da,0x7746,0x7747,0x7744, +0x774d,0x7745,0x774a,0x774e,0x774b,0x774c,0x77de,0x77ec, +0x7860,0x7864,0x7865,0x785c,0x786d,0x7871,0x786a,0x786e, +0x7870,0x7869,0x7868,0x785e,0x7862,0x7974,0x7973,0x7972, +0x7970,0x7a02,0x7a0a,0x7a03,0x7a0c,0x7a04,0x7a99,0x7ae6, +0x7ae4,0x7b4a,0x7b3b,0x7b44,0x7b48,0x7b4c,0x7b4e,0x7b40, +0x7b58,0x7b45,0x7ca2,0x7c9e,0x7ca8,0x7ca1,0x7d58,0x7d6f, +0x7d63,0x7d53,0x7d56,0x7d67,0x7d6a,0x7d4f,0x7d6d,0x7d5c, +0x7d6b,0x7d52,0x7d54,0x7d69,0x7d51,0x7d5f,0x7d4e,0x7f3e, +0x7f3f,0x7f65,0x7f66,0x7fa2,0x7fa0,0x7fa1,0x7fd7,0x8051, +0x804f,0x8050,0x80fe,0x80d4,0x8143,0x814a,0x8152,0x814f, +0x8147,0x813d,0x814d,0x813a,0x81e6,0x81ee,0x81f7,0x81f8, +0x81f9,0x8204,0x823c,0x823d,0x823f,0x8275,0x833b,0x83cf, +0x83f9,0x8423,0x83c0,0x83e8,0x8412,0x83e7,0x83e4,0x83fc, +0x83f6,0x8410,0x83c6,0x83c8,0x83eb,0x83e3,0x83bf,0x8401, +0x83dd,0x83e5,0x83d8,0x83ff,0x83e1,0x83cb,0x83ce,0x83d6, +0x83f5,0x83c9,0x8409,0x840f,0x83de,0x8411,0x8406,0x83c2, +0x83f3,0x83d5,0x83fa,0x83c7,0x83d1,0x83ea,0x8413,0x83c3, +0x83ec,0x83ee,0x83c4,0x83fb,0x83d7,0x83e2,0x841b,0x83db, +0x83fe,0x86d8,0x86e2,0x86e6,0x86d3,0x86e3,0x86da,0x86ea, +0x86dd,0x86eb,0x86dc,0x86ec,0x86e9,0x86d7,0x86e8,0x86d1, +0x8848,0x8856,0x8855,0x88ba,0x88d7,0x88b9,0x88b8,0x88c0, +0x88be,0x88b6,0x88bc,0x88b7,0x88bd,0x88b2,0x8901,0x88c9, +0x8995,0x8998,0x8997,0x89dd,0x89da,0x89db,0x8a4e,0x8a4d, +0x8a39,0x8a59,0x8a40,0x8a57,0x8a58,0x8a44,0x8a45,0x8a52, +0x8a48,0x8a51,0x8a4a,0x8a4c,0x8a4f,0x8c5f,0x8c81,0x8c80, +0x8cba,0x8cbe,0x8cb0,0x8cb9,0x8cb5,0x8d84,0x8d80,0x8d89, +0x8dd8,0x8dd3,0x8dcd,0x8dc7,0x8dd6,0x8ddc,0x8dcf,0x8dd5, +0x8dd9,0x8dc8,0x8dd7,0x8dc5,0x8eef,0x8ef7,0x8efa,0x8ef9, +0x8ee6,0x8eee,0x8ee5,0x8ef5,0x8ee7,0x8ee8,0x8ef6,0x8eeb, +0x8ef1,0x8eec,0x8ef4,0x8ee9,0x902d,0x9034,0x902f,0x9106, +0x912c,0x9104,0x90ff,0x90fc,0x9108,0x90f9,0x90fb,0x9101, +0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915f,0x9162, +0x9160,0x9201,0x920a,0x9225,0x9203,0x921a,0x9226,0x920f, +0x920c,0x9200,0x9212,0x91ff,0x91fd,0x9206,0x9204,0x9227, +0x9202,0x921c,0x9224,0x9219,0x9217,0x9205,0x9216,0x957b, +0x958d,0x958c,0x9590,0x9687,0x967e,0x9688,0x9689,0x9683, +0x9680,0x96c2,0x96c8,0x96c3,0x96f1,0x96f0,0x976c,0x9770, +0x976e,0x9807,0x98a9,0x98eb,0x9ce6,0x9ef9,0x4e83,0x4e84, +0x4eb6,0x50bd,0x50bf,0x50c6,0x50ae,0x50c4,0x50ca,0x50b4, +0x50c8,0x50c2,0x50b0,0x50c1,0x50ba,0x50b1,0x50cb,0x50c9, +0x50b6,0x50b8,0x51d7,0x527a,0x5278,0x527b,0x527c,0x55c3, +0x55db,0x55cc,0x55d0,0x55cb,0x55ca,0x55dd,0x55c0,0x55d4, +0x55c4,0x55e9,0x55bf,0x55d2,0x558d,0x55cf,0x55d5,0x55e2, +0x55d6,0x55c8,0x55f2,0x55cd,0x55d9,0x55c2,0x5714,0x5853, +0x5868,0x5864,0x584f,0x584d,0x5849,0x586f,0x5855,0x584e, +0x585d,0x5859,0x5865,0x585b,0x583d,0x5863,0x5871,0x58fc, +0x5ac7,0x5ac4,0x5acb,0x5aba,0x5ab8,0x5ab1,0x5ab5,0x5ab0, +0x5abf,0x5ac8,0x5abb,0x5ac6,0x5ab7,0x5ac0,0x5aca,0x5ab4, +0x5ab6,0x5acd,0x5ab9,0x5a90,0x5bd6,0x5bd8,0x5bd9,0x5c1f, +0x5c33,0x5d71,0x5d63,0x5d4a,0x5d65,0x5d72,0x5d6c,0x5d5e, +0x5d68,0x5d67,0x5d62,0x5df0,0x5e4f,0x5e4e,0x5e4a,0x5e4d, +0x5e4b,0x5ec5,0x5ecc,0x5ec6,0x5ecb,0x5ec7,0x5f40,0x5faf, +0x5fad,0x60f7,0x6149,0x614a,0x612b,0x6145,0x6136,0x6132, +0x612e,0x6146,0x612f,0x614f,0x6129,0x6140,0x6220,0x9168, +0x6223,0x6225,0x6224,0x63c5,0x63f1,0x63eb,0x6410,0x6412, +0x6409,0x6420,0x6424,0x6433,0x6443,0x641f,0x6415,0x6418, +0x6439,0x6437,0x6422,0x6423,0x640c,0x6426,0x6430,0x6428, +0x6441,0x6435,0x642f,0x640a,0x641a,0x6440,0x6425,0x6427, +0x640b,0x63e7,0x641b,0x642e,0x6421,0x640e,0x656f,0x6592, +0x65d3,0x6686,0x668c,0x6695,0x6690,0x668b,0x668a,0x6699, +0x6694,0x6678,0x6720,0x6966,0x695f,0x6938,0x694e,0x6962, +0x6971,0x693f,0x6945,0x696a,0x6939,0x6942,0x6957,0x6959, +0x697a,0x6948,0x6949,0x6935,0x696c,0x6933,0x693d,0x6965, +0x68f0,0x6978,0x6934,0x6969,0x6940,0x696f,0x6944,0x6976, +0x6958,0x6941,0x6974,0x694c,0x693b,0x694b,0x6937,0x695c, +0x694f,0x6951,0x6932,0x6952,0x692f,0x697b,0x693c,0x6b46, +0x6b45,0x6b43,0x6b42,0x6b48,0x6b41,0x6b9b,0xfa0d,0x6bfb, +0x6bfc,0x6bf9,0x6bf7,0x6bf8,0x6e9b,0x6ed6,0x6ec8,0x6e8f, +0x6ec0,0x6e9f,0x6e93,0x6e94,0x6ea0,0x6eb1,0x6eb9,0x6ec6, +0x6ed2,0x6ebd,0x6ec1,0x6e9e,0x6ec9,0x6eb7,0x6eb0,0x6ecd, +0x6ea6,0x6ecf,0x6eb2,0x6ebe,0x6ec3,0x6edc,0x6ed8,0x6e99, +0x6e92,0x6e8e,0x6e8d,0x6ea4,0x6ea1,0x6ebf,0x6eb3,0x6ed0, +0x6eca,0x6e97,0x6eae,0x6ea3,0x7147,0x7154,0x7152,0x7163, +0x7160,0x7141,0x715d,0x7162,0x7172,0x7178,0x716a,0x7161, +0x7142,0x7158,0x7143,0x714b,0x7170,0x715f,0x7150,0x7153, +0x7144,0x714d,0x715a,0x724f,0x728d,0x728c,0x7291,0x7290, +0x728e,0x733c,0x7342,0x733b,0x733a,0x7340,0x734a,0x7349, +0x7444,0x744a,0x744b,0x7452,0x7451,0x7457,0x7440,0x744f, +0x7450,0x744e,0x7442,0x7446,0x744d,0x7454,0x74e1,0x74ff, +0x74fe,0x74fd,0x751d,0x7579,0x7577,0x6983,0x75ef,0x760f, +0x7603,0x75f7,0x75fe,0x75fc,0x75f9,0x75f8,0x7610,0x75fb, +0x75f6,0x75ed,0x75f5,0x75fd,0x7699,0x76b5,0x76dd,0x7755, +0x775f,0x7760,0x7752,0x7756,0x775a,0x7769,0x7767,0x7754, +0x7759,0x776d,0x77e0,0x7887,0x789a,0x7894,0x788f,0x7884, +0x7895,0x7885,0x7886,0x78a1,0x7883,0x7879,0x7899,0x7880, +0x7896,0x787b,0x797c,0x7982,0x797d,0x7979,0x7a11,0x7a18, +0x7a19,0x7a12,0x7a17,0x7a15,0x7a22,0x7a13,0x7a1b,0x7a10, +0x7aa3,0x7aa2,0x7a9e,0x7aeb,0x7b66,0x7b64,0x7b6d,0x7b74, +0x7b69,0x7b72,0x7b65,0x7b73,0x7b71,0x7b70,0x7b61,0x7b78, +0x7b76,0x7b63,0x7cb2,0x7cb4,0x7caf,0x7d88,0x7d86,0x7d80, +0x7d8d,0x7d7f,0x7d85,0x7d7a,0x7d8e,0x7d7b,0x7d83,0x7d7c, +0x7d8c,0x7d94,0x7d84,0x7d7d,0x7d92,0x7f6d,0x7f6b,0x7f67, +0x7f68,0x7f6c,0x7fa6,0x7fa5,0x7fa7,0x7fdb,0x7fdc,0x8021, +0x8164,0x8160,0x8177,0x815c,0x8169,0x815b,0x8162,0x8172, +0x6721,0x815e,0x8176,0x8167,0x816f,0x8144,0x8161,0x821d, +0x8249,0x8244,0x8240,0x8242,0x8245,0x84f1,0x843f,0x8456, +0x8476,0x8479,0x848f,0x848d,0x8465,0x8451,0x8440,0x8486, +0x8467,0x8430,0x844d,0x847d,0x845a,0x8459,0x8474,0x8473, +0x845d,0x8507,0x845e,0x8437,0x843a,0x8434,0x847a,0x8443, +0x8478,0x8432,0x8445,0x8429,0x83d9,0x844b,0x842f,0x8442, +0x842d,0x845f,0x8470,0x8439,0x844e,0x844c,0x8452,0x846f, +0x84c5,0x848e,0x843b,0x8447,0x8436,0x8433,0x8468,0x847e, +0x8444,0x842b,0x8460,0x8454,0x846e,0x8450,0x870b,0x8704, +0x86f7,0x870c,0x86fa,0x86d6,0x86f5,0x874d,0x86f8,0x870e, +0x8709,0x8701,0x86f6,0x870d,0x8705,0x88d6,0x88cb,0x88cd, +0x88ce,0x88de,0x88db,0x88da,0x88cc,0x88d0,0x8985,0x899b, +0x89df,0x89e5,0x89e4,0x89e1,0x89e0,0x89e2,0x89dc,0x89e6, +0x8a76,0x8a86,0x8a7f,0x8a61,0x8a3f,0x8a77,0x8a82,0x8a84, +0x8a75,0x8a83,0x8a81,0x8a74,0x8a7a,0x8c3c,0x8c4b,0x8c4a, +0x8c65,0x8c64,0x8c66,0x8c86,0x8c84,0x8c85,0x8ccc,0x8d68, +0x8d69,0x8d91,0x8d8c,0x8d8e,0x8d8f,0x8d8d,0x8d93,0x8d94, +0x8d90,0x8d92,0x8df0,0x8de0,0x8dec,0x8df1,0x8dee,0x8dd0, +0x8de9,0x8de3,0x8de2,0x8de7,0x8df2,0x8deb,0x8df4,0x8f06, +0x8eff,0x8f01,0x8f00,0x8f05,0x8f07,0x8f08,0x8f02,0x8f0b, +0x9052,0x903f,0x9044,0x9049,0x903d,0x9110,0x910d,0x910f, +0x9111,0x9116,0x9114,0x910b,0x910e,0x916e,0x916f,0x9248, +0x9252,0x9230,0x923a,0x9266,0x9233,0x9265,0x925e,0x9283, +0x922e,0x924a,0x9246,0x926d,0x926c,0x924f,0x9260,0x9267, +0x926f,0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250, +0x9272,0x924e,0x9253,0x924c,0x9256,0x9232,0x959f,0x959c, +0x959e,0x959b,0x9692,0x9693,0x9691,0x9697,0x96ce,0x96fa, +0x96fd,0x96f8,0x96f5,0x9773,0x9777,0x9778,0x9772,0x980f, +0x980d,0x980e,0x98ac,0x98f6,0x98f9,0x99af,0x99b2,0x99b0, +0x99b5,0x9aad,0x9aab,0x9b5b,0x9cea,0x9ced,0x9ce7,0x9e80, +0x9efd,0x50e6,0x50d4,0x50d7,0x50e8,0x50f3,0x50db,0x50ea, +0x50dd,0x50e4,0x50d3,0x50ec,0x50f0,0x50ef,0x50e3,0x50e0, +0x51d8,0x5280,0x5281,0x52e9,0x52eb,0x5330,0x53ac,0x5627, +0x5615,0x560c,0x5612,0x55fc,0x560f,0x561c,0x5601,0x5613, +0x5602,0x55fa,0x561d,0x5604,0x55ff,0x55f9,0x5889,0x587c, +0x5890,0x5898,0x5886,0x5881,0x587f,0x5874,0x588b,0x587a, +0x5887,0x5891,0x588e,0x5876,0x5882,0x5888,0x587b,0x5894, +0x588f,0x58fe,0x596b,0x5adc,0x5aee,0x5ae5,0x5ad5,0x5aea, +0x5ada,0x5aed,0x5aeb,0x5af3,0x5ae2,0x5ae0,0x5adb,0x5aec, +0x5ade,0x5add,0x5ad9,0x5ae8,0x5adf,0x5b77,0x5be0,0x5be3, +0x5c63,0x5d82,0x5d80,0x5d7d,0x5d86,0x5d7a,0x5d81,0x5d77, +0x5d8a,0x5d89,0x5d88,0x5d7e,0x5d7c,0x5d8d,0x5d79,0x5d7f, +0x5e58,0x5e59,0x5e53,0x5ed8,0x5ed1,0x5ed7,0x5ece,0x5edc, +0x5ed5,0x5ed9,0x5ed2,0x5ed4,0x5f44,0x5f43,0x5f6f,0x5fb6, +0x612c,0x6128,0x6141,0x615e,0x6171,0x6173,0x6152,0x6153, +0x6172,0x616c,0x6180,0x6174,0x6154,0x617a,0x615b,0x6165, +0x613b,0x616a,0x6161,0x6156,0x6229,0x6227,0x622b,0x642b, +0x644d,0x645b,0x645d,0x6474,0x6476,0x6472,0x6473,0x647d, +0x6475,0x6466,0x64a6,0x644e,0x6482,0x645e,0x645c,0x644b, +0x6453,0x6460,0x6450,0x647f,0x643f,0x646c,0x646b,0x6459, +0x6465,0x6477,0x6573,0x65a0,0x66a1,0x66a0,0x669f,0x6705, +0x6704,0x6722,0x69b1,0x69b6,0x69c9,0x69a0,0x69ce,0x6996, +0x69b0,0x69ac,0x69bc,0x6991,0x6999,0x698e,0x69a7,0x698d, +0x69a9,0x69be,0x69af,0x69bf,0x69c4,0x69bd,0x69a4,0x69d4, +0x69b9,0x69ca,0x699a,0x69cf,0x69b3,0x6993,0x69aa,0x69a1, +0x699e,0x69d9,0x6997,0x6990,0x69c2,0x69b5,0x69a5,0x69c6, +0x6b4a,0x6b4d,0x6b4b,0x6b9e,0x6b9f,0x6ba0,0x6bc3,0x6bc4, +0x6bfe,0x6ece,0x6ef5,0x6ef1,0x6f03,0x6f25,0x6ef8,0x6f37, +0x6efb,0x6f2e,0x6f09,0x6f4e,0x6f19,0x6f1a,0x6f27,0x6f18, +0x6f3b,0x6f12,0x6eed,0x6f0a,0x6f36,0x6f73,0x6ef9,0x6eee, +0x6f2d,0x6f40,0x6f30,0x6f3c,0x6f35,0x6eeb,0x6f07,0x6f0e, +0x6f43,0x6f05,0x6efd,0x6ef6,0x6f39,0x6f1c,0x6efc,0x6f3a, +0x6f1f,0x6f0d,0x6f1e,0x6f08,0x6f21,0x7187,0x7190,0x7189, +0x7180,0x7185,0x7182,0x718f,0x717b,0x7186,0x7181,0x7197, +0x7244,0x7253,0x7297,0x7295,0x7293,0x7343,0x734d,0x7351, +0x734c,0x7462,0x7473,0x7471,0x7475,0x7472,0x7467,0x746e, +0x7500,0x7502,0x7503,0x757d,0x7590,0x7616,0x7608,0x760c, +0x7615,0x7611,0x760a,0x7614,0x76b8,0x7781,0x777c,0x7785, +0x7782,0x776e,0x7780,0x776f,0x777e,0x7783,0x78b2,0x78aa, +0x78b4,0x78ad,0x78a8,0x787e,0x78ab,0x789e,0x78a5,0x78a0, +0x78ac,0x78a2,0x78a4,0x7998,0x798a,0x798b,0x7996,0x7995, +0x7994,0x7993,0x7997,0x7988,0x7992,0x7990,0x7a2b,0x7a4a, +0x7a30,0x7a2f,0x7a28,0x7a26,0x7aa8,0x7aab,0x7aac,0x7aee, +0x7b88,0x7b9c,0x7b8a,0x7b91,0x7b90,0x7b96,0x7b8d,0x7b8c, +0x7b9b,0x7b8e,0x7b85,0x7b98,0x5284,0x7b99,0x7ba4,0x7b82, +0x7cbb,0x7cbf,0x7cbc,0x7cba,0x7da7,0x7db7,0x7dc2,0x7da3, +0x7daa,0x7dc1,0x7dc0,0x7dc5,0x7d9d,0x7dce,0x7dc4,0x7dc6, +0x7dcb,0x7dcc,0x7daf,0x7db9,0x7d96,0x7dbc,0x7d9f,0x7da6, +0x7dae,0x7da9,0x7da1,0x7dc9,0x7f73,0x7fe2,0x7fe3,0x7fe5, +0x7fde,0x8024,0x805d,0x805c,0x8189,0x8186,0x8183,0x8187, +0x818d,0x818c,0x818b,0x8215,0x8497,0x84a4,0x84a1,0x849f, +0x84ba,0x84ce,0x84c2,0x84ac,0x84ae,0x84ab,0x84b9,0x84b4, +0x84c1,0x84cd,0x84aa,0x849a,0x84b1,0x84d0,0x849d,0x84a7, +0x84bb,0x84a2,0x8494,0x84c7,0x84cc,0x849b,0x84a9,0x84af, +0x84a8,0x84d6,0x8498,0x84b6,0x84cf,0x84a0,0x84d7,0x84d4, +0x84d2,0x84db,0x84b0,0x8491,0x8661,0x8733,0x8723,0x8728, +0x876b,0x8740,0x872e,0x871e,0x8721,0x8719,0x871b,0x8743, +0x872c,0x8741,0x873e,0x8746,0x8720,0x8732,0x872a,0x872d, +0x873c,0x8712,0x873a,0x8731,0x8735,0x8742,0x8726,0x8727, +0x8738,0x8724,0x871a,0x8730,0x8711,0x88f7,0x88e7,0x88f1, +0x88f2,0x88fa,0x88fe,0x88ee,0x88fc,0x88f6,0x88fb,0x88f0, +0x88ec,0x88eb,0x899d,0x89a1,0x899f,0x899e,0x89e9,0x89eb, +0x89e8,0x8aab,0x8a99,0x8a8b,0x8a92,0x8a8f,0x8a96,0x8c3d, +0x8c68,0x8c69,0x8cd5,0x8ccf,0x8cd7,0x8d96,0x8e09,0x8e02, +0x8dff,0x8e0d,0x8dfd,0x8e0a,0x8e03,0x8e07,0x8e06,0x8e05, +0x8dfe,0x8e00,0x8e04,0x8f10,0x8f11,0x8f0e,0x8f0d,0x9123, +0x911c,0x9120,0x9122,0x911f,0x911d,0x911a,0x9124,0x9121, +0x911b,0x917a,0x9172,0x9179,0x9173,0x92a5,0x92a4,0x9276, +0x929b,0x927a,0x92a0,0x9294,0x92aa,0x928d,0x92a6,0x929a, +0x92ab,0x9279,0x9297,0x927f,0x92a3,0x92ee,0x928e,0x9282, +0x9295,0x92a2,0x927d,0x9288,0x92a1,0x928a,0x9286,0x928c, +0x9299,0x92a7,0x927e,0x9287,0x92a9,0x929d,0x928b,0x922d, +0x969e,0x96a1,0x96ff,0x9758,0x977d,0x977a,0x977e,0x9783, +0x9780,0x9782,0x977b,0x9784,0x9781,0x977f,0x97ce,0x97cd, +0x9816,0x98ad,0x98ae,0x9902,0x9900,0x9907,0x999d,0x999c, +0x99c3,0x99b9,0x99bb,0x99ba,0x99c2,0x99bd,0x99c7,0x9ab1, +0x9ae3,0x9ae7,0x9b3e,0x9b3f,0x9b60,0x9b61,0x9b5f,0x9cf1, +0x9cf2,0x9cf5,0x9ea7,0x50ff,0x5103,0x5130,0x50f8,0x5106, +0x5107,0x50f6,0x50fe,0x510b,0x510c,0x50fd,0x510a,0x528b, +0x528c,0x52f1,0x52ef,0x5648,0x5642,0x564c,0x5635,0x5641, +0x564a,0x5649,0x5646,0x5658,0x565a,0x5640,0x5633,0x563d, +0x562c,0x563e,0x5638,0x562a,0x563a,0x571a,0x58ab,0x589d, +0x58b1,0x58a0,0x58a3,0x58af,0x58ac,0x58a5,0x58a1,0x58ff, +0x5aff,0x5af4,0x5afd,0x5af7,0x5af6,0x5b03,0x5af8,0x5b02, +0x5af9,0x5b01,0x5b07,0x5b05,0x5b0f,0x5c67,0x5d99,0x5d97, +0x5d9f,0x5d92,0x5da2,0x5d93,0x5d95,0x5da0,0x5d9c,0x5da1, +0x5d9a,0x5d9e,0x5e69,0x5e5d,0x5e60,0x5e5c,0x7df3,0x5edb, +0x5ede,0x5ee1,0x5f49,0x5fb2,0x618b,0x6183,0x6179,0x61b1, +0x61b0,0x61a2,0x6189,0x619b,0x6193,0x61af,0x61ad,0x619f, +0x6192,0x61aa,0x61a1,0x618d,0x6166,0x61b3,0x622d,0x646e, +0x6470,0x6496,0x64a0,0x6485,0x6497,0x649c,0x648f,0x648b, +0x648a,0x648c,0x64a3,0x649f,0x6468,0x64b1,0x6498,0x6576, +0x657a,0x6579,0x657b,0x65b2,0x65b3,0x66b5,0x66b0,0x66a9, +0x66b2,0x66b7,0x66aa,0x66af,0x6a00,0x6a06,0x6a17,0x69e5, +0x69f8,0x6a15,0x69f1,0x69e4,0x6a20,0x69ff,0x69ec,0x69e2, +0x6a1b,0x6a1d,0x69fe,0x6a27,0x69f2,0x69ee,0x6a14,0x69f7, +0x69e7,0x6a40,0x6a08,0x69e6,0x69fb,0x6a0d,0x69fc,0x69eb, +0x6a09,0x6a04,0x6a18,0x6a25,0x6a0f,0x69f6,0x6a26,0x6a07, +0x69f4,0x6a16,0x6b51,0x6ba5,0x6ba3,0x6ba2,0x6ba6,0x6c01, +0x6c00,0x6bff,0x6c02,0x6f41,0x6f26,0x6f7e,0x6f87,0x6fc6, +0x6f92,0x6f8d,0x6f89,0x6f8c,0x6f62,0x6f4f,0x6f85,0x6f5a, +0x6f96,0x6f76,0x6f6c,0x6f82,0x6f55,0x6f72,0x6f52,0x6f50, +0x6f57,0x6f94,0x6f93,0x6f5d,0x6f00,0x6f61,0x6f6b,0x6f7d, +0x6f67,0x6f90,0x6f53,0x6f8b,0x6f69,0x6f7f,0x6f95,0x6f63, +0x6f77,0x6f6a,0x6f7b,0x71b2,0x71af,0x719b,0x71b0,0x71a0, +0x719a,0x71a9,0x71b5,0x719d,0x71a5,0x719e,0x71a4,0x71a1, +0x71aa,0x719c,0x71a7,0x71b3,0x7298,0x729a,0x7358,0x7352, +0x735e,0x735f,0x7360,0x735d,0x735b,0x7361,0x735a,0x7359, +0x7362,0x7487,0x7489,0x748a,0x7486,0x7481,0x747d,0x7485, +0x7488,0x747c,0x7479,0x7508,0x7507,0x757e,0x7625,0x761e, +0x7619,0x761d,0x761c,0x7623,0x761a,0x7628,0x761b,0x769c, +0x769d,0x769e,0x769b,0x778d,0x778f,0x7789,0x7788,0x78cd, +0x78bb,0x78cf,0x78cc,0x78d1,0x78ce,0x78d4,0x78c8,0x78c3, +0x78c4,0x78c9,0x799a,0x79a1,0x79a0,0x799c,0x79a2,0x799b, +0x6b76,0x7a39,0x7ab2,0x7ab4,0x7ab3,0x7bb7,0x7bcb,0x7bbe, +0x7bac,0x7bce,0x7baf,0x7bb9,0x7bca,0x7bb5,0x7cc5,0x7cc8, +0x7ccc,0x7ccb,0x7df7,0x7ddb,0x7dea,0x7de7,0x7dd7,0x7de1, +0x7e03,0x7dfa,0x7de6,0x7df6,0x7df1,0x7df0,0x7dee,0x7ddf, +0x7f76,0x7fac,0x7fb0,0x7fad,0x7fed,0x7feb,0x7fea,0x7fec, +0x7fe6,0x7fe8,0x8064,0x8067,0x81a3,0x819f,0x819e,0x8195, +0x81a2,0x8199,0x8197,0x8216,0x824f,0x8253,0x8252,0x8250, +0x824e,0x8251,0x8524,0x853b,0x850f,0x8500,0x8529,0x850e, +0x8509,0x850d,0x851f,0x850a,0x8527,0x851c,0x84fb,0x852b, +0x84fa,0x8508,0x850c,0x84f4,0x852a,0x84f2,0x8515,0x84f7, +0x84eb,0x84f3,0x84fc,0x8512,0x84ea,0x84e9,0x8516,0x84fe, +0x8528,0x851d,0x852e,0x8502,0x84fd,0x851e,0x84f6,0x8531, +0x8526,0x84e7,0x84e8,0x84f0,0x84ef,0x84f9,0x8518,0x8520, +0x8530,0x850b,0x8519,0x852f,0x8662,0x8756,0x8763,0x8764, +0x8777,0x87e1,0x8773,0x8758,0x8754,0x875b,0x8752,0x8761, +0x875a,0x8751,0x875e,0x876d,0x876a,0x8750,0x874e,0x875f, +0x875d,0x876f,0x876c,0x877a,0x876e,0x875c,0x8765,0x874f, +0x877b,0x8775,0x8762,0x8767,0x8769,0x885a,0x8905,0x890c, +0x8914,0x890b,0x8917,0x8918,0x8919,0x8906,0x8916,0x8911, +0x890e,0x8909,0x89a2,0x89a4,0x89a3,0x89ed,0x89f0,0x89ec, +0x8acf,0x8ac6,0x8ab8,0x8ad3,0x8ad1,0x8ad4,0x8ad5,0x8abb, +0x8ad7,0x8abe,0x8ac0,0x8ac5,0x8ad8,0x8ac3,0x8aba,0x8abd, +0x8ad9,0x8c3e,0x8c4d,0x8c8f,0x8ce5,0x8cdf,0x8cd9,0x8ce8, +0x8cda,0x8cdd,0x8ce7,0x8da0,0x8d9c,0x8da1,0x8d9b,0x8e20, +0x8e23,0x8e25,0x8e24,0x8e2e,0x8e15,0x8e1b,0x8e16,0x8e11, +0x8e19,0x8e26,0x8e27,0x8e14,0x8e12,0x8e18,0x8e13,0x8e1c, +0x8e17,0x8e1a,0x8f2c,0x8f24,0x8f18,0x8f1a,0x8f20,0x8f23, +0x8f16,0x8f17,0x9073,0x9070,0x906f,0x9067,0x906b,0x912f, +0x912b,0x9129,0x912a,0x9132,0x9126,0x912e,0x9185,0x9186, +0x918a,0x9181,0x9182,0x9184,0x9180,0x92d0,0x92c3,0x92c4, +0x92c0,0x92d9,0x92b6,0x92cf,0x92f1,0x92df,0x92d8,0x92e9, +0x92d7,0x92dd,0x92cc,0x92ef,0x92c2,0x92e8,0x92ca,0x92c8, +0x92ce,0x92e6,0x92cd,0x92d5,0x92c9,0x92e0,0x92de,0x92e7, +0x92d1,0x92d3,0x92b5,0x92e1,0x92c6,0x92b4,0x957c,0x95ac, +0x95ab,0x95ae,0x95b0,0x96a4,0x96a2,0x96d3,0x9705,0x9708, +0x9702,0x975a,0x978a,0x978e,0x9788,0x97d0,0x97cf,0x981e, +0x981d,0x9826,0x9829,0x9828,0x9820,0x981b,0x9827,0x98b2, +0x9908,0x98fa,0x9911,0x9914,0x9916,0x9917,0x9915,0x99dc, +0x99cd,0x99cf,0x99d3,0x99d4,0x99ce,0x99c9,0x99d6,0x99d8, +0x99cb,0x99d7,0x99cc,0x9ab3,0x9aec,0x9aeb,0x9af3,0x9af2, +0x9af1,0x9b46,0x9b43,0x9b67,0x9b74,0x9b71,0x9b66,0x9b76, +0x9b75,0x9b70,0x9b68,0x9b64,0x9b6c,0x9cfc,0x9cfa,0x9cfd, +0x9cff,0x9cf7,0x9d07,0x9d00,0x9cf9,0x9cfb,0x9d08,0x9d05, +0x9d04,0x9e83,0x9ed3,0x9f0f,0x9f10,0x511c,0x5113,0x5117, +0x511a,0x5111,0x51de,0x5334,0x53e1,0x5670,0x5660,0x566e, +0x5673,0x5666,0x5663,0x566d,0x5672,0x565e,0x5677,0x571c, +0x571b,0x58c8,0x58bd,0x58c9,0x58bf,0x58ba,0x58c2,0x58bc, +0x58c6,0x5b17,0x5b19,0x5b1b,0x5b21,0x5b14,0x5b13,0x5b10, +0x5b16,0x5b28,0x5b1a,0x5b20,0x5b1e,0x5bef,0x5dac,0x5db1, +0x5da9,0x5da7,0x5db5,0x5db0,0x5dae,0x5daa,0x5da8,0x5db2, +0x5dad,0x5daf,0x5db4,0x5e67,0x5e68,0x5e66,0x5e6f,0x5ee9, +0x5ee7,0x5ee6,0x5ee8,0x5ee5,0x5f4b,0x5fbc,0x619d,0x61a8, +0x6196,0x61c5,0x61b4,0x61c6,0x61c1,0x61cc,0x61ba,0x61bf, +0x61b8,0x618c,0x64d7,0x64d6,0x64d0,0x64cf,0x64c9,0x64bd, +0x6489,0x64c3,0x64db,0x64f3,0x64d9,0x6533,0x657f,0x657c, +0x65a2,0x66c8,0x66be,0x66c0,0x66ca,0x66cb,0x66cf,0x66bd, +0x66bb,0x66ba,0x66cc,0x6723,0x6a34,0x6a66,0x6a49,0x6a67, +0x6a32,0x6a68,0x6a3e,0x6a5d,0x6a6d,0x6a76,0x6a5b,0x6a51, +0x6a28,0x6a5a,0x6a3b,0x6a3f,0x6a41,0x6a6a,0x6a64,0x6a50, +0x6a4f,0x6a54,0x6a6f,0x6a69,0x6a60,0x6a3c,0x6a5e,0x6a56, +0x6a55,0x6a4d,0x6a4e,0x6a46,0x6b55,0x6b54,0x6b56,0x6ba7, +0x6baa,0x6bab,0x6bc8,0x6bc7,0x6c04,0x6c03,0x6c06,0x6fad, +0x6fcb,0x6fa3,0x6fc7,0x6fbc,0x6fce,0x6fc8,0x6f5e,0x6fc4, +0x6fbd,0x6f9e,0x6fca,0x6fa8,0x7004,0x6fa5,0x6fae,0x6fba, +0x6fac,0x6faa,0x6fcf,0x6fbf,0x6fb8,0x6fa2,0x6fc9,0x6fab, +0x6fcd,0x6faf,0x6fb2,0x6fb0,0x71c5,0x71c2,0x71bf,0x71b8, +0x71d6,0x71c0,0x71c1,0x71cb,0x71d4,0x71ca,0x71c7,0x71cf, +0x71bd,0x71d8,0x71bc,0x71c6,0x71da,0x71db,0x729d,0x729e, +0x7369,0x7366,0x7367,0x736c,0x7365,0x736b,0x736a,0x747f, +0x749a,0x74a0,0x7494,0x7492,0x7495,0x74a1,0x750b,0x7580, +0x762f,0x762d,0x7631,0x763d,0x7633,0x763c,0x7635,0x7632, +0x7630,0x76bb,0x76e6,0x779a,0x779d,0x77a1,0x779c,0x779b, +0x77a2,0x77a3,0x7795,0x7799,0x7797,0x78dd,0x78e9,0x78e5, +0x78ea,0x78de,0x78e3,0x78db,0x78e1,0x78e2,0x78ed,0x78df, +0x78e0,0x79a4,0x7a44,0x7a48,0x7a47,0x7ab6,0x7ab8,0x7ab5, +0x7ab1,0x7ab7,0x7bde,0x7be3,0x7be7,0x7bdd,0x7bd5,0x7be5, +0x7bda,0x7be8,0x7bf9,0x7bd4,0x7bea,0x7be2,0x7bdc,0x7beb, +0x7bd8,0x7bdf,0x7cd2,0x7cd4,0x7cd7,0x7cd0,0x7cd1,0x7e12, +0x7e21,0x7e17,0x7e0c,0x7e1f,0x7e20,0x7e13,0x7e0e,0x7e1c, +0x7e15,0x7e1a,0x7e22,0x7e0b,0x7e0f,0x7e16,0x7e0d,0x7e14, +0x7e25,0x7e24,0x7f43,0x7f7b,0x7f7c,0x7f7a,0x7fb1,0x7fef, +0x802a,0x8029,0x806c,0x81b1,0x81a6,0x81ae,0x81b9,0x81b5, +0x81ab,0x81b0,0x81ac,0x81b4,0x81b2,0x81b7,0x81a7,0x81f2, +0x8255,0x8256,0x8257,0x8556,0x8545,0x856b,0x854d,0x8553, +0x8561,0x8558,0x8540,0x8546,0x8564,0x8541,0x8562,0x8544, +0x8551,0x8547,0x8563,0x853e,0x855b,0x8571,0x854e,0x856e, +0x8575,0x8555,0x8567,0x8560,0x858c,0x8566,0x855d,0x8554, +0x8565,0x856c,0x8663,0x8665,0x8664,0x879b,0x878f,0x8797, +0x8793,0x8792,0x8788,0x8781,0x8796,0x8798,0x8779,0x8787, +0x87a3,0x8785,0x8790,0x8791,0x879d,0x8784,0x8794,0x879c, +0x879a,0x8789,0x891e,0x8926,0x8930,0x892d,0x892e,0x8927, +0x8931,0x8922,0x8929,0x8923,0x892f,0x892c,0x891f,0x89f1, +0x8ae0,0x8ae2,0x8af2,0x8af4,0x8af5,0x8add,0x8b14,0x8ae4, +0x8adf,0x8af0,0x8ac8,0x8ade,0x8ae1,0x8ae8,0x8aff,0x8aef, +0x8afb,0x8c91,0x8c92,0x8c90,0x8cf5,0x8cee,0x8cf1,0x8cf0, +0x8cf3,0x8d6c,0x8d6e,0x8da5,0x8da7,0x8e33,0x8e3e,0x8e38, +0x8e40,0x8e45,0x8e36,0x8e3c,0x8e3d,0x8e41,0x8e30,0x8e3f, +0x8ebd,0x8f36,0x8f2e,0x8f35,0x8f32,0x8f39,0x8f37,0x8f34, +0x9076,0x9079,0x907b,0x9086,0x90fa,0x9133,0x9135,0x9136, +0x9193,0x9190,0x9191,0x918d,0x918f,0x9327,0x931e,0x9308, +0x931f,0x9306,0x930f,0x937a,0x9338,0x933c,0x931b,0x9323, +0x9312,0x9301,0x9346,0x932d,0x930e,0x930d,0x92cb,0x931d, +0x92fa,0x9325,0x9313,0x92f9,0x92f7,0x9334,0x9302,0x9324, +0x92ff,0x9329,0x9339,0x9335,0x932a,0x9314,0x930c,0x930b, +0x92fe,0x9309,0x9300,0x92fb,0x9316,0x95bc,0x95cd,0x95be, +0x95b9,0x95ba,0x95b6,0x95bf,0x95b5,0x95bd,0x96a9,0x96d4, +0x970b,0x9712,0x9710,0x9799,0x9797,0x9794,0x97f0,0x97f8, +0x9835,0x982f,0x9832,0x9924,0x991f,0x9927,0x9929,0x999e, +0x99ee,0x99ec,0x99e5,0x99e4,0x99f0,0x99e3,0x99ea,0x99e9, +0x99e7,0x9ab9,0x9abf,0x9ab4,0x9abb,0x9af6,0x9afa,0x9af9, +0x9af7,0x9b33,0x9b80,0x9b85,0x9b87,0x9b7c,0x9b7e,0x9b7b, +0x9b82,0x9b93,0x9b92,0x9b90,0x9b7a,0x9b95,0x9b7d,0x9b88, +0x9d25,0x9d17,0x9d20,0x9d1e,0x9d14,0x9d29,0x9d1d,0x9d18, +0x9d22,0x9d10,0x9d19,0x9d1f,0x9e88,0x9e86,0x9e87,0x9eae, +0x9ead,0x9ed5,0x9ed6,0x9efa,0x9f12,0x9f3d,0x5126,0x5125, +0x5122,0x5124,0x5120,0x5129,0x52f4,0x5693,0x568c,0x568d, +0x5686,0x5684,0x5683,0x567e,0x5682,0x567f,0x5681,0x58d6, +0x58d4,0x58cf,0x58d2,0x5b2d,0x5b25,0x5b32,0x5b23,0x5b2c, +0x5b27,0x5b26,0x5b2f,0x5b2e,0x5b7b,0x5bf1,0x5bf2,0x5db7, +0x5e6c,0x5e6a,0x5fbe,0x5fbb,0x61c3,0x61b5,0x61bc,0x61e7, +0x61e0,0x61e5,0x61e4,0x61e8,0x61de,0x64ef,0x64e9,0x64e3, +0x64eb,0x64e4,0x64e8,0x6581,0x6580,0x65b6,0x65da,0x66d2, +0x6a8d,0x6a96,0x6a81,0x6aa5,0x6a89,0x6a9f,0x6a9b,0x6aa1, +0x6a9e,0x6a87,0x6a93,0x6a8e,0x6a95,0x6a83,0x6aa8,0x6aa4, +0x6a91,0x6a7f,0x6aa6,0x6a9a,0x6a85,0x6a8c,0x6a92,0x6b5b, +0x6bad,0x6c09,0x6fcc,0x6fa9,0x6ff4,0x6fd4,0x6fe3,0x6fdc, +0x6fed,0x6fe7,0x6fe6,0x6fde,0x6ff2,0x6fdd,0x6fe2,0x6fe8, +0x71e1,0x71f1,0x71e8,0x71f2,0x71e4,0x71f0,0x71e2,0x7373, +0x736e,0x736f,0x7497,0x74b2,0x74ab,0x7490,0x74aa,0x74ad, +0x74b1,0x74a5,0x74af,0x7510,0x7511,0x7512,0x750f,0x7584, +0x7643,0x7648,0x7649,0x7647,0x76a4,0x76e9,0x77b5,0x77ab, +0x77b2,0x77b7,0x77b6,0x77b4,0x77b1,0x77a8,0x77f0,0x78f3, +0x78fd,0x7902,0x78fb,0x78fc,0x78f2,0x7905,0x78f9,0x78fe, +0x7904,0x79ab,0x79a8,0x7a5c,0x7a5b,0x7a56,0x7a58,0x7a54, +0x7a5a,0x7abe,0x7ac0,0x7ac1,0x7c05,0x7c0f,0x7bf2,0x7c00, +0x7bff,0x7bfb,0x7c0e,0x7bf4,0x7c0b,0x7bf3,0x7c02,0x7c09, +0x7c03,0x7c01,0x7bf8,0x7bfd,0x7c06,0x7bf0,0x7bf1,0x7c10, +0x7c0a,0x7ce8,0x7e2d,0x7e3c,0x7e42,0x7e33,0x9848,0x7e38, +0x7e2a,0x7e49,0x7e40,0x7e47,0x7e29,0x7e4c,0x7e30,0x7e3b, +0x7e36,0x7e44,0x7e3a,0x7f45,0x7f7f,0x7f7e,0x7f7d,0x7ff4, +0x7ff2,0x802c,0x81bb,0x81c4,0x81cc,0x81ca,0x81c5,0x81c7, +0x81bc,0x81e9,0x825b,0x825a,0x825c,0x8583,0x8580,0x858f, +0x85a7,0x8595,0x85a0,0x858b,0x85a3,0x857b,0x85a4,0x859a, +0x859e,0x8577,0x857c,0x8589,0x85a1,0x857a,0x8578,0x8557, +0x858e,0x8596,0x8586,0x858d,0x8599,0x859d,0x8581,0x85a2, +0x8582,0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859f, +0x8668,0x87be,0x87aa,0x87ad,0x87c5,0x87b0,0x87ac,0x87b9, +0x87b5,0x87bc,0x87ae,0x87c9,0x87c3,0x87c2,0x87cc,0x87b7, +0x87af,0x87c4,0x87ca,0x87b4,0x87b6,0x87bf,0x87b8,0x87bd, +0x87de,0x87b2,0x8935,0x8933,0x893c,0x893e,0x8941,0x8952, +0x8937,0x8942,0x89ad,0x89af,0x89ae,0x89f2,0x89f3,0x8b1e, +0x8b18,0x8b16,0x8b11,0x8b05,0x8b0b,0x8b22,0x8b0f,0x8b12, +0x8b15,0x8b07,0x8b0d,0x8b08,0x8b06,0x8b1c,0x8b13,0x8b1a, +0x8c4f,0x8c70,0x8c72,0x8c71,0x8c6f,0x8c95,0x8c94,0x8cf9, +0x8d6f,0x8e4e,0x8e4d,0x8e53,0x8e50,0x8e4c,0x8e47,0x8f43, +0x8f40,0x9085,0x907e,0x9138,0x919a,0x91a2,0x919b,0x9199, +0x919f,0x91a1,0x919d,0x91a0,0x93a1,0x9383,0x93af,0x9364, +0x9356,0x9347,0x937c,0x9358,0x935c,0x9376,0x9349,0x9350, +0x9351,0x9360,0x936d,0x938f,0x934c,0x936a,0x9379,0x9357, +0x9355,0x9352,0x934f,0x9371,0x9377,0x937b,0x9361,0x935e, +0x9363,0x9367,0x9380,0x934e,0x9359,0x95c7,0x95c0,0x95c9, +0x95c3,0x95c5,0x95b7,0x96ae,0x96b0,0x96ac,0x9720,0x971f, +0x9718,0x971d,0x9719,0x979a,0x97a1,0x979c,0x979e,0x979d, +0x97d5,0x97d4,0x97f1,0x9841,0x9844,0x984a,0x9849,0x9845, +0x9843,0x9925,0x992b,0x992c,0x992a,0x9933,0x9932,0x992f, +0x992d,0x9931,0x9930,0x9998,0x99a3,0x99a1,0x9a02,0x99fa, +0x99f4,0x99f7,0x99f9,0x99f8,0x99f6,0x99fb,0x99fd,0x99fe, +0x99fc,0x9a03,0x9abe,0x9afe,0x9afd,0x9b01,0x9afc,0x9b48, +0x9b9a,0x9ba8,0x9b9e,0x9b9b,0x9ba6,0x9ba1,0x9ba5,0x9ba4, +0x9b86,0x9ba2,0x9ba0,0x9baf,0x9d33,0x9d41,0x9d67,0x9d36, +0x9d2e,0x9d2f,0x9d31,0x9d38,0x9d30,0x9d45,0x9d42,0x9d43, +0x9d3e,0x9d37,0x9d40,0x9d3d,0x7ff5,0x9d2d,0x9e8a,0x9e89, +0x9e8d,0x9eb0,0x9ec8,0x9eda,0x9efb,0x9eff,0x9f24,0x9f23, +0x9f22,0x9f54,0x9fa0,0x5131,0x512d,0x512e,0x5698,0x569c, +0x5697,0x569a,0x569d,0x5699,0x5970,0x5b3c,0x5c69,0x5c6a, +0x5dc0,0x5e6d,0x5e6e,0x61d8,0x61df,0x61ed,0x61ee,0x61f1, +0x61ea,0x61f0,0x61eb,0x61d6,0x61e9,0x64ff,0x6504,0x64fd, +0x64f8,0x6501,0x6503,0x64fc,0x6594,0x65db,0x66da,0x66db, +0x66d8,0x6ac5,0x6ab9,0x6abd,0x6ae1,0x6ac6,0x6aba,0x6ab6, +0x6ab7,0x6ac7,0x6ab4,0x6aad,0x6b5e,0x6bc9,0x6c0b,0x7007, +0x700c,0x700d,0x7001,0x7005,0x7014,0x700e,0x6fff,0x7000, +0x6ffb,0x7026,0x6ffc,0x6ff7,0x700a,0x7201,0x71ff,0x71f9, +0x7203,0x71fd,0x7376,0x74b8,0x74c0,0x74b5,0x74c1,0x74be, +0x74b6,0x74bb,0x74c2,0x7514,0x7513,0x765c,0x7664,0x7659, +0x7650,0x7653,0x7657,0x765a,0x76a6,0x76bd,0x76ec,0x77c2, +0x77ba,0x78ff,0x790c,0x7913,0x7914,0x7909,0x7910,0x7912, +0x7911,0x79ad,0x79ac,0x7a5f,0x7c1c,0x7c29,0x7c19,0x7c20, +0x7c1f,0x7c2d,0x7c1d,0x7c26,0x7c28,0x7c22,0x7c25,0x7c30, +0x7e5c,0x7e50,0x7e56,0x7e63,0x7e58,0x7e62,0x7e5f,0x7e51, +0x7e60,0x7e57,0x7e53,0x7fb5,0x7fb3,0x7ff7,0x7ff8,0x8075, +0x81d1,0x81d2,0x81d0,0x825f,0x825e,0x85b4,0x85c6,0x85c0, +0x85c3,0x85c2,0x85b3,0x85b5,0x85bd,0x85c7,0x85c4,0x85bf, +0x85cb,0x85ce,0x85c8,0x85c5,0x85b1,0x85b6,0x85d2,0x8624, +0x85b8,0x85b7,0x85be,0x8669,0x87e7,0x87e6,0x87e2,0x87db, +0x87eb,0x87ea,0x87e5,0x87df,0x87f3,0x87e4,0x87d4,0x87dc, +0x87d3,0x87ed,0x87d8,0x87e3,0x87a4,0x87d7,0x87d9,0x8801, +0x87f4,0x87e8,0x87dd,0x8953,0x894b,0x894f,0x894c,0x8946, +0x8950,0x8951,0x8949,0x8b2a,0x8b27,0x8b23,0x8b33,0x8b30, +0x8b35,0x8b47,0x8b2f,0x8b3c,0x8b3e,0x8b31,0x8b25,0x8b37, +0x8b26,0x8b36,0x8b2e,0x8b24,0x8b3b,0x8b3d,0x8b3a,0x8c42, +0x8c75,0x8c99,0x8c98,0x8c97,0x8cfe,0x8d04,0x8d02,0x8d00, +0x8e5c,0x8e62,0x8e60,0x8e57,0x8e56,0x8e5e,0x8e65,0x8e67, +0x8e5b,0x8e5a,0x8e61,0x8e5d,0x8e69,0x8e54,0x8f46,0x8f47, +0x8f48,0x8f4b,0x9128,0x913a,0x913b,0x913e,0x91a8,0x91a5, +0x91a7,0x91af,0x91aa,0x93b5,0x938c,0x9392,0x93b7,0x939b, +0x939d,0x9389,0x93a7,0x938e,0x93aa,0x939e,0x93a6,0x9395, +0x9388,0x9399,0x939f,0x938d,0x93b1,0x9391,0x93b2,0x93a4, +0x93a8,0x93b4,0x93a3,0x93a5,0x95d2,0x95d3,0x95d1,0x96b3, +0x96d7,0x96da,0x5dc2,0x96df,0x96d8,0x96dd,0x9723,0x9722, +0x9725,0x97ac,0x97ae,0x97a8,0x97ab,0x97a4,0x97aa,0x97a2, +0x97a5,0x97d7,0x97d9,0x97d6,0x97d8,0x97fa,0x9850,0x9851, +0x9852,0x98b8,0x9941,0x993c,0x993a,0x9a0f,0x9a0b,0x9a09, +0x9a0d,0x9a04,0x9a11,0x9a0a,0x9a05,0x9a07,0x9a06,0x9ac0, +0x9adc,0x9b08,0x9b04,0x9b05,0x9b29,0x9b35,0x9b4a,0x9b4c, +0x9b4b,0x9bc7,0x9bc6,0x9bc3,0x9bbf,0x9bc1,0x9bb5,0x9bb8, +0x9bd3,0x9bb6,0x9bc4,0x9bb9,0x9bbd,0x9d5c,0x9d53,0x9d4f, +0x9d4a,0x9d5b,0x9d4b,0x9d59,0x9d56,0x9d4c,0x9d57,0x9d52, +0x9d54,0x9d5f,0x9d58,0x9d5a,0x9e8e,0x9e8c,0x9edf,0x9f01, +0x9f00,0x9f16,0x9f25,0x9f2b,0x9f2a,0x9f29,0x9f28,0x9f4c, +0x9f55,0x5134,0x5135,0x5296,0x52f7,0x53b4,0x56ab,0x56ad, +0x56a6,0x56a7,0x56aa,0x56ac,0x58da,0x58dd,0x58db,0x5912, +0x5b3d,0x5b3e,0x5b3f,0x5dc3,0x5e70,0x5fbf,0x61fb,0x6507, +0x6510,0x650d,0x6509,0x650c,0x650e,0x6584,0x65de,0x65dd, +0x66de,0x6ae7,0x6ae0,0x6acc,0x6ad1,0x6ad9,0x6acb,0x6adf, +0x6adc,0x6ad0,0x6aeb,0x6acf,0x6acd,0x6ade,0x6b60,0x6bb0, +0x6c0c,0x7019,0x7027,0x7020,0x7016,0x702b,0x7021,0x7022, +0x7023,0x7029,0x7017,0x7024,0x701c,0x702a,0x720c,0x720a, +0x7207,0x7202,0x7205,0x72a5,0x72a6,0x72a4,0x72a3,0x72a1, +0x74cb,0x74c5,0x74b7,0x74c3,0x7516,0x7660,0x77c9,0x77ca, +0x77c4,0x77f1,0x791d,0x791b,0x7921,0x791c,0x7917,0x791e, +0x79b0,0x7a67,0x7a68,0x7c33,0x7c3c,0x7c39,0x7c2c,0x7c3b, +0x7cec,0x7cea,0x7e76,0x7e75,0x7e78,0x7e70,0x7e77,0x7e6f, +0x7e7a,0x7e72,0x7e74,0x7e68,0x7f4b,0x7f4a,0x7f83,0x7f86, +0x7fb7,0x7ffd,0x7ffe,0x8078,0x81d7,0x81d5,0x8264,0x8261, +0x8263,0x85eb,0x85f1,0x85ed,0x85d9,0x85e1,0x85e8,0x85da, +0x85d7,0x85ec,0x85f2,0x85f8,0x85d8,0x85df,0x85e3,0x85dc, +0x85d1,0x85f0,0x85e6,0x85ef,0x85de,0x85e2,0x8800,0x87fa, +0x8803,0x87f6,0x87f7,0x8809,0x880c,0x880b,0x8806,0x87fc, +0x8808,0x87ff,0x880a,0x8802,0x8962,0x895a,0x895b,0x8957, +0x8961,0x895c,0x8958,0x895d,0x8959,0x8988,0x89b7,0x89b6, +0x89f6,0x8b50,0x8b48,0x8b4a,0x8b40,0x8b53,0x8b56,0x8b54, +0x8b4b,0x8b55,0x8b51,0x8b42,0x8b52,0x8b57,0x8c43,0x8c77, +0x8c76,0x8c9a,0x8d06,0x8d07,0x8d09,0x8dac,0x8daa,0x8dad, +0x8dab,0x8e6d,0x8e78,0x8e73,0x8e6a,0x8e6f,0x8e7b,0x8ec2, +0x8f52,0x8f51,0x8f4f,0x8f50,0x8f53,0x8fb4,0x9140,0x913f, +0x91b0,0x91ad,0x93de,0x93c7,0x93cf,0x93c2,0x93da,0x93d0, +0x93f9,0x93ec,0x93cc,0x93d9,0x93a9,0x93e6,0x93ca,0x93d4, +0x93ee,0x93e3,0x93d5,0x93c4,0x93ce,0x93c0,0x93d2,0x93e7, +0x957d,0x95da,0x95db,0x96e1,0x9729,0x972b,0x972c,0x9728, +0x9726,0x97b3,0x97b7,0x97b6,0x97dd,0x97de,0x97df,0x985c, +0x9859,0x985d,0x9857,0x98bf,0x98bd,0x98bb,0x98be,0x9948, +0x9947,0x9943,0x99a6,0x99a7,0x9a1a,0x9a15,0x9a25,0x9a1d, +0x9a24,0x9a1b,0x9a22,0x9a20,0x9a27,0x9a23,0x9a1e,0x9a1c, +0x9a14,0x9ac2,0x9b0b,0x9b0a,0x9b0e,0x9b0c,0x9b37,0x9bea, +0x9beb,0x9be0,0x9bde,0x9be4,0x9be6,0x9be2,0x9bf0,0x9bd4, +0x9bd7,0x9bec,0x9bdc,0x9bd9,0x9be5,0x9bd5,0x9be1,0x9bda, +0x9d77,0x9d81,0x9d8a,0x9d84,0x9d88,0x9d71,0x9d80,0x9d78, +0x9d86,0x9d8b,0x9d8c,0x9d7d,0x9d6b,0x9d74,0x9d75,0x9d70, +0x9d69,0x9d85,0x9d73,0x9d7b,0x9d82,0x9d6f,0x9d79,0x9d7f, +0x9d87,0x9d68,0x9e94,0x9e91,0x9ec0,0x9efc,0x9f2d,0x9f40, +0x9f41,0x9f4d,0x9f56,0x9f57,0x9f58,0x5337,0x56b2,0x56b5, +0x56b3,0x58e3,0x5b45,0x5dc6,0x5dc7,0x5eee,0x5eef,0x5fc0, +0x5fc1,0x61f9,0x6517,0x6516,0x6515,0x6513,0x65df,0x66e8, +0x66e3,0x66e4,0x6af3,0x6af0,0x6aea,0x6ae8,0x6af9,0x6af1, +0x6aee,0x6aef,0x703c,0x7035,0x702f,0x7037,0x7034,0x7031, +0x7042,0x7038,0x703f,0x703a,0x7039,0x7040,0x703b,0x7033, +0x7041,0x7213,0x7214,0x72a8,0x737d,0x737c,0x74ba,0x76ab, +0x76aa,0x76be,0x76ed,0x77cc,0x77ce,0x77cf,0x77cd,0x77f2, +0x7925,0x7923,0x7927,0x7928,0x7924,0x7929,0x79b2,0x7a6e, +0x7a6c,0x7a6d,0x7af7,0x7c49,0x7c48,0x7c4a,0x7c47,0x7c45, +0x7cee,0x7e7b,0x7e7e,0x7e81,0x7e80,0x7fba,0x7fff,0x8079, +0x81db,0x81d9,0x820b,0x8268,0x8269,0x8622,0x85ff,0x8601, +0x85fe,0x861b,0x8600,0x85f6,0x8604,0x8609,0x8605,0x860c, +0x85fd,0x8819,0x8810,0x8811,0x8817,0x8813,0x8816,0x8963, +0x8966,0x89b9,0x89f7,0x8b60,0x8b6a,0x8b5d,0x8b68,0x8b63, +0x8b65,0x8b67,0x8b6d,0x8dae,0x8e86,0x8e88,0x8e84,0x8f59, +0x8f56,0x8f57,0x8f55,0x8f58,0x8f5a,0x908d,0x9143,0x9141, +0x91b7,0x91b5,0x91b2,0x91b3,0x940b,0x9413,0x93fb,0x9420, +0x940f,0x9414,0x93fe,0x9415,0x9410,0x9428,0x9419,0x940d, +0x93f5,0x9400,0x93f7,0x9407,0x940e,0x9416,0x9412,0x93fa, +0x9409,0x93f8,0x940a,0x93ff,0x93fc,0x940c,0x93f6,0x9411, +0x9406,0x95de,0x95e0,0x95df,0x972e,0x972f,0x97b9,0x97bb, +0x97fd,0x97fe,0x9860,0x9862,0x9863,0x985f,0x98c1,0x98c2, +0x9950,0x994e,0x9959,0x994c,0x994b,0x9953,0x9a32,0x9a34, +0x9a31,0x9a2c,0x9a2a,0x9a36,0x9a29,0x9a2e,0x9a38,0x9a2d, +0x9ac7,0x9aca,0x9ac6,0x9b10,0x9b12,0x9b11,0x9c0b,0x9c08, +0x9bf7,0x9c05,0x9c12,0x9bf8,0x9c40,0x9c07,0x9c0e,0x9c06, +0x9c17,0x9c14,0x9c09,0x9d9f,0x9d99,0x9da4,0x9d9d,0x9d92, +0x9d98,0x9d90,0x9d9b,0x9da0,0x9d94,0x9d9c,0x9daa,0x9d97, +0x9da1,0x9d9a,0x9da2,0x9da8,0x9d9e,0x9da3,0x9dbf,0x9da9, +0x9d96,0x9da6,0x9da7,0x9e99,0x9e9b,0x9e9a,0x9ee5,0x9ee4, +0x9ee7,0x9ee6,0x9f30,0x9f2e,0x9f5b,0x9f60,0x9f5e,0x9f5d, +0x9f59,0x9f91,0x513a,0x5139,0x5298,0x5297,0x56c3,0x56bd, +0x56be,0x5b48,0x5b47,0x5dcb,0x5dcf,0x5ef1,0x61fd,0x651b, +0x6b02,0x6afc,0x6b03,0x6af8,0x6b00,0x7043,0x7044,0x704a, +0x7048,0x7049,0x7045,0x7046,0x721d,0x721a,0x7219,0x737e, +0x7517,0x766a,0x77d0,0x792d,0x7931,0x792f,0x7c54,0x7c53, +0x7cf2,0x7e8a,0x7e87,0x7e88,0x7e8b,0x7e86,0x7e8d,0x7f4d, +0x7fbb,0x8030,0x81dd,0x8618,0x862a,0x8626,0x861f,0x8623, +0x861c,0x8619,0x8627,0x862e,0x8621,0x8620,0x8629,0x861e, +0x8625,0x8829,0x881d,0x881b,0x8820,0x8824,0x881c,0x882b, +0x884a,0x896d,0x8969,0x896e,0x896b,0x89fa,0x8b79,0x8b78, +0x8b45,0x8b7a,0x8b7b,0x8d10,0x8d14,0x8daf,0x8e8e,0x8e8c, +0x8f5e,0x8f5b,0x8f5d,0x9146,0x9144,0x9145,0x91b9,0x943f, +0x943b,0x9436,0x9429,0x943d,0x943c,0x9430,0x9439,0x942a, +0x9437,0x942c,0x9440,0x9431,0x95e5,0x95e4,0x95e3,0x9735, +0x973a,0x97bf,0x97e1,0x9864,0x98c9,0x98c6,0x98c0,0x9958, +0x9956,0x9a39,0x9a3d,0x9a46,0x9a44,0x9a42,0x9a41,0x9a3a, +0x9a3f,0x9acd,0x9b15,0x9b17,0x9b18,0x9b16,0x9b3a,0x9b52, +0x9c2b,0x9c1d,0x9c1c,0x9c2c,0x9c23,0x9c28,0x9c29,0x9c24, +0x9c21,0x9db7,0x9db6,0x9dbc,0x9dc1,0x9dc7,0x9dca,0x9dcf, +0x9dbe,0x9dc5,0x9dc3,0x9dbb,0x9db5,0x9dce,0x9db9,0x9dba, +0x9dac,0x9dc8,0x9db1,0x9dad,0x9dcc,0x9db3,0x9dcd,0x9db2, +0x9e7a,0x9e9c,0x9eeb,0x9eee,0x9eed,0x9f1b,0x9f18,0x9f1a, +0x9f31,0x9f4e,0x9f65,0x9f64,0x9f92,0x4eb9,0x56c6,0x56c5, +0x56cb,0x5971,0x5b4b,0x5b4c,0x5dd5,0x5dd1,0x5ef2,0x6521, +0x6520,0x6526,0x6522,0x6b0b,0x6b08,0x6b09,0x6c0d,0x7055, +0x7056,0x7057,0x7052,0x721e,0x721f,0x72a9,0x737f,0x74d8, +0x74d5,0x74d9,0x74d7,0x766d,0x76ad,0x7935,0x79b4,0x7a70, +0x7a71,0x7c57,0x7c5c,0x7c59,0x7c5b,0x7c5a,0x7cf4,0x7cf1, +0x7e91,0x7f4f,0x7f87,0x81de,0x826b,0x8634,0x8635,0x8633, +0x862c,0x8632,0x8636,0x882c,0x8828,0x8826,0x882a,0x8825, +0x8971,0x89bf,0x89be,0x89fb,0x8b7e,0x8b84,0x8b82,0x8b86, +0x8b85,0x8b7f,0x8d15,0x8e95,0x8e94,0x8e9a,0x8e92,0x8e90, +0x8e96,0x8e97,0x8f60,0x8f62,0x9147,0x944c,0x9450,0x944a, +0x944b,0x944f,0x9447,0x9445,0x9448,0x9449,0x9446,0x973f, +0x97e3,0x986a,0x9869,0x98cb,0x9954,0x995b,0x9a4e,0x9a53, +0x9a54,0x9a4c,0x9a4f,0x9a48,0x9a4a,0x9a49,0x9a52,0x9a50, +0x9ad0,0x9b19,0x9b2b,0x9b3b,0x9b56,0x9b55,0x9c46,0x9c48, +0x9c3f,0x9c44,0x9c39,0x9c33,0x9c41,0x9c3c,0x9c37,0x9c34, +0x9c32,0x9c3d,0x9c36,0x9ddb,0x9dd2,0x9dde,0x9dda,0x9dcb, +0x9dd0,0x9ddc,0x9dd1,0x9ddf,0x9de9,0x9dd9,0x9dd8,0x9dd6, +0x9df5,0x9dd5,0x9ddd,0x9eb6,0x9ef0,0x9f35,0x9f33,0x9f32, +0x9f42,0x9f6b,0x9f95,0x9fa2,0x513d,0x5299,0x58e8,0x58e7, +0x5972,0x5b4d,0x5dd8,0x882f,0x5f4f,0x6201,0x6203,0x6204, +0x6529,0x6525,0x6596,0x66eb,0x6b11,0x6b12,0x6b0f,0x6bca, +0x705b,0x705a,0x7222,0x7382,0x7381,0x7383,0x7670,0x77d4, +0x7c67,0x7c66,0x7e95,0x826c,0x863a,0x8640,0x8639,0x863c, +0x8631,0x863b,0x863e,0x8830,0x8832,0x882e,0x8833,0x8976, +0x8974,0x8973,0x89fe,0x8b8c,0x8b8e,0x8b8b,0x8b88,0x8c45, +0x8d19,0x8e98,0x8f64,0x8f63,0x91bc,0x9462,0x9455,0x945d, +0x9457,0x945e,0x97c4,0x97c5,0x9800,0x9a56,0x9a59,0x9b1e, +0x9b1f,0x9b20,0x9c52,0x9c58,0x9c50,0x9c4a,0x9c4d,0x9c4b, +0x9c55,0x9c59,0x9c4c,0x9c4e,0x9dfb,0x9df7,0x9def,0x9de3, +0x9deb,0x9df8,0x9de4,0x9df6,0x9de1,0x9dee,0x9de6,0x9df2, +0x9df0,0x9de2,0x9dec,0x9df4,0x9df3,0x9de8,0x9ded,0x9ec2, +0x9ed0,0x9ef2,0x9ef3,0x9f06,0x9f1c,0x9f38,0x9f37,0x9f36, +0x9f43,0x9f4f,0x9f71,0x9f70,0x9f6e,0x9f6f,0x56d3,0x56cd, +0x5b4e,0x5c6d,0x652d,0x66ed,0x66ee,0x6b13,0x705f,0x7061, +0x705d,0x7060,0x7223,0x74db,0x74e5,0x77d5,0x7938,0x79b7, +0x79b6,0x7c6a,0x7e97,0x7f89,0x826d,0x8643,0x8838,0x8837, +0x8835,0x884b,0x8b94,0x8b95,0x8e9e,0x8e9f,0x8ea0,0x8e9d, +0x91be,0x91bd,0x91c2,0x946b,0x9468,0x9469,0x96e5,0x9746, +0x9743,0x9747,0x97c7,0x97e5,0x9a5e,0x9ad5,0x9b59,0x9c63, +0x9c67,0x9c66,0x9c62,0x9c5e,0x9c60,0x9e02,0x9dfe,0x9e07, +0x9e03,0x9e06,0x9e05,0x9e00,0x9e01,0x9e09,0x9dff,0x9dfd, +0x9e04,0x9ea0,0x9f1e,0x9f46,0x9f74,0x9f75,0x9f76,0x56d4, +0x652e,0x65b8,0x6b18,0x6b19,0x6b17,0x6b1a,0x7062,0x7226, +0x72aa,0x77d8,0x77d9,0x7939,0x7c69,0x7c6b,0x7cf6,0x7e9a, +0x7e98,0x7e9b,0x7e99,0x81e0,0x81e1,0x8646,0x8647,0x8648, +0x8979,0x897a,0x897c,0x897b,0x89ff,0x8b98,0x8b99,0x8ea5, +0x8ea4,0x8ea3,0x946e,0x946d,0x946f,0x9471,0x9473,0x9749, +0x9872,0x995f,0x9c68,0x9c6e,0x9c6d,0x9e0b,0x9e0d,0x9e10, +0x9e0f,0x9e12,0x9e11,0x9ea1,0x9ef5,0x9f09,0x9f47,0x9f78, +0x9f7b,0x9f7a,0x9f79,0x571e,0x7066,0x7c6f,0x883c,0x8db2, +0x8ea6,0x91c3,0x9474,0x9478,0x9476,0x9475,0x9a60,0x9c74, +0x9c73,0x9c71,0x9c75,0x9e14,0x9e13,0x9ef6,0x9f0a,0x9fa4, +0x7068,0x7065,0x7cf7,0x866a,0x883e,0x883d,0x883f,0x8b9e, +0x8c9c,0x8ea9,0x8ec9,0x974b,0x9873,0x9874,0x98cc,0x9961, +0x99ab,0x9a64,0x9a66,0x9a67,0x9b24,0x9e15,0x9e17,0x9f48, +0x6207,0x6b1e,0x7227,0x864c,0x8ea8,0x9482,0x9480,0x9481, +0x9a69,0x9a68,0x9b2e,0x9e19,0x7229,0x864b,0x8b9f,0x9483, +0x9c79,0x9eb7,0x7675,0x9a6b,0x9c7a,0x9e1d,0x7069,0x706a, +0x9ea4,0x9f7e,0x9f49,0x9f98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, +}; diff --git a/src/cmd/tcs/big5.h b/src/cmd/tcs/big5.h new file mode 100644 index 00000000..ec90ada1 --- /dev/null +++ b/src/cmd/tcs/big5.h @@ -0,0 +1,4 @@ +#define BIG5MAX 13973 +#define BIG5FONT 157 + +extern long tabbig5[BIG5MAX]; /* runes indexed by big5 ordinal */ diff --git a/src/cmd/tcs/conv.h b/src/cmd/tcs/conv.h new file mode 100644 index 00000000..b8b75439 --- /dev/null +++ b/src/cmd/tcs/conv.h @@ -0,0 +1,18 @@ +void jis_in(int fd, long *notused, struct convert *out); +void jisjis_in(int fd, long *notused, struct convert *out); +void msjis_in(int fd, long *notused, struct convert *out); +void ujis_in(int fd, long *notused, struct convert *out); +void jisjis_out(Rune *base, int n, long *notused); +void ujis_out(Rune *base, int n, long *notused); +void msjis_out(Rune *base, int n, long *notused); +void big5_in(int fd, long *notused, struct convert *out); +void big5_out(Rune *base, int n, long *notused); +void gb_in(int fd, long *notused, struct convert *out); +void gb_out(Rune *base, int n, long *notused); +void uksc_in(int fd, long *notused, struct convert *out); +void uksc_out(Rune *base, int n, long *notused); + +#define emit(x) *(*r)++ = (x) +#define NRUNE 65536 + +extern long tab[]; /* common table indexed by Runes for reverse mappings */ diff --git a/src/cmd/tcs/conv_big5.c b/src/cmd/tcs/conv_big5.c new file mode 100644 index 00000000..d81c8717 --- /dev/null +++ b/src/cmd/tcs/conv_big5.c @@ -0,0 +1,165 @@ +#ifdef PLAN9 +#include <u.h> +#include <libc.h> +#include <bio.h> +#else +#include <stdio.h> +#include <unistd.h> +#include "plan9.h" +#endif +#include "hdr.h" +#include "conv.h" +#include "big5.h" + +/* + a state machine for interpreting big5 (hk format). +*/ +void +big5proc(int c, Rune **r, long input_loc) +{ + static enum { state0, state1 } state = state0; + static int lastc; + long n, ch, f, cold = c; + + switch(state) + { + case state0: /* idle state */ + if(c < 0) + return; + if(c >= 0xA1){ + lastc = c; + state = state1; + return; + } + if(c == 26) + c = '\n'; + emit(c); + return; + + case state1: /* seen a font spec */ + if(c >= 64 && c <= 126) + c -= 64; + else if(c >= 161 && c <= 254) + c = c-161 + 63; + else { + nerrors++; + if(squawk) + EPR "%s: bad big5 glyph (from 0x%x,0x%lx) near byte %ld in %s\n", + argv0, lastc, cold, input_loc, file); + if(!clean) + emit(BADMAP); + state = state0; + return; + } + if(lastc >= 161 && lastc <= 254) + f = lastc - 161; + else { + nerrors++; + if(squawk) + EPR "%s: bad big5 font %d (from 0x%x,0x%lx) near byte %ld in %s\n", + argv0, lastc-161, lastc, cold, input_loc, file); + if(!clean) + emit(BADMAP); + state = state0; + return; + } + n = f*BIG5FONT + c; + if(n < BIG5MAX) + ch = tabbig5[n]; + else + ch = -1; + if(ch < 0){ + nerrors++; + if(squawk) + EPR "%s: unknown big5 %ld (from 0x%x,0x%lx) near byte %ld in %s\n", + argv0, n, lastc, cold, input_loc, file); + if(!clean) + emit(BADMAP); + } else + emit(ch); + state = state0; + } +} + +void +big5_in(int fd, long *notused, struct convert *out) +{ + Rune ob[N]; + Rune *r, *re; + uchar ibuf[N]; + int n, i; + long nin; + + USED(notused); + r = ob; + re = ob+N-3; + nin = 0; + while((n = read(fd, ibuf, sizeof ibuf)) > 0){ + for(i = 0; i < n; i++){ + big5proc(ibuf[i], &r, nin++); + if(r >= re){ + OUT(out, ob, r-ob); + r = ob; + } + } + if(r > ob){ + OUT(out, ob, r-ob); + r = ob; + } + } + big5proc(-1, &r, nin); + if(r > ob) + OUT(out, ob, r-ob); +} + +void +big5_out(Rune *base, int n, long *notused) +{ + char *p; + int i; + Rune r; + static int first = 1; + + USED(notused); + if(first){ + first = 0; + for(i = 0; i < NRUNE; i++) + tab[i] = -1; + for(i = 0; i < BIG5MAX; i++) + if(tabbig5[i] != -1) + tab[tabbig5[i]] = i; + } + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128) + *p++ = r; + else { + if(tab[r] != -1){ + r = tab[r]; + if(r >= BIG5MAX){ + *p++ = 0xA1; + *p++ = r-BIG5MAX; + continue; + } else { + *p++ = 0xA1 + (r/BIG5FONT); + r = r%BIG5FONT; + if(r <= 62) r += 64; + else r += 0xA1-63; + *p++ = r; + continue; + } + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} diff --git a/src/cmd/tcs/conv_gb.c b/src/cmd/tcs/conv_gb.c new file mode 100644 index 00000000..70835257 --- /dev/null +++ b/src/cmd/tcs/conv_gb.c @@ -0,0 +1,134 @@ +#ifdef PLAN9 +#include <u.h> +#include <libc.h> +#include <bio.h> +#else +#include <stdio.h> +#include <unistd.h> +#include "plan9.h" +#endif +#include "hdr.h" +#include "conv.h" +#include "gb.h" + +/* + a state machine for interpreting gb. +*/ +void +gbproc(int c, Rune **r, long input_loc) +{ + static enum { state0, state1 } state = state0; + static int lastc; + long n, ch, cold = c; + + switch(state) + { + case state0: /* idle state */ + if(c < 0) + return; + if(c >= 0xA1){ + lastc = c; + state = state1; + return; + } + emit(c); + return; + + case state1: /* seen a font spec */ + if(c >= 0xA1) + n = (lastc-0xA0)*100 + (c-0xA0); + else { + nerrors++; + if(squawk) + EPR "%s: bad gb glyph %d (from 0x%x,0x%lx) near byte %ld in %s\n", argv0, c-0xA0, lastc, cold, input_loc, file); + if(!clean) + emit(BADMAP); + state = state0; + return; + } + ch = tabgb[n]; + if(ch < 0){ + nerrors++; + if(squawk) + EPR "%s: unknown gb %ld (from 0x%x,0x%lx) near byte %ld in %s\n", argv0, n, lastc, cold, input_loc, file); + if(!clean) + emit(BADMAP); + } else + emit(ch); + state = state0; + } +} + +void +gb_in(int fd, long *notused, struct convert *out) +{ + Rune ob[N]; + Rune *r, *re; + uchar ibuf[N]; + int n, i; + long nin; + + USED(notused); + r = ob; + re = ob+N-3; + nin = 0; + while((n = read(fd, ibuf, sizeof ibuf)) > 0){ + for(i = 0; i < n; i++){ + gbproc(ibuf[i], &r, nin++); + if(r >= re){ + OUT(out, ob, r-ob); + r = ob; + } + } + if(r > ob){ + OUT(out, ob, r-ob); + r = ob; + } + } + gbproc(-1, &r, nin); + if(r > ob) + OUT(out, ob, r-ob); +} + +void +gb_out(Rune *base, int n, long *notused) +{ + char *p; + int i; + Rune r; + static int first = 1; + + USED(notused); + if(first){ + first = 0; + for(i = 0; i < NRUNE; i++) + tab[i] = -1; + for(i = 0; i < GBMAX; i++) + if(tabgb[i] != -1) + tab[tabgb[i]] = i; + } + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128) + *p++ = r; + else { + if(tab[r] != -1){ + r = tab[r]; + *p++ = 0xA0 + (r/100); + *p++ = 0xA0 + (r%100); + continue; + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} diff --git a/src/cmd/tcs/conv_jis.c b/src/cmd/tcs/conv_jis.c new file mode 100644 index 00000000..18579d70 --- /dev/null +++ b/src/cmd/tcs/conv_jis.c @@ -0,0 +1,535 @@ +#ifdef PLAN9 +#include <u.h> +#include <libc.h> +#include <bio.h> +#else +#include <stdio.h> +#include <unistd.h> +#include "plan9.h" +#endif +#include "hdr.h" +#include "conv.h" +#include "kuten208.h" +#include "jis.h" + +/* + a state machine for interpreting all sorts of encodings +*/ +static void +alljis(int c, Rune **r, long input_loc) +{ + static enum { state0, state1, state2, state3, state4 } state = state0; + static int set8 = 0; + static int japan646 = 0; + static int lastc; + int n; + long l; + +again: + switch(state) + { + case state0: /* idle state */ + if(c == ESC){ state = state1; return; } + if(c < 0) return; + if(!set8 && (c < 128)){ + if(japan646){ + switch(c) + { + case '\\': emit(0xA5); return; /* yen */ + case '~': emit(0xAF); return; /* spacing macron */ + default: emit(c); return; + } + } else { + emit(c); + return; + } + } + if(c < 0x21){ /* guard against bogus characters in JIS mode */ + if(squawk) + EPR "%s: non-JIS character %02x in %s near byte %ld\n", argv0, c, file, input_loc); + emit(c); + return; + } + lastc = c; state = state4; return; + + case state1: /* seen an escape */ + if(c == '$'){ state = state2; return; } + if(c == '('){ state = state3; return; } + emit(ESC); state = state0; goto again; + + case state2: /* may be shifting into JIS */ + if((c == '@') || (c == 'B')){ + set8 = 1; state = state0; return; + } + emit(ESC); emit('$'); state = state0; goto again; + + case state3: /* may be shifting out of JIS */ + if((c == 'J') || (c == 'H') || (c == 'B')){ + japan646 = (c == 'J'); + set8 = 0; state = state0; return; + } + emit(ESC); emit('('); state = state0; goto again; + + case state4: /* two part char */ + if(c < 0){ + if(squawk) + EPR "%s: unexpected EOF in %s\n", argv0, file); + c = 0x21 | (lastc&0x80); + } + if(CANS2J(lastc, c)){ /* ms dos sjis */ + int hi = lastc, lo = c; + S2J(hi, lo); /* convert to 208 */ + n = hi*100 + lo - 3232; /* convert to kuten208 */ + } else + n = (lastc&0x7F)*100 + (c&0x7f) - 3232; /* kuten208 */ + if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){ + nerrors++; + if(squawk) + EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + } else { + if(l < 0){ + l = -l; + if(squawk) + EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file); + } + emit(l); + } + state = state0; + } +} + +/* + a state machine for interpreting ms-kanji == shift-jis. +*/ +static void +ms(int c, Rune **r, long input_loc) +{ + static enum { state0, state1, state2, state3, state4 } state = state0; + static int set8 = 0; + static int japan646 = 0; + static int lastc; + int n; + long l; + +again: + switch(state) + { + case state0: /* idle state */ + if(c == ESC){ state = state1; return; } + if(c < 0) return; + if(!set8 && (c < 128)){ + if(japan646){ + switch(c) + { + case '\\': emit(0xA5); return; /* yen */ + case '~': emit(0xAF); return; /* spacing macron */ + default: emit(c); return; + } + } else { + emit(c); + return; + } + } + lastc = c; state = state4; return; + + case state1: /* seen an escape */ + if(c == '$'){ state = state2; return; } + if(c == '('){ state = state3; return; } + emit(ESC); state = state0; goto again; + + case state2: /* may be shifting into JIS */ + if((c == '@') || (c == 'B')){ + set8 = 1; state = state0; return; + } + emit(ESC); emit('$'); state = state0; goto again; + + case state3: /* may be shifting out of JIS */ + if((c == 'J') || (c == 'H') || (c == 'B')){ + japan646 = (c == 'J'); + set8 = 0; state = state0; return; + } + emit(ESC); emit('('); state = state0; goto again; + + case state4: /* two part char */ + if(c < 0){ + if(squawk) + EPR "%s: unexpected EOF in %s\n", argv0, file); + c = 0x21 | (lastc&0x80); + } + if(CANS2J(lastc, c)){ /* ms dos sjis */ + int hi = lastc, lo = c; + S2J(hi, lo); /* convert to 208 */ + n = hi*100 + lo - 3232; /* convert to kuten208 */ + } else { + nerrors++; + if(squawk) + EPR "%s: illegal byte pair (0x%x,0x%x) near byte %ld in %s\n", argv0, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + state = state0; + goto again; + } + if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){ + nerrors++; + if(squawk) + EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + } else { + if(l < 0){ + l = -l; + if(squawk) + EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file); + } + emit(l); + } + state = state0; + } +} + +/* + a state machine for interpreting ujis == EUC +*/ +static void +ujis(int c, Rune **r, long input_loc) +{ + static enum { state0, state1 } state = state0; + static int lastc; + int n; + long l; + + switch(state) + { + case state0: /* idle state */ + if(c < 0) return; + if(c < 128){ + emit(c); + return; + } + if(c == 0x8e){ /* codeset 2 */ + nerrors++; + if(squawk) + EPR "%s: unknown codeset 2 near byte %ld in %s\n", argv0, input_loc, file); + if(!clean) + emit(BADMAP); + return; + } + if(c == 0x8f){ /* codeset 3 */ + nerrors++; + if(squawk) + EPR "%s: unknown codeset 3 near byte %ld in %s\n", argv0, input_loc, file); + if(!clean) + emit(BADMAP); + return; + } + lastc = c; + state = state1; + return; + + case state1: /* two part char */ + if(c < 0){ + if(squawk) + EPR "%s: unexpected EOF in %s\n", argv0, file); + c = 0xA1; + } + n = (lastc&0x7F)*100 + (c&0x7F) - 3232; /* kuten208 */ + if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){ + nerrors++; + if(squawk) + EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + } else { + if(l < 0){ + l = -l; + if(squawk) + EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file); + } + emit(l); + } + state = state0; + } +} + +/* + a state machine for interpreting jis-kanji == 2022-JP +*/ +static void +jis(int c, Rune **r, long input_loc) +{ + static enum { state0, state1, state2, state3, state4 } state = state0; + static int set8 = 0; + static int japan646 = 0; + static int lastc; + int n; + long l; + +again: + switch(state) + { + case state0: /* idle state */ + if(c == ESC){ state = state1; return; } + if(c < 0) return; + if(!set8 && (c < 128)){ + if(japan646){ + switch(c) + { + case '\\': emit(0xA5); return; /* yen */ + case '~': emit(0xAF); return; /* spacing macron */ + default: emit(c); return; + } + } else { + emit(c); + return; + } + } + lastc = c; state = state4; return; + + case state1: /* seen an escape */ + if(c == '$'){ state = state2; return; } + if(c == '('){ state = state3; return; } + emit(ESC); state = state0; goto again; + + case state2: /* may be shifting into JIS */ + if((c == '@') || (c == 'B')){ + set8 = 1; state = state0; return; + } + emit(ESC); emit('$'); state = state0; goto again; + + case state3: /* may be shifting out of JIS */ + if((c == 'J') || (c == 'H') || (c == 'B')){ + japan646 = (c == 'J'); + set8 = 0; state = state0; return; + } + emit(ESC); emit('('); state = state0; goto again; + + case state4: /* two part char */ + if(c < 0){ + if(squawk) + EPR "%s: unexpected EOF in %s\n", argv0, file); + c = 0x21 | (lastc&0x80); + } + if((lastc&0x80) != (c&0x80)){ /* guard against latin1 in jis */ + emit(lastc); + state = state0; + goto again; + } + n = (lastc&0x7F)*100 + (c&0x7f) - 3232; /* kuten208 */ + if((n >= KUTEN208MAX) || ((l = tabkuten208[n]) == -1)){ + nerrors++; + if(squawk) + EPR "%s: unknown kuten208 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + } else { + if(l < 0){ + l = -l; + if(squawk) + EPR "%s: ambiguous kuten208 %d (mapped to 0x%lx) near byte %ld in %s\n", argv0, n, l, input_loc, file); + } + emit(l); + } + state = state0; + } +} + +static void +do_in(int fd, void (*procfn)(int, Rune **, long), struct convert *out) +{ + Rune ob[N]; + Rune *r, *re; + uchar ibuf[N]; + int n, i; + long nin; + + r = ob; + re = ob+N-3; + nin = 0; + while((n = read(fd, ibuf, sizeof ibuf)) > 0){ + for(i = 0; i < n; i++){ + (*procfn)(ibuf[i], &r, nin++); + if(r >= re){ + OUT(out, ob, r-ob); + r = ob; + } + } + if(r > ob){ + OUT(out, ob, r-ob); + r = ob; + } + } + (*procfn)(-1, &r, nin); + if(r > ob) + OUT(out, ob, r-ob); +} + +void +jis_in(int fd, long *notused, struct convert *out) +{ + USED(notused); + do_in(fd, alljis, out); +} + +void +ujis_in(int fd, long *notused, struct convert *out) +{ + USED(notused); + do_in(fd, ujis, out); +} + +void +msjis_in(int fd, long *notused, struct convert *out) +{ + USED(notused); + do_in(fd, ms, out); +} + +void +jisjis_in(int fd, long *notused, struct convert *out) +{ + USED(notused); + do_in(fd, jis, out); +} + +static int first = 1; + +static void +tab_init(void) +{ + int i; + long l; + + first = 0; + for(i = 0; i < NRUNE; i++) + tab[i] = -1; + for(i = 0; i < KUTEN208MAX; i++) + if((l = tabkuten208[i]) != -1){ + if(l < 0) + tab[-l] = i; + else + tab[l] = i; + } +} + + +/* jis-kanji, or ISO 2022-JP */ +void +jisjis_out(Rune *base, int n, long *notused) +{ + char *p; + int i; + Rune r; + static enum { ascii, japan646, jp2022 } state = ascii; + + USED(notused); + if(first) + tab_init(); + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128){ + if(state == jp2022){ + *p++ = ESC; *p++ = '('; *p++ = 'B'; + state = ascii; + } + *p++ = r; + } else { + if(tab[r] != -1){ + if(state != jp2022){ + *p++ = ESC; *p++ = '$'; *p++ = 'B'; + state = jp2022; + } + *p++ = tab[r]/100 + ' '; + *p++ = tab[r]%100 + ' '; + continue; + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} + +/* ms-kanji, or Shift-JIS */ +void +msjis_out(Rune *base, int n, long *notused) +{ + char *p; + int i, hi, lo; + Rune r; + + USED(notused); + if(first) + tab_init(); + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128) + *p++ = r; + else { + if(tab[r] != -1){ + hi = tab[r]/100 + ' '; + lo = tab[r]%100 + ' '; + J2S(hi, lo); + *p++ = hi; + *p++ = lo; + continue; + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} + +/* ujis, or EUC */ +void +ujis_out(Rune *base, int n, long *notused) +{ + char *p; + int i; + Rune r; + + USED(notused); + if(first) + tab_init(); + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128) + *p++ = r; + else { + if(tab[r] != -1){ + *p++ = 0x80 | (tab[r]/100 + ' '); + *p++ = 0x80 | (tab[r]%100 + ' '); + continue; + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} diff --git a/src/cmd/tcs/conv_ksc.c b/src/cmd/tcs/conv_ksc.c new file mode 100644 index 00000000..cbc17f5b --- /dev/null +++ b/src/cmd/tcs/conv_ksc.c @@ -0,0 +1,160 @@ +#ifdef PLAN9 +#include <u.h> +#include <libc.h> +#include <bio.h> +#else +#include <stdio.h> +#include <unistd.h> +#include "plan9.h" +#endif +#include "hdr.h" +#include "conv.h" +#include "ksc.h" + +/* + contributed by kuro@vodka.Eng.Sun.COM (Teruhiko Kurosaka) +*/ + +/* + a state machine for interpreting shift-ksc. +*/ + +#define SS2 0x8e +#define SS3 0x8f +/* + * Convert EUC in Koran locale to Unicode. + * Only codeset 0 and 1 are used. + */ +void +ukscproc(int c, Rune **r, long input_loc) +{ + static enum { init, cs1last /*, cs2, cs3first, cs3last*/} state = init; + static int korean646 = 1; /* fixed to 1 for now. */ + static int lastc; + int n; + long l; + + switch(state) + { + case init: + if (c < 0){ + return; + }else if (c < 128){ + if(korean646 && (c=='\\')){ + emit(0x20A9); + } else { + emit(c); + } +/* }else if (c==SS2){ + state = cs2; + }else if (c==SS3){ + state = cs3first; + */ }else{ + lastc = c; + state = cs1last; + } + return; + + case cs1last: /* 2nd byte of codeset 1 (KSC 5601) */ + if(c < 0){ + if(squawk) + EPR "%s: unexpected EOF in %s\n", argv0, file); + c = 0x21 | (lastc&0x80); + } + n = ((lastc&0x7f)-33)*94 + (c&0x7f)-33; + if((n >= ksc5601max) || ((l = tabksc5601[n]) < 0)){ + nerrors++; + if(squawk) + EPR "%s: unknown ksc5601 %d (from 0x%x,0x%x) near byte %ld in %s\n", argv0, n, lastc, c, input_loc, file); + if(!clean) + emit(BADMAP); + } else { + emit(l); + } + state = init; + return; + default: + if(squawk) + EPR "%s: ukscproc: unknown state %d\n", + argv0, init); + } +} + +void +uksc_in(int fd, long *notused, struct convert *out) +{ + Rune ob[N]; + Rune *r, *re; + uchar ibuf[N]; + int n, i; + long nin; + + USED(notused); + r = ob; + re = ob+N-3; + nin = 0; + while((n = read(fd, ibuf, sizeof ibuf)) > 0){ + for(i = 0; i < n; i++){ + ukscproc(ibuf[i], &r, nin++); + if(r >= re){ + OUT(out, ob, r-ob); + r = ob; + } + } + if(r > ob){ + OUT(out, ob, r-ob); + r = ob; + } + } + ukscproc(-1, &r, nin); + if(r > ob) + OUT(out, ob, r-ob); +} + +void +uksc_out(Rune *base, int n, long *notused) +{ + char *p; + int i; + Rune r; + long l; + static int first = 1; + + USED(notused); + if(first){ + first = 0; + for(i = 0; i < NRUNE; i++) + tab[i] = -1; + for(i = 0; i < ksc5601max; i++) + if((l = tabksc5601[i]) != -1){ + if(l < 0) + tab[-l] = i; + else + tab[l] = i; + } + } + nrunes += n; + p = obuf; + for(i = 0; i < n; i++){ + r = base[i]; + if(r < 128) + *p++ = r; + else { + if(tab[r] != -1){ + *p++ = 0x80 | (tab[r]/94 + 0x21); + *p++ = 0x80 | (tab[r]%94 + 0x21); + continue; + } + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, r); + nerrors++; + if(clean) + continue; + *p++ = BYTEBADMAP; + } + } + noutput += p-obuf; + if(p > obuf) + write(1, obuf, p-obuf); +} + diff --git a/src/cmd/tcs/cyrillic.h b/src/cmd/tcs/cyrillic.h new file mode 100644 index 00000000..ad8f4574 --- /dev/null +++ b/src/cmd/tcs/cyrillic.h @@ -0,0 +1,162 @@ +long tabucode[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x00a0, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,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, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +}; +long tabkoi8[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x044e,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433, +0x0445,0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e, +0x043f,0x044f,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432, +0x044c,0x044b,0x0437,0x0448,0x044d,0x0449,0x0447,0x044a, +0x042e,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413, +0x0425,0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e, +0x041f,0x042f,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412, +0x042c,0x042b,0x0417,0x0428,0x042d,0x0429,0x0427,0x042a, +}; +long tab866[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f, +0x0401,0x0451, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +}; +long tabav[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, +0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, +0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f, +0x0401,0x0451,0x0301,0x0300,0x0301,0x0300,0x2192,0x2190, +0x2193,0x2191,0x00f7,0x00b1,0x2116,0x00a4, -1, -1, +}; +long tabcp1251[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x0402,0x0403,0x201a,0x0453,0x201e,0x2026,0x2020,0x2021, + -1,0x2030,0x0409,0x2039,0x040a,0x040c,0x040b,0x040f, +0x0452,0x2018,0x2019,0x201c,0x201d,0x2022,0x2013,0x2014, + -1,0x2122,0x0459,0x203a,0x045a,0x045c,0x045b,0x045f, +0x00a0,0x040e,0x045e,0x0408,0x00a4,0x0490,0x00a6,0x00a7, +0x0401,0x00a9,0x0404,0x00ab,0x00ac,0x00ad,0x00ae,0x0407, +0x00b0,0x00b1,0x0406,0x0456,0x0491,0x00b5,0x00b6,0x00b7, +0x0451,0x2116,0x0454,0x00bb,0x0458,0x0405,0x0455,0x0457, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,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, +}; +long tabov[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,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, +0x0401,0x0451,0x0301,0x0300,0x0301,0x0300,0x2192,0x2190, +0x2193,0x2191,0x00f7,0x00b1,0x2116,0x00a4, -1, -1, +}; diff --git a/src/cmd/tcs/desc.latin b/src/cmd/tcs/desc.latin new file mode 100644 index 00000000..1ea885fe --- /dev/null +++ b/src/cmd/tcs/desc.latin @@ -0,0 +1,488 @@ +From Eng.Sun.COM!Bill.Tuthill Sat Jan 25 13:46:31 PST 1992 +Received: by pyxis; Sat Jan 25 21:57 EST 1992 +Received: by inet.att.com; Sat Jan 25 21:57 EST 1992 +Received: from Eng.Sun.COM (zigzag-bb.Corp.Sun.COM) by Sun.COM (4.1/SMI-4.1) + id AA00310; Sat, 25 Jan 92 18:57:42 PST +Received: from cairo.Eng.Sun.COM by Eng.Sun.COM (4.1/SMI-4.1) + id AA24397; Sat, 25 Jan 92 13:44:29 PST +Received: by cairo.Eng.Sun.COM (4.1/SMI-4.1) + id AA16411; Sat, 25 Jan 92 13:46:31 PST +Date: Sat, 25 Jan 92 13:46:31 PST +From: Bill.Tuthill@Eng.Sun.COM (Bill "Bill" Tuthill) +Message-Id: <9201252146.AA16411@cairo.Eng.Sun.COM> +To: andrew@research.att.com +Subject: Unicode => 8859 + +6.1a ISO Mapping Tables + +This section includes the following mapping tables: +* Unicode value to ISO 8859, which contains several 8-bit character sets +covering the Latin, Greek, Cyrillic, Hebrew and Arabic scripts. + + Unicode Encoding to ISO 8859 Mappings + + (For Unicode U+0000 to U+007F all mappings are identities.) + +UNIC 2 3 4 5 6 7 8 9 Unicode character name +00A0 A0 A0 A0 A0 A0 A0 A0 A0 NON-BREAKING SPACE +00A1 A1 INVERTED EXCLAMATION MARK +00A2 A2 A2 CENT SIGN +00A3 A3 A3 A3 A3 POUND SIGN +00A4 A4 A4 A4 A4 A4 A4 CURRENCY SIGN +00A5 A5 A5 YEN SIGN +00A6 A6 A6 A6 BROKEN VERTICAL BAR +00A7 A7 A7 A7 FD A7 A7 A7 SECTION SIGN +00A8 A8 A8 A8 A8 A8 A8 SPACING DIAERESIS +00A9 A9 A9 A9 COPYRIGHT SIGN +00AA AA FEMININE ORDINAL INDICATOR +00AB AB AB AB LEFT POINTING GUILLEMET +00AC AC AC AC NOT SIGN +00AD AD AD AD AD AD AD AD AD SOFT HYPHEN +00AE AE AE REGISTERED TRADE MARK SIGN +00AF AF AF SPACING MACRON +00B0 B0 B0 B0 B0 B0 B0 DEGREE SIGN +00B1 B1 B1 B1 PLUS-OR-MINUS SIGN +00B2 B2 B2 B2 B2 SUPERSCRIPT DIGIT TWO +00B3 B3 B3 B3 B3 SUPERSCRIPT DIGIT THREE +00B4 B4 B4 B4 B4 B4 SPACING ACUTE +00B5 B5 B5 B5 MICRO SIGN +00B6 B6 B6 PARAGRAPH SIGN +00B7 B7 B7 B7 B7 MIDDLE DOT +00B8 B8 B8 B8 B8 B8 SPACING CEDILLA +00B9 B9 B9 SUPERSCRIPT DIGIT ONE +00BA BA MASCULINE ORDINAL INDICATOR +00BB BB BB BB RIGHT POINTING GUILLEMET +00BC BC BC FRACTION ONE QUARTER +00BD BD BD BD BD FRACTION ONE HALF +00BE BE BE FRACTION THREE QUARTERS +00BF BF INVERTED QUESTION MARK +00C0 C0 C0 LATIN CAPITAL LETTER A GRAVE +00C1 C1 C1 C1 C1 LATIN CAPITAL LETTER A ACUTE +00C2 C2 C2 C2 C2 LATIN CAPITAL LETTER A CIRCUMFLEX +00C3 C3 C3 LATIN CAPITAL LETTER A TILDE +00C4 C4 C4 C4 C4 LATIN CAPITAL LETTER A DIAERESIS +00C5 C5 C5 LATIN CAPITAL LETTER A RING +00C6 C6 C6 LATIN CAPITAL LETTER A E +00C7 C7 C7 C7 LATIN CAPITAL LETTER C CEDILLA +00C8 C8 C8 LATIN CAPITAL LETTER E GRAVE +00C9 C9 C9 C9 C9 LATIN CAPITAL LETTER E ACUTE +00CA CA CA LATIN CAPITAL LETTER E CIRCUMFLEX +00CB CB CB CB CB LATIN CAPITAL LETTER E DIAERESIS +00CC CC CC LATIN CAPITAL LETTER I GRAVE +00CD CD CD CD CD LATIN CAPITAL LETTER I ACUTE +00CE CE CE CE CE LATIN CAPITAL LETTER I CIRCUMFLEX +00CF CF CF LATIN CAPITAL LETTER I DIAERESIS +00D1 D1 D1 LATIN CAPITAL LETTER N TILDE +00D2 D2 D2 LATIN CAPITAL LETTER O GRAVE +00D3 D3 D3 D3 LATIN CAPITAL LETTER O ACUTE +00D4 D4 D4 D4 D4 LATIN CAPITAL LETTER O CIRCUMFLEX +00D5 D5 D5 LATIN CAPITAL LETTER O TILDE +00D6 D6 D6 D6 D6 LATIN CAPITAL LETTER O DIAERESIS +00D7 D7 D7 D7 AA D7 MULTIPLICATION SIGN +00D8 D8 D8 LATIN CAPITAL LETTER O SLASH +00D9 D9 D9 LATIN CAPITAL LETTER U GRAVE +00DA DA DA DA DA LATIN CAPITAL LETTER U ACUTE +00DB DB DB DB LATIN CAPITAL LETTER U CIRCUMFLEX +00DC DC DC DC DC LATIN CAPITAL LETTER U DIAERESIS +00DD DD LATIN CAPITAL LETTER Y ACUTE +00DF DF DF DF DF LATIN SMALL LETTER SHARP S +00E0 E0 E0 LATIN SMALL LETTER A GRAVE +00E1 E1 E1 E1 E1 LATIN SMALL LETTER A ACUTE +00E2 E2 E2 E2 E2 LATIN SMALL LETTER A CIRCUMFLEX +00E3 E3 E3 LATIN SMALL LETTER A TILDE +00E4 E4 E4 E4 E4 LATIN SMALL LETTER A DIAERESIS +00E5 E5 E5 LATIN SMALL LETTER A RING +00E6 E6 E6 LATIN SMALL LETTER A E +00E7 E7 E7 E7 LATIN SMALL LETTER C CEDILLA +00E8 E8 E8 LATIN SMALL LETTER E GRAVE +00E9 E9 E9 E9 E9 LATIN SMALL LETTER E ACUTE +00EA EA EA LATIN SMALL LETTER E CIRCUMFLEX +00EB EB EB EB EB LATIN SMALL LETTER E DIAERESIS +00EC EC EC LATIN SMALL LETTER I GRAVE +00ED ED ED ED ED LATIN SMALL LETTER I ACUTE +00EE EE EE EE EE LATIN SMALL LETTER I CIRCUMFLEX +00EF EF EF LATIN SMALL LETTER I DIAERESIS +00F1 F1 F1 LATIN SMALL LETTER N TILDE +00F2 F2 F2 LATIN SMALL LETTER O GRAVE +00F3 F3 F3 F3 LATIN SMALL LETTER O ACUTE +00F4 F4 F4 F4 F4 LATIN SMALL LETTER O CIRCUMFLEX +00F5 F5 F5 LATIN SMALL LETTER O TILDE +00F6 F6 F6 F6 F6 LATIN SMALL LETTER O DIAERESIS +00F7 F7 F7 F7 BA F7 DIVISION SIGN +00F8 F8 F8 LATIN SMALL LETTER O SLASH +00F9 F9 F9 LATIN SMALL LETTER U GRAVE +00FA FA FA FA FA LATIN SMALL LETTER U ACUTE +00FB FB FB FB LATIN SMALL LETTER U CIRCUMFLEX +00FC FC FC FC FC LATIN SMALL LETTER U DIAERESIS +00FD FD LATIN SMALL LETTER Y ACUTE +00FF FF LATIN SMALL LETTER Y DIAERESIS +0100 C0 LATIN CAPITAL LETTER A MACRON +0101 E0 LATIN SMALL LETTER A MACRON +0102 C3 LATIN CAPITAL LETTER A BREVE +0103 E3 LATIN SMALL LETTER A BREVE +0104 A1 A1 LATIN CAPITAL LETTER A OGONEK +0105 B1 B1 LATIN SMALL LETTER A OGONEK +0106 C6 LATIN CAPITAL LETTER C ACUTE +0107 E6 LATIN SMALL LETTER C ACUTE +0108 C6 LATIN CAPITAL LETTER C CIRCUMFLEX +0109 E6 LATIN SMALL LETTER C CIRCUMFLEX +010A C5 LATIN CAPITAL LETTER C DOT +010B E5 LATIN SMALL LETTER C DOT +010C C8 C8 LATIN CAPITAL LETTER C HACEK +010D E8 E8 LATIN SMALL LETTER C HACEK +010E CF LATIN CAPITAL LETTER D HACEK +010F EF LATIN SMALL LETTER D HACEK +0110 D0 D0 LATIN CAPITAL LETTER D BAR +0111 F0 F0 LATIN SMALL LETTER D BAR +0112 AA LATIN CAPITAL LETTER E MACRON +0113 BA LATIN SMALL LETTER E MACRON +0116 CC LATIN CAPITAL LETTER E DOT +0117 EC LATIN SMALL LETTER E DOT +0118 CA CA LATIN CAPITAL LETTER E OGONEK +0119 EA EA LATIN SMALL LETTER E OGONEK +011A CC LATIN CAPITAL LETTER E HACEK +011B EC LATIN SMALL LETTER E HACEK +011C D8 LATIN CAPITAL LETTER G CIRCUMFLEX +011D F8 LATIN SMALL LETTER G CIRCUMFLEX +011E AB D0 LATIN CAPITAL LETTER G BREVE +011F BB F0 LATIN SMALL LETTER G BREVE +0120 D5 LATIN CAPITAL LETTER G DOT +0121 F5 LATIN SMALL LETTER G DOT +0122 AB LATIN CAPITAL LETTER G CEDILLA +0123 BB LATIN SMALL LETTER G CEDILLA +0124 A6 LATIN CAPITAL LETTER H CIRCUMFLEX +0125 B6 LATIN SMALL LETTER H CIRCUMFLEX +0126 A1 LATIN CAPITAL LETTER H BAR +0127 B1 LATIN SMALL LETTER H BAR +0128 A5 LATIN CAPITAL LETTER I TILDE +0129 B5 LATIN SMALL LETTER I TILDE +012A CF LATIN CAPITAL LETTER I MACRON +012B EF LATIN SMALL LETTER I MACRON +012E C7 LATIN CAPITAL LETTER I OGONEK +012F E7 LATIN SMALL LETTER I OGONEK +0130 A9 DD LATIN CAPITAL LETTER I DOT +0131 B9 FD LATIN SMALL LETTER DOTLESS I +0134 AC LATIN CAPITAL LETTER J CIRCUMFLEX +0135 BC LATIN SMALL LETTER J CIRCUMFLEX +0136 D3 LATIN CAPITAL LETTER K CEDILLA +0137 F3 LATIN SMALL LETTER K CEDILLA +0138 A2 LATIN SMALL LETTER KRA +0139 C5 LATIN CAPITAL LETTER L ACUTE +013A E5 LATIN SMALL LETTER L ACUTE +013B A6 LATIN CAPITAL LETTER L CEDILLA +013C B6 LATIN SMALL LETTER L CEDILLA +013D A5 LATIN CAPITAL LETTER L HACEK +013E B5 LATIN SMALL LETTER L HACEK +0141 A3 LATIN CAPITAL LETTER L SLASH +0142 B3 LATIN SMALL LETTER L SLASH +0143 D1 LATIN CAPITAL LETTER N ACUTE +0144 F1 LATIN SMALL LETTER N ACUTE +0145 D1 LATIN CAPITAL LETTER N CEDILLA +0146 F1 LATIN SMALL LETTER N CEDILLA +0147 D2 LATIN CAPITAL LETTER N HACEK +0148 F2 LATIN SMALL LETTER N HACEK +014A BD LATIN CAPITAL LETTER ENG +014B BF LATIN SMALL LETTER ENG +014C D2 LATIN CAPITAL LETTER O MACRON +014D F2 LATIN SMALL LETTER O MACRON +0150 D5 LATIN CAPITAL LETTER O DOUBLE ACUTE +0151 F5 LATIN SMALL LETTER O DOUBLE ACUTE +0154 C0 LATIN CAPITAL LETTER R ACUTE +0155 E0 LATIN SMALL LETTER R ACUTE +0156 A3 LATIN CAPITAL LETTER R CEDILLA +0157 B3 LATIN SMALL LETTER R CEDILLA +0158 D8 LATIN CAPITAL LETTER R HACEK +0159 F8 LATIN SMALL LETTER R HACEK +015A A6 LATIN CAPITAL LETTER S ACUTE +015B B6 LATIN SMALL LETTER S ACUTE +015C DE LATIN CAPITAL LETTER S CIRCUMFLEX +015D FE LATIN SMALL LETTER S CIRCUMFLEX +015E AA AA DE LATIN CAPITAL LETTER S CEDILLA +015F BA BA FE LATIN SMALL LETTER S CEDILLA +0160 A9 A9 LATIN CAPITAL LETTER S HACEK +0161 B9 B9 LATIN SMALL LETTER S HACEK +0162 DE LATIN CAPITAL LETTER T CEDILLA +0163 FE LATIN SMALL LETTER T CEDILLA +0164 AB LATIN CAPITAL LETTER T HACEK +0165 BB LATIN SMALL LETTER T HACEK +0166 AC LATIN CAPITAL LETTER T BAR +0167 BC LATIN SMALL LETTER T BAR +0168 DD LATIN CAPITAL LETTER U TILDE +0169 FD LATIN SMALL LETTER U TILDE +016A DE LATIN CAPITAL LETTER U MACRON +016B FE LATIN SMALL LETTER U MACRON +016C DD LATIN CAPITAL LETTER U BREVE +016D FD LATIN SMALL LETTER U BREVE +016E D9 LATIN CAPITAL LETTER U RING +016F F9 LATIN SMALL LETTER U RING +0170 DB LATIN CAPITAL LETTER U DOUBLE ACUTE +0171 FB LATIN SMALL LETTER U DOUBLE ACUTE +0172 D9 LATIN CAPITAL LETTER U OGONEK +0173 F9 LATIN SMALL LETTER U OGONEK +0179 AC LATIN CAPITAL LETTER Z ACUTE +017A BC LATIN SMALL LETTER Z ACUTE +017B AF AF LATIN CAPITAL LETTER Z DOT +017C BF BF LATIN SMALL LETTER Z DOT +017D AE AE LATIN CAPITAL LETTER Z HACEK +017E BE BE LATIN SMALL LETTER Z HACEK +02C7 B7 B7 MODIFIER LETTER HACEK +02D8 A2 A2 SPACING BREVE +02D9 FF FF FF SPACING DOT ABOVE +02DB B2 B2 SPACING OGONEK +02DD BD SPACING DOUBLE ACUTE +0371 A1 GREEK NON-SPACING DASIA PNEUMATA +0372 A2 GREEK NON-SPACING PSILI PNEUMATA +0386 B6 GREEK CAPITAL LETTER ALPHA TONOS +0388 B8 GREEK CAPITAL LETTER EPSILON TONOS +0389 B9 GREEK CAPITAL LETTER ETA TONOS +038A BA GREEK CAPITAL LETTER IOTA TONOS +038C BC GREEK CAPITAL LETTER OMICRON TONOS +038E BE GREEK CAPITAL LETTER UPSILON TONOS +038F BF GREEK CAPITAL LETTER OMEGA TONOS +0390 C0 GREEK SMALL LETTER IOTA DIAERESIS TONOS +0391 C1 GREEK CAPITAL LETTER ALPHA +0392 C2 GREEK CAPITAL LETTER BETA +0393 C3 GREEK CAPITAL LETTER GAMMA +0394 C4 GREEK CAPITAL LETTER DELTA +0395 C5 GREEK CAPITAL LETTER EPSILON +0396 C6 GREEK CAPITAL LETTER ZETA +0397 C7 GREEK CAPITAL LETTER ETA +0398 C8 GREEK CAPITAL LETTER THETA +0399 C9 GREEK CAPITAL LETTER IOTA +039A CA GREEK CAPITAL LETTER KAPPA +039B CB GREEK CAPITAL LETTER LAMBDA +039C CC GREEK CAPITAL LETTER MU +039D CD GREEK CAPITAL LETTER NU +039E CE GREEK CAPITAL LETTER XI +039F CF GREEK CAPITAL LETTER OMICRON +03A0 D0 GREEK CAPITAL LETTER PI +03A1 D1 GREEK CAPITAL LETTER RHO +03A3 D3 GREEK CAPITAL LETTER SIGMA +03A4 D4 GREEK CAPITAL LETTER TAU +03A5 D5 GREEK CAPITAL LETTER UPSILON +03A6 D6 GREEK CAPITAL LETTER PHI +03A7 D7 GREEK CAPITAL LETTER CHI +03A8 D8 GREEK CAPITAL LETTER PSI +03A9 D9 GREEK CAPITAL LETTER OMEGA +03AA DA GREEK CAPITAL LETTER IOTA DIAERESIS +03AB DB GREEK CAPITAL LETTER UPSILON DIAERESIS +03AC DC GREEK SMALL LETTER ALPHA TONOS +03AD DD GREEK SMALL LETTER EPSILON TONOS +03AE DE GREEK SMALL LETTER ETA TONOS +03AF DF GREEK SMALL LETTER IOTA TONOS +03B0 E0 GREEK SMALL LETTER UPSILON DIAERESIS TONOS +03B1 E1 GREEK SMALL LETTER ALPHA +03B2 E2 GREEK SMALL LETTER BETA +03B3 E3 GREEK SMALL LETTER GAMMA +03B4 E4 GREEK SMALL LETTER DELTA +03B5 E5 GREEK SMALL LETTER EPSILON +03B6 E6 GREEK SMALL LETTER ZETA +03B7 E7 GREEK SMALL LETTER ETA +03B8 E8 GREEK SMALL LETTER THETA +03B9 E9 GREEK SMALL LETTER IOTA +03BA EA GREEK SMALL LETTER KAPPA +03BB EB GREEK SMALL LETTER LAMBDA +03BC EC GREEK SMALL LETTER MU +03BD ED GREEK SMALL LETTER NU +03BE EE GREEK SMALL LETTER XI +03BF EF GREEK SMALL LETTER OMICRON +03C0 F0 GREEK SMALL LETTER PI +03C1 F1 GREEK SMALL LETTER RHO +03C2 F2 GREEK SMALL LETTER FINAL SIGMA +03C3 F3 GREEK SMALL LETTER SIGMA +03C4 F4 GREEK SMALL LETTER TAU +03C5 F5 GREEK SMALL LETTER UPSILON +03C6 F6 GREEK SMALL LETTER PHI +03C7 F7 GREEK SMALL LETTER CHI +03C8 F8 GREEK SMALL LETTER PSI +03C9 F9 GREEK SMALL LETTER OMEGA +03CA FA GREEK SMALL LETTER IOTA DIAERESIS +03CB FB GREEK SMALL LETTER UPSILON DIAERESIS +03CC FC GREEK SMALL LETTER OMICRON TONOS +03CD FD GREEK SMALL LETTER UPSILON TONOS +03CE FE GREEK SMALL LETTER OMEGA TONOS +03F3 B4 GREEK SPACING TONOS +03F4 B5 GREEK SPACING DIAERESIS TONOS +0401 A1 CYRILLIC CAPITAL LETTER IO +0402 A2 CYRILLIC CAPITAL LETTER DJE +0403 A3 CYRILLIC CAPITAL LETTER GJE +0404 A4 CYRILLIC CAPITAL LETTER E +0405 A5 CYRILLIC CAPITAL LETTER DZE +0406 A6 CYRILLIC CAPITAL LETTER I +0407 A7 CYRILLIC CAPITAL LETTER YI +0408 A8 CYRILLIC CAPITAL LETTER JE +0409 A9 CYRILLIC CAPITAL LETTER LJE +040A AA CYRILLIC CAPITAL LETTER NJE +040B AB CYRILLIC CAPITAL LETTER TSHE +040C AC CYRILLIC CAPITAL LETTER KJE +040E AE CYRILLIC CAPITAL LETTER SHORT U +040F AF CYRILLIC CAPITAL LETTER DZHE +0410 B0 CYRILLIC CAPITAL LETTER A +0411 B1 CYRILLIC CAPITAL LETTER BE +0412 B2 CYRILLIC CAPITAL LETTER VE +0413 B3 CYRILLIC CAPITAL LETTER GE +0414 B4 CYRILLIC CAPITAL LETTER DE +0415 B5 CYRILLIC CAPITAL LETTER IE +0416 B6 CYRILLIC CAPITAL LETTER ZHE +0417 B7 CYRILLIC CAPITAL LETTER ZE +0418 B8 CYRILLIC CAPITAL LETTER II +0419 B9 CYRILLIC CAPITAL LETTER SHORT II +041A BA CYRILLIC CAPITAL LETTER KA +041B BB CYRILLIC CAPITAL LETTER EL +041C BC CYRILLIC CAPITAL LETTER EM +041D BD CYRILLIC CAPITAL LETTER EN +041E BE CYRILLIC CAPITAL LETTER O +041F BF CYRILLIC CAPITAL LETTER PE +0420 C0 CYRILLIC CAPITAL LETTER ER +0421 C1 CYRILLIC CAPITAL LETTER ES +0422 C2 CYRILLIC CAPITAL LETTER TE +0423 C3 CYRILLIC CAPITAL LETTER U +0424 C4 CYRILLIC CAPITAL LETTER EF +0425 C5 CYRILLIC CAPITAL LETTER KHA +0426 C6 CYRILLIC CAPITAL LETTER TSE +0427 C7 CYRILLIC CAPITAL LETTER CHE +0428 C8 CYRILLIC CAPITAL LETTER SHA +0429 C9 CYRILLIC CAPITAL LETTER SHCHA +042A CA CYRILLIC CAPITAL LETTER HARD SIGN +042B CB CYRILLIC CAPITAL LETTER YERI +042C CC CYRILLIC CAPITAL LETTER SOFT SIGN +042D CD CYRILLIC CAPITAL LETTER REVERSED E +042E CE CYRILLIC CAPITAL LETTER IU +042F CF CYRILLIC CAPITAL LETTER IA +0430 D0 CYRILLIC SMALL LETTER A +0431 D1 CYRILLIC SMALL LETTER BE +0432 D2 CYRILLIC SMALL LETTER VE +0433 D3 CYRILLIC SMALL LETTER GE +0434 D4 CYRILLIC SMALL LETTER DE +0435 D5 CYRILLIC SMALL LETTER IE +0436 D6 CYRILLIC SMALL LETTER ZHE +0437 D7 CYRILLIC SMALL LETTER ZE +0438 D8 CYRILLIC SMALL LETTER II +0439 D9 CYRILLIC SMALL LETTER SHORT II +043A DA CYRILLIC SMALL LETTER KA +043B DB CYRILLIC SMALL LETTER EL +043C DC CYRILLIC SMALL LETTER EM +043D DD CYRILLIC SMALL LETTER EN +043E DE CYRILLIC SMALL LETTER O +043F DF CYRILLIC SMALL LETTER PE +0440 E0 CYRILLIC SMALL LETTER ER +0441 E1 CYRILLIC SMALL LETTER ES +0442 E2 CYRILLIC SMALL LETTER TE +0443 E3 CYRILLIC SMALL LETTER U +0444 E4 CYRILLIC SMALL LETTER EF +0445 E5 CYRILLIC SMALL LETTER KHA +0446 E6 CYRILLIC SMALL LETTER TSE +0447 E7 CYRILLIC SMALL LETTER CHE +0448 E8 CYRILLIC SMALL LETTER SHA +0449 E9 CYRILLIC SMALL LETTER SHCHA +044A EA CYRILLIC SMALL LETTER HARD SIGN +044B EB CYRILLIC SMALL LETTER YERI +044C EC CYRILLIC SMALL LETTER SOFT SIGN +044D ED CYRILLIC SMALL LETTER REVERSED E +044E EE CYRILLIC SMALL LETTER IU +044F EF CYRILLIC SMALL LETTER IA +0451 F1 CYRILLIC SMALL LETTER IO +0452 F2 CYRILLIC SMALL LETTER DJE +0453 F3 CYRILLIC SMALL LETTER GJE +0454 F4 CYRILLIC SMALL LETTER E +0455 F5 CYRILLIC SMALL LETTER DZE +0456 F6 CYRILLIC SMALL LETTER I +0457 F7 CYRILLIC SMALL LETTER YI +0458 F8 CYRILLIC SMALL LETTER JE +0459 F9 CYRILLIC SMALL LETTER LJE +045A FA CYRILLIC SMALL LETTER NJE +045B FB CYRILLIC SMALL LETTER TSHE +045C FC CYRILLIC SMALL LETTER KJE +045E FE CYRILLIC SMALL LETTER SHORT U +045F FF CYRILLIC SMALL LETTER DZHE +05D0 E0 HEBREW LETTER ALEF +05D1 E1 HEBREW LETTER BET +05D2 E2 HEBREW LETTER GIMEL +05D3 E3 HEBREW LETTER DALET +05D4 E4 HEBREW LETTER HE +05D5 E5 HEBREW LETTER VAV +05D6 E6 HEBREW LETTER ZAYIN +05D7 E7 HEBREW LETTER HET +05D8 E8 HEBREW LETTER TET +05D9 E9 HEBREW LETTER YOD +05DA EA HEBREW LETTER FINAL KAF +05DB EB HEBREW LETTER KAF +05DC EC HEBREW LETTER LAMED +05DD ED HEBREW LETTER FINAL MEM +05DE EE HEBREW LETTER MEM +05DF EF HEBREW LETTER FINAL NUN +05E0 F0 HEBREW LETTER NUN +05E1 F1 HEBREW LETTER SAMEKH +05E2 F2 HEBREW LETTER AYIN +05E3 F3 HEBREW LETTER FINAL PE +05E4 F4 HEBREW LETTER PE +05E5 F5 HEBREW LETTER FINAL TSADI +05E6 F6 HEBREW LETTER TSADI +05E7 F7 HEBREW LETTER QOF +05E8 F8 HEBREW LETTER RESH +05E9 F9 HEBREW LETTER SHIN +05EA FA HEBREW LETTER TAV +060C AC ARABIC COMMA +061B BB ARABIC SEMICOLON +061F BF ARABIC QUESTION MARK +0621 C1 ARABIC LETTER HAMZAH +0622 C2 ARABIC LETTER MADDAH ON ALEF +0623 C3 ARABIC LETTER HAMZAH ON ALEF +0624 C4 ARABIC LETTER HAMZAH ON WAW +0625 C5 ARABIC LETTER HAMZAH UNDER ALEF +0626 C6 ARABIC LETTER HAMZAH ON YA +0627 C7 ARABIC LETTER ALEF +0628 C8 ARABIC LETTER BAA +0629 C9 ARABIC LETTER TAA MARBUTAH +062A CA ARABIC LETTER TAA +062B CB ARABIC LETTER THAA +062C CC ARABIC LETTER JEEM +062D CD ARABIC LETTER HAA +062E CE ARABIC LETTER KHAA +062F CF ARABIC LETTER DAL +0630 D0 ARABIC LETTER THAL +0631 D1 ARABIC LETTER RA +0632 D2 ARABIC LETTER ZAIN +0633 D3 ARABIC LETTER SEEN +0634 D4 ARABIC LETTER SHEEN +0635 D5 ARABIC LETTER SAD +0636 D6 ARABIC LETTER DAD +0637 D7 ARABIC LETTER TAH +0638 D8 ARABIC LETTER DHAH +0639 D9 ARABIC LETTER AIN +063A DA ARABIC LETTER GHAIN +0640 E0 ARABIC TATWEEL +0641 E1 ARABIC LETTER FA +0642 E2 ARABIC LETTER QAF +0643 E3 ARABIC LETTER CAF +0644 E4 ARABIC LETTER LAM +0645 E5 ARABIC LETTER MEEM +0646 E6 ARABIC LETTER NOON +0647 E7 ARABIC LETTER HA +0648 E8 ARABIC LETTER WAW +0649 E9 ARABIC LETTER ALEF MAQSURAH +064A EA ARABIC LETTER YA +064B EB ARABIC FATHATAN +064C EC ARABIC DAMMATAN +064D ED ARABIC KASRATAN +064E EE ARABIC FATHAH +064F EF ARABIC DAMMAH +0650 F0 ARABIC KASRAH +0651 F1 ARABIC SHADDAH +0652 F2 ARABIC SUKUN +0660 30 ARABIC-INDIC DIGIT ZERO +0661 31 ARABIC-INDIC DIGIT ONE +0662 32 ARABIC-INDIC DIGIT TWO +0663 33 ARABIC-INDIC DIGIT THREE +0664 34 ARABIC-INDIC DIGIT FOUR +0665 35 ARABIC-INDIC DIGIT FIVE +0666 36 ARABIC-INDIC DIGIT SIX +0667 37 ARABIC-INDIC DIGIT SEVEN +0668 38 ARABIC-INDIC DIGIT EIGHT +0669 39 ARABIC-INDIC DIGIT NINE +2015 AF QUOTATION DASH +2017 DF SPACING DOUBLE UNDERSCORE +203E AF SPACING OVERSCORE +2116 F0 NUMERO + + diff --git a/src/cmd/tcs/ex2.utf b/src/cmd/tcs/ex2.utf new file mode 100644 index 00000000..99d3e89c --- /dev/null +++ b/src/cmd/tcs/ex2.utf @@ -0,0 +1,192 @@ +From dmr Thu Jan 30 17:00:03 EST 1992 +誠に申し訳ありませんが、MH front end はあと1週間だけ待って下さい。 +新しい xterm のために vtwin の変更が必要となって、それにちょっと +手間取ってしまいました。まだもう1つ直したい bug があるのですが +もう今日は時間がありません。 +拝啓 新緑の候、ますますご清祥のこととお喜び申し上げます。 +さて、斎藤信男先生は4月1日をもちまして、慶応義塾大学理工学部教 +授に御昇任なられました。そこで、日頃斎藤先生にお世話になっている +私達が斎藤先生に お祝いを申し上げるためのささやかな 祝宴を企画致 +しました。当日は 斎藤研究室 OB/OG の方々、斎藤研究室現役の学生、 +また、斎藤先生ゆかりの方々が集まり、斎藤先生を囲んで楽しいひとと +きを過ごしたいと考えております。ご家族、御友人おさそいあわせのう +え御列席下さるようお願い申し上げます。 +おそれいりますが、ご出席の確認を下記連絡先に電話または電子メール +にてご連絡下さるようお願い申し上げます。 + 敬具 + 「斎藤信男教授を囲む会」 +日時: 昭和62年4月24日(金) 18:00 より +場所: 新橋第一ホテル「レストランクラレット」 + 電話; 03-501-4411 +会費: 1万5千円 (当日記念品代1口5千円を別に御用意下さい。) + ただし、学生料金は別途設定してありますので御安心! +連絡先:中村 修 osamu@keio.junet + 電話 044-63-9137 (斎藤研究室直通) + 電話 03-704-4715 (中村自宅) + 幹事代表 村井 純、 中村 修 +拝啓 新緑の候、ますますご清祥のこととお喜び申し上げます。 +さて、斎藤信男先生は4月1日をもちまして、慶応義塾大学理工学部教 +授に御昇任なられました。そこで、日頃斎藤先生にお世話になっている +私達が斎藤先生に お祝いを申し上げるためのささやかな 祝宴を企画致 +しました。当日は 斎藤研究室 OB/OG の方々、斎藤研究室現役の学生、 +また、斎藤先生ゆかりの方々が集まり、斎藤先生を囲んで楽しいひとと +きを過ごしたいと考えております。ご家族、御友人おさそいあわせのう +え御列席下さるようお願い申し上げます。 +おそれいりますが、ご出席の確認を下記連絡先に電話または電子メール +にてご連絡下さるようお願い申し上げます。 + 敬具 + 「斎藤信男教授を囲む会」 +日時: 昭和62年4月24日(金) 18:00 より +場所: 新橋第一ホテル「レストランクラレット」 + 電話; 03-501-4411 +会費: 1万5千円 (当日記念品代1口5千円を別に御用意下さい。) + ただし、学生料金は別途設定してありますので御安心! +連絡先:中村 修 osamu@keio.junet + 電話 044-63-9137 (斎藤研究室直通) + 電話 03-704-4715 (中村自宅) + 幹事代表 村井 純、 中村 修 +JUS幹事の皆様: +4月10日の幹事会でお話した、次のような講演についての件ですが、 + 発内容:Macintosh IIへのUNIXの移植 + 発 者:米国UniSoftのエンジニア + 発時間:1時間(幹事会において決まった時間です) + 発当人からABSTRACTが届きました。このような内容での話でよけれ +ば、来日するがどうだろう?との問い合わせがあったのですが、皆様いかがでしょうか? +皆様の御意見を伺ったうえで、本当に来てもらうかどうか当人に連絡したいと思います。 +(交通費、宿泊費などはJUSから出す必要はありません) +御返答、よろしくお願いいたします。 + DCL 坂本 文 +JUS幹事の皆様: +4月10日の幹事会でお話した、次のような講演についての件ですが、 + 発内容:Macintosh IIへのUNIXの移植 + 発 者:米国UniSoftのエンジニア + 発時間:1時間(幹事会において決まった時間です) + 発当人からABSTRACTが届きました。このような内容での話でよけれ +ば、来日するがどうだろう?との問い合わせがあったのですが、皆様いかがでしょうか? +皆様の御意見を伺ったうえで、本当に来てもらうかどうか当人に連絡したいと思います。 +(交通費、宿泊費などはJUSから出す必要はありません) +御返答、よろしくお願いいたします。 + DCL 坂本 文 + 次回のjus幹事会は下記の場所で行います。 +日時 5/8(金)午後6時 +場所 (株)アスキ―、FFFビル、7F役員会議室 +地図 + 至赤坂 +国道246号(青山通り) + | |*(地下鉄表参道B3出口) + | | (ラ―メン屋) +紀ノ国屋| |出光GS 天下一 + | | 住 大 F* + | | 友 仁 F + | | 南 堂 F + 至渋谷 青 ビ ビ + 山 ル ル + ビ + ル +(1)地下鉄表参道駅下車、B3の出口を出る。 +(2)青山通りを渋谷方面へ歩く +(3)初めての信号(角が出光GS)を右へ曲る +(4)約500M歩き(信号4つ目)、T字路の交差点の右側 +(5)FFFビルの7F +PS.当日14:40着の便で成田に帰って来ますので、少し遅れるかもしれません + が先に始めて下さい。 + この間の集りでマーク・シートの読み取りのsoftの話題があったと思うので +すが,「インタフェース5月号」の新製品紹介の欄で,ANK character の読み取りの +softの紹介があったように思います。 + ただ,その雑誌がいま,手元にないので詳しくはわかりませんが,調べてみ +ます。 +一部の人は知っていると思いますが,現在 rmap のPD化を進めています. +余分な機能をそぎ落し,一通り動くようになりました.あと,2,3 +新たな機能を追加する予定ですが,問題はその前提となる rwhod にあります. +御存知のように rwhod はつながるマシンの数が増えると,急激に network 及び +CPU を食いはじめます.また,routing の機能がないため複数のネットワークが +接続されているような環境ではやはり問題です.東工大ではいままで,gateway +となるマシンの rwhod に手をいれて routing をするようにしていましたが, +その場しのぎのいい加減なやり方だったので,4月にネットワークの接続形態が +変って以来,2重に packet を流していたことが判明しました.昨日急いで +直しましたが,それまでネットワークは collision の嵐だった訳です. +たかだか30台のネットワークでこの有様ですから,何百,何千という +本格的ネットワークを考えると単純に routing を行う今の方法は非現実的です. +そこで,いくつかのアイディアを加藤君と考えました. +1. broadcast packet は止めて,NFSを利用し /usr/spool/rwho をできる限り + 共有する.どうしても必要なところは point-to-point で routing を行う. +2. routing する場合に独自のプロトコルにより複数のホストの情報を + 1 packet で送る. +3. on demand で必要な時だけ他のマシンに対し情報を要求する. + トリガーは,例えば誰かが rmap でそのマシンを含むページを表示しようと + した時とする. +4. どうせ,そういう情報が必要なのは phone をかけたい時ぐらいだから, + むしろ,phone を改造して phoned が broadcasting や routing をしながら, + 特定のユーザがどこにいるか探し回るようにする. +さて,そこで皆さんの意見を聞きたいと思います.どうするのが一番良いでしょうか. +今考えているのは,1, 2 の機能を持った public domain rwhod を作るといった +ところですが,果してそんなことをするのは意味があるのか.4を実現すれば事実上 +rmap はいらなくなるんじゃないのか.有益な議論をお待ちしています. +私は前の mail で次ぎのようなことを書きました. +> 御存知のように rwhod はつながるマシンの数が増えると,急激に network 及び +> CPU を食いはじめます.また,routing の機能がないため複数のネットワークが +> 接続されているような環境ではやはり問題です.東工大ではいままで,gateway +> となるマシンの rwhod に手をいれて routing をするようにしていましたが, +> ....,何百,何千という +> 本格的ネットワークを考えると単純に routing を行う今の方法は非現実的です. +> そこで,いくつかのアイディアを加藤君と考えました. +> 1. broadcast packet は止めて,NFSを利用し /usr/spool/rwho をできる限り +> 共有する.どうしても必要なところは point-to-point で routing を行う. +> 2. routing する場合に独自のプロトコルにより複数のホストの情報を +> 1 packet で送る. +> 今考えているのは,1, 2 の機能を持った public domain rwhod を作るといった +> ところですが,果してそんなことをするのは意味があるのか.... +今考えていることを,もう少し具体的に説明すると, +既存の rwhod は自分のマシンの network configuration を見て +自分の属するサブネットワークにはすべて broadcasting で, +point-to-point のリンクにはその相手先に対し,自分のマシンの情報のみを +流しまています. +私が手を入れた rwhod はそれらに加えて,他のマシンから来た +情報を自分の spool に書き込むと同時に,リストとして貯め込んでおき, +自分の情報を流す時に同時に,個々のマシンの属するネットワーク以外の +すべてのリンクにその情報をリレーするというものです. +しかし,この方法だといくら broadcast packet を使ったところで, +論理的にはネットワーク全体が完全グラフをなすように packet を +流すことになりますし,しかも普段はそういう情報を必要としない +場合が多い訳ですから,明らかに供給過剰です.で,これを少しでも +軽減することができれば,と考えている訳です. +新しい rwhod は,様々なネットワーク上の制約を盛り込めるように, +例えば /etc/rwhod.rc のようなファイルからリレーのための configuration +を読み込むようにするといいでしょう.そのファイルの中に書かれるべき +項目としては,次ぎのようなものが考えられます. +1. 自分のマシンの情報をどのマシン,またはどのネットワークに対して + 送信するか.また,それをローカルファイルに格納するか否か. +2. 他のマシンの情報をどのマシン,またはどのネットワークに対して + リレーするか.それは packet として受信されるべきものなのか, + NFSによってそのマシンの rwhod が書き込んだファイルを + 読みにいくのか.前者の場合には,さらにその情報をローカル + ファイルに格納するか否か. +3. 1, 2 は何秒間隔で行うのか. +これらに加え,さらに通常は packet を流さずに必要な時だけ, +rwhod が他のマシンに対し情報を要求するという機能を付け加えるのも +いいかもしれません.このためには,/etc/rwhod.rc の中に +4. あるマシンの情報に対する要求があった時にどのマシンに + 対して問い合わせを行うか. +という項目を付け加えるべきでしょう.1,2,4 は実際には統一した +フォーマットで記述するのがいいかもしれません. +もし,こういう on demand 型のサービスを取り入れると当然 rwho, ruptime, rmap +といった client 側にも変更が必要になります.恐らくあるマシンの情報を得るには, +といったようなライブラリ関数を用意することになるでしょう. +この関数は自分のマシンの rwhod に対してそういう request を +行い response を受け取るという単純なものにするのがいいと +思います.一方その request を受け取った rwhod はスプールを +見てそれが充分新しいものであれば,そこから読み取り,そうでなければ +rwhod.rc に書かれたマシンに対し問い合わせることになるでしょう. +いや,もうそこまでするのだったら,いっそスプールは全廃して +rwhod が on core で情報を管理した方がいいかもしれません. +というようなところが今まで考えたところですが,そこでこの前にも書いた +疑問に戻ります.果してこんなことをする意味があるのだろうか? +phone を hack すれば,それで問題は解決するのではないか? +何か意見を言ってください.お願いします. +私はこれを今度の meeting で議論してもらいたいとは思っていません. +あくまで mail で意見を聞かせて下さい.そうすることで, +議論がたまたま meeting に出席した人の中だけでの閉じたもので +終るということがなくなると思いますから. +ところでこの mailing list はいつまで東工大で管理されているのですか. +u-tokyo に移した方がいいのではないのですか? + diff --git a/src/cmd/tcs/ex3.utf b/src/cmd/tcs/ex3.utf new file mode 100644 index 00000000..75881753 --- /dev/null +++ b/src/cmd/tcs/ex3.utf @@ -0,0 +1,15 @@ +Привет. + +Так лучше? :-) Что касается Rob Pike, я просто не хочу его +беспокоить, но он может быть уверен, что еще услышит от меня +ругательства на Plan 9 - когда я прочту статьи :-) :-) :-) + +Кстати, я мог бы прислать русскую версию nroff (руки не дошли +сделать troff с кириллицей). Что касается awk, то для меня до сих +пор остается загадкой почему никто не сделал нормальную трассировку +(tracing) в awk - это сделало бы отладку (debugging) в сто раз +проще. + +Ну ладно, всем привет. + +Вадим diff --git a/src/cmd/tcs/ex4.utf b/src/cmd/tcs/ex4.utf new file mode 100644 index 00000000..ac57f033 --- /dev/null +++ b/src/cmd/tcs/ex4.utf @@ -0,0 +1,109 @@ + +2-ая КОНФЕРЕНЦИЯ SUUG + + С 23 по 28 сентября 1991 года в городе Владимире Совет- +ская ассоциация пользователей операционной системы UNIX +(SUUG) проводит 2-ую ежегодную конференцию. На конференции +предполагается рассмотреть текущее состояние ОС UNIX и перспективные +направления ее развития как в СССР, так и за рубежом, воп- +росы разработки прикладного программного обеспечения в среде +UNIX. На конференцию приглашены ряд ведущих специалистов из +Европейской ассоциации пользователей UNIX (EurOpen) и ассоци- +ации usenix (США). + В рамках конференции будет проведено общее собрание +Советской ассоциации пользователей UNIX. + +УЧАСТИЕ В КОНФЕРЕНЦИИ + + Участие в конференции возможно в качестве докладчиков и +слушателей. Кроме того, в ходе конференции будут проведены +панельные дискуссии по наиболее интересным темам. Предус- +мотрены условия для продуктивного общения специалистов. +Тезисы всех принятых на конференцию докладов к ее началу +будут опубликованы. + Участники конференции могут провести демонстрацию на +ЭВМ своих разработок, приниматся заявки на рекламу. + Конференция будет проводиться в гостинице "Клязьма" г. +Владимира. Предполагаемое количество участников 120 чело- +век. Регистрационный взнос - 400 руб., для членов SUUG - +350 руб. с человека. В регистрационный взнос входят все +орграсходы, плата за проживание в гостинице и трехразовое +питание в ресторане при гостинице. + Для участия в конференции необходимо до 15 мая 1991 г. +выслать по адресу организационного комитета заявку по прила- +гаемому образцу, для докладчиков - тезисы докладов объемом +до 2 страниц в виде, пригодном для копирования. Программный +комитет предполагает наиболее интересные доклады опублико- +вать целиком. Заявки и тезисы докладов можно также присылать +электронной почтой. + В случае нескольких авторов доклада, приглашен может +быть, как правило, только один. Подтверждение Вашего учас- +тия будет выслано до 1 сентября 1991 г. + +ОРГАНИЗАЦИОННЫЙ КОМИТЕТ + + Г.П.Остапенко + Э.Мухутдинова + ИНЭУМ, Москва, ГСП-1, Вавилова, 24, + Советская ассоциация пользователей ОС UNIX (SUUG) + тел: (095) 939-00-14, 939-00-49 + +ПРОГРАММНЫЙ КОМИТЕТ + + П.Л.Брусиловский + МЦНТИ, 125252 Москва ул.Куусинена 21б. + тел: (095) 198-70-55 + e-mail: <plb@plb.icsti.su> + + А.Л.Фридман + ИПИАН, 177900 Москва ул. Вавилова 30/6. + тел: (095) 930-05-16 + e-mail: <af@alf.public.su> + + + Дальнейшие мероприятия SUUG: семинар по прикладным сис- +темам в среде UNIX (декабрь, Москва, МЦНТИ); UNIX-шоу - выс- +тавка аппаратуры и программных средств, представления фирм +(октябрь-ноябрь, Москва). Дополнительная информация будет +выслана в ближайшее время. + + + + + З А Я В К А + на участие во 2-ой конференции + + Я хотел бы принять участие во 2-ой ежегодной конферен- +ции SUUG в качестве: докладчика / слушателя / участника дис- +скусии. +Фамилия, имя, отчество, ученое звание: +.......................................................... +.......................................................... +Место работы: +.......................................................... +.......................................................... +Должность: +.......................................................... +Название доклада: +.......................................................... +.......................................................... +Тема дискуссии: +.......................................................... +.......................................................... +Почтовый адрес: +.......................................................... +Телефон:...................E-mail.......................... +Членство в SUUG: организация-член SUUG + индивидуальный член + прошу выслать материалы о вступлении + нет +Основная сфера деятельности моей организации: +.......................................................... +Мои основные интересы лежат в области: +.......................................................... + +Хотите ли Вы продемонстрировать свои разработки? да/нет +Необходимая техника....................................... +.......................................................... + + diff --git a/src/cmd/tcs/ex5.utf b/src/cmd/tcs/ex5.utf new file mode 100644 index 00000000..b4baca0b --- /dev/null +++ b/src/cmd/tcs/ex5.utf @@ -0,0 +1,50 @@ +.tr -\(hy +.TL +Hello World +.br +or +.br +Καλημέρα κόσμε +.br +or +.br +こんにちは 世界 +.AU +Rob Pike +Ken Thompson +.AI +.MH +.AB +Plan 9 from Bell Labs has recently been converted from ASCII +to an ASCII-compatible variant of Unicode, a 16-bit character set. +In this paper we explain the reasons for the change, +describe the character set and representation we chose, +and present the programming models and software changes +that support the new text format. +Although we stopped short of full internationalization\(emfor +example, system error messages are in Unixese, not Japanese\(emwe +believe Plan 9 is the first system to treat the representation +of all major languages on a uniform, equal footing throughout all its +software. +.AE +.SH +Introduction +.PP +The world is multilingual but most computer systems +are based on English and ASCII or worse. +The pending release of Plan 9 [Pike90], a new distributed operating +system from Bell Laboratories, seemed a good occasion +to correct this chauvinism. +It is easier to make such deep changes when building new systems than +by retrofitting old ones. +.PP +The ANSI C standard [ANSIC] contains some guidance on the matter of +`wide' and `multi-byte' characters but falls far short of +solving the myriad associated problems. +We could find no literature on how to convert a +.I system +to larger character sets, although some individual +.I programs +have been converted. +This paper reports what we discovered as we +explored the problem of representing multilingual diff --git a/src/cmd/tcs/ex6.utf b/src/cmd/tcs/ex6.utf new file mode 100644 index 00000000..ab4a98f8 --- /dev/null +++ b/src/cmd/tcs/ex6.utf @@ -0,0 +1,145 @@ +簫肓ο汗板正ω
+﹁﹁牴喃亭樅苔待于廷把閏 ☐淚誓毗
+
+ 半搽碌士外征w莽尹夔花,╔簫肓╝巨城Γㄤ外Εο閏籀征絆祖傳沼.Ρ�
+拖子稀征ㄓ世ΞΡ芋˙ㄓ丙閏,科志戊闕算褕蜥Ε希夔缺征腎坏ㄒ斐,先散咒工
+猜碌Γw紫╔久迴證決Ε切新掖闕欣征冶肓╝.半Ε希叱副ˎ搽諭ˎ舨窪汗菅Υ
+油刨戊水件亭揭Υ征醜夔,ㄒ縫郭堝Ε希夔缺征喃巳決唉才腎彪,脈戊丕w斥淑
+孓Υ╔球擱╝ㄖ販凹 .
+
+ 先齊釗ㄓ舨缶菅征Εν�命,Ε希夔缺科志征嘰保ㄤ芋閏籀征籀鮭,叼社弟
+呶邃謙; 硿苔楮ˎ扒錘荐Η亭宗汗; 楹橘五決盔汎仙�吏槳丫製咄決于廷揖,產
+ㄈ都Υ籀希�揩,先半╔簫肓╝征ο河都Σ,刨戊共丫水件惕缺.
+
+ z芋ΕοΡ斥閏籀β保半牽皇荐槳Σ子稀.佐鬆征亭迆ㄆ共莊夷ㄈ專間禪取
+╔惋半丙舨亭宗簫肓ˎ搽諭簫肓ˎ念閏簫肓╝,亮╔城臣舨亭宗搽諭決念閏簫肓
+征痣w伯簫肓惱虹申衝神╝,枝巨Γㄆ共莊夷征乃鮭.
+
+ 半搽諭亭揭ㄓ,ㄣ尋季及ΘΘ外Σ刃外嘰肓征宗您賬腰亭揭,尺征保莊夷ㄓ
+例滿╔城Γ唔砠河訪外搽諭碌儀橢宵Σ志征ㄒ簫肓包挫╝.申亭宗偎侵�炳,砠
+Γ都丫ㄒ苟淚戊Ε丕漳球缺腕決弋皇茫門征亭宗Θ戾才,濟都丫絲弟窮決鴛含新
+掖,唔砠慘參,偯交詖亭揖,牽皇半˙ㄓ丙閏花ㄈˊ刖征冶肓,誹唔郁莊睥保ㄓ
+世甲認抓尺河凶炳嚀舨窪寺詫決舨ㄩ佗炬寺雜征闕濮借扯,仆絲烏叩由瓜皂人妨
+丫寺詫.
+
+ 旦才,城匠牽斥閏籀╔丫腕ρ╝,半閏籀子稀色士外切睬麥窗惱缺簣凹睬缺
+歪伶子稀Εο躬牠嶇芣閏籀征既頹窄祉砠丫Εο,人�色鋒石抓製莽做圾褒友征
+敖諂瓷瓷昆澹取訛滌丫亭更,產保╔Σ祠祁╝,繭夷Εο刁拗決亭更牠缸ㄒ邕惕
+缺.w冬陰坏征牴喃亭更牠缸迪弋切,工桌刷芾惱坏杉抓洎抆,斕尋牽序產保呸
+郝協簫肓征ο科沼.
+
+
+
+闕濮濟歪待ㄓ世算褕蜥
+
+ 牽壽祖臥歪伶簫肓征拗惋,ㄒ終保˙弋花亭競郾郾婪蒞征滄區偎侵.先牴喃
+ο褒庇咸怒吱ㄓ�怒吱缸盔�磴漬城,ㄓ世亭競戊胸鮭,岔枋工包˙弋,申士外
+咄際粱夔裯麴何ο.几阿丫,ㄓ世都丫╔簫肓縛畋w�╝保半士外ΞΔ�咄際粱
+夔ㄖ窪,例人牽唧�算褕蜥甲認念閏乃敬半ㄓ舨征惱虹胸鮭.盔�磴滿: ╔几疫
+戊腆冬漬城,念閏乃敬半咄際丐參Γ,惋半工戊窮ㄓ舨.╝申惋借舨紙砝征搽諭
+怒吱含敖沼w涪迴槳ㄓ舨歪惱虹珞志,仆絲歪戊昆麥征亭宗念閏簫肓醒詫.
+
+ 盔�磴漬城佐鬆征ㄆ共莊夷保貊夕越洮βㄒ汎唳芣痣,扼灌拗惋半搽諭�炳
+,枝保城伶簫肓ο汗申鏃姘戟麥吊島.盔�磴滿: ╔牽保w父板只ˎ越洮征莊夷
+,仙借�俑Γ算褕蜥賂石ㄇ征簫肓決叱丙刨戊去ο杳�.╝
+
+ 半牽壽河都Σ,ㄓ舨算褕蜥半亭宗Υ岔刨戊水件鈕征興夔偎侵,工保季及久
+迴詖亭ˎ專砠慘參決鴛織新掖揖由�姍,豳人洮臾證半Ε切�尺ㄓ征祁杳.例人
+,˙ㄓ丙閏都丫Γ歪久迴證新鴛織,訶瓷歪常Η荐蜥,久迴姍抆摺證ㄩ嘟媼; 申
+亭迆莊夷β迴槳久迴詖亭,專砠慘參,外拖ㄈ稀甸ˊ刖w含丘削樺涿永ο修,睫
+祖w蜥征戊紜鯛睥瓷昆淑炬謙,人�杭唉弈凰昌修科弈昆瘩交亭氫�揖,產半Ε
+ο閏籀子稀河漳球Γ鴨菅.
+
+ 牽序偎侵產ㄒ保鈕瞭希帖.士外z�迅亭宗汗β猜碌Γ歪秘╔z氏希╝,先
+巨俸叼件力Ε檮嘔; 例人借希湃樅缸鞋ρ窈枝滿: ╔ㄓ世戊序希保ㄒ貴秘征,叼
+切乃ˎ劻競; 戊征保貴秘申秘ㄒ抓征,迤亞枝階城戊洎,絆去保槳賬wΣ忠覲�
+ρ征嚇昌.╝亮賂Υ津亭宗偎侵桌囝簫肓Ε�,几漬城共及戊洎.
+
+ 盔�磴漬城,ㄓ世半ㄒ陰劻競Σ,β貴ㄒ丫ㄟ緊鈕�姍,牽序偎侵賂煤冶亭
+宗寺汗岔ㄒ妞茲,先╔戊餡�刨戊叩╝.几滿: ╔Ξ外佗炬ㄓ,ㄓ舨世悵證征絆
+ο歙漢,保巨Γw皇ㄒ炬沖征證,w皇位歷征證.╝例人牽序初訛ㄓ世簑址腎敖
+征偎侵昆熒志滿濟保戊及征.
+
+ ㄒ碌,把伊樅怫漬城,Υ津偎侵甸斜工保熔各共及,桌囝簫肓亭競征闕濮濟
+半協搽諭,工歪搽諭叩,戟麥ㄩ念閏枝ㄒ閏丫惋ㄟ緊胸鮭.保人佐鬆征亭迆ㄆ共
+莊夷ㄓβ滿: ╔亭宗簫肓決念閏簫肓保河都,搽諭簫肓保荐薯,翳俾抓迅,仆絲
+粥ㄓ寨Μ色舨切搽諭辜Υ士.╝申˙ㄓ丙閏征ˊ刖,β迴槳╔色舨切搽諭辜Υ士
+,臣疫術桌心協ㄒ參ㄖ仟.╝
+
+
+
+亭宗偎侵俸及戊洎
+
+ 牽斥Εο閏籀ㄣ尋迴槳宗您賬腰亭揭.例擋宗您賬腰,保眨賂碌儀搽諭痣交
+征嶇頭決槳賬散鉍偎侵.也隹停抆念閏餡端伶ˎ茫門嶇征杳猴ˎ縛頭w栘久ㄆㄆ
+閑決閨草瓢例,色鈕蓄瑙昌決友悵Μ槳劻戟晉瓷昂決專您ˊ尢揖揖.牽紫亭揭半
+ΘΘ外胎�于蕨委閏籀ㄓ函呢(樅怫擋滲斯筆半照斥閏籀ㄓ淑話競),眨賂滲斯筆
+逞亭麥窗征久聿稀劻亭揭褕星搽諭碌儀,杳猴ο蓄,帖綵銅髡ˎ鄉檄ˎ蕭都ㄖ炤
+弋珞申段肓示ㄤ.
+
+ 佐鬆亭迆ㄆ共莊夷決殆牠乃水硿苔楮征搽諭莊夷,產迴槳璨尋宗您賬腰戊w
+肓巨俸,先念閏端伶ㄣ尋檻ο,悵閑散鉍槳賬德遊,搽諭俸島負揖胸鮭ㄣ兮煤冶
+,亮宗您賬腰ㄣ城尺Σ例端.先仙借,天協井莽屑爽決石士外Β�人志ㄆ閑友悵
+╔傲沆╝,猖鏘˙皇�列蓄昆宦示氟蓄昆,亮塘汗�Π冶肓劻嚕瘓俾,蓄久杳猴.
+
+ 賂Υ津征搽諭亭揭,盔�磴漬城餡征�冬保賂征,�找保縛頭猜椅�炳筵巨
+么,帖綵簫肓Σ志,狐井ㄓ列布Η怫友哄睫城簫肓.睪伺�炳,搽諭亭揭ㄓ牯歪
+ㄖ紙Α惱虹睪閑,都祖睪紜悵泠征布檄綵決簫肓睪閑友悵瑙倖征綵剜決忘興,牽
+產彷睪切友哄睫城簫肓.
+
+ 旦才,半宗您賬腰碌揩ㄓ崗別楊花征痠鍚爻閑(士外畋痊ΓΡ瓜愈苔),友悵
+ο洪淑洽拎匆睪伺,盔�磴漬城璨尋閏戊Εㄒ飽,先睪伺夕人來杉牽檻ο征友悵
+Μ,璨尋ㄒ閏╔惱睢╝,先戊荐六板稱,篌ㄒ朮; 亮砠枋戊石尋吧苜,囝沼念閏
+ㄒ閏戊ο缺錢,申寨戍怫拎匆睪閑友悵俸恿β閏都祖.
+
+ ㄒ碌,賂痠鍚爻閑ο皓畋痊球巨征念閏俸咒,員閏褒砝搽諭含紜擦赳瘦順控
+枝ㄒ叼旦閥騾,几漬城色丐閑ο洪滌抓睪伺,保色念閏仗輝睪伺�,申ΒΞ外刁
+衹丫惋術閑祖計麥,睪伺絀Μ難難婪缺,彼咳ㄣ保餌比征胸鮭.
+
+ 示協劻嚕杳猴,樅怫血湃宦去.盔�磴枝漬城,牽保歪伶戟麥ㄩ征亭宗簫肓
+,ㄋ肄Γ昆麥征搽諭惱虹亭揭,包城蓄久猴啼力ㄒ掬出唔焜散鉍,興照杉抓崗別
+征痠鍚爻閑枸巡喘翌,友悵駐縛征淬泠,ㄒ鋒尊各搽諭俸島都祖,β尊各槳賬悵
+閑散競,何洮歪征,保閏球巨猜椅丕臥丫惋.
+
+ 希資Υ,ㄆ閑傲沆決井莽屑爽岔枋包嶇頭亭揭申褕星 (ΘΒ外淬啼�搽諭碌
+儀征ΘΘ外濟歪蓄久瓜�ㄖΞz),申保唧�悵泠散鉍摺唔焜散鉍ㄒ掬,先ㄆ共莊
+夷ㄓ油兮戊都丫佗晾散鉍征扼灌偎侵,保宗鉼ㄒ宗六征秘姍.佐鬆半Ρ�父舨紙
+砝丙灌閏籀Υㄈ都丫半Υ刃外征戟麥窗仆絲艮醜列蓄昆征汗炳,牽斕尋保歪╔叩
+叩棡棡╝征亭宗甲認包挫芒去.
+
+
+
+搽諭亭揭夕彆門戟麥簫肓
+
+ 牽壽亭宗裯麴搽諭惱虹征陛妳筵力Ε賦誤,鞋ρ窈枝漬城,色搽諭亭揭亭宗
+�保去外志兮戊煤冶征胸鮭.賂搽諭亭揭征ㄒ仙賁圾,ㄒ桌及切乃決恢褒征冶揭
+碌揩煤冶,申保ㄛ彥到巡,宦示及Γ半亭宗Υ仍畋賂�征秘姍,球巨碌士訪外溧
+搽諭亭揭��蹈蹈,去斥歙丐址輝.
+
+ 几漬城,偯缺佗炬決嫡您搽諭絲ㄛ彥眩出,先碌邦ㄒ仙痺彈征Εㄛ彥唔朕賂
+�征寨Μ,抓Γㄤ�,璨尋興照保都丫佗炬征借枇,先ㄈ刨戊Ε儀�痣交佗炬,
+樂泣璣樂枝半亭宗Υ戊胸鮭.例人,歪佗夔牽皇陛妳,濟保歪亭宗灌抆Υ佗炬.
+
+ 旦才,鞋ρ窈璨尋β蹙仙瓷父搽諭亭揭,先油檮嘔Ε切賂╔碌訪外嶇�ρ╝
+戊件�興.几漬城租叼亭迆征祁杳祖,Ε切夕做杉w珞納嶇學軒,先塘Ε切簽邕
+牽皇岔ㄒ保城几疫憾墅吊征亭迆借,枝ㄒ做杉碌嶇�ρΓ. 几漬城尺河ㄓ舨征
+搽諭虎虎絆端歪w皇戊祁杳征亭競,先惋帕油虎虎彥�,牽保殉轅ㄖ氫.租某半
+Θ弋ˎΘㄜ外痣交嶇頭,Ε切枝夕人做杉.ㄒ碌,盔�磴油漬城,半尺河吏橘豌
+征陛妳Σ,ㄒ鞭偕β邕偕,包城ㄓ舨惱虹�五決搽諭奢氏列,ㄒ桌窮界歷�輓駢
+鈴.
+
+ 餡隹申坏,鞋ρ窈漬城半ΔˎΡ外窗歪彆門搽諭Υ征拗炳簫肓ㄒ雜,搽諭Υ
+�夔缺決列蓄昆保絆╔簫破╝征秘姍,Ε切β夕人做杉.几漬城牽賂佐鬆亭競征
+桌Μ申坏β保璀塘征,汎唳半戊敔駐Σ辜丫友輝.先几油阿丫,ㄓ舨亭競綁wˎ
+把外枝閏逼娑神岱w惠,例人,樂β雜倖抓ㄓ世Π閏囝╔丕w斥石婀╝.
+
+ 申盔�磴沼任殆尺河征槳賬亭揭閏彆門弋ˎㄜ外,先麥窗閏戊�蹈,忌叼半
+塘外鄉檄駁犀邕征耗泠彷及沌麥碌花,唔焜Μ閏丕丫惋,杳猴衹閏半Σ刃外丕斥
+布頭.几甸斜漬城仆絲歪戊w皇簫肓汗炳,ㄏ夕色搽諭寺雜遊遊唔煤.搽諭醒詫
+簫肓,Ε切枝夕人做杉.几β彥杳半碌w叛借窗花,塘亭宗ˎ念閏決搽諭睫城簫
+肓借,亭宗Υ衹閏劻嚕,�姍保決郝河w銖,王半Εο閏籀劻蜜坏樅.丁待取外
+征Εο閏籀戊囝佗痣地!
+
+
+ +
diff --git a/src/cmd/tcs/font/bbits.c b/src/cmd/tcs/font/bbits.c new file mode 100644 index 00000000..71c9b004 --- /dev/null +++ b/src/cmd/tcs/font/bbits.c @@ -0,0 +1,89 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +enum { + Charsperfont = 157, + Void1b = (0xC6-0xA2)*Charsperfont+0x3f, + Void1e = (0xC9-0xA2)*Charsperfont - 1 , +}; + +Bitmap * +breadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr) +{ + Bitmap *bm; + Biobuf *bf; + int i, j, byt; + int nch; + long c; + uchar *b, *nbits; + int *done; + static uchar missing[32] = {0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + uchar buf[32]; + + bf = Bopen(file, OREAD); + if(bf == 0){ + fprint(2, "%s: %s: %r\n", argv0, file); + exits("bitfile open error"); + } + done = (int *)malloc(n*sizeof(done[0])); + if(done == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, n); + exits("malloc error"); + } + *doneptr = done; + byt = size/8; + nch = 0; + for(i = 0; i < n; i++){ + done[i] = 1; + nch++; + c = chars[i]; + if((c >= Void1b) && (c <= Void1e)){ + done[i] = 0; + nch--; + continue; + } + /* magic via presotto for calculating the seek */ + j = c; + if(c >= 2*Charsperfont) + j += 294; /* baffling hole between A3 and A4 */ + if(c > Void1e) + j -= 3*Charsperfont - 0x3F; + j *= byt*size; /* bytes per char */ + j += 256; /* 256 front matter */ + Bseek(bf, j, 0); + Bread(bf, buf, sizeof(missing)); + if(memcmp(buf, missing, sizeof(missing)) == 0){ + done[i] = 0; + nch--; + continue; + } + Bseek(bf, j, 0); + b = bits + i*byt; + for(j = 0; j < size; j++){ /* rows */ + Bread(bf, b, byt); + b += n*byt; + } + } + nbits = (uchar *)malloc(nch*byt*size); + if(nbits == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt); + exits("malloc error"); + } + c = 0; + for(i = 0; i < n; i++) + if(done[i]){ + for(j = 0; j < size; j++) + memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt); + c++; + } + bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0); + if(bm == 0){ + fprint(2, "%s: balloc failure\n", argv0); + exits("balloc failure"); + } + wrbitmap(bm, 0, size, nbits); + return(bm); +} diff --git a/src/cmd/tcs/font/bmap.c b/src/cmd/tcs/font/bmap.c new file mode 100644 index 00000000..7861d658 --- /dev/null +++ b/src/cmd/tcs/font/bmap.c @@ -0,0 +1,34 @@ +#include <u.h> +#include <libc.h> +#include <bio.h> +#include <libg.h> +#include "hdr.h" +#include "../big5.h" + +/* + map: put big5 for runes from..to into chars +*/ + +void +bmap(int from, int to, long *chars) +{ + long *l, *ll; + int k, k1, n; + + for(n = from; n <= to; n++) + chars[n-from] = 0; + for(l = tabbig5, ll = tabbig5+BIG5MAX; l < ll; l++) + if((*l >= from) && (*l <= to)) + chars[*l-from] = l-tabbig5; + k = 0; + k1 = 0; /* not necessary; just shuts ken up */ + for(n = from; n <= to; n++) + if(chars[n-from] == 0){ + k++; + k1 = n; + } + if(k){ + fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1); + /*exits("map problem");/**/ + } +} diff --git a/src/cmd/tcs/font/font.c b/src/cmd/tcs/font/font.c new file mode 100644 index 00000000..75e25128 --- /dev/null +++ b/src/cmd/tcs/font/font.c @@ -0,0 +1,34 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +Subfont * +bf(int n, int size, Bitmap *b, int *done) +{ + Fontchar *fc; + int i, j; + Subfont *f; + + fc = (Fontchar *)malloc(sizeof(Fontchar)*(n+1)); + if(fc == 0){ + fprint(2, "%s: fontchar malloc(%d) failure\n", argv0, sizeof(Fontchar)*(n+1)); + exits("fontchar malloc failure"); + } + j = 0; + for(i = 0; i <= n; i++){ + fc[i] = (Fontchar){j, 0, size, 0, size}; + if(done[i]) + j += size; + else + fc[i].width = 0; + } + fc[n] = (Fontchar){j, 0, size, 0, size}; + f = subfalloc(n, size, size*7/8, fc, b, ~0, ~0); + if(f == 0){ + fprint(2, "%s: falloc failure\n", argv0); + exits("falloc failure"); + } + return(f); +} diff --git a/src/cmd/tcs/font/gbits.c b/src/cmd/tcs/font/gbits.c new file mode 100644 index 00000000..6173907d --- /dev/null +++ b/src/cmd/tcs/font/gbits.c @@ -0,0 +1,137 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +/* + this file reads bdf fonts. it is mapping dependent in that the ENCODING + field is font dependent. +*/ + +static char *field(Biobuf *, char *); + +Bitmap * +greadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr) +{ + Bitmap *bm; + Biobuf *bf; + char *p, *s; + long kmin, kmax; + int i, j, byt; + int nch; + long c; + uchar *b; + int *done; + uchar *nbits; + char buf[1024]; /* big enough for one char! */ + static int dig[256] = { + ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7, + ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15, + }; + + bf = Bopen(file, OREAD); + if(bf == 0){ + fprint(2, "%s: %s: %r\n", argv0, file); + exits("bitfile open error"); + } + done = (int *)malloc(n*sizeof(done[0])); + if(done == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, n); + exits("malloc error"); + } + *doneptr = done; + memset(done, 0, n*sizeof(done[0])); + kmin = 65536; + kmax = 0; + for(i = 0; i < n; i++){ + c = chars[i]; + if(kmin > c) + kmin = c; + if(kmax < c) + kmax = c; + } + nch = 0; + byt = size/8; + for(;;){ + while(s = Brdline(bf, '\n')){ + if(strncmp(s, "STARTCHAR", 9) == 0) + break; + } + if(s == 0) + break; + s = field(bf, "ENCODING"); + c = strtol(s, (char **)0, 10); + c = (c/256 - 0xA0)*100 + (c%256 - 0xA0); + field(bf, "BITMAP"); + p = buf; + for(i = 0; i < size; i++){ /* rows */ + if((s = Brdline(bf, '\n')) == 0){ + exits("bad bdf"); + } + memcpy(p, s, 2*byt); + p += 2*byt; + } + field(bf, "ENDCHAR"); + if((c < kmin) || (c > kmax)) + continue; + for(i = 0; i < n; i++) + if(c == chars[i]){ + nch++; + done[i] = 1; + p = buf; + b = bits + i*byt; + for(i = 0; i < size; i++){ /* rows */ + for(j = 0; j < byt; j++){ + *b++ = (dig[*p]<<4) | dig[p[1]]; + p += 2; + } + b += (n-1)*byt; + } + break; + } + } + nbits = (uchar *)malloc(nch*byt*size); + if(nbits == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt); + exits("malloc error"); + } + c = 0; + for(i = 0; i < n; i++) + if(done[i]){ + for(j = 0; j < size; j++) + memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt); + c++; + } + bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0); + if(bm == 0){ + fprint(2, "%s: balloc failure\n", argv0); + exits("balloc failure"); + } + wrbitmap(bm, 0, size, nbits); + for(i = 0; i < n; i++) + if(done[i] == 0){ + /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/ + } + return(bm); +} + +static char * +field(Biobuf *bf, char *name) +{ + char *s; + int n; + + n = strlen(name); + while(s = Brdline(bf, '\n')){ + if(strncmp(s, name, n) == 0) + return(s+n); + if(strncmp(s, "ENDCHAR", 7) == 0){ + fprint(2, "%s: char missing %s field\n", argv0, name); + exits("bad bdf"); + } + } + fprint(2, "%s: char missing %s field; unexpected EOF\n", argv0, name); + exits("bad bdf"); + return(0); +} diff --git a/src/cmd/tcs/font/gmap.c b/src/cmd/tcs/font/gmap.c new file mode 100644 index 00000000..50f4e5c1 --- /dev/null +++ b/src/cmd/tcs/font/gmap.c @@ -0,0 +1,34 @@ +#include <u.h> +#include <libc.h> +#include <bio.h> +#include <libg.h> +#include "hdr.h" +#include "../gb.h" + +/* + map: put gb for runes from..to into chars +*/ + +void +gmap(int from, int to, long *chars) +{ + long *l, *ll; + int k, k1, n; + + for(n = from; n <= to; n++) + chars[n-from] = 0; + for(l = tabgb, ll = tabgb+GBMAX; l < ll; l++) + if((*l >= from) && (*l <= to)) + chars[*l-from] = l-tabgb; + k = 0; + k1 = 0; /* not necessary; just shuts ken up */ + for(n = from; n <= to; n++) + if(chars[n-from] == 0){ + k++; + k1 = n; + } + if(k){ + fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1); + /*exits("map problem");/**/ + } +} diff --git a/src/cmd/tcs/font/hdr.h b/src/cmd/tcs/font/hdr.h new file mode 100644 index 00000000..e401dc0b --- /dev/null +++ b/src/cmd/tcs/font/hdr.h @@ -0,0 +1,11 @@ +typedef Bitmap *readbitsfn(char *, int, long *, int, uchar *, int **); +typedef void mapfn(int, int, long *); + +extern Bitmap *kreadbits(char *file, int nc, long *chars, int size, uchar *bits, int **); +extern void kmap(int from, int to, long *chars); +extern Bitmap *breadbits(char *file, int nc, long *chars, int size, uchar *bits, int **); +extern void bmap(int from, int to, long *chars); +extern Bitmap *greadbits(char *file, int nc, long *chars, int size, uchar *bits, int **); +extern void gmap(int from, int to, long *chars); +extern Bitmap *qreadbits(char *file, int nc, long *chars, int size, uchar *bits, int **); +extern Subfont *bf(int n, int size, Bitmap *b, int *); diff --git a/src/cmd/tcs/font/kbits.c b/src/cmd/tcs/font/kbits.c new file mode 100644 index 00000000..325edc33 --- /dev/null +++ b/src/cmd/tcs/font/kbits.c @@ -0,0 +1,93 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +Bitmap * +kreadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr) +{ + Bitmap *bm; + Biobuf *bf; + char *p; + long kmin, kmax; + int i, j, byt; + int nch; + long c; + uchar *b; + int *done; + uchar *nbits; + static int dig[256] = { + ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7, + ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15, + }; + + bf = Bopen(file, OREAD); + if(bf == 0){ + fprint(2, "%s: %s: %r\n", argv0, file); + exits("bitfile open error"); + } + done = (int *)malloc(n*sizeof(done[0])); + if(done == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, n); + exits("malloc error"); + } + *doneptr = done; + memset(done, 0, n*sizeof(done[0])); + kmin = 65536; + kmax = 0; + for(i = 0; i < n; i++){ + c = chars[i]; + if(kmin > c) + kmin = c; + if(kmax < c) + kmax = c; + } + nch = 0; + byt = size/8; + Brdline(bf, '\n'); /* header line 1 */ + Brdline(bf, '\n'); /* header line 2 */ + while(p = (char *)Brdline(bf, '\n')){ + c = strtol(p+17, (char **)0, 10); + if((c < kmin) || (c > kmax)) + continue; + for(i = 0; i < n; i++) + if(c == chars[i]){ + nch++; + done[i] = 1; + p += 25; + b = bits + i*byt; + for(i = 0; i < size; i++){ /* rows */ + for(j = 0; j < byt; j++){ + *b++ = (dig[*p]<<4) | dig[p[1]]; + p += 2; + } + b += (n-1)*byt; + } + break; + } + } + nbits = (uchar *)malloc(nch*byt*size); + if(nbits == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt); + exits("malloc error"); + } + c = 0; + for(i = 0; i < n; i++) + if(done[i]){ + for(j = 0; j < size; j++) + memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt); + c++; + } + bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0); + if(bm == 0){ + fprint(2, "%s: balloc failure\n", argv0); + exits("balloc failure"); + } + wrbitmap(bm, 0, size, nbits); + for(i = 0; i < n; i++) + if(done[i] == 0){ + /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/ + } + return(bm); +} diff --git a/src/cmd/tcs/font/kmap.c b/src/cmd/tcs/font/kmap.c new file mode 100644 index 00000000..3266ed41 --- /dev/null +++ b/src/cmd/tcs/font/kmap.c @@ -0,0 +1,34 @@ +#include <u.h> +#include <libc.h> +#include <bio.h> +#include <libg.h> +#include "hdr.h" +#include "../kuten208.h" + +/* + map: put kuten for runes from..to into chars +*/ + +void +kmap(int from, int to, long *chars) +{ + long *l, *ll; + int k, k1, n; + + for(n = from; n <= to; n++) + chars[n-from] = 0; + for(l = tabkuten208, ll = tabkuten208+KUTEN208MAX; l < ll; l++) + if((*l >= from) && (*l <= to)) + chars[*l-from] = l-tabkuten208; + k = 0; + k1 = 0; /* not necessary; just shuts ken up */ + for(n = from; n <= to; n++) + if(chars[n-from] == 0){ + k++; + k1 = n; + } + if(k){ + fprint(2, "%s: %d/%d chars found (missing include 0x%x=%d)\n", argv0, (to-from+1-k), to-from+1, k1, k1); + /*exits("map problem");/**/ + } +} diff --git a/src/cmd/tcs/font/main.c b/src/cmd/tcs/font/main.c new file mode 100644 index 00000000..acc3ea3f --- /dev/null +++ b/src/cmd/tcs/font/main.c @@ -0,0 +1,87 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +/* + produces the bitmap for the designated han characters +*/ + +static void usage(void); +enum { Jis = 0, Big5, Gb_bdf, Gb_qw }; +enum { Size24 = 0, Size16 }; +struct { + char *names[2]; + mapfn *mfn; + readbitsfn *bfn; +} source[] = { + [Jis] { "../han/jis.bits", "../han/jis16.bits", kmap, kreadbits }, + [Big5] { "no 24 bit file", "../han/big5.16.bits", bmap, breadbits }, + [Gb_bdf] { "no 24 bit file", "../han/cclib16fs.bdf", gmap, greadbits }, + [Gb_qw] { "no 24 bit file", "no 16bit file", gmap, qreadbits }, +}; + +void +main(int argc, char **argv) +{ + int from, to; + int size = 24; + int src = Jis; + char *file = 0; + long nc, nb; + int x; + uchar *bits; + long *chars; + int raw = 0; + Bitmap *b, *b1; + Subfont *f; + int *found; + + ARGBEGIN{ + case 'f': file = ARGF(); break; + case 'r': raw = 1; break; + case '5': src = Big5; break; + case 's': size = 16; break; + case 'g': src = Gb_bdf; break; + case 'q': src = Gb_qw; break; + default: usage(); + }ARGEND + if(file == 0) + file = source[src].names[(size==24)? Size24:Size16]; + if(argc != 2) + usage(); + from = strtol(argv[0], (char **)0, 0); + to = strtol(argv[1], (char **)0, 0); + binit(0, 0, "fontgen"); + nc = to-from+1; + nb = size*size/8; /* bytes per char */ + nb *= nc; + bits = (uchar *)malloc(nb); + chars = (long *)malloc(sizeof(long)*nc); + found = (int *)malloc(sizeof(found[0])*nc); + if(bits == 0 || chars == 0){ + fprint(2, "%s: couldn't malloc %d bytes for %d chars\n", argv0, nb, nc); + exits("out of memory"); + } + if(raw){ + for(x = from; x <= to; x++) + chars[x-from] = x; + } else + source[src].mfn(from, to, chars); + memset(bits, 0, nb); + b = source[src].bfn(file, nc, chars, size, bits, &found); + b1 = balloc(b->r, b->ldepth); + bitblt(b1, b1->r.min, b, b->r, S); + f = bf(nc, size, b1, found); + wrbitmapfile(1, b); + wrsubfontfile(1, f);/**/ + exits(0); +} + +static void +usage(void) +{ + fprint(2, "Usage: %s [-s] from to\n", argv0); + exits("usage"); +} diff --git a/src/cmd/tcs/font/merge.c b/src/cmd/tcs/font/merge.c new file mode 100644 index 00000000..35a5db39 --- /dev/null +++ b/src/cmd/tcs/font/merge.c @@ -0,0 +1,127 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> + +static void usage(void); +static void snarf(char *, int); +static void choose(Fontchar *, Bitmap *, int, int, int); +struct { + char *name; + Bitmap *bm; + Subfont *sf; +} ft[1024]; +int nf; + +void +main(int argc, char **argv) +{ + int i, errs; + Fontchar *fc; + Bitmap *b; + int nc, ht, as; + Subfont *f; + + binit(0, 0, "font merge"); + if(argc < 1) + usage(); + nf = argc-1; + for(i = 0; i < nf; i++) + snarf(argv[i+1], i); + nc = ft[0].sf->n; + ht = ft[0].sf->height; + as = ft[0].sf->ascent; + errs = 0; + for(i = 0; i < nf; i++){ + if(nc < ft[i].sf->n) nc = ft[i].sf->n; + if(ht != ft[1].sf->height){ + fprint(2, "%s: %s.height=%d (!= %s.height=%d)\n", argv[0], + ft[i].name, ft[i].sf->height, ft[0].name, ht); + errs = 1; + } + if(as != ft[1].sf->ascent){ + fprint(2, "%s: %s.ascent=%d (!= %s.ascent=%d)\n", argv[0], + ft[i].name, ft[i].sf->ascent, ft[0].name, ht); + errs = 1; + } + } + if(errs) + exits("param mismatch"); + fc = (Fontchar *)malloc(nc*sizeof(Fontchar)); + b = balloc(Rect(0, 0, nc*64, ht), ft[0].bm->ldepth); + if(b == 0 || fc == 0){ + fprint(2, "%s: couldn't malloc %d chars\n", argv0, nc); + exits("out of memory"); + } + bitblt(b, b->r.min, b, b->r, Zero); + choose(fc, b, nc, ht, as); + wrbitmapfile(1, b); +bitblt(&screen, screen.r.min, b, b->r, S); bflush();sleep(5000); + f = subfalloc(nc, ht, as, fc, b, ~0, ~0); + wrsubfontfile(1, f); + exits(0); +} + +static void +usage(void) +{ + fprint(2, "Usage: %s file ...\n", argv0); + exits("usage"); +} + +static void +snarf(char *name, int i) +{ + int fd; + Bitmap *b; + + ft[i].name = name; + if((fd = open(name, OREAD)) < 0){ + perror(name); + exits("font read"); + } + if((b = rdbitmapfile(fd)) == 0){ + fprint(2, "rdbitmapfile failed\n"); + exits("font read"); + } + if((ft[i].bm = balloc(b->r, b->ldepth)) == 0){ + fprint(2, "ballocsnarf failed\n"); + exits("font read"); + } + bitblt(ft[i].bm, b->r.min, b, b->r, S); + if((ft[i].sf = rdsubfontfile(fd, b)) == 0){ + fprint(2, "rdsubfontfile failed\n"); + exits("font read"); + } + close(fd); +} + +static void +choose(Fontchar *f, Bitmap *b, int nc, int ht, int as) +{ + int j; + Fontchar *info; + int lastx = 0; + int w, n; + + for(n = 0; n < nc; n++, f++){ + f->x = lastx; + for(j = 0; j < nf; j++){ + if(n >= ft[j].sf->n) + continue; + info = ft[j].sf->info; + if(info[n+1].x != info[n].x) + goto found; + } + continue; + found: + f->left = info[n].left; + f->top = info[n].top; + f->bottom = info[n].bottom; + f->width = info[n].width; + w = info[n+1].x - info[n].x; + bitblt(b, Pt(0, lastx), ft[j].bm, Rect(0, info[n].x, ht, info[n+1].x), S); + lastx += w; + } + f->x = lastx; +} diff --git a/src/cmd/tcs/font/mkfile b/src/cmd/tcs/font/mkfile new file mode 100644 index 00000000..0184be9b --- /dev/null +++ b/src/cmd/tcs/font/mkfile @@ -0,0 +1,103 @@ +<$PLAN9/src/mkhdr +NPROC=3 + +OBJ=main.$O font.$O \ + kmap.$O kbits.$O kuten208.$O \ + bmap.$O bbits.$O big5.$O \ + gmap.$O gbits.$O qbits.$O gb.$O + +$O.out: $OBJ + $LD $prereq -lbio -lg + +%.$O: %.c + $CC -w $stem.c + +$O: hdr.h + +kuten208.$O: ../kuten208.c + $CC -I.. -w ../kuten208.c +big5.$O: ../big5.c + $CC -I.. -w ../big5.c +gb.$O: ../gb.c + $CC -I.. -w ../gb.c + +kuten208.$O kmap.$O: ../kuten208.h +big5.$O bmap.$O: ../big5.h +gb.$O gmap.$O: ../gb.h + +clean:V: + rm -f [$OS].out *.[$OS] y.tab.? rc.* + +poot:V: merge + merge /lib/font/bit/gb/*.7000.24 > /dev/null + +merge: merge.c + $CC -w merge.c && vl -o merge merge.$O && rm merge.$O + +fonts:V: v.out rc.jis rc.big5 + jis.rc + big5.rc + +rc.jis:VQD: + awk 'BEGIN { + fontsize = 512 # set this to chars/subfont + dest = "/lib/font/bit/jis" + print "#!/bin/rc" + printf "v.out -s 0x3000 0x303f > %s/jis3000.16\n", dest + printf "v.out -s 0x30a1 0x30fe > %s/katakana.16\n", dest + printf "v.out -s 0x3041 0x309e > %s/hiragana.16\n", dest + printf "v.out 0x3000 0x303f > %s/jis3000.24\n", dest + printf "v.out 0x30a1 0x30fe > %s/katakana.24\n", dest + printf "v.out 0x3041 0x309e > %s/hiragana.24\n", dest + for(i = 19968; i < 40865; i += fontsize) + printf "v.out -s 0x%x 0x%x > %s/jis%x.16\n", i, i+fontsize-1, dest, i + for(i = 19968; i < 40865; i += fontsize) + printf "v.out 0x%x 0x%x > %s/jis%x.24\n", i, i+fontsize-1, dest, i + exit + }' > $target + chmod 775 $target + +rc.big5:VQD: + awk 'BEGIN { + fontsize = 512 # set this to chars/subfont + dest = "/lib/font/bit/big5" + print "#!/bin/rc" + for(i = 19968; i < 40869; i += fontsize) + printf "v.out -5 -s 0x%x 0x%x > %s/%x.16\n", i, i+fontsize-1, dest, i + exit + }' > $target + chmod 775 $target + +rc.gb:VQD: + fn g{ + x=$1 + y=$2 + z=$3 + awk 'BEGIN { + fontsize = 512 # set this to chars/subfont + dest = "/lib/font/bit/gb/'$"x'." + opt = "'$"y'" + sz = "'$"z'" + print "#!/bin/rc" + printf "v.out %s 0x3000 0x303f > %s3000.%s\n", opt, dest, sz + printf "v.out %s 0x30a1 0x30fe > %skatakana.%s\n", opt, dest, sz + printf "v.out %s 0x3041 0x309e > %shiragana.%s\n", opt, dest, sz + printf "v.out %s 0x3100 0x312f > %sbopomofo.%s\n", opt, dest, sz + printf "v.out %s 0x3200 0x32ff > %s3200.%s\n", opt, dest, sz + for(i = 19968; i < 40869; i += fontsize) + printf "v.out %s 0x%x 0x%x > %s%x.%s\n", opt, i, i+fontsize-1, dest, i, sz + exit + }' + } + { + g TradSong '-q -f ../han/cfan24.ccf' 24 + g FangSong '-q -f ../han/cfang24.ccf' 24 + g Hei '-q -f ../han/chei24.ccf' 24 + g Kai '-q -f ../han/ckai24.ccf' 24 + g Song '-q -f ../han/csong24.ccf' 24 + g Song '-g -s -f ../han/cclib16st.bdf' 16 + g FangSong '-g -s -f ../han/cclib16fs.bdf' 16 + } > $target + chmod 775 $target + +<$PLAN9/src/mkmany diff --git a/src/cmd/tcs/font/qbits.c b/src/cmd/tcs/font/qbits.c new file mode 100644 index 00000000..58cbd925 --- /dev/null +++ b/src/cmd/tcs/font/qbits.c @@ -0,0 +1,93 @@ +#include <u.h> +#include <libc.h> +#include <libg.h> +#include <bio.h> +#include "hdr.h" + +/* quwei encoding for gb */ + +Bitmap * +qreadbits(char *file, int n, long *chars, int size, uchar *bits, int **doneptr) +{ + Bitmap *bm; + Biobuf *bf; + char *p; + long kmin, kmax; + int i, j, byt; + int nch; + long c; + uchar *b; + int *done; + uchar *nbits; + static int dig[256] = { + ['0'] 0, ['1'] 1, ['2'] 2, ['3'] 3, ['4'] 4, ['5'] 5, ['6'] 6, ['7'] 7, + ['8'] 8, ['9'] 9, ['a'] 10, ['b'] 11, ['c'] 12, ['d'] 13, ['e'] 14, ['f'] 15, + }; + + bf = Bopen(file, OREAD); + if(bf == 0){ + fprint(2, "%s: %s: %r\n", argv0, file); + exits("bitfile open error"); + } + done = (int *)malloc(n*sizeof(done[0])); + if(done == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, n); + exits("malloc error"); + } + *doneptr = done; + memset(done, 0, n*sizeof(done[0])); + kmin = 65536; + kmax = 0; + for(i = 0; i < n; i++){ + c = chars[i]; + if(kmin > c) + kmin = c; + if(kmax < c) + kmax = c; + } + nch = 0; + byt = size/8; + while(p = (char *)Brdline(bf, '\n')){ + c = (p[0]-'0')*1000 + (p[1]-'0')*100 + (p[2]-'0')*10 + (p[3]-'0'); + if((c < kmin) || (c > kmax)) + continue; + for(i = 0; i < n; i++) + if(c == chars[i]){ + nch++; + done[i] = 1; + p += 5; + b = bits + i*byt; + for(i = 0; i < size; i++){ /* rows */ + for(j = 0; j < byt; j++){ + *b++ = (dig[*p]<<4) | dig[p[1]]; + p += 2; + } + b += (n-1)*byt; + } + break; + } + } + nbits = (uchar *)malloc(nch*byt*size); + if(nbits == 0){ + fprint(2, "%s: malloc error (%d bytes)\n", argv0, nch*byt); + exits("malloc error"); + } + c = 0; + for(i = 0; i < n; i++) + if(done[i]){ + for(j = 0; j < size; j++) + memmove(nbits+c*byt+j*nch*byt, bits+i*byt+j*n*byt, byt); + c++; + } + bm = balloc((Rectangle){(Point){0, 0}, (Point){nch*size, size}}, 0); + if(bm == 0){ + fprint(2, "%s: balloc failure\n", argv0); + exits("balloc failure"); + } + wrbitmap(bm, 0, size, nbits); + for(i = 0; i < n; i++) + if(done[i] == 0){ + /*fprint(2, "char 0x%x (%d) not found\n", chars[i], chars[i]);/**/ + } + return(bm); +} diff --git a/src/cmd/tcs/gb.c b/src/cmd/tcs/gb.c new file mode 100644 index 00000000..b149b8fc --- /dev/null +++ b/src/cmd/tcs/gb.c @@ -0,0 +1,1104 @@ +#include "gb.h" + +long tabgb[GBMAX] = { + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x3000,0x3001,0x3002, +0x30fb,0x02c9,0x02c7,0x00a8,0x3003,0x3005,0x2015,0x301c, +0x2225,0x2026,0x2018,0x2019,0x201c,0x201d,0x3014,0x3015, +0x3008,0x3009,0x300a,0x300b,0x300c,0x300d,0x300e,0x300f, +0x3016,0x3017,0x3010,0x3011,0x00b1,0x00d7,0x00f7,0x2236, +0x2227,0x2228,0x2211,0x220f,0x222a,0x2229,0x2208,0x2237, +0x221a,0x22a5,0x2225,0x2220,0x2312,0x2299,0x222b,0x222e, +0x2261,0x224c,0x2248,0x223d,0x221d,0x2260,0x226e,0x226f, +0x2264,0x2265,0x221e,0x2235,0x2234,0x2642,0x2640,0x00b0, +0x2032,0x2033,0x2103,0xff04,0x00a4,0xffe0,0xffe1,0x2030, +0x00a7,0x2116,0x2606,0x2605,0x25cb,0x25cf,0x25ce,0x25c7, +0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x203b,0x2192,0x2190, +0x2191,0x2193,0x3013, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x2488,0x2489,0x248a,0x248b,0x248c,0x248d,0x248e, +0x248f,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496, +0x2497,0x2498,0x2499,0x249a,0x249b,0x2474,0x2475,0x2476, +0x2477,0x2478,0x2479,0x247a,0x247b,0x247c,0x247d,0x247e, +0x247f,0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486, +0x2487,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466, +0x2467,0x2468,0x2469, -1, -1,0x3220,0x3221,0x3222, +0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, -1, + -1,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166, +0x2167,0x2168,0x2169,0x216a,0x216b, -1, -1, -1, + -1, -1, -1, -1, -1,0xff01,0xff02,0xff03, +0xffe5,0xff05,0xff06,0xff07,0xff08,0xff09,0xff0a,0xff0b, +0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13, +0xff14,0xff15,0xff16,0xff17,0xff18,0xff19,0xff1a,0xff1b, +0xff1c,0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xff23, +0xff24,0xff25,0xff26,0xff27,0xff28,0xff29,0xff2a,0xff2b, +0xff2c,0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,0xff33, +0xff34,0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a,0xff3b, +0xff3c,0xff3d,0xff3e,0xff3f,0xff40,0xff41,0xff42,0xff43, +0xff44,0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b, +0xff4c,0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53, +0xff54,0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a,0xff5b, +0xff5c,0xff5d,0xffe3, -1, -1, -1, -1, -1, + -1,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, +0x3048,0x3049,0x304a,0x304b,0x304c,0x304d,0x304e,0x304f, +0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, +0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f, +0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, +0x3068,0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f, +0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, +0x3078,0x3079,0x307a,0x307b,0x307c,0x307d,0x307e,0x307f, +0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, +0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f, +0x3090,0x3091,0x3092,0x3093, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x30a1,0x30a2,0x30a3, +0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab, +0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3, +0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb, +0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3, +0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb, +0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3, +0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db, +0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3, +0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb, +0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3, +0x30f4,0x30f5,0x30f6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f, +0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8, +0x03a9, -1, -1, -1, -1, -1, -1, -1, + -1,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7, +0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf, +0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8, +0x03c9, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x0101,0x00e1,0x01ce,0x00e0,0x0113,0x00e9,0x011b, +0x00e8,0x012b,0x00ed,0x01d0,0x00ec,0x014d,0x00f3,0x01d2, +0x00f2,0x016b,0x00fa,0x01d4,0x00f9,0x01d6,0x01d8,0x01da, +0x01dc,0x00fc,0x00ea, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x3105,0x3106,0x3107, +0x3108,0x3109,0x310a,0x310b,0x310c,0x310d,0x310e,0x310f, +0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117, +0x3118,0x3119,0x311a,0x311b,0x311c,0x311d,0x311e,0x311f, +0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127, +0x3128,0x3129, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +0x2500,0x2501,0x2502,0x2503,0x2504,0x2505,0x2506,0x2507, +0x2508,0x2509,0x250a,0x250b,0x250c,0x250d,0x250e,0x250f, +0x2510,0x2511,0x2512,0x2513,0x2514,0x2515,0x2516,0x2517, +0x2518,0x2519,0x251a,0x251b,0x251c,0x251d,0x251e,0x251f, +0x2520,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527, +0x2528,0x2529,0x252a,0x252b,0x252c,0x252d,0x252e,0x252f, +0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537, +0x2538,0x2539,0x253a,0x253b,0x253c,0x253d,0x253e,0x253f, +0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547, +0x2548,0x2549,0x254a,0x254b, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x554a,0x963f,0x57c3,0x6328,0x54ce,0x5509,0x54c0, +0x7691,0x764c,0x853c,0x77ee,0x827e,0x788d,0x7231,0x9698, +0x978d,0x6c28,0x5b89,0x4ffa,0x6309,0x6697,0x5cb8,0x80fa, +0x6848,0x80ae,0x6602,0x76ce,0x51f9,0x6556,0x71ac,0x7ff1, +0x8884,0x50b2,0x5965,0x61ca,0x6fb3,0x82ad,0x634c,0x6252, +0x53ed,0x5427,0x7b06,0x516b,0x75a4,0x5df4,0x62d4,0x8dcb, +0x9776,0x628a,0x8019,0x575d,0x9738,0x7f62,0x7238,0x767d, +0x67cf,0x767e,0x6446,0x4f70,0x8d25,0x62dc,0x7a17,0x6591, +0x73ed,0x642c,0x6273,0x822c,0x9881,0x677f,0x7248,0x626e, +0x62cc,0x4f34,0x74e3,0x534a,0x529e,0x7eca,0x90a6,0x5e2e, +0x6886,0x699c,0x8180,0x7ed1,0x68d2,0x78c5,0x868c,0x9551, +0x508d,0x8c24,0x82de,0x80de,0x5305,0x8912,0x5265, -1, + -1, -1, -1, -1, -1,0x8584,0x96f9,0x4fdd, +0x5821,0x9971,0x5b9d,0x62b1,0x62a5,0x66b4,0x8c79,0x9c8d, +0x7206,0x676f,0x7891,0x60b2,0x5351,0x5317,0x8f88,0x80cc, +0x8d1d,0x94a1,0x500d,0x72c8,0x5907,0x60eb,0x7119,0x88ab, +0x5954,0x82ef,0x672c,0x7b28,0x5d29,0x7ef7,0x752d,0x6cf5, +0x8e66,0x8ff8,0x903c,0x9f3b,0x6bd4,0x9119,0x7b14,0x5f7c, +0x78a7,0x84d6,0x853d,0x6bd5,0x6bd9,0x6bd6,0x5e01,0x5e87, +0x75f9,0x95ed,0x655d,0x5f0a,0x5fc5,0x8f9f,0x58c1,0x81c2, +0x907f,0x965b,0x97ad,0x8fb9,0x7f16,0x8d2c,0x6241,0x4fbf, +0x53d8,0x535e,0x8fa8,0x8fa9,0x8fab,0x904d,0x6807,0x5f6a, +0x8198,0x8868,0x9cd6,0x618b,0x522b,0x762a,0x5f6c,0x658c, +0x6fd2,0x6ee8,0x5bbe,0x6448,0x5175,0x51b0,0x67c4,0x4e19, +0x79c9,0x997c,0x70b3, -1, -1, -1, -1, -1, + -1,0x75c5,0x5e76,0x73bb,0x83e0,0x64ad,0x62e8,0x94b5, +0x6ce2,0x535a,0x52c3,0x640f,0x94c2,0x7b94,0x4f2f,0x5e1b, +0x8236,0x8116,0x818a,0x6e24,0x6cca,0x9a73,0x6355,0x535c, +0x54fa,0x8865,0x57e0,0x4e0d,0x5e03,0x6b65,0x7c3f,0x90e8, +0x6016,0x64e6,0x731c,0x88c1,0x6750,0x624d,0x8d22,0x776c, +0x8e29,0x91c7,0x5f69,0x83dc,0x8521,0x9910,0x53c2,0x8695, +0x6b8b,0x60ed,0x60e8,0x707f,0x82cd,0x8231,0x4ed3,0x6ca7, +0x85cf,0x64cd,0x7cd9,0x69fd,0x66f9,0x8349,0x5395,0x7b56, +0x4fa7,0x518c,0x6d4b,0x5c42,0x8e6d,0x63d2,0x53c9,0x832c, +0x8336,0x67e5,0x78b4,0x643d,0x5bdf,0x5c94,0x5dee,0x8be7, +0x62c6,0x67f4,0x8c7a,0x6400,0x63ba,0x8749,0x998b,0x8c17, +0x7f20,0x94f2,0x4ea7,0x9610,0x98a4,0x660c,0x7316, -1, + -1, -1, -1, -1, -1,0x573a,0x5c1d,0x5e38, +0x957f,0x507f,0x80a0,0x5382,0x655e,0x7545,0x5531,0x5021, +0x8d85,0x6284,0x949e,0x671d,0x5632,0x6f6e,0x5de2,0x5435, +0x7092,0x8f66,0x626f,0x64a4,0x63a3,0x5f7b,0x6f88,0x90f4, +0x81e3,0x8fb0,0x5c18,0x6668,0x5ff1,0x6c89,0x9648,0x8d81, +0x886c,0x6491,0x79f0,0x57ce,0x6a59,0x6210,0x5448,0x4e58, +0x7a0b,0x60e9,0x6f84,0x8bda,0x627f,0x901e,0x9a8b,0x79e4, +0x5403,0x75f4,0x6301,0x5319,0x6c60,0x8fdf,0x5f1b,0x9a70, +0x803b,0x9f7f,0x4f88,0x5c3a,0x8d64,0x7fc5,0x65a5,0x70bd, +0x5145,0x51b2,0x866b,0x5d07,0x5ba0,0x62bd,0x916c,0x7574, +0x8e0c,0x7a20,0x6101,0x7b79,0x4ec7,0x7ef8,0x7785,0x4e11, +0x81ed,0x521d,0x51fa,0x6a71,0x53a8,0x8e87,0x9504,0x96cf, +0x6ec1,0x9664,0x695a, -1, -1, -1, -1, -1, + -1,0x7840,0x50a8,0x77d7,0x6410,0x89e6,0x5904,0x63e3, +0x5ddd,0x7a7f,0x693d,0x4f20,0x8239,0x5598,0x4e32,0x75ae, +0x7a97,0x5e62,0x5e8a,0x95ef,0x521b,0x5439,0x708a,0x6376, +0x9524,0x5782,0x6625,0x693f,0x9187,0x5507,0x6df3,0x7eaf, +0x8822,0x6233,0x7ef0,0x75b5,0x8328,0x78c1,0x96cc,0x8f9e, +0x6148,0x74f7,0x8bcd,0x6b64,0x523a,0x8d50,0x6b21,0x806a, +0x8471,0x56f1,0x5306,0x4ece,0x4e1b,0x51d1,0x7c97,0x918b, +0x7c07,0x4fc3,0x8e7f,0x7be1,0x7a9c,0x6467,0x5d14,0x50ac, +0x8106,0x7601,0x7cb9,0x6dec,0x7fe0,0x6751,0x5b58,0x5bf8, +0x78cb,0x64ae,0x6413,0x63aa,0x632b,0x9519,0x642d,0x8fbe, +0x7b54,0x7629,0x6253,0x5927,0x5446,0x6b79,0x50a3,0x6234, +0x5e26,0x6b86,0x4ee3,0x8d37,0x888b,0x5f85,0x902e, -1, + -1, -1, -1, -1, -1,0x6020,0x803d,0x62c5, +0x4e39,0x5355,0x90f8,0x63b8,0x80c6,0x65e6,0x6c2e,0x4f46, +0x60ee,0x6de1,0x8bde,0x5f39,0x86cb,0x5f53,0x6321,0x515a, +0x8361,0x6863,0x5200,0x6363,0x8e48,0x5012,0x5c9b,0x7977, +0x5bfc,0x5230,0x7a3b,0x60bc,0x9053,0x76d7,0x5fb7,0x5f97, +0x7684,0x8e6c,0x706f,0x767b,0x7b49,0x77aa,0x51f3,0x9093, +0x5824,0x4f4e,0x6ef4,0x8fea,0x654c,0x7b1b,0x72c4,0x6da4, +0x7fdf,0x5ae1,0x62b5,0x5e95,0x5730,0x8482,0x7b2c,0x5e1d, +0x5f1f,0x9012,0x7f14,0x98a0,0x6382,0x6ec7,0x7898,0x70b9, +0x5178,0x975b,0x57ab,0x7535,0x4f43,0x7538,0x5e97,0x60e6, +0x5960,0x6dc0,0x6bbf,0x7889,0x53fc,0x96d5,0x51cb,0x5201, +0x6389,0x540a,0x9493,0x8c03,0x8dcc,0x7239,0x789f,0x8776, +0x8fed,0x8c0d,0x53e0, -1, -1, -1, -1, -1, + -1,0x4e01,0x76ef,0x53ee,0x9489,0x9876,0x9f0e,0x952d, +0x5b9a,0x8ba2,0x4e22,0x4e1c,0x51ac,0x8463,0x61c2,0x52a8, +0x680b,0x4f97,0x606b,0x51bb,0x6d1e,0x515c,0x6296,0x6597, +0x9661,0x8c46,0x9017,0x75d8,0x90fd,0x7763,0x6bd2,0x728a, +0x72ec,0x8bfb,0x5835,0x7779,0x8d4c,0x675c,0x9540,0x809a, +0x5ea6,0x6e21,0x5992,0x7aef,0x77ed,0x953b,0x6bb5,0x65ad, +0x7f0e,0x5806,0x5151,0x961f,0x5bf9,0x58a9,0x5428,0x8e72, +0x6566,0x987f,0x56e4,0x949d,0x76fe,0x9041,0x6387,0x54c6, +0x591a,0x593a,0x579b,0x8eb2,0x6735,0x8dfa,0x8235,0x5241, +0x60f0,0x5815,0x86fe,0x5ce8,0x9e45,0x4fc4,0x989d,0x8bb9, +0x5a25,0x6076,0x5384,0x627c,0x904f,0x9102,0x997f,0x6069, +0x800c,0x513f,0x8033,0x5c14,0x9975,0x6d31,0x4e8c, -1, + -1, -1, -1, -1, -1,0x8d30,0x53d1,0x7f5a, +0x7b4f,0x4f10,0x4e4f,0x9600,0x6cd5,0x73d0,0x85e9,0x5e06, +0x756a,0x7ffb,0x6a0a,0x77fe,0x9492,0x7e41,0x51e1,0x70e6, +0x53cd,0x8fd4,0x8303,0x8d29,0x72af,0x996d,0x6cdb,0x574a, +0x82b3,0x65b9,0x80aa,0x623f,0x9632,0x59a8,0x4eff,0x8bbf, +0x7eba,0x653e,0x83f2,0x975e,0x5561,0x98de,0x80a5,0x532a, +0x8bfd,0x5420,0x80ba,0x5e9f,0x6cb8,0x8d39,0x82ac,0x915a, +0x5429,0x6c1b,0x5206,0x7eb7,0x575f,0x711a,0x6c7e,0x7c89, +0x594b,0x4efd,0x5fff,0x6124,0x7caa,0x4e30,0x5c01,0x67ab, +0x8702,0x5cf0,0x950b,0x98ce,0x75af,0x70fd,0x9022,0x51af, +0x7f1d,0x8bbd,0x5949,0x51e4,0x4f5b,0x5426,0x592b,0x6577, +0x80a4,0x5b75,0x6276,0x62c2,0x8f90,0x5e45,0x6c1f,0x7b26, +0x4f0f,0x4fd8,0x670d, -1, -1, -1, -1, -1, + -1,0x6d6e,0x6daa,0x798f,0x88b1,0x5f17,0x752b,0x629a, +0x8f85,0x4fef,0x91dc,0x65a7,0x812f,0x8151,0x5e9c,0x8150, +0x8d74,0x526f,0x8986,0x8d4b,0x590d,0x5085,0x4ed8,0x961c, +0x7236,0x8179,0x8d1f,0x5bcc,0x8ba3,0x9644,0x5987,0x7f1a, +0x5490,0x5676,0x560e,0x8be5,0x6539,0x6982,0x9499,0x76d6, +0x6e89,0x5e72,0x7518,0x6746,0x67d1,0x7aff,0x809d,0x8d76, +0x611f,0x79c6,0x6562,0x8d63,0x5188,0x521a,0x94a2,0x7f38, +0x809b,0x7eb2,0x5c97,0x6e2f,0x6760,0x7bd9,0x768b,0x9ad8, +0x818f,0x7f94,0x7cd5,0x641e,0x9550,0x7a3f,0x544a,0x54e5, +0x6b4c,0x6401,0x6208,0x9e3d,0x80f3,0x7599,0x5272,0x9769, +0x845b,0x683c,0x86e4,0x9601,0x9694,0x94ec,0x4e2a,0x5404, +0x7ed9,0x6839,0x8ddf,0x8015,0x66f4,0x5e9a,0x7fb9, -1, + -1, -1, -1, -1, -1,0x57c2,0x803f,0x6897, +0x5de5,0x653b,0x529f,0x606d,0x9f9a,0x4f9b,0x8eac,0x516c, +0x5bab,0x5f13,0x5de9,0x6c5e,0x62f1,0x8d21,0x5171,0x94a9, +0x52fe,0x6c9f,0x82df,0x72d7,0x57a2,0x6784,0x8d2d,0x591f, +0x8f9c,0x83c7,0x5495,0x7b8d,0x4f30,0x6cbd,0x5b64,0x59d1, +0x9f13,0x53e4,0x86ca,0x9aa8,0x8c37,0x80a1,0x6545,0x987e, +0x56fa,0x96c7,0x522e,0x74dc,0x5250,0x5be1,0x6302,0x8902, +0x4e56,0x62d0,0x602a,0x68fa,0x5173,0x5b98,0x51a0,0x89c2, +0x7ba1,0x9986,0x7f50,0x60ef,0x704c,0x8d2f,0x5149,0x5e7f, +0x901b,0x7470,0x89c4,0x572d,0x7845,0x5f52,0x9f9f,0x95fa, +0x8f68,0x9b3c,0x8be1,0x7678,0x6842,0x67dc,0x8dea,0x8d35, +0x523d,0x8f8a,0x6eda,0x68cd,0x9505,0x90ed,0x56fd,0x679c, +0x88f9,0x8fc7,0x54c8, -1, -1, -1, -1, -1, + -1,0x9ab8,0x5b69,0x6d77,0x6c26,0x4ea5,0x5bb3,0x9a87, +0x9163,0x61a8,0x90af,0x97e9,0x542b,0x6db5,0x5bd2,0x51fd, +0x558a,0x7f55,0x7ff0,0x64bc,0x634d,0x65f1,0x61be,0x608d, +0x710a,0x6c57,0x6c49,0x592f,0x676d,0x822a,0x58d5,0x568e, +0x8c6a,0x6beb,0x90dd,0x597d,0x8017,0x53f7,0x6d69,0x5475, +0x559d,0x8377,0x83cf,0x6838,0x79be,0x548c,0x4f55,0x5408, +0x76d2,0x8c89,0x9602,0x6cb3,0x6db8,0x8d6b,0x8910,0x9e64, +0x8d3a,0x563f,0x9ed1,0x75d5,0x5f88,0x72e0,0x6068,0x54fc, +0x4ea8,0x6a2a,0x8861,0x6052,0x8f70,0x54c4,0x70d8,0x8679, +0x9e3f,0x6d2a,0x5b8f,0x5f18,0x7ea2,0x5589,0x4faf,0x7334, +0x543c,0x539a,0x5019,0x540e,0x547c,0x4e4e,0x5ffd,0x745a, +0x58f6,0x846b,0x80e1,0x8774,0x72d0,0x7cca,0x6e56, -1, + -1, -1, -1, -1, -1,0x5f27,0x864e,0x552c, +0x62a4,0x4e92,0x6caa,0x6237,0x82b1,0x54d7,0x534e,0x733e, +0x6ed1,0x753b,0x5212,0x5316,0x8bdd,0x69d0,0x5f8a,0x6000, +0x6dee,0x574f,0x6b22,0x73af,0x6853,0x8fd8,0x7f13,0x6362, +0x60a3,0x5524,0x75ea,0x8c62,0x7115,0x6da3,0x5ba6,0x5e7b, +0x8352,0x614c,0x9ec4,0x78fa,0x8757,0x7c27,0x7687,0x51f0, +0x60f6,0x714c,0x6643,0x5e4c,0x604d,0x8c0e,0x7070,0x6325, +0x8f89,0x5fbd,0x6062,0x86d4,0x56de,0x6bc1,0x6094,0x6167, +0x5349,0x60e0,0x6666,0x8d3f,0x79fd,0x4f1a,0x70e9,0x6c47, +0x8bb3,0x8bf2,0x7ed8,0x8364,0x660f,0x5a5a,0x9b42,0x6d51, +0x6df7,0x8c41,0x6d3b,0x4f19,0x706b,0x83b7,0x6216,0x60d1, +0x970d,0x8d27,0x7978,0x51fb,0x573e,0x57fa,0x673a,0x7578, +0x7a3d,0x79ef,0x7b95, -1, -1, -1, -1, -1, + -1,0x808c,0x9965,0x8ff9,0x6fc0,0x8ba5,0x9e21,0x59ec, +0x7ee9,0x7f09,0x5409,0x6781,0x68d8,0x8f91,0x7c4d,0x96c6, +0x53ca,0x6025,0x75be,0x6c72,0x5373,0x5ac9,0x7ea7,0x6324, +0x51e0,0x810a,0x5df1,0x84df,0x6280,0x5180,0x5b63,0x4f0e, +0x796d,0x5242,0x60b8,0x6d4e,0x5bc4,0x5bc2,0x8ba1,0x8bb0, +0x65e2,0x5fcc,0x9645,0x5993,0x7ee7,0x7eaa,0x5609,0x67b7, +0x5939,0x4f73,0x5bb6,0x52a0,0x835a,0x988a,0x8d3e,0x7532, +0x94be,0x5047,0x7a3c,0x4ef7,0x67b6,0x9a7e,0x5ac1,0x6b7c, +0x76d1,0x575a,0x5c16,0x7b3a,0x95f4,0x714e,0x517c,0x80a9, +0x8270,0x5978,0x7f04,0x8327,0x68c0,0x67ec,0x78b1,0x7877, +0x62e3,0x6361,0x7b80,0x4fed,0x526a,0x51cf,0x8350,0x69db, +0x9274,0x8df5,0x8d31,0x89c1,0x952e,0x7bad,0x4ef6, -1, + -1, -1, -1, -1, -1,0x5065,0x8230,0x5251, +0x996f,0x6e10,0x6e85,0x6da7,0x5efa,0x50f5,0x59dc,0x5c06, +0x6d46,0x6c5f,0x7586,0x848b,0x6868,0x5956,0x8bb2,0x5320, +0x9171,0x964d,0x8549,0x6912,0x7901,0x7126,0x80f6,0x4ea4, +0x90ca,0x6d47,0x9a84,0x5a07,0x56bc,0x6405,0x94f0,0x77eb, +0x4fa5,0x811a,0x72e1,0x89d2,0x997a,0x7f34,0x7ede,0x527f, +0x6559,0x9175,0x8f7f,0x8f83,0x53eb,0x7a96,0x63ed,0x63a5, +0x7686,0x79f8,0x8857,0x9636,0x622a,0x52ab,0x8282,0x6854, +0x6770,0x6377,0x776b,0x7aed,0x6d01,0x7ed3,0x89e3,0x59d0, +0x6212,0x85c9,0x82a5,0x754c,0x501f,0x4ecb,0x75a5,0x8beb, +0x5c4a,0x5dfe,0x7b4b,0x65a4,0x91d1,0x4eca,0x6d25,0x895f, +0x7d27,0x9526,0x4ec5,0x8c28,0x8fdb,0x9773,0x664b,0x7981, +0x8fd1,0x70ec,0x6d78, -1, -1, -1, -1, -1, + -1,0x5c3d,0x52b2,0x8346,0x5162,0x830e,0x775b,0x6676, +0x9cb8,0x4eac,0x60ca,0x7cbe,0x7cb3,0x7ecf,0x4e95,0x8b66, +0x666f,0x9888,0x9759,0x5883,0x656c,0x955c,0x5f84,0x75c9, +0x9756,0x7adf,0x7ade,0x51c0,0x70af,0x7a98,0x63ea,0x7a76, +0x7ea0,0x7396,0x97ed,0x4e45,0x7078,0x4e5d,0x9152,0x53a9, +0x6551,0x65e7,0x81fc,0x8205,0x548e,0x5c31,0x759a,0x97a0, +0x62d8,0x72d9,0x75bd,0x5c45,0x9a79,0x83ca,0x5c40,0x5480, +0x77e9,0x4e3e,0x6cae,0x805a,0x62d2,0x636e,0x5de8,0x5177, +0x8ddd,0x8e1e,0x952f,0x4ff1,0x53e5,0x60e7,0x70ac,0x5267, +0x6350,0x9e43,0x5a1f,0x5026,0x7737,0x5377,0x7ee2,0x6485, +0x652b,0x6289,0x6398,0x5014,0x7235,0x89c9,0x51b3,0x8bc0, +0x7edd,0x5747,0x83cc,0x94a7,0x519b,0x541b,0x5cfb, -1, + -1, -1, -1, -1, -1,0x4fca,0x7ae3,0x6d5a, +0x90e1,0x9a8f,0x5580,0x5496,0x5361,0x54af,0x5f00,0x63e9, +0x6977,0x51ef,0x6168,0x520a,0x582a,0x52d8,0x574e,0x780d, +0x770b,0x5eb7,0x6177,0x7ce0,0x625b,0x6297,0x4ea2,0x7095, +0x8003,0x62f7,0x70e4,0x9760,0x5777,0x82db,0x67ef,0x68f5, +0x78d5,0x9897,0x79d1,0x58f3,0x54b3,0x53ef,0x6e34,0x514b, +0x523b,0x5ba2,0x8bfe,0x80af,0x5543,0x57a6,0x6073,0x5751, +0x542d,0x7a7a,0x6050,0x5b54,0x63a7,0x62a0,0x53e3,0x6263, +0x5bc7,0x67af,0x54ed,0x7a9f,0x82e6,0x9177,0x5e93,0x88e4, +0x5938,0x57ae,0x630e,0x8de8,0x80ef,0x5757,0x7b77,0x4fa9, +0x5feb,0x5bbd,0x6b3e,0x5321,0x7b50,0x72c2,0x6846,0x77ff, +0x7736,0x65f7,0x51b5,0x4e8f,0x76d4,0x5cbf,0x7aa5,0x8475, +0x594e,0x9b41,0x5080, -1, -1, -1, -1, -1, + -1,0x9988,0x6127,0x6e83,0x5764,0x6606,0x6346,0x56f0, +0x62ec,0x6269,0x5ed3,0x9614,0x5783,0x62c9,0x5587,0x8721, +0x814a,0x8fa3,0x5566,0x83b1,0x6765,0x8d56,0x84dd,0x5a6a, +0x680f,0x62e6,0x7bee,0x9611,0x5170,0x6f9c,0x8c30,0x63fd, +0x89c8,0x61d2,0x7f06,0x70c2,0x6ee5,0x7405,0x6994,0x72fc, +0x5eca,0x90ce,0x6717,0x6d6a,0x635e,0x52b3,0x7262,0x8001, +0x4f6c,0x59e5,0x916a,0x70d9,0x6d9d,0x52d2,0x4e50,0x96f7, +0x956d,0x857e,0x78ca,0x7d2f,0x5121,0x5792,0x64c2,0x808b, +0x7c7b,0x6cea,0x68f1,0x695e,0x51b7,0x5398,0x68a8,0x7281, +0x9ece,0x7bf1,0x72f8,0x79bb,0x6f13,0x7406,0x674e,0x91cc, +0x9ca4,0x793c,0x8389,0x8354,0x540f,0x6817,0x4e3d,0x5389, +0x52b1,0x783e,0x5386,0x5229,0x5088,0x4f8b,0x4fd0, -1, + -1, -1, -1, -1, -1,0x75e2,0x7acb,0x7c92, +0x6ca5,0x96b6,0x529b,0x7483,0x54e9,0x4fe9,0x8054,0x83b2, +0x8fde,0x9570,0x5ec9,0x601c,0x6d9f,0x5e18,0x655b,0x8138, +0x94fe,0x604b,0x70bc,0x7ec3,0x7cae,0x51c9,0x6881,0x7cb1, +0x826f,0x4e24,0x8f86,0x91cf,0x667e,0x4eae,0x8c05,0x64a9, +0x804a,0x50da,0x7597,0x71ce,0x5be5,0x8fbd,0x6f66,0x4e86, +0x6482,0x9563,0x5ed6,0x6599,0x5217,0x88c2,0x70c8,0x52a3, +0x730e,0x7433,0x6797,0x78f7,0x9716,0x4e34,0x90bb,0x9cde, +0x6dcb,0x51db,0x8d41,0x541d,0x62ce,0x73b2,0x83f1,0x96f6, +0x9f84,0x94c3,0x4f36,0x7f9a,0x51cc,0x7075,0x9675,0x5cad, +0x9886,0x53e6,0x4ee4,0x6e9c,0x7409,0x69b4,0x786b,0x998f, +0x7559,0x5218,0x7624,0x6d41,0x67f3,0x516d,0x9f99,0x804b, +0x5499,0x7b3c,0x7abf, -1, -1, -1, -1, -1, + -1,0x9686,0x5784,0x62e2,0x9647,0x697c,0x5a04,0x6402, +0x7bd3,0x6f0f,0x964b,0x82a6,0x5362,0x9885,0x5e90,0x7089, +0x63b3,0x5364,0x864f,0x9c81,0x9e93,0x788c,0x9732,0x8def, +0x8d42,0x9e7f,0x6f5e,0x7984,0x5f55,0x9646,0x622e,0x9a74, +0x5415,0x94dd,0x4fa3,0x65c5,0x5c65,0x5c61,0x7f15,0x8651, +0x6c2f,0x5f8b,0x7387,0x6ee4,0x7eff,0x5ce6,0x631b,0x5b6a, +0x6ee6,0x5375,0x4e71,0x63a0,0x7565,0x62a1,0x8f6e,0x4f26, +0x4ed1,0x6ca6,0x7eb6,0x8bba,0x841d,0x87ba,0x7f57,0x903b, +0x9523,0x7ba9,0x9aa1,0x88f8,0x843d,0x6d1b,0x9a86,0x7edc, +0x5988,0x9ebb,0x739b,0x7801,0x8682,0x9a6c,0x9a82,0x561b, +0x5417,0x57cb,0x4e70,0x9ea6,0x5356,0x8fc8,0x8109,0x7792, +0x9992,0x86ee,0x6ee1,0x8513,0x66fc,0x6162,0x6f2b, -1, + -1, -1, -1, -1, -1,0x8c29,0x8292,0x832b, +0x76f2,0x6c13,0x5fd9,0x83bd,0x732b,0x8305,0x951a,0x6bdb, +0x77db,0x94c6,0x536f,0x8302,0x5192,0x5e3d,0x8c8c,0x8d38, +0x4e48,0x73ab,0x679a,0x6885,0x9176,0x9709,0x7164,0x6ca1, +0x7709,0x5a92,0x9541,0x6bcf,0x7f8e,0x6627,0x5bd0,0x59b9, +0x5a9a,0x95e8,0x95f7,0x4eec,0x840c,0x8499,0x6aac,0x76df, +0x9530,0x731b,0x68a6,0x5b5f,0x772f,0x919a,0x9761,0x7cdc, +0x8ff7,0x8c1c,0x5f25,0x7c73,0x79d8,0x89c5,0x6ccc,0x871c, +0x5bc6,0x5e42,0x68c9,0x7720,0x7ef5,0x5195,0x514d,0x52c9, +0x5a29,0x7f05,0x9762,0x82d7,0x63cf,0x7784,0x85d0,0x79d2, +0x6e3a,0x5e99,0x5999,0x8511,0x706d,0x6c11,0x62bf,0x76bf, +0x654f,0x60af,0x95fd,0x660e,0x879f,0x9e23,0x94ed,0x540d, +0x547d,0x8c2c,0x6478, -1, -1, -1, -1, -1, + -1,0x6479,0x8611,0x6a21,0x819c,0x78e8,0x6469,0x9b54, +0x62b9,0x672b,0x83ab,0x58a8,0x9ed8,0x6cab,0x6f20,0x5bde, +0x964c,0x8c0b,0x725f,0x67d0,0x62c7,0x7261,0x4ea9,0x59c6, +0x6bcd,0x5893,0x66ae,0x5e55,0x52df,0x6155,0x6728,0x76ee, +0x7766,0x7267,0x7a46,0x62ff,0x54ea,0x5450,0x94a0,0x90a3, +0x5a1c,0x7eb3,0x6c16,0x4e43,0x5976,0x8010,0x5948,0x5357, +0x7537,0x96be,0x56ca,0x6320,0x8111,0x607c,0x95f9,0x6dd6, +0x5462,0x9981,0x5185,0x5ae9,0x80fd,0x59ae,0x9713,0x502a, +0x6ce5,0x5c3c,0x62df,0x4f60,0x533f,0x817b,0x9006,0x6eba, +0x852b,0x62c8,0x5e74,0x78be,0x64b5,0x637b,0x5ff5,0x5a18, +0x917f,0x9e1f,0x5c3f,0x634f,0x8042,0x5b7d,0x556e,0x954a, +0x954d,0x6d85,0x60a8,0x67e0,0x72de,0x51dd,0x5b81, -1, + -1, -1, -1, -1, -1,0x62e7,0x6cde,0x725b, +0x626d,0x94ae,0x7ebd,0x8113,0x6d53,0x519c,0x5f04,0x5974, +0x52aa,0x6012,0x5973,0x6696,0x8650,0x759f,0x632a,0x61e6, +0x7cef,0x8bfa,0x54e6,0x6b27,0x9e25,0x6bb4,0x85d5,0x5455, +0x5076,0x6ca4,0x556a,0x8db4,0x722c,0x5e15,0x6015,0x7436, +0x62cd,0x6392,0x724c,0x5f98,0x6e43,0x6d3e,0x6500,0x6f58, +0x76d8,0x78d0,0x76fc,0x7554,0x5224,0x53db,0x4e53,0x5e9e, +0x65c1,0x802a,0x80d6,0x629b,0x5486,0x5228,0x70ae,0x888d, +0x8dd1,0x6ce1,0x5478,0x80da,0x57f9,0x88f4,0x8d54,0x966a, +0x914d,0x4f69,0x6c9b,0x55b7,0x76c6,0x7830,0x62a8,0x70f9, +0x6f8e,0x5f6d,0x84ec,0x68da,0x787c,0x7bf7,0x81a8,0x670b, +0x9e4f,0x6367,0x78b0,0x576f,0x7812,0x9739,0x6279,0x62ab, +0x5288,0x7435,0x6bd7, -1, -1, -1, -1, -1, + -1,0x5564,0x813e,0x75b2,0x76ae,0x5339,0x75de,0x50fb, +0x5c41,0x8b6c,0x7bc7,0x504f,0x7247,0x9a97,0x98d8,0x6f02, +0x74e2,0x7968,0x6487,0x77a5,0x62fc,0x9891,0x8d2b,0x54c1, +0x8058,0x4e52,0x576a,0x82f9,0x840d,0x5e73,0x51ed,0x74f6, +0x8bc4,0x5c4f,0x5761,0x6cfc,0x9887,0x5a46,0x7834,0x9b44, +0x8feb,0x7c95,0x5256,0x6251,0x94fa,0x4ec6,0x8386,0x8461, +0x83e9,0x84b2,0x57d4,0x6734,0x5703,0x666e,0x6d66,0x8c31, +0x66dd,0x7011,0x671f,0x6b3a,0x6816,0x621a,0x59bb,0x4e03, +0x51c4,0x6f06,0x67d2,0x6c8f,0x5176,0x68cb,0x5947,0x6b67, +0x7566,0x5d0e,0x8110,0x9f50,0x65d7,0x7948,0x7941,0x9a91, +0x8d77,0x5c82,0x4e5e,0x4f01,0x542f,0x5951,0x780c,0x5668, +0x6c14,0x8fc4,0x5f03,0x6c7d,0x6ce3,0x8bab,0x6390, -1, + -1, -1, -1, -1, -1,0x6070,0x6d3d,0x7275, +0x6266,0x948e,0x94c5,0x5343,0x8fc1,0x7b7e,0x4edf,0x8c26, +0x4e7e,0x9ed4,0x94b1,0x94b3,0x524d,0x6f5c,0x9063,0x6d45, +0x8c34,0x5811,0x5d4c,0x6b20,0x6b49,0x67aa,0x545b,0x8154, +0x7f8c,0x5899,0x8537,0x5f3a,0x62a2,0x6a47,0x9539,0x6572, +0x6084,0x6865,0x77a7,0x4e54,0x4fa8,0x5de7,0x9798,0x64ac, +0x7fd8,0x5ced,0x4fcf,0x7a8d,0x5207,0x8304,0x4e14,0x602f, +0x7a83,0x94a6,0x4fb5,0x4eb2,0x79e6,0x7434,0x52e4,0x82b9, +0x64d2,0x79bd,0x5bdd,0x6c81,0x9752,0x8f7b,0x6c22,0x503e, +0x537f,0x6e05,0x64ce,0x6674,0x6c30,0x60c5,0x9877,0x8bf7, +0x5e86,0x743c,0x7a77,0x79cb,0x4e18,0x90b1,0x7403,0x6c42, +0x56da,0x914b,0x6cc5,0x8d8b,0x533a,0x86c6,0x66f2,0x8eaf, +0x5c48,0x9a71,0x6e20, -1, -1, -1, -1, -1, + -1,0x53d6,0x5a36,0x9f8b,0x8da3,0x53bb,0x5708,0x98a7, +0x6743,0x919b,0x6cc9,0x5168,0x75ca,0x62f3,0x72ac,0x5238, +0x529d,0x7f3a,0x7094,0x7638,0x5374,0x9e4a,0x69b7,0x786e, +0x96c0,0x88d9,0x7fa4,0x7136,0x71c3,0x5189,0x67d3,0x74e4, +0x58e4,0x6518,0x56b7,0x8ba9,0x9976,0x6270,0x7ed5,0x60f9, +0x70ed,0x58ec,0x4ec1,0x4eba,0x5fcd,0x97e7,0x4efb,0x8ba4, +0x5203,0x598a,0x7eab,0x6254,0x4ecd,0x65e5,0x620e,0x8338, +0x84c9,0x8363,0x878d,0x7194,0x6eb6,0x5bb9,0x7ed2,0x5197, +0x63c9,0x67d4,0x8089,0x8339,0x8815,0x5112,0x5b7a,0x5982, +0x8fb1,0x4e73,0x6c5d,0x5165,0x8925,0x8f6f,0x962e,0x854a, +0x745e,0x9510,0x95f0,0x6da6,0x82e5,0x5f31,0x6492,0x6d12, +0x8428,0x816e,0x9cc3,0x585e,0x8d5b,0x4e09,0x53c1, -1, + -1, -1, -1, -1, -1,0x4f1e,0x6563,0x6851, +0x55d3,0x4e27,0x6414,0x9a9a,0x626b,0x5ac2,0x745f,0x8272, +0x6da9,0x68ee,0x50e7,0x838e,0x7802,0x6740,0x5239,0x6c99, +0x7eb1,0x50bb,0x5565,0x715e,0x7b5b,0x6652,0x73ca,0x82eb, +0x6749,0x5c71,0x5220,0x717d,0x886b,0x95ea,0x9655,0x64c5, +0x8d61,0x81b3,0x5584,0x6c55,0x6247,0x7f2e,0x5892,0x4f24, +0x5546,0x8d4f,0x664c,0x4e0a,0x5c1a,0x88f3,0x68a2,0x634e, +0x7a0d,0x70e7,0x828d,0x52fa,0x97f6,0x5c11,0x54e8,0x90b5, +0x7ecd,0x5962,0x8d4a,0x86c7,0x820c,0x820d,0x8d66,0x6444, +0x5c04,0x6151,0x6d89,0x793e,0x8bbe,0x7837,0x7533,0x547b, +0x4f38,0x8eab,0x6df1,0x5a20,0x7ec5,0x795e,0x6c88,0x5ba1, +0x5a76,0x751a,0x80be,0x614e,0x6e17,0x58f0,0x751f,0x7525, +0x7272,0x5347,0x7ef3, -1, -1, -1, -1, -1, + -1,0x7701,0x76db,0x5269,0x80dc,0x5723,0x5e08,0x5931, +0x72ee,0x65bd,0x6e7f,0x8bd7,0x5c38,0x8671,0x5341,0x77f3, +0x62fe,0x65f6,0x4ec0,0x98df,0x8680,0x5b9e,0x8bc6,0x53f2, +0x77e2,0x4f7f,0x5c4e,0x9a76,0x59cb,0x5f0f,0x793a,0x58eb, +0x4e16,0x67ff,0x4e8b,0x62ed,0x8a93,0x901d,0x52bf,0x662f, +0x55dc,0x566c,0x9002,0x4ed5,0x4f8d,0x91ca,0x9970,0x6c0f, +0x5e02,0x6043,0x5ba4,0x89c6,0x8bd5,0x6536,0x624b,0x9996, +0x5b88,0x5bff,0x6388,0x552e,0x53d7,0x7626,0x517d,0x852c, +0x67a2,0x68b3,0x6b8a,0x6292,0x8f93,0x53d4,0x8212,0x6dd1, +0x758f,0x4e66,0x8d4e,0x5b70,0x719f,0x85af,0x6691,0x66d9, +0x7f72,0x8700,0x9ecd,0x9f20,0x5c5e,0x672f,0x8ff0,0x6811, +0x675f,0x620d,0x7ad6,0x5885,0x5eb6,0x6570,0x6f31, -1, + -1, -1, -1, -1, -1,0x6055,0x5237,0x800d, +0x6454,0x8870,0x7529,0x5e05,0x6813,0x62f4,0x971c,0x53cc, +0x723d,0x8c01,0x6c34,0x7761,0x7a0e,0x542e,0x77ac,0x987a, +0x821c,0x8bf4,0x7855,0x6714,0x70c1,0x65af,0x6495,0x5636, +0x601d,0x79c1,0x53f8,0x4e1d,0x6b7b,0x8086,0x5bfa,0x55e3, +0x56db,0x4f3a,0x4f3c,0x9972,0x5df3,0x677e,0x8038,0x6002, +0x9882,0x9001,0x5b8b,0x8bbc,0x8bf5,0x641c,0x8258,0x64de, +0x55fd,0x82cf,0x9165,0x4fd7,0x7d20,0x901f,0x7c9f,0x50f3, +0x5851,0x6eaf,0x5bbf,0x8bc9,0x8083,0x9178,0x849c,0x7b97, +0x867d,0x968b,0x968f,0x7ee5,0x9ad3,0x788e,0x5c81,0x7a57, +0x9042,0x96a7,0x795f,0x5b59,0x635f,0x7b0b,0x84d1,0x68ad, +0x5506,0x7f29,0x7410,0x7d22,0x9501,0x6240,0x584c,0x4ed6, +0x5b83,0x5979,0x5854, -1, -1, -1, -1, -1, + -1,0x736d,0x631e,0x8e4b,0x8e0f,0x80ce,0x82d4,0x62ac, +0x53f0,0x6cf0,0x915e,0x592a,0x6001,0x6c70,0x574d,0x644a, +0x8d2a,0x762b,0x6ee9,0x575b,0x6a80,0x75f0,0x6f6d,0x8c2d, +0x8c08,0x5766,0x6bef,0x8892,0x78b3,0x63a2,0x53f9,0x70ad, +0x6c64,0x5858,0x642a,0x5802,0x68e0,0x819b,0x5510,0x7cd6, +0x5018,0x8eba,0x6dcc,0x8d9f,0x70eb,0x638f,0x6d9b,0x6ed4, +0x7ee6,0x8404,0x6843,0x9003,0x6dd8,0x9676,0x8ba8,0x5957, +0x7279,0x85e4,0x817e,0x75bc,0x8a8a,0x68af,0x5254,0x8e22, +0x9511,0x63d0,0x9898,0x8e44,0x557c,0x4f53,0x66ff,0x568f, +0x60d5,0x6d95,0x5243,0x5c49,0x5929,0x6dfb,0x586b,0x7530, +0x751c,0x606c,0x8214,0x8146,0x6311,0x6761,0x8fe2,0x773a, +0x8df3,0x8d34,0x94c1,0x5e16,0x5385,0x542c,0x70c3, -1, + -1, -1, -1, -1, -1,0x6c40,0x5ef7,0x505c, +0x4ead,0x5ead,0x633a,0x8247,0x901a,0x6850,0x916e,0x77b3, +0x540c,0x94dc,0x5f64,0x7ae5,0x6876,0x6345,0x7b52,0x7edf, +0x75db,0x5077,0x6295,0x5934,0x900f,0x51f8,0x79c3,0x7a81, +0x56fe,0x5f92,0x9014,0x6d82,0x5c60,0x571f,0x5410,0x5154, +0x6e4d,0x56e2,0x63a8,0x9893,0x817f,0x8715,0x892a,0x9000, +0x541e,0x5c6f,0x81c0,0x62d6,0x6258,0x8131,0x9e35,0x9640, +0x9a6e,0x9a7c,0x692d,0x59a5,0x62d3,0x553e,0x6316,0x54c7, +0x86d9,0x6d3c,0x5a03,0x74e6,0x889c,0x6b6a,0x5916,0x8c4c, +0x5f2f,0x6e7e,0x73a9,0x987d,0x4e38,0x70f7,0x5b8c,0x7897, +0x633d,0x665a,0x7696,0x60cb,0x5b9b,0x5a49,0x4e07,0x8155, +0x6c6a,0x738b,0x4ea1,0x6789,0x7f51,0x5f80,0x65fa,0x671b, +0x5fd8,0x5984,0x5a01, -1, -1, -1, -1, -1, + -1,0x5dcd,0x5fae,0x5371,0x97e6,0x8fdd,0x6845,0x56f4, +0x552f,0x60df,0x4e3a,0x6f4d,0x7ef4,0x82c7,0x840e,0x59d4, +0x4f1f,0x4f2a,0x5c3e,0x7eac,0x672a,0x851a,0x5473,0x754f, +0x80c3,0x5582,0x9b4f,0x4f4d,0x6e2d,0x8c13,0x5c09,0x6170, +0x536b,0x761f,0x6e29,0x868a,0x6587,0x95fb,0x7eb9,0x543b, +0x7a33,0x7d0a,0x95ee,0x55e1,0x7fc1,0x74ee,0x631d,0x8717, +0x6da1,0x7a9d,0x6211,0x65a1,0x5367,0x63e1,0x6c83,0x5deb, +0x545c,0x94a8,0x4e4c,0x6c61,0x8bec,0x5c4b,0x65e0,0x829c, +0x68a7,0x543e,0x5434,0x6bcb,0x6b66,0x4e94,0x6342,0x5348, +0x821e,0x4f0d,0x4fae,0x575e,0x620a,0x96fe,0x6664,0x7269, +0x52ff,0x52a1,0x609f,0x8bef,0x6614,0x7199,0x6790,0x897f, +0x7852,0x77fd,0x6670,0x563b,0x5438,0x9521,0x727a, -1, + -1, -1, -1, -1, -1,0x7a00,0x606f,0x5e0c, +0x6089,0x819d,0x5915,0x60dc,0x7184,0x70ef,0x6eaa,0x6c50, +0x7280,0x6a84,0x88ad,0x5e2d,0x4e60,0x5ab3,0x559c,0x94e3, +0x6d17,0x7cfb,0x9699,0x620f,0x7ec6,0x778e,0x867e,0x5323, +0x971e,0x8f96,0x6687,0x5ce1,0x4fa0,0x72ed,0x4e0b,0x53a6, +0x590f,0x5413,0x6380,0x9528,0x5148,0x4ed9,0x9c9c,0x7ea4, +0x54b8,0x8d24,0x8854,0x8237,0x95f2,0x6d8e,0x5f26,0x5acc, +0x663e,0x9669,0x73b0,0x732e,0x53bf,0x817a,0x9985,0x7fa1, +0x5baa,0x9677,0x9650,0x7ebf,0x76f8,0x53a2,0x9576,0x9999, +0x7bb1,0x8944,0x6e58,0x4e61,0x7fd4,0x7965,0x8be6,0x60f3, +0x54cd,0x4eab,0x9879,0x5df7,0x6a61,0x50cf,0x5411,0x8c61, +0x8427,0x785d,0x9704,0x524a,0x54ee,0x56a3,0x9500,0x6d88, +0x5bb5,0x6dc6,0x6653, -1, -1, -1, -1, -1, + -1,0x5c0f,0x5b5d,0x6821,0x8096,0x5578,0x7b11,0x6548, +0x6954,0x4e9b,0x6b47,0x874e,0x978b,0x534f,0x631f,0x643a, +0x90aa,0x659c,0x80c1,0x8c10,0x5199,0x68b0,0x5378,0x87f9, +0x61c8,0x6cc4,0x6cfb,0x8c22,0x5c51,0x85aa,0x82af,0x950c, +0x6b23,0x8f9b,0x65b0,0x5ffb,0x5fc3,0x4fe1,0x8845,0x661f, +0x8165,0x7329,0x60fa,0x5174,0x5211,0x578b,0x5f62,0x90a2, +0x884c,0x9192,0x5e78,0x674f,0x6027,0x59d3,0x5144,0x51f6, +0x80f8,0x5308,0x6c79,0x96c4,0x718a,0x4f11,0x4fee,0x7f9e, +0x673d,0x55c5,0x9508,0x79c0,0x8896,0x7ee3,0x589f,0x620c, +0x9700,0x865a,0x5618,0x987b,0x5f90,0x8bb8,0x84c4,0x9157, +0x53d9,0x65ed,0x5e8f,0x755c,0x6064,0x7d6e,0x5a7f,0x7eea, +0x7eed,0x8f69,0x55a7,0x5ba3,0x60ac,0x65cb,0x7384, -1, + -1, -1, -1, -1, -1,0x9009,0x7663,0x7729, +0x7eda,0x9774,0x859b,0x5b66,0x7a74,0x96ea,0x8840,0x52cb, +0x718f,0x5faa,0x65ec,0x8be2,0x5bfb,0x9a6f,0x5de1,0x6b89, +0x6c5b,0x8bad,0x8baf,0x900a,0x8fc5,0x538b,0x62bc,0x9e26, +0x9e2d,0x5440,0x4e2b,0x82bd,0x7259,0x869c,0x5d16,0x8859, +0x6daf,0x96c5,0x54d1,0x4e9a,0x8bb6,0x7109,0x54bd,0x9609, +0x70df,0x6df9,0x76d0,0x4e25,0x7814,0x8712,0x5ca9,0x5ef6, +0x8a00,0x989c,0x960e,0x708e,0x6cbf,0x5944,0x63a9,0x773c, +0x884d,0x6f14,0x8273,0x5830,0x71d5,0x538c,0x781a,0x96c1, +0x5501,0x5f66,0x7130,0x5bb4,0x8c1a,0x9a8c,0x6b83,0x592e, +0x9e2f,0x79e7,0x6768,0x626c,0x4f6f,0x75a1,0x7f8a,0x6d0b, +0x9633,0x6c27,0x4ef0,0x75d2,0x517b,0x6837,0x6f3e,0x9080, +0x8170,0x5996,0x7476, -1, -1, -1, -1, -1, + -1,0x6447,0x5c27,0x9065,0x7a91,0x8c23,0x59da,0x54ac, +0x8200,0x836f,0x8981,0x8000,0x6930,0x564e,0x8036,0x7237, +0x91ce,0x51b6,0x4e5f,0x9875,0x6396,0x4e1a,0x53f6,0x66f3, +0x814b,0x591c,0x6db2,0x4e00,0x58f9,0x533b,0x63d6,0x94f1, +0x4f9d,0x4f0a,0x8863,0x9890,0x5937,0x9057,0x79fb,0x4eea, +0x80f0,0x7591,0x6c82,0x5b9c,0x59e8,0x5f5d,0x6905,0x8681, +0x501a,0x5df2,0x4e59,0x77e3,0x4ee5,0x827a,0x6291,0x6613, +0x9091,0x5c79,0x4ebf,0x5f79,0x81c6,0x9038,0x8084,0x75ab, +0x4ea6,0x88d4,0x610f,0x6bc5,0x5fc6,0x4e49,0x76ca,0x6ea2, +0x8be3,0x8bae,0x8c0a,0x8bd1,0x5f02,0x7ffc,0x7fcc,0x7ece, +0x8335,0x836b,0x56e0,0x6bb7,0x97f3,0x9634,0x59fb,0x541f, +0x94f6,0x6deb,0x5bc5,0x996e,0x5c39,0x5f15,0x9690, -1, + -1, -1, -1, -1, -1,0x5370,0x82f1,0x6a31, +0x5a74,0x9e70,0x5e94,0x7f28,0x83b9,0x8424,0x8425,0x8367, +0x8747,0x8fce,0x8d62,0x76c8,0x5f71,0x9896,0x786c,0x6620, +0x54df,0x62e5,0x4f63,0x81c3,0x75c8,0x5eb8,0x96cd,0x8e0a, +0x86f9,0x548f,0x6cf3,0x6d8c,0x6c38,0x607f,0x52c7,0x7528, +0x5e7d,0x4f18,0x60a0,0x5fe7,0x5c24,0x7531,0x90ae,0x94c0, +0x72b9,0x6cb9,0x6e38,0x9149,0x6709,0x53cb,0x53f3,0x4f51, +0x91c9,0x8bf1,0x53c8,0x5e7c,0x8fc2,0x6de4,0x4e8e,0x76c2, +0x6986,0x865e,0x611a,0x8206,0x4f59,0x4fde,0x903e,0x9c7c, +0x6109,0x6e1d,0x6e14,0x9685,0x4e88,0x5a31,0x96e8,0x4e0e, +0x5c7f,0x79b9,0x5b87,0x8bed,0x7fbd,0x7389,0x57df,0x828b, +0x90c1,0x5401,0x9047,0x55bb,0x5cea,0x5fa1,0x6108,0x6b32, +0x72f1,0x80b2,0x8a89, -1, -1, -1, -1, -1, + -1,0x6d74,0x5bd3,0x88d5,0x9884,0x8c6b,0x9a6d,0x9e33, +0x6e0a,0x51a4,0x5143,0x57a3,0x8881,0x539f,0x63f4,0x8f95, +0x56ed,0x5458,0x5706,0x733f,0x6e90,0x7f18,0x8fdc,0x82d1, +0x613f,0x6028,0x9662,0x66f0,0x7ea6,0x8d8a,0x8dc3,0x94a5, +0x5cb3,0x7ca4,0x6708,0x60a6,0x9605,0x8018,0x4e91,0x90e7, +0x5300,0x9668,0x5141,0x8fd0,0x8574,0x915d,0x6655,0x97f5, +0x5b55,0x531d,0x7838,0x6742,0x683d,0x54c9,0x707e,0x5bb0, +0x8f7d,0x518d,0x5728,0x54b1,0x6512,0x6682,0x8d5e,0x8d43, +0x810f,0x846c,0x906d,0x7cdf,0x51ff,0x85fb,0x67a3,0x65e9, +0x6fa1,0x86a4,0x8e81,0x566a,0x9020,0x7682,0x7076,0x71e5, +0x8d23,0x62e9,0x5219,0x6cfd,0x8d3c,0x600e,0x589e,0x618e, +0x66fe,0x8d60,0x624e,0x55b3,0x6e23,0x672d,0x8f67, -1, + -1, -1, -1, -1, -1,0x94e1,0x95f8,0x7728, +0x6805,0x69a8,0x548b,0x4e4d,0x70b8,0x8bc8,0x6458,0x658b, +0x5b85,0x7a84,0x503a,0x5be8,0x77bb,0x6be1,0x8a79,0x7c98, +0x6cbe,0x76cf,0x65a9,0x8f97,0x5d2d,0x5c55,0x8638,0x6808, +0x5360,0x6218,0x7ad9,0x6e5b,0x7efd,0x6a1f,0x7ae0,0x5f70, +0x6f33,0x5f20,0x638c,0x6da8,0x6756,0x4e08,0x5e10,0x8d26, +0x4ed7,0x80c0,0x7634,0x969c,0x62db,0x662d,0x627e,0x6cbc, +0x8d75,0x7167,0x7f69,0x5146,0x8087,0x53ec,0x906e,0x6298, +0x54f2,0x86f0,0x8f99,0x8005,0x9517,0x8517,0x8fd9,0x6d59, +0x73cd,0x659f,0x771f,0x7504,0x7827,0x81fb,0x8d1e,0x9488, +0x4fa6,0x6795,0x75b9,0x8bca,0x9707,0x632f,0x9547,0x9635, +0x84b8,0x6323,0x7741,0x5f81,0x72f0,0x4e89,0x6014,0x6574, +0x62ef,0x6b63,0x653f, -1, -1, -1, -1, -1, + -1,0x5e27,0x75c7,0x90d1,0x8bc1,0x829d,0x679d,0x652f, +0x5431,0x8718,0x77e5,0x80a2,0x8102,0x6c41,0x4e4b,0x7ec7, +0x804c,0x76f4,0x690d,0x6b96,0x6267,0x503c,0x4f84,0x5740, +0x6307,0x6b62,0x8dbe,0x53ea,0x65e8,0x7eb8,0x5fd7,0x631a, +0x63b7,0x81f3,0x81f4,0x7f6e,0x5e1c,0x5cd9,0x5236,0x667a, +0x79e9,0x7a1a,0x8d28,0x7099,0x75d4,0x6ede,0x6cbb,0x7a92, +0x4e2d,0x76c5,0x5fe0,0x949f,0x8877,0x7ec8,0x79cd,0x80bf, +0x91cd,0x4ef2,0x4f17,0x821f,0x5468,0x5dde,0x6d32,0x8bcc, +0x7ca5,0x8f74,0x8098,0x5e1a,0x5492,0x76b1,0x5b99,0x663c, +0x9aa4,0x73e0,0x682a,0x86db,0x6731,0x732a,0x8bf8,0x8bdb, +0x9010,0x7af9,0x70db,0x716e,0x62c4,0x77a9,0x5631,0x4e3b, +0x8457,0x67f1,0x52a9,0x86c0,0x8d2e,0x94f8,0x7b51, -1, + -1, -1, -1, -1, -1,0x4f4f,0x6ce8,0x795d, +0x9a7b,0x6293,0x722a,0x62fd,0x4e13,0x7816,0x8f6c,0x64b0, +0x8d5a,0x7bc6,0x6869,0x5e84,0x88c5,0x5986,0x649e,0x58ee, +0x72b6,0x690e,0x9525,0x8ffd,0x8d58,0x5760,0x7f00,0x8c06, +0x51c6,0x6349,0x62d9,0x5353,0x684c,0x7422,0x8301,0x914c, +0x5544,0x7740,0x707c,0x6d4a,0x5179,0x54a8,0x8d44,0x59ff, +0x6ecb,0x6dc4,0x5b5c,0x7d2b,0x4ed4,0x7c7d,0x6ed3,0x5b50, +0x81ea,0x6e0d,0x5b57,0x9b03,0x68d5,0x8e2a,0x5b97,0x7efc, +0x603b,0x7eb5,0x90b9,0x8d70,0x594f,0x63cd,0x79df,0x8db3, +0x5352,0x65cf,0x7956,0x8bc5,0x963b,0x7ec4,0x94bb,0x7e82, +0x5634,0x9189,0x6700,0x7f6a,0x5c0a,0x9075,0x6628,0x5de6, +0x4f50,0x67de,0x505a,0x4f5c,0x5750,0x5ea7, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x4e8d,0x4e0c,0x5140,0x4e10,0x5eff,0x5345,0x4e15, +0x4e98,0x4e1e,0x9b32,0x5b6c,0x5669,0x4e28,0x79ba,0x4e3f, +0x5315,0x4e47,0x592d,0x723b,0x536e,0x6c10,0x56df,0x80e4, +0x9997,0x6bd3,0x777e,0x9f17,0x4e36,0x4e9f,0x9f10,0x4e5c, +0x4e69,0x4e93,0x8288,0x5b5b,0x556c,0x560f,0x4ec4,0x538d, +0x539d,0x53a3,0x53a5,0x53ae,0x9765,0x8d5d,0x531a,0x53f5, +0x5326,0x532e,0x533e,0x8d5c,0x5366,0x5363,0x5202,0x5208, +0x520e,0x522d,0x5233,0x523f,0x5240,0x524c,0x525e,0x5261, +0x525c,0x84af,0x527d,0x5282,0x5281,0x5290,0x5293,0x5182, +0x7f54,0x4ebb,0x4ec3,0x4ec9,0x4ec2,0x4ee8,0x4ee1,0x4eeb, +0x4ede,0x4f1b,0x4ef3,0x4f22,0x4f64,0x4ef5,0x4f25,0x4f27, +0x4f09,0x4f2b,0x4f5e,0x4f67,0x6538,0x4f5a,0x4f5d, -1, + -1, -1, -1, -1, -1,0x4f5f,0x4f57,0x4f32, +0x4f3d,0x4f76,0x4f74,0x4f91,0x4f89,0x4f83,0x4f8f,0x4f7e, +0x4f7b,0x4faa,0x4f7c,0x4fac,0x4f94,0x4fe6,0x4fe8,0x4fea, +0x4fc5,0x4fda,0x4fe3,0x4fdc,0x4fd1,0x4fdf,0x4ff8,0x5029, +0x504c,0x4ff3,0x502c,0x500f,0x502e,0x502d,0x4ffe,0x501c, +0x500c,0x5025,0x5028,0x507e,0x5043,0x5055,0x5048,0x504e, +0x506c,0x507b,0x50a5,0x50a7,0x50a9,0x50ba,0x50d6,0x5106, +0x50ed,0x50ec,0x50e6,0x50ee,0x5107,0x510b,0x4edd,0x6c3d, +0x4f58,0x4f65,0x4fce,0x9fa0,0x6c46,0x7c74,0x516e,0x5dfd, +0x9ec9,0x9998,0x5181,0x5914,0x52f9,0x530d,0x8a07,0x5310, +0x51eb,0x5919,0x5155,0x4ea0,0x5156,0x4eb3,0x886e,0x88a4, +0x4eb5,0x8114,0x88d2,0x7980,0x5b34,0x8803,0x7fb8,0x51ab, +0x51b1,0x51bd,0x51bc, -1, -1, -1, -1, -1, + -1,0x51c7,0x5196,0x51a2,0x51a5,0x8ba0,0x8ba6,0x8ba7, +0x8baa,0x8bb4,0x8bb5,0x8bb7,0x8bc2,0x8bc3,0x8bcb,0x8bcf, +0x8bce,0x8bd2,0x8bd3,0x8bd4,0x8bd6,0x8bd8,0x8bd9,0x8bdc, +0x8bdf,0x8be0,0x8be4,0x8be8,0x8be9,0x8bee,0x8bf0,0x8bf3, +0x8bf6,0x8bf9,0x8bfc,0x8bff,0x8c00,0x8c02,0x8c04,0x8c07, +0x8c0c,0x8c0f,0x8c11,0x8c12,0x8c14,0x8c15,0x8c16,0x8c19, +0x8c1b,0x8c18,0x8c1d,0x8c1f,0x8c20,0x8c21,0x8c25,0x8c27, +0x8c2a,0x8c2b,0x8c2e,0x8c2f,0x8c32,0x8c33,0x8c35,0x8c36, +0x5369,0x537a,0x961d,0x9622,0x9621,0x9631,0x962a,0x963d, +0x963c,0x9642,0x9649,0x9654,0x965f,0x9667,0x966c,0x9672, +0x9674,0x9688,0x968d,0x9697,0x96b0,0x9097,0x909b,0x909d, +0x9099,0x90ac,0x90a1,0x90b4,0x90b3,0x90b6,0x90ba, -1, + -1, -1, -1, -1, -1,0x90b8,0x90b0,0x90cf, +0x90c5,0x90be,0x90d0,0x90c4,0x90c7,0x90d3,0x90e6,0x90e2, +0x90dc,0x90d7,0x90db,0x90eb,0x90ef,0x90fe,0x9104,0x9122, +0x911e,0x9123,0x9131,0x912f,0x9139,0x9143,0x9146,0x520d, +0x5942,0x52a2,0x52ac,0x52ad,0x52be,0x54ff,0x52d0,0x52d6, +0x52f0,0x53df,0x71ee,0x77cd,0x5ef4,0x51f5,0x51fc,0x9b2f, +0x53b6,0x5f01,0x755a,0x5def,0x574c,0x57a9,0x57a1,0x587e, +0x58bc,0x58c5,0x58d1,0x5729,0x572c,0x572a,0x5733,0x5739, +0x572e,0x572f,0x575c,0x573b,0x5742,0x5769,0x5785,0x576b, +0x5786,0x577c,0x577b,0x5768,0x576d,0x5776,0x5773,0x57ad, +0x57a4,0x578c,0x57b2,0x57cf,0x57a7,0x57b4,0x5793,0x57a0, +0x57d5,0x57d8,0x57da,0x57d9,0x57d2,0x57b8,0x57f4,0x57ef, +0x57f8,0x57e4,0x57dd, -1, -1, -1, -1, -1, + -1,0x580b,0x580d,0x57fd,0x57ed,0x5800,0x581e,0x5819, +0x5844,0x5820,0x5865,0x586c,0x5881,0x5889,0x589a,0x5880, +0x99a8,0x9f19,0x61ff,0x8279,0x827d,0x827f,0x828f,0x828a, +0x82a8,0x8284,0x828e,0x8291,0x8297,0x8299,0x82ab,0x82b8, +0x82be,0x82b0,0x82c8,0x82ca,0x82e3,0x8298,0x82b7,0x82ae, +0x82cb,0x82cc,0x82c1,0x82a9,0x82b4,0x82a1,0x82aa,0x829f, +0x82c4,0x82ce,0x82a4,0x82e1,0x8309,0x82f7,0x82e4,0x830f, +0x8307,0x82dc,0x82f4,0x82d2,0x82d8,0x830c,0x82fb,0x82d3, +0x8311,0x831a,0x8306,0x8314,0x8315,0x82e0,0x82d5,0x831c, +0x8351,0x835b,0x835c,0x8308,0x8392,0x833c,0x8334,0x8331, +0x839b,0x835e,0x832f,0x834f,0x8347,0x8343,0x835f,0x8340, +0x8317,0x8360,0x832d,0x833a,0x8333,0x8366,0x8365, -1, + -1, -1, -1, -1, -1,0x8368,0x831b,0x8369, +0x836c,0x836a,0x836d,0x836e,0x83b0,0x8378,0x83b3,0x83b4, +0x83a0,0x83aa,0x8393,0x839c,0x8385,0x837c,0x83b6,0x83a9, +0x837d,0x83b8,0x837b,0x8398,0x839e,0x83a8,0x83ba,0x83bc, +0x83c1,0x8401,0x83e5,0x83d8,0x5807,0x8418,0x840b,0x83dd, +0x83fd,0x83d6,0x841c,0x8438,0x8411,0x8406,0x83d4,0x83df, +0x840f,0x8403,0x83f8,0x83f9,0x83ea,0x83c5,0x83c0,0x8426, +0x83f0,0x83e1,0x845c,0x8451,0x845a,0x8459,0x8473,0x8487, +0x8488,0x847a,0x8489,0x8478,0x843c,0x8446,0x8469,0x8476, +0x848c,0x848e,0x8431,0x846d,0x84c1,0x84cd,0x84d0,0x84e6, +0x84bd,0x84d3,0x84ca,0x84bf,0x84ba,0x84e0,0x84a1,0x84b9, +0x84b4,0x8497,0x84e5,0x84e3,0x850c,0x750d,0x8538,0x84f0, +0x8539,0x851f,0x853a, -1, -1, -1, -1, -1, + -1,0x8556,0x853b,0x84ff,0x84fc,0x8559,0x8548,0x8568, +0x8564,0x855e,0x857a,0x77a2,0x8543,0x8572,0x857b,0x85a4, +0x85a8,0x8587,0x858f,0x8579,0x85ae,0x859c,0x8585,0x85b9, +0x85b7,0x85b0,0x85d3,0x85c1,0x85dc,0x85ff,0x8627,0x8605, +0x8629,0x8616,0x863c,0x5efe,0x5f08,0x593c,0x5941,0x8037, +0x5955,0x595a,0x5958,0x530f,0x5c22,0x5c25,0x5c2c,0x5c34, +0x624c,0x626a,0x629f,0x62bb,0x62ca,0x62da,0x62d7,0x62ee, +0x6322,0x62f6,0x6339,0x634b,0x6343,0x63ad,0x63f6,0x6371, +0x637a,0x638e,0x63b4,0x636d,0x63ac,0x638a,0x6369,0x63ae, +0x63bc,0x63f2,0x63f8,0x63e0,0x63ff,0x63c4,0x63de,0x63ce, +0x6452,0x63c6,0x63be,0x6445,0x6441,0x640b,0x641b,0x6420, +0x640c,0x6426,0x6421,0x645e,0x6484,0x646d,0x6496, -1, + -1, -1, -1, -1, -1,0x647a,0x64b7,0x64b8, +0x6499,0x64ba,0x64c0,0x64d0,0x64d7,0x64e4,0x64e2,0x6509, +0x6525,0x652e,0x5f0b,0x5fd2,0x7519,0x5f11,0x535f,0x53f1, +0x53fd,0x53e9,0x53e8,0x53fb,0x5412,0x5416,0x5406,0x544b, +0x5452,0x5453,0x5454,0x5456,0x5443,0x5421,0x5457,0x5459, +0x5423,0x5432,0x5482,0x5494,0x5477,0x5471,0x5464,0x549a, +0x549b,0x5484,0x5476,0x5466,0x549d,0x54d0,0x54ad,0x54c2, +0x54b4,0x54d2,0x54a7,0x54a6,0x54d3,0x54d4,0x5472,0x54a3, +0x54d5,0x54bb,0x54bf,0x54cc,0x54d9,0x54da,0x54dc,0x54a9, +0x54aa,0x54a4,0x54dd,0x54cf,0x54de,0x551b,0x54e7,0x5520, +0x54fd,0x5514,0x54f3,0x5522,0x5523,0x550f,0x5511,0x5527, +0x552a,0x5567,0x558f,0x55b5,0x5549,0x556d,0x5541,0x5555, +0x553f,0x5550,0x553c, -1, -1, -1, -1, -1, + -1,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530, +0x555c,0x558b,0x55d2,0x5583,0x55b1,0x55b9,0x5588,0x5581, +0x559f,0x557e,0x55d6,0x5591,0x557b,0x55df,0x55bd,0x55be, +0x5594,0x5599,0x55ea,0x55f7,0x55c9,0x561f,0x55d1,0x55eb, +0x55ec,0x55d4,0x55e6,0x55dd,0x55c4,0x55ef,0x55e5,0x55f2, +0x55f3,0x55cc,0x55cd,0x55e8,0x55f5,0x55e4,0x8f94,0x561e, +0x5608,0x560c,0x5601,0x5624,0x5623,0x55fe,0x5600,0x5627, +0x562d,0x5658,0x5639,0x5657,0x562c,0x564d,0x5662,0x5659, +0x565c,0x564c,0x5654,0x5686,0x5664,0x5671,0x566b,0x567b, +0x567c,0x5685,0x5693,0x56af,0x56d4,0x56d7,0x56dd,0x56e1, +0x56f5,0x56eb,0x56f9,0x56ff,0x5704,0x570a,0x5709,0x571c, +0x5e0f,0x5e19,0x5e14,0x5e11,0x5e31,0x5e3b,0x5e3c, -1, + -1, -1, -1, -1, -1,0x5e37,0x5e44,0x5e54, +0x5e5b,0x5e5e,0x5e61,0x5c8c,0x5c7a,0x5c8d,0x5c90,0x5c96, +0x5c88,0x5c98,0x5c99,0x5c91,0x5c9a,0x5c9c,0x5cb5,0x5ca2, +0x5cbd,0x5cac,0x5cab,0x5cb1,0x5ca3,0x5cc1,0x5cb7,0x5cc4, +0x5cd2,0x5ce4,0x5ccb,0x5ce5,0x5d02,0x5d03,0x5d27,0x5d26, +0x5d2e,0x5d24,0x5d1e,0x5d06,0x5d1b,0x5d58,0x5d3e,0x5d34, +0x5d3d,0x5d6c,0x5d5b,0x5d6f,0x5d5d,0x5d6b,0x5d4b,0x5d4a, +0x5d69,0x5d74,0x5d82,0x5d99,0x5d9d,0x8c73,0x5db7,0x5dc5, +0x5f73,0x5f77,0x5f82,0x5f87,0x5f89,0x5f8c,0x5f95,0x5f99, +0x5f9c,0x5fa8,0x5fad,0x5fb5,0x5fbc,0x8862,0x5f61,0x72ad, +0x72b0,0x72b4,0x72b7,0x72b8,0x72c3,0x72c1,0x72ce,0x72cd, +0x72d2,0x72e8,0x72ef,0x72e9,0x72f2,0x72f4,0x72f7,0x7301, +0x72f3,0x7303,0x72fa, -1, -1, -1, -1, -1, + -1,0x72fb,0x7317,0x7313,0x7321,0x730a,0x731e,0x731d, +0x7315,0x7322,0x7339,0x7325,0x732c,0x7338,0x7331,0x7350, +0x734d,0x7357,0x7360,0x736c,0x736f,0x737e,0x821b,0x5925, +0x98e7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996a, +0x996b,0x996c,0x9974,0x9977,0x997d,0x9980,0x9984,0x9987, +0x998a,0x998d,0x9990,0x9991,0x9993,0x9994,0x9995,0x5e80, +0x5e91,0x5e8b,0x5e96,0x5ea5,0x5ea0,0x5eb9,0x5eb5,0x5ebe, +0x5eb3,0x8d53,0x5ed2,0x5ed1,0x5edb,0x5ee8,0x5eea,0x81ba, +0x5fc4,0x5fc9,0x5fd6,0x5fcf,0x6003,0x5fee,0x6004,0x5fe1, +0x5fe4,0x5ffe,0x6005,0x6006,0x5fea,0x5fed,0x5ff8,0x6019, +0x6035,0x6026,0x601b,0x600f,0x600d,0x6029,0x602b,0x600a, +0x603f,0x6021,0x6078,0x6079,0x607b,0x607a,0x6042, -1, + -1, -1, -1, -1, -1,0x606a,0x607d,0x6096, +0x609a,0x60ad,0x609d,0x6083,0x6092,0x608c,0x609b,0x60ec, +0x60bb,0x60b1,0x60dd,0x60d8,0x60c6,0x60da,0x60b4,0x6120, +0x6126,0x6115,0x6123,0x60f4,0x6100,0x610e,0x612b,0x614a, +0x6175,0x61ac,0x6194,0x61a7,0x61b7,0x61d4,0x61f5,0x5fdd, +0x96b3,0x95e9,0x95eb,0x95f1,0x95f3,0x95f5,0x95f6,0x95fc, +0x95fe,0x9603,0x9604,0x9606,0x9608,0x960a,0x960b,0x960c, +0x960d,0x960f,0x9612,0x9615,0x9616,0x9617,0x9619,0x961a, +0x4e2c,0x723f,0x6215,0x6c35,0x6c54,0x6c5c,0x6c4a,0x6ca3, +0x6c85,0x6c90,0x6c94,0x6c8c,0x6c68,0x6c69,0x6c74,0x6c76, +0x6c86,0x6ca9,0x6cd0,0x6cd4,0x6cad,0x6cf7,0x6cf8,0x6cf1, +0x6cd7,0x6cb2,0x6ce0,0x6cd6,0x6cfa,0x6ceb,0x6cee,0x6cb1, +0x6cd3,0x6cef,0x6cfe, -1, -1, -1, -1, -1, + -1,0x6d39,0x6d27,0x6d0c,0x6d43,0x6d48,0x6d07,0x6d04, +0x6d19,0x6d0e,0x6d2b,0x6d4d,0x6d2e,0x6d35,0x6d1a,0x6d4f, +0x6d52,0x6d54,0x6d33,0x6d91,0x6d6f,0x6d9e,0x6da0,0x6d5e, +0x6d93,0x6d94,0x6d5c,0x6d60,0x6d7c,0x6d63,0x6e1a,0x6dc7, +0x6dc5,0x6dde,0x6e0e,0x6dbf,0x6de0,0x6e11,0x6de6,0x6ddd, +0x6dd9,0x6e16,0x6dab,0x6e0c,0x6dae,0x6e2b,0x6e6e,0x6e4e, +0x6e6b,0x6eb2,0x6e5f,0x6e86,0x6e53,0x6e54,0x6e32,0x6e25, +0x6e44,0x6edf,0x6eb1,0x6e98,0x6ee0,0x6f2d,0x6ee2,0x6ea5, +0x6ea7,0x6ebd,0x6ebb,0x6eb7,0x6ed7,0x6eb4,0x6ecf,0x6e8f, +0x6ec2,0x6e9f,0x6f62,0x6f46,0x6f47,0x6f24,0x6f15,0x6ef9, +0x6f2f,0x6f36,0x6f4b,0x6f74,0x6f2a,0x6f09,0x6f29,0x6f89, +0x6f8d,0x6f8c,0x6f78,0x6f72,0x6f7c,0x6f7a,0x6fd1, -1, + -1, -1, -1, -1, -1,0x6fc9,0x6fa7,0x6fb9, +0x6fb6,0x6fc2,0x6fe1,0x6fee,0x6fde,0x6fe0,0x6fef,0x701a, +0x7023,0x701b,0x7039,0x7035,0x704f,0x705e,0x5b80,0x5b84, +0x5b95,0x5b93,0x5ba5,0x5bb8,0x752f,0x9a9e,0x6434,0x5be4, +0x5bee,0x8930,0x5bf0,0x8e47,0x8b07,0x8fb6,0x8fd3,0x8fd5, +0x8fe5,0x8fee,0x8fe4,0x8fe9,0x8fe6,0x8ff3,0x8fe8,0x9005, +0x9004,0x900b,0x9026,0x9011,0x900d,0x9016,0x9021,0x9035, +0x9036,0x902d,0x902f,0x9044,0x9051,0x9052,0x9050,0x9068, +0x9058,0x9062,0x905b,0x66b9,0x9074,0x907d,0x9082,0x9088, +0x9083,0x908b,0x5f50,0x5f57,0x5f56,0x5f58,0x5c3b,0x54ab, +0x5c50,0x5c59,0x5b71,0x5c63,0x5c66,0x7fbc,0x5f2a,0x5f29, +0x5f2d,0x8274,0x5f3c,0x9b3b,0x5c6e,0x5981,0x5983,0x598d, +0x59a9,0x59aa,0x59a3, -1, -1, -1, -1, -1, + -1,0x5997,0x59ca,0x59ab,0x599e,0x59a4,0x59d2,0x59b2, +0x59af,0x59d7,0x59be,0x5a05,0x5a06,0x59dd,0x5a08,0x59e3, +0x59d8,0x59f9,0x5a0c,0x5a09,0x5a32,0x5a34,0x5a11,0x5a23, +0x5a13,0x5a40,0x5a67,0x5a4a,0x5a55,0x5a3c,0x5a62,0x5a75, +0x80ec,0x5aaa,0x5a9b,0x5a77,0x5a7a,0x5abe,0x5aeb,0x5ab2, +0x5ad2,0x5ad4,0x5ab8,0x5ae0,0x5ae3,0x5af1,0x5ad6,0x5ae6, +0x5ad8,0x5adc,0x5b09,0x5b17,0x5b16,0x5b32,0x5b37,0x5b40, +0x5c15,0x5c1c,0x5b5a,0x5b65,0x5b73,0x5b51,0x5b53,0x5b62, +0x9a75,0x9a77,0x9a78,0x9a7a,0x9a7f,0x9a7d,0x9a80,0x9a81, +0x9a85,0x9a88,0x9a8a,0x9a90,0x9a92,0x9a93,0x9a96,0x9a98, +0x9a9b,0x9a9c,0x9a9d,0x9a9f,0x9aa0,0x9aa2,0x9aa3,0x9aa5, +0x9aa7,0x7e9f,0x7ea1,0x7ea3,0x7ea5,0x7ea8,0x7ea9, -1, + -1, -1, -1, -1, -1,0x7ead,0x7eb0,0x7ebe, +0x7ec0,0x7ec1,0x7ec2,0x7ec9,0x7ecb,0x7ecc,0x7ed0,0x7ed4, +0x7ed7,0x7edb,0x7ee0,0x7ee1,0x7ee8,0x7eeb,0x7eee,0x7eef, +0x7ef1,0x7ef2,0x7f0d,0x7ef6,0x7efa,0x7efb,0x7efe,0x7f01, +0x7f02,0x7f03,0x7f07,0x7f08,0x7f0b,0x7f0c,0x7f0f,0x7f11, +0x7f12,0x7f17,0x7f19,0x7f1c,0x7f1b,0x7f1f,0x7f21,0x7f22, +0x7f23,0x7f24,0x7f25,0x7f26,0x7f27,0x7f2a,0x7f2b,0x7f2c, +0x7f2d,0x7f2f,0x7f30,0x7f31,0x7f32,0x7f33,0x7f35,0x5e7a, +0x757f,0x5ddb,0x753e,0x9095,0x738e,0x7391,0x73ae,0x73a2, +0x739f,0x73cf,0x73c2,0x73d1,0x73b7,0x73b3,0x73c0,0x73c9, +0x73c8,0x73e5,0x73d9,0x987c,0x740a,0x73e9,0x73e7,0x73de, +0x73ba,0x73f2,0x740f,0x742a,0x745b,0x7426,0x7425,0x7428, +0x7430,0x742e,0x742c, -1, -1, -1, -1, -1, + -1,0x741b,0x741a,0x7441,0x745c,0x7457,0x7455,0x7459, +0x7477,0x746d,0x747e,0x749c,0x748e,0x7480,0x7481,0x7487, +0x748b,0x749e,0x74a8,0x74a9,0x7490,0x74a7,0x74d2,0x74ba, +0x97ea,0x97eb,0x97ec,0x674c,0x6753,0x675e,0x6748,0x6769, +0x67a5,0x6787,0x676a,0x6773,0x6798,0x67a7,0x6775,0x67a8, +0x679e,0x67ad,0x678b,0x6777,0x677c,0x67f0,0x6809,0x67d8, +0x680a,0x67e9,0x67b0,0x680c,0x67d9,0x67b5,0x67da,0x67b3, +0x67dd,0x6800,0x67c3,0x67b8,0x67e2,0x680e,0x67c1,0x67fd, +0x6832,0x6833,0x6860,0x6861,0x684e,0x6862,0x6844,0x6864, +0x6883,0x681d,0x6855,0x6866,0x6841,0x6867,0x6840,0x683e, +0x684a,0x6849,0x6829,0x68b5,0x688f,0x6874,0x6877,0x6893, +0x686b,0x68c2,0x696e,0x68fc,0x691f,0x6920,0x68f9, -1, + -1, -1, -1, -1, -1,0x6924,0x68f0,0x690b, +0x6901,0x6957,0x68e3,0x6910,0x6971,0x6939,0x6960,0x6942, +0x695d,0x6984,0x696b,0x6980,0x6998,0x6978,0x6934,0x69cc, +0x6987,0x6988,0x69ce,0x6989,0x6966,0x6963,0x6979,0x699b, +0x69a7,0x69bb,0x69ab,0x69ad,0x69d4,0x69b1,0x69c1,0x69ca, +0x69df,0x6995,0x69e0,0x698d,0x69ff,0x6a2f,0x69ed,0x6a17, +0x6a18,0x6a65,0x69f2,0x6a44,0x6a3e,0x6aa0,0x6a50,0x6a5b, +0x6a35,0x6a8e,0x6a79,0x6a3d,0x6a28,0x6a58,0x6a7c,0x6a91, +0x6a90,0x6aa9,0x6a97,0x6aab,0x7337,0x7352,0x6b81,0x6b82, +0x6b87,0x6b84,0x6b92,0x6b93,0x6b8d,0x6b9a,0x6b9b,0x6ba1, +0x6baa,0x8f6b,0x8f6d,0x8f71,0x8f72,0x8f73,0x8f75,0x8f76, +0x8f78,0x8f77,0x8f79,0x8f7a,0x8f7c,0x8f7e,0x8f81,0x8f82, +0x8f84,0x8f87,0x8f8b, -1, -1, -1, -1, -1, + -1,0x8f8d,0x8f8e,0x8f8f,0x8f98,0x8f9a,0x8ece,0x620b, +0x6217,0x621b,0x621f,0x6222,0x6221,0x6225,0x6224,0x622c, +0x81e7,0x74ef,0x74f4,0x74ff,0x750f,0x7511,0x7513,0x6534, +0x65ee,0x65ef,0x65f0,0x660a,0x6619,0x6772,0x6603,0x6615, +0x6600,0x7085,0x66f7,0x661d,0x6634,0x6631,0x6636,0x6635, +0x8006,0x665f,0x6654,0x6641,0x664f,0x6656,0x6661,0x6657, +0x6677,0x6684,0x668c,0x66a7,0x669d,0x66be,0x66db,0x66dc, +0x66e6,0x66e9,0x8d32,0x8d33,0x8d36,0x8d3b,0x8d3d,0x8d40, +0x8d45,0x8d46,0x8d48,0x8d49,0x8d47,0x8d4d,0x8d55,0x8d59, +0x89c7,0x89ca,0x89cb,0x89cc,0x89ce,0x89cf,0x89d0,0x89d1, +0x726e,0x729f,0x725d,0x7266,0x726f,0x727e,0x727f,0x7284, +0x728b,0x728d,0x728f,0x7292,0x6308,0x6332,0x63b0, -1, + -1, -1, -1, -1, -1,0x643f,0x64d8,0x8004, +0x6bea,0x6bf3,0x6bfd,0x6bf5,0x6bf9,0x6c05,0x6c07,0x6c06, +0x6c0d,0x6c15,0x6c18,0x6c19,0x6c1a,0x6c21,0x6c29,0x6c24, +0x6c2a,0x6c32,0x6535,0x6555,0x656b,0x724d,0x7252,0x7256, +0x7230,0x8662,0x5216,0x809f,0x809c,0x8093,0x80bc,0x670a, +0x80bd,0x80b1,0x80ab,0x80ad,0x80b4,0x80b7,0x80e7,0x80e8, +0x80e9,0x80ea,0x80db,0x80c2,0x80c4,0x80d9,0x80cd,0x80d7, +0x6710,0x80dd,0x80eb,0x80f1,0x80f4,0x80ed,0x810d,0x810e, +0x80f2,0x80fc,0x6715,0x8112,0x8c5a,0x8136,0x811e,0x812c, +0x8118,0x8132,0x8148,0x814c,0x8153,0x8174,0x8159,0x815a, +0x8171,0x8160,0x8169,0x817c,0x817d,0x816d,0x8167,0x584d, +0x5ab5,0x8188,0x8182,0x8191,0x6ed5,0x81a3,0x81aa,0x81cc, +0x6726,0x81ca,0x81bb, -1, -1, -1, -1, -1, + -1,0x81c1,0x81a6,0x6b24,0x6b37,0x6b39,0x6b43,0x6b46, +0x6b59,0x98d1,0x98d2,0x98d3,0x98d5,0x98d9,0x98da,0x6bb3, +0x5f40,0x6bc2,0x89f3,0x6590,0x9f51,0x6593,0x65bc,0x65c6, +0x65c4,0x65c3,0x65cc,0x65ce,0x65d2,0x65d6,0x7080,0x709c, +0x7096,0x709d,0x70bb,0x70c0,0x70b7,0x70ab,0x70b1,0x70e8, +0x70ca,0x7110,0x7113,0x7116,0x712f,0x7131,0x7173,0x715c, +0x7168,0x7145,0x7172,0x714a,0x7178,0x717a,0x7198,0x71b3, +0x71b5,0x71a8,0x71a0,0x71e0,0x71d4,0x71e7,0x71f9,0x721d, +0x7228,0x706c,0x7118,0x7166,0x71b9,0x623e,0x623d,0x6243, +0x6248,0x6249,0x793b,0x7940,0x7946,0x7949,0x795b,0x795c, +0x7953,0x795a,0x7962,0x7957,0x7960,0x796f,0x7967,0x797a, +0x7985,0x798a,0x799a,0x79a7,0x79b3,0x5fd1,0x5fd0, -1, + -1, -1, -1, -1, -1,0x603c,0x605d,0x605a, +0x6067,0x6041,0x6059,0x6063,0x60ab,0x6106,0x610d,0x615d, +0x61a9,0x619d,0x61cb,0x61d1,0x6206,0x8080,0x807f,0x6c93, +0x6cf6,0x6dfc,0x77f6,0x77f8,0x7800,0x7809,0x7817,0x7818, +0x7811,0x65ab,0x782d,0x781c,0x781d,0x7839,0x783a,0x783b, +0x781f,0x783c,0x7825,0x782c,0x7823,0x7829,0x784e,0x786d, +0x7856,0x7857,0x7826,0x7850,0x7847,0x784c,0x786a,0x789b, +0x7893,0x789a,0x7887,0x789c,0x78a1,0x78a3,0x78b2,0x78b9, +0x78a5,0x78d4,0x78d9,0x78c9,0x78ec,0x78f2,0x7905,0x78f4, +0x7913,0x7924,0x791e,0x7934,0x9f9b,0x9ef9,0x9efb,0x9efc, +0x76f1,0x7704,0x770d,0x76f9,0x7707,0x7708,0x771a,0x7722, +0x7719,0x772d,0x7726,0x7735,0x7738,0x7750,0x7751,0x7747, +0x7743,0x775a,0x7768, -1, -1, -1, -1, -1, + -1,0x7762,0x7765,0x777f,0x778d,0x777d,0x7780,0x778c, +0x7791,0x779f,0x77a0,0x77b0,0x77b5,0x77bd,0x753a,0x7540, +0x754e,0x754b,0x7548,0x755b,0x7572,0x7579,0x7583,0x7f58, +0x7f61,0x7f5f,0x8a48,0x7f68,0x7f74,0x7f71,0x7f79,0x7f81, +0x7f7e,0x76cd,0x76e5,0x8832,0x9485,0x9486,0x9487,0x948b, +0x948a,0x948c,0x948d,0x948f,0x9490,0x9494,0x9497,0x9495, +0x949a,0x949b,0x949c,0x94a3,0x94a4,0x94ab,0x94aa,0x94ad, +0x94ac,0x94af,0x94b0,0x94b2,0x94b4,0x94b6,0x94b7,0x94b8, +0x94b9,0x94ba,0x94bc,0x94bd,0x94bf,0x94c4,0x94c8,0x94c9, +0x94ca,0x94cb,0x94cc,0x94cd,0x94ce,0x94d0,0x94d1,0x94d2, +0x94d5,0x94d6,0x94d7,0x94d9,0x94d8,0x94db,0x94de,0x94df, +0x94e0,0x94e2,0x94e4,0x94e5,0x94e7,0x94e8,0x94ea, -1, + -1, -1, -1, -1, -1,0x94e9,0x94eb,0x94ee, +0x94ef,0x94f3,0x94f4,0x94f5,0x94f7,0x94f9,0x94fc,0x94fd, +0x94ff,0x9503,0x9502,0x9506,0x9507,0x9509,0x950a,0x950d, +0x950e,0x950f,0x9512,0x9513,0x9514,0x9515,0x9516,0x9518, +0x951b,0x951d,0x951e,0x951f,0x9522,0x952a,0x952b,0x9529, +0x952c,0x9531,0x9532,0x9534,0x9536,0x9537,0x9538,0x953c, +0x953e,0x953f,0x9542,0x9535,0x9544,0x9545,0x9546,0x9549, +0x954c,0x954e,0x954f,0x9552,0x9553,0x9554,0x9556,0x9557, +0x9558,0x9559,0x955b,0x955e,0x955f,0x955d,0x9561,0x9562, +0x9564,0x9565,0x9566,0x9567,0x9568,0x9569,0x956a,0x956b, +0x956c,0x956f,0x9571,0x9572,0x9573,0x953a,0x77e7,0x77ec, +0x96c9,0x79d5,0x79ed,0x79e3,0x79eb,0x7a06,0x5d47,0x7a03, +0x7a02,0x7a1e,0x7a14, -1, -1, -1, -1, -1, + -1,0x7a39,0x7a37,0x7a51,0x9ecf,0x99a5,0x7a70,0x7688, +0x768e,0x7693,0x7699,0x76a4,0x74de,0x74e0,0x752c,0x9e20, +0x9e22,0x9e28,0x9e29,0x9e2a,0x9e2b,0x9e2c,0x9e32,0x9e31, +0x9e36,0x9e38,0x9e37,0x9e39,0x9e3a,0x9e3e,0x9e41,0x9e42, +0x9e44,0x9e46,0x9e47,0x9e48,0x9e49,0x9e4b,0x9e4c,0x9e4e, +0x9e51,0x9e55,0x9e57,0x9e5a,0x9e5b,0x9e5c,0x9e5e,0x9e63, +0x9e66,0x9e67,0x9e68,0x9e69,0x9e6a,0x9e6b,0x9e6c,0x9e71, +0x9e6d,0x9e73,0x7592,0x7594,0x7596,0x75a0,0x759d,0x75ac, +0x75a3,0x75b3,0x75b4,0x75b8,0x75c4,0x75b1,0x75b0,0x75c3, +0x75c2,0x75d6,0x75cd,0x75e3,0x75e8,0x75e6,0x75e4,0x75eb, +0x75e7,0x7603,0x75f1,0x75fc,0x75ff,0x7610,0x7600,0x7605, +0x760c,0x7617,0x760a,0x7625,0x7618,0x7615,0x7619, -1, + -1, -1, -1, -1, -1,0x761b,0x763c,0x7622, +0x7620,0x7640,0x762d,0x7630,0x763f,0x7635,0x7643,0x763e, +0x7633,0x764d,0x765e,0x7654,0x765c,0x7656,0x766b,0x766f, +0x7fca,0x7ae6,0x7a78,0x7a79,0x7a80,0x7a86,0x7a88,0x7a95, +0x7aa6,0x7aa0,0x7aac,0x7aa8,0x7aad,0x7ab3,0x8864,0x8869, +0x8872,0x887d,0x887f,0x8882,0x88a2,0x88c6,0x88b7,0x88bc, +0x88c9,0x88e2,0x88ce,0x88e3,0x88e5,0x88f1,0x891a,0x88fc, +0x88e8,0x88fe,0x88f0,0x8921,0x8919,0x8913,0x891b,0x890a, +0x8934,0x892b,0x8936,0x8941,0x8966,0x897b,0x758b,0x80e5, +0x76b2,0x76b4,0x77dc,0x8012,0x8014,0x8016,0x801c,0x8020, +0x8022,0x8025,0x8026,0x8027,0x8029,0x8028,0x8031,0x800b, +0x8035,0x8043,0x8046,0x804d,0x8052,0x8069,0x8071,0x8983, +0x9878,0x9880,0x9883, -1, -1, -1, -1, -1, + -1,0x9889,0x988c,0x988d,0x988f,0x9894,0x989a,0x989b, +0x989e,0x989f,0x98a1,0x98a2,0x98a5,0x98a6,0x864d,0x8654, +0x866c,0x866e,0x867f,0x867a,0x867c,0x867b,0x86a8,0x868d, +0x868b,0x86ac,0x869d,0x86a7,0x86a3,0x86aa,0x8693,0x86a9, +0x86b6,0x86c4,0x86b5,0x86ce,0x86b0,0x86ba,0x86b1,0x86af, +0x86c9,0x86cf,0x86b4,0x86e9,0x86f1,0x86f2,0x86ed,0x86f3, +0x86d0,0x8713,0x86de,0x86f4,0x86df,0x86d8,0x86d1,0x8703, +0x8707,0x86f8,0x8708,0x870a,0x870d,0x8709,0x8723,0x873b, +0x871e,0x8725,0x872e,0x871a,0x873e,0x8748,0x8734,0x8731, +0x8729,0x8737,0x873f,0x8782,0x8722,0x877d,0x877e,0x877b, +0x8760,0x8770,0x874c,0x876e,0x878b,0x8753,0x8763,0x877c, +0x8764,0x8759,0x8765,0x8793,0x87af,0x87a8,0x87d2, -1, + -1, -1, -1, -1, -1,0x87c6,0x8788,0x8785, +0x87ad,0x8797,0x8783,0x87ab,0x87e5,0x87ac,0x87b5,0x87b3, +0x87cb,0x87d3,0x87bd,0x87d1,0x87c0,0x87ca,0x87db,0x87ea, +0x87e0,0x87ee,0x8816,0x8813,0x87fe,0x880a,0x881b,0x8821, +0x8839,0x883c,0x7f36,0x7f42,0x7f44,0x7f45,0x8210,0x7afa, +0x7afd,0x7b08,0x7b03,0x7b04,0x7b15,0x7b0a,0x7b2b,0x7b0f, +0x7b47,0x7b38,0x7b2a,0x7b19,0x7b2e,0x7b31,0x7b20,0x7b25, +0x7b24,0x7b33,0x7b3e,0x7b1e,0x7b58,0x7b5a,0x7b45,0x7b75, +0x7b4c,0x7b5d,0x7b60,0x7b6e,0x7b7b,0x7b62,0x7b72,0x7b71, +0x7b90,0x7ba6,0x7ba7,0x7bb8,0x7bac,0x7b9d,0x7ba8,0x7b85, +0x7baa,0x7b9c,0x7ba2,0x7bab,0x7bb4,0x7bd1,0x7bc1,0x7bcc, +0x7bdd,0x7bda,0x7be5,0x7be6,0x7bea,0x7c0c,0x7bfe,0x7bfc, +0x7c0f,0x7c16,0x7c0b, -1, -1, -1, -1, -1, + -1,0x7c1f,0x7c2a,0x7c26,0x7c38,0x7c41,0x7c40,0x81fe, +0x8201,0x8202,0x8204,0x81ec,0x8844,0x8221,0x8222,0x8223, +0x822d,0x822f,0x8228,0x822b,0x8238,0x823b,0x8233,0x8234, +0x823e,0x8244,0x8249,0x824b,0x824f,0x825a,0x825f,0x8268, +0x887e,0x8885,0x8888,0x88d8,0x88df,0x895e,0x7f9d,0x7f9f, +0x7fa7,0x7faf,0x7fb0,0x7fb2,0x7c7c,0x6549,0x7c91,0x7c9d, +0x7c9c,0x7c9e,0x7ca2,0x7cb2,0x7cbc,0x7cbd,0x7cc1,0x7cc7, +0x7ccc,0x7ccd,0x7cc8,0x7cc5,0x7cd7,0x7ce8,0x826e,0x66a8, +0x7fbf,0x7fce,0x7fd5,0x7fe5,0x7fe1,0x7fe6,0x7fe9,0x7fee, +0x7ff3,0x7cf8,0x7d77,0x7da6,0x7dae,0x7e47,0x7e9b,0x9eb8, +0x9eb4,0x8d73,0x8d84,0x8d94,0x8d91,0x8db1,0x8d67,0x8d6d, +0x8c47,0x8c49,0x914a,0x9150,0x914e,0x914f,0x9164, -1, + -1, -1, -1, -1, -1,0x9162,0x9161,0x9170, +0x9169,0x916f,0x917d,0x917e,0x9172,0x9174,0x9179,0x918c, +0x9185,0x9190,0x918d,0x9191,0x91a2,0x91a3,0x91aa,0x91ad, +0x91ae,0x91af,0x91b5,0x91b4,0x91ba,0x8c55,0x9e7e,0x8db8, +0x8deb,0x8e05,0x8e59,0x8e69,0x8db5,0x8dbf,0x8dbc,0x8dba, +0x8dc4,0x8dd6,0x8dd7,0x8dda,0x8dde,0x8dce,0x8dcf,0x8ddb, +0x8dc6,0x8dec,0x8df7,0x8df8,0x8de3,0x8df9,0x8dfb,0x8de4, +0x8e09,0x8dfd,0x8e14,0x8e1d,0x8e1f,0x8e2c,0x8e2e,0x8e23, +0x8e2f,0x8e3a,0x8e40,0x8e39,0x8e35,0x8e3d,0x8e31,0x8e49, +0x8e41,0x8e42,0x8e51,0x8e52,0x8e4a,0x8e70,0x8e76,0x8e7c, +0x8e6f,0x8e74,0x8e85,0x8e8f,0x8e94,0x8e90,0x8e9c,0x8e9e, +0x8c78,0x8c82,0x8c8a,0x8c85,0x8c98,0x8c94,0x659b,0x89d6, +0x89de,0x89da,0x89dc, -1, -1, -1, -1, -1, + -1,0x89e5,0x89eb,0x89ef,0x8a3e,0x8b26,0x9753,0x96e9, +0x96f3,0x96ef,0x9706,0x9701,0x9708,0x970f,0x970e,0x972a, +0x972d,0x9730,0x973e,0x9f80,0x9f83,0x9f85,0x9f86,0x9f87, +0x9f88,0x9f89,0x9f8a,0x9f8c,0x9efe,0x9f0b,0x9f0d,0x96b9, +0x96bc,0x96bd,0x96ce,0x96d2,0x77bf,0x96e0,0x928e,0x92ae, +0x92c8,0x933e,0x936a,0x93ca,0x938f,0x943e,0x946b,0x9c7f, +0x9c82,0x9c85,0x9c86,0x9c87,0x9c88,0x7a23,0x9c8b,0x9c8e, +0x9c90,0x9c91,0x9c92,0x9c94,0x9c95,0x9c9a,0x9c9b,0x9c9e, +0x9c9f,0x9ca0,0x9ca1,0x9ca2,0x9ca3,0x9ca5,0x9ca6,0x9ca7, +0x9ca8,0x9ca9,0x9cab,0x9cad,0x9cae,0x9cb0,0x9cb1,0x9cb2, +0x9cb3,0x9cb4,0x9cb5,0x9cb6,0x9cb7,0x9cba,0x9cbb,0x9cbc, +0x9cbd,0x9cc4,0x9cc5,0x9cc6,0x9cc7,0x9cca,0x9ccb, -1, + -1, -1, -1, -1, -1,0x9ccc,0x9ccd,0x9cce, +0x9ccf,0x9cd0,0x9cd3,0x9cd4,0x9cd5,0x9cd7,0x9cd8,0x9cd9, +0x9cdc,0x9cdd,0x9cdf,0x9ce2,0x977c,0x9785,0x9791,0x9792, +0x9794,0x97af,0x97ab,0x97a3,0x97b2,0x97b4,0x9ab1,0x9ab0, +0x9ab7,0x9e58,0x9ab6,0x9aba,0x9abc,0x9ac1,0x9ac0,0x9ac5, +0x9ac2,0x9acb,0x9acc,0x9ad1,0x9b45,0x9b43,0x9b47,0x9b49, +0x9b48,0x9b4d,0x9b51,0x98e8,0x990d,0x992e,0x9955,0x9954, +0x9adf,0x9ae1,0x9ae6,0x9aef,0x9aeb,0x9afb,0x9aed,0x9af9, +0x9b08,0x9b0f,0x9b13,0x9b1f,0x9b23,0x9ebd,0x9ebe,0x7e3b, +0x9e82,0x9e87,0x9e88,0x9e8b,0x9e92,0x93d6,0x9e9d,0x9e9f, +0x9edb,0x9edc,0x9edd,0x9ee0,0x9edf,0x9ee2,0x9ee9,0x9ee7, +0x9ee5,0x9eea,0x9eef,0x9f22,0x9f2c,0x9f2f,0x9f39,0x9f37, +0x9f3d,0x9f3e,0x9f44, +}; diff --git a/src/cmd/tcs/gb.h b/src/cmd/tcs/gb.h new file mode 100644 index 00000000..3a82df32 --- /dev/null +++ b/src/cmd/tcs/gb.h @@ -0,0 +1,7 @@ +/* + gb ranges from a1a1 to f7fe inclusive + we use a kuten-like mapping the above range to 101-8794 +*/ +#define GBMAX 8795 + +extern long tabgb[GBMAX]; /* runes indexed by gb ordinal */ diff --git a/src/cmd/tcs/hdr.h b/src/cmd/tcs/hdr.h new file mode 100644 index 00000000..b065f2a3 --- /dev/null +++ b/src/cmd/tcs/hdr.h @@ -0,0 +1,46 @@ +extern int squawk; +extern int clean; +extern char *file; +extern int verbose; +extern long ninput, noutput, nrunes, nerrors; + +enum { From = 1, Table = 2, Func = 4 }; + +typedef void (*Fnptr)(void); +struct convert{ + char *name; + char *chatter; + int flags; + void *data; + Fnptr fn; +}; +extern struct convert convert[]; +struct convert *conv(char *, int); +typedef void (*Infn)(int, long *, struct convert *); +typedef void (*Outfn)(Rune *, int, long *); +void outtable(Rune *, int, long *); + +void utf_in(int, long *, struct convert *); +void utf_out(Rune *, int, long *); +void isoutf_in(int, long *, struct convert *); +void isoutf_out(Rune *, int, long *); + +#define N 10000 /* just blocking */ +#define OUT(out, r, n) if(out->flags&Table) outtable(r, n, (long *)out->data);\ + else ((Outfn)(out->fn))(r, n, (long *)0) + +extern Rune runes[N]; +extern char obuf[UTFmax*N]; /* maximum bloat from N runes */ + +#define BADMAP (0xFFFD) +#define BYTEBADMAP ('?') /* badmap but has to fit in a byte */ +#define ESC 033 + +#ifdef PLAN9 +#define EPR fprint(2, +#define EXIT(n,s) exits(s) +#else +#define EPR fprintf(stderr, +#define USED(x) /* in plan 9, USED(x) tells the compiler to treat x as used */ +#define EXIT(n,s) exit(n) +#endif diff --git a/src/cmd/tcs/jis.h b/src/cmd/tcs/jis.h new file mode 100644 index 00000000..9b6d1dcc --- /dev/null +++ b/src/cmd/tcs/jis.h @@ -0,0 +1,107 @@ +/* + following astonishing goo courtesy of kogure. +*/ +/* + * MicroSoft Kanji Encoding (SJIS) Transformation + */ + +/* + * void + * J2S(unsigned char *_h, unsigned char *_l) + * JIS X 208 to MS kanji transformation. + * + * Calling/Exit State: + * _h and _l should be in their valid range. + * No return value. + */ +#define J2S(_h, _l) { \ + /* lower: 21-7e >> 40-9d,9e-fb >> 40-7e,(skip 7f),80-fc */ \ + if (((_l) += (((_h)-- % 2) ? 0x1f : 0x7d)) > 0x7e) (_l)++; \ + /* upper: 21-7e >> 81-af >> 81-9f,(skip a0-df),e0-ef */ \ + if (((_h) = ((_h) / 2 + 0x71)) > 0x9f) (_h) += 0x40; \ +} + +/* + * void + * S2J(unsigned char *_h, unsigned char *_l) + * MS kanji to JIS X 208 transformation. + * + * Calling/Exit State: + * _h and _l should be in valid range. + * No return value. + */ +#define S2J(_h, _l) { \ + /* lower: 40-7e,80-fc >> 21-5f,61-dd >> 21-7e,7f-dc */ \ + if (((_l) -= 0x1f) > 0x60) (_l)--; \ + /* upper: 81-9f,e0-ef >> 00-1e,5f-6e >> 00-2e >> 21-7d */ \ + if (((_h) -= 0x81) > 0x5e) (_h) -= 0x40; (_h) *= 2, (_h) += 0x21; \ + /* upper: ,21-7d >> ,22-7e ; lower: ,7f-dc >> ,21-7e */ \ + if ((_l) > 0x7e) (_h)++, (_l) -= 0x5e; \ +} + +/* + * int + * ISJKANA(const unsigned char *_b) + * Tests given byte is in the range of JIS X 0201 katakana. + * + * Calling/Exit State: + * Returns 1 if it is, or 0 otherwise. + */ +#define ISJKANA(_b) (0xa0 <= (_b) && (_b) < 0xe0) + +/* + * int + * CANS2JH(const unsigned char *_h) + * Tests given byte is in the range of valid first byte of MS + * kanji code; either acts as a subroutine of CANS2J() macro + * or can be used to parse MS kanji encoded strings. + * + * Calling/Exit State: + * Returns 1 if it is, or 0 otherwise. + */ +#define CANS2JH(_h) ((0x81 <= (_h) && (_h) < 0xf0) && !ISJKANA(_h)) + +/* + * int + * CANS2JL(const unsigned char *_l) + * Tests given byte is in the range of valid second byte of MS + * kanji code; acts as a subroutine of CANS2J() macro. + * + * Calling/Exit State: + * Returns 1 if it is, or 0 otherwise. + */ +#define CANS2JL(_l) (0x40 <= (_l) && (_l) < 0xfd && (_l) != 0x7f) + +/* + * int + * CANS2J(const unsigned char *_h, const unsinged char *_l) + * Tests given bytes form a MS kanji code point which can be + * transformed to a valid JIS X 208 code point. + * + * Calling/Exit State: + * Returns 1 if they are, or 0 otherwise. + */ +#define CANS2J(_h, _l) (CANS2JH(_h) && CANS2JL(_l)) + +/* + * int + * CANJ2SB(const unsigned char *_b) + * Tests given bytes is in the range of valid 94 graphic + * character set; acts as a subroutine of CANJ2S() macro. + * + * Calling/Exit State: + * Returns 1 if it is, or 0 otherwise. + */ +#define CANJ2SB(_b) (0x21 <= (_b) && (_b) < 0x7f) + +/* + * int + * CANJ2S(const unsigned char *_h, const unsigned char *_l) + * Tests given bytes form valid JIS X 208 code points + * (which can be transformed to MS kanji). + * + * Calling/Exit State: + * Returns 1 if they are, or 0 otherwise. + */ +#define CANJ2S(_h, _l) (CANJ2SB(_h) && CANJ2SB(_l)) + diff --git a/src/cmd/tcs/ksc.c b/src/cmd/tcs/ksc.c new file mode 100644 index 00000000..90d6793b --- /dev/null +++ b/src/cmd/tcs/ksc.c @@ -0,0 +1,988 @@ +#include "ksc.h" + +/* KSC5601 -> Unicode mapping table, compressed for the 94*94 codeset. */ +/* + * Unlike kuten-table, needed offset is 33 (0x21) instead of + * 32 for 7-bit portion of each byte. i.e., a Unicode + * codepoint for KSC's codepoint (n, m) would be found at + * index (n-33)*94+m-33. + */ +long tabksc5601[] = { +/* KSC 5601 -> Unicode mapping table; max codepoint = 0x7d7e */ + 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad, + 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, + 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, + 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e, + 0x2234, 0x00b0, 0x2032, 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, + 0x2642, 0x2640, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, + 0x00a7, 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, + 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191, + 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, + 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, + 0x2229, 0x2227, 0x2228, 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, + 0xff5e, 0x02c7, 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, + 0x00bf, 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, + 0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663, + 0x25c9, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, 0x25a8, + 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, 0x261e, 0x00b6, + 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, 0x2198, 0x266d, 0x2669, + 0x266a, 0x266c, 0x327f, 0x321c, 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8, + 0x2121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 0xff01, + 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a, + 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13, + 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, + 0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, + 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, + 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, + 0xff38, 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40, + 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, + 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, + 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b, + 0xff5c, 0xff5d, 0xffe3, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, + 0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, + 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, + 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151, + 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, + 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163, + 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, + 0x316d, 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, + 0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, + 0x317f, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, + 0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x2170, 0x2171, + 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, -1, + -1, -1, -1, -1, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, + 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, -1, -1, -1, -1, + -1, -1, -1, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, + 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, + 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, + -1, -1, -1, -1, -1, -1, -1, -1, 0x03b1, + 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, + 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, + 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, -1, -1, -1, -1, + -1, -1, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, + 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, + 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, + 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x2512, 0x2511, + 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, 0x251e, 0x251f, 0x2521, + 0x2522, 0x2526, 0x2527, 0x2529, 0x252a, 0x252d, 0x252e, 0x2531, 0x2532, + 0x2535, 0x2536, 0x2539, 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, + 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0x3395, 0x3396, 0x3397, + 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a, + 0x339b, 0x339c, 0x339d, 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, + 0x338d, 0x338e, 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, + 0x33b0, 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, + 0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc, + 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, 0x2126, + 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, 0x33ad, 0x33ae, + 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, 0x33dd, 0x33d0, 0x33d3, + 0x33c3, 0x33c9, 0x33dc, 0x33c6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0x00c6, 0x00d0, 0x00aa, 0x0126, -1, 0x0132, -1, 0x013f, + 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, -1, 0x3260, + 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, + 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272, + 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, + 0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, + 0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, + 0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, + 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, + 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, 0x00bc, + 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x00e6, 0x0111, 0x00f0, 0x0127, + 0x0131, 0x0133, 0x0138, 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, + 0x0167, 0x014b, 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, + 0x3206, 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, + 0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217, + 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0, + 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, 0x24a9, + 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, 0x24b1, 0x24b2, + 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, + 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, + 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, + 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, + 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, + 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, + 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, + 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, + 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, + 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, + 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, + 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, + 0x3092, 0x3093, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, + 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, + 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, + 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, + 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, + 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, + 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, + 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, + 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, + 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, + -1, -1, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 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, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 0x3400, 0x3401, 0x3402, + 0x3403, 0x3404, 0x3405, 0x3406, 0x3407, 0x3408, 0x3409, 0x340a, 0x340b, + 0x340c, 0x340d, 0x340e, 0x340f, 0x3410, 0x3411, 0x3412, 0x3413, 0x3414, + 0x3415, 0x3416, 0x3417, 0x3418, 0x3419, 0x341a, 0x341b, 0x341c, 0x341d, + 0x341e, 0x341f, 0x3420, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426, + 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f, + 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, + 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441, + 0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a, + 0x344b, 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, + 0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, + 0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, + 0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e, + 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477, + 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x347f, 0x3480, + 0x3481, 0x3482, 0x3483, 0x3484, 0x3485, 0x3486, 0x3487, 0x3488, 0x3489, + 0x348a, 0x348b, 0x348c, 0x348d, 0x348e, 0x348f, 0x3490, 0x3491, 0x3492, + 0x3493, 0x3494, 0x3495, 0x3496, 0x3497, 0x3498, 0x3499, 0x349a, 0x349b, + 0x349c, 0x349d, 0x349e, 0x349f, 0x34a0, 0x34a1, 0x34a2, 0x34a3, 0x34a4, + 0x34a5, 0x34a6, 0x34a7, 0x34a8, 0x34a9, 0x34aa, 0x34ab, 0x34ac, 0x34ad, + 0x34ae, 0x34af, 0x34b0, 0x34b1, 0x34b2, 0x34b3, 0x34b4, 0x34b5, 0x34b6, + 0x34b7, 0x34b8, 0x34b9, 0x34ba, 0x34bb, 0x34bc, 0x34bd, 0x34be, 0x34bf, + 0x34c0, 0x34c1, 0x34c2, 0x34c3, 0x34c4, 0x34c5, 0x34c6, 0x34c7, 0x34c8, + 0x34c9, 0x34ca, 0x34cb, 0x34cc, 0x34cd, 0x34ce, 0x34cf, 0x34d0, 0x34d1, + 0x34d2, 0x34d3, 0x34d4, 0x34d5, 0x34d6, 0x34d7, 0x34d8, 0x34d9, 0x34da, + 0x34db, 0x34dc, 0x34dd, 0x34de, 0x34df, 0x34e0, 0x34e1, 0x34e2, 0x34e3, + 0x34e4, 0x34e5, 0x34e6, 0x34e7, 0x34e8, 0x34e9, 0x34ea, 0x34eb, 0x34ec, + 0x34ed, 0x34ee, 0x34ef, 0x34f0, 0x34f1, 0x34f2, 0x34f3, 0x34f4, 0x34f5, + 0x34f6, 0x34f7, 0x34f8, 0x34f9, 0x34fa, 0x34fb, 0x34fc, 0x34fd, 0x34fe, + 0x34ff, 0x3500, 0x3501, 0x3502, 0x3503, 0x3504, 0x3505, 0x3506, 0x3507, + 0x3508, 0x3509, 0x350a, 0x350b, 0x350c, 0x350d, 0x350e, 0x350f, 0x3510, + 0x3511, 0x3512, 0x3513, 0x3514, 0x3515, 0x3516, 0x3517, 0x3518, 0x3519, + 0x351a, 0x351b, 0x351c, 0x351d, 0x351e, 0x351f, 0x3520, 0x3521, 0x3522, + 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b, + 0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, + 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, + 0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, + 0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, + 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558, + 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561, + 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, 0x356a, + 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573, + 0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, + 0x357d, 0x357e, 0x357f, 0x3580, 0x3581, 0x3582, 0x3583, 0x3584, 0x3585, + 0x3586, 0x3587, 0x3588, 0x3589, 0x358a, 0x358b, 0x358c, 0x358d, 0x358e, + 0x358f, 0x3590, 0x3591, 0x3592, 0x3593, 0x3594, 0x3595, 0x3596, 0x3597, + 0x3598, 0x3599, 0x359a, 0x359b, 0x359c, 0x359d, 0x359e, 0x359f, 0x35a0, + 0x35a1, 0x35a2, 0x35a3, 0x35a4, 0x35a5, 0x35a6, 0x35a7, 0x35a8, 0x35a9, + 0x35aa, 0x35ab, 0x35ac, 0x35ad, 0x35ae, 0x35af, 0x35b0, 0x35b1, 0x35b2, + 0x35b3, 0x35b4, 0x35b5, 0x35b6, 0x35b7, 0x35b8, 0x35b9, 0x35ba, 0x35bb, + 0x35bc, 0x35bd, 0x35be, 0x35bf, 0x35c0, 0x35c1, 0x35c2, 0x35c3, 0x35c4, + 0x35c5, 0x35c6, 0x35c7, 0x35c8, 0x35c9, 0x35ca, 0x35cb, 0x35cc, 0x35cd, + 0x35ce, 0x35cf, 0x35d0, 0x35d1, 0x35d2, 0x35d3, 0x35d4, 0x35d5, 0x35d6, + 0x35d7, 0x35d8, 0x35d9, 0x35da, 0x35db, 0x35dc, 0x35dd, 0x35de, 0x35df, + 0x35e0, 0x35e1, 0x35e2, 0x35e3, 0x35e4, 0x35e5, 0x35e6, 0x35e7, 0x35e8, + 0x35e9, 0x35ea, 0x35eb, 0x35ec, 0x35ed, 0x35ee, 0x35ef, 0x35f0, 0x35f1, + 0x35f2, 0x35f3, 0x35f4, 0x35f5, 0x35f6, 0x35f7, 0x35f8, 0x35f9, 0x35fa, + 0x35fb, 0x35fc, 0x35fd, 0x35fe, 0x35ff, 0x3600, 0x3601, 0x3602, 0x3603, + 0x3604, 0x3605, 0x3606, 0x3607, 0x3608, 0x3609, 0x360a, 0x360b, 0x360c, + 0x360d, 0x360e, 0x360f, 0x3610, 0x3611, 0x3612, 0x3613, 0x3614, 0x3615, + 0x3616, 0x3617, 0x3618, 0x3619, 0x361a, 0x361b, 0x361c, 0x361d, 0x361e, + 0x361f, 0x3620, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, + 0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, + 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, + 0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642, + 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b, + 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, 0x3654, + 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d, + 0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666, + 0x3667, 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f, + 0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, + 0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x367f, 0x3680, 0x3681, + 0x3682, 0x3683, 0x3684, 0x3685, 0x3686, 0x3687, 0x3688, 0x3689, 0x368a, + 0x368b, 0x368c, 0x368d, 0x368e, 0x368f, 0x3690, 0x3691, 0x3692, 0x3693, + 0x3694, 0x3695, 0x3696, 0x3697, 0x3698, 0x3699, 0x369a, 0x369b, 0x369c, + 0x369d, 0x369e, 0x369f, 0x36a0, 0x36a1, 0x36a2, 0x36a3, 0x36a4, 0x36a5, + 0x36a6, 0x36a7, 0x36a8, 0x36a9, 0x36aa, 0x36ab, 0x36ac, 0x36ad, 0x36ae, + 0x36af, 0x36b0, 0x36b1, 0x36b2, 0x36b3, 0x36b4, 0x36b5, 0x36b6, 0x36b7, + 0x36b8, 0x36b9, 0x36ba, 0x36bb, 0x36bc, 0x36bd, 0x36be, 0x36bf, 0x36c0, + 0x36c1, 0x36c2, 0x36c3, 0x36c4, 0x36c5, 0x36c6, 0x36c7, 0x36c8, 0x36c9, + 0x36ca, 0x36cb, 0x36cc, 0x36cd, 0x36ce, 0x36cf, 0x36d0, 0x36d1, 0x36d2, + 0x36d3, 0x36d4, 0x36d5, 0x36d6, 0x36d7, 0x36d8, 0x36d9, 0x36da, 0x36db, + 0x36dc, 0x36dd, 0x36de, 0x36df, 0x36e0, 0x36e1, 0x36e2, 0x36e3, 0x36e4, + 0x36e5, 0x36e6, 0x36e7, 0x36e8, 0x36e9, 0x36ea, 0x36eb, 0x36ec, 0x36ed, + 0x36ee, 0x36ef, 0x36f0, 0x36f1, 0x36f2, 0x36f3, 0x36f4, 0x36f5, 0x36f6, + 0x36f7, 0x36f8, 0x36f9, 0x36fa, 0x36fb, 0x36fc, 0x36fd, 0x36fe, 0x36ff, + 0x3700, 0x3701, 0x3702, 0x3703, 0x3704, 0x3705, 0x3706, 0x3707, 0x3708, + 0x3709, 0x370a, 0x370b, 0x370c, 0x370d, 0x370e, 0x370f, 0x3710, 0x3711, + 0x3712, 0x3713, 0x3714, 0x3715, 0x3716, 0x3717, 0x3718, 0x3719, 0x371a, + 0x371b, 0x371c, 0x371d, 0x371e, 0x371f, 0x3720, 0x3721, 0x3722, 0x3723, + 0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c, + 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735, + 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, 0x373e, + 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747, + 0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750, + 0x3751, 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, + 0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, 0x3762, + 0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, + 0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774, + 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, 0x377d, + 0x377e, 0x377f, 0x3780, 0x3781, 0x3782, 0x3783, 0x3784, 0x3785, 0x3786, + 0x3787, 0x3788, 0x3789, 0x378a, 0x378b, 0x378c, 0x378d, 0x378e, 0x378f, + 0x3790, 0x3791, 0x3792, 0x3793, 0x3794, 0x3795, 0x3796, 0x3797, 0x3798, + 0x3799, 0x379a, 0x379b, 0x379c, 0x379d, 0x379e, 0x379f, 0x37a0, 0x37a1, + 0x37a2, 0x37a3, 0x37a4, 0x37a5, 0x37a6, 0x37a7, 0x37a8, 0x37a9, 0x37aa, + 0x37ab, 0x37ac, 0x37ad, 0x37ae, 0x37af, 0x37b0, 0x37b1, 0x37b2, 0x37b3, + 0x37b4, 0x37b5, 0x37b6, 0x37b7, 0x37b8, 0x37b9, 0x37ba, 0x37bb, 0x37bc, + 0x37bd, 0x37be, 0x37bf, 0x37c0, 0x37c1, 0x37c2, 0x37c3, 0x37c4, 0x37c5, + 0x37c6, 0x37c7, 0x37c8, 0x37c9, 0x37ca, 0x37cb, 0x37cc, 0x37cd, 0x37ce, + 0x37cf, 0x37d0, 0x37d1, 0x37d2, 0x37d3, 0x37d4, 0x37d5, 0x37d6, 0x37d7, + 0x37d8, 0x37d9, 0x37da, 0x37db, 0x37dc, 0x37dd, 0x37de, 0x37df, 0x37e0, + 0x37e1, 0x37e2, 0x37e3, 0x37e4, 0x37e5, 0x37e6, 0x37e7, 0x37e8, 0x37e9, + 0x37ea, 0x37eb, 0x37ec, 0x37ed, 0x37ee, 0x37ef, 0x37f0, 0x37f1, 0x37f2, + 0x37f3, 0x37f4, 0x37f5, 0x37f6, 0x37f7, 0x37f8, 0x37f9, 0x37fa, 0x37fb, + 0x37fc, 0x37fd, 0x37fe, 0x37ff, 0x3800, 0x3801, 0x3802, 0x3803, 0x3804, + 0x3805, 0x3806, 0x3807, 0x3808, 0x3809, 0x380a, 0x380b, 0x380c, 0x380d, + 0x380e, 0x380f, 0x3810, 0x3811, 0x3812, 0x3813, 0x3814, 0x3815, 0x3816, + 0x3817, 0x3818, 0x3819, 0x381a, 0x381b, 0x381c, 0x381d, 0x381e, 0x381f, + 0x3820, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, + 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831, + 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a, + 0x383b, 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, + 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, + 0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, 0x3854, 0x3855, + 0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e, + 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3866, 0x3867, + 0x3868, 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, + 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879, + 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x387f, 0x3880, 0x3881, 0x3882, + 0x3883, 0x3884, 0x3885, 0x3886, 0x3887, 0x3888, 0x3889, 0x388a, 0x388b, + 0x388c, 0x388d, 0x388e, 0x388f, 0x3890, 0x3891, 0x3892, 0x3893, 0x3894, + 0x3895, 0x3896, 0x3897, 0x3898, 0x3899, 0x389a, 0x389b, 0x389c, 0x389d, + 0x389e, 0x389f, 0x38a0, 0x38a1, 0x38a2, 0x38a3, 0x38a4, 0x38a5, 0x38a6, + 0x38a7, 0x38a8, 0x38a9, 0x38aa, 0x38ab, 0x38ac, 0x38ad, 0x38ae, 0x38af, + 0x38b0, 0x38b1, 0x38b2, 0x38b3, 0x38b4, 0x38b5, 0x38b6, 0x38b7, 0x38b8, + 0x38b9, 0x38ba, 0x38bb, 0x38bc, 0x38bd, 0x38be, 0x38bf, 0x38c0, 0x38c1, + 0x38c2, 0x38c3, 0x38c4, 0x38c5, 0x38c6, 0x38c7, 0x38c8, 0x38c9, 0x38ca, + 0x38cb, 0x38cc, 0x38cd, 0x38ce, 0x38cf, 0x38d0, 0x38d1, 0x38d2, 0x38d3, + 0x38d4, 0x38d5, 0x38d6, 0x38d7, 0x38d8, 0x38d9, 0x38da, 0x38db, 0x38dc, + 0x38dd, 0x38de, 0x38df, 0x38e0, 0x38e1, 0x38e2, 0x38e3, 0x38e4, 0x38e5, + 0x38e6, 0x38e7, 0x38e8, 0x38e9, 0x38ea, 0x38eb, 0x38ec, 0x38ed, 0x38ee, + 0x38ef, 0x38f0, 0x38f1, 0x38f2, 0x38f3, 0x38f4, 0x38f5, 0x38f6, 0x38f7, + 0x38f8, 0x38f9, 0x38fa, 0x38fb, 0x38fc, 0x38fd, 0x38fe, 0x38ff, 0x3900, + 0x3901, 0x3902, 0x3903, 0x3904, 0x3905, 0x3906, 0x3907, 0x3908, 0x3909, + 0x390a, 0x390b, 0x390c, 0x390d, 0x390e, 0x390f, 0x3910, 0x3911, 0x3912, + 0x3913, 0x3914, 0x3915, 0x3916, 0x3917, 0x3918, 0x3919, 0x391a, 0x391b, + 0x391c, 0x391d, 0x391e, 0x391f, 0x3920, 0x3921, 0x3922, 0x3923, 0x3924, + 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d, + 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, 0x3936, + 0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, + 0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, + 0x3949, 0x394a, 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951, + 0x3952, 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, + 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963, + 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c, + 0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975, + 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, 0x397e, + 0x397f, 0x3980, 0x3981, 0x3982, 0x3983, 0x3984, 0x3985, 0x3986, 0x3987, + 0x3988, 0x3989, 0x398a, 0x398b, 0x398c, 0x398d, 0x398e, 0x398f, 0x3990, + 0x3991, 0x3992, 0x3993, 0x3994, 0x3995, 0x3996, 0x3997, 0x3998, 0x3999, + 0x399a, 0x399b, 0x399c, 0x399d, 0x399e, 0x399f, 0x39a0, 0x39a1, 0x39a2, + 0x39a3, 0x39a4, 0x39a5, 0x39a6, 0x39a7, 0x39a8, 0x39a9, 0x39aa, 0x39ab, + 0x39ac, 0x39ad, 0x39ae, 0x39af, 0x39b0, 0x39b1, 0x39b2, 0x39b3, 0x39b4, + 0x39b5, 0x39b6, 0x39b7, 0x39b8, 0x39b9, 0x39ba, 0x39bb, 0x39bc, 0x39bd, + 0x39be, 0x39bf, 0x39c0, 0x39c1, 0x39c2, 0x39c3, 0x39c4, 0x39c5, 0x39c6, + 0x39c7, 0x39c8, 0x39c9, 0x39ca, 0x39cb, 0x39cc, 0x39cd, 0x39ce, 0x39cf, + 0x39d0, 0x39d1, 0x39d2, 0x39d3, 0x39d4, 0x39d5, 0x39d6, 0x39d7, 0x39d8, + 0x39d9, 0x39da, 0x39db, 0x39dc, 0x39dd, 0x39de, 0x39df, 0x39e0, 0x39e1, + 0x39e2, 0x39e3, 0x39e4, 0x39e5, 0x39e6, 0x39e7, 0x39e8, 0x39e9, 0x39ea, + 0x39eb, 0x39ec, 0x39ed, 0x39ee, 0x39ef, 0x39f0, 0x39f1, 0x39f2, 0x39f3, + 0x39f4, 0x39f5, 0x39f6, 0x39f7, 0x39f8, 0x39f9, 0x39fa, 0x39fb, 0x39fc, + 0x39fd, 0x39fe, 0x39ff, 0x3a00, 0x3a01, 0x3a02, 0x3a03, 0x3a04, 0x3a05, + 0x3a06, 0x3a07, 0x3a08, 0x3a09, 0x3a0a, 0x3a0b, 0x3a0c, 0x3a0d, 0x3a0e, + 0x3a0f, 0x3a10, 0x3a11, 0x3a12, 0x3a13, 0x3a14, 0x3a15, 0x3a16, 0x3a17, + 0x3a18, 0x3a19, 0x3a1a, 0x3a1b, 0x3a1c, 0x3a1d, 0x3a1e, 0x3a1f, 0x3a20, + 0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, + 0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a32, + 0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, 0x3a38, 0x3a39, 0x3a3a, 0x3a3b, + 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, + 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d, + 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56, + 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, + 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, 0x3a68, + 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, + 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, + 0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3a7f, 0x3a80, 0x3a81, 0x3a82, 0x3a83, + 0x3a84, 0x3a85, 0x3a86, 0x3a87, 0x3a88, 0x3a89, 0x3a8a, 0x3a8b, 0x3a8c, + 0x3a8d, 0x3a8e, 0x3a8f, 0x3a90, 0x3a91, 0x3a92, 0x3a93, 0x3a94, 0x3a95, + 0x3a96, 0x3a97, 0x3a98, 0x3a99, 0x3a9a, 0x3a9b, 0x3a9c, 0x3a9d, 0x3a9e, + 0x3a9f, 0x3aa0, 0x3aa1, 0x3aa2, 0x3aa3, 0x3aa4, 0x3aa5, 0x3aa6, 0x3aa7, + 0x3aa8, 0x3aa9, 0x3aaa, 0x3aab, 0x3aac, 0x3aad, 0x3aae, 0x3aaf, 0x3ab0, + 0x3ab1, 0x3ab2, 0x3ab3, 0x3ab4, 0x3ab5, 0x3ab6, 0x3ab7, 0x3ab8, 0x3ab9, + 0x3aba, 0x3abb, 0x3abc, 0x3abd, 0x3abe, 0x3abf, 0x3ac0, 0x3ac1, 0x3ac2, + 0x3ac3, 0x3ac4, 0x3ac5, 0x3ac6, 0x3ac7, 0x3ac8, 0x3ac9, 0x3aca, 0x3acb, + 0x3acc, 0x3acd, 0x3ace, 0x3acf, 0x3ad0, 0x3ad1, 0x3ad2, 0x3ad3, 0x3ad4, + 0x3ad5, 0x3ad6, 0x3ad7, 0x3ad8, 0x3ad9, 0x3ada, 0x3adb, 0x3adc, 0x3add, + 0x3ade, 0x3adf, 0x3ae0, 0x3ae1, 0x3ae2, 0x3ae3, 0x3ae4, 0x3ae5, 0x3ae6, + 0x3ae7, 0x3ae8, 0x3ae9, 0x3aea, 0x3aeb, 0x3aec, 0x3aed, 0x3aee, 0x3aef, + 0x3af0, 0x3af1, 0x3af2, 0x3af3, 0x3af4, 0x3af5, 0x3af6, 0x3af7, 0x3af8, + 0x3af9, 0x3afa, 0x3afb, 0x3afc, 0x3afd, 0x3afe, 0x3aff, 0x3b00, 0x3b01, + 0x3b02, 0x3b03, 0x3b04, 0x3b05, 0x3b06, 0x3b07, 0x3b08, 0x3b09, 0x3b0a, + 0x3b0b, 0x3b0c, 0x3b0d, 0x3b0e, 0x3b0f, 0x3b10, 0x3b11, 0x3b12, 0x3b13, + 0x3b14, 0x3b15, 0x3b16, 0x3b17, 0x3b18, 0x3b19, 0x3b1a, 0x3b1b, 0x3b1c, + 0x3b1d, 0x3b1e, 0x3b1f, 0x3b20, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25, + 0x3b26, 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, + 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37, + 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, + 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, + 0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, 0x3b52, + 0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, + 0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, + 0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, + 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76, + 0x3b77, 0x3b78, 0x3b79, 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3b7f, + 0x3b80, 0x3b81, 0x3b82, 0x3b83, 0x3b84, 0x3b85, 0x3b86, 0x3b87, 0x3b88, + 0x3b89, 0x3b8a, 0x3b8b, 0x3b8c, 0x3b8d, 0x3b8e, 0x3b8f, 0x3b90, 0x3b91, + 0x3b92, 0x3b93, 0x3b94, 0x3b95, 0x3b96, 0x3b97, 0x3b98, 0x3b99, 0x3b9a, + 0x3b9b, 0x3b9c, 0x3b9d, 0x3b9e, 0x3b9f, 0x3ba0, 0x3ba1, 0x3ba2, 0x3ba3, + 0x3ba4, 0x3ba5, 0x3ba6, 0x3ba7, 0x3ba8, 0x3ba9, 0x3baa, 0x3bab, 0x3bac, + 0x3bad, 0x3bae, 0x3baf, 0x3bb0, 0x3bb1, 0x3bb2, 0x3bb3, 0x3bb4, 0x3bb5, + 0x3bb6, 0x3bb7, 0x3bb8, 0x3bb9, 0x3bba, 0x3bbb, 0x3bbc, 0x3bbd, 0x3bbe, + 0x3bbf, 0x3bc0, 0x3bc1, 0x3bc2, 0x3bc3, 0x3bc4, 0x3bc5, 0x3bc6, 0x3bc7, + 0x3bc8, 0x3bc9, 0x3bca, 0x3bcb, 0x3bcc, 0x3bcd, 0x3bce, 0x3bcf, 0x3bd0, + 0x3bd1, 0x3bd2, 0x3bd3, 0x3bd4, 0x3bd5, 0x3bd6, 0x3bd7, 0x3bd8, 0x3bd9, + 0x3bda, 0x3bdb, 0x3bdc, 0x3bdd, 0x3bde, 0x3bdf, 0x3be0, 0x3be1, 0x3be2, + 0x3be3, 0x3be4, 0x3be5, 0x3be6, 0x3be7, 0x3be8, 0x3be9, 0x3bea, 0x3beb, + 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0, 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, + 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8, 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, + 0x3bfe, 0x3bff, 0x3c00, 0x3c01, 0x3c02, 0x3c03, 0x3c04, 0x3c05, 0x3c06, + 0x3c07, 0x3c08, 0x3c09, 0x3c0a, 0x3c0b, 0x3c0c, 0x3c0d, 0x3c0e, 0x3c0f, + 0x3c10, 0x3c11, 0x3c12, 0x3c13, 0x3c14, 0x3c15, 0x3c16, 0x3c17, 0x3c18, + 0x3c19, 0x3c1a, 0x3c1b, 0x3c1c, 0x3c1d, 0x3c1e, 0x3c1f, 0x3c20, 0x3c21, + 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a, + 0x3c2b, 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, + 0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, + 0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, + 0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e, + 0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57, + 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60, + 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69, + 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72, + 0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, + 0x3c7c, 0x3c7d, 0x3c7e, 0x3c7f, 0x3c80, 0x3c81, 0x3c82, 0x3c83, 0x3c84, + 0x3c85, 0x3c86, 0x3c87, 0x3c88, 0x3c89, 0x3c8a, 0x3c8b, 0x3c8c, 0x3c8d, + 0x3c8e, 0x3c8f, 0x3c90, 0x3c91, 0x3c92, 0x3c93, 0x3c94, 0x3c95, 0x3c96, + 0x3c97, 0x3c98, 0x3c99, 0x3c9a, 0x3c9b, 0x3c9c, 0x3c9d, 0x3c9e, 0x3c9f, + 0x3ca0, 0x3ca1, 0x3ca2, 0x3ca3, 0x3ca4, 0x3ca5, 0x3ca6, 0x3ca7, 0x3ca8, + 0x3ca9, 0x3caa, 0x3cab, 0x3cac, 0x3cad, 0x3cae, 0x3caf, 0x3cb0, 0x3cb1, + 0x3cb2, 0x3cb3, 0x3cb4, 0x3cb5, 0x3cb6, 0x3cb7, 0x3cb8, 0x3cb9, 0x3cba, + 0x3cbb, 0x3cbc, 0x3cbd, 0x3cbe, 0x3cbf, 0x3cc0, 0x3cc1, 0x3cc2, 0x3cc3, + 0x3cc4, 0x3cc5, 0x3cc6, 0x3cc7, 0x3cc8, 0x3cc9, 0x3cca, 0x3ccb, 0x3ccc, + 0x3ccd, 0x3cce, 0x3ccf, 0x3cd0, 0x3cd1, 0x3cd2, 0x3cd3, 0x3cd4, 0x3cd5, + 0x3cd6, 0x3cd7, 0x3cd8, 0x3cd9, 0x3cda, 0x3cdb, 0x3cdc, 0x3cdd, 0x3cde, + 0x3cdf, 0x3ce0, 0x3ce1, 0x3ce2, 0x3ce3, 0x3ce4, 0x3ce5, 0x3ce6, 0x3ce7, + 0x3ce8, 0x3ce9, 0x3cea, 0x3ceb, 0x3cec, 0x3ced, 0x3cee, 0x3cef, 0x3cf0, + 0x3cf1, 0x3cf2, 0x3cf3, 0x3cf4, 0x3cf5, 0x3cf6, 0x3cf7, 0x3cf8, 0x3cf9, + 0x3cfa, 0x3cfb, 0x3cfc, 0x3cfd, 0x3cfe, 0x3cff, 0x3d00, 0x3d01, 0x3d02, + 0x3d03, 0x3d04, 0x3d05, 0x3d06, 0x3d07, 0x3d08, 0x3d09, 0x3d0a, 0x3d0b, + 0x3d0c, 0x3d0d, 0x3d0e, 0x3d0f, 0x3d10, 0x3d11, 0x3d12, 0x3d13, 0x3d14, + 0x3d15, 0x3d16, 0x3d17, 0x3d18, 0x3d19, 0x3d1a, 0x3d1b, 0x3d1c, 0x3d1d, + 0x3d1e, 0x3d1f, 0x3d20, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, + 0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, + 0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c, + 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, 0x8cc8, + 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, 0x606a, 0x6164, + 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, 0x4f83, 0x520a, 0x58be, + 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f, + 0x6f97, 0x764e, 0x770b, 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, + 0x8271, 0x8aeb, 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, + 0x845b, 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, + 0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3, + 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x5323, 0x5cac, 0x7532, + 0x80db, 0x9240, 0x9598, 0x525b, 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, + 0x5f3a, 0x5f4a, 0x6177, 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, + 0x7f8c, 0x8154, 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, + 0x4ecb, 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, + 0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900, + 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, 0x91b5, + 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, 0x64e7, 0x6e20, + 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, 0x9245, 0x92f8, 0x4e7e, + 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47, + 0x9375, 0x9a2b, 0x4e5e, 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, + 0x6aa2, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9, + 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, 0x5805, + 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, 0x8b74, 0x9063, + 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, 0x8a23, 0x517c, 0x614a, + 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106, + 0x52c1, 0x52cd, 0x537f, 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, + 0x64ce, 0x656c, 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, + 0x749f, 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, + 0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1, + 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, 0x5b63, + 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x68e8, 0x6eaa, 0x754c, 0x7678, + 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, + 0x9dc4, 0x53e4, 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, + 0x5eab, 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, + 0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6, + 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, 0x932e, + 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, 0x688f, 0x7a40, + 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, 0x68b1, 0x68cd, 0x6efe, + 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171, + 0x529f, 0x5b54, 0x5de5, 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, + 0x7a7a, 0x86a3, 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, + 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, 0x5ed3, + 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, 0x6163, 0x68fa, + 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, 0x83c5, 0x89c0, 0x8cab, + 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321, + 0x58d9, 0x5ee3, 0x66e0, 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, + 0x945b, 0x5366, 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, + 0x6127, 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, + 0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821, + 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, 0x86df, + 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d, + 0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, + 0x5775, 0x57a2, 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, + 0x67e9, 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, + 0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205, + 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, 0x9264, + 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, 0x5c40, 0x83ca, + 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, 0x88d9, 0x8ecd, 0x90e1, + 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e, + 0x8eac, 0x5026, 0x5238, 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, + 0x6dc3, 0x7737, 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, + 0x6f70, 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x9b3c, + 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, 0x7845, 0x7aba, + 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, 0x95a8, 0x52fb, 0x5747, + 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287, + 0x621f, 0x68d8, 0x6975, 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, + 0x6839, 0x69ff, 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, + 0x9949, 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, + 0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca, + 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, 0x80af, + 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, 0x57fa, 0x57fc, + 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc, + 0x6280, 0x65d7, 0x65e3, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, + 0x6b3a, 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, + 0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a, + 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, 0x8b4f, + 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, 0x9a0f, 0x9a65, + 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, 0x91d1, 0x55ab, 0x513a, + 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f, + 0xf910, 0xf911, 0xf912, 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, + 0xf918, 0x8afe, 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, + 0xf91e, 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, + 0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x7d0d, 0xf926, + 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, 0xf92a, 0xf92b, 0xf92c, + 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74, + 0x649a, 0x79ca, 0x5ff5, 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, + 0xf92f, 0x5974, 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, + 0xf934, 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, + 0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3, + 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, 0xf948, + 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, + 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955, + 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba, + 0x591a, 0x8336, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, + 0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde, + 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, 0x9054, + 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, 0x6f6d, 0x6fb9, + 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, 0x8b5a, 0x931f, 0x6c93, + 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207, + 0x649e, 0x68e0, 0x7576, 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, + 0x5927, 0x5c0d, 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, + 0x888b, 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, + 0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6, + 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x68f9, 0x6ac2, 0x6dd8, + 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404, + 0x89a9, 0x8ced, 0x8df3, 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, + 0x9676, 0x97dc, 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, + 0x7be4, 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, + 0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd, + 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, 0x75bc, + 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, 0x675c, 0x6793, + 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, 0x982d, 0x5c6f, 0x81c0, + 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b, + 0x7b49, 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, + 0x7f85, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de, + 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, 0x6b04, + 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, 0x5d50, 0x64e5, + 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, 0x8964, 0x89bd, 0x62c9, + 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782, + 0x90de, 0x4f86, 0x5d0d, 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, + 0x5006, 0x5169, 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, + 0x8ad2, 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, + 0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62, + 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, 0x8f62, + 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x7149, 0x7489, 0x7df4, 0x806f, + 0x84ee, 0x8f26, 0x9023, 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, + 0x88c2, 0x5ec9, 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, + 0x56f9, 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, + 0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7, + 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, 0x6f5e, + 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, 0x8f05, 0x9732, + 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, 0x83c9, 0x9304, 0x9e7f, + 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e, + 0x5121, 0x7028, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, + 0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, + 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, 0x6f0f, + 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, 0x5289, 0x65d2, + 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, 0x7460, 0x7559, 0x7624, + 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19, + 0x6dea, 0x7db8, 0x8f2a, 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, + 0x808b, 0x51dc, 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, + 0x5229, 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, + 0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8, + 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, 0x6f7e, + 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, 0x6797, 0x6dcb, + 0x7433, 0x81e8, 0x9716, 0x782c, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, + 0x75f2, 0x78bc, 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, + 0x819c, 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, + 0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513, + 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, 0x8309, + 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, 0x7db2, 0x7f54, + 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, 0x59b9, 0x5a92, 0x5bd0, + 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081, + 0x9b45, 0x8108, 0x8c8a, 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, + 0x76f2, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, + 0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x8511, + 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, 0x76bf, 0x7791, + 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, 0x8882, 0x4fae, 0x5192, + 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21, + 0x6bcd, 0x6bdb, 0x725f, 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, + 0x8305, 0x8b00, 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, + 0x7a46, 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, + 0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7, + 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, 0x65e0, + 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, 0x821e, 0x8302, + 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, 0x9ed8, 0x5011, 0x520e, + 0x543b, 0x554f, 0x6587, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, + 0x96ef, 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, + 0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e, + 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, 0x61ab, + 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, 0x7de1, 0x9594, + 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, 0x640f, 0x64b2, 0x6734, + 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236, + 0x8584, 0x8feb, 0x96f9, 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, + 0x642c, 0x6500, 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, + 0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, + 0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x767c, 0x8dcb, + 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, 0x574a, 0x59a8, 0x5c28, + 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c, + 0x6ec2, 0x78c5, 0x7d21, 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, + 0x8a2a, 0x8b17, 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, + 0x5f98, 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, + 0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70, + 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, 0x7169, + 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, 0x4f10, 0x7b4f, + 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, 0x6c4e, 0x6cdb, 0x72af, + 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97, + 0x74a7, 0x7656, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, + 0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19, + 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, 0x70b3, + 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, 0x4fdd, 0x5821, + 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, 0x6f7d, 0x73e4, 0x752b, + 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c, + 0x5b93, 0x5fa9, 0x670d, 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, + 0x8f39, 0x8f3b, 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, + 0x5cef, 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, + 0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256, + 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x5b5a, 0x5b75, 0x5bcc, + 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26, + 0x7c3f, 0x7f36, 0x8150, 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, + 0x8ca0, 0x8ce6, 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, + 0x99d9, 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, + 0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde, + 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, 0x62c2, + 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, 0x5099, 0x5315, + 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, 0x618a, 0x6249, 0x6279, + 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, + 0x7435, 0x75fa, 0x7812, 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, + 0x80a5, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb, + 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, 0x6ab3, + 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, 0x8cd3, 0x983b, + 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a, + 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db, + 0x58eb, 0x5962, 0x5a11, 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, + 0x601d, 0x6368, 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, + 0x6cd7, 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, + 0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df, + 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, 0x99df, + 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x5098, 0x522a, 0x5c71, 0x6563, + 0x6c55, 0x73ca, 0x7523, 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, + 0x6492, 0x6bba, 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, + 0x829f, 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, + 0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38, + 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, 0x7240, + 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, 0x8a73, 0x8c61, + 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, 0xf96c, 0x7a61, 0x7d22, + 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc, + 0x5e8f, 0x5eb6, 0x5f90, 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, + 0x66f8, 0x6816, 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, + 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, 0x9f20, + 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, 0x6c50, 0x6dc5, + 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, 0x4ed9, 0x50ca, 0x5148, + 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401, + 0x7444, 0x7487, 0x74bf, 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, + 0x81b3, 0x8239, 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, + 0x994d, 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, + 0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2, + 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, 0xf96e, + 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329, + 0x73f9, 0x76db, 0x7701, 0x7b6c, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, + 0x4e16, 0x52e2, 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, + 0x53ec, 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, + 0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2, + 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, 0x7d39, + 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, 0x92b7, 0x97f6, + 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, 0x7e8c, 0x8b16, 0x8d16, + 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b, + 0x609a, 0x677e, 0x6dde, 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, + 0x7051, 0x788e, 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, + 0x5782, 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x620d, + 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, 0x6c34, 0x6d19, + 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, 0x7626, 0x7761, 0x79c0, + 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331, + 0x8490, 0x84da, 0x85ea, 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, + 0x916c, 0x9296, 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, + 0x9996, 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, + 0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa, + 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, 0x73e3, + 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, 0x84f4, 0x8563, + 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0, + 0x9265, 0x5d07, 0x5d27, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, + 0x7fd2, 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, + 0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4, + 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, 0x6642, + 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, 0x84cd, 0x8996, + 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, 0x5bd4, 0x5f0f, 0x606f, + 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe, + 0x98df, 0x98fe, 0x4f38, 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, + 0x65b0, 0x6668, 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, + 0x85aa, 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, + 0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0xf972, 0x6df1, + 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, 0xf973, 0x96d9, 0x6c0f, + 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd, + 0x83aa, 0x86fe, 0x8859, 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, + 0x580a, 0x5cb3, 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, + 0x9102, 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, + 0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb, + 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, 0x95c7, + 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, 0x663b, 0x6b83, + 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf, + 0x788d, 0x827e, 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a, + 0x814b, 0x984d, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, + 0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31, + 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, 0xf977, + 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, 0x6518, 0x656d, + 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, 0x716c, 0x75d2, 0x760d, + 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0, + 0x967d, 0xf97e, 0x990a, 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, + 0x8a9e, 0x99ad, 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, + 0x5043, 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, + 0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88, + 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0xf983, 0x6b5f, 0x6c5d, + 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d, + 0xf986, 0x9918, 0xf987, 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, + 0x6613, 0xf98b, 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, + 0x56a5, 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, + 0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5, + 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, 0xf994, + 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, 0xf997, 0x884d, + 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, 0x9cf6, 0xf99c, 0xf99d, + 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, + 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, + 0x82d2, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449, + 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, 0x6620, + 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, 0x6fda, 0x701b, + 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, 0xf9ae, 0x74d4, 0x76c8, + 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348, + 0xf9b2, 0x9719, 0xf9b3, 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, + 0x66f3, 0x6c6d, 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, + 0xf9b6, 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, + 0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da, + 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, 0x6556, + 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x70cf, 0x71ac, 0x7352, 0x7b7d, + 0x8708, 0x8aa4, 0x9c32, 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, + 0x6eab, 0x7465, 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, + 0x74ee, 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, + 0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b, + 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, 0x7feb, + 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, 0x5f80, 0x65fa, + 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, 0x77ee, 0x5916, 0x5d6c, + 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d, + 0x5996, 0x59da, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, + 0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, + 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, 0x8981, + 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, 0x6d74, 0x7e1f, + 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, 0x57c7, 0x5889, 0x5bb9, + 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528, + 0x752c, 0x8073, 0x8338, 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, + 0x4f51, 0x5076, 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, + 0x611a, 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, + 0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5, + 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, 0x682f, + 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, 0x6b9e, 0x6f90, + 0x7189, 0x8018, 0x82b8, 0x8553, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, + 0x9b31, 0x4e90, 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, + 0x57a3, 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, + 0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060, + 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, 0x5049, + 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, 0x6690, 0x6e2d, + 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, 0x853f, 0x875f, 0x885b, + 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a, + 0xf9c7, 0x552f, 0x55a9, 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, + 0x60df, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, + 0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x6fe1, + 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, 0xf9ce, 0xf9cf, + 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, 0x8aed, 0x8e30, 0x8e42, + 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809, + 0xf9d2, 0x6bd3, 0x8089, 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, + 0xf9d5, 0xf9d6, 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, + 0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, + 0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59, + 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, 0x9091, + 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, 0x5b9c, 0x610f, + 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, 0x7fa9, 0x8264, 0x858f, + 0x87fb, 0x8863, 0x8abc, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, + 0xf9de, 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, + 0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5, + 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, 0xf9e8, + 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, 0xf9eb, 0xf9ec, + 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, 0x4eba, 0x4ec1, 0x5203, + 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, + 0xf9ee, 0xf9ef, 0x7d6a, 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, + 0x9777, 0xf9f2, 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, + 0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, + 0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0xf9f7, 0xf9f8, + 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, 0x523a, 0x54a8, 0x59c9, + 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e, + 0x7386, 0x74f7, 0x75b5, 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, + 0x85c9, 0x8aee, 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, + 0x707c, 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, + 0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a, + 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, 0x596c, + 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, 0x6a1f, 0x6aa3, + 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, 0x7ae0, 0x7ca7, 0x8178, + 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13, + 0x91ac, 0x9577, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, + 0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09, + 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, 0x5132, + 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, 0x6cae, 0x6e1a, + 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, 0x83f9, 0x8457, 0x85f7, + 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a, + 0x5ae1, 0x5bc2, 0x6458, 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, + 0x7b1b, 0x7c4d, 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, + 0x8e5f, 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, + 0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb, + 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x714e, 0x7420, 0x7530, + 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, + 0x8f3e, 0x8f49, 0x923f, 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, + 0x991e, 0x5207, 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, + 0x5360, 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, + 0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448, + 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, 0x653f, + 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, 0x6b63, 0x6c40, + 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, 0x738e, 0x73fd, 0x753a, + 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02, + 0x8aea, 0x8c9e, 0x912d, 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, + 0x9756, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d, + 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, 0x85ba, + 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, 0x984c, 0x9f4a, + 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, 0x5f6b, 0x63aa, 0x64cd, + 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15, + 0x6f6e, 0x7167, 0x71e5, 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, + 0x7a20, 0x7a95, 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, + 0x8a54, 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, + 0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9, + 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, 0x742e, + 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x8e2a, 0x8e35, 0x937e, 0x9418, + 0x4f50, 0x5750, 0x5de6, 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, + 0x505a, 0x59dd, 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, + 0x5eda, 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, + 0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db, + 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, 0x9444, + 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, 0x5bef, 0x5cfb, + 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, 0x756f, 0x7ae3, 0x8822, + 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd, + 0x537d, 0x6adb, 0x696b, 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, + 0x70dd, 0x7511, 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, + 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, 0x65e8, + 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, 0x77e5, 0x7825, + 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, 0x829d, 0x82b7, 0x8718, + 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54, + 0x8077, 0x5507, 0x55d4, 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, + 0x699b, 0x6b84, 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, + 0x76e1, 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, + 0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707, + 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, 0x79e9, + 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd, + 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, + 0x4e14, 0x4f98, 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, + 0x78cb, 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, + 0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da, + 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, 0x9910, + 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, 0x53c3, 0x5879, + 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, 0x8b96, 0x5009, 0x5021, + 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636, + 0x66a2, 0x69cd, 0x6ec4, 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, + 0x83d6, 0x84bc, 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, + 0x7db5, 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x8cac, + 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, 0x5c3a, 0x617d, + 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, 0x810a, 0x8e60, 0x965f, + 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, + 0x7394, 0x7a7f, 0x821b, 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, + 0x9621, 0x97c6, 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, + 0x8f1f, 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, + 0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252, + 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, 0x807d, + 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, 0x6d95, 0x6eef, + 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194, + 0x6284, 0x62db, 0x68a2, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, + 0x7901, 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, + 0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7, + 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, 0x5bf5, + 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, 0x64ae, 0x50ac, + 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, 0x6978, 0x6a1e, 0x6e6b, + 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b, + 0x919c, 0x9310, 0x9318, 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, + 0x795d, 0x7afa, 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, + 0x9010, 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, + 0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x8d05, 0x53d6, + 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, 0x805a, 0x8106, 0x81ed, + 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, + 0x5c64, 0x4f88, 0x5024, 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, + 0x6dc4, 0x71be, 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, + 0x7f6e, 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, + 0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88, + 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, 0x5feb, + 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, 0x62d6, 0x6736, + 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c, + 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422, + 0x7438, 0x8a17, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, + 0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d, + 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, 0x8569, + 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, 0x6cf0, 0x7b1e, + 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, 0x64c7, 0x6fa4, 0x6491, + 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db, + 0x7b52, 0x7d71, 0x901a, 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, + 0x5078, 0x5957, 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, + 0x5761, 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, + 0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742, + 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x962a, 0x516b, 0x53ed, + 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd, + 0x7a17, 0x8987, 0x8c9d, 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, + 0x504f, 0x6241, 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, + 0x8cb6, 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, + 0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305, + 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, 0x62b1, + 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, 0x812f, 0x82de, + 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, 0x98fd, 0x9b91, 0x5e45, + 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153, + 0x6753, 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, + 0x9a43, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c, + 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, 0x5fc5, + 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, 0x4e4f, 0x903c, + 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, 0x6cb3, 0x7455, 0x8377, + 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14, + 0x9db4, 0x5bd2, 0x6068, 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, + 0x7f55, 0x7ff0, 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, + 0x542b, 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, + 0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c, + 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, 0x6841, + 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0xfa08, 0xfa09, 0x9805, 0x4ea5, + 0x5055, 0x54b3, 0x5793, 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, + 0x7023, 0x87f9, 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, + 0x6838, 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, + 0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b, + 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, 0x5955, + 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, 0x665b, 0x6ceb, + 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, 0x7d43, 0x7d62, 0x7e23, + 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840, + 0x9801, 0x5acc, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, + 0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, + 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, 0x7469, + 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, 0x516e, 0x5f57, + 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, 0x978b, 0x4e4e, 0x4e92, + 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a, + 0x6667, 0x6beb, 0x6d69, 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, + 0x705d, 0x72d0, 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, + 0x80e1, 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, + 0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7, + 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, 0x6c5e, + 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, 0x5316, 0x548c, + 0x5b05, 0x6a3a, 0x706b, 0x7575, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, + 0x8b41, 0x8ca8, 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, + 0x4e38, 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, + 0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b, + 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, 0x60f6, + 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, 0x6ec9, 0x6f62, + 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, 0x8757, 0x9051, 0x968d, + 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666, + 0x6703, 0x6a9c, 0x6dee, 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, + 0x86d4, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, + 0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x723b, + 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, 0x543c, 0x5589, + 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, 0x9005, 0x52db, 0x52f3, + 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8, + 0x55a7, 0x6684, 0x714a, 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, + 0x63ee, 0x6689, 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, + 0x7566, 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, + 0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07, + 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, 0x8208, + 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, 0x5e0c, 0x6199, + 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, 0x71ba, 0x72a7, 0x79a7, + 0x7a00, 0x7fb2, 0x8a70, + 0/* End of table; # of entries=8741(0x2225)+1 */ + +}; +int ksc5601max=sizeof(tabksc5601)/sizeof(tabksc5601[0])-1; + /* # of entries in the table. */ diff --git a/src/cmd/tcs/ksc.h b/src/cmd/tcs/ksc.h new file mode 100644 index 00000000..cf8cf66f --- /dev/null +++ b/src/cmd/tcs/ksc.h @@ -0,0 +1,2 @@ +extern long tabksc5601[]; /* runes indexed by kuten */ +extern int ksc5601max; /* # of entries in the table. */ diff --git a/src/cmd/tcs/kuten208.c b/src/cmd/tcs/kuten208.c new file mode 100644 index 00000000..4f551526 --- /dev/null +++ b/src/cmd/tcs/kuten208.c @@ -0,0 +1,1055 @@ +#include "kuten208.h" + +long tabkuten208[KUTEN208MAX] = { + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x3000,0x3001,0x3002, +0xff0c,0xff0e,0x30fb,0xff1a,0xff1b,0xff1f,0xff01,0x309b, +0x309c,0x00b4,0xff40,0x00a8,0xff3e,0xffe3,0xff3f,0x30fd, +0x30fe,0x309d,0x309e,0x3003,0x4edd,0x3005,0x3006,0x3007, +0x30fc,0x2015,0x2010,0xff0f,0xff3c,0x301c,0x2225,0xff5c, +0x2026,0x2025,0x2018,0x2019,0x201c,0x201d,0xff08,0xff09, +0x3014,0x3015,0xff3b,0xff3d,0xff5b,0xff5d,0x3008,0x3009, +0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,0x3010,0x3011, +0xff0b,0xff0d,0x00b1,0x00d7,0x00f7,0xff1d,0x2260,0xff1c, +0xff1e,0x2266,0x2267,0x221e,0x2234,0x2642,0x2640,0x00b0, +0x2032,0x2033,0x2103,0xffe5,0xff04,0xffe0,0xffe1,0xff05, +0xff03,0xff06,0xff0a,0xff20,0x00a7,0x2606,0x2605,0x25cb, +0x25cf,0x25ce,0x25c7, -1, -1, -1, -1, -1, + -1,0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x25bd,0x25bc, +0x203b,0x3012,0x2192,0x2190,0x2191,0x2193,0x3013, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1,0x2208,0x220b,0x2286,0x2287,0x2282,0x2283, +0x222a,0x2229, -1, -1, -1, -1, -1, -1, + -1, -1,0x2227,0x2228,0xffe2,0x21d2,0x21d4,0x2200, +0x2203, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1,0x2220,0x22a5,0x2312,0x2202, +0x2207,0x2261,0x2252,0x226a,0x226b,0x221a,0x223d,0x221d, +0x2235,0x222b,0x222c, -1, -1, -1, -1, -1, + -1, -1,0x212b,0x2030,0x266f,0x266d,0x266a,0x2020, +0x2021,0x00b6, -1, -1, -1, -1,0x25ef, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1,0xff10,0xff11,0xff12,0xff13, +0xff14,0xff15,0xff16,0xff17,0xff18,0xff19, -1, -1, + -1, -1, -1, -1, -1,0xff21,0xff22,0xff23, +0xff24,0xff25,0xff26,0xff27,0xff28,0xff29,0xff2a,0xff2b, +0xff2c,0xff2d,0xff2e,0xff2f,0xff30,0xff31,0xff32,0xff33, +0xff34,0xff35,0xff36,0xff37,0xff38,0xff39,0xff3a, -1, + -1, -1, -1, -1, -1,0xff41,0xff42,0xff43, +0xff44,0xff45,0xff46,0xff47,0xff48,0xff49,0xff4a,0xff4b, +0xff4c,0xff4d,0xff4e,0xff4f,0xff50,0xff51,0xff52,0xff53, +0xff54,0xff55,0xff56,0xff57,0xff58,0xff59,0xff5a, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047, +0x3048,0x3049,0x304a,0x304b,0x304c,0x304d,0x304e,0x304f, +0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057, +0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f, +0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067, +0x3068,0x3069,0x306a,0x306b,0x306c,0x306d,0x306e,0x306f, +0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077, +0x3078,0x3079,0x307a,0x307b,0x307c,0x307d,0x307e,0x307f, +0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087, +0x3088,0x3089,0x308a,0x308b,0x308c,0x308d,0x308e,0x308f, +0x3090,0x3091,0x3092,0x3093, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x30a1,0x30a2,0x30a3, +0x30a4,0x30a5,0x30a6,0x30a7,0x30a8,0x30a9,0x30aa,0x30ab, +0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3, +0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb, +0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c3, +0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30ca,0x30cb, +0x30cc,0x30cd,0x30ce,0x30cf,0x30d0,0x30d1,0x30d2,0x30d3, +0x30d4,0x30d5,0x30d6,0x30d7,0x30d8,0x30d9,0x30da,0x30db, +0x30dc,0x30dd,0x30de,0x30df,0x30e0,0x30e1,0x30e2,0x30e3, +0x30e4,0x30e5,0x30e6,0x30e7,0x30e8,0x30e9,0x30ea,0x30eb, +0x30ec,0x30ed,0x30ee,0x30ef,0x30f0,0x30f1,0x30f2,0x30f3, +0x30f4,0x30f5,0x30f6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f, +0x03a0,0x03a1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7,0x03a8, +0x03a9, -1, -1, -1, -1, -1, -1, -1, + -1,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7, +0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf, +0x03c0,0x03c1,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7,0x03c8, +0x03c9, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,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, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x2500,0x2502,0x250c,0x2510,0x2518,0x2514,0x251c, +0x252c,0x2524,0x2534,0x253c,0x2501,0x2503,0x250f,0x2513, +0x251b,0x2517,0x2523,0x2533,0x252b,0x253b,0x254b,0x2520, +0x252f,0x2528,0x2537,0x253f,0x251d,0x2530,0x2525,0x2538, +0x2542, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x4e9c,0x5516,0x5a03,0x963f,0x54c0,0x611b,0x6328, +0x59f6,0x9022,0x8475,0x831c,0x7a50,0x60aa,0x63e1,0x6e25, +0x65ed,0x8466,0x82a6,0x9bf5,0x6893,0x5727,0x65a1,0x6271, +0x5b9b,0x59d0,0x867b,0x98f4,0x7d62,0x7dbe,0x9b8e,0x6216, +0x7c9f,0x88b7,0x5b89,0x5eb5,0x6309,0x6697,0x6848,0x95c7, +0x978d,0x674f,0x4ee5,0x4f0a,0x4f4d,0x4f9d,0x5049,0x56f2, +0x5937,0x59d4,0x5a01,0x5c09,0x60df,0x610f,0x6170,0x6613, +0x6905,0x70ba,0x754f,0x7570,0x79fb,0x7dad,0x7def,0x80c3, +0x840e,0x8863,0x8b02,0x9055,0x907a,0x533b,0x4e95,0x4ea5, +0x57df,0x80b2,0x90c1,0x78ef,0x4e00,0x58f1,0x6ea2,0x9038, +0x7a32,0x8328,0x828b,0x9c2f,0x5141,0x5370,0x54bd,0x54e1, +0x56e0,0x59fb,0x5f15,0x98f2,0x6deb,0x80e4,0x852d, -1, + -1, -1, -1, -1, -1,0x9662,0x9670,0x96a0, +0x97fb,0x540b,0x53f3,0x5b87,0x70cf,0x7fbd,0x8fc2,0x96e8, +0x536f,0x9d5c,0x7aba,0x4e11,0x7893,0x81fc,0x6e26,0x5618, +0x5504,0x6b1d,0x851a,0x9c3b,0x59e5,0x53a9,0x6d66,0x74dc, +0x958f,0x5642,0x4e91,0x904b,0x96f2,0x834f,0x990c,0x53e1, +0x55b6,0x5b30,0x5f71,0x6620,0x66f3,0x6804,0x6c38,0x6cf3, +0x6d29,0x745b,0x76c8,0x7a4e,0x9834,0x82f1,0x885b,0x8a60, +0x92ed,0x6db2,0x75ab,0x76ca,0x99c5,0x60a6,0x8b01,0x8d8a, +0x95b2,0x698e,0x53ad,0x5186,0x5712,0x5830,0x5944,0x5bb4, +0x5ef6,0x6028,0x63a9,0x63f4,0x6cbf,0x6f14,0x708e,0x7114, +0x7159,0x71d5,0x733f,0x7e01,0x8276,0x82d1,0x8597,0x9060, +0x925b,0x9d1b,0x5869,0x65bc,0x6c5a,0x7525,0x51f9,0x592e, +0x5965,0x5f80,0x5fdc, -1, -1, -1, -1, -1, + -1,0x62bc,0x65fa,0x6a2a,0x6b27,0x6bb4,0x738b,0x7fc1, +0x8956,0x9d2c,0x9d0e,0x9ec4,0x5ca1,0x6c96,0x837b,0x5104, +0x5c4b,0x61b6,0x81c6,0x6876,0x7261,0x4e59,0x4ffa,0x5378, +0x6069,0x6e29,0x7a4f,0x97f3,0x4e0b,0x5316,0x4eee,0x4f55, +0x4f3d,0x4fa1,0x4f73,0x52a0,0x53ef,0x5609,0x590f,0x5ac1, +0x5bb6,0x5be1,0x79d1,0x6687,0x679c,0x67b6,0x6b4c,0x6cb3, +0x706b,0x73c2,0x798d,0x79be,0x7a3c,0x7b87,0x82b1,0x82db, +0x8304,0x8377,0x83ef,0x83d3,0x8766,0x8ab2,0x5629,0x8ca8, +0x8fe6,0x904e,0x971e,0x868a,0x4fc4,0x5ce8,0x6211,0x7259, +0x753b,0x81e5,0x82bd,0x86fe,0x8cc0,0x96c5,0x9913,0x99d5, +0x4ecb,0x4f1a,0x89e3,0x56de,0x584a,0x58ca,0x5efb,0x5feb, +0x602a,0x6094,0x6062,0x61d0,0x6212,0x62d0,0x6539, -1, + -1, -1, -1, -1, -1,0x9b41,0x6666,0x68b0, +0x6d77,0x7070,0x754c,0x7686,0x7d75,0x82a5,0x87f9,0x958b, +0x968e,0x8c9d,0x51f1,0x52be,0x5916,0x54b3,0x5bb3,0x5d16, +0x6168,0x6982,0x6daf,0x788d,0x84cb,0x8857,0x8a72,0x93a7, +0x9ab8,0x6d6c,0x99a8,0x86d9,0x57a3,0x67ff,0x86ce,0x920e, +0x5283,0x5687,0x5404,0x5ed3,0x62e1,0x64b9,0x683c,0x6838, +0x6bbb,0x7372,0x78ba,0x7a6b,0x899a,0x89d2,0x8d6b,0x8f03, +0x90ed,0x95a3,0x9694,0x9769,0x5b66,0x5cb3,0x697d,0x984d, +0x984e,0x639b,0x7b20,0x6a2b,0x6a7f,0x68b6,0x9c0d,0x6f5f, +0x5272,0x559d,0x6070,0x62ec,0x6d3b,0x6e07,0x6ed1,0x845b, +0x8910,0x8f44,0x4e14,0x9c39,0x53f6,0x691b,0x6a3a,0x9784, +0x682a,0x515c,0x7ac3,0x84b2,0x91dc,0x938c,0x565b,0x9d28, +0x6822,0x8305,0x8431, -1, -1, -1, -1, -1, + -1,0x7ca5,0x5208,0x82c5,0x74e6,0x4e7e,0x4f83,0x51a0, +0x5bd2,0x520a,0x52d8,0x52e7,0x5dfb,0x559a,0x582a,0x59e6, +0x5b8c,0x5b98,0x5bdb,0x5e72,0x5e79,0x60a3,0x611f,0x6163, +0x61be,0x63db,0x6562,0x67d1,0x6853,0x68fa,0x6b3e,0x6b53, +0x6c57,0x6f22,0x6f97,0x6f45,0x74b0,0x7518,0x76e3,0x770b, +0x7aff,0x7ba1,0x7c21,0x7de9,0x7f36,0x7ff0,0x809d,0x8266, +0x839e,0x89b3,0x8acc,0x8cab,0x9084,0x9451,0x9593,0x9591, +0x95a2,0x9665,0x97d3,0x9928,0x8218,0x4e38,0x542b,0x5cb8, +0x5dcc,0x73a9,0x764c,0x773c,0x5ca9,0x7feb,0x8d0b,0x96c1, +0x9811,0x9854,0x9858,0x4f01,0x4f0e,0x5371,0x559c,0x5668, +0x57fa,0x5947,0x5b09,0x5bc4,0x5c90,0x5e0c,0x5e7e,0x5fcc, +0x63ee,0x673a,0x65d7,0x65e2,0x671f,0x68cb,0x68c4, -1, + -1, -1, -1, -1, -1,0x6a5f,0x5e30,0x6bc5, +0x6c17,0x6c7d,0x757f,0x7948,0x5b63,0x7a00,0x7d00,0x5fbd, +0x898f,0x8a18,0x8cb4,0x8d77,0x8ecc,0x8f1d,0x98e2,0x9a0e, +0x9b3c,0x4e80,0x507d,0x5100,0x5993,0x5b9c,0x622f,0x6280, +0x64ec,0x6b3a,0x72a0,0x7591,0x7947,0x7fa9,0x87fb,0x8abc, +0x8b70,0x63ac,0x83ca,0x97a0,0x5409,0x5403,0x55ab,0x6854, +0x6a58,0x8a70,0x7827,0x6775,0x9ecd,0x5374,0x5ba2,0x811a, +0x8650,0x9006,0x4e18,0x4e45,0x4ec7,0x4f11,0x53ca,0x5438, +0x5bae,0x5f13,0x6025,0x6551,0x673d,0x6c42,0x6c72,0x6ce3, +0x7078,0x7403,0x7a76,0x7aae,0x7b08,0x7d1a,0x7cfe,0x7d66, +0x65e7,0x725b,0x53bb,0x5c45,0x5de8,0x62d2,0x62e0,0x6319, +0x6e20,0x865a,0x8a31,0x8ddd,0x92f8,0x6f01,0x79a6,0x9b5a, +0x4ea8,0x4eab,0x4eac, -1, -1, -1, -1, -1, + -1,0x4f9b,0x4fa0,0x50d1,0x5147,0x7af6,0x5171,0x51f6, +0x5354,0x5321,0x537f,0x53eb,0x55ac,0x5883,0x5ce1,0x5f37, +0x5f4a,0x602f,0x6050,0x606d,0x631f,0x6559,0x6a4b,0x6cc1, +0x72c2,0x72ed,0x77ef,0x80f8,0x8105,0x8208,0x854e,0x90f7, +0x93e1,0x97ff,0x9957,0x9a5a,0x4ef0,0x51dd,0x5c2d,0x6681, +0x696d,0x5c40,0x66f2,0x6975,0x7389,0x6850,0x7c81,0x50c5, +0x52e4,0x5747,0x5dfe,0x9326,0x65a4,0x6b23,0x6b3d,0x7434, +0x7981,0x79bd,0x7b4b,0x7dca,0x82b9,0x83cc,0x887f,0x895f, +0x8b39,0x8fd1,0x91d1,0x541f,0x9280,0x4e5d,0x5036,0x53e5, +0x533a,0x72d7,0x7396,0x77e9,0x82e6,0x8eaf,0x99c6,0x99c8, +0x99d2,0x5177,0x611a,0x865e,0x55b0,0x7a7a,0x5076,0x5bd3, +0x9047,0x9685,0x4e32,0x6adb,0x91e7,0x5c51,0x5c48, -1, + -1, -1, -1, -1, -1,0x6398,0x7a9f,0x6c93, +0x9774,0x8f61,0x7aaa,0x718a,0x9688,0x7c82,0x6817,0x7e70, +0x6851,0x936c,0x52f2,0x541b,0x85ab,0x8a13,0x7fa4,0x8ecd, +0x90e1,0x5366,0x8888,0x7941,0x4fc2,0x50be,0x5211,0x5144, +0x5553,0x572d,0x73ea,0x578b,0x5951,0x5f62,0x5f84,0x6075, +0x6176,0x6167,0x61a9,0x63b2,0x643a,0x656c,0x666f,0x6842, +0x6e13,0x7566,0x7a3d,0x7cfb,0x7d4c,0x7d99,0x7e4b,0x7f6b, +0x830e,0x834a,0x86cd,0x8a08,0x8a63,0x8b66,0x8efd,0x981a, +0x9d8f,0x82b8,0x8fce,0x9be8,0x5287,0x621f,0x6483,0x6fc0, +0x9699,0x6841,0x5091,0x6b20,0x6c7a,0x6f54,0x7a74,0x7d50, +0x8840,0x8a23,0x6708,0x4ef6,0x5039,0x5026,0x5065,0x517c, +0x5238,0x5263,0x55a7,0x570f,0x5805,0x5acc,0x5efa,0x61b2, +0x61f8,0x62f3,0x6372, -1, -1, -1, -1, -1, + -1,0x691c,0x6a29,0x727d,0x72ac,0x732e,0x7814,0x786f, +0x7d79,0x770c,0x80a9,0x898b,0x8b19,0x8ce2,0x8ed2,0x9063, +0x9375,0x967a,0x9855,0x9a13,0x9e78,0x5143,0x539f,0x53b3, +0x5e7b,0x5f26,0x6e1b,0x6e90,0x7384,0x73fe,0x7d43,0x8237, +0x8a00,0x8afa,0x9650,0x4e4e,0x500b,0x53e4,0x547c,0x56fa, +0x59d1,0x5b64,0x5df1,0x5eab,0x5f27,0x6238,0x6545,0x67af, +0x6e56,0x72d0,0x7cca,0x88b4,0x80a1,0x80e1,0x83f0,0x864e, +0x8a87,0x8de8,0x9237,0x96c7,0x9867,0x9f13,0x4e94,0x4e92, +0x4f0d,0x5348,0x5449,0x543e,0x5a2f,0x5f8c,0x5fa1,0x609f, +0x68a7,0x6a8e,0x745a,0x7881,0x8a9e,0x8aa4,0x8b77,0x9190, +0x4e5e,0x9bc9,0x4ea4,0x4f7c,0x4faf,0x5019,0x5016,0x5149, +0x516c,0x529f,0x52b9,0x52fe,0x539a,0x53e3,0x5411, -1, + -1, -1, -1, -1, -1,0x540e,0x5589,0x5751, +0x57a2,0x597d,0x5b54,0x5b5d,0x5b8f,0x5de5,0x5de7,0x5df7, +0x5e78,0x5e83,0x5e9a,0x5eb7,0x5f18,0x6052,0x614c,0x6297, +0x62d8,0x63a7,0x653b,0x6602,0x6643,0x66f4,0x676d,0x6821, +0x6897,0x69cb,0x6c5f,0x6d2a,0x6d69,0x6e2f,0x6e9d,0x7532, +0x7687,0x786c,0x7a3f,0x7ce0,0x7d05,0x7d18,0x7d5e,0x7db1, +0x8015,0x8003,0x80af,0x80b1,0x8154,0x818f,0x822a,0x8352, +0x884c,0x8861,0x8b1b,0x8ca2,0x8cfc,0x90ca,0x9175,0x9271, +0x783f,0x92fc,0x95a4,0x964d,0x9805,0x9999,0x9ad8,0x9d3b, +0x525b,0x52ab,0x53f7,0x5408,0x58d5,0x62f7,0x6fe0,0x8c6a, +0x8f5f,0x9eb9,0x514b,0x523b,0x544a,0x56fd,0x7a40,0x9177, +0x9d60,0x9ed2,0x7344,0x6f09,0x8170,0x7511,0x5ffd,0x60da, +0x9aa8,0x72db,0x8fbc, -1, -1, -1, -1, -1, + -1,0x6b64,0x9803,0x4eca,0x56f0,0x5764,0x58be,0x5a5a, +0x6068,0x61c7,0x660f,0x6606,0x6839,0x68b1,0x6df7,0x75d5, +0x7d3a,0x826e,0x9b42,0x4e9b,0x4f50,0x53c9,0x5506,0x5d6f, +0x5de6,0x5dee,0x67fb,0x6c99,0x7473,0x7802,0x8a50,0x9396, +0x88df,0x5750,0x5ea7,0x632b,0x50b5,0x50ac,0x518d,0x6700, +0x54c9,0x585e,0x59bb,0x5bb0,0x5f69,0x624d,0x63a1,0x683d, +0x6b73,0x6e08,0x707d,0x91c7,0x7280,0x7815,0x7826,0x796d, +0x658e,0x7d30,0x83dc,0x88c1,0x8f09,0x969b,0x5264,0x5728, +0x6750,0x7f6a,0x8ca1,0x51b4,0x5742,0x962a,0x583a,0x698a, +0x80b4,0x54b2,0x5d0e,0x57fc,0x7895,0x9dfa,0x4f5c,0x524a, +0x548b,0x643e,0x6628,0x6714,0x67f5,0x7a84,0x7b56,0x7d22, +0x932f,0x685c,0x9bad,0x7b39,0x5319,0x518a,0x5237, -1, + -1, -1, -1, -1, -1,0x5bdf,0x62f6,0x64ae, +0x64e6,0x672d,0x6bba,0x85a9,0x96d1,0x7690,0x9bd6,0x634c, +0x9306,0x9bab,0x76bf,0x6652,0x4e09,0x5098,0x53c2,0x5c71, +0x60e8,0x6492,0x6563,0x685f,0x71e6,0x73ca,0x7523,0x7b97, +0x7e82,0x8695,0x8b83,0x8cdb,0x9178,0x9910,0x65ac,0x66ab, +0x6b8b,0x4ed5,0x4ed4,0x4f3a,0x4f7f,0x523a,0x53f8,0x53f2, +0x55e3,0x56db,0x58eb,0x59cb,0x59c9,0x59ff,0x5b50,0x5c4d, +0x5e02,0x5e2b,0x5fd7,0x601d,0x6307,0x652f,0x5b5c,0x65af, +0x65bd,0x65e8,0x679d,0x6b62,0x6b7b,0x6c0f,0x7345,0x7949, +0x79c1,0x7cf8,0x7d19,0x7d2b,0x80a2,0x8102,0x81f3,0x8996, +0x8a5e,0x8a69,0x8a66,0x8a8c,0x8aee,0x8cc7,0x8cdc,0x96cc, +0x98fc,0x6b6f,0x4e8b,0x4f3c,0x4f8d,0x5150,0x5b57,0x5bfa, +0x6148,0x6301,0x6642, -1, -1, -1, -1, -1, + -1,0x6b21,0x6ecb,0x6cbb,0x723e,0x74bd,0x75d4,0x78c1, +0x793a,0x800c,0x8033,0x81ea,0x8494,0x8f9e,0x6c50,0x9e7f, +0x5f0f,0x8b58,0x9d2b,0x7afa,0x8ef8,0x5b8d,0x96eb,0x4e03, +0x53f1,0x57f7,0x5931,0x5ac9,0x5ba4,0x6089,0x6e7f,0x6f06, +0x75be,0x8cea,0x5b9f,0x8500,0x7be0,0x5072,0x67f4,0x829d, +0x5c61,0x854a,0x7e1e,0x820e,0x5199,0x5c04,0x6368,0x8d66, +0x659c,0x716e,0x793e,0x7d17,0x8005,0x8b1d,0x8eca,0x906e, +0x86c7,0x90aa,0x501f,0x52fa,0x5c3a,0x6753,0x707c,0x7235, +0x914c,0x91c8,0x932b,0x82e5,0x5bc2,0x5f31,0x60f9,0x4e3b, +0x53d6,0x5b88,0x624b,0x6731,0x6b8a,0x72e9,0x73e0,0x7a2e, +0x816b,0x8da3,0x9152,0x9996,0x5112,0x53d7,0x546a,0x5bff, +0x6388,0x6a39,0x7dac,0x9700,0x56da,0x53ce,0x5468, -1, + -1, -1, -1, -1, -1,0x5b97,0x5c31,0x5dde, +0x4fee,0x6101,0x62fe,0x6d32,0x79c0,0x79cb,0x7d42,0x7e4d, +0x7fd2,0x81ed,0x821f,0x8490,0x8846,0x8972,0x8b90,0x8e74, +0x8f2f,0x9031,0x914b,0x916c,0x96c6,0x919c,0x4ec0,0x4f4f, +0x5145,0x5341,0x5f93,0x620e,0x67d4,0x6c41,0x6e0b,0x7363, +0x7e26,0x91cd,0x9283,0x53d4,0x5919,0x5bbf,0x6dd1,0x795d, +0x7e2e,0x7c9b,0x587e,0x719f,0x51fa,0x8853,0x8ff0,0x4fca, +0x5cfb,0x6625,0x77ac,0x7ae3,0x821c,0x99ff,0x51c6,0x5faa, +0x65ec,0x696f,0x6b89,0x6df3,0x6e96,0x6f64,0x76fe,0x7d14, +0x5de1,0x9075,0x9187,0x9806,0x51e6,0x521d,0x6240,0x6691, +0x66d9,0x6e1a,0x5eb6,0x7dd2,0x7f72,0x66f8,0x85af,0x85f7, +0x8af8,0x52a9,0x53d9,0x5973,0x5e8f,0x5f90,0x6055,0x92e4, +0x9664,0x50b7,0x511f, -1, -1, -1, -1, -1, + -1,0x52dd,0x5320,0x5347,0x53ec,0x54e8,0x5546,0x5531, +0x5617,0x5968,0x59be,0x5a3c,0x5bb5,0x5c06,0x5c0f,0x5c11, +0x5c1a,0x5e84,0x5e8a,0x5ee0,0x5f70,0x627f,0x6284,0x62db, +0x638c,0x6377,0x6607,0x660c,0x662d,0x6676,0x677e,0x68a2, +0x6a1f,0x6a35,0x6cbc,0x6d88,0x6e09,0x6e58,0x713c,0x7126, +0x7167,0x75c7,0x7701,0x785d,0x7901,0x7965,0x79f0,0x7ae0, +0x7b11,0x7ca7,0x7d39,0x8096,0x83d6,0x848b,0x8549,0x885d, +0x88f3,0x8a1f,0x8a3c,0x8a54,0x8a73,0x8c61,0x8cde,0x91a4, +0x9266,0x937e,0x9418,0x969c,0x9798,0x4e0a,0x4e08,0x4e1e, +0x4e57,0x5197,0x5270,0x57ce,0x5834,0x58cc,0x5b22,0x5e38, +0x60c5,0x64fe,0x6761,0x6756,0x6d44,0x72b6,0x7573,0x7a63, +0x84b8,0x8b72,0x91b8,0x9320,0x5631,0x57f4,0x98fe, -1, + -1, -1, -1, -1, -1,0x62ed,0x690d,0x6b96, +0x71ed,0x7e54,0x8077,0x8272,0x89e6,0x98df,0x8755,0x8fb1, +0x5c3b,0x4f38,0x4fe1,0x4fb5,0x5507,0x5a20,0x5bdd,0x5be9, +0x5fc3,0x614e,0x632f,0x65b0,0x664b,0x68ee,0x699b,0x6d78, +0x6df1,0x7533,0x75b9,0x771f,0x795e,0x79e6,0x7d33,0x81e3, +0x82af,0x85aa,0x89aa,0x8a3a,0x8eab,0x8f9b,0x9032,0x91dd, +0x9707,0x4eba,0x4ec1,0x5203,0x5875,0x58ec,0x5c0b,0x751a, +0x5c3d,0x814e,0x8a0a,0x8fc5,0x9663,0x976d,0x7b25,0x8acf, +0x9808,0x9162,0x56f3,0x53a8,0x9017,0x5439,0x5782,0x5e25, +0x63a8,0x6c34,0x708a,0x7761,0x7c8b,0x7fe0,0x8870,0x9042, +0x9154,0x9310,0x9318,0x968f,0x745e,0x9ac4,0x5d07,0x5d69, +0x6570,0x67a2,0x8da8,0x96db,0x636e,0x6749,0x6919,0x83c5, +0x9817,0x96c0,0x88fe, -1, -1, -1, -1, -1, + -1,0x6f84,0x647a,0x5bf8,0x4e16,0x702c,0x755d,0x662f, +0x51c4,0x5236,0x52e2,0x59d3,0x5f81,0x6027,0x6210,0x653f, +0x6574,0x661f,0x6674,0x68f2,0x6816,0x6b63,0x6e05,0x7272, +0x751f,0x76db,0x7cbe,0x8056,0x58f0,0x88fd,0x897f,0x8aa0, +0x8a93,0x8acb,0x901d,0x9192,0x9752,0x9759,0x6589,0x7a0e, +0x8106,0x96bb,0x5e2d,0x60dc,0x621a,0x65a5,0x6614,0x6790, +0x77f3,0x7a4d,0x7c4d,0x7e3e,0x810a,0x8cac,0x8d64,0x8de1, +0x8e5f,0x78a9,0x5207,0x62d9,0x63a5,0x6442,0x6298,0x8a2d, +0x7a83,0x7bc0,0x8aac,0x96ea,0x7d76,0x820c,0x8749,0x4ed9, +0x5148,0x5343,0x5360,0x5ba3,0x5c02,0x5c16,0x5ddd,0x6226, +0x6247,0x64b0,0x6813,0x6834,0x6cc9,0x6d45,0x6d17,0x67d3, +0x6f5c,0x714e,0x717d,0x65cb,0x7a7f,0x7bad,0x7dda, -1, + -1, -1, -1, -1, -1,0x7e4a,0x7fa8,0x817a, +0x821b,0x8239,0x85a6,0x8a6e,0x8cce,0x8df5,0x9078,0x9077, +0x92ad,0x9291,0x9583,0x9bae,0x524d,0x5584,0x6f38,0x7136, +0x5168,0x7985,0x7e55,0x81b3,0x7cce,0x564c,0x5851,0x5ca8, +0x63aa,0x66fe,0x66fd,0x695a,0x72d9,0x758f,0x758e,0x790e, +0x7956,0x79df,0x7c97,0x7d20,0x7d44,0x8607,0x8a34,0x963b, +0x9061,0x9f20,0x50e7,0x5275,0x53cc,0x53e2,0x5009,0x55aa, +0x58ee,0x594f,0x723d,0x5b8b,0x5c64,0x531d,0x60e3,0x60f3, +0x635c,0x6383,0x633f,0x63bb,0x64cd,0x65e9,0x66f9,0x5de3, +0x69cd,0x69fd,0x6f15,0x71e5,0x4e89,0x75e9,0x76f8,0x7a93, +0x7cdf,0x7dcf,0x7d9c,0x8061,0x8349,0x8358,0x846c,0x84bc, +0x85fb,0x88c5,0x8d70,0x9001,0x906d,0x9397,0x971c,0x9a12, +0x50cf,0x5897,0x618e, -1, -1, -1, -1, -1, + -1,0x81d3,0x8535,0x8d08,0x9020,0x4fc3,0x5074,0x5247, +0x5373,0x606f,0x6349,0x675f,0x6e2c,0x8db3,0x901f,0x4fd7, +0x5c5e,0x8cca,0x65cf,0x7d9a,0x5352,0x8896,0x5176,0x63c3, +0x5b58,0x5b6b,0x5c0a,0x640d,0x6751,0x905c,0x4ed6,0x591a, +0x592a,0x6c70,0x8a51,0x553e,0x5815,0x59a5,0x60f0,0x6253, +0x67c1,0x8235,0x6955,0x9640,0x99c4,0x9a28,0x4f53,0x5806, +0x5bfe,0x8010,0x5cb1,0x5e2f,0x5f85,0x6020,0x614b,0x6234, +0x66ff,0x6cf0,0x6ede,0x80ce,0x817f,0x82d4,0x888b,0x8cb8, +0x9000,0x902e,0x968a,0x9edb,0x9bdb,0x4ee3,0x53f0,0x5927, +0x7b2c,0x918d,0x984c,0x9df9,0x6edd,0x7027,0x5353,0x5544, +0x5b85,0x6258,0x629e,0x62d3,0x6ca2,0x6fef,0x7422,0x8a17, +0x9438,0x6fc1,0x8afe,0x8338,0x51e7,0x86f8,0x53ea, -1, + -1, -1, -1, -1, -1,0x53e9,0x4f46,0x9054, +0x8fb0,0x596a,0x8131,0x5dfd,0x7aea,0x8fbf,0x68da,0x8c37, +0x72f8,0x9c48,0x6a3d,0x8ab0,0x4e39,0x5358,0x5606,0x5766, +0x62c5,0x63a2,0x65e6,0x6b4e,0x6de1,0x6e5b,0x70ad,0x77ed, +0x7aef,0x7baa,0x7dbb,0x803d,0x80c6,0x86cb,0x8a95,0x935b, +0x56e3,0x58c7,0x5f3e,0x65ad,0x6696,0x6a80,0x6bb5,0x7537, +0x8ac7,0x5024,0x77e5,0x5730,0x5f1b,0x6065,0x667a,0x6c60, +0x75f4,0x7a1a,0x7f6e,0x81f4,0x8718,0x9045,0x99b3,0x7bc9, +0x755c,0x7af9,0x7b51,0x84c4,0x9010,0x79e9,0x7a92,0x8336, +0x5ae1,0x7740,0x4e2d,0x4ef2,0x5b99,0x5fe0,0x62bd,0x663c, +0x67f1,0x6ce8,0x866b,0x8877,0x8a3b,0x914e,0x92f3,0x99d0, +0x6a17,0x7026,0x732a,0x82e7,0x8457,0x8caf,0x4e01,0x5146, +0x51cb,0x558b,0x5bf5, -1, -1, -1, -1, -1, + -1,0x5e16,0x5e33,0x5e81,0x5f14,0x5f35,0x5f6b,0x5fb4, +0x61f2,0x6311,0x66a2,0x671d,0x6f6e,0x7252,0x753a,0x773a, +0x8074,0x8139,0x8178,0x8776,0x8abf,0x8adc,0x8d85,0x8df3, +0x929a,0x9577,0x9802,0x9ce5,0x52c5,0x6357,0x76f4,0x6715, +0x6c88,0x73cd,0x8cc3,0x93ae,0x9673,0x6d25,0x589c,0x690e, +0x69cc,0x8ffd,0x939a,0x75db,0x901a,0x585a,0x6802,0x63b4, +0x69fb,0x4f43,0x6f2c,0x67d8,0x8fbb,0x8526,0x7db4,0x9354, +0x693f,0x6f70,0x576a,0x58f7,0x5b2c,0x7d2c,0x722a,0x540a, +0x91e3,0x9db4,0x4ead,0x4f4e,0x505c,0x5075,0x5243,0x8c9e, +0x5448,0x5824,0x5b9a,0x5e1d,0x5e95,0x5ead,0x5ef7,0x5f1f, +0x608c,0x62b5,0x633a,0x63d0,0x68af,0x6c40,0x7887,0x798e, +0x7a0b,0x7de0,0x8247,0x8a02,0x8ae6,0x8e44,0x9013, -1, + -1, -1, -1, -1, -1,0x90b8,0x912d,0x91d8, +0x9f0e,0x6ce5,0x6458,0x64e2,0x6575,0x6ef4,0x7684,0x7b1b, +0x9069,0x93d1,0x6eba,0x54f2,0x5fb9,0x64a4,0x8f4d,0x8fed, +0x9244,0x5178,0x586b,0x5929,0x5c55,0x5e97,0x6dfb,0x7e8f, +0x751c,0x8cbc,0x8ee2,0x985b,0x70b9,0x4f1d,0x6bbf,0x6fb1, +0x7530,0x96fb,0x514e,0x5410,0x5835,0x5857,0x59ac,0x5c60, +0x5f92,0x6597,0x675c,0x6e21,0x767b,0x83df,0x8ced,0x9014, +0x90fd,0x934d,0x7825,0x783a,0x52aa,0x5ea6,0x571f,0x5974, +0x6012,0x5012,0x515a,0x51ac,0x51cd,0x5200,0x5510,0x5854, +0x5858,0x5957,0x5b95,0x5cf6,0x5d8b,0x60bc,0x6295,0x642d, +0x6771,0x6843,0x68bc,0x68df,0x76d7,0x6dd8,0x6e6f,0x6d9b, +0x706f,0x71c8,0x5f53,0x75d8,0x7977,0x7b49,0x7b54,0x7b52, +0x7cd6,0x7d71,0x5230, -1, -1, -1, -1, -1, + -1,0x8463,0x8569,0x85e4,0x8a0e,0x8b04,0x8c46,0x8e0f, +0x9003,0x900f,0x9419,0x9676,0x982d,0x9a30,0x95d8,0x50cd, +0x52d5,0x540c,0x5802,0x5c0e,0x61a7,0x649e,0x6d1e,0x77b3, +0x7ae5,0x80f4,0x8404,0x9053,0x9285,0x5ce0,0x9d07,0x533f, +0x5f97,0x5fb3,0x6d9c,0x7279,0x7763,0x79bf,0x7be4,0x6bd2, +0x72ec,0x8aad,0x6803,0x6a61,0x51f8,0x7a81,0x6934,0x5c4a, +0x9cf6,0x82eb,0x5bc5,0x9149,0x701e,0x5678,0x5c6f,0x60c7, +0x6566,0x6c8c,0x8c5a,0x9041,0x9813,0x5451,0x66c7,0x920d, +0x5948,0x90a3,0x5185,0x4e4d,0x51ea,0x8599,0x8b0e,0x7058, +0x637a,0x934b,0x6962,0x99b4,0x7e04,0x7577,0x5357,0x6960, +0x8edf,0x96e3,0x6c5d,0x4e8c,0x5c3c,0x5f10,0x8fe9,0x5302, +0x8cd1,0x8089,0x8679,0x5eff,0x65e5,0x4e73,0x5165, -1, + -1, -1, -1, -1, -1,0x5982,0x5c3f,0x97ee, +0x4efb,0x598a,0x5fcd,0x8a8d,0x6fe1,0x79b0,0x7962,0x5be7, +0x8471,0x732b,0x71b1,0x5e74,0x5ff5,0x637b,0x649a,0x71c3, +0x7c98,0x4e43,0x5efc,0x4e4b,0x57dc,0x56a2,0x60a9,0x6fc3, +0x7d0d,0x80fd,0x8133,0x81bf,0x8fb2,0x8997,0x86a4,0x5df4, +0x628a,0x64ad,0x8987,0x6777,0x6ce2,0x6d3e,0x7436,0x7834, +0x5a46,0x7f75,0x82ad,0x99ac,0x4ff3,0x5ec3,0x62dd,0x6392, +0x6557,0x676f,0x76c3,0x724c,0x80cc,0x80ba,0x8f29,0x914d, +0x500d,0x57f9,0x5a92,0x6885,0x6973,0x7164,0x72fd,0x8cb7, +0x58f2,0x8ce0,0x966a,0x9019,0x877f,0x79e4,0x77e7,0x8429, +0x4f2f,0x5265,0x535a,0x62cd,0x67cf,0x6cca,0x767d,0x7b94, +0x7c95,0x8236,0x8584,0x8feb,0x66dd,0x6f20,0x7206,0x7e1b, +0x83ab,0x99c1,0x9ea6, -1, -1, -1, -1, -1, + -1,0x51fd,0x7bb1,0x7872,0x7bb8,0x8087,0x7b48,0x6ae8, +0x5e61,0x808c,0x7551,0x7560,0x516b,0x9262,0x6e8c,0x767a, +0x9197,0x9aea,0x4f10,0x7f70,0x629c,0x7b4f,0x95a5,0x9ce9, +0x567a,0x5859,0x86e4,0x96bc,0x4f34,0x5224,0x534a,0x53cd, +0x53db,0x5e06,0x642c,0x6591,0x677f,0x6c3e,0x6c4e,0x7248, +0x72af,0x73ed,0x7554,0x7e41,0x822c,0x85e9,0x8ca9,0x7bc4, +0x91c6,0x7169,0x9812,0x98ef,0x633d,0x6669,0x756a,0x76e4, +0x78d0,0x8543,0x86ee,0x532a,0x5351,0x5426,0x5983,0x5e87, +0x5f7c,0x60b2,0x6249,0x6279,0x62ab,0x6590,0x6bd4,0x6ccc, +0x75b2,0x76ae,0x7891,0x79d8,0x7dcb,0x7f77,0x80a5,0x88ab, +0x8ab9,0x8cbb,0x907f,0x975e,0x98db,0x6a0b,0x7c38,0x5099, +0x5c3e,0x5fae,0x6787,0x6bd8,0x7435,0x7709,0x7f8e, -1, + -1, -1, -1, -1, -1,0x9f3b,0x67ca,0x7a17, +0x5339,0x758b,0x9aed,0x5f66,0x819d,0x83f1,0x8098,0x5f3c, +0x5fc5,0x7562,0x7b46,0x903c,0x6867,0x59eb,0x5a9b,0x7d10, +0x767e,0x8b2c,0x4ff5,0x5f6a,0x6a19,0x6c37,0x6f02,0x74e2, +0x7968,0x8868,0x8a55,0x8c79,0x5edf,0x63cf,0x75c5,0x79d2, +0x82d7,0x9328,0x92f2,0x849c,0x86ed,0x9c2d,0x54c1,0x5f6c, +0x658c,0x6d5c,0x7015,0x8ca7,0x8cd3,0x983b,0x654f,0x74f6, +0x4e0d,0x4ed8,0x57e0,0x592b,0x5a66,0x5bcc,0x51a8,0x5e03, +0x5e9c,0x6016,0x6276,0x6577,0x65a7,0x666e,0x6d6e,0x7236, +0x7b26,0x8150,0x819a,0x8299,0x8b5c,0x8ca0,0x8ce6,0x8d74, +0x961c,0x9644,0x4fae,0x64ab,0x6b66,0x821e,0x8461,0x856a, +0x90e8,0x5c01,0x6953,0x98a8,0x847a,0x8557,0x4f0f,0x526f, +0x5fa9,0x5e45,0x670d, -1, -1, -1, -1, -1, + -1,0x798f,0x8179,0x8907,0x8986,0x6df5,0x5f17,0x6255, +0x6cb8,0x4ecf,0x7269,0x9b92,0x5206,0x543b,0x5674,0x58b3, +0x61a4,0x626e,0x711a,0x596e,0x7c89,0x7cde,0x7d1b,0x96f0, +0x6587,0x805e,0x4e19,0x4f75,0x5175,0x5840,0x5e63,0x5e73, +0x5f0a,0x67c4,0x4e26,0x853d,0x9589,0x965b,0x7c73,0x9801, +0x50fb,0x58c1,0x7656,0x78a7,0x5225,0x77a5,0x8511,0x7b86, +0x504f,0x5909,0x7247,0x7bc7,0x7de8,0x8fba,0x8fd4,0x904d, +0x4fbf,0x52c9,0x5a29,0x5f01,0x97ad,0x4fdd,0x8217,0x92ea, +0x5703,0x6355,0x6b69,0x752b,0x88dc,0x8f14,0x7a42,0x52df, +0x5893,0x6155,0x620a,0x66ae,0x6bcd,0x7c3f,0x83e9,0x5023, +0x4ff8,0x5305,0x5446,0x5831,0x5949,0x5b9d,0x5cf0,0x5cef, +0x5d29,0x5e96,0x62b1,0x6367,0x653e,0x65b9,0x670b, -1, + -1, -1, -1, -1, -1,0x6cd5,0x6ce1,0x70f9, +0x7832,0x7e2b,0x80de,0x82b3,0x840c,0x84ec,0x8702,0x8912, +0x8a2a,0x8c4a,0x90a6,0x92d2,0x98fd,0x9cf3,0x9d6c,0x4e4f, +0x4ea1,0x508d,0x5256,0x574a,0x59a8,0x5e3d,0x5fd8,0x5fd9, +0x623f,0x66b4,0x671b,0x67d0,0x68d2,0x5192,0x7d21,0x80aa, +0x81a8,0x8b00,0x8c8c,0x8cbf,0x927e,0x9632,0x5420,0x982c, +0x5317,0x50d5,0x535c,0x58a8,0x64b2,0x6734,0x7267,0x7766, +0x7a46,0x91e6,0x52c3,0x6ca1,0x6b86,0x5800,0x5e4c,0x5954, +0x672c,0x7ffb,0x51e1,0x76c6,0x6469,0x78e8,0x9b54,0x9ebb, +0x57cb,0x59b9,0x6627,0x679a,0x6bce,0x54e9,0x69d9,0x5e55, +0x819c,0x6795,0x9baa,0x67fe,0x9c52,0x685d,0x4ea6,0x4fe3, +0x53c8,0x62b9,0x672b,0x6cab,0x8fc4,0x4fad,0x7e6d,0x9ebf, +0x4e07,0x6162,0x6e80, -1, -1, -1, -1, -1, + -1,0x6f2b,0x8513,0x5473,0x672a,0x9b45,0x5df3,0x7b95, +0x5cac,0x5bc6,0x871c,0x6e4a,0x84d1,0x7a14,0x8108,0x5999, +0x7c8d,0x6c11,0x7720,0x52d9,0x5922,0x7121,0x725f,0x77db, +0x9727,0x9d61,0x690b,0x5a7f,0x5a18,0x51a5,0x540d,0x547d, +0x660e,0x76df,0x8ff7,0x9298,0x9cf4,0x59ea,0x725d,0x6ec5, +0x514d,0x68c9,0x7dbf,0x7dec,0x9762,0x9eba,0x6478,0x6a21, +0x8302,0x5984,0x5b5f,0x6bdb,0x731b,0x76f2,0x7db2,0x8017, +0x8499,0x5132,0x6728,0x9ed9,0x76ee,0x6762,0x52ff,0x9905, +0x5c24,0x623b,0x7c7e,0x8cb0,0x554f,0x60b6,0x7d0b,0x9580, +0x5301,0x4e5f,0x51b6,0x591c,0x723a,0x8036,0x91ce,0x5f25, +0x77e2,0x5384,0x5f79,0x7d04,0x85ac,0x8a33,0x8e8d,0x9756, +0x67f3,0x85ae,0x9453,0x6109,0x6108,0x6cb9,0x7652, -1, + -1, -1, -1, -1, -1,0x8aed,0x8f38,0x552f, +0x4f51,0x512a,0x52c7,0x53cb,0x5ba5,0x5e7d,0x60a0,0x6182, +0x63d6,0x6709,0x67da,0x6e67,0x6d8c,0x7336,0x7337,0x7531, +0x7950,0x88d5,0x8a98,0x904a,0x9091,0x90f5,0x96c4,0x878d, +0x5915,0x4e88,0x4f59,0x4e0e,0x8a89,0x8f3f,0x9810,0x50ad, +0x5e7c,0x5996,0x5bb9,0x5eb8,0x63da,0x63fa,0x64c1,0x66dc, +0x694a,0x69d8,0x6d0b,0x6eb6,0x7194,0x7528,0x7aaf,0x7f8a, +0x8000,0x8449,0x84c9,0x8981,0x8b21,0x8e0a,0x9065,0x967d, +0x990a,0x617e,0x6291,0x6b32,0x6c83,0x6d74,0x7fcc,0x7ffc, +0x6dc0,0x7f85,0x87ba,0x88f8,0x6765,0x83b1,0x983c,0x96f7, +0x6d1b,0x7d61,0x843d,0x916a,0x4e71,0x5375,0x5d50,0x6b04, +0x6feb,0x85cd,0x862d,0x89a7,0x5229,0x540f,0x5c65,0x674e, +0x68a8,0x7406,0x7483, -1, -1, -1, -1, -1, + -1,0x75e2,0x88cf,0x88e1,0x91cc,0x96e2,0x9678,0x5f8b, +0x7387,0x7acb,0x844e,0x63a0,0x7565,0x5289,0x6d41,0x6e9c, +0x7409,0x7559,0x786b,0x7c92,0x9686,0x7adc,0x9f8d,0x4fb6, +0x616e,0x65c5,0x865c,0x4e86,0x4eae,0x50da,0x4e21,0x51cc, +0x5bee,0x6599,0x6881,0x6dbc,0x731f,0x7642,0x77ad,0x7a1c, +0x7ce7,0x826f,0x8ad2,0x907c,0x91cf,0x9675,0x9818,0x529b, +0x7dd1,0x502b,0x5398,0x6797,0x6dcb,0x71d0,0x7433,0x81e8, +0x8f2a,0x96a3,0x9c57,0x9e9f,0x7460,0x5841,0x6d99,0x7d2f, +0x985e,0x4ee4,0x4f36,0x4f8b,0x51b7,0x52b1,0x5dba,0x601c, +0x73b2,0x793c,0x82d3,0x9234,0x96b7,0x96f6,0x970a,0x9e97, +0x9f62,0x66a6,0x6b74,0x5217,0x52a3,0x70c8,0x88c2,0x5ec9, +0x604b,0x6190,0x6f23,0x7149,0x7c3e,0x7df4,0x806f, -1, + -1, -1, -1, -1, -1,0x84ee,0x9023,0x932c, +0x5442,0x9b6f,0x6ad3,0x7089,0x8cc2,0x8def,0x9732,0x52b4, +0x5a41,0x5eca,0x5f04,0x6717,0x697c,0x6994,0x6d6a,0x6f0f, +0x7262,0x72fc,0x7bed,0x8001,0x807e,0x874b,0x90ce,0x516d, +0x9e93,0x7984,0x808b,0x9332,0x8ad6,0x502d,0x548c,0x8a71, +0x6b6a,0x8cc4,0x8107,0x60d1,0x67a0,0x9df2,0x4e99,0x4e98, +0x9c10,0x8a6b,0x85c1,0x8568,0x6900,0x6e7e,0x7897,0x8155, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x5f0c,0x4e10,0x4e15,0x4e2a,0x4e31,0x4e36,0x4e3c, +0x4e3f,0x4e42,0x4e56,0x4e58,0x4e82,0x4e85,0x8c6b,0x4e8a, +0x8212,0x5f0d,0x4e8e,0x4e9e,0x4e9f,0x4ea0,0x4ea2,0x4eb0, +0x4eb3,0x4eb6,0x4ece,0x4ecd,0x4ec4,0x4ec6,0x4ec2,0x4ed7, +0x4ede,0x4eed,0x4edf,0x4ef7,0x4f09,0x4f5a,0x4f30,0x4f5b, +0x4f5d,0x4f57,0x4f47,0x4f76,0x4f88,0x4f8f,0x4f98,0x4f7b, +0x4f69,0x4f70,0x4f91,0x4f6f,0x4f86,0x4f96,0x5118,0x4fd4, +0x4fdf,0x4fce,0x4fd8,0x4fdb,0x4fd1,0x4fda,0x4fd0,0x4fe4, +0x4fe5,0x501a,0x5028,0x5014,0x502a,0x5025,0x5005,0x4f1c, +0x4ff6,0x5021,0x5029,0x502c,0x4ffe,0x4fef,0x5011,0x5006, +0x5043,0x5047,0x6703,0x5055,0x5050,0x5048,0x505a,0x5056, +0x506c,0x5078,0x5080,0x509a,0x5085,0x50b4,0x50b2, -1, + -1, -1, -1, -1, -1,0x50c9,0x50ca,0x50b3, +0x50c2,0x50d6,0x50de,0x50e5,0x50ed,0x50e3,0x50ee,0x50f9, +0x50f5,0x5109,0x5101,0x5102,0x5116,0x5115,0x5114,0x511a, +0x5121,0x513a,0x5137,0x513c,0x513b,0x513f,0x5140,0x5152, +0x514c,0x5154,0x5162,0x7af8,0x5169,0x516a,0x516e,0x5180, +0x5182,0x56d8,0x518c,0x5189,0x518f,0x5191,0x5193,0x5195, +0x5196,0x51a4,0x51a6,0x51a2,0x51a9,0x51aa,0x51ab,0x51b3, +0x51b1,0x51b2,0x51b0,0x51b5,0x51bd,0x51c5,0x51c9,0x51db, +0x51e0,0x8655,0x51e9,0x51ed,0x51f0,0x51f5,0x51fe,0x5204, +0x520b,0x5214,0x520e,0x5227,0x522a,0x522e,0x5233,0x5239, +0x524f,0x5244,0x524b,0x524c,0x525e,0x5254,0x526a,0x5274, +0x5269,0x5273,0x527f,0x527d,0x528d,0x5294,0x5292,0x5271, +0x5288,0x5291,0x8fa8, -1, -1, -1, -1, -1, + -1,0x8fa7,0x52ac,0x52ad,0x52bc,0x52b5,0x52c1,0x52cd, +0x52d7,0x52de,0x52e3,0x52e6,0x98ed,0x52e0,0x52f3,0x52f5, +0x52f8,0x52f9,0x5306,0x5308,0x7538,0x530d,0x5310,0x530f, +0x5315,0x531a,0x5323,0x532f,0x5331,0x5333,0x5338,0x5340, +0x5346,0x5345,0x4e17,0x5349,0x534d,0x51d6,0x535e,0x5369, +0x536e,0x5918,0x537b,0x5377,0x5382,0x5396,0x53a0,0x53a6, +0x53a5,0x53ae,0x53b0,0x53b6,0x53c3,0x7c12,0x96d9,0x53df, +0x66fc,0x71ee,0x53ee,0x53e8,0x53ed,0x53fa,0x5401,0x543d, +0x5440,0x542c,0x542d,0x543c,0x542e,0x5436,0x5429,0x541d, +0x544e,0x548f,0x5475,0x548e,0x545f,0x5471,0x5477,0x5470, +0x5492,0x547b,0x5480,0x5476,0x5484,0x5490,0x5486,0x54c7, +0x54a2,0x54b8,0x54a5,0x54ac,0x54c4,0x54c8,0x54a8, -1, + -1, -1, -1, -1, -1,0x54ab,0x54c2,0x54a4, +0x54be,0x54bc,0x54d8,0x54e5,0x54e6,0x550f,0x5514,0x54fd, +0x54ee,0x54ed,0x54fa,0x54e2,0x5539,0x5540,0x5563,0x554c, +0x552e,0x555c,0x5545,0x5556,0x5557,0x5538,0x5533,0x555d, +0x5599,0x5580,0x54af,0x558a,0x559f,0x557b,0x557e,0x5598, +0x559e,0x55ae,0x557c,0x5583,0x55a9,0x5587,0x55a8,0x55da, +0x55c5,0x55df,0x55c4,0x55dc,0x55e4,0x55d4,0x5614,0x55f7, +0x5616,0x55fe,0x55fd,0x561b,0x55f9,0x564e,0x5650,0x71df, +0x5634,0x5636,0x5632,0x5638,0x566b,0x5664,0x562f,0x566c, +0x566a,0x5686,0x5680,0x568a,0x56a0,0x5694,0x568f,0x56a5, +0x56ae,0x56b6,0x56b4,0x56c2,0x56bc,0x56c1,0x56c3,0x56c0, +0x56c8,0x56ce,0x56d1,0x56d3,0x56d7,0x56ee,0x56f9,0x5700, +0x56ff,0x5704,0x5709, -1, -1, -1, -1, -1, + -1,0x5708,0x570b,0x570d,0x5713,0x5718,0x5716,0x55c7, +0x571c,0x5726,0x5737,0x5738,0x574e,0x573b,0x5740,0x574f, +0x5769,0x57c0,0x5788,0x5761,0x577f,0x5789,0x5793,0x57a0, +0x57b3,0x57a4,0x57aa,0x57b0,0x57c3,0x57c6,0x57d4,0x57d2, +0x57d3,0x580a,0x57d6,0x57e3,0x580b,0x5819,0x581d,0x5872, +0x5821,0x5862,0x584b,0x5870,0x6bc0,0x5852,0x583d,0x5879, +0x5885,0x58b9,0x589f,0x58ab,0x58ba,0x58de,0x58bb,0x58b8, +0x58ae,0x58c5,0x58d3,0x58d1,0x58d7,0x58d9,0x58d8,0x58e5, +0x58dc,0x58e4,0x58df,0x58ef,0x58fa,0x58f9,0x58fb,0x58fc, +0x58fd,0x5902,0x590a,0x5910,0x591b,0x68a6,0x5925,0x592c, +0x592d,0x5932,0x5938,0x593e,0x7ad2,0x5955,0x5950,0x594e, +0x595a,0x5958,0x5962,0x5960,0x5967,0x596c,0x5969, -1, + -1, -1, -1, -1, -1,0x5978,0x5981,0x599d, +0x4f5e,0x4fab,0x59a3,0x59b2,0x59c6,0x59e8,0x59dc,0x598d, +0x59d9,0x59da,0x5a25,0x5a1f,0x5a11,0x5a1c,0x5a09,0x5a1a, +0x5a40,0x5a6c,0x5a49,0x5a35,0x5a36,0x5a62,0x5a6a,0x5a9a, +0x5abc,0x5abe,0x5acb,0x5ac2,0x5abd,0x5ae3,0x5ad7,0x5ae6, +0x5ae9,0x5ad6,0x5afa,0x5afb,0x5b0c,0x5b0b,0x5b16,0x5b32, +0x5ad0,0x5b2a,0x5b36,0x5b3e,0x5b43,0x5b45,0x5b40,0x5b51, +0x5b55,0x5b5a,0x5b5b,0x5b65,0x5b69,0x5b70,0x5b73,0x5b75, +0x5b78,0x6588,0x5b7a,0x5b80,0x5b83,0x5ba6,0x5bb8,0x5bc3, +0x5bc7,0x5bc9,0x5bd4,0x5bd0,0x5be4,0x5be6,0x5be2,0x5bde, +0x5be5,0x5beb,0x5bf0,0x5bf6,0x5bf3,0x5c05,0x5c07,0x5c08, +0x5c0d,0x5c13,0x5c20,0x5c22,0x5c28,0x5c38,0x5c39,0x5c41, +0x5c46,0x5c4e,0x5c53, -1, -1, -1, -1, -1, + -1,0x5c50,0x5c4f,0x5b71,0x5c6c,0x5c6e,0x4e62,0x5c76, +0x5c79,0x5c8c,0x5c91,0x5c94,0x599b,0x5cab,0x5cbb,0x5cb6, +0x5cbc,0x5cb7,0x5cc5,0x5cbe,0x5cc7,0x5cd9,0x5ce9,0x5cfd, +0x5cfa,0x5ced,0x5d8c,0x5cea,0x5d0b,0x5d15,0x5d17,0x5d5c, +0x5d1f,0x5d1b,0x5d11,0x5d14,0x5d22,0x5d1a,0x5d19,0x5d18, +0x5d4c,0x5d52,0x5d4e,0x5d4b,0x5d6c,0x5d73,0x5d76,0x5d87, +0x5d84,0x5d82,0x5da2,0x5d9d,0x5dac,0x5dae,0x5dbd,0x5d90, +0x5db7,0x5dbc,0x5dc9,0x5dcd,0x5dd3,0x5dd2,0x5dd6,0x5ddb, +0x5deb,0x5df2,0x5df5,0x5e0b,0x5e1a,0x5e19,0x5e11,0x5e1b, +0x5e36,0x5e37,0x5e44,0x5e43,0x5e40,0x5e4e,0x5e57,0x5e54, +0x5e5f,0x5e62,0x5e64,0x5e47,0x5e75,0x5e76,0x5e7a,0x9ebc, +0x5e7f,0x5ea0,0x5ec1,0x5ec2,0x5ec8,0x5ed0,0x5ecf, -1, + -1, -1, -1, -1, -1,0x5ed6,0x5ee3,0x5edd, +0x5eda,0x5edb,0x5ee2,0x5ee1,0x5ee8,0x5ee9,0x5eec,0x5ef1, +0x5ef3,0x5ef0,0x5ef4,0x5ef8,0x5efe,0x5f03,0x5f09,0x5f5d, +0x5f5c,0x5f0b,0x5f11,0x5f16,0x5f29,0x5f2d,0x5f38,0x5f41, +0x5f48,0x5f4c,0x5f4e,0x5f2f,0x5f51,0x5f56,0x5f57,0x5f59, +0x5f61,0x5f6d,0x5f73,0x5f77,0x5f83,0x5f82,0x5f7f,0x5f8a, +0x5f88,0x5f91,0x5f87,0x5f9e,0x5f99,0x5f98,0x5fa0,0x5fa8, +0x5fad,0x5fbc,0x5fd6,0x5ffb,0x5fe4,0x5ff8,0x5ff1,0x5fdd, +0x60b3,0x5fff,0x6021,0x6060,0x6019,0x6010,0x6029,0x600e, +0x6031,0x601b,0x6015,0x602b,0x6026,0x600f,0x603a,0x605a, +0x6041,0x606a,0x6077,0x605f,0x604a,0x6046,0x604d,0x6063, +0x6043,0x6064,0x6042,0x606c,0x606b,0x6059,0x6081,0x608d, +0x60e7,0x6083,0x609a, -1, -1, -1, -1, -1, + -1,0x6084,0x609b,0x6096,0x6097,0x6092,0x60a7,0x608b, +0x60e1,0x60b8,0x60e0,0x60d3,0x60b4,0x5ff0,0x60bd,0x60c6, +0x60b5,0x60d8,0x614d,0x6115,0x6106,0x60f6,0x60f7,0x6100, +0x60f4,0x60fa,0x6103,0x6121,0x60fb,0x60f1,0x610d,0x610e, +0x6147,0x613e,0x6128,0x6127,0x614a,0x613f,0x613c,0x612c, +0x6134,0x613d,0x6142,0x6144,0x6173,0x6177,0x6158,0x6159, +0x615a,0x616b,0x6174,0x616f,0x6165,0x6171,0x615f,0x615d, +0x6153,0x6175,0x6199,0x6196,0x6187,0x61ac,0x6194,0x619a, +0x618a,0x6191,0x61ab,0x61ae,0x61cc,0x61ca,0x61c9,0x61f7, +0x61c8,0x61c3,0x61c6,0x61ba,0x61cb,0x7f79,0x61cd,0x61e6, +0x61e3,0x61f6,0x61fa,0x61f4,0x61ff,0x61fd,0x61fc,0x61fe, +0x6200,0x6208,0x6209,0x620d,0x620c,0x6214,0x621b, -1, + -1, -1, -1, -1, -1,0x621e,0x6221,0x622a, +0x622e,0x6230,0x6232,0x6233,0x6241,0x624e,0x625e,0x6263, +0x625b,0x6260,0x6268,0x627c,0x6282,0x6289,0x627e,0x6292, +0x6293,0x6296,0x62d4,0x6283,0x6294,0x62d7,0x62d1,0x62bb, +0x62cf,0x62ff,0x62c6,0x64d4,0x62c8,0x62dc,0x62cc,0x62ca, +0x62c2,0x62c7,0x629b,0x62c9,0x630c,0x62ee,0x62f1,0x6327, +0x6302,0x6308,0x62ef,0x62f5,0x6350,0x633e,0x634d,0x641c, +0x634f,0x6396,0x638e,0x6380,0x63ab,0x6376,0x63a3,0x638f, +0x6389,0x639f,0x63b5,0x636b,0x6369,0x63be,0x63e9,0x63c0, +0x63c6,0x63e3,0x63c9,0x63d2,0x63f6,0x63c4,0x6416,0x6434, +0x6406,0x6413,0x6426,0x6436,0x651d,0x6417,0x6428,0x640f, +0x6467,0x646f,0x6476,0x644e,0x652a,0x6495,0x6493,0x64a5, +0x64a9,0x6488,0x64bc, -1, -1, -1, -1, -1, + -1,0x64da,0x64d2,0x64c5,0x64c7,0x64bb,0x64d8,0x64c2, +0x64f1,0x64e7,0x8209,0x64e0,0x64e1,0x62ac,0x64e3,0x64ef, +0x652c,0x64f6,0x64f4,0x64f2,0x64fa,0x6500,0x64fd,0x6518, +0x651c,0x6505,0x6524,0x6523,0x652b,0x6534,0x6535,0x6537, +0x6536,0x6538,0x754b,0x6548,0x6556,0x6555,0x654d,0x6558, +0x655e,0x655d,0x6572,0x6578,0x6582,0x6583,0x8b8a,0x659b, +0x659f,0x65ab,0x65b7,0x65c3,0x65c6,0x65c1,0x65c4,0x65cc, +0x65d2,0x65db,0x65d9,0x65e0,0x65e1,0x65f1,0x6772,0x660a, +0x6603,0x65fb,0x6773,0x6635,0x6636,0x6634,0x661c,0x664f, +0x6644,0x6649,0x6641,0x665e,0x665d,0x6664,0x6667,0x6668, +0x665f,0x6662,0x6670,0x6683,0x6688,0x668e,0x6689,0x6684, +0x6698,0x669d,0x66c1,0x66b9,0x66c9,0x66be,0x66bc, -1, + -1, -1, -1, -1, -1,0x66c4,0x66b8,0x66d6, +0x66da,0x66e0,0x663f,0x66e6,0x66e9,0x66f0,0x66f5,0x66f7, +0x670f,0x6716,0x671e,0x6726,0x6727,0x9738,0x672e,0x673f, +0x6736,0x6741,0x6738,0x6737,0x6746,0x675e,0x6760,0x6759, +0x6763,0x6764,0x6789,0x6770,0x67a9,0x677c,0x676a,0x678c, +0x678b,0x67a6,0x67a1,0x6785,0x67b7,0x67ef,0x67b4,0x67ec, +0x67b3,0x67e9,0x67b8,0x67e4,0x67de,0x67dd,0x67e2,0x67ee, +0x67b9,0x67ce,0x67c6,0x67e7,0x6a9c,0x681e,0x6846,0x6829, +0x6840,0x684d,0x6832,0x684e,0x68b3,0x682b,0x6859,0x6863, +0x6877,0x687f,0x689f,0x688f,0x68ad,0x6894,0x689d,0x689b, +0x6883,0x6aae,0x68b9,0x6874,0x68b5,0x68a0,0x68ba,0x690f, +0x688d,0x687e,0x6901,0x68ca,0x6908,0x68d8,0x6922,0x6926, +0x68e1,0x690c,0x68cd, -1, -1, -1, -1, -1, + -1,0x68d4,0x68e7,0x68d5,0x6936,0x6912,0x6904,0x68d7, +0x68e3,0x6925,0x68f9,0x68e0,0x68ef,0x6928,0x692a,0x691a, +0x6923,0x6921,0x68c6,0x6979,0x6977,0x695c,0x6978,0x696b, +0x6954,0x697e,0x696e,0x6939,0x6974,0x693d,0x6959,0x6930, +0x6961,0x695e,0x695d,0x6981,0x696a,0x69b2,0x69ae,0x69d0, +0x69bf,0x69c1,0x69d3,0x69be,0x69ce,0x5be8,0x69ca,0x69dd, +0x69bb,0x69c3,0x69a7,0x6a2e,0x6991,0x69a0,0x699c,0x6995, +0x69b4,0x69de,0x69e8,0x6a02,0x6a1b,0x69ff,0x6b0a,0x69f9, +0x69f2,0x69e7,0x6a05,0x69b1,0x6a1e,0x69ed,0x6a14,0x69eb, +0x6a0a,0x6a12,0x6ac1,0x6a23,0x6a13,0x6a44,0x6a0c,0x6a72, +0x6a36,0x6a78,0x6a47,0x6a62,0x6a59,0x6a66,0x6a48,0x6a38, +0x6a22,0x6a90,0x6a8d,0x6aa0,0x6a84,0x6aa2,0x6aa3, -1, + -1, -1, -1, -1, -1,0x6a97,0x8617,0x6abb, +0x6ac3,0x6ac2,0x6ab8,0x6ab3,0x6aac,0x6ade,0x6ad1,0x6adf, +0x6aaa,0x6ada,0x6aea,0x6afb,0x6b05,0x8616,0x6afa,0x6b12, +0x6b16,0x9b31,0x6b1f,0x6b38,0x6b37,0x76dc,0x6b39,0x98ee, +0x6b47,0x6b43,0x6b49,0x6b50,0x6b59,0x6b54,0x6b5b,0x6b5f, +0x6b61,0x6b78,0x6b79,0x6b7f,0x6b80,0x6b84,0x6b83,0x6b8d, +0x6b98,0x6b95,0x6b9e,0x6ba4,0x6baa,0x6bab,0x6baf,0x6bb2, +0x6bb1,0x6bb3,0x6bb7,0x6bbc,0x6bc6,0x6bcb,0x6bd3,0x6bdf, +0x6bec,0x6beb,0x6bf3,0x6bef,0x9ebe,0x6c08,0x6c13,0x6c14, +0x6c1b,0x6c24,0x6c23,0x6c5e,0x6c55,0x6c62,0x6c6a,0x6c82, +0x6c8d,0x6c9a,0x6c81,0x6c9b,0x6c7e,0x6c68,0x6c73,0x6c92, +0x6c90,0x6cc4,0x6cf1,0x6cd3,0x6cbd,0x6cd7,0x6cc5,0x6cdd, +0x6cae,0x6cb1,0x6cbe, -1, -1, -1, -1, -1, + -1,0x6cba,0x6cdb,0x6cef,0x6cd9,0x6cea,0x6d1f,0x884d, +0x6d36,0x6d2b,0x6d3d,0x6d38,0x6d19,0x6d35,0x6d33,0x6d12, +0x6d0c,0x6d63,0x6d93,0x6d64,0x6d5a,0x6d79,0x6d59,0x6d8e, +0x6d95,0x6fe4,0x6d85,0x6df9,0x6e15,0x6e0a,0x6db5,0x6dc7, +0x6de6,0x6db8,0x6dc6,0x6dec,0x6dde,0x6dcc,0x6de8,0x6dd2, +0x6dc5,0x6dfa,0x6dd9,0x6de4,0x6dd5,0x6dea,0x6dee,0x6e2d, +0x6e6e,0x6e2e,0x6e19,0x6e72,0x6e5f,0x6e3e,0x6e23,0x6e6b, +0x6e2b,0x6e76,0x6e4d,0x6e1f,0x6e43,0x6e3a,0x6e4e,0x6e24, +0x6eff,0x6e1d,0x6e38,0x6e82,0x6eaa,0x6e98,0x6ec9,0x6eb7, +0x6ed3,0x6ebd,0x6eaf,0x6ec4,0x6eb2,0x6ed4,0x6ed5,0x6e8f, +0x6ea5,0x6ec2,0x6e9f,0x6f41,0x6f11,0x704c,0x6eec,0x6ef8, +0x6efe,0x6f3f,0x6ef2,0x6f31,0x6eef,0x6f32,0x6ecc, -1, + -1, -1, -1, -1, -1,0x6f3e,0x6f13,0x6ef7, +0x6f86,0x6f7a,0x6f78,0x6f81,0x6f80,0x6f6f,0x6f5b,0x6ff3, +0x6f6d,0x6f82,0x6f7c,0x6f58,0x6f8e,0x6f91,0x6fc2,0x6f66, +0x6fb3,0x6fa3,0x6fa1,0x6fa4,0x6fb9,0x6fc6,0x6faa,0x6fdf, +0x6fd5,0x6fec,0x6fd4,0x6fd8,0x6ff1,0x6fee,0x6fdb,0x7009, +0x700b,0x6ffa,0x7011,0x7001,0x700f,0x6ffe,0x701b,0x701a, +0x6f74,0x701d,0x7018,0x701f,0x7030,0x703e,0x7032,0x7051, +0x7063,0x7099,0x7092,0x70af,0x70f1,0x70ac,0x70b8,0x70b3, +0x70ae,0x70df,0x70cb,0x70dd,0x70d9,0x7109,0x70fd,0x711c, +0x7119,0x7165,0x7155,0x7188,0x7166,0x7162,0x714c,0x7156, +0x716c,0x718f,0x71fb,0x7184,0x7195,0x71a8,0x71ac,0x71d7, +0x71b9,0x71be,0x71d2,0x71c9,0x71d4,0x71ce,0x71e0,0x71ec, +0x71e7,0x71f5,0x71fc, -1, -1, -1, -1, -1, + -1,0x71f9,0x71ff,0x720d,0x7210,0x721b,0x7228,0x722d, +0x722c,0x7230,0x7232,0x723b,0x723c,0x723f,0x7240,0x7246, +0x724b,0x7258,0x7274,0x727e,0x7282,0x7281,0x7287,0x7292, +0x7296,0x72a2,0x72a7,0x72b9,0x72b2,0x72c3,0x72c6,0x72c4, +0x72ce,0x72d2,0x72e2,0x72e0,0x72e1,0x72f9,0x72f7,0x500f, +0x7317,0x730a,0x731c,0x7316,0x731d,0x7334,0x732f,0x7329, +0x7325,0x733e,0x734e,0x734f,0x9ed8,0x7357,0x736a,0x7368, +0x7370,0x7378,0x7375,0x737b,0x737a,0x73c8,0x73b3,0x73ce, +0x73bb,0x73c0,0x73e5,0x73ee,0x73de,0x74a2,0x7405,0x746f, +0x7425,0x73f8,0x7432,0x743a,0x7455,0x743f,0x745f,0x7459, +0x7441,0x745c,0x7469,0x7470,0x7463,0x746a,0x7476,0x747e, +0x748b,0x749e,0x74a7,0x74ca,0x74cf,0x74d4,0x73f1, -1, + -1, -1, -1, -1, -1,0x74e0,0x74e3,0x74e7, +0x74e9,0x74ee,0x74f2,0x74f0,0x74f1,0x74f8,0x74f7,0x7504, +0x7503,0x7505,0x750c,0x750e,0x750d,0x7515,0x7513,0x751e, +0x7526,0x752c,0x753c,0x7544,0x754d,0x754a,0x7549,0x755b, +0x7546,0x755a,0x7569,0x7564,0x7567,0x756b,0x756d,0x7578, +0x7576,0x7586,0x7587,0x7574,0x758a,0x7589,0x7582,0x7594, +0x759a,0x759d,0x75a5,0x75a3,0x75c2,0x75b3,0x75c3,0x75b5, +0x75bd,0x75b8,0x75bc,0x75b1,0x75cd,0x75ca,0x75d2,0x75d9, +0x75e3,0x75de,0x75fe,0x75ff,0x75fc,0x7601,0x75f0,0x75fa, +0x75f2,0x75f3,0x760b,0x760d,0x7609,0x761f,0x7627,0x7620, +0x7621,0x7622,0x7624,0x7634,0x7630,0x763b,0x7647,0x7648, +0x7646,0x765c,0x7658,0x7661,0x7662,0x7668,0x7669,0x766a, +0x7667,0x766c,0x7670, -1, -1, -1, -1, -1, + -1,0x7672,0x7676,0x7678,0x767c,0x7680,0x7683,0x7688, +0x768b,0x768e,0x7696,0x7693,0x7699,0x769a,0x76b0,0x76b4, +0x76b8,0x76b9,0x76ba,0x76c2,0x76cd,0x76d6,0x76d2,0x76de, +0x76e1,0x76e5,0x76e7,0x76ea,0x862f,0x76fb,0x7708,0x7707, +0x7704,0x7729,0x7724,0x771e,0x7725,0x7726,0x771b,0x7737, +0x7738,0x7747,0x775a,0x7768,0x776b,0x775b,0x7765,0x777f, +0x777e,0x7779,0x778e,0x778b,0x7791,0x77a0,0x779e,0x77b0, +0x77b6,0x77b9,0x77bf,0x77bc,0x77bd,0x77bb,0x77c7,0x77cd, +0x77d7,0x77da,0x77dc,0x77e3,0x77ee,0x77fc,0x780c,0x7812, +0x7926,0x7820,0x792a,0x7845,0x788e,0x7874,0x7886,0x787c, +0x789a,0x788c,0x78a3,0x78b5,0x78aa,0x78af,0x78d1,0x78c6, +0x78cb,0x78d4,0x78be,0x78bc,0x78c5,0x78ca,0x78ec, -1, + -1, -1, -1, -1, -1,0x78e7,0x78da,0x78fd, +0x78f4,0x7907,0x7912,0x7911,0x7919,0x792c,0x792b,0x7940, +0x7960,0x7957,0x795f,0x795a,0x7955,0x7953,0x797a,0x797f, +0x798a,0x799d,0x79a7,0x9f4b,0x79aa,0x79ae,0x79b3,0x79b9, +0x79ba,0x79c9,0x79d5,0x79e7,0x79ec,0x79e1,0x79e3,0x7a08, +0x7a0d,0x7a18,0x7a19,0x7a20,0x7a1f,0x7980,0x7a31,0x7a3b, +0x7a3e,0x7a37,0x7a43,0x7a57,0x7a49,0x7a61,0x7a62,0x7a69, +0x9f9d,0x7a70,0x7a79,0x7a7d,0x7a88,0x7a97,0x7a95,0x7a98, +0x7a96,0x7aa9,0x7ac8,0x7ab0,0x7ab6,0x7ac5,0x7ac4,0x7abf, +0x9083,0x7ac7,0x7aca,0x7acd,0x7acf,0x7ad5,0x7ad3,0x7ad9, +0x7ada,0x7add,0x7ae1,0x7ae2,0x7ae6,0x7aed,0x7af0,0x7b02, +0x7b0f,0x7b0a,0x7b06,0x7b33,0x7b18,0x7b19,0x7b1e,0x7b35, +0x7b28,0x7b36,0x7b50, -1, -1, -1, -1, -1, + -1,0x7b7a,0x7b04,0x7b4d,0x7b0b,0x7b4c,0x7b45,0x7b75, +0x7b65,0x7b74,0x7b67,0x7b70,0x7b71,0x7b6c,0x7b6e,0x7b9d, +0x7b98,0x7b9f,0x7b8d,0x7b9c,0x7b9a,0x7b8b,0x7b92,0x7b8f, +0x7b5d,0x7b99,0x7bcb,0x7bc1,0x7bcc,0x7bcf,0x7bb4,0x7bc6, +0x7bdd,0x7be9,0x7c11,0x7c14,0x7be6,0x7be5,0x7c60,0x7c00, +0x7c07,0x7c13,0x7bf3,0x7bf7,0x7c17,0x7c0d,0x7bf6,0x7c23, +0x7c27,0x7c2a,0x7c1f,0x7c37,0x7c2b,0x7c3d,0x7c4c,0x7c43, +0x7c54,0x7c4f,0x7c40,0x7c50,0x7c58,0x7c5f,0x7c64,0x7c56, +0x7c65,0x7c6c,0x7c75,0x7c83,0x7c90,0x7ca4,0x7cad,0x7ca2, +0x7cab,0x7ca1,0x7ca8,0x7cb3,0x7cb2,0x7cb1,0x7cae,0x7cb9, +0x7cbd,0x7cc0,0x7cc5,0x7cc2,0x7cd8,0x7cd2,0x7cdc,0x7ce2, +0x9b3b,0x7cef,0x7cf2,0x7cf4,0x7cf6,0x7cfa,0x7d06, -1, + -1, -1, -1, -1, -1,0x7d02,0x7d1c,0x7d15, +0x7d0a,0x7d45,0x7d4b,0x7d2e,0x7d32,0x7d3f,0x7d35,0x7d46, +0x7d73,0x7d56,0x7d4e,0x7d72,0x7d68,0x7d6e,0x7d4f,0x7d63, +0x7d93,0x7d89,0x7d5b,0x7d8f,0x7d7d,0x7d9b,0x7dba,0x7dae, +0x7da3,0x7db5,0x7dc7,0x7dbd,0x7dab,0x7e3d,0x7da2,0x7daf, +0x7ddc,0x7db8,0x7d9f,0x7db0,0x7dd8,0x7ddd,0x7de4,0x7dde, +0x7dfb,0x7df2,0x7de1,0x7e05,0x7e0a,0x7e23,0x7e21,0x7e12, +0x7e31,0x7e1f,0x7e09,0x7e0b,0x7e22,0x7e46,0x7e66,0x7e3b, +0x7e35,0x7e39,0x7e43,0x7e37,0x7e32,0x7e3a,0x7e67,0x7e5d, +0x7e56,0x7e5e,0x7e59,0x7e5a,0x7e79,0x7e6a,0x7e69,0x7e7c, +0x7e7b,0x7e83,0x7dd5,0x7e7d,0x8fae,0x7e7f,0x7e88,0x7e89, +0x7e8c,0x7e92,0x7e90,0x7e93,0x7e94,0x7e96,0x7e8e,0x7e9b, +0x7e9c,0x7f38,0x7f3a, -1, -1, -1, -1, -1, + -1,0x7f45,0x7f4c,0x7f4d,0x7f4e,0x7f50,0x7f51,0x7f55, +0x7f54,0x7f58,0x7f5f,0x7f60,0x7f68,0x7f69,0x7f67,0x7f78, +0x7f82,0x7f86,0x7f83,0x7f88,0x7f87,0x7f8c,0x7f94,0x7f9e, +0x7f9d,0x7f9a,0x7fa3,0x7faf,0x7fb2,0x7fb9,0x7fae,0x7fb6, +0x7fb8,0x8b71,0x7fc5,0x7fc6,0x7fca,0x7fd5,0x7fd4,0x7fe1, +0x7fe6,0x7fe9,0x7ff3,0x7ff9,0x98dc,0x8006,0x8004,0x800b, +0x8012,0x8018,0x8019,0x801c,0x8021,0x8028,0x803f,0x803b, +0x804a,0x8046,0x8052,0x8058,0x805a,0x805f,0x8062,0x8068, +0x8073,0x8072,0x8070,0x8076,0x8079,0x807d,0x807f,0x8084, +0x8086,0x8085,0x809b,0x8093,0x809a,0x80ad,0x5190,0x80ac, +0x80db,0x80e5,0x80d9,0x80dd,0x80c4,0x80da,0x80d6,0x8109, +0x80ef,0x80f1,0x811b,0x8129,0x8123,0x812f,0x814b, -1, + -1, -1, -1, -1, -1,0x968b,0x8146,0x813e, +0x8153,0x8151,0x80fc,0x8171,0x816e,0x8165,0x8166,0x8174, +0x8183,0x8188,0x818a,0x8180,0x8182,0x81a0,0x8195,0x81a4, +0x81a3,0x815f,0x8193,0x81a9,0x81b0,0x81b5,0x81be,0x81b8, +0x81bd,0x81c0,0x81c2,0x81ba,0x81c9,0x81cd,0x81d1,0x81d9, +0x81d8,0x81c8,0x81da,0x81df,0x81e0,0x81e7,0x81fa,0x81fb, +0x81fe,0x8201,0x8202,0x8205,0x8207,0x820a,0x820d,0x8210, +0x8216,0x8229,0x822b,0x8238,0x8233,0x8240,0x8259,0x8258, +0x825d,0x825a,0x825f,0x8264,0x8262,0x8268,0x826a,0x826b, +0x822e,0x8271,0x8277,0x8278,0x827e,0x828d,0x8292,0x82ab, +0x829f,0x82bb,0x82ac,0x82e1,0x82e3,0x82df,0x82d2,0x82f4, +0x82f3,0x82fa,0x8393,0x8303,0x82fb,0x82f9,0x82de,0x8306, +0x82dc,0x8309,0x82d9, -1, -1, -1, -1, -1, + -1,0x8335,0x8334,0x8316,0x8332,0x8331,0x8340,0x8339, +0x8350,0x8345,0x832f,0x832b,0x8317,0x8318,0x8385,0x839a, +0x83aa,0x839f,0x83a2,0x8396,0x8323,0x838e,0x8387,0x838a, +0x837c,0x83b5,0x8373,0x8375,0x83a0,0x8389,0x83a8,0x83f4, +0x8413,0x83eb,0x83ce,0x83fd,0x8403,0x83d8,0x840b,0x83c1, +0x83f7,0x8407,0x83e0,0x83f2,0x840d,0x8422,0x8420,0x83bd, +0x8438,0x8506,0x83fb,0x846d,0x842a,0x843c,0x855a,0x8484, +0x8477,0x846b,0x84ad,0x846e,0x8482,0x8469,0x8446,0x842c, +0x846f,0x8479,0x8435,0x84ca,0x8462,0x84b9,0x84bf,0x849f, +0x84d9,0x84cd,0x84bb,0x84da,0x84d0,0x84c1,0x84c6,0x84d6, +0x84a1,0x8521,0x84ff,0x84f4,0x8517,0x8518,0x852c,0x851f, +0x8515,0x8514,0x84fc,0x8540,0x8563,0x8558,0x8548, -1, + -1, -1, -1, -1, -1,0x8541,0x8602,0x854b, +0x8555,0x8580,0x85a4,0x8588,0x8591,0x858a,0x85a8,0x856d, +0x8594,0x859b,0x85ea,0x8587,0x859c,0x8577,0x857e,0x8590, +0x85c9,0x85ba,0x85cf,0x85b9,0x85d0,0x85d5,0x85dd,0x85e5, +0x85dc,0x85f9,0x860a,0x8613,0x860b,0x85fe,0x85fa,0x8606, +0x8622,0x861a,0x8630,0x863f,0x864d,0x4e55,0x8654,0x865f, +0x8667,0x8671,0x8693,0x86a3,0x86a9,0x86aa,0x868b,0x868c, +0x86b6,0x86af,0x86c4,0x86c6,0x86b0,0x86c9,0x8823,0x86ab, +0x86d4,0x86de,0x86e9,0x86ec,0x86df,0x86db,0x86ef,0x8712, +0x8706,0x8708,0x8700,0x8703,0x86fb,0x8711,0x8709,0x870d, +0x86f9,0x870a,0x8734,0x873f,0x8737,0x873b,0x8725,0x8729, +0x871a,0x8760,0x875f,0x8778,0x874c,0x874e,0x8774,0x8757, +0x8768,0x876e,0x8759, -1, -1, -1, -1, -1, + -1,0x8753,0x8763,0x876a,0x8805,0x87a2,0x879f,0x8782, +0x87af,0x87cb,0x87bd,0x87c0,0x87d0,0x96d6,0x87ab,0x87c4, +0x87b3,0x87c7,0x87c6,0x87bb,0x87ef,0x87f2,0x87e0,0x880f, +0x880d,0x87fe,0x87f6,0x87f7,0x880e,0x87d2,0x8811,0x8816, +0x8815,0x8822,0x8821,0x8831,0x8836,0x8839,0x8827,0x883b, +0x8844,0x8842,0x8852,0x8859,0x885e,0x8862,0x886b,0x8881, +0x887e,0x889e,0x8875,0x887d,0x88b5,0x8872,0x8882,0x8897, +0x8892,0x88ae,0x8899,0x88a2,0x888d,0x88a4,0x88b0,0x88bf, +0x88b1,0x88c3,0x88c4,0x88d4,0x88d8,0x88d9,0x88dd,0x88f9, +0x8902,0x88fc,0x88f4,0x88e8,0x88f2,0x8904,0x890c,0x890a, +0x8913,0x8943,0x891e,0x8925,0x892a,0x892b,0x8941,0x8944, +0x893b,0x8936,0x8938,0x894c,0x891d,0x8960,0x895e, -1, + -1, -1, -1, -1, -1,0x8966,0x8964,0x896d, +0x896a,0x896f,0x8974,0x8977,0x897e,0x8983,0x8988,0x898a, +0x8993,0x8998,0x89a1,0x89a9,0x89a6,0x89ac,0x89af,0x89b2, +0x89ba,0x89bd,0x89bf,0x89c0,0x89da,0x89dc,0x89dd,0x89e7, +0x89f4,0x89f8,0x8a03,0x8a16,0x8a10,0x8a0c,0x8a1b,0x8a1d, +0x8a25,0x8a36,0x8a41,0x8a5b,0x8a52,0x8a46,0x8a48,0x8a7c, +0x8a6d,0x8a6c,0x8a62,0x8a85,0x8a82,0x8a84,0x8aa8,0x8aa1, +0x8a91,0x8aa5,0x8aa6,0x8a9a,0x8aa3,0x8ac4,0x8acd,0x8ac2, +0x8ada,0x8aeb,0x8af3,0x8ae7,0x8ae4,0x8af1,0x8b14,0x8ae0, +0x8ae2,0x8af7,0x8ade,0x8adb,0x8b0c,0x8b07,0x8b1a,0x8ae1, +0x8b16,0x8b10,0x8b17,0x8b20,0x8b33,0x97ab,0x8b26,0x8b2b, +0x8b3e,0x8b28,0x8b41,0x8b4c,0x8b4f,0x8b4e,0x8b49,0x8b56, +0x8b5b,0x8b5a,0x8b6b, -1, -1, -1, -1, -1, + -1,0x8b5f,0x8b6c,0x8b6f,0x8b74,0x8b7d,0x8b80,0x8b8c, +0x8b8e,0x8b92,0x8b93,0x8b96,0x8b99,0x8b9a,0x8c3a,0x8c41, +0x8c3f,0x8c48,0x8c4c,0x8c4e,0x8c50,0x8c55,0x8c62,0x8c6c, +0x8c78,0x8c7a,0x8c82,0x8c89,0x8c85,0x8c8a,0x8c8d,0x8c8e, +0x8c94,0x8c7c,0x8c98,0x621d,0x8cad,0x8caa,0x8cbd,0x8cb2, +0x8cb3,0x8cae,0x8cb6,0x8cc8,0x8cc1,0x8ce4,0x8ce3,0x8cda, +0x8cfd,0x8cfa,0x8cfb,0x8d04,0x8d05,0x8d0a,0x8d07,0x8d0f, +0x8d0d,0x8d10,0x9f4e,0x8d13,0x8ccd,0x8d14,0x8d16,0x8d67, +0x8d6d,0x8d71,0x8d73,0x8d81,0x8d99,0x8dc2,0x8dbe,0x8dba, +0x8dcf,0x8dda,0x8dd6,0x8dcc,0x8ddb,0x8dcb,0x8dea,0x8deb, +0x8ddf,0x8de3,0x8dfc,0x8e08,0x8e09,0x8dff,0x8e1d,0x8e1e, +0x8e10,0x8e1f,0x8e42,0x8e35,0x8e30,0x8e34,0x8e4a, -1, + -1, -1, -1, -1, -1,0x8e47,0x8e49,0x8e4c, +0x8e50,0x8e48,0x8e59,0x8e64,0x8e60,0x8e2a,0x8e63,0x8e55, +0x8e76,0x8e72,0x8e7c,0x8e81,0x8e87,0x8e85,0x8e84,0x8e8b, +0x8e8a,0x8e93,0x8e91,0x8e94,0x8e99,0x8eaa,0x8ea1,0x8eac, +0x8eb0,0x8ec6,0x8eb1,0x8ebe,0x8ec5,0x8ec8,0x8ecb,0x8edb, +0x8ee3,0x8efc,0x8efb,0x8eeb,0x8efe,0x8f0a,0x8f05,0x8f15, +0x8f12,0x8f19,0x8f13,0x8f1c,0x8f1f,0x8f1b,0x8f0c,0x8f26, +0x8f33,0x8f3b,0x8f39,0x8f45,0x8f42,0x8f3e,0x8f4c,0x8f49, +0x8f46,0x8f4e,0x8f57,0x8f5c,0x8f62,0x8f63,0x8f64,0x8f9c, +0x8f9f,0x8fa3,0x8fad,0x8faf,0x8fb7,0x8fda,0x8fe5,0x8fe2, +0x8fea,0x8fef,0x9087,0x8ff4,0x9005,0x8ff9,0x8ffa,0x9011, +0x9015,0x9021,0x900d,0x901e,0x9016,0x900b,0x9027,0x9036, +0x9035,0x9039,0x8ff8, -1, -1, -1, -1, -1, + -1,0x904f,0x9050,0x9051,0x9052,0x900e,0x9049,0x903e, +0x9056,0x9058,0x905e,0x9068,0x906f,0x9076,0x96a8,0x9072, +0x9082,0x907d,0x9081,0x9080,0x908a,0x9089,0x908f,0x90a8, +0x90af,0x90b1,0x90b5,0x90e2,0x90e4,0x6248,0x90db,0x9102, +0x9112,0x9119,0x9132,0x9130,0x914a,0x9156,0x9158,0x9163, +0x9165,0x9169,0x9173,0x9172,0x918b,0x9189,0x9182,0x91a2, +0x91ab,0x91af,0x91aa,0x91b5,0x91b4,0x91ba,0x91c0,0x91c1, +0x91c9,0x91cb,0x91d0,0x91d6,0x91df,0x91e1,0x91db,0x91fc, +0x91f5,0x91f6,0x921e,0x91ff,0x9214,0x922c,0x9215,0x9211, +0x925e,0x9257,0x9245,0x9249,0x9264,0x9248,0x9295,0x923f, +0x924b,0x9250,0x929c,0x9296,0x9293,0x929b,0x925a,0x92cf, +0x92b9,0x92b7,0x92e9,0x930f,0x92fa,0x9344,0x932e, -1, + -1, -1, -1, -1, -1,0x9319,0x9322,0x931a, +0x9323,0x933a,0x9335,0x933b,0x935c,0x9360,0x937c,0x936e, +0x9356,0x93b0,0x93ac,0x93ad,0x9394,0x93b9,0x93d6,0x93d7, +0x93e8,0x93e5,0x93d8,0x93c3,0x93dd,0x93d0,0x93c8,0x93e4, +0x941a,0x9414,0x9413,0x9403,0x9407,0x9410,0x9436,0x942b, +0x9435,0x9421,0x943a,0x9441,0x9452,0x9444,0x945b,0x9460, +0x9462,0x945e,0x946a,0x9229,0x9470,0x9475,0x9477,0x947d, +0x945a,0x947c,0x947e,0x9481,0x947f,0x9582,0x9587,0x958a, +0x9594,0x9596,0x9598,0x9599,0x95a0,0x95a8,0x95a7,0x95ad, +0x95bc,0x95bb,0x95b9,0x95be,0x95ca,0x6ff6,0x95c3,0x95cd, +0x95cc,0x95d5,0x95d4,0x95d6,0x95dc,0x95e1,0x95e5,0x95e2, +0x9621,0x9628,0x962e,0x962f,0x9642,0x964c,0x964f,0x964b, +0x9677,0x965c,0x965e, -1, -1, -1, -1, -1, + -1,0x965d,0x965f,0x9666,0x9672,0x966c,0x968d,0x9698, +0x9695,0x9697,0x96aa,0x96a7,0x96b1,0x96b2,0x96b0,0x96b4, +0x96b6,0x96b8,0x96b9,0x96ce,0x96cb,0x96c9,0x96cd,0x894d, +0x96dc,0x970d,0x96d5,0x96f9,0x9704,0x9706,0x9708,0x9713, +0x970e,0x9711,0x970f,0x9716,0x9719,0x9724,0x972a,0x9730, +0x9739,0x973d,0x973e,0x9744,0x9746,0x9748,0x9742,0x9749, +0x975c,0x9760,0x9764,0x9766,0x9768,0x52d2,0x976b,0x9771, +0x9779,0x9785,0x977c,0x9781,0x977a,0x9786,0x978b,0x978f, +0x9790,0x979c,0x97a8,0x97a6,0x97a3,0x97b3,0x97b4,0x97c3, +0x97c6,0x97c8,0x97cb,0x97dc,0x97ed,0x9f4f,0x97f2,0x7adf, +0x97f6,0x97f5,0x980f,0x980c,0x9838,0x9824,0x9821,0x9837, +0x983d,0x9846,0x984f,0x984b,0x986b,0x986f,0x9870, -1, + -1, -1, -1, -1, -1,0x9871,0x9874,0x9873, +0x98aa,0x98af,0x98b1,0x98b6,0x98c4,0x98c3,0x98c6,0x98e9, +0x98eb,0x9903,0x9909,0x9912,0x9914,0x9918,0x9921,0x991d, +0x991e,0x9924,0x9920,0x992c,0x992e,0x993d,0x993e,0x9942, +0x9949,0x9945,0x9950,0x994b,0x9951,0x9952,0x994c,0x9955, +0x9997,0x9998,0x99a5,0x99ad,0x99ae,0x99bc,0x99df,0x99db, +0x99dd,0x99d8,0x99d1,0x99ed,0x99ee,0x99f1,0x99f2,0x99fb, +0x99f8,0x9a01,0x9a0f,0x9a05,0x99e2,0x9a19,0x9a2b,0x9a37, +0x9a45,0x9a42,0x9a40,0x9a43,0x9a3e,0x9a55,0x9a4d,0x9a5b, +0x9a57,0x9a5f,0x9a62,0x9a65,0x9a64,0x9a69,0x9a6b,0x9a6a, +0x9aad,0x9ab0,0x9abc,0x9ac0,0x9acf,0x9ad1,0x9ad3,0x9ad4, +0x9ade,0x9adf,0x9ae2,0x9ae3,0x9ae6,0x9aef,0x9aeb,0x9aee, +0x9af4,0x9af1,0x9af7, -1, -1, -1, -1, -1, + -1,0x9afb,0x9b06,0x9b18,0x9b1a,0x9b1f,0x9b22,0x9b23, +0x9b25,0x9b27,0x9b28,0x9b29,0x9b2a,0x9b2e,0x9b2f,0x9b32, +0x9b44,0x9b43,0x9b4f,0x9b4d,0x9b4e,0x9b51,0x9b58,0x9b74, +0x9b93,0x9b83,0x9b91,0x9b96,0x9b97,0x9b9f,0x9ba0,0x9ba8, +0x9bb4,0x9bc0,0x9bca,0x9bb9,0x9bc6,0x9bcf,0x9bd1,0x9bd2, +0x9be3,0x9be2,0x9be4,0x9bd4,0x9be1,0x9c3a,0x9bf2,0x9bf1, +0x9bf0,0x9c15,0x9c14,0x9c09,0x9c13,0x9c0c,0x9c06,0x9c08, +0x9c12,0x9c0a,0x9c04,0x9c2e,0x9c1b,0x9c25,0x9c24,0x9c21, +0x9c30,0x9c47,0x9c32,0x9c46,0x9c3e,0x9c5a,0x9c60,0x9c67, +0x9c76,0x9c78,0x9ce7,0x9cec,0x9cf0,0x9d09,0x9d08,0x9ceb, +0x9d03,0x9d06,0x9d2a,0x9d26,0x9daf,0x9d23,0x9d1f,0x9d44, +0x9d15,0x9d12,0x9d41,0x9d3f,0x9d3e,0x9d46,0x9d48, -1, + -1, -1, -1, -1, -1,0x9d5d,0x9d5e,0x9d64, +0x9d51,0x9d50,0x9d59,0x9d72,0x9d89,0x9d87,0x9dab,0x9d6f, +0x9d7a,0x9d9a,0x9da4,0x9da9,0x9db2,0x9dc4,0x9dc1,0x9dbb, +0x9db8,0x9dba,0x9dc6,0x9dcf,0x9dc2,0x9dd9,0x9dd3,0x9df8, +0x9de6,0x9ded,0x9def,0x9dfd,0x9e1a,0x9e1b,0x9e1e,0x9e75, +0x9e79,0x9e7d,0x9e81,0x9e88,0x9e8b,0x9e8c,0x9e92,0x9e95, +0x9e91,0x9e9d,0x9ea5,0x9ea9,0x9eb8,0x9eaa,0x9ead,0x9761, +0x9ecc,0x9ece,0x9ecf,0x9ed0,0x9ed4,0x9edc,0x9ede,0x9edd, +0x9ee0,0x9ee5,0x9ee8,0x9eef,0x9ef4,0x9ef6,0x9ef7,0x9ef9, +0x9efb,0x9efc,0x9efd,0x9f07,0x9f08,0x76b7,0x9f15,0x9f21, +0x9f2c,0x9f3e,0x9f4a,0x9f52,0x9f54,0x9f63,0x9f5f,0x9f60, +0x9f61,0x9f66,0x9f67,0x9f6c,0x9f6a,0x9f77,0x9f72,0x9f76, +0x9f95,0x9f9c,0x9fa0, -1, -1, -1, -1, -1, + -1,0x582f,0x69c7,0x9059,0x7464,0x51dc,0x7199, +}; diff --git a/src/cmd/tcs/kuten208.h b/src/cmd/tcs/kuten208.h new file mode 100644 index 00000000..3886d9d9 --- /dev/null +++ b/src/cmd/tcs/kuten208.h @@ -0,0 +1,3 @@ +#define KUTEN208MAX 8407 + +extern long tabkuten208[KUTEN208MAX]; /* runes indexed by kuten */ diff --git a/src/cmd/tcs/kuten212.c b/src/cmd/tcs/kuten212.c new file mode 100644 index 00000000..c1ad93b2 --- /dev/null +++ b/src/cmd/tcs/kuten212.c @@ -0,0 +1,975 @@ +#include "kuten212.h" + +long tabkuten212[KUTEN212MAX] = { + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1,0x02d8, +0x02c7,0x00b8,0x02d9,0x02dd,0x00af,0x02db,0x02da,0x007e, +0x0384,0x0385, -1, -1, -1, -1, -1, -1, + -1, -1,0x00a1,0x00a6,0x00bf, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1,0x00ba,0x00aa,0x00a9,0x00ae,0x2122, +0x00a4,0x2116, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x0386,0x0388,0x0389,0x038a,0x03aa, -1,0x038c, + -1,0x038e,0x03ab, -1,0x038f, -1, -1, -1, + -1,0x03ac,0x03ad,0x03ae,0x03af,0x03ca,0x0390,0x03cc, +0x03c2,0x03cd,0x03cb,0x03b0,0x03ce, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1,0x0402,0x0403, +0x0404,0x0405,0x0406,0x0407,0x0408,0x0409,0x040a,0x040b, +0x040c,0x040e,0x040f, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1,0x0452,0x0453, +0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045a,0x045b, +0x045c,0x045e,0x045f, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x00c6,0x0110, -1, +0x0126, -1,0x0132, -1,0x0141,0x013f, -1,0x014a, +0x00d8,0x0152, -1,0x0166,0x00de, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x00e6,0x0111,0x00f0, +0x0127,0x0131,0x0133,0x0138,0x0142,0x0140,0x0149,0x014b, +0x00f8,0x0153,0x00df,0x0167,0x00fe, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x00c1,0x00c0,0x00c4,0x00c2,0x0102,0x01cd,0x0100, +0x0104,0x00c5,0x00c3,0x0106,0x0108,0x010c,0x00c7,0x010a, +0x010e,0x00c9,0x00c8,0x00cb,0x00ca,0x011a,0x0116,0x0112, +0x0118, -1,0x011c,0x011e,0x0122,0x0120,0x0124,0x00cd, +0x00cc,0x00cf,0x00ce,0x01cf,0x0130,0x012a,0x012e,0x0128, +0x0134,0x0136,0x0139,0x013d,0x013b,0x0143,0x0147,0x0145, +0x00d1,0x00d3,0x00d2,0x00d6,0x00d4,0x01d1,0x0150,0x014c, +0x00d5,0x0154,0x0158,0x0156,0x015a,0x015c,0x0160,0x015e, +0x0164,0x0162,0x00da,0x00d9,0x00dc,0x00db,0x016c,0x01d3, +0x0170,0x016a,0x0172,0x016e,0x0168,0x01d7,0x01db,0x01d9, +0x01d5,0x0174,0x00dd,0x0178,0x0176,0x0179,0x017d,0x017b, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1,0x00e1,0x00e0,0x00e4, +0x00e2,0x0103,0x01ce,0x0101,0x0105,0x00e5,0x00e3,0x0107, +0x0109,0x010d,0x00e7,0x010b,0x010f,0x00e9,0x00e8,0x00eb, +0x00ea,0x011b,0x0117,0x0113,0x0119,0x01f5,0x011d,0x011f, + -1,0x0121,0x0125,0x00ed,0x00ec,0x00ef,0x00ee,0x01d0, + -1,0x012b,0x012f,0x0129,0x0135,0x0137,0x013a,0x013e, +0x013c,0x0144,0x0148,0x0146,0x00f1,0x00f3,0x00f2,0x00f6, +0x00f4,0x01d2,0x0151,0x014d,0x00f5,0x0155,0x0159,0x0157, +0x015b,0x015d,0x0161,0x015f,0x0165,0x0163,0x00fa,0x00f9, +0x00fc,0x00fb,0x016d,0x01d4,0x0171,0x016b,0x0173,0x016f, +0x0169,0x01d8,0x01dc,0x01da,0x01d6,0x0175,0x00fd,0x00ff, +0x0177,0x017a,0x017e,0x017c, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1,0x4e02,0x4e04,0x4e05,0x4e0c,0x4e12,0x4e1f,0x4e23, +0x4e24,0x4e28,0x4e2b,0x4e2e,0x4e2f,0x4e30,0x4e35,0x4e40, +0x4e41,0x4e44,0x4e47,0x4e51,0x4e5a,0x4e5c,0x4e63,0x4e68, +0x4e69,0x4e74,0x4e75,0x4e79,0x4e7f,0x4e8d,0x4e96,0x4e97, +0x4e9d,0x4eaf,0x4eb9,0x4ec3,0x4ed0,0x4eda,0x4edb,0x4ee0, +0x4ee1,0x4ee2,0x4ee8,0x4eef,0x4ef1,0x4ef3,0x4ef5,0x4efd, +0x4efe,0x4eff,0x4f00,0x4f02,0x4f03,0x4f08,0x4f0b,0x4f0c, +0x4f12,0x4f15,0x4f16,0x4f17,0x4f19,0x4f2e,0x4f31,0x4f60, +0x4f33,0x4f35,0x4f37,0x4f39,0x4f3b,0x4f3e,0x4f40,0x4f42, +0x4f48,0x4f49,0x4f4b,0x4f4c,0x4f52,0x4f54,0x4f56,0x4f58, +0x4f5f,0x4f63,0x4f6a,0x4f6c,0x4f6e,0x4f71,0x4f77,0x4f78, +0x4f79,0x4f7a,0x4f7d,0x4f7e,0x4f81,0x4f82,0x4f84, -1, + -1, -1, -1, -1, -1,0x4f85,0x4f89,0x4f8a, +0x4f8c,0x4f8e,0x4f90,0x4f92,0x4f93,0x4f94,0x4f97,0x4f99, +0x4f9a,0x4f9e,0x4f9f,0x4fb2,0x4fb7,0x4fb9,0x4fbb,0x4fbc, +0x4fbd,0x4fbe,0x4fc0,0x4fc1,0x4fc5,0x4fc6,0x4fc8,0x4fc9, +0x4fcb,0x4fcc,0x4fcd,0x4fcf,0x4fd2,0x4fdc,0x4fe0,0x4fe2, +0x4ff0,0x4ff2,0x4ffc,0x4ffd,0x4fff,0x5000,0x5001,0x5004, +0x5007,0x500a,0x500c,0x500e,0x5010,0x5013,0x5017,0x5018, +0x501b,0x501c,0x501d,0x501e,0x5022,0x5027,0x502e,0x5030, +0x5032,0x5033,0x5035,0x5040,0x5041,0x5042,0x5045,0x5046, +0x504a,0x504c,0x504e,0x5051,0x5052,0x5053,0x5057,0x5059, +0x505f,0x5060,0x5062,0x5063,0x5066,0x5067,0x506a,0x506d, +0x5070,0x5071,0x503b,0x5081,0x5083,0x5084,0x5086,0x508a, +0x508e,0x508f,0x5090, -1, -1, -1, -1, -1, + -1,0x5092,0x5093,0x5094,0x5096,0x509b,0x509c,0x509e, +0x509f,0x50a0,0x50a1,0x50a2,0x50aa,0x50af,0x50b0,0x50b9, +0x50ba,0x50bd,0x50c0,0x50c3,0x50c4,0x50c7,0x50cc,0x50ce, +0x50d0,0x50d3,0x50d4,0x50d8,0x50dc,0x50dd,0x50df,0x50e2, +0x50e4,0x50e6,0x50e8,0x50e9,0x50ef,0x50f1,0x50f6,0x50fa, +0x50fe,0x5103,0x5106,0x5107,0x5108,0x510b,0x510c,0x510d, +0x510e,0x50f2,0x5110,0x5117,0x5119,0x511b,0x511c,0x511d, +0x511e,0x5123,0x5127,0x5128,0x512c,0x512d,0x512f,0x5131, +0x5133,0x5134,0x5135,0x5138,0x5139,0x5142,0x514a,0x514f, +0x5153,0x5155,0x5157,0x5158,0x515f,0x5164,0x5166,0x517e, +0x5183,0x5184,0x518b,0x518e,0x5198,0x519d,0x51a1,0x51a3, +0x51ad,0x51b8,0x51ba,0x51bc,0x51be,0x51bf,0x51c2, -1, + -1, -1, -1, -1, -1,0x51c8,0x51cf,0x51d1, +0x51d2,0x51d3,0x51d5,0x51d8,0x51de,0x51e2,0x51e5,0x51ee, +0x51f2,0x51f3,0x51f4,0x51f7,0x5201,0x5202,0x5205,0x5212, +0x5213,0x5215,0x5216,0x5218,0x5222,0x5228,0x5231,0x5232, +0x5235,0x523c,0x5245,0x5249,0x5255,0x5257,0x5258,0x525a, +0x525c,0x525f,0x5260,0x5261,0x5266,0x526e,0x5277,0x5278, +0x5279,0x5280,0x5282,0x5285,0x528a,0x528c,0x5293,0x5295, +0x5296,0x5297,0x5298,0x529a,0x529c,0x52a4,0x52a5,0x52a6, +0x52a7,0x52af,0x52b0,0x52b6,0x52b7,0x52b8,0x52ba,0x52bb, +0x52bd,0x52c0,0x52c4,0x52c6,0x52c8,0x52cc,0x52cf,0x52d1, +0x52d4,0x52d6,0x52db,0x52dc,0x52e1,0x52e5,0x52e8,0x52e9, +0x52ea,0x52ec,0x52f0,0x52f1,0x52f4,0x52f6,0x52f7,0x5300, +0x5303,0x530a,0x530b, -1, -1, -1, -1, -1, + -1,0x530c,0x5311,0x5313,0x5318,0x531b,0x531c,0x531e, +0x531f,0x5325,0x5327,0x5328,0x5329,0x532b,0x532c,0x532d, +0x5330,0x5332,0x5335,0x533c,0x533d,0x533e,0x5342,0x534c, +0x534b,0x5359,0x535b,0x5361,0x5363,0x5365,0x536c,0x536d, +0x5372,0x5379,0x537e,0x5383,0x5387,0x5388,0x538e,0x5393, +0x5394,0x5399,0x539d,0x53a1,0x53a4,0x53aa,0x53ab,0x53af, +0x53b2,0x53b4,0x53b5,0x53b7,0x53b8,0x53ba,0x53bd,0x53c0, +0x53c5,0x53cf,0x53d2,0x53d3,0x53d5,0x53da,0x53dd,0x53de, +0x53e0,0x53e6,0x53e7,0x53f5,0x5402,0x5413,0x541a,0x5421, +0x5427,0x5428,0x542a,0x542f,0x5431,0x5434,0x5435,0x5443, +0x5444,0x5447,0x544d,0x544f,0x545e,0x5462,0x5464,0x5466, +0x5467,0x5469,0x546b,0x546d,0x546e,0x5474,0x547f, -1, + -1, -1, -1, -1, -1,0x5481,0x5483,0x5485, +0x5488,0x5489,0x548d,0x5491,0x5495,0x5496,0x549c,0x549f, +0x54a1,0x54a6,0x54a7,0x54a9,0x54aa,0x54ad,0x54ae,0x54b1, +0x54b7,0x54b9,0x54ba,0x54bb,0x54bf,0x54c6,0x54ca,0x54cd, +0x54ce,0x54e0,0x54ea,0x54ec,0x54ef,0x54f6,0x54fc,0x54fe, +0x54ff,0x5500,0x5501,0x5505,0x5508,0x5509,0x550c,0x550d, +0x550e,0x5515,0x552a,0x552b,0x5532,0x5535,0x5536,0x553b, +0x553c,0x553d,0x5541,0x5547,0x5549,0x554a,0x554d,0x5550, +0x5551,0x5558,0x555a,0x555b,0x555e,0x5560,0x5561,0x5564, +0x5566,0x557f,0x5581,0x5582,0x5586,0x5588,0x558e,0x558f, +0x5591,0x5592,0x5593,0x5594,0x5597,0x55a3,0x55a4,0x55ad, +0x55b2,0x55bf,0x55c1,0x55c3,0x55c6,0x55c9,0x55cb,0x55cc, +0x55ce,0x55d1,0x55d2, -1, -1, -1, -1, -1, + -1,0x55d3,0x55d7,0x55d8,0x55db,0x55de,0x55e2,0x55e9, +0x55f6,0x55ff,0x5605,0x5608,0x560a,0x560d,0x560e,0x560f, +0x5610,0x5611,0x5612,0x5619,0x562c,0x5630,0x5633,0x5635, +0x5637,0x5639,0x563b,0x563c,0x563d,0x563f,0x5640,0x5641, +0x5643,0x5644,0x5646,0x5649,0x564b,0x564d,0x564f,0x5654, +0x565e,0x5660,0x5661,0x5662,0x5663,0x5666,0x5669,0x566d, +0x566f,0x5671,0x5672,0x5675,0x5684,0x5685,0x5688,0x568b, +0x568c,0x5695,0x5699,0x569a,0x569d,0x569e,0x569f,0x56a6, +0x56a7,0x56a8,0x56a9,0x56ab,0x56ac,0x56ad,0x56b1,0x56b3, +0x56b7,0x56be,0x56c5,0x56c9,0x56ca,0x56cb,0x56cf,0x56d0, +0x56cc,0x56cd,0x56d9,0x56dc,0x56dd,0x56df,0x56e1,0x56e4, +0x56e5,0x56e6,0x56e7,0x56e8,0x56f1,0x56eb,0x56ed, -1, + -1, -1, -1, -1, -1,0x56f6,0x56f7,0x5701, +0x5702,0x5707,0x570a,0x570c,0x5711,0x5715,0x571a,0x571b, +0x571d,0x5720,0x5722,0x5723,0x5724,0x5725,0x5729,0x572a, +0x572c,0x572e,0x572f,0x5733,0x5734,0x573d,0x573e,0x573f, +0x5745,0x5746,0x574c,0x574d,0x5752,0x5762,0x5765,0x5767, +0x5768,0x576b,0x576d,0x576e,0x576f,0x5770,0x5771,0x5773, +0x5774,0x5775,0x5777,0x5779,0x577a,0x577b,0x577c,0x577e, +0x5781,0x5783,0x578c,0x5794,0x5797,0x5799,0x579a,0x579c, +0x579d,0x579e,0x579f,0x57a1,0x5795,0x57a7,0x57a8,0x57a9, +0x57ac,0x57b8,0x57bd,0x57c7,0x57c8,0x57cc,0x57cf,0x57d5, +0x57dd,0x57de,0x57e4,0x57e6,0x57e7,0x57e9,0x57ed,0x57f0, +0x57f5,0x57f6,0x57f8,0x57fd,0x57fe,0x57ff,0x5803,0x5804, +0x5808,0x5809,0x57e1, -1, -1, -1, -1, -1, + -1,0x580c,0x580d,0x581b,0x581e,0x581f,0x5820,0x5826, +0x5827,0x582d,0x5832,0x5839,0x583f,0x5849,0x584c,0x584d, +0x584f,0x5850,0x5855,0x585f,0x5861,0x5864,0x5867,0x5868, +0x5878,0x587c,0x587f,0x5880,0x5881,0x5887,0x5888,0x5889, +0x588a,0x588c,0x588d,0x588f,0x5890,0x5894,0x5896,0x589d, +0x58a0,0x58a1,0x58a2,0x58a6,0x58a9,0x58b1,0x58b2,0x58c4, +0x58bc,0x58c2,0x58c8,0x58cd,0x58ce,0x58d0,0x58d2,0x58d4, +0x58d6,0x58da,0x58dd,0x58e1,0x58e2,0x58e9,0x58f3,0x5905, +0x5906,0x590b,0x590c,0x5912,0x5913,0x5914,0x8641,0x591d, +0x5921,0x5923,0x5924,0x5928,0x592f,0x5930,0x5933,0x5935, +0x5936,0x593f,0x5943,0x5946,0x5952,0x5953,0x5959,0x595b, +0x595d,0x595e,0x595f,0x5961,0x5963,0x596b,0x596d, -1, + -1, -1, -1, -1, -1,0x596f,0x5972,0x5975, +0x5976,0x5979,0x597b,0x597c,0x598b,0x598c,0x598e,0x5992, +0x5995,0x5997,0x599f,0x59a4,0x59a7,0x59ad,0x59ae,0x59af, +0x59b0,0x59b3,0x59b7,0x59ba,0x59bc,0x59c1,0x59c3,0x59c4, +0x59c8,0x59ca,0x59cd,0x59d2,0x59dd,0x59de,0x59df,0x59e3, +0x59e4,0x59e7,0x59ee,0x59ef,0x59f1,0x59f2,0x59f4,0x59f7, +0x5a00,0x5a04,0x5a0c,0x5a0d,0x5a0e,0x5a12,0x5a13,0x5a1e, +0x5a23,0x5a24,0x5a27,0x5a28,0x5a2a,0x5a2d,0x5a30,0x5a44, +0x5a45,0x5a47,0x5a48,0x5a4c,0x5a50,0x5a55,0x5a5e,0x5a63, +0x5a65,0x5a67,0x5a6d,0x5a77,0x5a7a,0x5a7b,0x5a7e,0x5a8b, +0x5a90,0x5a93,0x5a96,0x5a99,0x5a9c,0x5a9e,0x5a9f,0x5aa0, +0x5aa2,0x5aa7,0x5aac,0x5ab1,0x5ab2,0x5ab3,0x5ab5,0x5ab8, +0x5aba,0x5abb,0x5abf, -1, -1, -1, -1, -1, + -1,0x5ac4,0x5ac6,0x5ac8,0x5acf,0x5ada,0x5adc,0x5ae0, +0x5ae5,0x5aea,0x5aee,0x5af5,0x5af6,0x5afd,0x5b00,0x5b01, +0x5b08,0x5b17,0x5b34,0x5b19,0x5b1b,0x5b1d,0x5b21,0x5b25, +0x5b2d,0x5b38,0x5b41,0x5b4b,0x5b4c,0x5b52,0x5b56,0x5b5e, +0x5b68,0x5b6e,0x5b6f,0x5b7c,0x5b7d,0x5b7e,0x5b7f,0x5b81, +0x5b84,0x5b86,0x5b8a,0x5b8e,0x5b90,0x5b91,0x5b93,0x5b94, +0x5b96,0x5ba8,0x5ba9,0x5bac,0x5bad,0x5baf,0x5bb1,0x5bb2, +0x5bb7,0x5bba,0x5bbc,0x5bc0,0x5bc1,0x5bcd,0x5bcf,0x5bd6, +0x5bd7,0x5bd8,0x5bd9,0x5bda,0x5be0,0x5bef,0x5bf1,0x5bf4, +0x5bfd,0x5c0c,0x5c17,0x5c1e,0x5c1f,0x5c23,0x5c26,0x5c29, +0x5c2b,0x5c2c,0x5c2e,0x5c30,0x5c32,0x5c35,0x5c36,0x5c59, +0x5c5a,0x5c5c,0x5c62,0x5c63,0x5c67,0x5c68,0x5c69, -1, + -1, -1, -1, -1, -1,0x5c6d,0x5c70,0x5c74, +0x5c75,0x5c7a,0x5c7b,0x5c7c,0x5c7d,0x5c87,0x5c88,0x5c8a, +0x5c8f,0x5c92,0x5c9d,0x5c9f,0x5ca0,0x5ca2,0x5ca3,0x5ca6, +0x5caa,0x5cb2,0x5cb4,0x5cb5,0x5cba,0x5cc9,0x5ccb,0x5cd2, +0x5cdd,0x5cd7,0x5cee,0x5cf1,0x5cf2,0x5cf4,0x5d01,0x5d06, +0x5d0d,0x5d12,0x5d2b,0x5d23,0x5d24,0x5d26,0x5d27,0x5d31, +0x5d34,0x5d39,0x5d3d,0x5d3f,0x5d42,0x5d43,0x5d46,0x5d48, +0x5d55,0x5d51,0x5d59,0x5d4a,0x5d5f,0x5d60,0x5d61,0x5d62, +0x5d64,0x5d6a,0x5d6d,0x5d70,0x5d79,0x5d7a,0x5d7e,0x5d7f, +0x5d81,0x5d83,0x5d88,0x5d8a,0x5d92,0x5d93,0x5d94,0x5d95, +0x5d99,0x5d9b,0x5d9f,0x5da0,0x5da7,0x5dab,0x5db0,0x5db4, +0x5db8,0x5db9,0x5dc3,0x5dc7,0x5dcb,0x5dd0,0x5dce,0x5dd8, +0x5dd9,0x5de0,0x5de4, -1, -1, -1, -1, -1, + -1,0x5de9,0x5df8,0x5df9,0x5e00,0x5e07,0x5e0d,0x5e12, +0x5e14,0x5e15,0x5e18,0x5e1f,0x5e20,0x5e2e,0x5e28,0x5e32, +0x5e35,0x5e3e,0x5e4b,0x5e50,0x5e49,0x5e51,0x5e56,0x5e58, +0x5e5b,0x5e5c,0x5e5e,0x5e68,0x5e6a,0x5e6b,0x5e6c,0x5e6d, +0x5e6e,0x5e70,0x5e80,0x5e8b,0x5e8e,0x5ea2,0x5ea4,0x5ea5, +0x5ea8,0x5eaa,0x5eac,0x5eb1,0x5eb3,0x5ebd,0x5ebe,0x5ebf, +0x5ec6,0x5ecc,0x5ecb,0x5ece,0x5ed1,0x5ed2,0x5ed4,0x5ed5, +0x5edc,0x5ede,0x5ee5,0x5eeb,0x5f02,0x5f06,0x5f07,0x5f08, +0x5f0e,0x5f19,0x5f1c,0x5f1d,0x5f21,0x5f22,0x5f23,0x5f24, +0x5f28,0x5f2b,0x5f2c,0x5f2e,0x5f30,0x5f34,0x5f36,0x5f3b, +0x5f3d,0x5f3f,0x5f40,0x5f44,0x5f45,0x5f47,0x5f4d,0x5f50, +0x5f54,0x5f58,0x5f5b,0x5f60,0x5f63,0x5f64,0x5f67, -1, + -1, -1, -1, -1, -1,0x5f6f,0x5f72,0x5f74, +0x5f75,0x5f78,0x5f7a,0x5f7d,0x5f7e,0x5f89,0x5f8d,0x5f8f, +0x5f96,0x5f9c,0x5f9d,0x5fa2,0x5fa7,0x5fab,0x5fa4,0x5fac, +0x5faf,0x5fb0,0x5fb1,0x5fb8,0x5fc4,0x5fc7,0x5fc8,0x5fc9, +0x5fcb,0x5fd0,0x5fd1,0x5fd2,0x5fd3,0x5fd4,0x5fde,0x5fe1, +0x5fe2,0x5fe8,0x5fe9,0x5fea,0x5fec,0x5fed,0x5fee,0x5fef, +0x5ff2,0x5ff3,0x5ff6,0x5ffa,0x5ffc,0x6007,0x600a,0x600d, +0x6013,0x6014,0x6017,0x6018,0x601a,0x601f,0x6024,0x602d, +0x6033,0x6035,0x6040,0x6047,0x6048,0x6049,0x604c,0x6051, +0x6054,0x6056,0x6057,0x605d,0x6061,0x6067,0x6071,0x607e, +0x607f,0x6082,0x6086,0x6088,0x608a,0x608e,0x6091,0x6093, +0x6095,0x6098,0x609d,0x609e,0x60a2,0x60a4,0x60a5,0x60a8, +0x60b0,0x60b1,0x60b7, -1, -1, -1, -1, -1, + -1,0x60bb,0x60be,0x60c2,0x60c4,0x60c8,0x60c9,0x60ca, +0x60cb,0x60ce,0x60cf,0x60d4,0x60d5,0x60d9,0x60db,0x60dd, +0x60de,0x60e2,0x60e5,0x60f2,0x60f5,0x60f8,0x60fc,0x60fd, +0x6102,0x6107,0x610a,0x610c,0x6110,0x6111,0x6112,0x6113, +0x6114,0x6116,0x6117,0x6119,0x611c,0x611e,0x6122,0x612a, +0x612b,0x6130,0x6131,0x6135,0x6136,0x6137,0x6139,0x6141, +0x6145,0x6146,0x6149,0x615e,0x6160,0x616c,0x6172,0x6178, +0x617b,0x617c,0x617f,0x6180,0x6181,0x6183,0x6184,0x618b, +0x618d,0x6192,0x6193,0x6197,0x6198,0x619c,0x619d,0x619f, +0x61a0,0x61a5,0x61a8,0x61aa,0x61ad,0x61b8,0x61b9,0x61bc, +0x61c0,0x61c1,0x61c2,0x61ce,0x61cf,0x61d5,0x61dc,0x61dd, +0x61de,0x61df,0x61e1,0x61e2,0x61e7,0x61e9,0x61e5, -1, + -1, -1, -1, -1, -1,0x61ec,0x61ed,0x61ef, +0x6201,0x6203,0x6204,0x6207,0x6213,0x6215,0x621c,0x6220, +0x6222,0x6223,0x6227,0x6229,0x622b,0x6239,0x623d,0x6242, +0x6243,0x6244,0x6246,0x624c,0x6250,0x6251,0x6252,0x6254, +0x6256,0x625a,0x625c,0x6264,0x626d,0x626f,0x6273,0x627a, +0x627d,0x628d,0x628e,0x628f,0x6290,0x62a6,0x62a8,0x62b3, +0x62b6,0x62b7,0x62ba,0x62be,0x62bf,0x62c4,0x62ce,0x62d5, +0x62d6,0x62da,0x62ea,0x62f2,0x62f4,0x62fc,0x62fd,0x6303, +0x6304,0x630a,0x630b,0x630d,0x6310,0x6313,0x6316,0x6318, +0x6329,0x632a,0x632d,0x6335,0x6336,0x6339,0x633c,0x6341, +0x6342,0x6343,0x6344,0x6346,0x634a,0x634b,0x634e,0x6352, +0x6353,0x6354,0x6358,0x635b,0x6365,0x6366,0x636c,0x636d, +0x6371,0x6374,0x6375, -1, -1, -1, -1, -1, + -1,0x6378,0x637c,0x637d,0x637f,0x6382,0x6384,0x6387, +0x638a,0x6390,0x6394,0x6395,0x6399,0x639a,0x639e,0x63a4, +0x63a6,0x63ad,0x63ae,0x63af,0x63bd,0x63c1,0x63c5,0x63c8, +0x63ce,0x63d1,0x63d3,0x63d4,0x63d5,0x63dc,0x63e0,0x63e5, +0x63ea,0x63ec,0x63f2,0x63f3,0x63f5,0x63f8,0x63f9,0x6409, +0x640a,0x6410,0x6412,0x6414,0x6418,0x641e,0x6420,0x6422, +0x6424,0x6425,0x6429,0x642a,0x642f,0x6430,0x6435,0x643d, +0x643f,0x644b,0x644f,0x6451,0x6452,0x6453,0x6454,0x645a, +0x645b,0x645c,0x645d,0x645f,0x6460,0x6461,0x6463,0x646d, +0x6473,0x6474,0x647b,0x647d,0x6485,0x6487,0x648f,0x6490, +0x6491,0x6498,0x6499,0x649b,0x649d,0x649f,0x64a1,0x64a3, +0x64a6,0x64a8,0x64ac,0x64b3,0x64bd,0x64be,0x64bf, -1, + -1, -1, -1, -1, -1,0x64c4,0x64c9,0x64ca, +0x64cb,0x64cc,0x64ce,0x64d0,0x64d1,0x64d5,0x64d7,0x64e4, +0x64e5,0x64e9,0x64ea,0x64ed,0x64f0,0x64f5,0x64f7,0x64fb, +0x64ff,0x6501,0x6504,0x6508,0x6509,0x650a,0x650f,0x6513, +0x6514,0x6516,0x6519,0x651b,0x651e,0x651f,0x6522,0x6526, +0x6529,0x652e,0x6531,0x653a,0x653c,0x653d,0x6543,0x6547, +0x6549,0x6550,0x6552,0x6554,0x655f,0x6560,0x6567,0x656b, +0x657a,0x657d,0x6581,0x6585,0x658a,0x6592,0x6595,0x6598, +0x659d,0x65a0,0x65a3,0x65a6,0x65ae,0x65b2,0x65b3,0x65b4, +0x65bf,0x65c2,0x65c8,0x65c9,0x65ce,0x65d0,0x65d4,0x65d6, +0x65d8,0x65df,0x65f0,0x65f2,0x65f4,0x65f5,0x65f9,0x65fe, +0x65ff,0x6600,0x6604,0x6608,0x6609,0x660d,0x6611,0x6612, +0x6615,0x6616,0x661d, -1, -1, -1, -1, -1, + -1,0x661e,0x6621,0x6622,0x6623,0x6624,0x6626,0x6629, +0x662a,0x662b,0x662c,0x662e,0x6630,0x6631,0x6633,0x6639, +0x6637,0x6640,0x6645,0x6646,0x664a,0x664c,0x6651,0x664e, +0x6657,0x6658,0x6659,0x665b,0x665c,0x6660,0x6661,0x66fb, +0x666a,0x666b,0x666c,0x667e,0x6673,0x6675,0x667f,0x6677, +0x6678,0x6679,0x667b,0x6680,0x667c,0x668b,0x668c,0x668d, +0x6690,0x6692,0x6699,0x669a,0x669b,0x669c,0x669f,0x66a0, +0x66a4,0x66ad,0x66b1,0x66b2,0x66b5,0x66bb,0x66bf,0x66c0, +0x66c2,0x66c3,0x66c8,0x66cc,0x66ce,0x66cf,0x66d4,0x66db, +0x66df,0x66e8,0x66eb,0x66ec,0x66ee,0x66fa,0x6705,0x6707, +0x670e,0x6713,0x6719,0x671c,0x6720,0x6722,0x6733,0x673e, +0x6745,0x6747,0x6748,0x674c,0x6754,0x6755,0x675d, -1, + -1, -1, -1, -1, -1,0x6766,0x676c,0x676e, +0x6774,0x6776,0x677b,0x6781,0x6784,0x678e,0x678f,0x6791, +0x6793,0x6796,0x6798,0x6799,0x679b,0x67b0,0x67b1,0x67b2, +0x67b5,0x67bb,0x67bc,0x67bd,0x67f9,0x67c0,0x67c2,0x67c3, +0x67c5,0x67c8,0x67c9,0x67d2,0x67d7,0x67d9,0x67dc,0x67e1, +0x67e6,0x67f0,0x67f2,0x67f6,0x67f7,0x6852,0x6814,0x6819, +0x681d,0x681f,0x6828,0x6827,0x682c,0x682d,0x682f,0x6830, +0x6831,0x6833,0x683b,0x683f,0x6844,0x6845,0x684a,0x684c, +0x6855,0x6857,0x6858,0x685b,0x686b,0x686e,0x686f,0x6870, +0x6871,0x6872,0x6875,0x6879,0x687a,0x687b,0x687c,0x6882, +0x6884,0x6886,0x6888,0x6896,0x6898,0x689a,0x689c,0x68a1, +0x68a3,0x68a5,0x68a9,0x68aa,0x68ae,0x68b2,0x68bb,0x68c5, +0x68c8,0x68cc,0x68cf, -1, -1, -1, -1, -1, + -1,0x68d0,0x68d1,0x68d3,0x68d6,0x68d9,0x68dc,0x68dd, +0x68e5,0x68e8,0x68ea,0x68eb,0x68ec,0x68ed,0x68f0,0x68f1, +0x68f5,0x68f6,0x68fb,0x68fc,0x68fd,0x6906,0x6909,0x690a, +0x6910,0x6911,0x6913,0x6916,0x6917,0x6931,0x6933,0x6935, +0x6938,0x693b,0x6942,0x6945,0x6949,0x694e,0x6957,0x695b, +0x6963,0x6964,0x6965,0x6966,0x6968,0x6969,0x696c,0x6970, +0x6971,0x6972,0x697a,0x697b,0x697f,0x6980,0x698d,0x6992, +0x6996,0x6998,0x69a1,0x69a5,0x69a6,0x69a8,0x69ab,0x69ad, +0x69af,0x69b7,0x69b8,0x69ba,0x69bc,0x69c5,0x69c8,0x69d1, +0x69d6,0x69d7,0x69e2,0x69e5,0x69ee,0x69ef,0x69f1,0x69f3, +0x69f5,0x69fe,0x6a00,0x6a01,0x6a03,0x6a0f,0x6a11,0x6a15, +0x6a1a,0x6a1d,0x6a20,0x6a24,0x6a28,0x6a30,0x6a32, -1, + -1, -1, -1, -1, -1,0x6a34,0x6a37,0x6a3b, +0x6a3e,0x6a3f,0x6a45,0x6a46,0x6a49,0x6a4a,0x6a4e,0x6a50, +0x6a51,0x6a52,0x6a55,0x6a56,0x6a5b,0x6a64,0x6a67,0x6a6a, +0x6a71,0x6a73,0x6a7e,0x6a81,0x6a83,0x6a86,0x6a87,0x6a89, +0x6a8b,0x6a91,0x6a9b,0x6a9d,0x6a9e,0x6a9f,0x6aa5,0x6aab, +0x6aaf,0x6ab0,0x6ab1,0x6ab4,0x6abd,0x6abe,0x6abf,0x6ac6, +0x6ac9,0x6ac8,0x6acc,0x6ad0,0x6ad4,0x6ad5,0x6ad6,0x6adc, +0x6add,0x6ae4,0x6ae7,0x6aec,0x6af0,0x6af1,0x6af2,0x6afc, +0x6afd,0x6b02,0x6b03,0x6b06,0x6b07,0x6b09,0x6b0f,0x6b10, +0x6b11,0x6b17,0x6b1b,0x6b1e,0x6b24,0x6b28,0x6b2b,0x6b2c, +0x6b2f,0x6b35,0x6b36,0x6b3b,0x6b3f,0x6b46,0x6b4a,0x6b4d, +0x6b52,0x6b56,0x6b58,0x6b5d,0x6b60,0x6b67,0x6b6b,0x6b6e, +0x6b70,0x6b75,0x6b7d, -1, -1, -1, -1, -1, + -1,0x6b7e,0x6b82,0x6b85,0x6b97,0x6b9b,0x6b9f,0x6ba0, +0x6ba2,0x6ba3,0x6ba8,0x6ba9,0x6bac,0x6bad,0x6bae,0x6bb0, +0x6bb8,0x6bb9,0x6bbd,0x6bbe,0x6bc3,0x6bc4,0x6bc9,0x6bcc, +0x6bd6,0x6bda,0x6be1,0x6be3,0x6be6,0x6be7,0x6bee,0x6bf1, +0x6bf7,0x6bf9,0x6bff,0x6c02,0x6c04,0x6c05,0x6c09,0x6c0d, +0x6c0e,0x6c10,0x6c12,0x6c19,0x6c1f,0x6c26,0x6c27,0x6c28, +0x6c2c,0x6c2e,0x6c33,0x6c35,0x6c36,0x6c3a,0x6c3b,0x6c3f, +0x6c4a,0x6c4b,0x6c4d,0x6c4f,0x6c52,0x6c54,0x6c59,0x6c5b, +0x6c5c,0x6c6b,0x6c6d,0x6c6f,0x6c74,0x6c76,0x6c78,0x6c79, +0x6c7b,0x6c85,0x6c86,0x6c87,0x6c89,0x6c94,0x6c95,0x6c97, +0x6c98,0x6c9c,0x6c9f,0x6cb0,0x6cb2,0x6cb4,0x6cc2,0x6cc6, +0x6ccd,0x6ccf,0x6cd0,0x6cd1,0x6cd2,0x6cd4,0x6cd6, -1, + -1, -1, -1, -1, -1,0x6cda,0x6cdc,0x6ce0, +0x6ce7,0x6ce9,0x6ceb,0x6cec,0x6cee,0x6cf2,0x6cf4,0x6d04, +0x6d07,0x6d0a,0x6d0e,0x6d0f,0x6d11,0x6d13,0x6d1a,0x6d26, +0x6d27,0x6d28,0x6c67,0x6d2e,0x6d2f,0x6d31,0x6d39,0x6d3c, +0x6d3f,0x6d57,0x6d5e,0x6d5f,0x6d61,0x6d65,0x6d67,0x6d6f, +0x6d70,0x6d7c,0x6d82,0x6d87,0x6d91,0x6d92,0x6d94,0x6d96, +0x6d97,0x6d98,0x6daa,0x6dac,0x6db4,0x6db7,0x6db9,0x6dbd, +0x6dbf,0x6dc4,0x6dc8,0x6dca,0x6dce,0x6dcf,0x6dd6,0x6ddb, +0x6ddd,0x6ddf,0x6de0,0x6de2,0x6de5,0x6de9,0x6def,0x6df0, +0x6df4,0x6df6,0x6dfc,0x6e00,0x6e04,0x6e1e,0x6e22,0x6e27, +0x6e32,0x6e36,0x6e39,0x6e3b,0x6e3c,0x6e44,0x6e45,0x6e48, +0x6e49,0x6e4b,0x6e4f,0x6e51,0x6e52,0x6e53,0x6e54,0x6e57, +0x6e5c,0x6e5d,0x6e5e, -1, -1, -1, -1, -1, + -1,0x6e62,0x6e63,0x6e68,0x6e73,0x6e7b,0x6e7d,0x6e8d, +0x6e93,0x6e99,0x6ea0,0x6ea7,0x6ead,0x6eae,0x6eb1,0x6eb3, +0x6ebb,0x6ebf,0x6ec0,0x6ec1,0x6ec3,0x6ec7,0x6ec8,0x6eca, +0x6ecd,0x6ece,0x6ecf,0x6eeb,0x6eed,0x6eee,0x6ef9,0x6efb, +0x6efd,0x6f04,0x6f08,0x6f0a,0x6f0c,0x6f0d,0x6f16,0x6f18, +0x6f1a,0x6f1b,0x6f26,0x6f29,0x6f2a,0x6f2f,0x6f30,0x6f33, +0x6f36,0x6f3b,0x6f3c,0x6f2d,0x6f4f,0x6f51,0x6f52,0x6f53, +0x6f57,0x6f59,0x6f5a,0x6f5d,0x6f5e,0x6f61,0x6f62,0x6f68, +0x6f6c,0x6f7d,0x6f7e,0x6f83,0x6f87,0x6f88,0x6f8b,0x6f8c, +0x6f8d,0x6f90,0x6f92,0x6f93,0x6f94,0x6f96,0x6f9a,0x6f9f, +0x6fa0,0x6fa5,0x6fa6,0x6fa7,0x6fa8,0x6fae,0x6faf,0x6fb0, +0x6fb5,0x6fb6,0x6fbc,0x6fc5,0x6fc7,0x6fc8,0x6fca, -1, + -1, -1, -1, -1, -1,0x6fda,0x6fde,0x6fe8, +0x6fe9,0x6ff0,0x6ff5,0x6ff9,0x6ffc,0x6ffd,0x7000,0x7005, +0x7006,0x7007,0x700d,0x7017,0x7020,0x7023,0x702f,0x7034, +0x7037,0x7039,0x703c,0x7043,0x7044,0x7048,0x7049,0x704a, +0x704b,0x7054,0x7055,0x705d,0x705e,0x704e,0x7064,0x7065, +0x706c,0x706e,0x7075,0x7076,0x707e,0x7081,0x7085,0x7086, +0x7094,0x7095,0x7096,0x7097,0x7098,0x709b,0x70a4,0x70ab, +0x70b0,0x70b1,0x70b4,0x70b7,0x70ca,0x70d1,0x70d3,0x70d4, +0x70d5,0x70d6,0x70d8,0x70dc,0x70e4,0x70fa,0x7103,0x7104, +0x7105,0x7106,0x7107,0x710b,0x710c,0x710f,0x711e,0x7120, +0x712b,0x712d,0x712f,0x7130,0x7131,0x7138,0x7141,0x7145, +0x7146,0x7147,0x714a,0x714b,0x7150,0x7152,0x7157,0x715a, +0x715c,0x715e,0x7160, -1, -1, -1, -1, -1, + -1,0x7168,0x7179,0x7180,0x7185,0x7187,0x718c,0x7192, +0x719a,0x719b,0x71a0,0x71a2,0x71af,0x71b0,0x71b2,0x71b3, +0x71ba,0x71bf,0x71c0,0x71c1,0x71c4,0x71cb,0x71cc,0x71d3, +0x71d6,0x71d9,0x71da,0x71dc,0x71f8,0x71fe,0x7200,0x7207, +0x7208,0x7209,0x7213,0x7217,0x721a,0x721d,0x721f,0x7224, +0x722b,0x722f,0x7234,0x7238,0x7239,0x7241,0x7242,0x7243, +0x7245,0x724e,0x724f,0x7250,0x7253,0x7255,0x7256,0x725a, +0x725c,0x725e,0x7260,0x7263,0x7268,0x726b,0x726e,0x726f, +0x7271,0x7277,0x7278,0x727b,0x727c,0x727f,0x7284,0x7289, +0x728d,0x728e,0x7293,0x729b,0x72a8,0x72ad,0x72ae,0x72b1, +0x72b4,0x72be,0x72c1,0x72c7,0x72c9,0x72cc,0x72d5,0x72d6, +0x72d8,0x72df,0x72e5,0x72f3,0x72f4,0x72fa,0x72fb, -1, + -1, -1, -1, -1, -1,0x72fe,0x7302,0x7304, +0x7305,0x7307,0x730b,0x730d,0x7312,0x7313,0x7318,0x7319, +0x731e,0x7322,0x7324,0x7327,0x7328,0x732c,0x7331,0x7332, +0x7335,0x733a,0x733b,0x733d,0x7343,0x734d,0x7350,0x7352, +0x7356,0x7358,0x735d,0x735e,0x735f,0x7360,0x7366,0x7367, +0x7369,0x736b,0x736c,0x736e,0x736f,0x7371,0x7377,0x7379, +0x737c,0x7380,0x7381,0x7383,0x7385,0x7386,0x738e,0x7390, +0x7393,0x7395,0x7397,0x7398,0x739c,0x739e,0x739f,0x73a0, +0x73a2,0x73a5,0x73a6,0x73aa,0x73ab,0x73ad,0x73b5,0x73b7, +0x73b9,0x73bc,0x73bd,0x73bf,0x73c5,0x73c6,0x73c9,0x73cb, +0x73cc,0x73cf,0x73d2,0x73d3,0x73d6,0x73d9,0x73dd,0x73e1, +0x73e3,0x73e6,0x73e7,0x73e9,0x73f4,0x73f5,0x73f7,0x73f9, +0x73fa,0x73fb,0x73fd, -1, -1, -1, -1, -1, + -1,0x73ff,0x7400,0x7401,0x7404,0x7407,0x740a,0x7411, +0x741a,0x741b,0x7424,0x7426,0x7428,0x7429,0x742a,0x742b, +0x742c,0x742d,0x742e,0x742f,0x7430,0x7431,0x7439,0x7440, +0x7443,0x7444,0x7446,0x7447,0x744b,0x744d,0x7451,0x7452, +0x7457,0x745d,0x7462,0x7466,0x7467,0x7468,0x746b,0x746d, +0x746e,0x7471,0x7472,0x7480,0x7481,0x7485,0x7486,0x7487, +0x7489,0x748f,0x7490,0x7491,0x7492,0x7498,0x7499,0x749a, +0x749c,0x749f,0x74a0,0x74a1,0x74a3,0x74a6,0x74a8,0x74a9, +0x74aa,0x74ab,0x74ae,0x74af,0x74b1,0x74b2,0x74b5,0x74b9, +0x74bb,0x74bf,0x74c8,0x74c9,0x74cc,0x74d0,0x74d3,0x74d8, +0x74da,0x74db,0x74de,0x74df,0x74e4,0x74e8,0x74ea,0x74eb, +0x74ef,0x74f4,0x74fa,0x74fb,0x74fc,0x74ff,0x7506, -1, + -1, -1, -1, -1, -1,0x7512,0x7516,0x7517, +0x7520,0x7521,0x7524,0x7527,0x7529,0x752a,0x752f,0x7536, +0x7539,0x753d,0x753e,0x753f,0x7540,0x7543,0x7547,0x7548, +0x754e,0x7550,0x7552,0x7557,0x755e,0x755f,0x7561,0x756f, +0x7571,0x7579,0x757a,0x757b,0x757c,0x757d,0x757e,0x7581, +0x7585,0x7590,0x7592,0x7593,0x7595,0x7599,0x759c,0x75a2, +0x75a4,0x75b4,0x75ba,0x75bf,0x75c0,0x75c1,0x75c4,0x75c6, +0x75cc,0x75ce,0x75cf,0x75d7,0x75dc,0x75df,0x75e0,0x75e1, +0x75e4,0x75e7,0x75ec,0x75ee,0x75ef,0x75f1,0x75f9,0x7600, +0x7602,0x7603,0x7604,0x7607,0x7608,0x760a,0x760c,0x760f, +0x7612,0x7613,0x7615,0x7616,0x7619,0x761b,0x761c,0x761d, +0x761e,0x7623,0x7625,0x7626,0x7629,0x762d,0x7632,0x7633, +0x7635,0x7638,0x7639, -1, -1, -1, -1, -1, + -1,0x763a,0x763c,0x764a,0x7640,0x7641,0x7643,0x7644, +0x7645,0x7649,0x764b,0x7655,0x7659,0x765f,0x7664,0x7665, +0x766d,0x766e,0x766f,0x7671,0x7674,0x7681,0x7685,0x768c, +0x768d,0x7695,0x769b,0x769c,0x769d,0x769f,0x76a0,0x76a2, +0x76a3,0x76a4,0x76a5,0x76a6,0x76a7,0x76a8,0x76aa,0x76ad, +0x76bd,0x76c1,0x76c5,0x76c9,0x76cb,0x76cc,0x76ce,0x76d4, +0x76d9,0x76e0,0x76e6,0x76e8,0x76ec,0x76f0,0x76f1,0x76f6, +0x76f9,0x76fc,0x7700,0x7706,0x770a,0x770e,0x7712,0x7714, +0x7715,0x7717,0x7719,0x771a,0x771c,0x7722,0x7728,0x772d, +0x772e,0x772f,0x7734,0x7735,0x7736,0x7739,0x773d,0x773e, +0x7742,0x7745,0x7746,0x774a,0x774d,0x774e,0x774f,0x7752, +0x7756,0x7757,0x775c,0x775e,0x775f,0x7760,0x7762, -1, + -1, -1, -1, -1, -1,0x7764,0x7767,0x776a, +0x776c,0x7770,0x7772,0x7773,0x7774,0x777a,0x777d,0x7780, +0x7784,0x778c,0x778d,0x7794,0x7795,0x7796,0x779a,0x779f, +0x77a2,0x77a7,0x77aa,0x77ae,0x77af,0x77b1,0x77b5,0x77be, +0x77c3,0x77c9,0x77d1,0x77d2,0x77d5,0x77d9,0x77de,0x77df, +0x77e0,0x77e4,0x77e6,0x77ea,0x77ec,0x77f0,0x77f1,0x77f4, +0x77f8,0x77fb,0x7805,0x7806,0x7809,0x780d,0x780e,0x7811, +0x781d,0x7821,0x7822,0x7823,0x782d,0x782e,0x7830,0x7835, +0x7837,0x7843,0x7844,0x7847,0x7848,0x784c,0x784e,0x7852, +0x785c,0x785e,0x7860,0x7861,0x7863,0x7864,0x7868,0x786a, +0x786e,0x787a,0x787e,0x788a,0x788f,0x7894,0x7898,0x78a1, +0x789d,0x789e,0x789f,0x78a4,0x78a8,0x78ac,0x78ad,0x78b0, +0x78b1,0x78b2,0x78b3, -1, -1, -1, -1, -1, + -1,0x78bb,0x78bd,0x78bf,0x78c7,0x78c8,0x78c9,0x78cc, +0x78ce,0x78d2,0x78d3,0x78d5,0x78d6,0x78e4,0x78db,0x78df, +0x78e0,0x78e1,0x78e6,0x78ea,0x78f2,0x78f3,0x7900,0x78f6, +0x78f7,0x78fa,0x78fb,0x78ff,0x7906,0x790c,0x7910,0x791a, +0x791c,0x791e,0x791f,0x7920,0x7925,0x7927,0x7929,0x792d, +0x7931,0x7934,0x7935,0x793b,0x793d,0x793f,0x7944,0x7945, +0x7946,0x794a,0x794b,0x794f,0x7951,0x7954,0x7958,0x795b, +0x795c,0x7967,0x7969,0x796b,0x7972,0x7979,0x797b,0x797c, +0x797e,0x798b,0x798c,0x7991,0x7993,0x7994,0x7995,0x7996, +0x7998,0x799b,0x799c,0x79a1,0x79a8,0x79a9,0x79ab,0x79af, +0x79b1,0x79b4,0x79b8,0x79bb,0x79c2,0x79c4,0x79c7,0x79c8, +0x79ca,0x79cf,0x79d4,0x79d6,0x79da,0x79dd,0x79de, -1, + -1, -1, -1, -1, -1,0x79e0,0x79e2,0x79e5, +0x79ea,0x79eb,0x79ed,0x79f1,0x79f8,0x79fc,0x7a02,0x7a03, +0x7a07,0x7a09,0x7a0a,0x7a0c,0x7a11,0x7a15,0x7a1b,0x7a1e, +0x7a21,0x7a27,0x7a2b,0x7a2d,0x7a2f,0x7a30,0x7a34,0x7a35, +0x7a38,0x7a39,0x7a3a,0x7a44,0x7a45,0x7a47,0x7a48,0x7a4c, +0x7a55,0x7a56,0x7a59,0x7a5c,0x7a5d,0x7a5f,0x7a60,0x7a65, +0x7a67,0x7a6a,0x7a6d,0x7a75,0x7a78,0x7a7e,0x7a80,0x7a82, +0x7a85,0x7a86,0x7a8a,0x7a8b,0x7a90,0x7a91,0x7a94,0x7a9e, +0x7aa0,0x7aa3,0x7aac,0x7ab3,0x7ab5,0x7ab9,0x7abb,0x7abc, +0x7ac6,0x7ac9,0x7acc,0x7ace,0x7ad1,0x7adb,0x7ae8,0x7ae9, +0x7aeb,0x7aec,0x7af1,0x7af4,0x7afb,0x7afd,0x7afe,0x7b07, +0x7b14,0x7b1f,0x7b23,0x7b27,0x7b29,0x7b2a,0x7b2b,0x7b2d, +0x7b2e,0x7b2f,0x7b30, -1, -1, -1, -1, -1, + -1,0x7b31,0x7b34,0x7b3d,0x7b3f,0x7b40,0x7b41,0x7b47, +0x7b4e,0x7b55,0x7b60,0x7b64,0x7b66,0x7b69,0x7b6a,0x7b6d, +0x7b6f,0x7b72,0x7b73,0x7b77,0x7b84,0x7b89,0x7b8e,0x7b90, +0x7b91,0x7b96,0x7b9b,0x7b9e,0x7ba0,0x7ba5,0x7bac,0x7baf, +0x7bb0,0x7bb2,0x7bb5,0x7bb6,0x7bba,0x7bbb,0x7bbc,0x7bbd, +0x7bc2,0x7bc5,0x7bc8,0x7bca,0x7bd4,0x7bd6,0x7bd7,0x7bd9, +0x7bda,0x7bdb,0x7be8,0x7bea,0x7bf2,0x7bf4,0x7bf5,0x7bf8, +0x7bf9,0x7bfa,0x7bfc,0x7bfe,0x7c01,0x7c02,0x7c03,0x7c04, +0x7c06,0x7c09,0x7c0b,0x7c0c,0x7c0e,0x7c0f,0x7c19,0x7c1b, +0x7c20,0x7c25,0x7c26,0x7c28,0x7c2c,0x7c31,0x7c33,0x7c34, +0x7c36,0x7c39,0x7c3a,0x7c46,0x7c4a,0x7c55,0x7c51,0x7c52, +0x7c53,0x7c59,0x7c5a,0x7c5b,0x7c5c,0x7c5d,0x7c5e, -1, + -1, -1, -1, -1, -1,0x7c61,0x7c63,0x7c67, +0x7c69,0x7c6d,0x7c6e,0x7c70,0x7c72,0x7c79,0x7c7c,0x7c7d, +0x7c86,0x7c87,0x7c8f,0x7c94,0x7c9e,0x7ca0,0x7ca6,0x7cb0, +0x7cb6,0x7cb7,0x7cba,0x7cbb,0x7cbc,0x7cbf,0x7cc4,0x7cc7, +0x7cc8,0x7cc9,0x7ccd,0x7ccf,0x7cd3,0x7cd4,0x7cd5,0x7cd7, +0x7cd9,0x7cda,0x7cdd,0x7ce6,0x7ce9,0x7ceb,0x7cf5,0x7d03, +0x7d07,0x7d08,0x7d09,0x7d0f,0x7d11,0x7d12,0x7d13,0x7d16, +0x7d1d,0x7d1e,0x7d23,0x7d26,0x7d2a,0x7d2d,0x7d31,0x7d3c, +0x7d3d,0x7d3e,0x7d40,0x7d41,0x7d47,0x7d48,0x7d4d,0x7d51, +0x7d53,0x7d57,0x7d59,0x7d5a,0x7d5c,0x7d5d,0x7d65,0x7d67, +0x7d6a,0x7d70,0x7d78,0x7d7a,0x7d7b,0x7d7f,0x7d81,0x7d82, +0x7d83,0x7d85,0x7d86,0x7d88,0x7d8b,0x7d8c,0x7d8d,0x7d91, +0x7d96,0x7d97,0x7d9d, -1, -1, -1, -1, -1, + -1,0x7d9e,0x7da6,0x7da7,0x7daa,0x7db3,0x7db6,0x7db7, +0x7db9,0x7dc2,0x7dc3,0x7dc4,0x7dc5,0x7dc6,0x7dcc,0x7dcd, +0x7dce,0x7dd7,0x7dd9,0x7e00,0x7de2,0x7de5,0x7de6,0x7dea, +0x7deb,0x7ded,0x7df1,0x7df5,0x7df6,0x7df9,0x7dfa,0x7e08, +0x7e10,0x7e11,0x7e15,0x7e17,0x7e1c,0x7e1d,0x7e20,0x7e27, +0x7e28,0x7e2c,0x7e2d,0x7e2f,0x7e33,0x7e36,0x7e3f,0x7e44, +0x7e45,0x7e47,0x7e4e,0x7e50,0x7e52,0x7e58,0x7e5f,0x7e61, +0x7e62,0x7e65,0x7e6b,0x7e6e,0x7e6f,0x7e73,0x7e78,0x7e7e, +0x7e81,0x7e86,0x7e87,0x7e8a,0x7e8d,0x7e91,0x7e95,0x7e98, +0x7e9a,0x7e9d,0x7e9e,0x7f3c,0x7f3b,0x7f3d,0x7f3e,0x7f3f, +0x7f43,0x7f44,0x7f47,0x7f4f,0x7f52,0x7f53,0x7f5b,0x7f5c, +0x7f5d,0x7f61,0x7f63,0x7f64,0x7f65,0x7f66,0x7f6d, -1, + -1, -1, -1, -1, -1,0x7f71,0x7f7d,0x7f7e, +0x7f7f,0x7f80,0x7f8b,0x7f8d,0x7f8f,0x7f90,0x7f91,0x7f96, +0x7f97,0x7f9c,0x7fa1,0x7fa2,0x7fa6,0x7faa,0x7fad,0x7fb4, +0x7fbc,0x7fbf,0x7fc0,0x7fc3,0x7fc8,0x7fce,0x7fcf,0x7fdb, +0x7fdf,0x7fe3,0x7fe5,0x7fe8,0x7fec,0x7fee,0x7fef,0x7ff2, +0x7ffa,0x7ffd,0x7ffe,0x7fff,0x8007,0x8008,0x800a,0x800d, +0x800e,0x800f,0x8011,0x8013,0x8014,0x8016,0x801d,0x801e, +0x801f,0x8020,0x8024,0x8026,0x802c,0x802e,0x8030,0x8034, +0x8035,0x8037,0x8039,0x803a,0x803c,0x803e,0x8040,0x8044, +0x8060,0x8064,0x8066,0x806d,0x8071,0x8075,0x8081,0x8088, +0x808e,0x809c,0x809e,0x80a6,0x80a7,0x80ab,0x80b8,0x80b9, +0x80c8,0x80cd,0x80cf,0x80d2,0x80d4,0x80d5,0x80d7,0x80d8, +0x80e0,0x80ed,0x80ee, -1, -1, -1, -1, -1, + -1,0x80f0,0x80f2,0x80f3,0x80f6,0x80f9,0x80fa,0x80fe, +0x8103,0x810b,0x8116,0x8117,0x8118,0x811c,0x811e,0x8120, +0x8124,0x8127,0x812c,0x8130,0x8135,0x813a,0x813c,0x8145, +0x8147,0x814a,0x814c,0x8152,0x8157,0x8160,0x8161,0x8167, +0x8168,0x8169,0x816d,0x816f,0x8177,0x8181,0x8190,0x8184, +0x8185,0x8186,0x818b,0x818e,0x8196,0x8198,0x819b,0x819e, +0x81a2,0x81ae,0x81b2,0x81b4,0x81bb,0x81cb,0x81c3,0x81c5, +0x81ca,0x81ce,0x81cf,0x81d5,0x81d7,0x81db,0x81dd,0x81de, +0x81e1,0x81e4,0x81eb,0x81ec,0x81f0,0x81f1,0x81f2,0x81f5, +0x81f6,0x81f8,0x81f9,0x81fd,0x81ff,0x8200,0x8203,0x820f, +0x8213,0x8214,0x8219,0x821a,0x821d,0x8221,0x8222,0x8228, +0x8232,0x8234,0x823a,0x8243,0x8244,0x8245,0x8246, -1, + -1, -1, -1, -1, -1,0x824b,0x824e,0x824f, +0x8251,0x8256,0x825c,0x8260,0x8263,0x8267,0x826d,0x8274, +0x827b,0x827d,0x827f,0x8280,0x8281,0x8283,0x8284,0x8287, +0x8289,0x828a,0x828e,0x8291,0x8294,0x8296,0x8298,0x829a, +0x829b,0x82a0,0x82a1,0x82a3,0x82a4,0x82a7,0x82a8,0x82a9, +0x82aa,0x82ae,0x82b0,0x82b2,0x82b4,0x82b7,0x82ba,0x82bc, +0x82be,0x82bf,0x82c6,0x82d0,0x82d5,0x82da,0x82e0,0x82e2, +0x82e4,0x82e8,0x82ea,0x82ed,0x82ef,0x82f6,0x82f7,0x82fd, +0x82fe,0x8300,0x8301,0x8307,0x8308,0x830a,0x830b,0x8354, +0x831b,0x831d,0x831e,0x831f,0x8321,0x8322,0x832c,0x832d, +0x832e,0x8330,0x8333,0x8337,0x833a,0x833c,0x833d,0x8342, +0x8343,0x8344,0x8347,0x834d,0x834e,0x8351,0x8355,0x8356, +0x8357,0x8370,0x8378, -1, -1, -1, -1, -1, + -1,0x837d,0x837f,0x8380,0x8382,0x8384,0x8386,0x838d, +0x8392,0x8394,0x8395,0x8398,0x8399,0x839b,0x839c,0x839d, +0x83a6,0x83a7,0x83a9,0x83ac,0x83be,0x83bf,0x83c0,0x83c7, +0x83c9,0x83cf,0x83d0,0x83d1,0x83d4,0x83dd,0x8353,0x83e8, +0x83ea,0x83f6,0x83f8,0x83f9,0x83fc,0x8401,0x8406,0x840a, +0x840f,0x8411,0x8415,0x8419,0x83ad,0x842f,0x8439,0x8445, +0x8447,0x8448,0x844a,0x844d,0x844f,0x8451,0x8452,0x8456, +0x8458,0x8459,0x845a,0x845c,0x8460,0x8464,0x8465,0x8467, +0x846a,0x8470,0x8473,0x8474,0x8476,0x8478,0x847c,0x847d, +0x8481,0x8485,0x8492,0x8493,0x8495,0x849e,0x84a6,0x84a8, +0x84a9,0x84aa,0x84af,0x84b1,0x84b4,0x84ba,0x84bd,0x84be, +0x84c0,0x84c2,0x84c7,0x84c8,0x84cc,0x84cf,0x84d3, -1, + -1, -1, -1, -1, -1,0x84dc,0x84e7,0x84ea, +0x84ef,0x84f0,0x84f1,0x84f2,0x84f7,0x8532,0x84fa,0x84fb, +0x84fd,0x8502,0x8503,0x8507,0x850c,0x850e,0x8510,0x851c, +0x851e,0x8522,0x8523,0x8524,0x8525,0x8527,0x852a,0x852b, +0x852f,0x8533,0x8534,0x8536,0x853f,0x8546,0x854f,0x8550, +0x8551,0x8552,0x8553,0x8556,0x8559,0x855c,0x855d,0x855e, +0x855f,0x8560,0x8561,0x8562,0x8564,0x856b,0x856f,0x8579, +0x857a,0x857b,0x857d,0x857f,0x8581,0x8585,0x8586,0x8589, +0x858b,0x858c,0x858f,0x8593,0x8598,0x859d,0x859f,0x85a0, +0x85a2,0x85a5,0x85a7,0x85b4,0x85b6,0x85b7,0x85b8,0x85bc, +0x85bd,0x85be,0x85bf,0x85c2,0x85c7,0x85ca,0x85cb,0x85ce, +0x85ad,0x85d8,0x85da,0x85df,0x85e0,0x85e6,0x85e8,0x85ed, +0x85f3,0x85f6,0x85fc, -1, -1, -1, -1, -1, + -1,0x85ff,0x8600,0x8604,0x8605,0x860d,0x860e,0x8610, +0x8611,0x8612,0x8618,0x8619,0x861b,0x861e,0x8621,0x8627, +0x8629,0x8636,0x8638,0x863a,0x863c,0x863d,0x8640,0x8642, +0x8646,0x8652,0x8653,0x8656,0x8657,0x8658,0x8659,0x865d, +0x8660,0x8661,0x8662,0x8663,0x8664,0x8669,0x866c,0x866f, +0x8675,0x8676,0x8677,0x867a,0x868d,0x8691,0x8696,0x8698, +0x869a,0x869c,0x86a1,0x86a6,0x86a7,0x86a8,0x86ad,0x86b1, +0x86b3,0x86b4,0x86b5,0x86b7,0x86b8,0x86b9,0x86bf,0x86c0, +0x86c1,0x86c3,0x86c5,0x86d1,0x86d2,0x86d5,0x86d7,0x86da, +0x86dc,0x86e0,0x86e3,0x86e5,0x86e7,0x8688,0x86fa,0x86fc, +0x86fd,0x8704,0x8705,0x8707,0x870b,0x870e,0x870f,0x8710, +0x8713,0x8714,0x8719,0x871e,0x871f,0x8721,0x8723, -1, + -1, -1, -1, -1, -1,0x8728,0x872e,0x872f, +0x8731,0x8732,0x8739,0x873a,0x873c,0x873d,0x873e,0x8740, +0x8743,0x8745,0x874d,0x8758,0x875d,0x8761,0x8764,0x8765, +0x876f,0x8771,0x8772,0x877b,0x8783,0x8784,0x8785,0x8786, +0x8787,0x8788,0x8789,0x878b,0x878c,0x8790,0x8793,0x8795, +0x8797,0x8798,0x8799,0x879e,0x87a0,0x87a3,0x87a7,0x87ac, +0x87ad,0x87ae,0x87b1,0x87b5,0x87be,0x87bf,0x87c1,0x87c8, +0x87c9,0x87ca,0x87ce,0x87d5,0x87d6,0x87d9,0x87da,0x87dc, +0x87df,0x87e2,0x87e3,0x87e4,0x87ea,0x87eb,0x87ed,0x87f1, +0x87f3,0x87f8,0x87fa,0x87ff,0x8801,0x8803,0x8806,0x8809, +0x880a,0x880b,0x8810,0x8819,0x8812,0x8813,0x8814,0x8818, +0x881a,0x881b,0x881c,0x881e,0x881f,0x8828,0x882d,0x882e, +0x8830,0x8832,0x8835, -1, -1, -1, -1, -1, + -1,0x883a,0x883c,0x8841,0x8843,0x8845,0x8848,0x8849, +0x884a,0x884b,0x884e,0x8851,0x8855,0x8856,0x8858,0x885a, +0x885c,0x885f,0x8860,0x8864,0x8869,0x8871,0x8879,0x887b, +0x8880,0x8898,0x889a,0x889b,0x889c,0x889f,0x88a0,0x88a8, +0x88aa,0x88ba,0x88bd,0x88be,0x88c0,0x88ca,0x88cb,0x88cc, +0x88cd,0x88ce,0x88d1,0x88d2,0x88d3,0x88db,0x88de,0x88e7, +0x88ef,0x88f0,0x88f1,0x88f5,0x88f7,0x8901,0x8906,0x890d, +0x890e,0x890f,0x8915,0x8916,0x8918,0x8919,0x891a,0x891c, +0x8920,0x8926,0x8927,0x8928,0x8930,0x8931,0x8932,0x8935, +0x8939,0x893a,0x893e,0x8940,0x8942,0x8945,0x8946,0x8949, +0x894f,0x8952,0x8957,0x895a,0x895b,0x895c,0x8961,0x8962, +0x8963,0x896b,0x896e,0x8970,0x8973,0x8975,0x897a, -1, + -1, -1, -1, -1, -1,0x897b,0x897c,0x897d, +0x8989,0x898d,0x8990,0x8994,0x8995,0x899b,0x899c,0x899f, +0x89a0,0x89a5,0x89b0,0x89b4,0x89b5,0x89b6,0x89b7,0x89bc, +0x89d4,0x89d5,0x89d6,0x89d7,0x89d8,0x89e5,0x89e9,0x89eb, +0x89ed,0x89f1,0x89f3,0x89f6,0x89f9,0x89fd,0x89ff,0x8a04, +0x8a05,0x8a07,0x8a0f,0x8a11,0x8a12,0x8a14,0x8a15,0x8a1e, +0x8a20,0x8a22,0x8a24,0x8a26,0x8a2b,0x8a2c,0x8a2f,0x8a35, +0x8a37,0x8a3d,0x8a3e,0x8a40,0x8a43,0x8a45,0x8a47,0x8a49, +0x8a4d,0x8a4e,0x8a53,0x8a56,0x8a57,0x8a58,0x8a5c,0x8a5d, +0x8a61,0x8a65,0x8a67,0x8a75,0x8a76,0x8a77,0x8a79,0x8a7a, +0x8a7b,0x8a7e,0x8a7f,0x8a80,0x8a83,0x8a86,0x8a8b,0x8a8f, +0x8a90,0x8a92,0x8a96,0x8a97,0x8a99,0x8a9f,0x8aa7,0x8aa9, +0x8aae,0x8aaf,0x8ab3, -1, -1, -1, -1, -1, + -1,0x8ab6,0x8ab7,0x8abb,0x8abe,0x8ac3,0x8ac6,0x8ac8, +0x8ac9,0x8aca,0x8ad1,0x8ad3,0x8ad4,0x8ad5,0x8ad7,0x8add, +0x8adf,0x8aec,0x8af0,0x8af4,0x8af5,0x8af6,0x8afc,0x8aff, +0x8b05,0x8b06,0x8b0b,0x8b11,0x8b1c,0x8b1e,0x8b1f,0x8b0a, +0x8b2d,0x8b30,0x8b37,0x8b3c,0x8b42,0x8b43,0x8b44,0x8b45, +0x8b46,0x8b48,0x8b52,0x8b53,0x8b54,0x8b59,0x8b4d,0x8b5e, +0x8b63,0x8b6d,0x8b76,0x8b78,0x8b79,0x8b7c,0x8b7e,0x8b81, +0x8b84,0x8b85,0x8b8b,0x8b8d,0x8b8f,0x8b94,0x8b95,0x8b9c, +0x8b9e,0x8b9f,0x8c38,0x8c39,0x8c3d,0x8c3e,0x8c45,0x8c47, +0x8c49,0x8c4b,0x8c4f,0x8c51,0x8c53,0x8c54,0x8c57,0x8c58, +0x8c5b,0x8c5d,0x8c59,0x8c63,0x8c64,0x8c66,0x8c68,0x8c69, +0x8c6d,0x8c73,0x8c75,0x8c76,0x8c7b,0x8c7e,0x8c86, -1, + -1, -1, -1, -1, -1,0x8c87,0x8c8b,0x8c90, +0x8c92,0x8c93,0x8c99,0x8c9b,0x8c9c,0x8ca4,0x8cb9,0x8cba, +0x8cc5,0x8cc6,0x8cc9,0x8ccb,0x8ccf,0x8cd6,0x8cd5,0x8cd9, +0x8cdd,0x8ce1,0x8ce8,0x8cec,0x8cef,0x8cf0,0x8cf2,0x8cf5, +0x8cf7,0x8cf8,0x8cfe,0x8cff,0x8d01,0x8d03,0x8d09,0x8d12, +0x8d17,0x8d1b,0x8d65,0x8d69,0x8d6c,0x8d6e,0x8d7f,0x8d82, +0x8d84,0x8d88,0x8d8d,0x8d90,0x8d91,0x8d95,0x8d9e,0x8d9f, +0x8da0,0x8da6,0x8dab,0x8dac,0x8daf,0x8db2,0x8db5,0x8db7, +0x8db9,0x8dbb,0x8dc0,0x8dc5,0x8dc6,0x8dc7,0x8dc8,0x8dca, +0x8dce,0x8dd1,0x8dd4,0x8dd5,0x8dd7,0x8dd9,0x8de4,0x8de5, +0x8de7,0x8dec,0x8df0,0x8dbc,0x8df1,0x8df2,0x8df4,0x8dfd, +0x8e01,0x8e04,0x8e05,0x8e06,0x8e0b,0x8e11,0x8e14,0x8e16, +0x8e20,0x8e21,0x8e22, -1, -1, -1, -1, -1, + -1,0x8e23,0x8e26,0x8e27,0x8e31,0x8e33,0x8e36,0x8e37, +0x8e38,0x8e39,0x8e3d,0x8e40,0x8e41,0x8e4b,0x8e4d,0x8e4e, +0x8e4f,0x8e54,0x8e5b,0x8e5c,0x8e5d,0x8e5e,0x8e61,0x8e62, +0x8e69,0x8e6c,0x8e6d,0x8e6f,0x8e70,0x8e71,0x8e79,0x8e7a, +0x8e7b,0x8e82,0x8e83,0x8e89,0x8e90,0x8e92,0x8e95,0x8e9a, +0x8e9b,0x8e9d,0x8e9e,0x8ea2,0x8ea7,0x8ea9,0x8ead,0x8eae, +0x8eb3,0x8eb5,0x8eba,0x8ebb,0x8ec0,0x8ec1,0x8ec3,0x8ec4, +0x8ec7,0x8ecf,0x8ed1,0x8ed4,0x8edc,0x8ee8,0x8eee,0x8ef0, +0x8ef1,0x8ef7,0x8ef9,0x8efa,0x8eed,0x8f00,0x8f02,0x8f07, +0x8f08,0x8f0f,0x8f10,0x8f16,0x8f17,0x8f18,0x8f1e,0x8f20, +0x8f21,0x8f23,0x8f25,0x8f27,0x8f28,0x8f2c,0x8f2d,0x8f2e, +0x8f34,0x8f35,0x8f36,0x8f37,0x8f3a,0x8f40,0x8f41, -1, + -1, -1, -1, -1, -1,0x8f43,0x8f47,0x8f4f, +0x8f51,0x8f52,0x8f53,0x8f54,0x8f55,0x8f58,0x8f5d,0x8f5e, +0x8f65,0x8f9d,0x8fa0,0x8fa1,0x8fa4,0x8fa5,0x8fa6,0x8fb5, +0x8fb6,0x8fb8,0x8fbe,0x8fc0,0x8fc1,0x8fc6,0x8fca,0x8fcb, +0x8fcd,0x8fd0,0x8fd2,0x8fd3,0x8fd5,0x8fe0,0x8fe3,0x8fe4, +0x8fe8,0x8fee,0x8ff1,0x8ff5,0x8ff6,0x8ffb,0x8ffe,0x9002, +0x9004,0x9008,0x900c,0x9018,0x901b,0x9028,0x9029,0x902f, +0x902a,0x902c,0x902d,0x9033,0x9034,0x9037,0x903f,0x9043, +0x9044,0x904c,0x905b,0x905d,0x9062,0x9066,0x9067,0x906c, +0x9070,0x9074,0x9079,0x9085,0x9088,0x908b,0x908c,0x908e, +0x9090,0x9095,0x9097,0x9098,0x9099,0x909b,0x90a0,0x90a1, +0x90a2,0x90a5,0x90b0,0x90b2,0x90b3,0x90b4,0x90b6,0x90bd, +0x90cc,0x90be,0x90c3, -1, -1, -1, -1, -1, + -1,0x90c4,0x90c5,0x90c7,0x90c8,0x90d5,0x90d7,0x90d8, +0x90d9,0x90dc,0x90dd,0x90df,0x90e5,0x90d2,0x90f6,0x90eb, +0x90ef,0x90f0,0x90f4,0x90fe,0x90ff,0x9100,0x9104,0x9105, +0x9106,0x9108,0x910d,0x9110,0x9114,0x9116,0x9117,0x9118, +0x911a,0x911c,0x911e,0x9120,0x9125,0x9122,0x9123,0x9127, +0x9129,0x912e,0x912f,0x9131,0x9134,0x9136,0x9137,0x9139, +0x913a,0x913c,0x913d,0x9143,0x9147,0x9148,0x914f,0x9153, +0x9157,0x9159,0x915a,0x915b,0x9161,0x9164,0x9167,0x916d, +0x9174,0x9179,0x917a,0x917b,0x9181,0x9183,0x9185,0x9186, +0x918a,0x918e,0x9191,0x9193,0x9194,0x9195,0x9198,0x919e, +0x91a1,0x91a6,0x91a8,0x91ac,0x91ad,0x91ae,0x91b0,0x91b1, +0x91b2,0x91b3,0x91b6,0x91bb,0x91bc,0x91bd,0x91bf, -1, + -1, -1, -1, -1, -1,0x91c2,0x91c3,0x91c5, +0x91d3,0x91d4,0x91d7,0x91d9,0x91da,0x91de,0x91e4,0x91e5, +0x91e9,0x91ea,0x91ec,0x91ed,0x91ee,0x91ef,0x91f0,0x91f1, +0x91f7,0x91f9,0x91fb,0x91fd,0x9200,0x9201,0x9204,0x9205, +0x9206,0x9207,0x9209,0x920a,0x920c,0x9210,0x9212,0x9213, +0x9216,0x9218,0x921c,0x921d,0x9223,0x9224,0x9225,0x9226, +0x9228,0x922e,0x922f,0x9230,0x9233,0x9235,0x9236,0x9238, +0x9239,0x923a,0x923c,0x923e,0x9240,0x9242,0x9243,0x9246, +0x9247,0x924a,0x924d,0x924e,0x924f,0x9251,0x9258,0x9259, +0x925c,0x925d,0x9260,0x9261,0x9265,0x9267,0x9268,0x9269, +0x926e,0x926f,0x9270,0x9275,0x9276,0x9277,0x9278,0x9279, +0x927b,0x927c,0x927d,0x927f,0x9288,0x9289,0x928a,0x928d, +0x928e,0x9292,0x9297, -1, -1, -1, -1, -1, + -1,0x9299,0x929f,0x92a0,0x92a4,0x92a5,0x92a7,0x92a8, +0x92ab,0x92af,0x92b2,0x92b6,0x92b8,0x92ba,0x92bb,0x92bc, +0x92bd,0x92bf,0x92c0,0x92c1,0x92c2,0x92c3,0x92c5,0x92c6, +0x92c7,0x92c8,0x92cb,0x92cc,0x92cd,0x92ce,0x92d0,0x92d3, +0x92d5,0x92d7,0x92d8,0x92d9,0x92dc,0x92dd,0x92df,0x92e0, +0x92e1,0x92e3,0x92e5,0x92e7,0x92e8,0x92ec,0x92ee,0x92f0, +0x92f9,0x92fb,0x92ff,0x9300,0x9302,0x9308,0x930d,0x9311, +0x9314,0x9315,0x931c,0x931d,0x931e,0x931f,0x9321,0x9324, +0x9325,0x9327,0x9329,0x932a,0x9333,0x9334,0x9336,0x9337, +0x9347,0x9348,0x9349,0x9350,0x9351,0x9352,0x9355,0x9357, +0x9358,0x935a,0x935e,0x9364,0x9365,0x9367,0x9369,0x936a, +0x936d,0x936f,0x9370,0x9371,0x9373,0x9374,0x9376, -1, + -1, -1, -1, -1, -1,0x937a,0x937d,0x937f, +0x9380,0x9381,0x9382,0x9388,0x938a,0x938b,0x938d,0x938f, +0x9392,0x9395,0x9398,0x939b,0x939e,0x93a1,0x93a3,0x93a4, +0x93a6,0x93a8,0x93ab,0x93b4,0x93b5,0x93b6,0x93ba,0x93a9, +0x93c1,0x93c4,0x93c5,0x93c6,0x93c7,0x93c9,0x93ca,0x93cb, +0x93cc,0x93cd,0x93d3,0x93d9,0x93dc,0x93de,0x93df,0x93e2, +0x93e6,0x93e7,0x93f9,0x93f7,0x93f8,0x93fa,0x93fb,0x93fd, +0x9401,0x9402,0x9404,0x9408,0x9409,0x940d,0x940e,0x940f, +0x9415,0x9416,0x9417,0x941f,0x942e,0x942f,0x9431,0x9432, +0x9433,0x9434,0x943b,0x943f,0x943d,0x9443,0x9445,0x9448, +0x944a,0x944c,0x9455,0x9459,0x945c,0x945f,0x9461,0x9463, +0x9468,0x946b,0x946d,0x946e,0x946f,0x9471,0x9472,0x9484, +0x9483,0x9578,0x9579, -1, -1, -1, -1, -1, + -1,0x957e,0x9584,0x9588,0x958c,0x958d,0x958e,0x959d, +0x959e,0x959f,0x95a1,0x95a6,0x95a9,0x95ab,0x95ac,0x95b4, +0x95b6,0x95ba,0x95bd,0x95bf,0x95c6,0x95c8,0x95c9,0x95cb, +0x95d0,0x95d1,0x95d2,0x95d3,0x95d9,0x95da,0x95dd,0x95de, +0x95df,0x95e0,0x95e4,0x95e6,0x961d,0x961e,0x9622,0x9624, +0x9625,0x9626,0x962c,0x9631,0x9633,0x9637,0x9638,0x9639, +0x963a,0x963c,0x963d,0x9641,0x9652,0x9654,0x9656,0x9657, +0x9658,0x9661,0x966e,0x9674,0x967b,0x967c,0x967e,0x967f, +0x9681,0x9682,0x9683,0x9684,0x9689,0x9691,0x9696,0x969a, +0x969d,0x969f,0x96a4,0x96a5,0x96a6,0x96a9,0x96ae,0x96af, +0x96b3,0x96ba,0x96ca,0x96d2,0x5db2,0x96d8,0x96da,0x96dd, +0x96de,0x96df,0x96e9,0x96ef,0x96f1,0x96fa,0x9702, -1, + -1, -1, -1, -1, -1,0x9703,0x9705,0x9709, +0x971a,0x971b,0x971d,0x9721,0x9722,0x9723,0x9728,0x9731, +0x9733,0x9741,0x9743,0x974a,0x974e,0x974f,0x9755,0x9757, +0x9758,0x975a,0x975b,0x9763,0x9767,0x976a,0x976e,0x9773, +0x9776,0x9777,0x9778,0x977b,0x977d,0x977f,0x9780,0x9789, +0x9795,0x9796,0x9797,0x9799,0x979a,0x979e,0x979f,0x97a2, +0x97ac,0x97ae,0x97b1,0x97b2,0x97b5,0x97b6,0x97b8,0x97b9, +0x97ba,0x97bc,0x97be,0x97bf,0x97c1,0x97c4,0x97c5,0x97c7, +0x97c9,0x97ca,0x97cc,0x97cd,0x97ce,0x97d0,0x97d1,0x97d4, +0x97d7,0x97d8,0x97d9,0x97dd,0x97de,0x97e0,0x97db,0x97e1, +0x97e4,0x97ef,0x97f1,0x97f4,0x97f7,0x97f8,0x97fa,0x9807, +0x980a,0x9819,0x980d,0x980e,0x9814,0x9816,0x981c,0x981e, +0x9820,0x9823,0x9826, -1, -1, -1, -1, -1, + -1,0x982b,0x982e,0x982f,0x9830,0x9832,0x9833,0x9835, +0x9825,0x983e,0x9844,0x9847,0x984a,0x9851,0x9852,0x9853, +0x9856,0x9857,0x9859,0x985a,0x9862,0x9863,0x9865,0x9866, +0x986a,0x986c,0x98ab,0x98ad,0x98ae,0x98b0,0x98b4,0x98b7, +0x98b8,0x98ba,0x98bb,0x98bf,0x98c2,0x98c5,0x98c8,0x98cc, +0x98e1,0x98e3,0x98e5,0x98e6,0x98e7,0x98ea,0x98f3,0x98f6, +0x9902,0x9907,0x9908,0x9911,0x9915,0x9916,0x9917,0x991a, +0x991b,0x991c,0x991f,0x9922,0x9926,0x9927,0x992b,0x9931, +0x9932,0x9933,0x9934,0x9935,0x9939,0x993a,0x993b,0x993c, +0x9940,0x9941,0x9946,0x9947,0x9948,0x994d,0x994e,0x9954, +0x9958,0x9959,0x995b,0x995c,0x995e,0x995f,0x9960,0x999b, +0x999d,0x999f,0x99a6,0x99b0,0x99b1,0x99b2,0x99b5, -1, + -1, -1, -1, -1, -1,0x99b9,0x99ba,0x99bd, +0x99bf,0x99c3,0x99c9,0x99d3,0x99d4,0x99d9,0x99da,0x99dc, +0x99de,0x99e7,0x99ea,0x99eb,0x99ec,0x99f0,0x99f4,0x99f5, +0x99f9,0x99fd,0x99fe,0x9a02,0x9a03,0x9a04,0x9a0b,0x9a0c, +0x9a10,0x9a11,0x9a16,0x9a1e,0x9a20,0x9a22,0x9a23,0x9a24, +0x9a27,0x9a2d,0x9a2e,0x9a33,0x9a35,0x9a36,0x9a38,0x9a47, +0x9a41,0x9a44,0x9a4a,0x9a4b,0x9a4c,0x9a4e,0x9a51,0x9a54, +0x9a56,0x9a5d,0x9aaa,0x9aac,0x9aae,0x9aaf,0x9ab2,0x9ab4, +0x9ab5,0x9ab6,0x9ab9,0x9abb,0x9abe,0x9abf,0x9ac1,0x9ac3, +0x9ac6,0x9ac8,0x9ace,0x9ad0,0x9ad2,0x9ad5,0x9ad6,0x9ad7, +0x9adb,0x9adc,0x9ae0,0x9ae4,0x9ae5,0x9ae7,0x9ae9,0x9aec, +0x9af2,0x9af3,0x9af5,0x9af9,0x9afa,0x9afd,0x9aff,0x9b00, +0x9b01,0x9b02,0x9b03, -1, -1, -1, -1, -1, + -1,0x9b04,0x9b05,0x9b08,0x9b09,0x9b0b,0x9b0c,0x9b0d, +0x9b0e,0x9b10,0x9b12,0x9b16,0x9b19,0x9b1b,0x9b1c,0x9b20, +0x9b26,0x9b2b,0x9b2d,0x9b33,0x9b34,0x9b35,0x9b37,0x9b39, +0x9b3a,0x9b3d,0x9b48,0x9b4b,0x9b4c,0x9b55,0x9b56,0x9b57, +0x9b5b,0x9b5e,0x9b61,0x9b63,0x9b65,0x9b66,0x9b68,0x9b6a, +0x9b6b,0x9b6c,0x9b6d,0x9b6e,0x9b73,0x9b75,0x9b77,0x9b78, +0x9b79,0x9b7f,0x9b80,0x9b84,0x9b85,0x9b86,0x9b87,0x9b89, +0x9b8a,0x9b8b,0x9b8d,0x9b8f,0x9b90,0x9b94,0x9b9a,0x9b9d, +0x9b9e,0x9ba6,0x9ba7,0x9ba9,0x9bac,0x9bb0,0x9bb1,0x9bb2, +0x9bb7,0x9bb8,0x9bbb,0x9bbc,0x9bbe,0x9bbf,0x9bc1,0x9bc7, +0x9bc8,0x9bce,0x9bd0,0x9bd7,0x9bd8,0x9bdd,0x9bdf,0x9be5, +0x9be7,0x9bea,0x9beb,0x9bef,0x9bf3,0x9bf7,0x9bf8, -1, + -1, -1, -1, -1, -1,0x9bf9,0x9bfa,0x9bfd, +0x9bff,0x9c00,0x9c02,0x9c0b,0x9c0f,0x9c11,0x9c16,0x9c18, +0x9c19,0x9c1a,0x9c1c,0x9c1e,0x9c22,0x9c23,0x9c26,0x9c27, +0x9c28,0x9c29,0x9c2a,0x9c31,0x9c35,0x9c36,0x9c37,0x9c3d, +0x9c41,0x9c43,0x9c44,0x9c45,0x9c49,0x9c4a,0x9c4e,0x9c4f, +0x9c50,0x9c53,0x9c54,0x9c56,0x9c58,0x9c5b,0x9c5d,0x9c5e, +0x9c5f,0x9c63,0x9c69,0x9c6a,0x9c5c,0x9c6b,0x9c68,0x9c6e, +0x9c70,0x9c72,0x9c75,0x9c77,0x9c7b,0x9ce6,0x9cf2,0x9cf7, +0x9cf9,0x9d0b,0x9d02,0x9d11,0x9d17,0x9d18,0x9d1c,0x9d1d, +0x9d1e,0x9d2f,0x9d30,0x9d32,0x9d33,0x9d34,0x9d3a,0x9d3c, +0x9d45,0x9d3d,0x9d42,0x9d43,0x9d47,0x9d4a,0x9d53,0x9d54, +0x9d5f,0x9d63,0x9d62,0x9d65,0x9d69,0x9d6a,0x9d6b,0x9d70, +0x9d76,0x9d77,0x9d7b, -1, -1, -1, -1, -1, + -1,0x9d7c,0x9d7e,0x9d83,0x9d84,0x9d86,0x9d8a,0x9d8d, +0x9d8e,0x9d92,0x9d93,0x9d95,0x9d96,0x9d97,0x9d98,0x9da1, +0x9daa,0x9dac,0x9dae,0x9db1,0x9db5,0x9db9,0x9dbc,0x9dbf, +0x9dc3,0x9dc7,0x9dc9,0x9dca,0x9dd4,0x9dd5,0x9dd6,0x9dd7, +0x9dda,0x9dde,0x9ddf,0x9de0,0x9de5,0x9de7,0x9de9,0x9deb, +0x9dee,0x9df0,0x9df3,0x9df4,0x9dfe,0x9e0a,0x9e02,0x9e07, +0x9e0e,0x9e10,0x9e11,0x9e12,0x9e15,0x9e16,0x9e19,0x9e1c, +0x9e1d,0x9e7a,0x9e7b,0x9e7c,0x9e80,0x9e82,0x9e83,0x9e84, +0x9e85,0x9e87,0x9e8e,0x9e8f,0x9e96,0x9e98,0x9e9b,0x9e9e, +0x9ea4,0x9ea8,0x9eac,0x9eae,0x9eaf,0x9eb0,0x9eb3,0x9eb4, +0x9eb5,0x9ec6,0x9ec8,0x9ecb,0x9ed5,0x9edf,0x9ee4,0x9ee7, +0x9eec,0x9eed,0x9eee,0x9ef0,0x9ef1,0x9ef2,0x9ef5, -1, + -1, -1, -1, -1, -1,0x9ef8,0x9eff,0x9f02, +0x9f03,0x9f09,0x9f0f,0x9f10,0x9f11,0x9f12,0x9f14,0x9f16, +0x9f17,0x9f19,0x9f1a,0x9f1b,0x9f1f,0x9f22,0x9f26,0x9f2a, +0x9f2b,0x9f2f,0x9f31,0x9f32,0x9f34,0x9f37,0x9f39,0x9f3a, +0x9f3c,0x9f3d,0x9f3f,0x9f41,0x9f43,0x9f44,0x9f45,0x9f46, +0x9f47,0x9f53,0x9f55,0x9f56,0x9f57,0x9f58,0x9f5a,0x9f5d, +0x9f5e,0x9f68,0x9f69,0x9f6d,0x9f6e,0x9f6f,0x9f70,0x9f71, +0x9f73,0x9f75,0x9f7a,0x9f7d,0x9f8f,0x9f90,0x9f91,0x9f92, +0x9f94,0x9f96,0x9f97,0x9f9e,0x9fa1,0x9fa2,0x9fa3,0x9fa5, +}; diff --git a/src/cmd/tcs/kuten212.h b/src/cmd/tcs/kuten212.h new file mode 100644 index 00000000..05e830e2 --- /dev/null +++ b/src/cmd/tcs/kuten212.h @@ -0,0 +1,3 @@ +#define KUTEN212MAX 7768 + +extern long tabkuten212[KUTEN212MAX]; /* runes indexed by kuten */ diff --git a/src/cmd/tcs/mkfile b/src/cmd/tcs/mkfile new file mode 100644 index 00000000..c410a0c0 --- /dev/null +++ b/src/cmd/tcs/mkfile @@ -0,0 +1,33 @@ +<$PLAN9/src/mkhdr + +TARG=tcs +OFILES=tcs.$O\ + conv_jis.$O\ + conv_big5.$O\ + conv_gb.$O\ + conv_ksc.$O\ + utf.$O\ + kuten208.$O\ + gb.$O\ + ksc.$O\ + big5.$O + +SHORTLIB=bio 9 +<$PLAN9/src/mkone +CFLAGS= -DPLAN9 $CFLAGS + +tcs.$O utf.$O: hdr.h +tcs.$O: jis.h +tcs.$O kuten208.$O: kuten208.h +tcs.$O big5.$O: big5.h +tcs.$O gb.$O: gb.h +tcs.$O: cyrillic.h +tcs.$O: conv.h +conv%.$O: conv.h +conv_ksc.$O: ksc.h + +clean:V: + rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG + +nuke:V: + rm -f *.[$OS] [$OS].out y.tab.? y.debug y.output $TARG diff --git a/src/cmd/tcs/plan9.h b/src/cmd/tcs/plan9.h new file mode 100644 index 00000000..4d002cb0 --- /dev/null +++ b/src/cmd/tcs/plan9.h @@ -0,0 +1,23 @@ +typedef unsigned short Rune; /* 16 bits */ +typedef unsigned char uchar; +#define Runeerror 0x80 /* decoding error in UTF */ +#define Runeself 0x80 /* rune and UTF sequences are the same (<) */ +#define UTFmax 6 /* maximum bytes per rune */ + +/* + plan 9 argument parsing +*/ +#define ARGBEGIN for((argv0? 0: (argv0= *argv)),argv++,argc--;\ + argv[0] && argv[0][0]=='-' && argv[0][1];\ + argc--, argv++) {\ + char *_args, *_argt, _argc;\ + _args = &argv[0][1];\ + if(_args[0]=='-' && _args[1]==0){\ + argc--; argv++; break;\ + }\ + _argc=0;while(*_args) switch(_argc= *_args++) +#define ARGEND } +#define ARGF() (_argt=_args, _args="",\ + (*_argt? _argt: argv[1]? (argc--, *++argv): 0)) +#define ARGC() _argc +extern char *argv0; diff --git a/src/cmd/tcs/tcs.c b/src/cmd/tcs/tcs.c new file mode 100644 index 00000000..14403064 --- /dev/null +++ b/src/cmd/tcs/tcs.c @@ -0,0 +1,1053 @@ +#ifndef PLAN9 +#include <sys/types.h> +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <fcntl.h> +#include <string.h> +#include <errno.h> +#include "plan9.h" +#else /* PLAN9 */ +#include <u.h> +#include <libc.h> +#include <bio.h> +#endif /* PLAN9 */ +#include "cyrillic.h" +#include "big5.h" +#include "gb.h" +#include "hdr.h" +#include "conv.h" + +void usage(void); +void list(void); +int squawk = 1; +int clean = 0; +int verbose = 0; +long ninput, noutput, nrunes, nerrors; +char *file = "stdin"; +char *argv0; +Rune runes[N]; +char obuf[UTFmax*N]; /* maximum bloat from N runes */ +long tab[NRUNE]; +#ifndef PLAN9 +extern char version[]; +#endif + +void intable(int, long *, struct convert *); +void unicode_in(int, long *, struct convert *); +void unicode_out(Rune *, int, long *); + +int +main(int argc, char **argv) +{ + char *from = "utf"; + char *to = "utf"; + int fd; + int listem = 0; + struct convert *t, *f; + + ARGBEGIN { + case 'c': + clean = 1; + break; + case 'f': + from = ARGF(); + break; + case 'l': + listem = 1; + break; + case 's': + squawk = 0; + break; + case 't': + to = ARGF(); + break; + case 'v': + verbose = 1; + break; + default: + usage(); + break; + } ARGEND + + USED(argc); + if(verbose) + squawk = 1; + if(listem){ + list(); + EXIT(0, 0); + } + if(!from || !to) + usage(); + f = conv(from, 1); + t = conv(to, 0); +#define PROC {if(f->flags&Table)\ + intable(fd, (long *)f->data, t);\ + else\ + ((Infn)(f->fn))(fd, (long *)0, t);} + if(*argv){ + while(*argv){ + file = *argv; +#ifndef PLAN9 + if((fd = open(*argv, 0)) < 0){ + EPR "%s: %s: %s\n", argv0, *argv, strerror(errno)); +#else /* PLAN9 */ + if((fd = open(*argv, OREAD)) < 0){ + EPR "%s: %s: %r\n", argv0, *argv); +#endif /* PLAN9 */ + EXIT(1, "open failure"); + } + PROC + close(fd); + argv++; + } + } else { + fd = 0; + PROC + } + if(verbose) + EPR "%s: %ld input bytes, %ld runes, %ld output bytes (%ld errors)\n", argv0, + ninput, nrunes, noutput, nerrors); + EXIT(((nerrors && squawk)? 1:0), ((nerrors && squawk)? "conversion error":0)); + return(0); /* shut up compiler */ +} + +void +usage(void) +{ + EPR "Usage: %s [-slv] [-f cs] [-t cs] [file ...]\n", argv0); + list(); + EXIT(1, "usage"); +} + +void +list(void) +{ + struct convert *c; + char ch = verbose?'\t':' '; + +#ifndef PLAN9 + EPR "%s version = '%s'\n", argv0, version); +#endif + if(verbose) + EPR "character sets:\n"); + else + EPR "cs:"); + for(c = convert; c->name; c++){ + if((c->flags&From) && c[1].name && (strcmp(c[1].name, c->name) == 0)){ + EPR "%c%s", ch, c->name); + c++; + } else if(c->flags&Table) + EPR "%c%s", ch, c->name); + else if(c->flags&From) + EPR "%c%s(from)", ch, c->name); + else + EPR "%c%s(to)", ch, c->name); + if(verbose) + EPR "\t%s\n", c->chatter); + } + if(!verbose) + EPR "\n"); +} + +struct convert * +conv(char *name, int from) +{ + struct convert *c; + + for(c = convert; c->name; c++){ + if(strcmp(c->name, name) != 0) + continue; + if(c->flags&Table) + return(c); + if(((c->flags&From) == 0) == (from == 0)) + return(c); + } + EPR "%s: charset `%s' unknown\n", argv0, name); + EXIT(1, "unknown character set"); + return(0); /* just shut the compiler up */ +} + +void +swab2(char *b, int n) +{ + char *e, p; + + for(e = b+n; b < e; b++){ + p = *b; + *b = b[1]; + *++b = p; + } +} + +void +unicode_in(int fd, long *notused, struct convert *out) +{ + Rune buf[N]; + int n; + int swabme; + + USED(notused); + if(read(fd, (char *)buf, 2) != 2) + return; + ninput += 2; + switch(buf[0]) + { + default: + OUT(out, buf, 1); + case 0xFEFF: + swabme = 0; + break; + case 0xFFFE: + swabme = 1; + break; + } + while((n = read(fd, (char *)buf, 2*N)) > 0){ + ninput += n; + if(n&1){ + if(squawk) + EPR "%s: odd byte count in %s\n", argv0, file); + nerrors++; + if(clean) + n--; + else { + n++; + buf[n/2] = Runeerror; + if(swabme) /* swab so later swab undoes it */ + swab2((char *)&buf[n/2], 2); + } + } + if(swabme) + swab2((char *)buf, n); + OUT(out, buf, n/2); + } +} + +void +unicode_out(Rune *base, int n, long *notused) +{ + static int first = 1; + + USED(notused); + nrunes += n; + if(first){ + unsigned short x = 0xFEFF; + noutput += 2; + write(1, (char *)&x, 2); + first = 0; + } + noutput += 2*n; + write(1, (char *)base, 2*n); +} + +void +intable(int fd, long *table, struct convert *out) +{ + uchar buf[N]; + uchar *p, *e; + Rune *r; + int n; + long c; + + while((n = read(fd, (char *)buf, N)) > 0){ + ninput += n; + r = runes; + for(p = buf, e = buf+n; p < e; p++){ + c = table[*p]; + if(c < 0){ + if(squawk) + EPR "%s: bad char 0x%x near byte %ld in %s\n", argv0, *p, ninput+(p-e), file); + nerrors++; + if(clean) + continue; + c = BADMAP; + } + *r++ = c; + } + OUT(out, runes, r-runes); + } + if(n < 0){ +#ifdef PLAN9 + EPR "%s: input read: %r\n", argv0); +#else + EPR "%s: input read: %s\n", argv0, strerror(errno)); +#endif + EXIT(1, "input read error"); + } +} + +void +outtable(Rune *base, int n, long *map) +{ + long c; + char *p; + int i; + + nrunes += n; + for(i = 0; i < NRUNE; i++) + tab[i] = -1; + for(i = 0; i < 256; i++) + if(map[i] >= 0) + tab[map[i]] = i; + for(i = 0, p = obuf; i < n; i++){ + c = tab[base[i]]; + if(c < 0){ + if(squawk) + EPR "%s: rune 0x%x not in output cs\n", argv0, base[i]); + nerrors++; + if(clean) + continue; + c = BADMAP; + } + *p++ = c; + } + noutput += p-obuf; + write(1, obuf, p-obuf); +} + +long tabascii[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +}; + +long tab8859_1[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, +0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, +0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, +0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, +0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, +0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff, +}; + +long tab8859_2[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x0104,0x02d8,0x0141,0x00a4,0x013d,0x015a,0x00a7, +0x00a8,0x0160,0x015e,0x0164,0x0179,0x00ad,0x017d,0x017b, +0x00b0,0x0105,0x02db,0x0142,0x00b4,0x013e,0x015b,0x02c7, +0x00b8,0x0161,0x015f,0x0165,0x017a,0x02dd,0x017e,0x017c, +0x0154,0x00c1,0x00c2,0x0102,0x00c4,0x0139,0x0106,0x00c7, +0x010c,0x00c9,0x0118,0x00cb,0x011a,0x00cd,0x00ce,0x010e, +0x0110,0x0143,0x0147,0x00d3,0x00d4,0x0150,0x00d6,0x00d7, +0x0158,0x016e,0x00da,0x0170,0x00dc,0x00dd,0x0162,0x00df, +0x0155,0x00e1,0x00e2,0x0103,0x00e4,0x013a,0x0107,0x00e7, +0x010d,0x00e9,0x0119,0x00eb,0x011b,0x00ed,0x00ee,0x010f, +0x0111,0x0144,0x0148,0x00f3,0x00f4,0x0151,0x00f6,0x00f7, +0x0159,0x016f,0x00fa,0x0171,0x00fc,0x00fd,0x0163,0x02d9, +}; + +long tab8859_3[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x0126,0x02d8,0x00a3,0x00a4, -1,0x0124,0x00a7, +0x00a8,0x0130,0x015e,0x011e,0x0134,0x00ad, -1,0x017b, +0x00b0,0x0127,0x00b2,0x00b3,0x00b4,0x00b5,0x0125,0x00b7, +0x00b8,0x0131,0x015f,0x011f,0x0135,0x00bd, -1,0x017c, +0x00c0,0x00c1,0x00c2, -1,0x00c4,0x010a,0x0108,0x00c7, +0x00c8,0x00c9,0x00ca,0x00cb,0x00cc,0x00cd,0x00ce,0x00cf, + -1,0x00d1,0x00d2,0x00d3,0x00d4,0x0120,0x00d6,0x00d7, +0x011c,0x00d9,0x00da,0x00db,0x00dc,0x016c,0x015c,0x00df, +0x00e0,0x00e1,0x00e2, -1,0x00e4,0x010b,0x0109,0x00e7, +0x00e8,0x00e9,0x00ea,0x00eb,0x00ec,0x00ed,0x00ee,0x00ef, + -1,0x00f1,0x00f2,0x00f3,0x00f4,0x0121,0x00f6,0x00f7, +0x011d,0x00f9,0x00fa,0x00fb,0x00fc,0x016d,0x015d,0x02d9, +}; + +long tab8859_4[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x0104,0x0138,0x0156,0x00a4,0x0128,0x013b,0x00a7, +0x00a8,0x0160,0x0112,0x0122,0x0166,0x00ad,0x017d,0x00af, +0x00b0,0x0105,0x02db,0x0157,0x00b4,0x0129,0x013c,0x02c7, +0x00b8,0x0161,0x0113,0x0123,0x0167,0x014a,0x017e,0x014b, +0x0100,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x012e, +0x010c,0x00c9,0x0118,0x00cb,0x0116,0x00cd,0x00ce,0x012a, +0x0110,0x0145,0x014c,0x0136,0x00d4,0x00d5,0x00d6,0x00d7, +0x00d8,0x0172,0x00da,0x00db,0x00dc,0x0168,0x016a,0x00df, +0x0101,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x012f, +0x010d,0x00e9,0x0119,0x00eb,0x0117,0x00ed,0x00ee,0x012b, +0x0111,0x0146,0x014d,0x0137,0x00f4,0x00f5,0x00f6,0x00f7, +0x00f8,0x0173,0x00fa,0x00fb,0x00fc,0x0169,0x016b,0x02d9, +}; + +long tab8859_5[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x0401,0x0402,0x0403,0x0404,0x0405,0x0406,0x0407, +0x0408,0x0409,0x040a,0x040b,0x040c,0x00ad,0x040e,0x040f, +0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,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, +0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,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, +0x2116,0x0451,0x0452,0x0453,0x0454,0x0455,0x0456,0x0457, +0x0458,0x0459,0x045a,0x045b,0x045c,0x00a7,0x045e,0x045f, +}; + +long tab8859_6[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0, -1, -1, -1,0x00a4, -1, -1, -1, + -1, -1, -1, -1,0x060c,0x00ad, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1,0x061b, -1, -1, -1,0x061f, + -1,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, -1, -1, -1, -1, -1, +0x0640,0x0641,0x0642,0x0643,0x0644,0x0645,0x0646,0x0647, +0x0648,0x0649,0x064a,0x064b,0x064c,0x064d,0x064e,0x064f, +0x0650,0x0651,0x0652, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +}; + +long tab8859_7[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x2018,0x2019,0x00a3, -1, -1,0x00a6,0x00a7, +0x00a8,0x00a9, -1,0x00ab,0x00ac,0x00ad, -1,0x2015, +0x00b0,0x00b1,0x00b2,0x00b3,0x0384,0x0385,0x0386,0x00b7, +0x0388,0x0389,0x038a,0x00bb,0x038c,0x00bd,0x038e,0x038f, +0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397, +0x0398,0x0399,0x039a,0x039b,0x039c,0x039d,0x039e,0x039f, +0x03a0,0x03a1, -1,0x03a3,0x03a4,0x03a5,0x03a6,0x03a7, +0x03a8,0x03a9,0x03aa,0x03ab,0x03ac,0x03ad,0x03ae,0x03af, +0x03b0,0x03b1,0x03b2,0x03b3,0x03b4,0x03b5,0x03b6,0x03b7, +0x03b8,0x03b9,0x03ba,0x03bb,0x03bc,0x03bd,0x03be,0x03bf, +0x03c0,0x03c1,0x03c2,0x03c3,0x03c4,0x03c5,0x03c6,0x03c7, +0x03c8,0x03c9,0x03ca,0x03cb,0x03cc,0x03cd,0x03ce, -1, +}; + +long tab8859_8[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0, -1,0x00a2,0x00a3,0x00a4,0x00a5,0x00a6,0x00a7, +0x00a8,0x00a9,0x00d7,0x00ab,0x00ac,0x00ad,0x00ae,0x203e, +0x00b0,0x00b1,0x00b2,0x00b3,0x00b4,0x00b5,0x00b6,0x00b7, +0x00b8,0x00b9,0x00f7,0x00bb,0x00bc,0x00bd,0x00be, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1,0x2017, +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, -1, -1, -1, -1, -1, +}; + +long tab8859_9[256] = +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x00a1,0x00a2,0x00a3,0x00a4,0x00a5,0x00a6,0x00a7, +0x00a8,0x00a9,0x00aa,0x00ab,0x00ac,0x00ad,0x00ae,0x00af, +0x00b0,0x00b1,0x00b2,0x00b3,0x00b4,0x00b5,0x00b6,0x00b7, +0x00b8,0x00b9,0x00ba,0x00bb,0x00bc,0x00bd,0x00be,0x00bf, +0x00c0,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x00c7, +0x00c8,0x00c9,0x00ca,0x00cb,0x00cc,0x00cd,0x00ce,0x00cf, +0x011e,0x00d1,0x00d2,0x00d3,0x00d4,0x00d5,0x00d6,0x00d7, +0x00d8,0x00d9,0x00da,0x00db,0x00dc,0x0130,0x015e,0x00df, +0x00e0,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x00e7, +0x00e8,0x00e9,0x00ea,0x00eb,0x00ec,0x00ed,0x00ee,0x00ef, +0x011f,0x00f1,0x00f2,0x00f3,0x00f4,0x00f5,0x00f6,0x00f7, +0x00f8,0x00f9,0x00fa,0x00fb,0x00fc,0x0131,0x015f,0x00ff, +}; +long microsoft[256] = /* from seanq */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, +0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, +0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, +0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, +0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, +0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, +0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, +0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, +0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, +0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, +0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x2022, +0x2022, 0x2022, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, +0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x2022, 0x2022, 0x2022, +0x2022, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, +0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x2022, 0x2022, 0x0178, +0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, +0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, +0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, +0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, +0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, +0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, +0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, +0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, +0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, +0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, +0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, +0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff, +}; +long tabsf2[256] = /* from wirzeniu@cc.helsinki.fi (Lars Wirzenius) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xc4,0xd6,0xc5,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xe4,0xf6,0xe5,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +}; +long tabtis620[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, +0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, +0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, +0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, +0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, +0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, +0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, +0x0e38, 0x0e39, 0x0e3a, -1, -1, -1, -1, 0x0e3f, +0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, +0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, +0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, +0x0e58, 0x0e59, 0x0e5a, 0x0e5b, -1, -1, -1, -1, +}; +long tabatari[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* accented latin */ +0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, +0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, +0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192, +0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, +0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, +0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3, +0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122, +0x0133, 0x0132, + 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, /* hebrew */ +0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0, +0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, +0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, + 0x00a7, 0x2038, 0x221e, /* math */ +0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */ +0x03a6, 0x03b8, 0x2126, 0x03b4, + 0x222e, 0x03c6, 0x2208, 0x220f, /* math */ +0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, +0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af, +}; +long tabebcdic[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x00, 0x01, 0x02, 0x03, -1, 0x09, -1, 0x7f, +-1, -1, -1, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, +0x10, 0x11, 0x12, 0x13, -1, -1, 0x08, -1, +0x18, 0x09, -1, -1, 0x1c, 0x1d, 0x1e, 0x1f, +-1, -1, -1, -1, -1, 0x0a, 0x17, 0x1b, +-1, -1, -1, -1, -1, 0x05, 0x06, 0x07, +-1, -1, 0x16, -1, -1, -1, -1, 0x04, +-1, -1, -1, -1, 0x14, 0x15, -1, 0x1a, +0x20, -1, -1, -1, -1, -1, -1, -1, +-1, -1, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0x21, +0x26, -1, -1, -1, -1, -1, -1, -1, +-1, -1, 0x5d, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* not-sign 0xac -> circumflex 0x5e */ +0x2d, 0x2f, -1, -1, -1, -1, -1, -1, +-1, -1, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, +-1, -1, -1, -1, -1, -1, -1, -1, +-1, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, +-1, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, +0x68, 0x69, -1, -1, -1, -1, -1, -1, +-1, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, +0x71, 0x72, -1, -1, -1, -1, -1, -1, +-1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* non-spacing macron 0xaf -> tilde 0x7e */ +0x79, 0x7a, -1, -1, -1, -1, -1, -1, +-1, -1, -1, -1, -1, -1, -1, -1, +-1, -1, -1, -1, -1, -1, -1, -1, +0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, +0x48, 0x49, -1, -1, -1, -1, -1, -1, +0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, +0x51, 0x52, -1, -1, -1, -1, -1, -1, +0x5c, -1, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, +0x59, 0x5a, -1, -1, -1, -1, -1, -1, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, +0x38, 0x39, -1, -1, -1, -1, -1, -1, +}; +long tabmsdos[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin */ +0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, +0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, +0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, +0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, +0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, +0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* forms */ +0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, +0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, +0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, +0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, +0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, +0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */ +0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229, +0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* math */ +0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x220e, 0x00a0, +}; +long tabmsdos2[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x0000, 0x263a, 0x263b, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, +0x25d8, 0x25cb, 0x25d9, 0x2642, 0x2640, 0x266a, 0x266b, 0x263c, +0x25b6, 0x25c0, 0x2195, 0x203c, 0x00b6, 0x00a7, 0x2043, 0x21a8, +0x2191, 0x2193, 0x2192, 0x2190, 0x2319, 0x2194, 0x25b2, 0x25bc, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin */ +0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, +0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, +0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, +0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, +0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, +0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, /* forms */ +0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, +0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, +0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, +0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, +0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, +0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, /* greek */ +0x03a6, 0x0398, 0x2126, 0x03b4, 0x221e, 0x2205, 0x2208, 0x2229, +0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, /* math */ +0x00b0, 0x2022, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x220e, 0x00a0, +}; +long tabps2[256] = /* from jhelling@cs.ruu.nl (Jeroen Hellingman) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, /* latin-1 repertoire with forms */ +0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, +0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, +0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, +0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, +0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, +0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, +0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, +0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, +0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, +0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, +0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, +0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, +0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, +0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, +0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x220e, 0x00a0, +}; +long tabsf1[256] = /* From Kari.Hurtta@Helsinki.FI (Kari E. Hurtta) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0xc9,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0xc4,0xd6,0xc5,0xdc,0x5f, +0xe9,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0xe4,0xf6,0xe5,0xfc,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, +}; +long tabviet1[256] = /* From jdo@sjc.mentorg.com (James Do) */ +{ + -1, 0xda, 0x1ee4, -1, 0x1eea, 0x1eec, 0x1eee, 0x7, + -1, -1, 0xa, -1, -1, 0xc, -1, -1, + -1, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0xdd, 0x1ef4, + -1, -1, -1, -1, -1, -1, -1, -1, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + 0xc0, 0x1ea2, 0xc3, 0xc1, 0x1ea0, 0x1eb6, 0x1eac, 0xc8, +0x1eba, 0x1ebc, 0xc9, 0x1eb8, 0x1ec6, 0xcc, 0x1ec8, 0x0128, + 0xcd, 0x1eca, 0xd2, 0x1ece, 0xd5, 0xd3, 0x1ecc, 0x1ed8, +0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0xd9, 0x1ee6, 0x0168, + 0xa0, 0x0102, 0xc2, 0xca, 0xd4, 0x01a0, 0x01af, 0x0110, +0x0103, 0xe2, 0xea, 0xf4, 0x01a1, 0x01b0, 0x0111, 0x1eb0, +0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0xe0, 0x1ea3, 0xe3, + 0xe1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4, +0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7, +0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0xe8, 0x1ec2, 0x1ebb, 0x1ebd, + 0xe9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0xec, +0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0xed, 0x1ecb, 0xf2, +0x1ed4, 0x1ecf, 0xf5, 0xf3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7, +0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0xf9, +0x1ed6, 0x1ee7, 0x0169, 0xfa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef, +0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0xfd, 0x1ef5, 0x1ed0 +}; +long tabviet2[256] = /* From jdo@sjc.mentorg.com (James Do) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + 0xa0, 0x0102, 0xc2, 0xca, 0xd4, 0x01a0, 0x01af, 0x0110, +0x0103, 0xe2, 0xea, 0xf4, 0x01a1, 0x01b0, 0x0111, 0x1eb0, +0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0xe0, 0x1ea3, 0xe3, + 0xe1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4, +0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7, +0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0xe8, 0x1ec2, 0x1ebb, 0x1ebd, + 0xe9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0xec, +0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0xed, 0x1ecb, 0xf2, +0x1ed4, 0x1ecf, 0xf5, 0xf3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7, +0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0xf9, +0x1ed6, 0x1ee7, 0x0169, 0xfa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef, +0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0xfd, 0x1ef5, 0x1ed0 +}; +long tabviscii[256] = /* From cuong@haydn.Stanford.EDU (Cuong T. Nguyen) */ +{ +0x0000, 0x0001, 0x1EB2, 0x0003, 0x0004, 0x1EB4, 0x1EAA, 0x0007, +0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, +0x0010, 0x0011, 0x0012, 0x0013, 0x1EF6, 0x0015, 0x0016, 0x0017, +0x0018, 0x1EF8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1EF4, 0x001f, +0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, +0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, +0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, +0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, +0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, +0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, +0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, +0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, +0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, +0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, +0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, +0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, +0x1EA0, 0x1EAE, 0x1EB0, 0x1EB6, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAC, +0x1EBC, 0x1EB8, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1ED0, +0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EE2, 0x1EDA, 0x1EDC, 0x1EDE, +0x1ECA, 0x1ECE, 0x1ECC, 0x1EC8, 0x1EE6, 0x0168, 0x1EE4, 0x1EF2, +0x00D5, 0x1EAF, 0x1EB1, 0x1EB7, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAD, +0x1EBD, 0x1EB9, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1ED1, +0x1ED3, 0x1ED5, 0x1ED7, 0x1EE0, 0x01A0, 0x1ED9, 0x1EDD, 0x1EDF, +0x1ECB, 0x1EF0, 0x1EE8, 0x1EEA, 0x1EEC, 0x01A1, 0x1EDB, 0x01AF, +0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x1EA2, 0x0102, 0x1EB3, 0x1EB5, +0x00C8, 0x00C9, 0x00CA, 0x1EBA, 0x00CC, 0x00CD, 0x0128, 0x1EF3, +0x0110, 0x1EE9, 0x00D2, 0x00D3, 0x00D4, 0x1EA1, 0x1EF7, 0x1EEB, +0x1EED, 0x00D9, 0x00DA, 0x1EF9, 0x1EF5, 0x00DD, 0x1EE1, 0x01B0, +0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x1EA3, 0x0103, 0x1EEF, 0x1EAB, +0x00E8, 0x00E9, 0x00EA, 0x1EBB, 0x00EC, 0x00ED, 0x0129, 0x1EC9, +0x0111, 0x1EF1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x1ECF, 0x1ECD, +0x1EE5, 0x00F9, 0x00FA, 0x0169, 0x1EE7, 0x00FD, 0x1EE3, 0x1EEE +}; +long tab8859_10[256] = /* from dkuug.dk:i18n/charmaps/ISO_8859-10:1993 */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0x00a0,0x0104,0x0112,0x0122,0x012a,0x0128,0x0136,0x00a7, +0x013b,0x0110,0x0160,0x0166,0x017d,0x00ad,0x016a,0x014a, +0x00b0,0x0105,0x0113,0x0123,0x012b,0x0129,0x0137,0x00b7, +0x013c,0x0110,0x0161,0x0167,0x017e,0x2014,0x016b,0x014b, +0x0100,0x00c1,0x00c2,0x00c3,0x00c4,0x00c5,0x00c6,0x012e, +0x010c,0x00c9,0x0118,0x00cb,0x0116,0x00cd,0x00ce,0x00cf, +0x00d0,0x0145,0x014c,0x00d3,0x00d4,0x00d5,0x00d6,0x0168, +0x00d8,0x0172,0x00da,0x00db,0x00dc,0x00dd,0x00de,0x00df, +0x0101,0x00e1,0x00e2,0x00e3,0x00e4,0x00e5,0x00e6,0x012f, +0x010d,0x00e9,0x0119,0x00eb,0x0117,0x00ed,0x00ee,0x00ef, +0x00f0,0x0146,0x014d,0x00f3,0x00f4,0x00f5,0x00f6,0x0169, +0x00f8,0x0173,0x00fa,0x00fb,0x00fc,0x00fd,0x00fe,0x0138, +}; +long tabMacRoman[256] = /* (modified via world.std.com!choupt) from mduerst@ifi.unizh.ch (Martin J. Du"rst) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x00c4,0x00c5,0x00c7,0x00c9,0x00d1,0x00d6,0x00dc,0x00e1, +0x00e0,0x00e2,0x00e4,0x00e3,0x00e5,0x00e7,0x00e9,0x00e8, +0x00ea,0x00eb,0x00ed,0x00ec,0x00ee,0x00ef,0x00f1,0x00f3, +0x00f2,0x00f4,0x00f6,0x00f5,0x00fa,0x00f9,0x00fb,0x00fc, +0x2020,0x00b0,0x00a2,0x00a3,0x00a7,0x2022,0x00b6,0x00df, +0x00ae,0x00a9,0x2122,0x00b4,0x00a8,0x2260,0x00c6,0x00d8, +0x221e,0x00b1,0x2264,0x2265,0x00a5,0x00b5,0x2202,0x2211, +0x220f,0x03c0,0x222b,0x00aa,0x00ba,0x2126,0x00e6,0x00f8, +0x00bf,0x00a1,0x00ac,0x221a,0x0192,0x2248,0x2206,0x00ab, +0x00bb,0x2026,0x00a0,0x00c0,0x00c3,0x00d5,0x0152,0x0153, +0x2013,0x2014,0x2012,0x201d,0x2018,0x2019,0x00f7,0x25ca, /*2013 en dash suggested by Glenn A. Adams*/ +0x00ff,0x0178,0x2044,0x00a4,0x2039,0x203a,0xfb01,0xfb02, +0x2021,0x00b7,0x201a,0x201e,0x2030,0x00c2,0x00ca,0x00c1, +0x00cb,0x00c8,0x00cd,0x00ce,0x00cf,0x00cc,0x00d3,0x00d4, +0xf7ff,0x00d2,0x00da,0x00db,0x00d9,0x0131,0x02c6,0x02dc, +0x00af,0x02d8,0x02d9,0x02da,0x00b8,0x02dd,0x02db,0x02c7, +}; + +long tabnextstep[256] = /* From mduerst@ifi.unizh.ch (Martin J. Du"rst) */ +/* From NEXTSTEP Encoding Vector / Character Code Palette */ +/* quote (0027) and quoteright (2019) should be exchanged */ +/* if visual form is considered exactly; left as is */ +/* for compatibility with other low-end systems */ +{ +0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, +0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, +0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, +0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, +0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, +0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, +0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, +0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, +0x2007, 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C7, +0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, +0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D9, +0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00B5, 0x00D7, 0x00F7, +0x00A9, 0x00A1, 0x00A2, 0x00A3, 0x2044, 0x00A5, 0x0192, 0x00A7, +0x00A4, 0x2019, 0x201C, 0x00AB, 0x2039, 0x2040, 0xFB01, 0xFB02, +0x00AE, 0x2013, 0x2020, 0x2021, 0x00B7, 0x254E, 0x00B6, 0x2022, +0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0x00AC, 0x00BF, +0x00B9, 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0306, 0x0307, +0x0308, 0x00B2, 0x030A, 0x0327, 0x00B3, 0x030B, 0x0328, 0x030C, +0x2014, 0x00B1, 0x00BC, 0x00BD, 0x00BE, 0x00E0, 0x00E1, 0x00E2, +0x00E3, 0x00E4, 0x00E5, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, +0x00EC, 0x00C6, 0x00ED, 0x00AA, 0x00EE, 0x00EF, 0x00F0, 0x00F1, +0x0141, 0x00D8, 0x0152, 0x00BA, 0x00F2, 0x00F3, 0x00F4, 0x00F5, +0x00F6, 0x00E6, 0x00F9, 0x00FA, 0x00FB, 0x0131, 0x00FC, 0x00FD, +0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x00FF, 0xFFFF, 0xFFFF +}; + +long tab8859_15[256] = /* from anyrhine@cs.helsinki.fi (Aki Nyrhinen) */ +{ +0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, +0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, +0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, +0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, +0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, +0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, +0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, +0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, +0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, +0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, +0xa0,0xa1,0xa2,0xa3,0x20a0,0xa5,0x0160,0xa7,0x0161,0xa9,0xaa,0xab,0xac,0xad, +0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0x017d,0xb5,0xb6,0xb7,0x017e,0xb9,0xba,0xbb, +0x0152,0x0153,0x0178,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9, +0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8, +0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, +0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6, +0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff +}; + +struct convert convert[] = +{ /* if two entries have the same name, put the from one first */ + { "utf", "FSS-UTF a.k.a. UTF-8", From|Func, 0, (Fnptr)utf_in }, + { "utf", "FSS-UTF a.k.a. UTF-8", Func, 0, (Fnptr)utf_out }, + { "utf1", "UTF-1 (ISO 10646 Annex A)", From|Func, 0, (Fnptr)isoutf_in }, + { "utf1", "UTF-1 (ISO 10646 Annex A)", Func, 0, (Fnptr)isoutf_out }, + { "microsoft", "microsoft", Table, (void *)microsoft }, + { "ascii", "7-bit ASCII", Table, (void *)tabascii }, + { "8859-1", "Latin-1 (Western and Northern Europe including Italian)", Table, (void *)tab8859_1 }, + { "latin1", "ISO 8859-1", Table, (void *)tab8859_1 }, + { "8859-2", "Latin-2 (Eastern Europe except Turkey and the Baltic countries)", Table, (void *)tab8859_2 }, + { "8859-3", "Latin-3 (Mediterranean, South Africa, Esperanto)", Table, (void *)tab8859_3 }, + { "8859-4", "Latin-4 (Scandinavia and the Baltic countries; obsolete)", Table, (void *)tab8859_4 }, + { "8859-5", "Part 5 (Cyrillic)", Table, (void *)tab8859_5 }, + { "8859-6", "Part 6 (Arabic)", Table, (void *)tab8859_6 }, + { "8859-7", "Part 7 (Greek)", Table, (void *)tab8859_7 }, + { "8859-8", "Part 8 (Hebrew)", Table, (void *)tab8859_8 }, + { "8859-9", "Latin-5 (Turkey, Western Europe except Icelandic and Faroese)", Table, (void *)tab8859_9 }, + { "8859-10", "Latin-6 (Northern Europe)", Table, (void *)tab8859_10 }, + { "8859-15", "Latin-9 (Western Europe)", Table, (void *)tab8859_15 }, + { "koi8", "KOI-8 (GOST 19769-74)", Table, (void *)tabkoi8 }, + { "ucode", "Russian U-code", Table, (void *)tabucode }, + { "cp866", "Russian MS-DOS encoding (CP 866)", Table, (void *)tab866 }, + { "av", "Alternativnyj Variant", Table, (void *)tabav }, + { "cp1251", "Russian MS-DOS encoding (CP 1251)", Table, (void *)tabcp1251 }, + { "ov", "Osnovnoj Variant", Table, (void *)tabov }, + { "sf1", "ISO-646: Finnish/Swedish SF-1 variant", Table, (void *)tabsf1 }, + { "sf2", "ISO-646: Finnish/Swedish SF-2 variant (recommended)", Table, (void *)tabsf2 }, + { "jis", "guesses at the JIS encoding", From|Func, 0, (Fnptr)jis_in }, + { "jis-kanji", "ISO 2022-JP", From|Func, 0, (Fnptr)jisjis_in }, + { "jis-kanji", "ISO 2022-JP", Func, 0, (Fnptr)jisjis_out }, + { "ujis", "EUC-JX: JIS 0208", From|Func, 0, (Fnptr)ujis_in }, + { "ujis", "EUC-JX: JIS 0208", Func, 0, (Fnptr)ujis_out }, + { "ms-kanji", "Microsoft, or Shift-JIS", From|Func, 0, (Fnptr)msjis_in }, + { "ms-kanji", "Microsoft, or Shift-JIS", Func, 0, (Fnptr)msjis_out }, + { "big5", "Big 5 (HKU)", From|Func, 0, (Fnptr)big5_in }, + { "big5", "Big 5 (HKU)", Func, 0, (Fnptr)big5_out }, + { "gb", "GB2312-80", From|Func, 0, (Fnptr)gb_in }, + { "gb", "GB2312-80", Func, 0, (Fnptr)gb_out }, + { "euc-k", "Korean EUC: ASCII+KS C 5601 1987", From|Func, 0, (Fnptr)uksc_in }, + { "euc-k", "Korean EUC: ASCII+KS C 5601 1987", Func, 0, (Fnptr)uksc_out }, + { "tis", "Thai+ASCII (TIS 620-1986)", Table, (void *)tabtis620 }, + { "viet1", "Vietnamese VSCII-1 (1993)", Table, (void *)tabviet1 }, + { "viet2", "Vietnamese VSCII-2 (1993)", Table, (void *)tabviet2 }, + { "viscii", "Vietnamese VISCII 1.1 (1992)", Table, (void *)tabviscii }, + { "msdos", "IBM PC: CP 437", Table, (void *)tabmsdos }, + { "msdos2", "IBM PC: CP 437 with graphics in C0", Table, (void *)tabmsdos2 }, + { "ps2", "IBM PS/2: CP 850 (Multilingual)", Table, (void *)tabps2 }, + { "macrom", "Macintosh Standard Roman character set", Table, (void *)tabMacRoman }, + { "next", "NEXTSTEP character set", Table, (void *)tabnextstep }, + { "atari", "ATARI-ST character set", Table, (void *)tabatari }, + { "unicode", "Unicode 1.1", From|Func, 0, (Fnptr)unicode_in }, + { "unicode", "Unicode 1.1", Func, 0, (Fnptr)unicode_out }, + { "ebcdic", "EBCDIC", Table, (void *)tabebcdic }, /* 6f is recommended bad map */ + { "utf-l2", "from", From|Func, 0, (Fnptr)utf_in }, + { "utf-l2", "to", Func, 0, (Fnptr)utf_out }, + { 0 }, +}; diff --git a/src/cmd/tcs/utf.c b/src/cmd/tcs/utf.c new file mode 100644 index 00000000..418c9e1c --- /dev/null +++ b/src/cmd/tcs/utf.c @@ -0,0 +1,581 @@ +#ifdef PLAN9 +#include <u.h> +#include <libc.h> +#include <bio.h> +#else +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <errno.h> +#include "plan9.h" +#endif +#include "hdr.h" + +/* + the our_* routines are implementations for the corresponding library + routines. for a while, i tried to actually name them wctomb etc + but stopped that after i found a system which made wchar_t an + unsigned char. +*/ + +#ifdef PLAN9 +long getrune(Biobuf *); +long getisorune(Biobuf *); +#else +long getrune(FILE *); +long getisorune(FILE *); +#endif +int our_wctomb(char *s, unsigned long wc); +int our_mbtowc(unsigned long *p, char *s, unsigned n); +int runetoisoutf(char *str, Rune *rune); +int fullisorune(char *str, int n); +int isochartorune(Rune *rune, char *str); + +void +utf_in(int fd, long *notused, struct convert *out) +{ +#ifndef PLAN9 + FILE *fp; +#else /* PLAN9 */ + Biobuf b; +#endif /* PLAN9 */ + Rune *r; + long l; + + USED(notused); +#ifndef PLAN9 + if((fp = fdopen(fd, "r")) == NULL){ + EPR "%s: input setup error: %s\n", argv0, strerror(errno)); +#else /* PLAN9 */ + if(Binit(&b, fd, OREAD) < 0){ + EPR "%s: input setup error: %r\n", argv0); +#endif /* PLAN9 */ + EXIT(1, "input error"); + } + r = runes; + for(;;) +#ifndef PLAN9 + switch(l = getrune(fp)) +#else /* PLAN9 */ + switch(l = getrune(&b)) +#endif /* PLAN9 */ + { + case -1: + goto done; + case -2: + if(squawk) + EPR "%s: bad UTF sequence near byte %ld in input\n", argv0, ninput); + if(clean) + continue; + nerrors++; + l = Runeerror; + default: + *r++ = l; + if(r >= &runes[N]){ + OUT(out, runes, r-runes); + r = runes; + } + } +done: + if(r > runes) + OUT(out, runes, r-runes); +} + +void +utf_out(Rune *base, int n, long *notused) +{ + char *p; + Rune *r; + + USED(notused); + nrunes += n; + for(r = base, p = obuf; n-- > 0; r++){ + p += our_wctomb(p, *r); + } + noutput += p-obuf; + write(1, obuf, p-obuf); +} + +void +isoutf_in(int fd, long *notused, struct convert *out) +{ +#ifndef PLAN9 + FILE *fp; +#else /* PLAN9 */ + Biobuf b; +#endif /* PLAN9 */ + Rune *r; + long l; + + USED(notused); +#ifndef PLAN9 + if((fp = fdopen(fd, "r")) == 0){ + EPR "%s: input setup error: %s\n", argv0, strerror(errno)); +#else /* PLAN9 */ + if(Binit(&b, fd, OREAD) < 0){ + EPR "%s: input setup error: %r\n", argv0); +#endif /* PLAN9 */ + EXIT(1, "input error"); + } + r = runes; + for(;;) +#ifndef PLAN9 + switch(l = getisorune(fp)) +#else /* PLAN9 */ + switch(l = getisorune(&b)) +#endif /* PLAN9 */ + { + case -1: + goto done; + case -2: + if(squawk) + EPR "%s: bad UTF sequence near byte %ld in input\n", argv0, ninput); + if(clean) + continue; + nerrors++; + l = Runeerror; + default: + *r++ = l; + if(r >= &runes[N]){ + OUT(out, runes, r-runes); + r = runes; + } + } +done: + if(r > runes) + OUT(out, runes, r-runes); +} + +void +isoutf_out(Rune *base, int n, long *notused) +{ + char *p; + Rune *r; + + USED(notused); + nrunes += n; + for(r = base, p = obuf; n-- > 0; r++) + p += runetoisoutf(p, r); + noutput += p-obuf; + write(1, obuf, p-obuf); +} + +long +#ifndef PLAN9 +getrune(FILE *fp) +#else /* PLAN9 */ +getrune(Biobuf *bp) +#endif /* PLAN9 */ +{ + int c, i; + char str[UTFmax]; /* MB_LEN_MAX really */ + unsigned long l; + int n; + + for(i = 0;;){ +#ifndef PLAN9 + c = getc(fp); +#else /* PLAN9 */ + c = Bgetc(bp); +#endif /* PLAN9 */ + if(c < 0) + return(c); + ninput++; + str[i++] = c; + n = our_mbtowc(&l, str, i); + if(n == -1) + return(-2); + if(n > 0) + return(l); + } +} + +long +#ifndef PLAN9 +getisorune(FILE *fp) +#else /* PLAN9 */ +getisorune(Biobuf *bp) +#endif /* PLAN9 */ +{ + int c, i; + Rune rune; + char str[UTFmax]; /* MB_LEN_MAX really */ + + for(i = 0;;){ +#ifndef PLAN9 + c = getc(fp); +#else /* PLAN9 */ + c = Bgetc(bp); +#endif /* PLAN9 */ + if(c < 0) + return(c); + ninput++; + str[i++] = c; + if(fullisorune(str, i)) + break; + } + isochartorune(&rune, str); + if(rune == Runeerror) + return -2; + return(rune); +} + +enum +{ + Char1 = Runeself, Rune1 = Runeself, + Char21 = 0xA1, Rune21 = 0x0100, + Char22 = 0xF6, Rune22 = 0x4016, + Char3 = 0xFC, Rune3 = 0x10000, /* really 0x38E2E */ + Esc = 0xBE, Bad = Runeerror +}; + +static uchar U[256]; +static uchar T[256]; + +static +void +mktable(void) +{ + int i, u; + + for(i=0; i<256; i++) { + u = i + (0x5E - 0xA0); + if(i < 0xA0) + u = i + (0xDF - 0x7F); + if(i < 0x7F) + u = i + (0x00 - 0x21); + if(i < 0x21) + u = i + (0xBE - 0x00); + U[i] = u; + T[u] = i; + } +} + +int +isochartorune(Rune *rune, char *str) +{ + int c, c1, c2; + long l; + + if(U[0] == 0) + mktable(); + + /* + * one character sequence + * 00000-0009F => 00-9F + */ + c = *(uchar*)str; + if(c < Char1) { + *rune = c; + return 1; + } + + /* + * two character sequence + * 000A0-000FF => A0; A0-FF + */ + c1 = *(uchar*)(str+1); + if(c < Char21) { + if(c1 >= Rune1 && c1 < Rune21) { + *rune = c1; + return 2; + } + goto bad; + } + + /* + * two character sequence + * 00100-04015 => A1-F5; 21-7E/A0-FF + */ + c1 = U[c1]; + if(c1 >= Esc) + goto bad; + if(c < Char22) { + *rune = (c-Char21)*Esc + c1 + Rune21; + return 2; + } + + /* + * three character sequence + * 04016-38E2D => A6-FB; 21-7E/A0-FF + */ + c2 = U[*(uchar*)(str+2)]; + if(c2 >= Esc) + goto bad; + if(c < Char3) { + l = (c-Char22)*Esc*Esc + c1*Esc + c2 + Rune22; + if(l >= Rune3) + goto bad; + *rune = l; + return 3; + } + + /* + * bad decoding + */ +bad: + *rune = Bad; + return 1; +} + +int +runetoisoutf(char *str, Rune *rune) +{ + long c; + + if(T[0] == 0) + mktable(); + + /* + * one character sequence + * 00000-0009F => 00-9F + */ + c = *rune; + if(c < Rune1) { + str[0] = c; + return 1; + } + + /* + * two character sequence + * 000A0-000FF => A0; A0-FF + */ + if(c < Rune21) { + str[0] = (uchar)Char1; + str[1] = c; + return 2; + } + + /* + * two character sequence + * 00100-04015 => A1-F5; 21-7E/A0-FF + */ + if(c < Rune22) { + c -= Rune21; + str[0] = c/Esc + Char21; + str[1] = T[c%Esc]; + return 2; + } + + /* + * three character sequence + * 04016-38E2D => A6-FB; 21-7E/A0-FF + */ + c -= Rune22; + str[0] = c/(Esc*Esc) + Char22; + str[1] = T[c/Esc%Esc]; + str[2] = T[c%Esc]; + return 3; +} + +int +fullisorune(char *str, int n) +{ + int c; + + if(n > 0) { + c = *(uchar*)str; + if(c < Char1) + return 1; + if(n > 1) + if(c < Char22 || n > 2) + return 1; + } + return 0; +} + +#ifdef PLAN9 +int errno; +#endif + +enum +{ + T1 = 0x00, + Tx = 0x80, + T2 = 0xC0, + T3 = 0xE0, + T4 = 0xF0, + T5 = 0xF8, + T6 = 0xFC, + + Bit1 = 7, + Bitx = 6, + Bit2 = 5, + Bit3 = 4, + Bit4 = 3, + Bit5 = 2, + Bit6 = 2, + + Mask1 = (1<<Bit1)-1, + Maskx = (1<<Bitx)-1, + Mask2 = (1<<Bit2)-1, + Mask3 = (1<<Bit3)-1, + Mask4 = (1<<Bit4)-1, + Mask5 = (1<<Bit5)-1, + Mask6 = (1<<Bit6)-1, + + Wchar1 = (1UL<<Bit1)-1, + Wchar2 = (1UL<<(Bit2+Bitx))-1, + Wchar3 = (1UL<<(Bit3+2*Bitx))-1, + Wchar4 = (1UL<<(Bit4+3*Bitx))-1, + Wchar5 = (1UL<<(Bit5+4*Bitx))-1 + +#ifndef EILSEQ + , /* we hate ansi c's comma rules */ + EILSEQ = 123 +#endif /* PLAN9 */ +}; + +int +our_wctomb(char *s, unsigned long wc) +{ + if(s == 0) + return 0; /* no shift states */ + if(wc & ~Wchar2) { + if(wc & ~Wchar4) { + if(wc & ~Wchar5) { + /* 6 bytes */ + s[0] = T6 | ((wc >> 5*Bitx) & Mask6); + s[1] = Tx | ((wc >> 4*Bitx) & Maskx); + s[2] = Tx | ((wc >> 3*Bitx) & Maskx); + s[3] = Tx | ((wc >> 2*Bitx) & Maskx); + s[4] = Tx | ((wc >> 1*Bitx) & Maskx); + s[5] = Tx | (wc & Maskx); + return 6; + } + /* 5 bytes */ + s[0] = T5 | (wc >> 4*Bitx); + s[1] = Tx | ((wc >> 3*Bitx) & Maskx); + s[2] = Tx | ((wc >> 2*Bitx) & Maskx); + s[3] = Tx | ((wc >> 1*Bitx) & Maskx); + s[4] = Tx | (wc & Maskx); + return 5; + } + if(wc & ~Wchar3) { + /* 4 bytes */ + s[0] = T4 | (wc >> 3*Bitx); + s[1] = Tx | ((wc >> 2*Bitx) & Maskx); + s[2] = Tx | ((wc >> 1*Bitx) & Maskx); + s[3] = Tx | (wc & Maskx); + return 4; + } + /* 3 bytes */ + s[0] = T3 | (wc >> 2*Bitx); + s[1] = Tx | ((wc >> 1*Bitx) & Maskx); + s[2] = Tx | (wc & Maskx); + return 3; + } + if(wc & ~Wchar1) { + /* 2 bytes */ + s[0] = T2 | (wc >> 1*Bitx); + s[1] = Tx | (wc & Maskx); + return 2; + } + /* 1 byte */ + s[0] = T1 | wc; + return 1; +} + +int +our_mbtowc(unsigned long *p, char *s, unsigned n) +{ + uchar *us; + int c0, c1, c2, c3, c4, c5; + unsigned long wc; + + if(s == 0) + return 0; /* no shift states */ + + if(n < 1) + goto badlen; + us = (uchar*)s; + c0 = us[0]; + if(c0 >= T3) { + if(n < 3) + goto badlen; + c1 = us[1] ^ Tx; + c2 = us[2] ^ Tx; + if((c1|c2) & T2) + goto bad; + if(c0 >= T5) { + if(n < 5) + goto badlen; + c3 = us[3] ^ Tx; + c4 = us[4] ^ Tx; + if((c3|c4) & T2) + goto bad; + if(c0 >= T6) { + /* 6 bytes */ + if(n < 6) + goto badlen; + c5 = us[5] ^ Tx; + if(c5 & T2) + goto bad; + wc = ((((((((((c0 & Mask6) << Bitx) | + c1) << Bitx) | c2) << Bitx) | + c3) << Bitx) | c4) << Bitx) | c5; + if(wc <= Wchar5) + goto bad; + *p = wc; + return 6; + } + /* 5 bytes */ + wc = ((((((((c0 & Mask5) << Bitx) | + c1) << Bitx) | c2) << Bitx) | + c3) << Bitx) | c4; + if(wc <= Wchar4) + goto bad; + *p = wc; + return 5; + } + if(c0 >= T4) { + /* 4 bytes */ + if(n < 4) + goto badlen; + c3 = us[3] ^ Tx; + if(c3 & T2) + goto bad; + wc = ((((((c0 & Mask4) << Bitx) | + c1) << Bitx) | c2) << Bitx) | + c3; + if(wc <= Wchar3) + goto bad; + *p = wc; + return 4; + } + /* 3 bytes */ + wc = ((((c0 & Mask3) << Bitx) | + c1) << Bitx) | c2; + if(wc <= Wchar2) + goto bad; + *p = wc; + return 3; + } + if(c0 >= T2) { + /* 2 bytes */ + if(n < 2) + goto badlen; + c1 = us[1] ^ Tx; + if(c1 & T2) + goto bad; + wc = ((c0 & Mask2) << Bitx) | + c1; + if(wc <= Wchar1) + goto bad; + *p = wc; + return 2; + } + /* 1 byte */ + if(c0 >= Tx) + goto bad; + *p = c0; + return 1; + +bad: + errno = EILSEQ; + return -1; +badlen: + return -2; +} |