Skip to content
Browse files

Implement newer release of BIG5-HKSCS.

  • Loading branch information...
1 parent 8b58085 commit fd7d5707b506de291acbbefd170281b8226eb379 @bhaible bhaible committed
View
23 ChangeLog
@@ -1,5 +1,28 @@
2010-11-23 Bruno Haible <bruno@clisp.org>
+ Implement newer release of BIG5-HKSCS.
+ * tools/Makefile (ALL): Add hkscs2008.h.
+ (hkscs2008.h): New rule.
+ * tools/cjk_tab_to_h.c (main): Recognize hkscs2008.
+ * lib/encodings.def: Add BIG5-HKSCS:2008. Change BIG5-HKSCS alias to be
+ equivalent to BIG5-HKSCS:2008.
+ * lib/hkscs2008.h: New file, autogenerated.
+ * lib/big5hkscs2008.h: New file, based on lib/big5hkscs2004.h.
+ * lib/converters.h: Include the new file.
+ * README, man/iconv_open.3: Add BIG5-HKSCS:2004.
+ * tests/BIG5-HKSCS-2008.TXT: New file, based on
+ tests/BIG5-HKSCS-2004.TXT.
+ * tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT: New file, copied from
+ tests/BIG5-HKSCS-2004.IRREVERSIBLE.TXT
+ * tests/BIG5-HKSCS-2008-snippet: New file, based on
+ tests/BIG5-HKSCS-2004-snippet.
+ * tests/BIG5-HKSCS-2008-snippet.UTF-8: New file, based on
+ tests/BIG5-HKSCS-2004-snippet.UTF-8.
+ * tests/Makefile.in (check): Check also BIG5-HKSCS:2008.
+ Reported by oCameLo <camel322@gmail.com>.
+
+2010-11-23 Bruno Haible <bruno@clisp.org>
+
Make cjk_tab_to_h 64-bit clean.
* tools/cjk_tab_to_h.c (do_jisx0213): Add a cast from size_t to int.
(output_title): Update copyright year.
View
3 NEWS
@@ -1,3 +1,6 @@
+* Updated the BIG5-HKSCS converter. The old BIG5-HKSCS converter is renamed to
+ BIG5-HKSCS:2004. A new converter BIG5-HKSCS:2008 is added. BIG5-HKSCS is now
+ an alias for BIG5-HKSCS:2008.
* Fixed a bug in the conversion to wchar_t.
New in 1.13:
View
3 README
@@ -18,7 +18,8 @@ It provides support for the encodings:
EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
Chinese
EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS,
- BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT
+ BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN,
+ ISO-2022-CN-EXT
Korean
EUC-KR, CP949, ISO-2022-KR, JOHAB
Armenian
View
247 lib/big5hkscs2008.h
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) 1999-2002, 2006, 2010 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * BIG5-HKSCS:2008
+ */
+
+/*
+ * BIG5-HKSCS:2008 can be downloaded from
+ * http://www.ogcio.gov.hk/ccli/eng/hkscs/download.html
+ * http://www.ogcio.gov.hk/ccli/eng/hkscs/introduction.html
+ *
+ * It extends BIG5-HKSCS:2004 through 68 characters.
+ *
+ * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges
+ *
+ * 0x{87..8D}{40..7E,A1..FE} 880 characters
+ * 0x{8E..A0}{40..7E,A1..FE} 2898 characters
+ * 0x{C6..C8}{40..7E,A1..FE} 359 characters
+ * 0xF9{D6..FE} 41 characters
+ * 0x{FA..FE}{40..7E,A1..FE} 763 characters
+ *
+ * Note that some HKSCS characters are not contained in Unicode 3.2
+ * and are therefore best represented as sequences of Unicode characters:
+ * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON
+ * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON
+ * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON
+ * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON
+ */
+
+#include "hkscs2008.h"
+#include "flushwc.h"
+
+static int
+big5hkscs2008_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+ ucs4_t last_wc = conv->istate;
+ if (last_wc) {
+ /* Output the buffered character. */
+ conv->istate = 0;
+ *pwc = last_wc;
+ return 0; /* Don't advance the input pointer. */
+ } else {
+ unsigned char c = *s;
+ /* Code set 0 (ASCII) */
+ if (c < 0x80)
+ return ascii_mbtowc(conv,pwc,s,n);
+ /* Code set 1 (BIG5 extended) */
+ if (c >= 0xa1 && c < 0xff) {
+ if (n < 2)
+ return RET_TOOFEW(0);
+ {
+ unsigned char c2 = s[1];
+ if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+ if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) {
+ int ret = big5_mbtowc(conv,pwc,s,2);
+ if (ret != RET_ILSEQ)
+ return ret;
+ }
+ }
+ }
+ }
+ {
+ int ret = hkscs1999_mbtowc(conv,pwc,s,n);
+ if (ret != RET_ILSEQ)
+ return ret;
+ }
+ {
+ int ret = hkscs2001_mbtowc(conv,pwc,s,n);
+ if (ret != RET_ILSEQ)
+ return ret;
+ }
+ {
+ int ret = hkscs2004_mbtowc(conv,pwc,s,n);
+ if (ret != RET_ILSEQ)
+ return ret;
+ }
+ {
+ int ret = hkscs2008_mbtowc(conv,pwc,s,n);
+ if (ret != RET_ILSEQ)
+ return ret;
+ }
+ if (c == 0x88) {
+ if (n < 2)
+ return RET_TOOFEW(0);
+ {
+ unsigned char c2 = s[1];
+ if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) {
+ /* It's a composed character. */
+ ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */
+ ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */
+ /* We cannot output two Unicode characters at once. So,
+ output the first character and buffer the second one. */
+ *pwc = wc1;
+ conv->istate = wc2;
+ return 2;
+ }
+ }
+ }
+ return RET_ILSEQ;
+ }
+}
+
+#define big5hkscs2008_flushwc normal_flushwc
+
+static int
+big5hkscs2008_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+ int count = 0;
+ unsigned char last = conv->ostate;
+
+ if (last) {
+ /* last is = 0x66 or = 0xa7. */
+ if (wc == 0x0304 || wc == 0x030c) {
+ /* Output the combined character. */
+ if (n >= 2) {
+ r[0] = 0x88;
+ r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */
+ conv->ostate = 0;
+ return 2;
+ } else
+ return RET_TOOSMALL;
+ }
+
+ /* Output the buffered character. */
+ if (n < 2)
+ return RET_TOOSMALL;
+ r[0] = 0x88;
+ r[1] = last;
+ r += 2;
+ count = 2;
+ }
+
+ /* Code set 0 (ASCII) */
+ if (wc < 0x0080) {
+ /* Plain ASCII character. */
+ if (n > count) {
+ r[0] = (unsigned char) wc;
+ conv->ostate = 0;
+ return count+1;
+ } else
+ return RET_TOOSMALL;
+ } else {
+ unsigned char buf[2];
+ int ret;
+
+ /* Code set 1 (BIG5 extended) */
+ ret = big5_wctomb(conv,buf,wc,2);
+ if (ret != RET_ILUNI) {
+ if (ret != 2) abort();
+ if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) {
+ if (n >= count+2) {
+ r[0] = buf[0];
+ r[1] = buf[1];
+ conv->ostate = 0;
+ return count+2;
+ } else
+ return RET_TOOSMALL;
+ }
+ }
+ ret = hkscs1999_wctomb(conv,buf,wc,2);
+ if (ret != RET_ILUNI) {
+ if (ret != 2) abort();
+ if ((wc & ~0x0020) == 0x00ca) {
+ /* A possible first character of a multi-character sequence. We have to
+ buffer it. */
+ if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort();
+ conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */
+ return count+0;
+ }
+ if (n >= count+2) {
+ r[0] = buf[0];
+ r[1] = buf[1];
+ conv->ostate = 0;
+ return count+2;
+ } else
+ return RET_TOOSMALL;
+ }
+ ret = hkscs2001_wctomb(conv,buf,wc,2);
+ if (ret != RET_ILUNI) {
+ if (ret != 2) abort();
+ if (n >= count+2) {
+ r[0] = buf[0];
+ r[1] = buf[1];
+ conv->ostate = 0;
+ return count+2;
+ } else
+ return RET_TOOSMALL;
+ }
+ ret = hkscs2004_wctomb(conv,buf,wc,2);
+ if (ret != RET_ILUNI) {
+ if (ret != 2) abort();
+ if (n >= count+2) {
+ r[0] = buf[0];
+ r[1] = buf[1];
+ conv->ostate = 0;
+ return count+2;
+ } else
+ return RET_TOOSMALL;
+ }
+ ret = hkscs2008_wctomb(conv,buf,wc,2);
+ if (ret != RET_ILUNI) {
+ if (ret != 2) abort();
+ if (n >= count+2) {
+ r[0] = buf[0];
+ r[1] = buf[1];
+ conv->ostate = 0;
+ return count+2;
+ } else
+ return RET_TOOSMALL;
+ }
+ return RET_ILUNI;
+ }
+}
+
+static int
+big5hkscs2008_reset (conv_t conv, unsigned char *r, int n)
+{
+ unsigned char last = conv->ostate;
+
+ if (last) {
+ if (n < 2)
+ return RET_TOOSMALL;
+ r[0] = 0x88;
+ r[1] = last;
+ /* conv->ostate = 0; will be done by the caller */
+ return 2;
+ } else
+ return 0;
+}
View
3 lib/converters.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1999-2002, 2004-2009 Free Software Foundation, Inc.
+ * Copyright (C) 1999-2002, 2004-2010 Free Software Foundation, Inc.
* This file is part of the GNU LIBICONV Library.
*
* The GNU LIBICONV Library is free software; you can redistribute it
@@ -242,6 +242,7 @@ typedef struct {
#include "big5hkscs1999.h"
#include "big5hkscs2001.h"
#include "big5hkscs2004.h"
+#include "big5hkscs2008.h"
#include "euc_kr.h"
#include "cp949.h"
View
13 lib/encodings.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2010 Free Software Foundation, Inc.
This file is part of the GNU LIBICONV Library.
The GNU LIBICONV Library is free software; you can redistribute it
@@ -968,13 +968,18 @@ DEFENCODING(( "BIG5-HKSCS:2001",
big5hkscs2001,
{ big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset })
-DEFENCODING(( "BIG5-HKSCS", /* IANA */
- "BIG5HKSCS", /* glibc */
- "BIG5-HKSCS:2004",
+DEFENCODING(( "BIG5-HKSCS:2004",
),
big5hkscs2004,
{ big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset })
+DEFENCODING(( "BIG5-HKSCS", /* IANA */
+ "BIG5HKSCS", /* glibc */
+ "BIG5-HKSCS:2008",
+ ),
+ big5hkscs2008,
+ { big5hkscs2008_mbtowc, big5hkscs2008_flushwc }, { big5hkscs2008_wctomb, big5hkscs2008_reset })
+
DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */
"EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */
"csEUCKR", /* IANA */
View
467 lib/hkscs2008.h
@@ -0,0 +1,467 @@
+/*
+ * Copyright (C) 1999-2010 Free Software Foundation, Inc.
+ * This file is part of the GNU LIBICONV Library.
+ *
+ * The GNU LIBICONV Library is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * The GNU LIBICONV Library is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with the GNU LIBICONV Library; see the file COPYING.LIB.
+ * If not, write to the Free Software Foundation, Inc., 51 Franklin Street,
+ * Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/*
+ * HKSCS:2008
+ */
+
+static const unsigned short hkscs2008_2uni_page87[126] = {
+ /* 0x87 */
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd,
+ 0x22fd, 0x22fd, 0x0175, 0x2453, 0x299e, 0x2d21, 0x03ec, 0x2bde,
+ 0x02f5, 0x16fc, 0x2197, 0x2a61, 0x300d, 0x26ea, 0x238a, 0x275e,
+ 0x060a, 0x1884, 0x2196, 0x1f2f, 0x0930, 0x1a13, 0x0d96, 0x204a,
+ 0x1e18, 0x15d0, 0x1632, 0x0f60, 0x1129, 0x1b9d, 0x144c, 0x17c5,
+ 0x1082, 0x162c, 0x0a4f, 0x1d46, 0x00e6, 0x13c4, 0x2cb9, 0x14c6,
+ 0x21c7, 0x0cb3, 0x092f, 0x0b4c, 0x0531, 0x298e, 0x0d18, 0x1672,
+ 0x2f65, 0x1c8f, 0x08ae, 0x2e88, 0x0581, 0x2c99, 0x17ae, 0x25bc,
+ 0x21c8, 0x25c1, 0x25c9, 0x25cc, 0x21c9, 0x1904, 0x28bb, 0x04b4,
+ 0x21ca, 0x07e1, 0x31ff, 0x0ec1, 0x126e, 0x21cb,
+};
+
+static const ucs4_t hkscs2008_2uni_upages[50] = {
+ 0x03400, 0x03800, 0x03a00, 0x03e00, 0x04000, 0x04100, 0x04300, 0x04400,
+ 0x04600, 0x04900, 0x05200, 0x05400, 0x05700, 0x05800, 0x06200, 0x06600,
+ 0x06700, 0x06a00, 0x07000, 0x07300, 0x07400, 0x07900, 0x07a00, 0x07b00,
+ 0x08400, 0x08500, 0x08600, 0x08800, 0x08b00, 0x09000, 0x09200, 0x09400,
+ 0x09700, 0x09f00, 0x0ff00, 0x20a00, 0x21d00, 0x22400, 0x23100, 0x23200,
+ 0x23500, 0x23600, 0x24100, 0x25800, 0x25d00, 0x26000, 0x26e00, 0x27b00,
+ 0x28900, 0x2ad00,
+};
+
+static int
+hkscs2008_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
+{
+ unsigned char c1 = s[0];
+ if ((c1 == 0x87)) {
+ if (n >= 2) {
+ unsigned char c2 = s[1];
+ if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) {
+ unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40));
+ ucs4_t wc = 0xfffd;
+ unsigned short swc;
+ {
+ if (i < 1225)
+ swc = hkscs2008_2uni_page87[i-1099],
+ wc = hkscs2008_2uni_upages[swc>>8] | (swc & 0xff);
+ }
+ if (wc != 0xfffd) {
+ *pwc = wc;
+ return 2;
+ }
+ }
+ return RET_ILSEQ;
+ }
+ return RET_TOOFEW(0);
+ }
+ return RET_ILSEQ;
+}
+
+static const unsigned short hkscs2008_2charset[68] = {
+ 0x87be, 0x877a, 0x87a2, 0x877e, 0x87d9, 0x87c6, 0x87ce, 0x87aa,
+ 0x87db, 0x87cc, 0x87c4, 0x87ae, 0x87bc, 0x87c5, 0x87c3, 0x87c8,
+ 0x87b0, 0x87dd, 0x87b5, 0x87ba, 0x87b6, 0x87de, 0x87bf, 0x87b8,
+ 0x87c1, 0x87b3, 0x87bb, 0x87b4, 0x87c9, 0x87a3, 0x87d0, 0x87b9,
+ 0x87ab, 0x87d7, 0x87af, 0x87b7, 0x87cb, 0x87bd, 0x87b2, 0x87ad,
+ 0x87b1, 0x87ac, 0x87a4, 0x87c2, 0x87d2, 0x87d6, 0x87da, 0x87df,
+ 0x87a8, 0x877b, 0x87d1, 0x87d3, 0x87d4, 0x87d5, 0x87a7, 0x87a9,
+ 0x87d8, 0x87c7, 0x877c, 0x87a5, 0x87a1, 0x87cf, 0x87c0, 0x877d,
+ 0x87cd, 0x87ca, 0x87a6, 0x87dc,
+};
+
+static const Summary16 hkscs2008_uni2indx_page34[15] = {
+ /* 0x3400 */
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 },
+ { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0040 },
+};
+static const Summary16 hkscs2008_uni2indx_page38[8] = {
+ /* 0x3800 */
+ { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 },
+ { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0020 },
+};
+static const Summary16 hkscs2008_uni2indx_page3a[16] = {
+ /* 0x3a00 */
+ { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 },
+ { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 },
+ { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 },
+ { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0020 },
+};
+static const Summary16 hkscs2008_uni2indx_page3e[15] = {
+ /* 0x3e00 */
+ { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 },
+ { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 },
+ { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 },
+ { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x1000 },
+};
+static const Summary16 hkscs2008_uni2indx_page40[25] = {
+ /* 0x4000 */
+ { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 },
+ { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 },
+ { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0010 },
+ { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 },
+ /* 0x4100 */
+ { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0002 },
+ { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 },
+ { 6, 0x0002 },
+};
+static const Summary16 hkscs2008_uni2indx_page43[31] = {
+ /* 0x4300 */
+ { 7, 0x0400 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ /* 0x4400 */
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 },
+ { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0002 },
+};
+static const Summary16 hkscs2008_uni2indx_page46[11] = {
+ /* 0x4600 */
+ { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 },
+ { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 },
+ { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x4000 },
+};
+static const Summary16 hkscs2008_uni2indx_page49[4] = {
+ /* 0x4900 */
+ { 10, 0x0000 }, { 10, 0x0000 }, { 10, 0x8000 }, { 11, 0x0001 },
+};
+static const Summary16 hkscs2008_uni2indx_page52[5] = {
+ /* 0x5200 */
+ { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 },
+ { 12, 0x8000 },
+};
+static const Summary16 hkscs2008_uni2indx_page54[5] = {
+ /* 0x5400 */
+ { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 },
+ { 13, 0x1000 },
+};
+static const Summary16 hkscs2008_uni2indx_page57[26] = {
+ /* 0x5700 */
+ { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 },
+ { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 },
+ { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0008 },
+ { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 },
+ /* 0x5800 */
+ { 15, 0x0000 }, { 15, 0x0100 }, { 16, 0x0000 }, { 16, 0x0000 },
+ { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 },
+ { 16, 0x0000 }, { 16, 0x0040 },
+};
+static const Summary16 hkscs2008_uni2indx_page62[13] = {
+ /* 0x6200 */
+ { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 },
+ { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 },
+ { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 },
+ { 17, 0x0002 },
+};
+static const Summary16 hkscs2008_uni2indx_page66[25] = {
+ /* 0x6600 */
+ { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 },
+ { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0001 }, { 19, 0x0000 },
+ { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 },
+ { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 },
+ /* 0x6700 */
+ { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 },
+ { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 },
+ { 19, 0x0004 },
+};
+static const Summary16 hkscs2008_uni2indx_page6a[3] = {
+ /* 0x6a00 */
+ { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0200 },
+};
+static const Summary16 hkscs2008_uni2indx_page70[7] = {
+ /* 0x7000 */
+ { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 },
+ { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x4000 },
+};
+static const Summary16 hkscs2008_uni2indx_page73[29] = {
+ /* 0x7300 */
+ { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 },
+ { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 },
+ { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 },
+ { 22, 0x0010 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 },
+ /* 0x7400 */
+ { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 },
+ { 23, 0x1000 }, { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 },
+ { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 },
+ { 24, 0x0040 },
+};
+static const Summary16 hkscs2008_uni2indx_page79[45] = {
+ /* 0x7900 */
+ { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 },
+ { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 },
+ { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 },
+ { 25, 0x0000 }, { 25, 0x0001 }, { 26, 0x0000 }, { 26, 0x0000 },
+ /* 0x7a00 */
+ { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x1000 }, { 27, 0x0004 },
+ { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0004 },
+ { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 },
+ { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x1000 },
+ /* 0x7b00 */
+ { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 },
+ { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 },
+ { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x4000 }, { 31, 0x0000 },
+ { 31, 0x0020 },
+};
+static const Summary16 hkscs2008_uni2indx_page84[34] = {
+ /* 0x8400 */
+ { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 },
+ { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 },
+ { 32, 0x0010 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
+ { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 },
+ /* 0x8500 */
+ { 33, 0x0010 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 },
+ { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 },
+ { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 },
+ { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 },
+ /* 0x8600 */
+ { 34, 0x0000 }, { 34, 0x0008 },
+};
+static const Summary16 hkscs2008_uni2indx_page88[10] = {
+ /* 0x8800 */
+ { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
+ { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 },
+ { 35, 0x0000 }, { 35, 0x2000 },
+};
+static const Summary16 hkscs2008_uni2indx_page8b[9] = {
+ /* 0x8b00 */
+ { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 },
+ { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 },
+ { 36, 0x8000 },
+};
+static const Summary16 hkscs2008_uni2indx_page90[5] = {
+ /* 0x9000 */
+ { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 },
+ { 37, 0x0040 },
+};
+static const Summary16 hkscs2008_uni2indx_page92[2] = {
+ /* 0x9200 */
+ { 38, 0x0000 }, { 38, 0x0100 },
+};
+static const Summary16 hkscs2008_uni2indx_page94[3] = {
+ /* 0x9400 */
+ { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x8000 },
+};
+static const Summary16 hkscs2008_uni2indx_page97[5] = {
+ /* 0x9700 */
+ { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 },
+ { 40, 0x0400 },
+};
+static const Summary16 hkscs2008_uni2indx_page9f[13] = {
+ /* 0x9f00 */
+ { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 },
+ { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 },
+ { 41, 0x0000 }, { 41, 0x00c0 }, { 43, 0x0000 }, { 43, 0x0000 },
+ { 43, 0x0f80 },
+};
+static const Summary16 hkscs2008_uni2indx_page20a[9] = {
+ /* 0x20a00 */
+ { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 },
+ { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 },
+ { 48, 0x0400 },
+};
+static const Summary16 hkscs2008_uni2indx_page21d[6] = {
+ /* 0x21d00 */
+ { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 },
+ { 49, 0x0000 }, { 49, 0x0008 },
+};
+static const Summary16 hkscs2008_uni2indx_page224[13] = {
+ /* 0x22400 */
+ { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 },
+ { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 },
+ { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x1000 },
+ { 51, 0x1202 },
+};
+static const Summary16 hkscs2008_uni2indx_page231[22] = {
+ /* 0x23100 */
+ { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 },
+ { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 },
+ { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 },
+ { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0400 }, { 55, 0x0000 },
+ /* 0x23200 */
+ { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 },
+ { 55, 0x0000 }, { 55, 0x4000 },
+};
+static const Summary16 hkscs2008_uni2indx_page235[26] = {
+ /* 0x23500 */
+ { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 },
+ { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 },
+ { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0800 },
+ { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 },
+ /* 0x23600 */
+ { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 },
+ { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 },
+ { 57, 0x4000 }, { 58, 0x4000 },
+};
+static const Summary16 hkscs2008_uni2indx_page241[7] = {
+ /* 0x24100 */
+ { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 },
+ { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0002 },
+};
+static const Summary16 hkscs2008_uni2indx_page258[14] = {
+ /* 0x25800 */
+ { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 },
+ { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 },
+ { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 },
+ { 60, 0x0000 }, { 60, 0x4000 },
+};
+static const Summary16 hkscs2008_uni2indx_page25d[12] = {
+ /* 0x25d00 */
+ { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 },
+ { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 },
+ { 61, 0x0000 }, { 61, 0x0200 }, { 62, 0x0000 }, { 62, 0x0200 },
+};
+static const Summary16 hkscs2008_uni2indx_page260[3] = {
+ /* 0x26000 */
+ { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0002 },
+};
+static const Summary16 hkscs2008_uni2indx_page26e[9] = {
+ /* 0x26e00 */
+ { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 },
+ { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 },
+ { 64, 0x0100 },
+};
+static const Summary16 hkscs2008_uni2indx_page27b[7] = {
+ /* 0x27b00 */
+ { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 },
+ { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0020 },
+};
+static const Summary16 hkscs2008_uni2indx_page289[1] = {
+ /* 0x28900 */
+ { 66, 0x2000 },
+};
+static const Summary16 hkscs2008_uni2indx_page2ad[16] = {
+ /* 0x2ad00 */
+ { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 },
+ { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 },
+ { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 },
+ { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x8000 },
+};
+
+static int
+hkscs2008_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
+{
+ if (n >= 2) {
+ const Summary16 *summary = NULL;
+ if (wc >= 0x3400 && wc < 0x34f0)
+ summary = &hkscs2008_uni2indx_page34[(wc>>4)-0x340];
+ else if (wc >= 0x3800 && wc < 0x3880)
+ summary = &hkscs2008_uni2indx_page38[(wc>>4)-0x380];
+ else if (wc >= 0x3a00 && wc < 0x3b00)
+ summary = &hkscs2008_uni2indx_page3a[(wc>>4)-0x3a0];
+ else if (wc >= 0x3e00 && wc < 0x3ef0)
+ summary = &hkscs2008_uni2indx_page3e[(wc>>4)-0x3e0];
+ else if (wc >= 0x4000 && wc < 0x4190)
+ summary = &hkscs2008_uni2indx_page40[(wc>>4)-0x400];
+ else if (wc >= 0x4300 && wc < 0x44f0)
+ summary = &hkscs2008_uni2indx_page43[(wc>>4)-0x430];
+ else if (wc >= 0x4600 && wc < 0x46b0)
+ summary = &hkscs2008_uni2indx_page46[(wc>>4)-0x460];
+ else if (wc >= 0x4900 && wc < 0x4940)
+ summary = &hkscs2008_uni2indx_page49[(wc>>4)-0x490];
+ else if (wc >= 0x5200 && wc < 0x5250)
+ summary = &hkscs2008_uni2indx_page52[(wc>>4)-0x520];
+ else if (wc >= 0x5400 && wc < 0x5450)
+ summary = &hkscs2008_uni2indx_page54[(wc>>4)-0x540];
+ else if (wc >= 0x5700 && wc < 0x58a0)
+ summary = &hkscs2008_uni2indx_page57[(wc>>4)-0x570];
+ else if (wc >= 0x6200 && wc < 0x62d0)
+ summary = &hkscs2008_uni2indx_page62[(wc>>4)-0x620];
+ else if (wc >= 0x6600 && wc < 0x6790)
+ summary = &hkscs2008_uni2indx_page66[(wc>>4)-0x660];
+ else if (wc >= 0x6a00 && wc < 0x6a30)
+ summary = &hkscs2008_uni2indx_page6a[(wc>>4)-0x6a0];
+ else if (wc >= 0x7000 && wc < 0x7070)
+ summary = &hkscs2008_uni2indx_page70[(wc>>4)-0x700];
+ else if (wc >= 0x7300 && wc < 0x74d0)
+ summary = &hkscs2008_uni2indx_page73[(wc>>4)-0x730];
+ else if (wc >= 0x7900 && wc < 0x7bd0)
+ summary = &hkscs2008_uni2indx_page79[(wc>>4)-0x790];
+ else if (wc >= 0x8400 && wc < 0x8620)
+ summary = &hkscs2008_uni2indx_page84[(wc>>4)-0x840];
+ else if (wc >= 0x8800 && wc < 0x88a0)
+ summary = &hkscs2008_uni2indx_page88[(wc>>4)-0x880];
+ else if (wc >= 0x8b00 && wc < 0x8b90)
+ summary = &hkscs2008_uni2indx_page8b[(wc>>4)-0x8b0];
+ else if (wc >= 0x9000 && wc < 0x9050)
+ summary = &hkscs2008_uni2indx_page90[(wc>>4)-0x900];
+ else if (wc >= 0x9200 && wc < 0x9220)
+ summary = &hkscs2008_uni2indx_page92[(wc>>4)-0x920];
+ else if (wc >= 0x9400 && wc < 0x9430)
+ summary = &hkscs2008_uni2indx_page94[(wc>>4)-0x940];
+ else if (wc >= 0x9700 && wc < 0x9750)
+ summary = &hkscs2008_uni2indx_page97[(wc>>4)-0x970];
+ else if (wc >= 0x9f00 && wc < 0x9fd0)
+ summary = &hkscs2008_uni2indx_page9f[(wc>>4)-0x9f0];
+ else if (wc >= 0x20a00 && wc < 0x20a90)
+ summary = &hkscs2008_uni2indx_page20a[(wc>>4)-0x20a0];
+ else if (wc >= 0x21d00 && wc < 0x21d60)
+ summary = &hkscs2008_uni2indx_page21d[(wc>>4)-0x21d0];
+ else if (wc >= 0x22400 && wc < 0x224d0)
+ summary = &hkscs2008_uni2indx_page224[(wc>>4)-0x2240];
+ else if (wc >= 0x23100 && wc < 0x23260)
+ summary = &hkscs2008_uni2indx_page231[(wc>>4)-0x2310];
+ else if (wc >= 0x23500 && wc < 0x236a0)
+ summary = &hkscs2008_uni2indx_page235[(wc>>4)-0x2350];
+ else if (wc >= 0x24100 && wc < 0x24170)
+ summary = &hkscs2008_uni2indx_page241[(wc>>4)-0x2410];
+ else if (wc >= 0x25800 && wc < 0x258e0)
+ summary = &hkscs2008_uni2indx_page258[(wc>>4)-0x2580];
+ else if (wc >= 0x25d00 && wc < 0x25dc0)
+ summary = &hkscs2008_uni2indx_page25d[(wc>>4)-0x25d0];
+ else if (wc >= 0x26000 && wc < 0x26030)
+ summary = &hkscs2008_uni2indx_page260[(wc>>4)-0x2600];
+ else if (wc >= 0x26e00 && wc < 0x26e90)
+ summary = &hkscs2008_uni2indx_page26e[(wc>>4)-0x26e0];
+ else if (wc >= 0x27b00 && wc < 0x27b70)
+ summary = &hkscs2008_uni2indx_page27b[(wc>>4)-0x27b0];
+ else if (wc >= 0x28900 && wc < 0x28910)
+ summary = &hkscs2008_uni2indx_page289[(wc>>4)-0x2890];
+ else if (wc >= 0x2ad00 && wc < 0x2ae00)
+ summary = &hkscs2008_uni2indx_page2ad[(wc>>4)-0x2ad0];
+ if (summary) {
+ unsigned short used = summary->used;
+ unsigned int i = wc & 0x0f;
+ if (used & ((unsigned short) 1 << i)) {
+ unsigned short c;
+ /* Keep in `used' only the bits 0..i-1. */
+ used &= ((unsigned short) 1 << i) - 1;
+ /* Add `summary->indx' and the number of bits set in `used'. */
+ used = (used & 0x5555) + ((used & 0xaaaa) >> 1);
+ used = (used & 0x3333) + ((used & 0xcccc) >> 2);
+ used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4);
+ used = (used & 0x00ff) + (used >> 8);
+ c = hkscs2008_2charset[summary->indx + used];
+ r[0] = (c >> 8); r[1] = (c & 0xff);
+ return 2;
+ }
+ }
+ return RET_ILUNI;
+ }
+ return RET_TOOSMALL;
+}
View
5 man/iconv_open.3
@@ -9,7 +9,7 @@
.\" GNU glibc-2 source code and manual
.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
.\"
-.TH ICONV_OPEN 3 "January 24, 2009" "GNU" "Linux Programmer's Manual"
+.TH ICONV_OPEN 3 "November 23, 2010" "GNU" "Linux Programmer's Manual"
.SH NAME
iconv_open \- allocate descriptor for character set conversion
.SH SYNOPSIS
@@ -51,7 +51,8 @@ Chinese
.nf
.fi
EUC\-CN, HZ, GBK, CP936, GB18030, EUC\-TW, BIG5, CP950, BIG5\-HKSCS,
-BIG5\-HKSCS:2001, BIG5\-HKSCS:1999, ISO\-2022\-CN, ISO\-2022\-CN\-EXT
+BIG5\-HKSCS:2004, BIG5\-HKSCS:2001, BIG5\-HKSCS:1999, ISO\-2022\-CN,
+ISO\-2022\-CN\-EXT
.TP
Korean
.nf
View
253 tests/BIG5-HKSCS-2008-snippet
@@ -0,0 +1,253 @@
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� ��
+�@ �A �C �F �G �H �I �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �j �k �l �m �n
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �}
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �j �k �l �m �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �n �o
+�p �q �r �s �t �u �v �w �x �y �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+ �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �w �y �z �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �c �d �e �f �g �i �j �l �m �n �o
+�p �q �r �s �t �u �v �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �X �Y �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+�` �a �b �c �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �O
+�P �Q �R �S �T �U �V �W �X �Y �Z �[ �\ �] �^ �_
+ �a �b �c �d �e �g �h �i �j �k �l �m �n �o
+�p �q �r �s �t �u �v �w �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+ �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�@ �A �B �C �D �E �F �G �H �I �J �K �L �M �N �O
+�P �Q �R �S �U �V �X �Y �[ �\ �] �^ �_
+�` �a �d �e �f �g �h �i �j �k �l �m �n �o
+�p �q �s �t �u �v �x �y �z �{ �| �} �~
+ �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� ��
+�� �� �� �� �� �� �� �� �� �� �� �� �� �� ��
View
253 tests/BIG5-HKSCS-2008-snippet.UTF-8
@@ -0,0 +1,253 @@
+䏰 䰲 䘃 䖦 䕸 𧉧 䵷 䖳 𧲱 䳢 𧳅 㮕 䜶 䝄 䱇 䱀
+𤊿 𣘗 𧍒 𦺋 𧃒 䱗 𪍑 䝏 䗚 䲅 𧱬 䴇 䪤 䚡 𦬣 爥
+𥩔 𡩣 𣸆 𣽡 晍 囻 綕 夝 𨮹 㷴 霴 𧯯 寛 𡵞 媤
+㘥 𩺰 嫑 宷 峼 杮 薓 𩥅 瑡 璝 㡵 𡵓 𣚞 𦀡 㻬
+ 𥣞 㫵 竼 龗 𤅡 𨤍 𣇪 𠪊 𣉞 䌊 蒄 龖 鐯 䤰 蘓
+墖 靊 鈘 秐 稲 晠 権 袝 瑌 篅 枂 稬 剏 遆 㓦 珄
+𥶹 瓆 鿇 垳 䤯 呌 䄱 𣚎 堘 穲 𧭥 讏 䚮 𦺈 䆁 𥶙
+箮 𢒼 鿈 𢓁 𢓉 𢓌 鿉 蔄 𣖻 䂴 鿊 䓡 𪷿 拁 灮 鿋
+㇀ ㇁ ㇂ ㇃ ㇄ 𠄌 ㇅ 𠃑 𠃍 ㇆ ㇇ 𠃋 𡿨 ㇈ 𠃊 ㇉
+㇊ ㇋ ㇌ 𠄎 ㇍ ㇎ Ā Á Ǎ À Ē É Ě È Ō Ó
+Ǒ Ò Ê̄ Ế Ê̌ Ề Ê ā á ǎ à ɑ ē é ě è
+ī í ǐ ì ō ó ǒ ò ū ú ǔ ù ǖ ǘ ǚ
+ ǜ ü ê̄ ế ê̌ ề ê ɡ ⏚ ⏛
+𪎩 𡅅 攊 丽 滝 鵎 釟 𧜵 撑 会 伨
+侨 兖 兴 农 凤 务 动 医 华 发 变 团 声 处 备 夲
+头 学 实 実 岚 庆 总 斉 柾 栄 桥 济 炼 电 纤 纬
+纺 织 经 统 缆 缷 艺 苏 药 视 设 询 车 轧 轮
+ 琑 糼 緍 楆 竉 刧 醌 碸 酞 肼
+贋 胶 𠧧 肟 黇 䳍 鷉 鸌 䰾 𩷶 𧀎 鸊 𪄳 㗁
+ 溚 舾 甙 䤑 马 骏 龙 禇 𨑬 𡷊 𠗐 𢫦 两 亁
+亀 亇 亿 仫 伷 㑌 侽 㹈 倃 傈 㑽 㒓 㒥 円 夅 凛
+凼 刅 争 剹 劐 匧 㗇 厩 㕑 厰 㕓 参 吣 㕭 㕲 㚁
+咓 咣 咴 咹 哐 哯 唘 唣 唨 㖘 唿 㖥 㖿 嗗 㗅
+𧶄 唥 𠱂 𠴕 𥄫 喐 𢳆 㧬 𠍁 蹆 𤶸 𩓥 䁓 𨂾 睺
+𢰸 㨴 䟕 𨅝 𦧲 𤷪 擝 𠵼 𠾴 𠳕 𡃴 撍 蹾 𠺖 𠰋 𠽤
+𢲩 𨉖 𤓓 𠵆 𩩍 𨃩 䟴 𤺧 𢳂 骲 㩧 𩗴 㿭 㔆 𥋇
+𩟔 𧣈 𢵄 鵮 頕 䏙 𦂥 撴 哣 𢵌 𢯊 𡁷 㧻 𡁯
+ 𦛚 𦜖 𧦠 擪 𥁒 𠱃 蹨 𢆡 𨭌 𠜱 䠋 𠆩 㿺 塳
+𢶍 𤗈 𠓼 𦂗 𠽌 𠶖 啹 䂻 䎺 䪴 𢩦 𡂝 膪 飵
+𠶜 捹 㧾 𢝵 跀 嚡 摼 㹃 𪘁 𠸉 𢫏 𢳉 𡃈 𣧂
+㦒 㨆 𨊛 㕸 𥹉 𢃇 噒 𠼱 𢲲 𩜠 㒼 氽 𤸻 𧕴
+𢺋 𢈈 𪙛 𨳍 𠹺 𠰴 𦠜 羓 𡃏 𢠃 𢤹 㗻 𥇣 𠺌 𠾍 𠺪
+㾓 𠼰 𠵇 𡅏 𠹌 𠺫 𠮩 𠵈 𡃀 𡄽 㿹 𢚖 搲 𠾭
+𣏴 𧘹 𢯎 𠵾 𠵿 𢱑 𢱕 㨘 𠺘 𡃇 𠼮 𪘲 𦭐 𨳒 𨶙 𨳊
+閪 哌 苄 喹 𩻃 鰦 骶 𧝞 𢷮 煀 腭 胬 尜 𦕲 脴
+㞗 卟 𨂽 醶 𠻺 𠸏 𠹷 𠻻 㗝 𤷫 㘉 𠳖 嚯 𢞵 𡃉 𠸐
+𠹸 𡁸 𡅈 𨈇 𡑕 𠹹 𤹐 𢶤 婔 𡀝 𡀞 𡃵 𡃶 垜 𠸑
+ 𧚔 𨋍 𠾵 𠹻 𥅾 㜃 𠾶 𡆀 𥋘 𪊽 𤧚 𡠺 𤅷 𨉼 墙
+剨 㘚 𥜽 箲 孨 䠀 䬬 鼧 䧧 鰟 鮍 𥭴 𣄽 嗻 㗲 嚉
+丨 夂 𡯁 屮 靑 𠂆 乛 亻 㔾 尣 彑 忄 㣺 扌 攵 歺
+氵 氺 灬 爫 丬 犭 𤣩 罒 礻 糹 罓 𦉪 㓁 𦍋 耂
+肀 𦘒 𦥑 卝 衤 见 𧢲 讠 贝 钅 镸 长 门 𨸏 韦 页
+风 飞 饣 𩠐 鱼 鸟 黄 歯 龜 丷 𠂇 阝 户 钢
+倻 淾 𩱳 龦 㷉 袏 𤅎 灷 峵 䬠 𥇍 㕙 𥴰 愢 𨨲 辧
+釶 熑 朙 玺 𣊁 𪄇 㲋 𡦀 䬐 磤 琂 冮 𨜏 䀉 橣 𪊺
+䈣 蘏 𠩯 稪 𩥇 𨫪 靕 灍 匤 𢁾 鏴 盙 𨧣 龧 矝 亣
+俰 傼 丯 众 龨 吴 綋 墒 壐 𡶶 庒 庙 忂 𢜒 斋
+ 𣏹 椙 橃 𣱣 泿 爀 𤔅 玌 㻛 𤨓 嬕 璹 讃 𥲤
+𥚕 窓 篬 糃 繬 苸 薗 龩 袐 龪 躹 龫 迏 蕟 駠 鈡
+龬 𨶹 𡐿 䁱 䊢 娚 顨 杫 䉶 圽 藖 𤥻
+芿 𧄍 䲁 𦵴 嵻 𦬕 𦾾 龭 龮 宖 龯 曧 繛 湗 秊 㶈
+䓃 𣉖 𢞖 䎚 䔶 峕 𣬚 諹 屸 㴒 𣕑 嵸 龲 煗 䕘
+𤃬 𡸣 䱷 㥸 㑊 𠆤 𦱁 諌 侴 𠈹 妿 腬 顖 𩣺 弻
+𠮟 𢇁 𨥭 䄂 䚻 𩁹 㼇 龳 𪆵 䃸 㟖 䛷 𦱆 䅼 𨚲
+𧏿 䕭 㣔 𥒚 䕡 䔛 䶉 䱻 䵶 䗪 㿈 𤬏 㙡 䓞 䒽 䇭
+崾 嵈 嵖 㷼 㠏 嶤 嶹 㠠 㠸 幂 庽 弥 徃 㤈 㤔 㤿
+㥍 惗 愽 峥 㦉 憷 憹 懏 㦸 戬 抐 拥 挘 㧸 嚱
+ 㨃 揢 揻 搇 摚 㩋 擀 崕 嘡 龟 㪗 斆 㪽 旿 晓
+㫲 暒 㬢 朖 㭂 枤 栀 㭘 桊 梄 㭲 㭱 㭻 椉 楃 牜
+楤 榟 榅 㮼 槖 㯝 橥 橴 橱 檂 㯬 檙 㯲 檫 檵 櫔
+櫶 殁 毁 毪 汵 沪 㳋 洂 洆 洦 涁 㳯 涤 涱 渕 渘
+温 溆 𨧀 溻 滢 滚 齿 滨 滩 漤 漴 㵆 𣽁 澁 澾 㵪
+㵵 熷 岙 㶊 瀬 㶑 灐 灔 灯 灿 炉 𠌥 䏁 㗱 𠻘
+𣻗 垾 𦻓 焾 𥟠 㙎 榢 𨯩 孴 穉 𥣡 𩓙 穥 穽 𥦬 窻
+窰 竂 竃 燑 𦒍 䇊 竚 竝 竪 䇯 咲 𥰁 笋 筕 笩 𥌎
+𥳾 箢 筯 莜 𥮴 𦱿 篐 萡 箒 𥴠 㶭 𥱥 蒒 篺
+簵 𥳁 籄 粃 𤢂 粦 晽 𤕸 糉 糇 糦 籴 糳 糵
+ 繧 䔝 𦹄 絝 𦻖 璍 綉 綫 焵 綳 𤁗 𦀩 緤 㴓
+緵 𡟹 緥 𨍭 𦄡 𦅚 繮 纒 䌫 鑬 縧 罀 罁 罇 礶
+𦋐 駡 羗 𦍑 羣 𡙡 𠁨 䕜 𣝦 䔃 𨌺 翺 𦒉 耈 耝
+ 耯 𪂇 𦳃 耻 耼 聡 𢜔 䦉 𦘦 𣷣 𦛨 朥 肧 𨩈 脇
+脚 墰 𢛶 汿 𦒘 𤾸 擧 𡒊 舘 𡡞 橓 𤩥 𤪕 䑺 舩 𠬍
+𦩒 𣵾 俹 𡓽 蓢 荢 𦬊 𤦧 𣔰 𡝳 𣷸 芪 椛 芳 䇛
+蕋 苐 茚 𠸖 𡞴 㛁 𣅽 𣕚 艻 苢 茘 𣺋 𦶣 𦬅 𦮗 𣗎
+㶿 茝 嗬 莅 䔋 𦶥 莬 菓 㑾 𦻔 橗 蕚 㒖 𦹂 𢻯
+葘 𥯤 葱 㷓 䓤 檧 葊 𣲵 祘 𦮖 𦹷 𦹃 蓞 莑
+䒠 蒓 蓤 𥲑 䉀 𥳀 䕃 蔴 嫲 𦺙 䔧 蕳 䔖 枿 蘖
+ 𨘥 𨘻 藁 𧂈 蘂 𡖂 𧃍 䕫 䕪 蘨 㙈 𡢢 号 𧎚 虾
+蝱 𪃸 蟮 𢰧 螱 蟚 蠏 噡 虬 桖 䘏 衅 衆 𧗠 𣶹 𧗤
+衞 袜 䙛 袴 袵 揁 装 睷 𧜏 覇 覊 覧 覼 𨨥
+觧 𧤤 𧪽 誜 瞓 釾 誐 𧩙 竩 𧬺 𣾏 䜓 𧬸 煼 謌 謟
+𥐰 𥕥 謿 譌 譍 誩 𤩺 讐 讛 誯 𡛟 䘕 衏 貛 𧵔 𧶏
+貫 㜥 𧵓 賖 𧶘 𧶽 贒 贃 𡤐 賛 灜 贑 𤳉 㻐
+趩 𨀂 𡀔 𤦊 㭼 𨆼 𧄌 竧 躭 躶 軃 鋔 輙 輭 𨍥 𨐒
+辥 錃 𪊟 𠩐 辳 䤪 𨧞 𨔽 𣶻 廸 𣉢 迹 𪀔 𨚼 𨔁 𢌥
+㦀 𦻗 逷 𨔼 𧪾 遡 𨕬 𨘋 邨 𨜓 郄 𨛦 邮 酧 㫰
+醩 釄 粬 𨤳 𡺉 鈎 沟 鉁 鉢 𥖹 𨫆 𣲛 𨬌 𥗛
+ 𠴱 錬 鍫 𨫡 𨯫 炏 嫃 𨫢 𨫥 䥥 鉄 𨯬 𨰹 𨯿 鍳
+鑛 躼 閅 閦 鐦 閠 濶 䊹 𢙺 𨛘 𡉼 𣸮 䧟 氜 陻 隖
+䅬 隣 𦻕 懚 隶 磵 𨫠 隽 双 䦡 𦲸 𠉴 𦐐 𩂯 𩃥 𤫑
+𡤕 𣌊 霱 虂 霶 䨏 䔽 䖅 𤫩 灵 孁 霛 𩇕 靗 孊
+𩇫 靟 鐥 僐 𣂷 𣂼 鞉 鞟 鞱 鞾 韀 韒 韠 𥑬 韮 琜
+𩐳 韵 𩐝 𧥺 䫑 頴 頳 顋 顦 㬎 𧅵 㵑 𠘰 𤅜
+𥜆 飊 颷 飈 飇 䫿 𦴧 𡛓 喰 飡 飦 飬 鍸 餹 𤨩 䭲
+𩡗 𩤅 駵 騌 騻 騐 驘 𥜥 㛄 𩂱 𩯕 髠 髢 𩬅 髴 䰎
+鬔 鬭 𨘀 倴 鬴 𦦨 㣃 𣁽 魐 魀 𩴾 婅 𡡣 鮎 𤉋 鰂
+鯿 鰌 𩹨 鷔 𩾷 𪆒 𪆫 𪃡 𪄣 𪇟 鵾 鶃 𪄴 鸎 梈
+ 鷄 𢅛 𪆓 𪈠 𡤻 𪈳 鴹 𪂹 𪊴 麐 麕 麞 麢 䴴 麪
+麯 𤍤 黁 㭠 㧥 㴝 伲 㞾 𨰫 鼂 鼈 䮖 鐤 𦶢 鼗
+鼹 嚟 嚊 齅 馸 𩂋 韲 葿 齢 齩 竜 龎 爖 䮾 𤥵 𤦻
+煷 𤧸 𤍈 𤩑 玞 𨯚 𡣺 禟 𨥾 𨸶 鍩 鏳 𨩄 鋬 鎁 鏋
+𨥬 𤒹 爗 㻫 睲 穃 烐 𤑳 𤏸 煾 𡟯 炣 𡢾 𣖙 㻇 𡢅
+𥐯 𡟸 㜢 𡛻 𡠹 㛡 𡝴 𡣑 𥽋 㜣 𡛀 坛 𤨥 𡏾 𡊨
+𡏆 𡒶 蔃 𣚦 葕 𤦔 𧅥 𣸱 𥕜 𣻻 𧁒 䓴 𣛮 𩦝 𦼦
+柹 㜳 㰕 㷧 塬 𡤢 栐 䁗 𣜿 𤃡 𤂋 𤄏 𦰡 哋 嚞 𦚱
+嚒 𠿟 𠮨 𠸍 鏆 𨬓 鎜 仸 儫 㠙 𤐶 亼 𠑥 𠍿 佋 侊
+𥙑 婨 𠆫 𠏋 㦙 𠌊 𠐔 㐵 伩 𠋀 𨺳 𠉵 諚 𠈌 亘
+ 働 儍 侢 伃 𤨎 𣺊 佂 倮 偬 傁 俌 俥 偘 僼
+ 湶 𣖕 𣸹 𣺿 浲 𡢄 𣺉 冨 凃 𠗠 䓝 𠒣 𠒒
+𠒑 赺 𨪜 𠜎 剙 劤 𠡳 勡 䙺 熌 𤎌 𠰠 𤦬 𡃤 槑
+𠸝 㻞 璙 琔 瑖 玘 䮎 𤪼 𤂍 叐 㖄 爏 𤃉 喴 𠍅
+响 𠯆 圝 鉝 雴 鍦 埝 垍 坿 㘾 壋 媙 𨩆 𡛺 𡝯 𡜐
+娬 妸 銏 婾 嫏 娒 𥥆 𡧳 𡡡 𤊕 㛵 洅 瑃 娡 𥺃
+媁 𨯗 𠐓 鏠 璌 𡌃 焅 䥲 鐈 𨧻 鎽 㞠 尞 岞 幞 幈
+𡦖 𡥼 𣫮 廍 孏 𡤃 𡤄 㜁 𡢠 㛝 𡛾 㛓 脪 𨩇 𡶺 𣑲
+𨦨 弌 弎 𡤧 𡞫 婫 𡜻 孄 蘔 𧗽 衠 恾 𢡠 𢘫 忛 㺸
+𢖯 𢖾 𩂈 𦽳 懀 𠀾 𠁆 𢘛 憙 憘 恵 𢲛 𢴇 𤛔 𩅍
+ 摱 𤙥 𢭪 㨩 𢬢 𣑐 𩣪 𢹸 挷 𪑛 撶 挱 揑 𤧣 𢵧
+护 𢲡 搻 敫 楲 㯴 𣂎 𣊭 𤦉 𣊫 唍 𣋠 𡣙 𩐿 曎 𣊉
+𣆳 㫠 䆐 𥖄 𨬢 𥖏 𡛼 𥕛 𥐥 磮 𣄃 𡠪 𣈴 㑤 𣈏 𣆂
+𤋉 暎 𦴤 晫 䮓 昰 𧡰 𡷫 晣 𣋒 𣋡 昞 𥡲 㣑 𣠺 𣞼
+㮙 𣞢 𣏾 瓐 㮖 枏 𤘪 梶 栞 㯄 檾 㡣 𣟕 𤒇 樳 橒
+櫉 欅 𡤒 攑 梘 橌 㯗 橺 歗 𣿀 𣲚 鎠 鋲 𨯪 𨫋
+銉 𨀞 𨧜 鑧 涥 漋 𤧬 𣽿 㶏 渄 𤀼 娽 渊 塇 洤
+硂 焻 𤌚 𤉶 烱 牐 犇 犔 𤞏 𤜥 兹 𤪤 𠗫 瑺 𣻸 𣙟
+𤩊 𤤗 𥿡 㼆 㺱 𤫟 𨰣 𣼵 悧 㻳 瓌 琼 鎇 琷 䒟 𦷪
+䕑 疃 㽣 𤳙 𤴆 㽘 畕 癳 𪗆 㬙 瑨 𨫌 𤦫 𤦎 㫻
+ 㷍 𤩎 㻿 𤧅 𤣳 釺 圲 鍂 𨫣 𡡤 僟 𥈡 𥇧 睸 𣈲
+眎 眏 睻 𤚗 𣞁 㩞 𤣰 琸 璛 㺿 𤪺 𤫇 䃈 𤪖 𦆮 錇
+𥖁 砞 碍 碈 磒 珐 祙 𧝁 𥛣 䄎 蒖 禥 樭 𣻺 稺
+秴 䅮 𡛦 䄲 鈵 秱 𠵌 𤦌 𠊙 𣶺 𡝮 㖗 啫 㕰 㚪 𠇔
+𠰍 竢 婙 𢛵 𥪯 𥪜 娍 𠉛 磰 娪 𥯆 竾 䇹 籝 籭 䈑
+𥮳 𥺼 𥺦 糍 𤧹 𡞰 粎 籼 粮 檲 緜 縇 緓 罎 𦉡
+𦅜 𧭈 綗 𥺂 䉪 𦭵 𠤖 柖 𠁎 𣗏 埄 𦐒 𦏸 𤥢 翝 笧
+𠠬 𥫩 𥵃 笌 𥸎 駦 虅 驣 樜 𣐿 㧢 𤧷 𦖭 騟 𦖠 蒀
+𧄧 𦳑 䓪 脷 䐂 胆 脉 腂 𦞴 飃 𦩂 艢 艥 𦩑 葓 𦶧
+蘐 𧈛 媆 䅿 𡡀 嬫 𡢡 嫤 𡣘 蚠 蜨 𣶏 蠭 𧐢 娂
+ 衮 佅 袇 袿 裦 襥 襍 𥚃 襔 𧞅 𧞄 𨯵 𨯙 𨮜 𨧹
+㺭 蒣 䛵 䛏 㟲 訽 訜 𩑈 彍 鈫 𤊄 旔 焩 烄 𡡅 鵭
+貟 賩 𧷜 妚 矃 姰 䍮 㛔 踪 躧 𤰉 輰 轊 䋴 汘 澻
+𢌡 䢛 潹 溋 𡟚 鯩 㚵 𤤯 邻 啱 䤆 醻 鐄 𨩋 䁢
+𨫼 鐧 𨰝 𨰻 蓥 訫 閙 閧 閗 閖 𨴴 瑅 㻂 𤣿 𤩂 𤏪
+㻧 𣈥 随 𨻧 𨹦 𨹥 㻌 𤧭 𤩸 𣿮 琒 瑫 㻼 靁 𩂰
+桇 䨝 𩂓 𥟟 鍨 𨦉 𨰦 𨬯 𦎾 銺 嬑 譩 䤼 珹 𤈛
+鞛 靱 餸 𠼦 巁 𨯅 𤪲 頟 𩓚 鋶 𩗗 釥 䓀 𨭐 𤩧 𨭤
+飜 𨩅 㼀 鈪 䤥 萔 餻 饍 𧬆 㷽 馛 䭯 馪 驜 𨭥 𥣈
+檏 騡 嫾 騯 𩣱 䮐 𩥈 馼 䮽 䮗 鍽 塲 𡌂 堢 𤦸
+ 𡓨 硄 𢜟 𣶸 棅 㵽 鑘 㤧 慐 𢞁 𢥫 愇 鱏 鱓 鱻
+鰵 鰐 魿 鯏 𩸭 鮟 𪇵 𪃾 鴡 䲮 𤄄 鸘 䲰 鴌 𪆴 𪃭
+𪃳 𩤯 鶥 蒽 𦸒 𦿟 𦮂 藼 䔳 𦶤 𦺄 𦷰 萠 藮 𦸀 𣟗
+𦁤 秢 𣖜 𣙀 䤭 𤧞 㵢 鏛 銾 鍈 𠊿 碹 鉷 鑍 俤 㑀
+遤 𥕝 砽 硔 碶 硋 𡝗 𣇉 𤥁 㚚 佲 濚 濙 瀞 吔
+𤆵 垻 壳 垊 鴖 埗 焴 㒯 𤆬 燫 𦱀 𤾗 𡞵 𨩉
+愌 嫎 娋 䊼 𤒈 㜬 䭻 𨧼 鎻 鎸 𡣖 𠼝 葲 𦳀 𡐓 𤋺
+𢰦 𤏁 妔 𣶷 𦝁 綨 𦅛 𦂤 𤦹 𤦋 𨧺 鋥 珢 㻩 璴 𨭣
+𡢟 㻡 𤪳 櫘 珳 珻 㻖 𤨾 𤪔 𡟙 𤩦 𠎧 𡐤 𤧥 瑈 𤤖
+炥 𤥶 銄 珦 鍟 𠓾 錱 𨫎 𨨖 鎆 𨯧 𥗕 䤵 𨪂 煫
+ 𤥃 𠳿 嚤 𠘚 𠯫 𠲸 唂 秄 𡟺 緾 𡛂 𤩐 𡡒 䔮 鐁
+㜊 𨫀 𤦭 妰 𡢿 𡢃 𧒄 媡 㛢 𣵛 㚰 鉟 婹 𨪁 𡡢 鍴
+㳍 𠪴 䪖 㦊 僴 㵩 㵌 𡎜 煵 䋻 𨈘 渏 𩃤 䓫 浗 𧹏
+灧 沯 㳖 𣿭 𣸭 渂 漌 㵯 𠏵 畑 㚼 㓈 䚀 㻚 䡱 姄
+鉮 䤾 轁 𨰜 𦯀 堒 埈 㛖 𡑒 烾 𤍢 𤩱 𢿣 𡊰 𢎽 梹
+楧 𡎘 𣓥 𧯴 𣛟 𨪃 𣟖 𣏺 𤲟 樚 𣚭 𦲷 萾 䓟 䓎
+𦴦 𦵑 𦲂 𦿞 漗 𧄉 茽 𡜺 菭 𦲀 𧁓 𡟛 妉 媂 𡞳 婡
+婱 𡤅 𤇼 㜭 姯 𡜼 㛇 熎 鎐 暚 𤊥 婮 娫 𤊓 樫 𣻹
+𧜶 𤑛 𤋊 焝 𤉙 𨧡 侰 𦴨 峂 𤓎 𧹍 𤎽 樌 𤉖 𡌄 炦
+焳 𤏩 㶥 泟 勇 𤩏 繥 姫 崯 㷳 彜 𤩝 𡟟 綤 萦
+ 咅 𣫺 𣌀 𠈔 坾 𠣕 𠘙 㿥 𡾞 𪊶 瀃 𩅛 嵰 玏 糓
+𨩙 𩐠 俈 翧 狍 猐 𧫴 猸 猹 𥛶 獁 獈 㺩 𧬘 遬 燵
+𤣲 珡 臶 㻊 県 㻑 沢 国 琙 琞 琟 㻢 㻰 㻴 㻺 瓓
+㼎 㽓 畂 畭 畲 疍 㽼 痈 痜 㿀 癍 㿗 癴 㿜 発 𤽜
+熈 嘣 覀 塩 䀝 睃 䀹 条 䁅 㗛 瞘 䁪 䁯 属 瞾 矋
+売 砘 点 砜 䂨 砹 硇 硑 硦 葈 𥔵 礳 栃 礲 䄃
+䄉 禑 禙 辻 稆 込 䅧 窑 䆲 窼 艹 䇄 竏 竛 䇏 両
+筢 筬 筻 簒 簛 䉠 䉺 类 粜 䊌 粸 䊔 糭 输 烀 𠳏
+総 緔 緐 緽 羮 羴 犟 䎗 耠 耥 笹 耮 耱 联 㷌 垴
+炠 肷 胩 䏭 脌 猪 脎 脒 畠 脔 䐁 㬹 腖 腙 腚
+ 䐓 堺 腼 膄 䐥 膓 䐭 膥 埯 臁 臤 艔 䒏 芦 艶
+苊 苘 苿 䒰 荗 险 榊 萅 烵 葤 惣 蒈 䔄 蒾 蓡 蓸
+蔐 蔸 蕒 䔻 蕯 蕰 藠 䕷 虲 蚒 蚲 蛯 际 螋 䘆 䘗
+袮 裿 褤 襇 覑 𧥧 訩 訸 誔 誴 豑 賔 賲 贜 䞘 塟
+跃 䟭 仮 踺 嗘 坔 蹱 嗵 躰 䠷 軎 転 軤 軭 軲 辷
+迁 迊 迌 逳 駄 䢭 飠 鈓 䤞 鈨 鉘 鉫 銱 銮 銿
+鋣 鋫 鋳 鋴 鋽 鍃 鎄 鎭 䥅 䥑 麿 鐗 匁 鐝 鐭 鐾
+䥪 鑔 鑹 锭 関 䦧 间 阳 䧥 枠 䨤 靀 䨵 鞲 韂 噔
+䫤 惨 颹 䬙 飱 塄 餎 餙 冴 餜 餷 饂 饝 饢 䭰 駅
+䮝 騼 鬏 窃 魩 鮁 鯝 鯱 鯴 䱭 鰠 㝯 𡯂 鵉 鰺
+ 黾 噐 鶓 鶽 鷀 鷼 银 辶 鹻 麬 麱 麽 黆 铜 黢
+黱 黸 竈 齄 𠂔 𠊷 𠎠 椚 铃 妬 𠓗 塀 铁 㞹 𠗕 𠘕
+𠙶 𡚺 块 煳 𠫂 𠫍 𠮿 呪 吆 𠯋 咞 𠯻 𠰻 𠱓 𠱥 𠱼
+惧 𠲍 噺 𠲵 𠳝 𠳭 𠵯 𠶲 𠷈 楕 鰯 螥 𠸄 𠸎 𠻗 𠾐
+𠼭 𠹳 尠 𠾼 帋 𡁜 𡁏 𡁶 朞 𡁻 𡂈 𡂖 㙇 𡂿 𡃓 𡄯
+𡄻 卤 蒭 𡋣 𡍵 𡌶 讁 𡕷 𡘙 𡟃 𡟇 乸 炻 𡠭 𡥪
+𡨭 𡩅 𡰪 𡱰 𡲬 𡻈 拃 𡻕 𡼕 熘 桕 𢁅 槩 㛈 𢉼 𢏗
+𢏺 𢜪 𢡱 𢥏 苽 𢥧 𢦓 𢫕 覥 𢫨 辠 𢬎 鞸 𢬿 顇 骽
+𢱌 𢲈 𢲷 𥯨 𢴈 𢴒 𢶷 𢶕 𢹂 𢽴 𢿌 𣀳 𣁦 𣌟 𣏞
+徱 晈 暿 𧩹 𣕧 𣗳 𤦺 𣘚 𣜖 𠍆 墵 朎
+ 椘 𣪧 𧙗 𥿢 𣸑 𣺹 𧗾 𢂚 䣐 䪸 𤄙 𨪚 𤋮 𤌍 𤀻
+𤌴 𤎖 𤩅 𠗊 凒 𠘑 妟 𡺨 㮾 𣳿 𤐄 𤓖 垈 𤙴 㦛 𤜯
+𨗨 𩧉 㝢 𢇃 譞 𨭎 𤠒 𤣻 𤨕 爉 𤫀 𠱸 奥 𤺥 𤾆
+𠝹 軚 𥀬 劏 圿 煱 𥊙 𥐙 𣽊 𤪧 喼 𥑆 𥑮 𦭒 㑳
+𥔿 𧘲 𥕞 䜘 𥕢 𥕦 𥟇 𤤿 𥡝 偦 㓻 𣏌 𥤃 䝼 𨥈
+𥪮 𥮉 𥰆 𡶐 垡 煑 𦄂 𧰒 遖 𦆲 𤾚 譢 𦐂 𦑊
+嵛 𦯷 𦒄 𡤜 諪 𤧶 𦒈 𣿯 𦔒 䯀 𦖿 𦚵 𢜛 鑥 𥟡
+憕 娧 晉 嚹 𤔡 𦛼 乪 𤤴 陖 涏 𦲽 㘘 襷 𦞙 𦡮
+𦐑 𦡞 𦣇 筂 𩃀 𠨑 𦤦 𦤹 穅 𦧺 騦 𦨭 㙟
+𦑩 𠀡 禃 𦨴 𦭛 崬 𣔙 𦮝 䛐 𦲤 画 补 𦶮 墶
+ 㜜 𢖍 𧁋 𧇍 㱔 𧊀 𧊅 銁 𢅺 𧊋 錰 𧋦 𤧐 氹 钟
+𧑐 𠻸 蠧 裵 𢤦 𨑳 𡞱 溸 𤨪 𡠠 㦤 㚹 䔿 暶
+𩲭 𩢤 襃 𧟌 𧡘 囖 䃟 𡘊 㦡 𣜯 𨃨 𡏅 熭 荦 𧧝 𩆨
+ 䲷 𧂯 𨦫 𧧽 𧨊 𧬋 𧵦 𤅺 筃 祾 𨀉 澵 𪋟 樃 𨌘
+厢 𦸇 鎿 栶 靝 𨅯 𨀣 𦦵 𡏭 𣈯 𨁈 嶅 𨰰 𨂃 圕 頣
+𨥉 嶫 𤦈 斾 槕 叒 𤪥 𣾁 㰑 朶 𨂐 𨃴 𨄮 𡾡 𨅏
+𨆉 𨆯 𨈚 𨌆 𨌯 𨎊 㗊 𨑨 𨚪 䣺 揦 𨥖 砈 鉕 𨦸 䏲
+𨧧 䏟 𨧨 𨭆 𨯔 姸 𨰉 𨿅 𩃬 𩄐 𩄼 㷷 𩅞 𤫊
+运 犏 嚋 𩓧 𩗩 𩖰 𩖸 𩜲 𩣑 𩥉 𩥪 𩧃 𩨨 𩬎 𩵚 𩶛
+纟 𩻸 𩼣 䲤 镇 𪊓 熢 𪋿 䶑 递 𪗋 䶜 𠲜 达 嗁
+ 辺 𢒰 边 𤪓 䔉 繿 潖 檱 仪 㓤 𨬬 𧢝 㜺 躀 𡟵
+𨀤 𨭬 𨮙 𧨾 𦚯 㷫 𧙕 𣲷 𥘵 𥥖 亚 𥺁 𦉘 嚿 𠹭 踎
+孭 𣺈 𤲞 揞 𡟶 𡡻 攰 嘭 𥱊 吚 𥌑 㷆 𩶘 䱽 嘢
+嘞 罉 𥻘 奵 𣵀 蝰 东 𠿪 𠵉 𣚺 脗 鵞 贘 瘻 鱅 癎
+瞹 鍅 吲 腈 苷 嘥 脲 萘 肽 嗪 祢 噃 吖 𠺝 㗎 嘅
+嗱 曱 𨋢 㘭 甴 嗰 喺 咗 啲 𠱁 𠲖 廐 𥅈 𠹶 𢱢
+𠺢 麫 絚 嗞 𡁵 抝 靭 咔 賍 燶 酶 揼 掹 揾 啩 𢭃
+鱲 𢺳 冚 㓟 𠶧 冧 呍 唞 唓 癦 踭 𦢊 疱 肶 蠄 螆
+裇 膶 萜 𡃁 䓬 猄 𤜆 宐 茋 𦢓 噻 𢛴 𧴯 𤆣 𧵳 𦻐
+𧊶 酰 𡇙 鈈 𣳼 𪚩 𠺬 𠻹 牦 𡲢 䝎 𤿂 𧿹 𠿫 䃺
+ 鱝 攟 𢶠 䣳 𤟠 𩵼 𠿬 𠸊 𧖣 𠿭 𦁈 𡆇 熣
+纎 鵐 业 丄 㕷 嬍 沲 卧 㚬 㧜 卽 㚥 𤘘 墚 𤭮 舭
+呋 垪 𥪕 𠥹 㩒 𢑥 獴 𩺬 䴉 鯭 𣳾 𩼰 䱛 𤾩 𩖞
+𩿞 葜 𣶶 𧊲 𦞳 𣜠 挮 紥 𣻷 𣸬 㨪 逈 勌 㹴 㙺 䗩
+𠒎 癀 嫰 𠺶 硺 𧼮 墧 䂿 噼 鮋 嵴 癔 𪐴 麅 䳡
+㟻 愙 𣃚 𤏲 噝 𡊩 垧 𤥣 𩸆 刴 𧂮 㖭 鵼
+籖 鬹 埞 𡝬 屓 擓 𩓐 𦌵 𧅤 蚭 𠴨 𦴢 𤫢 𠵱 凾
+𡼏 嶎 霃 𡷑 麁 遌 笟 鬂 峑 箣 扨 挵 髿 篏 鬪 籾
+ 籂 粆 鰕 篼 鬉 鰛 𤤾 齚 啳 寃 俽 麘 俲 剠
+㸆 勑 坧 偖 妷 帒 韈 鶫 轜 呩 鞴 饀 鞺 匬 愰
+ 椬 叚 鰊 鴂 䰻 陁 榀 傦 畆 𡝭 駚 剳 酙 隁
+酜 酑 𨺗 捿 𦴣 櫊 嘑 醎 畺 抅 𠏼 獏 籰 𥰡 𣳽
+ 𤤙 盖 鮝 个 𠳔 莾 衂 届 槀 坺 刟 巵 从
+氱 𠇲 伹 咜 哚 劚 趂 㗾 㗳 歒 酼 龥 鮗 頮
+颴 骺 麨 麄 煺 笔 毺 蠘 罸 嘠 𪙊 蹷 齓
+跔 蹏 鸜 踁 抂 𨍽 踨 蹵 竓 𤩷 稾 磘 泪 詧 瘇
+𨩚 鼦 泎 蟖 痃 𪊲 硓 咢 贌 狢 獱 謭 猂 瓱 賫 𤪻
+蘯 徺 袠 䒷 𡠻 𦸅 詾 𢔛 惽 癧 髗 鵄 鍮
+鮏 蟵 賷 猬 霡 鮰 㗖 犲 䰇 籑 饊 𦅙 慙 䰄
+麖 慽 坟 慯 抦 戹 㩜 懢 厪 𣏵 捤 栂 㗒
+ 嵗 𨯂 迚 𨸹 僙 𡵆 礆 匲 阸 𠼻 䁥 矾
+糂 𥼚 糚 稭 聦 聣 絍 甅 瓲 覔 舚 朌 聢 𧒆 聛 瓰
+脃 眤 覉 𦟌 畓 𦻑 螩 蟎 臈 螌 詉 貭 譃 眫 瓸 蓚
+㘵 榲 趦 覩 涹 蟁 𤀑 瓧 㷛 煶 悤 憜 㳑
+恷 罱 𨬭 惩 䭾 删 㰘 𣳇 𥻗 𧙖 𥔱 𡥄 𡋾 𩤃
+𦷜 𧂭 峁 𦆭 𨨏 𣙷 𠃮 𦡆 𤼎 䕢 嬟 𦍌 齐 麦 𦉫
View
8 tests/BIG5-HKSCS-2008.IRREVERSIBLE.TXT
@@ -0,0 +1,8 @@
+0xF9E9 0x255E
+0xF9EA 0x256A
+0xF9EB 0x2561
+0xF9F9 0x2550
+0xF9FA 0x256D
+0xF9FB 0x256E
+0xF9FC 0x2570
+0xF9FD 0x256F
View
18,591 tests/BIG5-HKSCS-2008.TXT
18,591 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2 tests/Makefile.in
@@ -142,6 +142,8 @@ check : all table-from table-to ../src/iconv_no_i18n test-shiftseq test-to-wchar
$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2001
$(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2004
$(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2004
+ $(srcdir)/check-stateless $(srcdir) BIG5-HKSCS:2008
+ $(srcdir)/check-stateful $(srcdir) BIG5-HKSCS:2008
$(srcdir)/check-stateless $(srcdir) EUC-KR
$(srcdir)/check-stateless $(srcdir) CP949
$(srcdir)/check-stateless $(srcdir) JOHAB
View
4 tools/Makefile
@@ -90,6 +90,7 @@ ALL = \
hkscs1999.h \
hkscs2001.h \
hkscs2004.h \
+ hkscs2008.h \
ksc5601.h \
uhc_1.h \
uhc_2.h \
@@ -408,6 +409,9 @@ hkscs2001.h : $(TABLESDIR)/big5hkscs/HKSCS-2001_2006-DELTA.TXT cjk_tab_to_h
hkscs2004.h : $(TABLESDIR)/big5hkscs/HKSCS-2004_2006-DELTA.TXT cjk_tab_to_h
(echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2004 hkscs2004 > $@
+hkscs2008.h : $(TABLESDIR)/big5hkscs/HKSCS-2008_2010-DELTA.TXT cjk_tab_to_h
+ (echo '#' ; grep -v , $<) | ./cjk_tab_to_h HKSCS:2008 hkscs2008 > $@
+
# We use a modified KSC 5601 = KSX 1001 table. Jungshik Shin <jshin@mailaps.org>
# reports that Prof. GIM Geongseog (KIM Keyongseok) <gimgs@asadal.cs.pusan.ac.kr>
# (who represents South Korea in ISO/IEC JTC1 SC2/WG2 and SC22/WG20) says that
View
2 tools/cjk_tab_to_h.c
@@ -2131,7 +2131,7 @@ int main (int argc, char *argv[])
else if (!strcmp(name,"big5") || !strcmp(name,"cp950ext"))
do_big5(name);
else if (!strcmp(name,"hkscs1999") || !strcmp(name,"hkscs2001")
- || !strcmp(name,"hkscs2004"))
+ || !strcmp(name,"hkscs2004") || !strcmp(name,"hkscs2008"))
do_hkscs(name);
else if (!strcmp(name,"johab_hangul"))
do_johab_hangul(name);

0 comments on commit fd7d570

Please sign in to comment.
Something went wrong with that request. Please try again.