This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, fedora/2.14/master, updated. glibc-2.14-880-gcad85ba


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, fedora/2.14/master has been updated
       via  cad85ba78211fe51a4c377654f61ca73b8585d0e (commit)
       via  3d828a61cdc5ccd5e907e880cff45130169a543e (commit)
       via  bf18f175afdb59cdcd1016995b351e2bbb1d6ba7 (commit)
       via  1bb5fe47df5dc69bea6a219e5dff62ec7db88036 (commit)
       via  96147940d8ffb63efdf84a7f2608eec742df8c61 (commit)
       via  5ec98a06e70c071cc38c45c80804df4afc7eff09 (commit)
       via  0e779ef2a9fcfd13f5243224c82894ba797ecec3 (commit)
      from  18e76460b67080f19576f358a62d0f1d8a7a0d1f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=cad85ba78211fe51a4c377654f61ca73b8585d0e

commit cad85ba78211fe51a4c377654f61ca73b8585d0e
Author: Andreas Schwab <schwab@redhat.com>
Date:   Tue Jun 28 14:03:41 2011 +0200

    2.14-4

diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 6cc321a..1503408 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -23,7 +23,7 @@
 Summary: The GNU libc libraries
 Name: glibc
 Version: %{glibcversion}
-Release: 3
+Release: 4
 # GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
 # Things that are linked directly into dynamically linked programs
 # and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@@ -1047,6 +1047,12 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Jun 28 2011 Andreas Schwab <schwab@redhat.com> - 2.14-4
