Update Unicode data to Unicode 16.0.0
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 3 Apr 2025 09:54:14 +0000 (11:54 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 3 Apr 2025 10:00:09 +0000 (12:00 +0200)
Reviewed-by: Jeff Davis <pgsql@j-davis.com>
Discussion: https://www.postgresql.org/message-id/flat/146349e4-4687-4321-91af-f235572490a8@eisentraut.org

src/Makefile.global.in
src/common/unicode/meson.build
src/include/common/unicode_case_table.h
src/include/common/unicode_category_table.h
src/include/common/unicode_east_asian_fw_table.h
src/include/common/unicode_nonspacing_table.h
src/include/common/unicode_norm_hashfunc.h
src/include/common/unicode_norm_table.h
src/include/common/unicode_normprops_table.h
src/include/common/unicode_version.h

index 265fd1b2cfe2f56021482cf206324d5ffc87be13..737b2dd18691283182ae8ee3fda513ddf31cd85f 100644 (file)
@@ -367,7 +367,7 @@ DOWNLOAD = wget -O $@ --no-use-server-timestamps
 # Pick a release from here: <https://www.unicode.org/Public/>.  Note
 # that the most recent release listed there is often a pre-release;
 # don't pick that one, except for testing.
-UNICODE_VERSION = 15.1.0
+UNICODE_VERSION = 16.0.0
 
 # Pick a release from here: <http://cldr.unicode.org/index/downloads>
 CLDR_VERSION = 47
index b98940de279a426bdf5a48131c4a093aab2011e0..c6a4715ccc55312d7efdbccc4600a70b1dc91a4f 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright (c) 2022-2025, PostgreSQL Global Development Group
 
-UNICODE_VERSION = '15.1.0'
+UNICODE_VERSION = '16.0.0'
 
 unicode_data = {}
 unicode_baseurl = 'https://www.unicode.org/Public/@0@/ucd/@1@'
index aa66c3df73c012dfcad7e081add903ac29a04ebd..d53117865820bb484a23064aace6cd58cf6e6cfc 100644 (file)
@@ -166,7 +166,7 @@ static const pg_special_case special_case[106] =
  * The entry case_map_lower[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_lower[1677] =
+static const pg_wchar case_map_lower[1704] =
 {
        0x000000,                                       /* reserved */
        0x000000,                                       /* U+000000 */
@@ -415,6 +415,7 @@ static const pg_wchar case_map_lower[1677] =
        0x000268,                                       /* U+000197 */
        0x000199,                                       /* U+000198 */
        0x00019a,                                       /* U+00019a */
+       0x00019b,                                       /* U+00019b */
        0x00026f,                                       /* U+00019c */
        0x000272,                                       /* U+00019d */
        0x00019e,                                       /* U+00019e */
@@ -506,6 +507,7 @@ static const pg_wchar case_map_lower[1677] =
        0x000252,                                       /* U+000252 */
        0x00025c,                                       /* U+00025c */
        0x000261,                                       /* U+000261 */
+       0x000264,                                       /* U+000264 */
        0x000265,                                       /* U+000265 */
        0x000266,                                       /* U+000266 */
        0x00026a,                                       /* U+00026a */
@@ -954,6 +956,7 @@ static const pg_wchar case_map_lower[1677] =
        0x001c86,                                       /* U+001c86 */
        0x001c87,                                       /* U+001c87 */
        0x001c88,                                       /* U+001c88 */
+       0x001c8a,                                       /* U+001c89 */
        0x0010d0,                                       /* U+001c90 */
        0x0010d1,                                       /* U+001c91 */
        0x0010d2,                                       /* U+001c92 */
@@ -1543,9 +1546,11 @@ static const pg_wchar case_map_lower[1677] =
        0x00a7c3,                                       /* U+00a7c2 */
        0x00a7c8,                                       /* U+00a7c7 */
        0x00a7ca,                                       /* U+00a7c9 */
+       0x00a7cd,                                       /* U+00a7cc */
        0x00a7d1,                                       /* U+00a7d0 */
        0x00a7d7,                                       /* U+00a7d6 */
        0x00a7d9,                                       /* U+00a7d8 */
+       0x00a7db,                                       /* U+00a7da */
        0x00a7f6,                                       /* U+00a7f5 */
        0x00fb00,                                       /* U+00fb00 */
        0x00fb01,                                       /* U+00fb01 */
@@ -1747,6 +1752,28 @@ static const pg_wchar case_map_lower[1677] =
        0x010cf0,                                       /* U+010cb0 */
        0x010cf1,                                       /* U+010cb1 */
        0x010cf2,                                       /* U+010cb2 */
+       0x010d70,                                       /* U+010d50 */
+       0x010d71,                                       /* U+010d51 */
+       0x010d72,                                       /* U+010d52 */
+       0x010d73,                                       /* U+010d53 */
+       0x010d74,                                       /* U+010d54 */
+       0x010d75,                                       /* U+010d55 */
+       0x010d76,                                       /* U+010d56 */
+       0x010d77,                                       /* U+010d57 */
+       0x010d78,                                       /* U+010d58 */
+       0x010d79,                                       /* U+010d59 */
+       0x010d7a,                                       /* U+010d5a */
+       0x010d7b,                                       /* U+010d5b */
+       0x010d7c,                                       /* U+010d5c */
+       0x010d7d,                                       /* U+010d5d */
+       0x010d7e,                                       /* U+010d5e */
+       0x010d7f,                                       /* U+010d5f */
+       0x010d80,                                       /* U+010d60 */
+       0x010d81,                                       /* U+010d61 */
+       0x010d82,                                       /* U+010d62 */
+       0x010d83,                                       /* U+010d63 */
+       0x010d84,                                       /* U+010d64 */
+       0x010d85,                                       /* U+010d65 */
        0x0118c0,                                       /* U+0118a0 */
        0x0118c1,                                       /* U+0118a1 */
        0x0118c2,                                       /* U+0118a2 */
@@ -1852,7 +1879,7 @@ static const pg_wchar case_map_lower[1677] =
  * The entry case_map_title[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_title[1677] =
+static const pg_wchar case_map_title[1704] =
 {
        0x000000,                                       /* reserved */
        0x000000,                                       /* U+000000 */
@@ -2101,6 +2128,7 @@ static const pg_wchar case_map_title[1677] =
        0x000197,                                       /* U+000197 */
        0x000198,                                       /* U+000198 */
        0x00023d,                                       /* U+00019a */
+       0x00a7dc,                                       /* U+00019b */
        0x00019c,                                       /* U+00019c */
        0x00019d,                                       /* U+00019d */
        0x000220,                                       /* U+00019e */
@@ -2192,6 +2220,7 @@ static const pg_wchar case_map_title[1677] =
        0x002c70,                                       /* U+000252 */
        0x00a7ab,                                       /* U+00025c */
        0x00a7ac,                                       /* U+000261 */
+       0x00a7cb,                                       /* U+000264 */
        0x00a78d,                                       /* U+000265 */
        0x00a7aa,                                       /* U+000266 */
        0x00a7ae,                                       /* U+00026a */
@@ -2640,6 +2669,7 @@ static const pg_wchar case_map_title[1677] =
        0x00042a,                                       /* U+001c86 */
        0x000462,                                       /* U+001c87 */
        0x00a64a,                                       /* U+001c88 */
+       0x001c89,                                       /* U+001c89 */
        0x001c90,                                       /* U+001c90 */
        0x001c91,                                       /* U+001c91 */
        0x001c92,                                       /* U+001c92 */
@@ -3229,9 +3259,11 @@ static const pg_wchar case_map_title[1677] =
        0x00a7c2,                                       /* U+00a7c2 */
        0x00a7c7,                                       /* U+00a7c7 */
        0x00a7c9,                                       /* U+00a7c9 */
+       0x00a7cc,                                       /* U+00a7cc */
        0x00a7d0,                                       /* U+00a7d0 */
        0x00a7d6,                                       /* U+00a7d6 */
        0x00a7d8,                                       /* U+00a7d8 */
+       0x00a7da,                                       /* U+00a7da */
        0x00a7f5,                                       /* U+00a7f5 */
        0x00fb00,                                       /* U+00fb00 */
        0x00fb01,                                       /* U+00fb01 */
@@ -3433,6 +3465,28 @@ static const pg_wchar case_map_title[1677] =
        0x010cb0,                                       /* U+010cb0 */
        0x010cb1,                                       /* U+010cb1 */
        0x010cb2,                                       /* U+010cb2 */
+       0x010d50,                                       /* U+010d50 */
+       0x010d51,                                       /* U+010d51 */
+       0x010d52,                                       /* U+010d52 */
+       0x010d53,                                       /* U+010d53 */
+       0x010d54,                                       /* U+010d54 */
+       0x010d55,                                       /* U+010d55 */
+       0x010d56,                                       /* U+010d56 */
+       0x010d57,                                       /* U+010d57 */
+       0x010d58,                                       /* U+010d58 */
+       0x010d59,                                       /* U+010d59 */
+       0x010d5a,                                       /* U+010d5a */
+       0x010d5b,                                       /* U+010d5b */
+       0x010d5c,                                       /* U+010d5c */
+       0x010d5d,                                       /* U+010d5d */
+       0x010d5e,                                       /* U+010d5e */
+       0x010d5f,                                       /* U+010d5f */
+       0x010d60,                                       /* U+010d60 */
+       0x010d61,                                       /* U+010d61 */
+       0x010d62,                                       /* U+010d62 */
+       0x010d63,                                       /* U+010d63 */
+       0x010d64,                                       /* U+010d64 */
+       0x010d65,                                       /* U+010d65 */
        0x0118a0,                                       /* U+0118a0 */
        0x0118a1,                                       /* U+0118a1 */
        0x0118a2,                                       /* U+0118a2 */
@@ -3538,7 +3592,7 @@ static const pg_wchar case_map_title[1677] =
  * The entry case_map_upper[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_upper[1677] =
+static const pg_wchar case_map_upper[1704] =
 {
        0x000000,                                       /* reserved */
        0x000000,                                       /* U+000000 */
@@ -3787,6 +3841,7 @@ static const pg_wchar case_map_upper[1677] =
        0x000197,                                       /* U+000197 */
        0x000198,                                       /* U+000198 */
        0x00023d,                                       /* U+00019a */
+       0x00a7dc,                                       /* U+00019b */
        0x00019c,                                       /* U+00019c */
        0x00019d,                                       /* U+00019d */
        0x000220,                                       /* U+00019e */
@@ -3878,6 +3933,7 @@ static const pg_wchar case_map_upper[1677] =
        0x002c70,                                       /* U+000252 */
        0x00a7ab,                                       /* U+00025c */
        0x00a7ac,                                       /* U+000261 */
+       0x00a7cb,                                       /* U+000264 */
        0x00a78d,                                       /* U+000265 */
        0x00a7aa,                                       /* U+000266 */
        0x00a7ae,                                       /* U+00026a */
@@ -4326,6 +4382,7 @@ static const pg_wchar case_map_upper[1677] =
        0x00042a,                                       /* U+001c86 */
        0x000462,                                       /* U+001c87 */
        0x00a64a,                                       /* U+001c88 */
+       0x001c89,                                       /* U+001c89 */
        0x001c90,                                       /* U+001c90 */
        0x001c91,                                       /* U+001c91 */
        0x001c92,                                       /* U+001c92 */
@@ -4915,9 +4972,11 @@ static const pg_wchar case_map_upper[1677] =
        0x00a7c2,                                       /* U+00a7c2 */
        0x00a7c7,                                       /* U+00a7c7 */
        0x00a7c9,                                       /* U+00a7c9 */
+       0x00a7cc,                                       /* U+00a7cc */
        0x00a7d0,                                       /* U+00a7d0 */
        0x00a7d6,                                       /* U+00a7d6 */
        0x00a7d8,                                       /* U+00a7d8 */
+       0x00a7da,                                       /* U+00a7da */
        0x00a7f5,                                       /* U+00a7f5 */
        0x00fb00,                                       /* U+00fb00 */
        0x00fb01,                                       /* U+00fb01 */
@@ -5119,6 +5178,28 @@ static const pg_wchar case_map_upper[1677] =
        0x010cb0,                                       /* U+010cb0 */
        0x010cb1,                                       /* U+010cb1 */
        0x010cb2,                                       /* U+010cb2 */
+       0x010d50,                                       /* U+010d50 */
+       0x010d51,                                       /* U+010d51 */
+       0x010d52,                                       /* U+010d52 */
+       0x010d53,                                       /* U+010d53 */
+       0x010d54,                                       /* U+010d54 */
+       0x010d55,                                       /* U+010d55 */
+       0x010d56,                                       /* U+010d56 */
+       0x010d57,                                       /* U+010d57 */
+       0x010d58,                                       /* U+010d58 */
+       0x010d59,                                       /* U+010d59 */
+       0x010d5a,                                       /* U+010d5a */
+       0x010d5b,                                       /* U+010d5b */
+       0x010d5c,                                       /* U+010d5c */
+       0x010d5d,                                       /* U+010d5d */
+       0x010d5e,                                       /* U+010d5e */
+       0x010d5f,                                       /* U+010d5f */
+       0x010d60,                                       /* U+010d60 */
+       0x010d61,                                       /* U+010d61 */
+       0x010d62,                                       /* U+010d62 */
+       0x010d63,                                       /* U+010d63 */
+       0x010d64,                                       /* U+010d64 */
+       0x010d65,                                       /* U+010d65 */
        0x0118a0,                                       /* U+0118a0 */
        0x0118a1,                                       /* U+0118a1 */
        0x0118a2,                                       /* U+0118a2 */
@@ -5224,7 +5305,7 @@ static const pg_wchar case_map_upper[1677] =
  * The entry case_map_fold[case_index(codepoint)] is the mapping for the
  * given codepoint.
  */
-static const pg_wchar case_map_fold[1677] =
+static const pg_wchar case_map_fold[1704] =
 {
        0x000000,                                       /* reserved */
        0x000000,                                       /* U+000000 */
@@ -5473,6 +5554,7 @@ static const pg_wchar case_map_fold[1677] =
        0x000268,                                       /* U+000197 */
        0x000199,                                       /* U+000198 */
        0x00019a,                                       /* U+00019a */
+       0x00019b,                                       /* U+00019b */
        0x00026f,                                       /* U+00019c */
        0x000272,                                       /* U+00019d */
        0x00019e,                                       /* U+00019e */
@@ -5564,6 +5646,7 @@ static const pg_wchar case_map_fold[1677] =
        0x000252,                                       /* U+000252 */
        0x00025c,                                       /* U+00025c */
        0x000261,                                       /* U+000261 */
+       0x000264,                                       /* U+000264 */
        0x000265,                                       /* U+000265 */
        0x000266,                                       /* U+000266 */
        0x00026a,                                       /* U+00026a */
@@ -6012,6 +6095,7 @@ static const pg_wchar case_map_fold[1677] =
        0x00044a,                                       /* U+001c86 */
        0x000463,                                       /* U+001c87 */
        0x00a64b,                                       /* U+001c88 */
+       0x001c8a,                                       /* U+001c89 */
        0x0010d0,                                       /* U+001c90 */
        0x0010d1,                                       /* U+001c91 */
        0x0010d2,                                       /* U+001c92 */
@@ -6601,9 +6685,11 @@ static const pg_wchar case_map_fold[1677] =
        0x00a7c3,                                       /* U+00a7c2 */
        0x00a7c8,                                       /* U+00a7c7 */
        0x00a7ca,                                       /* U+00a7c9 */
+       0x00a7cd,                                       /* U+00a7cc */
        0x00a7d1,                                       /* U+00a7d0 */
        0x00a7d7,                                       /* U+00a7d6 */
        0x00a7d9,                                       /* U+00a7d8 */
+       0x00a7db,                                       /* U+00a7da */
        0x00a7f6,                                       /* U+00a7f5 */
        0x00fb00,                                       /* U+00fb00 */
        0x00fb01,                                       /* U+00fb01 */
@@ -6805,6 +6891,28 @@ static const pg_wchar case_map_fold[1677] =
        0x010cf0,                                       /* U+010cb0 */
        0x010cf1,                                       /* U+010cb1 */
        0x010cf2,                                       /* U+010cb2 */
+       0x010d70,                                       /* U+010d50 */
+       0x010d71,                                       /* U+010d51 */
+       0x010d72,                                       /* U+010d52 */
+       0x010d73,                                       /* U+010d53 */
+       0x010d74,                                       /* U+010d54 */
+       0x010d75,                                       /* U+010d55 */
+       0x010d76,                                       /* U+010d56 */
+       0x010d77,                                       /* U+010d57 */
+       0x010d78,                                       /* U+010d58 */
+       0x010d79,                                       /* U+010d59 */
+       0x010d7a,                                       /* U+010d5a */
+       0x010d7b,                                       /* U+010d5b */
+       0x010d7c,                                       /* U+010d5c */
+       0x010d7d,                                       /* U+010d5d */
+       0x010d7e,                                       /* U+010d5e */
+       0x010d7f,                                       /* U+010d5f */
+       0x010d80,                                       /* U+010d60 */
+       0x010d81,                                       /* U+010d61 */
+       0x010d82,                                       /* U+010d62 */
+       0x010d83,                                       /* U+010d63 */
+       0x010d84,                                       /* U+010d64 */
+       0x010d85,                                       /* U+010d65 */
        0x0118c0,                                       /* U+0118a0 */
        0x0118c1,                                       /* U+0118a1 */
        0x0118c2,                                       /* U+0118a2 */
@@ -6910,7 +7018,7 @@ static const pg_wchar case_map_fold[1677] =
  * The entry case_map_special[case_index(codepoint)] is the index in
  * special_case for that codepoint, or 0 if no special case mapping exists.
  */
-static const uint8 case_map_special[1677] =
+static const uint8 case_map_special[1704] =
 {
        0,                                                      /* reserved */
        0,                                                      /* U+000000 */
@@ -7159,6 +7267,7 @@ static const uint8 case_map_special[1677] =
        0,                                                      /* U+000197 */
        0,                                                      /* U+000198 */
        0,                                                      /* U+00019a */
+       0,                                                      /* U+00019b */
        0,                                                      /* U+00019c */
        0,                                                      /* U+00019d */
        0,                                                      /* U+00019e */
@@ -7250,6 +7359,7 @@ static const uint8 case_map_special[1677] =
        0,                                                      /* U+000252 */
        0,                                                      /* U+00025c */
        0,                                                      /* U+000261 */
+       0,                                                      /* U+000264 */
        0,                                                      /* U+000265 */
        0,                                                      /* U+000266 */
        0,                                                      /* U+00026a */
@@ -7698,6 +7808,7 @@ static const uint8 case_map_special[1677] =
        0,                                                      /* U+001c86 */
        0,                                                      /* U+001c87 */
        0,                                                      /* U+001c88 */
+       0,                                                      /* U+001c89 */
        0,                                                      /* U+001c90 */
        0,                                                      /* U+001c91 */
        0,                                                      /* U+001c92 */
@@ -8287,9 +8398,11 @@ static const uint8 case_map_special[1677] =
        0,                                                      /* U+00a7c2 */
        0,                                                      /* U+00a7c7 */
        0,                                                      /* U+00a7c9 */
+       0,                                                      /* U+00a7cc */
        0,                                                      /* U+00a7d0 */
        0,                                                      /* U+00a7d6 */
        0,                                                      /* U+00a7d8 */
+       0,                                                      /* U+00a7da */
        0,                                                      /* U+00a7f5 */
        94,                                                     /* U+00fb00 */
        95,                                                     /* U+00fb01 */
@@ -8491,6 +8604,28 @@ static const uint8 case_map_special[1677] =
        0,                                                      /* U+010cb0 */
        0,                                                      /* U+010cb1 */
        0,                                                      /* U+010cb2 */
+       0,                                                      /* U+010d50 */
+       0,                                                      /* U+010d51 */
+       0,                                                      /* U+010d52 */
+       0,                                                      /* U+010d53 */
+       0,                                                      /* U+010d54 */
+       0,                                                      /* U+010d55 */
+       0,                                                      /* U+010d56 */
+       0,                                                      /* U+010d57 */
+       0,                                                      /* U+010d58 */
+       0,                                                      /* U+010d59 */
+       0,                                                      /* U+010d5a */
+       0,                                                      /* U+010d5b */
+       0,                                                      /* U+010d5c */
+       0,                                                      /* U+010d5d */
+       0,                                                      /* U+010d5e */
+       0,                                                      /* U+010d5f */
+       0,                                                      /* U+010d60 */
+       0,                                                      /* U+010d61 */
+       0,                                                      /* U+010d62 */
+       0,                                                      /* U+010d63 */
+       0,                                                      /* U+010d64 */
+       0,                                                      /* U+010d65 */
        0,                                                      /* U+0118a0 */
        0,                                                      /* U+0118a1 */
        0,                                                      /* U+0118a2 */
@@ -8597,7 +8732,7 @@ static const uint8 case_map_special[1677] =
  * of the following arrays: case_map_lower, case_map_title, case_map_upper,
  * case_map_fold.
  */
-static const uint16 case_map[4631] =
+static const uint16 case_map[4778] =
 {
        1,                                                      /* U+000000 */
        2,                                                      /* U+000001 */
@@ -9010,190 +9145,190 @@ static const uint16 case_map[4631] =
        245,                                            /* U+000198 */
        245,                                            /* U+000199 */
        246,                                            /* U+00019A */
-       0,                                                      /* U+00019B */
-       247,                                            /* U+00019C */
-       248,                                            /* U+00019D */
-       249,                                            /* U+00019E */
-       250,                                            /* U+00019F */
-       251,                                            /* U+0001A0 */
-       251,                                            /* U+0001A1 */
-       252,                                            /* U+0001A2 */
-       252,                                            /* U+0001A3 */
-       253,                                            /* U+0001A4 */
-       253,                                            /* U+0001A5 */
-       254,                                            /* U+0001A6 */
-       255,                                            /* U+0001A7 */
-       255,                                            /* U+0001A8 */
-       256,                                            /* U+0001A9 */
+       247,                                            /* U+00019B */
+       248,                                            /* U+00019C */
+       249,                                            /* U+00019D */
+       250,                                            /* U+00019E */
+       251,                                            /* U+00019F */
+       252,                                            /* U+0001A0 */
+       252,                                            /* U+0001A1 */
+       253,                                            /* U+0001A2 */
+       253,                                            /* U+0001A3 */
+       254,                                            /* U+0001A4 */
+       254,                                            /* U+0001A5 */
+       255,                                            /* U+0001A6 */
+       256,                                            /* U+0001A7 */
+       256,                                            /* U+0001A8 */
+       257,                                            /* U+0001A9 */
        0,                                                      /* U+0001AA */
        0,                                                      /* U+0001AB */
-       257,                                            /* U+0001AC */
-       257,                                            /* U+0001AD */
-       258,                                            /* U+0001AE */
-       259,                                            /* U+0001AF */
-       259,                                            /* U+0001B0 */
-       260,                                            /* U+0001B1 */
-       261,                                            /* U+0001B2 */
-       262,                                            /* U+0001B3 */
-       262,                                            /* U+0001B4 */
-       263,                                            /* U+0001B5 */
-       263,                                            /* U+0001B6 */
-       264,                                            /* U+0001B7 */
-       265,                                            /* U+0001B8 */
-       265,                                            /* U+0001B9 */
+       258,                                            /* U+0001AC */
+       258,                                            /* U+0001AD */
+       259,                                            /* U+0001AE */
+       260,                                            /* U+0001AF */
+       260,                                            /* U+0001B0 */
+       261,                                            /* U+0001B1 */
+       262,                                            /* U+0001B2 */
+       263,                                            /* U+0001B3 */
+       263,                                            /* U+0001B4 */
+       264,                                            /* U+0001B5 */
+       264,                                            /* U+0001B6 */
+       265,                                            /* U+0001B7 */
+       266,                                            /* U+0001B8 */
+       266,                                            /* U+0001B9 */
        0,                                                      /* U+0001BA */
        0,                                                      /* U+0001BB */
-       266,                                            /* U+0001BC */
-       266,                                            /* U+0001BD */
+       267,                                            /* U+0001BC */
+       267,                                            /* U+0001BD */
        0,                                                      /* U+0001BE */
-       267,                                            /* U+0001BF */
+       268,                                            /* U+0001BF */
        0,                                                      /* U+0001C0 */
        0,                                                      /* U+0001C1 */
        0,                                                      /* U+0001C2 */
        0,                                                      /* U+0001C3 */
-       268,                                            /* U+0001C4 */
-       268,                                            /* U+0001C5 */
-       268,                                            /* U+0001C6 */
-       269,                                            /* U+0001C7 */
-       269,                                            /* U+0001C8 */
-       269,                                            /* U+0001C9 */
-       270,                                            /* U+0001CA */
-       270,                                            /* U+0001CB */
-       270,                                            /* U+0001CC */
-       271,                                            /* U+0001CD */
-       271,                                            /* U+0001CE */
-       272,                                            /* U+0001CF */
-       272,                                            /* U+0001D0 */
-       273,                                            /* U+0001D1 */
-       273,                                            /* U+0001D2 */
-       274,                                            /* U+0001D3 */
-       274,                                            /* U+0001D4 */
-       275,                                            /* U+0001D5 */
-       275,                                            /* U+0001D6 */
-       276,                                            /* U+0001D7 */
-       276,                                            /* U+0001D8 */
-       277,                                            /* U+0001D9 */
-       277,                                            /* U+0001DA */
-       278,                                            /* U+0001DB */
-       278,                                            /* U+0001DC */
+       269,                                            /* U+0001C4 */
+       269,                                            /* U+0001C5 */
+       269,                                            /* U+0001C6 */
+       270,                                            /* U+0001C7 */
+       270,                                            /* U+0001C8 */
+       270,                                            /* U+0001C9 */
+       271,                                            /* U+0001CA */
+       271,                                            /* U+0001CB */
+       271,                                            /* U+0001CC */
+       272,                                            /* U+0001CD */
+       272,                                            /* U+0001CE */
+       273,                                            /* U+0001CF */
+       273,                                            /* U+0001D0 */
+       274,                                            /* U+0001D1 */
+       274,                                            /* U+0001D2 */
+       275,                                            /* U+0001D3 */
+       275,                                            /* U+0001D4 */
+       276,                                            /* U+0001D5 */
+       276,                                            /* U+0001D6 */
+       277,                                            /* U+0001D7 */
+       277,                                            /* U+0001D8 */
+       278,                                            /* U+0001D9 */
+       278,                                            /* U+0001DA */
+       279,                                            /* U+0001DB */
+       279,                                            /* U+0001DC */
        236,                                            /* U+0001DD */
-       279,                                            /* U+0001DE */
-       279,                                            /* U+0001DF */
-       280,                                            /* U+0001E0 */
-       280,                                            /* U+0001E1 */
-       281,                                            /* U+0001E2 */
-       281,                                            /* U+0001E3 */
-       282,                                            /* U+0001E4 */
-       282,                                            /* U+0001E5 */
-       283,                                            /* U+0001E6 */
-       283,                                            /* U+0001E7 */
-       284,                                            /* U+0001E8 */
-       284,                                            /* U+0001E9 */
-       285,                                            /* U+0001EA */
-       285,                                            /* U+0001EB */
-       286,                                            /* U+0001EC */
-       286,                                            /* U+0001ED */
-       287,                                            /* U+0001EE */
-       287,                                            /* U+0001EF */
-       288,                                            /* U+0001F0 */
-       289,                                            /* U+0001F1 */
-       289,                                            /* U+0001F2 */
-       289,                                            /* U+0001F3 */
-       290,                                            /* U+0001F4 */
-       290,                                            /* U+0001F5 */
+       280,                                            /* U+0001DE */
+       280,                                            /* U+0001DF */
+       281,                                            /* U+0001E0 */
+       281,                                            /* U+0001E1 */
+       282,                                            /* U+0001E2 */
+       282,                                            /* U+0001E3 */
+       283,                                            /* U+0001E4 */
+       283,                                            /* U+0001E5 */
+       284,                                            /* U+0001E6 */
+       284,                                            /* U+0001E7 */
+       285,                                            /* U+0001E8 */
+       285,                                            /* U+0001E9 */
+       286,                                            /* U+0001EA */
+       286,                                            /* U+0001EB */
+       287,                                            /* U+0001EC */
+       287,                                            /* U+0001ED */
+       288,                                            /* U+0001EE */
+       288,                                            /* U+0001EF */
+       289,                                            /* U+0001F0 */
+       290,                                            /* U+0001F1 */
+       290,                                            /* U+0001F2 */
+       290,                                            /* U+0001F3 */
+       291,                                            /* U+0001F4 */
+       291,                                            /* U+0001F5 */
        242,                                            /* U+0001F6 */
-       267,                                            /* U+0001F7 */
-       291,                                            /* U+0001F8 */
-       291,                                            /* U+0001F9 */
-       292,                                            /* U+0001FA */
-       292,                                            /* U+0001FB */
-       293,                                            /* U+0001FC */
-       293,                                            /* U+0001FD */
-       294,                                            /* U+0001FE */
-       294,                                            /* U+0001FF */
-       295,                                            /* U+000200 */
-       295,                                            /* U+000201 */
-       296,                                            /* U+000202 */
-       296,                                            /* U+000203 */
-       297,                                            /* U+000204 */
-       297,                                            /* U+000205 */
-       298,                                            /* U+000206 */
-       298,                                            /* U+000207 */
-       299,                                            /* U+000208 */
-       299,                                            /* U+000209 */
-       300,                                            /* U+00020A */
-       300,                                            /* U+00020B */
-       301,                                            /* U+00020C */
-       301,                                            /* U+00020D */
-       302,                                            /* U+00020E */
-       302,                                            /* U+00020F */
-       303,                                            /* U+000210 */
-       303,                                            /* U+000211 */
-       304,                                            /* U+000212 */
-       304,                                            /* U+000213 */
-       305,                                            /* U+000214 */
-       305,                                            /* U+000215 */
-       306,                                            /* U+000216 */
-       306,                                            /* U+000217 */
-       307,                                            /* U+000218 */
-       307,                                            /* U+000219 */
-       308,                                            /* U+00021A */
-       308,                                            /* U+00021B */
-       309,                                            /* U+00021C */
-       309,                                            /* U+00021D */
-       310,                                            /* U+00021E */
-       310,                                            /* U+00021F */
-       249,                                            /* U+000220 */
+       268,                                            /* U+0001F7 */
+       292,                                            /* U+0001F8 */
+       292,                                            /* U+0001F9 */
+       293,                                            /* U+0001FA */
+       293,                                            /* U+0001FB */
+       294,                                            /* U+0001FC */
+       294,                                            /* U+0001FD */
+       295,                                            /* U+0001FE */
+       295,                                            /* U+0001FF */
+       296,                                            /* U+000200 */
+       296,                                            /* U+000201 */
+       297,                                            /* U+000202 */
+       297,                                            /* U+000203 */
+       298,                                            /* U+000204 */
+       298,                                            /* U+000205 */
+       299,                                            /* U+000206 */
+       299,                                            /* U+000207 */
+       300,                                            /* U+000208 */
+       300,                                            /* U+000209 */
+       301,                                            /* U+00020A */
+       301,                                            /* U+00020B */
+       302,                                            /* U+00020C */
+       302,                                            /* U+00020D */
+       303,                                            /* U+00020E */
+       303,                                            /* U+00020F */
+       304,                                            /* U+000210 */
+       304,                                            /* U+000211 */
+       305,                                            /* U+000212 */
+       305,                                            /* U+000213 */
+       306,                                            /* U+000214 */
+       306,                                            /* U+000215 */
+       307,                                            /* U+000216 */
+       307,                                            /* U+000217 */
+       308,                                            /* U+000218 */
+       308,                                            /* U+000219 */
+       309,                                            /* U+00021A */
+       309,                                            /* U+00021B */
+       310,                                            /* U+00021C */
+       310,                                            /* U+00021D */
+       311,                                            /* U+00021E */
+       311,                                            /* U+00021F */
+       250,                                            /* U+000220 */
        0,                                                      /* U+000221 */
-       311,                                            /* U+000222 */
-       311,                                            /* U+000223 */
-       312,                                            /* U+000224 */
-       312,                                            /* U+000225 */
-       313,                                            /* U+000226 */
-       313,                                            /* U+000227 */
-       314,                                            /* U+000228 */
-       314,                                            /* U+000229 */
-       315,                                            /* U+00022A */
-       315,                                            /* U+00022B */
-       316,                                            /* U+00022C */
-       316,                                            /* U+00022D */
-       317,                                            /* U+00022E */
-       317,                                            /* U+00022F */
-       318,                                            /* U+000230 */
-       318,                                            /* U+000231 */
-       319,                                            /* U+000232 */
-       319,                                            /* U+000233 */
+       312,                                            /* U+000222 */
+       312,                                            /* U+000223 */
+       313,                                            /* U+000224 */
+       313,                                            /* U+000225 */
+       314,                                            /* U+000226 */
+       314,                                            /* U+000227 */
+       315,                                            /* U+000228 */
+       315,                                            /* U+000229 */
+       316,                                            /* U+00022A */
+       316,                                            /* U+00022B */
+       317,                                            /* U+00022C */
+       317,                                            /* U+00022D */
+       318,                                            /* U+00022E */
+       318,                                            /* U+00022F */
+       319,                                            /* U+000230 */
+       319,                                            /* U+000231 */
+       320,                                            /* U+000232 */
+       320,                                            /* U+000233 */
        0,                                                      /* U+000234 */
        0,                                                      /* U+000235 */
        0,                                                      /* U+000236 */
        0,                                                      /* U+000237 */
        0,                                                      /* U+000238 */
        0,                                                      /* U+000239 */
-       320,                                            /* U+00023A */
-       321,                                            /* U+00023B */
-       321,                                            /* U+00023C */
+       321,                                            /* U+00023A */
+       322,                                            /* U+00023B */
+       322,                                            /* U+00023C */
        246,                                            /* U+00023D */
-       322,                                            /* U+00023E */
-       323,                                            /* U+00023F */
-       324,                                            /* U+000240 */
-       325,                                            /* U+000241 */
-       325,                                            /* U+000242 */
+       323,                                            /* U+00023E */
+       324,                                            /* U+00023F */
+       325,                                            /* U+000240 */
+       326,                                            /* U+000241 */
+       326,                                            /* U+000242 */
        227,                                            /* U+000243 */
-       326,                                            /* U+000244 */
-       327,                                            /* U+000245 */
-       328,                                            /* U+000246 */
-       328,                                            /* U+000247 */
-       329,                                            /* U+000248 */
-       329,                                            /* U+000249 */
-       330,                                            /* U+00024A */
-       330,                                            /* U+00024B */
-       331,                                            /* U+00024C */
-       331,                                            /* U+00024D */
-       332,                                            /* U+00024E */
-       332,                                            /* U+00024F */
-       333,                                            /* U+000250 */
-       334,                                            /* U+000251 */
-       335,                                            /* U+000252 */
+       327,                                            /* U+000244 */
+       328,                                            /* U+000245 */
+       329,                                            /* U+000246 */
+       329,                                            /* U+000247 */
+       330,                                            /* U+000248 */
+       330,                                            /* U+000249 */
+       331,                                            /* U+00024A */
+       331,                                            /* U+00024B */
+       332,                                            /* U+00024C */
+       332,                                            /* U+00024D */
+       333,                                            /* U+00024E */
+       333,                                            /* U+00024F */
+       334,                                            /* U+000250 */
+       335,                                            /* U+000251 */
+       336,                                            /* U+000252 */
        228,                                            /* U+000253 */
        231,                                            /* U+000254 */
        0,                                                      /* U+000255 */
@@ -9203,32 +9338,32 @@ static const uint16 case_map[4631] =
        237,                                            /* U+000259 */
        0,                                                      /* U+00025A */
        238,                                            /* U+00025B */
-       336,                                            /* U+00025C */
+       337,                                            /* U+00025C */
        0,                                                      /* U+00025D */
        0,                                                      /* U+00025E */
        0,                                                      /* U+00025F */
        240,                                            /* U+000260 */
-       337,                                            /* U+000261 */
+       338,                                            /* U+000261 */
        0,                                                      /* U+000262 */
        241,                                            /* U+000263 */
-       0,                                                      /* U+000264 */
-       338,                                            /* U+000265 */
-       339,                                            /* U+000266 */
+       339,                                            /* U+000264 */
+       340,                                            /* U+000265 */
+       341,                                            /* U+000266 */
        0,                                                      /* U+000267 */
        244,                                            /* U+000268 */
        243,                                            /* U+000269 */
-       340,                                            /* U+00026A */
-       341,                                            /* U+00026B */
-       342,                                            /* U+00026C */
+       342,                                            /* U+00026A */
+       343,                                            /* U+00026B */
+       344,                                            /* U+00026C */
        0,                                                      /* U+00026D */
        0,                                                      /* U+00026E */
-       247,                                            /* U+00026F */
+       248,                                            /* U+00026F */
        0,                                                      /* U+000270 */
-       343,                                            /* U+000271 */
-       248,                                            /* U+000272 */
+       345,                                            /* U+000271 */
+       249,                                            /* U+000272 */
        0,                                                      /* U+000273 */
        0,                                                      /* U+000274 */
-       250,                                            /* U+000275 */
+       251,                                            /* U+000275 */
        0,                                                      /* U+000276 */
        0,                                                      /* U+000277 */
        0,                                                      /* U+000278 */
@@ -9236,28 +9371,28 @@ static const uint16 case_map[4631] =
        0,                                                      /* U+00027A */
        0,                                                      /* U+00027B */
        0,                                                      /* U+00027C */
-       344,                                            /* U+00027D */
+       346,                                            /* U+00027D */
        0,                                                      /* U+00027E */
        0,                                                      /* U+00027F */
-       254,                                            /* U+000280 */
+       255,                                            /* U+000280 */
        0,                                                      /* U+000281 */
-       345,                                            /* U+000282 */
-       256,                                            /* U+000283 */
+       347,                                            /* U+000282 */
+       257,                                            /* U+000283 */
        0,                                                      /* U+000284 */
        0,                                                      /* U+000285 */
        0,                                                      /* U+000286 */
-       346,                                            /* U+000287 */
-       258,                                            /* U+000288 */
-       326,                                            /* U+000289 */
-       260,                                            /* U+00028A */
-       261,                                            /* U+00028B */
-       327,                                            /* U+00028C */
+       348,                                            /* U+000287 */
+       259,                                            /* U+000288 */
+       327,                                            /* U+000289 */
+       261,                                            /* U+00028A */
+       262,                                            /* U+00028B */
+       328,                                            /* U+00028C */
        0,                                                      /* U+00028D */
        0,                                                      /* U+00028E */
        0,                                                      /* U+00028F */
        0,                                                      /* U+000290 */
        0,                                                      /* U+000291 */
-       264,                                            /* U+000292 */
+       265,                                            /* U+000292 */
        0,                                                      /* U+000293 */
        0,                                                      /* U+000294 */
        0,                                                      /* U+000295 */
@@ -9268,8 +9403,8 @@ static const uint16 case_map[4631] =
        0,                                                      /* U+00029A */
        0,                                                      /* U+00029B */
        0,                                                      /* U+00029C */
-       347,                                            /* U+00029D */
-       348,                                            /* U+00029E */
+       349,                                            /* U+00029D */
+       350,                                            /* U+00029E */
        0,                                                      /* U+00029F */
        0,                                                      /* U+0002A0 */
        0,                                                      /* U+0002A1 */
@@ -9436,7 +9571,7 @@ static const uint16 case_map[4631] =
        0,                                                      /* U+000342 */
        0,                                                      /* U+000343 */
        0,                                                      /* U+000344 */
-       349,                                            /* U+000345 */
+       351,                                            /* U+000345 */
        0,                                                      /* U+000346 */
        0,                                                      /* U+000347 */
        0,                                                      /* U+000348 */
@@ -9479,280 +9614,280 @@ static const uint16 case_map[4631] =
        0,                                                      /* U+00036D */
        0,                                                      /* U+00036E */
        0,                                                      /* U+00036F */
-       350,                                            /* U+000370 */
-       350,                                            /* U+000371 */
-       351,                                            /* U+000372 */
-       351,                                            /* U+000373 */
+       352,                                            /* U+000370 */
+       352,                                            /* U+000371 */
+       353,                                            /* U+000372 */
+       353,                                            /* U+000373 */
        0,                                                      /* U+000374 */
        0,                                                      /* U+000375 */
-       352,                                            /* U+000376 */
-       352,                                            /* U+000377 */
+       354,                                            /* U+000376 */
+       354,                                            /* U+000377 */
        0,                                                      /* U+000378 */
        0,                                                      /* U+000379 */
        0,                                                      /* U+00037A */
-       353,                                            /* U+00037B */
-       354,                                            /* U+00037C */
-       355,                                            /* U+00037D */
+       355,                                            /* U+00037B */
+       356,                                            /* U+00037C */
+       357,                                            /* U+00037D */
        0,                                                      /* U+00037E */
-       356,                                            /* U+00037F */
+       358,                                            /* U+00037F */
        0,                                                      /* U+000380 */
        0,                                                      /* U+000381 */
        0,                                                      /* U+000382 */
        0,                                                      /* U+000383 */
        0,                                                      /* U+000384 */
        0,                                                      /* U+000385 */
-       357,                                            /* U+000386 */
+       359,                                            /* U+000386 */
        0,                                                      /* U+000387 */
-       358,                                            /* U+000388 */
-       359,                                            /* U+000389 */
-       360,                                            /* U+00038A */
+       360,                                            /* U+000388 */
+       361,                                            /* U+000389 */
+       362,                                            /* U+00038A */
        0,                                                      /* U+00038B */
-       361,                                            /* U+00038C */
+       363,                                            /* U+00038C */
        0,                                                      /* U+00038D */
-       362,                                            /* U+00038E */
-       363,                                            /* U+00038F */
-       364,                                            /* U+000390 */
-       365,                                            /* U+000391 */
-       366,                                            /* U+000392 */
-       367,                                            /* U+000393 */
-       368,                                            /* U+000394 */
-       369,                                            /* U+000395 */
-       370,                                            /* U+000396 */
-       371,                                            /* U+000397 */
-       372,                                            /* U+000398 */
-       373,                                            /* U+000399 */
-       374,                                            /* U+00039A */
-       375,                                            /* U+00039B */
-       376,                                            /* U+00039C */
-       377,                                            /* U+00039D */
-       378,                                            /* U+00039E */
-       379,                                            /* U+00039F */
-       380,                                            /* U+0003A0 */
-       381,                                            /* U+0003A1 */
+       364,                                            /* U+00038E */
+       365,                                            /* U+00038F */
+       366,                                            /* U+000390 */
+       367,                                            /* U+000391 */
+       368,                                            /* U+000392 */
+       369,                                            /* U+000393 */
+       370,                                            /* U+000394 */
+       371,                                            /* U+000395 */
+       372,                                            /* U+000396 */
+       373,                                            /* U+000397 */
+       374,                                            /* U+000398 */
+       375,                                            /* U+000399 */
+       376,                                            /* U+00039A */
+       377,                                            /* U+00039B */
+       378,                                            /* U+00039C */
+       379,                                            /* U+00039D */
+       380,                                            /* U+00039E */
+       381,                                            /* U+00039F */
+       382,                                            /* U+0003A0 */
+       383,                                            /* U+0003A1 */
        0,                                                      /* U+0003A2 */
-       382,                                            /* U+0003A3 */
-       383,                                            /* U+0003A4 */
-       384,                                            /* U+0003A5 */
-       385,                                            /* U+0003A6 */
-       386,                                            /* U+0003A7 */
-       387,                                            /* U+0003A8 */
-       388,                                            /* U+0003A9 */
-       389,                                            /* U+0003AA */
-       390,                                            /* U+0003AB */
-       357,                                            /* U+0003AC */
-       358,                                            /* U+0003AD */
-       359,                                            /* U+0003AE */
-       360,                                            /* U+0003AF */
-       391,                                            /* U+0003B0 */
-       365,                                            /* U+0003B1 */
-       366,                                            /* U+0003B2 */
-       367,                                            /* U+0003B3 */
-       368,                                            /* U+0003B4 */
-       369,                                            /* U+0003B5 */
-       370,                                            /* U+0003B6 */
-       371,                                            /* U+0003B7 */
-       372,                                            /* U+0003B8 */
-       373,                                            /* U+0003B9 */
-       374,                                            /* U+0003BA */
-       375,                                            /* U+0003BB */
-       376,                                            /* U+0003BC */
-       377,                                            /* U+0003BD */
-       378,                                            /* U+0003BE */
-       379,                                            /* U+0003BF */
-       380,                                            /* U+0003C0 */
-       381,                                            /* U+0003C1 */
-       392,                                            /* U+0003C2 */
-       393,                                            /* U+0003C3 */
-       383,                                            /* U+0003C4 */
-       384,                                            /* U+0003C5 */
-       385,                                            /* U+0003C6 */
-       386,                                            /* U+0003C7 */
-       387,                                            /* U+0003C8 */
-       388,                                            /* U+0003C9 */
-       389,                                            /* U+0003CA */
-       390,                                            /* U+0003CB */
-       361,                                            /* U+0003CC */
-       362,                  &nbs