diff options
47 files changed, 5423 insertions, 1723 deletions
diff --git a/vendor/librune/README.md b/vendor/librune/README.md index 5431551..6e1f772 100644 --- a/vendor/librune/README.md +++ b/vendor/librune/README.md @@ -4,8 +4,7 @@ Librune is a C library that aims to make interacting with Unicode and UTF-8 easy in C. There are no plans at the moment to support UTF-16 or -32, but they may be supported if such a usecase ever comes up. -This library has been tested to build and work properly on both C99 and -C23. +This library requires C23. ## Terminology @@ -19,10 +18,37 @@ represents a rune (shocker). This library contains the following headers: -1. `gbrk.h` — grapheme-iteration functions -2. `rune.h` — rune-constants, -macros, and -functions -3. `utf8.h` — UTF-8 encoding, decoding, iteration, etc. -4. `builder.h` — string building functions +- `builder.h` — string building functions +- `gbrk.h` — grapheme-iteration functions +- `rtype.h` — rune categorization à la `ctype.h` +- `rune.h` — rune-constants, -macros, and -functions +- `utf8.h` — UTF-8 encoding, decoding, iteration, etc. + + +## Compilation + +This library comes with a build script in the form of `make.c`. To build +the library all you need is a C compiler. The build script will build a +static library called ‘librune.a’. + +```sh +# Make sure to link with pthread +cc -lpthread -o make make.c +./make +``` + +If you want to build the library in release-mode (optimizations enabled), +simply pass the `-r` flag to the build script: + +```sh +./make -r +``` + +You can also pass the `-l` flag to enable link-time optimizations: + +```sh +./make -lr +``` ## Installation diff --git a/vendor/librune/gen/gbrk b/vendor/librune/gen/gbrk index 58e47b4..72ee2f7 100755 --- a/vendor/librune/gen/gbrk +++ b/vendor/librune/gen/gbrk @@ -2,17 +2,17 @@ cache() { - name="/tmp/librune/$(basename "$1")" + name="/tmp/librune/gbrk/$(basename "$1")" if test ! -f "$name" then - mkdir -p /tmp/librune + mkdir -p /tmp/librune/gbrk wget -q "$1" -O "$name" fi } set -e cd "${0%/*}/.." -exec >lib/internal/gbrk_lookup.h +exec >include/internal/gbrk_lookup.h readonly URL1='https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt' readonly URL2='https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt' @@ -104,10 +104,10 @@ END { lo = i while (props[lo] == props[i + 1]) i++ - printf "\t{0x%05X, 0x%05X, %s},\n", lo, i, props[lo] + printf "\t{0x%06X, 0x%06X, %s},\n", lo, i, props[lo] } } -' /tmp/librune/* | sort +' /tmp/librune/gbrk/* | sort cat <<C }; diff --git a/vendor/librune/gen/rtype b/vendor/librune/gen/rtype new file mode 100755 index 0000000..21916d3 --- /dev/null +++ b/vendor/librune/gen/rtype @@ -0,0 +1,106 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype_lookup.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ + +/* TODO: Change tables to constexpr from const when Clangd gets better */ + +#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H +#define RUNE_INTERNAL_RTYPE_LOOKUP_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "types.h" +#include "../rtype.h" + +static const unicat rtype_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = ";" +} + +{ + s = "UC_" toupper($3) + lo = strtonum("0X" $1) + + if ($2 ~ /First/) { + getline + hi = strtonum("0X" $1) + } else + hi = lo + + for (i = lo; i <= hi; i++) + props[i] = s +} + +END { + for (i = 0; i <= 0xFF; i++) + print props[i] "," +} +' /tmp/librune/rtype/* | paste -d' ' - - - - - - - - | sed 's/^/\t/' + +cat <<C +}; + +static const struct { + rune lo, hi; + unicat cat; +} rtype_cat_tbl[] = { +C + +gawk ' +BEGIN { + FS = ";" +} + +{ + s = "UC_" toupper($3) + lo = strtonum("0X" $1) + + if ($2 ~ /First/) { + getline + hi = strtonum("0X" $1) + } else + hi = lo + + for (i = lo; i <= hi; i++) + props[i] = s +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{0x%06X, 0x%06X, %s},\n", lo, i, props[lo] + } +} +' /tmp/librune/rtype/* | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */ +C diff --git a/vendor/librune/include/builder.h b/vendor/librune/include/builder.h index b711f97..271fcbf 100644 --- a/vendor/librune/include/builder.h +++ b/vendor/librune/include/builder.h @@ -4,28 +4,26 @@ #define _RUNE_NEEDS_U8VIEW 1 #include "internal/types.h" /* IWYU pragma: export */ -struct u8buf { +struct u8str { char8_t *p; size_t len, cap; }; -struct u8buf *u8strinit(struct u8buf *, size_t); -struct u8buf *u8strgrow(struct u8buf *, size_t); -struct u8buf *u8strfit(struct u8buf *); -void u8strfree(struct u8buf); +struct u8str *u8strinit(struct u8str *, size_t); +struct u8str *u8strgrow(struct u8str *, size_t); +struct u8str *u8strfit(struct u8str *); +void u8strfree(struct u8str); -struct u8buf *u8strpushr(struct u8buf *, rune); -struct u8buf *u8strpushstr(struct u8buf *, const char *); -struct u8buf *u8strpushu8(struct u8buf *, struct u8view); +struct u8str *u8strpushr(struct u8str *, rune); +struct u8str *u8strpushstr(struct u8str *, const char *); +struct u8str *u8strpushu8(struct u8str *, struct u8view); -#if __STDC_VERSION__ >= 201112L -# define u8strpush(b, x) \ - _Generic((x), \ - char: u8strpushr, \ - int: u8strpushr, \ - rune: u8strpushr, \ - char *: u8strpushstr, \ - struct u8view: u8strpushu8)((b), (x)) -#endif +#define u8strpush(b, x) \ + _Generic((x), \ + char: u8strpushr, \ + int: u8strpushr, \ + rune: u8strpushr, \ + char *: u8strpushstr, \ + struct u8view: u8strpushu8)((b), (x)) #endif /* !RUNE_BUILDER_H */ diff --git a/vendor/librune/include/gbrk.h b/vendor/librune/include/gbrk.h index 5eef882..7cdb31c 100644 --- a/vendor/librune/include/gbrk.h +++ b/vendor/librune/include/gbrk.h @@ -5,6 +5,6 @@ #include "internal/types.h" /* IWYU pragma: export */ size_t u8glen(const char8_t *, size_t); -const char8_t *u8gnext(struct u8view *, const char8_t **, size_t *); +size_t u8gnext(struct u8view *, const char8_t **, size_t *); #endif /* !RUNE_GBRK_H */ diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h index af490d3..ace9e63 100644 --- a/vendor/librune/include/internal/common.h +++ b/vendor/librune/include/internal/common.h @@ -3,27 +3,7 @@ /* IWYU pragma: private */ -#if __STDC_VERSION__ >= 202311L -# define RUNE_IS_23 1 -#endif - -#if !RUNE_IS_23 -# include <stddef.h> /* IWYU pragma: export */ -# define nullptr NULL -#endif - -#ifndef unreachable -# if RUNE_IS_23 -# include <stddef.h> /* IWYU pragma: export */ -# elif defined(__GNUC__) || defined(__clang__) -# define unreachable() __builtin_unreachable() -# else -# define unreachable() \ - do \ - *(int *)0 = 0; \ - while (0) -# endif -#endif +#define lengthof(a) (sizeof(a) / sizeof(*(a))) #define U1(x) (((x)&0x80) == 0x00) #define U2(x) (((x)&0xE0) == 0xC0) @@ -38,4 +18,6 @@ #define _3B_MAX RUNE_C(0x00FFFF) #define _4B_MAX RUNE_C(0x10FFFF) +#define LATIN1_MAX 0xFF + #endif /* !RUNE_INTERNAL_COMMON_H */ diff --git a/vendor/librune/include/internal/gbrk_lookup.h b/vendor/librune/include/internal/gbrk_lookup.h index 043be97..1db6898 100644 --- a/vendor/librune/include/internal/gbrk_lookup.h +++ b/vendor/librune/include/internal/gbrk_lookup.h @@ -36,1535 +36,1535 @@ static const struct { rune lo, hi; gbrk_prop prop; } gbrk_prop_tbl[] = { - {0x00000, 0x00009, GBP_CTRL}, - {0x0000B, 0x0000C, GBP_CTRL}, - {0x0000E, 0x0001F, GBP_CTRL}, - {0x0007F, 0x0009F, GBP_CTRL}, - {0x000A9, 0x000A9, GBP_PIC}, - {0x000AD, 0x000AD, GBP_CTRL}, - {0x000AE, 0x000AE, GBP_PIC}, - {0x00300, 0x0034E, GBP_INDC_EXT | GBP_EXT}, - {0x0034F, 0x0034F, GBP_EXT}, - {0x00350, 0x0036F, GBP_INDC_EXT | GBP_EXT}, - {0x00483, 0x00487, GBP_INDC_EXT | GBP_EXT}, - {0x00488, 0x00489, GBP_EXT}, - {0x00591, 0x005BD, GBP_INDC_EXT | GBP_EXT}, - {0x005BF, 0x005BF, GBP_INDC_EXT | GBP_EXT}, - {0x005C1, 0x005C2, GBP_INDC_EXT | GBP_EXT}, - {0x005C4, 0x005C5, GBP_INDC_EXT | GBP_EXT}, - {0x005C7, 0x005C7, GBP_INDC_EXT | GBP_EXT}, - {0x00600, 0x00605, GBP_PREP}, - {0x00610, 0x0061A, GBP_INDC_EXT | GBP_EXT}, - {0x0061C, 0x0061C, GBP_CTRL}, - {0x0064B, 0x0065F, GBP_INDC_EXT | GBP_EXT}, - {0x00670, 0x00670, GBP_INDC_EXT | GBP_EXT}, - {0x006D6, 0x006DC, GBP_INDC_EXT | GBP_EXT}, - {0x006DD, 0x006DD, GBP_PREP}, - {0x006DF, 0x006E4, GBP_INDC_EXT | GBP_EXT}, - {0x006E7, 0x006E8, GBP_INDC_EXT | GBP_EXT}, - {0x006EA, 0x006ED, GBP_INDC_EXT | GBP_EXT}, - {0x0070F, 0x0070F, GBP_PREP}, - {0x00711, 0x00711, GBP_INDC_EXT | GBP_EXT}, - {0x00730, 0x0074A, GBP_INDC_EXT | GBP_EXT}, - {0x007A6, 0x007B0, GBP_EXT}, - {0x007EB, 0x007F3, GBP_INDC_EXT | GBP_EXT}, - {0x007FD, 0x007FD, GBP_INDC_EXT | GBP_EXT}, - {0x00816, 0x00819, GBP_INDC_EXT | GBP_EXT}, - {0x0081B, 0x00823, GBP_INDC_EXT | GBP_EXT}, - {0x00825, 0x00827, GBP_INDC_EXT | GBP_EXT}, - {0x00829, 0x0082D, GBP_INDC_EXT | GBP_EXT}, - {0x00859, 0x0085B, GBP_INDC_EXT | GBP_EXT}, - {0x00890, 0x00891, GBP_PREP}, - {0x00898, 0x0089F, GBP_INDC_EXT | GBP_EXT}, - {0x008CA, 0x008E1, GBP_INDC_EXT | GBP_EXT}, - {0x008E2, 0x008E2, GBP_PREP}, - {0x008E3, 0x008FF, GBP_INDC_EXT | GBP_EXT}, - {0x00900, 0x00902, GBP_EXT}, - {0x00903, 0x00903, GBP_SM}, - {0x00915, 0x00939, GBP_INDC_CNSNT}, - {0x0093A, 0x0093A, GBP_EXT}, - {0x0093B, 0x0093B, GBP_SM}, - {0x0093C, 0x0093C, GBP_INDC_EXT | GBP_EXT}, - {0x0093E, 0x00940, GBP_SM}, - {0x00941, 0x00948, GBP_EXT}, - {0x00949, 0x0094C, GBP_SM}, - {0x0094D, 0x0094D, GBP_INDC_LNK | GBP_EXT}, - {0x0094E, 0x0094F, GBP_SM}, - {0x00951, 0x00954, GBP_INDC_EXT | GBP_EXT}, - {0x00955, 0x00957, GBP_EXT}, - {0x00958, 0x0095F, GBP_INDC_CNSNT}, - {0x00962, 0x00963, GBP_EXT}, - {0x00978, 0x0097F, GBP_INDC_CNSNT}, - {0x00981, 0x00981, GBP_EXT}, - {0x00982, 0x00983, GBP_SM}, - {0x00995, 0x009A8, GBP_INDC_CNSNT}, - {0x009AA, 0x009B0, GBP_INDC_CNSNT}, - {0x009B2, 0x009B2, GBP_INDC_CNSNT}, - {0x009B6, 0x009B9, GBP_INDC_CNSNT}, - {0x009BC, 0x009BC, GBP_INDC_EXT | GBP_EXT}, - {0x009BE, 0x009BE, GBP_EXT}, - {0x009BF, 0x009C0, GBP_SM}, - {0x009C1, 0x009C4, GBP_EXT}, - {0x009C7, 0x009C8, GBP_SM}, - {0x009CB, 0x009CC, GBP_SM}, - {0x009CD, 0x009CD, GBP_INDC_LNK | GBP_EXT}, - {0x009D7, 0x009D7, GBP_EXT}, - {0x009DC, 0x009DD, GBP_INDC_CNSNT}, - {0x009DF, 0x009DF, GBP_INDC_CNSNT}, - {0x009E2, 0x009E3, GBP_EXT}, - {0x009F0, 0x009F1, GBP_INDC_CNSNT}, - {0x009FE, 0x009FE, GBP_INDC_EXT | GBP_EXT}, - {0x00A01, 0x00A02, GBP_EXT}, - {0x00A03, 0x00A03, GBP_SM}, - {0x00A3C, 0x00A3C, GBP_INDC_EXT | GBP_EXT}, - {0x00A3E, 0x00A40, GBP_SM}, - {0x00A41, 0x00A42, GBP_EXT}, - {0x00A47, 0x00A48, GBP_EXT}, - {0x00A4B, 0x00A4D, GBP_EXT}, - {0x00A51, 0x00A51, GBP_EXT}, - {0x00A70, 0x00A71, GBP_EXT}, - {0x00A75, 0x00A75, GBP_EXT}, - {0x00A81, 0x00A82, GBP_EXT}, - {0x00A83, 0x00A83, GBP_SM}, - {0x00A95, 0x00AA8, GBP_INDC_CNSNT}, - {0x00AAA, 0x00AB0, GBP_INDC_CNSNT}, - {0x00AB2, 0x00AB3, GBP_INDC_CNSNT}, - {0x00AB5, 0x00AB9, GBP_INDC_CNSNT}, - {0x00ABC, 0x00ABC, GBP_INDC_EXT | GBP_EXT}, - {0x00ABE, 0x00AC0, GBP_SM}, - {0x00AC1, 0x00AC5, GBP_EXT}, - {0x00AC7, 0x00AC8, GBP_EXT}, - {0x00AC9, 0x00AC9, GBP_SM}, - {0x00ACB, 0x00ACC, GBP_SM}, - {0x00ACD, 0x00ACD, GBP_INDC_LNK | GBP_EXT}, - {0x00AE2, 0x00AE3, GBP_EXT}, - {0x00AF9, 0x00AF9, GBP_INDC_CNSNT}, - {0x00AFA, 0x00AFF, GBP_EXT}, - {0x00B01, 0x00B01, GBP_EXT}, - {0x00B02, 0x00B03, GBP_SM}, - {0x00B15, 0x00B28, GBP_INDC_CNSNT}, - {0x00B2A, 0x00B30, GBP_INDC_CNSNT}, - {0x00B32, 0x00B33, GBP_INDC_CNSNT}, - {0x00B35, 0x00B39, GBP_INDC_CNSNT}, - {0x00B3C, 0x00B3C, GBP_INDC_EXT | GBP_EXT}, - {0x00B3E, 0x00B3F, GBP_EXT}, - {0x00B40, 0x00B40, GBP_SM}, - {0x00B41, 0x00B44, GBP_EXT}, - {0x00B47, 0x00B48, GBP_SM}, - {0x00B4B, 0x00B4C, GBP_SM}, - {0x00B4D, 0x00B4D, GBP_INDC_LNK | GBP_EXT}, - {0x00B55, 0x00B57, GBP_EXT}, - {0x00B5C, 0x00B5D, GBP_INDC_CNSNT}, - {0x00B5F, 0x00B5F, GBP_INDC_CNSNT}, - {0x00B62, 0x00B63, GBP_EXT}, - {0x00B71, 0x00B71, GBP_INDC_CNSNT}, - {0x00B82, 0x00B82, GBP_EXT}, - {0x00BBE, 0x00BBE, GBP_EXT}, - {0x00BBF, 0x00BBF, GBP_SM}, - {0x00BC0, 0x00BC0, GBP_EXT}, - {0x00BC1, 0x00BC2, GBP_SM}, - {0x00BC6, 0x00BC8, GBP_SM}, - {0x00BCA, 0x00BCC, GBP_SM}, - {0x00BCD, 0x00BCD, GBP_EXT}, - {0x00BD7, 0x00BD7, GBP_EXT}, - {0x00C00, 0x00C00, GBP_EXT}, - {0x00C01, 0x00C03, GBP_SM}, - {0x00C04, 0x00C04, GBP_EXT}, - {0x00C15, 0x00C28, GBP_INDC_CNSNT}, - {0x00C2A, 0x00C39, GBP_INDC_CNSNT}, - {0x00C3C, 0x00C3C, GBP_INDC_EXT | GBP_EXT}, - {0x00C3E, 0x00C40, GBP_EXT}, - {0x00C41, 0x00C44, GBP_SM}, - {0x00C46, 0x00C48, GBP_EXT}, - {0x00C4A, 0x00C4C, GBP_EXT}, - {0x00C4D, 0x00C4D, GBP_INDC_LNK | GBP_EXT}, - {0x00C55, 0x00C56, GBP_INDC_EXT | GBP_EXT}, - {0x00C58, 0x00C5A, GBP_INDC_CNSNT}, - {0x00C62, 0x00C63, GBP_EXT}, - {0x00C81, 0x00C81, GBP_EXT}, - {0x00C82, 0x00C83, GBP_SM}, - {0x00CBC, 0x00CBC, GBP_INDC_EXT | GBP_EXT}, - {0x00CBE, 0x00CBE, GBP_SM}, - {0x00CBF, 0x00CBF, GBP_EXT}, - {0x00CC0, 0x00CC1, GBP_SM}, - {0x00CC2, 0x00CC2, GBP_EXT}, - {0x00CC3, 0x00CC4, GBP_SM}, - {0x00CC6, 0x00CC6, GBP_EXT}, - {0x00CC7, 0x00CC8, GBP_SM}, - {0x00CCA, 0x00CCB, GBP_SM}, - {0x00CCC, 0x00CCD, GBP_EXT}, - {0x00CD5, 0x00CD6, GBP_EXT}, - {0x00CE2, 0x00CE3, GBP_EXT}, - {0x00CF3, 0x00CF3, GBP_SM}, - {0x00D00, 0x00D01, GBP_EXT}, - {0x00D02, 0x00D03, GBP_SM}, - {0x00D15, 0x00D3A, GBP_INDC_CNSNT}, - {0x00D3B, 0x00D3C, GBP_INDC_EXT | GBP_EXT}, - {0x00D3E, 0x00D3E, GBP_EXT}, - {0x00D3F, 0x00D40, GBP_SM}, - {0x00D41, 0x00D44, GBP_EXT}, - {0x00D46, 0x00D48, GBP_SM}, - {0x00D4A, 0x00D4C, GBP_SM}, - {0x00D4D, 0x00D4D, GBP_INDC_LNK | GBP_EXT}, - {0x00D4E, 0x00D4E, GBP_PREP}, - {0x00D57, 0x00D57, GBP_EXT}, - {0x00D62, 0x00D63, GBP_EXT}, - {0x00D81, 0x00D81, GBP_EXT}, - {0x00D82, 0x00D83, GBP_SM}, - {0x00DCA, 0x00DCA, GBP_EXT}, - {0x00DCF, 0x00DCF, GBP_EXT}, - {0x00DD0, 0x00DD1, GBP_SM}, - {0x00DD2, 0x00DD4, GBP_EXT}, - {0x00DD6, 0x00DD6, GBP_EXT}, - {0x00DD8, 0x00DDE, GBP_SM}, - {0x00DDF, 0x00DDF, GBP_EXT}, - {0x00DF2, 0x00DF3, GBP_SM}, - {0x00E31, 0x00E31, GBP_EXT}, - {0x00E33, 0x00E33, GBP_SM}, - {0x00E34, 0x00E37, GBP_EXT}, - {0x00E38, 0x00E3A, GBP_INDC_EXT | GBP_EXT}, - {0x00E47, 0x00E47, GBP_EXT}, - {0x00E48, 0x00E4B, GBP_INDC_EXT | GBP_EXT}, - {0x00E4C, 0x00E4E, GBP_EXT}, - {0x00EB1, 0x00EB1, GBP_EXT}, - {0x00EB3, 0x00EB3, GBP_SM}, - {0x00EB4, 0x00EB7, GBP_EXT}, - {0x00EB8, 0x00EBA, GBP_INDC_EXT | GBP_EXT}, - {0x00EBB, 0x00EBC, GBP_EXT}, - {0x00EC8, 0x00ECB, GBP_INDC_EXT | GBP_EXT}, - {0x00ECC, 0x00ECE, GBP_EXT}, - {0x00F18, 0x00F19, GBP_INDC_EXT | GBP_EXT}, - {0x00F35, 0x00F35, GBP_INDC_EXT | GBP_EXT}, - {0x00F37, 0x00F37, GBP_INDC_EXT | GBP_EXT}, - {0x00F39, 0x00F39, GBP_INDC_EXT | GBP_EXT}, - {0x00F3E, 0x00F3F, GBP_SM}, - {0x00F71, 0x00F72, GBP_INDC_EXT | GBP_EXT}, - {0x00F73, 0x00F73, GBP_EXT}, - {0x00F74, 0x00F74, GBP_INDC_EXT | GBP_EXT}, - {0x00F75, 0x00F79, GBP_EXT}, - {0x00F7A, 0x00F7D, GBP_INDC_EXT | GBP_EXT}, - {0x00F7E, 0x00F7E, GBP_EXT}, - {0x00F7F, 0x00F7F, GBP_SM}, - {0x00F80, 0x00F80, GBP_INDC_EXT | GBP_EXT}, - {0x00F81, 0x00F81, GBP_EXT}, - {0x00F82, 0x00F84, GBP_INDC_EXT | GBP_EXT}, - {0x00F86, 0x00F87, GBP_INDC_EXT | GBP_EXT}, - {0x00F8D, 0x00F97, GBP_EXT}, - {0x00F99, 0x00FBC, GBP_EXT}, - {0x00FC6, 0x00FC6, GBP_INDC_EXT | GBP_EXT}, - {0x0102D, 0x01030, GBP_EXT}, - {0x01031, 0x01031, GBP_SM}, - {0x01032, 0x01036, GBP_EXT}, - {0x01037, 0x01037, GBP_INDC_EXT | GBP_EXT}, - {0x01039, 0x0103A, GBP_INDC_EXT | GBP_EXT}, - {0x0103B, 0x0103C, GBP_SM}, - {0x0103D, 0x0103E, GBP_EXT}, - {0x01056, 0x01057, GBP_SM}, - {0x01058, 0x01059, GBP_EXT}, - {0x0105E, 0x01060, GBP_EXT}, - {0x01071, 0x01074, GBP_EXT}, - {0x01082, 0x01082, GBP_EXT}, - {0x01084, 0x01084, GBP_SM}, - {0x01085, 0x01086, GBP_EXT}, - {0x0108D, 0x0108D, GBP_INDC_EXT | GBP_EXT}, - {0x0109D, 0x0109D, GBP_EXT}, - {0x01100, 0x0115F, GBP_HNGL_L}, - {0x01160, 0x011A7, GBP_HNGL_V}, - {0x011A8, 0x011FF, GBP_HNGL_T}, - {0x0135D, 0x0135F, GBP_INDC_EXT | GBP_EXT}, - {0x01712, 0x01713, GBP_EXT}, - {0x01714, 0x01714, GBP_INDC_EXT | GBP_EXT}, - {0x01715, 0x01715, GBP_SM}, - {0x01732, 0x01733, GBP_EXT}, - {0x01734, 0x01734, GBP_SM}, - {0x01752, 0x01753, GBP_EXT}, - {0x01772, 0x01773, GBP_EXT}, - {0x017B4, 0x017B5, GBP_EXT}, - {0x017B6, 0x017B6, GBP_SM}, - {0x017B7, 0x017BD, GBP_EXT}, - {0x017BE, 0x017C5, GBP_SM}, - {0x017C6, 0x017C6, GBP_EXT}, - {0x017C7, 0x017C8, GBP_SM}, - {0x017C9, 0x017D1, GBP_EXT}, - {0x017D2, 0x017D2, GBP_INDC_EXT | GBP_EXT}, - {0x017D3, 0x017D3, GBP_EXT}, - {0x017DD, 0x017DD, GBP_INDC_EXT | GBP_EXT}, - {0x0180B, 0x0180D, GBP_EXT}, - {0x0180E, 0x0180E, GBP_CTRL}, - {0x0180F, 0x0180F, GBP_EXT}, - {0x01885, 0x01886, GBP_EXT}, - {0x018A9, 0x018A9, GBP_INDC_EXT | GBP_EXT}, - {0x01920, 0x01922, GBP_EXT}, - {0x01923, 0x01926, GBP_SM}, - {0x01927, 0x01928, GBP_EXT}, - {0x01929, 0x0192B, GBP_SM}, - {0x01930, 0x01931, GBP_SM}, - {0x01932, 0x01932, GBP_EXT}, - {0x01933, 0x01938, GBP_SM}, - {0x01939, 0x0193B, GBP_INDC_EXT | GBP_EXT}, - {0x01A17, 0x01A18, GBP_INDC_EXT | GBP_EXT}, - {0x01A19, 0x01A1A, GBP_SM}, - {0x01A1B, 0x01A1B, GBP_EXT}, - {0x01A55, 0x01A55, GBP_SM}, - {0x01A56, 0x01A56, GBP_EXT}, - {0x01A57, 0x01A57, GBP_SM}, - {0x01A58, 0x01A5E, GBP_EXT}, - {0x01A60, 0x01A60, GBP_INDC_EXT | GBP_EXT}, - {0x01A62, 0x01A62, GBP_EXT}, - {0x01A65, 0x01A6C, GBP_EXT}, - {0x01A6D, 0x01A72, GBP_SM}, - {0x01A73, 0x01A74, GBP_EXT}, - {0x01A75, 0x01A7C, GBP_INDC_EXT | GBP_EXT}, - {0x01A7F, 0x01A7F, GBP_INDC_EXT | GBP_EXT}, - {0x01AB0, 0x01ABD, GBP_INDC_EXT | GBP_EXT}, - {0x01ABE, 0x01ABE, GBP_EXT}, - {0x01ABF, 0x01ACE, GBP_INDC_EXT | GBP_EXT}, - {0x01B00, 0x01B03, GBP_EXT}, - {0x01B04, 0x01B04, GBP_SM}, - {0x01B34, 0x01B34, GBP_INDC_EXT | GBP_EXT}, - {0x01B35, 0x01B3A, GBP_EXT}, - {0x01B3B, 0x01B3B, GBP_SM}, - {0x01B3C, 0x01B3C, GBP_EXT}, - {0x01B3D, 0x01B41, GBP_SM}, - {0x01B42, 0x01B42, GBP_EXT}, - {0x01B43, 0x01B44, GBP_SM}, - {0x01B6B, 0x01B73, GBP_INDC_EXT | GBP_EXT}, - {0x01B80, 0x01B81, GBP_EXT}, - {0x01B82, 0x01B82, GBP_SM}, - {0x01BA1, 0x01BA1, GBP_SM}, - {0x01BA2, 0x01BA5, GBP_EXT}, - {0x01BA6, 0x01BA7, GBP_SM}, - {0x01BA8, 0x01BA9, GBP_EXT}, - {0x01BAA, 0x01BAA, GBP_SM}, - {0x01BAB, 0x01BAB, GBP_INDC_EXT | GBP_EXT}, - {0x01BAC, 0x01BAD, GBP_EXT}, - {0x01BE6, 0x01BE6, GBP_INDC_EXT | GBP_EXT}, - {0x01BE7, 0x01BE7, GBP_SM}, - {0x01BE8, 0x01BE9, GBP_EXT}, - {0x01BEA, 0x01BEC, GBP_SM}, - {0x01BED, 0x01BED, GBP_EXT}, - {0x01BEE, 0x01BEE, GBP_SM}, - {0x01BEF, 0x01BF1, GBP_EXT}, - {0x01BF2, 0x01BF3, GBP_SM}, - {0x01C24, 0x01C2B, GBP_SM}, - {0x01C2C, 0x01C33, GBP_EXT}, - {0x01C34, 0x01C35, GBP_SM}, - {0x01C36, 0x01C36, GBP_EXT}, - {0x01C37, 0x01C37, GBP_INDC_EXT | GBP_EXT}, - {0x01CD0, 0x01CD2, GBP_INDC_EXT | GBP_EXT}, - {0x01CD4, 0x01CE0, GBP_INDC_EXT | GBP_EXT}, - {0x01CE1, 0x01CE1, GBP_SM}, - {0x01CE2, 0x01CE8, GBP_INDC_EXT | GBP_EXT}, - {0x01CED, 0x01CED, GBP_INDC_EXT | GBP_EXT}, - {0x01CF4, 0x01CF4, GBP_INDC_EXT | GBP_EXT}, - {0x01CF7, 0x01CF7, GBP_SM}, - {0x01CF8, 0x01CF9, GBP_INDC_EXT | GBP_EXT}, - {0x01DC0, 0x01DFF, GBP_INDC_EXT | GBP_EXT}, - {0x0200B, 0x0200B, GBP_CTRL}, - {0x0200C, 0x0200C, GBP_EXT}, - {0x0200D, 0x0200D, GBP_INDC_EXT | GBP_ZWJ}, - {0x0200E, 0x0200F, GBP_CTRL}, - {0x02028, 0x0202E, GBP_CTRL}, - {0x0203C, 0x0203C, GBP_PIC}, - {0x02049, 0x02049, GBP_PIC}, - {0x02060, 0x0206F, GBP_CTRL}, - {0x020D0, 0x020DC, GBP_INDC_EXT | GBP_EXT}, - {0x020DD, 0x020E0, GBP_EXT}, - {0x020E1, 0x020E1, GBP_INDC_EXT | GBP_EXT}, - {0x020E2, 0x020E4, GBP_EXT}, - {0x020E5, 0x020F0, GBP_INDC_EXT | GBP_EXT}, - {0x02122, 0x02122, GBP_PIC}, - {0x02139, 0x02139, GBP_PIC}, - {0x02194, 0x02199, GBP_PIC}, - {0x021A9, 0x021AA, GBP_PIC}, - {0x0231A, 0x0231B, GBP_PIC}, - {0x02328, 0x02328, GBP_PIC}, - {0x02388, 0x02388, GBP_PIC}, - {0x023CF, 0x023CF, GBP_PIC}, - {0x023E9, 0x023F3, GBP_PIC}, - {0x023F8, 0x023FA, GBP_PIC}, - {0x024C2, 0x024C2, GBP_PIC}, - {0x025AA, 0x025AB, GBP_PIC}, - {0x025B6, 0x025B6, GBP_PIC}, - {0x025C0, 0x025C0, GBP_PIC}, - {0x025FB, 0x025FE, GBP_PIC}, - {0x02600, 0x02605, GBP_PIC}, - {0x02607, 0x02612, GBP_PIC}, - {0x02614, 0x02685, GBP_PIC}, - {0x02690, 0x02705, GBP_PIC}, - {0x02708, 0x02712, GBP_PIC}, - {0x02714, 0x02714, GBP_PIC}, - {0x02716, 0x02716, GBP_PIC}, - {0x0271D, 0x0271D, GBP_PIC}, - {0x02721, 0x02721, GBP_PIC}, - {0x02728, 0x02728, GBP_PIC}, - {0x02733, 0x02734, GBP_PIC}, - {0x02744, 0x02744, GBP_PIC}, - {0x02747, 0x02747, GBP_PIC}, - {0x0274C, 0x0274C, GBP_PIC}, - {0x0274E, 0x0274E, GBP_PIC}, - {0x02753, 0x02755, GBP_PIC}, - {0x02757, 0x02757, GBP_PIC}, - {0x02763, 0x02767, GBP_PIC}, - {0x02795, 0x02797, GBP_PIC}, - {0x027A1, 0x027A1, GBP_PIC}, - {0x027B0, 0x027B0, GBP_PIC}, - {0x027BF, 0x027BF, GBP_PIC}, - {0x02934, 0x02935, GBP_PIC}, - {0x02B05, 0x02B07, GBP_PIC}, - {0x02B1B, 0x02B1C, GBP_PIC}, - {0x02B50, 0x02B50, GBP_PIC}, - {0x02B55, 0x02B55, GBP_PIC}, - {0x02CEF, 0x02CF1, GBP_INDC_EXT | GBP_EXT}, - {0x02D7F, 0x02D7F, GBP_INDC_EXT | GBP_EXT}, - {0x02DE0, 0x02DFF, GBP_INDC_EXT | GBP_EXT}, - {0x0302A, 0x0302F, GBP_INDC_EXT | GBP_EXT}, - {0x03030, 0x03030, GBP_PIC}, - {0x0303D, 0x0303D, GBP_PIC}, - {0x03099, 0x0309A, GBP_INDC_EXT | GBP_EXT}, - {0x03297, 0x03297, GBP_PIC}, - {0x03299, 0x03299, GBP_PIC}, - {0x0A66F, 0x0A66F, GBP_INDC_EXT | GBP_EXT}, - {0x0A670, 0x0A672, GBP_EXT}, - {0x0A674, 0x0A67D, GBP_INDC_EXT | GBP_EXT}, - {0x0A69E, 0x0A69F, GBP_INDC_EXT | GBP_EXT}, - {0x0A6F0, 0x0A6F1, GBP_INDC_EXT | GBP_EXT}, - {0x0A802, 0x0A802, GBP_EXT}, - {0x0A806, 0x0A806, GBP_EXT}, - {0x0A80B, 0x0A80B, GBP_EXT}, - {0x0A823, 0x0A824, GBP_SM}, - {0x0A825, 0x0A826, GBP_EXT}, - {0x0A827, 0x0A827, GBP_SM}, - {0x0A82C, 0x0A82C, GBP_INDC_EXT | GBP_EXT}, - {0x0A880, 0x0A881, GBP_SM}, - {0x0A8B4, 0x0A8C3, GBP_SM}, - {0x0A8C4, 0x0A8C5, GBP_EXT}, - {0x0A8E0, 0x0A8F1, GBP_INDC_EXT | GBP_EXT}, - {0x0A8FF, 0x0A8FF, GBP_EXT}, - {0x0A926, 0x0A92A, GBP_EXT}, - {0x0A92B, 0x0A92D, GBP_INDC_EXT | GBP_EXT}, - {0x0A947, 0x0A951, GBP_EXT}, - {0x0A952, 0x0A953, GBP_SM}, - {0x0A960, 0x0A97C, GBP_HNGL_L}, - {0x0A980, 0x0A982, GBP_EXT}, - {0x0A983, 0x0A983, GBP_SM}, - {0x0A9B3, 0x0A9B3, GBP_INDC_EXT | GBP_EXT}, - {0x0A9B4, 0x0A9B5, GBP_SM}, - {0x0A9B6, 0x0A9B9, GBP_EXT}, - {0x0A9BA, 0x0A9BB, GBP_SM}, - {0x0A9BC, 0x0A9BD, GBP_EXT}, - {0x0A9BE, 0x0A9C0, GBP_SM}, - {0x0A9E5, 0x0A9E5, GBP_EXT}, - {0x0AA29, 0x0AA2E, GBP_EXT}, - {0x0AA2F, 0x0AA30, GBP_SM}, - {0x0AA31, 0x0AA32, GBP_EXT}, - {0x0AA33, 0x0AA34, GBP_SM}, - {0x0AA35, 0x0AA36, GBP_EXT}, - {0x0AA43, 0x0AA43, GBP_EXT}, - {0x0AA4C, 0x0AA4C, GBP_EXT}, - {0x0AA4D, 0x0AA4D, GBP_SM}, - {0x0AA7C, 0x0AA7C, GBP_EXT}, - {0x0AAB0, 0x0AAB0, GBP_INDC_EXT | GBP_EXT}, - {0x0AAB2, 0x0AAB4, GBP_INDC_EXT | GBP_EXT}, - {0x0AAB7, 0x0AAB8, GBP_INDC_EXT | GBP_EXT}, - {0x0AABE, 0x0AABF, GBP_INDC_EXT | GBP_EXT}, - {0x0AAC1, 0x0AAC1, GBP_INDC_EXT | GBP_EXT}, - {0x0AAEB, 0x0AAEB, GBP_SM}, - {0x0AAEC, 0x0AAED, GBP_EXT}, - {0x0AAEE, 0x0AAEF, GBP_SM}, - {0x0AAF5, 0x0AAF5, GBP_SM}, - {0x0AAF6, 0x0AAF6, GBP_INDC_EXT | GBP_EXT}, - {0x0ABE3, 0x0ABE4, GBP_SM}, - {0x0ABE5, 0x0ABE5, GBP_EXT}, - {0x0ABE6, 0x0ABE7, GBP_SM}, - {0x0ABE8, 0x0ABE8, GBP_EXT}, - {0x0ABE9, 0x0ABEA, GBP_SM}, - {0x0ABEC, 0x0ABEC, GBP_SM}, - {0x0ABED, 0x0ABED, GBP_INDC_EXT | GBP_EXT}, - {0x0AC00, 0x0AC00, GBP_HNGL_LV}, - {0x0AC01, 0x0AC1B, GBP_HNGL_LVT}, - {0x0AC1C, 0x0AC1C, GBP_HNGL_LV}, - {0x0AC1D, 0x0AC37, GBP_HNGL_LVT}, - {0x0AC38, 0x0AC38, GBP_HNGL_LV}, - {0x0AC39, 0x0AC53, GBP_HNGL_LVT}, - {0x0AC54, 0x0AC54, GBP_HNGL_LV}, - {0x0AC55, 0x0AC6F, GBP_HNGL_LVT}, - {0x0AC70, 0x0AC70, GBP_HNGL_LV}, - {0x0AC71, 0x0AC8B, GBP_HNGL_LVT}, - {0x0AC8C, 0x0AC8C, GBP_HNGL_LV}, - {0x0AC8D, 0x0ACA7, GBP_HNGL_LVT}, - {0x0ACA8, 0x0ACA8, GBP_HNGL_LV}, - {0x0ACA9, 0x0ACC3, GBP_HNGL_LVT}, - {0x0ACC4, 0x0ACC4, GBP_HNGL_LV}, - {0x0ACC5, 0x0ACDF, GBP_HNGL_LVT}, - {0x0ACE0, 0x0ACE0, GBP_HNGL_LV}, - {0x0ACE1, 0x0ACFB, GBP_HNGL_LVT}, - {0x0ACFC, 0x0ACFC, GBP_HNGL_LV}, - {0x0ACFD, 0x0AD17, GBP_HNGL_LVT}, - {0x0AD18, 0x0AD18, GBP_HNGL_LV}, - {0x0AD19, 0x0AD33, GBP_HNGL_LVT}, - {0x0AD34, 0x0AD34, GBP_HNGL_LV}, - {0x0AD35, 0x0AD4F, GBP_HNGL_LVT}, - {0x0AD50, 0x0AD50, GBP_HNGL_LV}, - {0x0AD51, 0x0AD6B, GBP_HNGL_LVT}, - {0x0AD6C, 0x0AD6C, GBP_HNGL_LV}, - {0x0AD6D, 0x0AD87, GBP_HNGL_LVT}, - {0x0AD88, 0x0AD88, GBP_HNGL_LV}, - {0x0AD89, 0x0ADA3, GBP_HNGL_LVT}, - {0x0ADA4, 0x0ADA4, GBP_HNGL_LV}, - {0x0ADA5, 0x0ADBF, GBP_HNGL_LVT}, - {0x0ADC0, 0x0ADC0, GBP_HNGL_LV}, - {0x0ADC1, 0x0ADDB, GBP_HNGL_LVT}, - {0x0ADDC, 0x0ADDC, GBP_HNGL_LV}, - {0x0ADDD, 0x0ADF7, GBP_HNGL_LVT}, - {0x0ADF8, 0x0ADF8, GBP_HNGL_LV}, - {0x0ADF9, 0x0AE13, GBP_HNGL_LVT}, - {0x0AE14, 0x0AE14, GBP_HNGL_LV}, - {0x0AE15, 0x0AE2F, GBP_HNGL_LVT}, - {0x0AE30, 0x0AE30, GBP_HNGL_LV}, - {0x0AE31, 0x0AE4B, GBP_HNGL_LVT}, - {0x0AE4C, 0x0AE4C, GBP_HNGL_LV}, - {0x0AE4D, 0x0AE67, GBP_HNGL_LVT}, - {0x0AE68, 0x0AE68, GBP_HNGL_LV}, - {0x0AE69, 0x0AE83, GBP_HNGL_LVT}, - {0x0AE84, 0x0AE84, GBP_HNGL_LV}, - {0x0AE85, 0x0AE9F, GBP_HNGL_LVT}, - {0x0AEA0, 0x0AEA0, GBP_HNGL_LV}, - {0x0AEA1, 0x0AEBB, GBP_HNGL_LVT}, - {0x0AEBC, 0x0AEBC, GBP_HNGL_LV}, - {0x0AEBD, 0x0AED7, GBP_HNGL_LVT}, - {0x0AED8, 0x0AED8, GBP_HNGL_LV}, - {0x0AED9, 0x0AEF3, GBP_HNGL_LVT}, - {0x0AEF4, 0x0AEF4, GBP_HNGL_LV}, - {0x0AEF5, 0x0AF0F, GBP_HNGL_LVT}, - {0x0AF10, 0x0AF10, GBP_HNGL_LV}, - {0x0AF11, 0x0AF2B, GBP_HNGL_LVT}, - {0x0AF2C, 0x0AF2C, GBP_HNGL_LV}, - {0x0AF2D, 0x0AF47, GBP_HNGL_LVT}, - {0x0AF48, 0x0AF48, GBP_HNGL_LV}, - {0x0AF49, 0x0AF63, GBP_HNGL_LVT}, - {0x0AF64, 0x0AF64, GBP_HNGL_LV}, - {0x0AF65, 0x0AF7F, GBP_HNGL_LVT}, - {0x0AF80, 0x0AF80, GBP_HNGL_LV}, - {0x0AF81, 0x0AF9B, GBP_HNGL_LVT}, - {0x0AF9C, 0x0AF9C, GBP_HNGL_LV}, - {0x0AF9D, 0x0AFB7, GBP_HNGL_LVT}, - {0x0AFB8, 0x0AFB8, GBP_HNGL_LV}, - {0x0AFB9, 0x0AFD3, GBP_HNGL_LVT}, - {0x0AFD4, 0x0AFD4, GBP_HNGL_LV}, - {0x0AFD5, 0x0AFEF, GBP_HNGL_LVT}, - {0x0AFF0, 0x0AFF0, GBP_HNGL_LV}, - {0x0AFF1, 0x0B00B, GBP_HNGL_LVT}, - {0x0B00C, 0x0B00C, GBP_HNGL_LV}, - {0x0B00D, 0x0B027, GBP_HNGL_LVT}, - {0x0B028, 0x0B028, GBP_HNGL_LV}, - {0x0B029, 0x0B043, GBP_HNGL_LVT}, - {0x0B044, 0x0B044, GBP_HNGL_LV}, - {0x0B045, 0x0B05F, GBP_HNGL_LVT}, - {0x0B060, 0x0B060, GBP_HNGL_LV}, - {0x0B061, 0x0B07B, GBP_HNGL_LVT}, - {0x0B07C, 0x0B07C, GBP_HNGL_LV}, - {0x0B07D, 0x0B097, GBP_HNGL_LVT}, - {0x0B098, 0x0B098, GBP_HNGL_LV}, - {0x0B099, 0x0B0B3, GBP_HNGL_LVT}, - {0x0B0B4, 0x0B0B4, GBP_HNGL_LV}, - {0x0B0B5, 0x0B0CF, GBP_HNGL_LVT}, - {0x0B0D0, 0x0B0D0, GBP_HNGL_LV}, - {0x0B0D1, 0x0B0EB, GBP_HNGL_LVT}, - {0x0B0EC, 0x0B0EC, GBP_HNGL_LV}, - {0x0B0ED, 0x0B107, GBP_HNGL_LVT}, - {0x0B108, 0x0B108, GBP_HNGL_LV}, - {0x0B109, 0x0B123, GBP_HNGL_LVT}, - {0x0B124, 0x0B124, GBP_HNGL_LV}, - {0x0B125, 0x0B13F, GBP_HNGL_LVT}, - {0x0B140, 0x0B140, GBP_HNGL_LV}, - {0x0B141, 0x0B15B, GBP_HNGL_LVT}, - {0x0B15C, 0x0B15C, GBP_HNGL_LV}, - {0x0B15D, 0x0B177, GBP_HNGL_LVT}, - {0x0B178, 0x0B178, GBP_HNGL_LV}, - {0x0B179, 0x0B193, GBP_HNGL_LVT}, - {0x0B194, 0x0B194, GBP_HNGL_LV}, - {0x0B195, 0x0B1AF, GBP_HNGL_LVT}, - {0x0B1B0, 0x0B1B0, GBP_HNGL_LV}, - {0x0B1B1, 0x0B1CB, GBP_HNGL_LVT}, - {0x0B1CC, 0x0B1CC, GBP_HNGL_LV}, - {0x0B1CD, 0x0B1E7, GBP_HNGL_LVT}, - {0x0B1E8, 0x0B1E8, GBP_HNGL_LV}, - {0x0B1E9, 0x0B203, GBP_HNGL_LVT}, - {0x0B204, 0x0B204, GBP_HNGL_LV}, - {0x0B205, 0x0B21F, GBP_HNGL_LVT}, - {0x0B220, 0x0B220, GBP_HNGL_LV}, - {0x0B221, 0x0B23B, GBP_HNGL_LVT}, - {0x0B23C, 0x0B23C, GBP_HNGL_LV}, - {0x0B23D, 0x0B257, GBP_HNGL_LVT}, - {0x0B258, 0x0B258, GBP_HNGL_LV}, - {0x0B259, 0x0B273, GBP_HNGL_LVT}, - {0x0B274, 0x0B274, GBP_HNGL_LV}, - {0x0B275, 0x0B28F, GBP_HNGL_LVT}, - {0x0B290, 0x0B290, GBP_HNGL_LV}, - {0x0B291, 0x0B2AB, GBP_HNGL_LVT}, - {0x0B2AC, 0x0B2AC, GBP_HNGL_LV}, - {0x0B2AD, 0x0B2C7, GBP_HNGL_LVT}, - {0x0B2C8, 0x0B2C8, GBP_HNGL_LV}, - {0x0B2C9, 0x0B2E3, GBP_HNGL_LVT}, - {0x0B2E4, 0x0B2E4, GBP_HNGL_LV}, - {0x0B2E5, 0x0B2FF, GBP_HNGL_LVT}, - {0x0B300, 0x0B300, GBP_HNGL_LV}, - {0x0B301, 0x0B31B, GBP_HNGL_LVT}, - {0x0B31C, 0x0B31C, GBP_HNGL_LV}, - {0x0B31D, 0x0B337, GBP_HNGL_LVT}, - {0x0B338, 0x0B338, GBP_HNGL_LV}, - {0x0B339, 0x0B353, GBP_HNGL_LVT}, - {0x0B354, 0x0B354, GBP_HNGL_LV}, - {0x0B355, 0x0B36F, GBP_HNGL_LVT}, - {0x0B370, 0x0B370, GBP_HNGL_LV}, - {0x0B371, 0x0B38B, GBP_HNGL_LVT}, - {0x0B38C, 0x0B38C, GBP_HNGL_LV}, - {0x0B38D, 0x0B3A7, GBP_HNGL_LVT}, - {0x0B3A8, 0x0B3A8, GBP_HNGL_LV}, - {0x0B3A9, 0x0B3C3, GBP_HNGL_LVT}, - {0x0B3C4, 0x0B3C4, GBP_HNGL_LV}, - {0x0B3C5, 0x0B3DF, GBP_HNGL_LVT}, - {0x0B3E0, 0x0B3E0, GBP_HNGL_LV}, - {0x0B3E1, 0x0B3FB, GBP_HNGL_LVT}, - {0x0B3FC, 0x0B3FC, GBP_HNGL_LV}, - {0x0B3FD, 0x0B417, GBP_HNGL_LVT}, - {0x0B418, 0x0B418, GBP_HNGL_LV}, - {0x0B419, 0x0B433, GBP_HNGL_LVT}, - {0x0B434, 0x0B434, GBP_HNGL_LV}, - {0x0B435, 0x0B44F, GBP_HNGL_LVT}, - {0x0B450, 0x0B450, GBP_HNGL_LV}, - {0x0B451, 0x0B46B, GBP_HNGL_LVT}, - {0x0B46C, 0x0B46C, GBP_HNGL_LV}, - {0x0B46D, 0x0B487, GBP_HNGL_LVT}, - {0x0B488, 0x0B488, GBP_HNGL_LV}, - {0x0B489, 0x0B4A3, GBP_HNGL_LVT}, - {0x0B4A4, 0x0B4A4, GBP_HNGL_LV}, - {0x0B4A5, 0x0B4BF, GBP_HNGL_LVT}, - {0x0B4C0, 0x0B4C0, GBP_HNGL_LV}, - {0x0B4C1, 0x0B4DB, GBP_HNGL_LVT}, - {0x0B4DC, 0x0B4DC, GBP_HNGL_LV}, - {0x0B4DD, 0x0B4F7, GBP_HNGL_LVT}, - {0x0B4F8, 0x0B4F8, GBP_HNGL_LV}, - {0x0B4F9, 0x0B513, GBP_HNGL_LVT}, - {0x0B514, 0x0B514, GBP_HNGL_LV}, - {0x0B515, 0x0B52F, GBP_HNGL_LVT}, - {0x0B530, 0x0B530, GBP_HNGL_LV}, - {0x0B531, 0x0B54B, GBP_HNGL_LVT}, - {0x0B54C, 0x0B54C, GBP_HNGL_LV}, - {0x0B54D, 0x0B567, GBP_HNGL_LVT}, - {0x0B568, 0x0B568, GBP_HNGL_LV}, - {0x0B569, 0x0B583, GBP_HNGL_LVT}, - {0x0B584, 0x0B584, GBP_HNGL_LV}, - {0x0B585, 0x0B59F, GBP_HNGL_LVT}, - {0x0B5A0, 0x0B5A0, GBP_HNGL_LV}, - {0x0B5A1, 0x0B5BB, GBP_HNGL_LVT}, - {0x0B5BC, 0x0B5BC, GBP_HNGL_LV}, - {0x0B5BD, 0x0B5D7, GBP_HNGL_LVT}, - {0x0B5D8, 0x0B5D8, GBP_HNGL_LV}, - {0x0B5D9, 0x0B5F3, GBP_HNGL_LVT}, - {0x0B5F4, 0x0B5F4, GBP_HNGL_LV}, - {0x0B5F5, 0x0B60F, GBP_HNGL_LVT}, - {0x0B610, 0x0B610, GBP_HNGL_LV}, - {0x0B611, 0x0B62B, GBP_HNGL_LVT}, - {0x0B62C, 0x0B62C, GBP_HNGL_LV}, - {0x0B62D, 0x0B647, GBP_HNGL_LVT}, - {0x0B648, 0x0B648, GBP_HNGL_LV}, - {0x0B649, 0x0B663, GBP_HNGL_LVT}, - {0x0B664, 0x0B664, GBP_HNGL_LV}, - {0x0B665, 0x0B67F, GBP_HNGL_LVT}, - {0x0B680, 0x0B680, GBP_HNGL_LV}, - {0x0B681, 0x0B69B, GBP_HNGL_LVT}, - {0x0B69C, 0x0B69C, GBP_HNGL_LV}, - {0x0B69D, 0x0B6B7, GBP_HNGL_LVT}, - {0x0B6B8, 0x0B6B8, GBP_HNGL_LV}, - {0x0B6B9, 0x0B6D3, GBP_HNGL_LVT}, - {0x0B6D4, 0x0B6D4, GBP_HNGL_LV}, - {0x0B6D5, 0x0B6EF, GBP_HNGL_LVT}, - {0x0B6F0, 0x0B6F0, GBP_HNGL_LV}, - {0x0B6F1, 0x0B70B, GBP_HNGL_LVT}, - {0x0B70C, 0x0B70C, GBP_HNGL_LV}, - {0x0B70D, 0x0B727, GBP_HNGL_LVT}, - {0x0B728, 0x0B728, GBP_HNGL_LV}, - {0x0B729, 0x0B743, GBP_HNGL_LVT}, - {0x0B744, 0x0B744, GBP_HNGL_LV}, - {0x0B745, 0x0B75F, GBP_HNGL_LVT}, - {0x0B760, 0x0B760, GBP_HNGL_LV}, - {0x0B761, 0x0B77B, GBP_HNGL_LVT}, - {0x0B77C, 0x0B77C, GBP_HNGL_LV}, - {0x0B77D, 0x0B797, GBP_HNGL_LVT}, - {0x0B798, 0x0B798, GBP_HNGL_LV}, - {0x0B799, 0x0B7B3, GBP_HNGL_LVT}, - {0x0B7B4, 0x0B7B4, GBP_HNGL_LV}, - {0x0B7B5, 0x0B7CF, GBP_HNGL_LVT}, - {0x0B7D0, 0x0B7D0, GBP_HNGL_LV}, - {0x0B7D1, 0x0B7EB, GBP_HNGL_LVT}, - {0x0B7EC, 0x0B7EC, GBP_HNGL_LV}, - {0x0B7ED, 0x0B807, GBP_HNGL_LVT}, - {0x0B808, 0x0B808, GBP_HNGL_LV}, - {0x0B809, 0x0B823, GBP_HNGL_LVT}, - {0x0B824, 0x0B824, GBP_HNGL_LV}, - {0x0B825, 0x0B83F, GBP_HNGL_LVT}, - {0x0B840, 0x0B840, GBP_HNGL_LV}, - {0x0B841, 0x0B85B, GBP_HNGL_LVT}, - {0x0B85C, 0x0B85C, GBP_HNGL_LV}, - {0x0B85D, 0x0B877, GBP_HNGL_LVT}, - {0x0B878, 0x0B878, GBP_HNGL_LV}, - {0x0B879, 0x0B893, GBP_HNGL_LVT}, - {0x0B894, 0x0B894, GBP_HNGL_LV}, - {0x0B895, 0x0B8AF, GBP_HNGL_LVT}, - {0x0B8B0, 0x0B8B0, GBP_HNGL_LV}, - {0x0B8B1, 0x0B8CB, GBP_HNGL_LVT}, - {0x0B8CC, 0x0B8CC, GBP_HNGL_LV}, - {0x0B8CD, 0x0B8E7, GBP_HNGL_LVT}, - {0x0B8E8, 0x0B8E8, GBP_HNGL_LV}, - {0x0B8E9, 0x0B903, GBP_HNGL_LVT}, - {0x0B904, 0x0B904, GBP_HNGL_LV}, - {0x0B905, 0x0B91F, GBP_HNGL_LVT}, - {0x0B920, 0x0B920, GBP_HNGL_LV}, - {0x0B921, 0x0B93B, GBP_HNGL_LVT}, - {0x0B93C, 0x0B93C, GBP_HNGL_LV}, - {0x0B93D, 0x0B957, GBP_HNGL_LVT}, - {0x0B958, 0x0B958, GBP_HNGL_LV}, - {0x0B959, 0x0B973, GBP_HNGL_LVT}, - {0x0B974, 0x0B974, GBP_HNGL_LV}, - {0x0B975, 0x0B98F, GBP_HNGL_LVT}, - {0x0B990, 0x0B990, GBP_HNGL_LV}, - {0x0B991, 0x0B9AB, GBP_HNGL_LVT}, - {0x0B9AC, 0x0B9AC, GBP_HNGL_LV}, - {0x0B9AD, 0x0B9C7, GBP_HNGL_LVT}, - {0x0B9C8, 0x0B9C8, GBP_HNGL_LV}, - {0x0B9C9, 0x0B9E3, GBP_HNGL_LVT}, - {0x0B9E4, 0x0B9E4, GBP_HNGL_LV}, - {0x0B9E5, 0x0B9FF, GBP_HNGL_LVT}, - {0x0BA00, 0x0BA00, GBP_HNGL_LV}, - {0x0BA01, 0x0BA1B, GBP_HNGL_LVT}, - {0x0BA1C, 0x0BA1C, GBP_HNGL_LV}, - {0x0BA1D, 0x0BA37, GBP_HNGL_LVT}, - {0x0BA38, 0x0BA38, GBP_HNGL_LV}, - {0x0BA39, 0x0BA53, GBP_HNGL_LVT}, - {0x0BA54, 0x0BA54, GBP_HNGL_LV}, - {0x0BA55, 0x0BA6F, GBP_HNGL_LVT}, - {0x0BA70, 0x0BA70, GBP_HNGL_LV}, - {0x0BA71, 0x0BA8B, GBP_HNGL_LVT}, - {0x0BA8C, 0x0BA8C, GBP_HNGL_LV}, - {0x0BA8D, 0x0BAA7, GBP_HNGL_LVT}, - {0x0BAA8, 0x0BAA8, GBP_HNGL_LV}, - {0x0BAA9, 0x0BAC3, GBP_HNGL_LVT}, - {0x0BAC4, 0x0BAC4, GBP_HNGL_LV}, - {0x0BAC5, 0x0BADF, GBP_HNGL_LVT}, - {0x0BAE0, 0x0BAE0, GBP_HNGL_LV}, - {0x0BAE1, 0x0BAFB, GBP_HNGL_LVT}, - {0x0BAFC, 0x0BAFC, GBP_HNGL_LV}, - {0x0BAFD, 0x0BB17, GBP_HNGL_LVT}, - {0x0BB18, 0x0BB18, GBP_HNGL_LV}, - {0x0BB19, 0x0BB33, GBP_HNGL_LVT}, - {0x0BB34, 0x0BB34, GBP_HNGL_LV}, - {0x0BB35, 0x0BB4F, GBP_HNGL_LVT}, - {0x0BB50, 0x0BB50, GBP_HNGL_LV}, - {0x0BB51, 0x0BB6B, GBP_HNGL_LVT}, - {0x0BB6C, 0x0BB6C, GBP_HNGL_LV}, - {0x0BB6D, 0x0BB87, GBP_HNGL_LVT}, - {0x0BB88, 0x0BB88, GBP_HNGL_LV}, - {0x0BB89, 0x0BBA3, GBP_HNGL_LVT}, - {0x0BBA4, 0x0BBA4, GBP_HNGL_LV}, - {0x0BBA5, 0x0BBBF, GBP_HNGL_LVT}, - {0x0BBC0, 0x0BBC0, GBP_HNGL_LV}, - {0x0BBC1, 0x0BBDB, GBP_HNGL_LVT}, - {0x0BBDC, 0x0BBDC, GBP_HNGL_LV}, - {0x0BBDD, 0x0BBF7, GBP_HNGL_LVT}, - {0x0BBF8, 0x0BBF8, GBP_HNGL_LV}, - {0x0BBF9, 0x0BC13, GBP_HNGL_LVT}, - {0x0BC14, 0x0BC14, GBP_HNGL_LV}, - {0x0BC15, 0x0BC2F, GBP_HNGL_LVT}, - {0x0BC30, 0x0BC30, GBP_HNGL_LV}, - {0x0BC31, 0x0BC4B, GBP_HNGL_LVT}, - {0x0BC4C, 0x0BC4C, GBP_HNGL_LV}, - {0x0BC4D, 0x0BC67, GBP_HNGL_LVT}, - {0x0BC68, 0x0BC68, GBP_HNGL_LV}, - {0x0BC69, 0x0BC83, GBP_HNGL_LVT}, - {0x0BC84, 0x0BC84, GBP_HNGL_LV}, - {0x0BC85, 0x0BC9F, GBP_HNGL_LVT}, - {0x0BCA0, 0x0BCA0, GBP_HNGL_LV}, - {0x0BCA1, 0x0BCBB, GBP_HNGL_LVT}, - {0x0BCBC, 0x0BCBC, GBP_HNGL_LV}, - {0x0BCBD, 0x0BCD7, GBP_HNGL_LVT}, - {0x0BCD8, 0x0BCD8, GBP_HNGL_LV}, - {0x0BCD9, 0x0BCF3, GBP_HNGL_LVT}, - {0x0BCF4, 0x0BCF4, GBP_HNGL_LV}, - {0x0BCF5, 0x0BD0F, GBP_HNGL_LVT}, - {0x0BD10, 0x0BD10, GBP_HNGL_LV}, - {0x0BD11, 0x0BD2B, GBP_HNGL_LVT}, - {0x0BD2C, 0x0BD2C, GBP_HNGL_LV}, - {0x0BD2D, 0x0BD47, GBP_HNGL_LVT}, - {0x0BD48, 0x0BD48, GBP_HNGL_LV}, - {0x0BD49, 0x0BD63, GBP_HNGL_LVT}, - {0x0BD64, 0x0BD64, GBP_HNGL_LV}, - {0x0BD65, 0x0BD7F, GBP_HNGL_LVT}, - {0x0BD80, 0x0BD80, GBP_HNGL_LV}, - {0x0BD81, 0x0BD9B, GBP_HNGL_LVT}, - {0x0BD9C, 0x0BD9C, GBP_HNGL_LV}, - {0x0BD9D, 0x0BDB7, GBP_HNGL_LVT}, - {0x0BDB8, 0x0BDB8, GBP_HNGL_LV}, - {0x0BDB9, 0x0BDD3, GBP_HNGL_LVT}, - {0x0BDD4, 0x0BDD4, GBP_HNGL_LV}, - {0x0BDD5, 0x0BDEF, GBP_HNGL_LVT}, - {0x0BDF0, 0x0BDF0, GBP_HNGL_LV}, - {0x0BDF1, 0x0BE0B, GBP_HNGL_LVT}, - {0x0BE0C, 0x0BE0C, GBP_HNGL_LV}, - {0x0BE0D, 0x0BE27, GBP_HNGL_LVT}, - {0x0BE28, 0x0BE28, GBP_HNGL_LV}, - {0x0BE29, 0x0BE43, GBP_HNGL_LVT}, - {0x0BE44, 0x0BE44, GBP_HNGL_LV}, - {0x0BE45, 0x0BE5F, GBP_HNGL_LVT}, - {0x0BE60, 0x0BE60, GBP_HNGL_LV}, - {0x0BE61, 0x0BE7B, GBP_HNGL_LVT}, - {0x0BE7C, 0x0BE7C, GBP_HNGL_LV}, - {0x0BE7D, 0x0BE97, GBP_HNGL_LVT}, - {0x0BE98, 0x0BE98, GBP_HNGL_LV}, - {0x0BE99, 0x0BEB3, GBP_HNGL_LVT}, - {0x0BEB4, 0x0BEB4, GBP_HNGL_LV}, - {0x0BEB5, 0x0BECF, GBP_HNGL_LVT}, - {0x0BED0, 0x0BED0, GBP_HNGL_LV}, - {0x0BED1, 0x0BEEB, GBP_HNGL_LVT}, - {0x0BEEC, 0x0BEEC, GBP_HNGL_LV}, - {0x0BEED, 0x0BF07, GBP_HNGL_LVT}, - {0x0BF08, 0x0BF08, GBP_HNGL_LV}, - {0x0BF09, 0x0BF23, GBP_HNGL_LVT}, - {0x0BF24, 0x0BF24, GBP_HNGL_LV}, - {0x0BF25, 0x0BF3F, GBP_HNGL_LVT}, - {0x0BF40, 0x0BF40, GBP_HNGL_LV}, - {0x0BF41, 0x0BF5B, GBP_HNGL_LVT}, - {0x0BF5C, 0x0BF5C, GBP_HNGL_LV}, - {0x0BF5D, 0x0BF77, GBP_HNGL_LVT}, - {0x0BF78, 0x0BF78, GBP_HNGL_LV}, - {0x0BF79, 0x0BF93, GBP_HNGL_LVT}, - {0x0BF94, 0x0BF94, GBP_HNGL_LV}, - {0x0BF95, 0x0BFAF, GBP_HNGL_LVT}, - {0x0BFB0, 0x0BFB0, GBP_HNGL_LV}, - {0x0BFB1, 0x0BFCB, GBP_HNGL_LVT}, - {0x0BFCC, 0x0BFCC, GBP_HNGL_LV}, - {0x0BFCD, 0x0BFE7, GBP_HNGL_LVT}, - {0x0BFE8, 0x0BFE8, GBP_HNGL_LV}, - {0x0BFE9, 0x0C003, GBP_HNGL_LVT}, - {0x0C004, 0x0C004, GBP_HNGL_LV}, - {0x0C005, 0x0C01F, GBP_HNGL_LVT}, - {0x0C020, 0x0C020, GBP_HNGL_LV}, - {0x0C021, 0x0C03B, GBP_HNGL_LVT}, - {0x0C03C, 0x0C03C, GBP_HNGL_LV}, - {0x0C03D, 0x0C057, GBP_HNGL_LVT}, - {0x0C058, 0x0C058, GBP_HNGL_LV}, - {0x0C059, 0x0C073, GBP_HNGL_LVT}, - {0x0C074, 0x0C074, GBP_HNGL_LV}, - {0x0C075, 0x0C08F, GBP_HNGL_LVT}, - {0x0C090, 0x0C090, GBP_HNGL_LV}, - {0x0C091, 0x0C0AB, GBP_HNGL_LVT}, - {0x0C0AC, 0x0C0AC, GBP_HNGL_LV}, - {0x0C0AD, 0x0C0C7, GBP_HNGL_LVT}, - {0x0C0C8, 0x0C0C8, GBP_HNGL_LV}, - {0x0C0C9, 0x0C0E3, GBP_HNGL_LVT}, - {0x0C0E4, 0x0C0E4, GBP_HNGL_LV}, - {0x0C0E5, 0x0C0FF, GBP_HNGL_LVT}, - {0x0C100, 0x0C100, GBP_HNGL_LV}, - {0x0C101, 0x0C11B, GBP_HNGL_LVT}, - {0x0C11C, 0x0C11C, GBP_HNGL_LV}, - {0x0C11D, 0x0C137, GBP_HNGL_LVT}, - {0x0C138, 0x0C138, GBP_HNGL_LV}, - {0x0C139, 0x0C153, GBP_HNGL_LVT}, - {0x0C154, 0x0C154, GBP_HNGL_LV}, - {0x0C155, 0x0C16F, GBP_HNGL_LVT}, - {0x0C170, 0x0C170, GBP_HNGL_LV}, - {0x0C171, 0x0C18B, GBP_HNGL_LVT}, - {0x0C18C, 0x0C18C, GBP_HNGL_LV}, - {0x0C18D, 0x0C1A7, GBP_HNGL_LVT}, - {0x0C1A8, 0x0C1A8, GBP_HNGL_LV}, - {0x0C1A9, 0x0C1C3, GBP_HNGL_LVT}, - {0x0C1C4, 0x0C1C4, GBP_HNGL_LV}, - {0x0C1C5, 0x0C1DF, GBP_HNGL_LVT}, - {0x0C1E0, 0x0C1E0, GBP_HNGL_LV}, - {0x0C1E1, 0x0C1FB, GBP_HNGL_LVT}, - {0x0C1FC, 0x0C1FC, GBP_HNGL_LV}, - {0x0C1FD, 0x0C217, GBP_HNGL_LVT}, - {0x0C218, 0x0C218, GBP_HNGL_LV}, - {0x0C219, 0x0C233, GBP_HNGL_LVT}, - {0x0C234, 0x0C234, GBP_HNGL_LV}, - {0x0C235, 0x0C24F, GBP_HNGL_LVT}, - {0x0C250, 0x0C250, GBP_HNGL_LV}, - {0x0C251, 0x0C26B, GBP_HNGL_LVT}, - {0x0C26C, 0x0C26C, GBP_HNGL_LV}, - {0x0C26D, 0x0C287, GBP_HNGL_LVT}, - {0x0C288, 0x0C288, GBP_HNGL_LV}, - {0x0C289, 0x0C2A3, GBP_HNGL_LVT}, - {0x0C2A4, 0x0C2A4, GBP_HNGL_LV}, - {0x0C2A5, 0x0C2BF, GBP_HNGL_LVT}, - {0x0C2C0, 0x0C2C0, GBP_HNGL_LV}, - {0x0C2C1, 0x0C2DB, GBP_HNGL_LVT}, - {0x0C2DC, 0x0C2DC, GBP_HNGL_LV}, - {0x0C2DD, 0x0C2F7, GBP_HNGL_LVT}, - {0x0C2F8, 0x0C2F8, GBP_HNGL_LV}, - {0x0C2F9, 0x0C313, GBP_HNGL_LVT}, - {0x0C314, 0x0C314, GBP_HNGL_LV}, - {0x0C315, 0x0C32F, GBP_HNGL_LVT}, - {0x0C330, 0x0C330, GBP_HNGL_LV}, - {0x0C331, 0x0C34B, GBP_HNGL_LVT}, - {0x0C34C, 0x0C34C, GBP_HNGL_LV}, - {0x0C34D, 0x0C367, GBP_HNGL_LVT}, - {0x0C368, 0x0C368, GBP_HNGL_LV}, - {0x0C369, 0x0C383, GBP_HNGL_LVT}, - {0x0C384, 0x0C384, GBP_HNGL_LV}, - {0x0C385, 0x0C39F, GBP_HNGL_LVT}, - {0x0C3A0, 0x0C3A0, GBP_HNGL_LV}, - {0x0C3A1, 0x0C3BB, GBP_HNGL_LVT}, - {0x0C3BC, 0x0C3BC, GBP_HNGL_LV}, - {0x0C3BD, 0x0C3D7, GBP_HNGL_LVT}, - {0x0C3D8, 0x0C3D8, GBP_HNGL_LV}, - {0x0C3D9, 0x0C3F3, GBP_HNGL_LVT}, - {0x0C3F4, 0x0C3F4, GBP_HNGL_LV}, - {0x0C3F5, 0x0C40F, GBP_HNGL_LVT}, - {0x0C410, 0x0C410, GBP_HNGL_LV}, - {0x0C411, 0x0C42B, GBP_HNGL_LVT}, - {0x0C42C, 0x0C42C, GBP_HNGL_LV}, - {0x0C42D, 0x0C447, GBP_HNGL_LVT}, - {0x0C448, 0x0C448, GBP_HNGL_LV}, - {0x0C449, 0x0C463, GBP_HNGL_LVT}, - {0x0C464, 0x0C464, GBP_HNGL_LV}, - {0x0C465, 0x0C47F, GBP_HNGL_LVT}, - {0x0C480, 0x0C480, GBP_HNGL_LV}, - {0x0C481, 0x0C49B, GBP_HNGL_LVT}, - {0x0C49C, 0x0C49C, GBP_HNGL_LV}, - {0x0C49D, 0x0C4B7, GBP_HNGL_LVT}, - {0x0C4B8, 0x0C4B8, GBP_HNGL_LV}, - {0x0C4B9, 0x0C4D3, GBP_HNGL_LVT}, - {0x0C4D4, 0x0C4D4, GBP_HNGL_LV}, - {0x0C4D5, 0x0C4EF, GBP_HNGL_LVT}, - {0x0C4F0, 0x0C4F0, GBP_HNGL_LV}, - {0x0C4F1, 0x0C50B, GBP_HNGL_LVT}, - {0x0C50C, 0x0C50C, GBP_HNGL_LV}, - {0x0C50D, 0x0C527, GBP_HNGL_LVT}, - {0x0C528, 0x0C528, GBP_HNGL_LV}, - {0x0C529, 0x0C543, GBP_HNGL_LVT}, - {0x0C544, 0x0C544, GBP_HNGL_LV}, - {0x0C545, 0x0C55F, GBP_HNGL_LVT}, - {0x0C560, 0x0C560, GBP_HNGL_LV}, - {0x0C561, 0x0C57B, GBP_HNGL_LVT}, - {0x0C57C, 0x0C57C, GBP_HNGL_LV}, - {0x0C57D, 0x0C597, GBP_HNGL_LVT}, - {0x0C598, 0x0C598, GBP_HNGL_LV}, - {0x0C599, 0x0C5B3, GBP_HNGL_LVT}, - {0x0C5B4, 0x0C5B4, GBP_HNGL_LV}, - {0x0C5B5, 0x0C5CF, GBP_HNGL_LVT}, - {0x0C5D0, 0x0C5D0, GBP_HNGL_LV}, - {0x0C5D1, 0x0C5EB, GBP_HNGL_LVT}, - {0x0C5EC, 0x0C5EC, GBP_HNGL_LV}, - {0x0C5ED, 0x0C607, GBP_HNGL_LVT}, - {0x0C608, 0x0C608, GBP_HNGL_LV}, - {0x0C609, 0x0C623, GBP_HNGL_LVT}, - {0x0C624, 0x0C624, GBP_HNGL_LV}, - {0x0C625, 0x0C63F, GBP_HNGL_LVT}, - {0x0C640, 0x0C640, GBP_HNGL_LV}, - {0x0C641, 0x0C65B, GBP_HNGL_LVT}, - {0x0C65C, 0x0C65C, GBP_HNGL_LV}, - {0x0C65D, 0x0C677, GBP_HNGL_LVT}, - {0x0C678, 0x0C678, GBP_HNGL_LV}, - {0x0C679, 0x0C693, GBP_HNGL_LVT}, - {0x0C694, 0x0C694, GBP_HNGL_LV}, - {0x0C695, 0x0C6AF, GBP_HNGL_LVT}, - {0x0C6B0, 0x0C6B0, GBP_HNGL_LV}, - {0x0C6B1, 0x0C6CB, GBP_HNGL_LVT}, - {0x0C6CC, 0x0C6CC, GBP_HNGL_LV}, - {0x0C6CD, 0x0C6E7, GBP_HNGL_LVT}, - {0x0C6E8, 0x0C6E8, GBP_HNGL_LV}, - {0x0C6E9, 0x0C703, GBP_HNGL_LVT}, - {0x0C704, 0x0C704, GBP_HNGL_LV}, - {0x0C705, 0x0C71F, GBP_HNGL_LVT}, - {0x0C720, 0x0C720, GBP_HNGL_LV}, - {0x0C721, 0x0C73B, GBP_HNGL_LVT}, - {0x0C73C, 0x0C73C, GBP_HNGL_LV}, - {0x0C73D, 0x0C757, GBP_HNGL_LVT}, - {0x0C758, 0x0C758, GBP_HNGL_LV}, - {0x0C759, 0x0C773, GBP_HNGL_LVT}, - {0x0C774, 0x0C774, GBP_HNGL_LV}, - {0x0C775, 0x0C78F, GBP_HNGL_LVT}, - {0x0C790, 0x0C790, GBP_HNGL_LV}, - {0x0C791, 0x0C7AB, GBP_HNGL_LVT}, - {0x0C7AC, 0x0C7AC, GBP_HNGL_LV}, - {0x0C7AD, 0x0C7C7, GBP_HNGL_LVT}, - {0x0C7C8, 0x0C7C8, GBP_HNGL_LV}, - {0x0C7C9, 0x0C7E3, GBP_HNGL_LVT}, - {0x0C7E4, 0x0C7E4, GBP_HNGL_LV}, - {0x0C7E5, 0x0C7FF, GBP_HNGL_LVT}, - {0x0C800, 0x0C800, GBP_HNGL_LV}, - {0x0C801, 0x0C81B, GBP_HNGL_LVT}, - {0x0C81C, 0x0C81C, GBP_HNGL_LV}, - {0x0C81D, 0x0C837, GBP_HNGL_LVT}, - {0x0C838, 0x0C838, GBP_HNGL_LV}, - {0x0C839, 0x0C853, GBP_HNGL_LVT}, - {0x0C854, 0x0C854, GBP_HNGL_LV}, - {0x0C855, 0x0C86F, GBP_HNGL_LVT}, - {0x0C870, 0x0C870, GBP_HNGL_LV}, - {0x0C871, 0x0C88B, GBP_HNGL_LVT}, - {0x0C88C, 0x0C88C, GBP_HNGL_LV}, - {0x0C88D, 0x0C8A7, GBP_HNGL_LVT}, - {0x0C8A8, 0x0C8A8, GBP_HNGL_LV}, - {0x0C8A9, 0x0C8C3, GBP_HNGL_LVT}, - {0x0C8C4, 0x0C8C4, GBP_HNGL_LV}, - {0x0C8C5, 0x0C8DF, GBP_HNGL_LVT}, - {0x0C8E0, 0x0C8E0, GBP_HNGL_LV}, - {0x0C8E1, 0x0C8FB, GBP_HNGL_LVT}, - {0x0C8FC, 0x0C8FC, GBP_HNGL_LV}, - {0x0C8FD, 0x0C917, GBP_HNGL_LVT}, - {0x0C918, 0x0C918, GBP_HNGL_LV}, - {0x0C919, 0x0C933, GBP_HNGL_LVT}, - {0x0C934, 0x0C934, GBP_HNGL_LV}, - {0x0C935, 0x0C94F, GBP_HNGL_LVT}, - {0x0C950, 0x0C950, GBP_HNGL_LV}, - {0x0C951, 0x0C96B, GBP_HNGL_LVT}, - {0x0C96C, 0x0C96C, GBP_HNGL_LV}, - {0x0C96D, 0x0C987, GBP_HNGL_LVT}, - {0x0C988, 0x0C988, GBP_HNGL_LV}, - {0x0C989, 0x0C9A3, GBP_HNGL_LVT}, - {0x0C9A4, 0x0C9A4, GBP_HNGL_LV}, - {0x0C9A5, 0x0C9BF, GBP_HNGL_LVT}, - {0x0C9C0, 0x0C9C0, GBP_HNGL_LV}, - {0x0C9C1, 0x0C9DB, GBP_HNGL_LVT}, - {0x0C9DC, 0x0C9DC, GBP_HNGL_LV}, - {0x0C9DD, 0x0C9F7, GBP_HNGL_LVT}, - {0x0C9F8, 0x0C9F8, GBP_HNGL_LV}, - {0x0C9F9, 0x0CA13, GBP_HNGL_LVT}, - {0x0CA14, 0x0CA14, GBP_HNGL_LV}, - {0x0CA15, 0x0CA2F, GBP_HNGL_LVT}, - {0x0CA30, 0x0CA30, GBP_HNGL_LV}, - {0x0CA31, 0x0CA4B, GBP_HNGL_LVT}, - {0x0CA4C, 0x0CA4C, GBP_HNGL_LV}, - {0x0CA4D, 0x0CA67, GBP_HNGL_LVT}, - {0x0CA68, 0x0CA68, GBP_HNGL_LV}, - {0x0CA69, 0x0CA83, GBP_HNGL_LVT}, - {0x0CA84, 0x0CA84, GBP_HNGL_LV}, - {0x0CA85, 0x0CA9F, GBP_HNGL_LVT}, - {0x0CAA0, 0x0CAA0, GBP_HNGL_LV}, - {0x0CAA1, 0x0CABB, GBP_HNGL_LVT}, - {0x0CABC, 0x0CABC, GBP_HNGL_LV}, - {0x0CABD, 0x0CAD7, GBP_HNGL_LVT}, - {0x0CAD8, 0x0CAD8, GBP_HNGL_LV}, - {0x0CAD9, 0x0CAF3, GBP_HNGL_LVT}, - {0x0CAF4, 0x0CAF4, GBP_HNGL_LV}, - {0x0CAF5, 0x0CB0F, GBP_HNGL_LVT}, - {0x0CB10, 0x0CB10, GBP_HNGL_LV}, - {0x0CB11, 0x0CB2B, GBP_HNGL_LVT}, - {0x0CB2C, 0x0CB2C, GBP_HNGL_LV}, - {0x0CB2D, 0x0CB47, GBP_HNGL_LVT}, - {0x0CB48, 0x0CB48, GBP_HNGL_LV}, - {0x0CB49, 0x0CB63, GBP_HNGL_LVT}, - {0x0CB64, 0x0CB64, GBP_HNGL_LV}, - {0x0CB65, 0x0CB7F, GBP_HNGL_LVT}, - {0x0CB80, 0x0CB80, GBP_HNGL_LV}, - {0x0CB81, 0x0CB9B, GBP_HNGL_LVT}, - {0x0CB9C, 0x0CB9C, GBP_HNGL_LV}, - {0x0CB9D, 0x0CBB7, GBP_HNGL_LVT}, - {0x0CBB8, 0x0CBB8, GBP_HNGL_LV}, - {0x0CBB9, 0x0CBD3, GBP_HNGL_LVT}, - {0x0CBD4, 0x0CBD4, GBP_HNGL_LV}, - {0x0CBD5, 0x0CBEF, GBP_HNGL_LVT}, - {0x0CBF0, 0x0CBF0, GBP_HNGL_LV}, - {0x0CBF1, 0x0CC0B, GBP_HNGL_LVT}, - {0x0CC0C, 0x0CC0C, GBP_HNGL_LV}, - {0x0CC0D, 0x0CC27, GBP_HNGL_LVT}, - {0x0CC28, 0x0CC28, GBP_HNGL_LV}, - {0x0CC29, 0x0CC43, GBP_HNGL_LVT}, - {0x0CC44, 0x0CC44, GBP_HNGL_LV}, - {0x0CC45, 0x0CC5F, GBP_HNGL_LVT}, - {0x0CC60, 0x0CC60, GBP_HNGL_LV}, - {0x0CC61, 0x0CC7B, GBP_HNGL_LVT}, - {0x0CC7C, 0x0CC7C, GBP_HNGL_LV}, - {0x0CC7D, 0x0CC97, GBP_HNGL_LVT}, - {0x0CC98, 0x0CC98, GBP_HNGL_LV}, - {0x0CC99, 0x0CCB3, GBP_HNGL_LVT}, - {0x0CCB4, 0x0CCB4, GBP_HNGL_LV}, - {0x0CCB5, 0x0CCCF, GBP_HNGL_LVT}, - {0x0CCD0, 0x0CCD0, GBP_HNGL_LV}, - {0x0CCD1, 0x0CCEB, GBP_HNGL_LVT}, - {0x0CCEC, 0x0CCEC, GBP_HNGL_LV}, - {0x0CCED, 0x0CD07, GBP_HNGL_LVT}, - {0x0CD08, 0x0CD08, GBP_HNGL_LV}, - {0x0CD09, 0x0CD23, GBP_HNGL_LVT}, - {0x0CD24, 0x0CD24, GBP_HNGL_LV}, - {0x0CD25, 0x0CD3F, GBP_HNGL_LVT}, - {0x0CD40, 0x0CD40, GBP_HNGL_LV}, - {0x0CD41, 0x0CD5B, GBP_HNGL_LVT}, - {0x0CD5C, 0x0CD5C, GBP_HNGL_LV}, - {0x0CD5D, 0x0CD77, GBP_HNGL_LVT}, - {0x0CD78, 0x0CD78, GBP_HNGL_LV}, - {0x0CD79, 0x0CD93, GBP_HNGL_LVT}, - {0x0CD94, 0x0CD94, GBP_HNGL_LV}, - {0x0CD95, 0x0CDAF, GBP_HNGL_LVT}, - {0x0CDB0, 0x0CDB0, GBP_HNGL_LV}, - {0x0CDB1, 0x0CDCB, GBP_HNGL_LVT}, - {0x0CDCC, 0x0CDCC, GBP_HNGL_LV}, - {0x0CDCD, 0x0CDE7, GBP_HNGL_LVT}, - {0x0CDE8, 0x0CDE8, GBP_HNGL_LV}, - {0x0CDE9, 0x0CE03, GBP_HNGL_LVT}, - {0x0CE04, 0x0CE04, GBP_HNGL_LV}, - {0x0CE05, 0x0CE1F, GBP_HNGL_LVT}, - {0x0CE20, 0x0CE20, GBP_HNGL_LV}, - {0x0CE21, 0x0CE3B, GBP_HNGL_LVT}, - {0x0CE3C, 0x0CE3C, GBP_HNGL_LV}, - {0x0CE3D, 0x0CE57, GBP_HNGL_LVT}, - {0x0CE58, 0x0CE58, GBP_HNGL_LV}, - {0x0CE59, 0x0CE73, GBP_HNGL_LVT}, - {0x0CE74, 0x0CE74, GBP_HNGL_LV}, - {0x0CE75, 0x0CE8F, GBP_HNGL_LVT}, - {0x0CE90, 0x0CE90, GBP_HNGL_LV}, - {0x0CE91, 0x0CEAB, GBP_HNGL_LVT}, - {0x0CEAC, 0x0CEAC, GBP_HNGL_LV}, - {0x0CEAD, 0x0CEC7, GBP_HNGL_LVT}, - {0x0CEC8, 0x0CEC8, GBP_HNGL_LV}, - {0x0CEC9, 0x0CEE3, GBP_HNGL_LVT}, - {0x0CEE4, 0x0CEE4, GBP_HNGL_LV}, - {0x0CEE5, 0x0CEFF, GBP_HNGL_LVT}, - {0x0CF00, 0x0CF00, GBP_HNGL_LV}, - {0x0CF01, 0x0CF1B, GBP_HNGL_LVT}, - {0x0CF1C, 0x0CF1C, GBP_HNGL_LV}, - {0x0CF1D, 0x0CF37, GBP_HNGL_LVT}, - {0x0CF38, 0x0CF38, GBP_HNGL_LV}, - {0x0CF39, 0x0CF53, GBP_HNGL_LVT}, - {0x0CF54, 0x0CF54, GBP_HNGL_LV}, - {0x0CF55, 0x0CF6F, GBP_HNGL_LVT}, - {0x0CF70, 0x0CF70, GBP_HNGL_LV}, - {0x0CF71, 0x0CF8B, GBP_HNGL_LVT}, - {0x0CF8C, 0x0CF8C, GBP_HNGL_LV}, - {0x0CF8D, 0x0CFA7, GBP_HNGL_LVT}, - {0x0CFA8, 0x0CFA8, GBP_HNGL_LV}, - {0x0CFA9, 0x0CFC3, GBP_HNGL_LVT}, - {0x0CFC4, 0x0CFC4, GBP_HNGL_LV}, - {0x0CFC5, 0x0CFDF, GBP_HNGL_LVT}, - {0x0CFE0, 0x0CFE0, GBP_HNGL_LV}, - {0x0CFE1, 0x0CFFB, GBP_HNGL_LVT}, - {0x0CFFC, 0x0CFFC, GBP_HNGL_LV}, - {0x0CFFD, 0x0D017, GBP_HNGL_LVT}, - {0x0D018, 0x0D018, GBP_HNGL_LV}, - {0x0D019, 0x0D033, GBP_HNGL_LVT}, - {0x0D034, 0x0D034, GBP_HNGL_LV}, - {0x0D035, 0x0D04F, GBP_HNGL_LVT}, - {0x0D050, 0x0D050, GBP_HNGL_LV}, - {0x0D051, 0x0D06B, GBP_HNGL_LVT}, - {0x0D06C, 0x0D06C, GBP_HNGL_LV}, - {0x0D06D, 0x0D087, GBP_HNGL_LVT}, - {0x0D088, 0x0D088, GBP_HNGL_LV}, - {0x0D089, 0x0D0A3, GBP_HNGL_LVT}, - {0x0D0A4, 0x0D0A4, GBP_HNGL_LV}, - {0x0D0A5, 0x0D0BF, GBP_HNGL_LVT}, - {0x0D0C0, 0x0D0C0, GBP_HNGL_LV}, - {0x0D0C1, 0x0D0DB, GBP_HNGL_LVT}, - {0x0D0DC, 0x0D0DC, GBP_HNGL_LV}, - {0x0D0DD, 0x0D0F7, GBP_HNGL_LVT}, - {0x0D0F8, 0x0D0F8, GBP_HNGL_LV}, - {0x0D0F9, 0x0D113, GBP_HNGL_LVT}, - {0x0D114, 0x0D114, GBP_HNGL_LV}, - {0x0D115, 0x0D12F, GBP_HNGL_LVT}, - {0x0D130, 0x0D130, GBP_HNGL_LV}, - {0x0D131, 0x0D14B, GBP_HNGL_LVT}, - {0x0D14C, 0x0D14C, GBP_HNGL_LV}, - {0x0D14D, 0x0D167, GBP_HNGL_LVT}, - {0x0D168, 0x0D168, GBP_HNGL_LV}, - {0x0D169, 0x0D183, GBP_HNGL_LVT}, - {0x0D184, 0x0D184, GBP_HNGL_LV}, - {0x0D185, 0x0D19F, GBP_HNGL_LVT}, - {0x0D1A0, 0x0D1A0, GBP_HNGL_LV}, - {0x0D1A1, 0x0D1BB, GBP_HNGL_LVT}, - {0x0D1BC, 0x0D1BC, GBP_HNGL_LV}, - {0x0D1BD, 0x0D1D7, GBP_HNGL_LVT}, - {0x0D1D8, 0x0D1D8, GBP_HNGL_LV}, - {0x0D1D9, 0x0D1F3, GBP_HNGL_LVT}, - {0x0D1F4, 0x0D1F4, GBP_HNGL_LV}, - {0x0D1F5, 0x0D20F, GBP_HNGL_LVT}, - {0x0D210, 0x0D210, GBP_HNGL_LV}, - {0x0D211, 0x0D22B, GBP_HNGL_LVT}, - {0x0D22C, 0x0D22C, GBP_HNGL_LV}, - {0x0D22D, 0x0D247, GBP_HNGL_LVT}, - {0x0D248, 0x0D248, GBP_HNGL_LV}, - {0x0D249, 0x0D263, GBP_HNGL_LVT}, - {0x0D264, 0x0D264, GBP_HNGL_LV}, - {0x0D265, 0x0D27F, GBP_HNGL_LVT}, - {0x0D280, 0x0D280, GBP_HNGL_LV}, - {0x0D281, 0x0D29B, GBP_HNGL_LVT}, - {0x0D29C, 0x0D29C, GBP_HNGL_LV}, - {0x0D29D, 0x0D2B7, GBP_HNGL_LVT}, - {0x0D2B8, 0x0D2B8, GBP_HNGL_LV}, - {0x0D2B9, 0x0D2D3, GBP_HNGL_LVT}, - {0x0D2D4, 0x0D2D4, GBP_HNGL_LV}, - {0x0D2D5, 0x0D2EF, GBP_HNGL_LVT}, - {0x0D2F0, 0x0D2F0, GBP_HNGL_LV}, - {0x0D2F1, 0x0D30B, GBP_HNGL_LVT}, - {0x0D30C, 0x0D30C, GBP_HNGL_LV}, - {0x0D30D, 0x0D327, GBP_HNGL_LVT}, - {0x0D328, 0x0D328, GBP_HNGL_LV}, - {0x0D329, 0x0D343, GBP_HNGL_LVT}, - {0x0D344, 0x0D344, GBP_HNGL_LV}, - {0x0D345, 0x0D35F, GBP_HNGL_LVT}, - {0x0D360, 0x0D360, GBP_HNGL_LV}, - {0x0D361, 0x0D37B, GBP_HNGL_LVT}, - {0x0D37C, 0x0D37C, GBP_HNGL_LV}, - {0x0D37D, 0x0D397, GBP_HNGL_LVT}, - {0x0D398, 0x0D398, GBP_HNGL_LV}, - {0x0D399, 0x0D3B3, GBP_HNGL_LVT}, - {0x0D3B4, 0x0D3B4, GBP_HNGL_LV}, - {0x0D3B5, 0x0D3CF, GBP_HNGL_LVT}, - {0x0D3D0, 0x0D3D0, GBP_HNGL_LV}, - {0x0D3D1, 0x0D3EB, GBP_HNGL_LVT}, - {0x0D3EC, 0x0D3EC, GBP_HNGL_LV}, - {0x0D3ED, 0x0D407, GBP_HNGL_LVT}, - {0x0D408, 0x0D408, GBP_HNGL_LV}, - {0x0D409, 0x0D423, GBP_HNGL_LVT}, - {0x0D424, 0x0D424, GBP_HNGL_LV}, - {0x0D425, 0x0D43F, GBP_HNGL_LVT}, - {0x0D440, 0x0D440, GBP_HNGL_LV}, - {0x0D441, 0x0D45B, GBP_HNGL_LVT}, - {0x0D45C, 0x0D45C, GBP_HNGL_LV}, - {0x0D45D, 0x0D477, GBP_HNGL_LVT}, - {0x0D478, 0x0D478, GBP_HNGL_LV}, - {0x0D479, 0x0D493, GBP_HNGL_LVT}, - {0x0D494, 0x0D494, GBP_HNGL_LV}, - {0x0D495, 0x0D4AF, GBP_HNGL_LVT}, - {0x0D4B0, 0x0D4B0, GBP_HNGL_LV}, - {0x0D4B1, 0x0D4CB, GBP_HNGL_LVT}, - {0x0D4CC, 0x0D4CC, GBP_HNGL_LV}, - {0x0D4CD, 0x0D4E7, GBP_HNGL_LVT}, - {0x0D4E8, 0x0D4E8, GBP_HNGL_LV}, - {0x0D4E9, 0x0D503, GBP_HNGL_LVT}, - {0x0D504, 0x0D504, GBP_HNGL_LV}, - {0x0D505, 0x0D51F, GBP_HNGL_LVT}, - {0x0D520, 0x0D520, GBP_HNGL_LV}, - {0x0D521, 0x0D53B, GBP_HNGL_LVT}, - {0x0D53C, 0x0D53C, GBP_HNGL_LV}, - {0x0D53D, 0x0D557, GBP_HNGL_LVT}, - {0x0D558, 0x0D558, GBP_HNGL_LV}, - {0x0D559, 0x0D573, GBP_HNGL_LVT}, - {0x0D574, 0x0D574, GBP_HNGL_LV}, - {0x0D575, 0x0D58F, GBP_HNGL_LVT}, - {0x0D590, 0x0D590, GBP_HNGL_LV}, - {0x0D591, 0x0D5AB, GBP_HNGL_LVT}, - {0x0D5AC, 0x0D5AC, GBP_HNGL_LV}, - {0x0D5AD, 0x0D5C7, GBP_HNGL_LVT}, - {0x0D5C8, 0x0D5C8, GBP_HNGL_LV}, - {0x0D5C9, 0x0D5E3, GBP_HNGL_LVT}, - {0x0D5E4, 0x0D5E4, GBP_HNGL_LV}, - {0x0D5E5, 0x0D5FF, GBP_HNGL_LVT}, - {0x0D600, 0x0D600, GBP_HNGL_LV}, - {0x0D601, 0x0D61B, GBP_HNGL_LVT}, - {0x0D61C, 0x0D61C, GBP_HNGL_LV}, - {0x0D61D, 0x0D637, GBP_HNGL_LVT}, - {0x0D638, 0x0D638, GBP_HNGL_LV}, - {0x0D639, 0x0D653, GBP_HNGL_LVT}, - {0x0D654, 0x0D654, GBP_HNGL_LV}, - {0x0D655, 0x0D66F, GBP_HNGL_LVT}, - {0x0D670, 0x0D670, GBP_HNGL_LV}, - {0x0D671, 0x0D68B, GBP_HNGL_LVT}, - {0x0D68C, 0x0D68C, GBP_HNGL_LV}, - {0x0D68D, 0x0D6A7, GBP_HNGL_LVT}, - {0x0D6A8, 0x0D6A8, GBP_HNGL_LV}, - {0x0D6A9, 0x0D6C3, GBP_HNGL_LVT}, - {0x0D6C4, 0x0D6C4, GBP_HNGL_LV}, - {0x0D6C5, 0x0D6DF, GBP_HNGL_LVT}, - {0x0D6E0, 0x0D6E0, GBP_HNGL_LV}, - {0x0D6E1, 0x0D6FB, GBP_HNGL_LVT}, - {0x0D6FC, 0x0D6FC, GBP_HNGL_LV}, - {0x0D6FD, 0x0D717, GBP_HNGL_LVT}, - {0x0D718, 0x0D718, GBP_HNGL_LV}, - {0x0D719, 0x0D733, GBP_HNGL_LVT}, - {0x0D734, 0x0D734, GBP_HNGL_LV}, - {0x0D735, 0x0D74F, GBP_HNGL_LVT}, - {0x0D750, 0x0D750, GBP_HNGL_LV}, - {0x0D751, 0x0D76B, GBP_HNGL_LVT}, - {0x0D76C, 0x0D76C, GBP_HNGL_LV}, - {0x0D76D, 0x0D787, GBP_HNGL_LVT}, - {0x0D788, 0x0D788, GBP_HNGL_LV}, - {0x0D789, 0x0D7A3, GBP_HNGL_LVT}, - {0x0D7B0, 0x0D7C6, GBP_HNGL_V}, - {0x0D7CB, 0x0D7FB, GBP_HNGL_T}, - {0x0FB1E, 0x0FB1E, GBP_INDC_EXT | GBP_EXT}, - {0x0FE00, 0x0FE0F, GBP_EXT}, - {0x0FE20, 0x0FE2F, GBP_INDC_EXT | GBP_EXT}, - {0x0FEFF, 0x0FEFF, GBP_CTRL}, - {0x0FF9E, 0x0FF9F, GBP_EXT}, - {0x0FFF0, 0x0FFFB, GBP_CTRL}, - {0x101FD, 0x101FD, GBP_INDC_EXT | GBP_EXT}, - {0x102E0, 0x102E0, GBP_INDC_EXT | GBP_EXT}, - {0x10376, 0x1037A, GBP_INDC_EXT | GBP_EXT}, - {0x10A01, 0x10A03, GBP_EXT}, - {0x10A05, 0x10A06, GBP_EXT}, - {0x10A0C, 0x10A0C, GBP_EXT}, - {0x10A0D, 0x10A0D, GBP_INDC_EXT | GBP_EXT}, - {0x10A0E, 0x10A0E, GBP_EXT}, - {0x10A0F, 0x10A0F, GBP_INDC_EXT | GBP_EXT}, - {0x10A38, 0x10A3A, GBP_INDC_EXT | GBP_EXT}, - {0x10A3F, 0x10A3F, GBP_INDC_EXT | GBP_EXT}, - {0x10AE5, 0x10AE6, GBP_INDC_EXT | GBP_EXT}, - {0x10D24, 0x10D27, GBP_INDC_EXT | GBP_EXT}, - {0x10EAB, 0x10EAC, GBP_INDC_EXT | GBP_EXT}, - {0x10EFD, 0x10EFF, GBP_INDC_EXT | GBP_EXT}, - {0x10F46, 0x10F50, GBP_INDC_EXT | GBP_EXT}, - {0x10F82, 0x10F85, GBP_INDC_EXT | GBP_EXT}, - {0x11000, 0x11000, GBP_SM}, - {0x11001, 0x11001, GBP_EXT}, - {0x11002, 0x11002, GBP_SM}, - {0x11038, 0x11046, GBP_EXT}, - {0x11070, 0x11070, GBP_INDC_EXT | GBP_EXT}, - {0x11073, 0x11074, GBP_EXT}, - {0x1107F, 0x1107F, GBP_INDC_EXT | GBP_EXT}, - {0x11080, 0x11081, GBP_EXT}, - {0x11082, 0x11082, GBP_SM}, - {0x110B0, 0x110B2, GBP_SM}, - {0x110B3, 0x110B6, GBP_EXT}, - {0x110B7, 0x110B8, GBP_SM}, - {0x110B9, 0x110B9, GBP_EXT}, - {0x110BA, 0x110BA, GBP_INDC_EXT | GBP_EXT}, - {0x110BD, 0x110BD, GBP_PREP}, - {0x110C2, 0x110C2, GBP_EXT}, - {0x110CD, 0x110CD, GBP_PREP}, - {0x11100, 0x11102, GBP_INDC_EXT | GBP_EXT}, - {0x11127, 0x1112B, GBP_EXT}, - {0x1112C, 0x1112C, GBP_SM}, - {0x1112D, 0x11132, GBP_EXT}, - {0x11133, 0x11134, GBP_INDC_EXT | GBP_EXT}, - {0x11145, 0x11146, GBP_SM}, - {0x11173, 0x11173, GBP_INDC_EXT | GBP_EXT}, - {0x11180, 0x11181, GBP_EXT}, - {0x11182, 0x11182, GBP_SM}, - {0x111B3, 0x111B5, GBP_SM}, - {0x111B6, 0x111BE, GBP_EXT}, - {0x111BF, 0x111C0, GBP_SM}, - {0x111C2, 0x111C3, GBP_PREP}, - {0x111C9, 0x111C9, GBP_EXT}, - {0x111CA, 0x111CA, GBP_INDC_EXT | GBP_EXT}, - {0x111CB, 0x111CC, GBP_EXT}, - {0x111CE, 0x111CE, GBP_SM}, - {0x111CF, 0x111CF, GBP_EXT}, - {0x1122C, 0x1122E, GBP_SM}, - {0x1122F, 0x11231, GBP_EXT}, - {0x11232, 0x11233, GBP_SM}, - {0x11234, 0x11234, GBP_EXT}, - {0x11235, 0x11235, GBP_SM}, - {0x11236, 0x11236, GBP_INDC_EXT | GBP_EXT}, - {0x11237, 0x11237, GBP_EXT}, - {0x1123E, 0x1123E, GBP_EXT}, - {0x11241, 0x11241, GBP_EXT}, - {0x112DF, 0x112DF, GBP_EXT}, - {0x112E0, 0x112E2, GBP_SM}, - {0x112E3, 0x112E8, GBP_EXT}, - {0x112E9, 0x112EA, GBP_INDC_EXT | GBP_EXT}, - {0x11300, 0x11301, GBP_EXT}, - {0x11302, 0x11303, GBP_SM}, - {0x1133B, 0x1133C, GBP_INDC_EXT | GBP_EXT}, - {0x1133E, 0x1133E, GBP_EXT}, - {0x1133F, 0x1133F, GBP_SM}, - {0x11340, 0x11340, GBP_EXT}, - {0x11341, 0x11344, GBP_SM}, - {0x11347, 0x11348, GBP_SM}, - {0x1134B, 0x1134D, GBP_SM}, - {0x11357, 0x11357, GBP_EXT}, - {0x11362, 0x11363, GBP_SM}, - {0x11366, 0x1136C, GBP_INDC_EXT | GBP_EXT}, - {0x11370, 0x11374, GBP_INDC_EXT | GBP_EXT}, - {0x11435, 0x11437, GBP_SM}, - {0x11438, 0x1143F, GBP_EXT}, - {0x11440, 0x11441, GBP_SM}, - {0x11442, 0x11444, GBP_EXT}, - {0x11445, 0x11445, GBP_SM}, - {0x11446, 0x11446, GBP_INDC_EXT | GBP_EXT}, - {0x1145E, 0x1145E, GBP_INDC_EXT | GBP_EXT}, - {0x114B0, 0x114B0, GBP_EXT}, - {0x114B1, 0x114B2, GBP_SM}, - {0x114B3, 0x114B8, GBP_EXT}, - {0x114B9, 0x114B9, GBP_SM}, - {0x114BA, 0x114BA, GBP_EXT}, - {0x114BB, 0x114BC, GBP_SM}, - {0x114BD, 0x114BD, GBP_EXT}, - {0x114BE, 0x114BE, GBP_SM}, - {0x114BF, 0x114C0, GBP_EXT}, - {0x114C1, 0x114C1, GBP_SM}, - {0x114C2, 0x114C2, GBP_EXT}, - {0x114C3, 0x114C3, GBP_INDC_EXT | GBP_EXT}, - {0x115AF, 0x115AF, GBP_EXT}, - {0x115B0, 0x115B1, GBP_SM}, - {0x115B2, 0x115B5, GBP_EXT}, - {0x115B8, 0x115BB, GBP_SM}, - {0x115BC, 0x115BD, GBP_EXT}, - {0x115BE, 0x115BE, GBP_SM}, - {0x115BF, 0x115BF, GBP_EXT}, - {0x115C0, 0x115C0, GBP_INDC_EXT | GBP_EXT}, - {0x115DC, 0x115DD, GBP_EXT}, - {0x11630, 0x11632, GBP_SM}, - {0x11633, 0x1163A, GBP_EXT}, - {0x1163B, 0x1163C, GBP_SM}, - {0x1163D, 0x1163D, GBP_EXT}, - {0x1163E, 0x1163E, GBP_SM}, - {0x1163F, 0x11640, GBP_EXT}, - {0x116AB, 0x116AB, GBP_EXT}, - {0x116AC, 0x116AC, GBP_SM}, - {0x116AD, 0x116AD, GBP_EXT}, - {0x116AE, 0x116AF, GBP_SM}, - {0x116B0, 0x116B5, GBP_EXT}, - {0x116B6, 0x116B6, GBP_SM}, - {0x116B7, 0x116B7, GBP_INDC_EXT | GBP_EXT}, - {0x1171D, 0x1171F, GBP_EXT}, - {0x11722, 0x11725, GBP_EXT}, - {0x11726, 0x11726, GBP_SM}, - {0x11727, 0x1172A, GBP_EXT}, - {0x1172B, 0x1172B, GBP_INDC_EXT | GBP_EXT}, - {0x1182C, 0x1182E, GBP_SM}, - {0x1182F, 0x11837, GBP_EXT}, - {0x11838, 0x11838, GBP_SM}, - {0x11839, 0x11839, GBP_EXT}, - {0x1183A, 0x1183A, GBP_INDC_EXT | GBP_EXT}, - {0x11930, 0x11930, GBP_EXT}, - {0x11931, 0x11935, GBP_SM}, - {0x11937, 0x11938, GBP_SM}, - {0x1193B, 0x1193C, GBP_EXT}, - {0x1193D, 0x1193D, GBP_SM}, - {0x1193E, 0x1193E, GBP_INDC_EXT | GBP_EXT}, - {0x1193F, 0x1193F, GBP_PREP}, - {0x11940, 0x11940, GBP_SM}, - {0x11941, 0x11941, GBP_PREP}, - {0x11942, 0x11942, GBP_SM}, - {0x11943, 0x11943, GBP_INDC_EXT | GBP_EXT}, - {0x119D1, 0x119D3, GBP_SM}, - {0x119D4, 0x119D7, GBP_EXT}, - {0x119DA, 0x119DB, GBP_EXT}, - {0x119DC, 0x119DF, GBP_SM}, - {0x119E0, 0x119E0, GBP_EXT}, - {0x119E4, 0x119E4, GBP_SM}, - {0x11A01, 0x11A0A, GBP_EXT}, - {0x11A33, 0x11A33, GBP_EXT}, - {0x11A34, 0x11A34, GBP_INDC_EXT | GBP_EXT}, - {0x11A35, 0x11A38, GBP_EXT}, - {0x11A39, 0x11A39, GBP_SM}, - {0x11A3A, 0x11A3A, GBP_PREP}, - {0x11A3B, 0x11A3E, GBP_EXT}, - {0x11A47, 0x11A47, GBP_INDC_EXT | GBP_EXT}, - {0x11A51, 0x11A56, GBP_EXT}, - {0x11A57, 0x11A58, GBP_SM}, - {0x11A59, 0x11A5B, GBP_EXT}, - {0x11A84, 0x11A89, GBP_PREP}, - {0x11A8A, 0x11A96, GBP_EXT}, - {0x11A97, 0x11A97, GBP_SM}, - {0x11A98, 0x11A98, GBP_EXT}, - {0x11A99, 0x11A99, GBP_INDC_EXT | GBP_EXT}, - {0x11C2F, 0x11C2F, GBP_SM}, - {0x11C30, 0x11C36, GBP_EXT}, - {0x11C38, 0x11C3D, GBP_EXT}, - {0x11C3E, 0x11C3E, GBP_SM}, - {0x11C3F, 0x11C3F, GBP_EXT}, - {0x11C92, 0x11CA7, GBP_EXT}, - {0x11CA9, 0x11CA9, GBP_SM}, - {0x11CAA, 0x11CB0, GBP_EXT}, - {0x11CB1, 0x11CB1, GBP_SM}, - {0x11CB2, 0x11CB3, GBP_EXT}, - {0x11CB4, 0x11CB4, GBP_SM}, - {0x11CB5, 0x11CB6, GBP_EXT}, - {0x11D31, 0x11D36, GBP_EXT}, - {0x11D3A, 0x11D3A, GBP_EXT}, - {0x11D3C, 0x11D3D, GBP_EXT}, - {0x11D3F, 0x11D41, GBP_EXT}, - {0x11D42, 0x11D42, GBP_INDC_EXT | GBP_EXT}, - {0x11D43, 0x11D43, GBP_EXT}, - {0x11D44, 0x11D45, GBP_INDC_EXT | GBP_EXT}, - {0x11D46, 0x11D46, GBP_PREP}, - {0x11D47, 0x11D47, GBP_EXT}, - {0x11D8A, 0x11D8E, GBP_SM}, - {0x11D90, 0x11D91, GBP_EXT}, - {0x11D93, 0x11D94, GBP_SM}, - {0x11D95, 0x11D95, GBP_EXT}, - {0x11D96, 0x11D96, GBP_SM}, - {0x11D97, 0x11D97, GBP_INDC_EXT | GBP_EXT}, - {0x11EF3, 0x11EF4, GBP_EXT}, - {0x11EF5, 0x11EF6, GBP_SM}, - {0x11F00, 0x11F01, GBP_EXT}, - {0x11F02, 0x11F02, GBP_PREP}, - {0x11F03, 0x11F03, GBP_SM}, - {0x11F34, 0x11F35, GBP_SM}, - {0x11F36, 0x11F3A, GBP_EXT}, - {0x11F3E, 0x11F3F, GBP_SM}, - {0x11F40, 0x11F40, GBP_EXT}, - {0x11F41, 0x11F41, GBP_SM}, - {0x11F42, 0x11F42, GBP_INDC_EXT | GBP_EXT}, - {0x13430, 0x1343F, GBP_CTRL}, - {0x13440, 0x13440, GBP_EXT}, - {0x13447, 0x13455, GBP_EXT}, - {0x16AF0, 0x16AF4, GBP_INDC_EXT | GBP_EXT}, - {0x16B30, 0x16B36, GBP_INDC_EXT | GBP_EXT}, - {0x16F4F, 0x16F4F, GBP_EXT}, - {0x16F51, 0x16F87, GBP_SM}, - {0x16F8F, 0x16F92, GBP_EXT}, - {0x16FE4, 0x16FE4, GBP_EXT}, - {0x16FF0, 0x16FF1, GBP_SM}, - {0x1BC9D, 0x1BC9D, GBP_EXT}, - {0x1BC9E, 0x1BC9E, GBP_INDC_EXT | GBP_EXT}, - {0x1BCA0, 0x1BCA3, GBP_CTRL}, - {0x1CF00, 0x1CF2D, GBP_EXT}, - {0x1CF30, 0x1CF46, GBP_EXT}, - {0x1D165, 0x1D165, GBP_INDC_EXT | GBP_EXT}, - {0x1D166, 0x1D166, GBP_SM}, - {0x1D167, 0x1D169, GBP_INDC_EXT | GBP_EXT}, - {0x1D16D, 0x1D16D, GBP_SM}, - {0x1D16E, 0x1D172, GBP_INDC_EXT | GBP_EXT}, - {0x1D173, 0x1D17A, GBP_CTRL}, - {0x1D17B, 0x1D182, GBP_INDC_EXT | GBP_EXT}, - {0x1D185, 0x1D18B, GBP_INDC_EXT | GBP_EXT}, - {0x1D1AA, 0x1D1AD, GBP_INDC_EXT | GBP_EXT}, - {0x1D242, 0x1D244, GBP_INDC_EXT | GBP_EXT}, - {0x1DA00, 0x1DA36, GBP_EXT}, - {0x1DA3B, 0x1DA6C, GBP_EXT}, - {0x1DA75, 0x1DA75, GBP_EXT}, - {0x1DA84, 0x1DA84, GBP_EXT}, - {0x1DA9B, 0x1DA9F, GBP_EXT}, - {0x1DAA1, 0x1DAAF, GBP_EXT}, - {0x1E000, 0x1E006, GBP_INDC_EXT | GBP_EXT}, - {0x1E008, 0x1E018, GBP_INDC_EXT | GBP_EXT}, - {0x1E01B, 0x1E021, GBP_INDC_EXT | GBP_EXT}, - {0x1E023, 0x1E024, GBP_INDC_EXT | GBP_EXT}, - {0x1E026, 0x1E02A, GBP_INDC_EXT | GBP_EXT}, - {0x1E08F, 0x1E08F, GBP_INDC_EXT | GBP_EXT}, - {0x1E130, 0x1E136, GBP_INDC_EXT | GBP_EXT}, - {0x1E2AE, 0x1E2AE, GBP_INDC_EXT | GBP_EXT}, - {0x1E2EC, 0x1E2EF, GBP_INDC_EXT | GBP_EXT}, - {0x1E4EC, 0x1E4EF, GBP_INDC_EXT | GBP_EXT}, - {0x1E8D0, 0x1E8D6, GBP_INDC_EXT | GBP_EXT}, - {0x1E944, 0x1E94A, GBP_INDC_EXT | GBP_EXT}, - {0x1F000, 0x1F0FF, GBP_PIC}, - {0x1F10D, 0x1F10F, GBP_PIC}, - {0x1F12F, 0x1F12F, GBP_PIC}, - {0x1F16C, 0x1F171, GBP_PIC}, - {0x1F17E, 0x1F17F, GBP_PIC}, - {0x1F18E, 0x1F18E, GBP_PIC}, - {0x1F191, 0x1F19A, GBP_PIC}, - {0x1F1AD, 0x1F1E5, GBP_PIC}, - {0x1F1E6, 0x1F1FF, GBP_RI}, - {0x1F201, 0x1F20F, GBP_PIC}, - {0x1F21A, 0x1F21A, GBP_PIC}, - {0x1F22F, 0x1F22F, GBP_PIC}, - {0x1F232, 0x1F23A, GBP_PIC}, - {0x1F23C, 0x1F23F, GBP_PIC}, - {0x1F249, 0x1F3FA, GBP_PIC}, - {0x1F3FB, 0x1F3FF, GBP_EXT}, - {0x1F400, 0x1F53D, GBP_PIC}, - {0x1F546, 0x1F64F, GBP_PIC}, - {0x1F680, 0x1F6FF, GBP_PIC}, - {0x1F774, 0x1F77F, GBP_PIC}, - {0x1F7D5, 0x1F7FF, GBP_PIC}, - {0x1F80C, 0x1F80F, GBP_PIC}, - {0x1F848, 0x1F84F, GBP_PIC}, - {0x1F85A, 0x1F85F, GBP_PIC}, - {0x1F888, 0x1F88F, GBP_PIC}, - {0x1F8AE, 0x1F8FF, GBP_PIC}, - {0x1F90C, 0x1F93A, GBP_PIC}, - {0x1F93C, 0x1F945, GBP_PIC}, - {0x1F947, 0x1FAFF, GBP_PIC}, - {0x1FC00, 0x1FFFD, GBP_PIC}, - {0xE0000, 0xE001F, GBP_CTRL}, - {0xE0020, 0xE007F, GBP_EXT}, - {0xE0080, 0xE00FF, GBP_CTRL}, - {0xE0100, 0xE01EF, GBP_EXT}, - {0xE01F0, 0xE0FFF, GBP_CTRL}, + {0x000000, 0x000009, GBP_CTRL}, + {0x00000B, 0x00000C, GBP_CTRL}, + {0x00000E, 0x00001F, GBP_CTRL}, + {0x00007F, 0x00009F, GBP_CTRL}, + {0x0000A9, 0x0000A9, GBP_PIC}, + {0x0000AD, 0x0000AD, GBP_CTRL}, + {0x0000AE, 0x0000AE, GBP_PIC}, + {0x000300, 0x00034E, GBP_INDC_EXT | GBP_EXT}, + {0x00034F, 0x00034F, GBP_EXT}, + {0x000350, 0x00036F, GBP_INDC_EXT | GBP_EXT}, + {0x000483, 0x000487, GBP_INDC_EXT | GBP_EXT}, + {0x000488, 0x000489, GBP_EXT}, + {0x000591, 0x0005BD, GBP_INDC_EXT | GBP_EXT}, + {0x0005BF, 0x0005BF, GBP_INDC_EXT | GBP_EXT}, + {0x0005C1, 0x0005C2, GBP_INDC_EXT | GBP_EXT}, + {0x0005C4, 0x0005C5, GBP_INDC_EXT | GBP_EXT}, + {0x0005C7, 0x0005C7, GBP_INDC_EXT | GBP_EXT}, + {0x000600, 0x000605, GBP_PREP}, + {0x000610, 0x00061A, GBP_INDC_EXT | GBP_EXT}, + {0x00061C, 0x00061C, GBP_CTRL}, + {0x00064B, 0x00065F, GBP_INDC_EXT | GBP_EXT}, + {0x000670, 0x000670, GBP_INDC_EXT | GBP_EXT}, + {0x0006D6, 0x0006DC, GBP_INDC_EXT | GBP_EXT}, + {0x0006DD, 0x0006DD, GBP_PREP}, + {0x0006DF, 0x0006E4, GBP_INDC_EXT | GBP_EXT}, + {0x0006E7, 0x0006E8, GBP_INDC_EXT | GBP_EXT}, + {0x0006EA, 0x0006ED, GBP_INDC_EXT | GBP_EXT}, + {0x00070F, 0x00070F, GBP_PREP}, + {0x000711, 0x000711, GBP_INDC_EXT | GBP_EXT}, + {0x000730, 0x00074A, GBP_INDC_EXT | GBP_EXT}, + {0x0007A6, 0x0007B0, GBP_EXT}, + {0x0007EB, 0x0007F3, GBP_INDC_EXT | GBP_EXT}, + {0x0007FD, 0x0007FD, GBP_INDC_EXT | GBP_EXT}, + {0x000816, 0x000819, GBP_INDC_EXT | GBP_EXT}, + {0x00081B, 0x000823, GBP_INDC_EXT | GBP_EXT}, + {0x000825, 0x000827, GBP_INDC_EXT | GBP_EXT}, + {0x000829, 0x00082D, GBP_INDC_EXT | GBP_EXT}, + {0x000859, 0x00085B, GBP_INDC_EXT | GBP_EXT}, + {0x000890, 0x000891, GBP_PREP}, + {0x000898, 0x00089F, GBP_INDC_EXT | GBP_EXT}, + {0x0008CA, 0x0008E1, GBP_INDC_EXT | GBP_EXT}, + {0x0008E2, 0x0008E2, GBP_PREP}, + {0x0008E3, 0x0008FF, GBP_INDC_EXT | GBP_EXT}, + {0x000900, 0x000902, GBP_EXT}, + {0x000903, 0x000903, GBP_SM}, + {0x000915, 0x000939, GBP_INDC_CNSNT}, + {0x00093A, 0x00093A, GBP_EXT}, + {0x00093B, 0x00093B, GBP_SM}, + {0x00093C, 0x00093C, GBP_INDC_EXT | GBP_EXT}, + {0x00093E, 0x000940, GBP_SM}, + {0x000941, 0x000948, GBP_EXT}, + {0x000949, 0x00094C, GBP_SM}, + {0x00094D, 0x00094D, GBP_INDC_LNK | GBP_EXT}, + {0x00094E, 0x00094F, GBP_SM}, + {0x000951, 0x000954, GBP_INDC_EXT | GBP_EXT}, + {0x000955, 0x000957, GBP_EXT}, + {0x000958, 0x00095F, GBP_INDC_CNSNT}, + {0x000962, 0x000963, GBP_EXT}, + {0x000978, 0x00097F, GBP_INDC_CNSNT}, + {0x000981, 0x000981, GBP_EXT}, + {0x000982, 0x000983, GBP_SM}, + {0x000995, 0x0009A8, GBP_INDC_CNSNT}, + {0x0009AA, 0x0009B0, GBP_INDC_CNSNT}, + {0x0009B2, 0x0009B2, GBP_INDC_CNSNT}, + {0x0009B6, 0x0009B9, GBP_INDC_CNSNT}, + {0x0009BC, 0x0009BC, GBP_INDC_EXT | GBP_EXT}, + {0x0009BE, 0x0009BE, GBP_EXT}, + {0x0009BF, 0x0009C0, GBP_SM}, + {0x0009C1, 0x0009C4, GBP_EXT}, + {0x0009C7, 0x0009C8, GBP_SM}, + {0x0009CB, 0x0009CC, GBP_SM}, + {0x0009CD, 0x0009CD, GBP_INDC_LNK | GBP_EXT}, + {0x0009D7, 0x0009D7, GBP_EXT}, + {0x0009DC, 0x0009DD, GBP_INDC_CNSNT}, + {0x0009DF, 0x0009DF, GBP_INDC_CNSNT}, + {0x0009E2, 0x0009E3, GBP_EXT}, + {0x0009F0, 0x0009F1, GBP_INDC_CNSNT}, + {0x0009FE, 0x0009FE, GBP_INDC_EXT | GBP_EXT}, + {0x000A01, 0x000A02, GBP_EXT}, + {0x000A03, 0x000A03, GBP_SM}, + {0x000A3C, 0x000A3C, GBP_INDC_EXT | GBP_EXT}, + {0x000A3E, 0x000A40, GBP_SM}, + {0x000A41, 0x000A42, GBP_EXT}, + {0x000A47, 0x000A48, GBP_EXT}, + {0x000A4B, 0x000A4D, GBP_EXT}, + {0x000A51, 0x000A51, GBP_EXT}, + {0x000A70, 0x000A71, GBP_EXT}, + {0x000A75, 0x000A75, GBP_EXT}, + {0x000A81, 0x000A82, GBP_EXT}, + {0x000A83, 0x000A83, GBP_SM}, + {0x000A95, 0x000AA8, GBP_INDC_CNSNT}, + {0x000AAA, 0x000AB0, GBP_INDC_CNSNT}, + {0x000AB2, 0x000AB3, GBP_INDC_CNSNT}, + {0x000AB5, 0x000AB9, GBP_INDC_CNSNT}, + {0x000ABC, 0x000ABC, GBP_INDC_EXT | GBP_EXT}, + {0x000ABE, 0x000AC0, GBP_SM}, + {0x000AC1, 0x000AC5, GBP_EXT}, + {0x000AC7, 0x000AC8, GBP_EXT}, + {0x000AC9, 0x000AC9, GBP_SM}, + {0x000ACB, 0x000ACC, GBP_SM}, + {0x000ACD, 0x000ACD, GBP_INDC_LNK | GBP_EXT}, + {0x000AE2, 0x000AE3, GBP_EXT}, + {0x000AF9, 0x000AF9, GBP_INDC_CNSNT}, + {0x000AFA, 0x000AFF, GBP_EXT}, + {0x000B01, 0x000B01, GBP_EXT}, + {0x000B02, 0x000B03, GBP_SM}, + {0x000B15, 0x000B28, GBP_INDC_CNSNT}, + {0x000B2A, 0x000B30, GBP_INDC_CNSNT}, + {0x000B32, 0x000B33, GBP_INDC_CNSNT}, + {0x000B35, 0x000B39, GBP_INDC_CNSNT}, + {0x000B3C, 0x000B3C, GBP_INDC_EXT | GBP_EXT}, + {0x000B3E, 0x000B3F, GBP_EXT}, + {0x000B40, 0x000B40, GBP_SM}, + {0x000B41, 0x000B44, GBP_EXT}, + {0x000B47, 0x000B48, GBP_SM}, + {0x000B4B, 0x000B4C, GBP_SM}, + {0x000B4D, 0x000B4D, GBP_INDC_LNK | GBP_EXT}, + {0x000B55, 0x000B57, GBP_EXT}, + {0x000B5C, 0x000B5D, GBP_INDC_CNSNT}, + {0x000B5F, 0x000B5F, GBP_INDC_CNSNT}, + {0x000B62, 0x000B63, GBP_EXT}, + {0x000B71, 0x000B71, GBP_INDC_CNSNT}, + {0x000B82, 0x000B82, GBP_EXT}, + {0x000BBE, 0x000BBE, GBP_EXT}, + {0x000BBF, 0x000BBF, GBP_SM}, + {0x000BC0, 0x000BC0, GBP_EXT}, + {0x000BC1, 0x000BC2, GBP_SM}, + {0x000BC6, 0x000BC8, GBP_SM}, + {0x000BCA, 0x000BCC, GBP_SM}, + {0x000BCD, 0x000BCD, GBP_EXT}, + {0x000BD7, 0x000BD7, GBP_EXT}, + {0x000C00, 0x000C00, GBP_EXT}, + {0x000C01, 0x000C03, GBP_SM}, + {0x000C04, 0x000C04, GBP_EXT}, + {0x000C15, 0x000C28, GBP_INDC_CNSNT}, + {0x000C2A, 0x000C39, GBP_INDC_CNSNT}, + {0x000C3C, 0x000C3C, GBP_INDC_EXT | GBP_EXT}, + {0x000C3E, 0x000C40, GBP_EXT}, + {0x000C41, 0x000C44, GBP_SM}, + {0x000C46, 0x000C48, GBP_EXT}, + {0x000C4A, 0x000C4C, GBP_EXT}, + {0x000C4D, 0x000C4D, GBP_INDC_LNK | GBP_EXT}, + {0x000C55, 0x000C56, GBP_INDC_EXT | GBP_EXT}, + {0x000C58, 0x000C5A, GBP_INDC_CNSNT}, + {0x000C62, 0x000C63, GBP_EXT}, + {0x000C81, 0x000C81, GBP_EXT}, + {0x000C82, 0x000C83, GBP_SM}, + {0x000CBC, 0x000CBC, GBP_INDC_EXT | GBP_EXT}, + {0x000CBE, 0x000CBE, GBP_SM}, + {0x000CBF, 0x000CBF, GBP_EXT}, + {0x000CC0, 0x000CC1, GBP_SM}, + {0x000CC2, 0x000CC2, GBP_EXT}, + {0x000CC3, 0x000CC4, GBP_SM}, + {0x000CC6, 0x000CC6, GBP_EXT}, + {0x000CC7, 0x000CC8, GBP_SM}, + {0x000CCA, 0x000CCB, GBP_SM}, + {0x000CCC, 0x000CCD, GBP_EXT}, + {0x000CD5, 0x000CD6, GBP_EXT}, + {0x000CE2, 0x000CE3, GBP_EXT}, + {0x000CF3, 0x000CF3, GBP_SM}, + {0x000D00, 0x000D01, GBP_EXT}, + {0x000D02, 0x000D03, GBP_SM}, + {0x000D15, 0x000D3A, GBP_INDC_CNSNT}, + {0x000D3B, 0x000D3C, GBP_INDC_EXT | GBP_EXT}, + {0x000D3E, 0x000D3E, GBP_EXT}, + {0x000D3F, 0x000D40, GBP_SM}, + {0x000D41, 0x000D44, GBP_EXT}, + {0x000D46, 0x000D48, GBP_SM}, + {0x000D4A, 0x000D4C, GBP_SM}, + {0x000D4D, 0x000D4D, GBP_INDC_LNK | GBP_EXT}, + {0x000D4E, 0x000D4E, GBP_PREP}, + {0x000D57, 0x000D57, GBP_EXT}, + {0x000D62, 0x000D63, GBP_EXT}, + {0x000D81, 0x000D81, GBP_EXT}, + {0x000D82, 0x000D83, GBP_SM}, + {0x000DCA, 0x000DCA, GBP_EXT}, + {0x000DCF, 0x000DCF, GBP_EXT}, + {0x000DD0, 0x000DD1, GBP_SM}, + {0x000DD2, 0x000DD4, GBP_EXT}, + {0x000DD6, 0x000DD6, GBP_EXT}, + {0x000DD8, 0x000DDE, GBP_SM}, + {0x000DDF, 0x000DDF, GBP_EXT}, + {0x000DF2, 0x000DF3, GBP_SM}, + {0x000E31, 0x000E31, GBP_EXT}, + {0x000E33, 0x000E33, GBP_SM}, + {0x000E34, 0x000E37, GBP_EXT}, + {0x000E38, 0x000E3A, GBP_INDC_EXT | GBP_EXT}, + {0x000E47, 0x000E47, GBP_EXT}, + {0x000E48, 0x000E4B, GBP_INDC_EXT | GBP_EXT}, + {0x000E4C, 0x000E4E, GBP_EXT}, + {0x000EB1, 0x000EB1, GBP_EXT}, + {0x000EB3, 0x000EB3, GBP_SM}, + {0x000EB4, 0x000EB7, GBP_EXT}, + {0x000EB8, 0x000EBA, GBP_INDC_EXT | GBP_EXT}, + {0x000EBB, 0x000EBC, GBP_EXT}, + {0x000EC8, 0x000ECB, GBP_INDC_EXT | GBP_EXT}, + {0x000ECC, 0x000ECE, GBP_EXT}, + {0x000F18, 0x000F19, GBP_INDC_EXT | GBP_EXT}, + {0x000F35, 0x000F35, GBP_INDC_EXT | GBP_EXT}, + {0x000F37, 0x000F37, GBP_INDC_EXT | GBP_EXT}, + {0x000F39, 0x000F39, GBP_INDC_EXT | GBP_EXT}, + {0x000F3E, 0x000F3F, GBP_SM}, + {0x000F71, 0x000F72, GBP_INDC_EXT | GBP_EXT}, + {0x000F73, 0x000F73, GBP_EXT}, + {0x000F74, 0x000F74, GBP_INDC_EXT | GBP_EXT}, + {0x000F75, 0x000F79, GBP_EXT}, + {0x000F7A, 0x000F7D, GBP_INDC_EXT | GBP_EXT}, + {0x000F7E, 0x000F7E, GBP_EXT}, + {0x000F7F, 0x000F7F, GBP_SM}, + {0x000F80, 0x000F80, GBP_INDC_EXT | GBP_EXT}, + {0x000F81, 0x000F81, GBP_EXT}, + {0x000F82, 0x000F84, GBP_INDC_EXT | GBP_EXT}, + {0x000F86, 0x000F87, GBP_INDC_EXT | GBP_EXT}, + {0x000F8D, 0x000F97, GBP_EXT}, + {0x000F99, 0x000FBC, GBP_EXT}, + {0x000FC6, 0x000FC6, GBP_INDC_EXT | GBP_EXT}, + {0x00102D, 0x001030, GBP_EXT}, + {0x001031, 0x001031, GBP_SM}, + {0x001032, 0x001036, GBP_EXT}, + {0x001037, 0x001037, GBP_INDC_EXT | GBP_EXT}, + {0x001039, 0x00103A, GBP_INDC_EXT | GBP_EXT}, + {0x00103B, 0x00103C, GBP_SM}, + {0x00103D, 0x00103E, GBP_EXT}, + {0x001056, 0x001057, GBP_SM}, + {0x001058, 0x001059, GBP_EXT}, + {0x00105E, 0x001060, GBP_EXT}, + {0x001071, 0x001074, GBP_EXT}, + {0x001082, 0x001082, GBP_EXT}, + {0x001084, 0x001084, GBP_SM}, + {0x001085, 0x001086, GBP_EXT}, + {0x00108D, 0x00108D, GBP_INDC_EXT | GBP_EXT}, + {0x00109D, 0x00109D, GBP_EXT}, + {0x001100, 0x00115F, GBP_HNGL_L}, + {0x001160, 0x0011A7, GBP_HNGL_V}, + {0x0011A8, 0x0011FF, GBP_HNGL_T}, + {0x00135D, 0x00135F, GBP_INDC_EXT | GBP_EXT}, + {0x001712, 0x001713, GBP_EXT}, + {0x001714, 0x001714, GBP_INDC_EXT | GBP_EXT}, + {0x001715, 0x001715, GBP_SM}, + {0x001732, 0x001733, GBP_EXT}, + {0x001734, 0x001734, GBP_SM}, + {0x001752, 0x001753, GBP_EXT}, + {0x001772, 0x001773, GBP_EXT}, + {0x0017B4, 0x0017B5, GBP_EXT}, + {0x0017B6, 0x0017B6, GBP_SM}, + {0x0017B7, 0x0017BD, GBP_EXT}, + {0x0017BE, 0x0017C5, GBP_SM}, + {0x0017C6, 0x0017C6, GBP_EXT}, + {0x0017C7, 0x0017C8, GBP_SM}, + {0x0017C9, 0x0017D1, GBP_EXT}, + {0x0017D2, 0x0017D2, GBP_INDC_EXT | GBP_EXT}, + {0x0017D3, 0x0017D3, GBP_EXT}, + {0x0017DD, 0x0017DD, GBP_INDC_EXT | GBP_EXT}, + {0x00180B, 0x00180D, GBP_EXT}, + {0x00180E, 0x00180E, GBP_CTRL}, + {0x00180F, 0x00180F, GBP_EXT}, + {0x001885, 0x001886, GBP_EXT}, + {0x0018A9, 0x0018A9, GBP_INDC_EXT | GBP_EXT}, + {0x001920, 0x001922, GBP_EXT}, + {0x001923, 0x001926, GBP_SM}, + {0x001927, 0x001928, GBP_EXT}, + {0x001929, 0x00192B, GBP_SM}, + {0x001930, 0x001931, GBP_SM}, + {0x001932, 0x001932, GBP_EXT}, + {0x001933, 0x001938, GBP_SM}, + {0x001939, 0x00193B, GBP_INDC_EXT | GBP_EXT}, + {0x001A17, 0x001A18, GBP_INDC_EXT | GBP_EXT}, + {0x001A19, 0x001A1A, GBP_SM}, + {0x001A1B, 0x001A1B, GBP_EXT}, + {0x001A55, 0x001A55, GBP_SM}, + {0x001A56, 0x001A56, GBP_EXT}, + {0x001A57, 0x001A57, GBP_SM}, + {0x001A58, 0x001A5E, GBP_EXT}, + {0x001A60, 0x001A60, GBP_INDC_EXT | GBP_EXT}, + {0x001A62, 0x001A62, GBP_EXT}, + {0x001A65, 0x001A6C, GBP_EXT}, + {0x001A6D, 0x001A72, GBP_SM}, + {0x001A73, 0x001A74, GBP_EXT}, + {0x001A75, 0x001A7C, GBP_INDC_EXT | GBP_EXT}, + {0x001A7F, 0x001A7F, GBP_INDC_EXT | GBP_EXT}, + {0x001AB0, 0x001ABD, GBP_INDC_EXT | GBP_EXT}, + {0x001ABE, 0x001ABE, GBP_EXT}, + {0x001ABF, 0x001ACE, GBP_INDC_EXT | GBP_EXT}, + {0x001B00, 0x001B03, GBP_EXT}, + {0x001B04, 0x001B04, GBP_SM}, + {0x001B34, 0x001B34, GBP_INDC_EXT | GBP_EXT}, + {0x001B35, 0x001B3A, GBP_EXT}, + {0x001B3B, 0x001B3B, GBP_SM}, + {0x001B3C, 0x001B3C, GBP_EXT}, + {0x001B3D, 0x001B41, GBP_SM}, + {0x001B42, 0x001B42, GBP_EXT}, + {0x001B43, 0x001B44, GBP_SM}, + {0x001B6B, 0x001B73, GBP_INDC_EXT | GBP_EXT}, + {0x001B80, 0x001B81, GBP_EXT}, + {0x001B82, 0x001B82, GBP_SM}, + {0x001BA1, 0x001BA1, GBP_SM}, + {0x001BA2, 0x001BA5, GBP_EXT}, + {0x001BA6, 0x001BA7, GBP_SM}, + {0x001BA8, 0x001BA9, GBP_EXT}, + {0x001BAA, 0x001BAA, GBP_SM}, + {0x001BAB, 0x001BAB, GBP_INDC_EXT | GBP_EXT}, + {0x001BAC, 0x001BAD, GBP_EXT}, + {0x001BE6, 0x001BE6, GBP_INDC_EXT | GBP_EXT}, + {0x001BE7, 0x001BE7, GBP_SM}, + {0x001BE8, 0x001BE9, GBP_EXT}, + {0x001BEA, 0x001BEC, GBP_SM}, + {0x001BED, 0x001BED, GBP_EXT}, + {0x001BEE, 0x001BEE, GBP_SM}, + {0x001BEF, 0x001BF1, GBP_EXT}, + {0x001BF2, 0x001BF3, GBP_SM}, + {0x001C24, 0x001C2B, GBP_SM}, + {0x001C2C, 0x001C33, GBP_EXT}, + {0x001C34, 0x001C35, GBP_SM}, + {0x001C36, 0x001C36, GBP_EXT}, + {0x001C37, 0x001C37, GBP_INDC_EXT | GBP_EXT}, + {0x001CD0, 0x001CD2, GBP_INDC_EXT | GBP_EXT}, + {0x001CD4, 0x001CE0, GBP_INDC_EXT | GBP_EXT}, + {0x001CE1, 0x001CE1, GBP_SM}, + {0x001CE2, 0x001CE8, GBP_INDC_EXT | GBP_EXT}, + {0x001CED, 0x001CED, GBP_INDC_EXT | GBP_EXT}, + {0x001CF4, 0x001CF4, GBP_INDC_EXT | GBP_EXT}, + {0x001CF7, 0x001CF7, GBP_SM}, + {0x001CF8, 0x001CF9, GBP_INDC_EXT | GBP_EXT}, + {0x001DC0, 0x001DFF, GBP_INDC_EXT | GBP_EXT}, + {0x00200B, 0x00200B, GBP_CTRL}, + {0x00200C, 0x00200C, GBP_EXT}, + {0x00200D, 0x00200D, GBP_INDC_EXT | GBP_ZWJ}, + {0x00200E, 0x00200F, GBP_CTRL}, + {0x002028, 0x00202E, GBP_CTRL}, + {0x00203C, 0x00203C, GBP_PIC}, + {0x002049, 0x002049, GBP_PIC}, + {0x002060, 0x00206F, GBP_CTRL}, + {0x0020D0, 0x0020DC, GBP_INDC_EXT | GBP_EXT}, + {0x0020DD, 0x0020E0, GBP_EXT}, + {0x0020E1, 0x0020E1, GBP_INDC_EXT | GBP_EXT}, + {0x0020E2, 0x0020E4, GBP_EXT}, + {0x0020E5, 0x0020F0, GBP_INDC_EXT | GBP_EXT}, + {0x002122, 0x002122, GBP_PIC}, + {0x002139, 0x002139, GBP_PIC}, + {0x002194, 0x002199, GBP_PIC}, + {0x0021A9, 0x0021AA, GBP_PIC}, + {0x00231A, 0x00231B, GBP_PIC}, + {0x002328, 0x002328, GBP_PIC}, + {0x002388, 0x002388, GBP_PIC}, + {0x0023CF, 0x0023CF, GBP_PIC}, + {0x0023E9, 0x0023F3, GBP_PIC}, + {0x0023F8, 0x0023FA, GBP_PIC}, + {0x0024C2, 0x0024C2, GBP_PIC}, + {0x0025AA, 0x0025AB, GBP_PIC}, + {0x0025B6, 0x0025B6, GBP_PIC}, + {0x0025C0, 0x0025C0, GBP_PIC}, + {0x0025FB, 0x0025FE, GBP_PIC}, + {0x002600, 0x002605, GBP_PIC}, + {0x002607, 0x002612, GBP_PIC}, + {0x002614, 0x002685, GBP_PIC}, + {0x002690, 0x002705, GBP_PIC}, + {0x002708, 0x002712, GBP_PIC}, + {0x002714, 0x002714, GBP_PIC}, + {0x002716, 0x002716, GBP_PIC}, + {0x00271D, 0x00271D, GBP_PIC}, + {0x002721, 0x002721, GBP_PIC}, + {0x002728, 0x002728, GBP_PIC}, + {0x002733, 0x002734, GBP_PIC}, + {0x002744, 0x002744, GBP_PIC}, + {0x002747, 0x002747, GBP_PIC}, + {0x00274C, 0x00274C, GBP_PIC}, + {0x00274E, 0x00274E, GBP_PIC}, + {0x002753, 0x002755, GBP_PIC}, + {0x002757, 0x002757, GBP_PIC}, + {0x002763, 0x002767, GBP_PIC}, + {0x002795, 0x002797, GBP_PIC}, + {0x0027A1, 0x0027A1, GBP_PIC}, + {0x0027B0, 0x0027B0, GBP_PIC}, + {0x0027BF, 0x0027BF, GBP_PIC}, + {0x002934, 0x002935, GBP_PIC}, + {0x002B05, 0x002B07, GBP_PIC}, + {0x002B1B, 0x002B1C, GBP_PIC}, + {0x002B50, 0x002B50, GBP_PIC}, + {0x002B55, 0x002B55, GBP_PIC}, + {0x002CEF, 0x002CF1, GBP_INDC_EXT | GBP_EXT}, + {0x002D7F, 0x002D7F, GBP_INDC_EXT | GBP_EXT}, + {0x002DE0, 0x002DFF, GBP_INDC_EXT | GBP_EXT}, + {0x00302A, 0x00302F, GBP_INDC_EXT | GBP_EXT}, + {0x003030, 0x003030, GBP_PIC}, + {0x00303D, 0x00303D, GBP_PIC}, + {0x003099, 0x00309A, GBP_INDC_EXT | GBP_EXT}, + {0x003297, 0x003297, GBP_PIC}, + {0x003299, 0x003299, GBP_PIC}, + {0x00A66F, 0x00A66F, GBP_INDC_EXT | GBP_EXT}, + {0x00A670, 0x00A672, GBP_EXT}, + {0x00A674, 0x00A67D, GBP_INDC_EXT | GBP_EXT}, + {0x00A69E, 0x00A69F, GBP_INDC_EXT | GBP_EXT}, + {0x00A6F0, 0x00A6F1, GBP_INDC_EXT | GBP_EXT}, + {0x00A802, 0x00A802, GBP_EXT}, + {0x00A806, 0x00A806, GBP_EXT}, + {0x00A80B, 0x00A80B, GBP_EXT}, + {0x00A823, 0x00A824, GBP_SM}, + {0x00A825, 0x00A826, GBP_EXT}, + {0x00A827, 0x00A827, GBP_SM}, + {0x00A82C, 0x00A82C, GBP_INDC_EXT | GBP_EXT}, + {0x00A880, 0x00A881, GBP_SM}, + {0x00A8B4, 0x00A8C3, GBP_SM}, + {0x00A8C4, 0x00A8C5, GBP_EXT}, + {0x00A8E0, 0x00A8F1, GBP_INDC_EXT | GBP_EXT}, + {0x00A8FF, 0x00A8FF, GBP_EXT}, + {0x00A926, 0x00A92A, GBP_EXT}, + {0x00A92B, 0x00A92D, GBP_INDC_EXT | GBP_EXT}, + {0x00A947, 0x00A951, GBP_EXT}, + {0x00A952, 0x00A953, GBP_SM}, + {0x00A960, 0x00A97C, GBP_HNGL_L}, + {0x00A980, 0x00A982, GBP_EXT}, + {0x00A983, 0x00A983, GBP_SM}, + {0x00A9B3, 0x00A9B3, GBP_INDC_EXT | GBP_EXT}, + {0x00A9B4, 0x00A9B5, GBP_SM}, + {0x00A9B6, 0x00A9B9, GBP_EXT}, + {0x00A9BA, 0x00A9BB, GBP_SM}, + {0x00A9BC, 0x00A9BD, GBP_EXT}, + {0x00A9BE, 0x00A9C0, GBP_SM}, + {0x00A9E5, 0x00A9E5, GBP_EXT}, + {0x00AA29, 0x00AA2E, GBP_EXT}, + {0x00AA2F, 0x00AA30, GBP_SM}, + {0x00AA31, 0x00AA32, GBP_EXT}, + {0x00AA33, 0x00AA34, GBP_SM}, + {0x00AA35, 0x00AA36, GBP_EXT}, + {0x00AA43, 0x00AA43, GBP_EXT}, + {0x00AA4C, 0x00AA4C, GBP_EXT}, + {0x00AA4D, 0x00AA4D, GBP_SM}, + {0x00AA7C, 0x00AA7C, GBP_EXT}, + {0x00AAB0, 0x00AAB0, GBP_INDC_EXT | GBP_EXT}, + {0x00AAB2, 0x00AAB4, GBP_INDC_EXT | GBP_EXT}, + {0x00AAB7, 0x00AAB8, GBP_INDC_EXT | GBP_EXT}, + {0x00AABE, 0x00AABF, GBP_INDC_EXT | GBP_EXT}, + {0x00AAC1, 0x00AAC1, GBP_INDC_EXT | GBP_EXT}, + {0x00AAEB, 0x00AAEB, GBP_SM}, + {0x00AAEC, 0x00AAED, GBP_EXT}, + {0x00AAEE, 0x00AAEF, GBP_SM}, + {0x00AAF5, 0x00AAF5, GBP_SM}, + {0x00AAF6, 0x00AAF6, GBP_INDC_EXT | GBP_EXT}, + {0x00ABE3, 0x00ABE4, GBP_SM}, + {0x00ABE5, 0x00ABE5, GBP_EXT}, + {0x00ABE6, 0x00ABE7, GBP_SM}, + {0x00ABE8, 0x00ABE8, GBP_EXT}, + {0x00ABE9, 0x00ABEA, GBP_SM}, + {0x00ABEC, 0x00ABEC, GBP_SM}, + {0x00ABED, 0x00ABED, GBP_INDC_EXT | GBP_EXT}, + {0x00AC00, 0x00AC00, GBP_HNGL_LV}, + {0x00AC01, 0x00AC1B, GBP_HNGL_LVT}, + {0x00AC1C, 0x00AC1C, GBP_HNGL_LV}, + {0x00AC1D, 0x00AC37, GBP_HNGL_LVT}, + {0x00AC38, 0x00AC38, GBP_HNGL_LV}, + {0x00AC39, 0x00AC53, GBP_HNGL_LVT}, + {0x00AC54, 0x00AC54, GBP_HNGL_LV}, + {0x00AC55, 0x00AC6F, GBP_HNGL_LVT}, + {0x00AC70, 0x00AC70, GBP_HNGL_LV}, + {0x00AC71, 0x00AC8B, GBP_HNGL_LVT}, + {0x00AC8C, 0x00AC8C, GBP_HNGL_LV}, + {0x00AC8D, 0x00ACA7, GBP_HNGL_LVT}, + {0x00ACA8, 0x00ACA8, GBP_HNGL_LV}, + {0x00ACA9, 0x00ACC3, GBP_HNGL_LVT}, + {0x00ACC4, 0x00ACC4, GBP_HNGL_LV}, + {0x00ACC5, 0x00ACDF, GBP_HNGL_LVT}, + {0x00ACE0, 0x00ACE0, GBP_HNGL_LV}, + {0x00ACE1, 0x00ACFB, GBP_HNGL_LVT}, + {0x00ACFC, 0x00ACFC, GBP_HNGL_LV}, + {0x00ACFD, 0x00AD17, GBP_HNGL_LVT}, + {0x00AD18, 0x00AD18, GBP_HNGL_LV}, + {0x00AD19, 0x00AD33, GBP_HNGL_LVT}, + {0x00AD34, 0x00AD34, GBP_HNGL_LV}, + {0x00AD35, 0x00AD4F, GBP_HNGL_LVT}, + {0x00AD50, 0x00AD50, GBP_HNGL_LV}, + {0x00AD51, 0x00AD6B, GBP_HNGL_LVT}, + {0x00AD6C, 0x00AD6C, GBP_HNGL_LV}, + {0x00AD6D, 0x00AD87, GBP_HNGL_LVT}, + {0x00AD88, 0x00AD88, GBP_HNGL_LV}, + {0x00AD89, 0x00ADA3, GBP_HNGL_LVT}, + {0x00ADA4, 0x00ADA4, GBP_HNGL_LV}, + {0x00ADA5, 0x00ADBF, GBP_HNGL_LVT}, + {0x00ADC0, 0x00ADC0, GBP_HNGL_LV}, + {0x00ADC1, 0x00ADDB, GBP_HNGL_LVT}, + {0x00ADDC, 0x00ADDC, GBP_HNGL_LV}, + {0x00ADDD, 0x00ADF7, GBP_HNGL_LVT}, + {0x00ADF8, 0x00ADF8, GBP_HNGL_LV}, + {0x00ADF9, 0x00AE13, GBP_HNGL_LVT}, + {0x00AE14, 0x00AE14, GBP_HNGL_LV}, + {0x00AE15, 0x00AE2F, GBP_HNGL_LVT}, + {0x00AE30, 0x00AE30, GBP_HNGL_LV}, + {0x00AE31, 0x00AE4B, GBP_HNGL_LVT}, + {0x00AE4C, 0x00AE4C, GBP_HNGL_LV}, + {0x00AE4D, 0x00AE67, GBP_HNGL_LVT}, + {0x00AE68, 0x00AE68, GBP_HNGL_LV}, + {0x00AE69, 0x00AE83, GBP_HNGL_LVT}, + {0x00AE84, 0x00AE84, GBP_HNGL_LV}, + {0x00AE85, 0x00AE9F, GBP_HNGL_LVT}, + {0x00AEA0, 0x00AEA0, GBP_HNGL_LV}, + {0x00AEA1, 0x00AEBB, GBP_HNGL_LVT}, + {0x00AEBC, 0x00AEBC, GBP_HNGL_LV}, + {0x00AEBD, 0x00AED7, GBP_HNGL_LVT}, + {0x00AED8, 0x00AED8, GBP_HNGL_LV}, + {0x00AED9, 0x00AEF3, GBP_HNGL_LVT}, + {0x00AEF4, 0x00AEF4, GBP_HNGL_LV}, + {0x00AEF5, 0x00AF0F, GBP_HNGL_LVT}, + {0x00AF10, 0x00AF10, GBP_HNGL_LV}, + {0x00AF11, 0x00AF2B, GBP_HNGL_LVT}, + {0x00AF2C, 0x00AF2C, GBP_HNGL_LV}, + {0x00AF2D, 0x00AF47, GBP_HNGL_LVT}, + {0x00AF48, 0x00AF48, GBP_HNGL_LV}, + {0x00AF49, 0x00AF63, GBP_HNGL_LVT}, + {0x00AF64, 0x00AF64, GBP_HNGL_LV}, + {0x00AF65, 0x00AF7F, GBP_HNGL_LVT}, + {0x00AF80, 0x00AF80, GBP_HNGL_LV}, + {0x00AF81, 0x00AF9B, GBP_HNGL_LVT}, + {0x00AF9C, 0x00AF9C, GBP_HNGL_LV}, + {0x00AF9D, 0x00AFB7, GBP_HNGL_LVT}, + {0x00AFB8, 0x00AFB8, GBP_HNGL_LV}, + {0x00AFB9, 0x00AFD3, GBP_HNGL_LVT}, + {0x00AFD4, 0x00AFD4, GBP_HNGL_LV}, + {0x00AFD5, 0x00AFEF, GBP_HNGL_LVT}, + {0x00AFF0, 0x00AFF0, GBP_HNGL_LV}, + {0x00AFF1, 0x00B00B, GBP_HNGL_LVT}, + {0x00B00C, 0x00B00C, GBP_HNGL_LV}, + {0x00B00D, 0x00B027, GBP_HNGL_LVT}, + {0x00B028, 0x00B028, GBP_HNGL_LV}, + {0x00B029, 0x00B043, GBP_HNGL_LVT}, + {0x00B044, 0x00B044, GBP_HNGL_LV}, + {0x00B045, 0x00B05F, GBP_HNGL_LVT}, + {0x00B060, 0x00B060, GBP_HNGL_LV}, + {0x00B061, 0x00B07B, GBP_HNGL_LVT}, + {0x00B07C, 0x00B07C, GBP_HNGL_LV}, + {0x00B07D, 0x00B097, GBP_HNGL_LVT}, + {0x00B098, 0x00B098, GBP_HNGL_LV}, + {0x00B099, 0x00B0B3, GBP_HNGL_LVT}, + {0x00B0B4, 0x00B0B4, GBP_HNGL_LV}, + {0x00B0B5, 0x00B0CF, GBP_HNGL_LVT}, + {0x00B0D0, 0x00B0D0, GBP_HNGL_LV}, + {0x00B0D1, 0x00B0EB, GBP_HNGL_LVT}, + {0x00B0EC, 0x00B0EC, GBP_HNGL_LV}, + {0x00B0ED, 0x00B107, GBP_HNGL_LVT}, + {0x00B108, 0x00B108, GBP_HNGL_LV}, + {0x00B109, 0x00B123, GBP_HNGL_LVT}, + {0x00B124, 0x00B124, GBP_HNGL_LV}, + {0x00B125, 0x00B13F, GBP_HNGL_LVT}, + {0x00B140, 0x00B140, GBP_HNGL_LV}, + {0x00B141, 0x00B15B, GBP_HNGL_LVT}, + {0x00B15C, 0x00B15C, GBP_HNGL_LV}, + {0x00B15D, 0x00B177, GBP_HNGL_LVT}, + {0x00B178, 0x00B178, GBP_HNGL_LV}, + {0x00B179, 0x00B193, GBP_HNGL_LVT}, + {0x00B194, 0x00B194, GBP_HNGL_LV}, + {0x00B195, 0x00B1AF, GBP_HNGL_LVT}, + {0x00B1B0, 0x00B1B0, GBP_HNGL_LV}, + {0x00B1B1, 0x00B1CB, GBP_HNGL_LVT}, + {0x00B1CC, 0x00B1CC, GBP_HNGL_LV}, + {0x00B1CD, 0x00B1E7, GBP_HNGL_LVT}, + {0x00B1E8, 0x00B1E8, GBP_HNGL_LV}, + {0x00B1E9, 0x00B203, GBP_HNGL_LVT}, + {0x00B204, 0x00B204, GBP_HNGL_LV}, + {0x00B205, 0x00B21F, GBP_HNGL_LVT}, + {0x00B220, 0x00B220, GBP_HNGL_LV}, + {0x00B221, 0x00B23B, GBP_HNGL_LVT}, + {0x00B23C, 0x00B23C, GBP_HNGL_LV}, + {0x00B23D, 0x00B257, GBP_HNGL_LVT}, + {0x00B258, 0x00B258, GBP_HNGL_LV}, + {0x00B259, 0x00B273, GBP_HNGL_LVT}, + {0x00B274, 0x00B274, GBP_HNGL_LV}, + {0x00B275, 0x00B28F, GBP_HNGL_LVT}, + {0x00B290, 0x00B290, GBP_HNGL_LV}, + {0x00B291, 0x00B2AB, GBP_HNGL_LVT}, + {0x00B2AC, 0x00B2AC, GBP_HNGL_LV}, + {0x00B2AD, 0x00B2C7, GBP_HNGL_LVT}, + {0x00B2C8, 0x00B2C8, GBP_HNGL_LV}, + {0x00B2C9, 0x00B2E3, GBP_HNGL_LVT}, + {0x00B2E4, 0x00B2E4, GBP_HNGL_LV}, + {0x00B2E5, 0x00B2FF, GBP_HNGL_LVT}, + {0x00B300, 0x00B300, GBP_HNGL_LV}, + {0x00B301, 0x00B31B, GBP_HNGL_LVT}, + {0x00B31C, 0x00B31C, GBP_HNGL_LV}, + {0x00B31D, 0x00B337, GBP_HNGL_LVT}, + {0x00B338, 0x00B338, GBP_HNGL_LV}, + {0x00B339, 0x00B353, GBP_HNGL_LVT}, + {0x00B354, 0x00B354, GBP_HNGL_LV}, + {0x00B355, 0x00B36F, GBP_HNGL_LVT}, + {0x00B370, 0x00B370, GBP_HNGL_LV}, + {0x00B371, 0x00B38B, GBP_HNGL_LVT}, + {0x00B38C, 0x00B38C, GBP_HNGL_LV}, + {0x00B38D, 0x00B3A7, GBP_HNGL_LVT}, + {0x00B3A8, 0x00B3A8, GBP_HNGL_LV}, + {0x00B3A9, 0x00B3C3, GBP_HNGL_LVT}, + {0x00B3C4, 0x00B3C4, GBP_HNGL_LV}, + {0x00B3C5, 0x00B3DF, GBP_HNGL_LVT}, + {0x00B3E0, 0x00B3E0, GBP_HNGL_LV}, + {0x00B3E1, 0x00B3FB, GBP_HNGL_LVT}, + {0x00B3FC, 0x00B3FC, GBP_HNGL_LV}, + {0x00B3FD, 0x00B417, GBP_HNGL_LVT}, + {0x00B418, 0x00B418, GBP_HNGL_LV}, + {0x00B419, 0x00B433, GBP_HNGL_LVT}, + {0x00B434, 0x00B434, GBP_HNGL_LV}, + {0x00B435, 0x00B44F, GBP_HNGL_LVT}, + {0x00B450, 0x00B450, GBP_HNGL_LV}, + {0x00B451, 0x00B46B, GBP_HNGL_LVT}, + {0x00B46C, 0x00B46C, GBP_HNGL_LV}, + {0x00B46D, 0x00B487, GBP_HNGL_LVT}, + {0x00B488, 0x00B488, GBP_HNGL_LV}, + {0x00B489, 0x00B4A3, GBP_HNGL_LVT}, + {0x00B4A4, 0x00B4A4, GBP_HNGL_LV}, + {0x00B4A5, 0x00B4BF, GBP_HNGL_LVT}, + {0x00B4C0, 0x00B4C0, GBP_HNGL_LV}, + {0x00B4C1, 0x00B4DB, GBP_HNGL_LVT}, + {0x00B4DC, 0x00B4DC, GBP_HNGL_LV}, + {0x00B4DD, 0x00B4F7, GBP_HNGL_LVT}, + {0x00B4F8, 0x00B4F8, GBP_HNGL_LV}, + {0x00B4F9, 0x00B513, GBP_HNGL_LVT}, + {0x00B514, 0x00B514, GBP_HNGL_LV}, + {0x00B515, 0x00B52F, GBP_HNGL_LVT}, + {0x00B530, 0x00B530, GBP_HNGL_LV}, + {0x00B531, 0x00B54B, GBP_HNGL_LVT}, + {0x00B54C, 0x00B54C, GBP_HNGL_LV}, + {0x00B54D, 0x00B567, GBP_HNGL_LVT}, + {0x00B568, 0x00B568, GBP_HNGL_LV}, + {0x00B569, 0x00B583, GBP_HNGL_LVT}, + {0x00B584, 0x00B584, GBP_HNGL_LV}, + {0x00B585, 0x00B59F, GBP_HNGL_LVT}, + {0x00B5A0, 0x00B5A0, GBP_HNGL_LV}, + {0x00B5A1, 0x00B5BB, GBP_HNGL_LVT}, + {0x00B5BC, 0x00B5BC, GBP_HNGL_LV}, + {0x00B5BD, 0x00B5D7, GBP_HNGL_LVT}, + {0x00B5D8, 0x00B5D8, GBP_HNGL_LV}, + {0x00B5D9, 0x00B5F3, GBP_HNGL_LVT}, + {0x00B5F4, 0x00B5F4, GBP_HNGL_LV}, + {0x00B5F5, 0x00B60F, GBP_HNGL_LVT}, + {0x00B610, 0x00B610, GBP_HNGL_LV}, + {0x00B611, 0x00B62B, GBP_HNGL_LVT}, + {0x00B62C, 0x00B62C, GBP_HNGL_LV}, + {0x00B62D, 0x00B647, GBP_HNGL_LVT}, + {0x00B648, 0x00B648, GBP_HNGL_LV}, + {0x00B649, 0x00B663, GBP_HNGL_LVT}, + {0x00B664, 0x00B664, GBP_HNGL_LV}, + {0x00B665, 0x00B67F, GBP_HNGL_LVT}, + {0x00B680, 0x00B680, GBP_HNGL_LV}, + {0x00B681, 0x00B69B, GBP_HNGL_LVT}, + {0x00B69C, 0x00B69C, GBP_HNGL_LV}, + {0x00B69D, 0x00B6B7, GBP_HNGL_LVT}, + {0x00B6B8, 0x00B6B8, GBP_HNGL_LV}, + {0x00B6B9, 0x00B6D3, GBP_HNGL_LVT}, + {0x00B6D4, 0x00B6D4, GBP_HNGL_LV}, + {0x00B6D5, 0x00B6EF, GBP_HNGL_LVT}, + {0x00B6F0, 0x00B6F0, GBP_HNGL_LV}, + {0x00B6F1, 0x00B70B, GBP_HNGL_LVT}, + {0x00B70C, 0x00B70C, GBP_HNGL_LV}, + {0x00B70D, 0x00B727, GBP_HNGL_LVT}, + {0x00B728, 0x00B728, GBP_HNGL_LV}, + {0x00B729, 0x00B743, GBP_HNGL_LVT}, + {0x00B744, 0x00B744, GBP_HNGL_LV}, + {0x00B745, 0x00B75F, GBP_HNGL_LVT}, + {0x00B760, 0x00B760, GBP_HNGL_LV}, + {0x00B761, 0x00B77B, GBP_HNGL_LVT}, + {0x00B77C, 0x00B77C, GBP_HNGL_LV}, + {0x00B77D, 0x00B797, GBP_HNGL_LVT}, + {0x00B798, 0x00B798, GBP_HNGL_LV}, + {0x00B799, 0x00B7B3, GBP_HNGL_LVT}, + {0x00B7B4, 0x00B7B4, GBP_HNGL_LV}, + {0x00B7B5, 0x00B7CF, GBP_HNGL_LVT}, + {0x00B7D0, 0x00B7D0, GBP_HNGL_LV}, + {0x00B7D1, 0x00B7EB, GBP_HNGL_LVT}, + {0x00B7EC, 0x00B7EC, GBP_HNGL_LV}, + {0x00B7ED, 0x00B807, GBP_HNGL_LVT}, + {0x00B808, 0x00B808, GBP_HNGL_LV}, + {0x00B809, 0x00B823, GBP_HNGL_LVT}, + {0x00B824, 0x00B824, GBP_HNGL_LV}, + {0x00B825, 0x00B83F, GBP_HNGL_LVT}, + {0x00B840, 0x00B840, GBP_HNGL_LV}, + {0x00B841, 0x00B85B, GBP_HNGL_LVT}, + {0x00B85C, 0x00B85C, GBP_HNGL_LV}, + {0x00B85D, 0x00B877, GBP_HNGL_LVT}, + {0x00B878, 0x00B878, GBP_HNGL_LV}, + {0x00B879, 0x00B893, GBP_HNGL_LVT}, + {0x00B894, 0x00B894, GBP_HNGL_LV}, + {0x00B895, 0x00B8AF, GBP_HNGL_LVT}, + {0x00B8B0, 0x00B8B0, GBP_HNGL_LV}, + {0x00B8B1, 0x00B8CB, GBP_HNGL_LVT}, + {0x00B8CC, 0x00B8CC, GBP_HNGL_LV}, + {0x00B8CD, 0x00B8E7, GBP_HNGL_LVT}, + {0x00B8E8, 0x00B8E8, GBP_HNGL_LV}, + {0x00B8E9, 0x00B903, GBP_HNGL_LVT}, + {0x00B904, 0x00B904, GBP_HNGL_LV}, + {0x00B905, 0x00B91F, GBP_HNGL_LVT}, + {0x00B920, 0x00B920, GBP_HNGL_LV}, + {0x00B921, 0x00B93B, GBP_HNGL_LVT}, + {0x00B93C, 0x00B93C, GBP_HNGL_LV}, + {0x00B93D, 0x00B957, GBP_HNGL_LVT}, + {0x00B958, 0x00B958, GBP_HNGL_LV}, + {0x00B959, 0x00B973, GBP_HNGL_LVT}, + {0x00B974, 0x00B974, GBP_HNGL_LV}, + {0x00B975, 0x00B98F, GBP_HNGL_LVT}, + {0x00B990, 0x00B990, GBP_HNGL_LV}, + {0x00B991, 0x00B9AB, GBP_HNGL_LVT}, + {0x00B9AC, 0x00B9AC, GBP_HNGL_LV}, + {0x00B9AD, 0x00B9C7, GBP_HNGL_LVT}, + {0x00B9C8, 0x00B9C8, GBP_HNGL_LV}, + {0x00B9C9, 0x00B9E3, GBP_HNGL_LVT}, + {0x00B9E4, 0x00B9E4, GBP_HNGL_LV}, + {0x00B9E5, 0x00B9FF, GBP_HNGL_LVT}, + {0x00BA00, 0x00BA00, GBP_HNGL_LV}, + {0x00BA01, 0x00BA1B, GBP_HNGL_LVT}, + {0x00BA1C, 0x00BA1C, GBP_HNGL_LV}, + {0x00BA1D, 0x00BA37, GBP_HNGL_LVT}, + {0x00BA38, 0x00BA38, GBP_HNGL_LV}, + {0x00BA39, 0x00BA53, GBP_HNGL_LVT}, + {0x00BA54, 0x00BA54, GBP_HNGL_LV}, + {0x00BA55, 0x00BA6F, GBP_HNGL_LVT}, + {0x00BA70, 0x00BA70, GBP_HNGL_LV}, + {0x00BA71, 0x00BA8B, GBP_HNGL_LVT}, + {0x00BA8C, 0x00BA8C, GBP_HNGL_LV}, + {0x00BA8D, 0x00BAA7, GBP_HNGL_LVT}, + {0x00BAA8, 0x00BAA8, GBP_HNGL_LV}, + {0x00BAA9, 0x00BAC3, GBP_HNGL_LVT}, + {0x00BAC4, 0x00BAC4, GBP_HNGL_LV}, + {0x00BAC5, 0x00BADF, GBP_HNGL_LVT}, + {0x00BAE0, 0x00BAE0, GBP_HNGL_LV}, + {0x00BAE1, 0x00BAFB, GBP_HNGL_LVT}, + {0x00BAFC, 0x00BAFC, GBP_HNGL_LV}, + {0x00BAFD, 0x00BB17, GBP_HNGL_LVT}, + {0x00BB18, 0x00BB18, GBP_HNGL_LV}, + {0x00BB19, 0x00BB33, GBP_HNGL_LVT}, + {0x00BB34, 0x00BB34, GBP_HNGL_LV}, + {0x00BB35, 0x00BB4F, GBP_HNGL_LVT}, + {0x00BB50, 0x00BB50, GBP_HNGL_LV}, + {0x00BB51, 0x00BB6B, GBP_HNGL_LVT}, + {0x00BB6C, 0x00BB6C, GBP_HNGL_LV}, + {0x00BB6D, 0x00BB87, GBP_HNGL_LVT}, + {0x00BB88, 0x00BB88, GBP_HNGL_LV}, + {0x00BB89, 0x00BBA3, GBP_HNGL_LVT}, + {0x00BBA4, 0x00BBA4, GBP_HNGL_LV}, + {0x00BBA5, 0x00BBBF, GBP_HNGL_LVT}, + {0x00BBC0, 0x00BBC0, GBP_HNGL_LV}, + {0x00BBC1, 0x00BBDB, GBP_HNGL_LVT}, + {0x00BBDC, 0x00BBDC, GBP_HNGL_LV}, + {0x00BBDD, 0x00BBF7, GBP_HNGL_LVT}, + {0x00BBF8, 0x00BBF8, GBP_HNGL_LV}, + {0x00BBF9, 0x00BC13, GBP_HNGL_LVT}, + {0x00BC14, 0x00BC14, GBP_HNGL_LV}, + {0x00BC15, 0x00BC2F, GBP_HNGL_LVT}, + {0x00BC30, 0x00BC30, GBP_HNGL_LV}, + {0x00BC31, 0x00BC4B, GBP_HNGL_LVT}, + {0x00BC4C, 0x00BC4C, GBP_HNGL_LV}, + {0x00BC4D, 0x00BC67, GBP_HNGL_LVT}, + {0x00BC68, 0x00BC68, GBP_HNGL_LV}, + {0x00BC69, 0x00BC83, GBP_HNGL_LVT}, + {0x00BC84, 0x00BC84, GBP_HNGL_LV}, + {0x00BC85, 0x00BC9F, GBP_HNGL_LVT}, + {0x00BCA0, 0x00BCA0, GBP_HNGL_LV}, + {0x00BCA1, 0x00BCBB, GBP_HNGL_LVT}, + {0x00BCBC, 0x00BCBC, GBP_HNGL_LV}, + {0x00BCBD, 0x00BCD7, GBP_HNGL_LVT}, + {0x00BCD8, 0x00BCD8, GBP_HNGL_LV}, + {0x00BCD9, 0x00BCF3, GBP_HNGL_LVT}, + {0x00BCF4, 0x00BCF4, GBP_HNGL_LV}, + {0x00BCF5, 0x00BD0F, GBP_HNGL_LVT}, + {0x00BD10, 0x00BD10, GBP_HNGL_LV}, + {0x00BD11, 0x00BD2B, GBP_HNGL_LVT}, + {0x00BD2C, 0x00BD2C, GBP_HNGL_LV}, + {0x00BD2D, 0x00BD47, GBP_HNGL_LVT}, + {0x00BD48, 0x00BD48, GBP_HNGL_LV}, + {0x00BD49, 0x00BD63, GBP_HNGL_LVT}, + {0x00BD64, 0x00BD64, GBP_HNGL_LV}, + {0x00BD65, 0x00BD7F, GBP_HNGL_LVT}, + {0x00BD80, 0x00BD80, GBP_HNGL_LV}, + {0x00BD81, 0x00BD9B, GBP_HNGL_LVT}, + {0x00BD9C, 0x00BD9C, GBP_HNGL_LV}, + {0x00BD9D, 0x00BDB7, GBP_HNGL_LVT}, + {0x00BDB8, 0x00BDB8, GBP_HNGL_LV}, + {0x00BDB9, 0x00BDD3, GBP_HNGL_LVT}, + {0x00BDD4, 0x00BDD4, GBP_HNGL_LV}, + {0x00BDD5, 0x00BDEF, GBP_HNGL_LVT}, + {0x00BDF0, 0x00BDF0, GBP_HNGL_LV}, + {0x00BDF1, 0x00BE0B, GBP_HNGL_LVT}, + {0x00BE0C, 0x00BE0C, GBP_HNGL_LV}, + {0x00BE0D, 0x00BE27, GBP_HNGL_LVT}, + {0x00BE28, 0x00BE28, GBP_HNGL_LV}, + {0x00BE29, 0x00BE43, GBP_HNGL_LVT}, + {0x00BE44, 0x00BE44, GBP_HNGL_LV}, + {0x00BE45, 0x00BE5F, GBP_HNGL_LVT}, + {0x00BE60, 0x00BE60, GBP_HNGL_LV}, + {0x00BE61, 0x00BE7B, GBP_HNGL_LVT}, + {0x00BE7C, 0x00BE7C, GBP_HNGL_LV}, + {0x00BE7D, 0x00BE97, GBP_HNGL_LVT}, + {0x00BE98, 0x00BE98, GBP_HNGL_LV}, + {0x00BE99, 0x00BEB3, GBP_HNGL_LVT}, + {0x00BEB4, 0x00BEB4, GBP_HNGL_LV}, + {0x00BEB5, 0x00BECF, GBP_HNGL_LVT}, + {0x00BED0, 0x00BED0, GBP_HNGL_LV}, + {0x00BED1, 0x00BEEB, GBP_HNGL_LVT}, + {0x00BEEC, 0x00BEEC, GBP_HNGL_LV}, + {0x00BEED, 0x00BF07, GBP_HNGL_LVT}, + {0x00BF08, 0x00BF08, GBP_HNGL_LV}, + {0x00BF09, 0x00BF23, GBP_HNGL_LVT}, + {0x00BF24, 0x00BF24, GBP_HNGL_LV}, + {0x00BF25, 0x00BF3F, GBP_HNGL_LVT}, + {0x00BF40, 0x00BF40, GBP_HNGL_LV}, + {0x00BF41, 0x00BF5B, GBP_HNGL_LVT}, + {0x00BF5C, 0x00BF5C, GBP_HNGL_LV}, + {0x00BF5D, 0x00BF77, GBP_HNGL_LVT}, + {0x00BF78, 0x00BF78, GBP_HNGL_LV}, + {0x00BF79, 0x00BF93, GBP_HNGL_LVT}, + {0x00BF94, 0x00BF94, GBP_HNGL_LV}, + {0x00BF95, 0x00BFAF, GBP_HNGL_LVT}, + {0x00BFB0, 0x00BFB0, GBP_HNGL_LV}, + {0x00BFB1, 0x00BFCB, GBP_HNGL_LVT}, + {0x00BFCC, 0x00BFCC, GBP_HNGL_LV}, + {0x00BFCD, 0x00BFE7, GBP_HNGL_LVT}, + {0x00BFE8, 0x00BFE8, GBP_HNGL_LV}, + {0x00BFE9, 0x00C003, GBP_HNGL_LVT}, + {0x00C004, 0x00C004, GBP_HNGL_LV}, + {0x00C005, 0x00C01F, GBP_HNGL_LVT}, + {0x00C020, 0x00C020, GBP_HNGL_LV}, + {0x00C021, 0x00C03B, GBP_HNGL_LVT}, + {0x00C03C, 0x00C03C, GBP_HNGL_LV}, + {0x00C03D, 0x00C057, GBP_HNGL_LVT}, + {0x00C058, 0x00C058, GBP_HNGL_LV}, + {0x00C059, 0x00C073, GBP_HNGL_LVT}, + {0x00C074, 0x00C074, GBP_HNGL_LV}, + {0x00C075, 0x00C08F, GBP_HNGL_LVT}, + {0x00C090, 0x00C090, GBP_HNGL_LV}, + {0x00C091, 0x00C0AB, GBP_HNGL_LVT}, + {0x00C0AC, 0x00C0AC, GBP_HNGL_LV}, + {0x00C0AD, 0x00C0C7, GBP_HNGL_LVT}, + {0x00C0C8, 0x00C0C8, GBP_HNGL_LV}, + {0x00C0C9, 0x00C0E3, GBP_HNGL_LVT}, + {0x00C0E4, 0x00C0E4, GBP_HNGL_LV}, + {0x00C0E5, 0x00C0FF, GBP_HNGL_LVT}, + {0x00C100, 0x00C100, GBP_HNGL_LV}, + {0x00C101, 0x00C11B, GBP_HNGL_LVT}, + {0x00C11C, 0x00C11C, GBP_HNGL_LV}, + {0x00C11D, 0x00C137, GBP_HNGL_LVT}, + {0x00C138, 0x00C138, GBP_HNGL_LV}, + {0x00C139, 0x00C153, GBP_HNGL_LVT}, + {0x00C154, 0x00C154, GBP_HNGL_LV}, + {0x00C155, 0x00C16F, GBP_HNGL_LVT}, + {0x00C170, 0x00C170, GBP_HNGL_LV}, + {0x00C171, 0x00C18B, GBP_HNGL_LVT}, + {0x00C18C, 0x00C18C, GBP_HNGL_LV}, + {0x00C18D, 0x00C1A7, GBP_HNGL_LVT}, + {0x00C1A8, 0x00C1A8, GBP_HNGL_LV}, + {0x00C1A9, 0x00C1C3, GBP_HNGL_LVT}, + {0x00C1C4, 0x00C1C4, GBP_HNGL_LV}, + {0x00C1C5, 0x00C1DF, GBP_HNGL_LVT}, + {0x00C1E0, 0x00C1E0, GBP_HNGL_LV}, + {0x00C1E1, 0x00C1FB, GBP_HNGL_LVT}, + {0x00C1FC, 0x00C1FC, GBP_HNGL_LV}, + {0x00C1FD, 0x00C217, GBP_HNGL_LVT}, + {0x00C218, 0x00C218, GBP_HNGL_LV}, + {0x00C219, 0x00C233, GBP_HNGL_LVT}, + {0x00C234, 0x00C234, GBP_HNGL_LV}, + {0x00C235, 0x00C24F, GBP_HNGL_LVT}, + {0x00C250, 0x00C250, GBP_HNGL_LV}, + {0x00C251, 0x00C26B, GBP_HNGL_LVT}, + {0x00C26C, 0x00C26C, GBP_HNGL_LV}, + {0x00C26D, 0x00C287, GBP_HNGL_LVT}, + {0x00C288, 0x00C288, GBP_HNGL_LV}, + {0x00C289, 0x00C2A3, GBP_HNGL_LVT}, + {0x00C2A4, 0x00C2A4, GBP_HNGL_LV}, + {0x00C2A5, 0x00C2BF, GBP_HNGL_LVT}, + {0x00C2C0, 0x00C2C0, GBP_HNGL_LV}, + {0x00C2C1, 0x00C2DB, GBP_HNGL_LVT}, + {0x00C2DC, 0x00C2DC, GBP_HNGL_LV}, + {0x00C2DD, 0x00C2F7, GBP_HNGL_LVT}, + {0x00C2F8, 0x00C2F8, GBP_HNGL_LV}, + {0x00C2F9, 0x00C313, GBP_HNGL_LVT}, + {0x00C314, 0x00C314, GBP_HNGL_LV}, + {0x00C315, 0x00C32F, GBP_HNGL_LVT}, + {0x00C330, 0x00C330, GBP_HNGL_LV}, + {0x00C331, 0x00C34B, GBP_HNGL_LVT}, + {0x00C34C, 0x00C34C, GBP_HNGL_LV}, + {0x00C34D, 0x00C367, GBP_HNGL_LVT}, + {0x00C368, 0x00C368, GBP_HNGL_LV}, + {0x00C369, 0x00C383, GBP_HNGL_LVT}, + {0x00C384, 0x00C384, GBP_HNGL_LV}, + {0x00C385, 0x00C39F, GBP_HNGL_LVT}, + {0x00C3A0, 0x00C3A0, GBP_HNGL_LV}, + {0x00C3A1, 0x00C3BB, GBP_HNGL_LVT}, + {0x00C3BC, 0x00C3BC, GBP_HNGL_LV}, + {0x00C3BD, 0x00C3D7, GBP_HNGL_LVT}, + {0x00C3D8, 0x00C3D8, GBP_HNGL_LV}, + {0x00C3D9, 0x00C3F3, GBP_HNGL_LVT}, + {0x00C3F4, 0x00C3F4, GBP_HNGL_LV}, + {0x00C3F5, 0x00C40F, GBP_HNGL_LVT}, + {0x00C410, 0x00C410, GBP_HNGL_LV}, + {0x00C411, 0x00C42B, GBP_HNGL_LVT}, + {0x00C42C, 0x00C42C, GBP_HNGL_LV}, + {0x00C42D, 0x00C447, GBP_HNGL_LVT}, + {0x00C448, 0x00C448, GBP_HNGL_LV}, + {0x00C449, 0x00C463, GBP_HNGL_LVT}, + {0x00C464, 0x00C464, GBP_HNGL_LV}, + {0x00C465, 0x00C47F, GBP_HNGL_LVT}, + {0x00C480, 0x00C480, GBP_HNGL_LV}, + {0x00C481, 0x00C49B, GBP_HNGL_LVT}, + {0x00C49C, 0x00C49C, GBP_HNGL_LV}, + {0x00C49D, 0x00C4B7, GBP_HNGL_LVT}, + {0x00C4B8, 0x00C4B8, GBP_HNGL_LV}, + {0x00C4B9, 0x00C4D3, GBP_HNGL_LVT}, + {0x00C4D4, 0x00C4D4, GBP_HNGL_LV}, + {0x00C4D5, 0x00C4EF, GBP_HNGL_LVT}, + {0x00C4F0, 0x00C4F0, GBP_HNGL_LV}, + {0x00C4F1, 0x00C50B, GBP_HNGL_LVT}, + {0x00C50C, 0x00C50C, GBP_HNGL_LV}, + {0x00C50D, 0x00C527, GBP_HNGL_LVT}, + {0x00C528, 0x00C528, GBP_HNGL_LV}, + {0x00C529, 0x00C543, GBP_HNGL_LVT}, + {0x00C544, 0x00C544, GBP_HNGL_LV}, + {0x00C545, 0x00C55F, GBP_HNGL_LVT}, + {0x00C560, 0x00C560, GBP_HNGL_LV}, + {0x00C561, 0x00C57B, GBP_HNGL_LVT}, + {0x00C57C, 0x00C57C, GBP_HNGL_LV}, + {0x00C57D, 0x00C597, GBP_HNGL_LVT}, + {0x00C598, 0x00C598, GBP_HNGL_LV}, + {0x00C599, 0x00C5B3, GBP_HNGL_LVT}, + {0x00C5B4, 0x00C5B4, GBP_HNGL_LV}, + {0x00C5B5, 0x00C5CF, GBP_HNGL_LVT}, + {0x00C5D0, 0x00C5D0, GBP_HNGL_LV}, + {0x00C5D1, 0x00C5EB, GBP_HNGL_LVT}, + {0x00C5EC, 0x00C5EC, GBP_HNGL_LV}, + {0x00C5ED, 0x00C607, GBP_HNGL_LVT}, + {0x00C608, 0x00C608, GBP_HNGL_LV}, + {0x00C609, 0x00C623, GBP_HNGL_LVT}, + {0x00C624, 0x00C624, GBP_HNGL_LV}, + {0x00C625, 0x00C63F, GBP_HNGL_LVT}, + {0x00C640, 0x00C640, GBP_HNGL_LV}, + {0x00C641, 0x00C65B, GBP_HNGL_LVT}, + {0x00C65C, 0x00C65C, GBP_HNGL_LV}, + {0x00C65D, 0x00C677, GBP_HNGL_LVT}, + {0x00C678, 0x00C678, GBP_HNGL_LV}, + {0x00C679, 0x00C693, GBP_HNGL_LVT}, + {0x00C694, 0x00C694, GBP_HNGL_LV}, + {0x00C695, 0x00C6AF, GBP_HNGL_LVT}, + {0x00C6B0, 0x00C6B0, GBP_HNGL_LV}, + {0x00C6B1, 0x00C6CB, GBP_HNGL_LVT}, + {0x00C6CC, 0x00C6CC, GBP_HNGL_LV}, + {0x00C6CD, 0x00C6E7, GBP_HNGL_LVT}, + {0x00C6E8, 0x00C6E8, GBP_HNGL_LV}, + {0x00C6E9, 0x00C703, GBP_HNGL_LVT}, + {0x00C704, 0x00C704, GBP_HNGL_LV}, + {0x00C705, 0x00C71F, GBP_HNGL_LVT}, + {0x00C720, 0x00C720, GBP_HNGL_LV}, + {0x00C721, 0x00C73B, GBP_HNGL_LVT}, + {0x00C73C, 0x00C73C, GBP_HNGL_LV}, + {0x00C73D, 0x00C757, GBP_HNGL_LVT}, + {0x00C758, 0x00C758, GBP_HNGL_LV}, + {0x00C759, 0x00C773, GBP_HNGL_LVT}, + {0x00C774, 0x00C774, GBP_HNGL_LV}, + {0x00C775, 0x00C78F, GBP_HNGL_LVT}, + {0x00C790, 0x00C790, GBP_HNGL_LV}, + {0x00C791, 0x00C7AB, GBP_HNGL_LVT}, + {0x00C7AC, 0x00C7AC, GBP_HNGL_LV}, + {0x00C7AD, 0x00C7C7, GBP_HNGL_LVT}, + {0x00C7C8, 0x00C7C8, GBP_HNGL_LV}, + {0x00C7C9, 0x00C7E3, GBP_HNGL_LVT}, + {0x00C7E4, 0x00C7E4, GBP_HNGL_LV}, + {0x00C7E5, 0x00C7FF, GBP_HNGL_LVT}, + {0x00C800, 0x00C800, GBP_HNGL_LV}, + {0x00C801, 0x00C81B, GBP_HNGL_LVT}, + {0x00C81C, 0x00C81C, GBP_HNGL_LV}, + {0x00C81D, 0x00C837, GBP_HNGL_LVT}, + {0x00C838, 0x00C838, GBP_HNGL_LV}, + {0x00C839, 0x00C853, GBP_HNGL_LVT}, + {0x00C854, 0x00C854, GBP_HNGL_LV}, + {0x00C855, 0x00C86F, GBP_HNGL_LVT}, + {0x00C870, 0x00C870, GBP_HNGL_LV}, + {0x00C871, 0x00C88B, GBP_HNGL_LVT}, + {0x00C88C, 0x00C88C, GBP_HNGL_LV}, + {0x00C88D, 0x00C8A7, GBP_HNGL_LVT}, + {0x00C8A8, 0x00C8A8, GBP_HNGL_LV}, + {0x00C8A9, 0x00C8C3, GBP_HNGL_LVT}, + {0x00C8C4, 0x00C8C4, GBP_HNGL_LV}, + {0x00C8C5, 0x00C8DF, GBP_HNGL_LVT}, + {0x00C8E0, 0x00C8E0, GBP_HNGL_LV}, + {0x00C8E1, 0x00C8FB, GBP_HNGL_LVT}, + {0x00C8FC, 0x00C8FC, GBP_HNGL_LV}, + {0x00C8FD, 0x00C917, GBP_HNGL_LVT}, + {0x00C918, 0x00C918, GBP_HNGL_LV}, + {0x00C919, 0x00C933, GBP_HNGL_LVT}, + {0x00C934, 0x00C934, GBP_HNGL_LV}, + {0x00C935, 0x00C94F, GBP_HNGL_LVT}, + {0x00C950, 0x00C950, GBP_HNGL_LV}, + {0x00C951, 0x00C96B, GBP_HNGL_LVT}, + {0x00C96C, 0x00C96C, GBP_HNGL_LV}, + {0x00C96D, 0x00C987, GBP_HNGL_LVT}, + {0x00C988, 0x00C988, GBP_HNGL_LV}, + {0x00C989, 0x00C9A3, GBP_HNGL_LVT}, + {0x00C9A4, 0x00C9A4, GBP_HNGL_LV}, + {0x00C9A5, 0x00C9BF, GBP_HNGL_LVT}, + {0x00C9C0, 0x00C9C0, GBP_HNGL_LV}, + {0x00C9C1, 0x00C9DB, GBP_HNGL_LVT}, + {0x00C9DC, 0x00C9DC, GBP_HNGL_LV}, + {0x00C9DD, 0x00C9F7, GBP_HNGL_LVT}, + {0x00C9F8, 0x00C9F8, GBP_HNGL_LV}, + {0x00C9F9, 0x00CA13, GBP_HNGL_LVT}, + {0x00CA14, 0x00CA14, GBP_HNGL_LV}, + {0x00CA15, 0x00CA2F, GBP_HNGL_LVT}, + {0x00CA30, 0x00CA30, GBP_HNGL_LV}, + {0x00CA31, 0x00CA4B, GBP_HNGL_LVT}, + {0x00CA4C, 0x00CA4C, GBP_HNGL_LV}, + {0x00CA4D, 0x00CA67, GBP_HNGL_LVT}, + {0x00CA68, 0x00CA68, GBP_HNGL_LV}, + {0x00CA69, 0x00CA83, GBP_HNGL_LVT}, + {0x00CA84, 0x00CA84, GBP_HNGL_LV}, + {0x00CA85, 0x00CA9F, GBP_HNGL_LVT}, + {0x00CAA0, 0x00CAA0, GBP_HNGL_LV}, + {0x00CAA1, 0x00CABB, GBP_HNGL_LVT}, + {0x00CABC, 0x00CABC, GBP_HNGL_LV}, + {0x00CABD, 0x00CAD7, GBP_HNGL_LVT}, + {0x00CAD8, 0x00CAD8, GBP_HNGL_LV}, + {0x00CAD9, 0x00CAF3, GBP_HNGL_LVT}, + {0x00CAF4, 0x00CAF4, GBP_HNGL_LV}, + {0x00CAF5, 0x00CB0F, GBP_HNGL_LVT}, + {0x00CB10, 0x00CB10, GBP_HNGL_LV}, + {0x00CB11, 0x00CB2B, GBP_HNGL_LVT}, + {0x00CB2C, 0x00CB2C, GBP_HNGL_LV}, + {0x00CB2D, 0x00CB47, GBP_HNGL_LVT}, + {0x00CB48, 0x00CB48, GBP_HNGL_LV}, + {0x00CB49, 0x00CB63, GBP_HNGL_LVT}, + {0x00CB64, 0x00CB64, GBP_HNGL_LV}, + {0x00CB65, 0x00CB7F, GBP_HNGL_LVT}, + {0x00CB80, 0x00CB80, GBP_HNGL_LV}, + {0x00CB81, 0x00CB9B, GBP_HNGL_LVT}, + {0x00CB9C, 0x00CB9C, GBP_HNGL_LV}, + {0x00CB9D, 0x00CBB7, GBP_HNGL_LVT}, + {0x00CBB8, 0x00CBB8, GBP_HNGL_LV}, + {0x00CBB9, 0x00CBD3, GBP_HNGL_LVT}, + {0x00CBD4, 0x00CBD4, GBP_HNGL_LV}, + {0x00CBD5, 0x00CBEF, GBP_HNGL_LVT}, + {0x00CBF0, 0x00CBF0, GBP_HNGL_LV}, + {0x00CBF1, 0x00CC0B, GBP_HNGL_LVT}, + {0x00CC0C, 0x00CC0C, GBP_HNGL_LV}, + {0x00CC0D, 0x00CC27, GBP_HNGL_LVT}, + {0x00CC28, 0x00CC28, GBP_HNGL_LV}, + {0x00CC29, 0x00CC43, GBP_HNGL_LVT}, + {0x00CC44, 0x00CC44, GBP_HNGL_LV}, + {0x00CC45, 0x00CC5F, GBP_HNGL_LVT}, + {0x00CC60, 0x00CC60, GBP_HNGL_LV}, + {0x00CC61, 0x00CC7B, GBP_HNGL_LVT}, + {0x00CC7C, 0x00CC7C, GBP_HNGL_LV}, + {0x00CC7D, 0x00CC97, GBP_HNGL_LVT}, + {0x00CC98, 0x00CC98, GBP_HNGL_LV}, + {0x00CC99, 0x00CCB3, GBP_HNGL_LVT}, + {0x00CCB4, 0x00CCB4, GBP_HNGL_LV}, + {0x00CCB5, 0x00CCCF, GBP_HNGL_LVT}, + {0x00CCD0, 0x00CCD0, GBP_HNGL_LV}, + {0x00CCD1, 0x00CCEB, GBP_HNGL_LVT}, + {0x00CCEC, 0x00CCEC, GBP_HNGL_LV}, + {0x00CCED, 0x00CD07, GBP_HNGL_LVT}, + {0x00CD08, 0x00CD08, GBP_HNGL_LV}, + {0x00CD09, 0x00CD23, GBP_HNGL_LVT}, + {0x00CD24, 0x00CD24, GBP_HNGL_LV}, + {0x00CD25, 0x00CD3F, GBP_HNGL_LVT}, + {0x00CD40, 0x00CD40, GBP_HNGL_LV}, + {0x00CD41, 0x00CD5B, GBP_HNGL_LVT}, + {0x00CD5C, 0x00CD5C, GBP_HNGL_LV}, + {0x00CD5D, 0x00CD77, GBP_HNGL_LVT}, + {0x00CD78, 0x00CD78, GBP_HNGL_LV}, + {0x00CD79, 0x00CD93, GBP_HNGL_LVT}, + {0x00CD94, 0x00CD94, GBP_HNGL_LV}, + {0x00CD95, 0x00CDAF, GBP_HNGL_LVT}, + {0x00CDB0, 0x00CDB0, GBP_HNGL_LV}, + {0x00CDB1, 0x00CDCB, GBP_HNGL_LVT}, + {0x00CDCC, 0x00CDCC, GBP_HNGL_LV}, + {0x00CDCD, 0x00CDE7, GBP_HNGL_LVT}, + {0x00CDE8, 0x00CDE8, GBP_HNGL_LV}, + {0x00CDE9, 0x00CE03, GBP_HNGL_LVT}, + {0x00CE04, 0x00CE04, GBP_HNGL_LV}, + {0x00CE05, 0x00CE1F, GBP_HNGL_LVT}, + {0x00CE20, 0x00CE20, GBP_HNGL_LV}, + {0x00CE21, 0x00CE3B, GBP_HNGL_LVT}, + {0x00CE3C, 0x00CE3C, GBP_HNGL_LV}, + {0x00CE3D, 0x00CE57, GBP_HNGL_LVT}, + {0x00CE58, 0x00CE58, GBP_HNGL_LV}, + {0x00CE59, 0x00CE73, GBP_HNGL_LVT}, + {0x00CE74, 0x00CE74, GBP_HNGL_LV}, + {0x00CE75, 0x00CE8F, GBP_HNGL_LVT}, + {0x00CE90, 0x00CE90, GBP_HNGL_LV}, + {0x00CE91, 0x00CEAB, GBP_HNGL_LVT}, + {0x00CEAC, 0x00CEAC, GBP_HNGL_LV}, + {0x00CEAD, 0x00CEC7, GBP_HNGL_LVT}, + {0x00CEC8, 0x00CEC8, GBP_HNGL_LV}, + {0x00CEC9, 0x00CEE3, GBP_HNGL_LVT}, + {0x00CEE4, 0x00CEE4, GBP_HNGL_LV}, + {0x00CEE5, 0x00CEFF, GBP_HNGL_LVT}, + {0x00CF00, 0x00CF00, GBP_HNGL_LV}, + {0x00CF01, 0x00CF1B, GBP_HNGL_LVT}, + {0x00CF1C, 0x00CF1C, GBP_HNGL_LV}, + {0x00CF1D, 0x00CF37, GBP_HNGL_LVT}, + {0x00CF38, 0x00CF38, GBP_HNGL_LV}, + {0x00CF39, 0x00CF53, GBP_HNGL_LVT}, + {0x00CF54, 0x00CF54, GBP_HNGL_LV}, + {0x00CF55, 0x00CF6F, GBP_HNGL_LVT}, + {0x00CF70, 0x00CF70, GBP_HNGL_LV}, + {0x00CF71, 0x00CF8B, GBP_HNGL_LVT}, + {0x00CF8C, 0x00CF8C, GBP_HNGL_LV}, + {0x00CF8D, 0x00CFA7, GBP_HNGL_LVT}, + {0x00CFA8, 0x00CFA8, GBP_HNGL_LV}, + {0x00CFA9, 0x00CFC3, GBP_HNGL_LVT}, + {0x00CFC4, 0x00CFC4, GBP_HNGL_LV}, + {0x00CFC5, 0x00CFDF, GBP_HNGL_LVT}, + {0x00CFE0, 0x00CFE0, GBP_HNGL_LV}, + {0x00CFE1, 0x00CFFB, GBP_HNGL_LVT}, + {0x00CFFC, 0x00CFFC, GBP_HNGL_LV}, + {0x00CFFD, 0x00D017, GBP_HNGL_LVT}, + {0x00D018, 0x00D018, GBP_HNGL_LV}, + {0x00D019, 0x00D033, GBP_HNGL_LVT}, + {0x00D034, 0x00D034, GBP_HNGL_LV}, + {0x00D035, 0x00D04F, GBP_HNGL_LVT}, + {0x00D050, 0x00D050, GBP_HNGL_LV}, + {0x00D051, 0x00D06B, GBP_HNGL_LVT}, + {0x00D06C, 0x00D06C, GBP_HNGL_LV}, + {0x00D06D, 0x00D087, GBP_HNGL_LVT}, + {0x00D088, 0x00D088, GBP_HNGL_LV}, + {0x00D089, 0x00D0A3, GBP_HNGL_LVT}, + {0x00D0A4, 0x00D0A4, GBP_HNGL_LV}, + {0x00D0A5, 0x00D0BF, GBP_HNGL_LVT}, + {0x00D0C0, 0x00D0C0, GBP_HNGL_LV}, + {0x00D0C1, 0x00D0DB, GBP_HNGL_LVT}, + {0x00D0DC, 0x00D0DC, GBP_HNGL_LV}, + {0x00D0DD, 0x00D0F7, GBP_HNGL_LVT}, + {0x00D0F8, 0x00D0F8, GBP_HNGL_LV}, + {0x00D0F9, 0x00D113, GBP_HNGL_LVT}, + {0x00D114, 0x00D114, GBP_HNGL_LV}, + {0x00D115, 0x00D12F, GBP_HNGL_LVT}, + {0x00D130, 0x00D130, GBP_HNGL_LV}, + {0x00D131, 0x00D14B, GBP_HNGL_LVT}, + {0x00D14C, 0x00D14C, GBP_HNGL_LV}, + {0x00D14D, 0x00D167, GBP_HNGL_LVT}, + {0x00D168, 0x00D168, GBP_HNGL_LV}, + {0x00D169, 0x00D183, GBP_HNGL_LVT}, + {0x00D184, 0x00D184, GBP_HNGL_LV}, + {0x00D185, 0x00D19F, GBP_HNGL_LVT}, + {0x00D1A0, 0x00D1A0, GBP_HNGL_LV}, + {0x00D1A1, 0x00D1BB, GBP_HNGL_LVT}, + {0x00D1BC, 0x00D1BC, GBP_HNGL_LV}, + {0x00D1BD, 0x00D1D7, GBP_HNGL_LVT}, + {0x00D1D8, 0x00D1D8, GBP_HNGL_LV}, + {0x00D1D9, 0x00D1F3, GBP_HNGL_LVT}, + {0x00D1F4, 0x00D1F4, GBP_HNGL_LV}, + {0x00D1F5, 0x00D20F, GBP_HNGL_LVT}, + {0x00D210, 0x00D210, GBP_HNGL_LV}, + {0x00D211, 0x00D22B, GBP_HNGL_LVT}, + {0x00D22C, 0x00D22C, GBP_HNGL_LV}, + {0x00D22D, 0x00D247, GBP_HNGL_LVT}, + {0x00D248, 0x00D248, GBP_HNGL_LV}, + {0x00D249, 0x00D263, GBP_HNGL_LVT}, + {0x00D264, 0x00D264, GBP_HNGL_LV}, + {0x00D265, 0x00D27F, GBP_HNGL_LVT}, + {0x00D280, 0x00D280, GBP_HNGL_LV}, + {0x00D281, 0x00D29B, GBP_HNGL_LVT}, + {0x00D29C, 0x00D29C, GBP_HNGL_LV}, + {0x00D29D, 0x00D2B7, GBP_HNGL_LVT}, + {0x00D2B8, 0x00D2B8, GBP_HNGL_LV}, + {0x00D2B9, 0x00D2D3, GBP_HNGL_LVT}, + {0x00D2D4, 0x00D2D4, GBP_HNGL_LV}, + {0x00D2D5, 0x00D2EF, GBP_HNGL_LVT}, + {0x00D2F0, 0x00D2F0, GBP_HNGL_LV}, + {0x00D2F1, 0x00D30B, GBP_HNGL_LVT}, + {0x00D30C, 0x00D30C, GBP_HNGL_LV}, + {0x00D30D, 0x00D327, GBP_HNGL_LVT}, + {0x00D328, 0x00D328, GBP_HNGL_LV}, + {0x00D329, 0x00D343, GBP_HNGL_LVT}, + {0x00D344, 0x00D344, GBP_HNGL_LV}, + {0x00D345, 0x00D35F, GBP_HNGL_LVT}, + {0x00D360, 0x00D360, GBP_HNGL_LV}, + {0x00D361, 0x00D37B, GBP_HNGL_LVT}, + {0x00D37C, 0x00D37C, GBP_HNGL_LV}, + {0x00D37D, 0x00D397, GBP_HNGL_LVT}, + {0x00D398, 0x00D398, GBP_HNGL_LV}, + {0x00D399, 0x00D3B3, GBP_HNGL_LVT}, + {0x00D3B4, 0x00D3B4, GBP_HNGL_LV}, + {0x00D3B5, 0x00D3CF, GBP_HNGL_LVT}, + {0x00D3D0, 0x00D3D0, GBP_HNGL_LV}, + {0x00D3D1, 0x00D3EB, GBP_HNGL_LVT}, + {0x00D3EC, 0x00D3EC, GBP_HNGL_LV}, + {0x00D3ED, 0x00D407, GBP_HNGL_LVT}, + {0x00D408, 0x00D408, GBP_HNGL_LV}, + {0x00D409, 0x00D423, GBP_HNGL_LVT}, + {0x00D424, 0x00D424, GBP_HNGL_LV}, + {0x00D425, 0x00D43F, GBP_HNGL_LVT}, + {0x00D440, 0x00D440, GBP_HNGL_LV}, + {0x00D441, 0x00D45B, GBP_HNGL_LVT}, + {0x00D45C, 0x00D45C, GBP_HNGL_LV}, + {0x00D45D, 0x00D477, GBP_HNGL_LVT}, + {0x00D478, 0x00D478, GBP_HNGL_LV}, + {0x00D479, 0x00D493, GBP_HNGL_LVT}, + {0x00D494, 0x00D494, GBP_HNGL_LV}, + {0x00D495, 0x00D4AF, GBP_HNGL_LVT}, + {0x00D4B0, 0x00D4B0, GBP_HNGL_LV}, + {0x00D4B1, 0x00D4CB, GBP_HNGL_LVT}, + {0x00D4CC, 0x00D4CC, GBP_HNGL_LV}, + {0x00D4CD, 0x00D4E7, GBP_HNGL_LVT}, + {0x00D4E8, 0x00D4E8, GBP_HNGL_LV}, + {0x00D4E9, 0x00D503, GBP_HNGL_LVT}, + {0x00D504, 0x00D504, GBP_HNGL_LV}, + {0x00D505, 0x00D51F, GBP_HNGL_LVT}, + {0x00D520, 0x00D520, GBP_HNGL_LV}, + {0x00D521, 0x00D53B, GBP_HNGL_LVT}, + {0x00D53C, 0x00D53C, GBP_HNGL_LV}, + {0x00D53D, 0x00D557, GBP_HNGL_LVT}, + {0x00D558, 0x00D558, GBP_HNGL_LV}, + {0x00D559, 0x00D573, GBP_HNGL_LVT}, + {0x00D574, 0x00D574, GBP_HNGL_LV}, + {0x00D575, 0x00D58F, GBP_HNGL_LVT}, + {0x00D590, 0x00D590, GBP_HNGL_LV}, + {0x00D591, 0x00D5AB, GBP_HNGL_LVT}, + {0x00D5AC, 0x00D5AC, GBP_HNGL_LV}, + {0x00D5AD, 0x00D5C7, GBP_HNGL_LVT}, + {0x00D5C8, 0x00D5C8, GBP_HNGL_LV}, + {0x00D5C9, 0x00D5E3, GBP_HNGL_LVT}, + {0x00D5E4, 0x00D5E4, GBP_HNGL_LV}, + {0x00D5E5, 0x00D5FF, GBP_HNGL_LVT}, + {0x00D600, 0x00D600, GBP_HNGL_LV}, + {0x00D601, 0x00D61B, GBP_HNGL_LVT}, + {0x00D61C, 0x00D61C, GBP_HNGL_LV}, + {0x00D61D, 0x00D637, GBP_HNGL_LVT}, + {0x00D638, 0x00D638, GBP_HNGL_LV}, + {0x00D639, 0x00D653, GBP_HNGL_LVT}, + {0x00D654, 0x00D654, GBP_HNGL_LV}, + {0x00D655, 0x00D66F, GBP_HNGL_LVT}, + {0x00D670, 0x00D670, GBP_HNGL_LV}, + {0x00D671, 0x00D68B, GBP_HNGL_LVT}, + {0x00D68C, 0x00D68C, GBP_HNGL_LV}, + {0x00D68D, 0x00D6A7, GBP_HNGL_LVT}, + {0x00D6A8, 0x00D6A8, GBP_HNGL_LV}, + {0x00D6A9, 0x00D6C3, GBP_HNGL_LVT}, + {0x00D6C4, 0x00D6C4, GBP_HNGL_LV}, + {0x00D6C5, 0x00D6DF, GBP_HNGL_LVT}, + {0x00D6E0, 0x00D6E0, GBP_HNGL_LV}, + {0x00D6E1, 0x00D6FB, GBP_HNGL_LVT}, + {0x00D6FC, 0x00D6FC, GBP_HNGL_LV}, + {0x00D6FD, 0x00D717, GBP_HNGL_LVT}, + {0x00D718, 0x00D718, GBP_HNGL_LV}, + {0x00D719, 0x00D733, GBP_HNGL_LVT}, + {0x00D734, 0x00D734, GBP_HNGL_LV}, + {0x00D735, 0x00D74F, GBP_HNGL_LVT}, + {0x00D750, 0x00D750, GBP_HNGL_LV}, + {0x00D751, 0x00D76B, GBP_HNGL_LVT}, + {0x00D76C, 0x00D76C, GBP_HNGL_LV}, + {0x00D76D, 0x00D787, GBP_HNGL_LVT}, + {0x00D788, 0x00D788, GBP_HNGL_LV}, + {0x00D789, 0x00D7A3, GBP_HNGL_LVT}, + {0x00D7B0, 0x00D7C6, GBP_HNGL_V}, + {0x00D7CB, 0x00D7FB, GBP_HNGL_T}, + {0x00FB1E, 0x00FB1E, GBP_INDC_EXT | GBP_EXT}, + {0x00FE00, 0x00FE0F, GBP_EXT}, + {0x00FE20, 0x00FE2F, GBP_INDC_EXT | GBP_EXT}, + {0x00FEFF, 0x00FEFF, GBP_CTRL}, + {0x00FF9E, 0x00FF9F, GBP_EXT}, + {0x00FFF0, 0x00FFFB, GBP_CTRL}, + {0x0101FD, 0x0101FD, GBP_INDC_EXT | GBP_EXT}, + {0x0102E0, 0x0102E0, GBP_INDC_EXT | GBP_EXT}, + {0x010376, 0x01037A, GBP_INDC_EXT | GBP_EXT}, + {0x010A01, 0x010A03, GBP_EXT}, + {0x010A05, 0x010A06, GBP_EXT}, + {0x010A0C, 0x010A0C, GBP_EXT}, + {0x010A0D, 0x010A0D, GBP_INDC_EXT | GBP_EXT}, + {0x010A0E, 0x010A0E, GBP_EXT}, + {0x010A0F, 0x010A0F, GBP_INDC_EXT | GBP_EXT}, + {0x010A38, 0x010A3A, GBP_INDC_EXT | GBP_EXT}, + {0x010A3F, 0x010A3F, GBP_INDC_EXT | GBP_EXT}, + {0x010AE5, 0x010AE6, GBP_INDC_EXT | GBP_EXT}, + {0x010D24, 0x010D27, GBP_INDC_EXT | GBP_EXT}, + {0x010EAB, 0x010EAC, GBP_INDC_EXT | GBP_EXT}, + {0x010EFD, 0x010EFF, GBP_INDC_EXT | GBP_EXT}, + {0x010F46, 0x010F50, GBP_INDC_EXT | GBP_EXT}, + {0x010F82, 0x010F85, GBP_INDC_EXT | GBP_EXT}, + {0x011000, 0x011000, GBP_SM}, + {0x011001, 0x011001, GBP_EXT}, + {0x011002, 0x011002, GBP_SM}, + {0x011038, 0x011046, GBP_EXT}, + {0x011070, 0x011070, GBP_INDC_EXT | GBP_EXT}, + {0x011073, 0x011074, GBP_EXT}, + {0x01107F, 0x01107F, GBP_INDC_EXT | GBP_EXT}, + {0x011080, 0x011081, GBP_EXT}, + {0x011082, 0x011082, GBP_SM}, + {0x0110B0, 0x0110B2, GBP_SM}, + {0x0110B3, 0x0110B6, GBP_EXT}, + {0x0110B7, 0x0110B8, GBP_SM}, + {0x0110B9, 0x0110B9, GBP_EXT}, + {0x0110BA, 0x0110BA, GBP_INDC_EXT | GBP_EXT}, + {0x0110BD, 0x0110BD, GBP_PREP}, + {0x0110C2, 0x0110C2, GBP_EXT}, + {0x0110CD, 0x0110CD, GBP_PREP}, + {0x011100, 0x011102, GBP_INDC_EXT | GBP_EXT}, + {0x011127, 0x01112B, GBP_EXT}, + {0x01112C, 0x01112C, GBP_SM}, + {0x01112D, 0x011132, GBP_EXT}, + {0x011133, 0x011134, GBP_INDC_EXT | GBP_EXT}, + {0x011145, 0x011146, GBP_SM}, + {0x011173, 0x011173, GBP_INDC_EXT | GBP_EXT}, + {0x011180, 0x011181, GBP_EXT}, + {0x011182, 0x011182, GBP_SM}, + {0x0111B3, 0x0111B5, GBP_SM}, + {0x0111B6, 0x0111BE, GBP_EXT}, + {0x0111BF, 0x0111C0, GBP_SM}, + {0x0111C2, 0x0111C3, GBP_PREP}, + {0x0111C9, 0x0111C9, GBP_EXT}, + {0x0111CA, 0x0111CA, GBP_INDC_EXT | GBP_EXT}, + {0x0111CB, 0x0111CC, GBP_EXT}, + {0x0111CE, 0x0111CE, GBP_SM}, + {0x0111CF, 0x0111CF, GBP_EXT}, + {0x01122C, 0x01122E, GBP_SM}, + {0x01122F, 0x011231, GBP_EXT}, + {0x011232, 0x011233, GBP_SM}, + {0x011234, 0x011234, GBP_EXT}, + {0x011235, 0x011235, GBP_SM}, + {0x011236, 0x011236, GBP_INDC_EXT | GBP_EXT}, + {0x011237, 0x011237, GBP_EXT}, + {0x01123E, 0x01123E, GBP_EXT}, + {0x011241, 0x011241, GBP_EXT}, + {0x0112DF, 0x0112DF, GBP_EXT}, + {0x0112E0, 0x0112E2, GBP_SM}, + {0x0112E3, 0x0112E8, GBP_EXT}, + {0x0112E9, 0x0112EA, GBP_INDC_EXT | GBP_EXT}, + {0x011300, 0x011301, GBP_EXT}, + {0x011302, 0x011303, GBP_SM}, + {0x01133B, 0x01133C, GBP_INDC_EXT | GBP_EXT}, + {0x01133E, 0x01133E, GBP_EXT}, + {0x01133F, 0x01133F, GBP_SM}, + {0x011340, 0x011340, GBP_EXT}, + {0x011341, 0x011344, GBP_SM}, + {0x011347, 0x011348, GBP_SM}, + {0x01134B, 0x01134D, GBP_SM}, + {0x011357, 0x011357, GBP_EXT}, + {0x011362, 0x011363, GBP_SM}, + {0x011366, 0x01136C, GBP_INDC_EXT | GBP_EXT}, + {0x011370, 0x011374, GBP_INDC_EXT | GBP_EXT}, + {0x011435, 0x011437, GBP_SM}, + {0x011438, 0x01143F, GBP_EXT}, + {0x011440, 0x011441, GBP_SM}, + {0x011442, 0x011444, GBP_EXT}, + {0x011445, 0x011445, GBP_SM}, + {0x011446, 0x011446, GBP_INDC_EXT | GBP_EXT}, + {0x01145E, 0x01145E, GBP_INDC_EXT | GBP_EXT}, + {0x0114B0, 0x0114B0, GBP_EXT}, + {0x0114B1, 0x0114B2, GBP_SM}, + {0x0114B3, 0x0114B8, GBP_EXT}, + {0x0114B9, 0x0114B9, GBP_SM}, + {0x0114BA, 0x0114BA, GBP_EXT}, + {0x0114BB, 0x0114BC, GBP_SM}, + {0x0114BD, 0x0114BD, GBP_EXT}, + {0x0114BE, 0x0114BE, GBP_SM}, + {0x0114BF, 0x0114C0, GBP_EXT}, + {0x0114C1, 0x0114C1, GBP_SM}, + {0x0114C2, 0x0114C2, GBP_EXT}, + {0x0114C3, 0x0114C3, GBP_INDC_EXT | GBP_EXT}, + {0x0115AF, 0x0115AF, GBP_EXT}, + {0x0115B0, 0x0115B1, GBP_SM}, + {0x0115B2, 0x0115B5, GBP_EXT}, + {0x0115B8, 0x0115BB, GBP_SM}, + {0x0115BC, 0x0115BD, GBP_EXT}, + {0x0115BE, 0x0115BE, GBP_SM}, + {0x0115BF, 0x0115BF, GBP_EXT}, + {0x0115C0, 0x0115C0, GBP_INDC_EXT | GBP_EXT}, + {0x0115DC, 0x0115DD, GBP_EXT}, + {0x011630, 0x011632, GBP_SM}, + {0x011633, 0x01163A, GBP_EXT}, + {0x01163B, 0x01163C, GBP_SM}, + {0x01163D, 0x01163D, GBP_EXT}, + {0x01163E, 0x01163E, GBP_SM}, + {0x01163F, 0x011640, GBP_EXT}, + {0x0116AB, 0x0116AB, GBP_EXT}, + {0x0116AC, 0x0116AC, GBP_SM}, + {0x0116AD, 0x0116AD, GBP_EXT}, + {0x0116AE, 0x0116AF, GBP_SM}, + {0x0116B0, 0x0116B5, GBP_EXT}, + {0x0116B6, 0x0116B6, GBP_SM}, + {0x0116B7, 0x0116B7, GBP_INDC_EXT | GBP_EXT}, + {0x01171D, 0x01171F, GBP_EXT}, + {0x011722, 0x011725, GBP_EXT}, + {0x011726, 0x011726, GBP_SM}, + {0x011727, 0x01172A, GBP_EXT}, + {0x01172B, 0x01172B, GBP_INDC_EXT | GBP_EXT}, + {0x01182C, 0x01182E, GBP_SM}, + {0x01182F, 0x011837, GBP_EXT}, + {0x011838, 0x011838, GBP_SM}, + {0x011839, 0x011839, GBP_EXT}, + {0x01183A, 0x01183A, GBP_INDC_EXT | GBP_EXT}, + {0x011930, 0x011930, GBP_EXT}, + {0x011931, 0x011935, GBP_SM}, + {0x011937, 0x011938, GBP_SM}, + {0x01193B, 0x01193C, GBP_EXT}, + {0x01193D, 0x01193D, GBP_SM}, + {0x01193E, 0x01193E, GBP_INDC_EXT | GBP_EXT}, + {0x01193F, 0x01193F, GBP_PREP}, + {0x011940, 0x011940, GBP_SM}, + {0x011941, 0x011941, GBP_PREP}, + {0x011942, 0x011942, GBP_SM}, + {0x011943, 0x011943, GBP_INDC_EXT | GBP_EXT}, + {0x0119D1, 0x0119D3, GBP_SM}, + {0x0119D4, 0x0119D7, GBP_EXT}, + {0x0119DA, 0x0119DB, GBP_EXT}, + {0x0119DC, 0x0119DF, GBP_SM}, + {0x0119E0, 0x0119E0, GBP_EXT}, + {0x0119E4, 0x0119E4, GBP_SM}, + {0x011A01, 0x011A0A, GBP_EXT}, + {0x011A33, 0x011A33, GBP_EXT}, + {0x011A34, 0x011A34, GBP_INDC_EXT | GBP_EXT}, + {0x011A35, 0x011A38, GBP_EXT}, + {0x011A39, 0x011A39, GBP_SM}, + {0x011A3A, 0x011A3A, GBP_PREP}, + {0x011A3B, 0x011A3E, GBP_EXT}, + {0x011A47, 0x011A47, GBP_INDC_EXT | GBP_EXT}, + {0x011A51, 0x011A56, GBP_EXT}, + {0x011A57, 0x011A58, GBP_SM}, + {0x011A59, 0x011A5B, GBP_EXT}, + {0x011A84, 0x011A89, GBP_PREP}, + {0x011A8A, 0x011A96, GBP_EXT}, + {0x011A97, 0x011A97, GBP_SM}, + {0x011A98, 0x011A98, GBP_EXT}, + {0x011A99, 0x011A99, GBP_INDC_EXT | GBP_EXT}, + {0x011C2F, 0x011C2F, GBP_SM}, + {0x011C30, 0x011C36, GBP_EXT}, + {0x011C38, 0x011C3D, GBP_EXT}, + {0x011C3E, 0x011C3E, GBP_SM}, + {0x011C3F, 0x011C3F, GBP_EXT}, + {0x011C92, 0x011CA7, GBP_EXT}, + {0x011CA9, 0x011CA9, GBP_SM}, + {0x011CAA, 0x011CB0, GBP_EXT}, + {0x011CB1, 0x011CB1, GBP_SM}, + {0x011CB2, 0x011CB3, GBP_EXT}, + {0x011CB4, 0x011CB4, GBP_SM}, + {0x011CB5, 0x011CB6, GBP_EXT}, + {0x011D31, 0x011D36, GBP_EXT}, + {0x011D3A, 0x011D3A, GBP_EXT}, + {0x011D3C, 0x011D3D, GBP_EXT}, + {0x011D3F, 0x011D41, GBP_EXT}, + {0x011D42, 0x011D42, GBP_INDC_EXT | GBP_EXT}, + {0x011D43, 0x011D43, GBP_EXT}, + {0x011D44, 0x011D45, GBP_INDC_EXT | GBP_EXT}, + {0x011D46, 0x011D46, GBP_PREP}, + {0x011D47, 0x011D47, GBP_EXT}, + {0x011D8A, 0x011D8E, GBP_SM}, + {0x011D90, 0x011D91, GBP_EXT}, + {0x011D93, 0x011D94, GBP_SM}, + {0x011D95, 0x011D95, GBP_EXT}, + {0x011D96, 0x011D96, GBP_SM}, + {0x011D97, 0x011D97, GBP_INDC_EXT | GBP_EXT}, + {0x011EF3, 0x011EF4, GBP_EXT}, + {0x011EF5, 0x011EF6, GBP_SM}, + {0x011F00, 0x011F01, GBP_EXT}, + {0x011F02, 0x011F02, GBP_PREP}, + {0x011F03, 0x011F03, GBP_SM}, + {0x011F34, 0x011F35, GBP_SM}, + {0x011F36, 0x011F3A, GBP_EXT}, + {0x011F3E, 0x011F3F, GBP_SM}, + {0x011F40, 0x011F40, GBP_EXT}, + {0x011F41, 0x011F41, GBP_SM}, + {0x011F42, 0x011F42, GBP_INDC_EXT | GBP_EXT}, + {0x013430, 0x01343F, GBP_CTRL}, + {0x013440, 0x013440, GBP_EXT}, + {0x013447, 0x013455, GBP_EXT}, + {0x016AF0, 0x016AF4, GBP_INDC_EXT | GBP_EXT}, + {0x016B30, 0x016B36, GBP_INDC_EXT | GBP_EXT}, + {0x016F4F, 0x016F4F, GBP_EXT}, + {0x016F51, 0x016F87, GBP_SM}, + {0x016F8F, 0x016F92, GBP_EXT}, + {0x016FE4, 0x016FE4, GBP_EXT}, + {0x016FF0, 0x016FF1, GBP_SM}, + {0x01BC9D, 0x01BC9D, GBP_EXT}, + {0x01BC9E, 0x01BC9E, GBP_INDC_EXT | GBP_EXT}, + {0x01BCA0, 0x01BCA3, GBP_CTRL}, + {0x01CF00, 0x01CF2D, GBP_EXT}, + {0x01CF30, 0x01CF46, GBP_EXT}, + {0x01D165, 0x01D165, GBP_INDC_EXT | GBP_EXT}, + {0x01D166, 0x01D166, GBP_SM}, + {0x01D167, 0x01D169, GBP_INDC_EXT | GBP_EXT}, + {0x01D16D, 0x01D16D, GBP_SM}, + {0x01D16E, 0x01D172, GBP_INDC_EXT | GBP_EXT}, + {0x01D173, 0x01D17A, GBP_CTRL}, + {0x01D17B, 0x01D182, GBP_INDC_EXT | GBP_EXT}, + {0x01D185, 0x01D18B, GBP_INDC_EXT | GBP_EXT}, + {0x01D1AA, 0x01D1AD, GBP_INDC_EXT | GBP_EXT}, + {0x01D242, 0x01D244, GBP_INDC_EXT | GBP_EXT}, + {0x01DA00, 0x01DA36, GBP_EXT}, + {0x01DA3B, 0x01DA6C, GBP_EXT}, + {0x01DA75, 0x01DA75, GBP_EXT}, + {0x01DA84, 0x01DA84, GBP_EXT}, + {0x01DA9B, 0x01DA9F, GBP_EXT}, + {0x01DAA1, 0x01DAAF, GBP_EXT}, + {0x01E000, 0x01E006, GBP_INDC_EXT | GBP_EXT}, + {0x01E008, 0x01E018, GBP_INDC_EXT | GBP_EXT}, + {0x01E01B, 0x01E021, GBP_INDC_EXT | GBP_EXT}, + {0x01E023, 0x01E024, GBP_INDC_EXT | GBP_EXT}, + {0x01E026, 0x01E02A, GBP_INDC_EXT | GBP_EXT}, + {0x01E08F, 0x01E08F, GBP_INDC_EXT | GBP_EXT}, + {0x01E130, 0x01E136, GBP_INDC_EXT | GBP_EXT}, + {0x01E2AE, 0x01E2AE, GBP_INDC_EXT | GBP_EXT}, + {0x01E2EC, 0x01E2EF, GBP_INDC_EXT | GBP_EXT}, + {0x01E4EC, 0x01E4EF, GBP_INDC_EXT | GBP_EXT}, + {0x01E8D0, 0x01E8D6, GBP_INDC_EXT | GBP_EXT}, + {0x01E944, 0x01E94A, GBP_INDC_EXT | GBP_EXT}, + {0x01F000, 0x01F0FF, GBP_PIC}, + {0x01F10D, 0x01F10F, GBP_PIC}, + {0x01F12F, 0x01F12F, GBP_PIC}, + {0x01F16C, 0x01F171, GBP_PIC}, + {0x01F17E, 0x01F17F, GBP_PIC}, + {0x01F18E, 0x01F18E, GBP_PIC}, + {0x01F191, 0x01F19A, GBP_PIC}, + {0x01F1AD, 0x01F1E5, GBP_PIC}, + {0x01F1E6, 0x01F1FF, GBP_RI}, + {0x01F201, 0x01F20F, GBP_PIC}, + {0x01F21A, 0x01F21A, GBP_PIC}, + {0x01F22F, 0x01F22F, GBP_PIC}, + {0x01F232, 0x01F23A, GBP_PIC}, + {0x01F23C, 0x01F23F, GBP_PIC}, + {0x01F249, 0x01F3FA, GBP_PIC}, + {0x01F3FB, 0x01F3FF, GBP_EXT}, + {0x01F400, 0x01F53D, GBP_PIC}, + {0x01F546, 0x01F64F, GBP_PIC}, + {0x01F680, 0x01F6FF, GBP_PIC}, + {0x01F774, 0x01F77F, GBP_PIC}, + {0x01F7D5, 0x01F7FF, GBP_PIC}, + {0x01F80C, 0x01F80F, GBP_PIC}, + {0x01F848, 0x01F84F, GBP_PIC}, + {0x01F85A, 0x01F85F, GBP_PIC}, + {0x01F888, 0x01F88F, GBP_PIC}, + {0x01F8AE, 0x01F8FF, GBP_PIC}, + {0x01F90C, 0x01F93A, GBP_PIC}, + {0x01F93C, 0x01F945, GBP_PIC}, + {0x01F947, 0x01FAFF, GBP_PIC}, + {0x01FC00, 0x01FFFD, GBP_PIC}, + {0x0E0000, 0x0E001F, GBP_CTRL}, + {0x0E0020, 0x0E007F, GBP_EXT}, + {0x0E0080, 0x0E00FF, GBP_CTRL}, + {0x0E0100, 0x0E01EF, GBP_EXT}, + {0x0E01F0, 0x0E0FFF, GBP_CTRL}, }; #endif /* !RUNE_INTERNAL_GBRK_LOOKUP_H */ diff --git a/vendor/librune/include/internal/qmacros.h b/vendor/librune/include/internal/qmacros.h new file mode 100644 index 0000000..5369c48 --- /dev/null +++ b/vendor/librune/include/internal/qmacros.h @@ -0,0 +1,25 @@ +#ifndef RUNE_INTERNAL_QMACROS_H +#define RUNE_INTERNAL_QMACROS_H + +/* Macros for qualifier-preserving functions. These are wrappers around some + functions declared above which will return a const-qualified pointer if the + input string is const-qualified, and a non-const-qualified pointer otherwise. + + The macros are taken from the N3020 proposal for C23. */ + +/* clang-format off */ +#define _RUNE_PTR_IS_CONST(P) \ + _Generic(1 ? (P) : (void *)(P), \ + const void *: 1, \ + default: 0) +#define _RUNE_STATIC_IF(P, T, E) \ + _Generic(&(char[!!(P) + 1]){0}, \ + char(*)[2]: T, \ + char(*)[1]: E) +#define _RUNE_Q_PTR(F, S, ...) \ + _RUNE_STATIC_IF(_RUNE_PTR_IS_CONST((S)), \ + (const char8_t *)(F)(__VA_ARGS__), \ + ( char8_t *)(F)(__VA_ARGS__)) +/* clang-format on */ + +#endif /* !RUNE_INTERNAL_QMACROS_H */ diff --git a/vendor/librune/include/internal/rtype_lookup.h b/vendor/librune/include/internal/rtype_lookup.h new file mode 100644 index 0000000..b4b41fd --- /dev/null +++ b/vendor/librune/include/internal/rtype_lookup.h @@ -0,0 +1,3357 @@ +/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ + +/* TODO: Change tables to constexpr from const when Clangd gets better */ + +#ifndef RUNE_INTERNAL_RTYPE_LOOKUP_H +#define RUNE_INTERNAL_RTYPE_LOOKUP_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "types.h" +#include "../rtype.h" + +static const unicat rtype_lat1_tbl[] = { + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_ZS, UC_PO, UC_PO, UC_PO, UC_SC, UC_PO, UC_PO, UC_PO, + UC_PS, UC_PE, UC_PO, UC_SM, UC_PO, UC_PD, UC_PO, UC_PO, + UC_ND, UC_ND, UC_ND, UC_ND, UC_ND, UC_ND, UC_ND, UC_ND, + UC_ND, UC_ND, UC_PO, UC_PO, UC_SM, UC_SM, UC_SM, UC_PO, + UC_PO, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, + UC_LU, UC_LU, UC_LU, UC_PS, UC_PO, UC_PE, UC_SK, UC_PC, + UC_SK, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, + UC_LL, UC_LL, UC_LL, UC_PS, UC_SM, UC_PE, UC_SM, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, UC_CC, + UC_ZS, UC_PO, UC_SC, UC_SC, UC_SC, UC_SC, UC_SO, UC_PO, + UC_SK, UC_SO, UC_LO, UC_PI, UC_SM, UC_CF, UC_SO, UC_SK, + UC_SO, UC_SM, UC_NO, UC_NO, UC_SK, UC_LL, UC_PO, UC_PO, + UC_SK, UC_NO, UC_LO, UC_PF, UC_NO, UC_NO, UC_NO, UC_PO, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_SM, + UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LU, UC_LL, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_SM, + UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, UC_LL, +}; + +static const struct { + rune lo, hi; + unicat cat; +} rtype_cat_tbl[] = { + {0x000000, 0x00001F, UC_CC}, + {0x000020, 0x000020, UC_ZS}, + {0x000021, 0x000023, UC_PO}, + {0x000024, 0x000024, UC_SC}, + {0x000025, 0x000027, UC_PO}, + {0x000028, 0x000028, UC_PS}, + {0x000029, 0x000029, UC_PE}, + {0x00002A, 0x00002A, UC_PO}, + {0x00002B, 0x00002B, UC_SM}, + {0x00002C, 0x00002C, UC_PO}, + {0x00002D, 0x00002D, UC_PD}, + {0x00002E, 0x00002F, UC_PO}, + {0x000030, 0x000039, UC_ND}, + {0x00003A, 0x00003B, UC_PO}, + {0x00003C, 0x00003E, UC_SM}, + {0x00003F, 0x000040, UC_PO}, + {0x000041, 0x00005A, UC_LU}, + {0x00005B, 0x00005B, UC_PS}, + {0x00005C, 0x00005C, UC_PO}, + {0x00005D, 0x00005D, UC_PE}, + {0x00005E, 0x00005E, UC_SK}, + {0x00005F, 0x00005F, UC_PC}, + {0x000060, 0x000060, UC_SK}, + {0x000061, 0x00007A, UC_LL}, + {0x00007B, 0x00007B, UC_PS}, + {0x00007C, 0x00007C, UC_SM}, + {0x00007D, 0x00007D, UC_PE}, + {0x00007E, 0x00007E, UC_SM}, + {0x00007F, 0x00009F, UC_CC}, + {0x0000A0, 0x0000A0, UC_ZS}, + {0x0000A1, 0x0000A1, UC_PO}, + {0x0000A2, 0x0000A5, UC_SC}, + {0x0000A6, 0x0000A6, UC_SO}, + {0x0000A7, 0x0000A7, UC_PO}, + {0x0000A8, 0x0000A8, UC_SK}, + {0x0000A9, 0x0000A9, UC_SO}, + {0x0000AA, 0x0000AA, UC_LO}, + {0x0000AB, 0x0000AB, UC_PI}, + {0x0000AC, 0x0000AC, UC_SM}, + {0x0000AD, 0x0000AD, UC_CF}, + {0x0000AE, 0x0000AE, UC_SO}, + {0x0000AF, 0x0000AF, UC_SK}, + {0x0000B0, 0x0000B0, UC_SO}, + {0x0000B1, 0x0000B1, UC_SM}, + {0x0000B2, 0x0000B3, UC_NO}, + {0x0000B4, 0x0000B4, UC_SK}, + {0x0000B5, 0x0000B5, UC_LL}, + {0x0000B6, 0x0000B7, UC_PO}, + {0x0000B8, 0x0000B8, UC_SK}, + {0x0000B9, 0x0000B9, UC_NO}, + {0x0000BA, 0x0000BA, UC_LO}, + {0x0000BB, 0x0000BB, UC_PF}, + {0x0000BC, 0x0000BE, UC_NO}, + {0x0000BF, 0x0000BF, UC_PO}, + {0x0000C0, 0x0000D6, UC_LU}, + {0x0000D7, 0x0000D7, UC_SM}, + {0x0000D8, 0x0000DE, UC_LU}, + {0x0000DF, 0x0000F6, UC_LL}, + {0x0000F7, 0x0000F7, UC_SM}, + {0x0000F8, 0x0000FF, UC_LL}, + {0x000100, 0x000100, UC_LU}, + {0x000101, 0x000101, UC_LL}, + {0x000102, 0x000102, UC_LU}, + {0x000103, 0x000103, UC_LL}, + {0x000104, 0x000104, UC_LU}, + {0x000105, 0x000105, UC_LL}, + {0x000106, 0x000106, UC_LU}, + {0x000107, 0x000107, UC_LL}, + {0x000108, 0x000108, UC_LU}, + {0x000109, 0x000109, UC_LL}, + {0x00010A, 0x00010A, UC_LU}, + {0x00010B, 0x00010B, UC_LL}, + {0x00010C, 0x00010C, UC_LU}, + {0x00010D, 0x00010D, UC_LL}, + {0x00010E, 0x00010E, UC_LU}, + {0x00010F, 0x00010F, UC_LL}, + {0x000110, 0x000110, UC_LU}, + {0x000111, 0x000111, UC_LL}, + {0x000112, 0x000112, UC_LU}, + {0x000113, 0x000113, UC_LL}, + {0x000114, 0x000114, UC_LU}, + {0x000115, 0x000115, UC_LL}, + {0x000116, 0x000116, UC_LU}, + {0x000117, 0x000117, UC_LL}, + {0x000118, 0x000118, UC_LU}, + {0x000119, 0x000119, UC_LL}, + {0x00011A, 0x00011A, UC_LU}, + {0x00011B, 0x00011B, UC_LL}, + {0x00011C, 0x00011C, UC_LU}, + {0x00011D, 0x00011D, UC_LL}, + {0x00011E, 0x00011E, UC_LU}, + {0x00011F, 0x00011F, UC_LL}, + {0x000120, 0x000120, UC_LU}, + {0x000121, 0x000121, UC_LL}, + {0x000122, 0x000122, UC_LU}, + {0x000123, 0x000123, UC_LL}, + {0x000124, 0x000124, UC_LU}, + {0x000125, 0x000125, UC_LL}, + {0x000126, 0x000126, UC_LU}, + {0x000127, 0x000127, UC_LL}, + {0x000128, 0x000128, UC_LU}, + {0x000129, 0x000129, UC_LL}, + {0x00012A, 0x00012A, UC_LU}, + {0x00012B, 0x00012B, UC_LL}, + {0x00012C, 0x00012C, UC_LU}, + {0x00012D, 0x00012D, UC_LL}, + {0x00012E, 0x00012E, UC_LU}, + {0x00012F, 0x00012F, UC_LL}, + {0x000130, 0x000130, UC_LU}, + {0x000131, 0x000131, UC_LL}, + {0x000132, 0x000132, UC_LU}, + {0x000133, 0x000133, UC_LL}, + {0x000134, 0x000134, UC_LU}, + {0x000135, 0x000135, UC_LL}, + {0x000136, 0x000136, UC_LU}, + {0x000137, 0x000138, UC_LL}, + {0x000139, 0x000139, UC_LU}, + {0x00013A, 0x00013A, UC_LL}, + {0x00013B, 0x00013B, UC_LU}, + {0x00013C, 0x00013C, UC_LL}, + {0x00013D, 0x00013D, UC_LU}, + {0x00013E, 0x00013E, UC_LL}, + {0x00013F, 0x00013F, UC_LU}, + {0x000140, 0x000140, UC_LL}, + {0x000141, 0x000141, UC_LU}, + {0x000142, 0x000142, UC_LL}, + {0x000143, 0x000143, UC_LU}, + {0x000144, 0x000144, UC_LL}, + {0x000145, 0x000145, UC_LU}, + {0x000146, 0x000146, UC_LL}, + {0x000147, 0x000147, UC_LU}, + {0x000148, 0x000149, UC_LL}, + {0x00014A, 0x00014A, UC_LU}, + {0x00014B, 0x00014B, UC_LL}, + {0x00014C, 0x00014C, UC_LU}, + {0x00014D, 0x00014D, UC_LL}, + {0x00014E, 0x00014E, UC_LU}, + {0x00014F, 0x00014F, UC_LL}, + {0x000150, 0x000150, UC_LU}, + {0x000151, 0x000151, UC_LL}, + {0x000152, 0x000152, UC_LU}, + {0x000153, 0x000153, UC_LL}, + {0x000154, 0x000154, UC_LU}, + {0x000155, 0x000155, UC_LL}, + {0x000156, 0x000156, UC_LU}, + {0x000157, 0x000157, UC_LL}, + {0x000158, 0x000158, UC_LU}, + {0x000159, 0x000159, UC_LL}, + {0x00015A, 0x00015A, UC_LU}, + {0x00015B, 0x00015B, UC_LL}, + {0x00015C, 0x00015C, UC_LU}, + {0x00015D, 0x00015D, UC_LL}, + {0x00015E, 0x00015E, UC_LU}, + {0x00015F, 0x00015F, UC_LL}, + {0x000160, 0x000160, UC_LU}, + {0x000161, 0x000161, UC_LL}, + {0x000162, 0x000162, UC_LU}, + {0x000163, 0x000163, UC_LL}, + {0x000164, 0x000164, UC_LU}, + {0x000165, 0x000165, UC_LL}, + {0x000166, 0x000166, UC_LU}, + {0x000167, 0x000167, UC_LL}, + {0x000168, 0x000168, UC_LU}, + {0x000169, 0x000169, UC_LL}, + {0x00016A, 0x00016A, UC_LU}, + {0x00016B, 0x00016B, UC_LL}, + {0x00016C, 0x00016C, UC_LU}, + {0x00016D, 0x00016D, UC_LL}, + {0x00016E, 0x00016E, UC_LU}, + {0x00016F, 0x00016F, UC_LL}, + {0x000170, 0x000170, UC_LU}, + {0x000171, 0x000171, UC_LL}, + {0x000172, 0x000172, UC_LU}, + {0x000173, 0x000173, UC_LL}, + {0x000174, 0x000174, UC_LU}, + {0x000175, 0x000175, UC_LL}, + {0x000176, 0x000176, UC_LU}, + {0x000177, 0x000177, UC_LL}, + {0x000178, 0x000179, UC_LU}, + {0x00017A, 0x00017A, UC_LL}, + {0x00017B, 0x00017B, UC_LU}, + {0x00017C, 0x00017C, UC_LL}, + {0x00017D, 0x00017D, UC_LU}, + {0x00017E, 0x000180, UC_LL}, + {0x000181, 0x000182, UC_LU}, + {0x000183, 0x000183, UC_LL}, + {0x000184, 0x000184, UC_LU}, + {0x000185, 0x000185, UC_LL}, + {0x000186, 0x000187, UC_LU}, + {0x000188, 0x000188, UC_LL}, + {0x000189, 0x00018B, UC_LU}, + {0x00018C, 0x00018D, UC_LL}, + {0x00018E, 0x000191, UC_LU}, + {0x000192, 0x000192, UC_LL}, + {0x000193, 0x000194, UC_LU}, + {0x000195, 0x000195, UC_LL}, + {0x000196, 0x000198, UC_LU}, + {0x000199, 0x00019B, UC_LL}, + {0x00019C, 0x00019D, UC_LU}, + {0x00019E, 0x00019E, UC_LL}, + {0x00019F, 0x0001A0, UC_LU}, + {0x0001A1, 0x0001A1, UC_LL}, + {0x0001A2, 0x0001A2, UC_LU}, + {0x0001A3, 0x0001A3, UC_LL}, + {0x0001A4, 0x0001A4, UC_LU}, + {0x0001A5, 0x0001A5, UC_LL}, + {0x0001A6, 0x0001A7, UC_LU}, + {0x0001A8, 0x0001A8, UC_LL}, + {0x0001A9, 0x0001A9, UC_LU}, + {0x0001AA, 0x0001AB, UC_LL}, + {0x0001AC, 0x0001AC, UC_LU}, + {0x0001AD, 0x0001AD, UC_LL}, + {0x0001AE, 0x0001AF, UC_LU}, + {0x0001B0, 0x0001B0, UC_LL}, + {0x0001B1, 0x0001B3, UC_LU}, + {0x0001B4, 0x0001B4, UC_LL}, + {0x0001B5, 0x0001B5, UC_LU}, + {0x0001B6, 0x0001B6, UC_LL}, + {0x0001B7, 0x0001B8, UC_LU}, + {0x0001B9, 0x0001BA, UC_LL}, + {0x0001BB, 0x0001BB, UC_LO}, + {0x0001BC, 0x0001BC, UC_LU}, + {0x0001BD, 0x0001BF, UC_LL}, + {0x0001C0, 0x0001C3, UC_LO}, + {0x0001C4, 0x0001C4, UC_LU}, + {0x0001C5, 0x0001C5, UC_LT}, + {0x0001C6, 0x0001C6, UC_LL}, + {0x0001C7, 0x0001C7, UC_LU}, + {0x0001C8, 0x0001C8, UC_LT}, + {0x0001C9, 0x0001C9, UC_LL}, + {0x0001CA, 0x0001CA, UC_LU}, + {0x0001CB, 0x0001CB, UC_LT}, + {0x0001CC, 0x0001CC, UC_LL}, + {0x0001CD, 0x0001CD, UC_LU}, + {0x0001CE, 0x0001CE, UC_LL}, + {0x0001CF, 0x0001CF, UC_LU}, + {0x0001D0, 0x0001D0, UC_LL}, + {0x0001D1, 0x0001D1, UC_LU}, + {0x0001D2, 0x0001D2, UC_LL}, + {0x0001D3, 0x0001D3, UC_LU}, + {0x0001D4, 0x0001D4, UC_LL}, + {0x0001D5, 0x0001D5, UC_LU}, + {0x0001D6, 0x0001D6, UC_LL}, + {0x0001D7, 0x0001D7, UC_LU}, + {0x0001D8, 0x0001D8, UC_LL}, + {0x0001D9, 0x0001D9, UC_LU}, + {0x0001DA, 0x0001DA, UC_LL}, + {0x0001DB, 0x0001DB, UC_LU}, + {0x0001DC, 0x0001DD, UC_LL}, + {0x0001DE, 0x0001DE, UC_LU}, + {0x0001DF, 0x0001DF, UC_LL}, + {0x0001E0, 0x0001E0, UC_LU}, + {0x0001E1, 0x0001E1, UC_LL}, + {0x0001E2, 0x0001E2, UC_LU}, + {0x0001E3, 0x0001E3, UC_LL}, + {0x0001E4, 0x0001E4, UC_LU}, + {0x0001E5, 0x0001E5, UC_LL}, + {0x0001E6, 0x0001E6, UC_LU}, + {0x0001E7, 0x0001E7, UC_LL}, + {0x0001E8, 0x0001E8, UC_LU}, + {0x0001E9, 0x0001E9, UC_LL}, + {0x0001EA, 0x0001EA, UC_LU}, + {0x0001EB, 0x0001EB, UC_LL}, + {0x0001EC, 0x0001EC, UC_LU}, + {0x0001ED, 0x0001ED, UC_LL}, + {0x0001EE, 0x0001EE, UC_LU}, + {0x0001EF, 0x0001F0, UC_LL}, + {0x0001F1, 0x0001F1, UC_LU}, + {0x0001F2, 0x0001F2, UC_LT}, + {0x0001F3, 0x0001F3, UC_LL}, + {0x0001F4, 0x0001F4, UC_LU}, + {0x0001F5, 0x0001F5, UC_LL}, + {0x0001F6, 0x0001F8, UC_LU}, + {0x0001F9, 0x0001F9, UC_LL}, + {0x0001FA, 0x0001FA, UC_LU}, + {0x0001FB, 0x0001FB, UC_LL}, + {0x0001FC, 0x0001FC, UC_LU}, + {0x0001FD, 0x0001FD, UC_LL}, + {0x0001FE, 0x0001FE, UC_LU}, + {0x0001FF, 0x0001FF, UC_LL}, + {0x000200, 0x000200, UC_LU}, + {0x000201, 0x000201, UC_LL}, + {0x000202, 0x000202, UC_LU}, + {0x000203, 0x000203, UC_LL}, + {0x000204, 0x000204, UC_LU}, + {0x000205, 0x000205, UC_LL}, + {0x000206, 0x000206, UC_LU}, + {0x000207, 0x000207, UC_LL}, + {0x000208, 0x000208, UC_LU}, + {0x000209, 0x000209, UC_LL}, + {0x00020A, 0x00020A, UC_LU}, + {0x00020B, 0x00020B, UC_LL}, + {0x00020C, 0x00020C, UC_LU}, + {0x00020D, 0x00020D, UC_LL}, + {0x00020E, 0x00020E, UC_LU}, + {0x00020F, 0x00020F, UC_LL}, + {0x000210, 0x000210, UC_LU}, + {0x000211, 0x000211, UC_LL}, + {0x000212, 0x000212, UC_LU}, + {0x000213, 0x000213, UC_LL}, + {0x000214, 0x000214, UC_LU}, + {0x000215, 0x000215, UC_LL}, + {0x000216, 0x000216, UC_LU}, + {0x000217, 0x000217, UC_LL}, + {0x000218, 0x000218, UC_LU}, + {0x000219, 0x000219, UC_LL}, + {0x00021A, 0x00021A, UC_LU}, + {0x00021B, 0x00021B, UC_LL}, + {0x00021C, 0x00021C, UC_LU}, + {0x00021D, 0x00021D, UC_LL}, + {0x00021E, 0x00021E, UC_LU}, + {0x00021F, 0x00021F, UC_LL}, + {0x000220, 0x000220, UC_LU}, + {0x000221, 0x000221, UC_LL}, + {0x000222, 0x000222, UC_LU}, + {0x000223, 0x000223, UC_LL}, + {0x000224, 0x000224, UC_LU}, + {0x000225, 0x000225, UC_LL}, + {0x000226, 0x000226, UC_LU}, + {0x000227, 0x000227, UC_LL}, + {0x000228, 0x000228, UC_LU}, + {0x000229, 0x000229, UC_LL}, + {0x00022A, 0x00022A, UC_LU}, + {0x00022B, 0x00022B, UC_LL}, + {0x00022C, 0x00022C, UC_LU}, + {0x00022D, 0x00022D, UC_LL}, + {0x00022E, 0x00022E, UC_LU}, + {0x00022F, 0x00022F, UC_LL}, + {0x000230, 0x000230, UC_LU}, + {0x000231, 0x000231, UC_LL}, + {0x000232, 0x000232, UC_LU}, + {0x000233, 0x000239, UC_LL}, + {0x00023A, 0x00023B, UC_LU}, + {0x00023C, 0x00023C, UC_LL}, + {0x00023D, 0x00023E, UC_LU}, + {0x00023F, 0x000240, UC_LL}, + {0x000241, 0x000241, UC_LU}, + {0x000242, 0x000242, UC_LL}, + {0x000243, 0x000246, UC_LU}, + {0x000247, 0x000247, UC_LL}, + {0x000248, 0x000248, UC_LU}, + {0x000249, 0x000249, UC_LL}, + {0x00024A, 0x00024A, UC_LU}, + {0x00024B, 0x00024B, UC_LL}, + {0x00024C, 0x00024C, UC_LU}, + {0x00024D, 0x00024D, UC_LL}, + {0x00024E, 0x00024E, UC_LU}, + {0x00024F, 0x000293, UC_LL}, + {0x000294, 0x000294, UC_LO}, + {0x000295, 0x0002AF, UC_LL}, + {0x0002B0, 0x0002C1, UC_LM}, + {0x0002C2, 0x0002C5, UC_SK}, + {0x0002C6, 0x0002D1, UC_LM}, + {0x0002D2, 0x0002DF, UC_SK}, + {0x0002E0, 0x0002E4, UC_LM}, + {0x0002E5, 0x0002EB, UC_SK}, + {0x0002EC, 0x0002EC, UC_LM}, + {0x0002ED, 0x0002ED, UC_SK}, + {0x0002EE, 0x0002EE, UC_LM}, + {0x0002EF, 0x0002FF, UC_SK}, + {0x000300, 0x00036F, UC_MN}, + {0x000370, 0x000370, UC_LU}, + {0x000371, 0x000371, UC_LL}, + {0x000372, 0x000372, UC_LU}, + {0x000373, 0x000373, UC_LL}, + {0x000374, 0x000374, UC_LM}, + {0x000375, 0x000375, UC_SK}, + {0x000376, 0x000376, UC_LU}, + {0x000377, 0x000377, UC_LL}, + {0x00037A, 0x00037A, UC_LM}, + {0x00037B, 0x00037D, UC_LL}, + {0x00037E, 0x00037E, UC_PO}, + {0x00037F, 0x00037F, UC_LU}, + {0x000384, 0x000385, UC_SK}, + {0x000386, 0x000386, UC_LU}, + {0x000387, 0x000387, UC_PO}, + {0x000388, 0x00038A, UC_LU}, + {0x00038C, 0x00038C, UC_LU}, + {0x00038E, 0x00038F, UC_LU}, + {0x000390, 0x000390, UC_LL}, + {0x000391, 0x0003A1, UC_LU}, + {0x0003A3, 0x0003AB, UC_LU}, + {0x0003AC, 0x0003CE, UC_LL}, + {0x0003CF, 0x0003CF, UC_LU}, + {0x0003D0, 0x0003D1, UC_LL}, + {0x0003D2, 0x0003D4, UC_LU}, + {0x0003D5, 0x0003D7, UC_LL}, + {0x0003D8, 0x0003D8, UC_LU}, + {0x0003D9, 0x0003D9, UC_LL}, + {0x0003DA, 0x0003DA, UC_LU}, + {0x0003DB, 0x0003DB, UC_LL}, + {0x0003DC, 0x0003DC, UC_LU}, + {0x0003DD, 0x0003DD, UC_LL}, + {0x0003DE, 0x0003DE, UC_LU}, + {0x0003DF, 0x0003DF, UC_LL}, + {0x0003E0, 0x0003E0, UC_LU}, + {0x0003E1, 0x0003E1, UC_LL}, + {0x0003E2, 0x0003E2, UC_LU}, + {0x0003E3, 0x0003E3, UC_LL}, + {0x0003E4, 0x0003E4, UC_LU}, + {0x0003E5, 0x0003E5, UC_LL}, + {0x0003E6, 0x0003E6, UC_LU}, + {0x0003E7, 0x0003E7, UC_LL}, + {0x0003E8, 0x0003E8, UC_LU}, + {0x0003E9, 0x0003E9, UC_LL}, + {0x0003EA, 0x0003EA, UC_LU}, + {0x0003EB, 0x0003EB, UC_LL}, + {0x0003EC, 0x0003EC, UC_LU}, + {0x0003ED, 0x0003ED, UC_LL}, + {0x0003EE, 0x0003EE, UC_LU}, + {0x0003EF, 0x0003F3, UC_LL}, + {0x0003F4, 0x0003F4, UC_LU}, + {0x0003F5, 0x0003F5, UC_LL}, + {0x0003F6, 0x0003F6, UC_SM}, + {0x0003F7, 0x0003F7, UC_LU}, + {0x0003F8, 0x0003F8, UC_LL}, + {0x0003F9, 0x0003FA, UC_LU}, + {0x0003FB, 0x0003FC, UC_LL}, + {0x0003FD, 0x00042F, UC_LU}, + {0x000430, 0x00045F, UC_LL}, + {0x000460, 0x000460, UC_LU}, + {0x000461, 0x000461, UC_LL}, + {0x000462, 0x000462, UC_LU}, + {0x000463, 0x000463, UC_LL}, + {0x000464, 0x000464, UC_LU}, + {0x000465, 0x000465, UC_LL}, + {0x000466, 0x000466, UC_LU}, + {0x000467, 0x000467, UC_LL}, + {0x000468, 0x000468, UC_LU}, + {0x000469, 0x000469, UC_LL}, + {0x00046A, 0x00046A, UC_LU}, + {0x00046B, 0x00046B, UC_LL}, + {0x00046C, 0x00046C, UC_LU}, + {0x00046D, 0x00046D, UC_LL}, + {0x00046E, 0x00046E, UC_LU}, + {0x00046F, 0x00046F, UC_LL}, + {0x000470, 0x000470, UC_LU}, + {0x000471, 0x000471, UC_LL}, + {0x000472, 0x000472, UC_LU}, + {0x000473, 0x000473, UC_LL}, + {0x000474, 0x000474, UC_LU}, + {0x000475, 0x000475, UC_LL}, + {0x000476, 0x000476, UC_LU}, + {0x000477, 0x000477, UC_LL}, + {0x000478, 0x000478, UC_LU}, + {0x000479, 0x000479, UC_LL}, + {0x00047A, 0x00047A, UC_LU}, + {0x00047B, 0x00047B, UC_LL}, + {0x00047C, 0x00047C, UC_LU}, + {0x00047D, 0x00047D, UC_LL}, + {0x00047E, 0x00047E, UC_LU}, + {0x00047F, 0x00047F, UC_LL}, + {0x000480, 0x000480, UC_LU}, + {0x000481, 0x000481, UC_LL}, + {0x000482, 0x000482, UC_SO}, + {0x000483, 0x000487, UC_MN}, + {0x000488, 0x000489, UC_ME}, + {0x00048A, 0x00048A, UC_LU}, + {0x00048B, 0x00048B, UC_LL}, + {0x00048C, 0x00048C, UC_LU}, + {0x00048D, 0x00048D, UC_LL}, + {0x00048E, 0x00048E, UC_LU}, + {0x00048F, 0x00048F, UC_LL}, + {0x000490, 0x000490, UC_LU}, + {0x000491, 0x000491, UC_LL}, + {0x000492, 0x000492, UC_LU}, + {0x000493, 0x000493, UC_LL}, + {0x000494, 0x000494, UC_LU}, + {0x000495, 0x000495, UC_LL}, + {0x000496, 0x000496, UC_LU}, + {0x000497, 0x000497, UC_LL}, + {0x000498, 0x000498, UC_LU}, + {0x000499, 0x000499, UC_LL}, + {0x00049A, 0x00049A, UC_LU}, + {0x00049B, 0x00049B, UC_LL}, + {0x00049C, 0x00049C, UC_LU}, + {0x00049D, 0x00049D, UC_LL}, + {0x00049E, 0x00049E, UC_LU}, + {0x00049F, 0x00049F, UC_LL}, + {0x0004A0, 0x0004A0, UC_LU}, + {0x0004A1, 0x0004A1, UC_LL}, + {0x0004A2, 0x0004A2, UC_LU}, + {0x0004A3, 0x0004A3, UC_LL}, + {0x0004A4, 0x0004A4, UC_LU}, + {0x0004A5, 0x0004A5, UC_LL}, + {0x0004A6, 0x0004A6, UC_LU}, + {0x0004A7, 0x0004A7, UC_LL}, + {0x0004A8, 0x0004A8, UC_LU}, + {0x0004A9, 0x0004A9, UC_LL}, + {0x0004AA, 0x0004AA, UC_LU}, + {0x0004AB, 0x0004AB, UC_LL}, + {0x0004AC, 0x0004AC, UC_LU}, + {0x0004AD, 0x0004AD, UC_LL}, + {0x0004AE, 0x0004AE, UC_LU}, + {0x0004AF, 0x0004AF, UC_LL}, + {0x0004B0, 0x0004B0, UC_LU}, + {0x0004B1, 0x0004B1, UC_LL}, + {0x0004B2, 0x0004B2, UC_LU}, + {0x0004B3, 0x0004B3, UC_LL}, + {0x0004B4, 0x0004B4, UC_LU}, + {0x0004B5, 0x0004B5, UC_LL}, + {0x0004B6, 0x0004B6, UC_LU}, + {0x0004B7, 0x0004B7, UC_LL}, + {0x0004B8, 0x0004B8, UC_LU}, + {0x0004B9, 0x0004B9, UC_LL}, + {0x0004BA, 0x0004BA, UC_LU}, + {0x0004BB, 0x0004BB, UC_LL}, + {0x0004BC, 0x0004BC, UC_LU}, + {0x0004BD, 0x0004BD, UC_LL}, + {0x0004BE, 0x0004BE, UC_LU}, + {0x0004BF, 0x0004BF, UC_LL}, + {0x0004C0, 0x0004C1, UC_LU}, + {0x0004C2, 0x0004C2, UC_LL}, + {0x0004C3, 0x0004C3, UC_LU}, + {0x0004C4, 0x0004C4, UC_LL}, + {0x0004C5, 0x0004C5, UC_LU}, + {0x0004C6, 0x0004C6, UC_LL}, + {0x0004C7, 0x0004C7, UC_LU}, + {0x0004C8, 0x0004C8, UC_LL}, + {0x0004C9, 0x0004C9, UC_LU}, + {0x0004CA, 0x0004CA, UC_LL}, + {0x0004CB, 0x0004CB, UC_LU}, + {0x0004CC, 0x0004CC, UC_LL}, + {0x0004CD, 0x0004CD, UC_LU}, + {0x0004CE, 0x0004CF, UC_LL}, + {0x0004D0, 0x0004D0, UC_LU}, + {0x0004D1, 0x0004D1, UC_LL}, + {0x0004D2, 0x0004D2, UC_LU}, + {0x0004D3, 0x0004D3, UC_LL}, + {0x0004D4, 0x0004D4, UC_LU}, + {0x0004D5, 0x0004D5, UC_LL}, + {0x0004D6, 0x0004D6, UC_LU}, + {0x0004D7, 0x0004D7, UC_LL}, + {0x0004D8, 0x0004D8, UC_LU}, + {0x0004D9, 0x0004D9, UC_LL}, + {0x0004DA, 0x0004DA, UC_LU}, + {0x0004DB, 0x0004DB, UC_LL}, + {0x0004DC, 0x0004DC, UC_LU}, + {0x0004DD, 0x0004DD, UC_LL}, + {0x0004DE, 0x0004DE, UC_LU}, + {0x0004DF, 0x0004DF, UC_LL}, + {0x0004E0, 0x0004E0, UC_LU}, + {0x0004E1, 0x0004E1, UC_LL}, + {0x0004E2, 0x0004E2, UC_LU}, + {0x0004E3, 0x0004E3, UC_LL}, + {0x0004E4, 0x0004E4, UC_LU}, + {0x0004E5, 0x0004E5, UC_LL}, + {0x0004E6, 0x0004E6, UC_LU}, + {0x0004E7, 0x0004E7, UC_LL}, + {0x0004E8, 0x0004E8, UC_LU}, + {0x0004E9, 0x0004E9, UC_LL}, + {0x0004EA, 0x0004EA, UC_LU}, + {0x0004EB, 0x0004EB, UC_LL}, + {0x0004EC, 0x0004EC, UC_LU}, + {0x0004ED, 0x0004ED, UC_LL}, + {0x0004EE, 0x0004EE, UC_LU}, + {0x0004EF, 0x0004EF, UC_LL}, + {0x0004F0, 0x0004F0, UC_LU}, + {0x0004F1, 0x0004F1, UC_LL}, + {0x0004F2, 0x0004F2, UC_LU}, + {0x0004F3, 0x0004F3, UC_LL}, + {0x0004F4, 0x0004F4, UC_LU}, + {0x0004F5, 0x0004F5, UC_LL}, + {0x0004F6, 0x0004F6, UC_LU}, + {0x0004F7, 0x0004F7, UC_LL}, + {0x0004F8, 0x0004F8, UC_LU}, + {0x0004F9, 0x0004F9, UC_LL}, + {0x0004FA, 0x0004FA, UC_LU}, + {0x0004FB, 0x0004FB, UC_LL}, + {0x0004FC, 0x0004FC, UC_LU}, + {0x0004FD, 0x0004FD, UC_LL}, + {0x0004FE, 0x0004FE, UC_LU}, + {0x0004FF, 0x0004FF, UC_LL}, + {0x000500, 0x000500, UC_LU}, + {0x000501, 0x000501, UC_LL}, + {0x000502, 0x000502, UC_LU}, + {0x000503, 0x000503, UC_LL}, + {0x000504, 0x000504, UC_LU}, + {0x000505, 0x000505, UC_LL}, + {0x000506, 0x000506, UC_LU}, + {0x000507, 0x000507, UC_LL}, + {0x000508, 0x000508, UC_LU}, + {0x000509, 0x000509, UC_LL}, + {0x00050A, 0x00050A, UC_LU}, + {0x00050B, 0x00050B, UC_LL}, + {0x00050C, 0x00050C, UC_LU}, + {0x00050D, 0x00050D, UC_LL}, + {0x00050E, 0x00050E, UC_LU}, + {0x00050F, 0x00050F, UC_LL}, + {0x000510, 0x000510, UC_LU}, + {0x000511, 0x000511, UC_LL}, + {0x000512, 0x000512, UC_LU}, + {0x000513, 0x000513, UC_LL}, + {0x000514, 0x000514, UC_LU}, + {0x000515, 0x000515, UC_LL}, + {0x000516, 0x000516, UC_LU}, + {0x000517, 0x000517, UC_LL}, + {0x000518, 0x000518, UC_LU}, + {0x000519, 0x000519, UC_LL}, + {0x00051A, 0x00051A, UC_LU}, + {0x00051B, 0x00051B, UC_LL}, + {0x00051C, 0x00051C, UC_LU}, + {0x00051D, 0x00051D, UC_LL}, + {0x00051E, 0x00051E, UC_LU}, + {0x00051F, 0x00051F, UC_LL}, + {0x000520, 0x000520, UC_LU}, + {0x000521, 0x000521, UC_LL}, + {0x000522, 0x000522, UC_LU}, + {0x000523, 0x000523, UC_LL}, + {0x000524, 0x000524, UC_LU}, + {0x000525, 0x000525, UC_LL}, + {0x000526, 0x000526, UC_LU}, + {0x000527, 0x000527, UC_LL}, + {0x000528, 0x000528, UC_LU}, + {0x000529, 0x000529, UC_LL}, + {0x00052A, 0x00052A, UC_LU}, + {0x00052B, 0x00052B, UC_LL}, + {0x00052C, 0x00052C, UC_LU}, + {0x00052D, 0x00052D, UC_LL}, + {0x00052E, 0x00052E, UC_LU}, + {0x00052F, 0x00052F, UC_LL}, + {0x000531, 0x000556, UC_LU}, + {0x000559, 0x000559, UC_LM}, + {0x00055A, 0x00055F, UC_PO}, + {0x000560, 0x000588, UC_LL}, + {0x000589, 0x000589, UC_PO}, + {0x00058A, 0x00058A, UC_PD}, + {0x00058D, 0x00058E, UC_SO}, + {0x00058F, 0x00058F, UC_SC}, + {0x000591, 0x0005BD, UC_MN}, + {0x0005BE, 0x0005BE, UC_PD}, + {0x0005BF, 0x0005BF, UC_MN}, + {0x0005C0, 0x0005C0, UC_PO}, + {0x0005C1, 0x0005C2, UC_MN}, + {0x0005C3, 0x0005C3, UC_PO}, + {0x0005C4, 0x0005C5, UC_MN}, + {0x0005C6, 0x0005C6, UC_PO}, + {0x0005C7, 0x0005C7, UC_MN}, + {0x0005D0, 0x0005EA, UC_LO}, + {0x0005EF, 0x0005F2, UC_LO}, + {0x0005F3, 0x0005F4, UC_PO}, + {0x000600, 0x000605, UC_CF}, + {0x000606, 0x000608, UC_SM}, + {0x000609, 0x00060A, UC_PO}, + {0x00060B, 0x00060B, UC_SC}, + {0x00060C, 0x00060D, UC_PO}, + {0x00060E, 0x00060F, UC_SO}, + {0x000610, 0x00061A, UC_MN}, + {0x00061B, 0x00061B, UC_PO}, + {0x00061C, 0x00061C, UC_CF}, + {0x00061D, 0x00061F, UC_PO}, + {0x000620, 0x00063F, UC_LO}, + {0x000640, 0x000640, UC_LM}, + {0x000641, 0x00064A, UC_LO}, + {0x00064B, 0x00065F, UC_MN}, + {0x000660, 0x000669, UC_ND}, + {0x00066A, 0x00066D, UC_PO}, + {0x00066E, 0x00066F, UC_LO}, + {0x000670, 0x000670, UC_MN}, + {0x000671, 0x0006D3, UC_LO}, + {0x0006D4, 0x0006D4, UC_PO}, + {0x0006D5, 0x0006D5, UC_LO}, + {0x0006D6, 0x0006DC, UC_MN}, + {0x0006DD, 0x0006DD, UC_CF}, + {0x0006DE, 0x0006DE, UC_SO}, + {0x0006DF, 0x0006E4, UC_MN}, + {0x0006E5, 0x0006E6, UC_LM}, + {0x0006E7, 0x0006E8, UC_MN}, + {0x0006E9, 0x0006E9, UC_SO}, + {0x0006EA, 0x0006ED, UC_MN}, + {0x0006EE, 0x0006EF, UC_LO}, + {0x0006F0, 0x0006F9, UC_ND}, + {0x0006FA, 0x0006FC, UC_LO}, + {0x0006FD, 0x0006FE, UC_SO}, + {0x0006FF, 0x0006FF, UC_LO}, + {0x000700, 0x00070D, UC_PO}, + {0x00070F, 0x00070F, UC_CF}, + {0x000710, 0x000710, UC_LO}, + {0x000711, 0x000711, UC_MN}, + {0x000712, 0x00072F, UC_LO}, + {0x000730, 0x00074A, UC_MN}, + {0x00074D, 0x0007A5, UC_LO}, + {0x0007A6, 0x0007B0, UC_MN}, + {0x0007B1, 0x0007B1, UC_LO}, + {0x0007C0, 0x0007C9, UC_ND}, + {0x0007CA, 0x0007EA, UC_LO}, + {0x0007EB, 0x0007F3, UC_MN}, + {0x0007F4, 0x0007F5, UC_LM}, + {0x0007F6, 0x0007F6, UC_SO}, + {0x0007F7, 0x0007F9, UC_PO}, + {0x0007FA, 0x0007FA, UC_LM}, + {0x0007FD, 0x0007FD, UC_MN}, + {0x0007FE, 0x0007FF, UC_SC}, + {0x000800, 0x000815, UC_LO}, + {0x000816, 0x000819, UC_MN}, + {0x00081A, 0x00081A, UC_LM}, + {0x00081B, 0x000823, UC_MN}, + {0x000824, 0x000824, UC_LM}, + {0x000825, 0x000827, UC_MN}, + {0x000828, 0x000828, UC_LM}, + {0x000829, 0x00082D, UC_MN}, + {0x000830, 0x00083E, UC_PO}, + {0x000840, 0x000858, UC_LO}, + {0x000859, 0x00085B, UC_MN}, + {0x00085E, 0x00085E, UC_PO}, + {0x000860, 0x00086A, UC_LO}, + {0x000870, 0x000887, UC_LO}, + {0x000888, 0x000888, UC_SK}, + {0x000889, 0x00088E, UC_LO}, + {0x000890, 0x000891, UC_CF}, + {0x000898, 0x00089F, UC_MN}, + {0x0008A0, 0x0008C8, UC_LO}, + {0x0008C9, 0x0008C9, UC_LM}, + {0x0008CA, 0x0008E1, UC_MN}, + {0x0008E2, 0x0008E2, UC_CF}, + {0x0008E3, 0x000902, UC_MN}, + {0x000903, 0x000903, UC_MC}, + {0x000904, 0x000939, UC_LO}, + {0x00093A, 0x00093A, UC_MN}, + {0x00093B, 0x00093B, UC_MC}, + {0x00093C, 0x00093C, UC_MN}, + {0x00093D, 0x00093D, UC_LO}, + {0x00093E, 0x000940, UC_MC}, + {0x000941, 0x000948, UC_MN}, + {0x000949, 0x00094C, UC_MC}, + {0x00094D, 0x00094D, UC_MN}, + {0x00094E, 0x00094F, UC_MC}, + {0x000950, 0x000950, UC_LO}, + {0x000951, 0x000957, UC_MN}, + {0x000958, 0x000961, UC_LO}, + {0x000962, 0x000963, UC_MN}, + {0x000964, 0x000965, UC_PO}, + {0x000966, 0x00096F, UC_ND}, + {0x000970, 0x000970, UC_PO}, + {0x000971, 0x000971, UC_LM}, + {0x000972, 0x000980, UC_LO}, + {0x000981, 0x000981, UC_MN}, + {0x000982, 0x000983, UC_MC}, + {0x000985, 0x00098C, UC_LO}, + {0x00098F, 0x000990, UC_LO}, + {0x000993, 0x0009A8, UC_LO}, + {0x0009AA, 0x0009B0, UC_LO}, + {0x0009B2, 0x0009B2, UC_LO}, + {0x0009B6, 0x0009B9, UC_LO}, + {0x0009BC, 0x0009BC, UC_MN}, + {0x0009BD, 0x0009BD, UC_LO}, + {0x0009BE, 0x0009C0, UC_MC}, + {0x0009C1, 0x0009C4, UC_MN}, + {0x0009C7, 0x0009C8, UC_MC}, + {0x0009CB, 0x0009CC, UC_MC}, + {0x0009CD, 0x0009CD, UC_MN}, + {0x0009CE, 0x0009CE, UC_LO}, + {0x0009D7, 0x0009D7, UC_MC}, + {0x0009DC, 0x0009DD, UC_LO}, + {0x0009DF, 0x0009E1, UC_LO}, + {0x0009E2, 0x0009E3, UC_MN}, + {0x0009E6, 0x0009EF, UC_ND}, + {0x0009F0, 0x0009F1, UC_LO}, + {0x0009F2, 0x0009F3, UC_SC}, + {0x0009F4, 0x0009F9, UC_NO}, + {0x0009FA, 0x0009FA, UC_SO}, + {0x0009FB, 0x0009FB, UC_SC}, + {0x0009FC, 0x0009FC, UC_LO}, + {0x0009FD, 0x0009FD, UC_PO}, + {0x0009FE, 0x0009FE, UC_MN}, + {0x000A01, 0x000A02, UC_MN}, + {0x000A03, 0x000A03, UC_MC}, + {0x000A05, 0x000A0A, UC_LO}, + {0x000A0F, 0x000A10, UC_LO}, + {0x000A13, 0x000A28, UC_LO}, + {0x000A2A, 0x000A30, UC_LO}, + {0x000A32, 0x000A33, UC_LO}, + {0x000A35, 0x000A36, UC_LO}, + {0x000A38, 0x000A39, UC_LO}, + {0x000A3C, 0x000A3C, UC_MN}, + {0x000A3E, 0x000A40, UC_MC}, + {0x000A41, 0x000A42, UC_MN}, + {0x000A47, 0x000A48, UC_MN}, + {0x000A4B, 0x000A4D, UC_MN}, + {0x000A51, 0x000A51, UC_MN}, + {0x000A59, 0x000A5C, UC_LO}, + {0x000A5E, 0x000A5E, UC_LO}, + {0x000A66, 0x000A6F, UC_ND}, + {0x000A70, 0x000A71, UC_MN}, + {0x000A72, 0x000A74, UC_LO}, + {0x000A75, 0x000A75, UC_MN}, + {0x000A76, 0x000A76, UC_PO}, + {0x000A81, 0x000A82, UC_MN}, + {0x000A83, 0x000A83, UC_MC}, + {0x000A85, 0x000A8D, UC_LO}, + {0x000A8F, 0x000A91, UC_LO}, + {0x000A93, 0x000AA8, UC_LO}, + {0x000AAA, 0x000AB0, UC_LO}, + {0x000AB2, 0x000AB3, UC_LO}, + {0x000AB5, 0x000AB9, UC_LO}, + {0x000ABC, 0x000ABC, UC_MN}, + {0x000ABD, 0x000ABD, UC_LO}, + {0x000ABE, 0x000AC0, UC_MC}, + {0x000AC1, 0x000AC5, UC_MN}, + {0x000AC7, 0x000AC8, UC_MN}, + {0x000AC9, 0x000AC9, UC_MC}, + {0x000ACB, 0x000ACC, UC_MC}, + {0x000ACD, 0x000ACD, UC_MN}, + {0x000AD0, 0x000AD0, UC_LO}, + {0x000AE0, 0x000AE1, UC_LO}, + {0x000AE2, 0x000AE3, UC_MN}, + {0x000AE6, 0x000AEF, UC_ND}, + {0x000AF0, 0x000AF0, UC_PO}, + {0x000AF1, 0x000AF1, UC_SC}, + {0x000AF9, 0x000AF9, UC_LO}, + {0x000AFA, 0x000AFF, UC_MN}, + {0x000B01, 0x000B01, UC_MN}, + {0x000B02, 0x000B03, UC_MC}, + {0x000B05, 0x000B0C, UC_LO}, + {0x000B0F, 0x000B10, UC_LO}, + {0x000B13, 0x000B28, UC_LO}, + {0x000B2A, 0x000B30, UC_LO}, + {0x000B32, 0x000B33, UC_LO}, + {0x000B35, 0x000B39, UC_LO}, + {0x000B3C, 0x000B3C, UC_MN}, + {0x000B3D, 0x000B3D, UC_LO}, + {0x000B3E, 0x000B3E, UC_MC}, + {0x000B3F, 0x000B3F, UC_MN}, + {0x000B40, 0x000B40, UC_MC}, + {0x000B41, 0x000B44, UC_MN}, + {0x000B47, 0x000B48, UC_MC}, + {0x000B4B, 0x000B4C, UC_MC}, + {0x000B4D, 0x000B4D, UC_MN}, + {0x000B55, 0x000B56, UC_MN}, + {0x000B57, 0x000B57, UC_MC}, + {0x000B5C, 0x000B5D, UC_LO}, + {0x000B5F, 0x000B61, UC_LO}, + {0x000B62, 0x000B63, UC_MN}, + {0x000B66, 0x000B6F, UC_ND}, + {0x000B70, 0x000B70, UC_SO}, + {0x000B71, 0x000B71, UC_LO}, + {0x000B72, 0x000B77, UC_NO}, + {0x000B82, 0x000B82, UC_MN}, + {0x000B83, 0x000B83, UC_LO}, + {0x000B85, 0x000B8A, UC_LO}, + {0x000B8E, 0x000B90, UC_LO}, + {0x000B92, 0x000B95, UC_LO}, + {0x000B99, 0x000B9A, UC_LO}, + {0x000B9C, 0x000B9C, UC_LO}, + {0x000B9E, 0x000B9F, UC_LO}, + {0x000BA3, 0x000BA4, UC_LO}, + {0x000BA8, 0x000BAA, UC_LO}, + {0x000BAE, 0x000BB9, UC_LO}, + {0x000BBE, 0x000BBF, UC_MC}, + {0x000BC0, 0x000BC0, UC_MN}, + {0x000BC1, 0x000BC2, UC_MC}, + {0x000BC6, 0x000BC8, UC_MC}, + {0x000BCA, 0x000BCC, UC_MC}, + {0x000BCD, 0x000BCD, UC_MN}, + {0x000BD0, 0x000BD0, UC_LO}, + {0x000BD7, 0x000BD7, UC_MC}, + {0x000BE6, 0x000BEF, UC_ND}, + {0x000BF0, 0x000BF2, UC_NO}, + {0x000BF3, 0x000BF8, UC_SO}, + {0x000BF9, 0x000BF9, UC_SC}, + {0x000BFA, 0x000BFA, UC_SO}, + {0x000C00, 0x000C00, UC_MN}, + {0x000C01, 0x000C03, UC_MC}, + {0x000C04, 0x000C04, UC_MN}, + {0x000C05, 0x000C0C, UC_LO}, + {0x000C0E, 0x000C10, UC_LO}, + {0x000C12, 0x000C28, UC_LO}, + {0x000C2A, 0x000C39, UC_LO}, + {0x000C3C, 0x000C3C, UC_MN}, + {0x000C3D, 0x000C3D, UC_LO}, + {0x000C3E, 0x000C40, UC_MN}, + {0x000C41, 0x000C44, UC_MC}, + {0x000C46, 0x000C48, UC_MN}, + {0x000C4A, 0x000C4D, UC_MN}, + {0x000C55, 0x000C56, UC_MN}, + {0x000C58, 0x000C5A, UC_LO}, + {0x000C5D, 0x000C5D, UC_LO}, + {0x000C60, 0x000C61, UC_LO}, + {0x000C62, 0x000C63, UC_MN}, + {0x000C66, 0x000C6F, UC_ND}, + {0x000C77, 0x000C77, UC_PO}, + {0x000C78, 0x000C7E, UC_NO}, + {0x000C7F, 0x000C7F, UC_SO}, + {0x000C80, 0x000C80, UC_LO}, + {0x000C81, 0x000C81, UC_MN}, + {0x000C82, 0x000C83, UC_MC}, + {0x000C84, 0x000C84, UC_PO}, + {0x000C85, 0x000C8C, UC_LO}, + {0x000C8E, 0x000C90, UC_LO}, + {0x000C92, 0x000CA8, UC_LO}, + {0x000CAA, 0x000CB3, UC_LO}, + {0x000CB5, 0x000CB9, UC_LO}, + {0x000CBC, 0x000CBC, UC_MN}, + {0x000CBD, 0x000CBD, UC_LO}, + {0x000CBE, 0x000CBE, UC_MC}, + {0x000CBF, 0x000CBF, UC_MN}, + {0x000CC0, 0x000CC4, UC_MC}, + {0x000CC6, 0x000CC6, UC_MN}, + {0x000CC7, 0x000CC8, UC_MC}, + {0x000CCA, 0x000CCB, UC_MC}, + {0x000CCC, 0x000CCD, UC_MN}, + {0x000CD5, 0x000CD6, UC_MC}, + {0x000CDD, 0x000CDE, UC_LO}, + {0x000CE0, 0x000CE1, UC_LO}, + {0x000CE2, 0x000CE3, UC_MN}, + {0x000CE6, 0x000CEF, UC_ND}, + {0x000CF1, 0x000CF2, UC_LO}, + {0x000CF3, 0x000CF3, UC_MC}, + {0x000D00, 0x000D01, UC_MN}, + {0x000D02, 0x000D03, UC_MC}, + {0x000D04, 0x000D0C, UC_LO}, + {0x000D0E, 0x000D10, UC_LO}, + {0x000D12, 0x000D3A, UC_LO}, + {0x000D3B, 0x000D3C, UC_MN}, + {0x000D3D, 0x000D3D, UC_LO}, + {0x000D3E, 0x000D40, UC_MC}, + {0x000D41, 0x000D44, UC_MN}, + {0x000D46, 0x000D48, UC_MC}, + {0x000D4A, 0x000D4C, UC_MC}, + {0x000D4D, 0x000D4D, UC_MN}, + {0x000D4E, 0x000D4E, UC_LO}, + {0x000D4F, 0x000D4F, UC_SO}, + {0x000D54, 0x000D56, UC_LO}, + {0x000D57, 0x000D57, UC_MC}, + {0x000D58, 0x000D5E, UC_NO}, + {0x000D5F, 0x000D61, UC_LO}, + {0x000D62, 0x000D63, UC_MN}, + {0x000D66, 0x000D6F, UC_ND}, + {0x000D70, 0x000D78, UC_NO}, + {0x000D79, 0x000D79, UC_SO}, + {0x000D7A, 0x000D7F, UC_LO}, + {0x000D81, 0x000D81, UC_MN}, + {0x000D82, 0x000D83, UC_MC}, + {0x000D85, 0x000D96, UC_LO}, + {0x000D9A, 0x000DB1, UC_LO}, + {0x000DB3, 0x000DBB, UC_LO}, + {0x000DBD, 0x000DBD, UC_LO}, + {0x000DC0, 0x000DC6, UC_LO}, + {0x000DCA, 0x000DCA, UC_MN}, + {0x000DCF, 0x000DD1, UC_MC}, + {0x000DD2, 0x000DD4, UC_MN}, + {0x000DD6, 0x000DD6, UC_MN}, + {0x000DD8, 0x000DDF, UC_MC}, + {0x000DE6, 0x000DEF, UC_ND}, + {0x000DF2, 0x000DF3, UC_MC}, + {0x000DF4, 0x000DF4, UC_PO}, + {0x000E01, 0x000E30, UC_LO}, + {0x000E31, 0x000E31, UC_MN}, + {0x000E32, 0x000E33, UC_LO}, + {0x000E34, 0x000E3A, UC_MN}, + {0x000E3F, 0x000E3F, UC_SC}, + {0x000E40, 0x000E45, UC_LO}, + {0x000E46, 0x000E46, UC_LM}, + {0x000E47, 0x000E4E, UC_MN}, + {0x000E4F, 0x000E4F, UC_PO}, + {0x000E50, 0x000E59, UC_ND}, + {0x000E5A, 0x000E5B, UC_PO}, + {0x000E81, 0x000E82, UC_LO}, + {0x000E84, 0x000E84, UC_LO}, + {0x000E86, 0x000E8A, UC_LO}, + {0x000E8C, 0x000EA3, UC_LO}, + {0x000EA5, 0x000EA5, UC_LO}, + {0x000EA7, 0x000EB0, UC_LO}, + {0x000EB1, 0x000EB1, UC_MN}, + {0x000EB2, 0x000EB3, UC_LO}, + {0x000EB4, 0x000EBC, UC_MN}, + {0x000EBD, 0x000EBD, UC_LO}, + {0x000EC0, 0x000EC4, UC_LO}, + {0x000EC6, 0x000EC6, UC_LM}, + {0x000EC8, 0x000ECE, UC_MN}, + {0x000ED0, 0x000ED9, UC_ND}, + {0x000EDC, 0x000EDF, UC_LO}, + {0x000F00, 0x000F00, UC_LO}, + {0x000F01, 0x000F03, UC_SO}, + {0x000F04, 0x000F12, UC_PO}, + {0x000F13, 0x000F13, UC_SO}, + {0x000F14, 0x000F14, UC_PO}, + {0x000F15, 0x000F17, UC_SO}, + {0x000F18, 0x000F19, UC_MN}, + {0x000F1A, 0x000F1F, UC_SO}, + {0x000F20, 0x000F29, UC_ND}, + {0x000F2A, 0x000F33, UC_NO}, + {0x000F34, 0x000F34, UC_SO}, + {0x000F35, 0x000F35, UC_MN}, + {0x000F36, 0x000F36, UC_SO}, + {0x000F37, 0x000F37, UC_MN}, + {0x000F38, 0x000F38, UC_SO}, + {0x000F39, 0x000F39, UC_MN}, + {0x000F3A, 0x000F3A, UC_PS}, + {0x000F3B, 0x000F3B, UC_PE}, + {0x000F3C, 0x000F3C, UC_PS}, + {0x000F3D, 0x000F3D, UC_PE}, + {0x000F3E, 0x000F3F, UC_MC}, + {0x000F40, 0x000F47, UC_LO}, + {0x000F49, 0x000F6C, UC_LO}, + {0x000F71, 0x000F7E, UC_MN}, + {0x000F7F, 0x000F7F, UC_MC}, + {0x000F80, 0x000F84, UC_MN}, + {0x000F85, 0x000F85, UC_PO}, + {0x000F86, 0x000F87, UC_MN}, + {0x000F88, 0x000F8C, UC_LO}, + {0x000F8D, 0x000F97, UC_MN}, + {0x000F99, 0x000FBC, UC_MN}, + {0x000FBE, 0x000FC5, UC_SO}, + {0x000FC6, 0x000FC6, UC_MN}, + {0x000FC7, 0x000FCC, UC_SO}, + {0x000FCE, 0x000FCF, UC_SO}, + {0x000FD0, 0x000FD4, UC_PO}, + {0x000FD5, 0x000FD8, UC_SO}, + {0x000FD9, 0x000FDA, UC_PO}, + {0x001000, 0x00102A, UC_LO}, + {0x00102B, 0x00102C, UC_MC}, + {0x00102D, 0x001030, UC_MN}, + {0x001031, 0x001031, UC_MC}, + {0x001032, 0x001037, UC_MN}, + {0x001038, 0x001038, UC_MC}, + {0x001039, 0x00103A, UC_MN}, + {0x00103B, 0x00103C, UC_MC}, + {0x00103D, 0x00103E, UC_MN}, + {0x00103F, 0x00103F, UC_LO}, + {0x001040, 0x001049, UC_ND}, + {0x00104A, 0x00104F, UC_PO}, + {0x001050, 0x001055, UC_LO}, + {0x001056, 0x001057, UC_MC}, + {0x001058, 0x001059, UC_MN}, + {0x00105A, 0x00105D, UC_LO}, + {0x00105E, 0x001060, UC_MN}, + {0x001061, 0x001061, UC_LO}, + {0x001062, 0x001064, UC_MC}, + {0x001065, 0x001066, UC_LO}, + {0x001067, 0x00106D, UC_MC}, + {0x00106E, 0x001070, UC_LO}, + {0x001071, 0x001074, UC_MN}, + {0x001075, 0x001081, UC_LO}, + {0x001082, 0x001082, UC_MN}, + {0x001083, 0x001084, UC_MC}, + {0x001085, 0x001086, UC_MN}, + {0x001087, 0x00108C, UC_MC}, + {0x00108D, 0x00108D, UC_MN}, + {0x00108E, 0x00108E, UC_LO}, + {0x00108F, 0x00108F, UC_MC}, + {0x001090, 0x001099, UC_ND}, + {0x00109A, 0x00109C, UC_MC}, + {0x00109D, 0x00109D, UC_MN}, + {0x00109E, 0x00109F, UC_SO}, + {0x0010A0, 0x0010C5, UC_LU}, + {0x0010C7, 0x0010C7, UC_LU}, + {0x0010CD, 0x0010CD, UC_LU}, + {0x0010D0, 0x0010FA, UC_LL}, + {0x0010FB, 0x0010FB, UC_PO}, + {0x0010FC, 0x0010FC, UC_LM}, + {0x0010FD, 0x0010FF, UC_LL}, + {0x001100, 0x001248, UC_LO}, + {0x00124A, 0x00124D, UC_LO}, + {0x001250, 0x001256, UC_LO}, + {0x001258, 0x001258, UC_LO}, + {0x00125A, 0x00125D, UC_LO}, + {0x001260, 0x001288, UC_LO}, + {0x00128A, 0x00128D, UC_LO}, + {0x001290, 0x0012B0, UC_LO}, + {0x0012B2, 0x0012B5, UC_LO}, + {0x0012B8, 0x0012BE, UC_LO}, + {0x0012C0, 0x0012C0, UC_LO}, + {0x0012C2, 0x0012C5, UC_LO}, + {0x0012C8, 0x0012D6, UC_LO}, + {0x0012D8, 0x001310, UC_LO}, + {0x001312, 0x001315, UC_LO}, + {0x001318, 0x00135A, UC_LO}, + {0x00135D, 0x00135F, UC_MN}, + {0x001360, 0x001368, UC_PO}, + {0x001369, 0x00137C, UC_NO}, + {0x001380, 0x00138F, UC_LO}, + {0x001390, 0x001399, UC_SO}, + {0x0013A0, 0x0013F5, UC_LU}, + {0x0013F8, 0x0013FD, UC_LL}, + {0x001400, 0x001400, UC_PD}, + {0x001401, 0x00166C, UC_LO}, + {0x00166D, 0x00166D, UC_SO}, + {0x00166E, 0x00166E, UC_PO}, + {0x00166F, 0x00167F, UC_LO}, + {0x001680, 0x001680, UC_ZS}, + {0x001681, 0x00169A, UC_LO}, + {0x00169B, 0x00169B, UC_PS}, + {0x00169C, 0x00169C, UC_PE}, + {0x0016A0, 0x0016EA, UC_LO}, + {0x0016EB, 0x0016ED, UC_PO}, + {0x0016EE, 0x0016F0, UC_NL}, + {0x0016F1, 0x0016F8, UC_LO}, + {0x001700, 0x001711, UC_LO}, + {0x001712, 0x001714, UC_MN}, + {0x001715, 0x001715, UC_MC}, + {0x00171F, 0x001731, UC_LO}, + {0x001732, 0x001733, UC_MN}, + {0x001734, 0x001734, UC_MC}, + {0x001735, 0x001736, UC_PO}, + {0x001740, 0x001751, UC_LO}, + {0x001752, 0x001753, UC_MN}, + {0x001760, 0x00176C, UC_LO}, + {0x00176E, 0x001770, UC_LO}, + {0x001772, 0x001773, UC_MN}, + {0x001780, 0x0017B3, UC_LO}, + {0x0017B4, 0x0017B5, UC_MN}, + {0x0017B6, 0x0017B6, UC_MC}, + {0x0017B7, 0x0017BD, UC_MN}, + {0x0017BE, 0x0017C5, UC_MC}, + {0x0017C6, 0x0017C6, UC_MN}, + {0x0017C7, 0x0017C8, UC_MC}, + {0x0017C9, 0x0017D3, UC_MN}, + {0x0017D4, 0x0017D6, UC_PO}, + {0x0017D7, 0x0017D7, UC_LM}, + {0x0017D8, 0x0017DA, UC_PO}, + {0x0017DB, 0x0017DB, UC_SC}, + {0x0017DC, 0x0017DC, UC_LO}, + {0x0017DD, 0x0017DD, UC_MN}, + {0x0017E0, 0x0017E9, UC_ND}, + {0x0017F0, 0x0017F9, UC_NO}, + {0x001800, 0x001805, UC_PO}, + {0x001806, 0x001806, UC_PD}, + {0x001807, 0x00180A, UC_PO}, + {0x00180B, 0x00180D, UC_MN}, + {0x00180E, 0x00180E, UC_CF}, + {0x00180F, 0x00180F, UC_MN}, + {0x001810, 0x001819, UC_ND}, + {0x001820, 0x001842, UC_LO}, + {0x001843, 0x001843, UC_LM}, + {0x001844, 0x001878, UC_LO}, + {0x001880, 0x001884, UC_LO}, + {0x001885, 0x001886, UC_MN}, + {0x001887, 0x0018A8, UC_LO}, + {0x0018A9, 0x0018A9, UC_MN}, + {0x0018AA, 0x0018AA, UC_LO}, + {0x0018B0, 0x0018F5, UC_LO}, + {0x001900, 0x00191E, UC_LO}, + {0x001920, 0x001922, UC_MN}, + {0x001923, 0x001926, UC_MC}, + {0x001927, 0x001928, UC_MN}, + {0x001929, 0x00192B, UC_MC}, + {0x001930, 0x001931, UC_MC}, + {0x001932, 0x001932, UC_MN}, + {0x001933, 0x001938, UC_MC}, + {0x001939, 0x00193B, UC_MN}, + {0x001940, 0x001940, UC_SO}, + {0x001944, 0x001945, UC_PO}, + {0x001946, 0x00194F, UC_ND}, + {0x001950, 0x00196D, UC_LO}, + {0x001970, 0x001974, UC_LO}, + {0x001980, 0x0019AB, UC_LO}, + {0x0019B0, 0x0019C9, UC_LO}, + {0x0019D0, 0x0019D9, UC_ND}, + {0x0019DA, 0x0019DA, UC_NO}, + {0x0019DE, 0x0019FF, UC_SO}, + {0x001A00, 0x001A16, UC_LO}, + {0x001A17, 0x001A18, UC_MN}, + {0x001A19, 0x001A1A, UC_MC}, + {0x001A1B, 0x001A1B, UC_MN}, + {0x001A1E, 0x001A1F, UC_PO}, + {0x001A20, 0x001A54, UC_LO}, + {0x001A55, 0x001A55, UC_MC}, + {0x001A56, 0x001A56, UC_MN}, + {0x001A57, 0x001A57, UC_MC}, + {0x001A58, 0x001A5E, UC_MN}, + {0x001A60, 0x001A60, UC_MN}, + {0x001A61, 0x001A61, UC_MC}, + {0x001A62, 0x001A62, UC_MN}, + {0x001A63, 0x001A64, UC_MC}, + {0x001A65, 0x001A6C, UC_MN}, + {0x001A6D, 0x001A72, UC_MC}, + {0x001A73, 0x001A7C, UC_MN}, + {0x001A7F, 0x001A7F, UC_MN}, + {0x001A80, 0x001A89, UC_ND}, + {0x001A90, 0x001A99, UC_ND}, + {0x001AA0, 0x001AA6, UC_PO}, + {0x001AA7, 0x001AA7, UC_LM}, + {0x001AA8, 0x001AAD, UC_PO}, + {0x001AB0, 0x001ABD, UC_MN}, + {0x001ABE, 0x001ABE, UC_ME}, + {0x001ABF, 0x001ACE, UC_MN}, + {0x001B00, 0x001B03, UC_MN}, + {0x001B04, 0x001B04, UC_MC}, + {0x001B05, 0x001B33, UC_LO}, + {0x001B34, 0x001B34, UC_MN}, + {0x001B35, 0x001B35, UC_MC}, + {0x001B36, 0x001B3A, UC_MN}, + {0x001B3B, 0x001B3B, UC_MC}, + {0x001B3C, 0x001B3C, UC_MN}, + {0x001B3D, 0x001B41, UC_MC}, + {0x001B42, 0x001B42, UC_MN}, + {0x001B43, 0x001B44, UC_MC}, + {0x001B45, 0x001B4C, UC_LO}, + {0x001B50, 0x001B59, UC_ND}, + {0x001B5A, 0x001B60, UC_PO}, + {0x001B61, 0x001B6A, UC_SO}, + {0x001B6B, 0x001B73, UC_MN}, + {0x001B74, 0x001B7C, UC_SO}, + {0x001B7D, 0x001B7E, UC_PO}, + {0x001B80, 0x001B81, UC_MN}, + {0x001B82, 0x001B82, UC_MC}, + {0x001B83, 0x001BA0, UC_LO}, + {0x001BA1, 0x001BA1, UC_MC}, + {0x001BA2, 0x001BA5, UC_MN}, + {0x001BA6, 0x001BA7, UC_MC}, + {0x001BA8, 0x001BA9, UC_MN}, + {0x001BAA, 0x001BAA, UC_MC}, + {0x001BAB, 0x001BAD, UC_MN}, + {0x001BAE, 0x001BAF, UC_LO}, + {0x001BB0, 0x001BB9, UC_ND}, + {0x001BBA, 0x001BE5, UC_LO}, + {0x001BE6, 0x001BE6, UC_MN}, + {0x001BE7, 0x001BE7, UC_MC}, + {0x001BE8, 0x001BE9, UC_MN}, + {0x001BEA, 0x001BEC, UC_MC}, + {0x001BED, 0x001BED, UC_MN}, + {0x001BEE, 0x001BEE, UC_MC}, + {0x001BEF, 0x001BF1, UC_MN}, + {0x001BF2, 0x001BF3, UC_MC}, + {0x001BFC, 0x001BFF, UC_PO}, + {0x001C00, 0x001C23, UC_LO}, + {0x001C24, 0x001C2B, UC_MC}, + {0x001C2C, 0x001C33, UC_MN}, + {0x001C34, 0x001C35, UC_MC}, + {0x001C36, 0x001C37, UC_MN}, + {0x001C3B, 0x001C3F, UC_PO}, + {0x001C40, 0x001C49, UC_ND}, + {0x001C4D, 0x001C4F, UC_LO}, + {0x001C50, 0x001C59, UC_ND}, + {0x001C5A, 0x001C77, UC_LO}, + {0x001C78, 0x001C7D, UC_LM}, + {0x001C7E, 0x001C7F, UC_PO}, + {0x001C80, 0x001C88, UC_LL}, + {0x001C90, 0x001CBA, UC_LU}, + {0x001CBD, 0x001CBF, UC_LU}, + {0x001CC0, 0x001CC7, UC_PO}, + {0x001CD0, 0x001CD2, UC_MN}, + {0x001CD3, 0x001CD3, UC_PO}, + {0x001CD4, 0x001CE0, UC_MN}, + {0x001CE1, 0x001CE1, UC_MC}, + {0x001CE2, 0x001CE8, UC_MN}, + {0x001CE9, 0x001CEC, UC_LO}, + {0x001CED, 0x001CED, UC_MN}, + {0x001CEE, 0x001CF3, UC_LO}, + {0x001CF4, 0x001CF4, UC_MN}, + {0x001CF5, 0x001CF6, UC_LO}, + {0x001CF7, 0x001CF7, UC_MC}, + {0x001CF8, 0x001CF9, UC_MN}, + {0x001CFA, 0x001CFA, UC_LO}, + {0x001D00, 0x001D2B, UC_LL}, + {0x001D2C, 0x001D6A, UC_LM}, + {0x001D6B, 0x001D77, UC_LL}, + {0x001D78, 0x001D78, UC_LM}, + {0x001D79, 0x001D9A, UC_LL}, + {0x001D9B, 0x001DBF, UC_LM}, + {0x001DC0, 0x001DFF, UC_MN}, + {0x001E00, 0x001E00, UC_LU}, + {0x001E01, 0x001E01, UC_LL}, + {0x001E02, 0x001E02, UC_LU}, + {0x001E03, 0x001E03, UC_LL}, + {0x001E04, 0x001E04, UC_LU}, + {0x001E05, 0x001E05, UC_LL}, + {0x001E06, 0x001E06, UC_LU}, + {0x001E07, 0x001E07, UC_LL}, + {0x001E08, 0x001E08, UC_LU}, + {0x001E09, 0x001E09, UC_LL}, + {0x001E0A, 0x001E0A, UC_LU}, + {0x001E0B, 0x001E0B, UC_LL}, + {0x001E0C, 0x001E0C, UC_LU}, + {0x001E0D, 0x001E0D, UC_LL}, + {0x001E0E, 0x001E0E, UC_LU}, + {0x001E0F, 0x001E0F, UC_LL}, + {0x001E10, 0x001E10, UC_LU}, + {0x001E11, 0x001E11, UC_LL}, + {0x001E12, 0x001E12, UC_LU}, + {0x001E13, 0x001E13, UC_LL}, + {0x001E14, 0x001E14, UC_LU}, + {0x001E15, 0x001E15, UC_LL}, + {0x001E16, 0x001E16, UC_LU}, + {0x001E17, 0x001E17, UC_LL}, + {0x001E18, 0x001E18, UC_LU}, + {0x001E19, 0x001E19, UC_LL}, + {0x001E1A, 0x001E1A, UC_LU}, + {0x001E1B, 0x001E1B, UC_LL}, + {0x001E1C, 0x001E1C, UC_LU}, + {0x001E1D, 0x001E1D, UC_LL}, + {0x001E1E, 0x001E1E, UC_LU}, + {0x001E1F, 0x001E1F, UC_LL}, + {0x001E20, 0x001E20, UC_LU}, + {0x001E21, 0x001E21, UC_LL}, + {0x001E22, 0x001E22, UC_LU}, + {0x001E23, 0x001E23, UC_LL}, + {0x001E24, 0x001E24, UC_LU}, + {0x001E25, 0x001E25, UC_LL}, + {0x001E26, 0x001E26, UC_LU}, + {0x001E27, 0x001E27, UC_LL}, + {0x001E28, 0x001E28, UC_LU}, + {0x001E29, 0x001E29, UC_LL}, + {0x001E2A, 0x001E2A, UC_LU}, + {0x001E2B, 0x001E2B, UC_LL}, + {0x001E2C, 0x001E2C, UC_LU}, + {0x001E2D, 0x001E2D, UC_LL}, + {0x001E2E, 0x001E2E, UC_LU}, + {0x001E2F, 0x001E2F, UC_LL}, + {0x001E30, 0x001E30, UC_LU}, + {0x001E31, 0x001E31, UC_LL}, + {0x001E32, 0x001E32, UC_LU}, + {0x001E33, 0x001E33, UC_LL}, + {0x001E34, 0x001E34, UC_LU}, + {0x001E35, 0x001E35, UC_LL}, + {0x001E36, 0x001E36, UC_LU}, + {0x001E37, 0x001E37, UC_LL}, + {0x001E38, 0x001E38, UC_LU}, + {0x001E39, 0x001E39, UC_LL}, + {0x001E3A, 0x001E3A, UC_LU}, + {0x001E3B, 0x001E3B, UC_LL}, + {0x001E3C, 0x001E3C, UC_LU}, + {0x001E3D, 0x001E3D, UC_LL}, + {0x001E3E, 0x001E3E, UC_LU}, + {0x001E3F, 0x001E3F, UC_LL}, + {0x001E40, 0x001E40, UC_LU}, + {0x001E41, 0x001E41, UC_LL}, + {0x001E42, 0x001E42, UC_LU}, + {0x001E43, 0x001E43, UC_LL}, + {0x001E44, 0x001E44, UC_LU}, + {0x001E45, 0x001E45, UC_LL}, + {0x001E46, 0x001E46, UC_LU}, + {0x001E47, 0x001E47, UC_LL}, + {0x001E48, 0x001E48, UC_LU}, + {0x001E49, 0x001E49, UC_LL}, + {0x001E4A, 0x001E4A, UC_LU}, + {0x001E4B, 0x001E4B, UC_LL}, + {0x001E4C, 0x001E4C, UC_LU}, + {0x001E4D, 0x001E4D, UC_LL}, + {0x001E4E, 0x001E4E, UC_LU}, + {0x001E4F, 0x001E4F, UC_LL}, + {0x001E50, 0x001E50, UC_LU}, + {0x001E51, 0x001E51, UC_LL}, + {0x001E52, 0x001E52, UC_LU}, + {0x001E53, 0x001E53, UC_LL}, + {0x001E54, 0x001E54, UC_LU}, + {0x001E55, 0x001E55, UC_LL}, + {0x001E56, 0x001E56, UC_LU}, + {0x001E57, 0x001E57, UC_LL}, + {0x001E58, 0x001E58, UC_LU}, + {0x001E59, 0x001E59, UC_LL}, + {0x001E5A, 0x001E5A, UC_LU}, + {0x001E5B, 0x001E5B, UC_LL}, + {0x001E5C, 0x001E5C, UC_LU}, + {0x001E5D, 0x001E5D, UC_LL}, + {0x001E5E, 0x001E5E, UC_LU}, + {0x001E5F, 0x001E5F, UC_LL}, + {0x001E60, 0x001E60, UC_LU}, + {0x001E61, 0x001E61, UC_LL}, + {0x001E62, 0x001E62, UC_LU}, + {0x001E63, 0x001E63, UC_LL}, + {0x001E64, 0x001E64, UC_LU}, + {0x001E65, 0x001E65, UC_LL}, + {0x001E66, 0x001E66, UC_LU}, + {0x001E67, 0x001E67, UC_LL}, + {0x001E68, 0x001E68, UC_LU}, + {0x001E69, 0x001E69, UC_LL}, + {0x001E6A, 0x001E6A, UC_LU}, + {0x001E6B, 0x001E6B, UC_LL}, + {0x001E6C, 0x001E6C, UC_LU}, + {0x001E6D, 0x001E6D, UC_LL}, + {0x001E6E, 0x001E6E, UC_LU}, + {0x001E6F, 0x001E6F, UC_LL}, + {0x001E70, 0x001E70, UC_LU}, + {0x001E71, 0x001E71, UC_LL}, + {0x001E72, 0x001E72, UC_LU}, + {0x001E73, 0x001E73, UC_LL}, + {0x001E74, 0x001E74, UC_LU}, + {0x001E75, 0x001E75, UC_LL}, + {0x001E76, 0x001E76, UC_LU}, + {0x001E77, 0x001E77, UC_LL}, + {0x001E78, 0x001E78, UC_LU}, + {0x001E79, 0x001E79, UC_LL}, + {0x001E7A, 0x001E7A, UC_LU}, + {0x001E7B, 0x001E7B, UC_LL}, + {0x001E7C, 0x001E7C, UC_LU}, + {0x001E7D, 0x001E7D, UC_LL}, + {0x001E7E, 0x001E7E, UC_LU}, + {0x001E7F, 0x001E7F, UC_LL}, + {0x001E80, 0x001E80, UC_LU}, + {0x001E81, 0x001E81, UC_LL}, + {0x001E82, 0x001E82, UC_LU}, + {0x001E83, 0x001E83, UC_LL}, + {0x001E84, 0x001E84, UC_LU}, + {0x001E85, 0x001E85, UC_LL}, + {0x001E86, 0x001E86, UC_LU}, + {0x001E87, 0x001E87, UC_LL}, + {0x001E88, 0x001E88, UC_LU}, + {0x001E89, 0x001E89, UC_LL}, + {0x001E8A, 0x001E8A, UC_LU}, + {0x001E8B, 0x001E8B, UC_LL}, + {0x001E8C, 0x001E8C, UC_LU}, + {0x001E8D, 0x001E8D, UC_LL}, + {0x001E8E, 0x001E8E, UC_LU}, + {0x001E8F, 0x001E8F, UC_LL}, + {0x001E90, 0x001E90, UC_LU}, + {0x001E91, 0x001E91, UC_LL}, + {0x001E92, 0x001E92, UC_LU}, + {0x001E93, 0x001E93, UC_LL}, + {0x001E94, 0x001E94, UC_LU}, + {0x001E95, 0x001E9D, UC_LL}, + {0x001E9E, 0x001E9E, UC_LU}, + {0x001E9F, 0x001E9F, UC_LL}, + {0x001EA0, 0x001EA0, UC_LU}, + {0x001EA1, 0x001EA1, UC_LL}, + {0x001EA2, 0x001EA2, UC_LU}, + {0x001EA3, 0x001EA3, UC_LL}, + {0x001EA4, 0x001EA4, UC_LU}, + {0x001EA5, 0x001EA5, UC_LL}, + {0x001EA6, 0x001EA6, UC_LU}, + {0x001EA7, 0x001EA7, UC_LL}, + {0x001EA8, 0x001EA8, UC_LU}, + {0x001EA9, 0x001EA9, UC_LL}, + {0x001EAA, 0x001EAA, UC_LU}, + {0x001EAB, 0x001EAB, UC_LL}, + {0x001EAC, 0x001EAC, UC_LU}, + {0x001EAD, 0x001EAD, UC_LL}, + {0x001EAE, 0x001EAE, UC_LU}, + {0x001EAF, 0x001EAF, UC_LL}, + {0x001EB0, 0x001EB0, UC_LU}, + {0x001EB1, 0x001EB1, UC_LL}, + {0x001EB2, 0x001EB2, UC_LU}, + {0x001EB3, 0x001EB3, UC_LL}, + {0x001EB4, 0x001EB4, UC_LU}, + {0x001EB5, 0x001EB5, UC_LL}, + {0x001EB6, 0x001EB6, UC_LU}, + {0x001EB7, 0x001EB7, UC_LL}, + {0x001EB8, 0x001EB8, UC_LU}, + {0x001EB9, 0x001EB9, UC_LL}, + {0x001EBA, 0x001EBA, UC_LU}, + {0x001EBB, 0x001EBB, UC_LL}, + {0x001EBC, 0x001EBC, UC_LU}, + {0x001EBD, 0x001EBD, UC_LL}, + {0x001EBE, 0x001EBE, UC_LU}, + {0x001EBF, 0x001EBF, UC_LL}, + {0x001EC0, 0x001EC0, UC_LU}, + {0x001EC1, 0x001EC1, UC_LL}, + {0x001EC2, 0x001EC2, UC_LU}, + {0x001EC3, 0x001EC3, UC_LL}, + {0x001EC4, 0x001EC4, UC_LU}, + {0x001EC5, 0x001EC5, UC_LL}, + {0x001EC6, 0x001EC6, UC_LU}, + {0x001EC7, 0x001EC7, UC_LL}, + {0x001EC8, 0x001EC8, UC_LU}, + {0x001EC9, 0x001EC9, UC_LL}, + {0x001ECA, 0x001ECA, UC_LU}, + {0x001ECB, 0x001ECB, UC_LL}, + {0x001ECC, 0x001ECC, UC_LU}, + {0x001ECD, 0x001ECD, UC_LL}, + {0x001ECE, 0x001ECE, UC_LU}, + {0x001ECF, 0x001ECF, UC_LL}, + {0x001ED0, 0x001ED0, UC_LU}, + {0x001ED1, 0x001ED1, UC_LL}, + {0x001ED2, 0x001ED2, UC_LU}, + {0x001ED3, 0x001ED3, UC_LL}, + {0x001ED4, 0x001ED4, UC_LU}, + {0x001ED5, 0x001ED5, UC_LL}, + {0x001ED6, 0x001ED6, UC_LU}, + {0x001ED7, 0x001ED7, UC_LL}, + {0x001ED8, 0x001ED8, UC_LU}, + {0x001ED9, 0x001ED9, UC_LL}, + {0x001EDA, 0x001EDA, UC_LU}, + {0x001EDB, 0x001EDB, UC_LL}, + {0x001EDC, 0x001EDC, UC_LU}, + {0x001EDD, 0x001EDD, UC_LL}, + {0x001EDE, 0x001EDE, UC_LU}, + {0x001EDF, 0x001EDF, UC_LL}, + {0x001EE0, 0x001EE0, UC_LU}, + {0x001EE1, 0x001EE1, UC_LL}, + {0x001EE2, 0x001EE2, UC_LU}, + {0x001EE3, 0x001EE3, UC_LL}, + {0x001EE4, 0x001EE4, UC_LU}, + {0x001EE5, 0x001EE5, UC_LL}, + {0x001EE6, 0x001EE6, UC_LU}, + {0x001EE7, 0x001EE7, UC_LL}, + {0x001EE8, 0x001EE8, UC_LU}, + {0x001EE9, 0x001EE9, UC_LL}, + {0x001EEA, 0x001EEA, UC_LU}, + {0x001EEB, 0x001EEB, UC_LL}, + {0x001EEC, 0x001EEC, UC_LU}, + {0x001EED, 0x001EED, UC_LL}, + {0x001EEE, 0x001EEE, UC_LU}, + {0x001EEF, 0x001EEF, UC_LL}, + {0x001EF0, 0x001EF0, UC_LU}, + {0x001EF1, 0x001EF1, UC_LL}, + {0x001EF2, 0x001EF2, UC_LU}, + {0x001EF3, 0x001EF3, UC_LL}, + {0x001EF4, 0x001EF4, UC_LU}, + {0x001EF5, 0x001EF5, UC_LL}, + {0x001EF6, 0x001EF6, UC_LU}, + {0x001EF7, 0x001EF7, UC_LL}, + {0x001EF8, 0x001EF8, UC_LU}, + {0x001EF9, 0x001EF9, UC_LL}, + {0x001EFA, 0x001EFA, UC_LU}, + {0x001EFB, 0x001EFB, UC_LL}, + {0x001EFC, 0x001EFC, UC_LU}, + {0x001EFD, 0x001EFD, UC_LL}, + {0x001EFE, 0x001EFE, UC_LU}, + {0x001EFF, 0x001F07, UC_LL}, + {0x001F08, 0x001F0F, UC_LU}, + {0x001F10, 0x001F15, UC_LL}, + {0x001F18, 0x001F1D, UC_LU}, + {0x001F20, 0x001F27, UC_LL}, + {0x001F28, 0x001F2F, UC_LU}, + {0x001F30, 0x001F37, UC_LL}, + {0x001F38, 0x001F3F, UC_LU}, + {0x001F40, 0x001F45, UC_LL}, + {0x001F48, 0x001F4D, UC_LU}, + {0x001F50, 0x001F57, UC_LL}, + {0x001F59, 0x001F59, UC_LU}, + {0x001F5B, 0x001F5B, UC_LU}, + {0x001F5D, 0x001F5D, UC_LU}, + {0x001F5F, 0x001F5F, UC_LU}, + {0x001F60, 0x001F67, UC_LL}, + {0x001F68, 0x001F6F, UC_LU}, + {0x001F70, 0x001F7D, UC_LL}, + {0x001F80, 0x001F87, UC_LL}, + {0x001F88, 0x001F8F, UC_LT}, + {0x001F90, 0x001F97, UC_LL}, + {0x001F98, 0x001F9F, UC_LT}, + {0x001FA0, 0x001FA7, UC_LL}, + {0x001FA8, 0x001FAF, UC_LT}, + {0x001FB0, 0x001FB4, UC_LL}, + {0x001FB6, 0x001FB7, UC_LL}, + {0x001FB8, 0x001FBB, UC_LU}, + {0x001FBC, 0x001FBC, UC_LT}, + {0x001FBD, 0x001FBD, UC_SK}, + {0x001FBE, 0x001FBE, UC_LL}, + {0x001FBF, 0x001FC1, UC_SK}, + {0x001FC2, 0x001FC4, UC_LL}, + {0x001FC6, 0x001FC7, UC_LL}, + {0x001FC8, 0x001FCB, UC_LU}, + {0x001FCC, 0x001FCC, UC_LT}, + {0x001FCD, 0x001FCF, UC_SK}, + {0x001FD0, 0x001FD3, UC_LL}, + {0x001FD6, 0x001FD7, UC_LL}, + {0x001FD8, 0x001FDB, UC_LU}, + {0x001FDD, 0x001FDF, UC_SK}, + {0x001FE0, 0x001FE7, UC_LL}, + {0x001FE8, 0x001FEC, UC_LU}, + {0x001FED, 0x001FEF, UC_SK}, + {0x001FF2, 0x001FF4, UC_LL}, + {0x001FF6, 0x001FF7, UC_LL}, + {0x001FF8, 0x001FFB, UC_LU}, + {0x001FFC, 0x001FFC, UC_LT}, + {0x001FFD, 0x001FFE, UC_SK}, + {0x002000, 0x00200A, UC_ZS}, + {0x00200B, 0x00200F, UC_CF}, + {0x002010, 0x002015, UC_PD}, + {0x002016, 0x002017, UC_PO}, + {0x002018, 0x002018, UC_PI}, + {0x002019, 0x002019, UC_PF}, + {0x00201A, 0x00201A, UC_PS}, + {0x00201B, 0x00201C, UC_PI}, + {0x00201D, 0x00201D, UC_PF}, + {0x00201E, 0x00201E, UC_PS}, + {0x00201F, 0x00201F, UC_PI}, + {0x002020, 0x002027, UC_PO}, + {0x002028, 0x002028, UC_ZL}, + {0x002029, 0x002029, UC_ZP}, + {0x00202A, 0x00202E, UC_CF}, + {0x00202F, 0x00202F, UC_ZS}, + {0x002030, 0x002038, UC_PO}, + {0x002039, 0x002039, UC_PI}, + {0x00203A, 0x00203A, UC_PF}, + {0x00203B, 0x00203E, UC_PO}, + {0x00203F, 0x002040, UC_PC}, + {0x002041, 0x002043, UC_PO}, + {0x002044, 0x002044, UC_SM}, + {0x002045, 0x002045, UC_PS}, + {0x002046, 0x002046, UC_PE}, + {0x002047, 0x002051, UC_PO}, + {0x002052, 0x002052, UC_SM}, + {0x002053, 0x002053, UC_PO}, + {0x002054, 0x002054, UC_PC}, + {0x002055, 0x00205E, UC_PO}, + {0x00205F, 0x00205F, UC_ZS}, + {0x002060, 0x002064, UC_CF}, + {0x002066, 0x00206F, UC_CF}, + {0x002070, 0x002070, UC_NO}, + {0x002071, 0x002071, UC_LM}, + {0x002074, 0x002079, UC_NO}, + {0x00207A, 0x00207C, UC_SM}, + {0x00207D, 0x00207D, UC_PS}, + {0x00207E, 0x00207E, UC_PE}, + {0x00207F, 0x00207F, UC_LM}, + {0x002080, 0x002089, UC_NO}, + {0x00208A, 0x00208C, UC_SM}, + {0x00208D, 0x00208D, UC_PS}, + {0x00208E, 0x00208E, UC_PE}, + {0x002090, 0x00209C, UC_LM}, + {0x0020A0, 0x0020C0, UC_SC}, + {0x0020D0, 0x0020DC, UC_MN}, + {0x0020DD, 0x0020E0, UC_ME}, + {0x0020E1, 0x0020E1, UC_MN}, + {0x0020E2, 0x0020E4, UC_ME}, + {0x0020E5, 0x0020F0, UC_MN}, + {0x002100, 0x002101, UC_SO}, + {0x002102, 0x002102, UC_LU}, + {0x002103, 0x002106, UC_SO}, + {0x002107, 0x002107, UC_LU}, + {0x002108, 0x002109, UC_SO}, + {0x00210A, 0x00210A, UC_LL}, + {0x00210B, 0x00210D, UC_LU}, + {0x00210E, 0x00210F, UC_LL}, + {0x002110, 0x002112, UC_LU}, + {0x002113, 0x002113, UC_LL}, + {0x002114, 0x002114, UC_SO}, + {0x002115, 0x002115, UC_LU}, + {0x002116, 0x002117, UC_SO}, + {0x002118, 0x002118, UC_SM}, + {0x002119, 0x00211D, UC_LU}, + {0x00211E, 0x002123, UC_SO}, + {0x002124, 0x002124, UC_LU}, + {0x002125, 0x002125, UC_SO}, + {0x002126, 0x002126, UC_LU}, + {0x002127, 0x002127, UC_SO}, + {0x002128, 0x002128, UC_LU}, + {0x002129, 0x002129, UC_SO}, + {0x00212A, 0x00212D, UC_LU}, + {0x00212E, 0x00212E, UC_SO}, + {0x00212F, 0x00212F, UC_LL}, + {0x002130, 0x002133, UC_LU}, + {0x002134, 0x002134, UC_LL}, + {0x002135, 0x002138, UC_LO}, + {0x002139, 0x002139, UC_LL}, + {0x00213A, 0x00213B, UC_SO}, + {0x00213C, 0x00213D, UC_LL}, + {0x00213E, 0x00213F, UC_LU}, + {0x002140, 0x002144, UC_SM}, + {0x002145, 0x002145, UC_LU}, + {0x002146, 0x002149, UC_LL}, + {0x00214A, 0x00214A, UC_SO}, + {0x00214B, 0x00214B, UC_SM}, + {0x00214C, 0x00214D, UC_SO}, + {0x00214E, 0x00214E, UC_LL}, + {0x00214F, 0x00214F, UC_SO}, + {0x002150, 0x00215F, UC_NO}, + {0x002160, 0x002182, UC_NL}, + {0x002183, 0x002183, UC_LU}, + {0x002184, 0x002184, UC_LL}, + {0x002185, 0x002188, UC_NL}, + {0x002189, 0x002189, UC_NO}, + {0x00218A, 0x00218B, UC_SO}, + {0x002190, 0x002194, UC_SM}, + {0x002195, 0x002199, UC_SO}, + {0x00219A, 0x00219B, UC_SM}, + {0x00219C, 0x00219F, UC_SO}, + {0x0021A0, 0x0021A0, UC_SM}, + {0x0021A1, 0x0021A2, UC_SO}, + {0x0021A3, 0x0021A3, UC_SM}, + {0x0021A4, 0x0021A5, UC_SO}, + {0x0021A6, 0x0021A6, UC_SM}, + {0x0021A7, 0x0021AD, UC_SO}, + {0x0021AE, 0x0021AE, UC_SM}, + {0x0021AF, 0x0021CD, UC_SO}, + {0x0021CE, 0x0021CF, UC_SM}, + {0x0021D0, 0x0021D1, UC_SO}, + {0x0021D2, 0x0021D2, UC_SM}, + {0x0021D3, 0x0021D3, UC_SO}, + {0x0021D4, 0x0021D4, UC_SM}, + {0x0021D5, 0x0021F3, UC_SO}, + {0x0021F4, 0x0022FF, UC_SM}, + {0x002300, 0x002307, UC_SO}, + {0x002308, 0x002308, UC_PS}, + {0x002309, 0x002309, UC_PE}, + {0x00230A, 0x00230A, UC_PS}, + {0x00230B, 0x00230B, UC_PE}, + {0x00230C, 0x00231F, UC_SO}, + {0x002320, 0x002321, UC_SM}, + {0x002322, 0x002328, UC_SO}, + {0x002329, 0x002329, UC_PS}, + {0x00232A, 0x00232A, UC_PE}, + {0x00232B, 0x00237B, UC_SO}, + {0x00237C, 0x00237C, UC_SM}, + {0x00237D, 0x00239A, UC_SO}, + {0x00239B, 0x0023B3, UC_SM}, + {0x0023B4, 0x0023DB, UC_SO}, + {0x0023DC, 0x0023E1, UC_SM}, + {0x0023E2, 0x002426, UC_SO}, + {0x002440, 0x00244A, UC_SO}, + {0x002460, 0x00249B, UC_NO}, + {0x00249C, 0x0024E9, UC_SO}, + {0x0024EA, 0x0024FF, UC_NO}, + {0x002500, 0x0025B6, UC_SO}, + {0x0025B7, 0x0025B7, UC_SM}, + {0x0025B8, 0x0025C0, UC_SO}, + {0x0025C1, 0x0025C1, UC_SM}, + {0x0025C2, 0x0025F7, UC_SO}, + {0x0025F8, 0x0025FF, UC_SM}, + {0x002600, 0x00266E, UC_SO}, + {0x00266F, 0x00266F, UC_SM}, + {0x002670, 0x002767, UC_SO}, + {0x002768, 0x002768, UC_PS}, + {0x002769, 0x002769, UC_PE}, + {0x00276A, 0x00276A, UC_PS}, + {0x00276B, 0x00276B, UC_PE}, + {0x00276C, 0x00276C, UC_PS}, + {0x00276D, 0x00276D, UC_PE}, + {0x00276E, 0x00276E, UC_PS}, + {0x00276F, 0x00276F, UC_PE}, + {0x002770, 0x002770, UC_PS}, + {0x002771, 0x002771, UC_PE}, + {0x002772, 0x002772, UC_PS}, + {0x002773, 0x002773, UC_PE}, + {0x002774, 0x002774, UC_PS}, + {0x002775, 0x002775, UC_PE}, + {0x002776, 0x002793, UC_NO}, + {0x002794, 0x0027BF, UC_SO}, + {0x0027C0, 0x0027C4, UC_SM}, + {0x0027C5, 0x0027C5, UC_PS}, + {0x0027C6, 0x0027C6, UC_PE}, + {0x0027C7, 0x0027E5, UC_SM}, + {0x0027E6, 0x0027E6, UC_PS}, + {0x0027E7, 0x0027E7, UC_PE}, + {0x0027E8, 0x0027E8, UC_PS}, + {0x0027E9, 0x0027E9, UC_PE}, + {0x0027EA, 0x0027EA, UC_PS}, + {0x0027EB, 0x0027EB, UC_PE}, + {0x0027EC, 0x0027EC, UC_PS}, + {0x0027ED, 0x0027ED, UC_PE}, + {0x0027EE, 0x0027EE, UC_PS}, + {0x0027EF, 0x0027EF, UC_PE}, + {0x0027F0, 0x0027FF, UC_SM}, + {0x002800, 0x0028FF, UC_SO}, + {0x002900, 0x002982, UC_SM}, + {0x002983, 0x002983, UC_PS}, + {0x002984, 0x002984, UC_PE}, + {0x002985, 0x002985, UC_PS}, + {0x002986, 0x002986, UC_PE}, + {0x002987, 0x002987, UC_PS}, + {0x002988, 0x002988, UC_PE}, + {0x002989, 0x002989, UC_PS}, + {0x00298A, 0x00298A, UC_PE}, + {0x00298B, 0x00298B, UC_PS}, + {0x00298C, 0x00298C, UC_PE}, + {0x00298D, 0x00298D, UC_PS}, + {0x00298E, 0x00298E, UC_PE}, + {0x00298F, 0x00298F, UC_PS}, + {0x002990, 0x002990, UC_PE}, + {0x002991, 0x002991, UC_PS}, + {0x002992, 0x002992, UC_PE}, + {0x002993, 0x002993, UC_PS}, + {0x002994, 0x002994, UC_PE}, + {0x002995, 0x002995, UC_PS}, + {0x002996, 0x002996, UC_PE}, + {0x002997, 0x002997, UC_PS}, + {0x002998, 0x002998, UC_PE}, + {0x002999, 0x0029D7, UC_SM}, + {0x0029D8, 0x0029D8, UC_PS}, + {0x0029D9, 0x0029D9, UC_PE}, + {0x0029DA, 0x0029DA, UC_PS}, + {0x0029DB, 0x0029DB, UC_PE}, + {0x0029DC, 0x0029FB, UC_SM}, + {0x0029FC, 0x0029FC, UC_PS}, + {0x0029FD, 0x0029FD, UC_PE}, + {0x0029FE, 0x002AFF, UC_SM}, + {0x002B00, 0x002B2F, UC_SO}, + {0x002B30, 0x002B44, UC_SM}, + {0x002B45, 0x002B46, UC_SO}, + {0x002B47, 0x002B4C, UC_SM}, + {0x002B4D, 0x002B73, UC_SO}, + {0x002B76, 0x002B95, UC_SO}, + {0x002B97, 0x002BFF, UC_SO}, + {0x002C00, 0x002C2F, UC_LU}, + {0x002C30, 0x002C5F, UC_LL}, + {0x002C60, 0x002C60, UC_LU}, + {0x002C61, 0x002C61, UC_LL}, + {0x002C62, 0x002C64, UC_LU}, + {0x002C65, 0x002C66, UC_LL}, + {0x002C67, 0x002C67, UC_LU}, + {0x002C68, 0x002C68, UC_LL}, + {0x002C69, 0x002C69, UC_LU}, + {0x002C6A, 0x002C6A, UC_LL}, + {0x002C6B, 0x002C6B, UC_LU}, + {0x002C6C, 0x002C6C, UC_LL}, + {0x002C6D, 0x002C70, UC_LU}, + {0x002C71, 0x002C71, UC_LL}, + {0x002C72, 0x002C72, UC_LU}, + {0x002C73, 0x002C74, UC_LL}, + {0x002C75, 0x002C75, UC_LU}, + {0x002C76, 0x002C7B, UC_LL}, + {0x002C7C, 0x002C7D, UC_LM}, + {0x002C7E, 0x002C80, UC_LU}, + {0x002C81, 0x002C81, UC_LL}, + {0x002C82, 0x002C82, UC_LU}, + {0x002C83, 0x002C83, UC_LL}, + {0x002C84, 0x002C84, UC_LU}, + {0x002C85, 0x002C85, UC_LL}, + {0x002C86, 0x002C86, UC_LU}, + {0x002C87, 0x002C87, UC_LL}, + {0x002C88, 0x002C88, UC_LU}, + {0x002C89, 0x002C89, UC_LL}, + {0x002C8A, 0x002C8A, UC_LU}, + {0x002C8B, 0x002C8B, UC_LL}, + {0x002C8C, 0x002C8C, UC_LU}, + {0x002C8D, 0x002C8D, UC_LL}, + {0x002C8E, 0x002C8E, UC_LU}, + {0x002C8F, 0x002C8F, UC_LL}, + {0x002C90, 0x002C90, UC_LU}, + {0x002C91, 0x002C91, UC_LL}, + {0x002C92, 0x002C92, UC_LU}, + {0x002C93, 0x002C93, UC_LL}, + {0x002C94, 0x002C94, UC_LU}, + {0x002C95, 0x002C95, UC_LL}, + {0x002C96, 0x002C96, UC_LU}, + {0x002C97, 0x002C97, UC_LL}, + {0x002C98, 0x002C98, UC_LU}, + {0x002C99, 0x002C99, UC_LL}, + {0x002C9A, 0x002C9A, UC_LU}, + {0x002C9B, 0x002C9B, UC_LL}, + {0x002C9C, 0x002C9C, UC_LU}, + {0x002C9D, 0x002C9D, UC_LL}, + {0x002C9E, 0x002C9E, UC_LU}, + {0x002C9F, 0x002C9F, UC_LL}, + {0x002CA0, 0x002CA0, UC_LU}, + {0x002CA1, 0x002CA1, UC_LL}, + {0x002CA2, 0x002CA2, UC_LU}, + {0x002CA3, 0x002CA3, UC_LL}, + {0x002CA4, 0x002CA4, UC_LU}, + {0x002CA5, 0x002CA5, UC_LL}, + {0x002CA6, 0x002CA6, UC_LU}, + {0x002CA7, 0x002CA7, UC_LL}, + {0x002CA8, 0x002CA8, UC_LU}, + {0x002CA9, 0x002CA9, UC_LL}, + {0x002CAA, 0x002CAA, UC_LU}, + {0x002CAB, 0x002CAB, UC_LL}, + {0x002CAC, 0x002CAC, UC_LU}, + {0x002CAD, 0x002CAD, UC_LL}, + {0x002CAE, 0x002CAE, UC_LU}, + {0x002CAF, 0x002CAF, UC_LL}, + {0x002CB0, 0x002CB0, UC_LU}, + {0x002CB1, 0x002CB1, UC_LL}, + {0x002CB2, 0x002CB2, UC_LU}, + {0x002CB3, 0x002CB3, UC_LL}, + {0x002CB4, 0x002CB4, UC_LU}, + {0x002CB5, 0x002CB5, UC_LL}, + {0x002CB6, 0x002CB6, UC_LU}, + {0x002CB7, 0x002CB7, UC_LL}, + {0x002CB8, 0x002CB8, UC_LU}, + {0x002CB9, 0x002CB9, UC_LL}, + {0x002CBA, 0x002CBA, UC_LU}, + {0x002CBB, 0x002CBB, UC_LL}, + {0x002CBC, 0x002CBC, UC_LU}, + {0x002CBD, 0x002CBD, UC_LL}, + {0x002CBE, 0x002CBE, UC_LU}, + {0x002CBF, 0x002CBF, UC_LL}, + {0x002CC0, 0x002CC0, UC_LU}, + {0x002CC1, 0x002CC1, UC_LL}, + {0x002CC2, 0x002CC2, UC_LU}, + {0x002CC3, 0x002CC3, UC_LL}, + {0x002CC4, 0x002CC4, UC_LU}, + {0x002CC5, 0x002CC5, UC_LL}, + {0x002CC6, 0x002CC6, UC_LU}, + {0x002CC7, 0x002CC7, UC_LL}, + {0x002CC8, 0x002CC8, UC_LU}, + {0x002CC9, 0x002CC9, UC_LL}, + {0x002CCA, 0x002CCA, UC_LU}, + {0x002CCB, 0x002CCB, UC_LL}, + {0x002CCC, 0x002CCC, UC_LU}, + {0x002CCD, 0x002CCD, UC_LL}, + {0x002CCE, 0x002CCE, UC_LU}, + {0x002CCF, 0x002CCF, UC_LL}, + {0x002CD0, 0x002CD0, UC_LU}, + {0x002CD1, 0x002CD1, UC_LL}, + {0x002CD2, 0x002CD2, UC_LU}, + {0x002CD3, 0x002CD3, UC_LL}, + {0x002CD4, 0x002CD4, UC_LU}, + {0x002CD5, 0x002CD5, UC_LL}, + {0x002CD6, 0x002CD6, UC_LU}, + {0x002CD7, 0x002CD7, UC_LL}, + {0x002CD8, 0x002CD8, UC_LU}, + {0x002CD9, 0x002CD9, UC_LL}, + {0x002CDA, 0x002CDA, UC_LU}, + {0x002CDB, 0x002CDB, UC_LL}, + {0x002CDC, 0x002CDC, UC_LU}, + {0x002CDD, 0x002CDD, UC_LL}, + {0x002CDE, 0x002CDE, UC_LU}, + {0x002CDF, 0x002CDF, UC_LL}, + {0x002CE0, 0x002CE0, UC_LU}, + {0x002CE1, 0x002CE1, UC_LL}, + {0x002CE2, 0x002CE2, UC_LU}, + {0x002CE3, 0x002CE4, UC_LL}, + {0x002CE5, 0x002CEA, UC_SO}, + {0x002CEB, 0x002CEB, UC_LU}, + {0x002CEC, 0x002CEC, UC_LL}, + {0x002CED, 0x002CED, UC_LU}, + {0x002CEE, 0x002CEE, UC_LL}, + {0x002CEF, 0x002CF1, UC_MN}, + {0x002CF2, 0x002CF2, UC_LU}, + {0x002CF3, 0x002CF3, UC_LL}, + {0x002CF9, 0x002CFC, UC_PO}, + {0x002CFD, 0x002CFD, UC_NO}, + {0x002CFE, 0x002CFF, UC_PO}, + {0x002D00, 0x002D25, UC_LL}, + {0x002D27, 0x002D27, UC_LL}, + {0x002D2D, 0x002D2D, UC_LL}, + {0x002D30, 0x002D67, UC_LO}, + {0x002D6F, 0x002D6F, UC_LM}, + {0x002D70, 0x002D70, UC_PO}, + {0x002D7F, 0x002D7F, UC_MN}, + {0x002D80, 0x002D96, UC_LO}, + {0x002DA0, 0x002DA6, UC_LO}, + {0x002DA8, 0x002DAE, UC_LO}, + {0x002DB0, 0x002DB6, UC_LO}, + {0x002DB8, 0x002DBE, UC_LO}, + {0x002DC0, 0x002DC6, UC_LO}, + {0x002DC8, 0x002DCE, UC_LO}, + {0x002DD0, 0x002DD6, UC_LO}, + {0x002DD8, 0x002DDE, UC_LO}, + {0x002DE0, 0x002DFF, UC_MN}, + {0x002E00, 0x002E01, UC_PO}, + {0x002E02, 0x002E02, UC_PI}, + {0x002E03, 0x002E03, UC_PF}, + {0x002E04, 0x002E04, UC_PI}, + {0x002E05, 0x002E05, UC_PF}, + {0x002E06, 0x002E08, UC_PO}, + {0x002E09, 0x002E09, UC_PI}, + {0x002E0A, 0x002E0A, UC_PF}, + {0x002E0B, 0x002E0B, UC_PO}, + {0x002E0C, 0x002E0C, UC_PI}, + {0x002E0D, 0x002E0D, UC_PF}, + {0x002E0E, 0x002E16, UC_PO}, + {0x002E17, 0x002E17, UC_PD}, + {0x002E18, 0x002E19, UC_PO}, + {0x002E1A, 0x002E1A, UC_PD}, + {0x002E1B, 0x002E1B, UC_PO}, + {0x002E1C, 0x002E1C, UC_PI}, + {0x002E1D, 0x002E1D, UC_PF}, + {0x002E1E, 0x002E1F, UC_PO}, + {0x002E20, 0x002E20, UC_PI}, + {0x002E21, 0x002E21, UC_PF}, + {0x002E22, 0x002E22, UC_PS}, + {0x002E23, 0x002E23, UC_PE}, + {0x002E24, 0x002E24, UC_PS}, + {0x002E25, 0x002E25, UC_PE}, + {0x002E26, 0x002E26, UC_PS}, + {0x002E27, 0x002E27, UC_PE}, + {0x002E28, 0x002E28, UC_PS}, + {0x002E29, 0x002E29, UC_PE}, + {0x002E2A, 0x002E2E, UC_PO}, + {0x002E2F, 0x002E2F, UC_LM}, + {0x002E30, 0x002E39, UC_PO}, + {0x002E3A, 0x002E3B, UC_PD}, + {0x002E3C, 0x002E3F, UC_PO}, + {0x002E40, 0x002E40, UC_PD}, + {0x002E41, 0x002E41, UC_PO}, + {0x002E42, 0x002E42, UC_PS}, + {0x002E43, 0x002E4F, UC_PO}, + {0x002E50, 0x002E51, UC_SO}, + {0x002E52, 0x002E54, UC_PO}, + {0x002E55, 0x002E55, UC_PS}, + {0x002E56, 0x002E56, UC_PE}, + {0x002E57, 0x002E57, UC_PS}, + {0x002E58, 0x002E58, UC_PE}, + {0x002E59, 0x002E59, UC_PS}, + {0x002E5A, 0x002E5A, UC_PE}, + {0x002E5B, 0x002E5B, UC_PS}, + {0x002E5C, 0x002E5C, UC_PE}, + {0x002E5D, 0x002E5D, UC_PD}, + {0x002E80, 0x002E99, UC_SO}, + {0x002E9B, 0x002EF3, UC_SO}, + {0x002F00, 0x002FD5, UC_SO}, + {0x002FF0, 0x002FFF, UC_SO}, + {0x003000, 0x003000, UC_ZS}, + {0x003001, 0x003003, UC_PO}, + {0x003004, 0x003004, UC_SO}, + {0x003005, 0x003005, UC_LM}, + {0x003006, 0x003006, UC_LO}, + {0x003007, 0x003007, UC_NL}, + {0x003008, 0x003008, UC_PS}, + {0x003009, 0x003009, UC_PE}, + {0x00300A, 0x00300A, UC_PS}, + {0x00300B, 0x00300B, UC_PE}, + {0x00300C, 0x00300C, UC_PS}, + {0x00300D, 0x00300D, UC_PE}, + {0x00300E, 0x00300E, UC_PS}, + {0x00300F, 0x00300F, UC_PE}, + {0x003010, 0x003010, UC_PS}, + {0x003011, 0x003011, UC_PE}, + {0x003012, 0x003013, UC_SO}, + {0x003014, 0x003014, UC_PS}, + {0x003015, 0x003015, UC_PE}, + {0x003016, 0x003016, UC_PS}, + {0x003017, 0x003017, UC_PE}, + {0x003018, 0x003018, UC_PS}, + {0x003019, 0x003019, UC_PE}, + {0x00301A, 0x00301A, UC_PS}, + {0x00301B, 0x00301B, UC_PE}, + {0x00301C, 0x00301C, UC_PD}, + {0x00301D, 0x00301D, UC_PS}, + {0x00301E, 0x00301F, UC_PE}, + {0x003020, 0x003020, UC_SO}, + {0x003021, 0x003029, UC_NL}, + {0x00302A, 0x00302D, UC_MN}, + {0x00302E, 0x00302F, UC_MC}, + {0x003030, 0x003030, UC_PD}, + {0x003031, 0x003035, UC_LM}, + {0x003036, 0x003037, UC_SO}, + {0x003038, 0x00303A, UC_NL}, + {0x00303B, 0x00303B, UC_LM}, + {0x00303C, 0x00303C, UC_LO}, + {0x00303D, 0x00303D, UC_PO}, + {0x00303E, 0x00303F, UC_SO}, + {0x003041, 0x003096, UC_LO}, + {0x003099, 0x00309A, UC_MN}, + {0x00309B, 0x00309C, UC_SK}, + {0x00309D, 0x00309E, UC_LM}, + {0x00309F, 0x00309F, UC_LO}, + {0x0030A0, 0x0030A0, UC_PD}, + {0x0030A1, 0x0030FA, UC_LO}, + {0x0030FB, 0x0030FB, UC_PO}, + {0x0030FC, 0x0030FE, UC_LM}, + {0x0030FF, 0x0030FF, UC_LO}, + {0x003105, 0x00312F, UC_LO}, + {0x003131, 0x00318E, UC_LO}, + {0x003190, 0x003191, UC_SO}, + {0x003192, 0x003195, UC_NO}, + {0x003196, 0x00319F, UC_SO}, + {0x0031A0, 0x0031BF, UC_LO}, + {0x0031C0, 0x0031E3, UC_SO}, + {0x0031EF, 0x0031EF, UC_SO}, + {0x0031F0, 0x0031FF, UC_LO}, + {0x003200, 0x00321E, UC_SO}, + {0x003220, 0x003229, UC_NO}, + {0x00322A, 0x003247, UC_SO}, + {0x003248, 0x00324F, UC_NO}, + {0x003250, 0x003250, UC_SO}, + {0x003251, 0x00325F, UC_NO}, + {0x003260, 0x00327F, UC_SO}, + {0x003280, 0x003289, UC_NO}, + {0x00328A, 0x0032B0, UC_SO}, + {0x0032B1, 0x0032BF, UC_NO}, + {0x0032C0, 0x0033FF, UC_SO}, + {0x003400, 0x004DBF, UC_LO}, + {0x004DC0, 0x004DFF, UC_SO}, + {0x004E00, 0x00A014, UC_LO}, + {0x00A015, 0x00A015, UC_LM}, + {0x00A016, 0x00A48C, UC_LO}, + {0x00A490, 0x00A4C6, UC_SO}, + {0x00A4D0, 0x00A4F7, UC_LO}, + {0x00A4F8, 0x00A4FD, UC_LM}, + {0x00A4FE, 0x00A4FF, UC_PO}, + {0x00A500, 0x00A60B, UC_LO}, + {0x00A60C, 0x00A60C, UC_LM}, + {0x00A60D, 0x00A60F, UC_PO}, + {0x00A610, 0x00A61F, UC_LO}, + {0x00A620, 0x00A629, UC_ND}, + {0x00A62A, 0x00A62B, UC_LO}, + {0x00A640, 0x00A640, UC_LU}, + {0x00A641, 0x00A641, UC_LL}, + {0x00A642, 0x00A642, UC_LU}, + {0x00A643, 0x00A643, UC_LL}, + {0x00A644, 0x00A644, UC_LU}, + {0x00A645, 0x00A645, UC_LL}, + {0x00A646, 0x00A646, UC_LU}, + {0x00A647, 0x00A647, UC_LL}, + {0x00A648, 0x00A648, UC_LU}, + {0x00A649, 0x00A649, UC_LL}, + {0x00A64A, 0x00A64A, UC_LU}, + {0x00A64B, 0x00A64B, UC_LL}, + {0x00A64C, 0x00A64C, UC_LU}, + {0x00A64D, 0x00A64D, UC_LL}, + {0x00A64E, 0x00A64E, UC_LU}, + {0x00A64F, 0x00A64F, UC_LL}, + {0x00A650, 0x00A650, UC_LU}, + {0x00A651, 0x00A651, UC_LL}, + {0x00A652, 0x00A652, UC_LU}, + {0x00A653, 0x00A653, UC_LL}, + {0x00A654, 0x00A654, UC_LU}, + {0x00A655, 0x00A655, UC_LL}, + {0x00A656, 0x00A656, UC_LU}, + {0x00A657, 0x00A657, UC_LL}, + {0x00A658, 0x00A658, UC_LU}, + {0x00A659, 0x00A659, UC_LL}, + {0x00A65A, 0x00A65A, UC_LU}, + {0x00A65B, 0x00A65B, UC_LL}, + {0x00A65C, 0x00A65C, UC_LU}, + {0x00A65D, 0x00A65D, UC_LL}, + {0x00A65E, 0x00A65E, UC_LU}, + {0x00A65F, 0x00A65F, UC_LL}, + {0x00A660, 0x00A660, UC_LU}, + {0x00A661, 0x00A661, UC_LL}, + {0x00A662, 0x00A662, UC_LU}, + {0x00A663, 0x00A663, UC_LL}, + {0x00A664, 0x00A664, UC_LU}, + {0x00A665, 0x00A665, UC_LL}, + {0x00A666, 0x00A666, UC_LU}, + {0x00A667, 0x00A667, UC_LL}, + {0x00A668, 0x00A668, UC_LU}, + {0x00A669, 0x00A669, UC_LL}, + {0x00A66A, 0x00A66A, UC_LU}, + {0x00A66B, 0x00A66B, UC_LL}, + {0x00A66C, 0x00A66C, UC_LU}, + {0x00A66D, 0x00A66D, UC_LL}, + {0x00A66E, 0x00A66E, UC_LO}, + {0x00A66F, 0x00A66F, UC_MN}, + {0x00A670, 0x00A672, UC_ME}, + {0x00A673, 0x00A673, UC_PO}, + {0x00A674, 0x00A67D, UC_MN}, + {0x00A67E, 0x00A67E, UC_PO}, + {0x00A67F, 0x00A67F, UC_LM}, + {0x00A680, 0x00A680, UC_LU}, + {0x00A681, 0x00A681, UC_LL}, + {0x00A682, 0x00A682, UC_LU}, + {0x00A683, 0x00A683, UC_LL}, + {0x00A684, 0x00A684, UC_LU}, + {0x00A685, 0x00A685, UC_LL}, + {0x00A686, 0x00A686, UC_LU}, + {0x00A687, 0x00A687, UC_LL}, + {0x00A688, 0x00A688, UC_LU}, + {0x00A689, 0x00A689, UC_LL}, + {0x00A68A, 0x00A68A, UC_LU}, + {0x00A68B, 0x00A68B, UC_LL}, + {0x00A68C, 0x00A68C, UC_LU}, + {0x00A68D, 0x00A68D, UC_LL}, + {0x00A68E, 0x00A68E, UC_LU}, + {0x00A68F, 0x00A68F, UC_LL}, + {0x00A690, 0x00A690, UC_LU}, + {0x00A691, 0x00A691, UC_LL}, + {0x00A692, 0x00A692, UC_LU}, + {0x00A693, 0x00A693, UC_LL}, + {0x00A694, 0x00A694, UC_LU}, + {0x00A695, 0x00A695, UC_LL}, + {0x00A696, 0x00A696, UC_LU}, + {0x00A697, 0x00A697, UC_LL}, + {0x00A698, 0x00A698, UC_LU}, + {0x00A699, 0x00A699, UC_LL}, + {0x00A69A, 0x00A69A, UC_LU}, + {0x00A69B, 0x00A69B, UC_LL}, + {0x00A69C, 0x00A69D, UC_LM}, + {0x00A69E, 0x00A69F, UC_MN}, + {0x00A6A0, 0x00A6E5, UC_LO}, + {0x00A6E6, 0x00A6EF, UC_NL}, + {0x00A6F0, 0x00A6F1, UC_MN}, + {0x00A6F2, 0x00A6F7, UC_PO}, + {0x00A700, 0x00A716, UC_SK}, + {0x00A717, 0x00A71F, UC_LM}, + {0x00A720, 0x00A721, UC_SK}, + {0x00A722, 0x00A722, UC_LU}, + {0x00A723, 0x00A723, UC_LL}, + {0x00A724, 0x00A724, UC_LU}, + {0x00A725, 0x00A725, UC_LL}, + {0x00A726, 0x00A726, UC_LU}, + {0x00A727, 0x00A727, UC_LL}, + {0x00A728, 0x00A728, UC_LU}, + {0x00A729, 0x00A729, UC_LL}, + {0x00A72A, 0x00A72A, UC_LU}, + {0x00A72B, 0x00A72B, UC_LL}, + {0x00A72C, 0x00A72C, UC_LU}, + {0x00A72D, 0x00A72D, UC_LL}, + {0x00A72E, 0x00A72E, UC_LU}, + {0x00A72F, 0x00A731, UC_LL}, + {0x00A732, 0x00A732, UC_LU}, + {0x00A733, 0x00A733, UC_LL}, + {0x00A734, 0x00A734, UC_LU}, + {0x00A735, 0x00A735, UC_LL}, + {0x00A736, 0x00A736, UC_LU}, + {0x00A737, 0x00A737, UC_LL}, + {0x00A738, 0x00A738, UC_LU}, + {0x00A739, 0x00A739, UC_LL}, + {0x00A73A, 0x00A73A, UC_LU}, + {0x00A73B, 0x00A73B, UC_LL}, + {0x00A73C, 0x00A73C, UC_LU}, + {0x00A73D, 0x00A73D, UC_LL}, + {0x00A73E, 0x00A73E, UC_LU}, + {0x00A73F, 0x00A73F, UC_LL}, + {0x00A740, 0x00A740, UC_LU}, + {0x00A741, 0x00A741, UC_LL}, + {0x00A742, 0x00A742, UC_LU}, + {0x00A743, 0x00A743, UC_LL}, + {0x00A744, 0x00A744, UC_LU}, + {0x00A745, 0x00A745, UC_LL}, + {0x00A746, 0x00A746, UC_LU}, + {0x00A747, 0x00A747, UC_LL}, + {0x00A748, 0x00A748, UC_LU}, + {0x00A749, 0x00A749, UC_LL}, + {0x00A74A, 0x00A74A, UC_LU}, + {0x00A74B, 0x00A74B, UC_LL}, + {0x00A74C, 0x00A74C, UC_LU}, + {0x00A74D, 0x00A74D, UC_LL}, + {0x00A74E, 0x00A74E, UC_LU}, + {0x00A74F, 0x00A74F, UC_LL}, + {0x00A750, 0x00A750, UC_LU}, + {0x00A751, 0x00A751, UC_LL}, + {0x00A752, 0x00A752, UC_LU}, + {0x00A753, 0x00A753, UC_LL}, + {0x00A754, 0x00A754, UC_LU}, + {0x00A755, 0x00A755, UC_LL}, + {0x00A756, 0x00A756, UC_LU}, + {0x00A757, 0x00A757, UC_LL}, + {0x00A758, 0x00A758, UC_LU}, + {0x00A759, 0x00A759, UC_LL}, + {0x00A75A, 0x00A75A, UC_LU}, + {0x00A75B, 0x00A75B, UC_LL}, + {0x00A75C, 0x00A75C, UC_LU}, + {0x00A75D, 0x00A75D, UC_LL}, + {0x00A75E, 0x00A75E, UC_LU}, + {0x00A75F, 0x00A75F, UC_LL}, + {0x00A760, 0x00A760, UC_LU}, + {0x00A761, 0x00A761, UC_LL}, + {0x00A762, 0x00A762, UC_LU}, + {0x00A763, 0x00A763, UC_LL}, + {0x00A764, 0x00A764, UC_LU}, + {0x00A765, 0x00A765, UC_LL}, + {0x00A766, 0x00A766, UC_LU}, + {0x00A767, 0x00A767, UC_LL}, + {0x00A768, 0x00A768, UC_LU}, + {0x00A769, 0x00A769, UC_LL}, + {0x00A76A, 0x00A76A, UC_LU}, + {0x00A76B, 0x00A76B, UC_LL}, + {0x00A76C, 0x00A76C, UC_LU}, + {0x00A76D, 0x00A76D, UC_LL}, + {0x00A76E, 0x00A76E, UC_LU}, + {0x00A76F, 0x00A76F, UC_LL}, + {0x00A770, 0x00A770, UC_LM}, + {0x00A771, 0x00A778, UC_LL}, + {0x00A779, 0x00A779, UC_LU}, + {0x00A77A, 0x00A77A, UC_LL}, + {0x00A77B, 0x00A77B, UC_LU}, + {0x00A77C, 0x00A77C, UC_LL}, + {0x00A77D, 0x00A77E, UC_LU}, + {0x00A77F, 0x00A77F, UC_LL}, + {0x00A780, 0x00A780, UC_LU}, + {0x00A781, 0x00A781, UC_LL}, + {0x00A782, 0x00A782, UC_LU}, + {0x00A783, 0x00A783, UC_LL}, + {0x00A784, 0x00A784, UC_LU}, + {0x00A785, 0x00A785, UC_LL}, + {0x00A786, 0x00A786, UC_LU}, + {0x00A787, 0x00A787, UC_LL}, + {0x00A788, 0x00A788, UC_LM}, + {0x00A789, 0x00A78A, UC_SK}, + {0x00A78B, 0x00A78B, UC_LU}, + {0x00A78C, 0x00A78C, UC_LL}, + {0x00A78D, 0x00A78D, UC_LU}, + {0x00A78E, 0x00A78E, UC_LL}, + {0x00A78F, 0x00A78F, UC_LO}, + {0x00A790, 0x00A790, UC_LU}, + {0x00A791, 0x00A791, UC_LL}, + {0x00A792, 0x00A792, UC_LU}, + {0x00A793, 0x00A795, UC_LL}, + {0x00A796, 0x00A796, UC_LU}, + {0x00A797, 0x00A797, UC_LL}, + {0x00A798, 0x00A798, UC_LU}, + {0x00A799, 0x00A799, UC_LL}, + {0x00A79A, 0x00A79A, UC_LU}, + {0x00A79B, 0x00A79B, UC_LL}, + {0x00A79C, 0x00A79C, UC_LU}, + {0x00A79D, 0x00A79D, UC_LL}, + {0x00A79E, 0x00A79E, UC_LU}, + {0x00A79F, 0x00A79F, UC_LL}, + {0x00A7A0, 0x00A7A0, UC_LU}, + {0x00A7A1, 0x00A7A1, UC_LL}, + {0x00A7A2, 0x00A7A2, UC_LU}, + {0x00A7A3, 0x00A7A3, UC_LL}, + {0x00A7A4, 0x00A7A4, UC_LU}, + {0x00A7A5, 0x00A7A5, UC_LL}, + {0x00A7A6, 0x00A7A6, UC_LU}, + {0x00A7A7, 0x00A7A7, UC_LL}, + {0x00A7A8, 0x00A7A8, UC_LU}, + {0x00A7A9, 0x00A7A9, UC_LL}, + {0x00A7AA, 0x00A7AE, UC_LU}, + {0x00A7AF, 0x00A7AF, UC_LL}, + {0x00A7B0, 0x00A7B4, UC_LU}, + {0x00A7B5, 0x00A7B5, UC_LL}, + {0x00A7B6, 0x00A7B6, UC_LU}, + {0x00A7B7, 0x00A7B7, UC_LL}, + {0x00A7B8, 0x00A7B8, UC_LU}, + {0x00A7B9, 0x00A7B9, UC_LL}, + {0x00A7BA, 0x00A7BA, UC_LU}, + {0x00A7BB, 0x00A7BB, UC_LL}, + {0x00A7BC, 0x00A7BC, UC_LU}, + {0x00A7BD, 0x00A7BD, UC_LL}, + {0x00A7BE, 0x00A7BE, UC_LU}, + {0x00A7BF, 0x00A7BF, UC_LL}, + {0x00A7C0, 0x00A7C0, UC_LU}, + {0x00A7C1, 0x00A7C1, UC_LL}, + {0x00A7C2, 0x00A7C2, UC_LU}, + {0x00A7C3, 0x00A7C3, UC_LL}, + {0x00A7C4, 0x00A7C7, UC_LU}, + {0x00A7C8, 0x00A7C8, UC_LL}, + {0x00A7C9, 0x00A7C9, UC_LU}, + {0x00A7CA, 0x00A7CA, UC_LL}, + {0x00A7D0, 0x00A7D0, UC_LU}, + {0x00A7D1, 0x00A7D1, UC_LL}, + {0x00A7D3, 0x00A7D3, UC_LL}, + {0x00A7D5, 0x00A7D5, UC_LL}, + {0x00A7D6, 0x00A7D6, UC_LU}, + {0x00A7D7, 0x00A7D7, UC_LL}, + {0x00A7D8, 0x00A7D8, UC_LU}, + {0x00A7D9, 0x00A7D9, UC_LL}, + {0x00A7F2, 0x00A7F4, UC_LM}, + {0x00A7F5, 0x00A7F5, UC_LU}, + {0x00A7F6, 0x00A7F6, UC_LL}, + {0x00A7F7, 0x00A7F7, UC_LO}, + {0x00A7F8, 0x00A7F9, UC_LM}, + {0x00A7FA, 0x00A7FA, UC_LL}, + {0x00A7FB, 0x00A801, UC_LO}, + {0x00A802, 0x00A802, UC_MN}, + {0x00A803, 0x00A805, UC_LO}, + {0x00A806, 0x00A806, UC_MN}, + {0x00A807, 0x00A80A, UC_LO}, + {0x00A80B, 0x00A80B, UC_MN}, + {0x00A80C, 0x00A822, UC_LO}, + {0x00A823, 0x00A824, UC_MC}, + {0x00A825, 0x00A826, UC_MN}, + {0x00A827, 0x00A827, UC_MC}, + {0x00A828, 0x00A82B, UC_SO}, + {0x00A82C, 0x00A82C, UC_MN}, + {0x00A830, 0x00A835, UC_NO}, + {0x00A836, 0x00A837, UC_SO}, + {0x00A838, 0x00A838, UC_SC}, + {0x00A839, 0x00A839, UC_SO}, + {0x00A840, 0x00A873, UC_LO}, + {0x00A874, 0x00A877, UC_PO}, + {0x00A880, 0x00A881, UC_MC}, + {0x00A882, 0x00A8B3, UC_LO}, + {0x00A8B4, 0x00A8C3, UC_MC}, + {0x00A8C4, 0x00A8C5, UC_MN}, + {0x00A8CE, 0x00A8CF, UC_PO}, + {0x00A8D0, 0x00A8D9, UC_ND}, + {0x00A8E0, 0x00A8F1, UC_MN}, + {0x00A8F2, 0x00A8F7, UC_LO}, + {0x00A8F8, 0x00A8FA, UC_PO}, + {0x00A8FB, 0x00A8FB, UC_LO}, + {0x00A8FC, 0x00A8FC, UC_PO}, + {0x00A8FD, 0x00A8FE, UC_LO}, + {0x00A8FF, 0x00A8FF, UC_MN}, + {0x00A900, 0x00A909, UC_ND}, + {0x00A90A, 0x00A925, UC_LO}, + {0x00A926, 0x00A92D, UC_MN}, + {0x00A92E, 0x00A92F, UC_PO}, + {0x00A930, 0x00A946, UC_LO}, + {0x00A947, 0x00A951, UC_MN}, + {0x00A952, 0x00A953, UC_MC}, + {0x00A95F, 0x00A95F, UC_PO}, + {0x00A960, 0x00A97C, UC_LO}, + {0x00A980, 0x00A982, UC_MN}, + {0x00A983, 0x00A983, UC_MC}, + {0x00A984, 0x00A9B2, UC_LO}, + {0x00A9B3, 0x00A9B3, UC_MN}, + {0x00A9B4, 0x00A9B5, UC_MC}, + {0x00A9B6, 0x00A9B9, UC_MN}, + {0x00A9BA, 0x00A9BB, UC_MC}, + {0x00A9BC, 0x00A9BD, UC_MN}, + {0x00A9BE, 0x00A9C0, UC_MC}, + {0x00A9C1, 0x00A9CD, UC_PO}, + {0x00A9CF, 0x00A9CF, UC_LM}, + {0x00A9D0, 0x00A9D9, UC_ND}, + {0x00A9DE, 0x00A9DF, UC_PO}, + {0x00A9E0, 0x00A9E4, UC_LO}, + {0x00A9E5, 0x00A9E5, UC_MN}, + {0x00A9E6, 0x00A9E6, UC_LM}, + {0x00A9E7, 0x00A9EF, UC_LO}, + {0x00A9F0, 0x00A9F9, UC_ND}, + {0x00A9FA, 0x00A9FE, UC_LO}, + {0x00AA00, 0x00AA28, UC_LO}, + {0x00AA29, 0x00AA2E, UC_MN}, + {0x00AA2F, 0x00AA30, UC_MC}, + {0x00AA31, 0x00AA32, UC_MN}, + {0x00AA33, 0x00AA34, UC_MC}, + {0x00AA35, 0x00AA36, UC_MN}, + {0x00AA40, 0x00AA42, UC_LO}, + {0x00AA43, 0x00AA43, UC_MN}, + {0x00AA44, 0x00AA4B, UC_LO}, + {0x00AA4C, 0x00AA4C, UC_MN}, + {0x00AA4D, 0x00AA4D, UC_MC}, + {0x00AA50, 0x00AA59, UC_ND}, + {0x00AA5C, 0x00AA5F, UC_PO}, + {0x00AA60, 0x00AA6F, UC_LO}, + {0x00AA70, 0x00AA70, UC_LM}, + {0x00AA71, 0x00AA76, UC_LO}, + {0x00AA77, 0x00AA79, UC_SO}, + {0x00AA7A, 0x00AA7A, UC_LO}, + {0x00AA7B, 0x00AA7B, UC_MC}, + {0x00AA7C, 0x00AA7C, UC_MN}, + {0x00AA7D, 0x00AA7D, UC_MC}, + {0x00AA7E, 0x00AAAF, UC_LO}, + {0x00AAB0, 0x00AAB0, UC_MN}, + {0x00AAB1, 0x00AAB1, UC_LO}, + {0x00AAB2, 0x00AAB4, UC_MN}, + {0x00AAB5, 0x00AAB6, UC_LO}, + {0x00AAB7, 0x00AAB8, UC_MN}, + {0x00AAB9, 0x00AABD, UC_LO}, + {0x00AABE, 0x00AABF, UC_MN}, + {0x00AAC0, 0x00AAC0, UC_LO}, + {0x00AAC1, 0x00AAC1, UC_MN}, + {0x00AAC2, 0x00AAC2, UC_LO}, + {0x00AADB, 0x00AADC, UC_LO}, + {0x00AADD, 0x00AADD, UC_LM}, + {0x00AADE, 0x00AADF, UC_PO}, + {0x00AAE0, 0x00AAEA, UC_LO}, + {0x00AAEB, 0x00AAEB, UC_MC}, + {0x00AAEC, 0x00AAED, UC_MN}, + {0x00AAEE, 0x00AAEF, UC_MC}, + {0x00AAF0, 0x00AAF1, UC_PO}, + {0x00AAF2, 0x00AAF2, UC_LO}, + {0x00AAF3, 0x00AAF4, UC_LM}, + {0x00AAF5, 0x00AAF5, UC_MC}, + {0x00AAF6, 0x00AAF6, UC_MN}, + {0x00AB01, 0x00AB06, UC_LO}, + {0x00AB09, 0x00AB0E, UC_LO}, + {0x00AB11, 0x00AB16, UC_LO}, + {0x00AB20, 0x00AB26, UC_LO}, + {0x00AB28, 0x00AB2E, UC_LO}, + {0x00AB30, 0x00AB5A, UC_LL}, + {0x00AB5B, 0x00AB5B, UC_SK}, + {0x00AB5C, 0x00AB5F, UC_LM}, + {0x00AB60, 0x00AB68, UC_LL}, + {0x00AB69, 0x00AB69, UC_LM}, + {0x00AB6A, 0x00AB6B, UC_SK}, + {0x00AB70, 0x00ABBF, UC_LL}, + {0x00ABC0, 0x00ABE2, UC_LO}, + {0x00ABE3, 0x00ABE4, UC_MC}, + {0x00ABE5, 0x00ABE5, UC_MN}, + {0x00ABE6, 0x00ABE7, UC_MC}, + {0x00ABE8, 0x00ABE8, UC_MN}, + {0x00ABE9, 0x00ABEA, UC_MC}, + {0x00ABEB, 0x00ABEB, UC_PO}, + {0x00ABEC, 0x00ABEC, UC_MC}, + {0x00ABED, 0x00ABED, UC_MN}, + {0x00ABF0, 0x00ABF9, UC_ND}, + {0x00AC00, 0x00D7A3, UC_LO}, + {0x00D7B0, 0x00D7C6, UC_LO}, + {0x00D7CB, 0x00D7FB, UC_LO}, + {0x00D800, 0x00DFFF, UC_CS}, + {0x00E000, 0x00F8FF, UC_CO}, + {0x00F900, 0x00FA6D, UC_LO}, + {0x00FA70, 0x00FAD9, UC_LO}, + {0x00FB00, 0x00FB06, UC_LL}, + {0x00FB13, 0x00FB17, UC_LL}, + {0x00FB1D, 0x00FB1D, UC_LO}, + {0x00FB1E, 0x00FB1E, UC_MN}, + {0x00FB1F, 0x00FB28, UC_LO}, + {0x00FB29, 0x00FB29, UC_SM}, + {0x00FB2A, 0x00FB36, UC_LO}, + {0x00FB38, 0x00FB3C, UC_LO}, + {0x00FB3E, 0x00FB3E, UC_LO}, + {0x00FB40, 0x00FB41, UC_LO}, + {0x00FB43, 0x00FB44, UC_LO}, + {0x00FB46, 0x00FBB1, UC_LO}, + {0x00FBB2, 0x00FBC2, UC_SK}, + {0x00FBD3, 0x00FD3D, UC_LO}, + {0x00FD3E, 0x00FD3E, UC_PE}, + {0x00FD3F, 0x00FD3F, UC_PS}, + {0x00FD40, 0x00FD4F, UC_SO}, + {0x00FD50, 0x00FD8F, UC_LO}, + {0x00FD92, 0x00FDC7, UC_LO}, + {0x00FDCF, 0x00FDCF, UC_SO}, + {0x00FDF0, 0x00FDFB, UC_LO}, + {0x00FDFC, 0x00FDFC, UC_SC}, + {0x00FDFD, 0x00FDFF, UC_SO}, + {0x00FE00, 0x00FE0F, UC_MN}, + {0x00FE10, 0x00FE16, UC_PO}, + {0x00FE17, 0x00FE17, UC_PS}, + {0x00FE18, 0x00FE18, UC_PE}, + {0x00FE19, 0x00FE19, UC_PO}, + {0x00FE20, 0x00FE2F, UC_MN}, + {0x00FE30, 0x00FE30, UC_PO}, + {0x00FE31, 0x00FE32, UC_PD}, + {0x00FE33, 0x00FE34, UC_PC}, + {0x00FE35, 0x00FE35, UC_PS}, + {0x00FE36, 0x00FE36, UC_PE}, + {0x00FE37, 0x00FE37, UC_PS}, + {0x00FE38, 0x00FE38, UC_PE}, + {0x00FE39, 0x00FE39, UC_PS}, + {0x00FE3A, 0x00FE3A, UC_PE}, + {0x00FE3B, 0x00FE3B, UC_PS}, + {0x00FE3C, 0x00FE3C, UC_PE}, + {0x00FE3D, 0x00FE3D, UC_PS}, + {0x00FE3E, 0x00FE3E, UC_PE}, + {0x00FE3F, 0x00FE3F, UC_PS}, + {0x00FE40, 0x00FE40, UC_PE}, + {0x00FE41, 0x00FE41, UC_PS}, + {0x00FE42, 0x00FE42, UC_PE}, + {0x00FE43, 0x00FE43, UC_PS}, + {0x00FE44, 0x00FE44, UC_PE}, + {0x00FE45, 0x00FE46, UC_PO}, + {0x00FE47, 0x00FE47, UC_PS}, + {0x00FE48, 0x00FE48, UC_PE}, + {0x00FE49, 0x00FE4C, UC_PO}, + {0x00FE4D, 0x00FE4F, UC_PC}, + {0x00FE50, 0x00FE52, UC_PO}, + {0x00FE54, 0x00FE57, UC_PO}, + {0x00FE58, 0x00FE58, UC_PD}, + {0x00FE59, 0x00FE59, UC_PS}, + {0x00FE5A, 0x00FE5A, UC_PE}, + {0x00FE5B, 0x00FE5B, UC_PS}, + {0x00FE5C, 0x00FE5C, UC_PE}, + {0x00FE5D, 0x00FE5D, UC_PS}, + {0x00FE5E, 0x00FE5E, UC_PE}, + {0x00FE5F, 0x00FE61, UC_PO}, + {0x00FE62, 0x00FE62, UC_SM}, + {0x00FE63, 0x00FE63, UC_PD}, + {0x00FE64, 0x00FE66, UC_SM}, + {0x00FE68, 0x00FE68, UC_PO}, + {0x00FE69, 0x00FE69, UC_SC}, + {0x00FE6A, 0x00FE6B, UC_PO}, + {0x00FE70, 0x00FE74, UC_LO}, + {0x00FE76, 0x00FEFC, UC_LO}, + {0x00FEFF, 0x00FEFF, UC_CF}, + {0x00FF01, 0x00FF03, UC_PO}, + {0x00FF04, 0x00FF04, UC_SC}, + {0x00FF05, 0x00FF07, UC_PO}, + {0x00FF08, 0x00FF08, UC_PS}, + {0x00FF09, 0x00FF09, UC_PE}, + {0x00FF0A, 0x00FF0A, UC_PO}, + {0x00FF0B, 0x00FF0B, UC_SM}, + {0x00FF0C, 0x00FF0C, UC_PO}, + {0x00FF0D, 0x00FF0D, UC_PD}, + {0x00FF0E, 0x00FF0F, UC_PO}, + {0x00FF10, 0x00FF19, UC_ND}, + {0x00FF1A, 0x00FF1B, UC_PO}, + {0x00FF1C, 0x00FF1E, UC_SM}, + {0x00FF1F, 0x00FF20, UC_PO}, + {0x00FF21, 0x00FF3A, UC_LU}, + {0x00FF3B, 0x00FF3B, UC_PS}, + {0x00FF3C, 0x00FF3C, UC_PO}, + {0x00FF3D, 0x00FF3D, UC_PE}, + {0x00FF3E, 0x00FF3E, UC_SK}, + {0x00FF3F, 0x00FF3F, UC_PC}, + {0x00FF40, 0x00FF40, UC_SK}, + {0x00FF41, 0x00FF5A, UC_LL}, + {0x00FF5B, 0x00FF5B, UC_PS}, + {0x00FF5C, 0x00FF5C, UC_SM}, + {0x00FF5D, 0x00FF5D, UC_PE}, + {0x00FF5E, 0x00FF5E, UC_SM}, + {0x00FF5F, 0x00FF5F, UC_PS}, + {0x00FF60, 0x00FF60, UC_PE}, + {0x00FF61, 0x00FF61, UC_PO}, + {0x00FF62, 0x00FF62, UC_PS}, + {0x00FF63, 0x00FF63, UC_PE}, + {0x00FF64, 0x00FF65, UC_PO}, + {0x00FF66, 0x00FF6F, UC_LO}, + {0x00FF70, 0x00FF70, UC_LM}, + {0x00FF71, 0x00FF9D, UC_LO}, + {0x00FF9E, 0x00FF9F, UC_LM}, + {0x00FFA0, 0x00FFBE, UC_LO}, + {0x00FFC2, 0x00FFC7, UC_LO}, + {0x00FFCA, 0x00FFCF, UC_LO}, + {0x00FFD2, 0x00FFD7, UC_LO}, + {0x00FFDA, 0x00FFDC, UC_LO}, + {0x00FFE0, 0x00FFE1, UC_SC}, + {0x00FFE2, 0x00FFE2, UC_SM}, + {0x00FFE3, 0x00FFE3, UC_SK}, + {0x00FFE4, 0x00FFE4, UC_SO}, + {0x00FFE5, 0x00FFE6, UC_SC}, + {0x00FFE8, 0x00FFE8, UC_SO}, + {0x00FFE9, 0x00FFEC, UC_SM}, + {0x00FFED, 0x00FFEE, UC_SO}, + {0x00FFF9, 0x00FFFB, UC_CF}, + {0x00FFFC, 0x00FFFD, UC_SO}, + {0x010000, 0x01000B, UC_LO}, + {0x01000D, 0x010026, UC_LO}, + {0x010028, 0x01003A, UC_LO}, + {0x01003C, 0x01003D, UC_LO}, + {0x01003F, 0x01004D, UC_LO}, + {0x010050, 0x01005D, UC_LO}, + {0x010080, 0x0100FA, UC_LO}, + {0x010100, 0x010102, UC_PO}, + {0x010107, 0x010133, UC_NO}, + {0x010137, 0x01013F, UC_SO}, + {0x010140, 0x010174, UC_NL}, + {0x010175, 0x010178, UC_NO}, + {0x010179, 0x010189, UC_SO}, + {0x01018A, 0x01018B, UC_NO}, + {0x01018C, 0x01018E, UC_SO}, + {0x010190, 0x01019C, UC_SO}, + {0x0101A0, 0x0101A0, UC_SO}, + {0x0101D0, 0x0101FC, UC_SO}, + {0x0101FD, 0x0101FD, UC_MN}, + {0x010280, 0x01029C, UC_LO}, + {0x0102A0, 0x0102D0, UC_LO}, + {0x0102E0, 0x0102E0, UC_MN}, + {0x0102E1, 0x0102FB, UC_NO}, + {0x010300, 0x01031F, UC_LO}, + {0x010320, 0x010323, UC_NO}, + {0x01032D, 0x010340, UC_LO}, + {0x010341, 0x010341, UC_NL}, + {0x010342, 0x010349, UC_LO}, + {0x01034A, 0x01034A, UC_NL}, + {0x010350, 0x010375, UC_LO}, + {0x010376, 0x01037A, UC_MN}, + {0x010380, 0x01039D, UC_LO}, + {0x01039F, 0x01039F, UC_PO}, + {0x0103A0, 0x0103C3, UC_LO}, + {0x0103C8, 0x0103CF, UC_LO}, + {0x0103D0, 0x0103D0, UC_PO}, + {0x0103D1, 0x0103D5, UC_NL}, + {0x010400, 0x010427, UC_LU}, + {0x010428, 0x01044F, UC_LL}, + {0x010450, 0x01049D, UC_LO}, + {0x0104A0, 0x0104A9, UC_ND}, + {0x0104B0, 0x0104D3, UC_LU}, + {0x0104D8, 0x0104FB, UC_LL}, + {0x010500, 0x010527, UC_LO}, + {0x010530, 0x010563, UC_LO}, + {0x01056F, 0x01056F, UC_PO}, + {0x010570, 0x01057A, UC_LU}, + {0x01057C, 0x01058A, UC_LU}, + {0x01058C, 0x010592, UC_LU}, + {0x010594, 0x010595, UC_LU}, + {0x010597, 0x0105A1, UC_LL}, + {0x0105A3, 0x0105B1, UC_LL}, + {0x0105B3, 0x0105B9, UC_LL}, + {0x0105BB, 0x0105BC, UC_LL}, + {0x010600, 0x010736, UC_LO}, + {0x010740, 0x010755, UC_LO}, + {0x010760, 0x010767, UC_LO}, + {0x010780, 0x010785, UC_LM}, + {0x010787, 0x0107B0, UC_LM}, + {0x0107B2, 0x0107BA, UC_LM}, + {0x010800, 0x010805, UC_LO}, + {0x010808, 0x010808, UC_LO}, + {0x01080A, 0x010835, UC_LO}, + {0x010837, 0x010838, UC_LO}, + {0x01083C, 0x01083C, UC_LO}, + {0x01083F, 0x010855, UC_LO}, + {0x010857, 0x010857, UC_PO}, + {0x010858, 0x01085F, UC_NO}, + {0x010860, 0x010876, UC_LO}, + {0x010877, 0x010878, UC_SO}, + {0x010879, 0x01087F, UC_NO}, + {0x010880, 0x01089E, UC_LO}, + {0x0108A7, 0x0108AF, UC_NO}, + {0x0108E0, 0x0108F2, UC_LO}, + {0x0108F4, 0x0108F5, UC_LO}, + {0x0108FB, 0x0108FF, UC_NO}, + {0x010900, 0x010915, UC_LO}, + {0x010916, 0x01091B, UC_NO}, + {0x01091F, 0x01091F, UC_PO}, + {0x010920, 0x010939, UC_LO}, + {0x01093F, 0x01093F, UC_PO}, + {0x010980, 0x0109B7, UC_LO}, + {0x0109BC, 0x0109BD, UC_NO}, + {0x0109BE, 0x0109BF, UC_LO}, + {0x0109C0, 0x0109CF, UC_NO}, + {0x0109D2, 0x0109FF, UC_NO}, + {0x010A00, 0x010A00, UC_LO}, + {0x010A01, 0x010A03, UC_MN}, + {0x010A05, 0x010A06, UC_MN}, + {0x010A0C, 0x010A0F, UC_MN}, + {0x010A10, 0x010A13, UC_LO}, + {0x010A15, 0x010A17, UC_LO}, + {0x010A19, 0x010A35, UC_LO}, + {0x010A38, 0x010A3A, UC_MN}, + {0x010A3F, 0x010A3F, UC_MN}, + {0x010A40, 0x010A48, UC_NO}, + {0x010A50, 0x010A58, UC_PO}, + {0x010A60, 0x010A7C, UC_LO}, + {0x010A7D, 0x010A7E, UC_NO}, + {0x010A7F, 0x010A7F, UC_PO}, + {0x010A80, 0x010A9C, UC_LO}, + {0x010A9D, 0x010A9F, UC_NO}, + {0x010AC0, 0x010AC7, UC_LO}, + {0x010AC8, 0x010AC8, UC_SO}, + {0x010AC9, 0x010AE4, UC_LO}, + {0x010AE5, 0x010AE6, UC_MN}, + {0x010AEB, 0x010AEF, UC_NO}, + {0x010AF0, 0x010AF6, UC_PO}, + {0x010B00, 0x010B35, UC_LO}, + {0x010B39, 0x010B3F, UC_PO}, + {0x010B40, 0x010B55, UC_LO}, + {0x010B58, 0x010B5F, UC_NO}, + {0x010B60, 0x010B72, UC_LO}, + {0x010B78, 0x010B7F, UC_NO}, + {0x010B80, 0x010B91, UC_LO}, + {0x010B99, 0x010B9C, UC_PO}, + {0x010BA9, 0x010BAF, UC_NO}, + {0x010C00, 0x010C48, UC_LO}, + {0x010C80, 0x010CB2, UC_LU}, + {0x010CC0, 0x010CF2, UC_LL}, + {0x010CFA, 0x010CFF, UC_NO}, + {0x010D00, 0x010D23, UC_LO}, + {0x010D24, 0x010D27, UC_MN}, + {0x010D30, 0x010D39, UC_ND}, + {0x010E60, 0x010E7E, UC_NO}, + {0x010E80, 0x010EA9, UC_LO}, + {0x010EAB, 0x010EAC, UC_MN}, + {0x010EAD, 0x010EAD, UC_PD}, + {0x010EB0, 0x010EB1, UC_LO}, + {0x010EFD, 0x010EFF, UC_MN}, + {0x010F00, 0x010F1C, UC_LO}, + {0x010F1D, 0x010F26, UC_NO}, + {0x010F27, 0x010F27, UC_LO}, + {0x010F30, 0x010F45, UC_LO}, + {0x010F46, 0x010F50, UC_MN}, + {0x010F51, 0x010F54, UC_NO}, + {0x010F55, 0x010F59, UC_PO}, + {0x010F70, 0x010F81, UC_LO}, + {0x010F82, 0x010F85, UC_MN}, + {0x010F86, 0x010F89, UC_PO}, + {0x010FB0, 0x010FC4, UC_LO}, + {0x010FC5, 0x010FCB, UC_NO}, + {0x010FE0, 0x010FF6, UC_LO}, + {0x011000, 0x011000, UC_MC}, + {0x011001, 0x011001, UC_MN}, + {0x011002, 0x011002, UC_MC}, + {0x011003, 0x011037, UC_LO}, + {0x011038, 0x011046, UC_MN}, + {0x011047, 0x01104D, UC_PO}, + {0x011052, 0x011065, UC_NO}, + {0x011066, 0x01106F, UC_ND}, + {0x011070, 0x011070, UC_MN}, + {0x011071, 0x011072, UC_LO}, + {0x011073, 0x011074, UC_MN}, + {0x011075, 0x011075, UC_LO}, + {0x01107F, 0x011081, UC_MN}, + {0x011082, 0x011082, UC_MC}, + {0x011083, 0x0110AF, UC_LO}, + {0x0110B0, 0x0110B2, UC_MC}, + {0x0110B3, 0x0110B6, UC_MN}, + {0x0110B7, 0x0110B8, UC_MC}, + {0x0110B9, 0x0110BA, UC_MN}, + {0x0110BB, 0x0110BC, UC_PO}, + {0x0110BD, 0x0110BD, UC_CF}, + {0x0110BE, 0x0110C1, UC_PO}, + {0x0110C2, 0x0110C2, UC_MN}, + {0x0110CD, 0x0110CD, UC_CF}, + {0x0110D0, 0x0110E8, UC_LO}, + {0x0110F0, 0x0110F9, UC_ND}, + {0x011100, 0x011102, UC_MN}, + {0x011103, 0x011126, UC_LO}, + {0x011127, 0x01112B, UC_MN}, + {0x01112C, 0x01112C, UC_MC}, + {0x01112D, 0x011134, UC_MN}, + {0x011136, 0x01113F, UC_ND}, + {0x011140, 0x011143, UC_PO}, + {0x011144, 0x011144, UC_LO}, + {0x011145, 0x011146, UC_MC}, + {0x011147, 0x011147, UC_LO}, + {0x011150, 0x011172, UC_LO}, + {0x011173, 0x011173, UC_MN}, + {0x011174, 0x011175, UC_PO}, + {0x011176, 0x011176, UC_LO}, + {0x011180, 0x011181, UC_MN}, + {0x011182, 0x011182, UC_MC}, + {0x011183, 0x0111B2, UC_LO}, + {0x0111B3, 0x0111B5, UC_MC}, + {0x0111B6, 0x0111BE, UC_MN}, + {0x0111BF, 0x0111C0, UC_MC}, + {0x0111C1, 0x0111C4, UC_LO}, + {0x0111C5, 0x0111C8, UC_PO}, + {0x0111C9, 0x0111CC, UC_MN}, + {0x0111CD, 0x0111CD, UC_PO}, + {0x0111CE, 0x0111CE, UC_MC}, + {0x0111CF, 0x0111CF, UC_MN}, + {0x0111D0, 0x0111D9, UC_ND}, + {0x0111DA, 0x0111DA, UC_LO}, + {0x0111DB, 0x0111DB, UC_PO}, + {0x0111DC, 0x0111DC, UC_LO}, + {0x0111DD, 0x0111DF, UC_PO}, + {0x0111E1, 0x0111F4, UC_NO}, + {0x011200, 0x011211, UC_LO}, + {0x011213, 0x01122B, UC_LO}, + {0x01122C, 0x01122E, UC_MC}, + {0x01122F, 0x011231, UC_MN}, + {0x011232, 0x011233, UC_MC}, + {0x011234, 0x011234, UC_MN}, + {0x011235, 0x011235, UC_MC}, + {0x011236, 0x011237, UC_MN}, + {0x011238, 0x01123D, UC_PO}, + {0x01123E, 0x01123E, UC_MN}, + {0x01123F, 0x011240, UC_LO}, + {0x011241, 0x011241, UC_MN}, + {0x011280, 0x011286, UC_LO}, + {0x011288, 0x011288, UC_LO}, + {0x01128A, 0x01128D, UC_LO}, + {0x01128F, 0x01129D, UC_LO}, + {0x01129F, 0x0112A8, UC_LO}, + {0x0112A9, 0x0112A9, UC_PO}, + {0x0112B0, 0x0112DE, UC_LO}, + {0x0112DF, 0x0112DF, UC_MN}, + {0x0112E0, 0x0112E2, UC_MC}, + {0x0112E3, 0x0112EA, UC_MN}, + {0x0112F0, 0x0112F9, UC_ND}, + {0x011300, 0x011301, UC_MN}, + {0x011302, 0x011303, UC_MC}, + {0x011305, 0x01130C, UC_LO}, + {0x01130F, 0x011310, UC_LO}, + {0x011313, 0x011328, UC_LO}, + {0x01132A, 0x011330, UC_LO}, + {0x011332, 0x011333, UC_LO}, + {0x011335, 0x011339, UC_LO}, + {0x01133B, 0x01133C, UC_MN}, + {0x01133D, 0x01133D, UC_LO}, + {0x01133E, 0x01133F, UC_MC}, + {0x011340, 0x011340, UC_MN}, + {0x011341, 0x011344, UC_MC}, + {0x011347, 0x011348, UC_MC}, + {0x01134B, 0x01134D, UC_MC}, + {0x011350, 0x011350, UC_LO}, + {0x011357, 0x011357, UC_MC}, + {0x01135D, 0x011361, UC_LO}, + {0x011362, 0x011363, UC_MC}, + {0x011366, 0x01136C, UC_MN}, + {0x011370, 0x011374, UC_MN}, + {0x011400, 0x011434, UC_LO}, + {0x011435, 0x011437, UC_MC}, + {0x011438, 0x01143F, UC_MN}, + {0x011440, 0x011441, UC_MC}, + {0x011442, 0x011444, UC_MN}, + {0x011445, 0x011445, UC_MC}, + {0x011446, 0x011446, UC_MN}, + {0x011447, 0x01144A, UC_LO}, + {0x01144B, 0x01144F, UC_PO}, + {0x011450, 0x011459, UC_ND}, + {0x01145A, 0x01145B, UC_PO}, + {0x01145D, 0x01145D, UC_PO}, + {0x01145E, 0x01145E, UC_MN}, + {0x01145F, 0x011461, UC_LO}, + {0x011480, 0x0114AF, UC_LO}, + {0x0114B0, 0x0114B2, UC_MC}, + {0x0114B3, 0x0114B8, UC_MN}, + {0x0114B9, 0x0114B9, UC_MC}, + {0x0114BA, 0x0114BA, UC_MN}, + {0x0114BB, 0x0114BE, UC_MC}, + {0x0114BF, 0x0114C0, UC_MN}, + {0x0114C1, 0x0114C1, UC_MC}, + {0x0114C2, 0x0114C3, UC_MN}, + {0x0114C4, 0x0114C5, UC_LO}, + {0x0114C6, 0x0114C6, UC_PO}, + {0x0114C7, 0x0114C7, UC_LO}, + {0x0114D0, 0x0114D9, UC_ND}, + {0x011580, 0x0115AE, UC_LO}, + {0x0115AF, 0x0115B1, UC_MC}, + {0x0115B2, 0x0115B5, UC_MN}, + {0x0115B8, 0x0115BB, UC_MC}, + {0x0115BC, 0x0115BD, UC_MN}, + {0x0115BE, 0x0115BE, UC_MC}, + {0x0115BF, 0x0115C0, UC_MN}, + {0x0115C1, 0x0115D7, UC_PO}, + {0x0115D8, 0x0115DB, UC_LO}, + {0x0115DC, 0x0115DD, UC_MN}, + {0x011600, 0x01162F, UC_LO}, + {0x011630, 0x011632, UC_MC}, + {0x011633, 0x01163A, UC_MN}, + {0x01163B, 0x01163C, UC_MC}, + {0x01163D, 0x01163D, UC_MN}, + {0x01163E, 0x01163E, UC_MC}, + {0x01163F, 0x011640, UC_MN}, + {0x011641, 0x011643, UC_PO}, + {0x011644, 0x011644, UC_LO}, + {0x011650, 0x011659, UC_ND}, + {0x011660, 0x01166C, UC_PO}, + {0x011680, 0x0116AA, UC_LO}, + {0x0116AB, 0x0116AB, UC_MN}, + {0x0116AC, 0x0116AC, UC_MC}, + {0x0116AD, 0x0116AD, UC_MN}, + {0x0116AE, 0x0116AF, UC_MC}, + {0x0116B0, 0x0116B5, UC_MN}, + {0x0116B6, 0x0116B6, UC_MC}, + {0x0116B7, 0x0116B7, UC_MN}, + {0x0116B8, 0x0116B8, UC_LO}, + {0x0116B9, 0x0116B9, UC_PO}, + {0x0116C0, 0x0116C9, UC_ND}, + {0x011700, 0x01171A, UC_LO}, + {0x01171D, 0x01171F, UC_MN}, + {0x011720, 0x011721, UC_MC}, + {0x011722, 0x011725, UC_MN}, + {0x011726, 0x011726, UC_MC}, + {0x011727, 0x01172B, UC_MN}, + {0x011730, 0x011739, UC_ND}, + {0x01173A, 0x01173B, UC_NO}, + {0x01173C, 0x01173E, UC_PO}, + {0x01173F, 0x01173F, UC_SO}, + {0x011740, 0x011746, UC_LO}, + {0x011800, 0x01182B, UC_LO}, + {0x01182C, 0x01182E, UC_MC}, + {0x01182F, 0x011837, UC_MN}, + {0x011838, 0x011838, UC_MC}, + {0x011839, 0x01183A, UC_MN}, + {0x01183B, 0x01183B, UC_PO}, + {0x0118A0, 0x0118BF, UC_LU}, + {0x0118C0, 0x0118DF, UC_LL}, + {0x0118E0, 0x0118E9, UC_ND}, + {0x0118EA, 0x0118F2, UC_NO}, + {0x0118FF, 0x011906, UC_LO}, + {0x011909, 0x011909, UC_LO}, + {0x01190C, 0x011913, UC_LO}, + {0x011915, 0x011916, UC_LO}, + {0x011918, 0x01192F, UC_LO}, + {0x011930, 0x011935, UC_MC}, + {0x011937, 0x011938, UC_MC}, + {0x01193B, 0x01193C, UC_MN}, + {0x01193D, 0x01193D, UC_MC}, + {0x01193E, 0x01193E, UC_MN}, + {0x01193F, 0x01193F, UC_LO}, + {0x011940, 0x011940, UC_MC}, + {0x011941, 0x011941, UC_LO}, + {0x011942, 0x011942, UC_MC}, + {0x011943, 0x011943, UC_MN}, + {0x011944, 0x011946, UC_PO}, + {0x011950, 0x011959, UC_ND}, + {0x0119A0, 0x0119A7, UC_LO}, + {0x0119AA, 0x0119D0, UC_LO}, + {0x0119D1, 0x0119D3, UC_MC}, + {0x0119D4, 0x0119D7, UC_MN}, + {0x0119DA, 0x0119DB, UC_MN}, + {0x0119DC, 0x0119DF, UC_MC}, + {0x0119E0, 0x0119E0, UC_MN}, + {0x0119E1, 0x0119E1, UC_LO}, + {0x0119E2, 0x0119E2, UC_PO}, + {0x0119E3, 0x0119E3, UC_LO}, + {0x0119E4, 0x0119E4, UC_MC}, + {0x011A00, 0x011A00, UC_LO}, + {0x011A01, 0x011A0A, UC_MN}, + {0x011A0B, 0x011A32, UC_LO}, + {0x011A33, 0x011A38, UC_MN}, + {0x011A39, 0x011A39, UC_MC}, + {0x011A3A, 0x011A3A, UC_LO}, + {0x011A3B, 0x011A3E, UC_MN}, + {0x011A3F, 0x011A46, UC_PO}, + {0x011A47, 0x011A47, UC_MN}, + {0x011A50, 0x011A50, UC_LO}, + {0x011A51, 0x011A56, UC_MN}, + {0x011A57, 0x011A58, UC_MC}, + {0x011A59, 0x011A5B, UC_MN}, + {0x011A5C, 0x011A89, UC_LO}, + {0x011A8A, 0x011A96, UC_MN}, + {0x011A97, 0x011A97, UC_MC}, + {0x011A98, 0x011A99, UC_MN}, + {0x011A9A, 0x011A9C, UC_PO}, + {0x011A9D, 0x011A9D, UC_LO}, + {0x011A9E, 0x011AA2, UC_PO}, + {0x011AB0, 0x011AF8, UC_LO}, + {0x011B00, 0x011B09, UC_PO}, + {0x011C00, 0x011C08, UC_LO}, + {0x011C0A, 0x011C2E, UC_LO}, + {0x011C2F, 0x011C2F, UC_MC}, + {0x011C30, 0x011C36, UC_MN}, + {0x011C38, 0x011C3D, UC_MN}, + {0x011C3E, 0x011C3E, UC_MC}, + {0x011C3F, 0x011C3F, UC_MN}, + {0x011C40, 0x011C40, UC_LO}, + {0x011C41, 0x011C45, UC_PO}, + {0x011C50, 0x011C59, UC_ND}, + {0x011C5A, 0x011C6C, UC_NO}, + {0x011C70, 0x011C71, UC_PO}, + {0x011C72, 0x011C8F, UC_LO}, + {0x011C92, 0x011CA7, UC_MN}, + {0x011CA9, 0x011CA9, UC_MC}, + {0x011CAA, 0x011CB0, UC_MN}, + {0x011CB1, 0x011CB1, UC_MC}, + {0x011CB2, 0x011CB3, UC_MN}, + {0x011CB4, 0x011CB4, UC_MC}, + {0x011CB5, 0x011CB6, UC_MN}, + {0x011D00, 0x011D06, UC_LO}, + {0x011D08, 0x011D09, UC_LO}, + {0x011D0B, 0x011D30, UC_LO}, + {0x011D31, 0x011D36, UC_MN}, + {0x011D3A, 0x011D3A, UC_MN}, + {0x011D3C, 0x011D3D, UC_MN}, + {0x011D3F, 0x011D45, UC_MN}, + {0x011D46, 0x011D46, UC_LO}, + {0x011D47, 0x011D47, UC_MN}, + {0x011D50, 0x011D59, UC_ND}, + {0x011D60, 0x011D65, UC_LO}, + {0x011D67, 0x011D68, UC_LO}, + {0x011D6A, 0x011D89, UC_LO}, + {0x011D8A, 0x011D8E, UC_MC}, + {0x011D90, 0x011D91, UC_MN}, + {0x011D93, 0x011D94, UC_MC}, + {0x011D95, 0x011D95, UC_MN}, + {0x011D96, 0x011D96, UC_MC}, + {0x011D97, 0x011D97, UC_MN}, + {0x011D98, 0x011D98, UC_LO}, + {0x011DA0, 0x011DA9, UC_ND}, + {0x011EE0, 0x011EF2, UC_LO}, + {0x011EF3, 0x011EF4, UC_MN}, + {0x011EF5, 0x011EF6, UC_MC}, + {0x011EF7, 0x011EF8, UC_PO}, + {0x011F00, 0x011F01, UC_MN}, + {0x011F02, 0x011F02, UC_LO}, + {0x011F03, 0x011F03, UC_MC}, + {0x011F04, 0x011F10, UC_LO}, + {0x011F12, 0x011F33, UC_LO}, + {0x011F34, 0x011F35, UC_MC}, + {0x011F36, 0x011F3A, UC_MN}, + {0x011F3E, 0x011F3F, UC_MC}, + {0x011F40, 0x011F40, UC_MN}, + {0x011F41, 0x011F41, UC_MC}, + {0x011F42, 0x011F42, UC_MN}, + {0x011F43, 0x011F4F, UC_PO}, + {0x011F50, 0x011F59, UC_ND}, + {0x011FB0, 0x011FB0, UC_LO}, + {0x011FC0, 0x011FD4, UC_NO}, + {0x011FD5, 0x011FDC, UC_SO}, + {0x011FDD, 0x011FE0, UC_SC}, + {0x011FE1, 0x011FF1, UC_SO}, + {0x011FFF, 0x011FFF, UC_PO}, + {0x012000, 0x012399, UC_LO}, + {0x012400, 0x01246E, UC_NL}, + {0x012470, 0x012474, UC_PO}, + {0x012480, 0x012543, UC_LO}, + {0x012F90, 0x012FF0, UC_LO}, + {0x012FF1, 0x012FF2, UC_PO}, + {0x013000, 0x01342F, UC_LO}, + {0x013430, 0x01343F, UC_CF}, + {0x013440, 0x013440, UC_MN}, + {0x013441, 0x013446, UC_LO}, + {0x013447, 0x013455, UC_MN}, + {0x014400, 0x014646, UC_LO}, + {0x016800, 0x016A38, UC_LO}, + {0x016A40, 0x016A5E, UC_LO}, + {0x016A60, 0x016A69, UC_ND}, + {0x016A6E, 0x016A6F, UC_PO}, + {0x016A70, 0x016ABE, UC_LO}, + {0x016AC0, 0x016AC9, UC_ND}, + {0x016AD0, 0x016AED, UC_LO}, + {0x016AF0, 0x016AF4, UC_MN}, + {0x016AF5, 0x016AF5, UC_PO}, + {0x016B00, 0x016B2F, UC_LO}, + {0x016B30, 0x016B36, UC_MN}, + {0x016B37, 0x016B3B, UC_PO}, + {0x016B3C, 0x016B3F, UC_SO}, + {0x016B40, 0x016B43, UC_LM}, + {0x016B44, 0x016B44, UC_PO}, + {0x016B45, 0x016B45, UC_SO}, + {0x016B50, 0x016B59, UC_ND}, + {0x016B5B, 0x016B61, UC_NO}, + {0x016B63, 0x016B77, UC_LO}, + {0x016B7D, 0x016B8F, UC_LO}, + {0x016E40, 0x016E5F, UC_LU}, + {0x016E60, 0x016E7F, UC_LL}, + {0x016E80, 0x016E96, UC_NO}, + {0x016E97, 0x016E9A, UC_PO}, + {0x016F00, 0x016F4A, UC_LO}, + {0x016F4F, 0x016F4F, UC_MN}, + {0x016F50, 0x016F50, UC_LO}, + {0x016F51, 0x016F87, UC_MC}, + {0x016F8F, 0x016F92, UC_MN}, + {0x016F93, 0x016F9F, UC_LM}, + {0x016FE0, 0x016FE1, UC_LM}, + {0x016FE2, 0x016FE2, UC_PO}, + {0x016FE3, 0x016FE3, UC_LM}, + {0x016FE4, 0x016FE4, UC_MN}, + {0x016FF0, 0x016FF1, UC_MC}, + {0x017000, 0x0187F7, UC_LO}, + {0x018800, 0x018CD5, UC_LO}, + {0x018D00, 0x018D08, UC_LO}, + {0x01AFF0, 0x01AFF3, UC_LM}, + {0x01AFF5, 0x01AFFB, UC_LM}, + {0x01AFFD, 0x01AFFE, UC_LM}, + {0x01B000, 0x01B122, UC_LO}, + {0x01B132, 0x01B132, UC_LO}, + {0x01B150, 0x01B152, UC_LO}, + {0x01B155, 0x01B155, UC_LO}, + {0x01B164, 0x01B167, UC_LO}, + {0x01B170, 0x01B2FB, UC_LO}, + {0x01BC00, 0x01BC6A, UC_LO}, + {0x01BC70, 0x01BC7C, UC_LO}, + {0x01BC80, 0x01BC88, UC_LO}, + {0x01BC90, 0x01BC99, UC_LO}, + {0x01BC9C, 0x01BC9C, UC_SO}, + {0x01BC9D, 0x01BC9E, UC_MN}, + {0x01BC9F, 0x01BC9F, UC_PO}, + {0x01BCA0, 0x01BCA3, UC_CF}, + {0x01CF00, 0x01CF2D, UC_MN}, + {0x01CF30, 0x01CF46, UC_MN}, + {0x01CF50, 0x01CFC3, UC_SO}, + {0x01D000, 0x01D0F5, UC_SO}, + {0x01D100, 0x01D126, UC_SO}, + {0x01D129, 0x01D164, UC_SO}, + {0x01D165, 0x01D166, UC_MC}, + {0x01D167, 0x01D169, UC_MN}, + {0x01D16A, 0x01D16C, UC_SO}, + {0x01D16D, 0x01D172, UC_MC}, + {0x01D173, 0x01D17A, UC_CF}, + {0x01D17B, 0x01D182, UC_MN}, + {0x01D183, 0x01D184, UC_SO}, + {0x01D185, 0x01D18B, UC_MN}, + {0x01D18C, 0x01D1A9, UC_SO}, + {0x01D1AA, 0x01D1AD, UC_MN}, + {0x01D1AE, 0x01D1EA, UC_SO}, + {0x01D200, 0x01D241, UC_SO}, + {0x01D242, 0x01D244, UC_MN}, + {0x01D245, 0x01D245, UC_SO}, + {0x01D2C0, 0x01D2D3, UC_NO}, + {0x01D2E0, 0x01D2F3, UC_NO}, + {0x01D300, 0x01D356, UC_SO}, + {0x01D360, 0x01D378, UC_NO}, + {0x01D400, 0x01D419, UC_LU}, + {0x01D41A, 0x01D433, UC_LL}, + {0x01D434, 0x01D44D, UC_LU}, + {0x01D44E, 0x01D454, UC_LL}, + {0x01D456, 0x01D467, UC_LL}, + {0x01D468, 0x01D481, UC_LU}, + {0x01D482, 0x01D49B, UC_LL}, + {0x01D49C, 0x01D49C, UC_LU}, + {0x01D49E, 0x01D49F, UC_LU}, + {0x01D4A2, 0x01D4A2, UC_LU}, + {0x01D4A5, 0x01D4A6, UC_LU}, + {0x01D4A9, 0x01D4AC, UC_LU}, + {0x01D4AE, 0x01D4B5, UC_LU}, + {0x01D4B6, 0x01D4B9, UC_LL}, + {0x01D4BB, 0x01D4BB, UC_LL}, + {0x01D4BD, 0x01D4C3, UC_LL}, + {0x01D4C5, 0x01D4CF, UC_LL}, + {0x01D4D0, 0x01D4E9, UC_LU}, + {0x01D4EA, 0x01D503, UC_LL}, + {0x01D504, 0x01D505, UC_LU}, + {0x01D507, 0x01D50A, UC_LU}, + {0x01D50D, 0x01D514, UC_LU}, + {0x01D516, 0x01D51C, UC_LU}, + {0x01D51E, 0x01D537, UC_LL}, + {0x01D538, 0x01D539, UC_LU}, + {0x01D53B, 0x01D53E, UC_LU}, + {0x01D540, 0x01D544, UC_LU}, + {0x01D546, 0x01D546, UC_LU}, + {0x01D54A, 0x01D550, UC_LU}, + {0x01D552, 0x01D56B, UC_LL}, + {0x01D56C, 0x01D585, UC_LU}, + {0x01D586, 0x01D59F, UC_LL}, + {0x01D5A0, 0x01D5B9, UC_LU}, + {0x01D5BA, 0x01D5D3, UC_LL}, + {0x01D5D4, 0x01D5ED, UC_LU}, + {0x01D5EE, 0x01D607, UC_LL}, + {0x01D608, 0x01D621, UC_LU}, + {0x01D622, 0x01D63B, UC_LL}, + {0x01D63C, 0x01D655, UC_LU}, + {0x01D656, 0x01D66F, UC_LL}, + {0x01D670, 0x01D689, UC_LU}, + {0x01D68A, 0x01D6A5, UC_LL}, + {0x01D6A8, 0x01D6C0, UC_LU}, + {0x01D6C1, 0x01D6C1, UC_SM}, + {0x01D6C2, 0x01D6DA, UC_LL}, + {0x01D6DB, 0x01D6DB, UC_SM}, + {0x01D6DC, 0x01D6E1, UC_LL}, + {0x01D6E2, 0x01D6FA, UC_LU}, + {0x01D6FB, 0x01D6FB, UC_SM}, + {0x01D6FC, 0x01D714, UC_LL}, + {0x01D715, 0x01D715, UC_SM}, + {0x01D716, 0x01D71B, UC_LL}, + {0x01D71C, 0x01D734, UC_LU}, + {0x01D735, 0x01D735, UC_SM}, + {0x01D736, 0x01D74E, UC_LL}, + {0x01D74F, 0x01D74F, UC_SM}, + {0x01D750, 0x01D755, UC_LL}, + {0x01D756, 0x01D76E, UC_LU}, + {0x01D76F, 0x01D76F, UC_SM}, + {0x01D770, 0x01D788, UC_LL}, + {0x01D789, 0x01D789, UC_SM}, + {0x01D78A, 0x01D78F, UC_LL}, + {0x01D790, 0x01D7A8, UC_LU}, + {0x01D7A9, 0x01D7A9, UC_SM}, + {0x01D7AA, 0x01D7C2, UC_LL}, + {0x01D7C3, 0x01D7C3, UC_SM}, + {0x01D7C4, 0x01D7C9, UC_LL}, + {0x01D7CA, 0x01D7CA, UC_LU}, + {0x01D7CB, 0x01D7CB, UC_LL}, + {0x01D7CE, 0x01D7FF, UC_ND}, + {0x01D800, 0x01D9FF, UC_SO}, + {0x01DA00, 0x01DA36, UC_MN}, + {0x01DA37, 0x01DA3A, UC_SO}, + {0x01DA3B, 0x01DA6C, UC_MN}, + {0x01DA6D, 0x01DA74, UC_SO}, + {0x01DA75, 0x01DA75, UC_MN}, + {0x01DA76, 0x01DA83, UC_SO}, + {0x01DA84, 0x01DA84, UC_MN}, + {0x01DA85, 0x01DA86, UC_SO}, + {0x01DA87, 0x01DA8B, UC_PO}, + {0x01DA9B, 0x01DA9F, UC_MN}, + {0x01DAA1, 0x01DAAF, UC_MN}, + {0x01DF00, 0x01DF09, UC_LL}, + {0x01DF0A, 0x01DF0A, UC_LO}, + {0x01DF0B, 0x01DF1E, UC_LL}, + {0x01DF25, 0x01DF2A, UC_LL}, + {0x01E000, 0x01E006, UC_MN}, + {0x01E008, 0x01E018, UC_MN}, + {0x01E01B, 0x01E021, UC_MN}, + {0x01E023, 0x01E024, UC_MN}, + {0x01E026, 0x01E02A, UC_MN}, + {0x01E030, 0x01E06D, UC_LM}, + {0x01E08F, 0x01E08F, UC_MN}, + {0x01E100, 0x01E12C, UC_LO}, + {0x01E130, 0x01E136, UC_MN}, + {0x01E137, 0x01E13D, UC_LM}, + {0x01E140, 0x01E149, UC_ND}, + {0x01E14E, 0x01E14E, UC_LO}, + {0x01E14F, 0x01E14F, UC_SO}, + {0x01E290, 0x01E2AD, UC_LO}, + {0x01E2AE, 0x01E2AE, UC_MN}, + {0x01E2C0, 0x01E2EB, UC_LO}, + {0x01E2EC, 0x01E2EF, UC_MN}, + {0x01E2F0, 0x01E2F9, UC_ND}, + {0x01E2FF, 0x01E2FF, UC_SC}, + {0x01E4D0, 0x01E4EA, UC_LO}, + {0x01E4EB, 0x01E4EB, UC_LM}, + {0x01E4EC, 0x01E4EF, UC_MN}, + {0x01E4F0, 0x01E4F9, UC_ND}, + {0x01E7E0, 0x01E7E6, UC_LO}, + {0x01E7E8, 0x01E7EB, UC_LO}, + {0x01E7ED, 0x01E7EE, UC_LO}, + {0x01E7F0, 0x01E7FE, UC_LO}, + {0x01E800, 0x01E8C4, UC_LO}, + {0x01E8C7, 0x01E8CF, UC_NO}, + {0x01E8D0, 0x01E8D6, UC_MN}, + {0x01E900, 0x01E921, UC_LU}, + {0x01E922, 0x01E943, UC_LL}, + {0x01E944, 0x01E94A, UC_MN}, + {0x01E94B, 0x01E94B, UC_LM}, + {0x01E950, 0x01E959, UC_ND}, + {0x01E95E, 0x01E95F, UC_PO}, + {0x01EC71, 0x01ECAB, UC_NO}, + {0x01ECAC, 0x01ECAC, UC_SO}, + {0x01ECAD, 0x01ECAF, UC_NO}, + {0x01ECB0, 0x01ECB0, UC_SC}, + {0x01ECB1, 0x01ECB4, UC_NO}, + {0x01ED01, 0x01ED2D, UC_NO}, + {0x01ED2E, 0x01ED2E, UC_SO}, + {0x01ED2F, 0x01ED3D, UC_NO}, + {0x01EE00, 0x01EE03, UC_LO}, + {0x01EE05, 0x01EE1F, UC_LO}, + {0x01EE21, 0x01EE22, UC_LO}, + {0x01EE24, 0x01EE24, UC_LO}, + {0x01EE27, 0x01EE27, UC_LO}, + {0x01EE29, 0x01EE32, UC_LO}, + {0x01EE34, 0x01EE37, UC_LO}, + {0x01EE39, 0x01EE39, UC_LO}, + {0x01EE3B, 0x01EE3B, UC_LO}, + {0x01EE42, 0x01EE42, UC_LO}, + {0x01EE47, 0x01EE47, UC_LO}, + {0x01EE49, 0x01EE49, UC_LO}, + {0x01EE4B, 0x01EE4B, UC_LO}, + {0x01EE4D, 0x01EE4F, UC_LO}, + {0x01EE51, 0x01EE52, UC_LO}, + {0x01EE54, 0x01EE54, UC_LO}, + {0x01EE57, 0x01EE57, UC_LO}, + {0x01EE59, 0x01EE59, UC_LO}, + {0x01EE5B, 0x01EE5B, UC_LO}, + {0x01EE5D, 0x01EE5D, UC_LO}, + {0x01EE5F, 0x01EE5F, UC_LO}, + {0x01EE61, 0x01EE62, UC_LO}, + {0x01EE64, 0x01EE64, UC_LO}, + {0x01EE67, 0x01EE6A, UC_LO}, + {0x01EE6C, 0x01EE72, UC_LO}, + {0x01EE74, 0x01EE77, UC_LO}, + {0x01EE79, 0x01EE7C, UC_LO}, + {0x01EE7E, 0x01EE7E, UC_LO}, + {0x01EE80, 0x01EE89, UC_LO}, + {0x01EE8B, 0x01EE9B, UC_LO}, + {0x01EEA1, 0x01EEA3, UC_LO}, + {0x01EEA5, 0x01EEA9, UC_LO}, + {0x01EEAB, 0x01EEBB, UC_LO}, + {0x01EEF0, 0x01EEF1, UC_SM}, + {0x01F000, 0x01F02B, UC_SO}, + {0x01F030, 0x01F093, UC_SO}, + {0x01F0A0, 0x01F0AE, UC_SO}, + {0x01F0B1, 0x01F0BF, UC_SO}, + {0x01F0C1, 0x01F0CF, UC_SO}, + {0x01F0D1, 0x01F0F5, UC_SO}, + {0x01F100, 0x01F10C, UC_NO}, + {0x01F10D, 0x01F1AD, UC_SO}, + {0x01F1E6, 0x01F202, UC_SO}, + {0x01F210, 0x01F23B, UC_SO}, + {0x01F240, 0x01F248, UC_SO}, + {0x01F250, 0x01F251, UC_SO}, + {0x01F260, 0x01F265, UC_SO}, + {0x01F300, 0x01F3FA, UC_SO}, + {0x01F3FB, 0x01F3FF, UC_SK}, + {0x01F400, 0x01F6D7, UC_SO}, + {0x01F6DC, 0x01F6EC, UC_SO}, + {0x01F6F0, 0x01F6FC, UC_SO}, + {0x01F700, 0x01F776, UC_SO}, + {0x01F77B, 0x01F7D9, UC_SO}, + {0x01F7E0, 0x01F7EB, UC_SO}, + {0x01F7F0, 0x01F7F0, UC_SO}, + {0x01F800, 0x01F80B, UC_SO}, + {0x01F810, 0x01F847, UC_SO}, + {0x01F850, 0x01F859, UC_SO}, + {0x01F860, 0x01F887, UC_SO}, + {0x01F890, 0x01F8AD, UC_SO}, + {0x01F8B0, 0x01F8B1, UC_SO}, + {0x01F900, 0x01FA53, UC_SO}, + {0x01FA60, 0x01FA6D, UC_SO}, + {0x01FA70, 0x01FA7C, UC_SO}, + {0x01FA80, 0x01FA88, UC_SO}, + {0x01FA90, 0x01FABD, UC_SO}, + {0x01FABF, 0x01FAC5, UC_SO}, + {0x01FACE, 0x01FADB, UC_SO}, + {0x01FAE0, 0x01FAE8, UC_SO}, + {0x01FAF0, 0x01FAF8, UC_SO}, + {0x01FB00, 0x01FB92, UC_SO}, + {0x01FB94, 0x01FBCA, UC_SO}, + {0x01FBF0, 0x01FBF9, UC_ND}, + {0x020000, 0x02A6DF, UC_LO}, + {0x02A700, 0x02B739, UC_LO}, + {0x02B740, 0x02B81D, UC_LO}, + {0x02B820, 0x02CEA1, UC_LO}, + {0x02CEB0, 0x02EBE0, UC_LO}, + {0x02EBF0, 0x02EE5D, UC_LO}, + {0x02F800, 0x02FA1D, UC_LO}, + {0x030000, 0x03134A, UC_LO}, + {0x031350, 0x0323AF, UC_LO}, + {0x0E0001, 0x0E0001, UC_CF}, + {0x0E0020, 0x0E007F, UC_CF}, + {0x0E0100, 0x0E01EF, UC_MN}, + {0x0F0000, 0x0FFFFD, UC_CO}, + {0x100000, 0x10FFFD, UC_CO}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_LOOKUP_H */ diff --git a/vendor/librune/include/internal/types.h b/vendor/librune/include/internal/types.h index b7ce6f1..d216749 100644 --- a/vendor/librune/include/internal/types.h +++ b/vendor/librune/include/internal/types.h @@ -6,12 +6,10 @@ typedef unsigned char char8_t; typedef uint_least32_t rune; -#if _RUNE_NEEDS_U8VIEW -# if !_RUNE_HAS_U8VIEW +#if _RUNE_NEEDS_U8VIEW && !_RUNE_HAS_U8VIEW struct u8view { const char8_t *p; size_t len; }; -# define _RUNE_HAS_U8VIEW 1 -# endif +# define _RUNE_HAS_U8VIEW 1 #endif diff --git a/vendor/librune/include/rtype.h b/vendor/librune/include/rtype.h new file mode 100644 index 0000000..6c3e8e3 --- /dev/null +++ b/vendor/librune/include/rtype.h @@ -0,0 +1,64 @@ +#ifndef RUNE_RTYPE_H +#define RUNE_RTYPE_H + +#include <stdint.h> + +#include "internal/types.h" + +typedef enum [[clang::flag_enum]] : uint_fast32_t { + UC_CN = 0, /* Not Assigned */ + UC_CC = 1 << 0, /* Control */ + UC_CF = 1 << 1, /* Format */ + UC_CO = 1 << 2, /* Private Use */ + UC_CS = 1 << 3, /* Surrogate */ + UC_LL = 1 << 4, /* Lowercase Letter */ + UC_LM = 1 << 5, /* Modifier Letter */ + UC_LO = 1 << 6, /* Other Letter */ + UC_LT = 1 << 7, /* Titlecase Letter */ + UC_LU = 1 << 8, /* Uppercase Letter */ + UC_MC = 1 << 9, /* Spacing Mark */ + UC_ME = 1 << 10, /* Enclosing Mark */ + UC_MN = 1 << 11, /* Nonspacing Mark */ + UC_ND = 1 << 12, /* Decimal Number */ + UC_NL = 1 << 13, /* Letter Number */ + UC_NO = 1 << 14, /* Other Number */ + UC_PC = 1 << 15, /* Connector Punctuation */ + UC_PD = 1 << 16, /* Dash Punctuation */ + UC_PE = 1 << 17, /* Close Punctuation */ + UC_PF = 1 << 18, /* Final Punctuation */ + UC_PI = 1 << 19, /* Initial Punctuation */ + UC_PO = 1 << 20, /* Other Punctuation */ + UC_PS = 1 << 21, /* Open Punctuation */ + UC_SC = 1 << 22, /* Currency Symbol */ + UC_SK = 1 << 23, /* Modifier Symbol */ + UC_SM = 1 << 24, /* Math Symbol */ + UC_SO = 1 << 25, /* Other Symbol */ + UC_ZL = 1 << 26, /* Line Separator */ + UC_ZP = 1 << 27, /* Paragraph Separator */ + UC_ZS = 1 << 28, /* Space Separator */ + + UC_C = UC_CC | UC_CF | UC_CN | UC_CO | UC_CS, /* Other */ + UC_L = UC_LL | UC_LM | UC_LO | UC_LT | UC_LU, /* Letter */ + UC_M = UC_MC | UC_ME | UC_MN, /* Mark */ + UC_N = UC_ND | UC_NL | UC_NO, /* Number */ + UC_S = UC_SC | UC_SK | UC_SM | UC_SO, /* Symbol */ + UC_Z = UC_ZL | UC_ZP | UC_ZS, /* Separator */ + UC_P = UC_PC | UC_PD | UC_PE | UC_PF | UC_PI /* Punctuation */ + | UC_PO | UC_PS, +} unicat; + +[[unsequenced]] bool runeis(rune, unicat); + +[[unsequenced]] bool riscntrl(rune); +[[unsequenced]] bool risdigit(rune); +[[unsequenced]] bool risgraph(rune); +[[unsequenced]] bool rislower(rune); +[[unsequenced]] bool rismark(rune); +[[unsequenced]] bool risnumber(rune); +[[unsequenced]] bool rispunct(rune); +[[unsequenced]] bool risspace(rune); +[[unsequenced]] bool rissymbol(rune); +[[unsequenced]] bool ristitle(rune); +[[unsequenced]] bool risupper(rune); + +#endif /* !RUNE_RTYPE_H */ diff --git a/vendor/librune/include/rune.h b/vendor/librune/include/rune.h index 31ed2e2..23c3b7c 100644 --- a/vendor/librune/include/rune.h +++ b/vendor/librune/include/rune.h @@ -8,22 +8,18 @@ #define _RUNE_PRIDEF(c) PRI##c##LEAST32 #define _RUNE_SCNDEF(c) SCN##c##LEAST32 -#ifdef PRIbLEAST32 -# define PRIbRUNE _RUNE_PRIDEF(b) -#endif #ifdef PRIBLEAST32 # define PRIBRUNE _RUNE_PRIDEF(B) #endif +#define PRIbRUNE _RUNE_PRIDEF(b) #define PRIdRUNE _RUNE_PRIDEF(d) #define PRIiRUNE _RUNE_PRIDEF(i) -#define PRIuRUNE _RUNE_PRIDEF(u) #define PRIoRUNE _RUNE_PRIDEF(o) +#define PRIuRUNE _RUNE_PRIDEF(u) #define PRIxRUNE _RUNE_PRIDEF(x) #define PRIXRUNE _RUNE_PRIDEF(X) -#ifdef SCNbLEAST32 -# define SCNbRUNE _RUNE_SCNDEF(b) -#endif +#define SCNbRUNE _RUNE_SCNDEF(b) #define SCNdRUNE _RUNE_SCNDEF(d) #define SCNiRUNE _RUNE_SCNDEF(i) #define SCNuRUNE _RUNE_SCNDEF(u) diff --git a/vendor/librune/include/utf8.h b/vendor/librune/include/utf8.h index 1a91c24..f39e1bd 100644 --- a/vendor/librune/include/utf8.h +++ b/vendor/librune/include/utf8.h @@ -1,47 +1,40 @@ #ifndef RUNE_UTF8_H #define RUNE_UTF8_H -#if __STDC_VERSION__ < 202311L -# include <stdbool.h> /* IWYU pragma: export */ -# define _RUNE_UNSEQUENCED -#else -# define _RUNE_UNSEQUENCED [[unsequenced]] -#endif - +#include "internal/qmacros.h" #define _RUNE_NEEDS_U8VIEW 1 #include "internal/types.h" /* IWYU pragma: export */ #define U8_LEN_MAX (4) -int rtou8(char8_t *, rune, size_t); int u8tor(rune *, const char8_t *); int u8tor_uc(rune *, const char8_t *); -const char8_t *u8chk(const char8_t *, size_t); -_RUNE_UNSEQUENCED bool u8chkr(rune); +int rtou8(char8_t *, rune, size_t); +size_t u8set(char8_t *, rune, size_t); -_RUNE_UNSEQUENCED int u8wdth(rune); +char8_t *u8chk(const char8_t *, size_t); +[[unsequenced]] bool u8chkr(rune); -size_t u8len(const char8_t *, size_t); +[[unsequenced]] int u8wdth(rune); -const char8_t *u8next(rune *, const char8_t **, size_t *); -const char8_t *u8prev(rune *, const char8_t **, const char8_t *); +size_t u8len(const char8_t *, size_t); -const char8_t *u8chr(const char8_t *, rune, size_t); -const char8_t *u8rchr(const char8_t *, rune, size_t); +int u8next(rune *, const char8_t **, size_t *); +int u8prev(rune *, const char8_t **, const char8_t *); -size_t u8set(const char8_t *, rune, size_t); +char8_t *u8chr(const char8_t *, rune, size_t); +char8_t *u8rchr(const char8_t *, rune, size_t); -/* clang-format off */ -size_t u8spn(const char8_t *, size_t, const rune *, size_t); -size_t u8bspn(const char8_t *, size_t, const rune *, size_t); -size_t u8cspn(const char8_t *, size_t, const rune *, size_t); +size_t u8spn(const char8_t *, size_t, const rune *, size_t); +size_t u8bspn(const char8_t *, size_t, const rune *, size_t); +size_t u8cspn(const char8_t *, size_t, const rune *, size_t); size_t u8cbspn(const char8_t *, size_t, const rune *, size_t); -#define U8SPN(S, N, P) u8spn((S), (N), (P), (sizeof(P) / sizeof(*(P)))) -#define U8BSPN(S, N, P) u8bspn((S), (N), (P), (sizeof(P) / sizeof(*(P)))) -#define U8CSPN(S, N, P) u8cspn((S), (N), (P), (sizeof(P) / sizeof(*(P)))) -#define U8CBSPN(S, N, P) u8cbspn((S), (N), (P), (sizeof(P) / sizeof(*(P)))) -/* clang-format on */ +#if _RUNE_MACRO_WRAP +# define u8chk(s, n) _RUNE_Q_PTR(u8chk, (s), (s), (n)) +# define u8chr(s, ch, n) _RUNE_Q_PTR(u8chr, (s), (s), (ch), (n)) +# define u8rchr(s, ch, n) _RUNE_Q_PTR(u8rchr, (s), (s), (ch), (n)) +#endif #endif /* !RUNE_UTF8_H */ diff --git a/vendor/librune/lib/builder/u8strfit.c b/vendor/librune/lib/builder/u8strfit.c index c59b4b0..d0f0ecb 100644 --- a/vendor/librune/lib/builder/u8strfit.c +++ b/vendor/librune/lib/builder/u8strfit.c @@ -4,8 +4,8 @@ #include "internal/common.h" -struct u8buf * -u8strfit(struct u8buf *b) +struct u8str * +u8strfit(struct u8str *b) { return (b->p = realloc(b->p, b->len)) ? b : nullptr; } diff --git a/vendor/librune/lib/builder/u8strfree.c b/vendor/librune/lib/builder/u8strfree.c index f425691..506c71b 100644 --- a/vendor/librune/lib/builder/u8strfree.c +++ b/vendor/librune/lib/builder/u8strfree.c @@ -3,7 +3,7 @@ #include "builder.h" void -u8strfree(struct u8buf b) +u8strfree(struct u8str b) { free(b.p); } diff --git a/vendor/librune/lib/builder/u8strgrow.c b/vendor/librune/lib/builder/u8strgrow.c index 253fcfc..022b216 100644 --- a/vendor/librune/lib/builder/u8strgrow.c +++ b/vendor/librune/lib/builder/u8strgrow.c @@ -6,8 +6,8 @@ static size_t nextpow2(size_t); -struct u8buf * -u8strgrow(struct u8buf *b, size_t n) +struct u8str * +u8strgrow(struct u8str *b, size_t n) { if (n > b->cap) { b->cap = nextpow2(n); diff --git a/vendor/librune/lib/builder/u8strinit.c b/vendor/librune/lib/builder/u8strinit.c index caf061e..29947e8 100644 --- a/vendor/librune/lib/builder/u8strinit.c +++ b/vendor/librune/lib/builder/u8strinit.c @@ -4,12 +4,13 @@ #include "internal/common.h" -struct u8buf * -u8strinit(struct u8buf *b, size_t n) +struct u8str * +u8strinit(struct u8str *b, size_t n) { - if (n && !(b->p = malloc(n))) - return nullptr; - else + if (n) { + if (!(b->p = malloc(n))) + return nullptr; + } else b->p = nullptr; b->len = 0; b->cap = n; diff --git a/vendor/librune/lib/builder/u8strpushr.c b/vendor/librune/lib/builder/u8strpushr.c index 89bb64f..60c1d50 100644 --- a/vendor/librune/lib/builder/u8strpushr.c +++ b/vendor/librune/lib/builder/u8strpushr.c @@ -3,8 +3,8 @@ #include "internal/common.h" -struct u8buf * -u8strpushr(struct u8buf *b, rune ch) +struct u8str * +u8strpushr(struct u8str *b, rune ch) { if (!u8strgrow(b, b->len + u8wdth(ch))) return nullptr; diff --git a/vendor/librune/lib/builder/u8strpushstr.c b/vendor/librune/lib/builder/u8strpushstr.c index b80ad35..a036840 100644 --- a/vendor/librune/lib/builder/u8strpushstr.c +++ b/vendor/librune/lib/builder/u8strpushstr.c @@ -5,8 +5,8 @@ #include "internal/common.h" -struct u8buf * -u8strpushstr(struct u8buf *b, const char *s) +struct u8str * +u8strpushstr(struct u8str *b, const char *s) { size_t n = strlen(s); if (!u8strgrow(b, b->len + n)) diff --git a/vendor/librune/lib/builder/u8strpushu8.c b/vendor/librune/lib/builder/u8strpushu8.c index 0bcf9fc..dc6db11 100644 --- a/vendor/librune/lib/builder/u8strpushu8.c +++ b/vendor/librune/lib/builder/u8strpushu8.c @@ -5,8 +5,8 @@ #include "internal/common.h" -struct u8buf * -u8strpushu8(struct u8buf *b, struct u8view v) +struct u8str * +u8strpushu8(struct u8str *b, struct u8view v) { if (!u8strgrow(b, b->len + v.len)) return nullptr; diff --git a/vendor/librune/lib/gbrk/u8gnext.c b/vendor/librune/lib/gbrk/u8gnext.c index 875d5cb..5dae265 100644 --- a/vendor/librune/lib/gbrk/u8gnext.c +++ b/vendor/librune/lib/gbrk/u8gnext.c @@ -1,4 +1,4 @@ -#include <sys/types.h> +#include <stddef.h> #include "gbrk.h" #include "utf8.h" @@ -6,8 +6,6 @@ #include "internal/common.h" #include "internal/gbrk_lookup.h" -#define lengthof(a) (sizeof(a) / sizeof(*(a))) - struct gbrk_state { enum { GB9C_NONE, @@ -21,7 +19,7 @@ struct gbrk_state { static bool u8isgbrk(rune, rune, struct gbrk_state *); static gbrk_prop getprop(rune); -const char8_t * +size_t u8gnext(struct u8view *g, const char8_t **s, size_t *n) { int m; @@ -30,7 +28,7 @@ u8gnext(struct u8view *g, const char8_t **s, size_t *n) struct gbrk_state gs = {0}; if (*n == 0) - return nullptr; + return 0; g->p = p = *s; p += u8tor_uc(&ch1, p); @@ -44,7 +42,8 @@ u8gnext(struct u8view *g, const char8_t **s, size_t *n) m = u8tor_uc(&ch2, p); if (u8isgbrk(ch1, ch2, &gs)) { *n -= g->len = p - *s; - return *s = p; + *s = p; + return g->len; } ch1 = ch2; @@ -145,13 +144,13 @@ do_break: gbrk_prop getprop(rune ch) { - ssize_t lo, hi; + ptrdiff_t lo, hi; lo = 0; hi = lengthof(gbrk_prop_tbl) - 1; while (lo <= hi) { - ssize_t i = (lo + hi) / 2; + ptrdiff_t i = (lo + hi) / 2; if (ch < gbrk_prop_tbl[i].lo) hi = i - 1; diff --git a/vendor/librune/lib/rtype/riscntrl.c b/vendor/librune/lib/rtype/riscntrl.c new file mode 100644 index 0000000..562a2a8 --- /dev/null +++ b/vendor/librune/lib/rtype/riscntrl.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +riscntrl(rune ch) +{ + return runeis(ch, UC_CC); +} diff --git a/vendor/librune/lib/rtype/risdigit.c b/vendor/librune/lib/rtype/risdigit.c new file mode 100644 index 0000000..391543a --- /dev/null +++ b/vendor/librune/lib/rtype/risdigit.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risdigit(rune ch) +{ + return runeis(ch, UC_ND); +} diff --git a/vendor/librune/lib/rtype/risgraph.c b/vendor/librune/lib/rtype/risgraph.c new file mode 100644 index 0000000..8eb6a09 --- /dev/null +++ b/vendor/librune/lib/rtype/risgraph.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risgraph(rune ch) +{ + return runeis(ch, UC_L | UC_M | UC_N | UC_P | UC_ZS); +} diff --git a/vendor/librune/lib/rtype/risletter.c b/vendor/librune/lib/rtype/risletter.c new file mode 100644 index 0000000..2dfab73 --- /dev/null +++ b/vendor/librune/lib/rtype/risletter.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risletter(rune ch) +{ + return runeis(ch, UC_L); +} diff --git a/vendor/librune/lib/rtype/rislower.c b/vendor/librune/lib/rtype/rislower.c new file mode 100644 index 0000000..ee90ce8 --- /dev/null +++ b/vendor/librune/lib/rtype/rislower.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rislower(rune ch) +{ + return runeis(ch, UC_LL); +} diff --git a/vendor/librune/lib/rtype/rismark.c b/vendor/librune/lib/rtype/rismark.c new file mode 100644 index 0000000..5d784ec --- /dev/null +++ b/vendor/librune/lib/rtype/rismark.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rismark(rune ch) +{ + return runeis(ch, UC_M); +} diff --git a/vendor/librune/lib/rtype/risnumber.c b/vendor/librune/lib/rtype/risnumber.c new file mode 100644 index 0000000..26aa428 --- /dev/null +++ b/vendor/librune/lib/rtype/risnumber.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risnumber(rune ch) +{ + return runeis(ch, UC_N); +} diff --git a/vendor/librune/lib/rtype/rispunct.c b/vendor/librune/lib/rtype/rispunct.c new file mode 100644 index 0000000..2abcba6 --- /dev/null +++ b/vendor/librune/lib/rtype/rispunct.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rispunct(rune ch) +{ + return runeis(ch, UC_P); +} diff --git a/vendor/librune/lib/rtype/risspace.c b/vendor/librune/lib/rtype/risspace.c new file mode 100644 index 0000000..992c13b --- /dev/null +++ b/vendor/librune/lib/rtype/risspace.c @@ -0,0 +1,17 @@ +#include "rtype.h" + +#include "internal/common.h" + +/* TODO: Make constexpr */ +static const bool latin1_space_tbl[LATIN1_MAX + 1] = { + ['\t'] = true, ['\n'] = true, ['\v'] = true, ['\f'] = true, + ['\r'] = true, [' '] = true, [0x85] = true, [0xA0] = true, +}; + +bool +risspace(rune ch) +{ + if (ch <= LATIN1_MAX) + return latin1_space_tbl[ch]; + return runeis(ch, UC_Z); +} diff --git a/vendor/librune/lib/rtype/rissymbol.c b/vendor/librune/lib/rtype/rissymbol.c new file mode 100644 index 0000000..9e9a4f5 --- /dev/null +++ b/vendor/librune/lib/rtype/rissymbol.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rissymbol(rune ch) +{ + return runeis(ch, UC_S); +} diff --git a/vendor/librune/lib/rtype/ristitle.c b/vendor/librune/lib/rtype/ristitle.c new file mode 100644 index 0000000..8ddd904 --- /dev/null +++ b/vendor/librune/lib/rtype/ristitle.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +ristitle(rune ch) +{ + return runeis(ch, UC_LT); +} diff --git a/vendor/librune/lib/rtype/risupper.c b/vendor/librune/lib/rtype/risupper.c new file mode 100644 index 0000000..2b77479 --- /dev/null +++ b/vendor/librune/lib/rtype/risupper.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risupper(rune ch) +{ + return runeis(ch, UC_LU); +} diff --git a/vendor/librune/lib/rtype/runeis.c b/vendor/librune/lib/rtype/runeis.c new file mode 100644 index 0000000..180432e --- /dev/null +++ b/vendor/librune/lib/rtype/runeis.c @@ -0,0 +1,31 @@ +#include <stddef.h> + +#include "rtype.h" + +#include "internal/common.h" +#include "internal/rtype_lookup.h" + +bool +runeis(rune ch, unicat c) +{ + ptrdiff_t lo, hi; + + if (ch <= LATIN1_MAX) + return rtype_lat1_tbl[ch] & c; + + lo = 0; + hi = lengthof(rtype_cat_tbl) - 1; + + while (lo <= hi) { + ptrdiff_t i = (lo + hi) / 2; + + if (ch < rtype_cat_tbl[i].lo) + hi = i - 1; + else if (ch > rtype_cat_tbl[i].hi) + lo = i + 1; + else + return c & rtype_cat_tbl[i].cat; + } + + return false; +} diff --git a/vendor/librune/lib/utf8/rtou8.c b/vendor/librune/lib/utf8/rtou8.c index 1823f08..94cce34 100644 --- a/vendor/librune/lib/utf8/rtou8.c +++ b/vendor/librune/lib/utf8/rtou8.c @@ -1,3 +1,5 @@ +#include <stddef.h> + #include "utf8.h" #include "internal/common.h" diff --git a/vendor/librune/lib/utf8/u8chk.c b/vendor/librune/lib/utf8/u8chk.c index 422bbd8..4fd1afc 100644 --- a/vendor/librune/lib/utf8/u8chk.c +++ b/vendor/librune/lib/utf8/u8chk.c @@ -1,9 +1,10 @@ #include "rune.h" +#define _RUNE_NO_MACRO_WRAPPER 1 #include "utf8.h" #include "internal/common.h" -const char8_t * +char8_t * u8chk(const char8_t *s, size_t n) { while (n) { @@ -11,7 +12,7 @@ u8chk(const char8_t *s, size_t n) int m = u8tor(&ch, s); if (ch == RUNE_ERROR) - return s; + return (char8_t *)s; n -= m; } diff --git a/vendor/librune/lib/utf8/u8chr.c b/vendor/librune/lib/utf8/u8chr.c index 4ecbd10..c387300 100644 --- a/vendor/librune/lib/utf8/u8chr.c +++ b/vendor/librune/lib/utf8/u8chr.c @@ -1,10 +1,10 @@ +#include <stddef.h> #include <stdint.h> #include <string.h> +#define _RUNE_NO_MACRO_WRAPPER 1 #include "utf8.h" -#include "internal/common.h" - /* NOTE: The memmem*() functions were taken directly from the memmem() implementation on OpenBSD. As a result, these functions are licensed under OpenBSDs 2-Clause BSD License instead of this libraries 0-Clause BSD License. @@ -32,7 +32,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -static const char8_t * +static char8_t * memmem2(const char8_t *h, size_t k, const char8_t *n) { uint16_t hw, nw; @@ -41,12 +41,12 @@ memmem2(const char8_t *h, size_t k, const char8_t *n) for (h += 2, k -= 2; k; k--, hw = hw << 8 | *h++) { if (hw == nw) - return h - 2; + return (char8_t *)h - 2; } - return hw == nw ? h - 2 : nullptr; + return hw == nw ? (char8_t *)h - 2 : nullptr; } -static const char8_t * +static char8_t * memmem3(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -55,12 +55,12 @@ memmem3(const char8_t *h, size_t k, const char8_t *n) for (h += 3, k -= 3; k; k--, hw = (hw | *h++) << 8) { if (hw == nw) - return h - 3; + return (char8_t *)h - 3; } - return hw == nw ? h - 3 : nullptr; + return hw == nw ? (char8_t *)h - 3 : nullptr; } -static const char8_t * +static char8_t * memmem4(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -69,12 +69,12 @@ memmem4(const char8_t *h, size_t k, const char8_t *n) for (h += 4, k -= 4; k; k--, hw = hw << 8 | *h++) { if (hw == nw) - return h - 4; + return (char8_t *)h - 4; } - return hw == nw ? h - 4 : nullptr; + return hw == nw ? (char8_t *)h - 4 : nullptr; } -const char8_t * +char8_t * u8chr(const char8_t *s, rune ch, size_t n) { char8_t buf[U8_LEN_MAX]; diff --git a/vendor/librune/lib/utf8/u8next.c b/vendor/librune/lib/utf8/u8next.c index 8edc084..12c521d 100644 --- a/vendor/librune/lib/utf8/u8next.c +++ b/vendor/librune/lib/utf8/u8next.c @@ -1,14 +1,16 @@ +#define _RUNE_NO_MACRO_WRAPPER 1 #include "utf8.h" -#include "internal/common.h" - -const char8_t * +int u8next(rune *ch, const char8_t **s, size_t *n) { - int m; + int m = 0; + + if (*n) { + m = u8tor_uc(ch, *s); + *n -= m; + *s += m; + } - if (*n == 0) - return nullptr; - *n -= m = u8tor_uc(ch, *s); - return *s += m; + return m; } diff --git a/vendor/librune/lib/utf8/u8prev.c b/vendor/librune/lib/utf8/u8prev.c index fac0fc7..a219ae9 100644 --- a/vendor/librune/lib/utf8/u8prev.c +++ b/vendor/librune/lib/utf8/u8prev.c @@ -1,9 +1,10 @@ +#define _RUNE_NO_MACRO_WRAPPER 1 #include "rune.h" #include "utf8.h" #include "internal/common.h" -const char8_t * +int u8prev(rune *ch, const char8_t **p, const char8_t *start) { int off; @@ -12,7 +13,7 @@ u8prev(rune *ch, const char8_t **p, const char8_t *start) ptrdiff_t d = s - start; if (d <= 0) { - return nullptr; + return 0; } else if (U1(s[-1])) { *ch = s[-1]; off = 1; @@ -29,9 +30,11 @@ u8prev(rune *ch, const char8_t **p, const char8_t *start) } else match = false; - if (match && u8chkr(*ch)) - return *p -= off; + if (!(match && u8chkr(*ch))) { + *ch = RUNE_ERROR; + off = 1; + } - *ch = RUNE_ERROR; - return *p--; + *p -= off; + return off; } diff --git a/vendor/librune/lib/utf8/u8rchr.c b/vendor/librune/lib/utf8/u8rchr.c index 15fff51..b2668e4 100644 --- a/vendor/librune/lib/utf8/u8rchr.c +++ b/vendor/librune/lib/utf8/u8rchr.c @@ -1,20 +1,20 @@ +#include <stddef.h> #include <stdint.h> +#define _RUNE_NO_MACRO_WRAPPER 1 #include "utf8.h" -#include "internal/common.h" - -static const char8_t * +static char8_t * memrchr1(const char8_t *s, size_t k, const char8_t *n) { for (const char8_t *p = s + k - 1; k-- > 0; p--) { if (*p == *n) - return p; + return (char8_t *)p; } return nullptr; } -static const char8_t * +static char8_t * memrchr2(const char8_t *h, size_t k, const char8_t *n) { uint16_t hw, nw; @@ -24,13 +24,13 @@ memrchr2(const char8_t *h, size_t k, const char8_t *n) for (H -= 2, k -= 2; k; k--, hw = hw >> 8 | (*H-- << 8)) { if (hw == nw) - return H + 1; + return (char8_t *)H + 1; } - return hw == nw ? H + 1 : nullptr; + return hw == nw ? (char8_t *)H + 1 : nullptr; } -static const char8_t * +static char8_t * memrchr3(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -42,13 +42,13 @@ memrchr3(const char8_t *h, size_t k, const char8_t *n) k--, hw = (hw >> 8 | (*H-- << 24)) & UINT32_C(0xFFFFFF00)) { if (hw == nw) - return H + 1; + return (char8_t *)H + 1; } - return hw == nw ? H + 1 : nullptr; + return hw == nw ? (char8_t *)H + 1 : nullptr; } -static const char8_t * +static char8_t * memrchr4(const char8_t *h, size_t k, const char8_t *n) { uint32_t hw, nw; @@ -58,13 +58,13 @@ memrchr4(const char8_t *h, size_t k, const char8_t *n) for (H -= 4, k -= 4; k; k--, hw = hw >> 8 | (*H-- << 24)) { if (hw == nw) - return H + 1; + return (char8_t *)H + 1; } - return hw == nw ? H + 1 : nullptr; + return hw == nw ? (char8_t *)H + 1 : nullptr; } -const char8_t * +char8_t * u8rchr(const char8_t *s, rune ch, size_t n) { char8_t buf[U8_LEN_MAX]; @@ -74,13 +74,13 @@ u8rchr(const char8_t *s, rune ch, size_t n) return nullptr; switch (m) { case 1: - return memrchr1(s, n, buf); + return (char8_t *)memrchr1(s, n, buf); case 2: - return memrchr2(s, n, buf); + return (char8_t *)memrchr2(s, n, buf); case 3: - return memrchr3(s, n, buf); + return (char8_t *)memrchr3(s, n, buf); case 4: - return memrchr4(s, n, buf); + return (char8_t *)memrchr4(s, n, buf); } unreachable(); diff --git a/vendor/librune/lib/utf8/u8set.c b/vendor/librune/lib/utf8/u8set.c index 0dfba2c..6c57991 100644 --- a/vendor/librune/lib/utf8/u8set.c +++ b/vendor/librune/lib/utf8/u8set.c @@ -5,7 +5,7 @@ #include "internal/common.h" size_t -u8set(const char8_t *s, rune ch, size_t n) +u8set(char8_t *s, rune ch, size_t n) { int m; char8_t buf[U8_LEN_MAX]; @@ -13,12 +13,12 @@ u8set(const char8_t *s, rune ch, size_t n) if (n == 0) return 0; if (ch <= _1B_MAX) { - memset((char *)s, ch, n); + memset(s, ch, n); return n; } m = rtou8(buf, ch, sizeof(buf)); for (size_t i = 0; i < n; i += m) - memcpy((char *)s + i, buf, m); + memcpy(s + i, buf, m); return n - n % m; } diff --git a/vendor/librune/lib/utf8/u8tor_uc.c b/vendor/librune/lib/utf8/u8tor_uc.c index ea57332..3448b59 100644 --- a/vendor/librune/lib/utf8/u8tor_uc.c +++ b/vendor/librune/lib/utf8/u8tor_uc.c @@ -1,3 +1,5 @@ +#include <stddef.h> + #include "utf8.h" #include "internal/common.h" diff --git a/vendor/librune/make.c b/vendor/librune/make.c index a7227c9..d818f09 100644 --- a/vendor/librune/make.c +++ b/vendor/librune/make.c @@ -9,13 +9,14 @@ #define CBS_PTHREAD #include "cbs.h" -#define CC "cc" +#define CC "cc" +#define WARNINGS "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-Wno-attributes" +#define CFLAGS_ALL WARNINGS, "-pipe", "-std=c2x" +#define CFLAGS_DBG CFLAGS_ALL, "-g", "-ggdb3", "-Og" #ifdef __APPLE__ -# define CFLAGS "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-pipe", "-O3" +# define CFLAGS_RLS CFLAGS_ALL, "-O3" #else -# define CFLAGS \ - "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-pipe", "-O3", \ - "-march=native", "-mtune=native" +# define CFLAGS_RLS CFLAGS_ALL, "-O3", "-march=native", "-mtune=native" #endif #define cmdprc(c) \ @@ -32,19 +33,40 @@ static void work(void *); static int globerr(const char *, int); +static bool lflag, rflag; + int main(int argc, char **argv) { + int opt; + cbsinit(argc, argv); rebuild(); - if (argc > 1) { - if (streq(argv[1], "clean")) { + while ((opt = getopt(argc, argv, "lr")) != -1) { + switch (opt) { + case 'l': + lflag = true; + break; + case 'r': + rflag = true; + break; + default: + fprintf(stderr, "Usage: %s [-lr]\n", *argv); + exit(EXIT_FAILURE); + } + } + + argc -= optind; + argv += optind; + + if (argc >= 1) { + if (streq(*argv, "clean")) { cmd_t c = {0}; cmdadd(&c, "find", ".", "-name", "*.[ao]", "-delete"); cmdprc(c); } else { - diex("invalid subcommand -- '%s'", argv[1]); + diex("invalid subcommand -- '%s'", *argv); exit(EXIT_FAILURE); } } else { @@ -96,8 +118,13 @@ work(void *p) if (foutdated(dst, src)) { env_or_default(&sv, "CC", CC); - env_or_default(&sv, "CFLAGS", CFLAGS); + if (rflag) + env_or_default(&sv, "CFLAGS", CFLAGS_RLS); + else + env_or_default(&sv, "CFLAGS", CFLAGS_DBG); cmdaddv(&c, sv.buf, sv.len); + if (lflag) + cmdadd(&c, "-flto"); cmdadd(&c, "-Iinclude", "-fPIC", "-o", dst, "-c", src); cmdprc(c); } diff --git a/vendor/librune/man/u8gnext.3 b/vendor/librune/man/u8gnext.3 index 0053aa5..e50c250 100644 --- a/vendor/librune/man/u8gnext.3 +++ b/vendor/librune/man/u8gnext.3 @@ -1,4 +1,4 @@ -.Dd January 18 2024 +.Dd January 27 2024 .Dt U8GNEXT 3 .Os .Sh NAME @@ -8,7 +8,7 @@ .Lb librune .Sh SYNOPSIS .In gbrk.h -.Ft "const char8_t *" +.Ft size_t .Fn u8gnext "struct u8view *v" "const char8_t **s" "size_t *n" .Sh DESCRIPTION The @@ -33,11 +33,8 @@ manual. .Sh RETURN VALUES The .Fn u8gnext -function returns the updated value of -.Fa s -or -.Dv NULL -at the end of iteration. +function returns the length of the grapheme iterated over in bytes, +or 0 at the end of iteration. .Sh EXAMPLES The following calls to .Fn u8gnext diff --git a/vendor/librune/man/u8next.3 b/vendor/librune/man/u8next.3 index 93a4f5d..eabf2a2 100644 --- a/vendor/librune/man/u8next.3 +++ b/vendor/librune/man/u8next.3 @@ -1,4 +1,4 @@ -.Dd January 18 2024 +.Dd January 27 2024 .Dt U8NEXT 3 .Os .Sh NAME @@ -9,9 +9,9 @@ .Lb librune .Sh SYNOPSIS .In utf8.h -.Ft "const char8_t *" +.Ft int .Fn u8next "rune *ch" "const char8_t **s" "size_t *n" -.Ft "const char8_t *" +.Ft int .Fn u8prev "rune *ch" "const char8_t **s" "const char8_t *start" .Sh DESCRIPTION The @@ -48,11 +48,9 @@ The .Fn u8next and .Fn u8prev -functions return the updated value of -.Fa s -or -.Dv NULL -at the end of iteration. +functions return the length of the UTF-8-encoded rune iterated over in +bytes, +or 0 at the end of iteration. .Sh EXAMPLES The following calls to .Fn u8next @@ -63,14 +61,13 @@ iterate over and print all the codepoints in #define STRING u8"Ta’ Ħaġrat" +int w; rune ch; const char8_t *s = STRING; size_t n = sizeof(STRING) - 1; -while (u8next(&ch, &s, &n)) { - int w = u8wdth(ch); +while (w = u8next(&ch, &s, &n)) printf("U+%04" PRIXRUNE ": ‘%.*s’\en", ch, w, s - w); -} .Ed .Pp The following example is the same as the previous, @@ -82,6 +79,7 @@ function to iterate backwards. #define STRING u8"Ta’ Ħaġrat" +int w; rune ch; const char8_t *s, *start; size_t n = sizeof(STRING) - 1; @@ -89,10 +87,8 @@ size_t n = sizeof(STRING) - 1; start = STRING; s = start + n; -while (u8prev(&ch, &s, start)) { - int w = u8wdth(ch); +while (w = u8prev(&ch, &s, start)) printf("U+%04" PRIXRUNE ": ‘%.*s’\en", ch, w, s); -} .Ed .Sh SEE ALSO .Xr rune 3 , diff --git a/vendor/librune/man/u8set.3 b/vendor/librune/man/u8set.3 index 307f84e..d579b0b 100644 --- a/vendor/librune/man/u8set.3 +++ b/vendor/librune/man/u8set.3 @@ -1,4 +1,4 @@ -.Dd January 18 2024 +.Dd January 27 2024 .Dt U8SET 3 .Os .Sh NAME @@ -10,9 +10,9 @@ .Sh SYNOPSIS .In utf8.h .Ft int -.Fn rtou8 "const char8_t *s" "rune ch" "size_t n" +.Fn rtou8 "char8_t *s" "rune ch" "size_t n" .Ft size_t -.Fn u8set "const char8_t *s" "rune ch" "size_t n" +.Fn u8set "char8_t *s" "rune ch" "size_t n" .Sh DESCRIPTION The .Fn rtou8 diff --git a/vendor/librune/test/gbrk.c b/vendor/librune/test/gbrk.c index ad32fdd..5a7c00d 100644 --- a/vendor/librune/test/gbrk.c +++ b/vendor/librune/test/gbrk.c @@ -51,7 +51,7 @@ test(char *raw) char8_t *p, *buf; const char8_t *s; size_t bufsiz = 4096; - struct grapheme graph; + struct u8view graph; if (!(buf = malloc(bufsiz))) die("malloc"); |