+- Update from 2.14 branch
+  - Fix crash in GB18030 encoder (#712901)
+- Fix more bugs in GB18030 charmap
+- Don't use gethostbyaddr to determine canonical name
+
 * Mon Jun 21 2011 Andreas Schwab <schwab@redhat.com> - 2.14-3
 - Update from 2.14 branch
   - Fix typo in recent resolver change which causes segvs (#710279)

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3d828a61cdc5ccd5e907e880cff45130169a543e

commit 3d828a61cdc5ccd5e907e880cff45130169a543e
Author: Andreas Schwab <schwab@redhat.com>
Date:   Tue Jun 28 12:04:26 2011 +0200

    Fix more bugs in GB18030 charmap

diff --git a/ChangeLog b/ChangeLog
index fa1b5de..1b239ac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2011-06-28  Andreas Schwab  <schwab@redhat.com>
 
+	* iconvdata/gb18030.c: Update tables.
+	(BODY for FROM_LOOP): Handle non-BMP characters specially.
+
 	* sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr
 	to determine canonical name.
 
diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c
index e3aaac2..ddef0b8 100644
--- a/iconvdata/gb18030.c
+++ b/iconvdata/gb18030.c
@@ -62,17 +62,18 @@
 	   (unless line (return))
 	   (when (eql (position #\Tab line) 6)
 	     (let ((gbk (parse-integer line :start 2 :end 6 :radix 16))
-		   (ucs (parse-integer line :start 9 :end 13 :radix 16)))
-	       (when (= (mod count 4) 0)
-		 (format t " "))
-	       (format t " ~([0x~4,'0X] = 0x~4,'0X~),"
-			 (let ((ch1 (ldb (byte 8 8) gbk))
-			       (ch2 (ldb (byte 8 0) gbk)))
-			   (+ (* (- ch1 #x81) 192) (- ch2 #x40)))
-			 ucs)
-	       (incf count)
-	       (when (= (mod count 4) 0)
-		 (format t "~%"))))))
+		   (ucs (parse-integer line :start 9 :radix 16)))
+	       (when (<= ucs #xffff)
+		 (when (= (mod count 4) 0)
+		   (format t " "))
+		 (format t " ~([0x~4,'0X] = 0x~4,'0X~),"
+			   (let ((ch1 (ldb (byte 8 8) gbk))
+				 (ch2 (ldb (byte 8 0) gbk)))
+			     (+ (* (- ch1 #x81) 192) (- ch2 #x40)))
+			   ucs)
+		 (incf count)
+		 (when (= (mod count 4) 0)
+		   (format t "~%")))))))
        (format t "~%")))
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 */
@@ -1874,14 +1875,14 @@ static const uint16_t __twobyte_to_ucs[] =
   [0x1c4b] = 0x03bb, [0x1c4c] = 0x03bc, [0x1c4d] = 0x03bd, [0x1c4e] = 0x03be,
   [0x1c4f] = 0x03bf, [0x1c50] = 0x03c0, [0x1c51] = 0x03c1, [0x1c52] = 0x03c3,
   [0x1c53] = 0x03c4, [0x1c54] = 0x03c5, [0x1c55] = 0x03c6, [0x1c56] = 0x03c7,
-  [0x1c57] = 0x03c8, [0x1c58] = 0x03c9, [0x1c59] = 0xe78d, [0x1c5a] = 0xe78e,
-  [0x1c5b] = 0xe78f, [0x1c5c] = 0xe790, [0x1c5d] = 0xe791, [0x1c5e] = 0xe792,
-  [0x1c5f] = 0xe793, [0x1c60] = 0xfe35, [0x1c61] = 0xfe36, [0x1c62] = 0xfe39,
+  [0x1c57] = 0x03c8, [0x1c58] = 0x03c9, [0x1c59] = 0xfe10, [0x1c5a] = 0xfe12,
+  [0x1c5b] = 0xfe11, [0x1c5c] = 0xfe13, [0x1c5d] = 0xfe14, [0x1c5e] = 0xfe15,
+  [0x1c5f] = 0xfe16, [0x1c60] = 0xfe35, [0x1c61] = 0xfe36, [0x1c62] = 0xfe39,
   [0x1c63] = 0xfe3a, [0x1c64] = 0xfe3f, [0x1c65] = 0xfe40, [0x1c66] = 0xfe3d,
   [0x1c67] = 0xfe3e, [0x1c68] = 0xfe41, [0x1c69] = 0xfe42, [0x1c6a] = 0xfe43,
-  [0x1c6b] = 0xfe44, [0x1c6c] = 0xe794, [0x1c6d] = 0xe795, [0x1c6e] = 0xfe3b,
+  [0x1c6b] = 0xfe44, [0x1c6c] = 0xfe17, [0x1c6d] = 0xfe18, [0x1c6e] = 0xfe3b,
   [0x1c6f] = 0xfe3c, [0x1c70] = 0xfe37, [0x1c71] = 0xfe38, [0x1c72] = 0xfe31,
-  [0x1c73] = 0xe796, [0x1c74] = 0xfe33, [0x1c75] = 0xfe34, [0x1c76] = 0xe797,
+  [0x1c73] = 0xfe19, [0x1c74] = 0xfe33, [0x1c75] = 0xfe34, [0x1c76] = 0xe797,
   [0x1c77] = 0xe798, [0x1c78] = 0xe799, [0x1c79] = 0xe79a, [0x1c7a] = 0xe79b,
   [0x1c7b] = 0xe79c, [0x1c7c] = 0xe79d, [0x1c7d] = 0xe79e, [0x1c7e] = 0xe79f,
   [0x1c80] = 0xe706, [0x1c81] = 0xe707, [0x1c82] = 0xe708, [0x1c83] = 0xe709,
@@ -6020,28 +6021,25 @@ static const uint16_t __twobyte_to_ucs[] =
   [0x5dc2] = 0xfa0e, [0x5dc3] = 0xfa0f, [0x5dc4] = 0xfa11, [0x5dc5] = 0xfa13,
   [0x5dc6] = 0xfa14, [0x5dc7] = 0xfa18, [0x5dc8] = 0xfa1f, [0x5dc9] = 0xfa20,
   [0x5dca] = 0xfa21, [0x5dcb] = 0xfa23, [0x5dcc] = 0xfa24, [0x5dcd] = 0xfa27,
-  [0x5dce] = 0xfa28, [0x5dcf] = 0xfa29, [0x5dd0] = 0x2e81, [0x5dd1] = 0x2008,
-  [0x5dd1] = 0xe816, [0x5dd2] = 0x2008, [0x5dd2] = 0xe817, [0x5dd3] = 0x200c,
-  [0x5dd3] = 0xe818, [0x5dd4] = 0x2e84, [0x5dd5] = 0x3473, [0x5dd6] = 0x3447,
-  [0x5dd7] = 0x2e88, [0x5dd8] = 0x2e8b, [0x5dd9] = 0xe81e, [0x5dda] = 0x359e,
-  [0x5ddb] = 0x361a, [0x5ddc] = 0x360e, [0x5ddd] = 0x2e8c, [0x5dde] = 0x2e97,
-  [0x5ddf] = 0x396e, [0x5de0] = 0x3918, [0x5de1] = 0xe826, [0x5de2] = 0x39cf,
-  [0x5de3] = 0x39df, [0x5de4] = 0x3a73, [0x5de5] = 0x39d0, [0x5de6] = 0xe82b,
-  [0x5de7] = 0xe82c, [0x5de8] = 0x3b4e, [0x5de9] = 0x3c6e, [0x5dea] = 0x3ce0,
-  [0x5deb] = 0x2ea7, [0x5dec] = 0x215d, [0x5dec] = 0xe831, [0x5ded] = 0xe832,
+  [0x5dce] = 0xfa28, [0x5dcf] = 0xfa29, [0x5dd0] = 0x2e81, [0x5dd4] = 0x2e84,
+  [0x5dd5] = 0x3473, [0x5dd6] = 0x3447, [0x5dd7] = 0x2e88, [0x5dd8] = 0x2e8b,
+  [0x5dd9] = 0x9fb4, [0x5dda] = 0x359e, [0x5ddb] = 0x361a, [0x5ddc] = 0x360e,
+  [0x5ddd] = 0x2e8c, [0x5dde] = 0x2e97, [0x5ddf] = 0x396e, [0x5de0] = 0x3918,
+  [0x5de1] = 0x9fb5, [0x5de2] = 0x39cf, [0x5de3] = 0x39df, [0x5de4] = 0x3a73,
+  [0x5de5] = 0x39d0, [0x5de6] = 0x9fb6, [0x5de7] = 0x9fb7, [0x5de8] = 0x3b4e,
+  [0x5de9] = 0x3c6e, [0x5dea] = 0x3ce0, [0x5deb] = 0x2ea7, [0x5ded] = 0x9fb8,
   [0x5dee] = 0x2eaa, [0x5def] = 0x4056, [0x5df0] = 0x415f, [0x5df1] = 0x2eae,
   [0x5df2] = 0x4337, [0x5df3] = 0x2eb3, [0x5df4] = 0x2eb6, [0x5df5] = 0x2eb7,
-  [0x5df6] = 0x2298, [0x5df6] = 0xe83b, [0x5df7] = 0x43b1, [0x5df8] = 0x43ac,
-  [0x5df9] = 0x2ebb, [0x5dfa] = 0x43dd, [0x5dfb] = 0x44d6, [0x5dfc] = 0x4661,
-  [0x5dfd] = 0x464c, [0x5dfe] = 0xe843, [0x5e00] = 0x4723, [0x5e01] = 0x4729,
-  [0x5e02] = 0x477c, [0x5e03] = 0x478d, [0x5e04] = 0x2eca, [0x5e05] = 0x4947,
-  [0x5e06] = 0x497a, [0x5e07] = 0x497d, [0x5e08] = 0x4982, [0x5e09] = 0x4983,
-  [0x5e0a] = 0x4985, [0x5e0b] = 0x4986, [0x5e0c] = 0x499f, [0x5e0d] = 0x499b,
-  [0x5e0e] = 0x49b7, [0x5e0f] = 0x49b6, [0x5e10] = 0xe854, [0x5e11] = 0x241f,
-  [0x5e11] = 0xe855, [0x5e12] = 0x4ca3, [0x5e13] = 0x4c9f, [0x5e14] = 0x4ca0,
+  [0x5df7] = 0x43b1, [0x5df8] = 0x43ac, [0x5df9] = 0x2ebb, [0x5dfa] = 0x43dd,
+  [0x5dfb] = 0x44d6, [0x5dfc] = 0x4661, [0x5dfd] = 0x464c, [0x5dfe] = 0x9fb9,
+  [0x5e00] = 0x4723, [0x5e01] = 0x4729, [0x5e02] = 0x477c, [0x5e03] = 0x478d,
+  [0x5e04] = 0x2eca, [0x5e05] = 0x4947, [0x5e06] = 0x497a, [0x5e07] = 0x497d,
+  [0x5e08] = 0x4982, [0x5e09] = 0x4983, [0x5e0a] = 0x4985, [0x5e0b] = 0x4986,
+  [0x5e0c] = 0x499f, [0x5e0d] = 0x499b, [0x5e0e] = 0x49b7, [0x5e0f] = 0x49b6,
+  [0x5e10] = 0x9fba, [0x5e12] = 0x4ca3, [0x5e13] = 0x4c9f, [0x5e14] = 0x4ca0,
   [0x5e15] = 0x4ca1, [0x5e16] = 0x4c77, [0x5e17] = 0x4ca2, [0x5e18] = 0x4d13,
   [0x5e19] = 0x4d14, [0x5e1a] = 0x4d15, [0x5e1b] = 0x4d16, [0x5e1c] = 0x4d17,
-  [0x5e1d] = 0x4d18, [0x5e1e] = 0x4d19, [0x5e1f] = 0x4dae, [0x5e20] = 0xe864,
+  [0x5e1d] = 0x4d18, [0x5e1e] = 0x4d19, [0x5e1f] = 0x4dae, [0x5e20] = 0x9fbb,
   [0x5e21] = 0xe468, [0x5e22] = 0xe469, [0x5e23] = 0xe46a, [0x5e24] = 0xe46b,
   [0x5e25] = 0xe46c, [0x5e26] = 0xe46d, [0x5e27] = 0xe46e, [0x5e28] = 0xe46f,
   [0x5e29] = 0xe470, [0x5e2a] = 0xe471, [0x5e2b] = 0xe472, [0x5e2c] = 0xe473,
@@ -6096,13 +6094,13 @@ static const uint16_t __twobyte_to_ucs[] =
 		    ; There are five ranges. The gap lengths are:
 		    ;   (- #x1d21 #x334) = 6637,
 		    ;   (- #x2c41 #x2403) = 2110,
-		    ;   (- #x82bd #x4a63) = 14426,
+		    ;   (- #x82bd #x4a79) = 14404,
 		    ;   (- #x93d5 #x830e) = 4295.
 		    (idx (cond ((<= 0 linear #x333) linear)
 			       ((<= #x1d21 linear #x2402) (- linear 6637))
-			       ((<= #x2c41 linear #x4a62) (- linear 6637 2110))
-			       ((<= #x82bd linear #x830d) (- linear 6637 2110 14426))
-			       ((<= #x93d5 linear #x99e1) (- linear 6637 2110 14426 4295))
+			       ((<= #x2c41 linear #x4a78) (- linear 6637 2110))
+			       ((<= #x82bd linear #x830d) (- linear 6637 2110 14404))
+			       ((<= #x93d5 linear #x99e1) (- linear 6637 2110 14404 4295))
 			       (t nil))))
 	       (when idx
 		 (when (= (mod count 4) 0)
@@ -6115,7 +6113,7 @@ static const uint16_t __twobyte_to_ucs[] =
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 */
 
-static const uint16_t __fourbyte_to_ucs[39422-11172-4295] =
+static const uint16_t __fourbyte_to_ucs[0x99e2 - 6637 - 2110 - 14404 - 4295] =
 {
   [0x0000] = 0x0080, [0x0001] = 0x0081, [0x0002] = 0x0082, [0x0003] = 0x0083,
   [0x0004] = 0x0084, [0x0005] = 0x0085, [0x0006] = 0x0086, [0x0007] = 0x0087,
@@ -8691,414 +8689,415 @@ static const uint16_t __fourbyte_to_ucs[39422-11172-4295] =
   [0x282c] = 0x4df4, [0x282d] = 0x4df5, [0x282e] = 0x4df6, [0x282f] = 0x4df7,
   [0x2830] = 0x4df8, [0x2831] = 0x4df9, [0x2832] = 0x4dfa, [0x2833] = 0x4dfb,
   [0x2834] = 0x4dfc, [0x2835] = 0x4dfd, [0x2836] = 0x4dfe, [0x2837] = 0x4dff,
-  [0x2838] = 0xe76c, [0x2839] = 0xe7c8, [0x283a] = 0xe7e7, [0x283b] = 0xe7e8,
-  [0x283c] = 0xe7e9, [0x283d] = 0xe7ea, [0x283e] = 0xe7eb, [0x283f] = 0xe7ec,
-  [0x2840] = 0xe7ed, [0x2841] = 0xe7ee, [0x2842] = 0xe7ef, [0x2843] = 0xe7f0,
-  [0x2844] = 0xe7f1, [0x2845] = 0xe7f2, [0x2846] = 0xe7f3, [0x2847] = 0xe815,
-  [0x2848] = 0xe819, [0x2849] = 0xe81a, [0x284a] = 0xe81b, [0x284b] = 0xe81c,
-  [0x284c] = 0xe81d, [0x284d] = 0xe81f, [0x284e] = 0xe820, [0x284f] = 0xe821,
-  [0x2850] = 0xe822, [0x2851] = 0xe823, [0x2852] = 0xe824, [0x2853] = 0xe825,
-  [0x2854] = 0xe827, [0x2855] = 0xe828, [0x2856] = 0xe829, [0x2857] = 0xe82a,
-  [0x2858] = 0xe82d, [0x2859] = 0xe82e, [0x285a] = 0xe82f, [0x285b] = 0xe830,
-  [0x285c] = 0xe833, [0x285d] = 0xe834, [0x285e] = 0xe835, [0x285f] = 0xe836,
-  [0x2860] = 0xe837, [0x2861] = 0xe838, [0x2862] = 0xe839, [0x2863] = 0xe83a,
-  [0x2864] = 0xe83c, [0x2865] = 0xe83d, [0x2866] = 0xe83e, [0x2867] = 0xe83f,
-  [0x2868] = 0xe840, [0x2869] = 0xe841, [0x286a] = 0xe842, [0x286b] = 0xe844,
-  [0x286c] = 0xe845, [0x286d] = 0xe846, [0x286e] = 0xe847, [0x286f] = 0xe848,
-  [0x2870] = 0xe849, [0x2871] = 0xe84a, [0x2872] = 0xe84b, [0x2873] = 0xe84c,
-  [0x2874] = 0xe84d, [0x2875] = 0xe84e, [0x2876] = 0xe84f, [0x2877] = 0xe850,
-  [0x2878] = 0xe851, [0x2879] = 0xe852, [0x287a] = 0xe853, [0x287b] = 0xe856,
-  [0x287c] = 0xe857, [0x287d] = 0xe858, [0x287e] = 0xe859, [0x287f] = 0xe85a,
-  [0x2880] = 0xe85b, [0x2881] = 0xe85c, [0x2882] = 0xe85d, [0x2883] = 0xe85e,
-  [0x2884] = 0xe85f, [0x2885] = 0xe860, [0x2886] = 0xe861, [0x2887] = 0xe862,
-  [0x2888] = 0xe863, [0x2889] = 0xf92d, [0x288a] = 0xf92e, [0x288b] = 0xf92f,
-  [0x288c] = 0xf930, [0x288d] = 0xf931, [0x288e] = 0xf932, [0x288f] = 0xf933,
-  [0x2890] = 0xf934, [0x2891] = 0xf935, [0x2892] = 0xf936, [0x2893] = 0xf937,
-  [0x2894] = 0xf938, [0x2895] = 0xf939, [0x2896] = 0xf93a, [0x2897] = 0xf93b,
-  [0x2898] = 0xf93c, [0x2899] = 0xf93d, [0x289a] = 0xf93e, [0x289b] = 0xf93f,
-  [0x289c] = 0xf940, [0x289d] = 0xf941, [0x289e] = 0xf942, [0x289f] = 0xf943,
-  [0x28a0] = 0xf944, [0x28a1] = 0xf945, [0x28a2] = 0xf946, [0x28a3] = 0xf947,
-  [0x28a4] = 0xf948, [0x28a5] = 0xf949, [0x28a6] = 0xf94a, [0x28a7] = 0xf94b,
-  [0x28a8] = 0xf94c, [0x28a9] = 0xf94d, [0x28aa] = 0xf94e, [0x28ab] = 0xf94f,
-  [0x28ac] = 0xf950, [0x28ad] = 0xf951, [0x28ae] = 0xf952, [0x28af] = 0xf953,
-  [0x28b0] = 0xf954, [0x28b1] = 0xf955, [0x28b2] = 0xf956, [0x28b3] = 0xf957,
-  [0x28b4] = 0xf958, [0x28b5] = 0xf959, [0x28b6] = 0xf95a, [0x28b7] = 0xf95b,
-  [0x28b8] = 0xf95c, [0x28b9] = 0xf95d, [0x28ba] = 0xf95e, [0x28bb] = 0xf95f,
-  [0x28bc] = 0xf960, [0x28bd] = 0xf961, [0x28be] = 0xf962, [0x28bf] = 0xf963,
-  [0x28c0] = 0xf964, [0x28c1] = 0xf965, [0x28c2] = 0xf966, [0x28c3] = 0xf967,
-  [0x28c4] = 0xf968, [0x28c5] = 0xf969, [0x28c6] = 0xf96a, [0x28c7] = 0xf96b,
-  [0x28c8] = 0xf96c, [0x28c9] = 0xf96d, [0x28ca] = 0xf96e, [0x28cb] = 0xf96f,
-  [0x28cc] = 0xf970, [0x28cd] = 0xf971, [0x28ce] = 0xf972, [0x28cf] = 0xf973,
-  [0x28d0] = 0xf974, [0x28d1] = 0xf975, [0x28d2] = 0xf976, [0x28d3] = 0xf977,
-  [0x28d4] = 0xf978, [0x28d5] = 0xf97a, [0x28d6] = 0xf97b, [0x28d7] = 0xf97c,
-  [0x28d8] = 0xf97d, [0x28d9] = 0xf97e, [0x28da] = 0xf97f, [0x28db] = 0xf980,
-  [0x28dc] = 0xf981, [0x28dd] = 0xf982, [0x28de] = 0xf983, [0x28df] = 0xf984,
-  [0x28e0] = 0xf985, [0x28e1] = 0xf986, [0x28e2] = 0xf987, [0x28e3] = 0xf988,
-  [0x28e4] = 0xf989, [0x28e5] = 0xf98a, [0x28e6] = 0xf98b, [0x28e7] = 0xf98c,
-  [0x28e8] = 0xf98d, [0x28e9] = 0xf98e, [0x28ea] = 0xf98f, [0x28eb] = 0xf990,
-  [0x28ec] = 0xf991, [0x28ed] = 0xf992, [0x28ee] = 0xf993, [0x28ef] = 0xf994,
-  [0x28f0] = 0xf996, [0x28f1] = 0xf997, [0x28f2] = 0xf998, [0x28f3] = 0xf999,
-  [0x28f4] = 0xf99a, [0x28f5] = 0xf99b, [0x28f6] = 0xf99c, [0x28f7] = 0xf99d,
-  [0x28f8] = 0xf99e, [0x28f9] = 0xf99f, [0x28fa] = 0xf9a0, [0x28fb] = 0xf9a1,
-  [0x28fc] = 0xf9a2, [0x28fd] = 0xf9a3, [0x28fe] = 0xf9a4, [0x28ff] = 0xf9a5,
-  [0x2900] = 0xf9a6, [0x2901] = 0xf9a7, [0x2902] = 0xf9a8, [0x2903] = 0xf9a9,
-  [0x2904] = 0xf9aa, [0x2905] = 0xf9ab, [0x2906] = 0xf9ac, [0x2907] = 0xf9ad,
-  [0x2908] = 0xf9ae, [0x2909] = 0xf9af, [0x290a] = 0xf9b0, [0x290b] = 0xf9b1,
-  [0x290c] = 0xf9b2, [0x290d] = 0xf9b3, [0x290e] = 0xf9b4, [0x290f] = 0xf9b5,
-  [0x2910] = 0xf9b6, [0x2911] = 0xf9b7, [0x2912] = 0xf9b8, [0x2913] = 0xf9b9,
-  [0x2914] = 0xf9ba, [0x2915] = 0xf9bb, [0x2916] = 0xf9bc, [0x2917] = 0xf9bd,
-  [0x2918] = 0xf9be, [0x2919] = 0xf9bf, [0x291a] = 0xf9c0, [0x291b] = 0xf9c1,
-  [0x291c] = 0xf9c2, [0x291d] = 0xf9c3, [0x291e] = 0xf9c4, [0x291f] = 0xf9c5,
-  [0x2920] = 0xf9c6, [0x2921] = 0xf9c7, [0x2922] = 0xf9c8, [0x2923] = 0xf9c9,
-  [0x2924] = 0xf9ca, [0x2925] = 0xf9cb, [0x2926] = 0xf9cc, [0x2927] = 0xf9cd,
-  [0x2928] = 0xf9ce, [0x2929] = 0xf9cf, [0x292a] = 0xf9d0, [0x292b] = 0xf9d1,
-  [0x292c] = 0xf9d2, [0x292d] = 0xf9d3, [0x292e] = 0xf9d4, [0x292f] = 0xf9d5,
-  [0x2930] = 0xf9d6, [0x2931] = 0xf9d7, [0x2932] = 0xf9d8, [0x2933] = 0xf9d9,
-  [0x2934] = 0xf9da, [0x2935] = 0xf9db, [0x2936] = 0xf9dc, [0x2937] = 0xf9dd,
-  [0x2938] = 0xf9de, [0x2939] = 0xf9df, [0x293a] = 0xf9e0, [0x293b] = 0xf9e1,
-  [0x293c] = 0xf9e2, [0x293d] = 0xf9e3, [0x293e] = 0xf9e4, [0x293f] = 0xf9e5,
-  [0x2940] = 0xf9e6, [0x2941] = 0xf9e8, [0x2942] = 0xf9e9, [0x2943] = 0xf9ea,
-  [0x2944] = 0xf9eb, [0x2945] = 0xf9ec, [0x2946] = 0xf9ed, [0x2947] = 0xf9ee,
-  [0x2948] = 0xf9ef, [0x2949] = 0xf9f0, [0x294a] = 0xf9f2, [0x294b] = 0xf9f3,
-  [0x294c] = 0xf9f4, [0x294d] = 0xf9f5, [0x294e] = 0xf9f6, [0x294f] = 0xf9f7,
-  [0x2950] = 0xf9f8, [0x2951] = 0xf9f9, [0x2952] = 0xf9fa, [0x2953] = 0xf9fb,
-  [0x2954] = 0xf9fc, [0x2955] = 0xf9fd, [0x2956] = 0xf9fe, [0x2957] = 0xf9ff,
-  [0x2958] = 0xfa00, [0x2959] = 0xfa01, [0x295a] = 0xfa02, [0x295b] = 0xfa03,
-  [0x295c] = 0xfa04, [0x295d] = 0xfa05, [0x295e] = 0xfa06, [0x295f] = 0xfa07,
-  [0x2960] = 0xfa08, [0x2961] = 0xfa09, [0x2962] = 0xfa0a, [0x2963] = 0xfa0b,
-  [0x2964] = 0xfa10, [0x2965] = 0xfa12, [0x2966] = 0xfa15, [0x2967] = 0xfa16,
-  [0x2968] = 0xfa17, [0x2969] = 0xfa19, [0x296a] = 0xfa1a, [0x296b] = 0xfa1b,
-  [0x296c] = 0xfa1c, [0x296d] = 0xfa1d, [0x296e] = 0xfa1e, [0x296f] = 0xfa22,
-  [0x2970] = 0xfa25, [0x2971] = 0xfa26, [0x2972] = 0xfa2a, [0x2973] = 0xfa2b,
-  [0x2974] = 0xfa2c, [0x2975] = 0xfa2d, [0x2976] = 0xfa2e, [0x2977] = 0xfa2f,
-  [0x2978] = 0xfa30, [0x2979] = 0xfa31, [0x297a] = 0xfa32, [0x297b] = 0xfa33,
-  [0x297c] = 0xfa34, [0x297d] = 0xfa35, [0x297e] = 0xfa36, [0x297f] = 0xfa37,
-  [0x2980] = 0xfa38, [0x2981] = 0xfa39, [0x2982] = 0xfa3a, [0x2983] = 0xfa3b,
-  [0x2984] = 0xfa3c, [0x2985] = 0xfa3d, [0x2986] = 0xfa3e, [0x2987] = 0xfa3f,
-  [0x2988] = 0xfa40, [0x2989] = 0xfa41, [0x298a] = 0xfa42, [0x298b] = 0xfa43,
-  [0x298c] = 0xfa44, [0x298d] = 0xfa45, [0x298e] = 0xfa46, [0x298f] = 0xfa47,
-  [0x2990] = 0xfa48, [0x2991] = 0xfa49, [0x2992] = 0xfa4a, [0x2993] = 0xfa4b,
-  [0x2994] = 0xfa4c, [0x2995] = 0xfa4d, [0x2996] = 0xfa4e, [0x2997] = 0xfa4f,
-  [0x2998] = 0xfa50, [0x2999] = 0xfa51, [0x299a] = 0xfa52, [0x299b] = 0xfa53,
-  [0x299c] = 0xfa54, [0x299d] = 0xfa55, [0x299e] = 0xfa56, [0x299f] = 0xfa57,
-  [0x29a0] = 0xfa58, [0x29a1] = 0xfa59, [0x29a2] = 0xfa5a, [0x29a3] = 0xfa5b,
-  [0x29a4] = 0xfa5c, [0x29a5] = 0xfa5d, [0x29a6] = 0xfa5e, [0x29a7] = 0xfa5f,
-  [0x29a8] = 0xfa60, [0x29a9] = 0xfa61, [0x29aa] = 0xfa62, [0x29ab] = 0xfa63,
-  [0x29ac] = 0xfa64, [0x29ad] = 0xfa65, [0x29ae] = 0xfa66, [0x29af] = 0xfa67,
-  [0x29b0] = 0xfa68, [0x29b1] = 0xfa69, [0x29b2] = 0xfa6a, [0x29b3] = 0xfa6b,
-  [0x29b4] = 0xfa6c, [0x29b5] = 0xfa6d, [0x29b6] = 0xfa6e, [0x29b7] = 0xfa6f,
-  [0x29b8] = 0xfa70, [0x29b9] = 0xfa71, [0x29ba] = 0xfa72, [0x29bb] = 0xfa73,
-  [0x29bc] = 0xfa74, [0x29bd] = 0xfa75, [0x29be] = 0xfa76, [0x29bf] = 0xfa77,
-  [0x29c0] = 0xfa78, [0x29c1] = 0xfa79, [0x29c2] = 0xfa7a, [0x29c3] = 0xfa7b,
-  [0x29c4] = 0xfa7c, [0x29c5] = 0xfa7d, [0x29c6] = 0xfa7e, [0x29c7] = 0xfa7f,
-  [0x29c8] = 0xfa80, [0x29c9] = 0xfa81, [0x29ca] = 0xfa82, [0x29cb] = 0xfa83,
-  [0x29cc] = 0xfa84, [0x29cd] = 0xfa85, [0x29ce] = 0xfa86, [0x29cf] = 0xfa87,
-  [0x29d0] = 0xfa88, [0x29d1] = 0xfa89, [0x29d2] = 0xfa8a, [0x29d3] = 0xfa8b,
-  [0x29d4] = 0xfa8c, [0x29d5] = 0xfa8d, [0x29d6] = 0xfa8e, [0x29d7] = 0xfa8f,
-  [0x29d8] = 0xfa90, [0x29d9] = 0xfa91, [0x29da] = 0xfa92, [0x29db] = 0xfa93,
-  [0x29dc] = 0xfa94, [0x29dd] = 0xfa95, [0x29de] = 0xfa96, [0x29df] = 0xfa97,
-  [0x29e0] = 0xfa98, [0x29e1] = 0xfa99, [0x29e2] = 0xfa9a, [0x29e3] = 0xfa9b,
-  [0x29e4] = 0xfa9c, [0x29e5] = 0xfa9d, [0x29e6] = 0xfa9e, [0x29e7] = 0xfa9f,
-  [0x29e8] = 0xfaa0, [0x29e9] = 0xfaa1, [0x29ea] = 0xfaa2, [0x29eb] = 0xfaa3,
-  [0x29ec] = 0xfaa4, [0x29ed] = 0xfaa5, [0x29ee] = 0xfaa6, [0x29ef] = 0xfaa7,
-  [0x29f0] = 0xfaa8, [0x29f1] = 0xfaa9, [0x29f2] = 0xfaaa, [0x29f3] = 0xfaab,
-  [0x29f4] = 0xfaac, [0x29f5] = 0xfaad, [0x29f6] = 0xfaae, [0x29f7] = 0xfaaf,
-  [0x29f8] = 0xfab0, [0x29f9] = 0xfab1, [0x29fa] = 0xfab2, [0x29fb] = 0xfab3,
-  [0x29fc] = 0xfab4, [0x29fd] = 0xfab5, [0x29fe] = 0xfab6, [0x29ff] = 0xfab7,
-  [0x2a00] = 0xfab8, [0x2a01] = 0xfab9, [0x2a02] = 0xfaba, [0x2a03] = 0xfabb,
-  [0x2a04] = 0xfabc, [0x2a05] = 0xfabd, [0x2a06] = 0xfabe, [0x2a07] = 0xfabf,
-  [0x2a08] = 0xfac0, [0x2a09] = 0xfac1, [0x2a0a] = 0xfac2, [0x2a0b] = 0xfac3,
-  [0x2a0c] = 0xfac4, [0x2a0d] = 0xfac5, [0x2a0e] = 0xfac6, [0x2a0f] = 0xfac7,
-  [0x2a10] = 0xfac8, [0x2a11] = 0xfac9, [0x2a12] = 0xfaca, [0x2a13] = 0xfacb,
-  [0x2a14] = 0xfacc, [0x2a15] = 0xfacd, [0x2a16] = 0xface, [0x2a17] = 0xfacf,
-  [0x2a18] = 0xfad0, [0x2a19] = 0xfad1, [0x2a1a] = 0xfad2, [0x2a1b] = 0xfad3,
-  [0x2a1c] = 0xfad4, [0x2a1d] = 0xfad5, [0x2a1e] = 0xfad6, [0x2a1f] = 0xfad7,
-  [0x2a20] = 0xfad8, [0x2a21] = 0xfad9, [0x2a22] = 0xfada, [0x2a23] = 0xfadb,
-  [0x2a24] = 0xfadc, [0x2a25] = 0xfadd, [0x2a26] = 0xfade, [0x2a27] = 0xfadf,
-  [0x2a28] = 0xfae0, [0x2a29] = 0xfae1, [0x2a2a] = 0xfae2, [0x2a2b] = 0xfae3,
-  [0x2a2c] = 0xfae4, [0x2a2d] = 0xfae5, [0x2a2e] = 0xfae6, [0x2a2f] = 0xfae7,
-  [0x2a30] = 0xfae8, [0x2a31] = 0xfae9, [0x2a32] = 0xfaea, [0x2a33] = 0xfaeb,
-  [0x2a34] = 0xfaec, [0x2a35] = 0xfaed, [0x2a36] = 0xfaee, [0x2a37] = 0xfaef,
-  [0x2a38] = 0xfaf0, [0x2a39] = 0xfaf1, [0x2a3a] = 0xfaf2, [0x2a3b] = 0xfaf3,
-  [0x2a3c] = 0xfaf4, [0x2a3d] = 0xfaf5, [0x2a3e] = 0xfaf6, [0x2a3f] = 0xfaf7,
-  [0x2a40] = 0xfaf8, [0x2a41] = 0xfaf9, [0x2a42] = 0xfafa, [0x2a43] = 0xfafb,
-  [0x2a44] = 0xfafc, [0x2a45] = 0xfafd, [0x2a46] = 0xfafe, [0x2a47] = 0xfaff,
-  [0x2a48] = 0xfb00, [0x2a49] = 0xfb01, [0x2a4a] = 0xfb02, [0x2a4b] = 0xfb03,
-  [0x2a4c] = 0xfb04, [0x2a4d] = 0xfb05, [0x2a4e] = 0xfb06, [0x2a4f] = 0xfb07,
-  [0x2a50] = 0xfb08, [0x2a51] = 0xfb09, [0x2a52] = 0xfb0a, [0x2a53] = 0xfb0b,
-  [0x2a54] = 0xfb0c, [0x2a55] = 0xfb0d, [0x2a56] = 0xfb0e, [0x2a57] = 0xfb0f,
-  [0x2a58] = 0xfb10, [0x2a59] = 0xfb11, [0x2a5a] = 0xfb12, [0x2a5b] = 0xfb13,
-  [0x2a5c] = 0xfb14, [0x2a5d] = 0xfb15, [0x2a5e] = 0xfb16, [0x2a5f] = 0xfb17,
-  [0x2a60] = 0xfb18, [0x2a61] = 0xfb19, [0x2a62] = 0xfb1a, [0x2a63] = 0xfb1b,
-  [0x2a64] = 0xfb1c, [0x2a65] = 0xfb1d, [0x2a66] = 0xfb1e, [0x2a67] = 0xfb1f,
-  [0x2a68] = 0xfb20, [0x2a69] = 0xfb21, [0x2a6a] = 0xfb22, [0x2a6b] = 0xfb23,
-  [0x2a6c] = 0xfb24, [0x2a6d] = 0xfb25, [0x2a6e] = 0xfb26, [0x2a6f] = 0xfb27,
-  [0x2a70] = 0xfb28, [0x2a71] = 0xfb29, [0x2a72] = 0xfb2a, [0x2a73] = 0xfb2b,
-  [0x2a74] = 0xfb2c, [0x2a75] = 0xfb2d, [0x2a76] = 0xfb2e, [0x2a77] = 0xfb2f,
-  [0x2a78] = 0xfb30, [0x2a79] = 0xfb31, [0x2a7a] = 0xfb32, [0x2a7b] = 0xfb33,
-  [0x2a7c] = 0xfb34, [0x2a7d] = 0xfb35, [0x2a7e] = 0xfb36, [0x2a7f] = 0xfb37,
-  [0x2a80] = 0xfb38, [0x2a81] = 0xfb39, [0x2a82] = 0xfb3a, [0x2a83] = 0xfb3b,
-  [0x2a84] = 0xfb3c, [0x2a85] = 0xfb3d, [0x2a86] = 0xfb3e, [0x2a87] = 0xfb3f,
-  [0x2a88] = 0xfb40, [0x2a89] = 0xfb41, [0x2a8a] = 0xfb42, [0x2a8b] = 0xfb43,
-  [0x2a8c] = 0xfb44, [0x2a8d] = 0xfb45, [0x2a8e] = 0xfb46, [0x2a8f] = 0xfb47,
-  [0x2a90] = 0xfb48, [0x2a91] = 0xfb49, [0x2a92] = 0xfb4a, [0x2a93] = 0xfb4b,
-  [0x2a94] = 0xfb4c, [0x2a95] = 0xfb4d, [0x2a96] = 0xfb4e, [0x2a97] = 0xfb4f,
-  [0x2a98] = 0xfb50, [0x2a99] = 0xfb51, [0x2a9a] = 0xfb52, [0x2a9b] = 0xfb53,
-  [0x2a9c] = 0xfb54, [0x2a9d] = 0xfb55, [0x2a9e] = 0xfb56, [0x2a9f] = 0xfb57,
-  [0x2aa0] = 0xfb58, [0x2aa1] = 0xfb59, [0x2aa2] = 0xfb5a, [0x2aa3] = 0xfb5b,
-  [0x2aa4] = 0xfb5c, [0x2aa5] = 0xfb5d, [0x2aa6] = 0xfb5e, [0x2aa7] = 0xfb5f,
-  [0x2aa8] = 0xfb60, [0x2aa9] = 0xfb61, [0x2aaa] = 0xfb62, [0x2aab] = 0xfb63,
-  [0x2aac] = 0xfb64, [0x2aad] = 0xfb65, [0x2aae] = 0xfb66, [0x2aaf] = 0xfb67,
-  [0x2ab0] = 0xfb68, [0x2ab1] = 0xfb69, [0x2ab2] = 0xfb6a, [0x2ab3] = 0xfb6b,
-  [0x2ab4] = 0xfb6c, [0x2ab5] = 0xfb6d, [0x2ab6] = 0xfb6e, [0x2ab7] = 0xfb6f,
-  [0x2ab8] = 0xfb70, [0x2ab9] = 0xfb71, [0x2aba] = 0xfb72, [0x2abb] = 0xfb73,
-  [0x2abc] = 0xfb74, [0x2abd] = 0xfb75, [0x2abe] = 0xfb76, [0x2abf] = 0xfb77,
-  [0x2ac0] = 0xfb78, [0x2ac1] = 0xfb79, [0x2ac2] = 0xfb7a, [0x2ac3] = 0xfb7b,
-  [0x2ac4] = 0xfb7c, [0x2ac5] = 0xfb7d, [0x2ac6] = 0xfb7e, [0x2ac7] = 0xfb7f,
-  [0x2ac8] = 0xfb80, [0x2ac9] = 0xfb81, [0x2aca] = 0xfb82, [0x2acb] = 0xfb83,
-  [0x2acc] = 0xfb84, [0x2acd] = 0xfb85, [0x2ace] = 0xfb86, [0x2acf] = 0xfb87,
-  [0x2ad0] = 0xfb88, [0x2ad1] = 0xfb89, [0x2ad2] = 0xfb8a, [0x2ad3] = 0xfb8b,
-  [0x2ad4] = 0xfb8c, [0x2ad5] = 0xfb8d, [0x2ad6] = 0xfb8e, [0x2ad7] = 0xfb8f,
-  [0x2ad8] = 0xfb90, [0x2ad9] = 0xfb91, [0x2ada] = 0xfb92, [0x2adb] = 0xfb93,
-  [0x2adc] = 0xfb94, [0x2add] = 0xfb95, [0x2ade] = 0xfb96, [0x2adf] = 0xfb97,
-  [0x2ae0] = 0xfb98, [0x2ae1] = 0xfb99, [0x2ae2] = 0xfb9a, [0x2ae3] = 0xfb9b,
-  [0x2ae4] = 0xfb9c, [0x2ae5] = 0xfb9d, [0x2ae6] = 0xfb9e, [0x2ae7] = 0xfb9f,
-  [0x2ae8] = 0xfba0, [0x2ae9] = 0xfba1, [0x2aea] = 0xfba2, [0x2aeb] = 0xfba3,
-  [0x2aec] = 0xfba4, [0x2aed] = 0xfba5, [0x2aee] = 0xfba6, [0x2aef] = 0xfba7,
-  [0x2af0] = 0xfba8, [0x2af1] = 0xfba9, [0x2af2] = 0xfbaa, [0x2af3] = 0xfbab,
-  [0x2af4] = 0xfbac, [0x2af5] = 0xfbad, [0x2af6] = 0xfbae, [0x2af7] = 0xfbaf,
-  [0x2af8] = 0xfbb0, [0x2af9] = 0xfbb1, [0x2afa] = 0xfbb2, [0x2afb] = 0xfbb3,
-  [0x2afc] = 0xfbb4, [0x2afd] = 0xfbb5, [0x2afe] = 0xfbb6, [0x2aff] = 0xfbb7,
-  [0x2b00] = 0xfbb8, [0x2b01] = 0xfbb9, [0x2b02] = 0xfbba, [0x2b03] = 0xfbbb,
-  [0x2b04] = 0xfbbc, [0x2b05] = 0xfbbd, [0x2b06] = 0xfbbe, [0x2b07] = 0xfbbf,
-  [0x2b08] = 0xfbc0, [0x2b09] = 0xfbc1, [0x2b0a] = 0xfbc2, [0x2b0b] = 0xfbc3,
-  [0x2b0c] = 0xfbc4, [0x2b0d] = 0xfbc5, [0x2b0e] = 0xfbc6, [0x2b0f] = 0xfbc7,
-  [0x2b10] = 0xfbc8, [0x2b11] = 0xfbc9, [0x2b12] = 0xfbca, [0x2b13] = 0xfbcb,
-  [0x2b14] = 0xfbcc, [0x2b15] = 0xfbcd, [0x2b16] = 0xfbce, [0x2b17] = 0xfbcf,
-  [0x2b18] = 0xfbd0, [0x2b19] = 0xfbd1, [0x2b1a] = 0xfbd2, [0x2b1b] = 0xfbd3,
-  [0x2b1c] = 0xfbd4, [0x2b1d] = 0xfbd5, [0x2b1e] = 0xfbd6, [0x2b1f] = 0xfbd7,
-  [0x2b20] = 0xfbd8, [0x2b21] = 0xfbd9, [0x2b22] = 0xfbda, [0x2b23] = 0xfbdb,
-  [0x2b24] = 0xfbdc, [0x2b25] = 0xfbdd, [0x2b26] = 0xfbde, [0x2b27] = 0xfbdf,
-  [0x2b28] = 0xfbe0, [0x2b29] = 0xfbe1, [0x2b2a] = 0xfbe2, [0x2b2b] = 0xfbe3,
-  [0x2b2c] = 0xfbe4, [0x2b2d] = 0xfbe5, [0x2b2e] = 0xfbe6, [0x2b2f] = 0xfbe7,
-  [0x2b30] = 0xfbe8, [0x2b31] = 0xfbe9, [0x2b32] = 0xfbea, [0x2b33] = 0xfbeb,
-  [0x2b34] = 0xfbec, [0x2b35] = 0xfbed, [0x2b36] = 0xfbee, [0x2b37] = 0xfbef,
-  [0x2b38] = 0xfbf0, [0x2b39] = 0xfbf1, [0x2b3a] = 0xfbf2, [0x2b3b] = 0xfbf3,
-  [0x2b3c] = 0xfbf4, [0x2b3d] = 0xfbf5, [0x2b3e] = 0xfbf6, [0x2b3f] = 0xfbf7,
-  [0x2b40] = 0xfbf8, [0x2b41] = 0xfbf9, [0x2b42] = 0xfbfa, [0x2b43] = 0xfbfb,
-  [0x2b44] = 0xfbfc, [0x2b45] = 0xfbfd, [0x2b46] = 0xfbfe, [0x2b47] = 0xfbff,
-  [0x2b48] = 0xfc00, [0x2b49] = 0xfc01, [0x2b4a] = 0xfc02, [0x2b4b] = 0xfc03,
-  [0x2b4c] = 0xfc04, [0x2b4d] = 0xfc05, [0x2b4e] = 0xfc06, [0x2b4f] = 0xfc07,
-  [0x2b50] = 0xfc08, [0x2b51] = 0xfc09, [0x2b52] = 0xfc0a, [0x2b53] = 0xfc0b,
-  [0x2b54] = 0xfc0c, [0x2b55] = 0xfc0d, [0x2b56] = 0xfc0e, [0x2b57] = 0xfc0f,
-  [0x2b58] = 0xfc10, [0x2b59] = 0xfc11, [0x2b5a] = 0xfc12, [0x2b5b] = 0xfc13,
-  [0x2b5c] = 0xfc14, [0x2b5d] = 0xfc15, [0x2b5e] = 0xfc16, [0x2b5f] = 0xfc17,
-  [0x2b60] = 0xfc18, [0x2b61] = 0xfc19, [0x2b62] = 0xfc1a, [0x2b63] = 0xfc1b,
-  [0x2b64] = 0xfc1c, [0x2b65] = 0xfc1d, [0x2b66] = 0xfc1e, [0x2b67] = 0xfc1f,
-  [0x2b68] = 0xfc20, [0x2b69] = 0xfc21, [0x2b6a] = 0xfc22, [0x2b6b] = 0xfc23,
-  [0x2b6c] = 0xfc24, [0x2b6d] = 0xfc25, [0x2b6e] = 0xfc26, [0x2b6f] = 0xfc27,
-  [0x2b70] = 0xfc28, [0x2b71] = 0xfc29, [0x2b72] = 0xfc2a, [0x2b73] = 0xfc2b,
-  [0x2b74] = 0xfc2c, [0x2b75] = 0xfc2d, [0x2b76] = 0xfc2e, [0x2b77] = 0xfc2f,
-  [0x2b78] = 0xfc30, [0x2b79] = 0xfc31, [0x2b7a] = 0xfc32, [0x2b7b] = 0xfc33,
-  [0x2b7c] = 0xfc34, [0x2b7d] = 0xfc35, [0x2b7e] = 0xfc36, [0x2b7f] = 0xfc37,
-  [0x2b80] = 0xfc38, [0x2b81] = 0xfc39, [0x2b82] = 0xfc3a, [0x2b83] = 0xfc3b,
-  [0x2b84] = 0xfc3c, [0x2b85] = 0xfc3d, [0x2b86] = 0xfc3e, [0x2b87] = 0xfc3f,
-  [0x2b88] = 0xfc40, [0x2b89] = 0xfc41, [0x2b8a] = 0xfc42, [0x2b8b] = 0xfc43,
-  [0x2b8c] = 0xfc44, [0x2b8d] = 0xfc45, [0x2b8e] = 0xfc46, [0x2b8f] = 0xfc47,
-  [0x2b90] = 0xfc48, [0x2b91] = 0xfc49, [0x2b92] = 0xfc4a, [0x2b93] = 0xfc4b,
-  [0x2b94] = 0xfc4c, [0x2b95] = 0xfc4d, [0x2b96] = 0xfc4e, [0x2b97] = 0xfc4f,
-  [0x2b98] = 0xfc50, [0x2b99] = 0xfc51, [0x2b9a] = 0xfc52, [0x2b9b] = 0xfc53,
-  [0x2b9c] = 0xfc54, [0x2b9d] = 0xfc55, [0x2b9e] = 0xfc56, [0x2b9f] = 0xfc57,
-  [0x2ba0] = 0xfc58, [0x2ba1] = 0xfc59, [0x2ba2] = 0xfc5a, [0x2ba3] = 0xfc5b,
-  [0x2ba4] = 0xfc5c, [0x2ba5] = 0xfc5d, [0x2ba6] = 0xfc5e, [0x2ba7] = 0xfc5f,
-  [0x2ba8] = 0xfc60, [0x2ba9] = 0xfc61, [0x2baa] = 0xfc62, [0x2bab] = 0xfc63,
-  [0x2bac] = 0xfc64, [0x2bad] = 0xfc65, [0x2bae] = 0xfc66, [0x2baf] = 0xfc67,
-  [0x2bb0] = 0xfc68, [0x2bb1] = 0xfc69, [0x2bb2] = 0xfc6a, [0x2bb3] = 0xfc6b,
-  [0x2bb4] = 0xfc6c, [0x2bb5] = 0xfc6d, [0x2bb6] = 0xfc6e, [0x2bb7] = 0xfc6f,
-  [0x2bb8] = 0xfc70, [0x2bb9] = 0xfc71, [0x2bba] = 0xfc72, [0x2bbb] = 0xfc73,
-  [0x2bbc] = 0xfc74, [0x2bbd] = 0xfc75, [0x2bbe] = 0xfc76, [0x2bbf] = 0xfc77,
-  [0x2bc0] = 0xfc78, [0x2bc1] = 0xfc79, [0x2bc2] = 0xfc7a, [0x2bc3] = 0xfc7b,
-  [0x2bc4] = 0xfc7c, [0x2bc5] = 0xfc7d, [0x2bc6] = 0xfc7e, [0x2bc7] = 0xfc7f,
-  [0x2bc8] = 0xfc80, [0x2bc9] = 0xfc81, [0x2bca] = 0xfc82, [0x2bcb] = 0xfc83,
-  [0x2bcc] = 0xfc84, [0x2bcd] = 0xfc85, [0x2bce] = 0xfc86, [0x2bcf] = 0xfc87,
-  [0x2bd0] = 0xfc88, [0x2bd1] = 0xfc89, [0x2bd2] = 0xfc8a, [0x2bd3] = 0xfc8b,
-  [0x2bd4] = 0xfc8c, [0x2bd5] = 0xfc8d, [0x2bd6] = 0xfc8e, [0x2bd7] = 0xfc8f,
-  [0x2bd8] = 0xfc90, [0x2bd9] = 0xfc91, [0x2bda] = 0xfc92, [0x2bdb] = 0xfc93,
-  [0x2bdc] = 0xfc94, [0x2bdd] = 0xfc95, [0x2bde] = 0xfc96, [0x2bdf] = 0xfc97,
-  [0x2be0] = 0xfc98, [0x2be1] = 0xfc99, [0x2be2] = 0xfc9a, [0x2be3] = 0xfc9b,
-  [0x2be4] = 0xfc9c, [0x2be5] = 0xfc9d, [0x2be6] = 0xfc9e, [0x2be7] = 0xfc9f,
-  [0x2be8] = 0xfca0, [0x2be9] = 0xfca1, [0x2bea] = 0xfca2, [0x2beb] = 0xfca3,
-  [0x2bec] = 0xfca4, [0x2bed] = 0xfca5, [0x2bee] = 0xfca6, [0x2bef] = 0xfca7,
-  [0x2bf0] = 0xfca8, [0x2bf1] = 0xfca9, [0x2bf2] = 0xfcaa, [0x2bf3] = 0xfcab,
-  [0x2bf4] = 0xfcac, [0x2bf5] = 0xfcad, [0x2bf6] = 0xfcae, [0x2bf7] = 0xfcaf,
-  [0x2bf8] = 0xfcb0, [0x2bf9] = 0xfcb1, [0x2bfa] = 0xfcb2, [0x2bfb] = 0xfcb3,
-  [0x2bfc] = 0xfcb4, [0x2bfd] = 0xfcb5, [0x2bfe] = 0xfcb6, [0x2bff] = 0xfcb7,
-  [0x2c00] = 0xfcb8, [0x2c01] = 0xfcb9, [0x2c02] = 0xfcba, [0x2c03] = 0xfcbb,
-  [0x2c04] = 0xfcbc, [0x2c05] = 0xfcbd, [0x2c06] = 0xfcbe, [0x2c07] = 0xfcbf,
-  [0x2c08] = 0xfcc0, [0x2c09] = 0xfcc1, [0x2c0a] = 0xfcc2, [0x2c0b] = 0xfcc3,
-  [0x2c0c] = 0xfcc4, [0x2c0d] = 0xfcc5, [0x2c0e] = 0xfcc6, [0x2c0f] = 0xfcc7,
-  [0x2c10] = 0xfcc8, [0x2c11] = 0xfcc9, [0x2c12] = 0xfcca, [0x2c13] = 0xfccb,
-  [0x2c14] = 0xfccc, [0x2c15] = 0xfccd, [0x2c16] = 0xfcce, [0x2c17] = 0xfccf,
-  [0x2c18] = 0xfcd0, [0x2c19] = 0xfcd1, [0x2c1a] = 0xfcd2, [0x2c1b] = 0xfcd3,
-  [0x2c1c] = 0xfcd4, [0x2c1d] = 0xfcd5, [0x2c1e] = 0xfcd6, [0x2c1f] = 0xfcd7,
-  [0x2c20] = 0xfcd8, [0x2c21] = 0xfcd9, [0x2c22] = 0xfcda, [0x2c23] = 0xfcdb,
-  [0x2c24] = 0xfcdc, [0x2c25] = 0xfcdd, [0x2c26] = 0xfcde, [0x2c27] = 0xfcdf,
-  [0x2c28] = 0xfce0, [0x2c29] = 0xfce1, [0x2c2a] = 0xfce2, [0x2c2b] = 0xfce3,
-  [0x2c2c] = 0xfce4, [0x2c2d] = 0xfce5, [0x2c2e] = 0xfce6, [0x2c2f] = 0xfce7,
-  [0x2c30] = 0xfce8, [0x2c31] = 0xfce9, [0x2c32] = 0xfcea, [0x2c33] = 0xfceb,
-  [0x2c34] = 0xfcec, [0x2c35] = 0xfced, [0x2c36] = 0xfcee, [0x2c37] = 0xfcef,
-  [0x2c38] = 0xfcf0, [0x2c39] = 0xfcf1, [0x2c3a] = 0xfcf2, [0x2c3b] = 0xfcf3,
-  [0x2c3c] = 0xfcf4, [0x2c3d] = 0xfcf5, [0x2c3e] = 0xfcf6, [0x2c3f] = 0xfcf7,
-  [0x2c40] = 0xfcf8, [0x2c41] = 0xfcf9, [0x2c42] = 0xfcfa, [0x2c43] = 0xfcfb,
-  [0x2c44] = 0xfcfc, [0x2c45] = 0xfcfd, [0x2c46] = 0xfcfe, [0x2c47] = 0xfcff,
-  [0x2c48] = 0xfd00, [0x2c49] = 0xfd01, [0x2c4a] = 0xfd02, [0x2c4b] = 0xfd03,
-  [0x2c4c] = 0xfd04, [0x2c4d] = 0xfd05, [0x2c4e] = 0xfd06, [0x2c4f] = 0xfd07,
-  [0x2c50] = 0xfd08, [0x2c51] = 0xfd09, [0x2c52] = 0xfd0a, [0x2c53] = 0xfd0b,
-  [0x2c54] = 0xfd0c, [0x2c55] = 0xfd0d, [0x2c56] = 0xfd0e, [0x2c57] = 0xfd0f,
-  [0x2c58] = 0xfd10, [0x2c59] = 0xfd11, [0x2c5a] = 0xfd12, [0x2c5b] = 0xfd13,
-  [0x2c5c] = 0xfd14, [0x2c5d] = 0xfd15, [0x2c5e] = 0xfd16, [0x2c5f] = 0xfd17,
-  [0x2c60] = 0xfd18, [0x2c61] = 0xfd19, [0x2c62] = 0xfd1a, [0x2c63] = 0xfd1b,
-  [0x2c64] = 0xfd1c, [0x2c65] = 0xfd1d, [0x2c66] = 0xfd1e, [0x2c67] = 0xfd1f,
-  [0x2c68] = 0xfd20, [0x2c69] = 0xfd21, [0x2c6a] = 0xfd22, [0x2c6b] = 0xfd23,
-  [0x2c6c] = 0xfd24, [0x2c6d] = 0xfd25, [0x2c6e] = 0xfd26, [0x2c6f] = 0xfd27,
-  [0x2c70] = 0xfd28, [0x2c71] = 0xfd29, [0x2c72] = 0xfd2a, [0x2c73] = 0xfd2b,
-  [0x2c74] = 0xfd2c, [0x2c75] = 0xfd2d, [0x2c76] = 0xfd2e, [0x2c77] = 0xfd2f,
-  [0x2c78] = 0xfd30, [0x2c79] = 0xfd31, [0x2c7a] = 0xfd32, [0x2c7b] = 0xfd33,
-  [0x2c7c] = 0xfd34, [0x2c7d] = 0xfd35, [0x2c7e] = 0xfd36, [0x2c7f] = 0xfd37,
-  [0x2c80] = 0xfd38, [0x2c81] = 0xfd39, [0x2c82] = 0xfd3a, [0x2c83] = 0xfd3b,
-  [0x2c84] = 0xfd3c, [0x2c85] = 0xfd3d, [0x2c86] = 0xfd3e, [0x2c87] = 0xfd3f,
-  [0x2c88] = 0xfd40, [0x2c89] = 0xfd41, [0x2c8a] = 0xfd42, [0x2c8b] = 0xfd43,
-  [0x2c8c] = 0xfd44, [0x2c8d] = 0xfd45, [0x2c8e] = 0xfd46, [0x2c8f] = 0xfd47,
-  [0x2c90] = 0xfd48, [0x2c91] = 0xfd49, [0x2c92] = 0xfd4a, [0x2c93] = 0xfd4b,
-  [0x2c94] = 0xfd4c, [0x2c95] = 0xfd4d, [0x2c96] = 0xfd4e, [0x2c97] = 0xfd4f,
-  [0x2c98] = 0xfd50, [0x2c99] = 0xfd51, [0x2c9a] = 0xfd52, [0x2c9b] = 0xfd53,
-  [0x2c9c] = 0xfd54, [0x2c9d] = 0xfd55, [0x2c9e] = 0xfd56, [0x2c9f] = 0xfd57,
-  [0x2ca0] = 0xfd58, [0x2ca1] = 0xfd59, [0x2ca2] = 0xfd5a, [0x2ca3] = 0xfd5b,
-  [0x2ca4] = 0xfd5c, [0x2ca5] = 0xfd5d, [0x2ca6] = 0xfd5e, [0x2ca7] = 0xfd5f,
-  [0x2ca8] = 0xfd60, [0x2ca9] = 0xfd61, [0x2caa] = 0xfd62, [0x2cab] = 0xfd63,
-  [0x2cac] = 0xfd64, [0x2cad] = 0xfd65, [0x2cae] = 0xfd66, [0x2caf] = 0xfd67,
-  [0x2cb0] = 0xfd68, [0x2cb1] = 0xfd69, [0x2cb2] = 0xfd6a, [0x2cb3] = 0xfd6b,
-  [0x2cb4] = 0xfd6c, [0x2cb5] = 0xfd6d, [0x2cb6] = 0xfd6e, [0x2cb7] = 0xfd6f,
-  [0x2cb8] = 0xfd70, [0x2cb9] = 0xfd71, [0x2cba] = 0xfd72, [0x2cbb] = 0xfd73,
-  [0x2cbc] = 0xfd74, [0x2cbd] = 0xfd75, [0x2cbe] = 0xfd76, [0x2cbf] = 0xfd77,
-  [0x2cc0] = 0xfd78, [0x2cc1] = 0xfd79, [0x2cc2] = 0xfd7a, [0x2cc3] = 0xfd7b,
-  [0x2cc4] = 0xfd7c, [0x2cc5] = 0xfd7d, [0x2cc6] = 0xfd7e, [0x2cc7] = 0xfd7f,
-  [0x2cc8] = 0xfd80, [0x2cc9] = 0xfd81, [0x2cca] = 0xfd82, [0x2ccb] = 0xfd83,
-  [0x2ccc] = 0xfd84, [0x2ccd] = 0xfd85, [0x2cce] = 0xfd86, [0x2ccf] = 0xfd87,
-  [0x2cd0] = 0xfd88, [0x2cd1] = 0xfd89, [0x2cd2] = 0xfd8a, [0x2cd3] = 0xfd8b,
-  [0x2cd4] = 0xfd8c, [0x2cd5] = 0xfd8d, [0x2cd6] = 0xfd8e, [0x2cd7] = 0xfd8f,
-  [0x2cd8] = 0xfd90, [0x2cd9] = 0xfd91, [0x2cda] = 0xfd92, [0x2cdb] = 0xfd93,
-  [0x2cdc] = 0xfd94, [0x2cdd] = 0xfd95, [0x2cde] = 0xfd96, [0x2cdf] = 0xfd97,
-  [0x2ce0] = 0xfd98, [0x2ce1] = 0xfd99, [0x2ce2] = 0xfd9a, [0x2ce3] = 0xfd9b,
-  [0x2ce4] = 0xfd9c, [0x2ce5] = 0xfd9d, [0x2ce6] = 0xfd9e, [0x2ce7] = 0xfd9f,
-  [0x2ce8] = 0xfda0, [0x2ce9] = 0xfda1, [0x2cea] = 0xfda2, [0x2ceb] = 0xfda3,
-  [0x2cec] = 0xfda4, [0x2ced] = 0xfda5, [0x2cee] = 0xfda6, [0x2cef] = 0xfda7,
-  [0x2cf0] = 0xfda8, [0x2cf1] = 0xfda9, [0x2cf2] = 0xfdaa, [0x2cf3] = 0xfdab,
-  [0x2cf4] = 0xfdac, [0x2cf5] = 0xfdad, [0x2cf6] = 0xfdae, [0x2cf7] = 0xfdaf,
-  [0x2cf8] = 0xfdb0, [0x2cf9] = 0xfdb1, [0x2cfa] = 0xfdb2, [0x2cfb] = 0xfdb3,
-  [0x2cfc] = 0xfdb4, [0x2cfd] = 0xfdb5, [0x2cfe] = 0xfdb6, [0x2cff] = 0xfdb7,
-  [0x2d00] = 0xfdb8, [0x2d01] = 0xfdb9, [0x2d02] = 0xfdba, [0x2d03] = 0xfdbb,
-  [0x2d04] = 0xfdbc, [0x2d05] = 0xfdbd, [0x2d06] = 0xfdbe, [0x2d07] = 0xfdbf,
-  [0x2d08] = 0xfdc0, [0x2d09] = 0xfdc1, [0x2d0a] = 0xfdc2, [0x2d0b] = 0xfdc3,
-  [0x2d0c] = 0xfdc4, [0x2d0d] = 0xfdc5, [0x2d0e] = 0xfdc6, [0x2d0f] = 0xfdc7,
-  [0x2d10] = 0xfdc8, [0x2d11] = 0xfdc9, [0x2d12] = 0xfdca, [0x2d13] = 0xfdcb,
-  [0x2d14] = 0xfdcc, [0x2d15] = 0xfdcd, [0x2d16] = 0xfdce, [0x2d17] = 0xfdcf,
-  [0x2d18] = 0xfdd0, [0x2d19] = 0xfdd1, [0x2d1a] = 0xfdd2, [0x2d1b] = 0xfdd3,
-  [0x2d1c] = 0xfdd4, [0x2d1d] = 0xfdd5, [0x2d1e] = 0xfdd6, [0x2d1f] = 0xfdd7,
-  [0x2d20] = 0xfdd8, [0x2d21] = 0xfdd9, [0x2d22] = 0xfdda, [0x2d23] = 0xfddb,
-  [0x2d24] = 0xfddc, [0x2d25] = 0xfddd, [0x2d26] = 0xfdde, [0x2d27] = 0xfddf,
-  [0x2d28] = 0xfde0, [0x2d29] = 0xfde1, [0x2d2a] = 0xfde2, [0x2d2b] = 0xfde3,
-  [0x2d2c] = 0xfde4, [0x2d2d] = 0xfde5, [0x2d2e] = 0xfde6, [0x2d2f] = 0xfde7,
-  [0x2d30] = 0xfde8, [0x2d31] = 0xfde9, [0x2d32] = 0xfdea, [0x2d33] = 0xfdeb,
-  [0x2d34] = 0xfdec, [0x2d35] = 0xfded, [0x2d36] = 0xfdee, [0x2d37] = 0xfdef,
-  [0x2d38] = 0xfdf0, [0x2d39] = 0xfdf1, [0x2d3a] = 0xfdf2, [0x2d3b] = 0xfdf3,
-  [0x2d3c] = 0xfdf4, [0x2d3d] = 0xfdf5, [0x2d3e] = 0xfdf6, [0x2d3f] = 0xfdf7,
-  [0x2d40] = 0xfdf8, [0x2d41] = 0xfdf9, [0x2d42] = 0xfdfa, [0x2d43] = 0xfdfb,
-  [0x2d44] = 0xfdfc, [0x2d45] = 0xfdfd, [0x2d46] = 0xfdfe, [0x2d47] = 0xfdff,
-  [0x2d48] = 0xfe00, [0x2d49] = 0xfe01, [0x2d4a] = 0xfe02, [0x2d4b] = 0xfe03,
-  [0x2d4c] = 0xfe04, [0x2d4d] = 0xfe05, [0x2d4e] = 0xfe06, [0x2d4f] = 0xfe07,
-  [0x2d50] = 0xfe08, [0x2d51] = 0xfe09, [0x2d52] = 0xfe0a, [0x2d53] = 0xfe0b,
-  [0x2d54] = 0xfe0c, [0x2d55] = 0xfe0d, [0x2d56] = 0xfe0e, [0x2d57] = 0xfe0f,
-  [0x2d58] = 0xfe10, [0x2d59] = 0xfe11, [0x2d5a] = 0xfe12, [0x2d5b] = 0xfe13,
-  [0x2d5c] = 0xfe14, [0x2d5d] = 0xfe15, [0x2d5e] = 0xfe16, [0x2d5f] = 0xfe17,
-  [0x2d60] = 0xfe18, [0x2d61] = 0xfe19, [0x2d62] = 0xfe1a, [0x2d63] = 0xfe1b,
-  [0x2d64] = 0xfe1c, [0x2d65] = 0xfe1d, [0x2d66] = 0xfe1e, [0x2d67] = 0xfe1f,
-  [0x2d68] = 0xfe20, [0x2d69] = 0xfe21, [0x2d6a] = 0xfe22, [0x2d6b] = 0xfe23,
-  [0x2d6c] = 0xfe24, [0x2d6d] = 0xfe25, [0x2d6e] = 0xfe26, [0x2d6f] = 0xfe27,
-  [0x2d70] = 0xfe28, [0x2d71] = 0xfe29, [0x2d72] = 0xfe2a, [0x2d73] = 0xfe2b,
-  [0x2d74] = 0xfe2c, [0x2d75] = 0xfe2d, [0x2d76] = 0xfe2e, [0x2d77] = 0xfe2f,
-  [0x2d78] = 0xfe32, [0x2d79] = 0xfe45, [0x2d7a] = 0xfe46, [0x2d7b] = 0xfe47,
-  [0x2d7c] = 0xfe48, [0x2d7d] = 0xfe53, [0x2d7e] = 0xfe58, [0x2d7f] = 0xfe67,
-  [0x2d80] = 0xfe6c, [0x2d81] = 0xfe6d, [0x2d82] = 0xfe6e, [0x2d83] = 0xfe6f,
-  [0x2d84] = 0xfe70, [0x2d85] = 0xfe71, [0x2d86] = 0xfe72, [0x2d87] = 0xfe73,
-  [0x2d88] = 0xfe74, [0x2d89] = 0xfe75, [0x2d8a] = 0xfe76, [0x2d8b] = 0xfe77,
-  [0x2d8c] = 0xfe78, [0x2d8d] = 0xfe79, [0x2d8e] = 0xfe7a, [0x2d8f] = 0xfe7b,
-  [0x2d90] = 0xfe7c, [0x2d91] = 0xfe7d, [0x2d92] = 0xfe7e, [0x2d93] = 0xfe7f,
-  [0x2d94] = 0xfe80, [0x2d95] = 0xfe81, [0x2d96] = 0xfe82, [0x2d97] = 0xfe83,
-  [0x2d98] = 0xfe84, [0x2d99] = 0xfe85, [0x2d9a] = 0xfe86, [0x2d9b] = 0xfe87,
-  [0x2d9c] = 0xfe88, [0x2d9d] = 0xfe89, [0x2d9e] = 0xfe8a, [0x2d9f] = 0xfe8b,
-  [0x2da0] = 0xfe8c, [0x2da1] = 0xfe8d, [0x2da2] = 0xfe8e, [0x2da3] = 0xfe8f,
-  [0x2da4] = 0xfe90, [0x2da5] = 0xfe91, [0x2da6] = 0xfe92, [0x2da7] = 0xfe93,
-  [0x2da8] = 0xfe94, [0x2da9] = 0xfe95, [0x2daa] = 0xfe96, [0x2dab] = 0xfe97,
-  [0x2dac] = 0xfe98, [0x2dad] = 0xfe99, [0x2dae] = 0xfe9a, [0x2daf] = 0xfe9b,
-  [0x2db0] = 0xfe9c, [0x2db1] = 0xfe9d, [0x2db2] = 0xfe9e, [0x2db3] = 0xfe9f,
-  [0x2db4] = 0xfea0, [0x2db5] = 0xfea1, [0x2db6] = 0xfea2, [0x2db7] = 0xfea3,
-  [0x2db8] = 0xfea4, [0x2db9] = 0xfea5, [0x2dba] = 0xfea6, [0x2dbb] = 0xfea7,
-  [0x2dbc] = 0xfea8, [0x2dbd] = 0xfea9, [0x2dbe] = 0xfeaa, [0x2dbf] = 0xfeab,
-  [0x2dc0] = 0xfeac, [0x2dc1] = 0xfead, [0x2dc2] = 0xfeae, [0x2dc3] = 0xfeaf,
-  [0x2dc4] = 0xfeb0, [0x2dc5] = 0xfeb1, [0x2dc6] = 0xfeb2, [0x2dc7] = 0xfeb3,
-  [0x2dc8] = 0xfeb4, [0x2dc9] = 0xfeb5, [0x2dca] = 0xfeb6, [0x2dcb] = 0xfeb7,
-  [0x2dcc] = 0xfeb8, [0x2dcd] = 0xfeb9, [0x2dce] = 0xfeba, [0x2dcf] = 0xfebb,
-  [0x2dd0] = 0xfebc, [0x2dd1] = 0xfebd, [0x2dd2] = 0xfebe, [0x2dd3] = 0xfebf,
-  [0x2dd4] = 0xfec0, [0x2dd5] = 0xfec1, [0x2dd6] = 0xfec2, [0x2dd7] = 0xfec3,
-  [0x2dd8] = 0xfec4, [0x2dd9] = 0xfec5, [0x2dda] = 0xfec6, [0x2ddb] = 0xfec7,
-  [0x2ddc] = 0xfec8, [0x2ddd] = 0xfec9, [0x2dde] = 0xfeca, [0x2ddf] = 0xfecb,
-  [0x2de0] = 0xfecc, [0x2de1] = 0xfecd, [0x2de2] = 0xfece, [0x2de3] = 0xfecf,
-  [0x2de4] = 0xfed0, [0x2de5] = 0xfed1, [0x2de6] = 0xfed2, [0x2de7] = 0xfed3,
-  [0x2de8] = 0xfed4, [0x2de9] = 0xfed5, [0x2dea] = 0xfed6, [0x2deb] = 0xfed7,
-  [0x2dec] = 0xfed8, [0x2ded] = 0xfed9, [0x2dee] = 0xfeda, [0x2def] = 0xfedb,
-  [0x2df0] = 0xfedc, [0x2df1] = 0xfedd, [0x2df2] = 0xfede, [0x2df3] = 0xfedf,
-  [0x2df4] = 0xfee0, [0x2df5] = 0xfee1, [0x2df6] = 0xfee2, [0x2df7] = 0xfee3,
-  [0x2df8] = 0xfee4, [0x2df9] = 0xfee5, [0x2dfa] = 0xfee6, [0x2dfb] = 0xfee7,
-  [0x2dfc] = 0xfee8, [0x2dfd] = 0xfee9, [0x2dfe] = 0xfeea, [0x2dff] = 0xfeeb,
-  [0x2e00] = 0xfeec, [0x2e01] = 0xfeed, [0x2e02] = 0xfeee, [0x2e03] = 0xfeef,
-  [0x2e04] = 0xfef0, [0x2e05] = 0xfef1, [0x2e06] = 0xfef2, [0x2e07] = 0xfef3,
-  [0x2e08] = 0xfef4, [0x2e09] = 0xfef5, [0x2e0a] = 0xfef6, [0x2e0b] = 0xfef7,
-  [0x2e0c] = 0xfef8, [0x2e0d] = 0xfef9, [0x2e0e] = 0xfefa, [0x2e0f] = 0xfefb,
-  [0x2e10] = 0xfefc, [0x2e11] = 0xfefd, [0x2e12] = 0xfefe, [0x2e13] = 0xfeff,
-  [0x2e14] = 0xff00, [0x2e15] = 0xff5f, [0x2e16] = 0xff60, [0x2e17] = 0xff61,
-  [0x2e18] = 0xff62, [0x2e19] = 0xff63, [0x2e1a] = 0xff64, [0x2e1b] = 0xff65,
-  [0x2e1c] = 0xff66, [0x2e1d] = 0xff67, [0x2e1e] = 0xff68, [0x2e1f] = 0xff69,
-  [0x2e20] = 0xff6a, [0x2e21] = 0xff6b, [0x2e22] = 0xff6c, [0x2e23] = 0xff6d,
-  [0x2e24] = 0xff6e, [0x2e25] = 0xff6f, [0x2e26] = 0xff70, [0x2e27] = 0xff71,
-  [0x2e28] = 0xff72, [0x2e29] = 0xff73, [0x2e2a] = 0xff74, [0x2e2b] = 0xff75,
-  [0x2e2c] = 0xff76, [0x2e2d] = 0xff77, [0x2e2e] = 0xff78, [0x2e2f] = 0xff79,
-  [0x2e30] = 0xff7a, [0x2e31] = 0xff7b, [0x2e32] = 0xff7c, [0x2e33] = 0xff7d,
-  [0x2e34] = 0xff7e, [0x2e35] = 0xff7f, [0x2e36] = 0xff80, [0x2e37] = 0xff81,
-  [0x2e38] = 0xff82, [0x2e39] = 0xff83, [0x2e3a] = 0xff84, [0x2e3b] = 0xff85,
-  [0x2e3c] = 0xff86, [0x2e3d] = 0xff87, [0x2e3e] = 0xff88, [0x2e3f] = 0xff89,
-  [0x2e40] = 0xff8a, [0x2e41] = 0xff8b, [0x2e42] = 0xff8c, [0x2e43] = 0xff8d,
-  [0x2e44] = 0xff8e, [0x2e45] = 0xff8f, [0x2e46] = 0xff90, [0x2e47] = 0xff91,
-  [0x2e48] = 0xff92, [0x2e49] = 0xff93, [0x2e4a] = 0xff94, [0x2e4b] = 0xff95,
-  [0x2e4c] = 0xff96, [0x2e4d] = 0xff97, [0x2e4e] = 0xff98, [0x2e4f] = 0xff99,
-  [0x2e50] = 0xff9a, [0x2e51] = 0xff9b, [0x2e52] = 0xff9c, [0x2e53] = 0xff9d,
-  [0x2e54] = 0xff9e, [0x2e55] = 0xff9f, [0x2e56] = 0xffa0, [0x2e57] = 0xffa1,
-  [0x2e58] = 0xffa2, [0x2e59] = 0xffa3, [0x2e5a] = 0xffa4, [0x2e5b] = 0xffa5,
-  [0x2e5c] = 0xffa6, [0x2e5d] = 0xffa7, [0x2e5e] = 0xffa8, [0x2e5f] = 0xffa9,
-  [0x2e60] = 0xffaa, [0x2e61] = 0xffab, [0x2e62] = 0xffac, [0x2e63] = 0xffad,
-  [0x2e64] = 0xffae, [0x2e65] = 0xffaf, [0x2e66] = 0xffb0, [0x2e67] = 0xffb1,
-  [0x2e68] = 0xffb2, [0x2e69] = 0xffb3, [0x2e6a] = 0xffb4, [0x2e6b] = 0xffb5,
-  [0x2e6c] = 0xffb6, [0x2e6d] = 0xffb7, [0x2e6e] = 0xffb8, [0x2e6f] = 0xffb9,
-  [0x2e70] = 0xffba, [0x2e71] = 0xffbb, [0x2e72] = 0xffbc, [0x2e73] = 0xffbd,
-  [0x2e74] = 0xffbe, [0x2e75] = 0xffbf, [0x2e76] = 0xffc0, [0x2e77] = 0xffc1,
-  [0x2e78] = 0xffc2, [0x2e79] = 0xffc3, [0x2e7a] = 0xffc4, [0x2e7b] = 0xffc5,
-  [0x2e7c] = 0xffc6, [0x2e7d] = 0xffc7, [0x2e7e] = 0xffc8, [0x2e7f] = 0xffc9,
-  [0x2e80] = 0xffca, [0x2e81] = 0xffcb, [0x2e82] = 0xffcc, [0x2e83] = 0xffcd,
-  [0x2e84] = 0xffce, [0x2e85] = 0xffcf, [0x2e86] = 0xffd0, [0x2e87] = 0xffd1,
-  [0x2e88] = 0xffd2, [0x2e89] = 0xffd3, [0x2e8a] = 0xffd4, [0x2e8b] = 0xffd5,
-  [0x2e8c] = 0xffd6, [0x2e8d] = 0xffd7, [0x2e8e] = 0xffd8, [0x2e8f] = 0xffd9,
-  [0x2e90] = 0xffda, [0x2e91] = 0xffdb, [0x2e92] = 0xffdc, [0x2e93] = 0xffdd,
-  [0x2e94] = 0xffde, [0x2e95] = 0xffdf,
+  [0x2838] = 0x9fa6, [0x2839] = 0x9fa7, [0x283a] = 0x9fa8, [0x283b] = 0x9fa9,
+  [0x283c] = 0x9faa, [0x283d] = 0x9fab, [0x283e] = 0x9fac, [0x283f] = 0x9fad,
+  [0x2840] = 0x9fae, [0x2841] = 0x9faf, [0x2842] = 0x9fb0, [0x2843] = 0x9fb1,
+  [0x2844] = 0x9fb2, [0x2845] = 0x9fb3, [0x284e] = 0xe76c, [0x284f] = 0xe7c8,
+  [0x2850] = 0xe7e7, [0x2851] = 0xe7e8, [0x2852] = 0xe7e9, [0x2853] = 0xe7ea,
+  [0x2854] = 0xe7eb, [0x2855] = 0xe7ec, [0x2856] = 0xe7ed, [0x2857] = 0xe7ee,
+  [0x2858] = 0xe7ef, [0x2859] = 0xe7f0, [0x285a] = 0xe7f1, [0x285b] = 0xe7f2,
+  [0x285c] = 0xe7f3, [0x285d] = 0xe815, [0x285e] = 0xe819, [0x285f] = 0xe81a,
+  [0x2860] = 0xe81b, [0x2861] = 0xe81c, [0x2862] = 0xe81d, [0x2863] = 0xe81f,
+  [0x2864] = 0xe820, [0x2865] = 0xe821, [0x2866] = 0xe822, [0x2867] = 0xe823,
+  [0x2868] = 0xe824, [0x2869] = 0xe825, [0x286a] = 0xe827, [0x286b] = 0xe828,
+  [0x286c] = 0xe829, [0x286d] = 0xe82a, [0x286e] = 0xe82d, [0x286f] = 0xe82e,
+  [0x2870] = 0xe82f, [0x2871] = 0xe830, [0x2872] = 0xe833, [0x2873] = 0xe834,
+  [0x2874] = 0xe835, [0x2875] = 0xe836, [0x2876] = 0xe837, [0x2877] = 0xe838,
+  [0x2878] = 0xe839, [0x2879] = 0xe83a, [0x287a] = 0xe83c, [0x287b] = 0xe83d,
+  [0x287c] = 0xe83e, [0x287d] = 0xe83f, [0x287e] = 0xe840, [0x287f] = 0xe841,
+  [0x2880] = 0xe842, [0x2881] = 0xe844, [0x2882] = 0xe845, [0x2883] = 0xe846,
+  [0x2884] = 0xe847, [0x2885] = 0xe848, [0x2886] = 0xe849, [0x2887] = 0xe84a,
+  [0x2888] = 0xe84b, [0x2889] = 0xe84c, [0x288a] = 0xe84d, [0x288b] = 0xe84e,
+  [0x288c] = 0xe84f, [0x288d] = 0xe850, [0x288e] = 0xe851, [0x288f] = 0xe852,
+  [0x2890] = 0xe853, [0x2891] = 0xe856, [0x2892] = 0xe857, [0x2893] = 0xe858,
+  [0x2894] = 0xe859, [0x2895] = 0xe85a, [0x2896] = 0xe85b, [0x2897] = 0xe85c,
+  [0x2898] = 0xe85d, [0x2899] = 0xe85e, [0x289a] = 0xe85f, [0x289b] = 0xe860,
+  [0x289c] = 0xe861, [0x289d] = 0xe862, [0x289e] = 0xe863, [0x289f] = 0xf92d,
+  [0x28a0] = 0xf92e, [0x28a1] = 0xf92f, [0x28a2] = 0xf930, [0x28a3] = 0xf931,
+  [0x28a4] = 0xf932, [0x28a5] = 0xf933, [0x28a6] = 0xf934, [0x28a7] = 0xf935,
+  [0x28a8] = 0xf936, [0x28a9] = 0xf937, [0x28aa] = 0xf938, [0x28ab] = 0xf939,
+  [0x28ac] = 0xf93a, [0x28ad] = 0xf93b, [0x28ae] = 0xf93c, [0x28af] = 0xf93d,
+  [0x28b0] = 0xf93e, [0x28b1] = 0xf93f, [0x28b2] = 0xf940, [0x28b3] = 0xf941,
+  [0x28b4] = 0xf942, [0x28b5] = 0xf943, [0x28b6] = 0xf944, [0x28b7] = 0xf945,
+  [0x28b8] = 0xf946, [0x28b9] = 0xf947, [0x28ba] = 0xf948, [0x28bb] = 0xf949,
+  [0x28bc] = 0xf94a, [0x28bd] = 0xf94b, [0x28be] = 0xf94c, [0x28bf] = 0xf94d,
+  [0x28c0] = 0xf94e, [0x28c1] = 0xf94f, [0x28c2] = 0xf950, [0x28c3] = 0xf951,
+  [0x28c4] = 0xf952, [0x28c5] = 0xf953, [0x28c6] = 0xf954, [0x28c7] = 0xf955,
+  [0x28c8] = 0xf956, [0x28c9] = 0xf957, [0x28ca] = 0xf958, [0x28cb] = 0xf959,
+  [0x28cc] = 0xf95a, [0x28cd] = 0xf95b, [0x28ce] = 0xf95c, [0x28cf] = 0xf95d,
+  [0x28d0] = 0xf95e, [0x28d1] = 0xf95f, [0x28d2] = 0xf960, [0x28d3] = 0xf961,
+  [0x28d4] = 0xf962, [0x28d5] = 0xf963, [0x28d6] = 0xf964, [0x28d7] = 0xf965,
+  [0x28d8] = 0xf966, [0x28d9] = 0xf967, [0x28da] = 0xf968, [0x28db] = 0xf969,
+  [0x28dc] = 0xf96a, [0x28dd] = 0xf96b, [0x28de] = 0xf96c, [0x28df] = 0xf96d,
+  [0x28e0] = 0xf96e, [0x28e1] = 0xf96f, [0x28e2] = 0xf970, [0x28e3] = 0xf971,
+  [0x28e4] = 0xf972, [0x28e5] = 0xf973, [0x28e6] = 0xf974, [0x28e7] = 0xf975,
+  [0x28e8] = 0xf976, [0x28e9] = 0xf977, [0x28ea] = 0xf978, [0x28eb] = 0xf97a,
+  [0x28ec] = 0xf97b, [0x28ed] = 0xf97c, [0x28ee] = 0xf97d, [0x28ef] = 0xf97e,
+  [0x28f0] = 0xf97f, [0x28f1] = 0xf980, [0x28f2] = 0xf981, [0x28f3] = 0xf982,
+  [0x28f4] = 0xf983, [0x28f5] = 0xf984, [0x28f6] = 0xf985, [0x28f7] = 0xf986,
+  [0x28f8] = 0xf987, [0x28f9] = 0xf988, [0x28fa] = 0xf989, [0x28fb] = 0xf98a,
+  [0x28fc] = 0xf98b, [0x28fd] = 0xf98c, [0x28fe] = 0xf98d, [0x28ff] = 0xf98e,
+  [0x2900] = 0xf98f, [0x2901] = 0xf990, [0x2902] = 0xf991, [0x2903] = 0xf992,
+  [0x2904] = 0xf993, [0x2905] = 0xf994, [0x2906] = 0xf996, [0x2907] = 0xf997,
+  [0x2908] = 0xf998, [0x2909] = 0xf999, [0x290a] = 0xf99a, [0x290b] = 0xf99b,
+  [0x290c] = 0xf99c, [0x290d] = 0xf99d, [0x290e] = 0xf99e, [0x290f] = 0xf99f,
+  [0x2910] = 0xf9a0, [0x2911] = 0xf9a1, [0x2912] = 0xf9a2, [0x2913] = 0xf9a3,
+  [0x2914] = 0xf9a4, [0x2915] = 0xf9a5, [0x2916] = 0xf9a6, [0x2917] = 0xf9a7,
+  [0x2918] = 0xf9a8, [0x2919] = 0xf9a9, [0x291a] = 0xf9aa, [0x291b] = 0xf9ab,
+  [0x291c] = 0xf9ac, [0x291d] = 0xf9ad, [0x291e] = 0xf9ae, [0x291f] = 0xf9af,
+  [0x2920] = 0xf9b0, [0x2921] = 0xf9b1, [0x2922] = 0xf9b2, [0x2923] = 0xf9b3,
+  [0x2924] = 0xf9b4, [0x2925] = 0xf9b5, [0x2926] = 0xf9b6, [0x2927] = 0xf9b7,
+  [0x2928] = 0xf9b8, [0x2929] = 0xf9b9, [0x292a] = 0xf9ba, [0x292b] = 0xf9bb,
+  [0x292c] = 0xf9bc, [0x292d] = 0xf9bd, [0x292e] = 0xf9be, [0x292f] = 0xf9bf,
+  [0x2930] = 0xf9c0, [0x2931] = 0xf9c1, [0x2932] = 0xf9c2, [0x2933] = 0xf9c3,
+  [0x2934] = 0xf9c4, [0x2935] = 0xf9c5, [0x2936] = 0xf9c6, [0x2937] = 0xf9c7,
+  [0x2938] = 0xf9c8, [0x2939] = 0xf9c9, [0x293a] = 0xf9ca, [0x293b] = 0xf9cb,
+  [0x293c] = 0xf9cc, [0x293d] = 0xf9cd, [0x293e] = 0xf9ce, [0x293f] = 0xf9cf,
+  [0x2940] = 0xf9d0, [0x2941] = 0xf9d1, [0x2942] = 0xf9d2, [0x2943] = 0xf9d3,
+  [0x2944] = 0xf9d4, [0x2945] = 0xf9d5, [0x2946] = 0xf9d6, [0x2947] = 0xf9d7,
+  [0x2948] = 0xf9d8, [0x2949] = 0xf9d9, [0x294a] = 0xf9da, [0x294b] = 0xf9db,
+  [0x294c] = 0xf9dc, [0x294d] = 0xf9dd, [0x294e] = 0xf9de, [0x294f] = 0xf9df,
+  [0x2950] = 0xf9e0, [0x2951] = 0xf9e1, [0x2952] = 0xf9e2, [0x2953] = 0xf9e3,
+  [0x2954] = 0xf9e4, [0x2955] = 0xf9e5, [0x2956] = 0xf9e6, [0x2957] = 0xf9e8,
+  [0x2958] = 0xf9e9, [0x2959] = 0xf9ea, [0x295a] = 0xf9eb, [0x295b] = 0xf9ec,
+  [0x295c] = 0xf9ed, [0x295d] = 0xf9ee, [0x295e] = 0xf9ef, [0x295f] = 0xf9f0,
+  [0x2960] = 0xf9f2, [0x2961] = 0xf9f3, [0x2962] = 0xf9f4, [0x2963] = 0xf9f5,
+  [0x2964] = 0xf9f6, [0x2965] = 0xf9f7, [0x2966] = 0xf9f8, [0x2967] = 0xf9f9,
+  [0x2968] = 0xf9fa, [0x2969] = 0xf9fb, [0x296a] = 0xf9fc, [0x296b] = 0xf9fd,
+  [0x296c] = 0xf9fe, [0x296d] = 0xf9ff, [0x296e] = 0xfa00, [0x296f] = 0xfa01,
+  [0x2970] = 0xfa02, [0x2971] = 0xfa03, [0x2972] = 0xfa04, [0x2973] = 0xfa05,
+  [0x2974] = 0xfa06, [0x2975] = 0xfa07, [0x2976] = 0xfa08, [0x2977] = 0xfa09,
+  [0x2978] = 0xfa0a, [0x2979] = 0xfa0b, [0x297a] = 0xfa10, [0x297b] = 0xfa12,
+  [0x297c] = 0xfa15, [0x297d] = 0xfa16, [0x297e] = 0xfa17, [0x297f] = 0xfa19,
+  [0x2980] = 0xfa1a, [0x2981] = 0xfa1b, [0x2982] = 0xfa1c, [0x2983] = 0xfa1d,
+  [0x2984] = 0xfa1e, [0x2985] = 0xfa22, [0x2986] = 0xfa25, [0x2987] = 0xfa26,
+  [0x2988] = 0xfa2a, [0x2989] = 0xfa2b, [0x298a] = 0xfa2c, [0x298b] = 0xfa2d,
+  [0x298c] = 0xfa2e, [0x298d] = 0xfa2f, [0x298e] = 0xfa30, [0x298f] = 0xfa31,
+  [0x2990] = 0xfa32, [0x2991] = 0xfa33, [0x2992] = 0xfa34, [0x2993] = 0xfa35,
+  [0x2994] = 0xfa36, [0x2995] = 0xfa37, [0x2996] = 0xfa38, [0x2997] = 0xfa39,
+  [0x2998] = 0xfa3a, [0x2999] = 0xfa3b, [0x299a] = 0xfa3c, [0x299b] = 0xfa3d,
+  [0x299c] = 0xfa3e, [0x299d] = 0xfa3f, [0x299e] = 0xfa40, [0x299f] = 0xfa41,
+  [0x29a0] = 0xfa42, [0x29a1] = 0xfa43, [0x29a2] = 0xfa44, [0x29a3] = 0xfa45,
+  [0x29a4] = 0xfa46, [0x29a5] = 0xfa47, [0x29a6] = 0xfa48, [0x29a7] = 0xfa49,
+  [0x29a8] = 0xfa4a, [0x29a9] = 0xfa4b, [0x29aa] = 0xfa4c, [0x29ab] = 0xfa4d,
+  [0x29ac] = 0xfa4e, [0x29ad] = 0xfa4f, [0x29ae] = 0xfa50, [0x29af] = 0xfa51,
+  [0x29b0] = 0xfa52, [0x29b1] = 0xfa53, [0x29b2] = 0xfa54, [0x29b3] = 0xfa55,
+  [0x29b4] = 0xfa56, [0x29b5] = 0xfa57, [0x29b6] = 0xfa58, [0x29b7] = 0xfa59,
+  [0x29b8] = 0xfa5a, [0x29b9] = 0xfa5b, [0x29ba] = 0xfa5c, [0x29bb] = 0xfa5d,
+  [0x29bc] = 0xfa5e, [0x29bd] = 0xfa5f, [0x29be] = 0xfa60, [0x29bf] = 0xfa61,
+  [0x29c0] = 0xfa62, [0x29c1] = 0xfa63, [0x29c2] = 0xfa64, [0x29c3] = 0xfa65,
+  [0x29c4] = 0xfa66, [0x29c5] = 0xfa67, [0x29c6] = 0xfa68, [0x29c7] = 0xfa69,
+  [0x29c8] = 0xfa6a, [0x29c9] = 0xfa6b, [0x29ca] = 0xfa6c, [0x29cb] = 0xfa6d,
+  [0x29cc] = 0xfa6e, [0x29cd] = 0xfa6f, [0x29ce] = 0xfa70, [0x29cf] = 0xfa71,
+  [0x29d0] = 0xfa72, [0x29d1] = 0xfa73, [0x29d2] = 0xfa74, [0x29d3] = 0xfa75,
+  [0x29d4] = 0xfa76, [0x29d5] = 0xfa77, [0x29d6] = 0xfa78, [0x29d7] = 0xfa79,
+  [0x29d8] = 0xfa7a, [0x29d9] = 0xfa7b, [0x29da] = 0xfa7c, [0x29db] = 0xfa7d,
+  [0x29dc] = 0xfa7e, [0x29dd] = 0xfa7f, [0x29de] = 0xfa80, [0x29df] = 0xfa81,
+  [0x29e0] = 0xfa82, [0x29e1] = 0xfa83, [0x29e2] = 0xfa84, [0x29e3] = 0xfa85,
+  [0x29e4] = 0xfa86, [0x29e5] = 0xfa87, [0x29e6] = 0xfa88, [0x29e7] = 0xfa89,
+  [0x29e8] = 0xfa8a, [0x29e9] = 0xfa8b, [0x29ea] = 0xfa8c, [0x29eb] = 0xfa8d,
+  [0x29ec] = 0xfa8e, [0x29ed] = 0xfa8f, [0x29ee] = 0xfa90, [0x29ef] = 0xfa91,
+  [0x29f0] = 0xfa92, [0x29f1] = 0xfa93, [0x29f2] = 0xfa94, [0x29f3] = 0xfa95,
+  [0x29f4] = 0xfa96, [0x29f5] = 0xfa97, [0x29f6] = 0xfa98, [0x29f7] = 0xfa99,
+  [0x29f8] = 0xfa9a, [0x29f9] = 0xfa9b, [0x29fa] = 0xfa9c, [0x29fb] = 0xfa9d,
+  [0x29fc] = 0xfa9e, [0x29fd] = 0xfa9f, [0x29fe] = 0xfaa0, [0x29ff] = 0xfaa1,
+  [0x2a00] = 0xfaa2, [0x2a01] = 0xfaa3, [0x2a02] = 0xfaa4, [0x2a03] = 0xfaa5,
+  [0x2a04] = 0xfaa6, [0x2a05] = 0xfaa7, [0x2a06] = 0xfaa8, [0x2a07] = 0xfaa9,
+  [0x2a08] = 0xfaaa, [0x2a09] = 0xfaab, [0x2a0a] = 0xfaac, [0x2a0b] = 0xfaad,
+  [0x2a0c] = 0xfaae, [0x2a0d] = 0xfaaf, [0x2a0e] = 0xfab0, [0x2a0f] = 0xfab1,
+  [0x2a10] = 0xfab2, [0x2a11] = 0xfab3, [0x2a12] = 0xfab4, [0x2a13] = 0xfab5,
+  [0x2a14] = 0xfab6, [0x2a15] = 0xfab7, [0x2a16] = 0xfab8, [0x2a17] = 0xfab9,
+  [0x2a18] = 0xfaba, [0x2a19] = 0xfabb, [0x2a1a] = 0xfabc, [0x2a1b] = 0xfabd,
+  [0x2a1c] = 0xfabe, [0x2a1d] = 0xfabf, [0x2a1e] = 0xfac0, [0x2a1f] = 0xfac1,
+  [0x2a20] = 0xfac2, [0x2a21] = 0xfac3, [0x2a22] = 0xfac4, [0x2a23] = 0xfac5,
+  [0x2a24] = 0xfac6, [0x2a25] = 0xfac7, [0x2a26] = 0xfac8, [0x2a27] = 0xfac9,
+  [0x2a28] = 0xfaca, [0x2a29] = 0xfacb, [0x2a2a] = 0xfacc, [0x2a2b] = 0xfacd,
+  [0x2a2c] = 0xface, [0x2a2d] = 0xfacf, [0x2a2e] = 0xfad0, [0x2a2f] = 0xfad1,
+  [0x2a30] = 0xfad2, [0x2a31] = 0xfad3, [0x2a32] = 0xfad4, [0x2a33] = 0xfad5,
+  [0x2a34] = 0xfad6, [0x2a35] = 0xfad7, [0x2a36] = 0xfad8, [0x2a37] = 0xfad9,
+  [0x2a38] = 0xfada, [0x2a39] = 0xfadb, [0x2a3a] = 0xfadc, [0x2a3b] = 0xfadd,
+  [0x2a3c] = 0xfade, [0x2a3d] = 0xfadf, [0x2a3e] = 0xfae0, [0x2a3f] = 0xfae1,
+  [0x2a40] = 0xfae2, [0x2a41] = 0xfae3, [0x2a42] = 0xfae4, [0x2a43] = 0xfae5,
+  [0x2a44] = 0xfae6, [0x2a45] = 0xfae7, [0x2a46] = 0xfae8, [0x2a47] = 0xfae9,
+  [0x2a48] = 0xfaea, [0x2a49] = 0xfaeb, [0x2a4a] = 0xfaec, [0x2a4b] = 0xfaed,
+  [0x2a4c] = 0xfaee, [0x2a4d] = 0xfaef, [0x2a4e] = 0xfaf0, [0x2a4f] = 0xfaf1,
+  [0x2a50] = 0xfaf2, [0x2a51] = 0xfaf3, [0x2a52] = 0xfaf4, [0x2a53] = 0xfaf5,
+  [0x2a54] = 0xfaf6, [0x2a55] = 0xfaf7, [0x2a56] = 0xfaf8, [0x2a57] = 0xfaf9,
+  [0x2a58] = 0xfafa, [0x2a59] = 0xfafb, [0x2a5a] = 0xfafc, [0x2a5b] = 0xfafd,
+  [0x2a5c] = 0xfafe, [0x2a5d] = 0xfaff, [0x2a5e] = 0xfb00, [0x2a5f] = 0xfb01,
+  [0x2a60] = 0xfb02, [0x2a61] = 0xfb03, [0x2a62] = 0xfb04, [0x2a63] = 0xfb05,
+  [0x2a64] = 0xfb06, [0x2a65] = 0xfb07, [0x2a66] = 0xfb08, [0x2a67] = 0xfb09,
+  [0x2a68] = 0xfb0a, [0x2a69] = 0xfb0b, [0x2a6a] = 0xfb0c, [0x2a6b] = 0xfb0d,
+  [0x2a6c] = 0xfb0e, [0x2a6d] = 0xfb0f, [0x2a6e] = 0xfb10, [0x2a6f] = 0xfb11,
+  [0x2a70] = 0xfb12, [0x2a71] = 0xfb13, [0x2a72] = 0xfb14, [0x2a73] = 0xfb15,
+  [0x2a74] = 0xfb16, [0x2a75] = 0xfb17, [0x2a76] = 0xfb18, [0x2a77] = 0xfb19,
+  [0x2a78] = 0xfb1a, [0x2a79] = 0xfb1b, [0x2a7a] = 0xfb1c, [0x2a7b] = 0xfb1d,
+  [0x2a7c] = 0xfb1e, [0x2a7d] = 0xfb1f, [0x2a7e] = 0xfb20, [0x2a7f] = 0xfb21,
+  [0x2a80] = 0xfb22, [0x2a81] = 0xfb23, [0x2a82] = 0xfb24, [0x2a83] = 0xfb25,
+  [0x2a84] = 0xfb26, [0x2a85] = 0xfb27, [0x2a86] = 0xfb28, [0x2a87] = 0xfb29,
+  [0x2a88] = 0xfb2a, [0x2a89] = 0xfb2b, [0x2a8a] = 0xfb2c, [0x2a8b] = 0xfb2d,
+  [0x2a8c] = 0xfb2e, [0x2a8d] = 0xfb2f, [0x2a8e] = 0xfb30, [0x2a8f] = 0xfb31,
+  [0x2a90] = 0xfb32, [0x2a91] = 0xfb33, [0x2a92] = 0xfb34, [0x2a93] = 0xfb35,
+  [0x2a94] = 0xfb36, [0x2a95] = 0xfb37, [0x2a96] = 0xfb38, [0x2a97] = 0xfb39,
+  [0x2a98] = 0xfb3a, [0x2a99] = 0xfb3b, [0x2a9a] = 0xfb3c, [0x2a9b] = 0xfb3d,
+  [0x2a9c] = 0xfb3e, [0x2a9d] = 0xfb3f, [0x2a9e] = 0xfb40, [0x2a9f] = 0xfb41,
+  [0x2aa0] = 0xfb42, [0x2aa1] = 0xfb43, [0x2aa2] = 0xfb44, [0x2aa3] = 0xfb45,
+  [0x2aa4] = 0xfb46, [0x2aa5] = 0xfb47, [0x2aa6] = 0xfb48, [0x2aa7] = 0xfb49,
+  [0x2aa8] = 0xfb4a, [0x2aa9] = 0xfb4b, [0x2aaa] = 0xfb4c, [0x2aab] = 0xfb4d,
+  [0x2aac] = 0xfb4e, [0x2aad] = 0xfb4f, [0x2aae] = 0xfb50, [0x2aaf] = 0xfb51,
+  [0x2ab0] = 0xfb52, [0x2ab1] = 0xfb53, [0x2ab2] = 0xfb54, [0x2ab3] = 0xfb55,
+  [0x2ab4] = 0xfb56, [0x2ab5] = 0xfb57, [0x2ab6] = 0xfb58, [0x2ab7] = 0xfb59,
+  [0x2ab8] = 0xfb5a, [0x2ab9] = 0xfb5b, [0x2aba] = 0xfb5c, [0x2abb] = 0xfb5d,
+  [0x2abc] = 0xfb5e, [0x2abd] = 0xfb5f, [0x2abe] = 0xfb60, [0x2abf] = 0xfb61,
+  [0x2ac0] = 0xfb62, [0x2ac1] = 0xfb63, [0x2ac2] = 0xfb64, [0x2ac3] = 0xfb65,
+  [0x2ac4] = 0xfb66, [0x2ac5] = 0xfb67, [0x2ac6] = 0xfb68, [0x2ac7] = 0xfb69,
+  [0x2ac8] = 0xfb6a, [0x2ac9] = 0xfb6b, [0x2aca] = 0xfb6c, [0x2acb] = 0xfb6d,
+  [0x2acc] = 0xfb6e, [0x2acd] = 0xfb6f, [0x2ace] = 0xfb70, [0x2acf] = 0xfb71,
+  [0x2ad0] = 0xfb72, [0x2ad1] = 0xfb73, [0x2ad2] = 0xfb74, [0x2ad3] = 0xfb75,
+  [0x2ad4] = 0xfb76, [0x2ad5] = 0xfb77, [0x2ad6] = 0xfb78, [0x2ad7] = 0xfb79,
+  [0x2ad8] = 0xfb7a, [0x2ad9] = 0xfb7b, [0x2ada] = 0xfb7c, [0x2adb] = 0xfb7d,
+  [0x2adc] = 0xfb7e, [0x2add] = 0xfb7f, [0x2ade] = 0xfb80, [0x2adf] = 0xfb81,
+  [0x2ae0] = 0xfb82, [0x2ae1] = 0xfb83, [0x2ae2] = 0xfb84, [0x2ae3] = 0xfb85,
+  [0x2ae4] = 0xfb86, [0x2ae5] = 0xfb87, [0x2ae6] = 0xfb88, [0x2ae7] = 0xfb89,
+  [0x2ae8] = 0xfb8a, [0x2ae9] = 0xfb8b, [0x2aea] = 0xfb8c, [0x2aeb] = 0xfb8d,
+  [0x2aec] = 0xfb8e, [0x2aed] = 0xfb8f, [0x2aee] = 0xfb90, [0x2aef] = 0xfb91,
+  [0x2af0] = 0xfb92, [0x2af1] = 0xfb93, [0x2af2] = 0xfb94, [0x2af3] = 0xfb95,
+  [0x2af4] = 0xfb96, [0x2af5] = 0xfb97, [0x2af6] = 0xfb98, [0x2af7] = 0xfb99,
+  [0x2af8] = 0xfb9a, [0x2af9] = 0xfb9b, [0x2afa] = 0xfb9c, [0x2afb] = 0xfb9d,
+  [0x2afc] = 0xfb9e, [0x2afd] = 0xfb9f, [0x2afe] = 0xfba0, [0x2aff] = 0xfba1,
+  [0x2b00] = 0xfba2, [0x2b01] = 0xfba3, [0x2b02] = 0xfba4, [0x2b03] = 0xfba5,
+  [0x2b04] = 0xfba6, [0x2b05] = 0xfba7, [0x2b06] = 0xfba8, [0x2b07] = 0xfba9,
+  [0x2b08] = 0xfbaa, [0x2b09] = 0xfbab, [0x2b0a] = 0xfbac, [0x2b0b] = 0xfbad,
+  [0x2b0c] = 0xfbae, [0x2b0d] = 0xfbaf, [0x2b0e] = 0xfbb0, [0x2b0f] = 0xfbb1,
+  [0x2b10] = 0xfbb2, [0x2b11] = 0xfbb3, [0x2b12] = 0xfbb4, [0x2b13] = 0xfbb5,
+  [0x2b14] = 0xfbb6, [0x2b15] = 0xfbb7, [0x2b16] = 0xfbb8, [0x2b17] = 0xfbb9,
+  [0x2b18] = 0xfbba, [0x2b19] = 0xfbbb, [0x2b1a] = 0xfbbc, [0x2b1b] = 0xfbbd,
+  [0x2b1c] = 0xfbbe, [0x2b1d] = 0xfbbf, [0x2b1e] = 0xfbc0, [0x2b1f] = 0xfbc1,
+  [0x2b20] = 0xfbc2, [0x2b21] = 0xfbc3, [0x2b22] = 0xfbc4, [0x2b23] = 0xfbc5,
+  [0x2b24] = 0xfbc6, [0x2b25] = 0xfbc7, [0x2b26] = 0xfbc8, [0x2b27] = 0xfbc9,
+  [0x2b28] = 0xfbca, [0x2b29] = 0xfbcb, [0x2b2a] = 0xfbcc, [0x2b2b] = 0xfbcd,
+  [0x2b2c] = 0xfbce, [0x2b2d] = 0xfbcf, [0x2b2e] = 0xfbd0, [0x2b2f] = 0xfbd1,
+  [0x2b30] = 0xfbd2, [0x2b31] = 0xfbd3, [0x2b32] = 0xfbd4, [0x2b33] = 0xfbd5,
+  [0x2b34] = 0xfbd6, [0x2b35] = 0xfbd7, [0x2b36] = 0xfbd8, [0x2b37] = 0xfbd9,
+  [0x2b38] = 0xfbda, [0x2b39] = 0xfbdb, [0x2b3a] = 0xfbdc, [0x2b3b] = 0xfbdd,
+  [0x2b3c] = 0xfbde, [0x2b3d] = 0xfbdf, [0x2b3e] = 0xfbe0, [0x2b3f] = 0xfbe1,
+  [0x2b40] = 0xfbe2, [0x2b41] = 0xfbe3, [0x2b42] = 0xfbe4, [0x2b43] = 0xfbe5,
+  [0x2b44] = 0xfbe6, [0x2b45] = 0xfbe7, [0x2b46] = 0xfbe8, [0x2b47] = 0xfbe9,
+  [0x2b48] = 0xfbea, [0x2b49] = 0xfbeb, [0x2b4a] = 0xfbec, [0x2b4b] = 0xfbed,
+  [0x2b4c] = 0xfbee, [0x2b4d] = 0xfbef, [0x2b4e] = 0xfbf0, [0x2b4f] = 0xfbf1,
+  [0x2b50] = 0xfbf2, [0x2b51] = 0xfbf3, [0x2b52] = 0xfbf4, [0x2b53] = 0xfbf5,
+  [0x2b54] = 0xfbf6, [0x2b55] = 0xfbf7, [0x2b56] = 0xfbf8, [0x2b57] = 0xfbf9,
+  [0x2b58] = 0xfbfa, [0x2b59] = 0xfbfb, [0x2b5a] = 0xfbfc, [0x2b5b] = 0xfbfd,
+  [0x2b5c] = 0xfbfe, [0x2b5d] = 0xfbff, [0x2b5e] = 0xfc00, [0x2b5f] = 0xfc01,
+  [0x2b60] = 0xfc02, [0x2b61] = 0xfc03, [0x2b62] = 0xfc04, [0x2b63] = 0xfc05,
+  [0x2b64] = 0xfc06, [0x2b65] = 0xfc07, [0x2b66] = 0xfc08, [0x2b67] = 0xfc09,
+  [0x2b68] = 0xfc0a, [0x2b69] = 0xfc0b, [0x2b6a] = 0xfc0c, [0x2b6b] = 0xfc0d,
+  [0x2b6c] = 0xfc0e, [0x2b6d] = 0xfc0f, [0x2b6e] = 0xfc10, [0x2b6f] = 0xfc11,
+  [0x2b70] = 0xfc12, [0x2b71] = 0xfc13, [0x2b72] = 0xfc14, [0x2b73] = 0xfc15,
+  [0x2b74] = 0xfc16, [0x2b75] = 0xfc17, [0x2b76] = 0xfc18, [0x2b77] = 0xfc19,
+  [0x2b78] = 0xfc1a, [0x2b79] = 0xfc1b, [0x2b7a] = 0xfc1c, [0x2b7b] = 0xfc1d,
+  [0x2b7c] = 0xfc1e, [0x2b7d] = 0xfc1f, [0x2b7e] = 0xfc20, [0x2b7f] = 0xfc21,
+  [0x2b80] = 0xfc22, [0x2b81] = 0xfc23, [0x2b82] = 0xfc24, [0x2b83] = 0xfc25,
+  [0x2b84] = 0xfc26, [0x2b85] = 0xfc27, [0x2b86] = 0xfc28, [0x2b87] = 0xfc29,
+  [0x2b88] = 0xfc2a, [0x2b89] = 0xfc2b, [0x2b8a] = 0xfc2c, [0x2b8b] = 0xfc2d,
+  [0x2b8c] = 0xfc2e, [0x2b8d] = 0xfc2f, [0x2b8e] = 0xfc30, [0x2b8f] = 0xfc31,
+  [0x2b90] = 0xfc32, [0x2b91] = 0xfc33, [0x2b92] = 0xfc34, [0x2b93] = 0xfc35,
+  [0x2b94] = 0xfc36, [0x2b95] = 0xfc37, [0x2b96] = 0xfc38, [0x2b97] = 0xfc39,
+  [0x2b98] = 0xfc3a, [0x2b99] = 0xfc3b, [0x2b9a] = 0xfc3c, [0x2b9b] = 0xfc3d,
+  [0x2b9c] = 0xfc3e, [0x2b9d] = 0xfc3f, [0x2b9e] = 0xfc40, [0x2b9f] = 0xfc41,
+  [0x2ba0] = 0xfc42, [0x2ba1] = 0xfc43, [0x2ba2] = 0xfc44, [0x2ba3] = 0xfc45,
+  [0x2ba4] = 0xfc46, [0x2ba5] = 0xfc47, [0x2ba6] = 0xfc48, [0x2ba7] = 0xfc49,
+  [0x2ba8] = 0xfc4a, [0x2ba9] = 0xfc4b, [0x2baa] = 0xfc4c, [0x2bab] = 0xfc4d,
+  [0x2bac] = 0xfc4e, [0x2bad] = 0xfc4f, [0x2bae] = 0xfc50, [0x2baf] = 0xfc51,
+  [0x2bb0] = 0xfc52, [0x2bb1] = 0xfc53, [0x2bb2] = 0xfc54, [0x2bb3] = 0xfc55,
+  [0x2bb4] = 0xfc56, [0x2bb5] = 0xfc57, [0x2bb6] = 0xfc58, [0x2bb7] = 0xfc59,
+  [0x2bb8] = 0xfc5a, [0x2bb9] = 0xfc5b, [0x2bba] = 0xfc5c, [0x2bbb] = 0xfc5d,
+  [0x2bbc] = 0xfc5e, [0x2bbd] = 0xfc5f, [0x2bbe] = 0xfc60, [0x2bbf] = 0xfc61,
+  [0x2bc0] = 0xfc62, [0x2bc1] = 0xfc63, [0x2bc2] = 0xfc64, [0x2bc3] = 0xfc65,
+  [0x2bc4] = 0xfc66, [0x2bc5] = 0xfc67, [0x2bc6] = 0xfc68, [0x2bc7] = 0xfc69,
+  [0x2bc8] = 0xfc6a, [0x2bc9] = 0xfc6b, [0x2bca] = 0xfc6c, [0x2bcb] = 0xfc6d,
+  [0x2bcc] = 0xfc6e, [0x2bcd] = 0xfc6f, [0x2bce] = 0xfc70, [0x2bcf] = 0xfc71,
+  [0x2bd0] = 0xfc72, [0x2bd1] = 0xfc73, [0x2bd2] = 0xfc74, [0x2bd3] = 0xfc75,
+  [0x2bd4] = 0xfc76, [0x2bd5] = 0xfc77, [0x2bd6] = 0xfc78, [0x2bd7] = 0xfc79,
+  [0x2bd8] = 0xfc7a, [0x2bd9] = 0xfc7b, [0x2bda] = 0xfc7c, [0x2bdb] = 0xfc7d,
+  [0x2bdc] = 0xfc7e, [0x2bdd] = 0xfc7f, [0x2bde] = 0xfc80, [0x2bdf] = 0xfc81,
+  [0x2be0] = 0xfc82, [0x2be1] = 0xfc83, [0x2be2] = 0xfc84, [0x2be3] = 0xfc85,
+  [0x2be4] = 0xfc86, [0x2be5] = 0xfc87, [0x2be6] = 0xfc88, [0x2be7] = 0xfc89,
+  [0x2be8] = 0xfc8a, [0x2be9] = 0xfc8b, [0x2bea] = 0xfc8c, [0x2beb] = 0xfc8d,
+  [0x2bec] = 0xfc8e, [0x2bed] = 0xfc8f, [0x2bee] = 0xfc90, [0x2bef] = 0xfc91,
+  [0x2bf0] = 0xfc92, [0x2bf1] = 0xfc93, [0x2bf2] = 0xfc94, [0x2bf3] = 0xfc95,
+  [0x2bf4] = 0xfc96, [0x2bf5] = 0xfc97, [0x2bf6] = 0xfc98, [0x2bf7] = 0xfc99,
+  [0x2bf8] = 0xfc9a, [0x2bf9] = 0xfc9b, [0x2bfa] = 0xfc9c, [0x2bfb] = 0xfc9d,
+  [0x2bfc] = 0xfc9e, [0x2bfd] = 0xfc9f, [0x2bfe] = 0xfca0, [0x2bff] = 0xfca1,
+  [0x2c00] = 0xfca2, [0x2c01] = 0xfca3, [0x2c02] = 0xfca4, [0x2c03] = 0xfca5,
+  [0x2c04] = 0xfca6, [0x2c05] = 0xfca7, [0x2c06] = 0xfca8, [0x2c07] = 0xfca9,
+  [0x2c08] = 0xfcaa, [0x2c09] = 0xfcab, [0x2c0a] = 0xfcac, [0x2c0b] = 0xfcad,
+  [0x2c0c] = 0xfcae, [0x2c0d] = 0xfcaf, [0x2c0e] = 0xfcb0, [0x2c0f] = 0xfcb1,
+  [0x2c10] = 0xfcb2, [0x2c11] = 0xfcb3, [0x2c12] = 0xfcb4, [0x2c13] = 0xfcb5,
+  [0x2c14] = 0xfcb6, [0x2c15] = 0xfcb7, [0x2c16] = 0xfcb8, [0x2c17] = 0xfcb9,
+  [0x2c18] = 0xfcba, [0x2c19] = 0xfcbb, [0x2c1a] = 0xfcbc, [0x2c1b] = 0xfcbd,
+  [0x2c1c] = 0xfcbe, [0x2c1d] = 0xfcbf, [0x2c1e] = 0xfcc0, [0x2c1f] = 0xfcc1,
+  [0x2c20] = 0xfcc2, [0x2c21] = 0xfcc3, [0x2c22] = 0xfcc4, [0x2c23] = 0xfcc5,
+  [0x2c24] = 0xfcc6, [0x2c25] = 0xfcc7, [0x2c26] = 0xfcc8, [0x2c27] = 0xfcc9,
+  [0x2c28] = 0xfcca, [0x2c29] = 0xfccb, [0x2c2a] = 0xfccc, [0x2c2b] = 0xfccd,
+  [0x2c2c] = 0xfcce, [0x2c2d] = 0xfccf, [0x2c2e] = 0xfcd0, [0x2c2f] = 0xfcd1,
+  [0x2c30] = 0xfcd2, [0x2c31] = 0xfcd3, [0x2c32] = 0xfcd4, [0x2c33] = 0xfcd5,
+  [0x2c34] = 0xfcd6, [0x2c35] = 0xfcd7, [0x2c36] = 0xfcd8, [0x2c37] = 0xfcd9,
+  [0x2c38] = 0xfcda, [0x2c39] = 0xfcdb, [0x2c3a] = 0xfcdc, [0x2c3b] = 0xfcdd,
+  [0x2c3c] = 0xfcde, [0x2c3d] = 0xfcdf, [0x2c3e] = 0xfce0, [0x2c3f] = 0xfce1,
+  [0x2c40] = 0xfce2, [0x2c41] = 0xfce3, [0x2c42] = 0xfce4, [0x2c43] = 0xfce5,
+  [0x2c44] = 0xfce6, [0x2c45] = 0xfce7, [0x2c46] = 0xfce8, [0x2c47] = 0xfce9,
+  [0x2c48] = 0xfcea, [0x2c49] = 0xfceb, [0x2c4a] = 0xfcec, [0x2c4b] = 0xfced,
+  [0x2c4c] = 0xfcee, [0x2c4d] = 0xfcef, [0x2c4e] = 0xfcf0, [0x2c4f] = 0xfcf1,
+  [0x2c50] = 0xfcf2, [0x2c51] = 0xfcf3, [0x2c52] = 0xfcf4, [0x2c53] = 0xfcf5,
+  [0x2c54] = 0xfcf6, [0x2c55] = 0xfcf7, [0x2c56] = 0xfcf8, [0x2c57] = 0xfcf9,
+  [0x2c58] = 0xfcfa, [0x2c59] = 0xfcfb, [0x2c5a] = 0xfcfc, [0x2c5b] = 0xfcfd,
+  [0x2c5c] = 0xfcfe, [0x2c5d] = 0xfcff, [0x2c5e] = 0xfd00, [0x2c5f] = 0xfd01,
+  [0x2c60] = 0xfd02, [0x2c61] = 0xfd03, [0x2c62] = 0xfd04, [0x2c63] = 0xfd05,
+  [0x2c64] = 0xfd06, [0x2c65] = 0xfd07, [0x2c66] = 0xfd08, [0x2c67] = 0xfd09,
+  [0x2c68] = 0xfd0a, [0x2c69] = 0xfd0b, [0x2c6a] = 0xfd0c, [0x2c6b] = 0xfd0d,
+  [0x2c6c] = 0xfd0e, [0x2c6d] = 0xfd0f, [0x2c6e] = 0xfd10, [0x2c6f] = 0xfd11,
+  [0x2c70] = 0xfd12, [0x2c71] = 0xfd13, [0x2c72] = 0xfd14, [0x2c73] = 0xfd15,
+  [0x2c74] = 0xfd16, [0x2c75] = 0xfd17, [0x2c76] = 0xfd18, [0x2c77] = 0xfd19,
+  [0x2c78] = 0xfd1a, [0x2c79] = 0xfd1b, [0x2c7a] = 0xfd1c, [0x2c7b] = 0xfd1d,
+  [0x2c7c] = 0xfd1e, [0x2c7d] = 0xfd1f, [0x2c7e] = 0xfd20, [0x2c7f] = 0xfd21,
+  [0x2c80] = 0xfd22, [0x2c81] = 0xfd23, [0x2c82] = 0xfd24, [0x2c83] = 0xfd25,
+  [0x2c84] = 0xfd26, [0x2c85] = 0xfd27, [0x2c86] = 0xfd28, [0x2c87] = 0xfd29,
+  [0x2c88] = 0xfd2a, [0x2c89] = 0xfd2b, [0x2c8a] = 0xfd2c, [0x2c8b] = 0xfd2d,
+  [0x2c8c] = 0xfd2e, [0x2c8d] = 0xfd2f, [0x2c8e] = 0xfd30, [0x2c8f] = 0xfd31,
+  [0x2c90] = 0xfd32, [0x2c91] = 0xfd33, [0x2c92] = 0xfd34, [0x2c93] = 0xfd35,
+  [0x2c94] = 0xfd36, [0x2c95] = 0xfd37, [0x2c96] = 0xfd38, [0x2c97] = 0xfd39,
+  [0x2c98] = 0xfd3a, [0x2c99] = 0xfd3b, [0x2c9a] = 0xfd3c, [0x2c9b] = 0xfd3d,
+  [0x2c9c] = 0xfd3e, [0x2c9d] = 0xfd3f, [0x2c9e] = 0xfd40, [0x2c9f] = 0xfd41,
+  [0x2ca0] = 0xfd42, [0x2ca1] = 0xfd43, [0x2ca2] = 0xfd44, [0x2ca3] = 0xfd45,
+  [0x2ca4] = 0xfd46, [0x2ca5] = 0xfd47, [0x2ca6] = 0xfd48, [0x2ca7] = 0xfd49,
+  [0x2ca8] = 0xfd4a, [0x2ca9] = 0xfd4b, [0x2caa] = 0xfd4c, [0x2cab] = 0xfd4d,
+  [0x2cac] = 0xfd4e, [0x2cad] = 0xfd4f, [0x2cae] = 0xfd50, [0x2caf] = 0xfd51,
+  [0x2cb0] = 0xfd52, [0x2cb1] = 0xfd53, [0x2cb2] = 0xfd54, [0x2cb3] = 0xfd55,
+  [0x2cb4] = 0xfd56, [0x2cb5] = 0xfd57, [0x2cb6] = 0xfd58, [0x2cb7] = 0xfd59,
+  [0x2cb8] = 0xfd5a, [0x2cb9] = 0xfd5b, [0x2cba] = 0xfd5c, [0x2cbb] = 0xfd5d,
+  [0x2cbc] = 0xfd5e, [0x2cbd] = 0xfd5f, [0x2cbe] = 0xfd60, [0x2cbf] = 0xfd61,
+  [0x2cc0] = 0xfd62, [0x2cc1] = 0xfd63, [0x2cc2] = 0xfd64, [0x2cc3] = 0xfd65,
+  [0x2cc4] = 0xfd66, [0x2cc5] = 0xfd67, [0x2cc6] = 0xfd68, [0x2cc7] = 0xfd69,
+  [0x2cc8] = 0xfd6a, [0x2cc9] = 0xfd6b, [0x2cca] = 0xfd6c, [0x2ccb] = 0xfd6d,
+  [0x2ccc] = 0xfd6e, [0x2ccd] = 0xfd6f, [0x2cce] = 0xfd70, [0x2ccf] = 0xfd71,
+  [0x2cd0] = 0xfd72, [0x2cd1] = 0xfd73, [0x2cd2] = 0xfd74, [0x2cd3] = 0xfd75,
+  [0x2cd4] = 0xfd76, [0x2cd5] = 0xfd77, [0x2cd6] = 0xfd78, [0x2cd7] = 0xfd79,
+  [0x2cd8] = 0xfd7a, [0x2cd9] = 0xfd7b, [0x2cda] = 0xfd7c, [0x2cdb] = 0xfd7d,
+  [0x2cdc] = 0xfd7e, [0x2cdd] = 0xfd7f, [0x2cde] = 0xfd80, [0x2cdf] = 0xfd81,
+  [0x2ce0] = 0xfd82, [0x2ce1] = 0xfd83, [0x2ce2] = 0xfd84, [0x2ce3] = 0xfd85,
+  [0x2ce4] = 0xfd86, [0x2ce5] = 0xfd87, [0x2ce6] = 0xfd88, [0x2ce7] = 0xfd89,
+  [0x2ce8] = 0xfd8a, [0x2ce9] = 0xfd8b, [0x2cea] = 0xfd8c, [0x2ceb] = 0xfd8d,
+  [0x2cec] = 0xfd8e, [0x2ced] = 0xfd8f, [0x2cee] = 0xfd90, [0x2cef] = 0xfd91,
+  [0x2cf0] = 0xfd92, [0x2cf1] = 0xfd93, [0x2cf2] = 0xfd94, [0x2cf3] = 0xfd95,
+  [0x2cf4] = 0xfd96, [0x2cf5] = 0xfd97, [0x2cf6] = 0xfd98, [0x2cf7] = 0xfd99,
+  [0x2cf8] = 0xfd9a, [0x2cf9] = 0xfd9b, [0x2cfa] = 0xfd9c, [0x2cfb] = 0xfd9d,
+  [0x2cfc] = 0xfd9e, [0x2cfd] = 0xfd9f, [0x2cfe] = 0xfda0, [0x2cff] = 0xfda1,
+  [0x2d00] = 0xfda2, [0x2d01] = 0xfda3, [0x2d02] = 0xfda4, [0x2d03] = 0xfda5,
+  [0x2d04] = 0xfda6, [0x2d05] = 0xfda7, [0x2d06] = 0xfda8, [0x2d07] = 0xfda9,
+  [0x2d08] = 0xfdaa, [0x2d09] = 0xfdab, [0x2d0a] = 0xfdac, [0x2d0b] = 0xfdad,
+  [0x2d0c] = 0xfdae, [0x2d0d] = 0xfdaf, [0x2d0e] = 0xfdb0, [0x2d0f] = 0xfdb1,
+  [0x2d10] = 0xfdb2, [0x2d11] = 0xfdb3, [0x2d12] = 0xfdb4, [0x2d13] = 0xfdb5,
+  [0x2d14] = 0xfdb6, [0x2d15] = 0xfdb7, [0x2d16] = 0xfdb8, [0x2d17] = 0xfdb9,
+  [0x2d18] = 0xfdba, [0x2d19] = 0xfdbb, [0x2d1a] = 0xfdbc, [0x2d1b] = 0xfdbd,
+  [0x2d1c] = 0xfdbe, [0x2d1d] = 0xfdbf, [0x2d1e] = 0xfdc0, [0x2d1f] = 0xfdc1,
+  [0x2d20] = 0xfdc2, [0x2d21] = 0xfdc3, [0x2d22] = 0xfdc4, [0x2d23] = 0xfdc5,
+  [0x2d24] = 0xfdc6, [0x2d25] = 0xfdc7, [0x2d26] = 0xfdc8, [0x2d27] = 0xfdc9,
+  [0x2d28] = 0xfdca, [0x2d29] = 0xfdcb, [0x2d2a] = 0xfdcc, [0x2d2b] = 0xfdcd,
+  [0x2d2c] = 0xfdce, [0x2d2d] = 0xfdcf, [0x2d2e] = 0xfdd0, [0x2d2f] = 0xfdd1,
+  [0x2d30] = 0xfdd2, [0x2d31] = 0xfdd3, [0x2d32] = 0xfdd4, [0x2d33] = 0xfdd5,
+  [0x2d34] = 0xfdd6, [0x2d35] = 0xfdd7, [0x2d36] = 0xfdd8, [0x2d37] = 0xfdd9,
+  [0x2d38] = 0xfdda, [0x2d39] = 0xfddb, [0x2d3a] = 0xfddc, [0x2d3b] = 0xfddd,
+  [0x2d3c] = 0xfdde, [0x2d3d] = 0xfddf, [0x2d3e] = 0xfde0, [0x2d3f] = 0xfde1,
+  [0x2d40] = 0xfde2, [0x2d41] = 0xfde3, [0x2d42] = 0xfde4, [0x2d43] = 0xfde5,
+  [0x2d44] = 0xfde6, [0x2d45] = 0xfde7, [0x2d46] = 0xfde8, [0x2d47] = 0xfde9,
+  [0x2d48] = 0xfdea, [0x2d49] = 0xfdeb, [0x2d4a] = 0xfdec, [0x2d4b] = 0xfded,
+  [0x2d4c] = 0xfdee, [0x2d4d] = 0xfdef, [0x2d4e] = 0xfdf0, [0x2d4f] = 0xfdf1,
+  [0x2d50] = 0xfdf2, [0x2d51] = 0xfdf3, [0x2d52] = 0xfdf4, [0x2d53] = 0xfdf5,
+  [0x2d54] = 0xfdf6, [0x2d55] = 0xfdf7, [0x2d56] = 0xfdf8, [0x2d57] = 0xfdf9,
+  [0x2d58] = 0xfdfa, [0x2d59] = 0xfdfb, [0x2d5a] = 0xfdfc, [0x2d5b] = 0xfdfd,
+  [0x2d5c] = 0xfdfe, [0x2d5d] = 0xfdff, [0x2d5e] = 0xfe00, [0x2d5f] = 0xfe01,
+  [0x2d60] = 0xfe02, [0x2d61] = 0xfe03, [0x2d62] = 0xfe04, [0x2d63] = 0xfe05,
+  [0x2d64] = 0xfe06, [0x2d65] = 0xfe07, [0x2d66] = 0xfe08, [0x2d67] = 0xfe09,
+  [0x2d68] = 0xfe0a, [0x2d69] = 0xfe0b, [0x2d6a] = 0xfe0c, [0x2d6b] = 0xfe0d,
+  [0x2d6c] = 0xfe0e, [0x2d6d] = 0xfe0f, [0x2d78] = 0xfe1a, [0x2d79] = 0xfe1b,
+  [0x2d7a] = 0xfe1c, [0x2d7b] = 0xfe1d, [0x2d7c] = 0xfe1e, [0x2d7d] = 0xfe1f,
+  [0x2d7e] = 0xfe20, [0x2d7f] = 0xfe21, [0x2d80] = 0xfe22, [0x2d81] = 0xfe23,
+  [0x2d82] = 0xfe24, [0x2d83] = 0xfe25, [0x2d84] = 0xfe26, [0x2d85] = 0xfe27,
+  [0x2d86] = 0xfe28, [0x2d87] = 0xfe29, [0x2d88] = 0xfe2a, [0x2d89] = 0xfe2b,
+  [0x2d8a] = 0xfe2c, [0x2d8b] = 0xfe2d, [0x2d8c] = 0xfe2e, [0x2d8d] = 0xfe2f,
+  [0x2d8e] = 0xfe32, [0x2d8f] = 0xfe45, [0x2d90] = 0xfe46, [0x2d91] = 0xfe47,
+  [0x2d92] = 0xfe48, [0x2d93] = 0xfe53, [0x2d94] = 0xfe58, [0x2d95] = 0xfe67,
+  [0x2d96] = 0xfe6c, [0x2d97] = 0xfe6d, [0x2d98] = 0xfe6e, [0x2d99] = 0xfe6f,
+  [0x2d9a] = 0xfe70, [0x2d9b] = 0xfe71, [0x2d9c] = 0xfe72, [0x2d9d] = 0xfe73,
+  [0x2d9e] = 0xfe74, [0x2d9f] = 0xfe75, [0x2da0] = 0xfe76, [0x2da1] = 0xfe77,
+  [0x2da2] = 0xfe78, [0x2da3] = 0xfe79, [0x2da4] = 0xfe7a, [0x2da5] = 0xfe7b,
+  [0x2da6] = 0xfe7c, [0x2da7] = 0xfe7d, [0x2da8] = 0xfe7e, [0x2da9] = 0xfe7f,
+  [0x2daa] = 0xfe80, [0x2dab] = 0xfe81, [0x2dac] = 0xfe82, [0x2dad] = 0xfe83,
+  [0x2dae] = 0xfe84, [0x2daf] = 0xfe85, [0x2db0] = 0xfe86, [0x2db1] = 0xfe87,
+  [0x2db2] = 0xfe88, [0x2db3] = 0xfe89, [0x2db4] = 0xfe8a, [0x2db5] = 0xfe8b,
+  [0x2db6] = 0xfe8c, [0x2db7] = 0xfe8d, [0x2db8] = 0xfe8e, [0x2db9] = 0xfe8f,
+  [0x2dba] = 0xfe90, [0x2dbb] = 0xfe91, [0x2dbc] = 0xfe92, [0x2dbd] = 0xfe93,
+  [0x2dbe] = 0xfe94, [0x2dbf] = 0xfe95, [0x2dc0] = 0xfe96, [0x2dc1] = 0xfe97,
+  [0x2dc2] = 0xfe98, [0x2dc3] = 0xfe99, [0x2dc4] = 0xfe9a, [0x2dc5] = 0xfe9b,
+  [0x2dc6] = 0xfe9c, [0x2dc7] = 0xfe9d, [0x2dc8] = 0xfe9e, [0x2dc9] = 0xfe9f,
+  [0x2dca] = 0xfea0, [0x2dcb] = 0xfea1, [0x2dcc] = 0xfea2, [0x2dcd] = 0xfea3,
+  [0x2dce] = 0xfea4, [0x2dcf] = 0xfea5, [0x2dd0] = 0xfea6, [0x2dd1] = 0xfea7,
+  [0x2dd2] = 0xfea8, [0x2dd3] = 0xfea9, [0x2dd4] = 0xfeaa, [0x2dd5] = 0xfeab,
+  [0x2dd6] = 0xfeac, [0x2dd7] = 0xfead, [0x2dd8] = 0xfeae, [0x2dd9] = 0xfeaf,
+  [0x2dda] = 0xfeb0, [0x2ddb] = 0xfeb1, [0x2ddc] = 0xfeb2, [0x2ddd] = 0xfeb3,
+  [0x2dde] = 0xfeb4, [0x2ddf] = 0xfeb5, [0x2de0] = 0xfeb6, [0x2de1] = 0xfeb7,
+  [0x2de2] = 0xfeb8, [0x2de3] = 0xfeb9, [0x2de4] = 0xfeba, [0x2de5] = 0xfebb,
+  [0x2de6] = 0xfebc, [0x2de7] = 0xfebd, [0x2de8] = 0xfebe, [0x2de9] = 0xfebf,
+  [0x2dea] = 0xfec0, [0x2deb] = 0xfec1, [0x2dec] = 0xfec2, [0x2ded] = 0xfec3,
+  [0x2dee] = 0xfec4, [0x2def] = 0xfec5, [0x2df0] = 0xfec6, [0x2df1] = 0xfec7,
+  [0x2df2] = 0xfec8, [0x2df3] = 0xfec9, [0x2df4] = 0xfeca, [0x2df5] = 0xfecb,
+  [0x2df6] = 0xfecc, [0x2df7] = 0xfecd, [0x2df8] = 0xfece, [0x2df9] = 0xfecf,
+  [0x2dfa] = 0xfed0, [0x2dfb] = 0xfed1, [0x2dfc] = 0xfed2, [0x2dfd] = 0xfed3,
+  [0x2dfe] = 0xfed4, [0x2dff] = 0xfed5, [0x2e00] = 0xfed6, [0x2e01] = 0xfed7,
+  [0x2e02] = 0xfed8, [0x2e03] = 0xfed9, [0x2e04] = 0xfeda, [0x2e05] = 0xfedb,
+  [0x2e06] = 0xfedc, [0x2e07] = 0xfedd, [0x2e08] = 0xfede, [0x2e09] = 0xfedf,
+  [0x2e0a] = 0xfee0, [0x2e0b] = 0xfee1, [0x2e0c] = 0xfee2, [0x2e0d] = 0xfee3,
+  [0x2e0e] = 0xfee4, [0x2e0f] = 0xfee5, [0x2e10] = 0xfee6, [0x2e11] = 0xfee7,
+  [0x2e12] = 0xfee8, [0x2e13] = 0xfee9, [0x2e14] = 0xfeea, [0x2e15] = 0xfeeb,
+  [0x2e16] = 0xfeec, [0x2e17] = 0xfeed, [0x2e18] = 0xfeee, [0x2e19] = 0xfeef,
+  [0x2e1a] = 0xfef0, [0x2e1b] = 0xfef1, [0x2e1c] = 0xfef2, [0x2e1d] = 0xfef3,
+  [0x2e1e] = 0xfef4, [0x2e1f] = 0xfef5, [0x2e20] = 0xfef6, [0x2e21] = 0xfef7,
+  [0x2e22] = 0xfef8, [0x2e23] = 0xfef9, [0x2e24] = 0xfefa, [0x2e25] = 0xfefb,
+  [0x2e26] = 0xfefc, [0x2e27] = 0xfefd, [0x2e28] = 0xfefe, [0x2e29] = 0xfeff,
+  [0x2e2a] = 0xff00, [0x2e2b] = 0xff5f, [0x2e2c] = 0xff60, [0x2e2d] = 0xff61,
+  [0x2e2e] = 0xff62, [0x2e2f] = 0xff63, [0x2e30] = 0xff64, [0x2e31] = 0xff65,
+  [0x2e32] = 0xff66, [0x2e33] = 0xff67, [0x2e34] = 0xff68, [0x2e35] = 0xff69,
+  [0x2e36] = 0xff6a, [0x2e37] = 0xff6b, [0x2e38] = 0xff6c, [0x2e39] = 0xff6d,
+  [0x2e3a] = 0xff6e, [0x2e3b] = 0xff6f, [0x2e3c] = 0xff70, [0x2e3d] = 0xff71,
+  [0x2e3e] = 0xff72, [0x2e3f] = 0xff73, [0x2e40] = 0xff74, [0x2e41] = 0xff75,
+  [0x2e42] = 0xff76, [0x2e43] = 0xff77, [0x2e44] = 0xff78, [0x2e45] = 0xff79,
+  [0x2e46] = 0xff7a, [0x2e47] = 0xff7b, [0x2e48] = 0xff7c, [0x2e49] = 0xff7d,
+  [0x2e4a] = 0xff7e, [0x2e4b] = 0xff7f, [0x2e4c] = 0xff80, [0x2e4d] = 0xff81,
+  [0x2e4e] = 0xff82, [0x2e4f] = 0xff83, [0x2e50] = 0xff84, [0x2e51] = 0xff85,
+  [0x2e52] = 0xff86, [0x2e53] = 0xff87, [0x2e54] = 0xff88, [0x2e55] = 0xff89,
+  [0x2e56] = 0xff8a, [0x2e57] = 0xff8b, [0x2e58] = 0xff8c, [0x2e59] = 0xff8d,
+  [0x2e5a] = 0xff8e, [0x2e5b] = 0xff8f, [0x2e5c] = 0xff90, [0x2e5d] = 0xff91,
+  [0x2e5e] = 0xff92, [0x2e5f] = 0xff93, [0x2e60] = 0xff94, [0x2e61] = 0xff95,
+  [0x2e62] = 0xff96, [0x2e63] = 0xff97, [0x2e64] = 0xff98, [0x2e65] = 0xff99,
+  [0x2e66] = 0xff9a, [0x2e67] = 0xff9b, [0x2e68] = 0xff9c, [0x2e69] = 0xff9d,
+  [0x2e6a] = 0xff9e, [0x2e6b] = 0xff9f, [0x2e6c] = 0xffa0, [0x2e6d] = 0xffa1,
+  [0x2e6e] = 0xffa2, [0x2e6f] = 0xffa3, [0x2e70] = 0xffa4, [0x2e71] = 0xffa5,
+  [0x2e72] = 0xffa6, [0x2e73] = 0xffa7, [0x2e74] = 0xffa8, [0x2e75] = 0xffa9,
+  [0x2e76] = 0xffaa, [0x2e77] = 0xffab, [0x2e78] = 0xffac, [0x2e79] = 0xffad,
+  [0x2e7a] = 0xffae, [0x2e7b] = 0xffaf, [0x2e7c] = 0xffb0, [0x2e7d] = 0xffb1,
+  [0x2e7e] = 0xffb2, [0x2e7f] = 0xffb3, [0x2e80] = 0xffb4, [0x2e81] = 0xffb5,
+  [0x2e82] = 0xffb6, [0x2e83] = 0xffb7, [0x2e84] = 0xffb8, [0x2e85] = 0xffb9,
+  [0x2e86] = 0xffba, [0x2e87] = 0xffbb, [0x2e88] = 0xffbc, [0x2e89] = 0xffbd,
+  [0x2e8a] = 0xffbe, [0x2e8b] = 0xffbf, [0x2e8c] = 0xffc0, [0x2e8d] = 0xffc1,
+  [0x2e8e] = 0xffc2, [0x2e8f] = 0xffc3, [0x2e90] = 0xffc4, [0x2e91] = 0xffc5,
+  [0x2e92] = 0xffc6, [0x2e93] = 0xffc7, [0x2e94] = 0xffc8, [0x2e95] = 0xffc9,
+  [0x2e96] = 0xffca, [0x2e97] = 0xffcb, [0x2e98] = 0xffcc, [0x2e99] = 0xffcd,
+  [0x2e9a] = 0xffce, [0x2e9b] = 0xffcf, [0x2e9c] = 0xffd0, [0x2e9d] = 0xffd1,
+  [0x2e9e] = 0xffd2, [0x2e9f] = 0xffd3, [0x2ea0] = 0xffd4, [0x2ea1] = 0xffd5,
+  [0x2ea2] = 0xffd6, [0x2ea3] = 0xffd7, [0x2ea4] = 0xffd8, [0x2ea5] = 0xffd9,
+  [0x2ea6] = 0xffda, [0x2ea7] = 0xffdb, [0x2ea8] = 0xffdc, [0x2ea9] = 0xffdd,
+  [0x2eaa] = 0xffde, [0x2eab] = 0xffdf,
 };
 
 /* Table for UCS-4 -> GB18030, for the range U+0080..U+9FBB.
@@ -22742,9 +22741,9 @@ static const unsigned char __ucs_to_gb18030_tab1[][2] =
   [0x9f2a] = "\x6a\x67", [0x9f2b] = "\x6a\x68", [0x9f2c] = "\x6a\x69",
   [0x9f2d] = "\x6a\x6a", [0x9f2e] = "\x6a\x6b", [0x9f2f] = "\x6a\x6c",
   [0x9f30] = "\x6a\x6d", [0x9f31] = "\x6a\x6e", [0x9f32] = "\x6a\x6f",
-  [0x9f33] = "\x6a\x70", [0x9f34] = "\x6a\x71", [0x9f35] = "\x6a\x72",
-  [0x9f36] = "\x6a\x73", [0x9f37] = "\x6a\x74", [0x9f38] = "\x6a\x75",
-  [0x9f39] = "\x6a\x76", [0x9f3a] = "\x6a\x77", [0x9f3b] = "\x6a\x78",
+  [0x9f33] = "\x6a\x70", [0x9f34] = "\xfe\x59", [0x9f35] = "\xfe\x61",
+  [0x9f36] = "\xfe\x66", [0x9f37] = "\xfe\x67", [0x9f38] = "\xfe\x6d",
+  [0x9f39] = "\xfe\x7e", [0x9f3a] = "\xfe\x90", [0x9f3b] = "\xfe\xa0",
 
 };
 
@@ -23450,79 +23449,71 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
   [0x0783] = "\xa5\xfd", [0x0784] = "\xa5\xfe", [0x0785] = "\xa6\xb9",
   [0x0786] = "\xa6\xba", [0x0787] = "\xa6\xbb", [0x0788] = "\xa6\xbc",
   [0x0789] = "\xa6\xbd", [0x078a] = "\xa6\xbe", [0x078b] = "\xa6\xbf",
-  [0x078c] = "\xa6\xc0", [0x078d] = "\xa6\xd9", [0x078e] = "\xa6\xda",
-  [0x078f] = "\xa6\xdb", [0x0790] = "\xa6\xdc", [0x0791] = "\xa6\xdd",
-  [0x0792] = "\xa6\xde", [0x0793] = "\xa6\xdf", [0x0794] = "\xa6\xec",
-  [0x0795] = "\xa6\xed", [0x0796] = "\xa6\xf3", [0x0797] = "\xa6\xf6",
-  [0x0798] = "\xa6\xf7", [0x0799] = "\xa6\xf8", [0x079a] = "\xa6\xf9",
-  [0x079b] = "\xa6\xfa", [0x079c] = "\xa6\xfb", [0x079d] = "\xa6\xfc",
-  [0x079e] = "\xa6\xfd", [0x079f] = "\xa6\xfe", [0x07a0] = "\xa7\xc2",
-  [0x07a1] = "\xa7\xc3", [0x07a2] = "\xa7\xc4", [0x07a3] = "\xa7\xc5",
-  [0x07a4] = "\xa7\xc6", [0x07a5] = "\xa7\xc7", [0x07a6] = "\xa7\xc8",
-  [0x07a7] = "\xa7\xc9", [0x07a8] = "\xa7\xca", [0x07a9] = "\xa7\xcb",
-  [0x07aa] = "\xa7\xcc", [0x07ab] = "\xa7\xcd", [0x07ac] = "\xa7\xce",
-  [0x07ad] = "\xa7\xcf", [0x07ae] = "\xa7\xd0", [0x07af] = "\xa7\xf2",
-  [0x07b0] = "\xa7\xf3", [0x07b1] = "\xa7\xf4", [0x07b2] = "\xa7\xf5",
-  [0x07b3] = "\xa7\xf6", [0x07b4] = "\xa7\xf7", [0x07b5] = "\xa7\xf8",
-  [0x07b6] = "\xa7\xf9", [0x07b7] = "\xa7\xfa", [0x07b8] = "\xa7\xfb",
-  [0x07b9] = "\xa7\xfc", [0x07ba] = "\xa7\xfd", [0x07bb] = "\xa7\xfe",
-  [0x07bc] = "\xa8\x96", [0x07bd] = "\xa8\x97", [0x07be] = "\xa8\x98",
-  [0x07bf] = "\xa8\x99", [0x07c0] = "\xa8\x9a", [0x07c1] = "\xa8\x9b",
-  [0x07c2] = "\xa8\x9c", [0x07c3] = "\xa8\x9d", [0x07c4] = "\xa8\x9e",
-  [0x07c5] = "\xa8\x9f", [0x07c6] = "\xa8\xa0", [0x07c7] = "\x00\x01",
-  [0x07c8] = "\x65\x9e", [0x07c9] = "\xa8\xc1", [0x07ca] = "\xa8\xc2",
-  [0x07cb] = "\xa8\xc3", [0x07cc] = "\xa8\xc4", [0x07cd] = "\xa8\xea",
-  [0x07ce] = "\xa8\xeb", [0x07cf] = "\xa8\xec", [0x07d0] = "\xa8\xed",
-  [0x07d1] = "\xa8\xee", [0x07d2] = "\xa8\xef", [0x07d3] = "\xa8\xf0",
-  [0x07d4] = "\xa8\xf1", [0x07d5] = "\xa8\xf2", [0x07d6] = "\xa8\xf3",
-  [0x07d7] = "\xa8\xf4", [0x07d8] = "\xa8\xf5", [0x07d9] = "\xa8\xf6",
-  [0x07da] = "\xa8\xf7", [0x07db] = "\xa8\xf8", [0x07dc] = "\xa8\xf9",
-  [0x07dd] = "\xa8\xfa", [0x07de] = "\xa8\xfb", [0x07df] = "\xa8\xfc",
-  [0x07e0] = "\xa8\xfd", [0x07e1] = "\xa8\xfe", [0x07e2] = "\xa9\x58",
-  [0x07e3] = "\xa9\x5b", [0x07e4] = "\xa9\x5d", [0x07e5] = "\xa9\x5e",
-  [0x07e6] = "\xa9\x5f", [0x07e7] = "\x65\x9f", [0x07e8] = "\x65\xa0",
-  [0x07e9] = "\x65\xa1", [0x07ea] = "\x65\xa2", [0x07eb] = "\x65\xa3",
-  [0x07ec] = "\x65\xa4", [0x07ed] = "\x65\xa5", [0x07ee] = "\x65\xa6",
-  [0x07ef] = "\x65\xa7", [0x07f0] = "\x65\xa8", [0x07f1] = "\x65\xa9",
-  [0x07f2] = "\x65\xaa", [0x07f3] = "\x65\xab", [0x07f4] = "\xa9\x97",
-  [0x07f5] = "\xa9\x98", [0x07f6] = "\xa9\x99", [0x07f7] = "\xa9\x9a",
-  [0x07f8] = "\xa9\x9b", [0x07f9] = "\xa9\x9c", [0x07fa] = "\xa9\x9d",
-  [0x07fb] = "\xa9\x9e", [0x07fc] = "\xa9\x9f", [0x07fd] = "\xa9\xa0",
-  [0x07fe] = "\xa9\xa1", [0x07ff] = "\xa9\xa2", [0x0800] = "\xa9\xa3",
-  [0x0801] = "\xa9\xf0", [0x0802] = "\xa9\xf1", [0x0803] = "\xa9\xf2",
-  [0x0804] = "\xa9\xf3", [0x0805] = "\xa9\xf4", [0x0806] = "\xa9\xf5",
-  [0x0807] = "\xa9\xf6", [0x0808] = "\xa9\xf7", [0x0809] = "\xa9\xf8",
-  [0x080a] = "\xa9\xf9", [0x080b] = "\xa9\xfa", [0x080c] = "\xa9\xfb",
-  [0x080d] = "\xa9\xfc", [0x080e] = "\xa9\xfd", [0x080f] = "\xa9\xfe",
-  [0x0810] = "\xd7\xfa", [0x0811] = "\xd7\xfb", [0x0812] = "\xd7\xfc",
-  [0x0813] = "\xd7\xfd", [0x0814] = "\xd7\xfe", [0x0815] = "\x65\xac",
-  [0x0816] = "\xfe\x51", [0x0817] = "\xfe\x52", [0x0818] = "\xfe\x53",
-  [0x0819] = "\x65\xad", [0x081a] = "\x65\xae", [0x081b] = "\x65\xaf",
-  [0x081c] = "\x65\xb0", [0x081d] = "\x65\xb1", [0x081e] = "\xfe\x59",
-  [0x081f] = "\x65\xb2", [0x0820] = "\x65\xb3", [0x0821] = "\x65\xb4",
-  [0x0822] = "\x65\xb5", [0x0823] = "\x65\xb6", [0x0824] = "\x65\xb7",
-  [0x0825] = "\x65\xb8", [0x0826] = "\xfe\x61", [0x0827] = "\x65\xb9",
+  [0x078c] = "\xa6\xc0", [0x0797] = "\xa6\xf6", [0x0798] = "\xa6\xf7",
+  [0x0799] = "\xa6\xf8", [0x079a] = "\xa6\xf9", [0x079b] = "\xa6\xfa",
+  [0x079c] = "\xa6\xfb", [0x079d] = "\xa6\xfc", [0x079e] = "\xa6\xfd",
+  [0x079f] = "\xa6\xfe", [0x07a0] = "\xa7\xc2", [0x07a1] = "\xa7\xc3",
+  [0x07a2] = "\xa7\xc4", [0x07a3] = "\xa7\xc5", [0x07a4] = "\xa7\xc6",
+  [0x07a5] = "\xa7\xc7", [0x07a6] = "\xa7\xc8", [0x07a7] = "\xa7\xc9",
+  [0x07a8] = "\xa7\xca", [0x07a9] = "\xa7\xcb", [0x07aa] = "\xa7\xcc",
+  [0x07ab] = "\xa7\xcd", [0x07ac] = "\xa7\xce", [0x07ad] = "\xa7\xcf",
+  [0x07ae] = "\xa7\xd0", [0x07af] = "\xa7\xf2", [0x07b0] = "\xa7\xf3",
+  [0x07b1] = "\xa7\xf4", [0x07b2] = "\xa7\xf5", [0x07b3] = "\xa7\xf6",
+  [0x07b4] = "\xa7\xf7", [0x07b5] = "\xa7\xf8", [0x07b6] = "\xa7\xf9",
+  [0x07b7] = "\xa7\xfa", [0x07b8] = "\xa7\xfb", [0x07b9] = "\xa7\xfc",
+  [0x07ba] = "\xa7\xfd", [0x07bb] = "\xa7\xfe", [0x07bc] = "\xa8\x96",
+  [0x07bd] = "\xa8\x97", [0x07be] = "\xa8\x98", [0x07bf] = "\xa8\x99",
+  [0x07c0] = "\xa8\x9a", [0x07c1] = "\xa8\x9b", [0x07c2] = "\xa8\x9c",
+  [0x07c3] = "\xa8\x9d", [0x07c4] = "\xa8\x9e", [0x07c5] = "\xa8\x9f",
+  [0x07c6] = "\xa8\xa0", [0x07c7] = "\x00\x01", [0x07c8] = "\x65\x9e",
+  [0x07c9] = "\xa8\xc1", [0x07ca] = "\xa8\xc2", [0x07cb] = "\xa8\xc3",
+  [0x07cc] = "\xa8\xc4", [0x07cd] = "\xa8\xea", [0x07ce] = "\xa8\xeb",
+  [0x07cf] = "\xa8\xec", [0x07d0] = "\xa8\xed", [0x07d1] = "\xa8\xee",
+  [0x07d2] = "\xa8\xef", [0x07d3] = "\xa8\xf0", [0x07d4] = "\xa8\xf1",
+  [0x07d5] = "\xa8\xf2", [0x07d6] = "\xa8\xf3", [0x07d7] = "\xa8\xf4",
+  [0x07d8] = "\xa8\xf5", [0x07d9] = "\xa8\xf6", [0x07da] = "\xa8\xf7",
+  [0x07db] = "\xa8\xf8", [0x07dc] = "\xa8\xf9", [0x07dd] = "\xa8\xfa",
+  [0x07de] = "\xa8\xfb", [0x07df] = "\xa8\xfc", [0x07e0] = "\xa8\xfd",
+  [0x07e1] = "\xa8\xfe", [0x07e2] = "\xa9\x58", [0x07e3] = "\xa9\x5b",
+  [0x07e4] = "\xa9\x5d", [0x07e5] = "\xa9\x5e", [0x07e6] = "\xa9\x5f",
+  [0x07e7] = "\x65\x9f", [0x07e8] = "\x65\xa0", [0x07e9] = "\x65\xa1",
+  [0x07ea] = "\x65\xa2", [0x07eb] = "\x65\xa3", [0x07ec] = "\x65\xa4",
+  [0x07ed] = "\x65\xa5", [0x07ee] = "\x65\xa6", [0x07ef] = "\x65\xa7",
+  [0x07f0] = "\x65\xa8", [0x07f1] = "\x65\xa9", [0x07f2] = "\x65\xaa",
+  [0x07f3] = "\x65\xab", [0x07f4] = "\xa9\x97", [0x07f5] = "\xa9\x98",
+  [0x07f6] = "\xa9\x99", [0x07f7] = "\xa9\x9a", [0x07f8] = "\xa9\x9b",
+  [0x07f9] = "\xa9\x9c", [0x07fa] = "\xa9\x9d", [0x07fb] = "\xa9\x9e",
+  [0x07fc] = "\xa9\x9f", [0x07fd] = "\xa9\xa0", [0x07fe] = "\xa9\xa1",
+  [0x07ff] = "\xa9\xa2", [0x0800] = "\xa9\xa3", [0x0801] = "\xa9\xf0",
+  [0x0802] = "\xa9\xf1", [0x0803] = "\xa9\xf2", [0x0804] = "\xa9\xf3",
+  [0x0805] = "\xa9\xf4", [0x0806] = "\xa9\xf5", [0x0807] = "\xa9\xf6",
+  [0x0808] = "\xa9\xf7", [0x0809] = "\xa9\xf8", [0x080a] = "\xa9\xf9",
+  [0x080b] = "\xa9\xfa", [0x080c] = "\xa9\xfb", [0x080d] = "\xa9\xfc",
+  [0x080e] = "\xa9\xfd", [0x080f] = "\xa9\xfe", [0x0810] = "\xd7\xfa",
+  [0x0811] = "\xd7\xfb", [0x0812] = "\xd7\xfc", [0x0813] = "\xd7\xfd",
+  [0x0814] = "\xd7\xfe", [0x0815] = "\x65\xac", [0x0819] = "\x65\xad",
+  [0x081a] = "\x65\xae", [0x081b] = "\x65\xaf", [0x081c] = "\x65\xb0",
+  [0x081d] = "\x65\xb1", [0x081f] = "\x65\xb2", [0x0820] = "\x65\xb3",
+  [0x0821] = "\x65\xb4", [0x0822] = "\x65\xb5", [0x0823] = "\x65\xb6",
+  [0x0824] = "\x65\xb7", [0x0825] = "\x65\xb8", [0x0827] = "\x65\xb9",
   [0x0828] = "\x65\xba", [0x0829] = "\x65\xbb", [0x082a] = "\x65\xbc",
-  [0x082b] = "\xfe\x66", [0x082c] = "\xfe\x67", [0x082d] = "\x65\xbd",
-  [0x082e] = "\x65\xbe", [0x082f] = "\x65\xbf", [0x0830] = "\x65\xc0",
-  [0x0831] = "\xfe\x6c", [0x0832] = "\xfe\x6d", [0x0833] = "\x65\xc1",
-  [0x0834] = "\x65\xc2", [0x0835] = "\x65\xc3", [0x0836] = "\x65\xc4",
-  [0x0837] = "\x65\xc5", [0x0838] = "\x65\xc6", [0x0839] = "\x65\xc7",
-  [0x083a] = "\x65\xc8", [0x083b] = "\xfe\x76", [0x083c] = "\x65\xc9",
-  [0x083d] = "\x65\xca", [0x083e] = "\x65\xcb", [0x083f] = "\x65\xcc",
-  [0x0840] = "\x65\xcd", [0x0841] = "\x65\xce", [0x0842] = "\x65\xcf",
-  [0x0843] = "\xfe\x7e", [0x0844] = "\x65\xd0", [0x0845] = "\x65\xd1",
+  [0x082d] = "\x65\xbd", [0x082e] = "\x65\xbe", [0x082f] = "\x65\xbf",
+  [0x0830] = "\x65\xc0", [0x0833] = "\x65\xc1", [0x0834] = "\x65\xc2",
+  [0x0835] = "\x65\xc3", [0x0836] = "\x65\xc4", [0x0837] = "\x65\xc5",
+  [0x0838] = "\x65\xc6", [0x0839] = "\x65\xc7", [0x083a] = "\x65\xc8",
+  [0x083c] = "\x65\xc9", [0x083d] = "\x65\xca", [0x083e] = "\x65\xcb",
+  [0x083f] = "\x65\xcc", [0x0840] = "\x65\xcd", [0x0841] = "\x65\xce",
+  [0x0842] = "\x65\xcf", [0x0844] = "\x65\xd0", [0x0845] = "\x65\xd1",
   [0x0846] = "\x65\xd2", [0x0847] = "\x65\xd3", [0x0848] = "\x65\xd4",
   [0x0849] = "\x65\xd5", [0x084a] = "\x65\xd6", [0x084b] = "\x65\xd7",
   [0x084c] = "\x65\xd8", [0x084d] = "\x65\xd9", [0x084e] = "\x65\xda",
   [0x084f] = "\x65\xdb", [0x0850] = "\x65\xdc", [0x0851] = "\x65\xdd",
-  [0x0852] = "\x65\xde", [0x0853] = "\x65\xdf", [0x0854] = "\xfe\x90",
-  [0x0855] = "\xfe\x91", [0x0856] = "\x65\xe0", [0x0857] = "\x65\xe1",
-  [0x0858] = "\x65\xe2", [0x0859] = "\x65\xe3", [0x085a] = "\x65\xe4",
-  [0x085b] = "\x65\xe5", [0x085c] = "\x65\xe6", [0x085d] = "\x65\xe7",
-  [0x085e] = "\x65\xe8", [0x085f] = "\x65\xe9", [0x0860] = "\x65\xea",
-  [0x0861] = "\x65\xeb", [0x0862] = "\x65\xec", [0x0863] = "\x65\xed",
-  [0x0864] = "\xfe\xa0", [0x0865] = "\xfd\x9c", [0x0866] = "\x76\xb5",
+  [0x0852] = "\x65\xde", [0x0853] = "\x65\xdf", [0x0856] = "\x65\xe0",
+  [0x0857] = "\x65\xe1", [0x0858] = "\x65\xe2", [0x0859] = "\x65\xe3",
+  [0x085a] = "\x65\xe4", [0x085b] = "\x65\xe5", [0x085c] = "\x65\xe6",
+  [0x085d] = "\x65\xe7", [0x085e] = "\x65\xe8", [0x085f] = "\x65\xe9",
+  [0x0860] = "\x65\xea", [0x0861] = "\x65\xeb", [0x0862] = "\x65\xec",
+  [0x0863] = "\x65\xed", [0x0865] = "\xfd\x9c", [0x0866] = "\x76\xb5",
   [0x0867] = "\x76\xb6", [0x0868] = "\x76\xb7", [0x0869] = "\x76\xb8",
   [0x086a] = "\x76\xb9", [0x086b] = "\x76\xba", [0x086c] = "\x76\xbb",
   [0x086d] = "\x76\xbc", [0x086e] = "\x76\xbd", [0x086f] = "\x76\xbe",
@@ -23939,10 +23930,10 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
   [0x0d3e] = "\x7b\x79", [0x0d3f] = "\x7b\x7a", [0x0d40] = "\x7b\x7b",
   [0x0d41] = "\x7b\x7c", [0x0d42] = "\x7b\x7d", [0x0d43] = "\x7b\x7e",
   [0x0d44] = "\x7b\x7f", [0x0d45] = "\x7b\x80", [0x0d46] = "\x7b\x81",
-  [0x0d47] = "\x7b\x82", [0x0d48] = "\x7b\x83", [0x0d49] = "\x7b\x84",
-  [0x0d4a] = "\x7b\x85", [0x0d4b] = "\x7b\x86", [0x0d4c] = "\x7b\x87",
-  [0x0d4d] = "\x7b\x88", [0x0d4e] = "\x7b\x89", [0x0d4f] = "\x7b\x8a",
-  [0x0d50] = "\x7b\x8b", [0x0d51] = "\x7b\x8c", [0x0d52] = "\x7b\x8d",
+  [0x0d47] = "\x7b\x82", [0x0d48] = "\x7b\x83", [0x0d49] = "\xa6\xd9",
+  [0x0d4a] = "\xa6\xdb", [0x0d4b] = "\xa6\xda", [0x0d4c] = "\xa6\xdc",
+  [0x0d4d] = "\xa6\xdd", [0x0d4e] = "\xa6\xde", [0x0d4f] = "\xa6\xdf",
+  [0x0d50] = "\xa6\xec", [0x0d51] = "\xa6\xed", [0x0d52] = "\xa6\xf3",
   [0x0d53] = "\x7b\x8e", [0x0d54] = "\x7b\x8f", [0x0d55] = "\x7b\x90",
   [0x0d56] = "\x7b\x91", [0x0d57] = "\x7b\x92", [0x0d58] = "\x7b\x93",
   [0x0d59] = "\x7b\x94", [0x0d5a] = "\x7b\x95", [0x0d5b] = "\x7b\x96",
@@ -24197,16 +24188,16 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
 		ch = __fourbyte_to_ucs[idx - 6637];			      \
 	      else if (idx >= 0x2403 && idx <= 0x2c40)			      \
 		ch = idx + 0x240;					      \
-	      else if (idx >= 0x2c41 && idx <= 0x4a62)			      \
+	      else if (idx >= 0x2c41 && idx <= 0x4a78)			      \
 		ch = __fourbyte_to_ucs[idx - 6637 - 2110];		      \
-	      else if (idx >= 0x4a63 && idx <= 0x82bc)			      \
+	      else if (idx >= 0x4a79 && idx <= 0x82bc)			      \
 		ch = idx + 0x5543;					      \
 	      else if (idx >= 0x82bd && idx <= 0x830d)			      \
-		ch = __fourbyte_to_ucs[idx - 6637 - 2110 - 14426];	      \
+		ch = __fourbyte_to_ucs[idx - 6637 - 2110 - 14404];	      \
 	      else if (idx >= 0x830e && idx <= 0x93d4)			      \
 		ch = idx + 0x6557;					      \
 	      else if (idx >= 0x93d5 && idx <= 0x99e1)			      \
-		ch = __fourbyte_to_ucs[idx - 6637 - 2110 - 14426 - 4295];     \
+		ch = __fourbyte_to_ucs[idx - 6637 - 2110 - 14404 - 4295];     \
 	      else if (idx >= 0x99e2 && idx <= 0x99fb)			      \
 		ch = idx + 0x6604;					      \
 	      else if (idx >= 0x2e248 && idx <= 0x12e247)		      \
@@ -24231,8 +24222,24 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
 		  || (ch = __twobyte_to_ucs[idx],			      \
 		      ch == 0 && *inptr != '\0'))			      \
 		{							      \
-		  /* This is an illegal character.  */			      \
-		  STANDARD_FROM_LOOP_ERR_HANDLER (2);			      \
+		  /* Handle a few special cases.  */			      \
+		  if (idx == 0x5dd1)					      \
+		    ch = 0x20087;					      \
+		  else if (idx == 0x5dd2)				      \
+		    ch = 0x20089;					      \
+		  else if (idx == 0x5dd3)				      \
+		    ch = 0x200cc;					      \
+		  else if (idx == 0x5dec)				      \
+		    ch = 0x215D7;					      \
+		  else if (idx == 0x5df6)				      \
+		    ch = 0x2298F;					      \
+		  else if (idx == 0x5e11)				      \
+		    ch = 0x241FE;					      \
+		  else							      \
+		    {							      \
+		      /* This is an illegal character.  */		      \
+		      STANDARD_FROM_LOOP_ERR_HANDLER (2);		      \
+		    }							      \
 		}							      \
 									      \
 	      inptr += 2;						      \
@@ -24275,7 +24282,7 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
 	unsigned long int idx = 0;					      \
 	const unsigned char *cp = NULL;					      \
 	int len = 2;	/* This is the most common case.  */		      \
-	if (ch <= 0x9FA5)						      \
+	if (ch <= 0x9FBB)						      \
 	  {								      \
 	    cp = __ucs_to_gb18030_tab1[ch - 0x80];			      \
 	    if (*cp && *cp < 0x81)					      \
@@ -24286,7 +24293,7 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
 	    if (cp[0] == 0 && cp[1] == 0)				      \
 	      len = 0;							      \
 	  }								      \
-	else if (ch >= 0x9fa6 && ch <= 0xD7ff)				      \
+	else if (ch >= 0x9fbc && ch <= 0xD7ff)				      \
 	  {								      \
 	    idx = ch - 0x5543;						      \
 	    len = 4;							      \
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 933960f..f020677 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,7 @@
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
+
+	* charmaps/GB18030: Correct some entries.
+
 2011-06-21  Andreas Schwab  <schwab@redhat.com>
 
 	* charmaps/GB18030: Readd lost characters.
diff --git a/localedata/charmaps/GB18030 b/localedata/charmaps/GB18030
index 19bd3c1..db911ec 100644
--- a/localedata/charmaps/GB18030
+++ b/localedata/charmaps/GB18030
@@ -40889,14 +40889,14 @@ CHARMAP
 <U9FB1>     /x82/x35/x90/x34 <CJK>
 <U9FB2>     /x82/x35/x90/x35 <CJK>
 <U9FB3>     /x82/x35/x90/x36 <CJK>
-<U9FB4>     /x82/x35/x90/x37 <CJK>
-<U9FB5>     /x82/x35/x90/x38 <CJK>
-<U9FB6>     /x82/x35/x90/x39 <CJK>
-<U9FB7>     /x82/x35/x91/x30 <CJK>
-<U9FB8>     /x82/x35/x91/x31 <CJK>
-<U9FB9>     /x82/x35/x91/x32 <CJK>
-<U9FBA>     /x82/x35/x91/x33 <CJK>
-<U9FBB>     /x82/x35/x91/x34 <CJK>
+<U9FB4>     /xfe/x59         <CJK>
+<U9FB5>     /xfe/x61         <CJK>
+<U9FB6>     /xfe/x66         <CJK>
+<U9FB7>     /xfe/x67         <CJK>
+<U9FB8>     /xfe/x6d         <CJK>
+<U9FB9>     /xfe/x7e         <CJK>
+<U9FBA>     /xfe/x90         <CJK>
+<U9FBB>     /xfe/xa0         <CJK>
 <U9FBC>     /x82/x35/x91/x35 <CJK>
 <U9FBD>     /x82/x35/x91/x36 <CJK>
 <U9FBE>     /x82/x35/x91/x37 <CJK>
@@ -57234,16 +57234,16 @@ CHARMAP
 <UE78A>     /xa6/xbe         <Private Use>
 <UE78B>     /xa6/xbf         <Private Use>
 <UE78C>     /xa6/xc0         <Private Use>
-<UE78D>     /xa6/xd9         <Private Use>
-<UE78E>     /xa6/xda         <Private Use>
-<UE78F>     /xa6/xdb         <Private Use>
-<UE790>     /xa6/xdc         <Private Use>
-<UE791>     /xa6/xdd         <Private Use>
-<UE792>     /xa6/xde         <Private Use>
-<UE793>     /xa6/xdf         <Private Use>
-<UE794>     /xa6/xec         <Private Use>
-<UE795>     /xa6/xed         <Private Use>
-<UE796>     /xa6/xf3         <Private Use>
+% <UE78D>     /xa6/xd9         <Private Use>
+% <UE78E>     /xa6/xda         <Private Use>
+% <UE78F>     /xa6/xdb         <Private Use>
+% <UE790>     /xa6/xdc         <Private Use>
+% <UE791>     /xa6/xdd         <Private Use>
+% <UE792>     /xa6/xde         <Private Use>
+% <UE793>     /xa6/xdf         <Private Use>
+% <UE794>     /xa6/xec         <Private Use>
+% <UE795>     /xa6/xed         <Private Use>
+% <UE796>     /xa6/xf3         <Private Use>
 <UE797>     /xa6/xf6         <Private Use>
 <UE798>     /xa6/xf7         <Private Use>
 <UE799>     /xa6/xf8         <Private Use>
@@ -57371,15 +57371,15 @@ CHARMAP
 <UE813>     /xd7/xfd         <Private Use>
 <UE814>     /xd7/xfe         <Private Use>
 <UE815>     /x83/x36/xc9/x34 <Private Use>
-<UE816>     /xfe/x51         <Private Use>
-<UE817>     /xfe/x52         <Private Use>
-<UE818>     /xfe/x53         <Private Use>
+% <UE816>     /xfe/x51         <Private Use>
+% <UE817>     /xfe/x52         <Private Use>
+% <UE818>     /xfe/x53         <Private Use>
 <UE819>     /x83/x36/xc9/x35 <Private Use>
 <UE81A>     /x83/x36/xc9/x36 <Private Use>
 <UE81B>     /x83/x36/xc9/x37 <Private Use>
 <UE81C>     /x83/x36/xc9/x38 <Private Use>
 <UE81D>     /x83/x36/xc9/x39 <Private Use>
-<UE81E>     /xfe/x59         <Private Use>
+% <UE81E>     /xfe/x59         <Private Use>
 <UE81F>     /x83/x36/xca/x30 <Private Use>
 <UE820>     /x83/x36/xca/x31 <Private Use>
 <UE821>     /x83/x36/xca/x32 <Private Use>
@@ -57387,19 +57387,19 @@ CHARMAP
 <UE823>     /x83/x36/xca/x34 <Private Use>
 <UE824>     /x83/x36/xca/x35 <Private Use>
 <UE825>     /x83/x36/xca/x36 <Private Use>
-<UE826>     /xfe/x61         <Private Use>
+% <UE826>     /xfe/x61         <Private Use>
 <UE827>     /x83/x36/xca/x37 <Private Use>
 <UE828>     /x83/x36/xca/x38 <Private Use>
 <UE829>     /x83/x36/xca/x39 <Private Use>
 <UE82A>     /x83/x36/xcb/x30 <Private Use>
-<UE82B>     /xfe/x66         <Private Use>
-<UE82C>     /xfe/x67         <Private Use>
+% <UE82B>     /xfe/x66         <Private Use>
+% <UE82C>     /xfe/x67         <Private Use>
 <UE82D>     /x83/x36/xcb/x31 <Private Use>
 <UE82E>     /x83/x36/xcb/x32 <Private Use>
 <UE82F>     /x83/x36/xcb/x33 <Private Use>
 <UE830>     /x83/x36/xcb/x34 <Private Use>
-<UE831>     /xfe/x6c         <Private Use>
-<UE832>     /xfe/x6d         <Private Use>
+% <UE831>     /xfe/x6c         <Private Use>
+% <UE832>     /xfe/x6d         <Private Use>
 <UE833>     /x83/x36/xcb/x35 <Private Use>
 <UE834>     /x83/x36/xcb/x36 <Private Use>
 <UE835>     /x83/x36/xcb/x37 <Private Use>
@@ -57408,7 +57408,7 @@ CHARMAP
 <UE838>     /x83/x36/xcc/x30 <Private Use>
 <UE839>     /x83/x36/xcc/x31 <Private Use>
 <UE83A>     /x83/x36/xcc/x32 <Private Use>
-<UE83B>     /xfe/x76         <Private Use>
+% <UE83B>     /xfe/x76         <Private Use>
 <UE83C>     /x83/x36/xcc/x33 <Private Use>
 <UE83D>     /x83/x36/xcc/x34 <Private Use>
 <UE83E>     /x83/x36/xcc/x35 <Private Use>
@@ -57416,7 +57416,7 @@ CHARMAP
 <UE840>     /x83/x36/xcc/x37 <Private Use>
 <UE841>     /x83/x36/xcc/x38 <Private Use>
 <UE842>     /x83/x36/xcc/x39 <Private Use>
-<UE843>     /xfe/x7e         <Private Use>
+% <UE843>     /xfe/x7e         <Private Use>
 <UE844>     /x83/x36/xcd/x30 <Private Use>
 <UE845>     /x83/x36/xcd/x31 <Private Use>
 <UE846>     /x83/x36/xcd/x32 <Private Use>
@@ -57433,8 +57433,8 @@ CHARMAP
 <UE851>     /x83/x36/xce/x33 <Private Use>
 <UE852>     /x83/x36/xce/x34 <Private Use>
 <UE853>     /x83/x36/xce/x35 <Private Use>
-<UE854>     /xfe/x90         <Private Use>
-<UE855>     /xfe/x91         <Private Use>
+% <UE854>     /xfe/x90         <Private Use>
+% <UE855>     /xfe/x91         <Private Use>
 <UE856>     /x83/x36/xce/x36 <Private Use>
 <UE857>     /x83/x36/xce/x37 <Private Use>
 <UE858>     /x83/x36/xce/x38 <Private Use>
@@ -57449,7 +57449,7 @@ CHARMAP
 <UE861>     /x83/x36/xcf/x37 <Private Use>
 <UE862>     /x83/x36/xcf/x38 <Private Use>
 <UE863>     /x83/x36/xcf/x39 <Private Use>
-<UE864>     /xfe/xa0         <Private Use>
+% <UE864>     /xfe/xa0         <Private Use>
 <UE865>     /x83/x36/xd0/x30 <Private Use>
 <UE866>     /x83/x36/xd0/x31 <Private Use>
 <UE867>     /x83/x36/xd0/x32 <Private Use>
@@ -62997,16 +62997,16 @@ CHARMAP
 <UFE0D>     /x84/x31/x82/x33 VARIATION SELECTOR-14
 <UFE0E>     /x84/x31/x82/x34 VARIATION SELECTOR-15
 <UFE0F>     /x84/x31/x82/x35 VARIATION SELECTOR-16
-<UFE10>     /x84/x31/x82/x36 <UNASSIGNED>
-<UFE11>     /x84/x31/x82/x37 <UNASSIGNED>
-<UFE12>     /x84/x31/x82/x38 <UNASSIGNED>
-<UFE13>     /x84/x31/x82/x39 <UNASSIGNED>
-<UFE14>     /x84/x31/x83/x30 <UNASSIGNED>
-<UFE15>     /x84/x31/x83/x31 <UNASSIGNED>
-<UFE16>     /x84/x31/x83/x32 <UNASSIGNED>
-<UFE17>     /x84/x31/x83/x33 <UNASSIGNED>
-<UFE18>     /x84/x31/x83/x34 <UNASSIGNED>
-<UFE19>     /x84/x31/x83/x35 <UNASSIGNED>
+<UFE10>     /xa6/xd9         PRESENTATION FORM FOR VERTICAL COMMA
+<UFE11>     /xa6/xdb         PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+<UFE12>     /xa6/xda         PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+<UFE13>     /xa6/xdc         PRESENTATION FORM FOR VERTICAL COLON
+<UFE14>     /xa6/xdd         PRESENTATION FORM FOR VERTICAL SEMICOLON
+<UFE15>     /xa6/xde         PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+<UFE16>     /xa6/xdf         PRESENTATION FORM FOR VERTICAL QUESTION MARK
+<UFE17>     /xa6/xec         PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+<UFE18>     /xa6/xed         PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+<UFE19>     /xa6/xf3         PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
 <UFE1A>     /x84/x31/x83/x36 <UNASSIGNED>
 <UFE1B>     /x84/x31/x83/x37 <UNASSIGNED>
 <UFE1C>     /x84/x31/x83/x38 <UNASSIGNED>
@@ -63017,9 +63017,9 @@ CHARMAP
 <UFE21>     /x84/x31/x84/x33 COMBINING LIGATURE RIGHT HALF
 <UFE22>     /x84/x31/x84/x34 COMBINING DOUBLE TILDE LEFT HALF
 <UFE23>     /x84/x31/x84/x35 COMBINING DOUBLE TILDE RIGHT HALF
-<UFE24>     /x84/x31/x84/x36 <UNASSIGNED>
-<UFE25>     /x84/x31/x84/x37 <UNASSIGNED>
-<UFE26>     /x84/x31/x84/x38 <UNASSIGNED>
+<UFE24>     /x84/x31/x84/x36 COMBINING MACRON LEFT HALF
+<UFE25>     /x84/x31/x84/x37 COMBINING MACRON RIGHT HALF
+<UFE26>     /x84/x31/x84/x38 COMBINING CONJOINING MACRON
 <UFE27>     /x84/x31/x84/x39 <UNASSIGNED>
 <UFE28>     /x84/x31/x85/x30 <UNASSIGNED>
 <UFE29>     /x84/x31/x85/x31 <UNASSIGNED>

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bf18f175afdb59cdcd1016995b351e2bbb1d6ba7

commit bf18f175afdb59cdcd1016995b351e2bbb1d6ba7
Author: Andreas Schwab <schwab@redhat.com>
Date:   Tue Jun 21 17:28:57 2011 +0200

    Don't use gethostbyaddr to determine canonical name

diff --git a/ChangeLog b/ChangeLog
index 19e0f00..fa1b5de 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
+
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr
+	to determine canonical name.
+
 2011-06-27  Andreas Schwab  <schwab@redhat.com>
 
 	* iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index ea4763f..7e52918 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -562,8 +562,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
 
 	  /* If we do not have to look for IPv6 addresses, use
 	     the simple, old functions, which do not support
-	     IPv6 scope ids. */
-	  if (req->ai_family == AF_INET)
+	     IPv6 scope ids, nor retrieving the canonical name.  */
+	  if (req->ai_family == AF_INET && (req->ai_flags & AI_CANONNAME) == 0)
 	    {
 	      int family = req->ai_family;
 	      size_t tmpbuflen = 512;
@@ -1108,68 +1108,10 @@ gaih_inet (const char *name, const struct gaih_service *service,
 	/* Only the first entry gets the canonical name.  */
 	if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0)
 	  {
-	    char *tmpbuf2 = NULL;
-	    bool malloc_tmpbuf2 = false;
-
 	    if (canon == NULL)
-	      {
-		struct hostent *h = NULL;
-		int herrno;
-		struct hostent th;
-		size_t tmpbuf2len = 512;
-
-		do
-		  {
-		    if (__libc_use_alloca (alloca_used + 2 * tmpbuf2len))
-		      tmpbuf2 = extend_alloca_account (tmpbuf2, tmpbuf2len,
-						       tmpbuf2len * 2,
-						       alloca_used);
-		    else
-		      {
-			char *newp = realloc (malloc_tmpbuf2 ? tmpbuf2 : NULL,
-					      2 * tmpbuf2len);
-			if (newp == NULL)
-			  {
-			    if (malloc_tmpbuf2)
-			      free (tmpbuf2);
-			    result = -EAI_MEMORY;
-			    goto free_and_return;
-			  }
-
-			tmpbuf2 = newp;
-			tmpbuf2len = 2 * tmpbuf2len;
-			malloc_tmpbuf2 = true;
-		      }
-
-		    rc = __gethostbyaddr_r (at2->addr,
-					    ((at2->family == AF_INET6)
-					     ? sizeof (struct in6_addr)
-					     : sizeof (struct in_addr)),
-					    at2->family, &th, tmpbuf2,
-					    tmpbuf2len, &h, &herrno);
-		  }
-		while (rc == ERANGE && herrno == NETDB_INTERNAL);
-
-		if (rc != 0 && herrno == NETDB_INTERNAL)
-		  {
-		    if (malloc_tmpbuf2)
-		      free (tmpbuf2);
-
-		    __set_h_errno (herrno);
-		    result = -EAI_SYSTEM;
-		    goto free_and_return;
-		  }
-
-		if (h != NULL)
-		  canon = h->h_name;
-		else
-		  {
-		    assert (orig_name != NULL);
-		    /* If the canonical name cannot be determined, use
-		       the passed in string.  */
-		    canon = orig_name;
-		  }
-	      }
+	      /* If the canonical name cannot be determined, use
+		 the passed in string.  */
+	      canon = orig_name;
 
 #ifdef HAVE_LIBIDN
 	    if (req->ai_flags & AI_CANONIDN)
@@ -1184,9 +1126,6 @@ gaih_inet (const char *name, const struct gaih_service *service,
 		int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags);
 		if (rc != IDNA_SUCCESS)
 		  {
-		    if (malloc_tmpbuf2)
-		      free (tmpbuf2);
-
 		    if (rc == IDNA_MALLOC_ERROR)
 		      result = -EAI_MEMORY;
 		    else if (rc == IDNA_DLOPEN_ERROR)
@@ -1216,17 +1155,11 @@ gaih_inet (const char *name, const struct gaih_service *service,
 		    canon = strdup (canon);
 		    if (canon == NULL)
 		      {
-			if (malloc_tmpbuf2)
-			  free (tmpbuf2);
-
 			result = -EAI_MEMORY;
 			goto free_and_return;
 		      }
 		  }
 	      }
-
-	    if (malloc_tmpbuf2)
-	      free (tmpbuf2);
 	  }
 
 	family = at2->family;

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1bb5fe47df5dc69bea6a219e5dff62ec7db88036

commit 1bb5fe47df5dc69bea6a219e5dff62ec7db88036
Merge: 18e7646 9614794
Author: Andreas Schwab <schwab@redhat.com>
Date:   Tue Jun 28 13:52:19 2011 +0200

    Merge remote-tracking branch 'origin/release/2.14/master' into fedora/2.14/master

diff --cc ChangeLog
index 59f059a,b27323c..19e0f00
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,13 -1,18 +1,22 @@@
- 2011-06-21  Andreas Schwab  <schwab@redhat.com>
+ 2011-06-27  Andreas Schwab  <schwab@redhat.com>
  
- 	* iconvdata/gb18030.c: Regenerate tables.
+ 	* iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
+ 	two-byte characters.
+ 
+ 2011-06-22  Andreas Schwab  <schwab@redhat.com>
+ 
+ 	* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
  
- 2011-06-16  Andreas Schwab  <schwab@redhat.com>
+ 2011-06-21  Ulrich Drepper  <drepper@gmail.com>
  
  	[BZ #12885]
- 	* sysdeps/posix/getaddrinfo.c (gaih_inet): Filter results from
- 	gethostbyname4_r according to request flags.
+ 	* sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
+ 	addresses using gethostbyname4_r ignore IPv4 addresses.
+ 
++2011-06-21  Andreas Schwab  <schwab@redhat.com>
++
++	* iconvdata/gb18030.c: Regenerate tables.
 +
  2011-06-15  Ulrich Drepper  <drepper@gmail.com>
  
  	* resolv/res_send.c (__libc_res_nsend): Fix typos in last patch.  We
diff --cc iconvdata/gb18030.c
index 4c8148f,a06b75d..e3aaac2
--- a/iconvdata/gb18030.c
+++ b/iconvdata/gb18030.c
@@@ -24318,28 -18232,18 +24318,28 @@@ static const unsigned char __ucs_to_gb1
  	    else if (cp[0] == 0 && cp[1] == 0)				      \
  	      len = 0;							      \
  	  }								      \
 +	else if (ch >= 0xFFE6 && ch <= 0xFFFF)				      \
 +	  {								      \
 +	    idx = ch - 0x6604;						      \
 +	    len = 4;							      \
 +	  }								      \
  	else if (ch == 0x20087)						      \
- 	  idx = 0xfe51;							      \
+ 	  cp = (const unsigned char *) "\xfe\x51";			      \
  	else if (ch == 0x20089)						      \
- 	  idx = 0xfe52;							      \
+ 	  cp = (const unsigned char *) "\xfe\x52";			      \
  	else if (ch == 0x200CC)						      \
- 	  idx = 0xfe53;							      \
+ 	  cp = (const unsigned char *) "\xfe\x53";			      \
  	else if (ch == 0x215d7)						      \
- 	  idx = 0xfe6c;							      \
+ 	  cp = (const unsigned char *) "\xfe\x6c";			      \
  	else if (ch == 0x2298F)						      \
- 	  idx = 0xfe76;							      \
+ 	  cp = (const unsigned char *) "\xfe\x76";			      \
  	else if (ch == 0x241FE)						      \
- 	  idx = 0xfe91;							      \
+ 	  cp = (const unsigned char *) "\xfe\x91";			      \
 +	else if (ch >= 0x10000 && ch <= 0x10FFFF)			      \
 +	  {								      \
 +	    idx = ch + 0x1E248;						      \
 +	    len = 4;							      \
 +	  }								      \
  	else								      \
  	  len = 0;							      \
  									      \

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                   |   27 +-
 fedora/glibc.spec.in        |    8 +-
 iconvdata/gb18030.c         | 1079 ++++++++++++++++++++++---------------------
 localedata/ChangeLog        |    4 +
 localedata/charmaps/GB18030 |   90 ++--
 sysdeps/posix/getaddrinfo.c |  105 +----
 6 files changed, 638 insertions(+), 675 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]