diff --git a/glibc-2.20-i586-hptiming.patch b/glibc-2.20-i586-hptiming.patch new file mode 100644 index 0000000..63d4d5a --- /dev/null +++ b/glibc-2.20-i586-hptiming.patch @@ -0,0 +1,122 @@ +2011-2014 Thomas Backlund + + * Rebased / adapted for new glibc + +2006-05-17 Gwenole Beauchesne + + * Update and simplify for glibc 2.4.90. + +2002-12-07 Gwenole Beauchesne + + Let an i586 rtld load i686 libraries (especially libpthread) + + * elf/rtld.c (HP_TIMING_AVAIL): Redefine to HP_TIMING_HWCAP_AVAIL + since early statistics require high-precision timers. + * sysdeps/generic/ldsodefs.h (rtld_global): Declare + _dl_cpuclock_offset if HP_TIMING_HWCAP_AVAIL is defined too. + + * sysdeps/unix/sysv/linux/i386/i586/Makefile: New file. + * sysdeps/unix/sysv/linux/i386/i586/hp-timing.c: New file. + * sysdeps/unix/sysv/linux/i386/i586/hp-timing.h: New file. +--- + elf/rtld.c | 12 ++++++++++- + sysdeps/generic/ldsodefs.h | 2 - + sysdeps/i386/i586/Makefile | 4 +++ + sysdeps/i386/i586/hp-timing.c | 2 + + sysdeps/i386/i586/hp-timing.h | 43 ++++++++++++++++++++++++++++++++++++++++++ + +diff -Nurp glibc-2.20.orig/elf/rtld.c glibc-2.20/elf/rtld.c +--- glibc-2.20.orig/elf/rtld.c 2014-09-07 11:09:09.000000000 +0300 ++++ glibc-2.20/elf/rtld.c 2014-09-08 18:12:17.640928030 +0300 +@@ -16,6 +16,9 @@ + License along with the GNU C Library; if not, see + . */ + ++/* Early statistics require high-precision timing. */ ++#define NEED_HP_TIMING_HWCAP_AVAIL 1 ++ + #include + #include + #include +@@ -195,6 +198,12 @@ static void dl_main (const ElfW(Phdr) *p + static struct libname_list _dl_rtld_libname; + static struct libname_list _dl_rtld_libname2; + ++/* Run-time detect availability of high-precision timer? */ ++#ifdef HP_TIMING_HWCAP_AVAIL ++# undef HP_SMALL_TIMING_AVAIL ++# define HP_SMALL_TIMING_AVAIL HP_TIMING_HWCAP_AVAIL ++#endif ++ + /* Variable for statistics. */ + #ifndef HP_TIMING_NONAVAIL + static hp_timing_t relocate_time; +@@ -296,7 +305,8 @@ _dl_start_final (void *arg, struct dl_st + # endif + #endif + +- HP_TIMING_NOW (GL(dl_cpuclock_offset)); ++ if (HP_SMALL_TIMING_AVAIL) ++ HP_TIMING_NOW (GL(dl_cpuclock_offset)); + + /* Initialize the stack end variable. */ + __libc_stack_end = __builtin_frame_address (0); +diff -Nurp glibc-2.20.orig/sysdeps/generic/ldsodefs.h glibc-2.20/sysdeps/generic/ldsodefs.h +--- glibc-2.20.orig/sysdeps/generic/ldsodefs.h 2014-09-07 11:09:09.000000000 +0300 ++++ glibc-2.20/sysdeps/generic/ldsodefs.h 2014-09-08 18:17:19.655631175 +0300 +@@ -319,7 +319,7 @@ struct rtld_global + /* The object to be initialized first. */ + EXTERN struct link_map *_dl_initfirst; + +-#if HP_SMALL_TIMING_AVAIL ++#if HP_SMALL_TIMING_AVAIL || defined HP_TIMING_HWCAP_AVAIL + /* Start time on CPU clock. */ + EXTERN hp_timing_t _dl_cpuclock_offset; + #endif +diff -Nurp glibc-2.20.orig/sysdeps/i386/i586/hp-timing.h glibc-2.20/sysdeps/i386/i586/hp-timing.h +--- glibc-2.20.orig/sysdeps/i386/i586/hp-timing.h 1970-01-01 02:00:00.000000000 +0200 ++++ glibc-2.20/sysdeps/i386/i586/hp-timing.h 2014-09-08 18:07:38.466353624 +0300 +@@ -0,0 +1,43 @@ ++#ifndef _HP_HWCAP_TIMING_H ++#define _HP_HWCAP_TIMING_H 1 ++ ++/* We can use the i686 implementation with slight changes. */ ++#include ++ ++/* We need the definition of HWCAP_I386_TSC. */ ++#include ++ ++/* We need to perform a runtime check for the timestamp register. */ ++#undef HP_SMALL_TIMING_AVAIL ++#define HP_SMALL_TIMING_AVAIL (0) ++ ++/* HP_TIMING_HWCAP_AVAIL: this macro performs a run-time check for the ++ capability. */ ++#define HP_TIMING_HWCAP_AVAIL (_dl_hp_timing_avail()) ++ ++/* Perform the TSC check. */ ++#ifdef NEED_HP_TIMING_HWCAP_AVAIL ++static inline ++unsigned int ++_dl_cpuid_edx (unsigned int op) ++{ ++ unsigned int edx; ++ __asm__ __volatile__("push %%ebx ; cpuid ; pop %%ebx" ++ : "=d" (edx) : "a" (op) : "ecx"); ++ return edx; ++} ++ ++static int ++internal_function ++_dl_hp_timing_avail (void) ++{ ++ static int has_tsc = -1; ++ ++ if (__builtin_expect (has_tsc == -1, 0)) ++ has_tsc = (_dl_cpuid_edx(1) & HWCAP_I386_TSC) == HWCAP_I386_TSC; ++ ++ return has_tsc; ++} ++#endif ++ ++#endif /* hp-timing.h */ diff --git a/glibc-2.22-blacklist-CPUs-from-lock-elision.patch b/glibc-2.22-blacklist-CPUs-from-lock-elision.patch new file mode 100644 index 0000000..cb6a543 --- /dev/null +++ b/glibc-2.22-blacklist-CPUs-from-lock-elision.patch @@ -0,0 +1,92 @@ +--- glibc-2.24/sysdeps/unix/sysv/linux/x86/elision-conf.c.0091~ 2016-08-02 04:01:36.000000000 +0200 ++++ glibc-2.24/sysdeps/unix/sysv/linux/x86/elision-conf.c 2016-08-17 17:04:53.815350950 +0200 +@@ -66,8 +66,11 @@ elision_init (int argc __attribute__ ((u + #ifdef ENABLE_LOCK_ELISION + __pthread_force_elision = __libc_enable_secure ? 0 : __elision_available; + #endif +- if (!HAS_CPU_FEATURE (RTM)) ++ if (!HAS_CPU_FEATURE (RTM)) { + __elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */ ++ __elision_available = 0; ++ __pthread_force_elision = 0; ++ } + } + + #ifdef SHARED +--- glibc-2.24/sysdeps/x86/cpu-features.c.0091~ 2016-08-02 04:01:36.000000000 +0200 ++++ glibc-2.24/sysdeps/x86/cpu-features.c 2016-08-17 17:10:06.401454187 +0200 +@@ -22,7 +22,7 @@ + static void + get_common_indeces (struct cpu_features *cpu_features, + unsigned int *family, unsigned int *model, +- unsigned int *extended_model) ++ unsigned int *extended_model, unsigned int *stepping) + { + if (family) + { +@@ -34,6 +34,7 @@ get_common_indeces (struct cpu_features + *family = (eax >> 8) & 0x0f; + *model = (eax >> 4) & 0x0f; + *extended_model = (eax >> 12) & 0xf0; ++ *stepping = eax & 0x0f; + if (*family == 0x0f) + { + *family += (eax >> 20) & 0xff; +@@ -97,6 +98,7 @@ init_cpu_features (struct cpu_features * + unsigned int ebx, ecx, edx; + unsigned int family = 0; + unsigned int model = 0; ++ unsigned int stepping = 0; + enum cpu_features_kind kind; + + #if !HAS_CPUID +@@ -116,7 +118,7 @@ init_cpu_features (struct cpu_features * + + kind = arch_kind_intel; + +- get_common_indeces (cpu_features, &family, &model, &extended_model); ++ get_common_indeces (cpu_features, &family, &model, &extended_model, &stepping); + + if (family == 0x06) + { +@@ -213,7 +215,7 @@ init_cpu_features (struct cpu_features * + + kind = arch_kind_amd; + +- get_common_indeces (cpu_features, &family, &model, &extended_model); ++ get_common_indeces (cpu_features, &family, &model, &extended_model, &stepping); + + ecx = cpu_features->cpuid[COMMON_CPUID_INDEX_1].ecx; + +@@ -250,7 +252,7 @@ init_cpu_features (struct cpu_features * + else + { + kind = arch_kind_other; +- get_common_indeces (cpu_features, NULL, NULL, NULL); ++ get_common_indeces (cpu_features, NULL, NULL, NULL, NULL); + } + + /* Support i586 if CX8 is available. */ +@@ -265,6 +267,12 @@ init_cpu_features (struct cpu_features * + no_cpuid: + #endif + ++ /* Disable Intel TSX (HLE and RTM) due to erratum HSD136/HSW136 ++ on Haswell processors */ ++ if (kind == arch_kind_intel && family == 6 && ++ ((model == 63 && stepping <= 2) || (model == 60 && stepping <= 3) || ++ (model == 69 && stepping <= 1) || (model == 70 && stepping <= 1))) ++ cpu_features->cpuid[COMMON_CPUID_INDEX_7].ebx &= ~(bit_cpu_RTM | bit_cpu_HLE); + cpu_features->family = family; + cpu_features->model = model; + cpu_features->kind = kind; +--- glibc-2.24/sysdeps/x86/cpu-features.h.0091~ 2016-08-02 04:01:36.000000000 +0200 ++++ glibc-2.24/sysdeps/x86/cpu-features.h 2016-08-17 17:04:53.815350950 +0200 +@@ -57,6 +57,7 @@ + /* COMMON_CPUID_INDEX_7. */ + #define bit_cpu_ERMS (1 << 9) + #define bit_cpu_RTM (1 << 11) ++#define bit_cpu_HLE (1 << 4) + #define bit_cpu_AVX2 (1 << 5) + #define bit_cpu_AVX512F (1 << 16) + #define bit_cpu_AVX512DQ (1 << 17) diff --git a/glibc-bug-regex-gcc5.patch b/glibc-bug-regex-gcc5.patch new file mode 100644 index 0000000..c5a704e --- /dev/null +++ b/glibc-bug-regex-gcc5.patch @@ -0,0 +1,140 @@ +Index: glibc-2.22-193-g315267a/posix/bug-regex11.c +=================================================================== +--- glibc-2.22-193-g315267a.orig/posix/bug-regex11.c ++++ glibc-2.22-193-g315267a/posix/bug-regex11.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + /* Tests supposed to match. */ + struct +@@ -119,6 +120,14 @@ main (void) + continue; + } + ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since n is limited to ++ static nmatch which is limited to at most 5 (see tests above). ++ This is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (n = 0; n < tests[i].nmatch; ++n) + if (rm[n].rm_so != tests[i].rm[n].rm_so + || rm[n].rm_eo != tests[i].rm[n].rm_eo) +@@ -130,6 +139,7 @@ main (void) + ret = 1; + break; + } ++ DIAG_POP_NEEDS_COMMENT + + regfree (&re); + } +Index: glibc-2.22-193-g315267a/posix/bug-regex17.c +=================================================================== +--- glibc-2.22-193-g315267a.orig/posix/bug-regex17.c ++++ glibc-2.22-193-g315267a/posix/bug-regex17.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + /* Tests supposed to match. */ + struct +@@ -87,6 +88,14 @@ do_test (void) + continue; + } + ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since n is limited to ++ static nmatch which is limited to at most 5 (see tests above). ++ This is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (n = 0; n < tests[i].nmatch; ++n) + if (rm[n].rm_so != tests[i].rm[n].rm_so + || rm[n].rm_eo != tests[i].rm[n].rm_eo) +@@ -98,6 +107,7 @@ do_test (void) + ret = 1; + break; + } ++ DIAG_POP_NEEDS_COMMENT + + regfree (&re); + } +Index: glibc-2.22-193-g315267a/posix/bug-regex18.c +=================================================================== +--- glibc-2.22-193-g315267a.orig/posix/bug-regex18.c ++++ glibc-2.22-193-g315267a/posix/bug-regex18.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + /* Tests supposed to match. */ + struct +@@ -80,6 +81,14 @@ main (void) + continue; + } + ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since n is limited to ++ static nmatch which is limited to at most 5 (see tests above). ++ This is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (n = 0; n < tests[i].nmatch; ++n) + if (rm[n].rm_so != tests[i].rm[n].rm_so + || rm[n].rm_eo != tests[i].rm[n].rm_eo) +@@ -91,6 +100,7 @@ main (void) + ret = 1; + break; + } ++ DIAG_POP_NEEDS_COMMENT + + regfree (&re); + } +Index: glibc-2.22-193-g315267a/posix/bug-regex30.c +=================================================================== +--- glibc-2.22-193-g315267a.orig/posix/bug-regex30.c ++++ glibc-2.22-193-g315267a/posix/bug-regex30.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + + /* Tests supposed to match. */ + struct +@@ -80,6 +81,14 @@ do_test (void) + continue; + } + ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since n is limited to ++ static nmatch which is limited to at most 5 (see tests above). ++ This is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (n = 0; n < tests[i].nmatch; ++n) + if (rm[n].rm_so != tests[i].rm[n].rm_so + || rm[n].rm_eo != tests[i].rm[n].rm_eo) +@@ -91,6 +100,7 @@ do_test (void) + ret = 1; + break; + } ++ DIAG_POP_NEEDS_COMMENT + + regfree (&re); + } diff --git a/glibc-c-utf8-locale.patch b/glibc-c-utf8-locale.patch new file mode 100644 index 0000000..7fabf30 --- /dev/null +++ b/glibc-c-utf8-locale.patch @@ -0,0 +1,270 @@ +From 2eda7b462b415105f5a05c1323372d4e39d46439 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Mon, 10 Aug 2015 15:58:12 +0200 +Subject: [PATCH] Add a C.UTF-8 locale + +--- + localedata/SUPPORTED | 1 + + localedata/locales/C | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 239 insertions(+) + create mode 100644 localedata/locales/C + +diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED +index 8ca023e..2a78391 100644 +--- a/localedata/SUPPORTED ++++ b/localedata/SUPPORTED +@@ -1,6 +1,7 @@ + # This file names the currently supported and somewhat tested locales. + # If you have any additions please file a glibc bug report. + SUPPORTED-LOCALES=\ ++C.UTF-8/UTF-8 \ + aa_DJ.UTF-8/UTF-8 \ + aa_DJ/ISO-8859-1 \ + aa_ER/UTF-8 \ +diff --git a/localedata/locales/C b/localedata/locales/C +new file mode 100644 +index 0000000..fdf460e +--- /dev/null ++++ b/localedata/locales/C +@@ -0,0 +1,238 @@ ++escape_char / ++comment_char % ++% Locale for C locale in UTF-8 ++ ++LC_IDENTIFICATION ++title "C locale" ++source "" ++address "" ++contact "" ++email "mfabian@redhat.com" ++tel "" ++fax "" ++language "C" ++territory "" ++revision "1.0" ++date "2015-08-10" ++% ++category "i18n:2012";LC_IDENTIFICATION ++category "i18n:2012";LC_CTYPE ++category "i18n:2012";LC_COLLATE ++category "i18n:2012";LC_TIME ++category "i18n:2012";LC_NUMERIC ++category "i18n:2012";LC_MONETARY ++category "i18n:2012";LC_MESSAGES ++category "i18n:2012";LC_PAPER ++category "i18n:2012";LC_NAME ++category "i18n:2012";LC_ADDRESS ++category "i18n:2012";LC_TELEPHONE ++category "i18n:2012";LC_MEASUREMENT ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++ ++translit_start ++include "translit_combining";"" ++translit_end ++ ++END LC_CTYPE ++ ++LC_COLLATE ++order_start forward ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++ ++.. ++ ++UNDEFINED ++order_end ++END LC_COLLATE ++ ++LC_MONETARY ++% This is the 14652 i18n fdcc-set definition for ++% the LC_MONETARY category ++% (except for the int_curr_symbol and currency_symbol, they are empty in ++% the 14652 i18n fdcc-set definition and also empty in ++% glibc/locale/C-monetary.c. But localedef complains in that case). ++% ++% Using "USD" for int_curr_symbol. But maybe "XXX" would be better? ++% XXX is "No currency" (https://en.wikipedia.org/wiki/ISO_4217) ++int_curr_symbol "" ++% Using "$" for currency_symbol. But maybe would be better? ++% U+00A4 is the "generic currency symbol" ++% (https://en.wikipedia.org/wiki/Currency_sign_%28typography%29) ++currency_symbol "" ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping -1 ++positive_sign "" ++negative_sign "" ++int_frac_digits -1 ++frac_digits -1 ++p_cs_precedes -1 ++int_p_sep_by_space -1 ++p_sep_by_space -1 ++n_cs_precedes -1 ++int_n_sep_by_space -1 ++n_sep_by_space -1 ++p_sign_posn -1 ++n_sign_posn -1 ++% ++END LC_MONETARY ++ ++LC_NUMERIC ++% This is the POSIX Locale definition for ++% the LC_NUMERIC category. ++% ++decimal_point "" ++thousands_sep "" ++grouping -1 ++END LC_NUMERIC ++ ++LC_TIME ++% This is the POSIX Locale definition for ++% the LC_TIME category. ++% ++% Abbreviated weekday names (%a) ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++ ++% Full weekday names (%A) ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% Abbreviated month names (%b) ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++ ++% Full month names (%B) ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% Week description, consists of three fields: ++% 1. Number of days in a week. ++% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday). ++% 3. The weekday number to be contained in the first week of the year. ++% ++% ISO 8601 conforming applications should use the values 7, 19971201 (a ++% Monday), and 4 (Thursday), respectively. ++week 7;19971201;4 ++first_weekday 1 ++first_workday 1 ++ ++% Appropriate date and time representation (%c) ++% "%a %b %e %H:%M:%S %Y" ++d_t_fmt "" ++ ++% Appropriate date representation (%x) ++% "%m/%d/%y" ++d_fmt "" ++ ++% Appropriate time representation (%X) ++% "%H:%M:%S" ++t_fmt "" ++ ++% Appropriate AM/PM time representation (%r) ++% "%I:%M:%S %p" ++t_fmt_ampm "" ++ ++% Equivalent of AM/PM (%p) "AM"/"PM" ++% ++am_pm "";"" ++ ++% Appropriate date representation (date(1)) "%a %b %e %H:%M:%S %Z %Y" ++date_fmt "" ++END LC_TIME ++ ++LC_MESSAGES ++% This is the POSIX Locale definition for ++% the LC_NUMERIC category. ++% ++yesexpr "" ++noexpr "" ++yesstr "" ++nostr "" ++END LC_MESSAGES ++ ++LC_PAPER ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_PAPER category. ++% (A4 paper, this is also used in the built in C/POSIX ++% locale in glibc/locale/C-paper.c) ++height 297 ++width 210 ++END LC_PAPER ++ ++LC_NAME ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_NAME category. ++% "%p%t%g%t%m%t%f" ++% (also used in the built in C/POSIX locale in glibc/locale/C-name.c) ++name_fmt "/ ++" ++END LC_NAME ++ ++LC_ADDRESS ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_ADDRESS category. ++% "%a%N%f%N%d%N%b%N%s %h %e %r%N%C-%z %T%N%c%N" ++% (also used in the built in C/POSIX locale in glibc/locale/C-address.c) ++postal_fmt "/ ++/ ++/ ++/ ++" ++END LC_ADDRESS ++ ++LC_TELEPHONE ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_TELEPHONE category. ++% "+%c %a %l" ++tel_int_fmt "/ ++" ++% (also used in the built in C/POSIX locale in glibc/locale/C-telephone.c) ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++% This is the ISO/IEC 14652 "i18n" definition for ++% the LC_MEASUREMENT category. ++% (same as in the built in C/POSIX locale in glibc/locale/C-measurement.c) ++%metric ++measurement 1 ++END LC_MEASUREMENT ++ +-- +2.4.3 + diff --git a/glibc-dns-host-gcc5.patch b/glibc-dns-host-gcc5.patch new file mode 100644 index 0000000..3810a6e --- /dev/null +++ b/glibc-dns-host-gcc5.patch @@ -0,0 +1,32 @@ +Index: glibc-2.23-276-gb65b205/resolv/nss_dns/dns-host.c +=================================================================== +--- glibc-2.23-276-gb65b205.orig/resolv/nss_dns/dns-host.c ++++ glibc-2.23-276-gb65b205/resolv/nss_dns/dns-host.c +@@ -78,6 +78,7 @@ + #include + #include + #include ++#include + + #include "nsswitch.h" + +@@ -566,10 +567,19 @@ addrsort (char **ap, int num) + num = MAX_NR_ADDRS; + for (i = 0; i < num; i++, p++) + { ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since i is limited to ++ _res.nsort which is limited to MAXRESOLVSORT. This ++ is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (j = 0 ; (unsigned)j < _res.nsort; j++) + if (_res.sort_list[j].addr.s_addr == + (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask)) + break; ++ DIAG_POP_NEEDS_COMMENT + aval[i] = j; + if (needsort == 0 && i > 0 && j < aval[i-1]) + needsort = i; diff --git a/glibc-dso_deps.patch b/glibc-dso_deps.patch new file mode 100644 index 0000000..d90a750 --- /dev/null +++ b/glibc-dso_deps.patch @@ -0,0 +1,289 @@ +--- glibc-2.21/elf/dl-deps.c.dsodeps~ 2015-02-06 07:40:18.000000000 +0100 ++++ glibc-2.21/elf/dl-deps.c 2015-02-07 14:32:43.667285775 +0100 +@@ -152,6 +152,56 @@ preload (struct list *known, unsigned in + map->l_reserved = 1; + } + ++static int compare (struct link_map *a, struct link_map *b) ++{ ++ struct link_map **r, **s; ++ /* Check if must swap */ ++ if ((r = b->l_initfini)) ++ { ++ while (*r) ++ if (*r++ == a) ++ return 1; ++ } ++ /* Check if must *not* swap */ ++ if ((r = a->l_initfini)) ++ { ++ while (*r) ++ if (*r++ == b) ++ return -1; ++ } ++ /* No direct dependency information */ ++ return 0; ++} ++ ++ ++static void ++sort (struct link_map **maps, size_t nmaps) ++{ ++ unsigned int i, k; ++ struct link_map *t; ++ ++ /* We can skip looking for the binary itself which is at the front ++ of the search list for the main namespace. */ ++ for (i = 1; i < nmaps; ++i) ++ { ++ /* Find the last object in the list for which the current one is ++ a dependency and move the current object behind the object ++ with the dependency. */ ++ for (k = i + 1; k < nmaps; ++k) ++ { ++ if (compare(maps[i], maps[k]) > 0) ++ { ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ t = maps[i]; ++ maps[i] = maps[k]; ++ maps[k] = t; ++ } ++ } ++ } ++} ++ ++ + void + internal_function + _dl_map_object_deps (struct link_map *map, +@@ -611,61 +661,7 @@ Filters not supported with LD_TRACE_PREL + memcpy (l_initfini, map->l_searchlist.r_list, + nlist * sizeof (struct link_map *)); + if (__glibc_likely (nlist > 1)) +- { +- /* We can skip looking for the binary itself which is at the front +- of the search list. */ +- i = 1; +- uint16_t seen[nlist]; +- memset (seen, 0, nlist * sizeof (seen[0])); +- while (1) +- { +- /* Keep track of which object we looked at this round. */ +- ++seen[i]; +- struct link_map *thisp = l_initfini[i]; +- +- /* Find the last object in the list for which the current one is +- a dependency and move the current object behind the object +- with the dependency. */ +- unsigned int k = nlist - 1; +- while (k > i) +- { +- struct link_map **runp = l_initfini[k]->l_initfini; +- if (runp != NULL) +- /* Look through the dependencies of the object. */ +- while (*runp != NULL) +- if (__glibc_unlikely (*runp++ == thisp)) +- { +- /* Move the current object to the back past the last +- object with it as the dependency. */ +- memmove (&l_initfini[i], &l_initfini[i + 1], +- (k - i) * sizeof (l_initfini[0])); +- l_initfini[k] = thisp; +- +- if (seen[i + 1] > nlist - i) +- { +- ++i; +- goto next_clear; +- } +- +- uint16_t this_seen = seen[i]; +- memmove (&seen[i], &seen[i + 1], +- (k - i) * sizeof (seen[0])); +- seen[k] = this_seen; +- +- goto next; +- } +- +- --k; +- } +- +- if (++i == nlist) +- break; +- next_clear: +- memset (&seen[i], 0, (nlist - i) * sizeof (seen[0])); +- +- next:; +- } +- } ++ sort (l_initfini, nlist); + + /* Terminate the list of dependencies. */ + l_initfini[nlist] = NULL; +--- glibc-2.21/elf/dl-fini.c.dsodeps~ 2015-02-06 07:40:18.000000000 +0100 ++++ glibc-2.21/elf/dl-fini.c 2015-02-07 14:31:26.369897612 +0100 +@@ -26,101 +26,83 @@ + typedef void (*fini_t) (void); + + ++static int compare (struct link_map *a, struct link_map *b) ++{ ++ struct link_map **r; ++ /* Check if must swap */ ++ if ((r = b->l_initfini)) ++ { ++ while (*r) ++ if (*r++ == a) ++ return 1; ++ } ++ /* Check if must *not* swap */ ++ if ((r = a->l_initfini)) ++ { ++ while (*r) ++ if (*r++ == b) ++ return -1; ++ } ++ if (b->l_reldeps && a->l_initfini) ++ { ++ unsigned int m = b->l_reldeps->act; ++ struct link_map **relmaps = &b->l_reldeps->list[0]; ++ ++ /* Look through the relocation dependencies of the object. */ ++ while (m--) ++ if (relmaps[m] == a) ++ { ++ /* If a cycle exists with a link time dependency, ++ preserve the latter. */ ++ for (r = a->l_initfini; *r; ++r) ++ if (*r == b) ++ return -1; ++ return 1; ++ } ++ } ++ /* No direct dependency information */ ++ return 0; ++} ++ ++ + void + internal_function + _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns) + { +- /* A list of one element need not be sorted. */ +- if (nmaps == 1) +- return; +- +- /* We can skip looking for the binary itself which is at the front +- of the search list for the main namespace. */ +- unsigned int i = ns == LM_ID_BASE; +- uint16_t seen[nmaps]; +- memset (seen, 0, nmaps * sizeof (seen[0])); +- while (1) ++ unsigned int i, k; ++ struct link_map *t; ++ ++ /* We can skip looking for the binary itself which is at the front ++ of the search list for the main namespace. */ ++ for (i = ns == LM_ID_BASE; i < nmaps; ++i) + { +- /* Keep track of which object we looked at this round. */ +- ++seen[i]; +- struct link_map *thisp = maps[i]; ++ t = maps[i]; + + /* Do not handle ld.so in secondary namespaces and object which + are not removed. */ +- if (thisp != thisp->l_real || thisp->l_idx == -1) +- goto skip; ++ if (t != t->l_real || t->l_idx == -1) ++ continue; + + /* Find the last object in the list for which the current one is + a dependency and move the current object behind the object + with the dependency. */ +- unsigned int k = nmaps - 1; +- while (k > i) +- { +- struct link_map **runp = maps[k]->l_initfini; +- if (runp != NULL) +- /* Look through the dependencies of the object. */ +- while (*runp != NULL) +- if (__glibc_unlikely (*runp++ == thisp)) +- { +- move: +- /* Move the current object to the back past the last +- object with it as the dependency. */ +- memmove (&maps[i], &maps[i + 1], +- (k - i) * sizeof (maps[0])); +- maps[k] = thisp; +- +- if (used != NULL) +- { +- char here_used = used[i]; +- memmove (&used[i], &used[i + 1], +- (k - i) * sizeof (used[0])); +- used[k] = here_used; +- } +- +- if (seen[i + 1] > nmaps - i) +- { +- ++i; +- goto next_clear; +- } +- +- uint16_t this_seen = seen[i]; +- memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0])); +- seen[k] = this_seen; +- +- goto next; +- } +- +- if (__glibc_unlikely (maps[k]->l_reldeps != NULL)) ++ for (k = i + 1; k < nmaps; ++k) ++ { ++ if (compare(maps[i], maps[k]) > 0) + { +- unsigned int m = maps[k]->l_reldeps->act; +- struct link_map **relmaps = &maps[k]->l_reldeps->list[0]; +- +- /* Look through the relocation dependencies of the object. */ +- while (m-- > 0) +- if (__glibc_unlikely (relmaps[m] == thisp)) +- { +- /* If a cycle exists with a link time dependency, +- preserve the latter. */ +- struct link_map **runp = thisp->l_initfini; +- if (runp != NULL) +- while (*runp != NULL) +- if (__glibc_unlikely (*runp++ == maps[k])) +- goto ignore; +- goto move; +- } +- ignore:; +- } +- +- --k; ++ /* Move the current object to the back past the last ++ object with it as the dependency. */ ++ t = maps[i]; ++ maps[i] = maps[k]; ++ maps[k] = t; ++ if (used) ++ { ++ char c = used[i]; ++ used[i] = used[k]; ++ used[k] = c; ++ } ++ } + } +- +- skip: +- if (++i == nmaps) +- break; +- next_clear: +- memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0])); +- +- next:; + } + } + diff --git a/glibc-gcc-PR69537.patch b/glibc-gcc-PR69537.patch new file mode 100644 index 0000000..9f395d5 --- /dev/null +++ b/glibc-gcc-PR69537.patch @@ -0,0 +1,17 @@ +Work around incorrect -Wmaybe-uninitialized warning due to this GCC bug: + + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69537 + +Index: glibc-2.22-709-g8a71d2e/nis/ypclnt.c +=================================================================== +--- glibc-2.22-709-g8a71d2e.orig/nis/ypclnt.c ++++ glibc-2.22-709-g8a71d2e/nis/ypclnt.c +@@ -584,7 +584,7 @@ yp_master (const char *indomain, const c + { + ypreq_nokey req; + ypresp_master resp; +- enum clnt_stat result; ++ int result; + + if (indomain == NULL || indomain[0] == '\0' || + inmap == NULL || inmap[0] == '\0') diff --git a/glibc-gethnamaddr-gcc5.patch b/glibc-gethnamaddr-gcc5.patch new file mode 100644 index 0000000..92fa90f --- /dev/null +++ b/glibc-gethnamaddr-gcc5.patch @@ -0,0 +1,32 @@ +Index: glibc-2.23-276-gb65b205/resolv/gethnamaddr.c +=================================================================== +--- glibc-2.23-276-gb65b205.orig/resolv/gethnamaddr.c ++++ glibc-2.23-276-gb65b205/resolv/gethnamaddr.c +@@ -68,6 +68,7 @@ + #include + #include + #include ++#include + + #define MAXALIASES 35 + #define MAXADDRS 35 +@@ -864,10 +865,19 @@ addrsort (char **ap, int num) + + p = ap; + for (i = 0; i < num; i++, p++) { ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since i is limited to ++ _res.nsort which is limited to MAXRESOLVSORT. This ++ is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (j = 0 ; (unsigned)j < _res.nsort; j++) + if (_res.sort_list[j].addr.s_addr == + (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask)) + break; ++ DIAG_POP_NEEDS_COMMENT + aval[i] = j; + if (needsort == 0 && i > 0 && j < aval[i-1]) + needsort = i; diff --git a/glibc-ld-ctype-gcc5.patch b/glibc-ld-ctype-gcc5.patch new file mode 100644 index 0000000..78e7fd4 --- /dev/null +++ b/glibc-ld-ctype-gcc5.patch @@ -0,0 +1,72 @@ +Index: glibc-2.22-193-g315267a/locale/programs/ld-ctype.c +=================================================================== +--- glibc-2.22-193-g315267a.orig/locale/programs/ld-ctype.c ++++ glibc-2.22-193-g315267a/locale/programs/ld-ctype.c +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include "localedef.h" + #include "charmap.h" +@@ -2534,9 +2535,19 @@ with character code range values one mus + { + size_t cnt; + ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not possible since ctype_map_new prevents ++ map_collection_nr from being greater than MAX_NR_CHARMP which ++ is the size of mapnames. This is likely PR/59124 which is still ++ not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (cnt = 2; cnt < ctype->map_collection_nr; ++cnt) + if (strcmp (now->val.str.startmb, ctype->mapnames[cnt]) == 0) + break; ++ DIAG_POP_NEEDS_COMMENT + + if (cnt < ctype->map_collection_nr) + free (now->val.str.startmb); +@@ -2807,9 +2818,19 @@ previous definition was here"))); + + /* This could mean one of several things. First test whether + it's a character class name. */ ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not possible since ctype_class_new prevents ++ nr_charclass from being greater than MAX_NR_CHARCLASS which ++ is the size of classnames. This is likely PR/59124 which is still ++ not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (cnt = 0; cnt < ctype->nr_charclass; ++cnt) + if (strcmp (now->val.str.startmb, ctype->classnames[cnt]) == 0) + break; ++ DIAG_POP_NEEDS_COMMENT + if (cnt < ctype->nr_charclass) + { + class_bit = _ISwbit (cnt); +@@ -2817,9 +2838,19 @@ previous definition was here"))); + free (now->val.str.startmb); + goto read_charclass; + } ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not possible since ctype_map_new prevents ++ map_collection_nr from being greater than MAX_NR_CHARMP which ++ is the size of mapnames. This is likely PR/59124 which is still ++ not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + for (cnt = 0; cnt < ctype->map_collection_nr; ++cnt) + if (strcmp (now->val.str.startmb, ctype->mapnames[cnt]) == 0) + break; ++ DIAG_POP_NEEDS_COMMENT + if (cnt < ctype->map_collection_nr) + { + mapidx = cnt; diff --git a/glibc-res-hconf-gcc5.patch b/glibc-res-hconf-gcc5.patch new file mode 100644 index 0000000..4f5ae83 --- /dev/null +++ b/glibc-res-hconf-gcc5.patch @@ -0,0 +1,29 @@ +Index: glibc-2.22-386-g95e8397/resolv/res_hconf.c +=================================================================== +--- glibc-2.22-386-g95e8397.orig/resolv/res_hconf.c ++++ glibc-2.22-386-g95e8397/resolv/res_hconf.c +@@ -46,6 +46,7 @@ + #include "res_hconf.h" + #include + #include ++#include + + #if IS_IN (libc) + # define fgets_unlocked __fgets_unlocked +@@ -577,7 +578,16 @@ _res_hconf_trim_domain (char *hostname) + + for (i = 0; i < _res_hconf.num_trimdomains; ++i) + { ++ DIAG_PUSH_NEEDS_COMMENT ++#if __GNUC_PREREQ (5, 0) ++ /* GCC 5.0 warns about array subscript being above array bounds, ++ but that's not entirely possible since i is limited to ++ num_trimdomains which is limited to <= TRIMDOMAINS_MAX. This ++ is likely PR/59124 which is still not fixed. */ ++ DIAG_IGNORE_NEEDS_COMMENT (5.0, "-Warray-bounds") ++#endif + const char *trim = _res_hconf.trimdomain[i]; ++ DIAG_POP_NEEDS_COMMENT + + trim_len = strlen (trim); + if (hostname_len > trim_len diff --git a/glibc-rh1009145.patch b/glibc-rh1009145.patch new file mode 100644 index 0000000..c1af7fa --- /dev/null +++ b/glibc-rh1009145.patch @@ -0,0 +1,19 @@ +--- glibc-2.18-151-g303e567.orig/elf/ldconfig.c 2013-09-25 14:01:01.522446341 -0400 ++++ glibc-2.18-151-g303e567/elf/ldconfig.c 2013-09-25 14:06:31.094218857 -0400 +@@ -959,6 +959,16 @@ + || dlib_ptr->flag == FLAG_ELF_LIBC6) + && flag == FLAG_ELF) + dlib_ptr->flag = flag; ++#ifdef __arm__ ++ /* In Fedora 20 binutils regressed temporarily and failed to ++ mark hard ABI objects with the correct flag. Therefore we ++ must accept unmarked objects that were previously marked ++ hard ABI. We can remove this check once the entire distribution ++ has been rebuilt. */ ++ else if (dlib_ptr->flag & FLAG_ARM_LIBHF && ++ (flag == FLAG_ELF_LIBC6)) ++ ; ++#endif + else + error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."), + dlib_ptr->name, direntry->d_name, diff --git a/glibc-rh1013801.patch b/glibc-rh1013801.patch new file mode 100644 index 0000000..abcb8fa --- /dev/null +++ b/glibc-rh1013801.patch @@ -0,0 +1,90 @@ +# +# Posted upstream: +# https://sourceware.org/ml/libc-alpha/2013-10/msg00065.html +# +# This is related to bug 1013801 in that it fixes the problem +# by modifying the runtime. In bug 1013801 we have libselinux +# using pthread_atfork which pulls in libpthread, but we don't +# want that, we want libpthread to be pulled in only when +# actually needed by the application. This patch makes it +# possible to avoid requiring libpthread and still use +# pthread_atfork. +# +# The general idea for the design is in the leading comment +# in the source code. +# +diff --git a/nptl/sysdeps/unix/sysv/linux/Makefile b/nptl/sysdeps/unix/sysv/linux/Makefile +index 6078e2d..36fd50b 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -18,7 +18,9 @@ + + routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \ + libc-cleanup libc_pthread_init libc_multiple_threads \ +- register-atfork unregister-atfork ++ register-atfork unregister-atfork libc_pthread_atfork ++ ++static-only-routines += libc_pthread_atfork + shared-only-routines = forward + + libpthread-routines = nptl-init vars events version pt-interp \ +diff --git a/nptl/libc_pthread_atfork.c b/nptl/libc_pthread_atfork.c +new file mode 100644 +index 0000000..667049a +--- /dev/null ++++ b/nptl/libc_pthread_atfork.c +@@ -0,0 +1,54 @@ ++/* Copyright (C) 2013 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++/* The standard design pattern for making it optional to link against ++ libpthread is to mark the function weak, test if the function ++ address is non-zero and call the function, otherwise use a fallback. ++ The problem with pthread_atfork is that there is no viable ++ fallback. If you need to do something during fork it has to be done ++ via pthread_atfork. This makes having libpthread optional and using ++ pthread_atfork impossible. We make it possible by providing ++ pthread_atfork in libc_nonshared.a. The real work of pthread_atfork ++ is done by __register_atfork which is already provided in ++ libc_nonshared.a. It's included in libc_nonshared.a because ++ __dso_handle has to be unique to each DSO such that unloading the DSO ++ can unregister the atfork handlers. We build pthread_atfork again ++ under a different file name and include it into libc_nonshared.a and ++ libc.a. We keep pthread_atfork in libpthread_nonshared.a and ++ libpthread.a for compatibility and completeness. ++ ++ Applications that can't rely on a new glibc should use the following ++ code to optionally include libpthread and still register a function ++ via pthread_atfork i.e. use __register_atfork directly: ++ ++ extern void *__dso_handle __attribute__ ((__weak__, __visibility__ ("hidden"))); ++ extern int __register_atfork (void (*) (void), void (*) (void), void (*) (void), void *); ++ ++ static int __app_atfork (void (*prepare) (void), void (*parent) (void), void (*child) (void)) ++ { ++ return __register_atfork (prepare, parent, child, ++ &__dso_handle == NULL ? NULL : __dso_handle); ++ } ++ ++ This code requires glibc 2.3.2 or newer. Previous to 2.3.2 no such ++ interfaces exist and at that point is is impossible to have an ++ optional libpthread and call pthread_atfork. ++ ++ This code adds no more ABI requirements than already exist since ++ __dso_handle and __register_atfork are already part of the ABI. */ ++#include diff --git a/glibc-rh1070416.patch b/glibc-rh1070416.patch new file mode 100644 index 0000000..7e4235e --- /dev/null +++ b/glibc-rh1070416.patch @@ -0,0 +1,29 @@ +--- a/nscd/nscd.service ++++ b/nscd/nscd.service +@@ -2,6 +2,7 @@ + + [Unit] + Description=Name Service Cache Daemon ++After=syslog.target + + [Service] + Type=forking +@@ -17,3 +18,4 @@ + + [Install] + WantedBy=multi-user.target ++Also=nscd.socket +diff --git a/nscd/nscd.socket b/nscd/nscd.socket +new file mode 100644 +index 0000000..7e512d5 +--- /dev/null ++++ b/nscd/nscd.socket +@@ -0,0 +1,8 @@ ++[Unit] ++Description=Name Service Cache Daemon Socket ++ ++[Socket] ++ListenDatagram=/var/run/nscd/socket ++ ++[Install] ++WantedBy=sockets.target diff --git a/glibc-rh1315108.patch b/glibc-rh1315108.patch new file mode 100644 index 0000000..8b4e5fc --- /dev/null +++ b/glibc-rh1315108.patch @@ -0,0 +1,1946 @@ +From the upstream branch fw/extend_alloca. + +commit dc79f9aa56933dc8b475209f9a4059965b50ea26 +Author: Florian Weimer +Date: Sun Mar 1 18:29:47 2015 +0100 + + nscd restart: Use malloc instead of extend_alloca + + This introduces a separate function, read_cmdline, which reads the + contents of /proc/self/cmdline into a heap-allocated buffer. + + [BZ #18023] + * nscd/connections.c (read_cmdline): New function. + (restart): Use it. Update comment. + +commit 9bed8b7fca7867d3027b66ce3985a75136aed013 +Author: Florian Weimer +Date: Sun Mar 1 15:14:19 2015 +0100 + + getgrent_next_nss (compat-initgroups): Remove alloca fallback + + If the caller-supplied buffer is not large enough, fall back directly + malloc. + + The previous __libc_use_alloca check was incorrect because it did not + take into account that extend_alloca may fail to merge allocations, so + it would underestimate the stack space being used by roughly a factor + of two. + + [BZ #18023] + * nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Fall + back to malloc directly, without stack allocations. + +commit c95cc759ecb21f812872934ac55518aef28cf46b +Author: Florian Weimer +Date: Sun Mar 1 16:03:01 2015 +0100 + + _dl_map_object_deps: Use struct scratch_buffer instead of extend_alloca + + The function comment suggests that _dl_map_object_deps cannot use + malloc, but it already allocates the l_initfini array on the heap, so + the additional allocation should be acceptable. + + [BZ #18023] + * elf/dl-deps.c (_dl_map_object_deps): Use struct + scratch_buffer instead of extend_alloca. + +commit e38bff4db6f03d1fab732737f43a25160c3e4703 +Author: Florian Weimer +Date: Sun Mar 1 16:18:21 2015 +0100 + + _nss_nis_initgroups_dyn: Use struct scratch_buffer instead of extend_alloca + + Also adjusts the internal function get_uid. + + [BZ #18023] + * nis/nss_nis/nis-initgroups.c (get_uid, _nss_nis_initgroups_dyn): + Use struct scratch_buffer instead of extend_alloca. + +commit 8825d4709a686a870d313cc602d489ddd5354a08 +Author: Florian Weimer +Date: Sun Mar 1 18:55:33 2015 +0100 + + nscd: Use struct scratch_buffer instead of extend_alloca in most caches + + This replaces the ERANGE retry loops with loops which have heap + fallback. Heap allocation might actually be required for extremely + large NSS results. + + [BZ #18023] + * nscd/grpcache.c (addgrbyX): Use struct scratch_buffer instead + of extend_alloca. + * nscd/hstcache.c (addhstbyX): Likewise. + * nscd/pwdcache.c (addpwbyX): Likewise. + * nscd/servicescache.c (addservbyX): Likewise. + +commit 140d8711d446f5193b04b56e714ddf8d0eddbf62 +Author: Florian Weimer +Date: Sun Mar 1 18:59:48 2015 +0100 + + nscd: Switch to struct scratch_buffer in adhstaiX + + The pre-allocation of the three scratch buffers increased the initial + stack size somewhat, but if retries are needed, the previous version + used more stack space if extend_alloca could not merge allocations. + Lack of alloca accounting also means could be problematic with + extremely large NSS responses, too. + + [BZ #18023] + * nscd/aicache.c (addhstaiX): Use struct scratch_buffer instead + of extend_alloca. + +commit 1af14faef808f03276766e5ee6d9ee7dc9053fba +Author: Florian Weimer +Date: Sun Mar 1 19:03:01 2015 +0100 + + getent: Switch to struct scratch_buffer in initgroups_keys + + The retry loop is slightly different here because getgrouplist + provides size information, so scratch_buffer_set_array_size can be + used to grow the buffer in a more precise fashion. + + [BZ #18023] + * nss/getent.c (initgroups_keys): Use struct scratch_buffer + instead of extend_alloca. + +commit 9b71d3b4df6dd4e49f7638d1d936c921c50fa3d9 +Author: Florian Weimer +Date: Sun Mar 1 19:09:00 2015 +0100 + + nss_files: Use struct scratch_buffer instead of extend_alloca + + In both _nss_files_gethostbyname3_r and _nss_files_initgroups_dyn, + __libc_use_alloca was misused because it was not taken into account + that extend_alloca can fail to merge allocations. + + [BZ #18023] + * nss/nss_files/files-hosts.c (_nss_files_gethostbyname3_r): + Use struct scratch_buffer instead of extend_alloca. + * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): + Likewise. + +commit 11c2a8bad9ca5fe510b73c0204b3dcf703f14d5c +Author: Florian Weimer +Date: Sun Mar 1 19:11:55 2015 +0100 + + gethostid (Linux variant): Switch to struct scratch_buffer + + Previously, extend_alloca was used without alloca accounting, + which could have been problematic with large NSS results. + + [BZ #18023] + * sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use struct + scratch_buffer instead of extend_alloca. + +commit 6de00dd8a3a76d0b7586393451e65ad6c2721a71 +Author: Florian Weimer +Date: Sun Mar 1 19:14:29 2015 +0100 + + getlogin_r (Linux variant): Switch to struct scratch_buffer + + This corrects the alloca accounting as a side effect. It was not off + if extend_alloca failed to merge allocations. + + [BZ #18023] + * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): + Use struct scratch_buffer instead of extend_alloca. + +commit 488063238ee5c87b66c6982b1b6d508e30e44386 +Author: Florian Weimer +Date: Sun Mar 1 19:48:31 2015 +0100 + + wordexp: Rewrite parse_tilde to use struct scratch_buffer + + [BZ #18023] + * posix/wordexp.c (parse_tilde): Use struct scratch_buffer + instead of extend_alloca. + +commit 7b4c16db30304b83a5d1e913d1a8f7e90a8c398c +Author: Florian Weimer +Date: Sun Mar 1 19:49:50 2015 +0100 + + glob: Rewrite to use struct scratch_buffer instead of extend_alloca + + [BZ #18023] + * posix/glob.c (glob): Use struct scratch_buffer instead of + extend_alloca. + +commit 683543bbb3e2c1b17554c4096d00c2980f39a802 +Author: Florian Weimer +Date: Sun Mar 1 23:22:45 2015 +0100 + + Remove macros extend_alloca, extend_alloca_account [BZ #18023] + + And also the helper macro stackinfo_alloca_round. + + extend_alloca simply does not work on x86_64 and current i386 because + its peculiar stack alignment rules. + + Here's an analysis of the _dl_fini situation (before the removal of + extend_alloca). + + Dump of assembler code for function _dl_fini: + <+0>: push %rbp + <+1>: mov %rsp,%rbp + <+4>: push %r15 + <+6>: push %r14 + <+8>: push %r13 + <+10>: push %r12 + <+12>: push %rbx + <+13>: sub $0x38,%rsp + + The function pushes 6 registers on the stack and allocates 0x38 bytes, + which means that %rsp is a multiple of 16 after function prologue. + + The initial alloca allocation does not change %rsp alignment: + + <+210>: shr $0x4,%rcx + <+214>: shl $0x4,%rcx + <+218>: sub %rcx,%rsp + + %r15 is the address of the previous stack allocation, it is used below. + + This is the extend_alloca reallocation branch: + + <+734>: add $0xf,%rdx + <+738>: and $0xfffffffffffffff0,%rdx + <+742>: lea 0x1e(%rdx),%rcx + <+746>: shr $0x4,%rcx + <+750>: shl $0x4,%rcx + <+754>: sub %rcx,%rsp + <+757>: lea 0xf(%rsp),%rcx + <+762>: and $0xfffffffffffffff0,%rcx + <+766>: lea (%rcx,%rdx,1),%rsi + <+770>: cmp %rsi,%r15 + <+773>: je 0x7f963940b673 <_dl_fini+787> + <+775>: mov %rdx,-0x58(%rbp) + <+787>: add %rdx,-0x58(%rbp) + + (a) %rdx, the new requested size, is rounded up to a multiple of 16 + (+734, %+738), and the result is stored in %rdx@738. + + (b) %rdx@738 + 31 is rounded down to a multiple of 16, the result is + stored in rcx@750 (+742, +746, +750). So %rcx@750 == %rdx@738 + 16. + + (c) %rcx@750 bytes are allocated on the stack (+754). %rsp is rounded + upwards to a multiple of 16, result is stored in %rcx@762 (+757, +762). + This does not change the value of %rsp because it already was a multiple + of 16. + + (d) %rsi@766 == %rcx@762 + %rdx@738 is compared against %r15. But this + comparison is always false because we allocated 16 extra bytes on the + stack in (b), which were reserved for the alignment in (c), but in fact + unused. We are left with a gap in stack usage, and the comparison is + always false. + + (@XXX refers to register values after executing the instruction at + offset +XXX.) + + If the alignment gap was actually used because of different alignment + for %rsp, then the comparison failure would still occur because the gap + would not have been added after this reallocation, but before the + previous allocation. + + As a result, extend_alloca is never able to merge allocations. It also + turns out that the interface is difficult to use, especially in + cojunction with alloca account (which is rarely optional). + + [BZ #18023] + * include/alloca.h (stackinfo_alloca_round, extend_alloca, + extend_alloca_account): Remove. +Index: b/elf/dl-deps.c +=================================================================== +--- a/elf/dl-deps.c ++++ b/elf/dl-deps.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include + +@@ -184,9 +185,8 @@ _dl_map_object_deps (struct link_map *ma + /* Pointer to last unique object. */ + tail = &known[nlist - 1]; + +- /* No alloca'd space yet. */ +- struct link_map **needed_space = NULL; +- size_t needed_space_bytes = 0; ++ struct scratch_buffer needed_space; ++ scratch_buffer_init (&needed_space); + + /* Process each element of the search list, loading each of its + auxiliary objects and immediate dependencies. Auxiliary objects +@@ -217,13 +217,12 @@ _dl_map_object_deps (struct link_map *ma + if (l->l_searchlist.r_list == NULL && l->l_initfini == NULL + && l != map && l->l_ldnum > 0) + { +- size_t new_size = l->l_ldnum * sizeof (struct link_map *); +- +- if (new_size > needed_space_bytes) +- needed_space +- = extend_alloca (needed_space, needed_space_bytes, new_size); +- +- needed = needed_space; ++ /* l->l_ldnum includes space for the terminating NULL. */ ++ if (!scratch_buffer_set_array_size ++ (&needed_space, l->l_ldnum, sizeof (struct link_map *))) ++ _dl_signal_error (ENOMEM, map->l_name, NULL, ++ N_("cannot allocate dependency buffer")); ++ needed = needed_space.data; + } + + if (l->l_info[DT_NEEDED] || l->l_info[AUXTAG] || l->l_info[FILTERTAG]) +@@ -463,8 +462,11 @@ _dl_map_object_deps (struct link_map *ma + struct link_map **l_initfini = (struct link_map **) + malloc ((2 * nneeded + 1) * sizeof needed[0]); + if (l_initfini == NULL) +- _dl_signal_error (ENOMEM, map->l_name, NULL, +- N_("cannot allocate dependency list")); ++ { ++ scratch_buffer_free (&needed_space); ++ _dl_signal_error (ENOMEM, map->l_name, NULL, ++ N_("cannot allocate dependency list")); ++ } + l_initfini[0] = l; + memcpy (&l_initfini[1], needed, nneeded * sizeof needed[0]); + memcpy (&l_initfini[nneeded + 1], l_initfini, +@@ -482,6 +484,8 @@ _dl_map_object_deps (struct link_map *ma + } + + out: ++ scratch_buffer_free (&needed_space); ++ + if (errno == 0 && errno_saved != 0) + __set_errno (errno_saved); + +Index: b/include/alloca.h +=================================================================== +--- a/include/alloca.h ++++ b/include/alloca.h +@@ -20,57 +20,17 @@ libc_hidden_proto (__libc_alloca_cutoff) + + #include + +-#ifndef stackinfo_alloca_round +-# define stackinfo_alloca_round(l) (((l) + 15) & -16) +-#endif +- +-#if _STACK_GROWS_DOWN +-# define extend_alloca(buf, len, newlen) \ +- (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \ +- char *__newbuf = __alloca (__newlen); \ +- if (__newbuf + __newlen == (char *) (buf)) \ +- len += __newlen; \ +- else \ +- len = __newlen; \ +- __newbuf; }) +-#elif _STACK_GROWS_UP +-# define extend_alloca(buf, len, newlen) \ +- (__typeof (buf)) ({ size_t __newlen = stackinfo_alloca_round (newlen); \ +- char *__newbuf = __alloca (__newlen); \ +- char *__buf = (char *) (buf); \ +- if (__buf + len == __newbuf) \ +- { \ +- len += __newlen; \ +- __newbuf = __buf; \ +- } \ +- else \ +- len = __newlen; \ +- __newbuf; }) +-#else +-# define extend_alloca(buf, len, newlen) \ +- __alloca (((len) = (newlen))) +-#endif +- + #if defined stackinfo_get_sp && defined stackinfo_sub_sp + # define alloca_account(size, avar) \ + ({ void *old__ = stackinfo_get_sp (); \ + void *m__ = __alloca (size); \ + avar += stackinfo_sub_sp (old__); \ + m__; }) +-# define extend_alloca_account(buf, len, newlen, avar) \ +- ({ void *old__ = stackinfo_get_sp (); \ +- void *m__ = extend_alloca (buf, len, newlen); \ +- avar += stackinfo_sub_sp (old__); \ +- m__; }) + #else + # define alloca_account(size, avar) \ + ({ size_t s__ = (size); \ + avar += s__; \ + __alloca (s__); }) +-# define extend_alloca_account(buf, len, newlen, avar) \ +- ({ size_t s__ = (newlen); \ +- avar += s__; \ +- extend_alloca (buf, len, s__); }) + #endif + + #endif +Index: b/nis/nss_compat/compat-initgroups.c +=================================================================== +--- a/nis/nss_compat/compat-initgroups.c ++++ b/nis/nss_compat/compat-initgroups.c +@@ -310,7 +310,6 @@ getgrent_next_nss (ent_t *ent, char *buf + overwrite the pointer with one to a bigger buffer. */ + char *tmpbuf = buffer; + size_t tmplen = buflen; +- bool use_malloc = false; + + for (int i = 0; i < mystart; i++) + { +@@ -319,29 +318,26 @@ getgrent_next_nss (ent_t *ent, char *buf + == NSS_STATUS_TRYAGAIN + && *errnop == ERANGE) + { +- if (__libc_use_alloca (tmplen * 2)) +- { +- if (tmpbuf == buffer) +- { +- tmplen *= 2; +- tmpbuf = __alloca (tmplen); +- } +- else +- tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2); +- } +- else +- { +- tmplen *= 2; +- char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen); +- +- if (newbuf == NULL) +- { +- status = NSS_STATUS_TRYAGAIN; +- goto done; +- } +- use_malloc = true; +- tmpbuf = newbuf; +- } ++ /* Check for overflow. */ ++ if (__glibc_unlikely (tmplen * 2 < tmplen)) ++ { ++ __set_errno (ENOMEM); ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } ++ /* Increase the size. Make sure that we retry ++ with a reasonable size. */ ++ tmplen *= 2; ++ if (tmplen < 1024) ++ tmplen = 1024; ++ if (tmpbuf != buffer) ++ free (tmpbuf); ++ tmpbuf = malloc (tmplen); ++ if (__glibc_unlikely (tmpbuf == NULL)) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ goto done; ++ } + } + + if (__builtin_expect (status != NSS_STATUS_NOTFOUND, 1)) +@@ -369,7 +365,7 @@ getgrent_next_nss (ent_t *ent, char *buf + status = NSS_STATUS_NOTFOUND; + + done: +- if (use_malloc) ++ if (tmpbuf != buffer) + free (tmpbuf); + } + +Index: b/nis/nss_nis/nis-initgroups.c +=================================================================== +--- a/nis/nss_nis/nis-initgroups.c ++++ b/nis/nss_nis/nis-initgroups.c +@@ -16,7 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#include + #include + #include + #include +@@ -27,6 +26,7 @@ + #include + #include + #include ++#include + + #include "nss-nis.h" + #include +@@ -120,27 +120,30 @@ internal_getgrent_r (struct group *grp, + static int + get_uid (const char *user, uid_t *uidp) + { +- size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); +- char *buf = (char *) alloca (buflen); ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + while (1) + { + struct passwd result; + struct passwd *resp; + +- int r = getpwnam_r (user, &result, buf, buflen, &resp); ++ int r = getpwnam_r (user, &result, tmpbuf.data, tmpbuf.length, &resp); + if (r == 0 && resp != NULL) + { + *uidp = resp->pw_uid; ++ scratch_buffer_free (&tmpbuf); + return 0; + } + + if (r != ERANGE) + break; + +- buf = extend_alloca (buf, buflen, 2 * buflen); ++ if (!scratch_buffer_grow (&tmpbuf)) ++ return 1; + } + ++ scratch_buffer_free (&tmpbuf); + return 1; + } + +@@ -254,8 +257,6 @@ _nss_nis_initgroups_dyn (const char *use + } + + struct group grpbuf, *g; +- size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX); +- char *tmpbuf; + enum nss_status status; + intern_t intern = { NULL, NULL, 0 }; + gid_t *groups = *groupsp; +@@ -264,15 +265,21 @@ _nss_nis_initgroups_dyn (const char *use + if (status != NSS_STATUS_SUCCESS) + return status; + +- tmpbuf = __alloca (buflen); ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + while (1) + { + while ((status = +- internal_getgrent_r (&grpbuf, tmpbuf, buflen, errnop, ++ internal_getgrent_r (&grpbuf, tmpbuf.data, tmpbuf.length, errnop, + &intern)) == NSS_STATUS_TRYAGAIN + && *errnop == ERANGE) +- tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen); ++ if (!scratch_buffer_grow (&tmpbuf)) ++ { ++ status = NSS_STATUS_TRYAGAIN; ++ *errnop = errno; ++ goto done; ++ } + + if (status != NSS_STATUS_SUCCESS) + { +@@ -331,6 +338,7 @@ done: + intern.start = intern.start->next; + free (intern.next); + } ++ scratch_buffer_free (&tmpbuf); + + return status; + } +Index: b/nscd/aicache.c +=================================================================== +--- a/nscd/aicache.c ++++ b/nscd/aicache.c +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include "dbg_log.h" + #include "nscd.h" +@@ -113,10 +114,13 @@ addhstaiX (struct database_dyn *db, int + int old_res_options = _res.options; + _res.options &= ~RES_USE_INET6; + +- size_t tmpbuf6len = 1024; +- char *tmpbuf6 = alloca (tmpbuf6len); +- size_t tmpbuf4len = 0; +- char *tmpbuf4 = NULL; ++ struct scratch_buffer tmpbuf6; ++ scratch_buffer_init (&tmpbuf6); ++ struct scratch_buffer tmpbuf4; ++ scratch_buffer_init (&tmpbuf4); ++ struct scratch_buffer canonbuf; ++ scratch_buffer_init (&canonbuf); ++ + int32_t ttl = INT32_MAX; + ssize_t total = 0; + char *key_copy = NULL; +@@ -129,6 +133,7 @@ addhstaiX (struct database_dyn *db, int + int status[2] = { NSS_STATUS_UNAVAIL, NSS_STATUS_UNAVAIL }; + int naddrs = 0; + size_t addrslen = 0; ++ + char *canon = NULL; + size_t canonlen; + +@@ -143,12 +148,17 @@ addhstaiX (struct database_dyn *db, int + at = &atmem; + rc6 = 0; + herrno = 0; +- status[1] = DL_CALL_FCT (fct4, (key, &at, tmpbuf6, tmpbuf6len, ++ status[1] = DL_CALL_FCT (fct4, (key, &at, ++ tmpbuf6.data, tmpbuf6.length, + &rc6, &herrno, &ttl)); + if (rc6 != ERANGE || (herrno != NETDB_INTERNAL + && herrno != TRY_AGAIN)) + break; +- tmpbuf6 = extend_alloca (tmpbuf6, tmpbuf6len, 2 * tmpbuf6len); ++ if (!scratch_buffer_grow (&tmpbuf6)) ++ { ++ rc6 = ENOMEM; ++ break; ++ } + } + + if (rc6 != 0 && herrno == NETDB_INTERNAL) +@@ -226,41 +236,38 @@ addhstaiX (struct database_dyn *db, int + while (1) + { + rc6 = 0; +- status[0] = DL_CALL_FCT (fct, (key, AF_INET6, &th[0], tmpbuf6, +- tmpbuf6len, &rc6, &herrno, &ttl, ++ status[0] = DL_CALL_FCT (fct, (key, AF_INET6, &th[0], ++ tmpbuf6.data, tmpbuf6.length, ++ &rc6, &herrno, &ttl, + &canon)); + if (rc6 != ERANGE || herrno != NETDB_INTERNAL) + break; +- tmpbuf6 = extend_alloca (tmpbuf6, tmpbuf6len, 2 * tmpbuf6len); ++ if (!scratch_buffer_grow (&tmpbuf6)) ++ { ++ rc6 = ENOMEM; ++ break; ++ } + } + + if (rc6 != 0 && herrno == NETDB_INTERNAL) + goto out; + +- /* If the IPv6 lookup has been successful do not use the +- buffer used in that lookup, use a new one. */ +- if (status[0] == NSS_STATUS_SUCCESS && rc6 == 0) +- { +- tmpbuf4len = 512; +- tmpbuf4 = alloca (tmpbuf4len); +- } +- else +- { +- tmpbuf4len = tmpbuf6len; +- tmpbuf4 = tmpbuf6; +- } +- + /* Next collect IPv4 information. */ + while (1) + { + rc4 = 0; +- status[1] = DL_CALL_FCT (fct, (key, AF_INET, &th[1], tmpbuf4, +- tmpbuf4len, &rc4, &herrno, ++ status[1] = DL_CALL_FCT (fct, (key, AF_INET, &th[1], ++ tmpbuf4.data, tmpbuf4.length, ++ &rc4, &herrno, + ttl == INT32_MAX ? &ttl : NULL, + canon == NULL ? &canon : NULL)); + if (rc4 != ERANGE || herrno != NETDB_INTERNAL) + break; +- tmpbuf4 = extend_alloca (tmpbuf4, tmpbuf4len, 2 * tmpbuf4len); ++ if (!scratch_buffer_grow (&tmpbuf4)) ++ { ++ rc4 = ENOMEM; ++ break; ++ } + } + + if (rc4 != 0 && herrno == NETDB_INTERNAL) +@@ -286,13 +293,11 @@ addhstaiX (struct database_dyn *db, int + cfct = __nss_lookup_function (nip, "getcanonname_r"); + if (cfct != NULL) + { +- const size_t max_fqdn_len = 256; +- char *buf = alloca (max_fqdn_len); + char *s; + int rc; + +- if (DL_CALL_FCT (cfct, (key, buf, max_fqdn_len, &s, +- &rc, &herrno)) ++ if (DL_CALL_FCT (cfct, (key, canonbuf.data, canonbuf.length, ++ &s, &rc, &herrno)) + == NSS_STATUS_SUCCESS) + canon = s; + else +@@ -321,18 +326,20 @@ addhstaiX (struct database_dyn *db, int + addrfamily = AF_INET6; + } + +- size_t tmpbuflen = 512; +- char *tmpbuf = alloca (tmpbuflen); + int rc; + while (1) + { + rc = __gethostbyaddr2_r (addr, addrlen, addrfamily, +- &hstent_mem, tmpbuf, tmpbuflen, ++ &hstent_mem, ++ canonbuf.data, canonbuf.length, + &hstent, &herrno, NULL); + if (rc != ERANGE || herrno != NETDB_INTERNAL) + break; +- tmpbuf = extend_alloca (tmpbuf, tmpbuflen, +- tmpbuflen * 2); ++ if (!scratch_buffer_grow (&canonbuf)) ++ { ++ rc = ENOMEM; ++ break; ++ } + } + + if (rc == 0) +@@ -560,6 +567,10 @@ next_nip: + dh->usable = false; + } + ++ scratch_buffer_free (&tmpbuf6); ++ scratch_buffer_free (&tmpbuf4); ++ scratch_buffer_free (&canonbuf); ++ + return timeout; + } + +Index: b/nscd/connections.c +=================================================================== +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -1353,64 +1353,83 @@ request from '%s' [%ld] not handled due + } + } + +- +-/* Restart the process. */ +-static void +-restart (void) ++static char * ++read_cmdline (size_t *size) + { +- /* First determine the parameters. We do not use the parameters +- passed to main() since in case nscd is started by running the +- dynamic linker this will not work. Yes, this is not the usual +- case but nscd is part of glibc and we occasionally do this. */ +- size_t buflen = 1024; +- char *buf = alloca (buflen); +- size_t readlen = 0; + int fd = open ("/proc/self/cmdline", O_RDONLY); +- if (fd == -1) +- { +- dbg_log (_("\ +-cannot open /proc/self/cmdline: %s; disabling paranoia mode"), +- strerror (errno)); +- +- paranoia = 0; +- return; ++ if (fd < 0) ++ return NULL; ++ size_t current = 0; ++ size_t limit = 1024; ++ char *buffer = malloc (limit); ++ if (buffer == NULL) ++ { ++ close (fd); ++ errno = ENOMEM; ++ return NULL; + } +- + while (1) + { +- ssize_t n = TEMP_FAILURE_RETRY (read (fd, buf + readlen, +- buflen - readlen)); +- if (n == -1) ++ if (current == limit) + { +- dbg_log (_("\ +-cannot read /proc/self/cmdline: %s; disabling paranoia mode"), +- strerror (errno)); ++ char *newptr; ++ if (2 * limit < limit ++ || (newptr = realloc (buffer, 2 * limit)) == NULL) ++ { ++ free (buffer); ++ close (fd); ++ errno = ENOMEM; ++ return NULL; ++ } ++ buffer = newptr; ++ limit *= 2; ++ } + ++ ssize_t n = TEMP_FAILURE_RETRY (read (fd, buffer + current, ++ limit - current)); ++ if (n == -1) ++ { ++ int e = errno; ++ free (buffer); + close (fd); +- paranoia = 0; +- return; ++ errno = e; ++ return NULL; + } +- +- readlen += n; +- +- if (readlen < buflen) ++ if (n == 0) + break; +- +- /* We might have to extend the buffer. */ +- size_t old_buflen = buflen; +- char *newp = extend_alloca (buf, buflen, 2 * buflen); +- buf = memmove (newp, buf, old_buflen); ++ current += n; + } + + close (fd); ++ *size = current; ++ return buffer; ++} ++ ++ ++/* Restart the process. */ ++static void ++restart (void) ++{ ++ /* First determine the parameters. We do not use the parameters ++ passed to main() because then nscd would would use the system ++ libc after restarting even if it was started by a non-system ++ dynamic linker during glibc testing. */ ++ size_t readlen; ++ char *cmdline = read_cmdline (&readlen); ++ if (cmdline == NULL) ++ { ++ dbg_log (_("\ ++cannot open /proc/self/cmdline: %m; disabling paranoia mode")); ++ paranoia = 0; ++ return; ++ } + + /* Parse the command line. Worst case scenario: every two + characters form one parameter (one character plus NUL). */ + char **argv = alloca ((readlen / 2 + 1) * sizeof (argv[0])); + int argc = 0; + +- char *cp = buf; +- while (cp < buf + readlen) ++ for (char *cp = cmdline; cp < cmdline + readlen;) + { + argv[argc++] = cp; + cp = (char *) rawmemchr (cp, '\0') + 1; +@@ -1427,6 +1446,7 @@ cannot change to old UID: %s; disabling + strerror (errno)); + + paranoia = 0; ++ free (cmdline); + return; + } + +@@ -1438,6 +1458,7 @@ cannot change to old GID: %s; disabling + + ignore_value (setuid (server_uid)); + paranoia = 0; ++ free (cmdline); + return; + } + } +@@ -1455,6 +1476,7 @@ cannot change to old working directory: + ignore_value (setgid (server_gid)); + } + paranoia = 0; ++ free (cmdline); + return; + } + +@@ -1503,6 +1525,7 @@ cannot change to old working directory: + dbg_log (_("cannot change current working directory to \"/\": %s"), + strerror (errno)); + paranoia = 0; ++ free (cmdline); + + /* Reenable the databases. */ + time_t now = time (NULL); +Index: b/nscd/grpcache.c +=================================================================== +--- a/nscd/grpcache.c ++++ b/nscd/grpcache.c +@@ -16,7 +16,6 @@ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +-#include + #include + #include + #include +@@ -32,6 +31,7 @@ + #include + #include + #include ++#include + + #include "nscd.h" + #include "dbg_log.h" +@@ -448,12 +448,12 @@ addgrbyX (struct database_dyn *db, int f + look again in the table whether the dataset is now available. We + simply insert it. It does not matter if it is in there twice. The + pruning function only will look at the timestamp. */ +- size_t buflen = 1024; +- char *buffer = (char *) alloca (buflen); ++ + struct group resultbuf; + struct group *grp; +- bool use_malloc = false; + int errval = 0; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + if (__glibc_unlikely (debug_level > 0)) + { +@@ -463,43 +463,24 @@ addgrbyX (struct database_dyn *db, int f + dbg_log (_("Reloading \"%s\" in group cache!"), keystr); + } + +- while (lookup (req->type, key, &resultbuf, buffer, buflen, &grp) != 0 ++ while (lookup (req->type, key, &resultbuf, ++ tmpbuf.data, tmpbuf.length, &grp) != 0 + && (errval = errno) == ERANGE) +- { +- errno = 0; +- +- if (__glibc_unlikely (buflen > 32768)) +- { +- char *old_buffer = buffer; +- buflen *= 2; +- buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen); +- if (buffer == NULL) +- { +- /* We ran out of memory. We cannot do anything but +- sending a negative response. In reality this should +- never happen. */ +- grp = NULL; +- buffer = old_buffer; +- +- /* We set the error to indicate this is (possibly) a +- temporary error and that it does not mean the entry +- is not available at all. */ +- errval = EAGAIN; +- break; +- } +- use_malloc = true; +- } +- else +- /* Allocate a new buffer on the stack. If possible combine it +- with the previously allocated buffer. */ +- buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); +- } ++ if (!scratch_buffer_grow (&tmpbuf)) ++ { ++ /* We ran out of memory. We cannot do anything but sending a ++ negative response. In reality this should never ++ happen. */ ++ grp = NULL; ++ /* We set the error to indicate this is (possibly) a temporary ++ error and that it does not mean the entry is not available ++ at all. */ ++ errval = EAGAIN; ++ break; ++ } + + time_t timeout = cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval); +- +- if (use_malloc) +- free (buffer); +- ++ scratch_buffer_free (&tmpbuf); + return timeout; + } + +Index: b/nscd/hstcache.c +=================================================================== +--- a/nscd/hstcache.c ++++ b/nscd/hstcache.c +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + #include "nscd.h" + #include "dbg_log.h" +@@ -463,11 +464,8 @@ addhstbyX (struct database_dyn *db, int + look again in the table whether the dataset is now available. We + simply insert it. It does not matter if it is in there twice. The + pruning function only will look at the timestamp. */ +- int buflen = 1024; +- char *buffer = (char *) alloca (buflen); + struct hostent resultbuf; + struct hostent *hst; +- bool use_malloc = false; + int errval = 0; + int32_t ttl = INT32_MAX; + +@@ -487,46 +485,30 @@ addhstbyX (struct database_dyn *db, int + dbg_log (_("Reloading \"%s\" in hosts cache!"), (char *) str); + } + +- while (lookup (req->type, key, &resultbuf, buffer, buflen, &hst, &ttl) != 0 ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); ++ ++ while (lookup (req->type, key, &resultbuf, ++ tmpbuf.data, tmpbuf.length, &hst, &ttl) != 0 + && h_errno == NETDB_INTERNAL + && (errval = errno) == ERANGE) +- { +- errno = 0; +- +- if (__glibc_unlikely (buflen > 32768)) +- { +- char *old_buffer = buffer; +- buflen *= 2; +- buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen); +- if (buffer == NULL) +- { +- /* We ran out of memory. We cannot do anything but +- sending a negative response. In reality this should +- never happen. */ +- hst = NULL; +- buffer = old_buffer; +- +- /* We set the error to indicate this is (possibly) a +- temporary error and that it does not mean the entry +- is not available at all. */ +- h_errno = TRY_AGAIN; +- errval = EAGAIN; +- break; +- } +- use_malloc = true; +- } +- else +- /* Allocate a new buffer on the stack. If possible combine it +- with the previously allocated buffer. */ +- buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); +- } ++ if (!scratch_buffer_grow (&tmpbuf)) ++ { ++ /* We ran out of memory. We cannot do anything but sending a ++ negative response. In reality this should never ++ happen. */ ++ hst = NULL; ++ /* We set the error to indicate this is (possibly) a temporary ++ error and that it does not mean the entry is not ++ available at all. */ ++ h_errno = TRY_AGAIN; ++ errval = EAGAIN; ++ break; ++ } + + time_t timeout = cache_addhst (db, fd, req, key, hst, uid, he, dh, + h_errno == TRY_AGAIN ? errval : 0, ttl); +- +- if (use_malloc) +- free (buffer); +- ++ scratch_buffer_free (&tmpbuf); + return timeout; + } + +Index: b/nscd/pwdcache.c +=================================================================== +--- a/nscd/pwdcache.c ++++ b/nscd/pwdcache.c +@@ -16,7 +16,6 @@ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +-#include + #include + #include + #include +@@ -32,6 +31,7 @@ + #include + #include + #include ++#include + + #include "nscd.h" + #include "dbg_log.h" +@@ -426,12 +426,11 @@ addpwbyX (struct database_dyn *db, int f + look again in the table whether the dataset is now available. We + simply insert it. It does not matter if it is in there twice. The + pruning function only will look at the timestamp. */ +- size_t buflen = 1024; +- char *buffer = (char *) alloca (buflen); + struct passwd resultbuf; + struct passwd *pwd; +- bool use_malloc = false; + int errval = 0; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + if (__glibc_unlikely (debug_level > 0)) + { +@@ -441,45 +440,26 @@ addpwbyX (struct database_dyn *db, int f + dbg_log (_("Reloading \"%s\" in password cache!"), keystr); + } + +- while (lookup (req->type, key, &resultbuf, buffer, buflen, &pwd) != 0 ++ while (lookup (req->type, key, &resultbuf, ++ tmpbuf.data, tmpbuf.length, &pwd) != 0 + && (errval = errno) == ERANGE) +- { +- errno = 0; +- +- if (__glibc_unlikely (buflen > 32768)) +- { +- char *old_buffer = buffer; +- buflen *= 2; +- buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen); +- if (buffer == NULL) +- { +- /* We ran out of memory. We cannot do anything but +- sending a negative response. In reality this should +- never happen. */ +- pwd = NULL; +- buffer = old_buffer; +- +- /* We set the error to indicate this is (possibly) a +- temporary error and that it does not mean the entry +- is not available at all. */ +- errval = EAGAIN; +- break; +- } +- use_malloc = true; +- } +- else +- /* Allocate a new buffer on the stack. If possible combine it +- with the previously allocated buffer. */ +- buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); +- } ++ if (!scratch_buffer_grow (&tmpbuf)) ++ { ++ /* We ran out of memory. We cannot do anything but sending a ++ negative response. In reality this should never ++ happen. */ ++ pwd = NULL; ++ /* We set the error to indicate this is (possibly) a temporary ++ error and that it does not mean the entry is not available ++ at all. */ ++ errval = EAGAIN; ++ break; ++ } + + /* Add the entry to the cache. */ + time_t timeout = cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, + errval); +- +- if (use_malloc) +- free (buffer); +- ++ scratch_buffer_free (&tmpbuf); + return timeout; + } + +Index: b/nscd/servicescache.c +=================================================================== +--- a/nscd/servicescache.c ++++ b/nscd/servicescache.c +@@ -16,7 +16,6 @@ + You should have received a copy of the GNU General Public License + along with this program; if not, see . */ + +-#include + #include + #include + #include +@@ -25,6 +24,7 @@ + #include + #include + #include ++#include + + #include "nscd.h" + #include "dbg_log.h" +@@ -374,12 +374,11 @@ addservbyX (struct database_dyn *db, int + look again in the table whether the dataset is now available. We + simply insert it. It does not matter if it is in there twice. The + pruning function only will look at the timestamp. */ +- size_t buflen = 1024; +- char *buffer = (char *) alloca (buflen); + struct servent resultbuf; + struct servent *serv; +- bool use_malloc = false; + int errval = 0; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + if (__glibc_unlikely (debug_level > 0)) + { +@@ -389,43 +388,24 @@ addservbyX (struct database_dyn *db, int + dbg_log (_("Reloading \"%s\" in services cache!"), key); + } + +- while (lookup (req->type, key, &resultbuf, buffer, buflen, &serv) != 0 ++ while (lookup (req->type, key, &resultbuf, ++ tmpbuf.data, tmpbuf.length, &serv) != 0 + && (errval = errno) == ERANGE) +- { +- errno = 0; +- +- if (__glibc_unlikely (buflen > 32768)) +- { +- char *old_buffer = buffer; +- buflen *= 2; +- buffer = (char *) realloc (use_malloc ? buffer : NULL, buflen); +- if (buffer == NULL) +- { +- /* We ran out of memory. We cannot do anything but +- sending a negative response. In reality this should +- never happen. */ +- serv = NULL; +- buffer = old_buffer; +- +- /* We set the error to indicate this is (possibly) a +- temporary error and that it does not mean the entry +- is not available at all. */ +- errval = EAGAIN; +- break; +- } +- use_malloc = true; +- } +- else +- /* Allocate a new buffer on the stack. If possible combine it +- with the previously allocated buffer. */ +- buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen); +- } ++ if (!scratch_buffer_grow (&tmpbuf)) ++ { ++ /* We ran out of memory. We cannot do anything but sending a ++ negative response. In reality this should never ++ happen. */ ++ serv = NULL; ++ /* We set the error to indicate this is (possibly) a temporary ++ error and that it does not mean the entry is not available ++ at all. */ ++ errval = EAGAIN; ++ break; ++ } + + time_t timeout = cache_addserv (db, fd, req, key, serv, uid, he, dh, errval); +- +- if (use_malloc) +- free (buffer); +- ++ scratch_buffer_free (&tmpbuf); + return timeout; + } + +Index: b/nss/getent.c +=================================================================== +--- a/nss/getent.c ++++ b/nss/getent.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + /* Get libc version number. */ + #include +@@ -477,30 +478,34 @@ netgroup_keys (int number, char *key[]) + static int + initgroups_keys (int number, char *key[]) + { +- int ngrps = 100; +- size_t grpslen = ngrps * sizeof (gid_t); +- gid_t *grps = alloca (grpslen); +- + if (number == 0) + { + fprintf (stderr, _("Enumeration not supported on %s\n"), "initgroups"); + return 3; + } + ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); ++ + for (int i = 0; i < number; ++i) + { ++ ssize_t ngrps = tmpbuf.length / sizeof (gid_t); + int no = ngrps; + int n; +- while ((n = getgrouplist (key[i], -1, grps, &no)) == -1 ++ while ((n = getgrouplist (key[i], -1, tmpbuf.data, &no)) == -1 + && no > ngrps) + { +- grps = extend_alloca (grps, grpslen, no * sizeof (gid_t)); +- ngrps = no; ++ if (!scratch_buffer_set_array_size (&tmpbuf, no, sizeof (gid_t))) ++ { ++ fprintf (stderr, _("Could not allocate group list: %m\n")); ++ return 3; ++ } + } + + if (n == -1) + return 1; + ++ const gid_t *grps = tmpbuf.data; + printf ("%-21s", key[i]); + for (int j = 0; j < n; ++j) + if (grps[j] != -1) +@@ -508,6 +513,8 @@ initgroups_keys (int number, char *key[] + putchar_unlocked ('\n'); + } + ++ scratch_buffer_free (&tmpbuf); ++ + return 0; + } + +Index: b/nss/nss_files/files-hosts.c +=================================================================== +--- a/nss/nss_files/files-hosts.c ++++ b/nss/nss_files/files-hosts.c +@@ -22,7 +22,7 @@ + #include + #include + #include +- ++#include + + /* Get implementation for some internal functions. */ + #include "../resolv/mapv4v6addr.h" +@@ -145,15 +145,12 @@ _nss_files_gethostbyname3_r (const char + && _res_hconf.flags & HCONF_FLAG_MULTI) + { + /* We have to get all host entries from the file. */ +- size_t tmp_buflen = MIN (buflen, 4096); +- char tmp_buffer_stack[tmp_buflen] +- __attribute__ ((__aligned__ (__alignof__ (struct hostent_data)))); +- char *tmp_buffer = tmp_buffer_stack; + struct hostent tmp_result_buf; + int naddrs = 1; + int naliases = 0; + char *bufferend; +- bool tmp_buffer_malloced = false; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + while (result->h_aliases[naliases] != NULL) + ++naliases; +@@ -161,9 +158,9 @@ _nss_files_gethostbyname3_r (const char + bufferend = (char *) &result->h_aliases[naliases + 1]; + + again: +- while ((status = internal_getent (stream, &tmp_result_buf, tmp_buffer, +- tmp_buflen, errnop, herrnop, af, +- flags)) ++ while ((status = internal_getent (stream, &tmp_result_buf, ++ tmpbuf.data, tmpbuf.length, ++ errnop, herrnop, af, flags)) + == NSS_STATUS_SUCCESS) + { + int matches = 1; +@@ -287,54 +284,13 @@ _nss_files_gethostbyname3_r (const char + } + } + +- if (status == NSS_STATUS_TRYAGAIN) +- { +- size_t newsize = 2 * tmp_buflen; +- if (tmp_buffer_malloced) +- { +- char *newp = realloc (tmp_buffer, newsize); +- if (newp != NULL) +- { +- assert ((((uintptr_t) newp) +- & (__alignof__ (struct hostent_data) - 1)) +- == 0); +- tmp_buffer = newp; +- tmp_buflen = newsize; +- goto again; +- } +- } +- else if (!__libc_use_alloca (buflen + newsize)) +- { +- tmp_buffer = malloc (newsize); +- if (tmp_buffer != NULL) +- { +- assert ((((uintptr_t) tmp_buffer) +- & (__alignof__ (struct hostent_data) - 1)) +- == 0); +- tmp_buffer_malloced = true; +- tmp_buflen = newsize; +- goto again; +- } +- } +- else +- { +- tmp_buffer +- = extend_alloca (tmp_buffer, tmp_buflen, +- newsize +- + __alignof__ (struct hostent_data)); +- tmp_buffer = (char *) (((uintptr_t) tmp_buffer +- + __alignof__ (struct hostent_data) +- - 1) +- & ~(__alignof__ (struct hostent_data) +- - 1)); +- goto again; +- } +- } ++ if (status == NSS_STATUS_TRYAGAIN ++ && scratch_buffer_grow (&tmpbuf)) ++ goto again; + else + status = NSS_STATUS_SUCCESS; + out: +- if (tmp_buffer_malloced) +- free (tmp_buffer); ++ scratch_buffer_free (&tmpbuf); + } + + internal_endent (&stream); +Index: b/nss/nss_files/files-initgroups.c +=================================================================== +--- a/nss/nss_files/files-initgroups.c ++++ b/nss/nss_files/files-initgroups.c +@@ -16,7 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#include + #include + #include + #include +@@ -25,6 +24,7 @@ + #include + #include + #include ++#include + + enum nss_status + _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start, +@@ -46,9 +46,8 @@ _nss_files_initgroups_dyn (const char *u + enum nss_status status = NSS_STATUS_SUCCESS; + bool any = false; + +- size_t buflen = 1024; +- void *buffer = alloca (buflen); +- bool buffer_use_malloc = false; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + gid_t *groups = *groupsp; + +@@ -67,26 +66,16 @@ _nss_files_initgroups_dyn (const char *u + } + + struct group grp; +- int res = _nss_files_parse_grent (line, &grp, buffer, buflen, errnop); ++ int res = _nss_files_parse_grent (line, &grp, ++ tmpbuf.data, tmpbuf.length, errnop); + if (res == -1) + { +- size_t newbuflen = 2 * buflen; +- if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen)) ++ if (!scratch_buffer_grow (&tmpbuf)) + { +- void *newbuf = realloc (buffer_use_malloc ? buffer : NULL, +- newbuflen); +- if (newbuf == NULL) +- { +- *errnop = ENOMEM; +- status = NSS_STATUS_TRYAGAIN; +- goto out; +- } +- buffer = newbuf; +- buflen = newbuflen; +- buffer_use_malloc = true; ++ *errnop = ENOMEM; ++ status = NSS_STATUS_TRYAGAIN; ++ goto out; + } +- else +- buffer = extend_alloca (buffer, buflen, newbuflen); + /* Reread current line, the parser has clobbered it. */ + fsetpos (stream, &pos); + continue; +@@ -132,8 +121,7 @@ _nss_files_initgroups_dyn (const char *u + + out: + /* Free memory. */ +- if (buffer_use_malloc) +- free (buffer); ++ scratch_buffer_free (&tmpbuf); + free (line); + + fclose (stream); +Index: b/posix/glob.c +=================================================================== +--- a/posix/glob.c ++++ b/posix/glob.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + /* Outcomment the following line for production quality code. */ + /* #define NDEBUG 1 */ +@@ -293,7 +294,7 @@ glob (const char *pattern, int flags, in + glob_t dirs; + int retval = 0; + #ifdef _LIBC +- size_t alloca_used = 0; ++ size_t alloca_used = sizeof (struct scratch_buffer); + #endif + + if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0) +@@ -650,33 +651,13 @@ glob (const char *pattern, int flags, in + { + struct passwd *p; + # if defined HAVE_GETPWNAM_R || defined _LIBC +- long int pwbuflen = GETPW_R_SIZE_MAX (); +- char *pwtmpbuf; + struct passwd pwbuf; +- int malloc_pwtmpbuf = 0; + int save = errno; ++ struct scratch_buffer pwtmpbuf; ++ scratch_buffer_init (&pwtmpbuf); + +-# ifndef _LIBC +- if (pwbuflen == -1) +- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. +- Try a moderate value. */ +- pwbuflen = 1024; +-# endif +- if (__libc_use_alloca (alloca_used + pwbuflen)) +- pwtmpbuf = alloca_account (pwbuflen, alloca_used); +- else +- { +- pwtmpbuf = malloc (pwbuflen); +- if (pwtmpbuf == NULL) +- { +- retval = GLOB_NOSPACE; +- goto out; +- } +- malloc_pwtmpbuf = 1; +- } +- +- while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p) +- != 0) ++ while (getpwnam_r (name, &pwbuf, ++ pwtmpbuf.data, pwtmpbuf.length, &p) != 0) + { + if (errno != ERANGE) + { +@@ -684,67 +665,37 @@ glob (const char *pattern, int flags, in + break; + } + +- if (!malloc_pwtmpbuf +- && __libc_use_alloca (alloca_used +- + 2 * pwbuflen)) +- pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen, +- 2 * pwbuflen, +- alloca_used); +- else ++ if (!scratch_buffer_grow (&pwtmpbuf)) + { +- char *newp = realloc (malloc_pwtmpbuf +- ? pwtmpbuf : NULL, +- 2 * pwbuflen); +- if (newp == NULL) +- { +- if (__glibc_unlikely (malloc_pwtmpbuf)) +- free (pwtmpbuf); +- retval = GLOB_NOSPACE; +- goto out; +- } +- pwtmpbuf = newp; +- pwbuflen = 2 * pwbuflen; +- malloc_pwtmpbuf = 1; ++ retval = GLOB_NOSPACE; ++ goto out; + } + __set_errno (save); + } + # else +- p = getpwnam (name); ++ p = getpwnam (namebuf.data); + # endif + if (p != NULL) + { +- if (!malloc_pwtmpbuf) +- home_dir = p->pw_dir; +- else ++ home_dir = strdup (p->pw_dir); ++ malloc_home_dir = 1; ++ if (home_dir == NULL) + { +- size_t home_dir_len = strlen (p->pw_dir) + 1; +- if (__libc_use_alloca (alloca_used + home_dir_len)) +- home_dir = alloca_account (home_dir_len, +- alloca_used); +- else +- { +- home_dir = malloc (home_dir_len); +- if (home_dir == NULL) +- { +- free (pwtmpbuf); +- retval = GLOB_NOSPACE; +- goto out; +- } +- malloc_home_dir = 1; +- } +- memcpy (home_dir, p->pw_dir, home_dir_len); +- +- free (pwtmpbuf); ++ scratch_buffer_free (&pwtmpbuf); ++ retval = GLOB_NOSPACE; ++ goto out; + } + } ++ scratch_buffer_free (&pwtmpbuf); + } + } + if (home_dir == NULL || home_dir[0] == '\0') + { ++ if (malloc_home_dir) ++ free (home_dir); ++ malloc_home_dir = 0; + if (flags & GLOB_TILDE_CHECK) + { +- if (__glibc_unlikely (malloc_home_dir)) +- free (home_dir); + retval = GLOB_NOMATCH; + goto out; + } +@@ -865,57 +816,24 @@ glob (const char *pattern, int flags, in + { + struct passwd *p; + # if defined HAVE_GETPWNAM_R || defined _LIBC +- long int buflen = GETPW_R_SIZE_MAX (); +- char *pwtmpbuf; +- int malloc_pwtmpbuf = 0; + struct passwd pwbuf; + int save = errno; ++ struct scratch_buffer pwtmpbuf; ++ scratch_buffer_init (&pwtmpbuf); + +-# ifndef _LIBC +- if (buflen == -1) +- /* `sysconf' does not support _SC_GETPW_R_SIZE_MAX. Try a +- moderate value. */ +- buflen = 1024; +-# endif +- if (__libc_use_alloca (alloca_used + buflen)) +- pwtmpbuf = alloca_account (buflen, alloca_used); +- else +- { +- pwtmpbuf = malloc (buflen); +- if (pwtmpbuf == NULL) +- { +- nomem_getpw: +- if (__glibc_unlikely (malloc_user_name)) +- free (user_name); +- retval = GLOB_NOSPACE; +- goto out; +- } +- malloc_pwtmpbuf = 1; +- } +- +- while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0) ++ while (getpwnam_r (user_name, &pwbuf, ++ pwtmpbuf.data, pwtmpbuf.length, &p) != 0) + { + if (errno != ERANGE) + { + p = NULL; + break; + } +- if (!malloc_pwtmpbuf +- && __libc_use_alloca (alloca_used + 2 * buflen)) +- pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen, +- 2 * buflen, alloca_used); +- else ++ ++ if (!scratch_buffer_grow (&pwtmpbuf)) + { +- char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL, +- 2 * buflen); +- if (newp == NULL) +- { +- if (__glibc_unlikely (malloc_pwtmpbuf)) +- free (pwtmpbuf); +- goto nomem_getpw; +- } +- pwtmpbuf = newp; +- malloc_pwtmpbuf = 1; ++ retval = GLOB_NOSPACE; ++ goto out; + } + __set_errno (save); + } +@@ -944,8 +862,7 @@ glob (const char *pattern, int flags, in + dirname = malloc (home_len + rest_len + 1); + if (dirname == NULL) + { +- if (__glibc_unlikely (malloc_pwtmpbuf)) +- free (pwtmpbuf); ++ scratch_buffer_free (&pwtmpbuf); + retval = GLOB_NOSPACE; + goto out; + } +@@ -957,13 +874,11 @@ glob (const char *pattern, int flags, in + dirlen = home_len + rest_len; + dirname_modified = 1; + +- if (__glibc_unlikely (malloc_pwtmpbuf)) +- free (pwtmpbuf); ++ scratch_buffer_free (&pwtmpbuf); + } + else + { +- if (__glibc_unlikely (malloc_pwtmpbuf)) +- free (pwtmpbuf); ++ scratch_buffer_free (&pwtmpbuf); + + if (flags & GLOB_TILDE_CHECK) + /* We have to regard it as an error if we cannot find the +Index: b/posix/wordexp.c +=================================================================== +--- a/posix/wordexp.c ++++ b/posix/wordexp.c +@@ -17,7 +17,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#include + #include + #include + #include +@@ -41,6 +40,7 @@ + #include + #include + #include ++#include + + #include + #include <_itoa.h> +@@ -308,12 +308,7 @@ parse_tilde (char **word, size_t *word_l + if (i == 1 + *offset) + { + /* Tilde appears on its own */ +- uid_t uid; +- struct passwd pwd, *tpwd; +- int buflen = 1000; + char* home; +- char* buffer; +- int result; + + /* POSIX.2 says ~ expands to $HOME and if HOME is unset the + results are unspecified. We do a lookup on the uid if +@@ -328,25 +323,38 @@ parse_tilde (char **word, size_t *word_l + } + else + { +- uid = __getuid (); +- buffer = __alloca (buflen); +- +- while ((result = __getpwuid_r (uid, &pwd, buffer, buflen, &tpwd)) != 0 ++ struct passwd pwd, *tpwd; ++ uid_t uid = __getuid (); ++ int result; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); ++ ++ while ((result = __getpwuid_r (uid, &pwd, ++ tmpbuf.data, tmpbuf.length, ++ &tpwd)) != 0 + && errno == ERANGE) +- buffer = extend_alloca (buffer, buflen, buflen + 1000); ++ if (!scratch_buffer_grow (&tmpbuf)) ++ return WRDE_NOSPACE; + + if (result == 0 && tpwd != NULL && pwd.pw_dir != NULL) + { + *word = w_addstr (*word, word_length, max_length, pwd.pw_dir); + if (*word == NULL) +- return WRDE_NOSPACE; ++ { ++ scratch_buffer_free (&tmpbuf); ++ return WRDE_NOSPACE; ++ } + } + else + { + *word = w_addchar (*word, word_length, max_length, '~'); + if (*word == NULL) +- return WRDE_NOSPACE; ++ { ++ scratch_buffer_free (&tmpbuf); ++ return WRDE_NOSPACE; ++ } + } ++ scratch_buffer_free (&tmpbuf); + } + } + else +@@ -354,13 +362,15 @@ parse_tilde (char **word, size_t *word_l + /* Look up user name in database to get home directory */ + char *user = strndupa (&words[1 + *offset], i - (1 + *offset)); + struct passwd pwd, *tpwd; +- int buflen = 1000; +- char* buffer = __alloca (buflen); + int result; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + +- while ((result = __getpwnam_r (user, &pwd, buffer, buflen, &tpwd)) != 0 ++ while ((result = __getpwnam_r (user, &pwd, tmpbuf.data, tmpbuf.length, ++ &tpwd)) != 0 + && errno == ERANGE) +- buffer = extend_alloca (buffer, buflen, buflen + 1000); ++ if (!scratch_buffer_grow (&tmpbuf)) ++ return WRDE_NOSPACE; + + if (result == 0 && tpwd != NULL && pwd.pw_dir) + *word = w_addstr (*word, word_length, max_length, pwd.pw_dir); +@@ -372,6 +382,8 @@ parse_tilde (char **word, size_t *word_l + *word = w_addstr (*word, word_length, max_length, user); + } + ++ scratch_buffer_free (&tmpbuf); ++ + *offset = i - 1; + } + return *word ? 0 : WRDE_NOSPACE; +Index: b/sysdeps/unix/sysv/linux/gethostid.c +=================================================================== +--- a/sysdeps/unix/sysv/linux/gethostid.c ++++ b/sysdeps/unix/sysv/linux/gethostid.c +@@ -63,13 +63,12 @@ sethostid (long int id) + # include + # include + # include ++# include + + long int + gethostid (void) + { + char hostname[MAXHOSTNAMELEN + 1]; +- size_t buflen; +- char *buffer; + struct hostent hostbuf, *hp; + int32_t id; + struct in_addr in; +@@ -94,23 +93,26 @@ gethostid (void) + /* This also fails. Return and arbitrary value. */ + return 0; + +- buflen = 1024; +- buffer = __alloca (buflen); ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + + /* To get the IP address we need to know the host name. */ +- while (__gethostbyname_r (hostname, &hostbuf, buffer, buflen, &hp, &herr) +- != 0 ++ while (__gethostbyname_r (hostname, &hostbuf, ++ tmpbuf.data, tmpbuf.length, &hp, &herr) != 0 + || hp == NULL) + if (herr != NETDB_INTERNAL || errno != ERANGE) +- return 0; ++ { ++ scratch_buffer_free (&tmpbuf); ++ return 0; ++ } + else +- /* Enlarge buffer. */ +- buffer = extend_alloca (buffer, buflen, 2 * buflen); ++ if (!scratch_buffer_grow (&tmpbuf)) ++ return 0; + + in.s_addr = 0; + memcpy (&in, hp->h_addr, + (int) sizeof (in) < hp->h_length ? (int) sizeof (in) : hp->h_length); +- ++ scratch_buffer_free (&tmpbuf); + /* For the return value to be not exactly the IP address we do some + bit fiddling. */ + return (int32_t) (in.s_addr << 16 | in.s_addr >> 16); +Index: b/sysdeps/unix/sysv/linux/getlogin_r.c +=================================================================== +--- a/sysdeps/unix/sysv/linux/getlogin_r.c ++++ b/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #define STATIC static + static int getlogin_r_fd0 (char *name, size_t namesize); +@@ -54,28 +55,19 @@ __getlogin_r_loginuid (char *name, size_ + endp == uidbuf || *endp != '\0')) + return -1; + +- size_t buflen = 1024; +- char *buf = alloca (buflen); +- bool use_malloc = false; + struct passwd pwd; + struct passwd *tpwd; + int result = 0; + int res; ++ struct scratch_buffer tmpbuf; ++ scratch_buffer_init (&tmpbuf); + +- while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE) +- if (__libc_use_alloca (2 * buflen)) +- buf = extend_alloca (buf, buflen, 2 * buflen); +- else ++ while ((res = __getpwuid_r (uid, &pwd, ++ tmpbuf.data, tmpbuf.length, &tpwd)) == ERANGE) ++ if (!scratch_buffer_grow (&tmpbuf)) + { +- buflen *= 2; +- char *newp = realloc (use_malloc ? buf : NULL, buflen); +- if (newp == NULL) +- { +- result = ENOMEM; +- goto out; +- } +- buf = newp; +- use_malloc = true; ++ result = ENOMEM; ++ goto out; + } + + if (res != 0 || tpwd == NULL) +@@ -95,9 +87,7 @@ __getlogin_r_loginuid (char *name, size_ + memcpy (name, pwd.pw_name, needed); + + out: +- if (use_malloc) +- free (buf); +- ++ scratch_buffer_free (&tmpbuf); + return result; + } + diff --git a/glibc-rh1315476-1.patch b/glibc-rh1315476-1.patch new file mode 100644 index 0000000..a1a6eaf --- /dev/null +++ b/glibc-rh1315476-1.patch @@ -0,0 +1,54 @@ +commit a4551b7f6ce08317220a8cd79cd3d02a03648752 +Author: Florian Weimer +Date: Wed Jul 13 11:50:04 2016 +0200 + + sln: Preprocessor cleanups + +diff --git a/elf/sln.c b/elf/sln.c +index f52cb9f..fa4ccec 100644 +--- a/elf/sln.c ++++ b/elf/sln.c +@@ -16,10 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-#ifdef HAVE_CONFIG_H +-# include "config.h" +-#endif +- + #include + #include + #include +@@ -37,10 +33,6 @@ + + #define PACKAGE _libc_intl_domainname + +-#if !defined S_ISDIR && defined S_IFDIR +-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +-#endif +- + static int makesymlink (const char *src, const char *dest); + static int makesymlinks (const char *file); + static void usage (void); +@@ -89,9 +81,6 @@ usage (void) + static int + makesymlinks (const char *file) + { +-#ifndef PATH_MAX +-#define PATH_MAX 4095 +-#endif + char *buffer = NULL; + size_t bufferlen = 0; + int ret; +@@ -190,11 +179,7 @@ makesymlink (const char *src, const char *dest) + return -1; + } + +-#ifdef S_ISLNK + if (symlink (src, dest) == 0) +-#else +- if (link (src, dest) == 0) +-#endif + { + /* Destination must exist by now. */ + if (access (dest, F_OK)) diff --git a/glibc-rh1315476-2.patch b/glibc-rh1315476-2.patch new file mode 100644 index 0000000..305f30e --- /dev/null +++ b/glibc-rh1315476-2.patch @@ -0,0 +1,164 @@ +commit 9f9503b56a8c7566c91d486a67be5d41792a87ca +Author: Florian Weimer +Date: Wed Jul 13 14:06:00 2016 +0200 + + sln: Install as a hard link to ldconfig + + Implementing and sln and ldconfig with the same binary saves + around 850 KiB from a glibc installation. + + The sln program is implicitly tested during the build, so no test + case is needed. + +diff --git a/elf/Makefile b/elf/Makefile +index 593403c..d90f21a 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -70,12 +70,8 @@ install-others = $(inst_rtlddir)/$(rtld-installed-name) + install-bin-script = ldd + endif + +-others = sprof sln ++others = sprof + install-bin = sprof +-others-static = sln +-install-rootsbin = sln +-sln-modules := static-stubs +-extra-objs += $(sln-modules:=.o) + + ifeq (yes,$(use-ldconfig)) + ifeq (yes,$(build-shared)) +@@ -83,8 +79,16 @@ others-static += ldconfig + others += ldconfig + install-rootsbin += ldconfig + +-ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon static-stubs ++ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon static-stubs sln + extra-objs += $(ldconfig-modules:=.o) ++ ++# Install sln as a hard link to ldconfig. ++install-others-programs += $(inst_rootsbindir)/sln ++others: $(objpfx)sln ++$(objpfx)sln: $(objpfx)ldconfig ++ ln -f $< $@ ++$(inst_rootsbindir)/sln: $(inst_rootsbindir)/ldconfig ++ ln -f $< $@ + endif + endif + +@@ -466,8 +470,6 @@ $(objpfx)ldd: ldd.bash.in $(common-objpfx)soversions.mk \ + + $(objpfx)sprof: $(libdl) + +-$(objpfx)sln: $(sln-modules:%=$(objpfx)%.o) +- + $(objpfx)ldconfig: $(ldconfig-modules:%=$(objpfx)%.o) + + SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"' +diff --git a/elf/ldconfig.c b/elf/ldconfig.c +index 467ca82..972737c 100644 +--- a/elf/ldconfig.c ++++ b/elf/ldconfig.c +@@ -44,6 +44,8 @@ + + #include + ++#include "sln.h" ++ + #ifdef _DL_FIRST_PLATFORM + # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT) + #else +@@ -1275,6 +1277,9 @@ main (int argc, char **argv) + /* Set the text message domain. */ + textdomain (_libc_intl_domainname); + ++ if (run_sln (argv[0])) ++ return sln_main (argc, argv); ++ + /* Parse and process arguments. */ + int remaining; + argp_parse (&argp, argc, argv, 0, &remaining, NULL); +diff --git a/elf/sln.c b/elf/sln.c +index fa4ccec..c6889d7 100644 +--- a/elf/sln.c ++++ b/elf/sln.c +@@ -1,4 +1,4 @@ +-/* `sln' program to create symbolic links between files. ++/* sln helper to create symbolic links between files, invoked from ldconfig. + Copyright (C) 1998-2016 Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -31,21 +31,29 @@ + + #include "../version.h" + +-#define PACKAGE _libc_intl_domainname ++#include "sln.h" + + static int makesymlink (const char *src, const char *dest); + static int makesymlinks (const char *file); + static void usage (void); + +-int +-main (int argc, char **argv) ++/* Check if we have to run sln. */ ++bool ++run_sln (const char *argv0) + { +- /* Set locale via LC_ALL. */ +- setlocale (LC_ALL, ""); +- +- /* Set the text message domain. */ +- textdomain (PACKAGE); ++ const char *slash = strrchr (argv0, '/'); ++ const char *progname; ++ if (slash == NULL) ++ progname = argv0; ++ else ++ progname = slash + 1; ++ return strcmp (progname, "sln") == 0; ++} + ++/* Invoked from ldconfig. */ ++int ++sln_main (int argc, char **argv) ++{ + switch (argc) + { + case 2: +diff --git a/elf/sln.h b/elf/sln.h +new file mode 100644 +index 0000000..a3a16ab +--- /dev/null ++++ b/elf/sln.h +@@ -0,0 +1,30 @@ ++/* Interface of the sln command-line tool. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ . */ ++ ++#ifndef SLN_H ++#define SLN_H ++ ++#include ++ ++/* Return true if main should invoke sln_main. */ ++bool run_sln (const char *argv0); ++ ++/* Main routine of the sln command. */ ++int sln_main (int argc, char **argv); ++ ++#endif /* SLN_H */ diff --git a/glibc-rh1324623.patch b/glibc-rh1324623.patch new file mode 100644 index 0000000..ffa449e --- /dev/null +++ b/glibc-rh1324623.patch @@ -0,0 +1,113 @@ +This patch creates a crypt-glibc subdirectory which builds the +libgcrypt files, but this time against the glibc sources. + +The default subdirs list does not include this subdirectory because +the file names conflict with the crypt directory. The spec file does +not use the install target to install the built libcrypt.so file, +either. + +Index: b/crypt-glibc/Makefile +=================================================================== +--- /dev/null ++++ b/crypt-glibc/Makefile +@@ -0,0 +1,60 @@ ++# Build libcrypt against internal cryptographic algorithms. ++# Copyright (C) 1996-2016 Free Software Foundation, Inc. ++# This file is part of the GNU C Library. ++ ++# The GNU C Library is free software; you can redistribute it and/or ++# modify it under the terms of the GNU Lesser General Public ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# You should have received a copy of the GNU Lesser General Public ++# License along with the GNU C Library; if not, see ++# . ++ ++# ++# Sub-makefile for crypt() portion of the library. ++# ++subdir := crypt-glibc ++ ++include ../Makeconfig ++ ++extra-libs := libcrypt ++extra-libs-others := $(extra-libs) ++ ++# Use the sources in the crypt subdirectory. ++vpath %.c ../crypt ++ ++libcrypt-routines := \ ++ crypt-entry md5-crypt sha256-crypt sha512-crypt crypt crypt_util ++ ++tests := cert md5c-test sha256c-test sha512c-test badsalttest ++ ++libcrypt-routines += md5 sha256 sha512 ++ ++tests += md5test sha256test sha512test ++ ++# The test md5test-giant uses up to 400 MB of RSS and runs on a fast ++# machine over a minute. ++xtests = md5test-giant ++ ++include ../Rules ++ ++md5-routines := md5 $(filter md5%,$(libcrypt-sysdep_routines)) ++sha256-routines := sha256 $(filter sha256%,$(libcrypt-sysdep_routines)) ++sha512-routines := sha512 $(filter sha512%,$(libcrypt-sysdep_routines)) ++ ++$(objpfx)md5test: $(patsubst %, $(objpfx)%.o,$(md5-routines)) ++$(objpfx)md5test-giant: $(patsubst %, $(objpfx)%.o,$(md5-routines)) ++$(objpfx)sha256test: $(patsubst %, $(objpfx)%.o,$(sha256-routines)) ++$(objpfx)sha512test: $(patsubst %, $(objpfx)%.o,$(sha512-routines)) ++ ++ifeq (yes,$(build-shared)) ++$(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.so ++else ++$(addprefix $(objpfx),$(tests)): $(objpfx)libcrypt.a ++endif +Index: b/crypt/md5.c +=================================================================== +--- a/crypt/md5.c ++++ b/crypt/md5.c +@@ -270,4 +270,4 @@ md5_process_bytes (const void *buffer, s + } + } + +-#include ++#include "md5-block.c" +Index: b/crypt/sha256.c +=================================================================== +--- a/crypt/sha256.c ++++ b/crypt/sha256.c +@@ -212,4 +212,4 @@ __sha256_process_bytes (const void *buff + } + } + +-#include ++#include "sha256-block.c" +Index: b/crypt/sha512.c +=================================================================== +--- a/crypt/sha512.c ++++ b/crypt/sha512.c +@@ -235,4 +235,4 @@ __sha512_process_bytes (const void *buff + } + } + +-#include ++#include "sha512-block.c" +Index: b/crypt-glibc/Versions +=================================================================== +--- /dev/null ++++ b/crypt-glibc/Versions +@@ -0,0 +1,5 @@ ++libcrypt { ++ GLIBC_2.0 { ++ crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r; ++ } ++} diff --git a/glibc-rh1335011.patch b/glibc-rh1335011.patch new file mode 100644 index 0000000..8738f9a --- /dev/null +++ b/glibc-rh1335011.patch @@ -0,0 +1,176 @@ +Revert these two upstream commits, to unbreak ASAN: + +commit e91bd7465816f474617dcb4bbfe72f3594c5783c +Author: Adhemerval Zanella +Date: Thu Mar 31 10:51:51 2016 -0300 + + Fix tst-dlsym-error build + + This patch fixes the new test tst-dlsym-error build on aarch64 + (and possible other architectures as well) due missing strchrnul + definition. + + * elf/tst-dlsym-error.c: Include for strchrnul. + +commit 7d45c163d00c88d5875a112343c4ea3e61349e6b +Author: Florian Weimer +Date: Thu Mar 31 11:26:55 2016 +0200 + + Report dlsym, dlvsym lookup errors using dlerror [BZ #19509] + + * elf/dl-lookup.c (_dl_lookup_symbol_x): Report error even if + skip_map != NULL. + * elf/tst-dlsym-error.c: New file. + * elf/Makefile (tests): Add tst-dlsym-error. + (tst-dlsym-error): Link against libdl. + +Index: b/elf/Makefile +=================================================================== +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -149,7 +149,7 @@ tests += loadtest restest1 preloadtest l + tst-nodelete) \ + tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ + tst-ptrguard1 tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ +- tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error ++ tst-nodelete2 tst-audit11 tst-audit12 + # reldep9 + ifeq ($(build-hardcoded-path-in-tests),yes) + tests += tst-dlopen-aout +@@ -1258,5 +1258,3 @@ $(objpfx)tst-prelink-cmp.out: tst-prelin + $(objpfx)tst-ldconfig-X.out : tst-ldconfig-X.sh $(objpfx)ldconfig + $(SHELL) $< '$(common-objpfx)' '$(test-wrapper)' '$(test-wrapper-env)' > $@; \ + $(evaluate-test) +- +-$(objpfx)tst-dlsym-error: $(libdl) +Index: b/elf/dl-lookup.c +=================================================================== +--- a/elf/dl-lookup.c ++++ b/elf/dl-lookup.c +@@ -858,6 +858,7 @@ _dl_lookup_symbol_x (const char *undef_n + if (__glibc_unlikely (current_value.s == NULL)) + { + if ((*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK) ++ && skip_map == NULL + && !(GLRO(dl_debug_mask) & DL_DEBUG_UNUSED)) + { + /* We could find no value for a strong reference. */ +Index: b/elf/tst-dlsym-error.c +=================================================================== +--- a/elf/tst-dlsym-error.c ++++ /dev/null +@@ -1,114 +0,0 @@ +-/* Test error reporting for dlsym, dlvsym failures. +- Copyright (C) 2016 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- . */ +- +-#include +-#include +-#include +-#include +-#include +- +-/* Used to disambiguate symbol names. */ +-static int counter; +- +-static void +-test_one (void *handle, const char *name, void *(func) (void *, const char *), +- const char *suffix) +-{ +- ++counter; +- char symbol[32]; +- snprintf (symbol, sizeof (symbol), "no_such_symbol_%d", counter); +- char *expected_message; +- if (asprintf (&expected_message, ": undefined symbol: %s%s", +- symbol, suffix) < 0) +- { +- printf ("error: asprintf: %m\n"); +- abort (); +- } +- +- void *addr = func (handle, symbol); +- if (addr != NULL) +- { +- printf ("error: %s: found symbol \"no_such_symbol\"\n", name); +- abort (); +- } +- const char *message = dlerror (); +- if (message == NULL) +- { +- printf ("error: %s: missing error message\n", name); +- abort (); +- } +- const char *message_without_path = strchrnul (message, ':'); +- if (strcmp (message_without_path, expected_message) != 0) +- { +- printf ("error: %s: unexpected error message: %s\n", name, message); +- abort (); +- } +- free (expected_message); +- +- message = dlerror (); +- if (message != NULL) +- { +- printf ("error: %s: unexpected error message: %s\n", name, message); +- abort (); +- } +-} +- +-static void +-test_handles (const char *name, void *(func) (void *, const char *), +- const char *suffix) +-{ +- test_one (RTLD_DEFAULT, name, func, suffix); +- test_one (RTLD_NEXT, name, func, suffix); +- +- void *handle = dlopen (LIBC_SO, RTLD_LAZY); +- if (handle == NULL) +- { +- printf ("error: cannot dlopen %s: %s\n", LIBC_SO, dlerror ()); +- abort (); +- } +- test_one (handle, name, func, suffix); +- dlclose (handle); +-} +- +-static void * +-dlvsym_no_such_version (void *handle, const char *name) +-{ +- return dlvsym (handle, name, "NO_SUCH_VERSION"); +-} +- +-static void * +-dlvsym_glibc_private (void *handle, const char *name) +-{ +- return dlvsym (handle, name, "GLIBC_PRIVATE"); +-} +- +-static int +-do_test (void) +-{ +- test_handles ("dlsym", dlsym, ""); +- test_handles ("dlvsym", dlvsym_no_such_version, +- ", version NO_SUCH_VERSION"); +- test_handles ("dlvsym", dlvsym_glibc_private, +- ", version GLIBC_PRIVATE"); +- +- return 0; +-} +- +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" diff --git a/glibc-rh1351108-update-to-unicode-9.0.0.patch b/glibc-rh1351108-update-to-unicode-9.0.0.patch new file mode 100644 index 0000000..1c74c22 --- /dev/null +++ b/glibc-rh1351108-update-to-unicode-9.0.0.patch @@ -0,0 +1,11569 @@ +From e94a2464105ed50a3e92553c5fc9fc04d0ba86cb Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Wed, 29 Jun 2016 08:40:51 +0200 +Subject: [PATCH 1/2] Update to Unicode 9.0.0 + +Update __STDC_ISO_10646__ to 201605L for Unicode 9.0.0. +Update character encoding, ctype, and transliteration tables. +--- + include/stdc-predef.h | 10 +- + localedata/charmaps/UTF-8 | 1670 +++++++++++++- + localedata/locales/i18n | 2616 ++++++++++++---------- + localedata/locales/tr_TR | 2616 ++++++++++++---------- + localedata/locales/translit_circle | 2 +- + localedata/locales/translit_cjk_compat | 4 +- + localedata/locales/translit_combining | 262 ++- + localedata/locales/translit_compat | 2 +- + localedata/locales/translit_font | 2 +- + localedata/locales/translit_fraction | 2 +- + localedata/unicode-gen/DerivedCoreProperties.txt | 412 +++- + localedata/unicode-gen/EastAsianWidth.txt | 288 ++- + localedata/unicode-gen/Makefile | 2 +- + localedata/unicode-gen/UnicodeData.txt | 1383 +++++++++++- + 17 files changed, 6702 insertions(+), 2595 deletions(-) + +diff --git a/include/stdc-predef.h b/include/stdc-predef.h +index f9f7f73..0c756b7 100644 +--- a/include/stdc-predef.h ++++ b/include/stdc-predef.h +@@ -49,10 +49,12 @@ + # define __STDC_IEC_559_COMPLEX__ 1 + #endif + +-/* wchar_t uses Unicode 8.0.0. Version 8.0 of the Unicode Standard is +- synchronized with ISO/IEC 10646:2014, plus Amendment 1 (published +- 2015-05-15). */ +-#define __STDC_ISO_10646__ 201505L ++/* wchar_t uses Unicode 9.0.0. Version 9.0 of the Unicode Standard is ++ synchronized with ISO/IEC 10646:2014, fourth edition, plus ++ Amd. 1 and Amd. 2 and 273 characters from forthcoming 10646, fifth edition. ++ (Amd. 2 was published 2016-05-01, ++ see https://www.iso.org/obp/ui/#iso:std:iso-iec:10646:ed-4:v1:amd:2:v1:en) */ ++#define __STDC_ISO_10646__ 201605L + + /* We do not support C11 . */ + #define __STDC_NO_THREADS__ 1 +diff --git a/localedata/charmaps/UTF-8 b/localedata/charmaps/UTF-8 +index 40ace9c..8463d58 100644 +--- a/localedata/charmaps/UTF-8 ++++ b/localedata/charmaps/UTF-8 +@@ -2102,6 +2102,29 @@ CHARMAP + /xe0/xa2/xb2 ARABIC LETTER ZAIN WITH INVERTED V ABOVE + /xe0/xa2/xb3 ARABIC LETTER AIN WITH THREE DOTS BELOW + /xe0/xa2/xb4 ARABIC LETTER KAF WITH DOT BELOW ++ /xe0/xa2/xb6 ARABIC LETTER BEH WITH SMALL MEEM ABOVE ++ /xe0/xa2/xb7 ARABIC LETTER PEH WITH SMALL MEEM ABOVE ++ /xe0/xa2/xb8 ARABIC LETTER TEH WITH SMALL TEH ABOVE ++ /xe0/xa2/xb9 ARABIC LETTER REH WITH SMALL NOON ABOVE ++ /xe0/xa2/xba ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE ++ /xe0/xa2/xbb ARABIC LETTER AFRICAN FEH ++ /xe0/xa2/xbc ARABIC LETTER AFRICAN QAF ++ /xe0/xa2/xbd ARABIC LETTER AFRICAN NOON ++ /xe0/xa3/x94 ARABIC SMALL HIGH WORD AR-RUB ++ /xe0/xa3/x95 ARABIC SMALL HIGH SAD ++ /xe0/xa3/x96 ARABIC SMALL HIGH AIN ++ /xe0/xa3/x97 ARABIC SMALL HIGH QAF ++ /xe0/xa3/x98 ARABIC SMALL HIGH NOON WITH KASRA ++ /xe0/xa3/x99 ARABIC SMALL LOW NOON WITH KASRA ++ /xe0/xa3/x9a ARABIC SMALL HIGH WORD ATH-THALATHA ++ /xe0/xa3/x9b ARABIC SMALL HIGH WORD AS-SAJDA ++ /xe0/xa3/x9c ARABIC SMALL HIGH WORD AN-NISF ++ /xe0/xa3/x9d ARABIC SMALL HIGH WORD SAKTA ++ /xe0/xa3/x9e ARABIC SMALL HIGH WORD QIF ++ /xe0/xa3/x9f ARABIC SMALL HIGH WORD WAQFA ++ /xe0/xa3/xa0 ARABIC SMALL HIGH FOOTNOTE MARKER ++ /xe0/xa3/xa1 ARABIC SMALL HIGH SIGN SAFHA ++ /xe0/xa3/xa2 ARABIC DISPUTED END OF AYAH + /xe0/xa3/xa3 ARABIC TURNED DAMMA BELOW + /xe0/xa3/xa4 ARABIC CURLY FATHA + /xe0/xa3/xa5 ARABIC CURLY DAMMA +@@ -2774,6 +2797,7 @@ CHARMAP + /xe0/xb1/xbd TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR + /xe0/xb1/xbe TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR + /xe0/xb1/xbf TELUGU SIGN TUUMU ++ /xe0/xb2/x80 KANNADA SIGN SPACING CANDRABINDU + /xe0/xb2/x81 KANNADA SIGN CANDRABINDU + /xe0/xb2/x82 KANNADA SIGN ANUSVARA + /xe0/xb2/x83 KANNADA SIGN VISARGA +@@ -2932,7 +2956,18 @@ CHARMAP + /xe0/xb5/x8c MALAYALAM VOWEL SIGN AU + /xe0/xb5/x8d MALAYALAM SIGN VIRAMA + /xe0/xb5/x8e MALAYALAM LETTER DOT REPH ++ /xe0/xb5/x8f MALAYALAM SIGN PARA ++ /xe0/xb5/x94 MALAYALAM LETTER CHILLU M ++ /xe0/xb5/x95 MALAYALAM LETTER CHILLU Y ++ /xe0/xb5/x96 MALAYALAM LETTER CHILLU LLL + /xe0/xb5/x97 MALAYALAM AU LENGTH MARK ++ /xe0/xb5/x98 MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH ++ /xe0/xb5/x99 MALAYALAM FRACTION ONE FORTIETH ++ /xe0/xb5/x9a MALAYALAM FRACTION THREE EIGHTIETHS ++ /xe0/xb5/x9b MALAYALAM FRACTION ONE TWENTIETH ++ /xe0/xb5/x9c MALAYALAM FRACTION ONE TENTH ++ /xe0/xb5/x9d MALAYALAM FRACTION THREE TWENTIETHS ++ /xe0/xb5/x9e MALAYALAM FRACTION ONE FIFTH + /xe0/xb5/x9f MALAYALAM LETTER ARCHAIC II + /xe0/xb5/xa0 MALAYALAM LETTER VOCALIC RR + /xe0/xb5/xa1 MALAYALAM LETTER VOCALIC LL +@@ -2954,6 +2989,9 @@ CHARMAP + /xe0/xb5/xb3 MALAYALAM FRACTION ONE QUARTER + /xe0/xb5/xb4 MALAYALAM FRACTION ONE HALF + /xe0/xb5/xb5 MALAYALAM FRACTION THREE QUARTERS ++ /xe0/xb5/xb6 MALAYALAM FRACTION ONE SIXTEENTH ++ /xe0/xb5/xb7 MALAYALAM FRACTION ONE EIGHTH ++ /xe0/xb5/xb8 MALAYALAM FRACTION THREE SIXTEENTHS + /xe0/xb5/xb9 MALAYALAM DATE MARK + /xe0/xb5/xba MALAYALAM LETTER CHILLU NN + /xe0/xb5/xbb MALAYALAM LETTER CHILLU N +@@ -6328,6 +6366,15 @@ CHARMAP + /xe1/xb1/xbd OL CHIKI AHAD + /xe1/xb1/xbe OL CHIKI PUNCTUATION MUCAAD + /xe1/xb1/xbf OL CHIKI PUNCTUATION DOUBLE MUCAAD ++ /xe1/xb2/x80 CYRILLIC SMALL LETTER ROUNDED VE ++ /xe1/xb2/x81 CYRILLIC SMALL LETTER LONG-LEGGED DE ++ /xe1/xb2/x82 CYRILLIC SMALL LETTER NARROW O ++ /xe1/xb2/x83 CYRILLIC SMALL LETTER WIDE ES ++ /xe1/xb2/x84 CYRILLIC SMALL LETTER TALL TE ++ /xe1/xb2/x85 CYRILLIC SMALL LETTER THREE-LEGGED TE ++ /xe1/xb2/x86 CYRILLIC SMALL LETTER TALL HARD SIGN ++ /xe1/xb2/x87 CYRILLIC SMALL LETTER TALL YAT ++ /xe1/xb2/x88 CYRILLIC SMALL LETTER UNBLENDED UK + /xe1/xb3/x80 SUNDANESE PUNCTUATION BINDU SURYA + /xe1/xb3/x81 SUNDANESE PUNCTUATION BINDU PANGLONG + /xe1/xb3/x82 SUNDANESE PUNCTUATION BINDU PURNAMA +@@ -6623,6 +6670,7 @@ CHARMAP + /xe1/xb7/xb3 COMBINING LATIN SMALL LETTER O WITH DIAERESIS + /xe1/xb7/xb4 COMBINING LATIN SMALL LETTER U WITH DIAERESIS + /xe1/xb7/xb5 COMBINING UP TACK ABOVE ++ /xe1/xb7/xbb COMBINING DELETION MARK + /xe1/xb7/xbc COMBINING DOUBLE INVERTED BREVE BELOW + /xe1/xb7/xbd COMBINING ALMOST EQUAL TO BELOW + /xe1/xb7/xbe COMBINING LEFT ARROWHEAD ABOVE +@@ -8092,6 +8140,10 @@ CHARMAP + /xe2/x8f/xb8 DOUBLE VERTICAL BAR + /xe2/x8f/xb9 BLACK SQUARE FOR STOP + /xe2/x8f/xba BLACK CIRCLE FOR RECORD ++ /xe2/x8f/xbb POWER SYMBOL ++ /xe2/x8f/xbc POWER ON-OFF SYMBOL ++ /xe2/x8f/xbd POWER ON SYMBOL ++ /xe2/x8f/xbe POWER SLEEP SYMBOL + /xe2/x90/x80 SYMBOL FOR NULL + /xe2/x90/x81 SYMBOL FOR START OF HEADING + /xe2/x90/x82 SYMBOL FOR START OF TEXT +@@ -10570,6 +10622,8 @@ CHARMAP + /xe2/xb9/x80 DOUBLE HYPHEN + /xe2/xb9/x81 REVERSED COMMA + /xe2/xb9/x82 DOUBLE LOW-REVERSED-9 QUOTATION MARK ++ /xe2/xb9/x83 DASH WITH LEFT UPTURN ++ /xe2/xb9/x84 DOUBLE SUSPENSION MARK + /xe2/xba/x80 CJK RADICAL REPEAT + /xe2/xba/x81 CJK RADICAL CLIFF + /xe2/xba/x82 CJK RADICAL SECOND ONE +@@ -14325,6 +14379,7 @@ CHARMAP + /xea/x9e/xab LATIN CAPITAL LETTER REVERSED OPEN E + /xea/x9e/xac LATIN CAPITAL LETTER SCRIPT G + /xea/x9e/xad LATIN CAPITAL LETTER L WITH BELT ++ /xea/x9e/xae LATIN CAPITAL LETTER SMALL CAPITAL I + /xea/x9e/xb0 LATIN CAPITAL LETTER TURNED K + /xea/x9e/xb1 LATIN CAPITAL LETTER TURNED T + /xea/x9e/xb2 LATIN CAPITAL LETTER J WITH CROSSED-TAIL +@@ -14521,6 +14576,7 @@ CHARMAP + /xea/xa3/x82 SAURASHTRA VOWEL SIGN OO + /xea/xa3/x83 SAURASHTRA VOWEL SIGN AU + /xea/xa3/x84 SAURASHTRA SIGN VIRAMA ++ /xea/xa3/x85 SAURASHTRA SIGN CANDRABINDU + /xea/xa3/x8e SAURASHTRA DANDA + /xea/xa3/x8f SAURASHTRA DOUBLE DANDA + /xea/xa3/x90 SAURASHTRA DIGIT ZERO +@@ -28538,6 +28594,8 @@ CHARMAP + /xf0/x90/x86/x8a GREEK ZERO SIGN + /xf0/x90/x86/x8b GREEK ONE QUARTER SIGN + /xf0/x90/x86/x8c GREEK SINUSOID SIGN ++ /xf0/x90/x86/x8d GREEK INDICTION SIGN ++ /xf0/x90/x86/x8e NOMISMA SIGN + /xf0/x90/x86/x90 ROMAN SEXTANS SIGN + /xf0/x90/x86/x91 ROMAN UNCIA SIGN + /xf0/x90/x86/x92 ROMAN SEMUNCIA SIGN +@@ -29058,6 +29116,78 @@ CHARMAP + /xf0/x90/x92/xa7 OSMANYA DIGIT SEVEN + /xf0/x90/x92/xa8 OSMANYA DIGIT EIGHT + /xf0/x90/x92/xa9 OSMANYA DIGIT NINE ++ /xf0/x90/x92/xb0 OSAGE CAPITAL LETTER A ++ /xf0/x90/x92/xb1 OSAGE CAPITAL LETTER AI ++ /xf0/x90/x92/xb2 OSAGE CAPITAL LETTER AIN ++ /xf0/x90/x92/xb3 OSAGE CAPITAL LETTER AH ++ /xf0/x90/x92/xb4 OSAGE CAPITAL LETTER BRA ++ /xf0/x90/x92/xb5 OSAGE CAPITAL LETTER CHA ++ /xf0/x90/x92/xb6 OSAGE CAPITAL LETTER EHCHA ++ /xf0/x90/x92/xb7 OSAGE CAPITAL LETTER E ++ /xf0/x90/x92/xb8 OSAGE CAPITAL LETTER EIN ++ /xf0/x90/x92/xb9 OSAGE CAPITAL LETTER HA ++ /xf0/x90/x92/xba OSAGE CAPITAL LETTER HYA ++ /xf0/x90/x92/xbb OSAGE CAPITAL LETTER I ++ /xf0/x90/x92/xbc OSAGE CAPITAL LETTER KA ++ /xf0/x90/x92/xbd OSAGE CAPITAL LETTER EHKA ++ /xf0/x90/x92/xbe OSAGE CAPITAL LETTER KYA ++ /xf0/x90/x92/xbf OSAGE CAPITAL LETTER LA ++ /xf0/x90/x93/x80 OSAGE CAPITAL LETTER MA ++ /xf0/x90/x93/x81 OSAGE CAPITAL LETTER NA ++ /xf0/x90/x93/x82 OSAGE CAPITAL LETTER O ++ /xf0/x90/x93/x83 OSAGE CAPITAL LETTER OIN ++ /xf0/x90/x93/x84 OSAGE CAPITAL LETTER PA ++ /xf0/x90/x93/x85 OSAGE CAPITAL LETTER EHPA ++ /xf0/x90/x93/x86 OSAGE CAPITAL LETTER SA ++ /xf0/x90/x93/x87 OSAGE CAPITAL LETTER SHA ++ /xf0/x90/x93/x88 OSAGE CAPITAL LETTER TA ++ /xf0/x90/x93/x89 OSAGE CAPITAL LETTER EHTA ++ /xf0/x90/x93/x8a OSAGE CAPITAL LETTER TSA ++ /xf0/x90/x93/x8b OSAGE CAPITAL LETTER EHTSA ++ /xf0/x90/x93/x8c OSAGE CAPITAL LETTER TSHA ++ /xf0/x90/x93/x8d OSAGE CAPITAL LETTER DHA ++ /xf0/x90/x93/x8e OSAGE CAPITAL LETTER U ++ /xf0/x90/x93/x8f OSAGE CAPITAL LETTER WA ++ /xf0/x90/x93/x90 OSAGE CAPITAL LETTER KHA ++ /xf0/x90/x93/x91 OSAGE CAPITAL LETTER GHA ++ /xf0/x90/x93/x92 OSAGE CAPITAL LETTER ZA ++ /xf0/x90/x93/x93 OSAGE CAPITAL LETTER ZHA ++ /xf0/x90/x93/x98 OSAGE SMALL LETTER A ++ /xf0/x90/x93/x99 OSAGE SMALL LETTER AI ++ /xf0/x90/x93/x9a OSAGE SMALL LETTER AIN ++ /xf0/x90/x93/x9b OSAGE SMALL LETTER AH ++ /xf0/x90/x93/x9c OSAGE SMALL LETTER BRA ++ /xf0/x90/x93/x9d OSAGE SMALL LETTER CHA ++ /xf0/x90/x93/x9e OSAGE SMALL LETTER EHCHA ++ /xf0/x90/x93/x9f OSAGE SMALL LETTER E ++ /xf0/x90/x93/xa0 OSAGE SMALL LETTER EIN ++ /xf0/x90/x93/xa1 OSAGE SMALL LETTER HA ++ /xf0/x90/x93/xa2 OSAGE SMALL LETTER HYA ++ /xf0/x90/x93/xa3 OSAGE SMALL LETTER I ++ /xf0/x90/x93/xa4 OSAGE SMALL LETTER KA ++ /xf0/x90/x93/xa5 OSAGE SMALL LETTER EHKA ++ /xf0/x90/x93/xa6 OSAGE SMALL LETTER KYA ++ /xf0/x90/x93/xa7 OSAGE SMALL LETTER LA ++ /xf0/x90/x93/xa8 OSAGE SMALL LETTER MA ++ /xf0/x90/x93/xa9 OSAGE SMALL LETTER NA ++ /xf0/x90/x93/xaa OSAGE SMALL LETTER O ++ /xf0/x90/x93/xab OSAGE SMALL LETTER OIN ++ /xf0/x90/x93/xac OSAGE SMALL LETTER PA ++ /xf0/x90/x93/xad OSAGE SMALL LETTER EHPA ++ /xf0/x90/x93/xae OSAGE SMALL LETTER SA ++ /xf0/x90/x93/xaf OSAGE SMALL LETTER SHA ++ /xf0/x90/x93/xb0 OSAGE SMALL LETTER TA ++ /xf0/x90/x93/xb1 OSAGE SMALL LETTER EHTA ++ /xf0/x90/x93/xb2 OSAGE SMALL LETTER TSA ++ /xf0/x90/x93/xb3 OSAGE SMALL LETTER EHTSA ++ /xf0/x90/x93/xb4 OSAGE SMALL LETTER TSHA ++ /xf0/x90/x93/xb5 OSAGE SMALL LETTER DHA ++ /xf0/x90/x93/xb6 OSAGE SMALL LETTER U ++ /xf0/x90/x93/xb7 OSAGE SMALL LETTER WA ++ /xf0/x90/x93/xb8 OSAGE SMALL LETTER KHA ++ /xf0/x90/x93/xb9 OSAGE SMALL LETTER GHA ++ /xf0/x90/x93/xba OSAGE SMALL LETTER ZA ++ /xf0/x90/x93/xbb OSAGE SMALL LETTER ZHA + /xf0/x90/x94/x80 ELBASAN LETTER A + /xf0/x90/x94/x81 ELBASAN LETTER BE + /xf0/x90/x94/x82 ELBASAN LETTER CE +@@ -30884,6 +31014,7 @@ CHARMAP + /xf0/x91/x88/xbb KHOJKI SECTION MARK + /xf0/x91/x88/xbc KHOJKI DOUBLE SECTION MARK + /xf0/x91/x88/xbd KHOJKI ABBREVIATION SIGN ++ /xf0/x91/x88/xbe KHOJKI SIGN SUKUN + /xf0/x91/x8a/x80 MULTANI LETTER A + /xf0/x91/x8a/x81 MULTANI LETTER I + /xf0/x91/x8a/x82 MULTANI LETTER U +@@ -31076,6 +31207,98 @@ CHARMAP + /xf0/x91/x8d/xb2 COMBINING GRANTHA LETTER NA + /xf0/x91/x8d/xb3 COMBINING GRANTHA LETTER VI + /xf0/x91/x8d/xb4 COMBINING GRANTHA LETTER PA ++ /xf0/x91/x90/x80 NEWA LETTER A ++ /xf0/x91/x90/x81 NEWA LETTER AA ++ /xf0/x91/x90/x82 NEWA LETTER I ++ /xf0/x91/x90/x83 NEWA LETTER II ++ /xf0/x91/x90/x84 NEWA LETTER U ++ /xf0/x91/x90/x85 NEWA LETTER UU ++ /xf0/x91/x90/x86 NEWA LETTER VOCALIC R ++ /xf0/x91/x90/x87 NEWA LETTER VOCALIC RR ++ /xf0/x91/x90/x88 NEWA LETTER VOCALIC L ++ /xf0/x91/x90/x89 NEWA LETTER VOCALIC LL ++ /xf0/x91/x90/x8a NEWA LETTER E ++ /xf0/x91/x90/x8b NEWA LETTER AI ++ /xf0/x91/x90/x8c NEWA LETTER O ++ /xf0/x91/x90/x8d NEWA LETTER AU ++ /xf0/x91/x90/x8e NEWA LETTER KA ++ /xf0/x91/x90/x8f NEWA LETTER KHA ++ /xf0/x91/x90/x90 NEWA LETTER GA ++ /xf0/x91/x90/x91 NEWA LETTER GHA ++ /xf0/x91/x90/x92 NEWA LETTER NGA ++ /xf0/x91/x90/x93 NEWA LETTER NGHA ++ /xf0/x91/x90/x94 NEWA LETTER CA ++ /xf0/x91/x90/x95 NEWA LETTER CHA ++ /xf0/x91/x90/x96 NEWA LETTER JA ++ /xf0/x91/x90/x97 NEWA LETTER JHA ++ /xf0/x91/x90/x98 NEWA LETTER NYA ++ /xf0/x91/x90/x99 NEWA LETTER NYHA ++ /xf0/x91/x90/x9a NEWA LETTER TTA ++ /xf0/x91/x90/x9b NEWA LETTER TTHA ++ /xf0/x91/x90/x9c NEWA LETTER DDA ++ /xf0/x91/x90/x9d NEWA LETTER DDHA ++ /xf0/x91/x90/x9e NEWA LETTER NNA ++ /xf0/x91/x90/x9f NEWA LETTER TA ++ /xf0/x91/x90/xa0 NEWA LETTER THA ++ /xf0/x91/x90/xa1 NEWA LETTER DA ++ /xf0/x91/x90/xa2 NEWA LETTER DHA ++ /xf0/x91/x90/xa3 NEWA LETTER NA ++ /xf0/x91/x90/xa4 NEWA LETTER NHA ++ /xf0/x91/x90/xa5 NEWA LETTER PA ++ /xf0/x91/x90/xa6 NEWA LETTER PHA ++ /xf0/x91/x90/xa7 NEWA LETTER BA ++ /xf0/x91/x90/xa8 NEWA LETTER BHA ++ /xf0/x91/x90/xa9 NEWA LETTER MA ++ /xf0/x91/x90/xaa NEWA LETTER MHA ++ /xf0/x91/x90/xab NEWA LETTER YA ++ /xf0/x91/x90/xac NEWA LETTER RA ++ /xf0/x91/x90/xad NEWA LETTER RHA ++ /xf0/x91/x90/xae NEWA LETTER LA ++ /xf0/x91/x90/xaf NEWA LETTER LHA ++ /xf0/x91/x90/xb0 NEWA LETTER WA ++ /xf0/x91/x90/xb1 NEWA LETTER SHA ++ /xf0/x91/x90/xb2 NEWA LETTER SSA ++ /xf0/x91/x90/xb3 NEWA LETTER SA ++ /xf0/x91/x90/xb4 NEWA LETTER HA ++ /xf0/x91/x90/xb5 NEWA VOWEL SIGN AA ++ /xf0/x91/x90/xb6 NEWA VOWEL SIGN I ++ /xf0/x91/x90/xb7 NEWA VOWEL SIGN II ++ /xf0/x91/x90/xb8 NEWA VOWEL SIGN U ++ /xf0/x91/x90/xb9 NEWA VOWEL SIGN UU ++ /xf0/x91/x90/xba NEWA VOWEL SIGN VOCALIC R ++ /xf0/x91/x90/xbb NEWA VOWEL SIGN VOCALIC RR ++ /xf0/x91/x90/xbc NEWA VOWEL SIGN VOCALIC L ++ /xf0/x91/x90/xbd NEWA VOWEL SIGN VOCALIC LL ++ /xf0/x91/x90/xbe NEWA VOWEL SIGN E ++ /xf0/x91/x90/xbf NEWA VOWEL SIGN AI ++ /xf0/x91/x91/x80 NEWA VOWEL SIGN O ++ /xf0/x91/x91/x81 NEWA VOWEL SIGN AU ++ /xf0/x91/x91/x82 NEWA SIGN VIRAMA ++ /xf0/x91/x91/x83 NEWA SIGN CANDRABINDU ++ /xf0/x91/x91/x84 NEWA SIGN ANUSVARA ++ /xf0/x91/x91/x85 NEWA SIGN VISARGA ++ /xf0/x91/x91/x86 NEWA SIGN NUKTA ++ /xf0/x91/x91/x87 NEWA SIGN AVAGRAHA ++ /xf0/x91/x91/x88 NEWA SIGN FINAL ANUSVARA ++ /xf0/x91/x91/x89 NEWA OM ++ /xf0/x91/x91/x8a NEWA SIDDHI ++ /xf0/x91/x91/x8b NEWA DANDA ++ /xf0/x91/x91/x8c NEWA DOUBLE DANDA ++ /xf0/x91/x91/x8d NEWA COMMA ++ /xf0/x91/x91/x8e NEWA GAP FILLER ++ /xf0/x91/x91/x8f NEWA ABBREVIATION SIGN ++ /xf0/x91/x91/x90 NEWA DIGIT ZERO ++ /xf0/x91/x91/x91 NEWA DIGIT ONE ++ /xf0/x91/x91/x92 NEWA DIGIT TWO ++ /xf0/x91/x91/x93 NEWA DIGIT THREE ++ /xf0/x91/x91/x94 NEWA DIGIT FOUR ++ /xf0/x91/x91/x95 NEWA DIGIT FIVE ++ /xf0/x91/x91/x96 NEWA DIGIT SIX ++ /xf0/x91/x91/x97 NEWA DIGIT SEVEN ++ /xf0/x91/x91/x98 NEWA DIGIT EIGHT ++ /xf0/x91/x91/x99 NEWA DIGIT NINE ++ /xf0/x91/x91/x9b NEWA PLACEHOLDER MARK ++ /xf0/x91/x91/x9d NEWA INSERTION SIGN + /xf0/x91/x92/x80 TIRHUTA ANJI + /xf0/x91/x92/x81 TIRHUTA LETTER A + /xf0/x91/x92/x82 TIRHUTA LETTER AA +@@ -31329,6 +31552,19 @@ CHARMAP + /xf0/x91/x99/x97 MODI DIGIT SEVEN + /xf0/x91/x99/x98 MODI DIGIT EIGHT + /xf0/x91/x99/x99 MODI DIGIT NINE ++ /xf0/x91/x99/xa0 MONGOLIAN BIRGA WITH ORNAMENT ++ /xf0/x91/x99/xa1 MONGOLIAN ROTATED BIRGA ++ /xf0/x91/x99/xa2 MONGOLIAN DOUBLE BIRGA WITH ORNAMENT ++ /xf0/x91/x99/xa3 MONGOLIAN TRIPLE BIRGA WITH ORNAMENT ++ /xf0/x91/x99/xa4 MONGOLIAN BIRGA WITH DOUBLE ORNAMENT ++ /xf0/x91/x99/xa5 MONGOLIAN ROTATED BIRGA WITH ORNAMENT ++ /xf0/x91/x99/xa6 MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT ++ /xf0/x91/x99/xa7 MONGOLIAN INVERTED BIRGA ++ /xf0/x91/x99/xa8 MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT ++ /xf0/x91/x99/xa9 MONGOLIAN SWIRL BIRGA ++ /xf0/x91/x99/xaa MONGOLIAN SWIRL BIRGA WITH ORNAMENT ++ /xf0/x91/x99/xab MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT ++ /xf0/x91/x99/xac MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT + /xf0/x91/x9a/x80 TAKRI LETTER A + /xf0/x91/x9a/x81 TAKRI LETTER AA + /xf0/x91/x9a/x82 TAKRI LETTER I +@@ -31593,6 +31829,171 @@ CHARMAP + /xf0/x91/xab/xb6 PAU CIN HAU LOW-FALLING TONE LONG FINAL + /xf0/x91/xab/xb7 PAU CIN HAU LOW-FALLING TONE FINAL + /xf0/x91/xab/xb8 PAU CIN HAU GLOTTAL STOP FINAL ++ /xf0/x91/xb0/x80 BHAIKSUKI LETTER A ++ /xf0/x91/xb0/x81 BHAIKSUKI LETTER AA ++ /xf0/x91/xb0/x82 BHAIKSUKI LETTER I ++ /xf0/x91/xb0/x83 BHAIKSUKI LETTER II ++ /xf0/x91/xb0/x84 BHAIKSUKI LETTER U ++ /xf0/x91/xb0/x85 BHAIKSUKI LETTER UU ++ /xf0/x91/xb0/x86 BHAIKSUKI LETTER VOCALIC R ++ /xf0/x91/xb0/x87 BHAIKSUKI LETTER VOCALIC RR ++ /xf0/x91/xb0/x88 BHAIKSUKI LETTER VOCALIC L ++ /xf0/x91/xb0/x8a BHAIKSUKI LETTER E ++ /xf0/x91/xb0/x8b BHAIKSUKI LETTER AI ++ /xf0/x91/xb0/x8c BHAIKSUKI LETTER O ++ /xf0/x91/xb0/x8d BHAIKSUKI LETTER AU ++ /xf0/x91/xb0/x8e BHAIKSUKI LETTER KA ++ /xf0/x91/xb0/x8f BHAIKSUKI LETTER KHA ++ /xf0/x91/xb0/x90 BHAIKSUKI LETTER GA ++ /xf0/x91/xb0/x91 BHAIKSUKI LETTER GHA ++ /xf0/x91/xb0/x92 BHAIKSUKI LETTER NGA ++ /xf0/x91/xb0/x93 BHAIKSUKI LETTER CA ++ /xf0/x91/xb0/x94 BHAIKSUKI LETTER CHA ++ /xf0/x91/xb0/x95 BHAIKSUKI LETTER JA ++ /xf0/x91/xb0/x96 BHAIKSUKI LETTER JHA ++ /xf0/x91/xb0/x97 BHAIKSUKI LETTER NYA ++ /xf0/x91/xb0/x98 BHAIKSUKI LETTER TTA ++ /xf0/x91/xb0/x99 BHAIKSUKI LETTER TTHA ++ /xf0/x91/xb0/x9a BHAIKSUKI LETTER DDA ++ /xf0/x91/xb0/x9b BHAIKSUKI LETTER DDHA ++ /xf0/x91/xb0/x9c BHAIKSUKI LETTER NNA ++ /xf0/x91/xb0/x9d BHAIKSUKI LETTER TA ++ /xf0/x91/xb0/x9e BHAIKSUKI LETTER THA ++ /xf0/x91/xb0/x9f BHAIKSUKI LETTER DA ++ /xf0/x91/xb0/xa0 BHAIKSUKI LETTER DHA ++ /xf0/x91/xb0/xa1 BHAIKSUKI LETTER NA ++ /xf0/x91/xb0/xa2 BHAIKSUKI LETTER PA ++ /xf0/x91/xb0/xa3 BHAIKSUKI LETTER PHA ++ /xf0/x91/xb0/xa4 BHAIKSUKI LETTER BA ++ /xf0/x91/xb0/xa5 BHAIKSUKI LETTER BHA ++ /xf0/x91/xb0/xa6 BHAIKSUKI LETTER MA ++ /xf0/x91/xb0/xa7 BHAIKSUKI LETTER YA ++ /xf0/x91/xb0/xa8 BHAIKSUKI LETTER RA ++ /xf0/x91/xb0/xa9 BHAIKSUKI LETTER LA ++ /xf0/x91/xb0/xaa BHAIKSUKI LETTER VA ++ /xf0/x91/xb0/xab BHAIKSUKI LETTER SHA ++ /xf0/x91/xb0/xac BHAIKSUKI LETTER SSA ++ /xf0/x91/xb0/xad BHAIKSUKI LETTER SA ++ /xf0/x91/xb0/xae BHAIKSUKI LETTER HA ++ /xf0/x91/xb0/xaf BHAIKSUKI VOWEL SIGN AA ++ /xf0/x91/xb0/xb0 BHAIKSUKI VOWEL SIGN I ++ /xf0/x91/xb0/xb1 BHAIKSUKI VOWEL SIGN II ++ /xf0/x91/xb0/xb2 BHAIKSUKI VOWEL SIGN U ++ /xf0/x91/xb0/xb3 BHAIKSUKI VOWEL SIGN UU ++ /xf0/x91/xb0/xb4 BHAIKSUKI VOWEL SIGN VOCALIC R ++ /xf0/x91/xb0/xb5 BHAIKSUKI VOWEL SIGN VOCALIC RR ++ /xf0/x91/xb0/xb6 BHAIKSUKI VOWEL SIGN VOCALIC L ++ /xf0/x91/xb0/xb8 BHAIKSUKI VOWEL SIGN E ++ /xf0/x91/xb0/xb9 BHAIKSUKI VOWEL SIGN AI ++ /xf0/x91/xb0/xba BHAIKSUKI VOWEL SIGN O ++ /xf0/x91/xb0/xbb BHAIKSUKI VOWEL SIGN AU ++ /xf0/x91/xb0/xbc BHAIKSUKI SIGN CANDRABINDU ++ /xf0/x91/xb0/xbd BHAIKSUKI SIGN ANUSVARA ++ /xf0/x91/xb0/xbe BHAIKSUKI SIGN VISARGA ++ /xf0/x91/xb0/xbf BHAIKSUKI SIGN VIRAMA ++ /xf0/x91/xb1/x80 BHAIKSUKI SIGN AVAGRAHA ++ /xf0/x91/xb1/x81 BHAIKSUKI DANDA ++ /xf0/x91/xb1/x82 BHAIKSUKI DOUBLE DANDA ++ /xf0/x91/xb1/x83 BHAIKSUKI WORD SEPARATOR ++ /xf0/x91/xb1/x84 BHAIKSUKI GAP FILLER-1 ++ /xf0/x91/xb1/x85 BHAIKSUKI GAP FILLER-2 ++ /xf0/x91/xb1/x90 BHAIKSUKI DIGIT ZERO ++ /xf0/x91/xb1/x91 BHAIKSUKI DIGIT ONE ++ /xf0/x91/xb1/x92 BHAIKSUKI DIGIT TWO ++ /xf0/x91/xb1/x93 BHAIKSUKI DIGIT THREE ++ /xf0/x91/xb1/x94 BHAIKSUKI DIGIT FOUR ++ /xf0/x91/xb1/x95 BHAIKSUKI DIGIT FIVE ++ /xf0/x91/xb1/x96 BHAIKSUKI DIGIT SIX ++ /xf0/x91/xb1/x97 BHAIKSUKI DIGIT SEVEN ++ /xf0/x91/xb1/x98 BHAIKSUKI DIGIT EIGHT ++ /xf0/x91/xb1/x99 BHAIKSUKI DIGIT NINE ++ /xf0/x91/xb1/x9a BHAIKSUKI NUMBER ONE ++ /xf0/x91/xb1/x9b BHAIKSUKI NUMBER TWO ++ /xf0/x91/xb1/x9c BHAIKSUKI NUMBER THREE ++ /xf0/x91/xb1/x9d BHAIKSUKI NUMBER FOUR ++ /xf0/x91/xb1/x9e BHAIKSUKI NUMBER FIVE ++ /xf0/x91/xb1/x9f BHAIKSUKI NUMBER SIX ++ /xf0/x91/xb1/xa0 BHAIKSUKI NUMBER SEVEN ++ /xf0/x91/xb1/xa1 BHAIKSUKI NUMBER EIGHT ++ /xf0/x91/xb1/xa2 BHAIKSUKI NUMBER NINE ++ /xf0/x91/xb1/xa3 BHAIKSUKI NUMBER TEN ++ /xf0/x91/xb1/xa4 BHAIKSUKI NUMBER TWENTY ++ /xf0/x91/xb1/xa5 BHAIKSUKI NUMBER THIRTY ++ /xf0/x91/xb1/xa6 BHAIKSUKI NUMBER FORTY ++ /xf0/x91/xb1/xa7 BHAIKSUKI NUMBER FIFTY ++ /xf0/x91/xb1/xa8 BHAIKSUKI NUMBER SIXTY ++ /xf0/x91/xb1/xa9 BHAIKSUKI NUMBER SEVENTY ++ /xf0/x91/xb1/xaa BHAIKSUKI NUMBER EIGHTY ++ /xf0/x91/xb1/xab BHAIKSUKI NUMBER NINETY ++ /xf0/x91/xb1/xac BHAIKSUKI HUNDREDS UNIT MARK ++ /xf0/x91/xb1/xb0 MARCHEN HEAD MARK ++ /xf0/x91/xb1/xb1 MARCHEN MARK SHAD ++ /xf0/x91/xb1/xb2 MARCHEN LETTER KA ++ /xf0/x91/xb1/xb3 MARCHEN LETTER KHA ++ /xf0/x91/xb1/xb4 MARCHEN LETTER GA ++ /xf0/x91/xb1/xb5 MARCHEN LETTER NGA ++ /xf0/x91/xb1/xb6 MARCHEN LETTER CA ++ /xf0/x91/xb1/xb7 MARCHEN LETTER CHA ++ /xf0/x91/xb1/xb8 MARCHEN LETTER JA ++ /xf0/x91/xb1/xb9 MARCHEN LETTER NYA ++ /xf0/x91/xb1/xba MARCHEN LETTER TA ++ /xf0/x91/xb1/xbb MARCHEN LETTER THA ++ /xf0/x91/xb1/xbc MARCHEN LETTER DA ++ /xf0/x91/xb1/xbd MARCHEN LETTER NA ++ /xf0/x91/xb1/xbe MARCHEN LETTER PA ++ /xf0/x91/xb1/xbf MARCHEN LETTER PHA ++ /xf0/x91/xb2/x80 MARCHEN LETTER BA ++ /xf0/x91/xb2/x81 MARCHEN LETTER MA ++ /xf0/x91/xb2/x82 MARCHEN LETTER TSA ++ /xf0/x91/xb2/x83 MARCHEN LETTER TSHA ++ /xf0/x91/xb2/x84 MARCHEN LETTER DZA ++ /xf0/x91/xb2/x85 MARCHEN LETTER WA ++ /xf0/x91/xb2/x86 MARCHEN LETTER ZHA ++ /xf0/x91/xb2/x87 MARCHEN LETTER ZA ++ /xf0/x91/xb2/x88 MARCHEN LETTER -A ++ /xf0/x91/xb2/x89 MARCHEN LETTER YA ++ /xf0/x91/xb2/x8a MARCHEN LETTER RA ++ /xf0/x91/xb2/x8b MARCHEN LETTER LA ++ /xf0/x91/xb2/x8c MARCHEN LETTER SHA ++ /xf0/x91/xb2/x8d MARCHEN LETTER SA ++ /xf0/x91/xb2/x8e MARCHEN LETTER HA ++ /xf0/x91/xb2/x8f MARCHEN LETTER A ++ /xf0/x91/xb2/x92 MARCHEN SUBJOINED LETTER KA ++ /xf0/x91/xb2/x93 MARCHEN SUBJOINED LETTER KHA ++ /xf0/x91/xb2/x94 MARCHEN SUBJOINED LETTER GA ++ /xf0/x91/xb2/x95 MARCHEN SUBJOINED LETTER NGA ++ /xf0/x91/xb2/x96 MARCHEN SUBJOINED LETTER CA ++ /xf0/x91/xb2/x97 MARCHEN SUBJOINED LETTER CHA ++ /xf0/x91/xb2/x98 MARCHEN SUBJOINED LETTER JA ++ /xf0/x91/xb2/x99 MARCHEN SUBJOINED LETTER NYA ++ /xf0/x91/xb2/x9a MARCHEN SUBJOINED LETTER TA ++ /xf0/x91/xb2/x9b MARCHEN SUBJOINED LETTER THA ++ /xf0/x91/xb2/x9c MARCHEN SUBJOINED LETTER DA ++ /xf0/x91/xb2/x9d MARCHEN SUBJOINED LETTER NA ++ /xf0/x91/xb2/x9e MARCHEN SUBJOINED LETTER PA ++ /xf0/x91/xb2/x9f MARCHEN SUBJOINED LETTER PHA ++ /xf0/x91/xb2/xa0 MARCHEN SUBJOINED LETTER BA ++ /xf0/x91/xb2/xa1 MARCHEN SUBJOINED LETTER MA ++ /xf0/x91/xb2/xa2 MARCHEN SUBJOINED LETTER TSA ++ /xf0/x91/xb2/xa3 MARCHEN SUBJOINED LETTER TSHA ++ /xf0/x91/xb2/xa4 MARCHEN SUBJOINED LETTER DZA ++ /xf0/x91/xb2/xa5 MARCHEN SUBJOINED LETTER WA ++ /xf0/x91/xb2/xa6 MARCHEN SUBJOINED LETTER ZHA ++ /xf0/x91/xb2/xa7 MARCHEN SUBJOINED LETTER ZA ++ /xf0/x91/xb2/xa9 MARCHEN SUBJOINED LETTER YA ++ /xf0/x91/xb2/xaa MARCHEN SUBJOINED LETTER RA ++ /xf0/x91/xb2/xab MARCHEN SUBJOINED LETTER LA ++ /xf0/x91/xb2/xac MARCHEN SUBJOINED LETTER SHA ++ /xf0/x91/xb2/xad MARCHEN SUBJOINED LETTER SA ++ /xf0/x91/xb2/xae MARCHEN SUBJOINED LETTER HA ++ /xf0/x91/xb2/xaf MARCHEN SUBJOINED LETTER A ++ /xf0/x91/xb2/xb0 MARCHEN VOWEL SIGN AA ++ /xf0/x91/xb2/xb1 MARCHEN VOWEL SIGN I ++ /xf0/x91/xb2/xb2 MARCHEN VOWEL SIGN U ++ /xf0/x91/xb2/xb3 MARCHEN VOWEL SIGN E ++ /xf0/x91/xb2/xb4 MARCHEN VOWEL SIGN O ++ /xf0/x91/xb2/xb5 MARCHEN SIGN ANUSVARA ++ /xf0/x91/xb2/xb6 MARCHEN SIGN CANDRABINDU + /xf0/x92/x80/x80 CUNEIFORM SIGN A + /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A + /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD +@@ -35389,6 +35790,858 @@ CHARMAP + /xf0/x96/xbe/x9d MIAO LETTER REFORMED TONE-5 + /xf0/x96/xbe/x9e MIAO LETTER REFORMED TONE-6 + /xf0/x96/xbe/x9f MIAO LETTER REFORMED TONE-8 ++ /xf0/x96/xbf/xa0 TANGUT ITERATION MARK ++.. /xf0/x97/x80/x80 ++.. /xf0/x97/x81/x80 ++.. /xf0/x97/x82/x80 ++.. /xf0/x97/x83/x80 ++.. /xf0/x97/x84/x80 ++.. /xf0/x97/x85/x80 ++.. /xf0/x97/x86/x80 ++.. /xf0/x97/x87/x80 ++.. /xf0/x97/x88/x80 ++.. /xf0/x97/x89/x80 ++.. /xf0/x97/x8a/x80 ++.. /xf0/x97/x8b/x80 ++.. /xf0/x97/x8c/x80 ++.. /xf0/x97/x8d/x80 ++.. /xf0/x97/x8e/x80 ++.. /xf0/x97/x8f/x80 ++.. /xf0/x97/x90/x80 ++.. /xf0/x97/x91/x80 ++.. /xf0/x97/x92/x80 ++.. /xf0/x97/x93/x80 ++.. /xf0/x97/x94/x80 ++.. /xf0/x97/x95/x80 ++.. /xf0/x97/x96/x80 ++.. /xf0/x97/x97/x80 ++.. /xf0/x97/x98/x80 ++.. /xf0/x97/x99/x80 ++.. /xf0/x97/x9a/x80 ++.. /xf0/x97/x9b/x80 ++.. /xf0/x97/x9c/x80 ++.. /xf0/x97/x9d/x80 ++.. /xf0/x97/x9e/x80 ++.. /xf0/x97/x9f/x80 ++.. /xf0/x97/xa0/x80 ++.. /xf0/x97/xa1/x80 ++.. /xf0/x97/xa2/x80 ++.. /xf0/x97/xa3/x80 ++.. /xf0/x97/xa4/x80 ++.. /xf0/x97/xa5/x80 ++.. /xf0/x97/xa6/x80 ++.. /xf0/x97/xa7/x80 ++.. /xf0/x97/xa8/x80 ++.. /xf0/x97/xa9/x80 ++.. /xf0/x97/xaa/x80 ++.. /xf0/x97/xab/x80 ++.. /xf0/x97/xac/x80 ++.. /xf0/x97/xad/x80 ++.. /xf0/x97/xae/x80 ++.. /xf0/x97/xaf/x80 ++.. /xf0/x97/xb0/x80 ++.. /xf0/x97/xb1/x80 ++.. /xf0/x97/xb2/x80 ++.. /xf0/x97/xb3/x80 ++.. /xf0/x97/xb4/x80 ++.. /xf0/x97/xb5/x80 ++.. /xf0/x97/xb6/x80 ++.. /xf0/x97/xb7/x80 ++.. /xf0/x97/xb8/x80 ++.. /xf0/x97/xb9/x80 ++.. /xf0/x97/xba/x80 ++.. /xf0/x97/xbb/x80 ++.. /xf0/x97/xbc/x80 ++.. /xf0/x97/xbd/x80 ++.. /xf0/x97/xbe/x80 ++.. /xf0/x97/xbf/x80 ++.. /xf0/x98/x80/x80 ++.. /xf0/x98/x81/x80 ++.. /xf0/x98/x82/x80 ++.. /xf0/x98/x83/x80 ++.. /xf0/x98/x84/x80 ++.. /xf0/x98/x85/x80 ++.. /xf0/x98/x86/x80 ++.. /xf0/x98/x87/x80 ++.. /xf0/x98/x88/x80 ++.. /xf0/x98/x89/x80 ++.. /xf0/x98/x8a/x80 ++.. /xf0/x98/x8b/x80 ++.. /xf0/x98/x8c/x80 ++.. /xf0/x98/x8d/x80 ++.. /xf0/x98/x8e/x80 ++.. /xf0/x98/x8f/x80 ++.. /xf0/x98/x90/x80 ++.. /xf0/x98/x91/x80 ++.. /xf0/x98/x92/x80 ++.. /xf0/x98/x93/x80 ++.. /xf0/x98/x94/x80 ++.. /xf0/x98/x95/x80 ++.. /xf0/x98/x96/x80 ++.. /xf0/x98/x97/x80 ++.. /xf0/x98/x98/x80 ++.. /xf0/x98/x99/x80 ++.. /xf0/x98/x9a/x80 ++.. /xf0/x98/x9b/x80 ++.. /xf0/x98/x9c/x80 ++.. /xf0/x98/x9d/x80 ++.. /xf0/x98/x9e/x80 ++.. /xf0/x98/x9f/x80 ++ /xf0/x98/xa0/x80 TANGUT COMPONENT-001 ++ /xf0/x98/xa0/x81 TANGUT COMPONENT-002 ++ /xf0/x98/xa0/x82 TANGUT COMPONENT-003 ++ /xf0/x98/xa0/x83 TANGUT COMPONENT-004 ++ /xf0/x98/xa0/x84 TANGUT COMPONENT-005 ++ /xf0/x98/xa0/x85 TANGUT COMPONENT-006 ++ /xf0/x98/xa0/x86 TANGUT COMPONENT-007 ++ /xf0/x98/xa0/x87 TANGUT COMPONENT-008 ++ /xf0/x98/xa0/x88 TANGUT COMPONENT-009 ++ /xf0/x98/xa0/x89 TANGUT COMPONENT-010 ++ /xf0/x98/xa0/x8a TANGUT COMPONENT-011 ++ /xf0/x98/xa0/x8b TANGUT COMPONENT-012 ++ /xf0/x98/xa0/x8c TANGUT COMPONENT-013 ++ /xf0/x98/xa0/x8d TANGUT COMPONENT-014 ++ /xf0/x98/xa0/x8e TANGUT COMPONENT-015 ++ /xf0/x98/xa0/x8f TANGUT COMPONENT-016 ++ /xf0/x98/xa0/x90 TANGUT COMPONENT-017 ++ /xf0/x98/xa0/x91 TANGUT COMPONENT-018 ++ /xf0/x98/xa0/x92 TANGUT COMPONENT-019 ++ /xf0/x98/xa0/x93 TANGUT COMPONENT-020 ++ /xf0/x98/xa0/x94 TANGUT COMPONENT-021 ++ /xf0/x98/xa0/x95 TANGUT COMPONENT-022 ++ /xf0/x98/xa0/x96 TANGUT COMPONENT-023 ++ /xf0/x98/xa0/x97 TANGUT COMPONENT-024 ++ /xf0/x98/xa0/x98 TANGUT COMPONENT-025 ++ /xf0/x98/xa0/x99 TANGUT COMPONENT-026 ++ /xf0/x98/xa0/x9a TANGUT COMPONENT-027 ++ /xf0/x98/xa0/x9b TANGUT COMPONENT-028 ++ /xf0/x98/xa0/x9c TANGUT COMPONENT-029 ++ /xf0/x98/xa0/x9d TANGUT COMPONENT-030 ++ /xf0/x98/xa0/x9e TANGUT COMPONENT-031 ++ /xf0/x98/xa0/x9f TANGUT COMPONENT-032 ++ /xf0/x98/xa0/xa0 TANGUT COMPONENT-033 ++ /xf0/x98/xa0/xa1 TANGUT COMPONENT-034 ++ /xf0/x98/xa0/xa2 TANGUT COMPONENT-035 ++ /xf0/x98/xa0/xa3 TANGUT COMPONENT-036 ++ /xf0/x98/xa0/xa4 TANGUT COMPONENT-037 ++ /xf0/x98/xa0/xa5 TANGUT COMPONENT-038 ++ /xf0/x98/xa0/xa6 TANGUT COMPONENT-039 ++ /xf0/x98/xa0/xa7 TANGUT COMPONENT-040 ++ /xf0/x98/xa0/xa8 TANGUT COMPONENT-041 ++ /xf0/x98/xa0/xa9 TANGUT COMPONENT-042 ++ /xf0/x98/xa0/xaa TANGUT COMPONENT-043 ++ /xf0/x98/xa0/xab TANGUT COMPONENT-044 ++ /xf0/x98/xa0/xac TANGUT COMPONENT-045 ++ /xf0/x98/xa0/xad TANGUT COMPONENT-046 ++ /xf0/x98/xa0/xae TANGUT COMPONENT-047 ++ /xf0/x98/xa0/xaf TANGUT COMPONENT-048 ++ /xf0/x98/xa0/xb0 TANGUT COMPONENT-049 ++ /xf0/x98/xa0/xb1 TANGUT COMPONENT-050 ++ /xf0/x98/xa0/xb2 TANGUT COMPONENT-051 ++ /xf0/x98/xa0/xb3 TANGUT COMPONENT-052 ++ /xf0/x98/xa0/xb4 TANGUT COMPONENT-053 ++ /xf0/x98/xa0/xb5 TANGUT COMPONENT-054 ++ /xf0/x98/xa0/xb6 TANGUT COMPONENT-055 ++ /xf0/x98/xa0/xb7 TANGUT COMPONENT-056 ++ /xf0/x98/xa0/xb8 TANGUT COMPONENT-057 ++ /xf0/x98/xa0/xb9 TANGUT COMPONENT-058 ++ /xf0/x98/xa0/xba TANGUT COMPONENT-059 ++ /xf0/x98/xa0/xbb TANGUT COMPONENT-060 ++ /xf0/x98/xa0/xbc TANGUT COMPONENT-061 ++ /xf0/x98/xa0/xbd TANGUT COMPONENT-062 ++ /xf0/x98/xa0/xbe TANGUT COMPONENT-063 ++ /xf0/x98/xa0/xbf TANGUT COMPONENT-064 ++ /xf0/x98/xa1/x80 TANGUT COMPONENT-065 ++ /xf0/x98/xa1/x81 TANGUT COMPONENT-066 ++ /xf0/x98/xa1/x82 TANGUT COMPONENT-067 ++ /xf0/x98/xa1/x83 TANGUT COMPONENT-068 ++ /xf0/x98/xa1/x84 TANGUT COMPONENT-069 ++ /xf0/x98/xa1/x85 TANGUT COMPONENT-070 ++ /xf0/x98/xa1/x86 TANGUT COMPONENT-071 ++ /xf0/x98/xa1/x87 TANGUT COMPONENT-072 ++ /xf0/x98/xa1/x88 TANGUT COMPONENT-073 ++ /xf0/x98/xa1/x89 TANGUT COMPONENT-074 ++ /xf0/x98/xa1/x8a TANGUT COMPONENT-075 ++ /xf0/x98/xa1/x8b TANGUT COMPONENT-076 ++ /xf0/x98/xa1/x8c TANGUT COMPONENT-077 ++ /xf0/x98/xa1/x8d TANGUT COMPONENT-078 ++ /xf0/x98/xa1/x8e TANGUT COMPONENT-079 ++ /xf0/x98/xa1/x8f TANGUT COMPONENT-080 ++ /xf0/x98/xa1/x90 TANGUT COMPONENT-081 ++ /xf0/x98/xa1/x91 TANGUT COMPONENT-082 ++ /xf0/x98/xa1/x92 TANGUT COMPONENT-083 ++ /xf0/x98/xa1/x93 TANGUT COMPONENT-084 ++ /xf0/x98/xa1/x94 TANGUT COMPONENT-085 ++ /xf0/x98/xa1/x95 TANGUT COMPONENT-086 ++ /xf0/x98/xa1/x96 TANGUT COMPONENT-087 ++ /xf0/x98/xa1/x97 TANGUT COMPONENT-088 ++ /xf0/x98/xa1/x98 TANGUT COMPONENT-089 ++ /xf0/x98/xa1/x99 TANGUT COMPONENT-090 ++ /xf0/x98/xa1/x9a TANGUT COMPONENT-091 ++ /xf0/x98/xa1/x9b TANGUT COMPONENT-092 ++ /xf0/x98/xa1/x9c TANGUT COMPONENT-093 ++ /xf0/x98/xa1/x9d TANGUT COMPONENT-094 ++ /xf0/x98/xa1/x9e TANGUT COMPONENT-095 ++ /xf0/x98/xa1/x9f TANGUT COMPONENT-096 ++ /xf0/x98/xa1/xa0 TANGUT COMPONENT-097 ++ /xf0/x98/xa1/xa1 TANGUT COMPONENT-098 ++ /xf0/x98/xa1/xa2 TANGUT COMPONENT-099 ++ /xf0/x98/xa1/xa3 TANGUT COMPONENT-100 ++ /xf0/x98/xa1/xa4 TANGUT COMPONENT-101 ++ /xf0/x98/xa1/xa5 TANGUT COMPONENT-102 ++ /xf0/x98/xa1/xa6 TANGUT COMPONENT-103 ++ /xf0/x98/xa1/xa7 TANGUT COMPONENT-104 ++ /xf0/x98/xa1/xa8 TANGUT COMPONENT-105 ++ /xf0/x98/xa1/xa9 TANGUT COMPONENT-106 ++ /xf0/x98/xa1/xaa TANGUT COMPONENT-107 ++ /xf0/x98/xa1/xab TANGUT COMPONENT-108 ++ /xf0/x98/xa1/xac TANGUT COMPONENT-109 ++ /xf0/x98/xa1/xad TANGUT COMPONENT-110 ++ /xf0/x98/xa1/xae TANGUT COMPONENT-111 ++ /xf0/x98/xa1/xaf TANGUT COMPONENT-112 ++ /xf0/x98/xa1/xb0 TANGUT COMPONENT-113 ++ /xf0/x98/xa1/xb1 TANGUT COMPONENT-114 ++ /xf0/x98/xa1/xb2 TANGUT COMPONENT-115 ++ /xf0/x98/xa1/xb3 TANGUT COMPONENT-116 ++ /xf0/x98/xa1/xb4 TANGUT COMPONENT-117 ++ /xf0/x98/xa1/xb5 TANGUT COMPONENT-118 ++ /xf0/x98/xa1/xb6 TANGUT COMPONENT-119 ++ /xf0/x98/xa1/xb7 TANGUT COMPONENT-120 ++ /xf0/x98/xa1/xb8 TANGUT COMPONENT-121 ++ /xf0/x98/xa1/xb9 TANGUT COMPONENT-122 ++ /xf0/x98/xa1/xba TANGUT COMPONENT-123 ++ /xf0/x98/xa1/xbb TANGUT COMPONENT-124 ++ /xf0/x98/xa1/xbc TANGUT COMPONENT-125 ++ /xf0/x98/xa1/xbd TANGUT COMPONENT-126 ++ /xf0/x98/xa1/xbe TANGUT COMPONENT-127 ++ /xf0/x98/xa1/xbf TANGUT COMPONENT-128 ++ /xf0/x98/xa2/x80 TANGUT COMPONENT-129 ++ /xf0/x98/xa2/x81 TANGUT COMPONENT-130 ++ /xf0/x98/xa2/x82 TANGUT COMPONENT-131 ++ /xf0/x98/xa2/x83 TANGUT COMPONENT-132 ++ /xf0/x98/xa2/x84 TANGUT COMPONENT-133 ++ /xf0/x98/xa2/x85 TANGUT COMPONENT-134 ++ /xf0/x98/xa2/x86 TANGUT COMPONENT-135 ++ /xf0/x98/xa2/x87 TANGUT COMPONENT-136 ++ /xf0/x98/xa2/x88 TANGUT COMPONENT-137 ++ /xf0/x98/xa2/x89 TANGUT COMPONENT-138 ++ /xf0/x98/xa2/x8a TANGUT COMPONENT-139 ++ /xf0/x98/xa2/x8b TANGUT COMPONENT-140 ++ /xf0/x98/xa2/x8c TANGUT COMPONENT-141 ++ /xf0/x98/xa2/x8d TANGUT COMPONENT-142 ++ /xf0/x98/xa2/x8e TANGUT COMPONENT-143 ++ /xf0/x98/xa2/x8f TANGUT COMPONENT-144 ++ /xf0/x98/xa2/x90 TANGUT COMPONENT-145 ++ /xf0/x98/xa2/x91 TANGUT COMPONENT-146 ++ /xf0/x98/xa2/x92 TANGUT COMPONENT-147 ++ /xf0/x98/xa2/x93 TANGUT COMPONENT-148 ++ /xf0/x98/xa2/x94 TANGUT COMPONENT-149 ++ /xf0/x98/xa2/x95 TANGUT COMPONENT-150 ++ /xf0/x98/xa2/x96 TANGUT COMPONENT-151 ++ /xf0/x98/xa2/x97 TANGUT COMPONENT-152 ++ /xf0/x98/xa2/x98 TANGUT COMPONENT-153 ++ /xf0/x98/xa2/x99 TANGUT COMPONENT-154 ++ /xf0/x98/xa2/x9a TANGUT COMPONENT-155 ++ /xf0/x98/xa2/x9b TANGUT COMPONENT-156 ++ /xf0/x98/xa2/x9c TANGUT COMPONENT-157 ++ /xf0/x98/xa2/x9d TANGUT COMPONENT-158 ++ /xf0/x98/xa2/x9e TANGUT COMPONENT-159 ++ /xf0/x98/xa2/x9f TANGUT COMPONENT-160 ++ /xf0/x98/xa2/xa0 TANGUT COMPONENT-161 ++ /xf0/x98/xa2/xa1 TANGUT COMPONENT-162 ++ /xf0/x98/xa2/xa2 TANGUT COMPONENT-163 ++ /xf0/x98/xa2/xa3 TANGUT COMPONENT-164 ++ /xf0/x98/xa2/xa4 TANGUT COMPONENT-165 ++ /xf0/x98/xa2/xa5 TANGUT COMPONENT-166 ++ /xf0/x98/xa2/xa6 TANGUT COMPONENT-167 ++ /xf0/x98/xa2/xa7 TANGUT COMPONENT-168 ++ /xf0/x98/xa2/xa8 TANGUT COMPONENT-169 ++ /xf0/x98/xa2/xa9 TANGUT COMPONENT-170 ++ /xf0/x98/xa2/xaa TANGUT COMPONENT-171 ++ /xf0/x98/xa2/xab TANGUT COMPONENT-172 ++ /xf0/x98/xa2/xac TANGUT COMPONENT-173 ++ /xf0/x98/xa2/xad TANGUT COMPONENT-174 ++ /xf0/x98/xa2/xae TANGUT COMPONENT-175 ++ /xf0/x98/xa2/xaf TANGUT COMPONENT-176 ++ /xf0/x98/xa2/xb0 TANGUT COMPONENT-177 ++ /xf0/x98/xa2/xb1 TANGUT COMPONENT-178 ++ /xf0/x98/xa2/xb2 TANGUT COMPONENT-179 ++ /xf0/x98/xa2/xb3 TANGUT COMPONENT-180 ++ /xf0/x98/xa2/xb4 TANGUT COMPONENT-181 ++ /xf0/x98/xa2/xb5 TANGUT COMPONENT-182 ++ /xf0/x98/xa2/xb6 TANGUT COMPONENT-183 ++ /xf0/x98/xa2/xb7 TANGUT COMPONENT-184 ++ /xf0/x98/xa2/xb8 TANGUT COMPONENT-185 ++ /xf0/x98/xa2/xb9 TANGUT COMPONENT-186 ++ /xf0/x98/xa2/xba TANGUT COMPONENT-187 ++ /xf0/x98/xa2/xbb TANGUT COMPONENT-188 ++ /xf0/x98/xa2/xbc TANGUT COMPONENT-189 ++ /xf0/x98/xa2/xbd TANGUT COMPONENT-190 ++ /xf0/x98/xa2/xbe TANGUT COMPONENT-191 ++ /xf0/x98/xa2/xbf TANGUT COMPONENT-192 ++ /xf0/x98/xa3/x80 TANGUT COMPONENT-193 ++ /xf0/x98/xa3/x81 TANGUT COMPONENT-194 ++ /xf0/x98/xa3/x82 TANGUT COMPONENT-195 ++ /xf0/x98/xa3/x83 TANGUT COMPONENT-196 ++ /xf0/x98/xa3/x84 TANGUT COMPONENT-197 ++ /xf0/x98/xa3/x85 TANGUT COMPONENT-198 ++ /xf0/x98/xa3/x86 TANGUT COMPONENT-199 ++ /xf0/x98/xa3/x87 TANGUT COMPONENT-200 ++ /xf0/x98/xa3/x88 TANGUT COMPONENT-201 ++ /xf0/x98/xa3/x89 TANGUT COMPONENT-202 ++ /xf0/x98/xa3/x8a TANGUT COMPONENT-203 ++ /xf0/x98/xa3/x8b TANGUT COMPONENT-204 ++ /xf0/x98/xa3/x8c TANGUT COMPONENT-205 ++ /xf0/x98/xa3/x8d TANGUT COMPONENT-206 ++ /xf0/x98/xa3/x8e TANGUT COMPONENT-207 ++ /xf0/x98/xa3/x8f TANGUT COMPONENT-208 ++ /xf0/x98/xa3/x90 TANGUT COMPONENT-209 ++ /xf0/x98/xa3/x91 TANGUT COMPONENT-210 ++ /xf0/x98/xa3/x92 TANGUT COMPONENT-211 ++ /xf0/x98/xa3/x93 TANGUT COMPONENT-212 ++ /xf0/x98/xa3/x94 TANGUT COMPONENT-213 ++ /xf0/x98/xa3/x95 TANGUT COMPONENT-214 ++ /xf0/x98/xa3/x96 TANGUT COMPONENT-215 ++ /xf0/x98/xa3/x97 TANGUT COMPONENT-216 ++ /xf0/x98/xa3/x98 TANGUT COMPONENT-217 ++ /xf0/x98/xa3/x99 TANGUT COMPONENT-218 ++ /xf0/x98/xa3/x9a TANGUT COMPONENT-219 ++ /xf0/x98/xa3/x9b TANGUT COMPONENT-220 ++ /xf0/x98/xa3/x9c TANGUT COMPONENT-221 ++ /xf0/x98/xa3/x9d TANGUT COMPONENT-222 ++ /xf0/x98/xa3/x9e TANGUT COMPONENT-223 ++ /xf0/x98/xa3/x9f TANGUT COMPONENT-224 ++ /xf0/x98/xa3/xa0 TANGUT COMPONENT-225 ++ /xf0/x98/xa3/xa1 TANGUT COMPONENT-226 ++ /xf0/x98/xa3/xa2 TANGUT COMPONENT-227 ++ /xf0/x98/xa3/xa3 TANGUT COMPONENT-228 ++ /xf0/x98/xa3/xa4 TANGUT COMPONENT-229 ++ /xf0/x98/xa3/xa5 TANGUT COMPONENT-230 ++ /xf0/x98/xa3/xa6 TANGUT COMPONENT-231 ++ /xf0/x98/xa3/xa7 TANGUT COMPONENT-232 ++ /xf0/x98/xa3/xa8 TANGUT COMPONENT-233 ++ /xf0/x98/xa3/xa9 TANGUT COMPONENT-234 ++ /xf0/x98/xa3/xaa TANGUT COMPONENT-235 ++ /xf0/x98/xa3/xab TANGUT COMPONENT-236 ++ /xf0/x98/xa3/xac TANGUT COMPONENT-237 ++ /xf0/x98/xa3/xad TANGUT COMPONENT-238 ++ /xf0/x98/xa3/xae TANGUT COMPONENT-239 ++ /xf0/x98/xa3/xaf TANGUT COMPONENT-240 ++ /xf0/x98/xa3/xb0 TANGUT COMPONENT-241 ++ /xf0/x98/xa3/xb1 TANGUT COMPONENT-242 ++ /xf0/x98/xa3/xb2 TANGUT COMPONENT-243 ++ /xf0/x98/xa3/xb3 TANGUT COMPONENT-244 ++ /xf0/x98/xa3/xb4 TANGUT COMPONENT-245 ++ /xf0/x98/xa3/xb5 TANGUT COMPONENT-246 ++ /xf0/x98/xa3/xb6 TANGUT COMPONENT-247 ++ /xf0/x98/xa3/xb7 TANGUT COMPONENT-248 ++ /xf0/x98/xa3/xb8 TANGUT COMPONENT-249 ++ /xf0/x98/xa3/xb9 TANGUT COMPONENT-250 ++ /xf0/x98/xa3/xba TANGUT COMPONENT-251 ++ /xf0/x98/xa3/xbb TANGUT COMPONENT-252 ++ /xf0/x98/xa3/xbc TANGUT COMPONENT-253 ++ /xf0/x98/xa3/xbd TANGUT COMPONENT-254 ++ /xf0/x98/xa3/xbe TANGUT COMPONENT-255 ++ /xf0/x98/xa3/xbf TANGUT COMPONENT-256 ++ /xf0/x98/xa4/x80 TANGUT COMPONENT-257 ++ /xf0/x98/xa4/x81 TANGUT COMPONENT-258 ++ /xf0/x98/xa4/x82 TANGUT COMPONENT-259 ++ /xf0/x98/xa4/x83 TANGUT COMPONENT-260 ++ /xf0/x98/xa4/x84 TANGUT COMPONENT-261 ++ /xf0/x98/xa4/x85 TANGUT COMPONENT-262 ++ /xf0/x98/xa4/x86 TANGUT COMPONENT-263 ++ /xf0/x98/xa4/x87 TANGUT COMPONENT-264 ++ /xf0/x98/xa4/x88 TANGUT COMPONENT-265 ++ /xf0/x98/xa4/x89 TANGUT COMPONENT-266 ++ /xf0/x98/xa4/x8a TANGUT COMPONENT-267 ++ /xf0/x98/xa4/x8b TANGUT COMPONENT-268 ++ /xf0/x98/xa4/x8c TANGUT COMPONENT-269 ++ /xf0/x98/xa4/x8d TANGUT COMPONENT-270 ++ /xf0/x98/xa4/x8e TANGUT COMPONENT-271 ++ /xf0/x98/xa4/x8f TANGUT COMPONENT-272 ++ /xf0/x98/xa4/x90 TANGUT COMPONENT-273 ++ /xf0/x98/xa4/x91 TANGUT COMPONENT-274 ++ /xf0/x98/xa4/x92 TANGUT COMPONENT-275 ++ /xf0/x98/xa4/x93 TANGUT COMPONENT-276 ++ /xf0/x98/xa4/x94 TANGUT COMPONENT-277 ++ /xf0/x98/xa4/x95 TANGUT COMPONENT-278 ++ /xf0/x98/xa4/x96 TANGUT COMPONENT-279 ++ /xf0/x98/xa4/x97 TANGUT COMPONENT-280 ++ /xf0/x98/xa4/x98 TANGUT COMPONENT-281 ++ /xf0/x98/xa4/x99 TANGUT COMPONENT-282 ++ /xf0/x98/xa4/x9a TANGUT COMPONENT-283 ++ /xf0/x98/xa4/x9b TANGUT COMPONENT-284 ++ /xf0/x98/xa4/x9c TANGUT COMPONENT-285 ++ /xf0/x98/xa4/x9d TANGUT COMPONENT-286 ++ /xf0/x98/xa4/x9e TANGUT COMPONENT-287 ++ /xf0/x98/xa4/x9f TANGUT COMPONENT-288 ++ /xf0/x98/xa4/xa0 TANGUT COMPONENT-289 ++ /xf0/x98/xa4/xa1 TANGUT COMPONENT-290 ++ /xf0/x98/xa4/xa2 TANGUT COMPONENT-291 ++ /xf0/x98/xa4/xa3 TANGUT COMPONENT-292 ++ /xf0/x98/xa4/xa4 TANGUT COMPONENT-293 ++ /xf0/x98/xa4/xa5 TANGUT COMPONENT-294 ++ /xf0/x98/xa4/xa6 TANGUT COMPONENT-295 ++ /xf0/x98/xa4/xa7 TANGUT COMPONENT-296 ++ /xf0/x98/xa4/xa8 TANGUT COMPONENT-297 ++ /xf0/x98/xa4/xa9 TANGUT COMPONENT-298 ++ /xf0/x98/xa4/xaa TANGUT COMPONENT-299 ++ /xf0/x98/xa4/xab TANGUT COMPONENT-300 ++ /xf0/x98/xa4/xac TANGUT COMPONENT-301 ++ /xf0/x98/xa4/xad TANGUT COMPONENT-302 ++ /xf0/x98/xa4/xae TANGUT COMPONENT-303 ++ /xf0/x98/xa4/xaf TANGUT COMPONENT-304 ++ /xf0/x98/xa4/xb0 TANGUT COMPONENT-305 ++ /xf0/x98/xa4/xb1 TANGUT COMPONENT-306 ++ /xf0/x98/xa4/xb2 TANGUT COMPONENT-307 ++ /xf0/x98/xa4/xb3 TANGUT COMPONENT-308 ++ /xf0/x98/xa4/xb4 TANGUT COMPONENT-309 ++ /xf0/x98/xa4/xb5 TANGUT COMPONENT-310 ++ /xf0/x98/xa4/xb6 TANGUT COMPONENT-311 ++ /xf0/x98/xa4/xb7 TANGUT COMPONENT-312 ++ /xf0/x98/xa4/xb8 TANGUT COMPONENT-313 ++ /xf0/x98/xa4/xb9 TANGUT COMPONENT-314 ++ /xf0/x98/xa4/xba TANGUT COMPONENT-315 ++ /xf0/x98/xa4/xbb TANGUT COMPONENT-316 ++ /xf0/x98/xa4/xbc TANGUT COMPONENT-317 ++ /xf0/x98/xa4/xbd TANGUT COMPONENT-318 ++ /xf0/x98/xa4/xbe TANGUT COMPONENT-319 ++ /xf0/x98/xa4/xbf TANGUT COMPONENT-320 ++ /xf0/x98/xa5/x80 TANGUT COMPONENT-321 ++ /xf0/x98/xa5/x81 TANGUT COMPONENT-322 ++ /xf0/x98/xa5/x82 TANGUT COMPONENT-323 ++ /xf0/x98/xa5/x83 TANGUT COMPONENT-324 ++ /xf0/x98/xa5/x84 TANGUT COMPONENT-325 ++ /xf0/x98/xa5/x85 TANGUT COMPONENT-326 ++ /xf0/x98/xa5/x86 TANGUT COMPONENT-327 ++ /xf0/x98/xa5/x87 TANGUT COMPONENT-328 ++ /xf0/x98/xa5/x88 TANGUT COMPONENT-329 ++ /xf0/x98/xa5/x89 TANGUT COMPONENT-330 ++ /xf0/x98/xa5/x8a TANGUT COMPONENT-331 ++ /xf0/x98/xa5/x8b TANGUT COMPONENT-332 ++ /xf0/x98/xa5/x8c TANGUT COMPONENT-333 ++ /xf0/x98/xa5/x8d TANGUT COMPONENT-334 ++ /xf0/x98/xa5/x8e TANGUT COMPONENT-335 ++ /xf0/x98/xa5/x8f TANGUT COMPONENT-336 ++ /xf0/x98/xa5/x90 TANGUT COMPONENT-337 ++ /xf0/x98/xa5/x91 TANGUT COMPONENT-338 ++ /xf0/x98/xa5/x92 TANGUT COMPONENT-339 ++ /xf0/x98/xa5/x93 TANGUT COMPONENT-340 ++ /xf0/x98/xa5/x94 TANGUT COMPONENT-341 ++ /xf0/x98/xa5/x95 TANGUT COMPONENT-342 ++ /xf0/x98/xa5/x96 TANGUT COMPONENT-343 ++ /xf0/x98/xa5/x97 TANGUT COMPONENT-344 ++ /xf0/x98/xa5/x98 TANGUT COMPONENT-345 ++ /xf0/x98/xa5/x99 TANGUT COMPONENT-346 ++ /xf0/x98/xa5/x9a TANGUT COMPONENT-347 ++ /xf0/x98/xa5/x9b TANGUT COMPONENT-348 ++ /xf0/x98/xa5/x9c TANGUT COMPONENT-349 ++ /xf0/x98/xa5/x9d TANGUT COMPONENT-350 ++ /xf0/x98/xa5/x9e TANGUT COMPONENT-351 ++ /xf0/x98/xa5/x9f TANGUT COMPONENT-352 ++ /xf0/x98/xa5/xa0 TANGUT COMPONENT-353 ++ /xf0/x98/xa5/xa1 TANGUT COMPONENT-354 ++ /xf0/x98/xa5/xa2 TANGUT COMPONENT-355 ++ /xf0/x98/xa5/xa3 TANGUT COMPONENT-356 ++ /xf0/x98/xa5/xa4 TANGUT COMPONENT-357 ++ /xf0/x98/xa5/xa5 TANGUT COMPONENT-358 ++ /xf0/x98/xa5/xa6 TANGUT COMPONENT-359 ++ /xf0/x98/xa5/xa7 TANGUT COMPONENT-360 ++ /xf0/x98/xa5/xa8 TANGUT COMPONENT-361 ++ /xf0/x98/xa5/xa9 TANGUT COMPONENT-362 ++ /xf0/x98/xa5/xaa TANGUT COMPONENT-363 ++ /xf0/x98/xa5/xab TANGUT COMPONENT-364 ++ /xf0/x98/xa5/xac TANGUT COMPONENT-365 ++ /xf0/x98/xa5/xad TANGUT COMPONENT-366 ++ /xf0/x98/xa5/xae TANGUT COMPONENT-367 ++ /xf0/x98/xa5/xaf TANGUT COMPONENT-368 ++ /xf0/x98/xa5/xb0 TANGUT COMPONENT-369 ++ /xf0/x98/xa5/xb1 TANGUT COMPONENT-370 ++ /xf0/x98/xa5/xb2 TANGUT COMPONENT-371 ++ /xf0/x98/xa5/xb3 TANGUT COMPONENT-372 ++ /xf0/x98/xa5/xb4 TANGUT COMPONENT-373 ++ /xf0/x98/xa5/xb5 TANGUT COMPONENT-374 ++ /xf0/x98/xa5/xb6 TANGUT COMPONENT-375 ++ /xf0/x98/xa5/xb7 TANGUT COMPONENT-376 ++ /xf0/x98/xa5/xb8 TANGUT COMPONENT-377 ++ /xf0/x98/xa5/xb9 TANGUT COMPONENT-378 ++ /xf0/x98/xa5/xba TANGUT COMPONENT-379 ++ /xf0/x98/xa5/xbb TANGUT COMPONENT-380 ++ /xf0/x98/xa5/xbc TANGUT COMPONENT-381 ++ /xf0/x98/xa5/xbd TANGUT COMPONENT-382 ++ /xf0/x98/xa5/xbe TANGUT COMPONENT-383 ++ /xf0/x98/xa5/xbf TANGUT COMPONENT-384 ++ /xf0/x98/xa6/x80 TANGUT COMPONENT-385 ++ /xf0/x98/xa6/x81 TANGUT COMPONENT-386 ++ /xf0/x98/xa6/x82 TANGUT COMPONENT-387 ++ /xf0/x98/xa6/x83 TANGUT COMPONENT-388 ++ /xf0/x98/xa6/x84 TANGUT COMPONENT-389 ++ /xf0/x98/xa6/x85 TANGUT COMPONENT-390 ++ /xf0/x98/xa6/x86 TANGUT COMPONENT-391 ++ /xf0/x98/xa6/x87 TANGUT COMPONENT-392 ++ /xf0/x98/xa6/x88 TANGUT COMPONENT-393 ++ /xf0/x98/xa6/x89 TANGUT COMPONENT-394 ++ /xf0/x98/xa6/x8a TANGUT COMPONENT-395 ++ /xf0/x98/xa6/x8b TANGUT COMPONENT-396 ++ /xf0/x98/xa6/x8c TANGUT COMPONENT-397 ++ /xf0/x98/xa6/x8d TANGUT COMPONENT-398 ++ /xf0/x98/xa6/x8e TANGUT COMPONENT-399 ++ /xf0/x98/xa6/x8f TANGUT COMPONENT-400 ++ /xf0/x98/xa6/x90 TANGUT COMPONENT-401 ++ /xf0/x98/xa6/x91 TANGUT COMPONENT-402 ++ /xf0/x98/xa6/x92 TANGUT COMPONENT-403 ++ /xf0/x98/xa6/x93 TANGUT COMPONENT-404 ++ /xf0/x98/xa6/x94 TANGUT COMPONENT-405 ++ /xf0/x98/xa6/x95 TANGUT COMPONENT-406 ++ /xf0/x98/xa6/x96 TANGUT COMPONENT-407 ++ /xf0/x98/xa6/x97 TANGUT COMPONENT-408 ++ /xf0/x98/xa6/x98 TANGUT COMPONENT-409 ++ /xf0/x98/xa6/x99 TANGUT COMPONENT-410 ++ /xf0/x98/xa6/x9a TANGUT COMPONENT-411 ++ /xf0/x98/xa6/x9b TANGUT COMPONENT-412 ++ /xf0/x98/xa6/x9c TANGUT COMPONENT-413 ++ /xf0/x98/xa6/x9d TANGUT COMPONENT-414 ++ /xf0/x98/xa6/x9e TANGUT COMPONENT-415 ++ /xf0/x98/xa6/x9f TANGUT COMPONENT-416 ++ /xf0/x98/xa6/xa0 TANGUT COMPONENT-417 ++ /xf0/x98/xa6/xa1 TANGUT COMPONENT-418 ++ /xf0/x98/xa6/xa2 TANGUT COMPONENT-419 ++ /xf0/x98/xa6/xa3 TANGUT COMPONENT-420 ++ /xf0/x98/xa6/xa4 TANGUT COMPONENT-421 ++ /xf0/x98/xa6/xa5 TANGUT COMPONENT-422 ++ /xf0/x98/xa6/xa6 TANGUT COMPONENT-423 ++ /xf0/x98/xa6/xa7 TANGUT COMPONENT-424 ++ /xf0/x98/xa6/xa8 TANGUT COMPONENT-425 ++ /xf0/x98/xa6/xa9 TANGUT COMPONENT-426 ++ /xf0/x98/xa6/xaa TANGUT COMPONENT-427 ++ /xf0/x98/xa6/xab TANGUT COMPONENT-428 ++ /xf0/x98/xa6/xac TANGUT COMPONENT-429 ++ /xf0/x98/xa6/xad TANGUT COMPONENT-430 ++ /xf0/x98/xa6/xae TANGUT COMPONENT-431 ++ /xf0/x98/xa6/xaf TANGUT COMPONENT-432 ++ /xf0/x98/xa6/xb0 TANGUT COMPONENT-433 ++ /xf0/x98/xa6/xb1 TANGUT COMPONENT-434 ++ /xf0/x98/xa6/xb2 TANGUT COMPONENT-435 ++ /xf0/x98/xa6/xb3 TANGUT COMPONENT-436 ++ /xf0/x98/xa6/xb4 TANGUT COMPONENT-437 ++ /xf0/x98/xa6/xb5 TANGUT COMPONENT-438 ++ /xf0/x98/xa6/xb6 TANGUT COMPONENT-439 ++ /xf0/x98/xa6/xb7 TANGUT COMPONENT-440 ++ /xf0/x98/xa6/xb8 TANGUT COMPONENT-441 ++ /xf0/x98/xa6/xb9 TANGUT COMPONENT-442 ++ /xf0/x98/xa6/xba TANGUT COMPONENT-443 ++ /xf0/x98/xa6/xbb TANGUT COMPONENT-444 ++ /xf0/x98/xa6/xbc TANGUT COMPONENT-445 ++ /xf0/x98/xa6/xbd TANGUT COMPONENT-446 ++ /xf0/x98/xa6/xbe TANGUT COMPONENT-447 ++ /xf0/x98/xa6/xbf TANGUT COMPONENT-448 ++ /xf0/x98/xa7/x80 TANGUT COMPONENT-449 ++ /xf0/x98/xa7/x81 TANGUT COMPONENT-450 ++ /xf0/x98/xa7/x82 TANGUT COMPONENT-451 ++ /xf0/x98/xa7/x83 TANGUT COMPONENT-452 ++ /xf0/x98/xa7/x84 TANGUT COMPONENT-453 ++ /xf0/x98/xa7/x85 TANGUT COMPONENT-454 ++ /xf0/x98/xa7/x86 TANGUT COMPONENT-455 ++ /xf0/x98/xa7/x87 TANGUT COMPONENT-456 ++ /xf0/x98/xa7/x88 TANGUT COMPONENT-457 ++ /xf0/x98/xa7/x89 TANGUT COMPONENT-458 ++ /xf0/x98/xa7/x8a TANGUT COMPONENT-459 ++ /xf0/x98/xa7/x8b TANGUT COMPONENT-460 ++ /xf0/x98/xa7/x8c TANGUT COMPONENT-461 ++ /xf0/x98/xa7/x8d TANGUT COMPONENT-462 ++ /xf0/x98/xa7/x8e TANGUT COMPONENT-463 ++ /xf0/x98/xa7/x8f TANGUT COMPONENT-464 ++ /xf0/x98/xa7/x90 TANGUT COMPONENT-465 ++ /xf0/x98/xa7/x91 TANGUT COMPONENT-466 ++ /xf0/x98/xa7/x92 TANGUT COMPONENT-467 ++ /xf0/x98/xa7/x93 TANGUT COMPONENT-468 ++ /xf0/x98/xa7/x94 TANGUT COMPONENT-469 ++ /xf0/x98/xa7/x95 TANGUT COMPONENT-470 ++ /xf0/x98/xa7/x96 TANGUT COMPONENT-471 ++ /xf0/x98/xa7/x97 TANGUT COMPONENT-472 ++ /xf0/x98/xa7/x98 TANGUT COMPONENT-473 ++ /xf0/x98/xa7/x99 TANGUT COMPONENT-474 ++ /xf0/x98/xa7/x9a TANGUT COMPONENT-475 ++ /xf0/x98/xa7/x9b TANGUT COMPONENT-476 ++ /xf0/x98/xa7/x9c TANGUT COMPONENT-477 ++ /xf0/x98/xa7/x9d TANGUT COMPONENT-478 ++ /xf0/x98/xa7/x9e TANGUT COMPONENT-479 ++ /xf0/x98/xa7/x9f TANGUT COMPONENT-480 ++ /xf0/x98/xa7/xa0 TANGUT COMPONENT-481 ++ /xf0/x98/xa7/xa1 TANGUT COMPONENT-482 ++ /xf0/x98/xa7/xa2 TANGUT COMPONENT-483 ++ /xf0/x98/xa7/xa3 TANGUT COMPONENT-484 ++ /xf0/x98/xa7/xa4 TANGUT COMPONENT-485 ++ /xf0/x98/xa7/xa5 TANGUT COMPONENT-486 ++ /xf0/x98/xa7/xa6 TANGUT COMPONENT-487 ++ /xf0/x98/xa7/xa7 TANGUT COMPONENT-488 ++ /xf0/x98/xa7/xa8 TANGUT COMPONENT-489 ++ /xf0/x98/xa7/xa9 TANGUT COMPONENT-490 ++ /xf0/x98/xa7/xaa TANGUT COMPONENT-491 ++ /xf0/x98/xa7/xab TANGUT COMPONENT-492 ++ /xf0/x98/xa7/xac TANGUT COMPONENT-493 ++ /xf0/x98/xa7/xad TANGUT COMPONENT-494 ++ /xf0/x98/xa7/xae TANGUT COMPONENT-495 ++ /xf0/x98/xa7/xaf TANGUT COMPONENT-496 ++ /xf0/x98/xa7/xb0 TANGUT COMPONENT-497 ++ /xf0/x98/xa7/xb1 TANGUT COMPONENT-498 ++ /xf0/x98/xa7/xb2 TANGUT COMPONENT-499 ++ /xf0/x98/xa7/xb3 TANGUT COMPONENT-500 ++ /xf0/x98/xa7/xb4 TANGUT COMPONENT-501 ++ /xf0/x98/xa7/xb5 TANGUT COMPONENT-502 ++ /xf0/x98/xa7/xb6 TANGUT COMPONENT-503 ++ /xf0/x98/xa7/xb7 TANGUT COMPONENT-504 ++ /xf0/x98/xa7/xb8 TANGUT COMPONENT-505 ++ /xf0/x98/xa7/xb9 TANGUT COMPONENT-506 ++ /xf0/x98/xa7/xba TANGUT COMPONENT-507 ++ /xf0/x98/xa7/xbb TANGUT COMPONENT-508 ++ /xf0/x98/xa7/xbc TANGUT COMPONENT-509 ++ /xf0/x98/xa7/xbd TANGUT COMPONENT-510 ++ /xf0/x98/xa7/xbe TANGUT COMPONENT-511 ++ /xf0/x98/xa7/xbf TANGUT COMPONENT-512 ++ /xf0/x98/xa8/x80 TANGUT COMPONENT-513 ++ /xf0/x98/xa8/x81 TANGUT COMPONENT-514 ++ /xf0/x98/xa8/x82 TANGUT COMPONENT-515 ++ /xf0/x98/xa8/x83 TANGUT COMPONENT-516 ++ /xf0/x98/xa8/x84 TANGUT COMPONENT-517 ++ /xf0/x98/xa8/x85 TANGUT COMPONENT-518 ++ /xf0/x98/xa8/x86 TANGUT COMPONENT-519 ++ /xf0/x98/xa8/x87 TANGUT COMPONENT-520 ++ /xf0/x98/xa8/x88 TANGUT COMPONENT-521 ++ /xf0/x98/xa8/x89 TANGUT COMPONENT-522 ++ /xf0/x98/xa8/x8a TANGUT COMPONENT-523 ++ /xf0/x98/xa8/x8b TANGUT COMPONENT-524 ++ /xf0/x98/xa8/x8c TANGUT COMPONENT-525 ++ /xf0/x98/xa8/x8d TANGUT COMPONENT-526 ++ /xf0/x98/xa8/x8e TANGUT COMPONENT-527 ++ /xf0/x98/xa8/x8f TANGUT COMPONENT-528 ++ /xf0/x98/xa8/x90 TANGUT COMPONENT-529 ++ /xf0/x98/xa8/x91 TANGUT COMPONENT-530 ++ /xf0/x98/xa8/x92 TANGUT COMPONENT-531 ++ /xf0/x98/xa8/x93 TANGUT COMPONENT-532 ++ /xf0/x98/xa8/x94 TANGUT COMPONENT-533 ++ /xf0/x98/xa8/x95 TANGUT COMPONENT-534 ++ /xf0/x98/xa8/x96 TANGUT COMPONENT-535 ++ /xf0/x98/xa8/x97 TANGUT COMPONENT-536 ++ /xf0/x98/xa8/x98 TANGUT COMPONENT-537 ++ /xf0/x98/xa8/x99 TANGUT COMPONENT-538 ++ /xf0/x98/xa8/x9a TANGUT COMPONENT-539 ++ /xf0/x98/xa8/x9b TANGUT COMPONENT-540 ++ /xf0/x98/xa8/x9c TANGUT COMPONENT-541 ++ /xf0/x98/xa8/x9d TANGUT COMPONENT-542 ++ /xf0/x98/xa8/x9e TANGUT COMPONENT-543 ++ /xf0/x98/xa8/x9f TANGUT COMPONENT-544 ++ /xf0/x98/xa8/xa0 TANGUT COMPONENT-545 ++ /xf0/x98/xa8/xa1 TANGUT COMPONENT-546 ++ /xf0/x98/xa8/xa2 TANGUT COMPONENT-547 ++ /xf0/x98/xa8/xa3 TANGUT COMPONENT-548 ++ /xf0/x98/xa8/xa4 TANGUT COMPONENT-549 ++ /xf0/x98/xa8/xa5 TANGUT COMPONENT-550 ++ /xf0/x98/xa8/xa6 TANGUT COMPONENT-551 ++ /xf0/x98/xa8/xa7 TANGUT COMPONENT-552 ++ /xf0/x98/xa8/xa8 TANGUT COMPONENT-553 ++ /xf0/x98/xa8/xa9 TANGUT COMPONENT-554 ++ /xf0/x98/xa8/xaa TANGUT COMPONENT-555 ++ /xf0/x98/xa8/xab TANGUT COMPONENT-556 ++ /xf0/x98/xa8/xac TANGUT COMPONENT-557 ++ /xf0/x98/xa8/xad TANGUT COMPONENT-558 ++ /xf0/x98/xa8/xae TANGUT COMPONENT-559 ++ /xf0/x98/xa8/xaf TANGUT COMPONENT-560 ++ /xf0/x98/xa8/xb0 TANGUT COMPONENT-561 ++ /xf0/x98/xa8/xb1 TANGUT COMPONENT-562 ++ /xf0/x98/xa8/xb2 TANGUT COMPONENT-563 ++ /xf0/x98/xa8/xb3 TANGUT COMPONENT-564 ++ /xf0/x98/xa8/xb4 TANGUT COMPONENT-565 ++ /xf0/x98/xa8/xb5 TANGUT COMPONENT-566 ++ /xf0/x98/xa8/xb6 TANGUT COMPONENT-567 ++ /xf0/x98/xa8/xb7 TANGUT COMPONENT-568 ++ /xf0/x98/xa8/xb8 TANGUT COMPONENT-569 ++ /xf0/x98/xa8/xb9 TANGUT COMPONENT-570 ++ /xf0/x98/xa8/xba TANGUT COMPONENT-571 ++ /xf0/x98/xa8/xbb TANGUT COMPONENT-572 ++ /xf0/x98/xa8/xbc TANGUT COMPONENT-573 ++ /xf0/x98/xa8/xbd TANGUT COMPONENT-574 ++ /xf0/x98/xa8/xbe TANGUT COMPONENT-575 ++ /xf0/x98/xa8/xbf TANGUT COMPONENT-576 ++ /xf0/x98/xa9/x80 TANGUT COMPONENT-577 ++ /xf0/x98/xa9/x81 TANGUT COMPONENT-578 ++ /xf0/x98/xa9/x82 TANGUT COMPONENT-579 ++ /xf0/x98/xa9/x83 TANGUT COMPONENT-580 ++ /xf0/x98/xa9/x84 TANGUT COMPONENT-581 ++ /xf0/x98/xa9/x85 TANGUT COMPONENT-582 ++ /xf0/x98/xa9/x86 TANGUT COMPONENT-583 ++ /xf0/x98/xa9/x87 TANGUT COMPONENT-584 ++ /xf0/x98/xa9/x88 TANGUT COMPONENT-585 ++ /xf0/x98/xa9/x89 TANGUT COMPONENT-586 ++ /xf0/x98/xa9/x8a TANGUT COMPONENT-587 ++ /xf0/x98/xa9/x8b TANGUT COMPONENT-588 ++ /xf0/x98/xa9/x8c TANGUT COMPONENT-589 ++ /xf0/x98/xa9/x8d TANGUT COMPONENT-590 ++ /xf0/x98/xa9/x8e TANGUT COMPONENT-591 ++ /xf0/x98/xa9/x8f TANGUT COMPONENT-592 ++ /xf0/x98/xa9/x90 TANGUT COMPONENT-593 ++ /xf0/x98/xa9/x91 TANGUT COMPONENT-594 ++ /xf0/x98/xa9/x92 TANGUT COMPONENT-595 ++ /xf0/x98/xa9/x93 TANGUT COMPONENT-596 ++ /xf0/x98/xa9/x94 TANGUT COMPONENT-597 ++ /xf0/x98/xa9/x95 TANGUT COMPONENT-598 ++ /xf0/x98/xa9/x96 TANGUT COMPONENT-599 ++ /xf0/x98/xa9/x97 TANGUT COMPONENT-600 ++ /xf0/x98/xa9/x98 TANGUT COMPONENT-601 ++ /xf0/x98/xa9/x99 TANGUT COMPONENT-602 ++ /xf0/x98/xa9/x9a TANGUT COMPONENT-603 ++ /xf0/x98/xa9/x9b TANGUT COMPONENT-604 ++ /xf0/x98/xa9/x9c TANGUT COMPONENT-605 ++ /xf0/x98/xa9/x9d TANGUT COMPONENT-606 ++ /xf0/x98/xa9/x9e TANGUT COMPONENT-607 ++ /xf0/x98/xa9/x9f TANGUT COMPONENT-608 ++ /xf0/x98/xa9/xa0 TANGUT COMPONENT-609 ++ /xf0/x98/xa9/xa1 TANGUT COMPONENT-610 ++ /xf0/x98/xa9/xa2 TANGUT COMPONENT-611 ++ /xf0/x98/xa9/xa3 TANGUT COMPONENT-612 ++ /xf0/x98/xa9/xa4 TANGUT COMPONENT-613 ++ /xf0/x98/xa9/xa5 TANGUT COMPONENT-614 ++ /xf0/x98/xa9/xa6 TANGUT COMPONENT-615 ++ /xf0/x98/xa9/xa7 TANGUT COMPONENT-616 ++ /xf0/x98/xa9/xa8 TANGUT COMPONENT-617 ++ /xf0/x98/xa9/xa9 TANGUT COMPONENT-618 ++ /xf0/x98/xa9/xaa TANGUT COMPONENT-619 ++ /xf0/x98/xa9/xab TANGUT COMPONENT-620 ++ /xf0/x98/xa9/xac TANGUT COMPONENT-621 ++ /xf0/x98/xa9/xad TANGUT COMPONENT-622 ++ /xf0/x98/xa9/xae TANGUT COMPONENT-623 ++ /xf0/x98/xa9/xaf TANGUT COMPONENT-624 ++ /xf0/x98/xa9/xb0 TANGUT COMPONENT-625 ++ /xf0/x98/xa9/xb1 TANGUT COMPONENT-626 ++ /xf0/x98/xa9/xb2 TANGUT COMPONENT-627 ++ /xf0/x98/xa9/xb3 TANGUT COMPONENT-628 ++ /xf0/x98/xa9/xb4 TANGUT COMPONENT-629 ++ /xf0/x98/xa9/xb5 TANGUT COMPONENT-630 ++ /xf0/x98/xa9/xb6 TANGUT COMPONENT-631 ++ /xf0/x98/xa9/xb7 TANGUT COMPONENT-632 ++ /xf0/x98/xa9/xb8 TANGUT COMPONENT-633 ++ /xf0/x98/xa9/xb9 TANGUT COMPONENT-634 ++ /xf0/x98/xa9/xba TANGUT COMPONENT-635 ++ /xf0/x98/xa9/xbb TANGUT COMPONENT-636 ++ /xf0/x98/xa9/xbc TANGUT COMPONENT-637 ++ /xf0/x98/xa9/xbd TANGUT COMPONENT-638 ++ /xf0/x98/xa9/xbe TANGUT COMPONENT-639 ++ /xf0/x98/xa9/xbf TANGUT COMPONENT-640 ++ /xf0/x98/xaa/x80 TANGUT COMPONENT-641 ++ /xf0/x98/xaa/x81 TANGUT COMPONENT-642 ++ /xf0/x98/xaa/x82 TANGUT COMPONENT-643 ++ /xf0/x98/xaa/x83 TANGUT COMPONENT-644 ++ /xf0/x98/xaa/x84 TANGUT COMPONENT-645 ++ /xf0/x98/xaa/x85 TANGUT COMPONENT-646 ++ /xf0/x98/xaa/x86 TANGUT COMPONENT-647 ++ /xf0/x98/xaa/x87 TANGUT COMPONENT-648 ++ /xf0/x98/xaa/x88 TANGUT COMPONENT-649 ++ /xf0/x98/xaa/x89 TANGUT COMPONENT-650 ++ /xf0/x98/xaa/x8a TANGUT COMPONENT-651 ++ /xf0/x98/xaa/x8b TANGUT COMPONENT-652 ++ /xf0/x98/xaa/x8c TANGUT COMPONENT-653 ++ /xf0/x98/xaa/x8d TANGUT COMPONENT-654 ++ /xf0/x98/xaa/x8e TANGUT COMPONENT-655 ++ /xf0/x98/xaa/x8f TANGUT COMPONENT-656 ++ /xf0/x98/xaa/x90 TANGUT COMPONENT-657 ++ /xf0/x98/xaa/x91 TANGUT COMPONENT-658 ++ /xf0/x98/xaa/x92 TANGUT COMPONENT-659 ++ /xf0/x98/xaa/x93 TANGUT COMPONENT-660 ++ /xf0/x98/xaa/x94 TANGUT COMPONENT-661 ++ /xf0/x98/xaa/x95 TANGUT COMPONENT-662 ++ /xf0/x98/xaa/x96 TANGUT COMPONENT-663 ++ /xf0/x98/xaa/x97 TANGUT COMPONENT-664 ++ /xf0/x98/xaa/x98 TANGUT COMPONENT-665 ++ /xf0/x98/xaa/x99 TANGUT COMPONENT-666 ++ /xf0/x98/xaa/x9a TANGUT COMPONENT-667 ++ /xf0/x98/xaa/x9b TANGUT COMPONENT-668 ++ /xf0/x98/xaa/x9c TANGUT COMPONENT-669 ++ /xf0/x98/xaa/x9d TANGUT COMPONENT-670 ++ /xf0/x98/xaa/x9e TANGUT COMPONENT-671 ++ /xf0/x98/xaa/x9f TANGUT COMPONENT-672 ++ /xf0/x98/xaa/xa0 TANGUT COMPONENT-673 ++ /xf0/x98/xaa/xa1 TANGUT COMPONENT-674 ++ /xf0/x98/xaa/xa2 TANGUT COMPONENT-675 ++ /xf0/x98/xaa/xa3 TANGUT COMPONENT-676 ++ /xf0/x98/xaa/xa4 TANGUT COMPONENT-677 ++ /xf0/x98/xaa/xa5 TANGUT COMPONENT-678 ++ /xf0/x98/xaa/xa6 TANGUT COMPONENT-679 ++ /xf0/x98/xaa/xa7 TANGUT COMPONENT-680 ++ /xf0/x98/xaa/xa8 TANGUT COMPONENT-681 ++ /xf0/x98/xaa/xa9 TANGUT COMPONENT-682 ++ /xf0/x98/xaa/xaa TANGUT COMPONENT-683 ++ /xf0/x98/xaa/xab TANGUT COMPONENT-684 ++ /xf0/x98/xaa/xac TANGUT COMPONENT-685 ++ /xf0/x98/xaa/xad TANGUT COMPONENT-686 ++ /xf0/x98/xaa/xae TANGUT COMPONENT-687 ++ /xf0/x98/xaa/xaf TANGUT COMPONENT-688 ++ /xf0/x98/xaa/xb0 TANGUT COMPONENT-689 ++ /xf0/x98/xaa/xb1 TANGUT COMPONENT-690 ++ /xf0/x98/xaa/xb2 TANGUT COMPONENT-691 ++ /xf0/x98/xaa/xb3 TANGUT COMPONENT-692 ++ /xf0/x98/xaa/xb4 TANGUT COMPONENT-693 ++ /xf0/x98/xaa/xb5 TANGUT COMPONENT-694 ++ /xf0/x98/xaa/xb6 TANGUT COMPONENT-695 ++ /xf0/x98/xaa/xb7 TANGUT COMPONENT-696 ++ /xf0/x98/xaa/xb8 TANGUT COMPONENT-697 ++ /xf0/x98/xaa/xb9 TANGUT COMPONENT-698 ++ /xf0/x98/xaa/xba TANGUT COMPONENT-699 ++ /xf0/x98/xaa/xbb TANGUT COMPONENT-700 ++ /xf0/x98/xaa/xbc TANGUT COMPONENT-701 ++ /xf0/x98/xaa/xbd TANGUT COMPONENT-702 ++ /xf0/x98/xaa/xbe TANGUT COMPONENT-703 ++ /xf0/x98/xaa/xbf TANGUT COMPONENT-704 ++ /xf0/x98/xab/x80 TANGUT COMPONENT-705 ++ /xf0/x98/xab/x81 TANGUT COMPONENT-706 ++ /xf0/x98/xab/x82 TANGUT COMPONENT-707 ++ /xf0/x98/xab/x83 TANGUT COMPONENT-708 ++ /xf0/x98/xab/x84 TANGUT COMPONENT-709 ++ /xf0/x98/xab/x85 TANGUT COMPONENT-710 ++ /xf0/x98/xab/x86 TANGUT COMPONENT-711 ++ /xf0/x98/xab/x87 TANGUT COMPONENT-712 ++ /xf0/x98/xab/x88 TANGUT COMPONENT-713 ++ /xf0/x98/xab/x89 TANGUT COMPONENT-714 ++ /xf0/x98/xab/x8a TANGUT COMPONENT-715 ++ /xf0/x98/xab/x8b TANGUT COMPONENT-716 ++ /xf0/x98/xab/x8c TANGUT COMPONENT-717 ++ /xf0/x98/xab/x8d TANGUT COMPONENT-718 ++ /xf0/x98/xab/x8e TANGUT COMPONENT-719 ++ /xf0/x98/xab/x8f TANGUT COMPONENT-720 ++ /xf0/x98/xab/x90 TANGUT COMPONENT-721 ++ /xf0/x98/xab/x91 TANGUT COMPONENT-722 ++ /xf0/x98/xab/x92 TANGUT COMPONENT-723 ++ /xf0/x98/xab/x93 TANGUT COMPONENT-724 ++ /xf0/x98/xab/x94 TANGUT COMPONENT-725 ++ /xf0/x98/xab/x95 TANGUT COMPONENT-726 ++ /xf0/x98/xab/x96 TANGUT COMPONENT-727 ++ /xf0/x98/xab/x97 TANGUT COMPONENT-728 ++ /xf0/x98/xab/x98 TANGUT COMPONENT-729 ++ /xf0/x98/xab/x99 TANGUT COMPONENT-730 ++ /xf0/x98/xab/x9a TANGUT COMPONENT-731 ++ /xf0/x98/xab/x9b TANGUT COMPONENT-732 ++ /xf0/x98/xab/x9c TANGUT COMPONENT-733 ++ /xf0/x98/xab/x9d TANGUT COMPONENT-734 ++ /xf0/x98/xab/x9e TANGUT COMPONENT-735 ++ /xf0/x98/xab/x9f TANGUT COMPONENT-736 ++ /xf0/x98/xab/xa0 TANGUT COMPONENT-737 ++ /xf0/x98/xab/xa1 TANGUT COMPONENT-738 ++ /xf0/x98/xab/xa2 TANGUT COMPONENT-739 ++ /xf0/x98/xab/xa3 TANGUT COMPONENT-740 ++ /xf0/x98/xab/xa4 TANGUT COMPONENT-741 ++ /xf0/x98/xab/xa5 TANGUT COMPONENT-742 ++ /xf0/x98/xab/xa6 TANGUT COMPONENT-743 ++ /xf0/x98/xab/xa7 TANGUT COMPONENT-744 ++ /xf0/x98/xab/xa8 TANGUT COMPONENT-745 ++ /xf0/x98/xab/xa9 TANGUT COMPONENT-746 ++ /xf0/x98/xab/xaa TANGUT COMPONENT-747 ++ /xf0/x98/xab/xab TANGUT COMPONENT-748 ++ /xf0/x98/xab/xac TANGUT COMPONENT-749 ++ /xf0/x98/xab/xad TANGUT COMPONENT-750 ++ /xf0/x98/xab/xae TANGUT COMPONENT-751 ++ /xf0/x98/xab/xaf TANGUT COMPONENT-752 ++ /xf0/x98/xab/xb0 TANGUT COMPONENT-753 ++ /xf0/x98/xab/xb1 TANGUT COMPONENT-754 ++ /xf0/x98/xab/xb2 TANGUT COMPONENT-755 + /xf0/x9b/x80/x80 KATAKANA LETTER ARCHAIC E + /xf0/x9b/x80/x81 HIRAGANA LETTER ARCHAIC YE + /xf0/x9b/xb0/x80 DUPLOYAN LETTER H +@@ -37858,6 +39111,44 @@ CHARMAP + /xf0/x9d/xaa/xad SIGNWRITING ROTATION MODIFIER-14 + /xf0/x9d/xaa/xae SIGNWRITING ROTATION MODIFIER-15 + /xf0/x9d/xaa/xaf SIGNWRITING ROTATION MODIFIER-16 ++ /xf0/x9e/x80/x80 COMBINING GLAGOLITIC LETTER AZU ++ /xf0/x9e/x80/x81 COMBINING GLAGOLITIC LETTER BUKY ++ /xf0/x9e/x80/x82 COMBINING GLAGOLITIC LETTER VEDE ++ /xf0/x9e/x80/x83 COMBINING GLAGOLITIC LETTER GLAGOLI ++ /xf0/x9e/x80/x84 COMBINING GLAGOLITIC LETTER DOBRO ++ /xf0/x9e/x80/x85 COMBINING GLAGOLITIC LETTER YESTU ++ /xf0/x9e/x80/x86 COMBINING GLAGOLITIC LETTER ZHIVETE ++ /xf0/x9e/x80/x88 COMBINING GLAGOLITIC LETTER ZEMLJA ++ /xf0/x9e/x80/x89 COMBINING GLAGOLITIC LETTER IZHE ++ /xf0/x9e/x80/x8a COMBINING GLAGOLITIC LETTER INITIAL IZHE ++ /xf0/x9e/x80/x8b COMBINING GLAGOLITIC LETTER I ++ /xf0/x9e/x80/x8c COMBINING GLAGOLITIC LETTER DJERVI ++ /xf0/x9e/x80/x8d COMBINING GLAGOLITIC LETTER KAKO ++ /xf0/x9e/x80/x8e COMBINING GLAGOLITIC LETTER LJUDIJE ++ /xf0/x9e/x80/x8f COMBINING GLAGOLITIC LETTER MYSLITE ++ /xf0/x9e/x80/x90 COMBINING GLAGOLITIC LETTER NASHI ++ /xf0/x9e/x80/x91 COMBINING GLAGOLITIC LETTER ONU ++ /xf0/x9e/x80/x92 COMBINING GLAGOLITIC LETTER POKOJI ++ /xf0/x9e/x80/x93 COMBINING GLAGOLITIC LETTER RITSI ++ /xf0/x9e/x80/x94 COMBINING GLAGOLITIC LETTER SLOVO ++ /xf0/x9e/x80/x95 COMBINING GLAGOLITIC LETTER TVRIDO ++ /xf0/x9e/x80/x96 COMBINING GLAGOLITIC LETTER UKU ++ /xf0/x9e/x80/x97 COMBINING GLAGOLITIC LETTER FRITU ++ /xf0/x9e/x80/x98 COMBINING GLAGOLITIC LETTER HERU ++ /xf0/x9e/x80/x9b COMBINING GLAGOLITIC LETTER SHTA ++ /xf0/x9e/x80/x9c COMBINING GLAGOLITIC LETTER TSI ++ /xf0/x9e/x80/x9d COMBINING GLAGOLITIC LETTER CHRIVI ++ /xf0/x9e/x80/x9e COMBINING GLAGOLITIC LETTER SHA ++ /xf0/x9e/x80/x9f COMBINING GLAGOLITIC LETTER YERU ++ /xf0/x9e/x80/xa0 COMBINING GLAGOLITIC LETTER YERI ++ /xf0/x9e/x80/xa1 COMBINING GLAGOLITIC LETTER YATI ++ /xf0/x9e/x80/xa3 COMBINING GLAGOLITIC LETTER YU ++ /xf0/x9e/x80/xa4 COMBINING GLAGOLITIC LETTER SMALL YUS ++ /xf0/x9e/x80/xa6 COMBINING GLAGOLITIC LETTER YO ++ /xf0/x9e/x80/xa7 COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS ++ /xf0/x9e/x80/xa8 COMBINING GLAGOLITIC LETTER BIG YUS ++ /xf0/x9e/x80/xa9 COMBINING GLAGOLITIC LETTER IOTATED BIG YUS ++ /xf0/x9e/x80/xaa COMBINING GLAGOLITIC LETTER FITA + /xf0/x9e/xa0/x80 MENDE KIKAKUI SYLLABLE M001 KI + /xf0/x9e/xa0/x81 MENDE KIKAKUI SYLLABLE M002 KA + /xf0/x9e/xa0/x82 MENDE KIKAKUI SYLLABLE M003 KU +@@ -38071,6 +39362,93 @@ CHARMAP + /xf0/x9e/xa3/x94 MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS + /xf0/x9e/xa3/x95 MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS + /xf0/x9e/xa3/x96 MENDE KIKAKUI COMBINING NUMBER MILLIONS ++ /xf0/x9e/xa4/x80 ADLAM CAPITAL LETTER ALIF ++ /xf0/x9e/xa4/x81 ADLAM CAPITAL LETTER DAALI ++ /xf0/x9e/xa4/x82 ADLAM CAPITAL LETTER LAAM ++ /xf0/x9e/xa4/x83 ADLAM CAPITAL LETTER MIIM ++ /xf0/x9e/xa4/x84 ADLAM CAPITAL LETTER BA ++ /xf0/x9e/xa4/x85 ADLAM CAPITAL LETTER SINNYIIYHE ++ /xf0/x9e/xa4/x86 ADLAM CAPITAL LETTER PE ++ /xf0/x9e/xa4/x87 ADLAM CAPITAL LETTER BHE ++ /xf0/x9e/xa4/x88 ADLAM CAPITAL LETTER RA ++ /xf0/x9e/xa4/x89 ADLAM CAPITAL LETTER E ++ /xf0/x9e/xa4/x8a ADLAM CAPITAL LETTER FA ++ /xf0/x9e/xa4/x8b ADLAM CAPITAL LETTER I ++ /xf0/x9e/xa4/x8c ADLAM CAPITAL LETTER O ++ /xf0/x9e/xa4/x8d ADLAM CAPITAL LETTER DHA ++ /xf0/x9e/xa4/x8e ADLAM CAPITAL LETTER YHE ++ /xf0/x9e/xa4/x8f ADLAM CAPITAL LETTER WAW ++ /xf0/x9e/xa4/x90 ADLAM CAPITAL LETTER NUN ++ /xf0/x9e/xa4/x91 ADLAM CAPITAL LETTER KAF ++ /xf0/x9e/xa4/x92 ADLAM CAPITAL LETTER YA ++ /xf0/x9e/xa4/x93 ADLAM CAPITAL LETTER U ++ /xf0/x9e/xa4/x94 ADLAM CAPITAL LETTER JIIM ++ /xf0/x9e/xa4/x95 ADLAM CAPITAL LETTER CHI ++ /xf0/x9e/xa4/x96 ADLAM CAPITAL LETTER HA ++ /xf0/x9e/xa4/x97 ADLAM CAPITAL LETTER QAAF ++ /xf0/x9e/xa4/x98 ADLAM CAPITAL LETTER GA ++ /xf0/x9e/xa4/x99 ADLAM CAPITAL LETTER NYA ++ /xf0/x9e/xa4/x9a ADLAM CAPITAL LETTER TU ++ /xf0/x9e/xa4/x9b ADLAM CAPITAL LETTER NHA ++ /xf0/x9e/xa4/x9c ADLAM CAPITAL LETTER VA ++ /xf0/x9e/xa4/x9d ADLAM CAPITAL LETTER KHA ++ /xf0/x9e/xa4/x9e ADLAM CAPITAL LETTER GBE ++ /xf0/x9e/xa4/x9f ADLAM CAPITAL LETTER ZAL ++ /xf0/x9e/xa4/xa0 ADLAM CAPITAL LETTER KPO ++ /xf0/x9e/xa4/xa1 ADLAM CAPITAL LETTER SHA ++ /xf0/x9e/xa4/xa2 ADLAM SMALL LETTER ALIF ++ /xf0/x9e/xa4/xa3 ADLAM SMALL LETTER DAALI ++ /xf0/x9e/xa4/xa4 ADLAM SMALL LETTER LAAM ++ /xf0/x9e/xa4/xa5 ADLAM SMALL LETTER MIIM ++ /xf0/x9e/xa4/xa6 ADLAM SMALL LETTER BA ++ /xf0/x9e/xa4/xa7 ADLAM SMALL LETTER SINNYIIYHE ++ /xf0/x9e/xa4/xa8 ADLAM SMALL LETTER PE ++ /xf0/x9e/xa4/xa9 ADLAM SMALL LETTER BHE ++ /xf0/x9e/xa4/xaa ADLAM SMALL LETTER RA ++ /xf0/x9e/xa4/xab ADLAM SMALL LETTER E ++ /xf0/x9e/xa4/xac ADLAM SMALL LETTER FA ++ /xf0/x9e/xa4/xad ADLAM SMALL LETTER I ++ /xf0/x9e/xa4/xae ADLAM SMALL LETTER O ++ /xf0/x9e/xa4/xaf ADLAM SMALL LETTER DHA ++ /xf0/x9e/xa4/xb0 ADLAM SMALL LETTER YHE ++ /xf0/x9e/xa4/xb1 ADLAM SMALL LETTER WAW ++ /xf0/x9e/xa4/xb2 ADLAM SMALL LETTER NUN ++ /xf0/x9e/xa4/xb3 ADLAM SMALL LETTER KAF ++ /xf0/x9e/xa4/xb4 ADLAM SMALL LETTER YA ++ /xf0/x9e/xa4/xb5 ADLAM SMALL LETTER U ++ /xf0/x9e/xa4/xb6 ADLAM SMALL LETTER JIIM ++ /xf0/x9e/xa4/xb7 ADLAM SMALL LETTER CHI ++ /xf0/x9e/xa4/xb8 ADLAM SMALL LETTER HA ++ /xf0/x9e/xa4/xb9 ADLAM SMALL LETTER QAAF ++ /xf0/x9e/xa4/xba ADLAM SMALL LETTER GA ++ /xf0/x9e/xa4/xbb ADLAM SMALL LETTER NYA ++ /xf0/x9e/xa4/xbc ADLAM SMALL LETTER TU ++ /xf0/x9e/xa4/xbd ADLAM SMALL LETTER NHA ++ /xf0/x9e/xa4/xbe ADLAM SMALL LETTER VA ++ /xf0/x9e/xa4/xbf ADLAM SMALL LETTER KHA ++ /xf0/x9e/xa5/x80 ADLAM SMALL LETTER GBE ++ /xf0/x9e/xa5/x81 ADLAM SMALL LETTER ZAL ++ /xf0/x9e/xa5/x82 ADLAM SMALL LETTER KPO ++ /xf0/x9e/xa5/x83 ADLAM SMALL LETTER SHA ++ /xf0/x9e/xa5/x84 ADLAM ALIF LENGTHENER ++ /xf0/x9e/xa5/x85 ADLAM VOWEL LENGTHENER ++ /xf0/x9e/xa5/x86 ADLAM GEMINATION MARK ++ /xf0/x9e/xa5/x87 ADLAM HAMZA ++ /xf0/x9e/xa5/x88 ADLAM CONSONANT MODIFIER ++ /xf0/x9e/xa5/x89 ADLAM GEMINATE CONSONANT MODIFIER ++ /xf0/x9e/xa5/x8a ADLAM NUKTA ++ /xf0/x9e/xa5/x90 ADLAM DIGIT ZERO ++ /xf0/x9e/xa5/x91 ADLAM DIGIT ONE ++ /xf0/x9e/xa5/x92 ADLAM DIGIT TWO ++ /xf0/x9e/xa5/x93 ADLAM DIGIT THREE ++ /xf0/x9e/xa5/x94 ADLAM DIGIT FOUR ++ /xf0/x9e/xa5/x95 ADLAM DIGIT FIVE ++ /xf0/x9e/xa5/x96 ADLAM DIGIT SIX ++ /xf0/x9e/xa5/x97 ADLAM DIGIT SEVEN ++ /xf0/x9e/xa5/x98 ADLAM DIGIT EIGHT ++ /xf0/x9e/xa5/x99 ADLAM DIGIT NINE ++ /xf0/x9e/xa5/x9e ADLAM INITIAL EXCLAMATION MARK ++ /xf0/x9e/xa5/x9f ADLAM INITIAL QUESTION MARK + /xf0/x9e/xb8/x80 ARABIC MATHEMATICAL ALEF + /xf0/x9e/xb8/x81 ARABIC MATHEMATICAL BEH + /xf0/x9e/xb8/x82 ARABIC MATHEMATICAL JEEM +@@ -38587,6 +39965,24 @@ CHARMAP + /xf0/x9f/x86/x98 SQUARED SOS + /xf0/x9f/x86/x99 SQUARED UP WITH EXCLAMATION MARK + /xf0/x9f/x86/x9a SQUARED VS ++ /xf0/x9f/x86/x9b SQUARED THREE D ++ /xf0/x9f/x86/x9c SQUARED SECOND SCREEN ++ /xf0/x9f/x86/x9d SQUARED TWO K ++ /xf0/x9f/x86/x9e SQUARED FOUR K ++ /xf0/x9f/x86/x9f SQUARED EIGHT K ++ /xf0/x9f/x86/xa0 SQUARED FIVE POINT ONE ++ /xf0/x9f/x86/xa1 SQUARED SEVEN POINT ONE ++ /xf0/x9f/x86/xa2 SQUARED TWENTY-TWO POINT TWO ++ /xf0/x9f/x86/xa3 SQUARED SIXTY P ++ /xf0/x9f/x86/xa4 SQUARED ONE HUNDRED TWENTY P ++ /xf0/x9f/x86/xa5 SQUARED LATIN SMALL LETTER D ++ /xf0/x9f/x86/xa6 SQUARED HC ++ /xf0/x9f/x86/xa7 SQUARED HDR ++ /xf0/x9f/x86/xa8 SQUARED HI-RES ++ /xf0/x9f/x86/xa9 SQUARED LOSSLESS ++ /xf0/x9f/x86/xaa SQUARED SHV ++ /xf0/x9f/x86/xab SQUARED UHD ++ /xf0/x9f/x86/xac SQUARED VOD + /xf0/x9f/x87/xa6 REGIONAL INDICATOR SYMBOL LETTER A + /xf0/x9f/x87/xa7 REGIONAL INDICATOR SYMBOL LETTER B + /xf0/x9f/x87/xa8 REGIONAL INDICATOR SYMBOL LETTER C +@@ -38659,6 +40055,7 @@ CHARMAP + /xf0/x9f/x88/xb8 SQUARED CJK UNIFIED IDEOGRAPH-7533 + /xf0/x9f/x88/xb9 SQUARED CJK UNIFIED IDEOGRAPH-5272 + /xf0/x9f/x88/xba SQUARED CJK UNIFIED IDEOGRAPH-55B6 ++ /xf0/x9f/x88/xbb SQUARED CJK UNIFIED IDEOGRAPH-914D + /xf0/x9f/x89/x80 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C + /xf0/x9f/x89/x81 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 + /xf0/x9f/x89/x82 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C +@@ -39304,6 +40701,7 @@ CHARMAP + /xf0/x9f/x95/xb7 SPIDER + /xf0/x9f/x95/xb8 SPIDER WEB + /xf0/x9f/x95/xb9 JOYSTICK ++ /xf0/x9f/x95/xba MAN DANCING + /xf0/x9f/x95/xbb LEFT HAND TELEPHONE RECEIVER + /xf0/x9f/x95/xbc TELEPHONE RECEIVER WITH PAGE + /xf0/x9f/x95/xbd RIGHT HAND TELEPHONE RECEIVER +@@ -39345,6 +40743,7 @@ CHARMAP + /xf0/x9f/x96/xa1 SIDEWAYS BLACK DOWN POINTING INDEX + /xf0/x9f/x96/xa2 BLACK UP POINTING BACKHAND INDEX + /xf0/x9f/x96/xa3 BLACK DOWN POINTING BACKHAND INDEX ++ /xf0/x9f/x96/xa4 BLACK HEART + /xf0/x9f/x96/xa5 DESKTOP COMPUTER + /xf0/x9f/x96/xa6 KEYBOARD AND MOUSE + /xf0/x9f/x96/xa7 THREE NETWORKED COMPUTERS +@@ -39645,6 +41044,8 @@ CHARMAP + /xf0/x9f/x9b/x8e BELLHOP BELL + /xf0/x9f/x9b/x8f BED + /xf0/x9f/x9b/x90 PLACE OF WORSHIP ++ /xf0/x9f/x9b/x91 OCTAGONAL SIGN ++ /xf0/x9f/x9b/x92 SHOPPING TROLLEY + /xf0/x9f/x9b/xa0 HAMMER AND WRENCH + /xf0/x9f/x9b/xa1 SHIELD + /xf0/x9f/x9b/xa2 OIL DRUM +@@ -39662,6 +41063,9 @@ CHARMAP + /xf0/x9f/x9b/xb1 ONCOMING FIRE ENGINE + /xf0/x9f/x9b/xb2 DIESEL LOCOMOTIVE + /xf0/x9f/x9b/xb3 PASSENGER SHIP ++ /xf0/x9f/x9b/xb4 SCOOTER ++ /xf0/x9f/x9b/xb5 MOTOR SCOOTER ++ /xf0/x9f/x9b/xb6 CANOE + /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE + /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR + /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE +@@ -40020,11 +41424,78 @@ CHARMAP + /xf0/x9f/xa4/x96 ROBOT FACE + /xf0/x9f/xa4/x97 HUGGING FACE + /xf0/x9f/xa4/x98 SIGN OF THE HORNS ++ /xf0/x9f/xa4/x99 CALL ME HAND ++ /xf0/x9f/xa4/x9a RAISED BACK OF HAND ++ /xf0/x9f/xa4/x9b LEFT-FACING FIST ++ /xf0/x9f/xa4/x9c RIGHT-FACING FIST ++ /xf0/x9f/xa4/x9d HANDSHAKE ++ /xf0/x9f/xa4/x9e HAND WITH INDEX AND MIDDLE FINGERS CROSSED ++ /xf0/x9f/xa4/xa0 FACE WITH COWBOY HAT ++ /xf0/x9f/xa4/xa1 CLOWN FACE ++ /xf0/x9f/xa4/xa2 NAUSEATED FACE ++ /xf0/x9f/xa4/xa3 ROLLING ON THE FLOOR LAUGHING ++ /xf0/x9f/xa4/xa4 DROOLING FACE ++ /xf0/x9f/xa4/xa5 LYING FACE ++ /xf0/x9f/xa4/xa6 FACE PALM ++ /xf0/x9f/xa4/xa7 SNEEZING FACE ++ /xf0/x9f/xa4/xb0 PREGNANT WOMAN ++ /xf0/x9f/xa4/xb3 SELFIE ++ /xf0/x9f/xa4/xb4 PRINCE ++ /xf0/x9f/xa4/xb5 MAN IN TUXEDO ++ /xf0/x9f/xa4/xb6 MOTHER CHRISTMAS ++ /xf0/x9f/xa4/xb7 SHRUG ++ /xf0/x9f/xa4/xb8 PERSON DOING CARTWHEEL ++ /xf0/x9f/xa4/xb9 JUGGLING ++ /xf0/x9f/xa4/xba FENCER ++ /xf0/x9f/xa4/xbb MODERN PENTATHLON ++ /xf0/x9f/xa4/xbc WRESTLERS ++ /xf0/x9f/xa4/xbd WATER POLO ++ /xf0/x9f/xa4/xbe HANDBALL ++ /xf0/x9f/xa5/x80 WILTED FLOWER ++ /xf0/x9f/xa5/x81 DRUM WITH DRUMSTICKS ++ /xf0/x9f/xa5/x82 CLINKING GLASSES ++ /xf0/x9f/xa5/x83 TUMBLER GLASS ++ /xf0/x9f/xa5/x84 SPOON ++ /xf0/x9f/xa5/x85 GOAL NET ++ /xf0/x9f/xa5/x86 RIFLE ++ /xf0/x9f/xa5/x87 FIRST PLACE MEDAL ++ /xf0/x9f/xa5/x88 SECOND PLACE MEDAL ++ /xf0/x9f/xa5/x89 THIRD PLACE MEDAL ++ /xf0/x9f/xa5/x8a BOXING GLOVE ++ /xf0/x9f/xa5/x8b MARTIAL ARTS UNIFORM ++ /xf0/x9f/xa5/x90 CROISSANT ++ /xf0/x9f/xa5/x91 AVOCADO ++ /xf0/x9f/xa5/x92 CUCUMBER ++ /xf0/x9f/xa5/x93 BACON ++ /xf0/x9f/xa5/x94 POTATO ++ /xf0/x9f/xa5/x95 CARROT ++ /xf0/x9f/xa5/x96 BAGUETTE BREAD ++ /xf0/x9f/xa5/x97 GREEN SALAD ++ /xf0/x9f/xa5/x98 SHALLOW PAN OF FOOD ++ /xf0/x9f/xa5/x99 STUFFED FLATBREAD ++ /xf0/x9f/xa5/x9a EGG ++ /xf0/x9f/xa5/x9b GLASS OF MILK ++ /xf0/x9f/xa5/x9c PEANUTS ++ /xf0/x9f/xa5/x9d KIWIFRUIT ++ /xf0/x9f/xa5/x9e PANCAKES + /xf0/x9f/xa6/x80 CRAB + /xf0/x9f/xa6/x81 LION FACE + /xf0/x9f/xa6/x82 SCORPION + /xf0/x9f/xa6/x83 TURKEY + /xf0/x9f/xa6/x84 UNICORN FACE ++ /xf0/x9f/xa6/x85 EAGLE ++ /xf0/x9f/xa6/x86 DUCK ++ /xf0/x9f/xa6/x87 BAT ++ /xf0/x9f/xa6/x88 SHARK ++ /xf0/x9f/xa6/x89 OWL ++ /xf0/x9f/xa6/x8a FOX FACE ++ /xf0/x9f/xa6/x8b BUTTERFLY ++ /xf0/x9f/xa6/x8c DEER ++ /xf0/x9f/xa6/x8d GORILLA ++ /xf0/x9f/xa6/x8e LIZARD ++ /xf0/x9f/xa6/x8f RHINOCEROS ++ /xf0/x9f/xa6/x90 SHRIMP ++ /xf0/x9f/xa6/x91 SQUID + /xf0/x9f/xa7/x80 CHEESE WEDGE + .. /xf0/xa0/x80/x80 + .. /xf0/xa0/x81/x80 +@@ -44096,6 +45567,21 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 + 0 + 0 + 0 +@@ -44405,6 +45891,8 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 + 0 + 0 + 0 +@@ -44592,6 +46080,7 @@ WIDTH + 0 + 0 + 0 ++ 0 + 0 + 0 + 0 +@@ -44654,8 +46143,41 @@ WIDTH + 0 + 0 + 0 ++... 2 + 2 + 2 ++... 2 ++ 2 ++ 2 ++... 2 ++... 2 ++... 2 ++ 2 ++ 2 ++ 2 ++... 2 ++... 2 ++... 2 ++ 2 ++ 2 ++ 2 ++... 2 ++ 2 ++ 2 ++ 2 ++ 2 ++... 2 ++ 2 ++ 2 ++ 2 ++... 2 ++ 2 ++... 2 ++ 2 ++ 2 ++... 2 ++ 2 ++ 2 + 0 + 0 + 0 +@@ -44795,6 +46317,7 @@ WIDTH + 0 + 0 + 0 ++ 0 + 0 + 0 + 0 +@@ -45073,6 +46596,7 @@ WIDTH + 0 + 0 + 0 ++ 0 + 0 + 0 + 0 +@@ -45098,6 +46622,18 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 + 0 + 0 + 0 +@@ -45151,6 +46687,52 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 + 0 + 0 + 0 +@@ -45167,6 +46749,9 @@ WIDTH + 0 + 0 + 0 ++ 2 ++... 2 ++... 2 + ... 2 + 0 + 0 +@@ -45334,6 +46919,44 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 + 0 + 0 + 0 +@@ -45341,10 +46964,55 @@ WIDTH + 0 + 0 + 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 0 ++ 2 ++ 2 ++ 2 ++... 2 + ... 2 +-... 2 ++... 2 + ... 2 + ... 2 ++... 2 ++... 2 ++... 2 ++... 2 ++... 2 ++... 2 ++... 2 ++ 2 ++... 2 ++... 2 ++... 2 ++ 2 ++... 2 ++... 2 ++... 2 ++... 2 ++ 2 ++... 2 ++ 2 ++... 2 ++... 2 ++... 2 ++ 2 ++... 2 ++... 2 ++... 2 ++... 2 ++... 2 ++ 2 ++... 2 ++... 2 ++... 2 ++... 2 ++ 2 + ... 2 + ... 2 + ... 2 +diff --git a/localedata/locales/i18n b/localedata/locales/i18n +index 115cb05..c063838 100644 +--- a/localedata/locales/i18n ++++ b/localedata/locales/i18n +@@ -19,7 +19,7 @@ fax "" + language "" + territory "" + revision "" +-date "2015-12-09" ++date "2016-06-21" + + category "i18n:2012";LC_IDENTIFICATION + category "i18n:2012";LC_CTYPE +@@ -36,7 +36,7 @@ END LC_IDENTIFICATION + + LC_CTYPE + % The following is the 14652 i18n fdcc-set LC_CTYPE category. +-% It covers Unicode version 8.0.0. ++% It covers Unicode version 9.0.0. + % The character classes and mapping tables were automatically + % generated using the gen_unicode_ctype.py program. + +@@ -117,23 +117,24 @@ upper / + ;;;;;;;;;/ + ;;;..;;;;;/ + ;;;;;;;;;/ +- ;;;;;..;/ ++ ;;;;;..;/ + ..;;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ + ..;.. + + % The "lower" class reflects the lowercase characters of class "alpha" +@@ -174,50 +175,51 @@ lower / + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;..;..;/ +- ..;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;..;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;;..;;/ +- ..;;;;;..;/ +- ..;;..;;..;/ +- ..;;..;;;;/ +- ;..;..;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;..;;;;..;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;..;;;;;;/ +- ;..;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;..;;/ +- ;;;;;;;;;/ +- ..;;;;;;;;/ +- ;;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;/ ++ ..;..;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;..;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;;..;;;;/ ++ ;..;..;;..;/ ++ ;..;..;;..;/ ++ ;;;;..;..;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;..;;;;/ ++ ..;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;..;;;;/ ++ ;;;..;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;/ ++ ..;;;;;;;;/ ++ ;;;..;;;;;/ ++ ;;;;;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -231,7 +233,8 @@ lower / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..; ++ ..;..;;/ ++ .. + + % The "alpha" class of the "i18n" FDCC-set is reflecting + % the recommendations in TR 10176 annex A +@@ -247,42 +250,42 @@ alpha / + ..;..;..;..;/ + ..;;..;..;/ + ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;;..;..;/ +- ..;..;..;;/ +- ..;..;;..;;/ +- ;..;..;..;;/ +- ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;;..;/ ++ ;;..;..;..;/ ++ ;;..;..;..;/ + ..;;;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ +@@ -304,44 +307,45 @@ alpha / + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ;;..;;..;;/ +- ;;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;;;..;;/ ++ ..;;;;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -350,7 +354,8 @@ alpha / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +@@ -373,16 +378,18 @@ alpha / + ..;..;;/ + ..;..;/ + ..;;..;/ +- ..;;..;/ +- ;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;/ ++ ..;;;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;;/ +@@ -390,32 +397,40 @@ alpha / + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ + ..;..;;/ + ;..;..;/ + ;;;;;;/ +@@ -460,56 +475,57 @@ punct / + ..;;..;;..;/ + ..;..;..;;/ + ..;..;..;..;/ +- ;..;..;;..;/ +- ;;..;..;;;/ +- ;..;;;;;/ ++ ;..;..;;..;/ ++ ..;;;..;..;/ ++ ;;;..;;;;;/ + ..;;;;..;;/ + ..;;..;;;;/ +- ..;;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;;..;/ +- ..;;..;..;/ +- ..;;..;..;/ +- ..;;..;..;/ +- ..;..;;..;/ +- ..;..;;..;;/ +- ..;..;;..;;/ +- ..;..;..;;;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;;;;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;;..;..;/ +- ..;;..;..;/ +- ..;;..;;;;/ +- ..;..;;..;/ +- ..;..;;;..;/ +- ..;;;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ ++ ;..;..;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;..;..;;/ ++ ..;..;..;;/ ++ ..;;..;..;;/ ++ ..;;..;..;/ ++ ..;;;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ;..;..;..;;/ ++ ..;..;..;;/ ++ ..;;;;..;/ ++ ..;;..;..;/ ++ ..;;;..;..;/ ++ ;;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;;/ + ;;..;/ +@@ -531,36 +547,42 @@ punct / + ..;..;/ + ..;;..;/ + ;;..;/ +- ..;..;;/ +- ..;;..;/ ++ ..;;;/ ++ ..;;;/ ++ ..;;..;/ ++ ;..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ;;;;;;/ +- ;;;..;/ +- ..;..;/ +- ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;;;;/ ++ ;;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;;/ + ..;..;/ + ..;.. + +@@ -571,13 +593,13 @@ graph / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +@@ -592,82 +614,82 @@ graph / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ..;;..;;;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ;..;..;..;;/ ++ ;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;;..;/ +@@ -693,7 +715,7 @@ graph / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;;/ ++ ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -703,44 +725,53 @@ graph / + ..;..;/ + ..;;;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;;/ +- ;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ;;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ +@@ -753,16 +784,17 @@ graph / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ +@@ -775,13 +807,13 @@ print / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +@@ -796,154 +828,163 @@ print / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ..;;..;;;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ;..;..;..;;/ ++ ;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;;/ +- ;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ;;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ +@@ -956,16 +997,17 @@ print / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ +@@ -1037,291 +1079,329 @@ toupper / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + tolower / + (,);(,);(,);(,);/ +@@ -1593,76 +1673,112 @@ tolower / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + map "totitle"; / + (,);(,);(,);(,);/ +@@ -1721,291 +1837,329 @@ map "totitle"; / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + % The "combining" class reflects ISO/IEC 10646-1 annex B.1 + % That is, all combining characters (level 2+3). +@@ -2015,42 +2169,43 @@ class "combining"; / + ..;;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;;..;..;;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;;..;/ +- ;..;..;;..;/ +- ..;;..;..;/ +- ..;..;;;;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;;..;..;/ +- ;..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;;..;..;/ ++ ..;;..;;..;/ ++ ;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ..;;..;..;;/ ++ ..;..;;..;/ ++ ..;..;..;;;/ ++ ;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;;..;..;;/ ++ ..;..;..;;/ + ..;..;..;..;/ + ;..;..;;;/ + ..;..;/ +@@ -2060,23 +2215,29 @@ class "combining"; / + ..;..;/ + ..;..;;/ + ..;..;/ +- ..;..;/ ++ ..;..;;/ + ..;..;;/ + ..;..;/ + ..;;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ;..;..;/ +- ..;.. ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;.. + + % The "combining_level3" class reflects ISO/IEC 10646-1 annex B.2 + % That is, combining characters of level 3. +@@ -2105,34 +2266,37 @@ class "combining_level3"; / + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;;/ +- ;;..;..;..;/ +- ..;..;..;..;/ +- ;..;;..;..;/ +- ..;..;..;..;/ +- ;..;..;/ +- ..;;;;;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;;/ ++ ;;;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ +- ..;..;/ ++ ..;..;;/ + .. + + translit_start +diff --git a/localedata/locales/tr_TR b/localedata/locales/tr_TR +index aac470f..153ba47 100644 +--- a/localedata/locales/tr_TR ++++ b/localedata/locales/tr_TR +@@ -44,7 +44,7 @@ fax "" + language "Turkish" + territory "Turkey" + revision "1.0" +-date "2015-12-10" ++date "2016-06-21" + + category "i18n:2012";LC_IDENTIFICATION + category "i18n:2012";LC_CTYPE +@@ -2127,7 +2127,7 @@ END LC_COLLATE + + LC_CTYPE + % The following is the 14652 i18n fdcc-set LC_CTYPE category. +-% It covers Unicode version 8.0.0. ++% It covers Unicode version 9.0.0. + % The character classes and mapping tables were automatically + % generated using the gen_unicode_ctype.py program. + +@@ -2208,23 +2208,24 @@ upper / + ;;;;;;;;;/ + ;;;..;;;;;/ + ;;;;;;;;;/ +- ;;;;;..;/ ++ ;;;;;..;/ + ..;;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ + ..;.. + + % The "lower" class reflects the lowercase characters of class "alpha" +@@ -2265,50 +2266,51 @@ lower / + ;;;;;;;;;/ + ;;;;;;;;;/ + ;;;..;..;/ +- ..;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;..;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;;..;;/ +- ..;;;;;..;/ +- ..;;..;;..;/ +- ..;;..;;;;/ +- ;..;..;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;..;;;;..;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;..;;;;;;/ +- ;..;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;;;;/ +- ;;;;;;..;;/ +- ;;;;;;;;;/ +- ..;;;;;;;;/ +- ;;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;/ ++ ..;..;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;..;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;;..;;;;/ ++ ;..;..;;..;/ ++ ;..;..;;..;/ ++ ;;;;..;..;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;..;;;;/ ++ ..;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;..;;;;/ ++ ;;;..;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;;/ ++ ;;;;;;;;/ ++ ..;;;;;;;;/ ++ ;;;..;;;;;/ ++ ;;;;;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -2322,7 +2324,8 @@ lower / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..; ++ ..;..;;/ ++ .. + + % The "alpha" class of the "i18n" FDCC-set is reflecting + % the recommendations in TR 10176 annex A +@@ -2338,42 +2341,42 @@ alpha / + ..;..;..;..;/ + ..;;..;..;/ + ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;;..;..;/ +- ..;..;..;;/ +- ..;..;;..;;/ +- ;..;..;..;;/ +- ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;;..;/ ++ ;;..;..;..;/ ++ ;;..;..;..;/ + ..;;;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ +@@ -2395,44 +2398,45 @@ alpha / + ..;..;..;..;/ + ;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ;;..;;..;;/ +- ;;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;;;..;;/ ++ ..;;;;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -2441,7 +2445,8 @@ alpha / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +@@ -2464,16 +2469,18 @@ alpha / + ..;..;;/ + ..;..;/ + ..;;..;/ +- ..;;..;/ +- ;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;/ ++ ..;;;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;;/ +@@ -2481,32 +2488,40 @@ alpha / + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ + ..;..;;/ + ;..;..;/ + ;;;;;;/ +@@ -2551,56 +2566,57 @@ punct / + ..;;..;;..;/ + ..;..;..;;/ + ..;..;..;..;/ +- ;..;..;;..;/ +- ;;..;..;;;/ +- ;..;;;;;/ ++ ;..;..;;..;/ ++ ..;;;..;..;/ ++ ;;;..;;;;;/ + ..;;;;..;;/ + ..;;..;;;;/ +- ..;;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;;..;/ +- ..;;..;..;/ +- ..;;..;..;/ +- ..;;..;..;/ +- ..;..;;..;/ +- ..;..;;..;;/ +- ..;..;;..;;/ +- ..;..;..;;;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;;;;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;;..;..;/ +- ..;;..;..;/ +- ..;;..;;;;/ +- ..;..;;..;/ +- ..;..;;;..;/ +- ..;;;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ ++ ;..;..;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;..;..;;/ ++ ..;..;..;;/ ++ ..;;..;..;;/ ++ ..;;..;..;/ ++ ..;;;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ;..;..;..;;/ ++ ..;..;..;;/ ++ ..;;;;..;/ ++ ..;;..;..;/ ++ ..;;;..;..;/ ++ ;;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;;/ + ;;..;/ +@@ -2622,36 +2638,42 @@ punct / + ..;..;/ + ..;;..;/ + ;;..;/ +- ..;..;;/ +- ..;;..;/ ++ ..;;;/ ++ ..;;;/ ++ ..;;..;/ ++ ;..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ;;;;;;/ +- ;;;..;/ +- ..;..;/ +- ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;;;;/ ++ ;;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;;/ + ..;..;/ + ..;.. + +@@ -2662,13 +2684,13 @@ graph / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +@@ -2683,82 +2705,82 @@ graph / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ..;;..;;;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;;;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ;..;..;..;;/ ++ ;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;;..;/ + ..;..;/ + ..;;..;/ +@@ -2784,7 +2806,7 @@ graph / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;;/ ++ ..;..;;/ + ..;..;/ + ..;..;/ + ..;..;/ +@@ -2794,44 +2816,53 @@ graph / + ..;..;/ + ..;;;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;;/ +- ;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ;;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ +@@ -2844,16 +2875,17 @@ graph / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ +@@ -2866,13 +2898,13 @@ print / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ + ..;;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +@@ -2887,154 +2919,163 @@ print / + ..;..;..;..;/ + ..;..;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ..;;..;;;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;;;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ;..;..;..;;/ ++ ;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ;;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;;/ +- ..;..;;/ +- ;;;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ;..;..;/ ++ ;;;;;;/ + ..;..;;/ + ;;;;;/ + ..;;..;/ +@@ -3047,16 +3088,17 @@ print / + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ +- ..;..;/ +- ..;;..;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ ++ ..;;..;/ + ..;..;/ + ..;..;;/ + ..;..;/ +@@ -3129,291 +3171,329 @@ toupper / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + tolower / + (,);(,);(,);(,);/ +@@ -3685,76 +3765,112 @@ tolower / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + map "totitle"; / + (,);(,);(,);(,);/ +@@ -3813,291 +3929,329 @@ map "totitle"; / + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ + (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);(,);/ +- (,);(,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,);/ +- (,);(,) ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);(,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,);(,);/ ++ (,) + + % The "combining" class reflects ISO/IEC 10646-1 annex B.1 + % That is, all combining characters (level 2+3). +@@ -4107,42 +4261,43 @@ class "combining"; / + ..;;..;..;/ + ..;..;;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;;..;..;;/ +- ..;..;..;;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;..;;..;/ +- ;..;..;;..;/ +- ..;;..;..;/ +- ..;..;;;;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;;..;/ +- ..;..;..;..;/ +- ;..;..;..;/ +- ..;..;..;..;/ +- ..;..;..;;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;..;;;;/ +- ..;..;..;..;/ +- ..;..;..;..;/ +- ;..;;..;..;/ +- ;..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;;..;/ ++ ..;;..;..;/ ++ ..;;..;;..;/ ++ ;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ;..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;;/ ++ ..;;..;..;;/ ++ ..;..;;..;/ ++ ..;..;..;;;/ ++ ;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;;..;..;/ ++ ..;..;..;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;;..;..;;/ ++ ..;..;..;;/ + ..;..;..;..;/ + ;..;..;;;/ + ..;..;/ +@@ -4152,23 +4307,29 @@ class "combining"; / + ..;..;/ + ..;..;;/ + ..;..;/ +- ..;..;/ ++ ..;..;;/ + ..;..;;/ + ..;..;/ + ..;;..;/ + ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;/ +- ..;..;;/ +- ;..;..;/ +- ..;.. ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;;;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;..;/ ++ ..;.. + + % The "combining_level3" class reflects ISO/IEC 10646-1 annex B.2 + % That is, combining characters of level 3. +@@ -4197,34 +4358,37 @@ class "combining_level3"; / + ..;..;..;..;/ + ..;;..;..;/ + ..;..;..;..;/ +- ..;..;..;..;/ +- ..;..;;..;/ +- ..;..;..;..;/ +- ..;;..;..;/ +- ..;..;..;..;/ +- ..;;..;..;;/ +- ;;..;..;..;/ +- ..;..;..;..;/ +- ;..;;..;..;/ +- ..;..;..;..;/ +- ;..;..;/ +- ..;;;;;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;/ +- ..;..;/ +- ..;;..;/ +- ..;..;;/ +- ..;..;/ ++ ..;..;..;..;/ ++ ..;..;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;;;;..;/ ++ ..;..;..;..;/ ++ ..;..;;..;;/ ++ ..;..;..;..;/ ++ ..;..;;..;/ ++ ..;..;;/ ++ ;;;..;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;..;;/ ++ ..;..;;/ ++ ..;..;/ ++ ..;;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ ++ ..;..;/ ++ ..;..;/ + ..;..;/ + ..;..;/ + ..;..;/ + ..;;;/ +- ..;..;/ ++ ..;..;;/ + .. + + translit_start +diff --git a/localedata/locales/translit_circle b/localedata/locales/translit_circle +index f9decb0..e3f6154 100644 +--- a/localedata/locales/translit_circle ++++ b/localedata/locales/translit_circle +@@ -9,7 +9,7 @@ comment_char % + % otherwise be governed by that license. + + % Transliterations of encircled characters. +-% Generated automatically from UnicodeData.txt by gen_translit_circle.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_circle.py on 2016-06-29 for Unicode 9.0.0. + + LC_CTYPE + +diff --git a/localedata/locales/translit_cjk_compat b/localedata/locales/translit_cjk_compat +index 949bd18..286f409 100644 +--- a/localedata/locales/translit_cjk_compat ++++ b/localedata/locales/translit_cjk_compat +@@ -9,7 +9,7 @@ comment_char % + % otherwise be governed by that license. + + % Transliterations of CJK compatibility characters. +-% Generated automatically from UnicodeData.txt by gen_translit_cjk_compat.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_cjk_compat.py on 2016-06-29 for Unicode 9.0.0. + + LC_CTYPE + +@@ -583,6 +583,8 @@ translit_start + + % SQUARED CJK UNIFIED IDEOGRAPH-55B6 + ++% SQUARED CJK UNIFIED IDEOGRAPH-914D ++ + % CJK COMPATIBILITY IDEOGRAPH-F900 + + % CJK COMPATIBILITY IDEOGRAPH-F901 +diff --git a/localedata/locales/translit_combining b/localedata/locales/translit_combining +index 74f8638..6c57197 100644 +--- a/localedata/locales/translit_combining ++++ b/localedata/locales/translit_combining +@@ -10,7 +10,7 @@ comment_char % + + % Transliterations that remove all combining characters (accents, + % pronounciation marks, etc.). +-% Generated automatically from UnicodeData.txt by gen_translit_combining.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_combining.py on 2016-06-29 for Unicode 9.0.0. + + LC_CTYPE + +@@ -446,6 +446,34 @@ translit_start + "" + % ARABIC SMALL LOW MEEM + "" ++% ARABIC SMALL HIGH WORD AR-RUB ++ "" ++% ARABIC SMALL HIGH SAD ++ "" ++% ARABIC SMALL HIGH AIN ++ "" ++% ARABIC SMALL HIGH QAF ++ "" ++% ARABIC SMALL HIGH NOON WITH KASRA ++ "" ++% ARABIC SMALL LOW NOON WITH KASRA ++ "" ++% ARABIC SMALL HIGH WORD ATH-THALATHA ++ "" ++% ARABIC SMALL HIGH WORD AS-SAJDA ++ "" ++% ARABIC SMALL HIGH WORD AN-NISF ++ "" ++% ARABIC SMALL HIGH WORD SAKTA ++ "" ++% ARABIC SMALL HIGH WORD QIF ++ "" ++% ARABIC SMALL HIGH WORD WAQFA ++ "" ++% ARABIC SMALL HIGH FOOTNOTE MARKER ++ "" ++% ARABIC SMALL HIGH SIGN SAFHA ++ "" + % ARABIC TURNED DAMMA BELOW + "" + % ARABIC CURLY FATHA +@@ -642,6 +670,8 @@ translit_start + "" + % COMBINING UP TACK ABOVE + "" ++% COMBINING DELETION MARK ++ "" + % COMBINING DOUBLE INVERTED BREVE BELOW + "" + % COMBINING ALMOST EQUAL TO BELOW +@@ -762,12 +792,242 @@ translit_start + "" + % COMBINING OLD PERMIC LETTER SII + "" ++% NEWA VOWEL SIGN AA ++ "" ++% NEWA VOWEL SIGN I ++ "" ++% NEWA VOWEL SIGN II ++ "" ++% NEWA VOWEL SIGN U ++ "" ++% NEWA VOWEL SIGN UU ++ "" ++% NEWA VOWEL SIGN VOCALIC R ++ "" ++% NEWA VOWEL SIGN VOCALIC RR ++ "" ++% NEWA VOWEL SIGN VOCALIC L ++ "" ++% NEWA VOWEL SIGN VOCALIC LL ++ "" ++% NEWA VOWEL SIGN E ++ "" ++% NEWA VOWEL SIGN AI ++ "" ++% NEWA VOWEL SIGN O ++ "" ++% NEWA VOWEL SIGN AU ++ "" ++% NEWA SIGN VIRAMA ++ "" ++% NEWA SIGN CANDRABINDU ++ "" ++% NEWA SIGN ANUSVARA ++ "" ++% NEWA SIGN VISARGA ++ "" ++% NEWA SIGN NUKTA ++ "" ++% BHAIKSUKI VOWEL SIGN AA ++ "" ++% BHAIKSUKI VOWEL SIGN I ++ "" ++% BHAIKSUKI VOWEL SIGN II ++ "" ++% BHAIKSUKI VOWEL SIGN U ++ "" ++% BHAIKSUKI VOWEL SIGN UU ++ "" ++% BHAIKSUKI VOWEL SIGN VOCALIC R ++ "" ++% BHAIKSUKI VOWEL SIGN VOCALIC RR ++ "" ++% BHAIKSUKI VOWEL SIGN VOCALIC L ++ "" ++% BHAIKSUKI VOWEL SIGN E ++ "" ++% BHAIKSUKI VOWEL SIGN AI ++ "" ++% BHAIKSUKI VOWEL SIGN O ++ "" ++% BHAIKSUKI VOWEL SIGN AU ++ "" ++% BHAIKSUKI SIGN CANDRABINDU ++ "" ++% BHAIKSUKI SIGN ANUSVARA ++ "" ++% BHAIKSUKI SIGN VISARGA ++ "" ++% BHAIKSUKI SIGN VIRAMA ++ "" ++% MARCHEN SUBJOINED LETTER KA ++ "" ++% MARCHEN SUBJOINED LETTER KHA ++ "" ++% MARCHEN SUBJOINED LETTER GA ++ "" ++% MARCHEN SUBJOINED LETTER NGA ++ "" ++% MARCHEN SUBJOINED LETTER CA ++ "" ++% MARCHEN SUBJOINED LETTER CHA ++ "" ++% MARCHEN SUBJOINED LETTER JA ++ "" ++% MARCHEN SUBJOINED LETTER NYA ++ "" ++% MARCHEN SUBJOINED LETTER TA ++ "" ++% MARCHEN SUBJOINED LETTER THA ++ "" ++% MARCHEN SUBJOINED LETTER DA ++ "" ++% MARCHEN SUBJOINED LETTER NA ++ "" ++% MARCHEN SUBJOINED LETTER PA ++ "" ++% MARCHEN SUBJOINED LETTER PHA ++ "" ++% MARCHEN SUBJOINED LETTER BA ++ "" ++% MARCHEN SUBJOINED LETTER MA ++ "" ++% MARCHEN SUBJOINED LETTER TSA ++ "" ++% MARCHEN SUBJOINED LETTER TSHA ++ "" ++% MARCHEN SUBJOINED LETTER DZA ++ "" ++% MARCHEN SUBJOINED LETTER WA ++ "" ++% MARCHEN SUBJOINED LETTER ZHA ++ "" ++% MARCHEN SUBJOINED LETTER ZA ++ "" ++% MARCHEN SUBJOINED LETTER YA ++ "" ++% MARCHEN SUBJOINED LETTER RA ++ "" ++% MARCHEN SUBJOINED LETTER LA ++ "" ++% MARCHEN SUBJOINED LETTER SHA ++ "" ++% MARCHEN SUBJOINED LETTER SA ++ "" ++% MARCHEN SUBJOINED LETTER HA ++ "" ++% MARCHEN SUBJOINED LETTER A ++ "" ++% MARCHEN VOWEL SIGN AA ++ "" ++% MARCHEN VOWEL SIGN I ++ "" ++% MARCHEN VOWEL SIGN U ++ "" ++% MARCHEN VOWEL SIGN E ++ "" ++% MARCHEN VOWEL SIGN O ++ "" ++% MARCHEN SIGN ANUSVARA ++ "" ++% MARCHEN SIGN CANDRABINDU ++ "" + % COMBINING GREEK MUSICAL TRISEME + "" + % COMBINING GREEK MUSICAL TETRASEME + "" + % COMBINING GREEK MUSICAL PENTASEME + "" ++% COMBINING GLAGOLITIC LETTER AZU ++ "" ++% COMBINING GLAGOLITIC LETTER BUKY ++ "" ++% COMBINING GLAGOLITIC LETTER VEDE ++ "" ++% COMBINING GLAGOLITIC LETTER GLAGOLI ++ "" ++% COMBINING GLAGOLITIC LETTER DOBRO ++ "" ++% COMBINING GLAGOLITIC LETTER YESTU ++ "" ++% COMBINING GLAGOLITIC LETTER ZHIVETE ++ "" ++% COMBINING GLAGOLITIC LETTER ZEMLJA ++ "" ++% COMBINING GLAGOLITIC LETTER IZHE ++ "" ++% COMBINING GLAGOLITIC LETTER INITIAL IZHE ++ "" ++% COMBINING GLAGOLITIC LETTER I ++ "" ++% COMBINING GLAGOLITIC LETTER DJERVI ++ "" ++% COMBINING GLAGOLITIC LETTER KAKO ++ "" ++% COMBINING GLAGOLITIC LETTER LJUDIJE ++ "" ++% COMBINING GLAGOLITIC LETTER MYSLITE ++ "" ++% COMBINING GLAGOLITIC LETTER NASHI ++ "" ++% COMBINING GLAGOLITIC LETTER ONU ++ "" ++% COMBINING GLAGOLITIC LETTER POKOJI ++ "" ++% COMBINING GLAGOLITIC LETTER RITSI ++ "" ++% COMBINING GLAGOLITIC LETTER SLOVO ++ "" ++% COMBINING GLAGOLITIC LETTER TVRIDO ++ "" ++% COMBINING GLAGOLITIC LETTER UKU ++ "" ++% COMBINING GLAGOLITIC LETTER FRITU ++ "" ++% COMBINING GLAGOLITIC LETTER HERU ++ "" ++% COMBINING GLAGOLITIC LETTER SHTA ++ "" ++% COMBINING GLAGOLITIC LETTER TSI ++ "" ++% COMBINING GLAGOLITIC LETTER CHRIVI ++ "" ++% COMBINING GLAGOLITIC LETTER SHA ++ "" ++% COMBINING GLAGOLITIC LETTER YERU ++ "" ++% COMBINING GLAGOLITIC LETTER YERI ++ "" ++% COMBINING GLAGOLITIC LETTER YATI ++ "" ++% COMBINING GLAGOLITIC LETTER YU ++ "" ++% COMBINING GLAGOLITIC LETTER SMALL YUS ++ "" ++% COMBINING GLAGOLITIC LETTER YO ++ "" ++% COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS ++ "" ++% COMBINING GLAGOLITIC LETTER BIG YUS ++ "" ++% COMBINING GLAGOLITIC LETTER IOTATED BIG YUS ++ "" ++% COMBINING GLAGOLITIC LETTER FITA ++ "" ++% ADLAM ALIF LENGTHENER ++ "" ++% ADLAM VOWEL LENGTHENER ++ "" ++% ADLAM GEMINATION MARK ++ "" ++% ADLAM HAMZA ++ "" ++% ADLAM CONSONANT MODIFIER ++ "" ++% ADLAM GEMINATE CONSONANT MODIFIER ++ "" ++% ADLAM NUKTA ++ "" + + % LATIN CAPITAL LETTER A WITH GRAVE + +diff --git a/localedata/locales/translit_compat b/localedata/locales/translit_compat +index d769b2f..4b5154d 100644 +--- a/localedata/locales/translit_compat ++++ b/localedata/locales/translit_compat +@@ -9,7 +9,7 @@ comment_char % + % otherwise be governed by that license. + + % Transliterations of compatibility characters and ligatures. +-% Generated automatically from UnicodeData.txt by gen_translit_compat.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_compat.py on 2016-06-29 for Unicode 9.0.0. + + LC_CTYPE + +diff --git a/localedata/locales/translit_font b/localedata/locales/translit_font +index 2bd5900..b4bc287 100644 +--- a/localedata/locales/translit_font ++++ b/localedata/locales/translit_font +@@ -9,7 +9,7 @@ comment_char % + % otherwise be governed by that license. + + % Transliterations of font equivalents. +-% Generated automatically from UnicodeData.txt by gen_translit_font.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_font.py on 2016-06-29 for Unicode 9.0.0. + + LC_CTYPE + +diff --git a/localedata/locales/translit_fraction b/localedata/locales/translit_fraction +index 5dbe128..de258d1 100644 +--- a/localedata/locales/translit_fraction ++++ b/localedata/locales/translit_fraction +@@ -9,7 +9,7 @@ comment_char % + % otherwise be governed by that license. + + % Transliterations of fractions. +-% Generated automatically from UnicodeData.txt by gen_translit_fraction.py on 2015-12-09 for Unicode 8.0.0. ++% Generated automatically from UnicodeData.txt by gen_translit_fraction.py on 2016-06-29 for Unicode 9.0.0. + % The replacements have been surrounded with spaces, because fractions are + % often preceded by a decimal number and followed by a unit or a math symbol. + +diff --git a/localedata/unicode-gen/DerivedCoreProperties.txt b/localedata/unicode-gen/DerivedCoreProperties.txt +index 35d51e5..0db031d 100644 +--- a/localedata/unicode-gen/DerivedCoreProperties.txt ++++ b/localedata/unicode-gen/DerivedCoreProperties.txt +@@ -1,10 +1,11 @@ +-# DerivedCoreProperties-8.0.0.txt +-# Date: 2015-03-11, 22:29:21 GMT [MD] ++# DerivedCoreProperties-9.0.0.txt ++# Date: 2016-06-01, 10:34:24 GMT ++# © 2016 Unicode®, Inc. ++# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. ++# For terms of use, see http://www.unicode.org/terms_of_use.html + # + # Unicode Character Database +-# Copyright (c) 1991-2015 Unicode, Inc. +-# For terms of use, see http://www.unicode.org/terms_of_use.html +-# For documentation, see http://www.unicode.org/reports/tr44/ ++# For documentation, see http://www.unicode.org/reports/tr44/ + + # ================================================ + +@@ -340,6 +341,8 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A + 0829..082C ; Alphabetic # Mn [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN + 0840..0858 ; Alphabetic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN + 08A0..08B4 ; Alphabetic # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW ++08B6..08BD ; Alphabetic # Lo [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON ++08D4..08DF ; Alphabetic # Mn [12] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH WORD WAQFA + 08E3..08E9 ; Alphabetic # Mn [7] ARABIC TURNED DAMMA BELOW..ARABIC CURLY KASRATAN + 08F0..0902 ; Alphabetic # Mn [19] ARABIC OPEN FATHATAN..DEVANAGARI SIGN ANUSVARA + 0903 ; Alphabetic # Mc DEVANAGARI SIGN VISARGA +@@ -467,6 +470,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A + 0C58..0C5A ; Alphabetic # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA + 0C60..0C61 ; Alphabetic # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL + 0C62..0C63 ; Alphabetic # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL ++0C80 ; Alphabetic # Lo KANNADA SIGN SPACING CANDRABINDU + 0C81 ; Alphabetic # Mn KANNADA SIGN CANDRABINDU + 0C82..0C83 ; Alphabetic # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + 0C85..0C8C ; Alphabetic # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +@@ -498,6 +502,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A + 0D46..0D48 ; Alphabetic # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI + 0D4A..0D4C ; Alphabetic # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + 0D4E ; Alphabetic # Lo MALAYALAM LETTER DOT REPH ++0D54..0D56 ; Alphabetic # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL + 0D57 ; Alphabetic # Mc MALAYALAM AU LENGTH MARK + 0D5F..0D61 ; Alphabetic # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL + 0D62..0D63 ; Alphabetic # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +@@ -629,7 +634,9 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A + 1820..1842 ; Alphabetic # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI + 1843 ; Alphabetic # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN + 1844..1877 ; Alphabetic # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +-1880..18A8 ; Alphabetic # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA ++1880..1884 ; Alphabetic # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA ++1885..1886 ; Alphabetic # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA ++1887..18A8 ; Alphabetic # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA + 18A9 ; Alphabetic # Mn MONGOLIAN LETTER ALI GALI DAGALGA + 18AA ; Alphabetic # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA + 18B0..18F5 ; Alphabetic # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +@@ -695,6 +702,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A + 1C4D..1C4F ; Alphabetic # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA + 1C5A..1C77 ; Alphabetic # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH + 1C78..1C7D ; Alphabetic # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD ++1C80..1C88 ; Alphabetic # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1CE9..1CEC ; Alphabetic # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL + 1CEE..1CF1 ; Alphabetic # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA + 1CF2..1CF3 ; Alphabetic # Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA +@@ -815,7 +823,7 @@ A771..A787 ; Alphabetic # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER + A788 ; Alphabetic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT + A78B..A78E ; Alphabetic # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT + A78F ; Alphabetic # Lo LATIN LETTER SINOLOGICAL DOT +-A790..A7AD ; Alphabetic # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; Alphabetic # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; Alphabetic # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F7 ; Alphabetic # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I + A7F8..A7F9 ; Alphabetic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +@@ -831,6 +839,7 @@ A840..A873 ; Alphabetic # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRA + A880..A881 ; Alphabetic # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + A882..A8B3 ; Alphabetic # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA + A8B4..A8C3 ; Alphabetic # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU ++A8C5 ; Alphabetic # Mn SAURASHTRA SIGN CANDRABINDU + A8F2..A8F7 ; Alphabetic # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA + A8FB ; Alphabetic # Lo DEVANAGARI HEADSTROKE + A8FD ; Alphabetic # Lo DEVANAGARI JAIN OM +@@ -958,6 +967,8 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 103D1..103D5 ; Alphabetic # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED + 10400..1044F ; Alphabetic # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + 10450..1049D ; Alphabetic # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO ++104B0..104D3 ; Alphabetic # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; Alphabetic # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10500..10527 ; Alphabetic # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + 10530..10563 ; Alphabetic # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW + 10600..10736 ; Alphabetic # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +@@ -1029,6 +1040,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 11232..11233 ; Alphabetic # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU + 11234 ; Alphabetic # Mn KHOJKI SIGN ANUSVARA + 11237 ; Alphabetic # Mn KHOJKI SIGN SHADDA ++1123E ; Alphabetic # Mn KHOJKI SIGN SUKUN + 11280..11286 ; Alphabetic # Lo [7] MULTANI LETTER A..MULTANI LETTER GA + 11288 ; Alphabetic # Lo MULTANI LETTER GHA + 1128A..1128D ; Alphabetic # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA +@@ -1056,6 +1068,13 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 11357 ; Alphabetic # Mc GRANTHA AU LENGTH MARK + 1135D..11361 ; Alphabetic # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL + 11362..11363 ; Alphabetic # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL ++11400..11434 ; Alphabetic # Lo [53] NEWA LETTER A..NEWA LETTER HA ++11435..11437 ; Alphabetic # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II ++11438..1143F ; Alphabetic # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI ++11440..11441 ; Alphabetic # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU ++11443..11444 ; Alphabetic # Mn [2] NEWA SIGN CANDRABINDU..NEWA SIGN ANUSVARA ++11445 ; Alphabetic # Mc NEWA SIGN VISARGA ++11447..1144A ; Alphabetic # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI + 11480..114AF ; Alphabetic # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA + 114B0..114B2 ; Alphabetic # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II + 114B3..114B8 ; Alphabetic # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL +@@ -1097,6 +1116,21 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 118A0..118DF ; Alphabetic # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO + 118FF ; Alphabetic # Lo WARANG CITI OM + 11AC0..11AF8 ; Alphabetic # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL ++11C00..11C08 ; Alphabetic # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L ++11C0A..11C2E ; Alphabetic # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA ++11C2F ; Alphabetic # Mc BHAIKSUKI VOWEL SIGN AA ++11C30..11C36 ; Alphabetic # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L ++11C38..11C3D ; Alphabetic # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA ++11C3E ; Alphabetic # Mc BHAIKSUKI SIGN VISARGA ++11C40 ; Alphabetic # Lo BHAIKSUKI SIGN AVAGRAHA ++11C72..11C8F ; Alphabetic # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A ++11C92..11CA7 ; Alphabetic # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA ++11CA9 ; Alphabetic # Mc MARCHEN SUBJOINED LETTER YA ++11CAA..11CB0 ; Alphabetic # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA ++11CB1 ; Alphabetic # Mc MARCHEN VOWEL SIGN I ++11CB2..11CB3 ; Alphabetic # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E ++11CB4 ; Alphabetic # Mc MARCHEN VOWEL SIGN O ++11CB5..11CB6 ; Alphabetic # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + 12000..12399 ; Alphabetic # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U + 12400..1246E ; Alphabetic # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM + 12480..12543 ; Alphabetic # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +@@ -1114,6 +1148,9 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 16F50 ; Alphabetic # Lo MIAO LETTER NASALIZATION + 16F51..16F7E ; Alphabetic # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG + 16F93..16F9F ; Alphabetic # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; Alphabetic # Lm TANGUT ITERATION MARK ++17000..187EC ; Alphabetic # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC ++18800..18AF2 ; Alphabetic # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755 + 1B000..1B001 ; Alphabetic # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE + 1BC00..1BC6A ; Alphabetic # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M + 1BC70..1BC7C ; Alphabetic # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +@@ -1150,7 +1187,14 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 1D78A..1D7A8 ; Alphabetic # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA + 1D7AA..1D7C2 ; Alphabetic # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + 1D7C4..1D7CB ; Alphabetic # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA ++1E000..1E006 ; Alphabetic # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE ++1E008..1E018 ; Alphabetic # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU ++1E01B..1E021 ; Alphabetic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI ++1E023..1E024 ; Alphabetic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS ++1E026..1E02A ; Alphabetic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + 1E800..1E8C4 ; Alphabetic # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON ++1E900..1E943 ; Alphabetic # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA ++1E947 ; Alphabetic # Mn ADLAM HAMZA + 1EE00..1EE03 ; Alphabetic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + 1EE05..1EE1F ; Alphabetic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + 1EE21..1EE22 ; Alphabetic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +@@ -1193,7 +1237,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 2B820..2CEA1 ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 + 2F800..2FA1D ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +-# Total code points: 110943 ++# Total code points: 118240 + + # ================================================ + +@@ -1478,6 +1522,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG + 052F ; Lowercase # L& CYRILLIC SMALL LETTER EL WITH DESCENDER + 0561..0587 ; Lowercase # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN + 13F8..13FD ; Lowercase # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Lowercase # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1D00..1D2B ; Lowercase # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL + 1D2C..1D6A ; Lowercase # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI + 1D6B..1D77 ; Lowercase # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +@@ -1820,6 +1865,7 @@ FB00..FB06 ; Lowercase # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATU + FB13..FB17 ; Lowercase # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + 10428..1044F ; Lowercase # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW ++104D8..104FB ; Lowercase # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10CC0..10CF2 ; Lowercase # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US + 118C0..118DF ; Lowercase # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO + 1D41A..1D433 ; Lowercase # L& [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z +@@ -1850,8 +1896,9 @@ FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L + 1D7AA..1D7C2 ; Lowercase # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + 1D7C4..1D7C9 ; Lowercase # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL + 1D7CB ; Lowercase # L& MATHEMATICAL BOLD SMALL DIGAMMA ++1E922..1E943 ; Lowercase # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA + +-# Total code points: 2173 ++# Total code points: 2252 + + # ================================================ + +@@ -2447,11 +2494,12 @@ A7A2 ; Uppercase # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE + A7A4 ; Uppercase # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE + A7A6 ; Uppercase # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE + A7A8 ; Uppercase # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +-A7AA..A7AD ; Uppercase # L& [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT ++A7AA..A7AE ; Uppercase # L& [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B4 ; Uppercase # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA + A7B6 ; Uppercase # L& LATIN CAPITAL LETTER OMEGA + FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + 10400..10427 ; Uppercase # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW ++104B0..104D3 ; Uppercase # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA + 10C80..10CB2 ; Uppercase # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US + 118A0..118BF ; Uppercase # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO + 1D400..1D419 ; Uppercase # L& [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z +@@ -2485,11 +2533,12 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH + 1D756..1D76E ; Uppercase # L& [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA + 1D790..1D7A8 ; Uppercase # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA + 1D7CA ; Uppercase # L& MATHEMATICAL BOLD CAPITAL DIGAMMA ++1E900..1E921 ; Uppercase # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA + 1F130..1F149 ; Uppercase # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z + 1F150..1F169 ; Uppercase # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z + 1F170..1F189 ; Uppercase # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z + +-# Total code points: 1751 ++# Total code points: 1822 + + # ================================================ + +@@ -2531,6 +2580,7 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH + 10CD ; Cased # L& GEORGIAN CAPITAL LETTER AEN + 13A0..13F5 ; Cased # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV + 13F8..13FD ; Cased # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Cased # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1D00..1D2B ; Cased # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL + 1D2C..1D6A ; Cased # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI + 1D6B..1D77 ; Cased # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G +@@ -2593,7 +2643,7 @@ A722..A76F ; Cased # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN + A770 ; Cased # Lm MODIFIER LETTER US + A771..A787 ; Cased # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T + A78B..A78E ; Cased # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT +-A790..A7AD ; Cased # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; Cased # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; Cased # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F8..A7F9 ; Cased # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE + A7FA ; Cased # L& LATIN LETTER SMALL CAPITAL TURNED M +@@ -2606,6 +2656,8 @@ FB13..FB17 ; Cased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL + FF21..FF3A ; Cased # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + 10400..1044F ; Cased # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW ++104B0..104D3 ; Cased # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; Cased # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10C80..10CB2 ; Cased # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US + 10CC0..10CF2 ; Cased # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US + 118A0..118DF ; Cased # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO +@@ -2639,11 +2691,12 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN + 1D78A..1D7A8 ; Cased # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA + 1D7AA..1D7C2 ; Cased # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + 1D7C4..1D7CB ; Cased # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA ++1E900..1E943 ; Cased # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA + 1F130..1F149 ; Cased # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z + 1F150..1F169 ; Cased # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z + 1F170..1F189 ; Cased # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z + +-# Total code points: 3955 ++# Total code points: 4105 + + # ================================================ + +@@ -2716,6 +2769,8 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN + 0828 ; Case_Ignorable # Lm SAMARITAN MODIFIER LETTER I + 0829..082D ; Case_Ignorable # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA + 0859..085B ; Case_Ignorable # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK ++08D4..08E1 ; Case_Ignorable # Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA ++08E2 ; Case_Ignorable # Cf ARABIC DISPUTED END OF AYAH + 08E3..0902 ; Case_Ignorable # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + 093A ; Case_Ignorable # Mn DEVANAGARI VOWEL SIGN OE + 093C ; Case_Ignorable # Mn DEVANAGARI SIGN NUKTA +@@ -2817,6 +2872,7 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN + 180B..180D ; Case_Ignorable # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE + 180E ; Case_Ignorable # Cf MONGOLIAN VOWEL SEPARATOR + 1843 ; Case_Ignorable # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN ++1885..1886 ; Case_Ignorable # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA + 18A9 ; Case_Ignorable # Mn MONGOLIAN LETTER ALI GALI DAGALGA + 1920..1922 ; Case_Ignorable # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U + 1927..1928 ; Case_Ignorable # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +@@ -2861,7 +2917,7 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN + 1D78 ; Case_Ignorable # Lm MODIFIER LETTER CYRILLIC EN + 1D9B..1DBF ; Case_Ignorable # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA + 1DC0..1DF5 ; Case_Ignorable # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE +-1DFC..1DFF ; Case_Ignorable # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW ++1DFB..1DFF ; Case_Ignorable # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + 1FBD ; Case_Ignorable # Sk GREEK KORONIS + 1FBF..1FC1 ; Case_Ignorable # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI + 1FCD..1FCF ; Case_Ignorable # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +@@ -2919,7 +2975,7 @@ A802 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN DVISVARA + A806 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN HASANTA + A80B ; Case_Ignorable # Mn SYLOTI NAGRI SIGN ANUSVARA + A825..A826 ; Case_Ignorable # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +-A8C4 ; Case_Ignorable # Mn SAURASHTRA SIGN VIRAMA ++A8C4..A8C5 ; Case_Ignorable # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + A8E0..A8F1 ; Case_Ignorable # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + A926..A92D ; Case_Ignorable # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU + A947..A951 ; Case_Ignorable # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +@@ -2993,6 +3049,7 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI + 1122F..11231 ; Case_Ignorable # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI + 11234 ; Case_Ignorable # Mn KHOJKI SIGN ANUSVARA + 11236..11237 ; Case_Ignorable # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA ++1123E ; Case_Ignorable # Mn KHOJKI SIGN SUKUN + 112DF ; Case_Ignorable # Mn KHUDAWADI SIGN ANUSVARA + 112E3..112EA ; Case_Ignorable # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA + 11300..11301 ; Case_Ignorable # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU +@@ -3000,6 +3057,9 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI + 11340 ; Case_Ignorable # Mn GRANTHA VOWEL SIGN II + 11366..1136C ; Case_Ignorable # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + 11370..11374 ; Case_Ignorable # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA ++11438..1143F ; Case_Ignorable # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI ++11442..11444 ; Case_Ignorable # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA ++11446 ; Case_Ignorable # Mn NEWA SIGN NUKTA + 114B3..114B8 ; Case_Ignorable # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL + 114BA ; Case_Ignorable # Mn TIRHUTA VOWEL SIGN SHORT E + 114BF..114C0 ; Case_Ignorable # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA +@@ -3018,11 +3078,19 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI + 1171D..1171F ; Case_Ignorable # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA + 11722..11725 ; Case_Ignorable # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU + 11727..1172B ; Case_Ignorable # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER ++11C30..11C36 ; Case_Ignorable # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L ++11C38..11C3D ; Case_Ignorable # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA ++11C3F ; Case_Ignorable # Mn BHAIKSUKI SIGN VIRAMA ++11C92..11CA7 ; Case_Ignorable # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA ++11CAA..11CB0 ; Case_Ignorable # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA ++11CB2..11CB3 ; Case_Ignorable # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E ++11CB5..11CB6 ; Case_Ignorable # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + 16AF0..16AF4 ; Case_Ignorable # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE + 16B30..16B36 ; Case_Ignorable # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM + 16B40..16B43 ; Case_Ignorable # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM + 16F8F..16F92 ; Case_Ignorable # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + 16F93..16F9F ; Case_Ignorable # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; Case_Ignorable # Lm TANGUT ITERATION MARK + 1BC9D..1BC9E ; Case_Ignorable # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK + 1BCA0..1BCA3 ; Case_Ignorable # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + 1D167..1D169 ; Case_Ignorable # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +@@ -3037,13 +3105,19 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI + 1DA84 ; Case_Ignorable # Mn SIGNWRITING LOCATION HEAD NECK + 1DA9B..1DA9F ; Case_Ignorable # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + 1DAA1..1DAAF ; Case_Ignorable # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 ++1E000..1E006 ; Case_Ignorable # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE ++1E008..1E018 ; Case_Ignorable # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU ++1E01B..1E021 ; Case_Ignorable # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI ++1E023..1E024 ; Case_Ignorable # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS ++1E026..1E02A ; Case_Ignorable # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + 1E8D0..1E8D6 ; Case_Ignorable # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS ++1E944..1E94A ; Case_Ignorable # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA + 1F3FB..1F3FF ; Case_Ignorable # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 + E0001 ; Case_Ignorable # Cf LANGUAGE TAG + E0020..E007F ; Case_Ignorable # Cf [96] TAG SPACE..CANCEL TAG + E0100..E01EF ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +-# Total code points: 2115 ++# Total code points: 2240 + + # ================================================ + +@@ -3633,15 +3707,17 @@ A7A2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER K WITH O + A7A4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE + A7A6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE + A7A8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +-A7AA..A7AD ; Changes_When_Lowercased # L& [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT ++A7AA..A7AE ; Changes_When_Lowercased # L& [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B4 ; Changes_When_Lowercased # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA + A7B6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER OMEGA + FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + 10400..10427 ; Changes_When_Lowercased # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW ++104B0..104D3 ; Changes_When_Lowercased # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA + 10C80..10CB2 ; Changes_When_Lowercased # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US + 118A0..118BF ; Changes_When_Lowercased # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO ++1E900..1E921 ; Changes_When_Lowercased # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA + +-# Total code points: 1233 ++# Total code points: 1304 + + # ================================================ + +@@ -3800,8 +3876,7 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE + 0260..0261 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G + 0263 ; Changes_When_Uppercased # L& LATIN SMALL LETTER GAMMA + 0265..0266 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +-0268..0269 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +-026B..026C ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT ++0268..026C ; Changes_When_Uppercased # L& [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT + 026F ; Changes_When_Uppercased # L& LATIN SMALL LETTER TURNED M + 0271..0272 ; Changes_When_Uppercased # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK + 0275 ; Changes_When_Uppercased # L& LATIN SMALL LETTER BARRED O +@@ -3937,6 +4012,7 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE + 052F ; Changes_When_Uppercased # L& CYRILLIC SMALL LETTER EL WITH DESCENDER + 0561..0587 ; Changes_When_Uppercased # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN + 13F8..13FD ; Changes_When_Uppercased # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Changes_When_Uppercased # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1D79 ; Changes_When_Uppercased # L& LATIN SMALL LETTER INSULAR G + 1D7D ; Changes_When_Uppercased # L& LATIN SMALL LETTER P WITH STROKE + 1E01 ; Changes_When_Uppercased # L& LATIN SMALL LETTER A WITH RING BELOW +@@ -4253,10 +4329,12 @@ FB00..FB06 ; Changes_When_Uppercased # L& [7] LATIN SMALL LIGATURE FF..LATI + FB13..FB17 ; Changes_When_Uppercased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + 10428..1044F ; Changes_When_Uppercased # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW ++104D8..104FB ; Changes_When_Uppercased # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10CC0..10CF2 ; Changes_When_Uppercased # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US + 118C0..118DF ; Changes_When_Uppercased # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO ++1E922..1E943 ; Changes_When_Uppercased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA + +-# Total code points: 1316 ++# Total code points: 1396 + + # ================================================ + +@@ -4416,8 +4494,7 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER + 0260..0261 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G + 0263 ; Changes_When_Titlecased # L& LATIN SMALL LETTER GAMMA + 0265..0266 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +-0268..0269 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +-026B..026C ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT ++0268..026C ; Changes_When_Titlecased # L& [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT + 026F ; Changes_When_Titlecased # L& LATIN SMALL LETTER TURNED M + 0271..0272 ; Changes_When_Titlecased # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK + 0275 ; Changes_When_Titlecased # L& LATIN SMALL LETTER BARRED O +@@ -4553,6 +4630,7 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER + 052F ; Changes_When_Titlecased # L& CYRILLIC SMALL LETTER EL WITH DESCENDER + 0561..0587 ; Changes_When_Titlecased # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN + 13F8..13FD ; Changes_When_Titlecased # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Changes_When_Titlecased # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1D79 ; Changes_When_Titlecased # L& LATIN SMALL LETTER INSULAR G + 1D7D ; Changes_When_Titlecased # L& LATIN SMALL LETTER P WITH STROKE + 1E01 ; Changes_When_Titlecased # L& LATIN SMALL LETTER A WITH RING BELOW +@@ -4869,10 +4947,12 @@ FB00..FB06 ; Changes_When_Titlecased # L& [7] LATIN SMALL LIGATURE FF..LATI + FB13..FB17 ; Changes_When_Titlecased # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + FF41..FF5A ; Changes_When_Titlecased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + 10428..1044F ; Changes_When_Titlecased # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW ++104D8..104FB ; Changes_When_Titlecased # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10CC0..10CF2 ; Changes_When_Titlecased # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US + 118C0..118DF ; Changes_When_Titlecased # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO ++1E922..1E943 ; Changes_When_Titlecased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA + +-# Total code points: 1289 ++# Total code points: 1369 + + # ================================================ + +@@ -5163,6 +5243,7 @@ FF41..FF5A ; Changes_When_Titlecased # L& [26] FULLWIDTH LATIN SMALL LETTER + 10C7 ; Changes_When_Casefolded # L& GEORGIAN CAPITAL LETTER YN + 10CD ; Changes_When_Casefolded # L& GEORGIAN CAPITAL LETTER AEN + 13F8..13FD ; Changes_When_Casefolded # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Changes_When_Casefolded # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1E00 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER A WITH RING BELOW + 1E02 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER B WITH DOT ABOVE + 1E04 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER B WITH DOT BELOW +@@ -5471,7 +5552,7 @@ A7A2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER K WITH O + A7A4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE + A7A6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE + A7A8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +-A7AA..A7AD ; Changes_When_Casefolded # L& [4] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER L WITH BELT ++A7AA..A7AE ; Changes_When_Casefolded # L& [5] LATIN CAPITAL LETTER H WITH HOOK..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B4 ; Changes_When_Casefolded # L& [5] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER BETA + A7B6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER OMEGA + AB70..ABBF ; Changes_When_Casefolded # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA +@@ -5479,10 +5560,12 @@ FB00..FB06 ; Changes_When_Casefolded # L& [7] LATIN SMALL LIGATURE FF..LATI + FB13..FB17 ; Changes_When_Casefolded # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH + FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + 10400..10427 ; Changes_When_Casefolded # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW ++104B0..104D3 ; Changes_When_Casefolded # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA + 10C80..10CB2 ; Changes_When_Casefolded # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US + 118A0..118BF ; Changes_When_Casefolded # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO ++1E900..1E921 ; Changes_When_Casefolded # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA + +-# Total code points: 1297 ++# Total code points: 1377 + + # ================================================ + +@@ -5512,8 +5595,7 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE + 0260..0261 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER G WITH HOOK..LATIN SMALL LETTER SCRIPT G + 0263 ; Changes_When_Casemapped # L& LATIN SMALL LETTER GAMMA + 0265..0266 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER TURNED H..LATIN SMALL LETTER H WITH HOOK +-0268..0269 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER IOTA +-026B..026C ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER L WITH MIDDLE TILDE..LATIN SMALL LETTER L WITH BELT ++0268..026C ; Changes_When_Casemapped # L& [5] LATIN SMALL LETTER I WITH STROKE..LATIN SMALL LETTER L WITH BELT + 026F ; Changes_When_Casemapped # L& LATIN SMALL LETTER TURNED M + 0271..0272 ; Changes_When_Casemapped # L& [2] LATIN SMALL LETTER M WITH HOOK..LATIN SMALL LETTER N WITH LEFT HOOK + 0275 ; Changes_When_Casemapped # L& LATIN SMALL LETTER BARRED O +@@ -5544,6 +5626,7 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE + 10CD ; Changes_When_Casemapped # L& GEORGIAN CAPITAL LETTER AEN + 13A0..13F5 ; Changes_When_Casemapped # L& [86] CHEROKEE LETTER A..CHEROKEE LETTER MV + 13F8..13FD ; Changes_When_Casemapped # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV ++1C80..1C88 ; Changes_When_Casemapped # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1D79 ; Changes_When_Casemapped # L& LATIN SMALL LETTER INSULAR G + 1D7D ; Changes_When_Casemapped # L& LATIN SMALL LETTER P WITH STROKE + 1E00..1E9B ; Changes_When_Casemapped # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE +@@ -5592,7 +5675,7 @@ A732..A76F ; Changes_When_Casemapped # L& [62] LATIN CAPITAL LETTER AA..LATI + A779..A787 ; Changes_When_Casemapped # L& [15] LATIN CAPITAL LETTER INSULAR D..LATIN SMALL LETTER INSULAR T + A78B..A78D ; Changes_When_Casemapped # L& [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H + A790..A793 ; Changes_When_Casemapped # L& [4] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH BAR +-A796..A7AD ; Changes_When_Casemapped # L& [24] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER L WITH BELT ++A796..A7AE ; Changes_When_Casemapped # L& [25] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; Changes_When_Casemapped # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + AB53 ; Changes_When_Casemapped # L& LATIN SMALL LETTER CHI + AB70..ABBF ; Changes_When_Casemapped # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA +@@ -5601,11 +5684,14 @@ FB13..FB17 ; Changes_When_Casemapped # L& [5] ARMENIAN SMALL LIGATURE MEN N + FF21..FF3A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z + FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z + 10400..1044F ; Changes_When_Casemapped # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW ++104B0..104D3 ; Changes_When_Casemapped # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; Changes_When_Casemapped # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10C80..10CB2 ; Changes_When_Casemapped # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US + 10CC0..10CF2 ; Changes_When_Casemapped # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US + 118A0..118DF ; Changes_When_Casemapped # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO ++1E900..1E943 ; Changes_When_Casemapped # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA + +-# Total code points: 2518 ++# Total code points: 2669 + + # ================================================ + +@@ -5678,6 +5764,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER + 0828 ; ID_Start # Lm SAMARITAN MODIFIER LETTER I + 0840..0858 ; ID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN + 08A0..08B4 ; ID_Start # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW ++08B6..08BD ; ID_Start # Lo [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON + 0904..0939 ; ID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA + 093D ; ID_Start # Lo DEVANAGARI SIGN AVAGRAHA + 0950 ; ID_Start # Lo DEVANAGARI OM +@@ -5743,6 +5830,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER + 0C3D ; ID_Start # Lo TELUGU SIGN AVAGRAHA + 0C58..0C5A ; ID_Start # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA + 0C60..0C61 ; ID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL ++0C80 ; ID_Start # Lo KANNADA SIGN SPACING CANDRABINDU + 0C85..0C8C ; ID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L + 0C8E..0C90 ; ID_Start # Lo [3] KANNADA LETTER E..KANNADA LETTER AI + 0C92..0CA8 ; ID_Start # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +@@ -5757,6 +5845,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER + 0D12..0D3A ; ID_Start # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA + 0D3D ; ID_Start # Lo MALAYALAM SIGN AVAGRAHA + 0D4E ; ID_Start # Lo MALAYALAM LETTER DOT REPH ++0D54..0D56 ; ID_Start # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL + 0D5F..0D61 ; ID_Start # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL + 0D7A..0D7F ; ID_Start # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K + 0D85..0D96 ; ID_Start # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +@@ -5840,7 +5929,9 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER + 1820..1842 ; ID_Start # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI + 1843 ; ID_Start # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN + 1844..1877 ; ID_Start # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +-1880..18A8 ; ID_Start # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA ++1880..1884 ; ID_Start # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA ++1885..1886 ; ID_Start # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA ++1887..18A8 ; ID_Start # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA + 18AA ; ID_Start # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA + 18B0..18F5 ; ID_Start # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S + 1900..191E ; ID_Start # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA +@@ -5860,6 +5951,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER + 1C4D..1C4F ; ID_Start # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA + 1C5A..1C77 ; ID_Start # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH + 1C78..1C7D ; ID_Start # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD ++1C80..1C88 ; ID_Start # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1CE9..1CEC ; ID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL + 1CEE..1CF1 ; ID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA + 1CF5..1CF6 ; ID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +@@ -5976,7 +6068,7 @@ A771..A787 ; ID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER I + A788 ; ID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT + A78B..A78E ; ID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT + A78F ; ID_Start # Lo LATIN LETTER SINOLOGICAL DOT +-A790..A7AD ; ID_Start # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; ID_Start # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; ID_Start # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F7 ; ID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I + A7F8..A7F9 ; ID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +@@ -6081,6 +6173,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 103D1..103D5 ; ID_Start # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED + 10400..1044F ; ID_Start # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + 10450..1049D ; ID_Start # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO ++104B0..104D3 ; ID_Start # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; ID_Start # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10500..10527 ; ID_Start # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + 10530..10563 ; ID_Start # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW + 10600..10736 ; ID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +@@ -6142,6 +6236,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 1133D ; ID_Start # Lo GRANTHA SIGN AVAGRAHA + 11350 ; ID_Start # Lo GRANTHA OM + 1135D..11361 ; ID_Start # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL ++11400..11434 ; ID_Start # Lo [53] NEWA LETTER A..NEWA LETTER HA ++11447..1144A ; ID_Start # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI + 11480..114AF ; ID_Start # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA + 114C4..114C5 ; ID_Start # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG + 114C7 ; ID_Start # Lo TIRHUTA OM +@@ -6154,6 +6250,10 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 118A0..118DF ; ID_Start # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO + 118FF ; ID_Start # Lo WARANG CITI OM + 11AC0..11AF8 ; ID_Start # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL ++11C00..11C08 ; ID_Start # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L ++11C0A..11C2E ; ID_Start # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA ++11C40 ; ID_Start # Lo BHAIKSUKI SIGN AVAGRAHA ++11C72..11C8F ; ID_Start # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A + 12000..12399 ; ID_Start # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U + 12400..1246E ; ID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM + 12480..12543 ; ID_Start # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +@@ -6169,6 +6269,9 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 16F00..16F44 ; ID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA + 16F50 ; ID_Start # Lo MIAO LETTER NASALIZATION + 16F93..16F9F ; ID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; ID_Start # Lm TANGUT ITERATION MARK ++17000..187EC ; ID_Start # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC ++18800..18AF2 ; ID_Start # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755 + 1B000..1B001 ; ID_Start # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE + 1BC00..1BC6A ; ID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M + 1BC70..1BC7C ; ID_Start # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +@@ -6205,6 +6308,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 1D7AA..1D7C2 ; ID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + 1D7C4..1D7CB ; ID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA + 1E800..1E8C4 ; ID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON ++1E900..1E943 ; ID_Start # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA + 1EE00..1EE03 ; ID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + 1EE05..1EE1F ; ID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + 1EE21..1EE22 ; ID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +@@ -6244,7 +6348,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 2B820..2CEA1 ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 + 2F800..2FA1D ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +-# Total code points: 109830 ++# Total code points: 117007 + + # ================================================ + +@@ -6348,6 +6452,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 0840..0858 ; ID_Continue # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN + 0859..085B ; ID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK + 08A0..08B4 ; ID_Continue # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW ++08B6..08BD ; ID_Continue # Lo [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON ++08D4..08E1 ; ID_Continue # Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA + 08E3..0902 ; ID_Continue # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + 0903 ; ID_Continue # Mc DEVANAGARI SIGN VISARGA + 0904..0939 ; ID_Continue # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +@@ -6491,6 +6597,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 0C60..0C61 ; ID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL + 0C62..0C63 ; ID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL + 0C66..0C6F ; ID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE ++0C80 ; ID_Continue # Lo KANNADA SIGN SPACING CANDRABINDU + 0C81 ; ID_Continue # Mn KANNADA SIGN CANDRABINDU + 0C82..0C83 ; ID_Continue # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + 0C85..0C8C ; ID_Continue # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +@@ -6525,6 +6632,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 0D4A..0D4C ; ID_Continue # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + 0D4D ; ID_Continue # Mn MALAYALAM SIGN VIRAMA + 0D4E ; ID_Continue # Lo MALAYALAM LETTER DOT REPH ++0D54..0D56 ; ID_Continue # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL + 0D57 ; ID_Continue # Mc MALAYALAM AU LENGTH MARK + 0D5F..0D61 ; ID_Continue # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL + 0D62..0D63 ; ID_Continue # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +@@ -6682,7 +6790,9 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 1820..1842 ; ID_Continue # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI + 1843 ; ID_Continue # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN + 1844..1877 ; ID_Continue # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +-1880..18A8 ; ID_Continue # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA ++1880..1884 ; ID_Continue # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA ++1885..1886 ; ID_Continue # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA ++1887..18A8 ; ID_Continue # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA + 18A9 ; ID_Continue # Mn MONGOLIAN LETTER ALI GALI DAGALGA + 18AA ; ID_Continue # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA + 18B0..18F5 ; ID_Continue # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +@@ -6767,6 +6877,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 1C50..1C59 ; ID_Continue # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE + 1C5A..1C77 ; ID_Continue # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH + 1C78..1C7D ; ID_Continue # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD ++1C80..1C88 ; ID_Continue # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1CD0..1CD2 ; ID_Continue # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA + 1CD4..1CE0 ; ID_Continue # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + 1CE1 ; ID_Continue # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +@@ -6785,7 +6896,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL + 1D79..1D9A ; ID_Continue # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK + 1D9B..1DBF ; ID_Continue # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA + 1DC0..1DF5 ; ID_Continue # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE +-1DFC..1DFF ; ID_Continue # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW ++1DFB..1DFF ; ID_Continue # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + 1E00..1F15 ; ID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA + 1F18..1F1D ; ID_Continue # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA + 1F20..1F45 ; ID_Continue # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +@@ -6909,7 +7020,7 @@ A771..A787 ; ID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTE + A788 ; ID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT + A78B..A78E ; ID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT + A78F ; ID_Continue # Lo LATIN LETTER SINOLOGICAL DOT +-A790..A7AD ; ID_Continue # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; ID_Continue # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; ID_Continue # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F7 ; ID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I + A7F8..A7F9 ; ID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +@@ -6928,7 +7039,7 @@ A840..A873 ; ID_Continue # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDR + A880..A881 ; ID_Continue # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + A882..A8B3 ; ID_Continue # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA + A8B4..A8C3 ; ID_Continue # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +-A8C4 ; ID_Continue # Mn SAURASHTRA SIGN VIRAMA ++A8C4..A8C5 ; ID_Continue # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + A8D0..A8D9 ; ID_Continue # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE + A8E0..A8F1 ; ID_Continue # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + A8F2..A8F7 ; ID_Continue # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +@@ -7081,6 +7192,8 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 10400..1044F ; ID_Continue # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + 10450..1049D ; ID_Continue # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO + 104A0..104A9 ; ID_Continue # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE ++104B0..104D3 ; ID_Continue # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; ID_Continue # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10500..10527 ; ID_Continue # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + 10530..10563 ; ID_Continue # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW + 10600..10736 ; ID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +@@ -7164,6 +7277,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 11234 ; ID_Continue # Mn KHOJKI SIGN ANUSVARA + 11235 ; ID_Continue # Mc KHOJKI SIGN VIRAMA + 11236..11237 ; ID_Continue # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA ++1123E ; ID_Continue # Mn KHOJKI SIGN SUKUN + 11280..11286 ; ID_Continue # Lo [7] MULTANI LETTER A..MULTANI LETTER GA + 11288 ; ID_Continue # Lo MULTANI LETTER GHA + 1128A..1128D ; ID_Continue # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA +@@ -7195,6 +7309,15 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 11362..11363 ; ID_Continue # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL + 11366..1136C ; ID_Continue # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + 11370..11374 ; ID_Continue # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA ++11400..11434 ; ID_Continue # Lo [53] NEWA LETTER A..NEWA LETTER HA ++11435..11437 ; ID_Continue # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II ++11438..1143F ; ID_Continue # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI ++11440..11441 ; ID_Continue # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU ++11442..11444 ; ID_Continue # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA ++11445 ; ID_Continue # Mc NEWA SIGN VISARGA ++11446 ; ID_Continue # Mn NEWA SIGN NUKTA ++11447..1144A ; ID_Continue # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI ++11450..11459 ; ID_Continue # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE + 11480..114AF ; ID_Continue # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA + 114B0..114B2 ; ID_Continue # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II + 114B3..114B8 ; ID_Continue # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL +@@ -7245,6 +7368,23 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 118E0..118E9 ; ID_Continue # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE + 118FF ; ID_Continue # Lo WARANG CITI OM + 11AC0..11AF8 ; ID_Continue # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL ++11C00..11C08 ; ID_Continue # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L ++11C0A..11C2E ; ID_Continue # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA ++11C2F ; ID_Continue # Mc BHAIKSUKI VOWEL SIGN AA ++11C30..11C36 ; ID_Continue # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L ++11C38..11C3D ; ID_Continue # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA ++11C3E ; ID_Continue # Mc BHAIKSUKI SIGN VISARGA ++11C3F ; ID_Continue # Mn BHAIKSUKI SIGN VIRAMA ++11C40 ; ID_Continue # Lo BHAIKSUKI SIGN AVAGRAHA ++11C50..11C59 ; ID_Continue # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE ++11C72..11C8F ; ID_Continue # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A ++11C92..11CA7 ; ID_Continue # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA ++11CA9 ; ID_Continue # Mc MARCHEN SUBJOINED LETTER YA ++11CAA..11CB0 ; ID_Continue # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA ++11CB1 ; ID_Continue # Mc MARCHEN VOWEL SIGN I ++11CB2..11CB3 ; ID_Continue # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E ++11CB4 ; ID_Continue # Mc MARCHEN VOWEL SIGN O ++11CB5..11CB6 ; ID_Continue # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + 12000..12399 ; ID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U + 12400..1246E ; ID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM + 12480..12543 ; ID_Continue # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +@@ -7266,6 +7406,9 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 16F51..16F7E ; ID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG + 16F8F..16F92 ; ID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + 16F93..16F9F ; ID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; ID_Continue # Lm TANGUT ITERATION MARK ++17000..187EC ; ID_Continue # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC ++18800..18AF2 ; ID_Continue # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755 + 1B000..1B001 ; ID_Continue # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE + 1BC00..1BC6A ; ID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M + 1BC70..1BC7C ; ID_Continue # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +@@ -7316,8 +7459,16 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 1DA84 ; ID_Continue # Mn SIGNWRITING LOCATION HEAD NECK + 1DA9B..1DA9F ; ID_Continue # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + 1DAA1..1DAAF ; ID_Continue # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 ++1E000..1E006 ; ID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE ++1E008..1E018 ; ID_Continue # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU ++1E01B..1E021 ; ID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI ++1E023..1E024 ; ID_Continue # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS ++1E026..1E02A ; ID_Continue # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + 1E800..1E8C4 ; ID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON + 1E8D0..1E8D6 ; ID_Continue # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS ++1E900..1E943 ; ID_Continue # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA ++1E944..1E94A ; ID_Continue # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA ++1E950..1E959 ; ID_Continue # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE + 1EE00..1EE03 ; ID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + 1EE05..1EE1F ; ID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + 1EE21..1EE22 ; ID_Continue # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +@@ -7358,7 +7509,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN + 2F800..2FA1D ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +-# Total code points: 112352 ++# Total code points: 119691 + + # ================================================ + +@@ -7428,6 +7579,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR + 0828 ; XID_Start # Lm SAMARITAN MODIFIER LETTER I + 0840..0858 ; XID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN + 08A0..08B4 ; XID_Start # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW ++08B6..08BD ; XID_Start # Lo [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON + 0904..0939 ; XID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA + 093D ; XID_Start # Lo DEVANAGARI SIGN AVAGRAHA + 0950 ; XID_Start # Lo DEVANAGARI OM +@@ -7493,6 +7645,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR + 0C3D ; XID_Start # Lo TELUGU SIGN AVAGRAHA + 0C58..0C5A ; XID_Start # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA + 0C60..0C61 ; XID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL ++0C80 ; XID_Start # Lo KANNADA SIGN SPACING CANDRABINDU + 0C85..0C8C ; XID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L + 0C8E..0C90 ; XID_Start # Lo [3] KANNADA LETTER E..KANNADA LETTER AI + 0C92..0CA8 ; XID_Start # Lo [23] KANNADA LETTER O..KANNADA LETTER NA +@@ -7507,6 +7660,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR + 0D12..0D3A ; XID_Start # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA + 0D3D ; XID_Start # Lo MALAYALAM SIGN AVAGRAHA + 0D4E ; XID_Start # Lo MALAYALAM LETTER DOT REPH ++0D54..0D56 ; XID_Start # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL + 0D5F..0D61 ; XID_Start # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL + 0D7A..0D7F ; XID_Start # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K + 0D85..0D96 ; XID_Start # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA +@@ -7590,7 +7744,9 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR + 1820..1842 ; XID_Start # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI + 1843 ; XID_Start # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN + 1844..1877 ; XID_Start # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +-1880..18A8 ; XID_Start # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA ++1880..1884 ; XID_Start # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA ++1885..1886 ; XID_Start # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA ++1887..18A8 ; XID_Start # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA + 18AA ; XID_Start # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA + 18B0..18F5 ; XID_Start # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S + 1900..191E ; XID_Start # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA +@@ -7610,6 +7766,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR + 1C4D..1C4F ; XID_Start # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA + 1C5A..1C77 ; XID_Start # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH + 1C78..1C7D ; XID_Start # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD ++1C80..1C88 ; XID_Start # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1CE9..1CEC ; XID_Start # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL + 1CEE..1CF1 ; XID_Start # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA + 1CF5..1CF6 ; XID_Start # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA +@@ -7725,7 +7882,7 @@ A771..A787 ; XID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER + A788 ; XID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT + A78B..A78E ; XID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT + A78F ; XID_Start # Lo LATIN LETTER SINOLOGICAL DOT +-A790..A7AD ; XID_Start # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; XID_Start # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; XID_Start # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F7 ; XID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I + A7F8..A7F9 ; XID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +@@ -7835,6 +7992,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 103D1..103D5 ; XID_Start # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED + 10400..1044F ; XID_Start # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + 10450..1049D ; XID_Start # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO ++104B0..104D3 ; XID_Start # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; XID_Start # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10500..10527 ; XID_Start # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + 10530..10563 ; XID_Start # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW + 10600..10736 ; XID_Start # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +@@ -7896,6 +8055,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 1133D ; XID_Start # Lo GRANTHA SIGN AVAGRAHA + 11350 ; XID_Start # Lo GRANTHA OM + 1135D..11361 ; XID_Start # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL ++11400..11434 ; XID_Start # Lo [53] NEWA LETTER A..NEWA LETTER HA ++11447..1144A ; XID_Start # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI + 11480..114AF ; XID_Start # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA + 114C4..114C5 ; XID_Start # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG + 114C7 ; XID_Start # Lo TIRHUTA OM +@@ -7908,6 +8069,10 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 118A0..118DF ; XID_Start # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO + 118FF ; XID_Start # Lo WARANG CITI OM + 11AC0..11AF8 ; XID_Start # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL ++11C00..11C08 ; XID_Start # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L ++11C0A..11C2E ; XID_Start # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA ++11C40 ; XID_Start # Lo BHAIKSUKI SIGN AVAGRAHA ++11C72..11C8F ; XID_Start # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A + 12000..12399 ; XID_Start # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U + 12400..1246E ; XID_Start # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM + 12480..12543 ; XID_Start # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +@@ -7923,6 +8088,9 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 16F00..16F44 ; XID_Start # Lo [69] MIAO LETTER PA..MIAO LETTER HHA + 16F50 ; XID_Start # Lo MIAO LETTER NASALIZATION + 16F93..16F9F ; XID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; XID_Start # Lm TANGUT ITERATION MARK ++17000..187EC ; XID_Start # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC ++18800..18AF2 ; XID_Start # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755 + 1B000..1B001 ; XID_Start # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE + 1BC00..1BC6A ; XID_Start # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M + 1BC70..1BC7C ; XID_Start # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +@@ -7959,6 +8127,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 1D7AA..1D7C2 ; XID_Start # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA + 1D7C4..1D7CB ; XID_Start # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA + 1E800..1E8C4 ; XID_Start # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON ++1E900..1E943 ; XID_Start # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA + 1EE00..1EE03 ; XID_Start # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + 1EE05..1EE1F ; XID_Start # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + 1EE21..1EE22 ; XID_Start # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +@@ -7998,7 +8167,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 2B820..2CEA1 ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 + 2F800..2FA1D ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +-# Total code points: 109807 ++# Total code points: 116984 + + # ================================================ + +@@ -8098,6 +8267,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 0840..0858 ; XID_Continue # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN + 0859..085B ; XID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK + 08A0..08B4 ; XID_Continue # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW ++08B6..08BD ; XID_Continue # Lo [8] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON ++08D4..08E1 ; XID_Continue # Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA + 08E3..0902 ; XID_Continue # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA + 0903 ; XID_Continue # Mc DEVANAGARI SIGN VISARGA + 0904..0939 ; XID_Continue # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA +@@ -8241,6 +8412,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 0C60..0C61 ; XID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL + 0C62..0C63 ; XID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL + 0C66..0C6F ; XID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE ++0C80 ; XID_Continue # Lo KANNADA SIGN SPACING CANDRABINDU + 0C81 ; XID_Continue # Mn KANNADA SIGN CANDRABINDU + 0C82..0C83 ; XID_Continue # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA + 0C85..0C8C ; XID_Continue # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L +@@ -8275,6 +8447,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 0D4A..0D4C ; XID_Continue # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU + 0D4D ; XID_Continue # Mn MALAYALAM SIGN VIRAMA + 0D4E ; XID_Continue # Lo MALAYALAM LETTER DOT REPH ++0D54..0D56 ; XID_Continue # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL + 0D57 ; XID_Continue # Mc MALAYALAM AU LENGTH MARK + 0D5F..0D61 ; XID_Continue # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL + 0D62..0D63 ; XID_Continue # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +@@ -8432,7 +8605,9 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 1820..1842 ; XID_Continue # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI + 1843 ; XID_Continue # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN + 1844..1877 ; XID_Continue # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA +-1880..18A8 ; XID_Continue # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA ++1880..1884 ; XID_Continue # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA ++1885..1886 ; XID_Continue # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA ++1887..18A8 ; XID_Continue # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA + 18A9 ; XID_Continue # Mn MONGOLIAN LETTER ALI GALI DAGALGA + 18AA ; XID_Continue # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA + 18B0..18F5 ; XID_Continue # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S +@@ -8517,6 +8692,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 1C50..1C59 ; XID_Continue # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE + 1C5A..1C77 ; XID_Continue # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH + 1C78..1C7D ; XID_Continue # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD ++1C80..1C88 ; XID_Continue # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK + 1CD0..1CD2 ; XID_Continue # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA + 1CD4..1CE0 ; XID_Continue # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA + 1CE1 ; XID_Continue # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +@@ -8535,7 +8711,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU + 1D79..1D9A ; XID_Continue # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK + 1D9B..1DBF ; XID_Continue # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA + 1DC0..1DF5 ; XID_Continue # Mn [54] COMBINING DOTTED GRAVE ACCENT..COMBINING UP TACK ABOVE +-1DFC..1DFF ; XID_Continue # Mn [4] COMBINING DOUBLE INVERTED BREVE BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW ++1DFB..1DFF ; XID_Continue # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW + 1E00..1F15 ; XID_Continue # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA + 1F18..1F1D ; XID_Continue # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA + 1F20..1F45 ; XID_Continue # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA +@@ -8658,7 +8834,7 @@ A771..A787 ; XID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETT + A788 ; XID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT + A78B..A78E ; XID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT + A78F ; XID_Continue # Lo LATIN LETTER SINOLOGICAL DOT +-A790..A7AD ; XID_Continue # L& [30] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER L WITH BELT ++A790..A7AE ; XID_Continue # L& [31] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER SMALL CAPITAL I + A7B0..A7B7 ; XID_Continue # L& [8] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER OMEGA + A7F7 ; XID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I + A7F8..A7F9 ; XID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE +@@ -8677,7 +8853,7 @@ A840..A873 ; XID_Continue # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CAND + A880..A881 ; XID_Continue # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA + A882..A8B3 ; XID_Continue # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA + A8B4..A8C3 ; XID_Continue # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +-A8C4 ; XID_Continue # Mn SAURASHTRA SIGN VIRAMA ++A8C4..A8C5 ; XID_Continue # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU + A8D0..A8D9 ; XID_Continue # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE + A8E0..A8F1 ; XID_Continue # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA + A8F2..A8F7 ; XID_Continue # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA +@@ -8836,6 +9012,8 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 10400..1044F ; XID_Continue # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW + 10450..1049D ; XID_Continue # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO + 104A0..104A9 ; XID_Continue # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE ++104B0..104D3 ; XID_Continue # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA ++104D8..104FB ; XID_Continue # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA + 10500..10527 ; XID_Continue # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE + 10530..10563 ; XID_Continue # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW + 10600..10736 ; XID_Continue # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664 +@@ -8919,6 +9097,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 11234 ; XID_Continue # Mn KHOJKI SIGN ANUSVARA + 11235 ; XID_Continue # Mc KHOJKI SIGN VIRAMA + 11236..11237 ; XID_Continue # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA ++1123E ; XID_Continue # Mn KHOJKI SIGN SUKUN + 11280..11286 ; XID_Continue # Lo [7] MULTANI LETTER A..MULTANI LETTER GA + 11288 ; XID_Continue # Lo MULTANI LETTER GHA + 1128A..1128D ; XID_Continue # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA +@@ -8950,6 +9129,15 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 11362..11363 ; XID_Continue # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL + 11366..1136C ; XID_Continue # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX + 11370..11374 ; XID_Continue # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA ++11400..11434 ; XID_Continue # Lo [53] NEWA LETTER A..NEWA LETTER HA ++11435..11437 ; XID_Continue # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II ++11438..1143F ; XID_Continue # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI ++11440..11441 ; XID_Continue # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU ++11442..11444 ; XID_Continue # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA ++11445 ; XID_Continue # Mc NEWA SIGN VISARGA ++11446 ; XID_Continue # Mn NEWA SIGN NUKTA ++11447..1144A ; XID_Continue # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI ++11450..11459 ; XID_Continue # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE + 11480..114AF ; XID_Continue # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA + 114B0..114B2 ; XID_Continue # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II + 114B3..114B8 ; XID_Continue # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL +@@ -9000,6 +9188,23 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 118E0..118E9 ; XID_Continue # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE + 118FF ; XID_Continue # Lo WARANG CITI OM + 11AC0..11AF8 ; XID_Continue # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL ++11C00..11C08 ; XID_Continue # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L ++11C0A..11C2E ; XID_Continue # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA ++11C2F ; XID_Continue # Mc BHAIKSUKI VOWEL SIGN AA ++11C30..11C36 ; XID_Continue # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L ++11C38..11C3D ; XID_Continue # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA ++11C3E ; XID_Continue # Mc BHAIKSUKI SIGN VISARGA ++11C3F ; XID_Continue # Mn BHAIKSUKI SIGN VIRAMA ++11C40 ; XID_Continue # Lo BHAIKSUKI SIGN AVAGRAHA ++11C50..11C59 ; XID_Continue # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE ++11C72..11C8F ; XID_Continue # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A ++11C92..11CA7 ; XID_Continue # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA ++11CA9 ; XID_Continue # Mc MARCHEN SUBJOINED LETTER YA ++11CAA..11CB0 ; XID_Continue # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA ++11CB1 ; XID_Continue # Mc MARCHEN VOWEL SIGN I ++11CB2..11CB3 ; XID_Continue # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E ++11CB4 ; XID_Continue # Mc MARCHEN VOWEL SIGN O ++11CB5..11CB6 ; XID_Continue # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU + 12000..12399 ; XID_Continue # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U + 12400..1246E ; XID_Continue # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM + 12480..12543 ; XID_Continue # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU +@@ -9021,6 +9226,9 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 16F51..16F7E ; XID_Continue # Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG + 16F8F..16F92 ; XID_Continue # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW + 16F93..16F9F ; XID_Continue # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 ++16FE0 ; XID_Continue # Lm TANGUT ITERATION MARK ++17000..187EC ; XID_Continue # Lo [6125] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC ++18800..18AF2 ; XID_Continue # Lo [755] TANGUT COMPONENT-001..TANGUT COMPONENT-755 + 1B000..1B001 ; XID_Continue # Lo [2] KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE + 1BC00..1BC6A ; XID_Continue # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M + 1BC70..1BC7C ; XID_Continue # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK +@@ -9071,8 +9279,16 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 1DA84 ; XID_Continue # Mn SIGNWRITING LOCATION HEAD NECK + 1DA9B..1DA9F ; XID_Continue # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6 + 1DAA1..1DAAF ; XID_Continue # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16 ++1E000..1E006 ; XID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE ++1E008..1E018 ; XID_Continue # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU ++1E01B..1E021 ; XID_Continue # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI ++1E023..1E024 ; XID_Continue # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS ++1E026..1E02A ; XID_Continue # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA + 1E800..1E8C4 ; XID_Continue # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON + 1E8D0..1E8D6 ; XID_Continue # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS ++1E900..1E943 ; XID_Continue # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA ++1E944..1E94A ; XID_Continue # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA ++1E950..1E959 ; XID_Continue # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE + 1EE00..1EE03 ; XID_Continue # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL + 1EE05..1EE1F ; XID_Continue # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF + 1EE21..1EE22 ; XID_Continue # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM +@@ -9113,7 +9329,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA + 2F800..2FA1D ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +-# Total code points: 112333 ++# Total code points: 119672 + + # ================================================ + +@@ -9124,7 +9340,7 @@ E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTO + # + Variation_Selector + # - White_Space + # - FFF9..FFFB (Annotation Characters) +-# - 0600..0605, 06DD, 070F, 110BD (exceptional Cf characters that should be visible) ++# - 0600..0605, 06DD, 070F, 08E2, 110BD (exceptional Cf characters that should be visible) + + 00AD ; Default_Ignorable_Code_Point # Cf SOFT HYPHEN + 034F ; Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER +@@ -9186,6 +9402,7 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] ........ + 2A700..2B734;W # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +diff --git a/localedata/unicode-gen/Makefile b/localedata/unicode-gen/Makefile +index 53efcd3..ee55d92 100644 +--- a/localedata/unicode-gen/Makefile ++++ b/localedata/unicode-gen/Makefile +@@ -35,7 +35,7 @@ + # files for making modifications. + + +-UNICODE_VERSION = 8.0.0 ++UNICODE_VERSION = 9.0.0 + + PYTHON3 = python3 + WGET = wget +diff --git a/localedata/unicode-gen/UnicodeData.txt b/localedata/unicode-gen/UnicodeData.txt +index aa0e914..a756976 100644 +--- a/localedata/unicode-gen/UnicodeData.txt ++++ b/localedata/unicode-gen/UnicodeData.txt +@@ -616,7 +616,7 @@ + 0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;; + 0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197 + 0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196 +-026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;; ++026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;A7AE;;A7AE + 026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62 + 026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;A7AD;;A7AD + 026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;; +@@ -2093,6 +2093,29 @@ + 08B2;ARABIC LETTER ZAIN WITH INVERTED V ABOVE;Lo;0;AL;;;;;N;;;;; + 08B3;ARABIC LETTER AIN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; + 08B4;ARABIC LETTER KAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; ++08B6;ARABIC LETTER BEH WITH SMALL MEEM ABOVE;Lo;0;AL;;;;;N;;;;; ++08B7;ARABIC LETTER PEH WITH SMALL MEEM ABOVE;Lo;0;AL;;;;;N;;;;; ++08B8;ARABIC LETTER TEH WITH SMALL TEH ABOVE;Lo;0;AL;;;;;N;;;;; ++08B9;ARABIC LETTER REH WITH SMALL NOON ABOVE;Lo;0;AL;;;;;N;;;;; ++08BA;ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE;Lo;0;AL;;;;;N;;;;; ++08BB;ARABIC LETTER AFRICAN FEH;Lo;0;AL;;;;;N;;;;; ++08BC;ARABIC LETTER AFRICAN QAF;Lo;0;AL;;;;;N;;;;; ++08BD;ARABIC LETTER AFRICAN NOON;Lo;0;AL;;;;;N;;;;; ++08D4;ARABIC SMALL HIGH WORD AR-RUB;Mn;230;NSM;;;;;N;;;;; ++08D5;ARABIC SMALL HIGH SAD;Mn;230;NSM;;;;;N;;;;; ++08D6;ARABIC SMALL HIGH AIN;Mn;230;NSM;;;;;N;;;;; ++08D7;ARABIC SMALL HIGH QAF;Mn;230;NSM;;;;;N;;;;; ++08D8;ARABIC SMALL HIGH NOON WITH KASRA;Mn;230;NSM;;;;;N;;;;; ++08D9;ARABIC SMALL LOW NOON WITH KASRA;Mn;230;NSM;;;;;N;;;;; ++08DA;ARABIC SMALL HIGH WORD ATH-THALATHA;Mn;230;NSM;;;;;N;;;;; ++08DB;ARABIC SMALL HIGH WORD AS-SAJDA;Mn;230;NSM;;;;;N;;;;; ++08DC;ARABIC SMALL HIGH WORD AN-NISF;Mn;230;NSM;;;;;N;;;;; ++08DD;ARABIC SMALL HIGH WORD SAKTA;Mn;230;NSM;;;;;N;;;;; ++08DE;ARABIC SMALL HIGH WORD QIF;Mn;230;NSM;;;;;N;;;;; ++08DF;ARABIC SMALL HIGH WORD WAQFA;Mn;230;NSM;;;;;N;;;;; ++08E0;ARABIC SMALL HIGH FOOTNOTE MARKER;Mn;230;NSM;;;;;N;;;;; ++08E1;ARABIC SMALL HIGH SIGN SAFHA;Mn;230;NSM;;;;;N;;;;; ++08E2;ARABIC DISPUTED END OF AYAH;Cf;0;AN;;;;;N;;;;; + 08E3;ARABIC TURNED DAMMA BELOW;Mn;220;NSM;;;;;N;;;;; + 08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;; + 08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;; +@@ -2765,6 +2788,7 @@ + 0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;; + 0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;; + 0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;; ++0C80;KANNADA SIGN SPACING CANDRABINDU;Lo;0;L;;;;;N;;;;; + 0C81;KANNADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; + 0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; + 0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; +@@ -2923,7 +2947,18 @@ + 0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;; + 0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; + 0D4E;MALAYALAM LETTER DOT REPH;Lo;0;L;;;;;N;;;;; ++0D4F;MALAYALAM SIGN PARA;So;0;L;;;;;N;;;;; ++0D54;MALAYALAM LETTER CHILLU M;Lo;0;L;;;;;N;;;;; ++0D55;MALAYALAM LETTER CHILLU Y;Lo;0;L;;;;;N;;;;; ++0D56;MALAYALAM LETTER CHILLU LLL;Lo;0;L;;;;;N;;;;; + 0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;; ++0D58;MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;; ++0D59;MALAYALAM FRACTION ONE FORTIETH;No;0;L;;;;1/40;N;;;;; ++0D5A;MALAYALAM FRACTION THREE EIGHTIETHS;No;0;L;;;;3/80;N;;;;; ++0D5B;MALAYALAM FRACTION ONE TWENTIETH;No;0;L;;;;1/20;N;;;;; ++0D5C;MALAYALAM FRACTION ONE TENTH;No;0;L;;;;1/10;N;;;;; ++0D5D;MALAYALAM FRACTION THREE TWENTIETHS;No;0;L;;;;3/20;N;;;;; ++0D5E;MALAYALAM FRACTION ONE FIFTH;No;0;L;;;;1/5;N;;;;; + 0D5F;MALAYALAM LETTER ARCHAIC II;Lo;0;L;;;;;N;;;;; + 0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; + 0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; +@@ -2945,6 +2980,9 @@ + 0D73;MALAYALAM FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; + 0D74;MALAYALAM FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; + 0D75;MALAYALAM FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; ++0D76;MALAYALAM FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;; ++0D77;MALAYALAM FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;; ++0D78;MALAYALAM FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;; + 0D79;MALAYALAM DATE MARK;So;0;L;;;;;N;;;;; + 0D7A;MALAYALAM LETTER CHILLU NN;Lo;0;L;;;;;N;;;;; + 0D7B;MALAYALAM LETTER CHILLU N;Lo;0;L;;;;;N;;;;; +@@ -5458,8 +5496,8 @@ + 1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;; + 1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;; + 1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;; +-1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;; +-1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;; ++1885;MONGOLIAN LETTER ALI GALI BALUDA;Mn;0;NSM;;;;;N;;;;; ++1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Mn;0;NSM;;;;;N;;;;; + 1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;; + 1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;; + 1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;; +@@ -6319,6 +6357,15 @@ + 1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;; + 1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;; + 1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;; ++1C80;CYRILLIC SMALL LETTER ROUNDED VE;Ll;0;L;;;;;N;;;0412;;0412 ++1C81;CYRILLIC SMALL LETTER LONG-LEGGED DE;Ll;0;L;;;;;N;;;0414;;0414 ++1C82;CYRILLIC SMALL LETTER NARROW O;Ll;0;L;;;;;N;;;041E;;041E ++1C83;CYRILLIC SMALL LETTER WIDE ES;Ll;0;L;;;;;N;;;0421;;0421 ++1C84;CYRILLIC SMALL LETTER TALL TE;Ll;0;L;;;;;N;;;0422;;0422 ++1C85;CYRILLIC SMALL LETTER THREE-LEGGED TE;Ll;0;L;;;;;N;;;0422;;0422 ++1C86;CYRILLIC SMALL LETTER TALL HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A ++1C87;CYRILLIC SMALL LETTER TALL YAT;Ll;0;L;;;;;N;;;0462;;0462 ++1C88;CYRILLIC SMALL LETTER UNBLENDED UK;Ll;0;L;;;;;N;;;A64A;;A64A + 1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;; + 1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;; + 1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;; +@@ -6614,6 +6661,7 @@ + 1DF3;COMBINING LATIN SMALL LETTER O WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;; + 1DF4;COMBINING LATIN SMALL LETTER U WITH DIAERESIS;Mn;230;NSM;;;;;N;;;;; + 1DF5;COMBINING UP TACK ABOVE;Mn;230;NSM;;;;;N;;;;; ++1DFB;COMBINING DELETION MARK;Mn;230;NSM;;;;;N;;;;; + 1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;; + 1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;; + 1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; +@@ -8083,6 +8131,10 @@ + 23F8;DOUBLE VERTICAL BAR;So;0;ON;;;;;N;;;;; + 23F9;BLACK SQUARE FOR STOP;So;0;ON;;;;;N;;;;; + 23FA;BLACK CIRCLE FOR RECORD;So;0;ON;;;;;N;;;;; ++23FB;POWER SYMBOL;So;0;ON;;;;;N;;;;; ++23FC;POWER ON-OFF SYMBOL;So;0;ON;;;;;N;;;;; ++23FD;POWER ON SYMBOL;So;0;ON;;;;;N;;;;; ++23FE;POWER SLEEP SYMBOL;So;0;ON;;;;;N;;;;; + 2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;; + 2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;; + 2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;; +@@ -10561,6 +10613,8 @@ + 2E40;DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;; + 2E41;REVERSED COMMA;Po;0;ON;;;;;N;;;;; + 2E42;DOUBLE LOW-REVERSED-9 QUOTATION MARK;Ps;0;ON;;;;;N;;;;; ++2E43;DASH WITH LEFT UPTURN;Po;0;ON;;;;;N;;;;; ++2E44;DOUBLE SUSPENSION MARK;Po;0;ON;;;;;N;;;;; + 2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;; + 2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;; + 2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;; +@@ -13889,6 +13943,7 @@ A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266; + A7AB;LATIN CAPITAL LETTER REVERSED OPEN E;Lu;0;L;;;;;N;;;;025C; + A7AC;LATIN CAPITAL LETTER SCRIPT G;Lu;0;L;;;;;N;;;;0261; + A7AD;LATIN CAPITAL LETTER L WITH BELT;Lu;0;L;;;;;N;;;;026C; ++A7AE;LATIN CAPITAL LETTER SMALL CAPITAL I;Lu;0;L;;;;;N;;;;026A; + A7B0;LATIN CAPITAL LETTER TURNED K;Lu;0;L;;;;;N;;;;029E; + A7B1;LATIN CAPITAL LETTER TURNED T;Lu;0;L;;;;;N;;;;0287; + A7B2;LATIN CAPITAL LETTER J WITH CROSSED-TAIL;Lu;0;L;;;;;N;;;;029D; +@@ -14085,6 +14140,7 @@ A8C1;SAURASHTRA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; + A8C2;SAURASHTRA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; + A8C3;SAURASHTRA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; + A8C4;SAURASHTRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; ++A8C5;SAURASHTRA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; + A8CE;SAURASHTRA DANDA;Po;0;L;;;;;N;;;;; + A8CF;SAURASHTRA DOUBLE DANDA;Po;0;L;;;;;N;;;;; + A8D0;SAURASHTRA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +@@ -16834,6 +16890,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;; + 1018B;GREEK ONE QUARTER SIGN;No;0;ON;;;;1/4;N;;;;; + 1018C;GREEK SINUSOID SIGN;So;0;ON;;;;;N;;;;; ++1018D;GREEK INDICTION SIGN;So;0;L;;;;;N;;;;; ++1018E;NOMISMA SIGN;So;0;L;;;;;N;;;;; + 10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;; + 10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;; + 10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;; +@@ -17354,6 +17412,78 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; + 104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; + 104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; ++104B0;OSAGE CAPITAL LETTER A;Lu;0;L;;;;;N;;;;104D8; ++104B1;OSAGE CAPITAL LETTER AI;Lu;0;L;;;;;N;;;;104D9; ++104B2;OSAGE CAPITAL LETTER AIN;Lu;0;L;;;;;N;;;;104DA; ++104B3;OSAGE CAPITAL LETTER AH;Lu;0;L;;;;;N;;;;104DB; ++104B4;OSAGE CAPITAL LETTER BRA;Lu;0;L;;;;;N;;;;104DC; ++104B5;OSAGE CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;104DD; ++104B6;OSAGE CAPITAL LETTER EHCHA;Lu;0;L;;;;;N;;;;104DE; ++104B7;OSAGE CAPITAL LETTER E;Lu;0;L;;;;;N;;;;104DF; ++104B8;OSAGE CAPITAL LETTER EIN;Lu;0;L;;;;;N;;;;104E0; ++104B9;OSAGE CAPITAL LETTER HA;Lu;0;L;;;;;N;;;;104E1; ++104BA;OSAGE CAPITAL LETTER HYA;Lu;0;L;;;;;N;;;;104E2; ++104BB;OSAGE CAPITAL LETTER I;Lu;0;L;;;;;N;;;;104E3; ++104BC;OSAGE CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;104E4; ++104BD;OSAGE CAPITAL LETTER EHKA;Lu;0;L;;;;;N;;;;104E5; ++104BE;OSAGE CAPITAL LETTER KYA;Lu;0;L;;;;;N;;;;104E6; ++104BF;OSAGE CAPITAL LETTER LA;Lu;0;L;;;;;N;;;;104E7; ++104C0;OSAGE CAPITAL LETTER MA;Lu;0;L;;;;;N;;;;104E8; ++104C1;OSAGE CAPITAL LETTER NA;Lu;0;L;;;;;N;;;;104E9; ++104C2;OSAGE CAPITAL LETTER O;Lu;0;L;;;;;N;;;;104EA; ++104C3;OSAGE CAPITAL LETTER OIN;Lu;0;L;;;;;N;;;;104EB; ++104C4;OSAGE CAPITAL LETTER PA;Lu;0;L;;;;;N;;;;104EC; ++104C5;OSAGE CAPITAL LETTER EHPA;Lu;0;L;;;;;N;;;;104ED; ++104C6;OSAGE CAPITAL LETTER SA;Lu;0;L;;;;;N;;;;104EE; ++104C7;OSAGE CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;104EF; ++104C8;OSAGE CAPITAL LETTER TA;Lu;0;L;;;;;N;;;;104F0; ++104C9;OSAGE CAPITAL LETTER EHTA;Lu;0;L;;;;;N;;;;104F1; ++104CA;OSAGE CAPITAL LETTER TSA;Lu;0;L;;;;;N;;;;104F2; ++104CB;OSAGE CAPITAL LETTER EHTSA;Lu;0;L;;;;;N;;;;104F3; ++104CC;OSAGE CAPITAL LETTER TSHA;Lu;0;L;;;;;N;;;;104F4; ++104CD;OSAGE CAPITAL LETTER DHA;Lu;0;L;;;;;N;;;;104F5; ++104CE;OSAGE CAPITAL LETTER U;Lu;0;L;;;;;N;;;;104F6; ++104CF;OSAGE CAPITAL LETTER WA;Lu;0;L;;;;;N;;;;104F7; ++104D0;OSAGE CAPITAL LETTER KHA;Lu;0;L;;;;;N;;;;104F8; ++104D1;OSAGE CAPITAL LETTER GHA;Lu;0;L;;;;;N;;;;104F9; ++104D2;OSAGE CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;104FA; ++104D3;OSAGE CAPITAL LETTER ZHA;Lu;0;L;;;;;N;;;;104FB; ++104D8;OSAGE SMALL LETTER A;Ll;0;L;;;;;N;;;104B0;;104B0 ++104D9;OSAGE SMALL LETTER AI;Ll;0;L;;;;;N;;;104B1;;104B1 ++104DA;OSAGE SMALL LETTER AIN;Ll;0;L;;;;;N;;;104B2;;104B2 ++104DB;OSAGE SMALL LETTER AH;Ll;0;L;;;;;N;;;104B3;;104B3 ++104DC;OSAGE SMALL LETTER BRA;Ll;0;L;;;;;N;;;104B4;;104B4 ++104DD;OSAGE SMALL LETTER CHA;Ll;0;L;;;;;N;;;104B5;;104B5 ++104DE;OSAGE SMALL LETTER EHCHA;Ll;0;L;;;;;N;;;104B6;;104B6 ++104DF;OSAGE SMALL LETTER E;Ll;0;L;;;;;N;;;104B7;;104B7 ++104E0;OSAGE SMALL LETTER EIN;Ll;0;L;;;;;N;;;104B8;;104B8 ++104E1;OSAGE SMALL LETTER HA;Ll;0;L;;;;;N;;;104B9;;104B9 ++104E2;OSAGE SMALL LETTER HYA;Ll;0;L;;;;;N;;;104BA;;104BA ++104E3;OSAGE SMALL LETTER I;Ll;0;L;;;;;N;;;104BB;;104BB ++104E4;OSAGE SMALL LETTER KA;Ll;0;L;;;;;N;;;104BC;;104BC ++104E5;OSAGE SMALL LETTER EHKA;Ll;0;L;;;;;N;;;104BD;;104BD ++104E6;OSAGE SMALL LETTER KYA;Ll;0;L;;;;;N;;;104BE;;104BE ++104E7;OSAGE SMALL LETTER LA;Ll;0;L;;;;;N;;;104BF;;104BF ++104E8;OSAGE SMALL LETTER MA;Ll;0;L;;;;;N;;;104C0;;104C0 ++104E9;OSAGE SMALL LETTER NA;Ll;0;L;;;;;N;;;104C1;;104C1 ++104EA;OSAGE SMALL LETTER O;Ll;0;L;;;;;N;;;104C2;;104C2 ++104EB;OSAGE SMALL LETTER OIN;Ll;0;L;;;;;N;;;104C3;;104C3 ++104EC;OSAGE SMALL LETTER PA;Ll;0;L;;;;;N;;;104C4;;104C4 ++104ED;OSAGE SMALL LETTER EHPA;Ll;0;L;;;;;N;;;104C5;;104C5 ++104EE;OSAGE SMALL LETTER SA;Ll;0;L;;;;;N;;;104C6;;104C6 ++104EF;OSAGE SMALL LETTER SHA;Ll;0;L;;;;;N;;;104C7;;104C7 ++104F0;OSAGE SMALL LETTER TA;Ll;0;L;;;;;N;;;104C8;;104C8 ++104F1;OSAGE SMALL LETTER EHTA;Ll;0;L;;;;;N;;;104C9;;104C9 ++104F2;OSAGE SMALL LETTER TSA;Ll;0;L;;;;;N;;;104CA;;104CA ++104F3;OSAGE SMALL LETTER EHTSA;Ll;0;L;;;;;N;;;104CB;;104CB ++104F4;OSAGE SMALL LETTER TSHA;Ll;0;L;;;;;N;;;104CC;;104CC ++104F5;OSAGE SMALL LETTER DHA;Ll;0;L;;;;;N;;;104CD;;104CD ++104F6;OSAGE SMALL LETTER U;Ll;0;L;;;;;N;;;104CE;;104CE ++104F7;OSAGE SMALL LETTER WA;Ll;0;L;;;;;N;;;104CF;;104CF ++104F8;OSAGE SMALL LETTER KHA;Ll;0;L;;;;;N;;;104D0;;104D0 ++104F9;OSAGE SMALL LETTER GHA;Ll;0;L;;;;;N;;;104D1;;104D1 ++104FA;OSAGE SMALL LETTER ZA;Ll;0;L;;;;;N;;;104D2;;104D2 ++104FB;OSAGE SMALL LETTER ZHA;Ll;0;L;;;;;N;;;104D3;;104D3 + 10500;ELBASAN LETTER A;Lo;0;L;;;;;N;;;;; + 10501;ELBASAN LETTER BE;Lo;0;L;;;;;N;;;;; + 10502;ELBASAN LETTER CE;Lo;0;L;;;;;N;;;;; +@@ -19180,6 +19310,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1123B;KHOJKI SECTION MARK;Po;0;L;;;;;N;;;;; + 1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;; + 1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; ++1123E;KHOJKI SIGN SUKUN;Mn;0;NSM;;;;;N;;;;; + 11280;MULTANI LETTER A;Lo;0;L;;;;;N;;;;; + 11281;MULTANI LETTER I;Lo;0;L;;;;;N;;;;; + 11282;MULTANI LETTER U;Lo;0;L;;;;;N;;;;; +@@ -19372,6 +19503,98 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 11372;COMBINING GRANTHA LETTER NA;Mn;230;NSM;;;;;N;;;;; + 11373;COMBINING GRANTHA LETTER VI;Mn;230;NSM;;;;;N;;;;; + 11374;COMBINING GRANTHA LETTER PA;Mn;230;NSM;;;;;N;;;;; ++11400;NEWA LETTER A;Lo;0;L;;;;;N;;;;; ++11401;NEWA LETTER AA;Lo;0;L;;;;;N;;;;; ++11402;NEWA LETTER I;Lo;0;L;;;;;N;;;;; ++11403;NEWA LETTER II;Lo;0;L;;;;;N;;;;; ++11404;NEWA LETTER U;Lo;0;L;;;;;N;;;;; ++11405;NEWA LETTER UU;Lo;0;L;;;;;N;;;;; ++11406;NEWA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; ++11407;NEWA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; ++11408;NEWA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; ++11409;NEWA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; ++1140A;NEWA LETTER E;Lo;0;L;;;;;N;;;;; ++1140B;NEWA LETTER AI;Lo;0;L;;;;;N;;;;; ++1140C;NEWA LETTER O;Lo;0;L;;;;;N;;;;; ++1140D;NEWA LETTER AU;Lo;0;L;;;;;N;;;;; ++1140E;NEWA LETTER KA;Lo;0;L;;;;;N;;;;; ++1140F;NEWA LETTER KHA;Lo;0;L;;;;;N;;;;; ++11410;NEWA LETTER GA;Lo;0;L;;;;;N;;;;; ++11411;NEWA LETTER GHA;Lo;0;L;;;;;N;;;;; ++11412;NEWA LETTER NGA;Lo;0;L;;;;;N;;;;; ++11413;NEWA LETTER NGHA;Lo;0;L;;;;;N;;;;; ++11414;NEWA LETTER CA;Lo;0;L;;;;;N;;;;; ++11415;NEWA LETTER CHA;Lo;0;L;;;;;N;;;;; ++11416;NEWA LETTER JA;Lo;0;L;;;;;N;;;;; ++11417;NEWA LETTER JHA;Lo;0;L;;;;;N;;;;; ++11418;NEWA LETTER NYA;Lo;0;L;;;;;N;;;;; ++11419;NEWA LETTER NYHA;Lo;0;L;;;;;N;;;;; ++1141A;NEWA LETTER TTA;Lo;0;L;;;;;N;;;;; ++1141B;NEWA LETTER TTHA;Lo;0;L;;;;;N;;;;; ++1141C;NEWA LETTER DDA;Lo;0;L;;;;;N;;;;; ++1141D;NEWA LETTER DDHA;Lo;0;L;;;;;N;;;;; ++1141E;NEWA LETTER NNA;Lo;0;L;;;;;N;;;;; ++1141F;NEWA LETTER TA;Lo;0;L;;;;;N;;;;; ++11420;NEWA LETTER THA;Lo;0;L;;;;;N;;;;; ++11421;NEWA LETTER DA;Lo;0;L;;;;;N;;;;; ++11422;NEWA LETTER DHA;Lo;0;L;;;;;N;;;;; ++11423;NEWA LETTER NA;Lo;0;L;;;;;N;;;;; ++11424;NEWA LETTER NHA;Lo;0;L;;;;;N;;;;; ++11425;NEWA LETTER PA;Lo;0;L;;;;;N;;;;; ++11426;NEWA LETTER PHA;Lo;0;L;;;;;N;;;;; ++11427;NEWA LETTER BA;Lo;0;L;;;;;N;;;;; ++11428;NEWA LETTER BHA;Lo;0;L;;;;;N;;;;; ++11429;NEWA LETTER MA;Lo;0;L;;;;;N;;;;; ++1142A;NEWA LETTER MHA;Lo;0;L;;;;;N;;;;; ++1142B;NEWA LETTER YA;Lo;0;L;;;;;N;;;;; ++1142C;NEWA LETTER RA;Lo;0;L;;;;;N;;;;; ++1142D;NEWA LETTER RHA;Lo;0;L;;;;;N;;;;; ++1142E;NEWA LETTER LA;Lo;0;L;;;;;N;;;;; ++1142F;NEWA LETTER LHA;Lo;0;L;;;;;N;;;;; ++11430;NEWA LETTER WA;Lo;0;L;;;;;N;;;;; ++11431;NEWA LETTER SHA;Lo;0;L;;;;;N;;;;; ++11432;NEWA LETTER SSA;Lo;0;L;;;;;N;;;;; ++11433;NEWA LETTER SA;Lo;0;L;;;;;N;;;;; ++11434;NEWA LETTER HA;Lo;0;L;;;;;N;;;;; ++11435;NEWA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; ++11436;NEWA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; ++11437;NEWA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; ++11438;NEWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; ++11439;NEWA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; ++1143A;NEWA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; ++1143B;NEWA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; ++1143C;NEWA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; ++1143D;NEWA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; ++1143E;NEWA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; ++1143F;NEWA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; ++11440;NEWA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; ++11441;NEWA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; ++11442;NEWA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; ++11443;NEWA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; ++11444;NEWA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; ++11445;NEWA SIGN VISARGA;Mc;0;L;;;;;N;;;;; ++11446;NEWA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; ++11447;NEWA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; ++11448;NEWA SIGN FINAL ANUSVARA;Lo;0;L;;;;;N;;;;; ++11449;NEWA OM;Lo;0;L;;;;;N;;;;; ++1144A;NEWA SIDDHI;Lo;0;L;;;;;N;;;;; ++1144B;NEWA DANDA;Po;0;L;;;;;N;;;;; ++1144C;NEWA DOUBLE DANDA;Po;0;L;;;;;N;;;;; ++1144D;NEWA COMMA;Po;0;L;;;;;N;;;;; ++1144E;NEWA GAP FILLER;Po;0;L;;;;;N;;;;; ++1144F;NEWA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; ++11450;NEWA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; ++11451;NEWA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; ++11452;NEWA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; ++11453;NEWA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; ++11454;NEWA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; ++11455;NEWA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; ++11456;NEWA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; ++11457;NEWA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; ++11458;NEWA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; ++11459;NEWA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; ++1145B;NEWA PLACEHOLDER MARK;Po;0;L;;;;;N;;;;; ++1145D;NEWA INSERTION SIGN;Po;0;L;;;;;N;;;;; + 11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;; + 11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;; + 11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;; +@@ -19625,6 +19848,19 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 11657;MODI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; + 11658;MODI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; + 11659;MODI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; ++11660;MONGOLIAN BIRGA WITH ORNAMENT;Po;0;ON;;;;;N;;;;; ++11661;MONGOLIAN ROTATED BIRGA;Po;0;ON;;;;;N;;;;; ++11662;MONGOLIAN DOUBLE BIRGA WITH ORNAMENT;Po;0;ON;;;;;N;;;;; ++11663;MONGOLIAN TRIPLE BIRGA WITH ORNAMENT;Po;0;ON;;;;;N;;;;; ++11664;MONGOLIAN BIRGA WITH DOUBLE ORNAMENT;Po;0;ON;;;;;N;;;;; ++11665;MONGOLIAN ROTATED BIRGA WITH ORNAMENT;Po;0;ON;;;;;N;;;;; ++11666;MONGOLIAN ROTATED BIRGA WITH DOUBLE ORNAMENT;Po;0;ON;;;;;N;;;;; ++11667;MONGOLIAN INVERTED BIRGA;Po;0;ON;;;;;N;;;;; ++11668;MONGOLIAN INVERTED BIRGA WITH DOUBLE ORNAMENT;Po;0;ON;;;;;N;;;;; ++11669;MONGOLIAN SWIRL BIRGA;Po;0;ON;;;;;N;;;;; ++1166A;MONGOLIAN SWIRL BIRGA WITH ORNAMENT;Po;0;ON;;;;;N;;;;; ++1166B;MONGOLIAN SWIRL BIRGA WITH DOUBLE ORNAMENT;Po;0;ON;;;;;N;;;;; ++1166C;MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT;Po;0;ON;;;;;N;;;;; + 11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;; + 11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;; + 11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;; +@@ -19889,6 +20125,171 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;; + 11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;; + 11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;; ++11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;; ++11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;; ++11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;; ++11C03;BHAIKSUKI LETTER II;Lo;0;L;;;;;N;;;;; ++11C04;BHAIKSUKI LETTER U;Lo;0;L;;;;;N;;;;; ++11C05;BHAIKSUKI LETTER UU;Lo;0;L;;;;;N;;;;; ++11C06;BHAIKSUKI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; ++11C07;BHAIKSUKI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; ++11C08;BHAIKSUKI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; ++11C0A;BHAIKSUKI LETTER E;Lo;0;L;;;;;N;;;;; ++11C0B;BHAIKSUKI LETTER AI;Lo;0;L;;;;;N;;;;; ++11C0C;BHAIKSUKI LETTER O;Lo;0;L;;;;;N;;;;; ++11C0D;BHAIKSUKI LETTER AU;Lo;0;L;;;;;N;;;;; ++11C0E;BHAIKSUKI LETTER KA;Lo;0;L;;;;;N;;;;; ++11C0F;BHAIKSUKI LETTER KHA;Lo;0;L;;;;;N;;;;; ++11C10;BHAIKSUKI LETTER GA;Lo;0;L;;;;;N;;;;; ++11C11;BHAIKSUKI LETTER GHA;Lo;0;L;;;;;N;;;;; ++11C12;BHAIKSUKI LETTER NGA;Lo;0;L;;;;;N;;;;; ++11C13;BHAIKSUKI LETTER CA;Lo;0;L;;;;;N;;;;; ++11C14;BHAIKSUKI LETTER CHA;Lo;0;L;;;;;N;;;;; ++11C15;BHAIKSUKI LETTER JA;Lo;0;L;;;;;N;;;;; ++11C16;BHAIKSUKI LETTER JHA;Lo;0;L;;;;;N;;;;; ++11C17;BHAIKSUKI LETTER NYA;Lo;0;L;;;;;N;;;;; ++11C18;BHAIKSUKI LETTER TTA;Lo;0;L;;;;;N;;;;; ++11C19;BHAIKSUKI LETTER TTHA;Lo;0;L;;;;;N;;;;; ++11C1A;BHAIKSUKI LETTER DDA;Lo;0;L;;;;;N;;;;; ++11C1B;BHAIKSUKI LETTER DDHA;Lo;0;L;;;;;N;;;;; ++11C1C;BHAIKSUKI LETTER NNA;Lo;0;L;;;;;N;;;;; ++11C1D;BHAIKSUKI LETTER TA;Lo;0;L;;;;;N;;;;; ++11C1E;BHAIKSUKI LETTER THA;Lo;0;L;;;;;N;;;;; ++11C1F;BHAIKSUKI LETTER DA;Lo;0;L;;;;;N;;;;; ++11C20;BHAIKSUKI LETTER DHA;Lo;0;L;;;;;N;;;;; ++11C21;BHAIKSUKI LETTER NA;Lo;0;L;;;;;N;;;;; ++11C22;BHAIKSUKI LETTER PA;Lo;0;L;;;;;N;;;;; ++11C23;BHAIKSUKI LETTER PHA;Lo;0;L;;;;;N;;;;; ++11C24;BHAIKSUKI LETTER BA;Lo;0;L;;;;;N;;;;; ++11C25;BHAIKSUKI LETTER BHA;Lo;0;L;;;;;N;;;;; ++11C26;BHAIKSUKI LETTER MA;Lo;0;L;;;;;N;;;;; ++11C27;BHAIKSUKI LETTER YA;Lo;0;L;;;;;N;;;;; ++11C28;BHAIKSUKI LETTER RA;Lo;0;L;;;;;N;;;;; ++11C29;BHAIKSUKI LETTER LA;Lo;0;L;;;;;N;;;;; ++11C2A;BHAIKSUKI LETTER VA;Lo;0;L;;;;;N;;;;; ++11C2B;BHAIKSUKI LETTER SHA;Lo;0;L;;;;;N;;;;; ++11C2C;BHAIKSUKI LETTER SSA;Lo;0;L;;;;;N;;;;; ++11C2D;BHAIKSUKI LETTER SA;Lo;0;L;;;;;N;;;;; ++11C2E;BHAIKSUKI LETTER HA;Lo;0;L;;;;;N;;;;; ++11C2F;BHAIKSUKI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; ++11C30;BHAIKSUKI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; ++11C31;BHAIKSUKI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; ++11C32;BHAIKSUKI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; ++11C33;BHAIKSUKI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; ++11C34;BHAIKSUKI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; ++11C35;BHAIKSUKI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; ++11C36;BHAIKSUKI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; ++11C38;BHAIKSUKI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; ++11C39;BHAIKSUKI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; ++11C3A;BHAIKSUKI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; ++11C3B;BHAIKSUKI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; ++11C3C;BHAIKSUKI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; ++11C3D;BHAIKSUKI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; ++11C3E;BHAIKSUKI SIGN VISARGA;Mc;0;L;;;;;N;;;;; ++11C3F;BHAIKSUKI SIGN VIRAMA;Mn;9;L;;;;;N;;;;; ++11C40;BHAIKSUKI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; ++11C41;BHAIKSUKI DANDA;Po;0;L;;;;;N;;;;; ++11C42;BHAIKSUKI DOUBLE DANDA;Po;0;L;;;;;N;;;;; ++11C43;BHAIKSUKI WORD SEPARATOR;Po;0;L;;;;;N;;;;; ++11C44;BHAIKSUKI GAP FILLER-1;Po;0;L;;;;;N;;;;; ++11C45;BHAIKSUKI GAP FILLER-2;Po;0;L;;;;;N;;;;; ++11C50;BHAIKSUKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; ++11C51;BHAIKSUKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; ++11C52;BHAIKSUKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; ++11C53;BHAIKSUKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; ++11C54;BHAIKSUKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; ++11C55;BHAIKSUKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; ++11C56;BHAIKSUKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; ++11C57;BHAIKSUKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; ++11C58;BHAIKSUKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; ++11C59;BHAIKSUKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; ++11C5A;BHAIKSUKI NUMBER ONE;No;0;L;;;;1;N;;;;; ++11C5B;BHAIKSUKI NUMBER TWO;No;0;L;;;;2;N;;;;; ++11C5C;BHAIKSUKI NUMBER THREE;No;0;L;;;;3;N;;;;; ++11C5D;BHAIKSUKI NUMBER FOUR;No;0;L;;;;4;N;;;;; ++11C5E;BHAIKSUKI NUMBER FIVE;No;0;L;;;;5;N;;;;; ++11C5F;BHAIKSUKI NUMBER SIX;No;0;L;;;;6;N;;;;; ++11C60;BHAIKSUKI NUMBER SEVEN;No;0;L;;;;7;N;;;;; ++11C61;BHAIKSUKI NUMBER EIGHT;No;0;L;;;;8;N;;;;; ++11C62;BHAIKSUKI NUMBER NINE;No;0;L;;;;9;N;;;;; ++11C63;BHAIKSUKI NUMBER TEN;No;0;L;;;;10;N;;;;; ++11C64;BHAIKSUKI NUMBER TWENTY;No;0;L;;;;20;N;;;;; ++11C65;BHAIKSUKI NUMBER THIRTY;No;0;L;;;;30;N;;;;; ++11C66;BHAIKSUKI NUMBER FORTY;No;0;L;;;;40;N;;;;; ++11C67;BHAIKSUKI NUMBER FIFTY;No;0;L;;;;50;N;;;;; ++11C68;BHAIKSUKI NUMBER SIXTY;No;0;L;;;;60;N;;;;; ++11C69;BHAIKSUKI NUMBER SEVENTY;No;0;L;;;;70;N;;;;; ++11C6A;BHAIKSUKI NUMBER EIGHTY;No;0;L;;;;80;N;;;;; ++11C6B;BHAIKSUKI NUMBER NINETY;No;0;L;;;;90;N;;;;; ++11C6C;BHAIKSUKI HUNDREDS UNIT MARK;No;0;L;;;;100;N;;;;; ++11C70;MARCHEN HEAD MARK;Po;0;L;;;;;N;;;;; ++11C71;MARCHEN MARK SHAD;Po;0;L;;;;;N;;;;; ++11C72;MARCHEN LETTER KA;Lo;0;L;;;;;N;;;;; ++11C73;MARCHEN LETTER KHA;Lo;0;L;;;;;N;;;;; ++11C74;MARCHEN LETTER GA;Lo;0;L;;;;;N;;;;; ++11C75;MARCHEN LETTER NGA;Lo;0;L;;;;;N;;;;; ++11C76;MARCHEN LETTER CA;Lo;0;L;;;;;N;;;;; ++11C77;MARCHEN LETTER CHA;Lo;0;L;;;;;N;;;;; ++11C78;MARCHEN LETTER JA;Lo;0;L;;;;;N;;;;; ++11C79;MARCHEN LETTER NYA;Lo;0;L;;;;;N;;;;; ++11C7A;MARCHEN LETTER TA;Lo;0;L;;;;;N;;;;; ++11C7B;MARCHEN LETTER THA;Lo;0;L;;;;;N;;;;; ++11C7C;MARCHEN LETTER DA;Lo;0;L;;;;;N;;;;; ++11C7D;MARCHEN LETTER NA;Lo;0;L;;;;;N;;;;; ++11C7E;MARCHEN LETTER PA;Lo;0;L;;;;;N;;;;; ++11C7F;MARCHEN LETTER PHA;Lo;0;L;;;;;N;;;;; ++11C80;MARCHEN LETTER BA;Lo;0;L;;;;;N;;;;; ++11C81;MARCHEN LETTER MA;Lo;0;L;;;;;N;;;;; ++11C82;MARCHEN LETTER TSA;Lo;0;L;;;;;N;;;;; ++11C83;MARCHEN LETTER TSHA;Lo;0;L;;;;;N;;;;; ++11C84;MARCHEN LETTER DZA;Lo;0;L;;;;;N;;;;; ++11C85;MARCHEN LETTER WA;Lo;0;L;;;;;N;;;;; ++11C86;MARCHEN LETTER ZHA;Lo;0;L;;;;;N;;;;; ++11C87;MARCHEN LETTER ZA;Lo;0;L;;;;;N;;;;; ++11C88;MARCHEN LETTER -A;Lo;0;L;;;;;N;;;;; ++11C89;MARCHEN LETTER YA;Lo;0;L;;;;;N;;;;; ++11C8A;MARCHEN LETTER RA;Lo;0;L;;;;;N;;;;; ++11C8B;MARCHEN LETTER LA;Lo;0;L;;;;;N;;;;; ++11C8C;MARCHEN LETTER SHA;Lo;0;L;;;;;N;;;;; ++11C8D;MARCHEN LETTER SA;Lo;0;L;;;;;N;;;;; ++11C8E;MARCHEN LETTER HA;Lo;0;L;;;;;N;;;;; ++11C8F;MARCHEN LETTER A;Lo;0;L;;;;;N;;;;; ++11C92;MARCHEN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;; ++11C93;MARCHEN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;; ++11C94;MARCHEN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;; ++11C95;MARCHEN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;; ++11C96;MARCHEN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;; ++11C97;MARCHEN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;; ++11C98;MARCHEN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;; ++11C99;MARCHEN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;; ++11C9A;MARCHEN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;; ++11C9B;MARCHEN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;; ++11C9C;MARCHEN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;; ++11C9D;MARCHEN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;; ++11C9E;MARCHEN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;; ++11C9F;MARCHEN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;; ++11CA0;MARCHEN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;; ++11CA1;MARCHEN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;; ++11CA2;MARCHEN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;; ++11CA3;MARCHEN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;; ++11CA4;MARCHEN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;; ++11CA5;MARCHEN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;;;; ++11CA6;MARCHEN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;; ++11CA7;MARCHEN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;; ++11CA9;MARCHEN SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;; ++11CAA;MARCHEN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;;;; ++11CAB;MARCHEN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;; ++11CAC;MARCHEN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;; ++11CAD;MARCHEN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;; ++11CAE;MARCHEN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;; ++11CAF;MARCHEN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;; ++11CB0;MARCHEN VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; ++11CB1;MARCHEN VOWEL SIGN I;Mc;0;L;;;;;N;;;;; ++11CB2;MARCHEN VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; ++11CB3;MARCHEN VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; ++11CB4;MARCHEN VOWEL SIGN O;Mc;0;L;;;;;N;;;;; ++11CB5;MARCHEN SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; ++11CB6;MARCHEN SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; + 12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;; + 12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;; + 12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;; +@@ -23685,6 +24086,764 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 16F9D;MIAO LETTER REFORMED TONE-5;Lm;0;L;;;;;N;;;;; + 16F9E;MIAO LETTER REFORMED TONE-6;Lm;0;L;;;;;N;;;;; + 16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;; ++16FE0;TANGUT ITERATION MARK;Lm;0;L;;;;;N;;;;; ++17000;;Lo;0;L;;;;;N;;;;; ++187EC;;Lo;0;L;;;;;N;;;;; ++18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;; ++18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;; ++18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;; ++18803;TANGUT COMPONENT-004;Lo;0;L;;;;;N;;;;; ++18804;TANGUT COMPONENT-005;Lo;0;L;;;;;N;;;;; ++18805;TANGUT COMPONENT-006;Lo;0;L;;;;;N;;;;; ++18806;TANGUT COMPONENT-007;Lo;0;L;;;;;N;;;;; ++18807;TANGUT COMPONENT-008;Lo;0;L;;;;;N;;;;; ++18808;TANGUT COMPONENT-009;Lo;0;L;;;;;N;;;;; ++18809;TANGUT COMPONENT-010;Lo;0;L;;;;;N;;;;; ++1880A;TANGUT COMPONENT-011;Lo;0;L;;;;;N;;;;; ++1880B;TANGUT COMPONENT-012;Lo;0;L;;;;;N;;;;; ++1880C;TANGUT COMPONENT-013;Lo;0;L;;;;;N;;;;; ++1880D;TANGUT COMPONENT-014;Lo;0;L;;;;;N;;;;; ++1880E;TANGUT COMPONENT-015;Lo;0;L;;;;;N;;;;; ++1880F;TANGUT COMPONENT-016;Lo;0;L;;;;;N;;;;; ++18810;TANGUT COMPONENT-017;Lo;0;L;;;;;N;;;;; ++18811;TANGUT COMPONENT-018;Lo;0;L;;;;;N;;;;; ++18812;TANGUT COMPONENT-019;Lo;0;L;;;;;N;;;;; ++18813;TANGUT COMPONENT-020;Lo;0;L;;;;;N;;;;; ++18814;TANGUT COMPONENT-021;Lo;0;L;;;;;N;;;;; ++18815;TANGUT COMPONENT-022;Lo;0;L;;;;;N;;;;; ++18816;TANGUT COMPONENT-023;Lo;0;L;;;;;N;;;;; ++18817;TANGUT COMPONENT-024;Lo;0;L;;;;;N;;;;; ++18818;TANGUT COMPONENT-025;Lo;0;L;;;;;N;;;;; ++18819;TANGUT COMPONENT-026;Lo;0;L;;;;;N;;;;; ++1881A;TANGUT COMPONENT-027;Lo;0;L;;;;;N;;;;; ++1881B;TANGUT COMPONENT-028;Lo;0;L;;;;;N;;;;; ++1881C;TANGUT COMPONENT-029;Lo;0;L;;;;;N;;;;; ++1881D;TANGUT COMPONENT-030;Lo;0;L;;;;;N;;;;; ++1881E;TANGUT COMPONENT-031;Lo;0;L;;;;;N;;;;; ++1881F;TANGUT COMPONENT-032;Lo;0;L;;;;;N;;;;; ++18820;TANGUT COMPONENT-033;Lo;0;L;;;;;N;;;;; ++18821;TANGUT COMPONENT-034;Lo;0;L;;;;;N;;;;; ++18822;TANGUT COMPONENT-035;Lo;0;L;;;;;N;;;;; ++18823;TANGUT COMPONENT-036;Lo;0;L;;;;;N;;;;; ++18824;TANGUT COMPONENT-037;Lo;0;L;;;;;N;;;;; ++18825;TANGUT COMPONENT-038;Lo;0;L;;;;;N;;;;; ++18826;TANGUT COMPONENT-039;Lo;0;L;;;;;N;;;;; ++18827;TANGUT COMPONENT-040;Lo;0;L;;;;;N;;;;; ++18828;TANGUT COMPONENT-041;Lo;0;L;;;;;N;;;;; ++18829;TANGUT COMPONENT-042;Lo;0;L;;;;;N;;;;; ++1882A;TANGUT COMPONENT-043;Lo;0;L;;;;;N;;;;; ++1882B;TANGUT COMPONENT-044;Lo;0;L;;;;;N;;;;; ++1882C;TANGUT COMPONENT-045;Lo;0;L;;;;;N;;;;; ++1882D;TANGUT COMPONENT-046;Lo;0;L;;;;;N;;;;; ++1882E;TANGUT COMPONENT-047;Lo;0;L;;;;;N;;;;; ++1882F;TANGUT COMPONENT-048;Lo;0;L;;;;;N;;;;; ++18830;TANGUT COMPONENT-049;Lo;0;L;;;;;N;;;;; ++18831;TANGUT COMPONENT-050;Lo;0;L;;;;;N;;;;; ++18832;TANGUT COMPONENT-051;Lo;0;L;;;;;N;;;;; ++18833;TANGUT COMPONENT-052;Lo;0;L;;;;;N;;;;; ++18834;TANGUT COMPONENT-053;Lo;0;L;;;;;N;;;;; ++18835;TANGUT COMPONENT-054;Lo;0;L;;;;;N;;;;; ++18836;TANGUT COMPONENT-055;Lo;0;L;;;;;N;;;;; ++18837;TANGUT COMPONENT-056;Lo;0;L;;;;;N;;;;; ++18838;TANGUT COMPONENT-057;Lo;0;L;;;;;N;;;;; ++18839;TANGUT COMPONENT-058;Lo;0;L;;;;;N;;;;; ++1883A;TANGUT COMPONENT-059;Lo;0;L;;;;;N;;;;; ++1883B;TANGUT COMPONENT-060;Lo;0;L;;;;;N;;;;; ++1883C;TANGUT COMPONENT-061;Lo;0;L;;;;;N;;;;; ++1883D;TANGUT COMPONENT-062;Lo;0;L;;;;;N;;;;; ++1883E;TANGUT COMPONENT-063;Lo;0;L;;;;;N;;;;; ++1883F;TANGUT COMPONENT-064;Lo;0;L;;;;;N;;;;; ++18840;TANGUT COMPONENT-065;Lo;0;L;;;;;N;;;;; ++18841;TANGUT COMPONENT-066;Lo;0;L;;;;;N;;;;; ++18842;TANGUT COMPONENT-067;Lo;0;L;;;;;N;;;;; ++18843;TANGUT COMPONENT-068;Lo;0;L;;;;;N;;;;; ++18844;TANGUT COMPONENT-069;Lo;0;L;;;;;N;;;;; ++18845;TANGUT COMPONENT-070;Lo;0;L;;;;;N;;;;; ++18846;TANGUT COMPONENT-071;Lo;0;L;;;;;N;;;;; ++18847;TANGUT COMPONENT-072;Lo;0;L;;;;;N;;;;; ++18848;TANGUT COMPONENT-073;Lo;0;L;;;;;N;;;;; ++18849;TANGUT COMPONENT-074;Lo;0;L;;;;;N;;;;; ++1884A;TANGUT COMPONENT-075;Lo;0;L;;;;;N;;;;; ++1884B;TANGUT COMPONENT-076;Lo;0;L;;;;;N;;;;; ++1884C;TANGUT COMPONENT-077;Lo;0;L;;;;;N;;;;; ++1884D;TANGUT COMPONENT-078;Lo;0;L;;;;;N;;;;; ++1884E;TANGUT COMPONENT-079;Lo;0;L;;;;;N;;;;; ++1884F;TANGUT COMPONENT-080;Lo;0;L;;;;;N;;;;; ++18850;TANGUT COMPONENT-081;Lo;0;L;;;;;N;;;;; ++18851;TANGUT COMPONENT-082;Lo;0;L;;;;;N;;;;; ++18852;TANGUT COMPONENT-083;Lo;0;L;;;;;N;;;;; ++18853;TANGUT COMPONENT-084;Lo;0;L;;;;;N;;;;; ++18854;TANGUT COMPONENT-085;Lo;0;L;;;;;N;;;;; ++18855;TANGUT COMPONENT-086;Lo;0;L;;;;;N;;;;; ++18856;TANGUT COMPONENT-087;Lo;0;L;;;;;N;;;;; ++18857;TANGUT COMPONENT-088;Lo;0;L;;;;;N;;;;; ++18858;TANGUT COMPONENT-089;Lo;0;L;;;;;N;;;;; ++18859;TANGUT COMPONENT-090;Lo;0;L;;;;;N;;;;; ++1885A;TANGUT COMPONENT-091;Lo;0;L;;;;;N;;;;; ++1885B;TANGUT COMPONENT-092;Lo;0;L;;;;;N;;;;; ++1885C;TANGUT COMPONENT-093;Lo;0;L;;;;;N;;;;; ++1885D;TANGUT COMPONENT-094;Lo;0;L;;;;;N;;;;; ++1885E;TANGUT COMPONENT-095;Lo;0;L;;;;;N;;;;; ++1885F;TANGUT COMPONENT-096;Lo;0;L;;;;;N;;;;; ++18860;TANGUT COMPONENT-097;Lo;0;L;;;;;N;;;;; ++18861;TANGUT COMPONENT-098;Lo;0;L;;;;;N;;;;; ++18862;TANGUT COMPONENT-099;Lo;0;L;;;;;N;;;;; ++18863;TANGUT COMPONENT-100;Lo;0;L;;;;;N;;;;; ++18864;TANGUT COMPONENT-101;Lo;0;L;;;;;N;;;;; ++18865;TANGUT COMPONENT-102;Lo;0;L;;;;;N;;;;; ++18866;TANGUT COMPONENT-103;Lo;0;L;;;;;N;;;;; ++18867;TANGUT COMPONENT-104;Lo;0;L;;;;;N;;;;; ++18868;TANGUT COMPONENT-105;Lo;0;L;;;;;N;;;;; ++18869;TANGUT COMPONENT-106;Lo;0;L;;;;;N;;;;; ++1886A;TANGUT COMPONENT-107;Lo;0;L;;;;;N;;;;; ++1886B;TANGUT COMPONENT-108;Lo;0;L;;;;;N;;;;; ++1886C;TANGUT COMPONENT-109;Lo;0;L;;;;;N;;;;; ++1886D;TANGUT COMPONENT-110;Lo;0;L;;;;;N;;;;; ++1886E;TANGUT COMPONENT-111;Lo;0;L;;;;;N;;;;; ++1886F;TANGUT COMPONENT-112;Lo;0;L;;;;;N;;;;; ++18870;TANGUT COMPONENT-113;Lo;0;L;;;;;N;;;;; ++18871;TANGUT COMPONENT-114;Lo;0;L;;;;;N;;;;; ++18872;TANGUT COMPONENT-115;Lo;0;L;;;;;N;;;;; ++18873;TANGUT COMPONENT-116;Lo;0;L;;;;;N;;;;; ++18874;TANGUT COMPONENT-117;Lo;0;L;;;;;N;;;;; ++18875;TANGUT COMPONENT-118;Lo;0;L;;;;;N;;;;; ++18876;TANGUT COMPONENT-119;Lo;0;L;;;;;N;;;;; ++18877;TANGUT COMPONENT-120;Lo;0;L;;;;;N;;;;; ++18878;TANGUT COMPONENT-121;Lo;0;L;;;;;N;;;;; ++18879;TANGUT COMPONENT-122;Lo;0;L;;;;;N;;;;; ++1887A;TANGUT COMPONENT-123;Lo;0;L;;;;;N;;;;; ++1887B;TANGUT COMPONENT-124;Lo;0;L;;;;;N;;;;; ++1887C;TANGUT COMPONENT-125;Lo;0;L;;;;;N;;;;; ++1887D;TANGUT COMPONENT-126;Lo;0;L;;;;;N;;;;; ++1887E;TANGUT COMPONENT-127;Lo;0;L;;;;;N;;;;; ++1887F;TANGUT COMPONENT-128;Lo;0;L;;;;;N;;;;; ++18880;TANGUT COMPONENT-129;Lo;0;L;;;;;N;;;;; ++18881;TANGUT COMPONENT-130;Lo;0;L;;;;;N;;;;; ++18882;TANGUT COMPONENT-131;Lo;0;L;;;;;N;;;;; ++18883;TANGUT COMPONENT-132;Lo;0;L;;;;;N;;;;; ++18884;TANGUT COMPONENT-133;Lo;0;L;;;;;N;;;;; ++18885;TANGUT COMPONENT-134;Lo;0;L;;;;;N;;;;; ++18886;TANGUT COMPONENT-135;Lo;0;L;;;;;N;;;;; ++18887;TANGUT COMPONENT-136;Lo;0;L;;;;;N;;;;; ++18888;TANGUT COMPONENT-137;Lo;0;L;;;;;N;;;;; ++18889;TANGUT COMPONENT-138;Lo;0;L;;;;;N;;;;; ++1888A;TANGUT COMPONENT-139;Lo;0;L;;;;;N;;;;; ++1888B;TANGUT COMPONENT-140;Lo;0;L;;;;;N;;;;; ++1888C;TANGUT COMPONENT-141;Lo;0;L;;;;;N;;;;; ++1888D;TANGUT COMPONENT-142;Lo;0;L;;;;;N;;;;; ++1888E;TANGUT COMPONENT-143;Lo;0;L;;;;;N;;;;; ++1888F;TANGUT COMPONENT-144;Lo;0;L;;;;;N;;;;; ++18890;TANGUT COMPONENT-145;Lo;0;L;;;;;N;;;;; ++18891;TANGUT COMPONENT-146;Lo;0;L;;;;;N;;;;; ++18892;TANGUT COMPONENT-147;Lo;0;L;;;;;N;;;;; ++18893;TANGUT COMPONENT-148;Lo;0;L;;;;;N;;;;; ++18894;TANGUT COMPONENT-149;Lo;0;L;;;;;N;;;;; ++18895;TANGUT COMPONENT-150;Lo;0;L;;;;;N;;;;; ++18896;TANGUT COMPONENT-151;Lo;0;L;;;;;N;;;;; ++18897;TANGUT COMPONENT-152;Lo;0;L;;;;;N;;;;; ++18898;TANGUT COMPONENT-153;Lo;0;L;;;;;N;;;;; ++18899;TANGUT COMPONENT-154;Lo;0;L;;;;;N;;;;; ++1889A;TANGUT COMPONENT-155;Lo;0;L;;;;;N;;;;; ++1889B;TANGUT COMPONENT-156;Lo;0;L;;;;;N;;;;; ++1889C;TANGUT COMPONENT-157;Lo;0;L;;;;;N;;;;; ++1889D;TANGUT COMPONENT-158;Lo;0;L;;;;;N;;;;; ++1889E;TANGUT COMPONENT-159;Lo;0;L;;;;;N;;;;; ++1889F;TANGUT COMPONENT-160;Lo;0;L;;;;;N;;;;; ++188A0;TANGUT COMPONENT-161;Lo;0;L;;;;;N;;;;; ++188A1;TANGUT COMPONENT-162;Lo;0;L;;;;;N;;;;; ++188A2;TANGUT COMPONENT-163;Lo;0;L;;;;;N;;;;; ++188A3;TANGUT COMPONENT-164;Lo;0;L;;;;;N;;;;; ++188A4;TANGUT COMPONENT-165;Lo;0;L;;;;;N;;;;; ++188A5;TANGUT COMPONENT-166;Lo;0;L;;;;;N;;;;; ++188A6;TANGUT COMPONENT-167;Lo;0;L;;;;;N;;;;; ++188A7;TANGUT COMPONENT-168;Lo;0;L;;;;;N;;;;; ++188A8;TANGUT COMPONENT-169;Lo;0;L;;;;;N;;;;; ++188A9;TANGUT COMPONENT-170;Lo;0;L;;;;;N;;;;; ++188AA;TANGUT COMPONENT-171;Lo;0;L;;;;;N;;;;; ++188AB;TANGUT COMPONENT-172;Lo;0;L;;;;;N;;;;; ++188AC;TANGUT COMPONENT-173;Lo;0;L;;;;;N;;;;; ++188AD;TANGUT COMPONENT-174;Lo;0;L;;;;;N;;;;; ++188AE;TANGUT COMPONENT-175;Lo;0;L;;;;;N;;;;; ++188AF;TANGUT COMPONENT-176;Lo;0;L;;;;;N;;;;; ++188B0;TANGUT COMPONENT-177;Lo;0;L;;;;;N;;;;; ++188B1;TANGUT COMPONENT-178;Lo;0;L;;;;;N;;;;; ++188B2;TANGUT COMPONENT-179;Lo;0;L;;;;;N;;;;; ++188B3;TANGUT COMPONENT-180;Lo;0;L;;;;;N;;;;; ++188B4;TANGUT COMPONENT-181;Lo;0;L;;;;;N;;;;; ++188B5;TANGUT COMPONENT-182;Lo;0;L;;;;;N;;;;; ++188B6;TANGUT COMPONENT-183;Lo;0;L;;;;;N;;;;; ++188B7;TANGUT COMPONENT-184;Lo;0;L;;;;;N;;;;; ++188B8;TANGUT COMPONENT-185;Lo;0;L;;;;;N;;;;; ++188B9;TANGUT COMPONENT-186;Lo;0;L;;;;;N;;;;; ++188BA;TANGUT COMPONENT-187;Lo;0;L;;;;;N;;;;; ++188BB;TANGUT COMPONENT-188;Lo;0;L;;;;;N;;;;; ++188BC;TANGUT COMPONENT-189;Lo;0;L;;;;;N;;;;; ++188BD;TANGUT COMPONENT-190;Lo;0;L;;;;;N;;;;; ++188BE;TANGUT COMPONENT-191;Lo;0;L;;;;;N;;;;; ++188BF;TANGUT COMPONENT-192;Lo;0;L;;;;;N;;;;; ++188C0;TANGUT COMPONENT-193;Lo;0;L;;;;;N;;;;; ++188C1;TANGUT COMPONENT-194;Lo;0;L;;;;;N;;;;; ++188C2;TANGUT COMPONENT-195;Lo;0;L;;;;;N;;;;; ++188C3;TANGUT COMPONENT-196;Lo;0;L;;;;;N;;;;; ++188C4;TANGUT COMPONENT-197;Lo;0;L;;;;;N;;;;; ++188C5;TANGUT COMPONENT-198;Lo;0;L;;;;;N;;;;; ++188C6;TANGUT COMPONENT-199;Lo;0;L;;;;;N;;;;; ++188C7;TANGUT COMPONENT-200;Lo;0;L;;;;;N;;;;; ++188C8;TANGUT COMPONENT-201;Lo;0;L;;;;;N;;;;; ++188C9;TANGUT COMPONENT-202;Lo;0;L;;;;;N;;;;; ++188CA;TANGUT COMPONENT-203;Lo;0;L;;;;;N;;;;; ++188CB;TANGUT COMPONENT-204;Lo;0;L;;;;;N;;;;; ++188CC;TANGUT COMPONENT-205;Lo;0;L;;;;;N;;;;; ++188CD;TANGUT COMPONENT-206;Lo;0;L;;;;;N;;;;; ++188CE;TANGUT COMPONENT-207;Lo;0;L;;;;;N;;;;; ++188CF;TANGUT COMPONENT-208;Lo;0;L;;;;;N;;;;; ++188D0;TANGUT COMPONENT-209;Lo;0;L;;;;;N;;;;; ++188D1;TANGUT COMPONENT-210;Lo;0;L;;;;;N;;;;; ++188D2;TANGUT COMPONENT-211;Lo;0;L;;;;;N;;;;; ++188D3;TANGUT COMPONENT-212;Lo;0;L;;;;;N;;;;; ++188D4;TANGUT COMPONENT-213;Lo;0;L;;;;;N;;;;; ++188D5;TANGUT COMPONENT-214;Lo;0;L;;;;;N;;;;; ++188D6;TANGUT COMPONENT-215;Lo;0;L;;;;;N;;;;; ++188D7;TANGUT COMPONENT-216;Lo;0;L;;;;;N;;;;; ++188D8;TANGUT COMPONENT-217;Lo;0;L;;;;;N;;;;; ++188D9;TANGUT COMPONENT-218;Lo;0;L;;;;;N;;;;; ++188DA;TANGUT COMPONENT-219;Lo;0;L;;;;;N;;;;; ++188DB;TANGUT COMPONENT-220;Lo;0;L;;;;;N;;;;; ++188DC;TANGUT COMPONENT-221;Lo;0;L;;;;;N;;;;; ++188DD;TANGUT COMPONENT-222;Lo;0;L;;;;;N;;;;; ++188DE;TANGUT COMPONENT-223;Lo;0;L;;;;;N;;;;; ++188DF;TANGUT COMPONENT-224;Lo;0;L;;;;;N;;;;; ++188E0;TANGUT COMPONENT-225;Lo;0;L;;;;;N;;;;; ++188E1;TANGUT COMPONENT-226;Lo;0;L;;;;;N;;;;; ++188E2;TANGUT COMPONENT-227;Lo;0;L;;;;;N;;;;; ++188E3;TANGUT COMPONENT-228;Lo;0;L;;;;;N;;;;; ++188E4;TANGUT COMPONENT-229;Lo;0;L;;;;;N;;;;; ++188E5;TANGUT COMPONENT-230;Lo;0;L;;;;;N;;;;; ++188E6;TANGUT COMPONENT-231;Lo;0;L;;;;;N;;;;; ++188E7;TANGUT COMPONENT-232;Lo;0;L;;;;;N;;;;; ++188E8;TANGUT COMPONENT-233;Lo;0;L;;;;;N;;;;; ++188E9;TANGUT COMPONENT-234;Lo;0;L;;;;;N;;;;; ++188EA;TANGUT COMPONENT-235;Lo;0;L;;;;;N;;;;; ++188EB;TANGUT COMPONENT-236;Lo;0;L;;;;;N;;;;; ++188EC;TANGUT COMPONENT-237;Lo;0;L;;;;;N;;;;; ++188ED;TANGUT COMPONENT-238;Lo;0;L;;;;;N;;;;; ++188EE;TANGUT COMPONENT-239;Lo;0;L;;;;;N;;;;; ++188EF;TANGUT COMPONENT-240;Lo;0;L;;;;;N;;;;; ++188F0;TANGUT COMPONENT-241;Lo;0;L;;;;;N;;;;; ++188F1;TANGUT COMPONENT-242;Lo;0;L;;;;;N;;;;; ++188F2;TANGUT COMPONENT-243;Lo;0;L;;;;;N;;;;; ++188F3;TANGUT COMPONENT-244;Lo;0;L;;;;;N;;;;; ++188F4;TANGUT COMPONENT-245;Lo;0;L;;;;;N;;;;; ++188F5;TANGUT COMPONENT-246;Lo;0;L;;;;;N;;;;; ++188F6;TANGUT COMPONENT-247;Lo;0;L;;;;;N;;;;; ++188F7;TANGUT COMPONENT-248;Lo;0;L;;;;;N;;;;; ++188F8;TANGUT COMPONENT-249;Lo;0;L;;;;;N;;;;; ++188F9;TANGUT COMPONENT-250;Lo;0;L;;;;;N;;;;; ++188FA;TANGUT COMPONENT-251;Lo;0;L;;;;;N;;;;; ++188FB;TANGUT COMPONENT-252;Lo;0;L;;;;;N;;;;; ++188FC;TANGUT COMPONENT-253;Lo;0;L;;;;;N;;;;; ++188FD;TANGUT COMPONENT-254;Lo;0;L;;;;;N;;;;; ++188FE;TANGUT COMPONENT-255;Lo;0;L;;;;;N;;;;; ++188FF;TANGUT COMPONENT-256;Lo;0;L;;;;;N;;;;; ++18900;TANGUT COMPONENT-257;Lo;0;L;;;;;N;;;;; ++18901;TANGUT COMPONENT-258;Lo;0;L;;;;;N;;;;; ++18902;TANGUT COMPONENT-259;Lo;0;L;;;;;N;;;;; ++18903;TANGUT COMPONENT-260;Lo;0;L;;;;;N;;;;; ++18904;TANGUT COMPONENT-261;Lo;0;L;;;;;N;;;;; ++18905;TANGUT COMPONENT-262;Lo;0;L;;;;;N;;;;; ++18906;TANGUT COMPONENT-263;Lo;0;L;;;;;N;;;;; ++18907;TANGUT COMPONENT-264;Lo;0;L;;;;;N;;;;; ++18908;TANGUT COMPONENT-265;Lo;0;L;;;;;N;;;;; ++18909;TANGUT COMPONENT-266;Lo;0;L;;;;;N;;;;; ++1890A;TANGUT COMPONENT-267;Lo;0;L;;;;;N;;;;; ++1890B;TANGUT COMPONENT-268;Lo;0;L;;;;;N;;;;; ++1890C;TANGUT COMPONENT-269;Lo;0;L;;;;;N;;;;; ++1890D;TANGUT COMPONENT-270;Lo;0;L;;;;;N;;;;; ++1890E;TANGUT COMPONENT-271;Lo;0;L;;;;;N;;;;; ++1890F;TANGUT COMPONENT-272;Lo;0;L;;;;;N;;;;; ++18910;TANGUT COMPONENT-273;Lo;0;L;;;;;N;;;;; ++18911;TANGUT COMPONENT-274;Lo;0;L;;;;;N;;;;; ++18912;TANGUT COMPONENT-275;Lo;0;L;;;;;N;;;;; ++18913;TANGUT COMPONENT-276;Lo;0;L;;;;;N;;;;; ++18914;TANGUT COMPONENT-277;Lo;0;L;;;;;N;;;;; ++18915;TANGUT COMPONENT-278;Lo;0;L;;;;;N;;;;; ++18916;TANGUT COMPONENT-279;Lo;0;L;;;;;N;;;;; ++18917;TANGUT COMPONENT-280;Lo;0;L;;;;;N;;;;; ++18918;TANGUT COMPONENT-281;Lo;0;L;;;;;N;;;;; ++18919;TANGUT COMPONENT-282;Lo;0;L;;;;;N;;;;; ++1891A;TANGUT COMPONENT-283;Lo;0;L;;;;;N;;;;; ++1891B;TANGUT COMPONENT-284;Lo;0;L;;;;;N;;;;; ++1891C;TANGUT COMPONENT-285;Lo;0;L;;;;;N;;;;; ++1891D;TANGUT COMPONENT-286;Lo;0;L;;;;;N;;;;; ++1891E;TANGUT COMPONENT-287;Lo;0;L;;;;;N;;;;; ++1891F;TANGUT COMPONENT-288;Lo;0;L;;;;;N;;;;; ++18920;TANGUT COMPONENT-289;Lo;0;L;;;;;N;;;;; ++18921;TANGUT COMPONENT-290;Lo;0;L;;;;;N;;;;; ++18922;TANGUT COMPONENT-291;Lo;0;L;;;;;N;;;;; ++18923;TANGUT COMPONENT-292;Lo;0;L;;;;;N;;;;; ++18924;TANGUT COMPONENT-293;Lo;0;L;;;;;N;;;;; ++18925;TANGUT COMPONENT-294;Lo;0;L;;;;;N;;;;; ++18926;TANGUT COMPONENT-295;Lo;0;L;;;;;N;;;;; ++18927;TANGUT COMPONENT-296;Lo;0;L;;;;;N;;;;; ++18928;TANGUT COMPONENT-297;Lo;0;L;;;;;N;;;;; ++18929;TANGUT COMPONENT-298;Lo;0;L;;;;;N;;;;; ++1892A;TANGUT COMPONENT-299;Lo;0;L;;;;;N;;;;; ++1892B;TANGUT COMPONENT-300;Lo;0;L;;;;;N;;;;; ++1892C;TANGUT COMPONENT-301;Lo;0;L;;;;;N;;;;; ++1892D;TANGUT COMPONENT-302;Lo;0;L;;;;;N;;;;; ++1892E;TANGUT COMPONENT-303;Lo;0;L;;;;;N;;;;; ++1892F;TANGUT COMPONENT-304;Lo;0;L;;;;;N;;;;; ++18930;TANGUT COMPONENT-305;Lo;0;L;;;;;N;;;;; ++18931;TANGUT COMPONENT-306;Lo;0;L;;;;;N;;;;; ++18932;TANGUT COMPONENT-307;Lo;0;L;;;;;N;;;;; ++18933;TANGUT COMPONENT-308;Lo;0;L;;;;;N;;;;; ++18934;TANGUT COMPONENT-309;Lo;0;L;;;;;N;;;;; ++18935;TANGUT COMPONENT-310;Lo;0;L;;;;;N;;;;; ++18936;TANGUT COMPONENT-311;Lo;0;L;;;;;N;;;;; ++18937;TANGUT COMPONENT-312;Lo;0;L;;;;;N;;;;; ++18938;TANGUT COMPONENT-313;Lo;0;L;;;;;N;;;;; ++18939;TANGUT COMPONENT-314;Lo;0;L;;;;;N;;;;; ++1893A;TANGUT COMPONENT-315;Lo;0;L;;;;;N;;;;; ++1893B;TANGUT COMPONENT-316;Lo;0;L;;;;;N;;;;; ++1893C;TANGUT COMPONENT-317;Lo;0;L;;;;;N;;;;; ++1893D;TANGUT COMPONENT-318;Lo;0;L;;;;;N;;;;; ++1893E;TANGUT COMPONENT-319;Lo;0;L;;;;;N;;;;; ++1893F;TANGUT COMPONENT-320;Lo;0;L;;;;;N;;;;; ++18940;TANGUT COMPONENT-321;Lo;0;L;;;;;N;;;;; ++18941;TANGUT COMPONENT-322;Lo;0;L;;;;;N;;;;; ++18942;TANGUT COMPONENT-323;Lo;0;L;;;;;N;;;;; ++18943;TANGUT COMPONENT-324;Lo;0;L;;;;;N;;;;; ++18944;TANGUT COMPONENT-325;Lo;0;L;;;;;N;;;;; ++18945;TANGUT COMPONENT-326;Lo;0;L;;;;;N;;;;; ++18946;TANGUT COMPONENT-327;Lo;0;L;;;;;N;;;;; ++18947;TANGUT COMPONENT-328;Lo;0;L;;;;;N;;;;; ++18948;TANGUT COMPONENT-329;Lo;0;L;;;;;N;;;;; ++18949;TANGUT COMPONENT-330;Lo;0;L;;;;;N;;;;; ++1894A;TANGUT COMPONENT-331;Lo;0;L;;;;;N;;;;; ++1894B;TANGUT COMPONENT-332;Lo;0;L;;;;;N;;;;; ++1894C;TANGUT COMPONENT-333;Lo;0;L;;;;;N;;;;; ++1894D;TANGUT COMPONENT-334;Lo;0;L;;;;;N;;;;; ++1894E;TANGUT COMPONENT-335;Lo;0;L;;;;;N;;;;; ++1894F;TANGUT COMPONENT-336;Lo;0;L;;;;;N;;;;; ++18950;TANGUT COMPONENT-337;Lo;0;L;;;;;N;;;;; ++18951;TANGUT COMPONENT-338;Lo;0;L;;;;;N;;;;; ++18952;TANGUT COMPONENT-339;Lo;0;L;;;;;N;;;;; ++18953;TANGUT COMPONENT-340;Lo;0;L;;;;;N;;;;; ++18954;TANGUT COMPONENT-341;Lo;0;L;;;;;N;;;;; ++18955;TANGUT COMPONENT-342;Lo;0;L;;;;;N;;;;; ++18956;TANGUT COMPONENT-343;Lo;0;L;;;;;N;;;;; ++18957;TANGUT COMPONENT-344;Lo;0;L;;;;;N;;;;; ++18958;TANGUT COMPONENT-345;Lo;0;L;;;;;N;;;;; ++18959;TANGUT COMPONENT-346;Lo;0;L;;;;;N;;;;; ++1895A;TANGUT COMPONENT-347;Lo;0;L;;;;;N;;;;; ++1895B;TANGUT COMPONENT-348;Lo;0;L;;;;;N;;;;; ++1895C;TANGUT COMPONENT-349;Lo;0;L;;;;;N;;;;; ++1895D;TANGUT COMPONENT-350;Lo;0;L;;;;;N;;;;; ++1895E;TANGUT COMPONENT-351;Lo;0;L;;;;;N;;;;; ++1895F;TANGUT COMPONENT-352;Lo;0;L;;;;;N;;;;; ++18960;TANGUT COMPONENT-353;Lo;0;L;;;;;N;;;;; ++18961;TANGUT COMPONENT-354;Lo;0;L;;;;;N;;;;; ++18962;TANGUT COMPONENT-355;Lo;0;L;;;;;N;;;;; ++18963;TANGUT COMPONENT-356;Lo;0;L;;;;;N;;;;; ++18964;TANGUT COMPONENT-357;Lo;0;L;;;;;N;;;;; ++18965;TANGUT COMPONENT-358;Lo;0;L;;;;;N;;;;; ++18966;TANGUT COMPONENT-359;Lo;0;L;;;;;N;;;;; ++18967;TANGUT COMPONENT-360;Lo;0;L;;;;;N;;;;; ++18968;TANGUT COMPONENT-361;Lo;0;L;;;;;N;;;;; ++18969;TANGUT COMPONENT-362;Lo;0;L;;;;;N;;;;; ++1896A;TANGUT COMPONENT-363;Lo;0;L;;;;;N;;;;; ++1896B;TANGUT COMPONENT-364;Lo;0;L;;;;;N;;;;; ++1896C;TANGUT COMPONENT-365;Lo;0;L;;;;;N;;;;; ++1896D;TANGUT COMPONENT-366;Lo;0;L;;;;;N;;;;; ++1896E;TANGUT COMPONENT-367;Lo;0;L;;;;;N;;;;; ++1896F;TANGUT COMPONENT-368;Lo;0;L;;;;;N;;;;; ++18970;TANGUT COMPONENT-369;Lo;0;L;;;;;N;;;;; ++18971;TANGUT COMPONENT-370;Lo;0;L;;;;;N;;;;; ++18972;TANGUT COMPONENT-371;Lo;0;L;;;;;N;;;;; ++18973;TANGUT COMPONENT-372;Lo;0;L;;;;;N;;;;; ++18974;TANGUT COMPONENT-373;Lo;0;L;;;;;N;;;;; ++18975;TANGUT COMPONENT-374;Lo;0;L;;;;;N;;;;; ++18976;TANGUT COMPONENT-375;Lo;0;L;;;;;N;;;;; ++18977;TANGUT COMPONENT-376;Lo;0;L;;;;;N;;;;; ++18978;TANGUT COMPONENT-377;Lo;0;L;;;;;N;;;;; ++18979;TANGUT COMPONENT-378;Lo;0;L;;;;;N;;;;; ++1897A;TANGUT COMPONENT-379;Lo;0;L;;;;;N;;;;; ++1897B;TANGUT COMPONENT-380;Lo;0;L;;;;;N;;;;; ++1897C;TANGUT COMPONENT-381;Lo;0;L;;;;;N;;;;; ++1897D;TANGUT COMPONENT-382;Lo;0;L;;;;;N;;;;; ++1897E;TANGUT COMPONENT-383;Lo;0;L;;;;;N;;;;; ++1897F;TANGUT COMPONENT-384;Lo;0;L;;;;;N;;;;; ++18980;TANGUT COMPONENT-385;Lo;0;L;;;;;N;;;;; ++18981;TANGUT COMPONENT-386;Lo;0;L;;;;;N;;;;; ++18982;TANGUT COMPONENT-387;Lo;0;L;;;;;N;;;;; ++18983;TANGUT COMPONENT-388;Lo;0;L;;;;;N;;;;; ++18984;TANGUT COMPONENT-389;Lo;0;L;;;;;N;;;;; ++18985;TANGUT COMPONENT-390;Lo;0;L;;;;;N;;;;; ++18986;TANGUT COMPONENT-391;Lo;0;L;;;;;N;;;;; ++18987;TANGUT COMPONENT-392;Lo;0;L;;;;;N;;;;; ++18988;TANGUT COMPONENT-393;Lo;0;L;;;;;N;;;;; ++18989;TANGUT COMPONENT-394;Lo;0;L;;;;;N;;;;; ++1898A;TANGUT COMPONENT-395;Lo;0;L;;;;;N;;;;; ++1898B;TANGUT COMPONENT-396;Lo;0;L;;;;;N;;;;; ++1898C;TANGUT COMPONENT-397;Lo;0;L;;;;;N;;;;; ++1898D;TANGUT COMPONENT-398;Lo;0;L;;;;;N;;;;; ++1898E;TANGUT COMPONENT-399;Lo;0;L;;;;;N;;;;; ++1898F;TANGUT COMPONENT-400;Lo;0;L;;;;;N;;;;; ++18990;TANGUT COMPONENT-401;Lo;0;L;;;;;N;;;;; ++18991;TANGUT COMPONENT-402;Lo;0;L;;;;;N;;;;; ++18992;TANGUT COMPONENT-403;Lo;0;L;;;;;N;;;;; ++18993;TANGUT COMPONENT-404;Lo;0;L;;;;;N;;;;; ++18994;TANGUT COMPONENT-405;Lo;0;L;;;;;N;;;;; ++18995;TANGUT COMPONENT-406;Lo;0;L;;;;;N;;;;; ++18996;TANGUT COMPONENT-407;Lo;0;L;;;;;N;;;;; ++18997;TANGUT COMPONENT-408;Lo;0;L;;;;;N;;;;; ++18998;TANGUT COMPONENT-409;Lo;0;L;;;;;N;;;;; ++18999;TANGUT COMPONENT-410;Lo;0;L;;;;;N;;;;; ++1899A;TANGUT COMPONENT-411;Lo;0;L;;;;;N;;;;; ++1899B;TANGUT COMPONENT-412;Lo;0;L;;;;;N;;;;; ++1899C;TANGUT COMPONENT-413;Lo;0;L;;;;;N;;;;; ++1899D;TANGUT COMPONENT-414;Lo;0;L;;;;;N;;;;; ++1899E;TANGUT COMPONENT-415;Lo;0;L;;;;;N;;;;; ++1899F;TANGUT COMPONENT-416;Lo;0;L;;;;;N;;;;; ++189A0;TANGUT COMPONENT-417;Lo;0;L;;;;;N;;;;; ++189A1;TANGUT COMPONENT-418;Lo;0;L;;;;;N;;;;; ++189A2;TANGUT COMPONENT-419;Lo;0;L;;;;;N;;;;; ++189A3;TANGUT COMPONENT-420;Lo;0;L;;;;;N;;;;; ++189A4;TANGUT COMPONENT-421;Lo;0;L;;;;;N;;;;; ++189A5;TANGUT COMPONENT-422;Lo;0;L;;;;;N;;;;; ++189A6;TANGUT COMPONENT-423;Lo;0;L;;;;;N;;;;; ++189A7;TANGUT COMPONENT-424;Lo;0;L;;;;;N;;;;; ++189A8;TANGUT COMPONENT-425;Lo;0;L;;;;;N;;;;; ++189A9;TANGUT COMPONENT-426;Lo;0;L;;;;;N;;;;; ++189AA;TANGUT COMPONENT-427;Lo;0;L;;;;;N;;;;; ++189AB;TANGUT COMPONENT-428;Lo;0;L;;;;;N;;;;; ++189AC;TANGUT COMPONENT-429;Lo;0;L;;;;;N;;;;; ++189AD;TANGUT COMPONENT-430;Lo;0;L;;;;;N;;;;; ++189AE;TANGUT COMPONENT-431;Lo;0;L;;;;;N;;;;; ++189AF;TANGUT COMPONENT-432;Lo;0;L;;;;;N;;;;; ++189B0;TANGUT COMPONENT-433;Lo;0;L;;;;;N;;;;; ++189B1;TANGUT COMPONENT-434;Lo;0;L;;;;;N;;;;; ++189B2;TANGUT COMPONENT-435;Lo;0;L;;;;;N;;;;; ++189B3;TANGUT COMPONENT-436;Lo;0;L;;;;;N;;;;; ++189B4;TANGUT COMPONENT-437;Lo;0;L;;;;;N;;;;; ++189B5;TANGUT COMPONENT-438;Lo;0;L;;;;;N;;;;; ++189B6;TANGUT COMPONENT-439;Lo;0;L;;;;;N;;;;; ++189B7;TANGUT COMPONENT-440;Lo;0;L;;;;;N;;;;; ++189B8;TANGUT COMPONENT-441;Lo;0;L;;;;;N;;;;; ++189B9;TANGUT COMPONENT-442;Lo;0;L;;;;;N;;;;; ++189BA;TANGUT COMPONENT-443;Lo;0;L;;;;;N;;;;; ++189BB;TANGUT COMPONENT-444;Lo;0;L;;;;;N;;;;; ++189BC;TANGUT COMPONENT-445;Lo;0;L;;;;;N;;;;; ++189BD;TANGUT COMPONENT-446;Lo;0;L;;;;;N;;;;; ++189BE;TANGUT COMPONENT-447;Lo;0;L;;;;;N;;;;; ++189BF;TANGUT COMPONENT-448;Lo;0;L;;;;;N;;;;; ++189C0;TANGUT COMPONENT-449;Lo;0;L;;;;;N;;;;; ++189C1;TANGUT COMPONENT-450;Lo;0;L;;;;;N;;;;; ++189C2;TANGUT COMPONENT-451;Lo;0;L;;;;;N;;;;; ++189C3;TANGUT COMPONENT-452;Lo;0;L;;;;;N;;;;; ++189C4;TANGUT COMPONENT-453;Lo;0;L;;;;;N;;;;; ++189C5;TANGUT COMPONENT-454;Lo;0;L;;;;;N;;;;; ++189C6;TANGUT COMPONENT-455;Lo;0;L;;;;;N;;;;; ++189C7;TANGUT COMPONENT-456;Lo;0;L;;;;;N;;;;; ++189C8;TANGUT COMPONENT-457;Lo;0;L;;;;;N;;;;; ++189C9;TANGUT COMPONENT-458;Lo;0;L;;;;;N;;;;; ++189CA;TANGUT COMPONENT-459;Lo;0;L;;;;;N;;;;; ++189CB;TANGUT COMPONENT-460;Lo;0;L;;;;;N;;;;; ++189CC;TANGUT COMPONENT-461;Lo;0;L;;;;;N;;;;; ++189CD;TANGUT COMPONENT-462;Lo;0;L;;;;;N;;;;; ++189CE;TANGUT COMPONENT-463;Lo;0;L;;;;;N;;;;; ++189CF;TANGUT COMPONENT-464;Lo;0;L;;;;;N;;;;; ++189D0;TANGUT COMPONENT-465;Lo;0;L;;;;;N;;;;; ++189D1;TANGUT COMPONENT-466;Lo;0;L;;;;;N;;;;; ++189D2;TANGUT COMPONENT-467;Lo;0;L;;;;;N;;;;; ++189D3;TANGUT COMPONENT-468;Lo;0;L;;;;;N;;;;; ++189D4;TANGUT COMPONENT-469;Lo;0;L;;;;;N;;;;; ++189D5;TANGUT COMPONENT-470;Lo;0;L;;;;;N;;;;; ++189D6;TANGUT COMPONENT-471;Lo;0;L;;;;;N;;;;; ++189D7;TANGUT COMPONENT-472;Lo;0;L;;;;;N;;;;; ++189D8;TANGUT COMPONENT-473;Lo;0;L;;;;;N;;;;; ++189D9;TANGUT COMPONENT-474;Lo;0;L;;;;;N;;;;; ++189DA;TANGUT COMPONENT-475;Lo;0;L;;;;;N;;;;; ++189DB;TANGUT COMPONENT-476;Lo;0;L;;;;;N;;;;; ++189DC;TANGUT COMPONENT-477;Lo;0;L;;;;;N;;;;; ++189DD;TANGUT COMPONENT-478;Lo;0;L;;;;;N;;;;; ++189DE;TANGUT COMPONENT-479;Lo;0;L;;;;;N;;;;; ++189DF;TANGUT COMPONENT-480;Lo;0;L;;;;;N;;;;; ++189E0;TANGUT COMPONENT-481;Lo;0;L;;;;;N;;;;; ++189E1;TANGUT COMPONENT-482;Lo;0;L;;;;;N;;;;; ++189E2;TANGUT COMPONENT-483;Lo;0;L;;;;;N;;;;; ++189E3;TANGUT COMPONENT-484;Lo;0;L;;;;;N;;;;; ++189E4;TANGUT COMPONENT-485;Lo;0;L;;;;;N;;;;; ++189E5;TANGUT COMPONENT-486;Lo;0;L;;;;;N;;;;; ++189E6;TANGUT COMPONENT-487;Lo;0;L;;;;;N;;;;; ++189E7;TANGUT COMPONENT-488;Lo;0;L;;;;;N;;;;; ++189E8;TANGUT COMPONENT-489;Lo;0;L;;;;;N;;;;; ++189E9;TANGUT COMPONENT-490;Lo;0;L;;;;;N;;;;; ++189EA;TANGUT COMPONENT-491;Lo;0;L;;;;;N;;;;; ++189EB;TANGUT COMPONENT-492;Lo;0;L;;;;;N;;;;; ++189EC;TANGUT COMPONENT-493;Lo;0;L;;;;;N;;;;; ++189ED;TANGUT COMPONENT-494;Lo;0;L;;;;;N;;;;; ++189EE;TANGUT COMPONENT-495;Lo;0;L;;;;;N;;;;; ++189EF;TANGUT COMPONENT-496;Lo;0;L;;;;;N;;;;; ++189F0;TANGUT COMPONENT-497;Lo;0;L;;;;;N;;;;; ++189F1;TANGUT COMPONENT-498;Lo;0;L;;;;;N;;;;; ++189F2;TANGUT COMPONENT-499;Lo;0;L;;;;;N;;;;; ++189F3;TANGUT COMPONENT-500;Lo;0;L;;;;;N;;;;; ++189F4;TANGUT COMPONENT-501;Lo;0;L;;;;;N;;;;; ++189F5;TANGUT COMPONENT-502;Lo;0;L;;;;;N;;;;; ++189F6;TANGUT COMPONENT-503;Lo;0;L;;;;;N;;;;; ++189F7;TANGUT COMPONENT-504;Lo;0;L;;;;;N;;;;; ++189F8;TANGUT COMPONENT-505;Lo;0;L;;;;;N;;;;; ++189F9;TANGUT COMPONENT-506;Lo;0;L;;;;;N;;;;; ++189FA;TANGUT COMPONENT-507;Lo;0;L;;;;;N;;;;; ++189FB;TANGUT COMPONENT-508;Lo;0;L;;;;;N;;;;; ++189FC;TANGUT COMPONENT-509;Lo;0;L;;;;;N;;;;; ++189FD;TANGUT COMPONENT-510;Lo;0;L;;;;;N;;;;; ++189FE;TANGUT COMPONENT-511;Lo;0;L;;;;;N;;;;; ++189FF;TANGUT COMPONENT-512;Lo;0;L;;;;;N;;;;; ++18A00;TANGUT COMPONENT-513;Lo;0;L;;;;;N;;;;; ++18A01;TANGUT COMPONENT-514;Lo;0;L;;;;;N;;;;; ++18A02;TANGUT COMPONENT-515;Lo;0;L;;;;;N;;;;; ++18A03;TANGUT COMPONENT-516;Lo;0;L;;;;;N;;;;; ++18A04;TANGUT COMPONENT-517;Lo;0;L;;;;;N;;;;; ++18A05;TANGUT COMPONENT-518;Lo;0;L;;;;;N;;;;; ++18A06;TANGUT COMPONENT-519;Lo;0;L;;;;;N;;;;; ++18A07;TANGUT COMPONENT-520;Lo;0;L;;;;;N;;;;; ++18A08;TANGUT COMPONENT-521;Lo;0;L;;;;;N;;;;; ++18A09;TANGUT COMPONENT-522;Lo;0;L;;;;;N;;;;; ++18A0A;TANGUT COMPONENT-523;Lo;0;L;;;;;N;;;;; ++18A0B;TANGUT COMPONENT-524;Lo;0;L;;;;;N;;;;; ++18A0C;TANGUT COMPONENT-525;Lo;0;L;;;;;N;;;;; ++18A0D;TANGUT COMPONENT-526;Lo;0;L;;;;;N;;;;; ++18A0E;TANGUT COMPONENT-527;Lo;0;L;;;;;N;;;;; ++18A0F;TANGUT COMPONENT-528;Lo;0;L;;;;;N;;;;; ++18A10;TANGUT COMPONENT-529;Lo;0;L;;;;;N;;;;; ++18A11;TANGUT COMPONENT-530;Lo;0;L;;;;;N;;;;; ++18A12;TANGUT COMPONENT-531;Lo;0;L;;;;;N;;;;; ++18A13;TANGUT COMPONENT-532;Lo;0;L;;;;;N;;;;; ++18A14;TANGUT COMPONENT-533;Lo;0;L;;;;;N;;;;; ++18A15;TANGUT COMPONENT-534;Lo;0;L;;;;;N;;;;; ++18A16;TANGUT COMPONENT-535;Lo;0;L;;;;;N;;;;; ++18A17;TANGUT COMPONENT-536;Lo;0;L;;;;;N;;;;; ++18A18;TANGUT COMPONENT-537;Lo;0;L;;;;;N;;;;; ++18A19;TANGUT COMPONENT-538;Lo;0;L;;;;;N;;;;; ++18A1A;TANGUT COMPONENT-539;Lo;0;L;;;;;N;;;;; ++18A1B;TANGUT COMPONENT-540;Lo;0;L;;;;;N;;;;; ++18A1C;TANGUT COMPONENT-541;Lo;0;L;;;;;N;;;;; ++18A1D;TANGUT COMPONENT-542;Lo;0;L;;;;;N;;;;; ++18A1E;TANGUT COMPONENT-543;Lo;0;L;;;;;N;;;;; ++18A1F;TANGUT COMPONENT-544;Lo;0;L;;;;;N;;;;; ++18A20;TANGUT COMPONENT-545;Lo;0;L;;;;;N;;;;; ++18A21;TANGUT COMPONENT-546;Lo;0;L;;;;;N;;;;; ++18A22;TANGUT COMPONENT-547;Lo;0;L;;;;;N;;;;; ++18A23;TANGUT COMPONENT-548;Lo;0;L;;;;;N;;;;; ++18A24;TANGUT COMPONENT-549;Lo;0;L;;;;;N;;;;; ++18A25;TANGUT COMPONENT-550;Lo;0;L;;;;;N;;;;; ++18A26;TANGUT COMPONENT-551;Lo;0;L;;;;;N;;;;; ++18A27;TANGUT COMPONENT-552;Lo;0;L;;;;;N;;;;; ++18A28;TANGUT COMPONENT-553;Lo;0;L;;;;;N;;;;; ++18A29;TANGUT COMPONENT-554;Lo;0;L;;;;;N;;;;; ++18A2A;TANGUT COMPONENT-555;Lo;0;L;;;;;N;;;;; ++18A2B;TANGUT COMPONENT-556;Lo;0;L;;;;;N;;;;; ++18A2C;TANGUT COMPONENT-557;Lo;0;L;;;;;N;;;;; ++18A2D;TANGUT COMPONENT-558;Lo;0;L;;;;;N;;;;; ++18A2E;TANGUT COMPONENT-559;Lo;0;L;;;;;N;;;;; ++18A2F;TANGUT COMPONENT-560;Lo;0;L;;;;;N;;;;; ++18A30;TANGUT COMPONENT-561;Lo;0;L;;;;;N;;;;; ++18A31;TANGUT COMPONENT-562;Lo;0;L;;;;;N;;;;; ++18A32;TANGUT COMPONENT-563;Lo;0;L;;;;;N;;;;; ++18A33;TANGUT COMPONENT-564;Lo;0;L;;;;;N;;;;; ++18A34;TANGUT COMPONENT-565;Lo;0;L;;;;;N;;;;; ++18A35;TANGUT COMPONENT-566;Lo;0;L;;;;;N;;;;; ++18A36;TANGUT COMPONENT-567;Lo;0;L;;;;;N;;;;; ++18A37;TANGUT COMPONENT-568;Lo;0;L;;;;;N;;;;; ++18A38;TANGUT COMPONENT-569;Lo;0;L;;;;;N;;;;; ++18A39;TANGUT COMPONENT-570;Lo;0;L;;;;;N;;;;; ++18A3A;TANGUT COMPONENT-571;Lo;0;L;;;;;N;;;;; ++18A3B;TANGUT COMPONENT-572;Lo;0;L;;;;;N;;;;; ++18A3C;TANGUT COMPONENT-573;Lo;0;L;;;;;N;;;;; ++18A3D;TANGUT COMPONENT-574;Lo;0;L;;;;;N;;;;; ++18A3E;TANGUT COMPONENT-575;Lo;0;L;;;;;N;;;;; ++18A3F;TANGUT COMPONENT-576;Lo;0;L;;;;;N;;;;; ++18A40;TANGUT COMPONENT-577;Lo;0;L;;;;;N;;;;; ++18A41;TANGUT COMPONENT-578;Lo;0;L;;;;;N;;;;; ++18A42;TANGUT COMPONENT-579;Lo;0;L;;;;;N;;;;; ++18A43;TANGUT COMPONENT-580;Lo;0;L;;;;;N;;;;; ++18A44;TANGUT COMPONENT-581;Lo;0;L;;;;;N;;;;; ++18A45;TANGUT COMPONENT-582;Lo;0;L;;;;;N;;;;; ++18A46;TANGUT COMPONENT-583;Lo;0;L;;;;;N;;;;; ++18A47;TANGUT COMPONENT-584;Lo;0;L;;;;;N;;;;; ++18A48;TANGUT COMPONENT-585;Lo;0;L;;;;;N;;;;; ++18A49;TANGUT COMPONENT-586;Lo;0;L;;;;;N;;;;; ++18A4A;TANGUT COMPONENT-587;Lo;0;L;;;;;N;;;;; ++18A4B;TANGUT COMPONENT-588;Lo;0;L;;;;;N;;;;; ++18A4C;TANGUT COMPONENT-589;Lo;0;L;;;;;N;;;;; ++18A4D;TANGUT COMPONENT-590;Lo;0;L;;;;;N;;;;; ++18A4E;TANGUT COMPONENT-591;Lo;0;L;;;;;N;;;;; ++18A4F;TANGUT COMPONENT-592;Lo;0;L;;;;;N;;;;; ++18A50;TANGUT COMPONENT-593;Lo;0;L;;;;;N;;;;; ++18A51;TANGUT COMPONENT-594;Lo;0;L;;;;;N;;;;; ++18A52;TANGUT COMPONENT-595;Lo;0;L;;;;;N;;;;; ++18A53;TANGUT COMPONENT-596;Lo;0;L;;;;;N;;;;; ++18A54;TANGUT COMPONENT-597;Lo;0;L;;;;;N;;;;; ++18A55;TANGUT COMPONENT-598;Lo;0;L;;;;;N;;;;; ++18A56;TANGUT COMPONENT-599;Lo;0;L;;;;;N;;;;; ++18A57;TANGUT COMPONENT-600;Lo;0;L;;;;;N;;;;; ++18A58;TANGUT COMPONENT-601;Lo;0;L;;;;;N;;;;; ++18A59;TANGUT COMPONENT-602;Lo;0;L;;;;;N;;;;; ++18A5A;TANGUT COMPONENT-603;Lo;0;L;;;;;N;;;;; ++18A5B;TANGUT COMPONENT-604;Lo;0;L;;;;;N;;;;; ++18A5C;TANGUT COMPONENT-605;Lo;0;L;;;;;N;;;;; ++18A5D;TANGUT COMPONENT-606;Lo;0;L;;;;;N;;;;; ++18A5E;TANGUT COMPONENT-607;Lo;0;L;;;;;N;;;;; ++18A5F;TANGUT COMPONENT-608;Lo;0;L;;;;;N;;;;; ++18A60;TANGUT COMPONENT-609;Lo;0;L;;;;;N;;;;; ++18A61;TANGUT COMPONENT-610;Lo;0;L;;;;;N;;;;; ++18A62;TANGUT COMPONENT-611;Lo;0;L;;;;;N;;;;; ++18A63;TANGUT COMPONENT-612;Lo;0;L;;;;;N;;;;; ++18A64;TANGUT COMPONENT-613;Lo;0;L;;;;;N;;;;; ++18A65;TANGUT COMPONENT-614;Lo;0;L;;;;;N;;;;; ++18A66;TANGUT COMPONENT-615;Lo;0;L;;;;;N;;;;; ++18A67;TANGUT COMPONENT-616;Lo;0;L;;;;;N;;;;; ++18A68;TANGUT COMPONENT-617;Lo;0;L;;;;;N;;;;; ++18A69;TANGUT COMPONENT-618;Lo;0;L;;;;;N;;;;; ++18A6A;TANGUT COMPONENT-619;Lo;0;L;;;;;N;;;;; ++18A6B;TANGUT COMPONENT-620;Lo;0;L;;;;;N;;;;; ++18A6C;TANGUT COMPONENT-621;Lo;0;L;;;;;N;;;;; ++18A6D;TANGUT COMPONENT-622;Lo;0;L;;;;;N;;;;; ++18A6E;TANGUT COMPONENT-623;Lo;0;L;;;;;N;;;;; ++18A6F;TANGUT COMPONENT-624;Lo;0;L;;;;;N;;;;; ++18A70;TANGUT COMPONENT-625;Lo;0;L;;;;;N;;;;; ++18A71;TANGUT COMPONENT-626;Lo;0;L;;;;;N;;;;; ++18A72;TANGUT COMPONENT-627;Lo;0;L;;;;;N;;;;; ++18A73;TANGUT COMPONENT-628;Lo;0;L;;;;;N;;;;; ++18A74;TANGUT COMPONENT-629;Lo;0;L;;;;;N;;;;; ++18A75;TANGUT COMPONENT-630;Lo;0;L;;;;;N;;;;; ++18A76;TANGUT COMPONENT-631;Lo;0;L;;;;;N;;;;; ++18A77;TANGUT COMPONENT-632;Lo;0;L;;;;;N;;;;; ++18A78;TANGUT COMPONENT-633;Lo;0;L;;;;;N;;;;; ++18A79;TANGUT COMPONENT-634;Lo;0;L;;;;;N;;;;; ++18A7A;TANGUT COMPONENT-635;Lo;0;L;;;;;N;;;;; ++18A7B;TANGUT COMPONENT-636;Lo;0;L;;;;;N;;;;; ++18A7C;TANGUT COMPONENT-637;Lo;0;L;;;;;N;;;;; ++18A7D;TANGUT COMPONENT-638;Lo;0;L;;;;;N;;;;; ++18A7E;TANGUT COMPONENT-639;Lo;0;L;;;;;N;;;;; ++18A7F;TANGUT COMPONENT-640;Lo;0;L;;;;;N;;;;; ++18A80;TANGUT COMPONENT-641;Lo;0;L;;;;;N;;;;; ++18A81;TANGUT COMPONENT-642;Lo;0;L;;;;;N;;;;; ++18A82;TANGUT COMPONENT-643;Lo;0;L;;;;;N;;;;; ++18A83;TANGUT COMPONENT-644;Lo;0;L;;;;;N;;;;; ++18A84;TANGUT COMPONENT-645;Lo;0;L;;;;;N;;;;; ++18A85;TANGUT COMPONENT-646;Lo;0;L;;;;;N;;;;; ++18A86;TANGUT COMPONENT-647;Lo;0;L;;;;;N;;;;; ++18A87;TANGUT COMPONENT-648;Lo;0;L;;;;;N;;;;; ++18A88;TANGUT COMPONENT-649;Lo;0;L;;;;;N;;;;; ++18A89;TANGUT COMPONENT-650;Lo;0;L;;;;;N;;;;; ++18A8A;TANGUT COMPONENT-651;Lo;0;L;;;;;N;;;;; ++18A8B;TANGUT COMPONENT-652;Lo;0;L;;;;;N;;;;; ++18A8C;TANGUT COMPONENT-653;Lo;0;L;;;;;N;;;;; ++18A8D;TANGUT COMPONENT-654;Lo;0;L;;;;;N;;;;; ++18A8E;TANGUT COMPONENT-655;Lo;0;L;;;;;N;;;;; ++18A8F;TANGUT COMPONENT-656;Lo;0;L;;;;;N;;;;; ++18A90;TANGUT COMPONENT-657;Lo;0;L;;;;;N;;;;; ++18A91;TANGUT COMPONENT-658;Lo;0;L;;;;;N;;;;; ++18A92;TANGUT COMPONENT-659;Lo;0;L;;;;;N;;;;; ++18A93;TANGUT COMPONENT-660;Lo;0;L;;;;;N;;;;; ++18A94;TANGUT COMPONENT-661;Lo;0;L;;;;;N;;;;; ++18A95;TANGUT COMPONENT-662;Lo;0;L;;;;;N;;;;; ++18A96;TANGUT COMPONENT-663;Lo;0;L;;;;;N;;;;; ++18A97;TANGUT COMPONENT-664;Lo;0;L;;;;;N;;;;; ++18A98;TANGUT COMPONENT-665;Lo;0;L;;;;;N;;;;; ++18A99;TANGUT COMPONENT-666;Lo;0;L;;;;;N;;;;; ++18A9A;TANGUT COMPONENT-667;Lo;0;L;;;;;N;;;;; ++18A9B;TANGUT COMPONENT-668;Lo;0;L;;;;;N;;;;; ++18A9C;TANGUT COMPONENT-669;Lo;0;L;;;;;N;;;;; ++18A9D;TANGUT COMPONENT-670;Lo;0;L;;;;;N;;;;; ++18A9E;TANGUT COMPONENT-671;Lo;0;L;;;;;N;;;;; ++18A9F;TANGUT COMPONENT-672;Lo;0;L;;;;;N;;;;; ++18AA0;TANGUT COMPONENT-673;Lo;0;L;;;;;N;;;;; ++18AA1;TANGUT COMPONENT-674;Lo;0;L;;;;;N;;;;; ++18AA2;TANGUT COMPONENT-675;Lo;0;L;;;;;N;;;;; ++18AA3;TANGUT COMPONENT-676;Lo;0;L;;;;;N;;;;; ++18AA4;TANGUT COMPONENT-677;Lo;0;L;;;;;N;;;;; ++18AA5;TANGUT COMPONENT-678;Lo;0;L;;;;;N;;;;; ++18AA6;TANGUT COMPONENT-679;Lo;0;L;;;;;N;;;;; ++18AA7;TANGUT COMPONENT-680;Lo;0;L;;;;;N;;;;; ++18AA8;TANGUT COMPONENT-681;Lo;0;L;;;;;N;;;;; ++18AA9;TANGUT COMPONENT-682;Lo;0;L;;;;;N;;;;; ++18AAA;TANGUT COMPONENT-683;Lo;0;L;;;;;N;;;;; ++18AAB;TANGUT COMPONENT-684;Lo;0;L;;;;;N;;;;; ++18AAC;TANGUT COMPONENT-685;Lo;0;L;;;;;N;;;;; ++18AAD;TANGUT COMPONENT-686;Lo;0;L;;;;;N;;;;; ++18AAE;TANGUT COMPONENT-687;Lo;0;L;;;;;N;;;;; ++18AAF;TANGUT COMPONENT-688;Lo;0;L;;;;;N;;;;; ++18AB0;TANGUT COMPONENT-689;Lo;0;L;;;;;N;;;;; ++18AB1;TANGUT COMPONENT-690;Lo;0;L;;;;;N;;;;; ++18AB2;TANGUT COMPONENT-691;Lo;0;L;;;;;N;;;;; ++18AB3;TANGUT COMPONENT-692;Lo;0;L;;;;;N;;;;; ++18AB4;TANGUT COMPONENT-693;Lo;0;L;;;;;N;;;;; ++18AB5;TANGUT COMPONENT-694;Lo;0;L;;;;;N;;;;; ++18AB6;TANGUT COMPONENT-695;Lo;0;L;;;;;N;;;;; ++18AB7;TANGUT COMPONENT-696;Lo;0;L;;;;;N;;;;; ++18AB8;TANGUT COMPONENT-697;Lo;0;L;;;;;N;;;;; ++18AB9;TANGUT COMPONENT-698;Lo;0;L;;;;;N;;;;; ++18ABA;TANGUT COMPONENT-699;Lo;0;L;;;;;N;;;;; ++18ABB;TANGUT COMPONENT-700;Lo;0;L;;;;;N;;;;; ++18ABC;TANGUT COMPONENT-701;Lo;0;L;;;;;N;;;;; ++18ABD;TANGUT COMPONENT-702;Lo;0;L;;;;;N;;;;; ++18ABE;TANGUT COMPONENT-703;Lo;0;L;;;;;N;;;;; ++18ABF;TANGUT COMPONENT-704;Lo;0;L;;;;;N;;;;; ++18AC0;TANGUT COMPONENT-705;Lo;0;L;;;;;N;;;;; ++18AC1;TANGUT COMPONENT-706;Lo;0;L;;;;;N;;;;; ++18AC2;TANGUT COMPONENT-707;Lo;0;L;;;;;N;;;;; ++18AC3;TANGUT COMPONENT-708;Lo;0;L;;;;;N;;;;; ++18AC4;TANGUT COMPONENT-709;Lo;0;L;;;;;N;;;;; ++18AC5;TANGUT COMPONENT-710;Lo;0;L;;;;;N;;;;; ++18AC6;TANGUT COMPONENT-711;Lo;0;L;;;;;N;;;;; ++18AC7;TANGUT COMPONENT-712;Lo;0;L;;;;;N;;;;; ++18AC8;TANGUT COMPONENT-713;Lo;0;L;;;;;N;;;;; ++18AC9;TANGUT COMPONENT-714;Lo;0;L;;;;;N;;;;; ++18ACA;TANGUT COMPONENT-715;Lo;0;L;;;;;N;;;;; ++18ACB;TANGUT COMPONENT-716;Lo;0;L;;;;;N;;;;; ++18ACC;TANGUT COMPONENT-717;Lo;0;L;;;;;N;;;;; ++18ACD;TANGUT COMPONENT-718;Lo;0;L;;;;;N;;;;; ++18ACE;TANGUT COMPONENT-719;Lo;0;L;;;;;N;;;;; ++18ACF;TANGUT COMPONENT-720;Lo;0;L;;;;;N;;;;; ++18AD0;TANGUT COMPONENT-721;Lo;0;L;;;;;N;;;;; ++18AD1;TANGUT COMPONENT-722;Lo;0;L;;;;;N;;;;; ++18AD2;TANGUT COMPONENT-723;Lo;0;L;;;;;N;;;;; ++18AD3;TANGUT COMPONENT-724;Lo;0;L;;;;;N;;;;; ++18AD4;TANGUT COMPONENT-725;Lo;0;L;;;;;N;;;;; ++18AD5;TANGUT COMPONENT-726;Lo;0;L;;;;;N;;;;; ++18AD6;TANGUT COMPONENT-727;Lo;0;L;;;;;N;;;;; ++18AD7;TANGUT COMPONENT-728;Lo;0;L;;;;;N;;;;; ++18AD8;TANGUT COMPONENT-729;Lo;0;L;;;;;N;;;;; ++18AD9;TANGUT COMPONENT-730;Lo;0;L;;;;;N;;;;; ++18ADA;TANGUT COMPONENT-731;Lo;0;L;;;;;N;;;;; ++18ADB;TANGUT COMPONENT-732;Lo;0;L;;;;;N;;;;; ++18ADC;TANGUT COMPONENT-733;Lo;0;L;;;;;N;;;;; ++18ADD;TANGUT COMPONENT-734;Lo;0;L;;;;;N;;;;; ++18ADE;TANGUT COMPONENT-735;Lo;0;L;;;;;N;;;;; ++18ADF;TANGUT COMPONENT-736;Lo;0;L;;;;;N;;;;; ++18AE0;TANGUT COMPONENT-737;Lo;0;L;;;;;N;;;;; ++18AE1;TANGUT COMPONENT-738;Lo;0;L;;;;;N;;;;; ++18AE2;TANGUT COMPONENT-739;Lo;0;L;;;;;N;;;;; ++18AE3;TANGUT COMPONENT-740;Lo;0;L;;;;;N;;;;; ++18AE4;TANGUT COMPONENT-741;Lo;0;L;;;;;N;;;;; ++18AE5;TANGUT COMPONENT-742;Lo;0;L;;;;;N;;;;; ++18AE6;TANGUT COMPONENT-743;Lo;0;L;;;;;N;;;;; ++18AE7;TANGUT COMPONENT-744;Lo;0;L;;;;;N;;;;; ++18AE8;TANGUT COMPONENT-745;Lo;0;L;;;;;N;;;;; ++18AE9;TANGUT COMPONENT-746;Lo;0;L;;;;;N;;;;; ++18AEA;TANGUT COMPONENT-747;Lo;0;L;;;;;N;;;;; ++18AEB;TANGUT COMPONENT-748;Lo;0;L;;;;;N;;;;; ++18AEC;TANGUT COMPONENT-749;Lo;0;L;;;;;N;;;;; ++18AED;TANGUT COMPONENT-750;Lo;0;L;;;;;N;;;;; ++18AEE;TANGUT COMPONENT-751;Lo;0;L;;;;;N;;;;; ++18AEF;TANGUT COMPONENT-752;Lo;0;L;;;;;N;;;;; ++18AF0;TANGUT COMPONENT-753;Lo;0;L;;;;;N;;;;; ++18AF1;TANGUT COMPONENT-754;Lo;0;L;;;;;N;;;;; ++18AF2;TANGUT COMPONENT-755;Lo;0;L;;;;;N;;;;; + 1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;; + 1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;; + 1BC00;DUPLOYAN LETTER H;Lo;0;L;;;;;N;;;;; +@@ -26154,6 +27313,44 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1DAAD;SIGNWRITING ROTATION MODIFIER-14;Mn;0;NSM;;;;;N;;;;; + 1DAAE;SIGNWRITING ROTATION MODIFIER-15;Mn;0;NSM;;;;;N;;;;; + 1DAAF;SIGNWRITING ROTATION MODIFIER-16;Mn;0;NSM;;;;;N;;;;; ++1E000;COMBINING GLAGOLITIC LETTER AZU;Mn;230;NSM;;;;;N;;;;; ++1E001;COMBINING GLAGOLITIC LETTER BUKY;Mn;230;NSM;;;;;N;;;;; ++1E002;COMBINING GLAGOLITIC LETTER VEDE;Mn;230;NSM;;;;;N;;;;; ++1E003;COMBINING GLAGOLITIC LETTER GLAGOLI;Mn;230;NSM;;;;;N;;;;; ++1E004;COMBINING GLAGOLITIC LETTER DOBRO;Mn;230;NSM;;;;;N;;;;; ++1E005;COMBINING GLAGOLITIC LETTER YESTU;Mn;230;NSM;;;;;N;;;;; ++1E006;COMBINING GLAGOLITIC LETTER ZHIVETE;Mn;230;NSM;;;;;N;;;;; ++1E008;COMBINING GLAGOLITIC LETTER ZEMLJA;Mn;230;NSM;;;;;N;;;;; ++1E009;COMBINING GLAGOLITIC LETTER IZHE;Mn;230;NSM;;;;;N;;;;; ++1E00A;COMBINING GLAGOLITIC LETTER INITIAL IZHE;Mn;230;NSM;;;;;N;;;;; ++1E00B;COMBINING GLAGOLITIC LETTER I;Mn;230;NSM;;;;;N;;;;; ++1E00C;COMBINING GLAGOLITIC LETTER DJERVI;Mn;230;NSM;;;;;N;;;;; ++1E00D;COMBINING GLAGOLITIC LETTER KAKO;Mn;230;NSM;;;;;N;;;;; ++1E00E;COMBINING GLAGOLITIC LETTER LJUDIJE;Mn;230;NSM;;;;;N;;;;; ++1E00F;COMBINING GLAGOLITIC LETTER MYSLITE;Mn;230;NSM;;;;;N;;;;; ++1E010;COMBINING GLAGOLITIC LETTER NASHI;Mn;230;NSM;;;;;N;;;;; ++1E011;COMBINING GLAGOLITIC LETTER ONU;Mn;230;NSM;;;;;N;;;;; ++1E012;COMBINING GLAGOLITIC LETTER POKOJI;Mn;230;NSM;;;;;N;;;;; ++1E013;COMBINING GLAGOLITIC LETTER RITSI;Mn;230;NSM;;;;;N;;;;; ++1E014;COMBINING GLAGOLITIC LETTER SLOVO;Mn;230;NSM;;;;;N;;;;; ++1E015;COMBINING GLAGOLITIC LETTER TVRIDO;Mn;230;NSM;;;;;N;;;;; ++1E016;COMBINING GLAGOLITIC LETTER UKU;Mn;230;NSM;;;;;N;;;;; ++1E017;COMBINING GLAGOLITIC LETTER FRITU;Mn;230;NSM;;;;;N;;;;; ++1E018;COMBINING GLAGOLITIC LETTER HERU;Mn;230;NSM;;;;;N;;;;; ++1E01B;COMBINING GLAGOLITIC LETTER SHTA;Mn;230;NSM;;;;;N;;;;; ++1E01C;COMBINING GLAGOLITIC LETTER TSI;Mn;230;NSM;;;;;N;;;;; ++1E01D;COMBINING GLAGOLITIC LETTER CHRIVI;Mn;230;NSM;;;;;N;;;;; ++1E01E;COMBINING GLAGOLITIC LETTER SHA;Mn;230;NSM;;;;;N;;;;; ++1E01F;COMBINING GLAGOLITIC LETTER YERU;Mn;230;NSM;;;;;N;;;;; ++1E020;COMBINING GLAGOLITIC LETTER YERI;Mn;230;NSM;;;;;N;;;;; ++1E021;COMBINING GLAGOLITIC LETTER YATI;Mn;230;NSM;;;;;N;;;;; ++1E023;COMBINING GLAGOLITIC LETTER YU;Mn;230;NSM;;;;;N;;;;; ++1E024;COMBINING GLAGOLITIC LETTER SMALL YUS;Mn;230;NSM;;;;;N;;;;; ++1E026;COMBINING GLAGOLITIC LETTER YO;Mn;230;NSM;;;;;N;;;;; ++1E027;COMBINING GLAGOLITIC LETTER IOTATED SMALL YUS;Mn;230;NSM;;;;;N;;;;; ++1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;; ++1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;; ++1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;; + 1E800;MENDE KIKAKUI SYLLABLE M001 KI;Lo;0;R;;;;;N;;;;; + 1E801;MENDE KIKAKUI SYLLABLE M002 KA;Lo;0;R;;;;;N;;;;; + 1E802;MENDE KIKAKUI SYLLABLE M003 KU;Lo;0;R;;;;;N;;;;; +@@ -26367,6 +27564,93 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1E8D4;MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS;Mn;220;NSM;;;;;N;;;;; + 1E8D5;MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS;Mn;220;NSM;;;;;N;;;;; + 1E8D6;MENDE KIKAKUI COMBINING NUMBER MILLIONS;Mn;220;NSM;;;;;N;;;;; ++1E900;ADLAM CAPITAL LETTER ALIF;Lu;0;R;;;;;N;;;;1E922; ++1E901;ADLAM CAPITAL LETTER DAALI;Lu;0;R;;;;;N;;;;1E923; ++1E902;ADLAM CAPITAL LETTER LAAM;Lu;0;R;;;;;N;;;;1E924; ++1E903;ADLAM CAPITAL LETTER MIIM;Lu;0;R;;;;;N;;;;1E925; ++1E904;ADLAM CAPITAL LETTER BA;Lu;0;R;;;;;N;;;;1E926; ++1E905;ADLAM CAPITAL LETTER SINNYIIYHE;Lu;0;R;;;;;N;;;;1E927; ++1E906;ADLAM CAPITAL LETTER PE;Lu;0;R;;;;;N;;;;1E928; ++1E907;ADLAM CAPITAL LETTER BHE;Lu;0;R;;;;;N;;;;1E929; ++1E908;ADLAM CAPITAL LETTER RA;Lu;0;R;;;;;N;;;;1E92A; ++1E909;ADLAM CAPITAL LETTER E;Lu;0;R;;;;;N;;;;1E92B; ++1E90A;ADLAM CAPITAL LETTER FA;Lu;0;R;;;;;N;;;;1E92C; ++1E90B;ADLAM CAPITAL LETTER I;Lu;0;R;;;;;N;;;;1E92D; ++1E90C;ADLAM CAPITAL LETTER O;Lu;0;R;;;;;N;;;;1E92E; ++1E90D;ADLAM CAPITAL LETTER DHA;Lu;0;R;;;;;N;;;;1E92F; ++1E90E;ADLAM CAPITAL LETTER YHE;Lu;0;R;;;;;N;;;;1E930; ++1E90F;ADLAM CAPITAL LETTER WAW;Lu;0;R;;;;;N;;;;1E931; ++1E910;ADLAM CAPITAL LETTER NUN;Lu;0;R;;;;;N;;;;1E932; ++1E911;ADLAM CAPITAL LETTER KAF;Lu;0;R;;;;;N;;;;1E933; ++1E912;ADLAM CAPITAL LETTER YA;Lu;0;R;;;;;N;;;;1E934; ++1E913;ADLAM CAPITAL LETTER U;Lu;0;R;;;;;N;;;;1E935; ++1E914;ADLAM CAPITAL LETTER JIIM;Lu;0;R;;;;;N;;;;1E936; ++1E915;ADLAM CAPITAL LETTER CHI;Lu;0;R;;;;;N;;;;1E937; ++1E916;ADLAM CAPITAL LETTER HA;Lu;0;R;;;;;N;;;;1E938; ++1E917;ADLAM CAPITAL LETTER QAAF;Lu;0;R;;;;;N;;;;1E939; ++1E918;ADLAM CAPITAL LETTER GA;Lu;0;R;;;;;N;;;;1E93A; ++1E919;ADLAM CAPITAL LETTER NYA;Lu;0;R;;;;;N;;;;1E93B; ++1E91A;ADLAM CAPITAL LETTER TU;Lu;0;R;;;;;N;;;;1E93C; ++1E91B;ADLAM CAPITAL LETTER NHA;Lu;0;R;;;;;N;;;;1E93D; ++1E91C;ADLAM CAPITAL LETTER VA;Lu;0;R;;;;;N;;;;1E93E; ++1E91D;ADLAM CAPITAL LETTER KHA;Lu;0;R;;;;;N;;;;1E93F; ++1E91E;ADLAM CAPITAL LETTER GBE;Lu;0;R;;;;;N;;;;1E940; ++1E91F;ADLAM CAPITAL LETTER ZAL;Lu;0;R;;;;;N;;;;1E941; ++1E920;ADLAM CAPITAL LETTER KPO;Lu;0;R;;;;;N;;;;1E942; ++1E921;ADLAM CAPITAL LETTER SHA;Lu;0;R;;;;;N;;;;1E943; ++1E922;ADLAM SMALL LETTER ALIF;Ll;0;R;;;;;N;;;1E900;;1E900 ++1E923;ADLAM SMALL LETTER DAALI;Ll;0;R;;;;;N;;;1E901;;1E901 ++1E924;ADLAM SMALL LETTER LAAM;Ll;0;R;;;;;N;;;1E902;;1E902 ++1E925;ADLAM SMALL LETTER MIIM;Ll;0;R;;;;;N;;;1E903;;1E903 ++1E926;ADLAM SMALL LETTER BA;Ll;0;R;;;;;N;;;1E904;;1E904 ++1E927;ADLAM SMALL LETTER SINNYIIYHE;Ll;0;R;;;;;N;;;1E905;;1E905 ++1E928;ADLAM SMALL LETTER PE;Ll;0;R;;;;;N;;;1E906;;1E906 ++1E929;ADLAM SMALL LETTER BHE;Ll;0;R;;;;;N;;;1E907;;1E907 ++1E92A;ADLAM SMALL LETTER RA;Ll;0;R;;;;;N;;;1E908;;1E908 ++1E92B;ADLAM SMALL LETTER E;Ll;0;R;;;;;N;;;1E909;;1E909 ++1E92C;ADLAM SMALL LETTER FA;Ll;0;R;;;;;N;;;1E90A;;1E90A ++1E92D;ADLAM SMALL LETTER I;Ll;0;R;;;;;N;;;1E90B;;1E90B ++1E92E;ADLAM SMALL LETTER O;Ll;0;R;;;;;N;;;1E90C;;1E90C ++1E92F;ADLAM SMALL LETTER DHA;Ll;0;R;;;;;N;;;1E90D;;1E90D ++1E930;ADLAM SMALL LETTER YHE;Ll;0;R;;;;;N;;;1E90E;;1E90E ++1E931;ADLAM SMALL LETTER WAW;Ll;0;R;;;;;N;;;1E90F;;1E90F ++1E932;ADLAM SMALL LETTER NUN;Ll;0;R;;;;;N;;;1E910;;1E910 ++1E933;ADLAM SMALL LETTER KAF;Ll;0;R;;;;;N;;;1E911;;1E911 ++1E934;ADLAM SMALL LETTER YA;Ll;0;R;;;;;N;;;1E912;;1E912 ++1E935;ADLAM SMALL LETTER U;Ll;0;R;;;;;N;;;1E913;;1E913 ++1E936;ADLAM SMALL LETTER JIIM;Ll;0;R;;;;;N;;;1E914;;1E914 ++1E937;ADLAM SMALL LETTER CHI;Ll;0;R;;;;;N;;;1E915;;1E915 ++1E938;ADLAM SMALL LETTER HA;Ll;0;R;;;;;N;;;1E916;;1E916 ++1E939;ADLAM SMALL LETTER QAAF;Ll;0;R;;;;;N;;;1E917;;1E917 ++1E93A;ADLAM SMALL LETTER GA;Ll;0;R;;;;;N;;;1E918;;1E918 ++1E93B;ADLAM SMALL LETTER NYA;Ll;0;R;;;;;N;;;1E919;;1E919 ++1E93C;ADLAM SMALL LETTER TU;Ll;0;R;;;;;N;;;1E91A;;1E91A ++1E93D;ADLAM SMALL LETTER NHA;Ll;0;R;;;;;N;;;1E91B;;1E91B ++1E93E;ADLAM SMALL LETTER VA;Ll;0;R;;;;;N;;;1E91C;;1E91C ++1E93F;ADLAM SMALL LETTER KHA;Ll;0;R;;;;;N;;;1E91D;;1E91D ++1E940;ADLAM SMALL LETTER GBE;Ll;0;R;;;;;N;;;1E91E;;1E91E ++1E941;ADLAM SMALL LETTER ZAL;Ll;0;R;;;;;N;;;1E91F;;1E91F ++1E942;ADLAM SMALL LETTER KPO;Ll;0;R;;;;;N;;;1E920;;1E920 ++1E943;ADLAM SMALL LETTER SHA;Ll;0;R;;;;;N;;;1E921;;1E921 ++1E944;ADLAM ALIF LENGTHENER;Mn;230;NSM;;;;;N;;;;; ++1E945;ADLAM VOWEL LENGTHENER;Mn;230;NSM;;;;;N;;;;; ++1E946;ADLAM GEMINATION MARK;Mn;230;NSM;;;;;N;;;;; ++1E947;ADLAM HAMZA;Mn;230;NSM;;;;;N;;;;; ++1E948;ADLAM CONSONANT MODIFIER;Mn;230;NSM;;;;;N;;;;; ++1E949;ADLAM GEMINATE CONSONANT MODIFIER;Mn;230;NSM;;;;;N;;;;; ++1E94A;ADLAM NUKTA;Mn;7;NSM;;;;;N;;;;; ++1E950;ADLAM DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;; ++1E951;ADLAM DIGIT ONE;Nd;0;R;;1;1;1;N;;;;; ++1E952;ADLAM DIGIT TWO;Nd;0;R;;2;2;2;N;;;;; ++1E953;ADLAM DIGIT THREE;Nd;0;R;;3;3;3;N;;;;; ++1E954;ADLAM DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;; ++1E955;ADLAM DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;; ++1E956;ADLAM DIGIT SIX;Nd;0;R;;6;6;6;N;;;;; ++1E957;ADLAM DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;; ++1E958;ADLAM DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;; ++1E959;ADLAM DIGIT NINE;Nd;0;R;;9;9;9;N;;;;; ++1E95E;ADLAM INITIAL EXCLAMATION MARK;Po;0;R;;;;;N;;;;; ++1E95F;ADLAM INITIAL QUESTION MARK;Po;0;R;;;;;N;;;;; + 1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL; 0627;;;;N;;;;; + 1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL; 0628;;;;N;;;;; + 1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL; 062C;;;;N;;;;; +@@ -26883,6 +28167,24 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F198;SQUARED SOS;So;0;L;;;;;N;;;;; + 1F199;SQUARED UP WITH EXCLAMATION MARK;So;0;L;;;;;N;;;;; + 1F19A;SQUARED VS;So;0;L;;;;;N;;;;; ++1F19B;SQUARED THREE D;So;0;L;;;;;N;;;;; ++1F19C;SQUARED SECOND SCREEN;So;0;L;;;;;N;;;;; ++1F19D;SQUARED TWO K;So;0;L;;;;;N;;;;; ++1F19E;SQUARED FOUR K;So;0;L;;;;;N;;;;; ++1F19F;SQUARED EIGHT K;So;0;L;;;;;N;;;;; ++1F1A0;SQUARED FIVE POINT ONE;So;0;L;;;;;N;;;;; ++1F1A1;SQUARED SEVEN POINT ONE;So;0;L;;;;;N;;;;; ++1F1A2;SQUARED TWENTY-TWO POINT TWO;So;0;L;;;;;N;;;;; ++1F1A3;SQUARED SIXTY P;So;0;L;;;;;N;;;;; ++1F1A4;SQUARED ONE HUNDRED TWENTY P;So;0;L;;;;;N;;;;; ++1F1A5;SQUARED LATIN SMALL LETTER D;So;0;L;;;;;N;;;;; ++1F1A6;SQUARED HC;So;0;L;;;;;N;;;;; ++1F1A7;SQUARED HDR;So;0;L;;;;;N;;;;; ++1F1A8;SQUARED HI-RES;So;0;L;;;;;N;;;;; ++1F1A9;SQUARED LOSSLESS;So;0;L;;;;;N;;;;; ++1F1AA;SQUARED SHV;So;0;L;;;;;N;;;;; ++1F1AB;SQUARED UHD;So;0;L;;;;;N;;;;; ++1F1AC;SQUARED VOD;So;0;L;;;;;N;;;;; + 1F1E6;REGIONAL INDICATOR SYMBOL LETTER A;So;0;L;;;;;N;;;;; + 1F1E7;REGIONAL INDICATOR SYMBOL LETTER B;So;0;L;;;;;N;;;;; + 1F1E8;REGIONAL INDICATOR SYMBOL LETTER C;So;0;L;;;;;N;;;;; +@@ -26955,6 +28257,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F238;SQUARED CJK UNIFIED IDEOGRAPH-7533;So;0;L; 7533;;;;N;;;;; + 1F239;SQUARED CJK UNIFIED IDEOGRAPH-5272;So;0;L; 5272;;;;N;;;;; + 1F23A;SQUARED CJK UNIFIED IDEOGRAPH-55B6;So;0;L; 55B6;;;;N;;;;; ++1F23B;SQUARED CJK UNIFIED IDEOGRAPH-914D;So;0;L; 914D;;;;N;;;;; + 1F240;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C;So;0;L; 3014 672C 3015;;;;N;;;;; + 1F241;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09;So;0;L; 3014 4E09 3015;;;;N;;;;; + 1F242;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L; 3014 4E8C 3015;;;;N;;;;; +@@ -27600,6 +28903,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F577;SPIDER;So;0;ON;;;;;N;;;;; + 1F578;SPIDER WEB;So;0;ON;;;;;N;;;;; + 1F579;JOYSTICK;So;0;ON;;;;;N;;;;; ++1F57A;MAN DANCING;So;0;ON;;;;;N;;;;; + 1F57B;LEFT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;; + 1F57C;TELEPHONE RECEIVER WITH PAGE;So;0;ON;;;;;N;;;;; + 1F57D;RIGHT HAND TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;; +@@ -27641,6 +28945,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F5A1;SIDEWAYS BLACK DOWN POINTING INDEX;So;0;ON;;;;;N;;;;; + 1F5A2;BLACK UP POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; + 1F5A3;BLACK DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;; ++1F5A4;BLACK HEART;So;0;ON;;;;;N;;;;; + 1F5A5;DESKTOP COMPUTER;So;0;ON;;;;;N;;;;; + 1F5A6;KEYBOARD AND MOUSE;So;0;ON;;;;;N;;;;; + 1F5A7;THREE NETWORKED COMPUTERS;So;0;ON;;;;;N;;;;; +@@ -27941,6 +29246,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F6CE;BELLHOP BELL;So;0;ON;;;;;N;;;;; + 1F6CF;BED;So;0;ON;;;;;N;;;;; + 1F6D0;PLACE OF WORSHIP;So;0;ON;;;;;N;;;;; ++1F6D1;OCTAGONAL SIGN;So;0;ON;;;;;N;;;;; ++1F6D2;SHOPPING TROLLEY;So;0;ON;;;;;N;;;;; + 1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;; + 1F6E1;SHIELD;So;0;ON;;;;;N;;;;; + 1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;; +@@ -27958,6 +29265,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F6F1;ONCOMING FIRE ENGINE;So;0;ON;;;;;N;;;;; + 1F6F2;DIESEL LOCOMOTIVE;So;0;ON;;;;;N;;;;; + 1F6F3;PASSENGER SHIP;So;0;ON;;;;;N;;;;; ++1F6F4;SCOOTER;So;0;ON;;;;;N;;;;; ++1F6F5;MOTOR SCOOTER;So;0;ON;;;;;N;;;;; ++1F6F6;CANOE;So;0;ON;;;;;N;;;;; + 1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;; + 1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;; + 1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;; +@@ -28316,11 +29626,78 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; + 1F916;ROBOT FACE;So;0;ON;;;;;N;;;;; + 1F917;HUGGING FACE;So;0;ON;;;;;N;;;;; + 1F918;SIGN OF THE HORNS;So;0;ON;;;;;N;;;;; ++1F919;CALL ME HAND;So;0;ON;;;;;N;;;;; ++1F91A;RAISED BACK OF HAND;So;0;ON;;;;;N;;;;; ++1F91B;LEFT-FACING FIST;So;0;ON;;;;;N;;;;; ++1F91C;RIGHT-FACING FIST;So;0;ON;;;;;N;;;;; ++1F91D;HANDSHAKE;So;0;ON;;;;;N;;;;; ++1F91E;HAND WITH INDEX AND MIDDLE FINGERS CROSSED;So;0;ON;;;;;N;;;;; ++1F920;FACE WITH COWBOY HAT;So;0;ON;;;;;N;;;;; ++1F921;CLOWN FACE;So;0;ON;;;;;N;;;;; ++1F922;NAUSEATED FACE;So;0;ON;;;;;N;;;;; ++1F923;ROLLING ON THE FLOOR LAUGHING;So;0;ON;;;;;N;;;;; ++1F924;DROOLING FACE;So;0;ON;;;;;N;;;;; ++1F925;LYING FACE;So;0;ON;;;;;N;;;;; ++1F926;FACE PALM;So;0;ON;;;;;N;;;;; ++1F927;SNEEZING FACE;So;0;ON;;;;;N;;;;; ++1F930;PREGNANT WOMAN;So;0;ON;;;;;N;;;;; ++1F933;SELFIE;So;0;ON;;;;;N;;;;; ++1F934;PRINCE;So;0;ON;;;;;N;;;;; ++1F935;MAN IN TUXEDO;So;0;ON;;;;;N;;;;; ++1F936;MOTHER CHRISTMAS;So;0;ON;;;;;N;;;;; ++1F937;SHRUG;So;0;ON;;;;;N;;;;; ++1F938;PERSON DOING CARTWHEEL;So;0;ON;;;;;N;;;;; ++1F939;JUGGLING;So;0;ON;;;;;N;;;;; ++1F93A;FENCER;So;0;ON;;;;;N;;;;; ++1F93B;MODERN PENTATHLON;So;0;ON;;;;;N;;;;; ++1F93C;WRESTLERS;So;0;ON;;;;;N;;;;; ++1F93D;WATER POLO;So;0;ON;;;;;N;;;;; ++1F93E;HANDBALL;So;0;ON;;;;;N;;;;; ++1F940;WILTED FLOWER;So;0;ON;;;;;N;;;;; ++1F941;DRUM WITH DRUMSTICKS;So;0;ON;;;;;N;;;;; ++1F942;CLINKING GLASSES;So;0;ON;;;;;N;;;;; ++1F943;TUMBLER GLASS;So;0;ON;;;;;N;;;;; ++1F944;SPOON;So;0;ON;;;;;N;;;;; ++1F945;GOAL NET;So;0;ON;;;;;N;;;;; ++1F946;RIFLE;So;0;ON;;;;;N;;;;; ++1F947;FIRST PLACE MEDAL;So;0;ON;;;;;N;;;;; ++1F948;SECOND PLACE MEDAL;So;0;ON;;;;;N;;;;; ++1F949;THIRD PLACE MEDAL;So;0;ON;;;;;N;;;;; ++1F94A;BOXING GLOVE;So;0;ON;;;;;N;;;;; ++1F94B;MARTIAL ARTS UNIFORM;So;0;ON;;;;;N;;;;; ++1F950;CROISSANT;So;0;ON;;;;;N;;;;; ++1F951;AVOCADO;So;0;ON;;;;;N;;;;; ++1F952;CUCUMBER;So;0;ON;;;;;N;;;;; ++1F953;BACON;So;0;ON;;;;;N;;;;; ++1F954;POTATO;So;0;ON;;;;;N;;;;; ++1F955;CARROT;So;0;ON;;;;;N;;;;; ++1F956;BAGUETTE BREAD;So;0;ON;;;;;N;;;;; ++1F957;GREEN SALAD;So;0;ON;;;;;N;;;;; ++1F958;SHALLOW PAN OF FOOD;So;0;ON;;;;;N;;;;; ++1F959;STUFFED FLATBREAD;So;0;ON;;;;;N;;;;; ++1F95A;EGG;So;0;ON;;;;;N;;;;; ++1F95B;GLASS OF MILK;So;0;ON;;;;;N;;;;; ++1F95C;PEANUTS;So;0;ON;;;;;N;;;;; ++1F95D;KIWIFRUIT;So;0;ON;;;;;N;;;;; ++1F95E;PANCAKES;So;0;ON;;;;;N;;;;; + 1F980;CRAB;So;0;ON;;;;;N;;;;; + 1F981;LION FACE;So;0;ON;;;;;N;;;;; + 1F982;SCORPION;So;0;ON;;;;;N;;;;; + 1F983;TURKEY;So;0;ON;;;;;N;;;;; + 1F984;UNICORN FACE;So;0;ON;;;;;N;;;;; ++1F985;EAGLE;So;0;ON;;;;;N;;;;; ++1F986;DUCK;So;0;ON;;;;;N;;;;; ++1F987;BAT;So;0;ON;;;;;N;;;;; ++1F988;SHARK;So;0;ON;;;;;N;;;;; ++1F989;OWL;So;0;ON;;;;;N;;;;; ++1F98A;FOX FACE;So;0;ON;;;;;N;;;;; ++1F98B;BUTTERFLY;So;0;ON;;;;;N;;;;; ++1F98C;DEER;So;0;ON;;;;;N;;;;; ++1F98D;GORILLA;So;0;ON;;;;;N;;;;; ++1F98E;LIZARD;So;0;ON;;;;;N;;;;; ++1F98F;RHINOCEROS;So;0;ON;;;;;N;;;;; ++1F990;SHRIMP;So;0;ON;;;;;N;;;;; ++1F991;SQUID;So;0;ON;;;;;N;;;;; + 1F9C0;CHEESE WEDGE;So;0;ON;;;;;N;;;;; + 20000;;Lo;0;L;;;;;N;;;;; + 2A6D6;;Lo;0;L;;;;;N;;;;; +-- +2.7.4 + diff --git a/glibc.spec b/glibc.spec index bfe9f47..27bf160 100644 --- a/glibc.spec +++ b/glibc.spec @@ -125,6 +125,17 @@ Patch23: glibc-fedora-manual-dircategory.patch Patch24: glibc-fedora-nis-rh188246.patch Patch25: glibc-fedora-nptl-linklibc.patch +Patch26: glibc-2.20-i586-hptiming.patch +Patch27: glibc-2.22-blacklist-CPUs-from-lock-elision.patch +Patch28: glibc-bug-regex-gcc5.patch +Patch29: glibc-c-utf8-locale.patch +Patch30: glibc-dns-host-gcc5.patch +Patch31: glibc-dso_deps.patch +Patch32: glibc-gcc-PR69537.patch +Patch33: glibc-gethnamaddr-gcc5.patch +Patch34: glibc-ld-ctype-gcc5.patch +Patch35: glibc-res-hconf-gcc5.patch + # # Patches from upstream # @@ -147,6 +158,16 @@ Patch43: glibc-rh827510.patch Patch44: glibc-rh819430.patch Patch45: glibc-rh952799.patch +Patch46: glibc-rh1009145.patch +Patch47: glibc-rh1013801.patch +Patch48: glibc-rh1070416.patch +Patch49: glibc-rh1315108.patch +Patch50: glibc-rh1315476-1.patch +Patch51: glibc-rh1315476-2.patch +Patch52: glibc-rh1324623.patch +Patch53: glibc-rh1335011.patch +Patch54: glibc-rh1351108-update-to-unicode-9.0.0.patch + #----------------------------------------------------------------------- # mandriva patches Patch100: eglibc-mandriva-localedef-archive-follow-symlinks.patch @@ -798,12 +819,32 @@ their ~/.profile configuration file. %patch24 -p1 %patch25 -p1 +%patch26 -p1 +%patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 +%patch33 -p1 +%patch34 -p1 +%patch35 -p1 + %patch40 -p1 %patch41 -p1 %patch42 -p1 %patch43 -p1 %patch44 -p1 %patch45 -p1 +%patch46 -p1 +%patch47 -p1 +%patch48 -p1 +%patch49 -p1 +%patch50 -p1 +%patch51 -p1 +%patch52 -p1 +%patch53 -p1 +%patch54 -p1 %patch100 -p1 %patch101 -p1