From 4f93f935dc7a981ca073a322425c3f5929ffb644 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 21 Jan 2024 03:03:58 +0100 Subject: Support line- & column-based match locations --- vendor/librune/include/gbrk.h | 10 + vendor/librune/include/internal/common.h | 39 + vendor/librune/include/internal/gbrk_lookup.h | 1569 +++++++++++++++++++++++++ vendor/librune/include/internal/types.h | 17 + vendor/librune/include/rune.h | 38 + vendor/librune/include/utf8.h | 47 + 6 files changed, 1720 insertions(+) create mode 100644 vendor/librune/include/gbrk.h create mode 100644 vendor/librune/include/internal/common.h create mode 100644 vendor/librune/include/internal/gbrk_lookup.h create mode 100644 vendor/librune/include/internal/types.h create mode 100644 vendor/librune/include/rune.h create mode 100644 vendor/librune/include/utf8.h (limited to 'vendor/librune/include') diff --git a/vendor/librune/include/gbrk.h b/vendor/librune/include/gbrk.h new file mode 100644 index 0000000..5eef882 --- /dev/null +++ b/vendor/librune/include/gbrk.h @@ -0,0 +1,10 @@ +#ifndef RUNE_GBRK_H +#define RUNE_GBRK_H + +#define _RUNE_NEEDS_U8VIEW 1 +#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 *); + +#endif /* !RUNE_GBRK_H */ diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h new file mode 100644 index 0000000..7107528 --- /dev/null +++ b/vendor/librune/include/internal/common.h @@ -0,0 +1,39 @@ +#ifndef RUNE_INTERNAL_COMMON_H +#define RUNE_INTERNAL_COMMON_H + +#if __STDC_VERSION__ >= 202311L +# define RUNE_IS_23 1 +#endif + +#if !RUNE_IS_23 +# include /* IWYU pragma: export */ +# define nullptr NULL +#endif + +#ifndef unreachable +# if RUNE_IS_23 +# include /* IWYU pragma: export */ +# elif defined(__GNUC__) || defined(__clang__) +# define unreachable() __builtin_unreachable() +# else +# define unreachable() \ + do \ + *(int *)0 = 0; \ + while (0) +# endif +#endif + +#define U1(x) (((x)&0x80) == 0x00) +#define U2(x) (((x)&0xE0) == 0xC0) +#define U3(x) (((x)&0xF0) == 0xE0) +#define U4(x) (((x)&0xF8) == 0xF0) +#define UC(x) (((x)&0xC0) == 0x80) + +/* Maximum value of a 1–4-byte long UTF-8 sequence */ +#include "rune.h" +#define _1B_MAX RUNE_C(0x00007F) +#define _2B_MAX RUNE_C(0x0007FF) +#define _3B_MAX RUNE_C(0x00FFFF) +#define _4B_MAX RUNE_C(0x10FFFF) + +#endif /* !RUNE_INTERNAL_COMMON_H */ diff --git a/vendor/librune/include/internal/gbrk_lookup.h b/vendor/librune/include/internal/gbrk_lookup.h new file mode 100644 index 0000000..39dfa8e --- /dev/null +++ b/vendor/librune/include/internal/gbrk_lookup.h @@ -0,0 +1,1569 @@ +/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ + +/* TODO: Change tables to constexpr from const when Clangd gets better */ + +#ifndef RUNE_INTERNAL_GBRK_LOOKUP_H +#define RUNE_INTERNAL_GBRK_LOOKUP_H + +/* clang-format off */ + +#include "types.h" + +typedef enum { + GBP_OTHER = 0, + + GBP_CTRL = 1 << 0, /* Control */ + GBP_EXT = 1 << 1, /* Extend */ + GBP_PIC = 1 << 2, /* Extended_Pictographic */ + GBP_PREP = 1 << 3, /* Prepend */ + GBP_RI = 1 << 4, /* Regional_Indicator */ + GBP_SM = 1 << 5, /* SpacingMark */ + GBP_ZWJ = 1 << 6, /* ZWJ */ + + GBP_HNGL_L = 1 << 7, /* Hangul L */ + GBP_HNGL_LV = 1 << 8, /* Hangul LV */ + GBP_HNGL_LVT = 1 << 9, /* Hangul LVT */ + GBP_HNGL_T = 1 << 10, /* Hangul T */ + GBP_HNGL_V = 1 << 11, /* Hangul V */ + + GBP_INDC_CNSNT = 1 << 12, /* Indic Consonant */ + GBP_INDC_EXT = 1 << 13, /* Indic Extend */ + GBP_INDC_LNK = 1 << 14, /* Indic Linker */ +} gbrk_prop; + +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}, +}; + +#endif /* !RUNE_INTERNAL_GBRK_LOOKUP_H */ diff --git a/vendor/librune/include/internal/types.h b/vendor/librune/include/internal/types.h new file mode 100644 index 0000000..b2fa34c --- /dev/null +++ b/vendor/librune/include/internal/types.h @@ -0,0 +1,17 @@ +#ifndef RUNE_INTERNAL_TYPES_H +#define RUNE_INTERNAL_TYPES_H + +#include /* IWYU pragma: export */ +#include + +typedef unsigned char char8_t; +typedef uint_least32_t rune; + +#if _RUNE_NEEDS_U8VIEW +struct u8view { + const char8_t *p; + size_t len; +}; +#endif + +#endif /* !RUNE_INTERNAL_TYPES_H */ diff --git a/vendor/librune/include/rune.h b/vendor/librune/include/rune.h new file mode 100644 index 0000000..31ed2e2 --- /dev/null +++ b/vendor/librune/include/rune.h @@ -0,0 +1,38 @@ +#ifndef RUNE_RUNE_H +#define RUNE_RUNE_H + +#include + +#include "internal/types.h" /* IWYU pragma: export */ + +#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 PRIdRUNE _RUNE_PRIDEF(d) +#define PRIiRUNE _RUNE_PRIDEF(i) +#define PRIuRUNE _RUNE_PRIDEF(u) +#define PRIoRUNE _RUNE_PRIDEF(o) +#define PRIxRUNE _RUNE_PRIDEF(x) +#define PRIXRUNE _RUNE_PRIDEF(X) + +#ifdef SCNbLEAST32 +# define SCNbRUNE _RUNE_SCNDEF(b) +#endif +#define SCNdRUNE _RUNE_SCNDEF(d) +#define SCNiRUNE _RUNE_SCNDEF(i) +#define SCNuRUNE _RUNE_SCNDEF(u) +#define SCNoRUNE _RUNE_SCNDEF(o) +#define SCNxRUNE _RUNE_SCNDEF(x) + +#define RUNE_C(x) UINT32_C(x) + +#define RUNE_ERROR ((rune)0xFFFD) +#define RUNE_MAX ((rune)RUNE_C(0x10FFFF)) + +#endif /* !RUNE_RUNE_H */ diff --git a/vendor/librune/include/utf8.h b/vendor/librune/include/utf8.h new file mode 100644 index 0000000..0ebd745 --- /dev/null +++ b/vendor/librune/include/utf8.h @@ -0,0 +1,47 @@ +#ifndef RUNE_UTF8_H +#define RUNE_UTF8_H + +#if __STDC_VERSION__ < 202311L +# include /* IWYU pragma: export */ +# define _RUNE_UNSEQUENCED +#else +# define _RUNE_UNSEQUENCED [[unsequenced]] +#endif + +#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); +bool u8chkr(rune); + +_RUNE_UNSEQUENCED int u8wdth(rune); + +size_t u8len(const char8_t *, size_t); + +const char8_t *u8next(rune *, const char8_t **, size_t *); +const char8_t *u8prev(rune *, const char8_t **, const char8_t *); + +const char8_t *u8chr(const char8_t *, rune, size_t); +const char8_t *u8rchr(const char8_t *, rune, size_t); + +size_t u8set(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 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 */ + +#endif /* !RUNE_UTF8_H */ -- cgit v1.2.3