summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/third_party/harfbuzz/contrib
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-08 14:30:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-12 13:49:54 +0200
commitab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch)
tree498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/third_party/skia/third_party/harfbuzz/contrib
parent4ce69f7403811819800e7c5ae1318b2647e778d1 (diff)
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/third_party/skia/third_party/harfbuzz/contrib')
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/README9
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.c149
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.h9
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-glib.c169
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-tables.c84
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.c287
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.h54
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/BidiMirroring.txt588
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedCombiningClass.txt1881
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedGeneralCategory.txt3072
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/GraphemeBreakProperty.txt1166
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/README17
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/Scripts.txt1747
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-parse.py70
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-properties.h2869
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-class-parse.py34
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-properties.h247
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-parse.py45
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-properties.h1113
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-parse.py50
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-properties.h379
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/script-properties.h297
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/scripts-parse.py75
-rw-r--r--chromium/third_party/skia/third_party/harfbuzz/contrib/tables/unicode_parse_common.py70
24 files changed, 14481 insertions, 0 deletions
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/README b/chromium/third_party/skia/third_party/harfbuzz/contrib/README
new file mode 100644
index 00000000000..074cc527f05
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/README
@@ -0,0 +1,9 @@
+Harfbuzz requires several functions to be defined in order to work with the
+platform's Unicode tables etc.
+
+If you are building on top of Qt4 you should look at the code in the tests/
+directory for examples of how to hook up Qt4 functions to Harfbuzz.
+
+Otherwise, this directory contains examples of using downloaded Unicode tables
+and/or glib to host Harfbuzz. You should read the README file in tables/ for how
+to build the header files for some of the Unicode tables.
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.c b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.c
new file mode 100644
index 00000000000..a2962df48f6
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.c
@@ -0,0 +1,149 @@
+#include <stdint.h>
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_TRUETYPE_TABLES_H
+
+#if 0
+#include <freetype/freetype.h>
+#include <freetype/tttables.h>
+#endif
+
+#include <harfbuzz-shaper.h>
+#include "harfbuzz-unicode.h"
+
+static HB_Bool
+hb_freetype_string_to_glyphs(HB_Font font,
+ const HB_UChar16 *chars, hb_uint32 len,
+ HB_Glyph *glyphs, hb_uint32 *numGlyphs,
+ HB_Bool is_rtl) {
+ FT_Face face = (FT_Face) font->userData;
+ if (len > *numGlyphs)
+ return 0;
+
+ size_t i = 0, j = 0;
+ while (i < len) {
+ const uint32_t cp = utf16_to_code_point(chars, len, &i);
+ glyphs[j++] = FT_Get_Char_Index(face, cp);
+ }
+
+ *numGlyphs = j;
+
+ return 1;
+}
+
+static void
+hb_freetype_advances_get(HB_Font font, const HB_Glyph *glyphs, hb_uint32 len,
+ HB_Fixed *advances, int flags) {
+ FT_Face face = (FT_Face) font->userData;
+
+ hb_uint32 i;
+ for (i = 0; i < len; ++i) {
+ const FT_Error error = FT_Load_Glyph(face, glyphs[i], FT_LOAD_DEFAULT);
+ if (error) {
+ advances[i] = 0;
+ continue;
+ }
+
+ advances[i] = face->glyph->advance.x;
+ }
+}
+
+static HB_Bool
+hb_freetype_can_render(HB_Font font, const HB_UChar16 *chars, hb_uint32 len) {
+ FT_Face face = (FT_Face)font->userData;
+
+ size_t i = 0;
+ while (i < len) {
+ const uint32_t cp = utf16_to_code_point(chars, len, &i);
+ if (FT_Get_Char_Index(face, cp) == 0)
+ return 0;
+ }
+
+ return 1;
+}
+
+static HB_Error
+hb_freetype_outline_point_get(HB_Font font, HB_Glyph glyph, int flags,
+ hb_uint32 point, HB_Fixed *xpos, HB_Fixed *ypos,
+ hb_uint32 *n_points) {
+ HB_Error error = HB_Err_Ok;
+ FT_Face face = (FT_Face) font->userData;
+
+ int load_flags = (flags & HB_ShaperFlag_UseDesignMetrics) ? FT_LOAD_NO_HINTING : FT_LOAD_DEFAULT;
+
+ if ((error = (HB_Error) FT_Load_Glyph(face, glyph, load_flags)))
+ return error;
+
+ if (face->glyph->format != ft_glyph_format_outline)
+ return (HB_Error)HB_Err_Invalid_SubTable;
+
+ *n_points = face->glyph->outline.n_points;
+ if (!(*n_points))
+ return HB_Err_Ok;
+
+ if (point > *n_points)
+ return (HB_Error)HB_Err_Invalid_SubTable;
+
+ *xpos = face->glyph->outline.points[point].x;
+ *ypos = face->glyph->outline.points[point].y;
+
+ return HB_Err_Ok;
+}
+
+static void
+hb_freetype_glyph_metrics_get(HB_Font font, HB_Glyph glyph,
+ HB_GlyphMetrics *metrics) {
+ FT_Face face = (FT_Face) font->userData;
+
+ const FT_Error error = FT_Load_Glyph(face, glyph, FT_LOAD_DEFAULT);
+ if (error) {
+ metrics->x = metrics->y = metrics->width = metrics->height = 0;
+ metrics->xOffset = metrics->yOffset = 0;
+ return;
+ }
+
+ const FT_Glyph_Metrics *ftmetrics = &face->glyph->metrics;
+ metrics->width = ftmetrics->width;
+ metrics->height = ftmetrics->height;
+ metrics->x = ftmetrics->horiAdvance;
+ metrics->y = 0; // unclear what this is
+ metrics->xOffset = ftmetrics->horiBearingX;
+ metrics->yOffset = ftmetrics->horiBearingY;
+}
+
+static HB_Fixed
+hb_freetype_font_metric_get(HB_Font font, HB_FontMetric metric) {
+ FT_Face face = (FT_Face) font->userData;
+
+ switch (metric) {
+ case HB_FontAscent:
+ // Note that we aren't scanning the VDMX table which we probably would in
+ // an ideal world.
+ return face->ascender;
+ default:
+ return 0;
+ }
+}
+
+const HB_FontClass hb_freetype_class = {
+ hb_freetype_string_to_glyphs,
+ hb_freetype_advances_get,
+ hb_freetype_can_render,
+ hb_freetype_outline_point_get,
+ hb_freetype_glyph_metrics_get,
+ hb_freetype_font_metric_get,
+};
+
+HB_Error
+hb_freetype_table_sfnt_get(void *voidface, const HB_Tag tag, HB_Byte *buffer, HB_UInt *len) {
+ FT_Face face = (FT_Face) voidface;
+ FT_ULong ftlen = *len;
+
+ if (!FT_IS_SFNT(face))
+ return HB_Err_Invalid_Argument;
+
+ const FT_Error error = FT_Load_Sfnt_Table(face, tag, 0, buffer, &ftlen);
+ *len = ftlen;
+ return (HB_Error) error;
+}
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.h
new file mode 100644
index 00000000000..628be168314
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-freetype.h
@@ -0,0 +1,9 @@
+#ifndef HB_FREETYPE_H_
+#define HB_FREETYPE_H_
+
+extern const HB_FontClass hb_freetype_class;
+
+HB_Error hb_freetype_table_sfnt_get(void *voidface, const HB_Tag tag,
+ HB_Byte *buffer, HB_UInt *len);
+
+#endif // HB_FREETYPE_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-glib.c b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-glib.c
new file mode 100644
index 00000000000..6a13433fea7
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-glib.c
@@ -0,0 +1,169 @@
+#include "harfbuzz-external.h"
+
+#include <glib.h>
+
+static int
+hb_category_for_char(HB_UChar32 ch) {
+ switch (g_unichar_type(ch)) {
+ case G_UNICODE_CONTROL:
+ return HB_Other_Control;
+ case G_UNICODE_FORMAT:
+ return HB_Other_Format;
+ case G_UNICODE_UNASSIGNED:
+ return HB_Other_NotAssigned;
+ case G_UNICODE_PRIVATE_USE:
+ return HB_Other_PrivateUse;
+ case G_UNICODE_SURROGATE:
+ return HB_Other_Surrogate;
+ case G_UNICODE_LOWERCASE_LETTER:
+ return HB_Letter_Lowercase;
+ case G_UNICODE_MODIFIER_LETTER:
+ return HB_Letter_Modifier;
+ case G_UNICODE_OTHER_LETTER:
+ return HB_Letter_Other;
+ case G_UNICODE_TITLECASE_LETTER:
+ return HB_Letter_Titlecase;
+ case G_UNICODE_UPPERCASE_LETTER:
+ return HB_Letter_Uppercase;
+ case G_UNICODE_COMBINING_MARK:
+ return HB_Mark_SpacingCombining;
+ case G_UNICODE_ENCLOSING_MARK:
+ return HB_Mark_Enclosing;
+ case G_UNICODE_NON_SPACING_MARK:
+ return HB_Mark_NonSpacing;
+ case G_UNICODE_DECIMAL_NUMBER:
+ return HB_Number_DecimalDigit;
+ case G_UNICODE_LETTER_NUMBER:
+ return HB_Number_Letter;
+ case G_UNICODE_OTHER_NUMBER:
+ return HB_Number_Other;
+ case G_UNICODE_CONNECT_PUNCTUATION:
+ return HB_Punctuation_Connector;
+ case G_UNICODE_DASH_PUNCTUATION:
+ return HB_Punctuation_Dash;
+ case G_UNICODE_CLOSE_PUNCTUATION:
+ return HB_Punctuation_Close;
+ case G_UNICODE_FINAL_PUNCTUATION:
+ return HB_Punctuation_FinalQuote;
+ case G_UNICODE_INITIAL_PUNCTUATION:
+ return HB_Punctuation_InitialQuote;
+ case G_UNICODE_OTHER_PUNCTUATION:
+ return HB_Punctuation_Other;
+ case G_UNICODE_OPEN_PUNCTUATION:
+ return HB_Punctuation_Open;
+ case G_UNICODE_CURRENCY_SYMBOL:
+ return HB_Symbol_Currency;
+ case G_UNICODE_MODIFIER_SYMBOL:
+ return HB_Symbol_Modifier;
+ case G_UNICODE_MATH_SYMBOL:
+ return HB_Symbol_Math;
+ case G_UNICODE_OTHER_SYMBOL:
+ return HB_Symbol_Other;
+ case G_UNICODE_LINE_SEPARATOR:
+ return HB_Separator_Line;
+ case G_UNICODE_PARAGRAPH_SEPARATOR:
+ return HB_Separator_Paragraph;
+ case G_UNICODE_SPACE_SEPARATOR:
+ return HB_Separator_Space;
+ default:
+ return HB_Symbol_Other;
+ }
+}
+
+HB_LineBreakClass
+HB_GetLineBreakClass(HB_UChar32 ch) {
+ switch (g_unichar_break_type(ch)) {
+ case G_UNICODE_BREAK_MANDATORY:
+ return HB_LineBreak_BK;
+ case G_UNICODE_BREAK_CARRIAGE_RETURN:
+ return HB_LineBreak_CR;
+ case G_UNICODE_BREAK_LINE_FEED:
+ return HB_LineBreak_LF;
+ case G_UNICODE_BREAK_COMBINING_MARK:
+ return HB_LineBreak_CM;
+ case G_UNICODE_BREAK_SURROGATE:
+ return HB_LineBreak_SG;
+ case G_UNICODE_BREAK_ZERO_WIDTH_SPACE:
+ return HB_LineBreak_ZW;
+ case G_UNICODE_BREAK_INSEPARABLE:
+ return HB_LineBreak_IN;
+ case G_UNICODE_BREAK_NON_BREAKING_GLUE:
+ return HB_LineBreak_GL;
+ case G_UNICODE_BREAK_CONTINGENT:
+ return HB_LineBreak_AL;
+ case G_UNICODE_BREAK_SPACE:
+ return HB_LineBreak_SP;
+ case G_UNICODE_BREAK_AFTER:
+ return HB_LineBreak_BA;
+ case G_UNICODE_BREAK_BEFORE:
+ return HB_LineBreak_BB;
+ case G_UNICODE_BREAK_BEFORE_AND_AFTER:
+ return HB_LineBreak_B2;
+ case G_UNICODE_BREAK_HYPHEN:
+ return HB_LineBreak_HY;
+ case G_UNICODE_BREAK_NON_STARTER:
+ return HB_LineBreak_NS;
+ case G_UNICODE_BREAK_OPEN_PUNCTUATION:
+ return HB_LineBreak_OP;
+ case G_UNICODE_BREAK_CLOSE_PUNCTUATION:
+ return HB_LineBreak_CL;
+ case G_UNICODE_BREAK_QUOTATION:
+ return HB_LineBreak_QU;
+ case G_UNICODE_BREAK_EXCLAMATION:
+ return HB_LineBreak_EX;
+ case G_UNICODE_BREAK_IDEOGRAPHIC:
+ return HB_LineBreak_ID;
+ case G_UNICODE_BREAK_NUMERIC:
+ return HB_LineBreak_NU;
+ case G_UNICODE_BREAK_INFIX_SEPARATOR:
+ return HB_LineBreak_IS;
+ case G_UNICODE_BREAK_SYMBOL:
+ return HB_LineBreak_SY;
+ case G_UNICODE_BREAK_ALPHABETIC:
+ return HB_LineBreak_AL;
+ case G_UNICODE_BREAK_PREFIX:
+ return HB_LineBreak_PR;
+ case G_UNICODE_BREAK_POSTFIX:
+ return HB_LineBreak_PO;
+ case G_UNICODE_BREAK_COMPLEX_CONTEXT:
+ return HB_LineBreak_SA;
+ case G_UNICODE_BREAK_AMBIGUOUS:
+ return HB_LineBreak_AL;
+ case G_UNICODE_BREAK_UNKNOWN:
+ return HB_LineBreak_AL;
+ case G_UNICODE_BREAK_NEXT_LINE:
+ return HB_LineBreak_AL;
+ case G_UNICODE_BREAK_WORD_JOINER:
+ return HB_LineBreak_WJ;
+ case G_UNICODE_BREAK_HANGUL_L_JAMO:
+ return HB_LineBreak_JL;
+ case G_UNICODE_BREAK_HANGUL_V_JAMO:
+ return HB_LineBreak_JV;
+ case G_UNICODE_BREAK_HANGUL_T_JAMO:
+ return HB_LineBreak_JT;
+ case G_UNICODE_BREAK_HANGUL_LV_SYLLABLE:
+ return HB_LineBreak_H2;
+ case G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE:
+ return HB_LineBreak_H3;
+ default:
+ return HB_LineBreak_AL;
+ }
+}
+
+int
+HB_GetUnicodeCharCombiningClass(HB_UChar32 ch) {
+ return g_unichar_combining_class(ch);
+}
+
+void
+HB_GetUnicodeCharProperties(HB_UChar32 ch,
+ HB_CharCategory *category,
+ int *combiningClass) {
+ *category = hb_category_for_char(ch);
+ *combiningClass = g_unichar_combining_class(ch);
+}
+
+HB_CharCategory
+HB_GetUnicodeCharCategory(HB_UChar32 ch) {
+ return hb_category_for_char(ch);
+}
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-tables.c b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-tables.c
new file mode 100644
index 00000000000..3c3fead62cc
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode-tables.c
@@ -0,0 +1,84 @@
+#include <stdlib.h>
+#include <stdint.h>
+
+#include <harfbuzz-external.h>
+
+#include "tables/category-properties.h"
+#include "tables/combining-properties.h"
+
+HB_LineBreakClass
+HB_GetLineBreakClass(HB_UChar32 ch) {
+ abort();
+ return 0;
+}
+
+static int
+combining_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct combining_property *candidate = vcandidate;
+
+ if (key < candidate->range_start) {
+ return -1;
+ } else if (key > candidate->range_end) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+static int
+code_point_to_combining_class(HB_UChar32 cp) {
+ const void *vprop = bsearch((void *) (intptr_t) cp, combining_properties,
+ combining_properties_count,
+ sizeof(struct combining_property),
+ combining_property_cmp);
+ if (!vprop)
+ return 0;
+
+ return ((const struct combining_property *) vprop)->klass;
+}
+
+int
+HB_GetUnicodeCharCombiningClass(HB_UChar32 ch) {
+ return code_point_to_combining_class(ch);
+ return 0;
+}
+
+static int
+category_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct category_property *candidate = vcandidate;
+
+ if (key < candidate->range_start) {
+ return -1;
+ } else if (key > candidate->range_end) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+static HB_CharCategory
+code_point_to_category(HB_UChar32 cp) {
+ const void *vprop = bsearch((void *) (intptr_t) cp, category_properties,
+ category_properties_count,
+ sizeof(struct category_property),
+ category_property_cmp);
+ if (!vprop)
+ return HB_NoCategory;
+
+ return ((const struct category_property *) vprop)->category;
+}
+
+void
+HB_GetUnicodeCharProperties(HB_UChar32 ch,
+ HB_CharCategory *category,
+ int *combiningClass) {
+ *category = code_point_to_category(ch);
+ *combiningClass = code_point_to_combining_class(ch);
+}
+
+HB_CharCategory
+HB_GetUnicodeCharCategory(HB_UChar32 ch) {
+ return code_point_to_category(ch);
+}
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.c b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.c
new file mode 100644
index 00000000000..f2185dc6fb6
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.c
@@ -0,0 +1,287 @@
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <harfbuzz-external.h>
+#include <harfbuzz-impl.h>
+#include <harfbuzz-shaper.h>
+#include "harfbuzz-unicode.h"
+
+#include "tables/grapheme-break-properties.h"
+#include "tables/mirroring-properties.h"
+#include "tables/script-properties.h"
+
+uint32_t
+utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter) {
+ const uint16_t v = chars[(*iter)++];
+ if (HB_IsHighSurrogate(v)) {
+ // surrogate pair
+ if (*iter >= len) {
+ // the surrogate is incomplete.
+ return HB_InvalidCodePoint;
+ }
+ const uint16_t v2 = chars[(*iter)++];
+ if (!HB_IsLowSurrogate(v2)) {
+ // invalidate surrogate pair.
+ return HB_InvalidCodePoint;
+ }
+
+ return HB_SurrogateToUcs4(v, v2);
+ }
+
+ if (HB_IsLowSurrogate(v)) {
+ // this isn't a valid code point
+ return HB_InvalidCodePoint;
+ }
+
+ return v;
+}
+
+uint32_t
+utf16_to_code_point_prev(const uint16_t *chars, size_t len, ssize_t *iter) {
+ const uint16_t v = chars[(*iter)--];
+ if (HB_IsLowSurrogate(v)) {
+ // surrogate pair
+ if (*iter < 0) {
+ // the surrogate is incomplete.
+ return HB_InvalidCodePoint;
+ }
+ const uint16_t v2 = chars[(*iter)--];
+ if (!HB_IsHighSurrogate(v2)) {
+ // invalidate surrogate pair.
+ return HB_InvalidCodePoint;
+ }
+
+ return HB_SurrogateToUcs4(v2, v);
+ }
+
+ if (HB_IsHighSurrogate(v)) {
+ // this isn't a valid code point
+ return HB_InvalidCodePoint;
+ }
+
+ return v;
+}
+
+static int
+script_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct script_property *candidate = vcandidate;
+
+ if (key < candidate->range_start) {
+ return -1;
+ } else if (key > candidate->range_end) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+HB_Script
+code_point_to_script(uint32_t cp) {
+ const void *vprop = bsearch((void *) (intptr_t) cp, script_properties,
+ script_properties_count,
+ sizeof(struct script_property),
+ script_property_cmp);
+ if (!vprop)
+ return HB_Script_Common;
+
+ return ((const struct script_property *) vprop)->script;
+}
+
+char
+hb_utf16_script_run_next(unsigned *num_code_points, HB_ScriptItem *output,
+ const uint16_t *chars, size_t len, ssize_t *iter) {
+ if (*iter == len)
+ return 0;
+
+ output->pos = *iter;
+ const uint32_t init_cp = utf16_to_code_point(chars, len, iter);
+ unsigned cps = 1;
+ if (init_cp == HB_InvalidCodePoint)
+ return 0;
+ const HB_Script init_script = code_point_to_script(init_cp);
+ HB_Script current_script = init_script;
+ output->script = init_script;
+
+ for (;;) {
+ if (*iter == len)
+ break;
+ const ssize_t prev_iter = *iter;
+ const uint32_t cp = utf16_to_code_point(chars, len, iter);
+ if (cp == HB_InvalidCodePoint)
+ return 0;
+ cps++;
+ const HB_Script script = code_point_to_script(cp);
+
+ if (script != current_script) {
+ if (current_script == init_script == HB_Script_Inherited) {
+ // If we started off as inherited, we take whatever we can find.
+ output->script = script;
+ current_script = script;
+ continue;
+ } else if (script == HB_Script_Inherited) {
+ continue;
+ } else {
+ *iter = prev_iter;
+ cps--;
+ break;
+ }
+ }
+ }
+
+ if (output->script == HB_Script_Inherited)
+ output->script = HB_Script_Common;
+
+ output->length = *iter - output->pos;
+ if (num_code_points)
+ *num_code_points = cps;
+ return 1;
+}
+
+char
+hb_utf16_script_run_prev(unsigned *num_code_points, HB_ScriptItem *output,
+ const uint16_t *chars, size_t len, ssize_t *iter) {
+ if (*iter == (size_t) -1)
+ return 0;
+
+ const size_t ending_index = *iter;
+ const uint32_t init_cp = utf16_to_code_point_prev(chars, len, iter);
+ unsigned cps = 1;
+ if (init_cp == HB_InvalidCodePoint)
+ return 0;
+ const HB_Script init_script = code_point_to_script(init_cp);
+ HB_Script current_script = init_script;
+ output->script = init_script;
+
+ for (;;) {
+ if (*iter < 0)
+ break;
+ const ssize_t prev_iter = *iter;
+ const uint32_t cp = utf16_to_code_point_prev(chars, len, iter);
+ if (cp == HB_InvalidCodePoint)
+ return 0;
+ cps++;
+ const HB_Script script = code_point_to_script(cp);
+
+ if (script != current_script) {
+ if (current_script == init_script == HB_Script_Inherited) {
+ // If we started off as inherited, we take whatever we can find.
+ output->script = script;
+ current_script = script;
+ continue;
+ } else if (script == HB_Script_Inherited) {
+ // Just assume that whatever follows this combining character is within
+ // the same script. This is incorrect if you had language1 + combining
+ // char + language 2, but that is rare and this code is suspicious
+ // anyway.
+ continue;
+ } else {
+ *iter = prev_iter;
+ cps--;
+ break;
+ }
+ }
+ }
+
+ if (output->script == HB_Script_Inherited)
+ output->script = HB_Script_Common;
+
+ output->pos = *iter + 1;
+ output->length = ending_index - *iter;
+ if (num_code_points)
+ *num_code_points = cps;
+ return 1;
+}
+
+static int
+grapheme_break_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct grapheme_break_property *candidate = vcandidate;
+
+ if (key < candidate->range_start) {
+ return -1;
+ } else if (key > candidate->range_end) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+HB_GraphemeClass
+HB_GetGraphemeClass(HB_UChar32 ch) {
+ const void *vprop = bsearch((void *) (intptr_t) ch, grapheme_break_properties,
+ grapheme_break_properties_count,
+ sizeof(struct grapheme_break_property),
+ grapheme_break_property_cmp);
+ if (!vprop)
+ return HB_Grapheme_Other;
+
+ return ((const struct grapheme_break_property *) vprop)->klass;
+}
+
+HB_WordClass
+HB_GetWordClass(HB_UChar32 ch) {
+ abort();
+ return 0;
+}
+
+HB_SentenceClass
+HB_GetSentenceClass(HB_UChar32 ch) {
+ abort();
+ return 0;
+}
+
+void
+HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *gclass, HB_LineBreakClass *breakclass) {
+ *gclass = HB_GetGraphemeClass(ch);
+ *breakclass = HB_GetLineBreakClass(ch);
+}
+
+static int
+mirroring_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct mirroring_property *candidate = vcandidate;
+
+ if (key < candidate->a) {
+ return -1;
+ } else if (key > candidate->a) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+HB_UChar16
+HB_GetMirroredChar(HB_UChar16 ch) {
+ const void *mprop = bsearch((void *) (intptr_t) ch, mirroring_properties,
+ mirroring_properties_count,
+ sizeof(struct mirroring_property),
+ mirroring_property_cmp);
+ if (!mprop)
+ return ch;
+
+ return ((const struct mirroring_property *) mprop)->b;
+}
+
+void *
+HB_Library_Resolve(const char *library, const char *symbol) {
+ abort();
+ return NULL;
+}
+
+void *
+HB_TextCodecForMib(int mib) {
+ abort();
+ return NULL;
+}
+
+char *
+HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb_uint32 length, hb_uint32 *outputLength) {
+ abort();
+ return NULL;
+}
+
+void
+HB_TextCodec_FreeResult(char *v) {
+ abort();
+}
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.h
new file mode 100644
index 00000000000..f28b3c3e898
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/harfbuzz-unicode.h
@@ -0,0 +1,54 @@
+#ifndef SCRIPT_IDENTIFY_H_
+#define SCRIPT_IDENTIFY_H_
+
+#include <stdint.h>
+
+#include <harfbuzz-shaper.h>
+
+static const uint32_t HB_InvalidCodePoint = 0xffffffffu;
+
+// -----------------------------------------------------------------------------
+// Return the next Unicode code point from a UTF-16 vector
+// chars: a pointer to @len words
+// iter: (input/output) an index into @chars. This is updated.
+// returns: HB_InvalidCodePoint on error and the code point otherwise.
+// -----------------------------------------------------------------------------
+uint32_t utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter);
+
+// -----------------------------------------------------------------------------
+// Like the above, except that the code points are traversed backwards. Thus,
+// on the first call, |iter| should be |len| - 1.
+// -----------------------------------------------------------------------------
+uint32_t utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter);
+
+// -----------------------------------------------------------------------------
+// Return the script of the given code point
+// -----------------------------------------------------------------------------
+HB_Script code_point_to_script(uint32_t cp);
+
+// -----------------------------------------------------------------------------
+// Find the next script run in a UTF-16 string.
+//
+// A script run is a subvector of codepoints, all of which are in the same
+// script. A run will never cut a surrogate pair in half at either end.
+//
+// num_code_points: (output, maybe NULL) the number of code points in the run
+// output: (output) the @pos, @length and @script fields are set on success
+// chars: the UTF-16 string
+// len: the length of @chars, in words
+// iter: (in/out) the current index into the string. This should be 0 for the
+// first call and is updated on exit.
+//
+// returns: non-zero if a script run was found and returned.
+// -----------------------------------------------------------------------------
+char hb_utf16_script_run_next(unsigned *num_code_points, HB_ScriptItem *output,
+ const uint16_t *chars, size_t len, ssize_t *iter);
+
+// -----------------------------------------------------------------------------
+// This is the same as above, except that the input is traversed backwards.
+// Thus, on the first call, |iter| should be |len| - 1.
+// -----------------------------------------------------------------------------
+char hb_utf16_script_run_prev(unsigned *num_code_points, HB_ScriptItem *output,
+ const uint16_t *chars, size_t len, ssize_t *iter);
+
+#endif
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/BidiMirroring.txt b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/BidiMirroring.txt
new file mode 100644
index 00000000000..64d29e44cdb
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/BidiMirroring.txt
@@ -0,0 +1,588 @@
+# BidiMirroring-5.1.0.txt
+# Date: 2008-03-28, 10:22:00 PDT [KW]
+#
+# Bidi_Mirroring_Glyph Property
+#
+# This file is an informative contributory data file in the
+# Unicode Character Database.
+#
+# Copyright (c) 1991-2008 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# This data file lists characters that have the mirrored property
+# where there is another Unicode character that typically has a glyph
+# that is the mirror image of the original character's glyph.
+# The repertoire covered by the file is Unicode 5.1.0.
+#
+# The file contains a list of lines with mappings from one code point
+# to another one for character-based mirroring.
+# Note that for "real" mirroring, a rendering engine needs to select
+# appropriate alternative glyphs, and that many Unicode characters do not
+# have a mirror-image Unicode character.
+#
+# Each mapping line contains two fields, separated by a semicolon (';').
+# Each of the two fields contains a code point represented as a
+# variable-length hexadecimal value with 4 to 6 digits.
+# A comment indicates where the characters are "BEST FIT" mirroring.
+#
+# Code points with the "mirrored" property but no appropriate mirrors are
+# listed as comments at the end of the file.
+#
+# For information on bidi mirroring, see UAX #9: Bidirectional Algorithm,
+# at http://www.unicode.org/unicode/reports/tr9/
+#
+# This file was originally created by Markus Scherer.
+# Extended for Unicode 3.2, 4.0, 4.1, 5.0, and 5.1 by Ken Whistler.
+#
+# ############################################################
+
+0028; 0029 # LEFT PARENTHESIS
+0029; 0028 # RIGHT PARENTHESIS
+003C; 003E # LESS-THAN SIGN
+003E; 003C # GREATER-THAN SIGN
+005B; 005D # LEFT SQUARE BRACKET
+005D; 005B # RIGHT SQUARE BRACKET
+007B; 007D # LEFT CURLY BRACKET
+007D; 007B # RIGHT CURLY BRACKET
+00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0F3A; 0F3B # TIBETAN MARK GUG RTAGS GYON
+0F3B; 0F3A # TIBETAN MARK GUG RTAGS GYAS
+0F3C; 0F3D # TIBETAN MARK ANG KHANG GYON
+0F3D; 0F3C # TIBETAN MARK ANG KHANG GYAS
+169B; 169C # OGHAM FEATHER MARK
+169C; 169B # OGHAM REVERSED FEATHER MARK
+2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+2045; 2046 # LEFT SQUARE BRACKET WITH QUILL
+2046; 2045 # RIGHT SQUARE BRACKET WITH QUILL
+207D; 207E # SUPERSCRIPT LEFT PARENTHESIS
+207E; 207D # SUPERSCRIPT RIGHT PARENTHESIS
+208D; 208E # SUBSCRIPT LEFT PARENTHESIS
+208E; 208D # SUBSCRIPT RIGHT PARENTHESIS
+2208; 220B # ELEMENT OF
+2209; 220C # NOT AN ELEMENT OF
+220A; 220D # SMALL ELEMENT OF
+220B; 2208 # CONTAINS AS MEMBER
+220C; 2209 # DOES NOT CONTAIN AS MEMBER
+220D; 220A # SMALL CONTAINS AS MEMBER
+2215; 29F5 # DIVISION SLASH
+223C; 223D # TILDE OPERATOR
+223D; 223C # REVERSED TILDE
+2243; 22CD # ASYMPTOTICALLY EQUAL TO
+2252; 2253 # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253; 2252 # IMAGE OF OR APPROXIMATELY EQUAL TO
+2254; 2255 # COLON EQUALS
+2255; 2254 # EQUALS COLON
+2264; 2265 # LESS-THAN OR EQUAL TO
+2265; 2264 # GREATER-THAN OR EQUAL TO
+2266; 2267 # LESS-THAN OVER EQUAL TO
+2267; 2266 # GREATER-THAN OVER EQUAL TO
+2268; 2269 # [BEST FIT] LESS-THAN BUT NOT EQUAL TO
+2269; 2268 # [BEST FIT] GREATER-THAN BUT NOT EQUAL TO
+226A; 226B # MUCH LESS-THAN
+226B; 226A # MUCH GREATER-THAN
+226E; 226F # [BEST FIT] NOT LESS-THAN
+226F; 226E # [BEST FIT] NOT GREATER-THAN
+2270; 2271 # [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO
+2271; 2270 # [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO
+2272; 2273 # [BEST FIT] LESS-THAN OR EQUIVALENT TO
+2273; 2272 # [BEST FIT] GREATER-THAN OR EQUIVALENT TO
+2274; 2275 # [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO
+2275; 2274 # [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO
+2276; 2277 # LESS-THAN OR GREATER-THAN
+2277; 2276 # GREATER-THAN OR LESS-THAN
+2278; 2279 # [BEST FIT] NEITHER LESS-THAN NOR GREATER-THAN
+2279; 2278 # [BEST FIT] NEITHER GREATER-THAN NOR LESS-THAN
+227A; 227B # PRECEDES
+227B; 227A # SUCCEEDS
+227C; 227D # PRECEDES OR EQUAL TO
+227D; 227C # SUCCEEDS OR EQUAL TO
+227E; 227F # [BEST FIT] PRECEDES OR EQUIVALENT TO
+227F; 227E # [BEST FIT] SUCCEEDS OR EQUIVALENT TO
+2280; 2281 # [BEST FIT] DOES NOT PRECEDE
+2281; 2280 # [BEST FIT] DOES NOT SUCCEED
+2282; 2283 # SUBSET OF
+2283; 2282 # SUPERSET OF
+2284; 2285 # [BEST FIT] NOT A SUBSET OF
+2285; 2284 # [BEST FIT] NOT A SUPERSET OF
+2286; 2287 # SUBSET OF OR EQUAL TO
+2287; 2286 # SUPERSET OF OR EQUAL TO
+2288; 2289 # [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO
+2289; 2288 # [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO
+228A; 228B # [BEST FIT] SUBSET OF WITH NOT EQUAL TO
+228B; 228A # [BEST FIT] SUPERSET OF WITH NOT EQUAL TO
+228F; 2290 # SQUARE IMAGE OF
+2290; 228F # SQUARE ORIGINAL OF
+2291; 2292 # SQUARE IMAGE OF OR EQUAL TO
+2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO
+2298; 29B8 # CIRCLED DIVISION SLASH
+22A2; 22A3 # RIGHT TACK
+22A3; 22A2 # LEFT TACK
+22A6; 2ADE # ASSERTION
+22A8; 2AE4 # TRUE
+22A9; 2AE3 # FORCES
+22AB; 2AE5 # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+22B0; 22B1 # PRECEDES UNDER RELATION
+22B1; 22B0 # SUCCEEDS UNDER RELATION
+22B2; 22B3 # NORMAL SUBGROUP OF
+22B3; 22B2 # CONTAINS AS NORMAL SUBGROUP
+22B4; 22B5 # NORMAL SUBGROUP OF OR EQUAL TO
+22B5; 22B4 # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
+22B6; 22B7 # ORIGINAL OF
+22B7; 22B6 # IMAGE OF
+22C9; 22CA # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CA; 22C9 # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
+22CB; 22CC # LEFT SEMIDIRECT PRODUCT
+22CC; 22CB # RIGHT SEMIDIRECT PRODUCT
+22CD; 2243 # REVERSED TILDE EQUALS
+22D0; 22D1 # DOUBLE SUBSET
+22D1; 22D0 # DOUBLE SUPERSET
+22D6; 22D7 # LESS-THAN WITH DOT
+22D7; 22D6 # GREATER-THAN WITH DOT
+22D8; 22D9 # VERY MUCH LESS-THAN
+22D9; 22D8 # VERY MUCH GREATER-THAN
+22DA; 22DB # LESS-THAN EQUAL TO OR GREATER-THAN
+22DB; 22DA # GREATER-THAN EQUAL TO OR LESS-THAN
+22DC; 22DD # EQUAL TO OR LESS-THAN
+22DD; 22DC # EQUAL TO OR GREATER-THAN
+22DE; 22DF # EQUAL TO OR PRECEDES
+22DF; 22DE # EQUAL TO OR SUCCEEDS
+22E0; 22E1 # [BEST FIT] DOES NOT PRECEDE OR EQUAL
+22E1; 22E0 # [BEST FIT] DOES NOT SUCCEED OR EQUAL
+22E2; 22E3 # [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO
+22E3; 22E2 # [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO
+22E4; 22E5 # [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO
+22E5; 22E4 # [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO
+22E6; 22E7 # [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO
+22E7; 22E6 # [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO
+22E8; 22E9 # [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO
+22E9; 22E8 # [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO
+22EA; 22EB # [BEST FIT] NOT NORMAL SUBGROUP OF
+22EB; 22EA # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP
+22EC; 22ED # [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO
+22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS
+22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS
+22F2; 22FA # ELEMENT OF WITH LONG HORIZONTAL STROKE
+22F3; 22FB # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F4; 22FC # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22F6; 22FD # ELEMENT OF WITH OVERBAR
+22F7; 22FE # SMALL ELEMENT OF WITH OVERBAR
+22FA; 22F2 # CONTAINS WITH LONG HORIZONTAL STROKE
+22FB; 22F3 # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FC; 22F4 # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
+22FD; 22F6 # CONTAINS WITH OVERBAR
+22FE; 22F7 # SMALL CONTAINS WITH OVERBAR
+2308; 2309 # LEFT CEILING
+2309; 2308 # RIGHT CEILING
+230A; 230B # LEFT FLOOR
+230B; 230A # RIGHT FLOOR
+2329; 232A # LEFT-POINTING ANGLE BRACKET
+232A; 2329 # RIGHT-POINTING ANGLE BRACKET
+2768; 2769 # MEDIUM LEFT PARENTHESIS ORNAMENT
+2769; 2768 # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A; 276B # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B; 276A # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C; 276D # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D; 276C # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E; 276F # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET
+2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET
+2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+27C3; 27C4 # OPEN SUBSET
+27C4; 27C3 # OPEN SUPERSET
+27C5; 27C6 # LEFT S-SHAPED BAG DELIMITER
+27C6; 27C5 # RIGHT S-SHAPED BAG DELIMITER
+27C8; 27C9 # REVERSE SOLIDUS PRECEDING SUBSET
+27C9; 27C8 # SUPERSET PRECEDING SOLIDUS
+27D5; 27D6 # LEFT OUTER JOIN
+27D6; 27D5 # RIGHT OUTER JOIN
+27DD; 27DE # LONG RIGHT TACK
+27DE; 27DD # LONG LEFT TACK
+27E2; 27E3 # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
+27E3; 27E2 # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
+27E4; 27E5 # WHITE SQUARE WITH LEFTWARDS TICK
+27E5; 27E4 # WHITE SQUARE WITH RIGHTWARDS TICK
+27E6; 27E7 # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7; 27E6 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8; 27E9 # MATHEMATICAL LEFT ANGLE BRACKET
+27E9; 27E8 # MATHEMATICAL RIGHT ANGLE BRACKET
+27EA; 27EB # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB; 27EA # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC; 27ED # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED; 27EC # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE; 27EF # MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF; 27EE # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+2983; 2984 # LEFT WHITE CURLY BRACKET
+2984; 2983 # RIGHT WHITE CURLY BRACKET
+2985; 2986 # LEFT WHITE PARENTHESIS
+2986; 2985 # RIGHT WHITE PARENTHESIS
+2987; 2988 # Z NOTATION LEFT IMAGE BRACKET
+2988; 2987 # Z NOTATION RIGHT IMAGE BRACKET
+2989; 298A # Z NOTATION LEFT BINDING BRACKET
+298A; 2989 # Z NOTATION RIGHT BINDING BRACKET
+298B; 298C # LEFT SQUARE BRACKET WITH UNDERBAR
+298C; 298B # RIGHT SQUARE BRACKET WITH UNDERBAR
+298D; 2990 # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E; 298F # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F; 298E # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990; 298D # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991; 2992 # LEFT ANGLE BRACKET WITH DOT
+2992; 2991 # RIGHT ANGLE BRACKET WITH DOT
+2993; 2994 # LEFT ARC LESS-THAN BRACKET
+2994; 2993 # RIGHT ARC GREATER-THAN BRACKET
+2995; 2996 # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996; 2995 # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997; 2998 # LEFT BLACK TORTOISE SHELL BRACKET
+2998; 2997 # RIGHT BLACK TORTOISE SHELL BRACKET
+29B8; 2298 # CIRCLED REVERSE SOLIDUS
+29C0; 29C1 # CIRCLED LESS-THAN
+29C1; 29C0 # CIRCLED GREATER-THAN
+29C4; 29C5 # SQUARED RISING DIAGONAL SLASH
+29C5; 29C4 # SQUARED FALLING DIAGONAL SLASH
+29CF; 29D0 # LEFT TRIANGLE BESIDE VERTICAL BAR
+29D0; 29CF # VERTICAL BAR BESIDE RIGHT TRIANGLE
+29D1; 29D2 # BOWTIE WITH LEFT HALF BLACK
+29D2; 29D1 # BOWTIE WITH RIGHT HALF BLACK
+29D4; 29D5 # TIMES WITH LEFT HALF BLACK
+29D5; 29D4 # TIMES WITH RIGHT HALF BLACK
+29D8; 29D9 # LEFT WIGGLY FENCE
+29D9; 29D8 # RIGHT WIGGLY FENCE
+29DA; 29DB # LEFT DOUBLE WIGGLY FENCE
+29DB; 29DA # RIGHT DOUBLE WIGGLY FENCE
+29F5; 2215 # REVERSE SOLIDUS OPERATOR
+29F8; 29F9 # BIG SOLIDUS
+29F9; 29F8 # BIG REVERSE SOLIDUS
+29FC; 29FD # LEFT-POINTING CURVED ANGLE BRACKET
+29FD; 29FC # RIGHT-POINTING CURVED ANGLE BRACKET
+2A2B; 2A2C # MINUS SIGN WITH FALLING DOTS
+2A2C; 2A2B # MINUS SIGN WITH RISING DOTS
+2A2D; 2A2E # PLUS SIGN IN LEFT HALF CIRCLE
+2A2E; 2A2D # PLUS SIGN IN RIGHT HALF CIRCLE
+2A34; 2A35 # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
+2A35; 2A34 # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
+2A3C; 2A3D # INTERIOR PRODUCT
+2A3D; 2A3C # RIGHTHAND INTERIOR PRODUCT
+2A64; 2A65 # Z NOTATION DOMAIN ANTIRESTRICTION
+2A65; 2A64 # Z NOTATION RANGE ANTIRESTRICTION
+2A79; 2A7A # LESS-THAN WITH CIRCLE INSIDE
+2A7A; 2A79 # GREATER-THAN WITH CIRCLE INSIDE
+2A7D; 2A7E # LESS-THAN OR SLANTED EQUAL TO
+2A7E; 2A7D # GREATER-THAN OR SLANTED EQUAL TO
+2A7F; 2A80 # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A80; 2A7F # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
+2A81; 2A82 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A82; 2A81 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
+2A83; 2A84 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
+2A84; 2A83 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
+2A8B; 2A8C # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
+2A8C; 2A8B # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
+2A91; 2A92 # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
+2A92; 2A91 # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
+2A93; 2A94 # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
+2A94; 2A93 # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
+2A95; 2A96 # SLANTED EQUAL TO OR LESS-THAN
+2A96; 2A95 # SLANTED EQUAL TO OR GREATER-THAN
+2A97; 2A98 # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
+2A98; 2A97 # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
+2A99; 2A9A # DOUBLE-LINE EQUAL TO OR LESS-THAN
+2A9A; 2A99 # DOUBLE-LINE EQUAL TO OR GREATER-THAN
+2A9B; 2A9C # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
+2A9C; 2A9B # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
+2AA1; 2AA2 # DOUBLE NESTED LESS-THAN
+2AA2; 2AA1 # DOUBLE NESTED GREATER-THAN
+2AA6; 2AA7 # LESS-THAN CLOSED BY CURVE
+2AA7; 2AA6 # GREATER-THAN CLOSED BY CURVE
+2AA8; 2AA9 # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AA9; 2AA8 # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
+2AAA; 2AAB # SMALLER THAN
+2AAB; 2AAA # LARGER THAN
+2AAC; 2AAD # SMALLER THAN OR EQUAL TO
+2AAD; 2AAC # LARGER THAN OR EQUAL TO
+2AAF; 2AB0 # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
+2AB0; 2AAF # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
+2AB3; 2AB4 # PRECEDES ABOVE EQUALS SIGN
+2AB4; 2AB3 # SUCCEEDS ABOVE EQUALS SIGN
+2ABB; 2ABC # DOUBLE PRECEDES
+2ABC; 2ABB # DOUBLE SUCCEEDS
+2ABD; 2ABE # SUBSET WITH DOT
+2ABE; 2ABD # SUPERSET WITH DOT
+2ABF; 2AC0 # SUBSET WITH PLUS SIGN BELOW
+2AC0; 2ABF # SUPERSET WITH PLUS SIGN BELOW
+2AC1; 2AC2 # SUBSET WITH MULTIPLICATION SIGN BELOW
+2AC2; 2AC1 # SUPERSET WITH MULTIPLICATION SIGN BELOW
+2AC3; 2AC4 # SUBSET OF OR EQUAL TO WITH DOT ABOVE
+2AC4; 2AC3 # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
+2AC5; 2AC6 # SUBSET OF ABOVE EQUALS SIGN
+2AC6; 2AC5 # SUPERSET OF ABOVE EQUALS SIGN
+2ACD; 2ACE # SQUARE LEFT OPEN BOX OPERATOR
+2ACE; 2ACD # SQUARE RIGHT OPEN BOX OPERATOR
+2ACF; 2AD0 # CLOSED SUBSET
+2AD0; 2ACF # CLOSED SUPERSET
+2AD1; 2AD2 # CLOSED SUBSET OR EQUAL TO
+2AD2; 2AD1 # CLOSED SUPERSET OR EQUAL TO
+2AD3; 2AD4 # SUBSET ABOVE SUPERSET
+2AD4; 2AD3 # SUPERSET ABOVE SUBSET
+2AD5; 2AD6 # SUBSET ABOVE SUBSET
+2AD6; 2AD5 # SUPERSET ABOVE SUPERSET
+2ADE; 22A6 # SHORT LEFT TACK
+2AE3; 22A9 # DOUBLE VERTICAL BAR LEFT TURNSTILE
+2AE4; 22A8 # VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AE5; 22AB # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
+2AEC; 2AED # DOUBLE STROKE NOT SIGN
+2AED; 2AEC # REVERSED DOUBLE STROKE NOT SIGN
+2AF7; 2AF8 # TRIPLE NESTED LESS-THAN
+2AF8; 2AF7 # TRIPLE NESTED GREATER-THAN
+2AF9; 2AFA # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
+2AFA; 2AF9 # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
+2E02; 2E03 # LEFT SUBSTITUTION BRACKET
+2E03; 2E02 # RIGHT SUBSTITUTION BRACKET
+2E04; 2E05 # LEFT DOTTED SUBSTITUTION BRACKET
+2E05; 2E04 # RIGHT DOTTED SUBSTITUTION BRACKET
+2E09; 2E0A # LEFT TRANSPOSITION BRACKET
+2E0A; 2E09 # RIGHT TRANSPOSITION BRACKET
+2E0C; 2E0D # LEFT RAISED OMISSION BRACKET
+2E0D; 2E0C # RIGHT RAISED OMISSION BRACKET
+2E1C; 2E1D # LEFT LOW PARAPHRASE BRACKET
+2E1D; 2E1C # RIGHT LOW PARAPHRASE BRACKET
+2E20; 2E21 # LEFT VERTICAL BAR WITH QUILL
+2E21; 2E20 # RIGHT VERTICAL BAR WITH QUILL
+2E22; 2E23 # TOP LEFT HALF BRACKET
+2E23; 2E22 # TOP RIGHT HALF BRACKET
+2E24; 2E25 # BOTTOM LEFT HALF BRACKET
+2E25; 2E24 # BOTTOM RIGHT HALF BRACKET
+2E26; 2E27 # LEFT SIDEWAYS U BRACKET
+2E27; 2E26 # RIGHT SIDEWAYS U BRACKET
+2E28; 2E29 # LEFT DOUBLE PARENTHESIS
+2E29; 2E28 # RIGHT DOUBLE PARENTHESIS
+3008; 3009 # LEFT ANGLE BRACKET
+3009; 3008 # RIGHT ANGLE BRACKET
+300A; 300B # LEFT DOUBLE ANGLE BRACKET
+300B; 300A # RIGHT DOUBLE ANGLE BRACKET
+300C; 300D # [BEST FIT] LEFT CORNER BRACKET
+300D; 300C # [BEST FIT] RIGHT CORNER BRACKET
+300E; 300F # [BEST FIT] LEFT WHITE CORNER BRACKET
+300F; 300E # [BEST FIT] RIGHT WHITE CORNER BRACKET
+3010; 3011 # LEFT BLACK LENTICULAR BRACKET
+3011; 3010 # RIGHT BLACK LENTICULAR BRACKET
+3014; 3015 # LEFT TORTOISE SHELL BRACKET
+3015; 3014 # RIGHT TORTOISE SHELL BRACKET
+3016; 3017 # LEFT WHITE LENTICULAR BRACKET
+3017; 3016 # RIGHT WHITE LENTICULAR BRACKET
+3018; 3019 # LEFT WHITE TORTOISE SHELL BRACKET
+3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET
+301A; 301B # LEFT WHITE SQUARE BRACKET
+301B; 301A # RIGHT WHITE SQUARE BRACKET
+FE59; FE5A # SMALL LEFT PARENTHESIS
+FE5A; FE59 # SMALL RIGHT PARENTHESIS
+FE5B; FE5C # SMALL LEFT CURLY BRACKET
+FE5C; FE5B # SMALL RIGHT CURLY BRACKET
+FE5D; FE5E # SMALL LEFT TORTOISE SHELL BRACKET
+FE5E; FE5D # SMALL RIGHT TORTOISE SHELL BRACKET
+FE64; FE65 # SMALL LESS-THAN SIGN
+FE65; FE64 # SMALL GREATER-THAN SIGN
+FF08; FF09 # FULLWIDTH LEFT PARENTHESIS
+FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS
+FF1C; FF1E # FULLWIDTH LESS-THAN SIGN
+FF1E; FF1C # FULLWIDTH GREATER-THAN SIGN
+FF3B; FF3D # FULLWIDTH LEFT SQUARE BRACKET
+FF3D; FF3B # FULLWIDTH RIGHT SQUARE BRACKET
+FF5B; FF5D # FULLWIDTH LEFT CURLY BRACKET
+FF5D; FF5B # FULLWIDTH RIGHT CURLY BRACKET
+FF5F; FF60 # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60; FF5F # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF62; FF63 # [BEST FIT] HALFWIDTH LEFT CORNER BRACKET
+FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET
+
+# The following characters have no appropriate mirroring character.
+# For these characters it is up to the rendering system
+# to provide mirrored glyphs.
+
+# 2140; DOUBLE-STRUCK N-ARY SUMMATION
+# 2201; COMPLEMENT
+# 2202; PARTIAL DIFFERENTIAL
+# 2203; THERE EXISTS
+# 2204; THERE DOES NOT EXIST
+# 2211; N-ARY SUMMATION
+# 2216; SET MINUS
+# 221A; SQUARE ROOT
+# 221B; CUBE ROOT
+# 221C; FOURTH ROOT
+# 221D; PROPORTIONAL TO
+# 221F; RIGHT ANGLE
+# 2220; ANGLE
+# 2221; MEASURED ANGLE
+# 2222; SPHERICAL ANGLE
+# 2224; DOES NOT DIVIDE
+# 2226; NOT PARALLEL TO
+# 222B; INTEGRAL
+# 222C; DOUBLE INTEGRAL
+# 222D; TRIPLE INTEGRAL
+# 222E; CONTOUR INTEGRAL
+# 222F; SURFACE INTEGRAL
+# 2230; VOLUME INTEGRAL
+# 2231; CLOCKWISE INTEGRAL
+# 2232; CLOCKWISE CONTOUR INTEGRAL
+# 2233; ANTICLOCKWISE CONTOUR INTEGRAL
+# 2239; EXCESS
+# 223B; HOMOTHETIC
+# 223E; INVERTED LAZY S
+# 223F; SINE WAVE
+# 2240; WREATH PRODUCT
+# 2241; NOT TILDE
+# 2242; MINUS TILDE
+# 2244; NOT ASYMPTOTICALLY EQUAL TO
+# 2245; APPROXIMATELY EQUAL TO
+# 2246; APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
+# 2247; NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+# 2248; ALMOST EQUAL TO
+# 2249; NOT ALMOST EQUAL TO
+# 224A; ALMOST EQUAL OR EQUAL TO
+# 224B; TRIPLE TILDE
+# 224C; ALL EQUAL TO
+# 225F; QUESTIONED EQUAL TO
+# 2260; NOT EQUAL TO
+# 2262; NOT IDENTICAL TO
+# 228C; MULTISET
+# 22A7; MODELS
+# 22AA; TRIPLE VERTICAL BAR RIGHT TURNSTILE
+# 22AC; DOES NOT PROVE
+# 22AD; NOT TRUE
+# 22AE; DOES NOT FORCE
+# 22AF; NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+# 22B8; MULTIMAP
+# 22BE; RIGHT ANGLE WITH ARC
+# 22BF; RIGHT TRIANGLE
+# 22F5; ELEMENT OF WITH DOT ABOVE
+# 22F8; ELEMENT OF WITH UNDERBAR
+# 22F9; ELEMENT OF WITH TWO HORIZONTAL STROKES
+# 22FF; Z NOTATION BAG MEMBERSHIP
+# 2320; TOP HALF INTEGRAL
+# 2321; BOTTOM HALF INTEGRAL
+# 27CC; LONG DIVISION
+# 27C0; THREE DIMENSIONAL ANGLE
+# 27D3; LOWER RIGHT CORNER WITH DOT
+# 27D4; UPPER LEFT CORNER WITH DOT
+# 27DC; LEFT MULTIMAP
+# 299B; MEASURED ANGLE OPENING LEFT
+# 299C; RIGHT ANGLE VARIANT WITH SQUARE
+# 299D; MEASURED RIGHT ANGLE WITH DOT
+# 299E; ANGLE WITH S INSIDE
+# 299F; ACUTE ANGLE
+# 29A0; SPHERICAL ANGLE OPENING LEFT
+# 29A1; SPHERICAL ANGLE OPENING UP
+# 29A2; TURNED ANGLE
+# 29A3; REVERSED ANGLE
+# 29A4; ANGLE WITH UNDERBAR
+# 29A5; REVERSED ANGLE WITH UNDERBAR
+# 29A6; OBLIQUE ANGLE OPENING UP
+# 29A7; OBLIQUE ANGLE OPENING DOWN
+# 29A8; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
+# 29A9; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
+# 29AA; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
+# 29AB; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
+# 29AC; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
+# 29AD; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
+# 29AE; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
+# 29AF; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
+# 29C2; CIRCLE WITH SMALL CIRCLE TO THE RIGHT
+# 29C3; CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
+# 29C9; TWO JOINED SQUARES
+# 29CE; RIGHT TRIANGLE ABOVE LEFT TRIANGLE
+# 29DC; INCOMPLETE INFINITY
+# 29E1; INCREASES AS
+# 29E3; EQUALS SIGN AND SLANTED PARALLEL
+# 29E4; EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
+# 29E5; IDENTICAL TO AND SLANTED PARALLEL
+# 29E8; DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
+# 29E9; DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
+# 29F4; RULE-DELAYED
+# 29F6; SOLIDUS WITH OVERBAR
+# 29F7; REVERSE SOLIDUS WITH HORIZONTAL STROKE
+# 2A0A; MODULO TWO SUM
+# 2A0B; SUMMATION WITH INTEGRAL
+# 2A0C; QUADRUPLE INTEGRAL OPERATOR
+# 2A0D; FINITE PART INTEGRAL
+# 2A0E; INTEGRAL WITH DOUBLE STROKE
+# 2A0F; INTEGRAL AVERAGE WITH SLASH
+# 2A10; CIRCULATION FUNCTION
+# 2A11; ANTICLOCKWISE INTEGRATION
+# 2A12; LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
+# 2A13; LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
+# 2A14; LINE INTEGRATION NOT INCLUDING THE POLE
+# 2A15; INTEGRAL AROUND A POINT OPERATOR
+# 2A16; QUATERNION INTEGRAL OPERATOR
+# 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
+# 2A18; INTEGRAL WITH TIMES SIGN
+# 2A19; INTEGRAL WITH INTERSECTION
+# 2A1A; INTEGRAL WITH UNION
+# 2A1B; INTEGRAL WITH OVERBAR
+# 2A1C; INTEGRAL WITH UNDERBAR
+# 2A1E; LARGE LEFT TRIANGLE OPERATOR
+# 2A1F; Z NOTATION SCHEMA COMPOSITION
+# 2A20; Z NOTATION SCHEMA PIPING
+# 2A21; Z NOTATION SCHEMA PROJECTION
+# 2A24; PLUS SIGN WITH TILDE ABOVE
+# 2A26; PLUS SIGN WITH TILDE BELOW
+# 2A29; MINUS SIGN WITH COMMA ABOVE
+# 2A3E; Z NOTATION RELATIONAL COMPOSITION
+# 2A57; SLOPING LARGE OR
+# 2A58; SLOPING LARGE AND
+# 2A6A; TILDE OPERATOR WITH DOT ABOVE
+# 2A6B; TILDE OPERATOR WITH RISING DOTS
+# 2A6C; SIMILAR MINUS SIMILAR
+# 2A6D; CONGRUENT WITH DOT ABOVE
+# 2A6F; ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
+# 2A70; APPROXIMATELY EQUAL OR EQUAL TO
+# 2A73; EQUALS SIGN ABOVE TILDE OPERATOR
+# 2A74; DOUBLE COLON EQUAL
+# 2A7B; LESS-THAN WITH QUESTION MARK ABOVE
+# 2A7C; GREATER-THAN WITH QUESTION MARK ABOVE
+# 2A85; LESS-THAN OR APPROXIMATE
+# 2A86; GREATER-THAN OR APPROXIMATE
+# 2A87; LESS-THAN AND SINGLE-LINE NOT EQUAL TO
+# 2A88; GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
+# 2A89; LESS-THAN AND NOT APPROXIMATE
+# 2A8A; GREATER-THAN AND NOT APPROXIMATE
+# 2A8D; LESS-THAN ABOVE SIMILAR OR EQUAL
+# 2A8E; GREATER-THAN ABOVE SIMILAR OR EQUAL
+# 2A8F; LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
+# 2A90; GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
+# 2A9D; SIMILAR OR LESS-THAN
+# 2A9E; SIMILAR OR GREATER-THAN
+# 2A9F; SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
+# 2AA0; SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
+# 2AA3; DOUBLE NESTED LESS-THAN WITH UNDERBAR
+# 2AB1; PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
+# 2AB2; SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
+# 2AB5; PRECEDES ABOVE NOT EQUAL TO
+# 2AB6; SUCCEEDS ABOVE NOT EQUAL TO
+# 2AB7; PRECEDES ABOVE ALMOST EQUAL TO
+# 2AB8; SUCCEEDS ABOVE ALMOST EQUAL TO
+# 2AB9; PRECEDES ABOVE NOT ALMOST EQUAL TO
+# 2ABA; SUCCEEDS ABOVE NOT ALMOST EQUAL TO
+# 2AC7; SUBSET OF ABOVE TILDE OPERATOR
+# 2AC8; SUPERSET OF ABOVE TILDE OPERATOR
+# 2AC9; SUBSET OF ABOVE ALMOST EQUAL TO
+# 2ACA; SUPERSET OF ABOVE ALMOST EQUAL TO
+# 2ACB; SUBSET OF ABOVE NOT EQUAL TO
+# 2ACC; SUPERSET OF ABOVE NOT EQUAL TO
+# 2ADC; FORKING
+# 2AE2; VERTICAL BAR TRIPLE RIGHT TURNSTILE
+# 2AE6; LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
+# 2AEE; DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
+# 2AF3; PARALLEL WITH TILDE OPERATOR
+# 2AFB; TRIPLE SOLIDUS BINARY RELATION
+# 2AFD; DOUBLE SOLIDUS OPERATOR
+# 1D6DB; MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+# 1D715; MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+# 1D74F; MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+# 1D789; MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+# 1D7C3; MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+
+# EOF
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedCombiningClass.txt b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedCombiningClass.txt
new file mode 100644
index 00000000000..f30fb0bae2c
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedCombiningClass.txt
@@ -0,0 +1,1881 @@
+# DerivedCombiningClass-5.1.0.txt
+# Date: 2008-03-20, 17:54:45 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2008 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see UCD.html
+
+# ================================================
+
+# Combining Class (listing UnicodeData.txt, field 3: see UCD.html)
+
+# All code points not explicitly listed for Canonical_Combining_Class
+# have the value Not_Reordered (0).
+
+# @missing: 0000..10FFFF; Not_Reordered
+
+# ================================================
+
+# Canonical_Combining_Class=Not_Reordered
+
+0000..001F ; 0 # Cc [32] <control-0000>..<control-001F>
+0020 ; 0 # Zs SPACE
+0021..0023 ; 0 # Po [3] EXCLAMATION MARK..NUMBER SIGN
+0024 ; 0 # Sc DOLLAR SIGN
+0025..0027 ; 0 # Po [3] PERCENT SIGN..APOSTROPHE
+0028 ; 0 # Ps LEFT PARENTHESIS
+0029 ; 0 # Pe RIGHT PARENTHESIS
+002A ; 0 # Po ASTERISK
+002B ; 0 # Sm PLUS SIGN
+002C ; 0 # Po COMMA
+002D ; 0 # Pd HYPHEN-MINUS
+002E..002F ; 0 # Po [2] FULL STOP..SOLIDUS
+0030..0039 ; 0 # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B ; 0 # Po [2] COLON..SEMICOLON
+003C..003E ; 0 # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F..0040 ; 0 # Po [2] QUESTION MARK..COMMERCIAL AT
+0041..005A ; 0 # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B ; 0 # Ps LEFT SQUARE BRACKET
+005C ; 0 # Po REVERSE SOLIDUS
+005D ; 0 # Pe RIGHT SQUARE BRACKET
+005E ; 0 # Sk CIRCUMFLEX ACCENT
+005F ; 0 # Pc LOW LINE
+0060 ; 0 # Sk GRAVE ACCENT
+0061..007A ; 0 # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B ; 0 # Ps LEFT CURLY BRACKET
+007C ; 0 # Sm VERTICAL LINE
+007D ; 0 # Pe RIGHT CURLY BRACKET
+007E ; 0 # Sm TILDE
+007F..009F ; 0 # Cc [33] <control-007F>..<control-009F>
+00A0 ; 0 # Zs NO-BREAK SPACE
+00A1 ; 0 # Po INVERTED EXCLAMATION MARK
+00A2..00A5 ; 0 # Sc [4] CENT SIGN..YEN SIGN
+00A6..00A7 ; 0 # So [2] BROKEN BAR..SECTION SIGN
+00A8 ; 0 # Sk DIAERESIS
+00A9 ; 0 # So COPYRIGHT SIGN
+00AA ; 0 # L& FEMININE ORDINAL INDICATOR
+00AB ; 0 # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; 0 # Sm NOT SIGN
+00AD ; 0 # Cf SOFT HYPHEN
+00AE ; 0 # So REGISTERED SIGN
+00AF ; 0 # Sk MACRON
+00B0 ; 0 # So DEGREE SIGN
+00B1 ; 0 # Sm PLUS-MINUS SIGN
+00B2..00B3 ; 0 # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; 0 # Sk ACUTE ACCENT
+00B5 ; 0 # L& MICRO SIGN
+00B6 ; 0 # So PILCROW SIGN
+00B7 ; 0 # Po MIDDLE DOT
+00B8 ; 0 # Sk CEDILLA
+00B9 ; 0 # No SUPERSCRIPT ONE
+00BA ; 0 # L& MASCULINE ORDINAL INDICATOR
+00BB ; 0 # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE ; 0 # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF ; 0 # Po INVERTED QUESTION MARK
+00C0..00D6 ; 0 # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7 ; 0 # Sm MULTIPLICATION SIGN
+00D8..00F6 ; 0 # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7 ; 0 # Sm DIVISION SIGN
+00F8..01BA ; 0 # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB ; 0 # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; 0 # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3 ; 0 # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..0293 ; 0 # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
+0294 ; 0 # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; 0 # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1 ; 0 # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; 0 # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6..02D1 ; 0 # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02DF ; 0 # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
+02E0..02E4 ; 0 # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB ; 0 # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; 0 # Lm MODIFIER LETTER VOICING
+02ED ; 0 # Sk MODIFIER LETTER UNASPIRATED
+02EE ; 0 # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; 0 # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+034F ; 0 # Mn COMBINING GRAPHEME JOINER
+0370..0373 ; 0 # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374 ; 0 # Lm GREEK NUMERAL SIGN
+0375 ; 0 # Sk GREEK LOWER NUMERAL SIGN
+0376..0377 ; 0 # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; 0 # Lm GREEK YPOGEGRAMMENI
+037B..037D ; 0 # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E ; 0 # Po GREEK QUESTION MARK
+0384..0385 ; 0 # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386 ; 0 # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; 0 # Po GREEK ANO TELEIA
+0388..038A ; 0 # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; 0 # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1 ; 0 # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03F5 ; 0 # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
+03F6 ; 0 # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..0481 ; 0 # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
+0482 ; 0 # So CYRILLIC THOUSANDS SIGN
+0488..0489 ; 0 # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..0523 ; 0 # L& [154] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0531..0556 ; 0 # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559 ; 0 # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; 0 # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0561..0587 ; 0 # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+0589 ; 0 # Po ARMENIAN FULL STOP
+058A ; 0 # Pd ARMENIAN HYPHEN
+05BE ; 0 # Pd HEBREW PUNCTUATION MAQAF
+05C0 ; 0 # Po HEBREW PUNCTUATION PASEQ
+05C3 ; 0 # Po HEBREW PUNCTUATION SOF PASUQ
+05C6 ; 0 # Po HEBREW PUNCTUATION NUN HAFUKHA
+05D0..05EA ; 0 # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2 ; 0 # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4 ; 0 # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0603 ; 0 # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+0606..0608 ; 0 # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A ; 0 # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; 0 # Sc AFGHANI SIGN
+060C..060D ; 0 # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F ; 0 # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+061B ; 0 # Po ARABIC SEMICOLON
+061E..061F ; 0 # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+0621..063F ; 0 # Lo [31] ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; 0 # Lm ARABIC TATWEEL
+0641..064A ; 0 # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+0660..0669 ; 0 # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A..066D ; 0 # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; 0 # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0671..06D3 ; 0 # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; 0 # Po ARABIC FULL STOP
+06D5 ; 0 # Lo ARABIC LETTER AE
+06DD ; 0 # Cf ARABIC END OF AYAH
+06DE ; 0 # Me ARABIC START OF RUB EL HIZB
+06E5..06E6 ; 0 # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E9 ; 0 # So ARABIC PLACE OF SAJDAH
+06EE..06EF ; 0 # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; 0 # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC ; 0 # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE ; 0 # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; 0 # Lo ARABIC LETTER HEH WITH INVERTED V
+0700..070D ; 0 # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F ; 0 # Cf SYRIAC ABBREVIATION MARK
+0710 ; 0 # Lo SYRIAC LETTER ALAPH
+0712..072F ; 0 # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+074D..07A5 ; 0 # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
+07A6..07B0 ; 0 # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1 ; 0 # Lo THAANA LETTER NAA
+07C0..07C9 ; 0 # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; 0 # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07F4..07F5 ; 0 # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6 ; 0 # So NKO SYMBOL OO DENNEN
+07F7..07F9 ; 0 # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+07FA ; 0 # Lm NKO LAJANYALAN
+0901..0902 ; 0 # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903 ; 0 # Mc DEVANAGARI SIGN VISARGA
+0904..0939 ; 0 # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093D ; 0 # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940 ; 0 # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948 ; 0 # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C ; 0 # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+0950 ; 0 # Lo DEVANAGARI OM
+0958..0961 ; 0 # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963 ; 0 # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965 ; 0 # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F ; 0 # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970 ; 0 # Po DEVANAGARI ABBREVIATION SIGN
+0971 ; 0 # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972 ; 0 # Lo DEVANAGARI LETTER CANDRA A
+097B..097F ; 0 # Lo [5] DEVANAGARI LETTER GGA..DEVANAGARI LETTER BBA
+0981 ; 0 # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; 0 # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C ; 0 # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; 0 # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; 0 # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; 0 # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; 0 # Lo BENGALI LETTER LA
+09B6..09B9 ; 0 # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BD ; 0 # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0 ; 0 # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; 0 # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8 ; 0 # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; 0 # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CE ; 0 # Lo BENGALI LETTER KHANDA TA
+09D7 ; 0 # Mc BENGALI AU LENGTH MARK
+09DC..09DD ; 0 # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; 0 # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3 ; 0 # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF ; 0 # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1 ; 0 # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3 ; 0 # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F9 ; 0 # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; 0 # So BENGALI ISSHAR
+0A01..0A02 ; 0 # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03 ; 0 # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A ; 0 # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; 0 # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; 0 # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; 0 # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; 0 # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; 0 # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; 0 # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3E..0A40 ; 0 # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42 ; 0 # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; 0 # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4C ; 0 # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU
+0A51 ; 0 # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C ; 0 # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; 0 # Lo GURMUKHI LETTER FA
+0A66..0A6F ; 0 # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71 ; 0 # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74 ; 0 # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75 ; 0 # Mn GURMUKHI SIGN YAKASH
+0A81..0A82 ; 0 # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83 ; 0 # Mc GUJARATI SIGN VISARGA
+0A85..0A8D ; 0 # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; 0 # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; 0 # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; 0 # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; 0 # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; 0 # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABD ; 0 # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0 ; 0 # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5 ; 0 # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; 0 # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9 ; 0 # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; 0 # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0AD0 ; 0 # Lo GUJARATI OM
+0AE0..0AE1 ; 0 # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3 ; 0 # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF ; 0 # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF1 ; 0 # Sc GUJARATI RUPEE SIGN
+0B01 ; 0 # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; 0 # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C ; 0 # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; 0 # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; 0 # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; 0 # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; 0 # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; 0 # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3D ; 0 # Lo ORIYA SIGN AVAGRAHA
+0B3E ; 0 # Mc ORIYA VOWEL SIGN AA
+0B3F ; 0 # Mn ORIYA VOWEL SIGN I
+0B40 ; 0 # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; 0 # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48 ; 0 # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; 0 # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B56 ; 0 # Mn ORIYA AI LENGTH MARK
+0B57 ; 0 # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D ; 0 # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; 0 # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; 0 # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F ; 0 # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; 0 # So ORIYA ISSHAR
+0B71 ; 0 # Lo ORIYA LETTER WA
+0B82 ; 0 # Mn TAMIL SIGN ANUSVARA
+0B83 ; 0 # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; 0 # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; 0 # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; 0 # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; 0 # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; 0 # Lo TAMIL LETTER JA
+0B9E..0B9F ; 0 # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; 0 # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; 0 # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; 0 # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF ; 0 # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; 0 # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; 0 # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; 0 # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; 0 # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BD0 ; 0 # Lo TAMIL OM
+0BD7 ; 0 # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF ; 0 # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; 0 # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8 ; 0 # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9 ; 0 # Sc TAMIL RUPEE SIGN
+0BFA ; 0 # So TAMIL NUMBER SIGN
+0C01..0C03 ; 0 # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C05..0C0C ; 0 # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; 0 # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; 0 # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C33 ; 0 # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
+0C35..0C39 ; 0 # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C3D ; 0 # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40 ; 0 # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; 0 # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48 ; 0 # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4C ; 0 # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
+0C58..0C59 ; 0 # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61 ; 0 # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; 0 # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F ; 0 # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C78..0C7E ; 0 # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F ; 0 # So TELUGU SIGN TUUMU
+0C82..0C83 ; 0 # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C85..0C8C ; 0 # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; 0 # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; 0 # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; 0 # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; 0 # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBD ; 0 # Lo KANNADA SIGN AVAGRAHA
+0CBE ; 0 # Mc KANNADA VOWEL SIGN AA
+0CBF ; 0 # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; 0 # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6 ; 0 # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; 0 # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; 0 # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC ; 0 # Mn KANNADA VOWEL SIGN AU
+0CD5..0CD6 ; 0 # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDE ; 0 # Lo KANNADA LETTER FA
+0CE0..0CE1 ; 0 # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; 0 # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF ; 0 # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2 ; 0 # So [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D02..0D03 ; 0 # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D05..0D0C ; 0 # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; 0 # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D28 ; 0 # Lo [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
+0D2A..0D39 ; 0 # Lo [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
+0D3D ; 0 # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40 ; 0 # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44 ; 0 # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48 ; 0 # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; 0 # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D57 ; 0 # Mc MALAYALAM AU LENGTH MARK
+0D60..0D61 ; 0 # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; 0 # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F ; 0 # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75 ; 0 # No [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D79 ; 0 # So MALAYALAM DATE MARK
+0D7A..0D7F ; 0 # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D82..0D83 ; 0 # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96 ; 0 # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; 0 # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; 0 # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; 0 # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; 0 # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCF..0DD1 ; 0 # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; 0 # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; 0 # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; 0 # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DF2..0DF3 ; 0 # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; 0 # Po SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30 ; 0 # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31 ; 0 # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; 0 # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E37 ; 0 # Mn [4] THAI CHARACTER SARA I..THAI CHARACTER SARA UEE
+0E3F ; 0 # Sc THAI CURRENCY SYMBOL BAHT
+0E40..0E45 ; 0 # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46 ; 0 # Lm THAI CHARACTER MAIYAMOK
+0E47 ; 0 # Mn THAI CHARACTER MAITAIKHU
+0E4C..0E4E ; 0 # Mn [3] THAI CHARACTER THANTHAKHAT..THAI CHARACTER YAMAKKAN
+0E4F ; 0 # Po THAI CHARACTER FONGMAN
+0E50..0E59 ; 0 # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; 0 # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82 ; 0 # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; 0 # Lo LAO LETTER KHO TAM
+0E87..0E88 ; 0 # Lo [2] LAO LETTER NGO..LAO LETTER CO
+0E8A ; 0 # Lo LAO LETTER SO TAM
+0E8D ; 0 # Lo LAO LETTER NYO
+0E94..0E97 ; 0 # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F ; 0 # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3 ; 0 # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5 ; 0 # Lo LAO LETTER LO LOOT
+0EA7 ; 0 # Lo LAO LETTER WO
+0EAA..0EAB ; 0 # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0 ; 0 # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB1 ; 0 # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; 0 # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB7 ; 0 # Mn [4] LAO VOWEL SIGN I..LAO VOWEL SIGN YY
+0EBB..0EBC ; 0 # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EBD ; 0 # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; 0 # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6 ; 0 # Lm LAO KO LA
+0ECC..0ECD ; 0 # Mn [2] LAO CANCELLATION MARK..LAO NIGGAHITA
+0ED0..0ED9 ; 0 # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDD ; 0 # Lo [2] LAO HO NO..LAO HO MO
+0F00 ; 0 # Lo TIBETAN SYLLABLE OM
+0F01..0F03 ; 0 # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04..0F12 ; 0 # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+0F13..0F17 ; 0 # So [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F1A..0F1F ; 0 # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; 0 # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33 ; 0 # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34 ; 0 # So TIBETAN MARK BSDUS RTAGS
+0F36 ; 0 # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F38 ; 0 # So TIBETAN MARK CHE MGO
+0F3A ; 0 # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B ; 0 # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C ; 0 # Ps TIBETAN MARK ANG KHANG GYON
+0F3D ; 0 # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F ; 0 # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47 ; 0 # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; 0 # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F73 ; 0 # Mn TIBETAN VOWEL SIGN II
+0F75..0F79 ; 0 # Mn [5] TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+0F7E ; 0 # Mn TIBETAN SIGN RJES SU NGA RO
+0F7F ; 0 # Mc TIBETAN SIGN RNAM BCAD
+0F81 ; 0 # Mn TIBETAN VOWEL SIGN REVERSED II
+0F85 ; 0 # Po TIBETAN MARK PALUTA
+0F88..0F8B ; 0 # Lo [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
+0F90..0F97 ; 0 # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; 0 # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FC5 ; 0 # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC7..0FCC ; 0 # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; 0 # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD4 ; 0 # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+1000..102A ; 0 # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C ; 0 # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030 ; 0 # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; 0 # Mc MYANMAR VOWEL SIGN E
+1032..1036 ; 0 # Mn [5] MYANMAR VOWEL SIGN AI..MYANMAR SIGN ANUSVARA
+1038 ; 0 # Mc MYANMAR SIGN VISARGA
+103B..103C ; 0 # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E ; 0 # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F ; 0 # Lo MYANMAR LETTER GREAT SA
+1040..1049 ; 0 # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F ; 0 # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1055 ; 0 # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057 ; 0 # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059 ; 0 # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D ; 0 # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060 ; 0 # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061 ; 0 # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064 ; 0 # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066 ; 0 # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D ; 0 # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070 ; 0 # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074 ; 0 # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081 ; 0 # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082 ; 0 # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; 0 # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086 ; 0 # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; 0 # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108E ; 0 # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F ; 0 # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099 ; 0 # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109E..109F ; 0 # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5 ; 0 # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10D0..10FA ; 0 # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB ; 0 # Po GEORGIAN PARAGRAPH SEPARATOR
+10FC ; 0 # Lm MODIFIER LETTER GEORGIAN NAR
+1100..1159 ; 0 # Lo [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115F..11A2 ; 0 # Lo [68] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA
+11A8..11F9 ; 0 # Lo [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+1200..1248 ; 0 # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; 0 # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; 0 # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; 0 # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; 0 # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; 0 # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; 0 # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; 0 # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; 0 # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; 0 # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; 0 # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; 0 # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; 0 # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; 0 # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; 0 # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; 0 # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+1360 ; 0 # So ETHIOPIC SECTION MARK
+1361..1368 ; 0 # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C ; 0 # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F ; 0 # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; 0 # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F4 ; 0 # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+1401..166C ; 0 # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E ; 0 # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..1676 ; 0 # Lo [8] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+1680 ; 0 # Zs OGHAM SPACE MARK
+1681..169A ; 0 # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B ; 0 # Ps OGHAM FEATHER MARK
+169C ; 0 # Pe OGHAM REVERSED FEATHER MARK
+16A0..16EA ; 0 # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED ; 0 # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0 ; 0 # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+1700..170C ; 0 # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711 ; 0 # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1712..1713 ; 0 # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U
+1720..1731 ; 0 # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1733 ; 0 # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1735..1736 ; 0 # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751 ; 0 # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753 ; 0 # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C ; 0 # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; 0 # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773 ; 0 # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3 ; 0 # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; 0 # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6 ; 0 # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; 0 # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; 0 # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; 0 # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; 0 # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D1 ; 0 # Mn [9] KHMER SIGN MUUSIKATOAN..KHMER SIGN VIRIAM
+17D3 ; 0 # Mn KHMER SIGN BATHAMASAT
+17D4..17D6 ; 0 # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; 0 # Lm KHMER SIGN LEK TOO
+17D8..17DA ; 0 # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+17DB ; 0 # Sc KHMER CURRENCY SYMBOL RIEL
+17DC ; 0 # Lo KHMER SIGN AVAKRAHASANYA
+17E0..17E9 ; 0 # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9 ; 0 # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1805 ; 0 # Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+1806 ; 0 # Pd MONGOLIAN TODO SOFT HYPHEN
+1807..180A ; 0 # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D ; 0 # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; 0 # Zs MONGOLIAN VOWEL SEPARATOR
+1810..1819 ; 0 # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842 ; 0 # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; 0 # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1877 ; 0 # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8 ; 0 # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18AA ; 0 # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+1900..191C ; 0 # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1920..1922 ; 0 # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; 0 # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; 0 # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; 0 # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; 0 # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; 0 # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; 0 # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1940 ; 0 # So LIMBU SIGN LOO
+1944..1945 ; 0 # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F ; 0 # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D ; 0 # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; 0 # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19A9 ; 0 # Lo [42] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
+19B0..19C0 ; 0 # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C1..19C7 ; 0 # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+19C8..19C9 ; 0 # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+19D0..19D9 ; 0 # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DE..19DF ; 0 # Po [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF ; 0 # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16 ; 0 # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A19..1A1B ; 0 # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
+1A1E..1A1F ; 0 # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1B00..1B03 ; 0 # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04 ; 0 # Mc BALINESE SIGN BISAH
+1B05..1B33 ; 0 # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B35 ; 0 # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; 0 # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B ; 0 # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; 0 # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; 0 # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; 0 # Mn BALINESE VOWEL SIGN PEPET
+1B43 ; 0 # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1B45..1B4B ; 0 # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59 ; 0 # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60 ; 0 # Po [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A ; 0 # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B74..1B7C ; 0 # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B80..1B81 ; 0 # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82 ; 0 # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0 ; 0 # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1 ; 0 # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; 0 # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; 0 # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; 0 # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAE..1BAF ; 0 # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9 ; 0 # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1C00..1C23 ; 0 # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B ; 0 # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33 ; 0 # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; 0 # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36 ; 0 # Mn LEPCHA SIGN RAN
+1C3B..1C3F ; 0 # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; 0 # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F ; 0 # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59 ; 0 # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77 ; 0 # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; 0 # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F ; 0 # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1D00..1D2B ; 0 # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D61 ; 0 # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
+1D62..1D77 ; 0 # L& [22] LATIN SUBSCRIPT SMALL LETTER I..LATIN SMALL LETTER TURNED G
+1D78 ; 0 # Lm MODIFIER LETTER CYRILLIC EN
+1D79..1D9A ; 0 # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF ; 0 # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1E00..1F15 ; 0 # L& [278] LATIN CAPITAL LETTER A WITH RING BELOW..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; 0 # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; 0 # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; 0 # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; 0 # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; 0 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; 0 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; 0 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; 0 # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; 0 # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; 0 # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; 0 # Sk GREEK KORONIS
+1FBE ; 0 # L& GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; 0 # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; 0 # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; 0 # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; 0 # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; 0 # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; 0 # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; 0 # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; 0 # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; 0 # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; 0 # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; 0 # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; 0 # Sk [2] GREEK OXIA..GREEK DASIA
+2000..200A ; 0 # Zs [11] EN QUAD..HAIR SPACE
+200B..200F ; 0 # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+2010..2015 ; 0 # Pd [6] HYPHEN..HORIZONTAL BAR
+2016..2017 ; 0 # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
+2018 ; 0 # Pi LEFT SINGLE QUOTATION MARK
+2019 ; 0 # Pf RIGHT SINGLE QUOTATION MARK
+201A ; 0 # Ps SINGLE LOW-9 QUOTATION MARK
+201B..201C ; 0 # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201D ; 0 # Pf RIGHT DOUBLE QUOTATION MARK
+201E ; 0 # Ps DOUBLE LOW-9 QUOTATION MARK
+201F ; 0 # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2027 ; 0 # Po [8] DAGGER..HYPHENATION POINT
+2028 ; 0 # Zl LINE SEPARATOR
+2029 ; 0 # Zp PARAGRAPH SEPARATOR
+202A..202E ; 0 # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F ; 0 # Zs NARROW NO-BREAK SPACE
+2030..2038 ; 0 # Po [9] PER MILLE SIGN..CARET
+2039 ; 0 # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; 0 # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B..203E ; 0 # Po [4] REFERENCE MARK..OVERLINE
+203F..2040 ; 0 # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043 ; 0 # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044 ; 0 # Sm FRACTION SLASH
+2045 ; 0 # Ps LEFT SQUARE BRACKET WITH QUILL
+2046 ; 0 # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2051 ; 0 # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; 0 # Sm COMMERCIAL MINUS SIGN
+2053 ; 0 # Po SWUNG DASH
+2054 ; 0 # Pc INVERTED UNDERTIE
+2055..205E ; 0 # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+205F ; 0 # Zs MEDIUM MATHEMATICAL SPACE
+2060..2064 ; 0 # Cf [5] WORD JOINER..INVISIBLE PLUS
+206A..206F ; 0 # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+2070 ; 0 # No SUPERSCRIPT ZERO
+2071 ; 0 # L& SUPERSCRIPT LATIN SMALL LETTER I
+2074..2079 ; 0 # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+207A..207C ; 0 # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; 0 # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; 0 # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; 0 # L& SUPERSCRIPT LATIN SMALL LETTER N
+2080..2089 ; 0 # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+208A..208C ; 0 # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; 0 # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; 0 # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..2094 ; 0 # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+20A0..20B5 ; 0 # Sc [22] EURO-CURRENCY SIGN..CEDI SIGN
+20DD..20E0 ; 0 # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E2..20E4 ; 0 # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+2100..2101 ; 0 # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; 0 # L& DOUBLE-STRUCK CAPITAL C
+2103..2106 ; 0 # So [4] DEGREE CELSIUS..CADA UNA
+2107 ; 0 # L& EULER CONSTANT
+2108..2109 ; 0 # So [2] SCRUPLE..DEGREE FAHRENHEIT
+210A..2113 ; 0 # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2114 ; 0 # So L B BAR SYMBOL
+2115 ; 0 # L& DOUBLE-STRUCK CAPITAL N
+2116..2118 ; 0 # So [3] NUMERO SIGN..SCRIPT CAPITAL P
+2119..211D ; 0 # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2123 ; 0 # So [6] PRESCRIPTION TAKE..VERSICLE
+2124 ; 0 # L& DOUBLE-STRUCK CAPITAL Z
+2125 ; 0 # So OUNCE SIGN
+2126 ; 0 # L& OHM SIGN
+2127 ; 0 # So INVERTED OHM SIGN
+2128 ; 0 # L& BLACK-LETTER CAPITAL Z
+2129 ; 0 # So TURNED GREEK SMALL LETTER IOTA
+212A..212D ; 0 # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+212E ; 0 # So ESTIMATED SYMBOL
+212F..2134 ; 0 # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138 ; 0 # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; 0 # L& INFORMATION SOURCE
+213A..213B ; 0 # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F ; 0 # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144 ; 0 # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149 ; 0 # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A ; 0 # So PROPERTY LINE
+214B ; 0 # Sm TURNED AMPERSAND
+214C..214D ; 0 # So [2] PER SIGN..AKTIESELSKAB
+214E ; 0 # L& TURNED SMALL F
+214F ; 0 # So SYMBOL FOR SAMARITAN SOURCE
+2153..215F ; 0 # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2160..2182 ; 0 # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; 0 # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188 ; 0 # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2190..2194 ; 0 # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199 ; 0 # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B ; 0 # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F ; 0 # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0 ; 0 # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2 ; 0 # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3 ; 0 # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5 ; 0 # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6 ; 0 # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD ; 0 # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE ; 0 # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21CD ; 0 # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; 0 # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; 0 # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2 ; 0 # Sm RIGHTWARDS DOUBLE ARROW
+21D3 ; 0 # So DOWNWARDS DOUBLE ARROW
+21D4 ; 0 # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21F3 ; 0 # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..22FF ; 0 # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
+2300..2307 ; 0 # So [8] DIAMETER SIGN..WAVY LINE
+2308..230B ; 0 # Sm [4] LEFT CEILING..RIGHT FLOOR
+230C..231F ; 0 # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
+2320..2321 ; 0 # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328 ; 0 # So [7] FROWN..KEYBOARD
+2329 ; 0 # Ps LEFT-POINTING ANGLE BRACKET
+232A ; 0 # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B ; 0 # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C ; 0 # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; 0 # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3 ; 0 # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB ; 0 # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; 0 # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23E7 ; 0 # So [6] WHITE TRAPEZIUM..ELECTRICAL INTERSECTION
+2400..2426 ; 0 # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A ; 0 # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B ; 0 # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; 0 # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA..24FF ; 0 # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
+2500..25B6 ; 0 # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
+25B7 ; 0 # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25C0 ; 0 # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
+25C1 ; 0 # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25F7 ; 0 # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; 0 # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..266E ; 0 # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
+266F ; 0 # Sm MUSIC SHARP SIGN
+2670..269D ; 0 # So [46] WEST SYRIAC CROSS..OUTLINED WHITE STAR
+26A0..26BC ; 0 # So [29] WARNING SIGN..SESQUIQUADRATE
+26C0..26C3 ; 0 # So [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+2701..2704 ; 0 # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
+2706..2709 ; 0 # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
+270C..2727 ; 0 # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
+2729..274B ; 0 # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D ; 0 # So SHADOWED WHITE CIRCLE
+274F..2752 ; 0 # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2756 ; 0 # So BLACK DIAMOND MINUS WHITE X
+2758..275E ; 0 # So [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761..2767 ; 0 # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
+2768 ; 0 # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; 0 # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; 0 # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; 0 # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; 0 # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; 0 # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; 0 # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; 0 # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; 0 # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; 0 # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; 0 # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; 0 # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; 0 # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; 0 # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793 ; 0 # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794 ; 0 # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798..27AF ; 0 # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1..27BE ; 0 # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27C0..27C4 ; 0 # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5 ; 0 # Ps LEFT S-SHAPED BAG DELIMITER
+27C6 ; 0 # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27CA ; 0 # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CC ; 0 # Sm LONG DIVISION
+27D0..27E5 ; 0 # Sm [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; 0 # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; 0 # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; 0 # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; 0 # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; 0 # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; 0 # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; 0 # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; 0 # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; 0 # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; 0 # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; 0 # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF ; 0 # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..2982 ; 0 # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
+2983 ; 0 # Ps LEFT WHITE CURLY BRACKET
+2984 ; 0 # Pe RIGHT WHITE CURLY BRACKET
+2985 ; 0 # Ps LEFT WHITE PARENTHESIS
+2986 ; 0 # Pe RIGHT WHITE PARENTHESIS
+2987 ; 0 # Ps Z NOTATION LEFT IMAGE BRACKET
+2988 ; 0 # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989 ; 0 # Ps Z NOTATION LEFT BINDING BRACKET
+298A ; 0 # Pe Z NOTATION RIGHT BINDING BRACKET
+298B ; 0 # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; 0 # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; 0 # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; 0 # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; 0 # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; 0 # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; 0 # Ps LEFT ANGLE BRACKET WITH DOT
+2992 ; 0 # Pe RIGHT ANGLE BRACKET WITH DOT
+2993 ; 0 # Ps LEFT ARC LESS-THAN BRACKET
+2994 ; 0 # Pe RIGHT ARC GREATER-THAN BRACKET
+2995 ; 0 # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; 0 # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; 0 # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; 0 # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7 ; 0 # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8 ; 0 # Ps LEFT WIGGLY FENCE
+29D9 ; 0 # Pe RIGHT WIGGLY FENCE
+29DA ; 0 # Ps LEFT DOUBLE WIGGLY FENCE
+29DB ; 0 # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB ; 0 # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC ; 0 # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; 0 # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..2AFF ; 0 # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
+2B00..2B2F ; 0 # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44 ; 0 # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46 ; 0 # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C ; 0 # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B50..2B54 ; 0 # So [5] WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2C00..2C2E ; 0 # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E ; 0 # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C6F ; 0 # L& [16] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN CAPITAL LETTER TURNED A
+2C71..2C7C ; 0 # L& [12] LATIN SMALL LETTER V WITH RIGHT HOOK..LATIN SUBSCRIPT SMALL LETTER J
+2C7D ; 0 # Lm MODIFIER LETTER CAPITAL V
+2C80..2CE4 ; 0 # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA ; 0 # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CF9..2CFC ; 0 # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; 0 # No COPTIC FRACTION ONE HALF
+2CFE..2CFF ; 0 # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25 ; 0 # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D30..2D65 ; 0 # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D6F ; 0 # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D80..2D96 ; 0 # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; 0 # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; 0 # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; 0 # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; 0 # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; 0 # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; 0 # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; 0 # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; 0 # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2E00..2E01 ; 0 # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; 0 # Pi LEFT SUBSTITUTION BRACKET
+2E03 ; 0 # Pf RIGHT SUBSTITUTION BRACKET
+2E04 ; 0 # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; 0 # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08 ; 0 # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09 ; 0 # Pi LEFT TRANSPOSITION BRACKET
+2E0A ; 0 # Pf RIGHT TRANSPOSITION BRACKET
+2E0B ; 0 # Po RAISED SQUARE
+2E0C ; 0 # Pi LEFT RAISED OMISSION BRACKET
+2E0D ; 0 # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E16 ; 0 # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+2E17 ; 0 # Pd DOUBLE OBLIQUE HYPHEN
+2E18..2E19 ; 0 # Po [2] INVERTED INTERROBANG..PALM BRANCH
+2E1A ; 0 # Pd HYPHEN WITH DIAERESIS
+2E1B ; 0 # Po TILDE WITH RING ABOVE
+2E1C ; 0 # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D ; 0 # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F ; 0 # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20 ; 0 # Pi LEFT VERTICAL BAR WITH QUILL
+2E21 ; 0 # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22 ; 0 # Ps TOP LEFT HALF BRACKET
+2E23 ; 0 # Pe TOP RIGHT HALF BRACKET
+2E24 ; 0 # Ps BOTTOM LEFT HALF BRACKET
+2E25 ; 0 # Pe BOTTOM RIGHT HALF BRACKET
+2E26 ; 0 # Ps LEFT SIDEWAYS U BRACKET
+2E27 ; 0 # Pe RIGHT SIDEWAYS U BRACKET
+2E28 ; 0 # Ps LEFT DOUBLE PARENTHESIS
+2E29 ; 0 # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2E ; 0 # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+2E2F ; 0 # Lm VERTICAL TILDE
+2E30 ; 0 # Po RING POINT
+2E80..2E99 ; 0 # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; 0 # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; 0 # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFB ; 0 # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000 ; 0 # Zs IDEOGRAPHIC SPACE
+3001..3003 ; 0 # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
+3004 ; 0 # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005 ; 0 # Lm IDEOGRAPHIC ITERATION MARK
+3006 ; 0 # Lo IDEOGRAPHIC CLOSING MARK
+3007 ; 0 # Nl IDEOGRAPHIC NUMBER ZERO
+3008 ; 0 # Ps LEFT ANGLE BRACKET
+3009 ; 0 # Pe RIGHT ANGLE BRACKET
+300A ; 0 # Ps LEFT DOUBLE ANGLE BRACKET
+300B ; 0 # Pe RIGHT DOUBLE ANGLE BRACKET
+300C ; 0 # Ps LEFT CORNER BRACKET
+300D ; 0 # Pe RIGHT CORNER BRACKET
+300E ; 0 # Ps LEFT WHITE CORNER BRACKET
+300F ; 0 # Pe RIGHT WHITE CORNER BRACKET
+3010 ; 0 # Ps LEFT BLACK LENTICULAR BRACKET
+3011 ; 0 # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013 ; 0 # So [2] POSTAL MARK..GETA MARK
+3014 ; 0 # Ps LEFT TORTOISE SHELL BRACKET
+3015 ; 0 # Pe RIGHT TORTOISE SHELL BRACKET
+3016 ; 0 # Ps LEFT WHITE LENTICULAR BRACKET
+3017 ; 0 # Pe RIGHT WHITE LENTICULAR BRACKET
+3018 ; 0 # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; 0 # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; 0 # Ps LEFT WHITE SQUARE BRACKET
+301B ; 0 # Pe RIGHT WHITE SQUARE BRACKET
+301C ; 0 # Pd WAVE DASH
+301D ; 0 # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F ; 0 # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020 ; 0 # So POSTAL MARK FACE
+3021..3029 ; 0 # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+3030 ; 0 # Pd WAVY DASH
+3031..3035 ; 0 # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037 ; 0 # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A ; 0 # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B ; 0 # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+303C ; 0 # Lo MASU MARK
+303D ; 0 # Po PART ALTERNATION MARK
+303E..303F ; 0 # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+3041..3096 ; 0 # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+309B..309C ; 0 # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E ; 0 # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; 0 # Lo HIRAGANA DIGRAPH YORI
+30A0 ; 0 # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FA ; 0 # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FB ; 0 # Po KATAKANA MIDDLE DOT
+30FC..30FE ; 0 # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF ; 0 # Lo KATAKANA DIGRAPH KOTO
+3105..312D ; 0 # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+3131..318E ; 0 # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191 ; 0 # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; 0 # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; 0 # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31B7 ; 0 # Lo [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+31C0..31E3 ; 0 # So [36] CJK STROKE T..CJK STROKE Q
+31F0..31FF ; 0 # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E ; 0 # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; 0 # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; 0 # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; 0 # So PARTNERSHIP SIGN
+3251..325F ; 0 # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F ; 0 # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289 ; 0 # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; 0 # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; 0 # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FE ; 0 # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF ; 0 # So [256] SQUARE APAATO..SQUARE GAL
+3400..4DB5 ; 0 # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DC0..4DFF ; 0 # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FC3 ; 0 # Lo [20932] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FC3
+A000..A014 ; 0 # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; 0 # Lm YI SYLLABLE WU
+A016..A48C ; 0 # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6 ; 0 # So [55] YI RADICAL QOT..YI RADICAL KE
+A500..A60B ; 0 # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; 0 # Lm VAI SYLLABLE LENGTHENER
+A60D..A60F ; 0 # Po [3] VAI COMMA..VAI QUESTION MARK
+A610..A61F ; 0 # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629 ; 0 # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B ; 0 # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A65F ; 0 # L& [32] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER YN
+A662..A66D ; 0 # L& [12] CYRILLIC CAPITAL LETTER SOFT DE..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; 0 # Lo CYRILLIC LETTER MULTIOCULAR O
+A670..A672 ; 0 # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673 ; 0 # Po SLAVONIC ASTERISK
+A67E ; 0 # Po CYRILLIC KAVYKA
+A67F ; 0 # Lm CYRILLIC PAYEROK
+A680..A697 ; 0 # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+A700..A716 ; 0 # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; 0 # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; 0 # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F ; 0 # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770 ; 0 # Lm MODIFIER LETTER US
+A771..A787 ; 0 # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788 ; 0 # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; 0 # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78C ; 0 # L& [2] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER SALTILLO
+A7FB..A801 ; 0 # Lo [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
+A802 ; 0 # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805 ; 0 # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A807..A80A ; 0 # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B ; 0 # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822 ; 0 # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824 ; 0 # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826 ; 0 # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827 ; 0 # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; 0 # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A840..A873 ; 0 # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877 ; 0 # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A880..A881 ; 0 # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3 ; 0 # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3 ; 0 # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8CE..A8CF ; 0 # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; 0 # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A900..A909 ; 0 # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925 ; 0 # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92A ; 0 # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O
+A92E..A92F ; 0 # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946 ; 0 # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951 ; 0 # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952 ; 0 # Mc REJANG CONSONANT SIGN H
+A95F ; 0 # Po REJANG SECTION MARK
+AA00..AA28 ; 0 # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E ; 0 # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; 0 # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; 0 # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; 0 # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; 0 # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42 ; 0 # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43 ; 0 # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B ; 0 # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C ; 0 # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; 0 # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59 ; 0 # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C..AA5F ; 0 # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AC00..D7A3 ; 0 # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+E000..F8FF ; 0 # Co [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA2D ; 0 # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; 0 # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; 0 # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB00..FB06 ; 0 # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; 0 # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; 0 # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F..FB28 ; 0 # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; 0 # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; 0 # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; 0 # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; 0 # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; 0 # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; 0 # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FBB1 ; 0 # Lo [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; 0 # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E ; 0 # Ps ORNATE LEFT PARENTHESIS
+FD3F ; 0 # Pe ORNATE RIGHT PARENTHESIS
+FD50..FD8F ; 0 # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; 0 # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; 0 # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; 0 # Sc RIAL SIGN
+FDFD ; 0 # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE00..FE0F ; 0 # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10..FE16 ; 0 # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; 0 # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; 0 # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; 0 # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; 0 # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; 0 # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47 ; 0 # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; 0 # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; 0 # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; 0 # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; 0 # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; 0 # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; 0 # Pd SMALL EM DASH
+FE59 ; 0 # Ps SMALL LEFT PARENTHESIS
+FE5A ; 0 # Pe SMALL RIGHT PARENTHESIS
+FE5B ; 0 # Ps SMALL LEFT CURLY BRACKET
+FE5C ; 0 # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; 0 # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; 0 # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; 0 # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; 0 # Sm SMALL PLUS SIGN
+FE63 ; 0 # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; 0 # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; 0 # Po SMALL REVERSE SOLIDUS
+FE69 ; 0 # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; 0 # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FE70..FE74 ; 0 # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; 0 # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF ; 0 # Cf ZERO WIDTH NO-BREAK SPACE
+FF01..FF03 ; 0 # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; 0 # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; 0 # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; 0 # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; 0 # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; 0 # Po FULLWIDTH ASTERISK
+FF0B ; 0 # Sm FULLWIDTH PLUS SIGN
+FF0C ; 0 # Po FULLWIDTH COMMA
+FF0D ; 0 # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; 0 # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; 0 # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; 0 # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; 0 # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20 ; 0 # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF21..FF3A ; 0 # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; 0 # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; 0 # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; 0 # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; 0 # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; 0 # Pc FULLWIDTH LOW LINE
+FF40 ; 0 # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A ; 0 # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; 0 # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; 0 # Sm FULLWIDTH VERTICAL LINE
+FF5D ; 0 # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; 0 # Sm FULLWIDTH TILDE
+FF5F ; 0 # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; 0 # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; 0 # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; 0 # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; 0 # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; 0 # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF66..FF6F ; 0 # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; 0 # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; 0 # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F ; 0 # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE ; 0 # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; 0 # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; 0 # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; 0 # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; 0 # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0..FFE1 ; 0 # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; 0 # Sm FULLWIDTH NOT SIGN
+FFE3 ; 0 # Sk FULLWIDTH MACRON
+FFE4 ; 0 # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; 0 # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; 0 # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; 0 # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; 0 # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB ; 0 # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC..FFFD ; 0 # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
+10000..1000B ; 0 # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; 0 # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; 0 # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; 0 # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; 0 # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; 0 # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; 0 # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10101 ; 0 # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
+10102 ; 0 # So AEGEAN CHECK MARK
+10107..10133 ; 0 # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F ; 0 # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174 ; 0 # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178 ; 0 # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189 ; 0 # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A ; 0 # No GREEK ZERO SIGN
+10190..1019B ; 0 # So [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101D0..101FC ; 0 # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+10280..1029C ; 0 # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0 ; 0 # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+10300..1031E ; 0 # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10320..10323 ; 0 # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10330..10340 ; 0 # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; 0 # Nl GOTHIC LETTER NINETY
+10342..10349 ; 0 # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; 0 # Nl GOTHIC LETTER NINE HUNDRED
+10380..1039D ; 0 # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F ; 0 # Po UGARITIC WORD DIVIDER
+103A0..103C3 ; 0 # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; 0 # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0 ; 0 # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; 0 # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F ; 0 # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1049D ; 0 # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+104A0..104A9 ; 0 # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10800..10805 ; 0 # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; 0 # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; 0 # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; 0 # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; 0 # Lo CYPRIOT SYLLABLE ZA
+1083F ; 0 # Lo CYPRIOT SYLLABLE ZO
+10900..10915 ; 0 # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..10919 ; 0 # No [4] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+1091F ; 0 # Po PHOENICIAN WORD SEPARATOR
+10920..10939 ; 0 # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F ; 0 # Po LYDIAN TRIANGULAR MARK
+10A00 ; 0 # Lo KHAROSHTHI LETTER A
+10A01..10A03 ; 0 # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; 0 # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C ; 0 # Mn KHAROSHTHI VOWEL LENGTH MARK
+10A0E ; 0 # Mn KHAROSHTHI SIGN ANUSVARA
+10A10..10A13 ; 0 # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; 0 # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33 ; 0 # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A40..10A47 ; 0 # No [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A50..10A58 ; 0 # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+12000..1236E ; 0 # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+12400..12462 ; 0 # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12470..12473 ; 0 # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+1D000..1D0F5 ; 0 # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; 0 # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164 ; 0 # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D16A..1D16C ; 0 # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D173..1D17A ; 0 # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D183..1D184 ; 0 # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D18C..1D1A9 ; 0 # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AE..1D1DD ; 0 # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D200..1D241 ; 0 # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D245 ; 0 # So GREEK MUSICAL LEIMMA
+1D300..1D356 ; 0 # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D371 ; 0 # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D400..1D454 ; 0 # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; 0 # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; 0 # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; 0 # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; 0 # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; 0 # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; 0 # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; 0 # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; 0 # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; 0 # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; 0 # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; 0 # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; 0 # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; 0 # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; 0 # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; 0 # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; 0 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; 0 # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; 0 # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; 0 # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; 0 # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; 0 # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; 0 # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; 0 # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; 0 # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; 0 # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; 0 # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; 0 # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; 0 # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; 0 # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; 0 # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; 0 # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; 0 # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; 0 # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; 0 # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; 0 # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; 0 # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; 0 # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; 0 # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; 0 # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; 0 # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1F000..1F02B ; 0 # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093 ; 0 # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+20000..2A6D6 ; 0 # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2F800..2FA1D ; 0 # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+E0001 ; 0 # Cf LANGUAGE TAG
+E0020..E007F ; 0 # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF ; 0 # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD ; 0 # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD; 0 # Co [65534] <private-use-100000>..<private-use-10FFFD>
+
+# The above property value applies to 875931 code points not listed here.
+# Total code points: 1113611
+
+# ================================================
+
+# Canonical_Combining_Class=Overlay
+
+0334..0338 ; 1 # Mn [5] COMBINING TILDE OVERLAY..COMBINING LONG SOLIDUS OVERLAY
+20D2..20D3 ; 1 # Mn [2] COMBINING LONG VERTICAL LINE OVERLAY..COMBINING SHORT VERTICAL LINE OVERLAY
+20D8..20DA ; 1 # Mn [3] COMBINING RING OVERLAY..COMBINING ANTICLOCKWISE RING OVERLAY
+20E5..20E6 ; 1 # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY
+20EA..20EB ; 1 # Mn [2] COMBINING LEFTWARDS ARROW OVERLAY..COMBINING LONG DOUBLE SOLIDUS OVERLAY
+10A39 ; 1 # Mn KHAROSHTHI SIGN CAUDA
+1D167..1D169 ; 1 # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+
+# Total code points: 18
+
+# ================================================
+
+# Canonical_Combining_Class=Nukta
+
+093C ; 7 # Mn DEVANAGARI SIGN NUKTA
+09BC ; 7 # Mn BENGALI SIGN NUKTA
+0A3C ; 7 # Mn GURMUKHI SIGN NUKTA
+0ABC ; 7 # Mn GUJARATI SIGN NUKTA
+0B3C ; 7 # Mn ORIYA SIGN NUKTA
+0CBC ; 7 # Mn KANNADA SIGN NUKTA
+1037 ; 7 # Mn MYANMAR SIGN DOT BELOW
+1B34 ; 7 # Mn BALINESE SIGN REREKAN
+1C37 ; 7 # Mn LEPCHA SIGN NUKTA
+
+# Total code points: 9
+
+# ================================================
+
+# Canonical_Combining_Class=Kana_Voicing
+
+3099..309A ; 8 # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=Virama
+
+094D ; 9 # Mn DEVANAGARI SIGN VIRAMA
+09CD ; 9 # Mn BENGALI SIGN VIRAMA
+0A4D ; 9 # Mn GURMUKHI SIGN VIRAMA
+0ACD ; 9 # Mn GUJARATI SIGN VIRAMA
+0B4D ; 9 # Mn ORIYA SIGN VIRAMA
+0BCD ; 9 # Mn TAMIL SIGN VIRAMA
+0C4D ; 9 # Mn TELUGU SIGN VIRAMA
+0CCD ; 9 # Mn KANNADA SIGN VIRAMA
+0D4D ; 9 # Mn MALAYALAM SIGN VIRAMA
+0DCA ; 9 # Mn SINHALA SIGN AL-LAKUNA
+0E3A ; 9 # Mn THAI CHARACTER PHINTHU
+0F84 ; 9 # Mn TIBETAN MARK HALANTA
+1039..103A ; 9 # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+1714 ; 9 # Mn TAGALOG SIGN VIRAMA
+1734 ; 9 # Mn HANUNOO SIGN PAMUDPOD
+17D2 ; 9 # Mn KHMER SIGN COENG
+1B44 ; 9 # Mc BALINESE ADEG ADEG
+1BAA ; 9 # Mc SUNDANESE SIGN PAMAAEH
+A806 ; 9 # Mn SYLOTI NAGRI SIGN HASANTA
+A8C4 ; 9 # Mn SAURASHTRA SIGN VIRAMA
+A953 ; 9 # Mc REJANG VIRAMA
+10A3F ; 9 # Mn KHAROSHTHI VIRAMA
+
+# Total code points: 23
+
+# ================================================
+
+# Canonical_Combining_Class=10
+
+05B0 ; 10 # Mn HEBREW POINT SHEVA
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=11
+
+05B1 ; 11 # Mn HEBREW POINT HATAF SEGOL
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=12
+
+05B2 ; 12 # Mn HEBREW POINT HATAF PATAH
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=13
+
+05B3 ; 13 # Mn HEBREW POINT HATAF QAMATS
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=14
+
+05B4 ; 14 # Mn HEBREW POINT HIRIQ
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=15
+
+05B5 ; 15 # Mn HEBREW POINT TSERE
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=16
+
+05B6 ; 16 # Mn HEBREW POINT SEGOL
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=17
+
+05B7 ; 17 # Mn HEBREW POINT PATAH
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=18
+
+05B8 ; 18 # Mn HEBREW POINT QAMATS
+05C7 ; 18 # Mn HEBREW POINT QAMATS QATAN
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=19
+
+05B9..05BA ; 19 # Mn [2] HEBREW POINT HOLAM..HEBREW POINT HOLAM HASER FOR VAV
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=20
+
+05BB ; 20 # Mn HEBREW POINT QUBUTS
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=21
+
+05BC ; 21 # Mn HEBREW POINT DAGESH OR MAPIQ
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=22
+
+05BD ; 22 # Mn HEBREW POINT METEG
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=23
+
+05BF ; 23 # Mn HEBREW POINT RAFE
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=24
+
+05C1 ; 24 # Mn HEBREW POINT SHIN DOT
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=25
+
+05C2 ; 25 # Mn HEBREW POINT SIN DOT
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=26
+
+FB1E ; 26 # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=27
+
+064B ; 27 # Mn ARABIC FATHATAN
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=28
+
+064C ; 28 # Mn ARABIC DAMMATAN
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=29
+
+064D ; 29 # Mn ARABIC KASRATAN
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=30
+
+0618 ; 30 # Mn ARABIC SMALL FATHA
+064E ; 30 # Mn ARABIC FATHA
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=31
+
+0619 ; 31 # Mn ARABIC SMALL DAMMA
+064F ; 31 # Mn ARABIC DAMMA
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=32
+
+061A ; 32 # Mn ARABIC SMALL KASRA
+0650 ; 32 # Mn ARABIC KASRA
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=33
+
+0651 ; 33 # Mn ARABIC SHADDA
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=34
+
+0652 ; 34 # Mn ARABIC SUKUN
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=35
+
+0670 ; 35 # Mn ARABIC LETTER SUPERSCRIPT ALEF
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=36
+
+0711 ; 36 # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=84
+
+0C55 ; 84 # Mn TELUGU LENGTH MARK
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=91
+
+0C56 ; 91 # Mn TELUGU AI LENGTH MARK
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=103
+
+0E38..0E39 ; 103 # Mn [2] THAI CHARACTER SARA U..THAI CHARACTER SARA UU
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=107
+
+0E48..0E4B ; 107 # Mn [4] THAI CHARACTER MAI EK..THAI CHARACTER MAI CHATTAWA
+
+# Total code points: 4
+
+# ================================================
+
+# Canonical_Combining_Class=118
+
+0EB8..0EB9 ; 118 # Mn [2] LAO VOWEL SIGN U..LAO VOWEL SIGN UU
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=122
+
+0EC8..0ECB ; 122 # Mn [4] LAO TONE MAI EK..LAO TONE MAI CATAWA
+
+# Total code points: 4
+
+# ================================================
+
+# Canonical_Combining_Class=129
+
+0F71 ; 129 # Mn TIBETAN VOWEL SIGN AA
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=130
+
+0F72 ; 130 # Mn TIBETAN VOWEL SIGN I
+0F7A..0F7D ; 130 # Mn [4] TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN OO
+0F80 ; 130 # Mn TIBETAN VOWEL SIGN REVERSED I
+
+# Total code points: 6
+
+# ================================================
+
+# Canonical_Combining_Class=132
+
+0F74 ; 132 # Mn TIBETAN VOWEL SIGN U
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=Attached_Below
+
+0321..0322 ; 202 # Mn [2] COMBINING PALATALIZED HOOK BELOW..COMBINING RETROFLEX HOOK BELOW
+0327..0328 ; 202 # Mn [2] COMBINING CEDILLA..COMBINING OGONEK
+1DD0 ; 202 # Mn COMBINING IS BELOW
+
+# Total code points: 5
+
+# ================================================
+
+# Canonical_Combining_Class=214
+
+1DCE ; 214 # Mn COMBINING OGONEK ABOVE
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=Attached_Above_Right
+
+031B ; 216 # Mn COMBINING HORN
+0F39 ; 216 # Mn TIBETAN MARK TSA -PHRU
+1D165..1D166 ; 216 # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D16E..1D172 ; 216 # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+
+# Total code points: 9
+
+# ================================================
+
+# Canonical_Combining_Class=Below_Left
+
+302A ; 218 # Mn IDEOGRAPHIC LEVEL TONE MARK
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=Below
+
+0316..0319 ; 220 # Mn [4] COMBINING GRAVE ACCENT BELOW..COMBINING RIGHT TACK BELOW
+031C..0320 ; 220 # Mn [5] COMBINING LEFT HALF RING BELOW..COMBINING MINUS SIGN BELOW
+0323..0326 ; 220 # Mn [4] COMBINING DOT BELOW..COMBINING COMMA BELOW
+0329..0333 ; 220 # Mn [11] COMBINING VERTICAL LINE BELOW..COMBINING DOUBLE LOW LINE
+0339..033C ; 220 # Mn [4] COMBINING RIGHT HALF RING BELOW..COMBINING SEAGULL BELOW
+0347..0349 ; 220 # Mn [3] COMBINING EQUALS SIGN BELOW..COMBINING LEFT ANGLE BELOW
+034D..034E ; 220 # Mn [2] COMBINING LEFT RIGHT ARROW BELOW..COMBINING UPWARDS ARROW BELOW
+0353..0356 ; 220 # Mn [4] COMBINING X BELOW..COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW
+0359..035A ; 220 # Mn [2] COMBINING ASTERISK BELOW..COMBINING DOUBLE RING BELOW
+0591 ; 220 # Mn HEBREW ACCENT ETNAHTA
+0596 ; 220 # Mn HEBREW ACCENT TIPEHA
+059B ; 220 # Mn HEBREW ACCENT TEVIR
+05A2..05A7 ; 220 # Mn [6] HEBREW ACCENT ATNAH HAFUKH..HEBREW ACCENT DARGA
+05AA ; 220 # Mn HEBREW ACCENT YERAH BEN YOMO
+05C5 ; 220 # Mn HEBREW MARK LOWER DOT
+0655..0656 ; 220 # Mn [2] ARABIC HAMZA BELOW..ARABIC SUBSCRIPT ALEF
+065C ; 220 # Mn ARABIC VOWEL SIGN DOT BELOW
+06E3 ; 220 # Mn ARABIC SMALL LOW SEEN
+06EA ; 220 # Mn ARABIC EMPTY CENTRE LOW STOP
+06ED ; 220 # Mn ARABIC SMALL LOW MEEM
+0731 ; 220 # Mn SYRIAC PTHAHA BELOW
+0734 ; 220 # Mn SYRIAC ZQAPHA BELOW
+0737..0739 ; 220 # Mn [3] SYRIAC RBASA BELOW..SYRIAC DOTTED ZLAMA ANGULAR
+073B..073C ; 220 # Mn [2] SYRIAC HBASA BELOW..SYRIAC HBASA-ESASA DOTTED
+073E ; 220 # Mn SYRIAC ESASA BELOW
+0742 ; 220 # Mn SYRIAC RUKKAKHA
+0744 ; 220 # Mn SYRIAC TWO VERTICAL DOTS BELOW
+0746 ; 220 # Mn SYRIAC THREE DOTS BELOW
+0748 ; 220 # Mn SYRIAC OBLIQUE LINE BELOW
+07F2 ; 220 # Mn NKO COMBINING NASALIZATION MARK
+0952 ; 220 # Mn DEVANAGARI STRESS SIGN ANUDATTA
+0F18..0F19 ; 220 # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; 220 # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; 220 # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0FC6 ; 220 # Mn TIBETAN SYMBOL PADMA GDAN
+108D ; 220 # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+193B ; 220 # Mn LIMBU SIGN SA-I
+1A18 ; 220 # Mn BUGINESE VOWEL SIGN U
+1B6C ; 220 # Mn BALINESE MUSICAL SYMBOL COMBINING ENDEP
+1DC2 ; 220 # Mn COMBINING SNAKE BELOW
+1DCA ; 220 # Mn COMBINING LATIN SMALL LETTER R BELOW
+1DCF ; 220 # Mn COMBINING ZIGZAG BELOW
+1DFF ; 220 # Mn COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+20E8 ; 220 # Mn COMBINING TRIPLE UNDERDOT
+20EC..20EF ; 220 # Mn [4] COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW
+A92B..A92D ; 220 # Mn [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU
+101FD ; 220 # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10A0D ; 220 # Mn KHAROSHTHI SIGN DOUBLE RING BELOW
+10A3A ; 220 # Mn KHAROSHTHI SIGN DOT BELOW
+1D17B..1D182 ; 220 # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D18A..1D18B ; 220 # Mn [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+
+# Total code points: 104
+
+# ================================================
+
+# Canonical_Combining_Class=Below_Right
+
+059A ; 222 # Mn HEBREW ACCENT YETIV
+05AD ; 222 # Mn HEBREW ACCENT DEHI
+1939 ; 222 # Mn LIMBU SIGN MUKPHRENG
+302D ; 222 # Mn IDEOGRAPHIC ENTERING TONE MARK
+
+# Total code points: 4
+
+# ================================================
+
+# Canonical_Combining_Class=Left
+
+302E..302F ; 224 # Mn [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+
+# Total code points: 2
+
+# ================================================
+
+# Canonical_Combining_Class=Right
+
+1D16D ; 226 # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
+
+# Total code points: 1
+
+# ================================================
+
+# Canonical_Combining_Class=Above_Left
+
+05AE ; 228 # Mn HEBREW ACCENT ZINOR
+18A9 ; 228 # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+302B ; 228 # Mn IDEOGRAPHIC RISING TONE MARK
+
+# Total code points: 3
+
+# ================================================
+
+# Canonical_Combining_Class=Above
+
+0300..0314 ; 230 # Mn [21] COMBINING GRAVE ACCENT..COMBINING REVERSED COMMA ABOVE
+033D..0344 ; 230 # Mn [8] COMBINING X ABOVE..COMBINING GREEK DIALYTIKA TONOS
+0346 ; 230 # Mn COMBINING BRIDGE ABOVE
+034A..034C ; 230 # Mn [3] COMBINING NOT TILDE ABOVE..COMBINING ALMOST EQUAL TO ABOVE
+0350..0352 ; 230 # Mn [3] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING FERMATA
+0357 ; 230 # Mn COMBINING RIGHT HALF RING ABOVE
+035B ; 230 # Mn COMBINING ZIGZAG ABOVE
+0363..036F ; 230 # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0483..0487 ; 230 # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0592..0595 ; 230 # Mn [4] HEBREW ACCENT SEGOL..HEBREW ACCENT ZAQEF GADOL
+0597..0599 ; 230 # Mn [3] HEBREW ACCENT REVIA..HEBREW ACCENT PASHTA
+059C..05A1 ; 230 # Mn [6] HEBREW ACCENT GERESH..HEBREW ACCENT PAZER
+05A8..05A9 ; 230 # Mn [2] HEBREW ACCENT QADMA..HEBREW ACCENT TELISHA QETANA
+05AB..05AC ; 230 # Mn [2] HEBREW ACCENT OLE..HEBREW ACCENT ILUY
+05AF ; 230 # Mn HEBREW MARK MASORA CIRCLE
+05C4 ; 230 # Mn HEBREW MARK UPPER DOT
+0610..0617 ; 230 # Mn [8] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH ZAIN
+0653..0654 ; 230 # Mn [2] ARABIC MADDAH ABOVE..ARABIC HAMZA ABOVE
+0657..065B ; 230 # Mn [5] ARABIC INVERTED DAMMA..ARABIC VOWEL SIGN INVERTED SMALL V ABOVE
+065D..065E ; 230 # Mn [2] ARABIC REVERSED DAMMA..ARABIC FATHA WITH TWO DOTS
+06D6..06DC ; 230 # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DF..06E2 ; 230 # Mn [4] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MEEM ISOLATED FORM
+06E4 ; 230 # Mn ARABIC SMALL HIGH MADDA
+06E7..06E8 ; 230 # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06EB..06EC ; 230 # Mn [2] ARABIC EMPTY CENTRE HIGH STOP..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
+0730 ; 230 # Mn SYRIAC PTHAHA ABOVE
+0732..0733 ; 230 # Mn [2] SYRIAC PTHAHA DOTTED..SYRIAC ZQAPHA ABOVE
+0735..0736 ; 230 # Mn [2] SYRIAC ZQAPHA DOTTED..SYRIAC RBASA ABOVE
+073A ; 230 # Mn SYRIAC HBASA ABOVE
+073D ; 230 # Mn SYRIAC ESASA ABOVE
+073F..0741 ; 230 # Mn [3] SYRIAC RWAHA..SYRIAC QUSHSHAYA
+0743 ; 230 # Mn SYRIAC TWO VERTICAL DOTS ABOVE
+0745 ; 230 # Mn SYRIAC THREE DOTS ABOVE
+0747 ; 230 # Mn SYRIAC OBLIQUE LINE ABOVE
+0749..074A ; 230 # Mn [2] SYRIAC MUSIC..SYRIAC BARREKH
+07EB..07F1 ; 230 # Mn [7] NKO COMBINING SHORT HIGH TONE..NKO COMBINING LONG RISING TONE
+07F3 ; 230 # Mn NKO COMBINING DOUBLE DOT ABOVE
+0951 ; 230 # Mn DEVANAGARI STRESS SIGN UDATTA
+0953..0954 ; 230 # Mn [2] DEVANAGARI GRAVE ACCENT..DEVANAGARI ACUTE ACCENT
+0F82..0F83 ; 230 # Mn [2] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN SIGN SNA LDAN
+0F86..0F87 ; 230 # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+135F ; 230 # Mn ETHIOPIC COMBINING GEMINATION MARK
+17DD ; 230 # Mn KHMER SIGN ATTHACAN
+193A ; 230 # Mn LIMBU SIGN KEMPHRENG
+1A17 ; 230 # Mn BUGINESE VOWEL SIGN I
+1B6B ; 230 # Mn BALINESE MUSICAL SYMBOL COMBINING TEGEH
+1B6D..1B73 ; 230 # Mn [7] BALINESE MUSICAL SYMBOL COMBINING KEMPUL..BALINESE MUSICAL SYMBOL COMBINING GONG
+1DC0..1DC1 ; 230 # Mn [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT
+1DC3..1DC9 ; 230 # Mn [7] COMBINING SUSPENSION MARK..COMBINING ACUTE-GRAVE-ACUTE
+1DCB..1DCC ; 230 # Mn [2] COMBINING BREVE-MACRON..COMBINING MACRON-BREVE
+1DD1..1DE6 ; 230 # Mn [22] COMBINING UR ABOVE..COMBINING LATIN SMALL LETTER Z
+1DFE ; 230 # Mn COMBINING LEFT ARROWHEAD ABOVE
+20D0..20D1 ; 230 # Mn [2] COMBINING LEFT HARPOON ABOVE..COMBINING RIGHT HARPOON ABOVE
+20D4..20D7 ; 230 # Mn [4] COMBINING ANTICLOCKWISE ARROW ABOVE..COMBINING RIGHT ARROW ABOVE
+20DB..20DC ; 230 # Mn [2] COMBINING THREE DOTS ABOVE..COMBINING FOUR DOTS ABOVE
+20E1 ; 230 # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E7 ; 230 # Mn COMBINING ANNUITY SYMBOL
+20E9 ; 230 # Mn COMBINING WIDE BRIDGE ABOVE
+20F0 ; 230 # Mn COMBINING ASTERISK ABOVE
+2DE0..2DFF ; 230 # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+A66F ; 230 # Mn COMBINING CYRILLIC VZMET
+A67C..A67D ; 230 # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+FE20..FE26 ; 230 # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+10A0F ; 230 # Mn KHAROSHTHI SIGN VISARGA
+10A38 ; 230 # Mn KHAROSHTHI SIGN BAR ABOVE
+1D185..1D189 ; 230 # Mn [5] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING BEND
+1D1AA..1D1AD ; 230 # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242..1D244 ; 230 # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+
+# Total code points: 252
+
+# ================================================
+
+# Canonical_Combining_Class=Above_Right
+
+0315 ; 232 # Mn COMBINING COMMA ABOVE RIGHT
+031A ; 232 # Mn COMBINING LEFT ANGLE ABOVE
+0358 ; 232 # Mn COMBINING DOT ABOVE RIGHT
+302C ; 232 # Mn IDEOGRAPHIC DEPARTING TONE MARK
+
+# Total code points: 4
+
+# ================================================
+
+# Canonical_Combining_Class=Double_Below
+
+035C ; 233 # Mn COMBINING DOUBLE BREVE BELOW
+035F ; 233 # Mn COMBINING DOUBLE MACRON BELOW
+0362 ; 233 # Mn COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+
+# Total code points: 3
+
+# ================================================
+
+# Canonical_Combining_Class=Double_Above
+
+035D..035E ; 234 # Mn [2] COMBINING DOUBLE BREVE..COMBINING DOUBLE MACRON
+0360..0361 ; 234 # Mn [2] COMBINING DOUBLE TILDE..COMBINING DOUBLE INVERTED BREVE
+1DCD ; 234 # Mn COMBINING DOUBLE CIRCUMFLEX ABOVE
+
+# Total code points: 5
+
+# ================================================
+
+# Canonical_Combining_Class=Iota_Subscript
+
+0345 ; 240 # Mn COMBINING GREEK YPOGEGRAMMENI
+
+# Total code points: 1
+
+# EOF
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedGeneralCategory.txt b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedGeneralCategory.txt
new file mode 100644
index 00000000000..8423c702e2f
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/DerivedGeneralCategory.txt
@@ -0,0 +1,3072 @@
+# DerivedGeneralCategory-5.1.0.txt
+# Date: 2008-03-20, 17:54:57 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2008 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see UCD.html
+
+# ================================================
+
+# Property: General_Category
+
+# ================================================
+
+# General_Category=Unassigned
+
+0378..0379 ; Cn # [2] <reserved-0378>..<reserved-0379>
+037F..0383 ; Cn # [5] <reserved-037F>..<reserved-0383>
+038B ; Cn # <reserved-038B>
+038D ; Cn # <reserved-038D>
+03A2 ; Cn # <reserved-03A2>
+0524..0530 ; Cn # [13] <reserved-0524>..<reserved-0530>
+0557..0558 ; Cn # [2] <reserved-0557>..<reserved-0558>
+0560 ; Cn # <reserved-0560>
+0588 ; Cn # <reserved-0588>
+058B..0590 ; Cn # [6] <reserved-058B>..<reserved-0590>
+05C8..05CF ; Cn # [8] <reserved-05C8>..<reserved-05CF>
+05EB..05EF ; Cn # [5] <reserved-05EB>..<reserved-05EF>
+05F5..05FF ; Cn # [11] <reserved-05F5>..<reserved-05FF>
+0604..0605 ; Cn # [2] <reserved-0604>..<reserved-0605>
+061C..061D ; Cn # [2] <reserved-061C>..<reserved-061D>
+0620 ; Cn # <reserved-0620>
+065F ; Cn # <reserved-065F>
+070E ; Cn # <reserved-070E>
+074B..074C ; Cn # [2] <reserved-074B>..<reserved-074C>
+07B2..07BF ; Cn # [14] <reserved-07B2>..<reserved-07BF>
+07FB..0900 ; Cn # [262] <reserved-07FB>..<reserved-0900>
+093A..093B ; Cn # [2] <reserved-093A>..<reserved-093B>
+094E..094F ; Cn # [2] <reserved-094E>..<reserved-094F>
+0955..0957 ; Cn # [3] <reserved-0955>..<reserved-0957>
+0973..097A ; Cn # [8] <reserved-0973>..<reserved-097A>
+0980 ; Cn # <reserved-0980>
+0984 ; Cn # <reserved-0984>
+098D..098E ; Cn # [2] <reserved-098D>..<reserved-098E>
+0991..0992 ; Cn # [2] <reserved-0991>..<reserved-0992>
+09A9 ; Cn # <reserved-09A9>
+09B1 ; Cn # <reserved-09B1>
+09B3..09B5 ; Cn # [3] <reserved-09B3>..<reserved-09B5>
+09BA..09BB ; Cn # [2] <reserved-09BA>..<reserved-09BB>
+09C5..09C6 ; Cn # [2] <reserved-09C5>..<reserved-09C6>
+09C9..09CA ; Cn # [2] <reserved-09C9>..<reserved-09CA>
+09CF..09D6 ; Cn # [8] <reserved-09CF>..<reserved-09D6>
+09D8..09DB ; Cn # [4] <reserved-09D8>..<reserved-09DB>
+09DE ; Cn # <reserved-09DE>
+09E4..09E5 ; Cn # [2] <reserved-09E4>..<reserved-09E5>
+09FB..0A00 ; Cn # [6] <reserved-09FB>..<reserved-0A00>
+0A04 ; Cn # <reserved-0A04>
+0A0B..0A0E ; Cn # [4] <reserved-0A0B>..<reserved-0A0E>
+0A11..0A12 ; Cn # [2] <reserved-0A11>..<reserved-0A12>
+0A29 ; Cn # <reserved-0A29>
+0A31 ; Cn # <reserved-0A31>
+0A34 ; Cn # <reserved-0A34>
+0A37 ; Cn # <reserved-0A37>
+0A3A..0A3B ; Cn # [2] <reserved-0A3A>..<reserved-0A3B>
+0A3D ; Cn # <reserved-0A3D>
+0A43..0A46 ; Cn # [4] <reserved-0A43>..<reserved-0A46>
+0A49..0A4A ; Cn # [2] <reserved-0A49>..<reserved-0A4A>
+0A4E..0A50 ; Cn # [3] <reserved-0A4E>..<reserved-0A50>
+0A52..0A58 ; Cn # [7] <reserved-0A52>..<reserved-0A58>
+0A5D ; Cn # <reserved-0A5D>
+0A5F..0A65 ; Cn # [7] <reserved-0A5F>..<reserved-0A65>
+0A76..0A80 ; Cn # [11] <reserved-0A76>..<reserved-0A80>
+0A84 ; Cn # <reserved-0A84>
+0A8E ; Cn # <reserved-0A8E>
+0A92 ; Cn # <reserved-0A92>
+0AA9 ; Cn # <reserved-0AA9>
+0AB1 ; Cn # <reserved-0AB1>
+0AB4 ; Cn # <reserved-0AB4>
+0ABA..0ABB ; Cn # [2] <reserved-0ABA>..<reserved-0ABB>
+0AC6 ; Cn # <reserved-0AC6>
+0ACA ; Cn # <reserved-0ACA>
+0ACE..0ACF ; Cn # [2] <reserved-0ACE>..<reserved-0ACF>
+0AD1..0ADF ; Cn # [15] <reserved-0AD1>..<reserved-0ADF>
+0AE4..0AE5 ; Cn # [2] <reserved-0AE4>..<reserved-0AE5>
+0AF0 ; Cn # <reserved-0AF0>
+0AF2..0B00 ; Cn # [15] <reserved-0AF2>..<reserved-0B00>
+0B04 ; Cn # <reserved-0B04>
+0B0D..0B0E ; Cn # [2] <reserved-0B0D>..<reserved-0B0E>
+0B11..0B12 ; Cn # [2] <reserved-0B11>..<reserved-0B12>
+0B29 ; Cn # <reserved-0B29>
+0B31 ; Cn # <reserved-0B31>
+0B34 ; Cn # <reserved-0B34>
+0B3A..0B3B ; Cn # [2] <reserved-0B3A>..<reserved-0B3B>
+0B45..0B46 ; Cn # [2] <reserved-0B45>..<reserved-0B46>
+0B49..0B4A ; Cn # [2] <reserved-0B49>..<reserved-0B4A>
+0B4E..0B55 ; Cn # [8] <reserved-0B4E>..<reserved-0B55>
+0B58..0B5B ; Cn # [4] <reserved-0B58>..<reserved-0B5B>
+0B5E ; Cn # <reserved-0B5E>
+0B64..0B65 ; Cn # [2] <reserved-0B64>..<reserved-0B65>
+0B72..0B81 ; Cn # [16] <reserved-0B72>..<reserved-0B81>
+0B84 ; Cn # <reserved-0B84>
+0B8B..0B8D ; Cn # [3] <reserved-0B8B>..<reserved-0B8D>
+0B91 ; Cn # <reserved-0B91>
+0B96..0B98 ; Cn # [3] <reserved-0B96>..<reserved-0B98>
+0B9B ; Cn # <reserved-0B9B>
+0B9D ; Cn # <reserved-0B9D>
+0BA0..0BA2 ; Cn # [3] <reserved-0BA0>..<reserved-0BA2>
+0BA5..0BA7 ; Cn # [3] <reserved-0BA5>..<reserved-0BA7>
+0BAB..0BAD ; Cn # [3] <reserved-0BAB>..<reserved-0BAD>
+0BBA..0BBD ; Cn # [4] <reserved-0BBA>..<reserved-0BBD>
+0BC3..0BC5 ; Cn # [3] <reserved-0BC3>..<reserved-0BC5>
+0BC9 ; Cn # <reserved-0BC9>
+0BCE..0BCF ; Cn # [2] <reserved-0BCE>..<reserved-0BCF>
+0BD1..0BD6 ; Cn # [6] <reserved-0BD1>..<reserved-0BD6>
+0BD8..0BE5 ; Cn # [14] <reserved-0BD8>..<reserved-0BE5>
+0BFB..0C00 ; Cn # [6] <reserved-0BFB>..<reserved-0C00>
+0C04 ; Cn # <reserved-0C04>
+0C0D ; Cn # <reserved-0C0D>
+0C11 ; Cn # <reserved-0C11>
+0C29 ; Cn # <reserved-0C29>
+0C34 ; Cn # <reserved-0C34>
+0C3A..0C3C ; Cn # [3] <reserved-0C3A>..<reserved-0C3C>
+0C45 ; Cn # <reserved-0C45>
+0C49 ; Cn # <reserved-0C49>
+0C4E..0C54 ; Cn # [7] <reserved-0C4E>..<reserved-0C54>
+0C57 ; Cn # <reserved-0C57>
+0C5A..0C5F ; Cn # [6] <reserved-0C5A>..<reserved-0C5F>
+0C64..0C65 ; Cn # [2] <reserved-0C64>..<reserved-0C65>
+0C70..0C77 ; Cn # [8] <reserved-0C70>..<reserved-0C77>
+0C80..0C81 ; Cn # [2] <reserved-0C80>..<reserved-0C81>
+0C84 ; Cn # <reserved-0C84>
+0C8D ; Cn # <reserved-0C8D>
+0C91 ; Cn # <reserved-0C91>
+0CA9 ; Cn # <reserved-0CA9>
+0CB4 ; Cn # <reserved-0CB4>
+0CBA..0CBB ; Cn # [2] <reserved-0CBA>..<reserved-0CBB>
+0CC5 ; Cn # <reserved-0CC5>
+0CC9 ; Cn # <reserved-0CC9>
+0CCE..0CD4 ; Cn # [7] <reserved-0CCE>..<reserved-0CD4>
+0CD7..0CDD ; Cn # [7] <reserved-0CD7>..<reserved-0CDD>
+0CDF ; Cn # <reserved-0CDF>
+0CE4..0CE5 ; Cn # [2] <reserved-0CE4>..<reserved-0CE5>
+0CF0 ; Cn # <reserved-0CF0>
+0CF3..0D01 ; Cn # [15] <reserved-0CF3>..<reserved-0D01>
+0D04 ; Cn # <reserved-0D04>
+0D0D ; Cn # <reserved-0D0D>
+0D11 ; Cn # <reserved-0D11>
+0D29 ; Cn # <reserved-0D29>
+0D3A..0D3C ; Cn # [3] <reserved-0D3A>..<reserved-0D3C>
+0D45 ; Cn # <reserved-0D45>
+0D49 ; Cn # <reserved-0D49>
+0D4E..0D56 ; Cn # [9] <reserved-0D4E>..<reserved-0D56>
+0D58..0D5F ; Cn # [8] <reserved-0D58>..<reserved-0D5F>
+0D64..0D65 ; Cn # [2] <reserved-0D64>..<reserved-0D65>
+0D76..0D78 ; Cn # [3] <reserved-0D76>..<reserved-0D78>
+0D80..0D81 ; Cn # [2] <reserved-0D80>..<reserved-0D81>
+0D84 ; Cn # <reserved-0D84>
+0D97..0D99 ; Cn # [3] <reserved-0D97>..<reserved-0D99>
+0DB2 ; Cn # <reserved-0DB2>
+0DBC ; Cn # <reserved-0DBC>
+0DBE..0DBF ; Cn # [2] <reserved-0DBE>..<reserved-0DBF>
+0DC7..0DC9 ; Cn # [3] <reserved-0DC7>..<reserved-0DC9>
+0DCB..0DCE ; Cn # [4] <reserved-0DCB>..<reserved-0DCE>
+0DD5 ; Cn # <reserved-0DD5>
+0DD7 ; Cn # <reserved-0DD7>
+0DE0..0DF1 ; Cn # [18] <reserved-0DE0>..<reserved-0DF1>
+0DF5..0E00 ; Cn # [12] <reserved-0DF5>..<reserved-0E00>
+0E3B..0E3E ; Cn # [4] <reserved-0E3B>..<reserved-0E3E>
+0E5C..0E80 ; Cn # [37] <reserved-0E5C>..<reserved-0E80>
+0E83 ; Cn # <reserved-0E83>
+0E85..0E86 ; Cn # [2] <reserved-0E85>..<reserved-0E86>
+0E89 ; Cn # <reserved-0E89>
+0E8B..0E8C ; Cn # [2] <reserved-0E8B>..<reserved-0E8C>
+0E8E..0E93 ; Cn # [6] <reserved-0E8E>..<reserved-0E93>
+0E98 ; Cn # <reserved-0E98>
+0EA0 ; Cn # <reserved-0EA0>
+0EA4 ; Cn # <reserved-0EA4>
+0EA6 ; Cn # <reserved-0EA6>
+0EA8..0EA9 ; Cn # [2] <reserved-0EA8>..<reserved-0EA9>
+0EAC ; Cn # <reserved-0EAC>
+0EBA ; Cn # <reserved-0EBA>
+0EBE..0EBF ; Cn # [2] <reserved-0EBE>..<reserved-0EBF>
+0EC5 ; Cn # <reserved-0EC5>
+0EC7 ; Cn # <reserved-0EC7>
+0ECE..0ECF ; Cn # [2] <reserved-0ECE>..<reserved-0ECF>
+0EDA..0EDB ; Cn # [2] <reserved-0EDA>..<reserved-0EDB>
+0EDE..0EFF ; Cn # [34] <reserved-0EDE>..<reserved-0EFF>
+0F48 ; Cn # <reserved-0F48>
+0F6D..0F70 ; Cn # [4] <reserved-0F6D>..<reserved-0F70>
+0F8C..0F8F ; Cn # [4] <reserved-0F8C>..<reserved-0F8F>
+0F98 ; Cn # <reserved-0F98>
+0FBD ; Cn # <reserved-0FBD>
+0FCD ; Cn # <reserved-0FCD>
+0FD5..0FFF ; Cn # [43] <reserved-0FD5>..<reserved-0FFF>
+109A..109D ; Cn # [4] <reserved-109A>..<reserved-109D>
+10C6..10CF ; Cn # [10] <reserved-10C6>..<reserved-10CF>
+10FD..10FF ; Cn # [3] <reserved-10FD>..<reserved-10FF>
+115A..115E ; Cn # [5] <reserved-115A>..<reserved-115E>
+11A3..11A7 ; Cn # [5] <reserved-11A3>..<reserved-11A7>
+11FA..11FF ; Cn # [6] <reserved-11FA>..<reserved-11FF>
+1249 ; Cn # <reserved-1249>
+124E..124F ; Cn # [2] <reserved-124E>..<reserved-124F>
+1257 ; Cn # <reserved-1257>
+1259 ; Cn # <reserved-1259>
+125E..125F ; Cn # [2] <reserved-125E>..<reserved-125F>
+1289 ; Cn # <reserved-1289>
+128E..128F ; Cn # [2] <reserved-128E>..<reserved-128F>
+12B1 ; Cn # <reserved-12B1>
+12B6..12B7 ; Cn # [2] <reserved-12B6>..<reserved-12B7>
+12BF ; Cn # <reserved-12BF>
+12C1 ; Cn # <reserved-12C1>
+12C6..12C7 ; Cn # [2] <reserved-12C6>..<reserved-12C7>
+12D7 ; Cn # <reserved-12D7>
+1311 ; Cn # <reserved-1311>
+1316..1317 ; Cn # [2] <reserved-1316>..<reserved-1317>
+135B..135E ; Cn # [4] <reserved-135B>..<reserved-135E>
+137D..137F ; Cn # [3] <reserved-137D>..<reserved-137F>
+139A..139F ; Cn # [6] <reserved-139A>..<reserved-139F>
+13F5..1400 ; Cn # [12] <reserved-13F5>..<reserved-1400>
+1677..167F ; Cn # [9] <reserved-1677>..<reserved-167F>
+169D..169F ; Cn # [3] <reserved-169D>..<reserved-169F>
+16F1..16FF ; Cn # [15] <reserved-16F1>..<reserved-16FF>
+170D ; Cn # <reserved-170D>
+1715..171F ; Cn # [11] <reserved-1715>..<reserved-171F>
+1737..173F ; Cn # [9] <reserved-1737>..<reserved-173F>
+1754..175F ; Cn # [12] <reserved-1754>..<reserved-175F>
+176D ; Cn # <reserved-176D>
+1771 ; Cn # <reserved-1771>
+1774..177F ; Cn # [12] <reserved-1774>..<reserved-177F>
+17DE..17DF ; Cn # [2] <reserved-17DE>..<reserved-17DF>
+17EA..17EF ; Cn # [6] <reserved-17EA>..<reserved-17EF>
+17FA..17FF ; Cn # [6] <reserved-17FA>..<reserved-17FF>
+180F ; Cn # <reserved-180F>
+181A..181F ; Cn # [6] <reserved-181A>..<reserved-181F>
+1878..187F ; Cn # [8] <reserved-1878>..<reserved-187F>
+18AB..18FF ; Cn # [85] <reserved-18AB>..<reserved-18FF>
+191D..191F ; Cn # [3] <reserved-191D>..<reserved-191F>
+192C..192F ; Cn # [4] <reserved-192C>..<reserved-192F>
+193C..193F ; Cn # [4] <reserved-193C>..<reserved-193F>
+1941..1943 ; Cn # [3] <reserved-1941>..<reserved-1943>
+196E..196F ; Cn # [2] <reserved-196E>..<reserved-196F>
+1975..197F ; Cn # [11] <reserved-1975>..<reserved-197F>
+19AA..19AF ; Cn # [6] <reserved-19AA>..<reserved-19AF>
+19CA..19CF ; Cn # [6] <reserved-19CA>..<reserved-19CF>
+19DA..19DD ; Cn # [4] <reserved-19DA>..<reserved-19DD>
+1A1C..1A1D ; Cn # [2] <reserved-1A1C>..<reserved-1A1D>
+1A20..1AFF ; Cn # [224] <reserved-1A20>..<reserved-1AFF>
+1B4C..1B4F ; Cn # [4] <reserved-1B4C>..<reserved-1B4F>
+1B7D..1B7F ; Cn # [3] <reserved-1B7D>..<reserved-1B7F>
+1BAB..1BAD ; Cn # [3] <reserved-1BAB>..<reserved-1BAD>
+1BBA..1BFF ; Cn # [70] <reserved-1BBA>..<reserved-1BFF>
+1C38..1C3A ; Cn # [3] <reserved-1C38>..<reserved-1C3A>
+1C4A..1C4C ; Cn # [3] <reserved-1C4A>..<reserved-1C4C>
+1C80..1CFF ; Cn # [128] <reserved-1C80>..<reserved-1CFF>
+1DE7..1DFD ; Cn # [23] <reserved-1DE7>..<reserved-1DFD>
+1F16..1F17 ; Cn # [2] <reserved-1F16>..<reserved-1F17>
+1F1E..1F1F ; Cn # [2] <reserved-1F1E>..<reserved-1F1F>
+1F46..1F47 ; Cn # [2] <reserved-1F46>..<reserved-1F47>
+1F4E..1F4F ; Cn # [2] <reserved-1F4E>..<reserved-1F4F>
+1F58 ; Cn # <reserved-1F58>
+1F5A ; Cn # <reserved-1F5A>
+1F5C ; Cn # <reserved-1F5C>
+1F5E ; Cn # <reserved-1F5E>
+1F7E..1F7F ; Cn # [2] <reserved-1F7E>..<reserved-1F7F>
+1FB5 ; Cn # <reserved-1FB5>
+1FC5 ; Cn # <reserved-1FC5>
+1FD4..1FD5 ; Cn # [2] <reserved-1FD4>..<reserved-1FD5>
+1FDC ; Cn # <reserved-1FDC>
+1FF0..1FF1 ; Cn # [2] <reserved-1FF0>..<reserved-1FF1>
+1FF5 ; Cn # <reserved-1FF5>
+1FFF ; Cn # <reserved-1FFF>
+2065..2069 ; Cn # [5] <reserved-2065>..<reserved-2069>
+2072..2073 ; Cn # [2] <reserved-2072>..<reserved-2073>
+208F ; Cn # <reserved-208F>
+2095..209F ; Cn # [11] <reserved-2095>..<reserved-209F>
+20B6..20CF ; Cn # [26] <reserved-20B6>..<reserved-20CF>
+20F1..20FF ; Cn # [15] <reserved-20F1>..<reserved-20FF>
+2150..2152 ; Cn # [3] <reserved-2150>..<reserved-2152>
+2189..218F ; Cn # [7] <reserved-2189>..<reserved-218F>
+23E8..23FF ; Cn # [24] <reserved-23E8>..<reserved-23FF>
+2427..243F ; Cn # [25] <reserved-2427>..<reserved-243F>
+244B..245F ; Cn # [21] <reserved-244B>..<reserved-245F>
+269E..269F ; Cn # [2] <reserved-269E>..<reserved-269F>
+26BD..26BF ; Cn # [3] <reserved-26BD>..<reserved-26BF>
+26C4..2700 ; Cn # [61] <reserved-26C4>..<reserved-2700>
+2705 ; Cn # <reserved-2705>
+270A..270B ; Cn # [2] <reserved-270A>..<reserved-270B>
+2728 ; Cn # <reserved-2728>
+274C ; Cn # <reserved-274C>
+274E ; Cn # <reserved-274E>
+2753..2755 ; Cn # [3] <reserved-2753>..<reserved-2755>
+2757 ; Cn # <reserved-2757>
+275F..2760 ; Cn # [2] <reserved-275F>..<reserved-2760>
+2795..2797 ; Cn # [3] <reserved-2795>..<reserved-2797>
+27B0 ; Cn # <reserved-27B0>
+27BF ; Cn # <reserved-27BF>
+27CB ; Cn # <reserved-27CB>
+27CD..27CF ; Cn # [3] <reserved-27CD>..<reserved-27CF>
+2B4D..2B4F ; Cn # [3] <reserved-2B4D>..<reserved-2B4F>
+2B55..2BFF ; Cn # [171] <reserved-2B55>..<reserved-2BFF>
+2C2F ; Cn # <reserved-2C2F>
+2C5F ; Cn # <reserved-2C5F>
+2C70 ; Cn # <reserved-2C70>
+2C7E..2C7F ; Cn # [2] <reserved-2C7E>..<reserved-2C7F>
+2CEB..2CF8 ; Cn # [14] <reserved-2CEB>..<reserved-2CF8>
+2D26..2D2F ; Cn # [10] <reserved-2D26>..<reserved-2D2F>
+2D66..2D6E ; Cn # [9] <reserved-2D66>..<reserved-2D6E>
+2D70..2D7F ; Cn # [16] <reserved-2D70>..<reserved-2D7F>
+2D97..2D9F ; Cn # [9] <reserved-2D97>..<reserved-2D9F>
+2DA7 ; Cn # <reserved-2DA7>
+2DAF ; Cn # <reserved-2DAF>
+2DB7 ; Cn # <reserved-2DB7>
+2DBF ; Cn # <reserved-2DBF>
+2DC7 ; Cn # <reserved-2DC7>
+2DCF ; Cn # <reserved-2DCF>
+2DD7 ; Cn # <reserved-2DD7>
+2DDF ; Cn # <reserved-2DDF>
+2E31..2E7F ; Cn # [79] <reserved-2E31>..<reserved-2E7F>
+2E9A ; Cn # <reserved-2E9A>
+2EF4..2EFF ; Cn # [12] <reserved-2EF4>..<reserved-2EFF>
+2FD6..2FEF ; Cn # [26] <reserved-2FD6>..<reserved-2FEF>
+2FFC..2FFF ; Cn # [4] <reserved-2FFC>..<reserved-2FFF>
+3040 ; Cn # <reserved-3040>
+3097..3098 ; Cn # [2] <reserved-3097>..<reserved-3098>
+3100..3104 ; Cn # [5] <reserved-3100>..<reserved-3104>
+312E..3130 ; Cn # [3] <reserved-312E>..<reserved-3130>
+318F ; Cn # <reserved-318F>
+31B8..31BF ; Cn # [8] <reserved-31B8>..<reserved-31BF>
+31E4..31EF ; Cn # [12] <reserved-31E4>..<reserved-31EF>
+321F ; Cn # <reserved-321F>
+3244..324F ; Cn # [12] <reserved-3244>..<reserved-324F>
+32FF ; Cn # <reserved-32FF>
+4DB6..4DBF ; Cn # [10] <reserved-4DB6>..<reserved-4DBF>
+9FC4..9FFF ; Cn # [60] <reserved-9FC4>..<reserved-9FFF>
+A48D..A48F ; Cn # [3] <reserved-A48D>..<reserved-A48F>
+A4C7..A4FF ; Cn # [57] <reserved-A4C7>..<reserved-A4FF>
+A62C..A63F ; Cn # [20] <reserved-A62C>..<reserved-A63F>
+A660..A661 ; Cn # [2] <reserved-A660>..<reserved-A661>
+A674..A67B ; Cn # [8] <reserved-A674>..<reserved-A67B>
+A698..A6FF ; Cn # [104] <reserved-A698>..<reserved-A6FF>
+A78D..A7FA ; Cn # [110] <reserved-A78D>..<reserved-A7FA>
+A82C..A83F ; Cn # [20] <reserved-A82C>..<reserved-A83F>
+A878..A87F ; Cn # [8] <reserved-A878>..<reserved-A87F>
+A8C5..A8CD ; Cn # [9] <reserved-A8C5>..<reserved-A8CD>
+A8DA..A8FF ; Cn # [38] <reserved-A8DA>..<reserved-A8FF>
+A954..A95E ; Cn # [11] <reserved-A954>..<reserved-A95E>
+A960..A9FF ; Cn # [160] <reserved-A960>..<reserved-A9FF>
+AA37..AA3F ; Cn # [9] <reserved-AA37>..<reserved-AA3F>
+AA4E..AA4F ; Cn # [2] <reserved-AA4E>..<reserved-AA4F>
+AA5A..AA5B ; Cn # [2] <reserved-AA5A>..<reserved-AA5B>
+AA60..ABFF ; Cn # [416] <reserved-AA60>..<reserved-ABFF>
+D7A4..D7FF ; Cn # [92] <reserved-D7A4>..<reserved-D7FF>
+FA2E..FA2F ; Cn # [2] <reserved-FA2E>..<reserved-FA2F>
+FA6B..FA6F ; Cn # [5] <reserved-FA6B>..<reserved-FA6F>
+FADA..FAFF ; Cn # [38] <reserved-FADA>..<reserved-FAFF>
+FB07..FB12 ; Cn # [12] <reserved-FB07>..<reserved-FB12>
+FB18..FB1C ; Cn # [5] <reserved-FB18>..<reserved-FB1C>
+FB37 ; Cn # <reserved-FB37>
+FB3D ; Cn # <reserved-FB3D>
+FB3F ; Cn # <reserved-FB3F>
+FB42 ; Cn # <reserved-FB42>
+FB45 ; Cn # <reserved-FB45>
+FBB2..FBD2 ; Cn # [33] <reserved-FBB2>..<reserved-FBD2>
+FD40..FD4F ; Cn # [16] <reserved-FD40>..<reserved-FD4F>
+FD90..FD91 ; Cn # [2] <reserved-FD90>..<reserved-FD91>
+FDC8..FDEF ; Cn # [40] <reserved-FDC8>..<noncharacter-FDEF>
+FDFE..FDFF ; Cn # [2] <reserved-FDFE>..<reserved-FDFF>
+FE1A..FE1F ; Cn # [6] <reserved-FE1A>..<reserved-FE1F>
+FE27..FE2F ; Cn # [9] <reserved-FE27>..<reserved-FE2F>
+FE53 ; Cn # <reserved-FE53>
+FE67 ; Cn # <reserved-FE67>
+FE6C..FE6F ; Cn # [4] <reserved-FE6C>..<reserved-FE6F>
+FE75 ; Cn # <reserved-FE75>
+FEFD..FEFE ; Cn # [2] <reserved-FEFD>..<reserved-FEFE>
+FF00 ; Cn # <reserved-FF00>
+FFBF..FFC1 ; Cn # [3] <reserved-FFBF>..<reserved-FFC1>
+FFC8..FFC9 ; Cn # [2] <reserved-FFC8>..<reserved-FFC9>
+FFD0..FFD1 ; Cn # [2] <reserved-FFD0>..<reserved-FFD1>
+FFD8..FFD9 ; Cn # [2] <reserved-FFD8>..<reserved-FFD9>
+FFDD..FFDF ; Cn # [3] <reserved-FFDD>..<reserved-FFDF>
+FFE7 ; Cn # <reserved-FFE7>
+FFEF..FFF8 ; Cn # [10] <reserved-FFEF>..<reserved-FFF8>
+FFFE..FFFF ; Cn # [2] <noncharacter-FFFE>..<noncharacter-FFFF>
+1000C ; Cn # <reserved-1000C>
+10027 ; Cn # <reserved-10027>
+1003B ; Cn # <reserved-1003B>
+1003E ; Cn # <reserved-1003E>
+1004E..1004F ; Cn # [2] <reserved-1004E>..<reserved-1004F>
+1005E..1007F ; Cn # [34] <reserved-1005E>..<reserved-1007F>
+100FB..100FF ; Cn # [5] <reserved-100FB>..<reserved-100FF>
+10103..10106 ; Cn # [4] <reserved-10103>..<reserved-10106>
+10134..10136 ; Cn # [3] <reserved-10134>..<reserved-10136>
+1018B..1018F ; Cn # [5] <reserved-1018B>..<reserved-1018F>
+1019C..101CF ; Cn # [52] <reserved-1019C>..<reserved-101CF>
+101FE..1027F ; Cn # [130] <reserved-101FE>..<reserved-1027F>
+1029D..1029F ; Cn # [3] <reserved-1029D>..<reserved-1029F>
+102D1..102FF ; Cn # [47] <reserved-102D1>..<reserved-102FF>
+1031F ; Cn # <reserved-1031F>
+10324..1032F ; Cn # [12] <reserved-10324>..<reserved-1032F>
+1034B..1037F ; Cn # [53] <reserved-1034B>..<reserved-1037F>
+1039E ; Cn # <reserved-1039E>
+103C4..103C7 ; Cn # [4] <reserved-103C4>..<reserved-103C7>
+103D6..103FF ; Cn # [42] <reserved-103D6>..<reserved-103FF>
+1049E..1049F ; Cn # [2] <reserved-1049E>..<reserved-1049F>
+104AA..107FF ; Cn # [854] <reserved-104AA>..<reserved-107FF>
+10806..10807 ; Cn # [2] <reserved-10806>..<reserved-10807>
+10809 ; Cn # <reserved-10809>
+10836 ; Cn # <reserved-10836>
+10839..1083B ; Cn # [3] <reserved-10839>..<reserved-1083B>
+1083D..1083E ; Cn # [2] <reserved-1083D>..<reserved-1083E>
+10840..108FF ; Cn # [192] <reserved-10840>..<reserved-108FF>
+1091A..1091E ; Cn # [5] <reserved-1091A>..<reserved-1091E>
+1093A..1093E ; Cn # [5] <reserved-1093A>..<reserved-1093E>
+10940..109FF ; Cn # [192] <reserved-10940>..<reserved-109FF>
+10A04 ; Cn # <reserved-10A04>
+10A07..10A0B ; Cn # [5] <reserved-10A07>..<reserved-10A0B>
+10A14 ; Cn # <reserved-10A14>
+10A18 ; Cn # <reserved-10A18>
+10A34..10A37 ; Cn # [4] <reserved-10A34>..<reserved-10A37>
+10A3B..10A3E ; Cn # [4] <reserved-10A3B>..<reserved-10A3E>
+10A48..10A4F ; Cn # [8] <reserved-10A48>..<reserved-10A4F>
+10A59..11FFF ; Cn # [5543] <reserved-10A59>..<reserved-11FFF>
+1236F..123FF ; Cn # [145] <reserved-1236F>..<reserved-123FF>
+12463..1246F ; Cn # [13] <reserved-12463>..<reserved-1246F>
+12474..1CFFF ; Cn # [43916] <reserved-12474>..<reserved-1CFFF>
+1D0F6..1D0FF ; Cn # [10] <reserved-1D0F6>..<reserved-1D0FF>
+1D127..1D128 ; Cn # [2] <reserved-1D127>..<reserved-1D128>
+1D1DE..1D1FF ; Cn # [34] <reserved-1D1DE>..<reserved-1D1FF>
+1D246..1D2FF ; Cn # [186] <reserved-1D246>..<reserved-1D2FF>
+1D357..1D35F ; Cn # [9] <reserved-1D357>..<reserved-1D35F>
+1D372..1D3FF ; Cn # [142] <reserved-1D372>..<reserved-1D3FF>
+1D455 ; Cn # <reserved-1D455>
+1D49D ; Cn # <reserved-1D49D>
+1D4A0..1D4A1 ; Cn # [2] <reserved-1D4A0>..<reserved-1D4A1>
+1D4A3..1D4A4 ; Cn # [2] <reserved-1D4A3>..<reserved-1D4A4>
+1D4A7..1D4A8 ; Cn # [2] <reserved-1D4A7>..<reserved-1D4A8>
+1D4AD ; Cn # <reserved-1D4AD>
+1D4BA ; Cn # <reserved-1D4BA>
+1D4BC ; Cn # <reserved-1D4BC>
+1D4C4 ; Cn # <reserved-1D4C4>
+1D506 ; Cn # <reserved-1D506>
+1D50B..1D50C ; Cn # [2] <reserved-1D50B>..<reserved-1D50C>
+1D515 ; Cn # <reserved-1D515>
+1D51D ; Cn # <reserved-1D51D>
+1D53A ; Cn # <reserved-1D53A>
+1D53F ; Cn # <reserved-1D53F>
+1D545 ; Cn # <reserved-1D545>
+1D547..1D549 ; Cn # [3] <reserved-1D547>..<reserved-1D549>
+1D551 ; Cn # <reserved-1D551>
+1D6A6..1D6A7 ; Cn # [2] <reserved-1D6A6>..<reserved-1D6A7>
+1D7CC..1D7CD ; Cn # [2] <reserved-1D7CC>..<reserved-1D7CD>
+1D800..1EFFF ; Cn # [6144] <reserved-1D800>..<reserved-1EFFF>
+1F02C..1F02F ; Cn # [4] <reserved-1F02C>..<reserved-1F02F>
+1F094..1FFFF ; Cn # [3948] <reserved-1F094>..<noncharacter-1FFFF>
+2A6D7..2F7FF ; Cn # [20777] <reserved-2A6D7>..<reserved-2F7FF>
+2FA1E..E0000 ; Cn # [722403] <reserved-2FA1E>..<reserved-E0000>
+E0002..E001F ; Cn # [30] <reserved-E0002>..<reserved-E001F>
+E0080..E00FF ; Cn # [128] <reserved-E0080>..<reserved-E00FF>
+E01F0..EFFFF ; Cn # [65040] <reserved-E01F0>..<noncharacter-EFFFF>
+FFFFE..FFFFF ; Cn # [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
+10FFFE..10FFFF; Cn # [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
+
+# Total code points: 873883
+
+# ================================================
+
+# General_Category=Uppercase_Letter
+
+0041..005A ; Lu # [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+00C0..00D6 ; Lu # [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D8..00DE ; Lu # [7] LATIN CAPITAL LETTER O WITH STROKE..LATIN CAPITAL LETTER THORN
+0100 ; Lu # LATIN CAPITAL LETTER A WITH MACRON
+0102 ; Lu # LATIN CAPITAL LETTER A WITH BREVE
+0104 ; Lu # LATIN CAPITAL LETTER A WITH OGONEK
+0106 ; Lu # LATIN CAPITAL LETTER C WITH ACUTE
+0108 ; Lu # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+010A ; Lu # LATIN CAPITAL LETTER C WITH DOT ABOVE
+010C ; Lu # LATIN CAPITAL LETTER C WITH CARON
+010E ; Lu # LATIN CAPITAL LETTER D WITH CARON
+0110 ; Lu # LATIN CAPITAL LETTER D WITH STROKE
+0112 ; Lu # LATIN CAPITAL LETTER E WITH MACRON
+0114 ; Lu # LATIN CAPITAL LETTER E WITH BREVE
+0116 ; Lu # LATIN CAPITAL LETTER E WITH DOT ABOVE
+0118 ; Lu # LATIN CAPITAL LETTER E WITH OGONEK
+011A ; Lu # LATIN CAPITAL LETTER E WITH CARON
+011C ; Lu # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011E ; Lu # LATIN CAPITAL LETTER G WITH BREVE
+0120 ; Lu # LATIN CAPITAL LETTER G WITH DOT ABOVE
+0122 ; Lu # LATIN CAPITAL LETTER G WITH CEDILLA
+0124 ; Lu # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0126 ; Lu # LATIN CAPITAL LETTER H WITH STROKE
+0128 ; Lu # LATIN CAPITAL LETTER I WITH TILDE
+012A ; Lu # LATIN CAPITAL LETTER I WITH MACRON
+012C ; Lu # LATIN CAPITAL LETTER I WITH BREVE
+012E ; Lu # LATIN CAPITAL LETTER I WITH OGONEK
+0130 ; Lu # LATIN CAPITAL LETTER I WITH DOT ABOVE
+0132 ; Lu # LATIN CAPITAL LIGATURE IJ
+0134 ; Lu # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0136 ; Lu # LATIN CAPITAL LETTER K WITH CEDILLA
+0139 ; Lu # LATIN CAPITAL LETTER L WITH ACUTE
+013B ; Lu # LATIN CAPITAL LETTER L WITH CEDILLA
+013D ; Lu # LATIN CAPITAL LETTER L WITH CARON
+013F ; Lu # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+0141 ; Lu # LATIN CAPITAL LETTER L WITH STROKE
+0143 ; Lu # LATIN CAPITAL LETTER N WITH ACUTE
+0145 ; Lu # LATIN CAPITAL LETTER N WITH CEDILLA
+0147 ; Lu # LATIN CAPITAL LETTER N WITH CARON
+014A ; Lu # LATIN CAPITAL LETTER ENG
+014C ; Lu # LATIN CAPITAL LETTER O WITH MACRON
+014E ; Lu # LATIN CAPITAL LETTER O WITH BREVE
+0150 ; Lu # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0152 ; Lu # LATIN CAPITAL LIGATURE OE
+0154 ; Lu # LATIN CAPITAL LETTER R WITH ACUTE
+0156 ; Lu # LATIN CAPITAL LETTER R WITH CEDILLA
+0158 ; Lu # LATIN CAPITAL LETTER R WITH CARON
+015A ; Lu # LATIN CAPITAL LETTER S WITH ACUTE
+015C ; Lu # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015E ; Lu # LATIN CAPITAL LETTER S WITH CEDILLA
+0160 ; Lu # LATIN CAPITAL LETTER S WITH CARON
+0162 ; Lu # LATIN CAPITAL LETTER T WITH CEDILLA
+0164 ; Lu # LATIN CAPITAL LETTER T WITH CARON
+0166 ; Lu # LATIN CAPITAL LETTER T WITH STROKE
+0168 ; Lu # LATIN CAPITAL LETTER U WITH TILDE
+016A ; Lu # LATIN CAPITAL LETTER U WITH MACRON
+016C ; Lu # LATIN CAPITAL LETTER U WITH BREVE
+016E ; Lu # LATIN CAPITAL LETTER U WITH RING ABOVE
+0170 ; Lu # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0172 ; Lu # LATIN CAPITAL LETTER U WITH OGONEK
+0174 ; Lu # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0176 ; Lu # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0178..0179 ; Lu # [2] LATIN CAPITAL LETTER Y WITH DIAERESIS..LATIN CAPITAL LETTER Z WITH ACUTE
+017B ; Lu # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017D ; Lu # LATIN CAPITAL LETTER Z WITH CARON
+0181..0182 ; Lu # [2] LATIN CAPITAL LETTER B WITH HOOK..LATIN CAPITAL LETTER B WITH TOPBAR
+0184 ; Lu # LATIN CAPITAL LETTER TONE SIX
+0186..0187 ; Lu # [2] LATIN CAPITAL LETTER OPEN O..LATIN CAPITAL LETTER C WITH HOOK
+0189..018B ; Lu # [3] LATIN CAPITAL LETTER AFRICAN D..LATIN CAPITAL LETTER D WITH TOPBAR
+018E..0191 ; Lu # [4] LATIN CAPITAL LETTER REVERSED E..LATIN CAPITAL LETTER F WITH HOOK
+0193..0194 ; Lu # [2] LATIN CAPITAL LETTER G WITH HOOK..LATIN CAPITAL LETTER GAMMA
+0196..0198 ; Lu # [3] LATIN CAPITAL LETTER IOTA..LATIN CAPITAL LETTER K WITH HOOK
+019C..019D ; Lu # [2] LATIN CAPITAL LETTER TURNED M..LATIN CAPITAL LETTER N WITH LEFT HOOK
+019F..01A0 ; Lu # [2] LATIN CAPITAL LETTER O WITH MIDDLE TILDE..LATIN CAPITAL LETTER O WITH HORN
+01A2 ; Lu # LATIN CAPITAL LETTER OI
+01A4 ; Lu # LATIN CAPITAL LETTER P WITH HOOK
+01A6..01A7 ; Lu # [2] LATIN LETTER YR..LATIN CAPITAL LETTER TONE TWO
+01A9 ; Lu # LATIN CAPITAL LETTER ESH
+01AC ; Lu # LATIN CAPITAL LETTER T WITH HOOK
+01AE..01AF ; Lu # [2] LATIN CAPITAL LETTER T WITH RETROFLEX HOOK..LATIN CAPITAL LETTER U WITH HORN
+01B1..01B3 ; Lu # [3] LATIN CAPITAL LETTER UPSILON..LATIN CAPITAL LETTER Y WITH HOOK
+01B5 ; Lu # LATIN CAPITAL LETTER Z WITH STROKE
+01B7..01B8 ; Lu # [2] LATIN CAPITAL LETTER EZH..LATIN CAPITAL LETTER EZH REVERSED
+01BC ; Lu # LATIN CAPITAL LETTER TONE FIVE
+01C4 ; Lu # LATIN CAPITAL LETTER DZ WITH CARON
+01C7 ; Lu # LATIN CAPITAL LETTER LJ
+01CA ; Lu # LATIN CAPITAL LETTER NJ
+01CD ; Lu # LATIN CAPITAL LETTER A WITH CARON
+01CF ; Lu # LATIN CAPITAL LETTER I WITH CARON
+01D1 ; Lu # LATIN CAPITAL LETTER O WITH CARON
+01D3 ; Lu # LATIN CAPITAL LETTER U WITH CARON
+01D5 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D7 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D9 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DB ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DE ; Lu # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01E0 ; Lu # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E2 ; Lu # LATIN CAPITAL LETTER AE WITH MACRON
+01E4 ; Lu # LATIN CAPITAL LETTER G WITH STROKE
+01E6 ; Lu # LATIN CAPITAL LETTER G WITH CARON
+01E8 ; Lu # LATIN CAPITAL LETTER K WITH CARON
+01EA ; Lu # LATIN CAPITAL LETTER O WITH OGONEK
+01EC ; Lu # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01EE ; Lu # LATIN CAPITAL LETTER EZH WITH CARON
+01F1 ; Lu # LATIN CAPITAL LETTER DZ
+01F4 ; Lu # LATIN CAPITAL LETTER G WITH ACUTE
+01F6..01F8 ; Lu # [3] LATIN CAPITAL LETTER HWAIR..LATIN CAPITAL LETTER N WITH GRAVE
+01FA ; Lu # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FC ; Lu # LATIN CAPITAL LETTER AE WITH ACUTE
+01FE ; Lu # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0200 ; Lu # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0202 ; Lu # LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0204 ; Lu # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0206 ; Lu # LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0208 ; Lu # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+020A ; Lu # LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020C ; Lu # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020E ; Lu # LATIN CAPITAL LETTER O WITH INVERTED BREVE
+0210 ; Lu # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0212 ; Lu # LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0214 ; Lu # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0216 ; Lu # LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0218 ; Lu # LATIN CAPITAL LETTER S WITH COMMA BELOW
+021A ; Lu # LATIN CAPITAL LETTER T WITH COMMA BELOW
+021C ; Lu # LATIN CAPITAL LETTER YOGH
+021E ; Lu # LATIN CAPITAL LETTER H WITH CARON
+0220 ; Lu # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0222 ; Lu # LATIN CAPITAL LETTER OU
+0224 ; Lu # LATIN CAPITAL LETTER Z WITH HOOK
+0226 ; Lu # LATIN CAPITAL LETTER A WITH DOT ABOVE
+0228 ; Lu # LATIN CAPITAL LETTER E WITH CEDILLA
+022A ; Lu # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022C ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022E ; Lu # LATIN CAPITAL LETTER O WITH DOT ABOVE
+0230 ; Lu # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0232 ; Lu # LATIN CAPITAL LETTER Y WITH MACRON
+023A..023B ; Lu # [2] LATIN CAPITAL LETTER A WITH STROKE..LATIN CAPITAL LETTER C WITH STROKE
+023D..023E ; Lu # [2] LATIN CAPITAL LETTER L WITH BAR..LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+0241 ; Lu # LATIN CAPITAL LETTER GLOTTAL STOP
+0243..0246 ; Lu # [4] LATIN CAPITAL LETTER B WITH STROKE..LATIN CAPITAL LETTER E WITH STROKE
+0248 ; Lu # LATIN CAPITAL LETTER J WITH STROKE
+024A ; Lu # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024C ; Lu # LATIN CAPITAL LETTER R WITH STROKE
+024E ; Lu # LATIN CAPITAL LETTER Y WITH STROKE
+0370 ; Lu # GREEK CAPITAL LETTER HETA
+0372 ; Lu # GREEK CAPITAL LETTER ARCHAIC SAMPI
+0376 ; Lu # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+0386 ; Lu # GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; Lu # [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; Lu # GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..038F ; Lu # [2] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER OMEGA WITH TONOS
+0391..03A1 ; Lu # [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+03A3..03AB ; Lu # [9] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03CF ; Lu # GREEK CAPITAL KAI SYMBOL
+03D2..03D4 ; Lu # [3] GREEK UPSILON WITH HOOK SYMBOL..GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D8 ; Lu # GREEK LETTER ARCHAIC KOPPA
+03DA ; Lu # GREEK LETTER STIGMA
+03DC ; Lu # GREEK LETTER DIGAMMA
+03DE ; Lu # GREEK LETTER KOPPA
+03E0 ; Lu # GREEK LETTER SAMPI
+03E2 ; Lu # COPTIC CAPITAL LETTER SHEI
+03E4 ; Lu # COPTIC CAPITAL LETTER FEI
+03E6 ; Lu # COPTIC CAPITAL LETTER KHEI
+03E8 ; Lu # COPTIC CAPITAL LETTER HORI
+03EA ; Lu # COPTIC CAPITAL LETTER GANGIA
+03EC ; Lu # COPTIC CAPITAL LETTER SHIMA
+03EE ; Lu # COPTIC CAPITAL LETTER DEI
+03F4 ; Lu # GREEK CAPITAL THETA SYMBOL
+03F7 ; Lu # GREEK CAPITAL LETTER SHO
+03F9..03FA ; Lu # [2] GREEK CAPITAL LUNATE SIGMA SYMBOL..GREEK CAPITAL LETTER SAN
+03FD..042F ; Lu # [51] GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL..CYRILLIC CAPITAL LETTER YA
+0460 ; Lu # CYRILLIC CAPITAL LETTER OMEGA
+0462 ; Lu # CYRILLIC CAPITAL LETTER YAT
+0464 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED E
+0466 ; Lu # CYRILLIC CAPITAL LETTER LITTLE YUS
+0468 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+046A ; Lu # CYRILLIC CAPITAL LETTER BIG YUS
+046C ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046E ; Lu # CYRILLIC CAPITAL LETTER KSI
+0470 ; Lu # CYRILLIC CAPITAL LETTER PSI
+0472 ; Lu # CYRILLIC CAPITAL LETTER FITA
+0474 ; Lu # CYRILLIC CAPITAL LETTER IZHITSA
+0476 ; Lu # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478 ; Lu # CYRILLIC CAPITAL LETTER UK
+047A ; Lu # CYRILLIC CAPITAL LETTER ROUND OMEGA
+047C ; Lu # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047E ; Lu # CYRILLIC CAPITAL LETTER OT
+0480 ; Lu # CYRILLIC CAPITAL LETTER KOPPA
+048A ; Lu # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048C ; Lu # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048E ; Lu # CYRILLIC CAPITAL LETTER ER WITH TICK
+0490 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0492 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0494 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0496 ; Lu # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0498 ; Lu # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+049A ; Lu # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049C ; Lu # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049E ; Lu # CYRILLIC CAPITAL LETTER KA WITH STROKE
+04A0 ; Lu # CYRILLIC CAPITAL LETTER BASHKIR KA
+04A2 ; Lu # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A4 ; Lu # CYRILLIC CAPITAL LIGATURE EN GHE
+04A6 ; Lu # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A8 ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04AA ; Lu # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AC ; Lu # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AE ; Lu # CYRILLIC CAPITAL LETTER STRAIGHT U
+04B0 ; Lu # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B2 ; Lu # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B4 ; Lu # CYRILLIC CAPITAL LIGATURE TE TSE
+04B6 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B8 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04BA ; Lu # CYRILLIC CAPITAL LETTER SHHA
+04BC ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BE ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0..04C1 ; Lu # [2] CYRILLIC LETTER PALOCHKA..CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C3 ; Lu # CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C5 ; Lu # CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C7 ; Lu # CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C9 ; Lu # CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CB ; Lu # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CD ; Lu # CYRILLIC CAPITAL LETTER EM WITH TAIL
+04D0 ; Lu # CYRILLIC CAPITAL LETTER A WITH BREVE
+04D2 ; Lu # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D4 ; Lu # CYRILLIC CAPITAL LIGATURE A IE
+04D6 ; Lu # CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D8 ; Lu # CYRILLIC CAPITAL LETTER SCHWA
+04DA ; Lu # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DC ; Lu # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DE ; Lu # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04E0 ; Lu # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E2 ; Lu # CYRILLIC CAPITAL LETTER I WITH MACRON
+04E4 ; Lu # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E6 ; Lu # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E8 ; Lu # CYRILLIC CAPITAL LETTER BARRED O
+04EA ; Lu # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EC ; Lu # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04EE ; Lu # CYRILLIC CAPITAL LETTER U WITH MACRON
+04F0 ; Lu # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F2 ; Lu # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F4 ; Lu # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F6 ; Lu # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F8 ; Lu # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04FA ; Lu # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FC ; Lu # CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FE ; Lu # CYRILLIC CAPITAL LETTER HA WITH STROKE
+0500 ; Lu # CYRILLIC CAPITAL LETTER KOMI DE
+0502 ; Lu # CYRILLIC CAPITAL LETTER KOMI DJE
+0504 ; Lu # CYRILLIC CAPITAL LETTER KOMI ZJE
+0506 ; Lu # CYRILLIC CAPITAL LETTER KOMI DZJE
+0508 ; Lu # CYRILLIC CAPITAL LETTER KOMI LJE
+050A ; Lu # CYRILLIC CAPITAL LETTER KOMI NJE
+050C ; Lu # CYRILLIC CAPITAL LETTER KOMI SJE
+050E ; Lu # CYRILLIC CAPITAL LETTER KOMI TJE
+0510 ; Lu # CYRILLIC CAPITAL LETTER REVERSED ZE
+0512 ; Lu # CYRILLIC CAPITAL LETTER EL WITH HOOK
+0514 ; Lu # CYRILLIC CAPITAL LETTER LHA
+0516 ; Lu # CYRILLIC CAPITAL LETTER RHA
+0518 ; Lu # CYRILLIC CAPITAL LETTER YAE
+051A ; Lu # CYRILLIC CAPITAL LETTER QA
+051C ; Lu # CYRILLIC CAPITAL LETTER WE
+051E ; Lu # CYRILLIC CAPITAL LETTER ALEUT KA
+0520 ; Lu # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0522 ; Lu # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+0531..0556 ; Lu # [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+10A0..10C5 ; Lu # [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+1E00 ; Lu # LATIN CAPITAL LETTER A WITH RING BELOW
+1E02 ; Lu # LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E04 ; Lu # LATIN CAPITAL LETTER B WITH DOT BELOW
+1E06 ; Lu # LATIN CAPITAL LETTER B WITH LINE BELOW
+1E08 ; Lu # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E0A ; Lu # LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0C ; Lu # LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0E ; Lu # LATIN CAPITAL LETTER D WITH LINE BELOW
+1E10 ; Lu # LATIN CAPITAL LETTER D WITH CEDILLA
+1E12 ; Lu # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E14 ; Lu # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E16 ; Lu # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E18 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E1A ; Lu # LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1C ; Lu # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1E ; Lu # LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E20 ; Lu # LATIN CAPITAL LETTER G WITH MACRON
+1E22 ; Lu # LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E24 ; Lu # LATIN CAPITAL LETTER H WITH DOT BELOW
+1E26 ; Lu # LATIN CAPITAL LETTER H WITH DIAERESIS
+1E28 ; Lu # LATIN CAPITAL LETTER H WITH CEDILLA
+1E2A ; Lu # LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2C ; Lu # LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2E ; Lu # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E30 ; Lu # LATIN CAPITAL LETTER K WITH ACUTE
+1E32 ; Lu # LATIN CAPITAL LETTER K WITH DOT BELOW
+1E34 ; Lu # LATIN CAPITAL LETTER K WITH LINE BELOW
+1E36 ; Lu # LATIN CAPITAL LETTER L WITH DOT BELOW
+1E38 ; Lu # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E3A ; Lu # LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3C ; Lu # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3E ; Lu # LATIN CAPITAL LETTER M WITH ACUTE
+1E40 ; Lu # LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E42 ; Lu # LATIN CAPITAL LETTER M WITH DOT BELOW
+1E44 ; Lu # LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E46 ; Lu # LATIN CAPITAL LETTER N WITH DOT BELOW
+1E48 ; Lu # LATIN CAPITAL LETTER N WITH LINE BELOW
+1E4A ; Lu # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4C ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4E ; Lu # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E50 ; Lu # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E52 ; Lu # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E54 ; Lu # LATIN CAPITAL LETTER P WITH ACUTE
+1E56 ; Lu # LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E58 ; Lu # LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E5A ; Lu # LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5C ; Lu # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5E ; Lu # LATIN CAPITAL LETTER R WITH LINE BELOW
+1E60 ; Lu # LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E62 ; Lu # LATIN CAPITAL LETTER S WITH DOT BELOW
+1E64 ; Lu # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E66 ; Lu # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E68 ; Lu # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A ; Lu # LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6C ; Lu # LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6E ; Lu # LATIN CAPITAL LETTER T WITH LINE BELOW
+1E70 ; Lu # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E72 ; Lu # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E74 ; Lu # LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E76 ; Lu # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E78 ; Lu # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E7A ; Lu # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7C ; Lu # LATIN CAPITAL LETTER V WITH TILDE
+1E7E ; Lu # LATIN CAPITAL LETTER V WITH DOT BELOW
+1E80 ; Lu # LATIN CAPITAL LETTER W WITH GRAVE
+1E82 ; Lu # LATIN CAPITAL LETTER W WITH ACUTE
+1E84 ; Lu # LATIN CAPITAL LETTER W WITH DIAERESIS
+1E86 ; Lu # LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E88 ; Lu # LATIN CAPITAL LETTER W WITH DOT BELOW
+1E8A ; Lu # LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8C ; Lu # LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8E ; Lu # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E90 ; Lu # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E92 ; Lu # LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E94 ; Lu # LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E9E ; Lu # LATIN CAPITAL LETTER SHARP S
+1EA0 ; Lu # LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA2 ; Lu # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA4 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8 ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC ; Lu # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB0 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB2 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB6 ; Lu # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB8 ; Lu # LATIN CAPITAL LETTER E WITH DOT BELOW
+1EBA ; Lu # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBC ; Lu # LATIN CAPITAL LETTER E WITH TILDE
+1EBE ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6 ; Lu # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8 ; Lu # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1ECA ; Lu # LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECC ; Lu # LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECE ; Lu # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ED0 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8 ; Lu # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA ; Lu # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDC ; Lu # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDE ; Lu # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE0 ; Lu # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE2 ; Lu # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE4 ; Lu # LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE6 ; Lu # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE8 ; Lu # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEA ; Lu # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEC ; Lu # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EEE ; Lu # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EF0 ; Lu # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF2 ; Lu # LATIN CAPITAL LETTER Y WITH GRAVE
+1EF4 ; Lu # LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF6 ; Lu # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF8 ; Lu # LATIN CAPITAL LETTER Y WITH TILDE
+1EFA ; Lu # LATIN CAPITAL LETTER MIDDLE-WELSH LL
+1EFC ; Lu # LATIN CAPITAL LETTER MIDDLE-WELSH V
+1EFE ; Lu # LATIN CAPITAL LETTER Y WITH LOOP
+1F08..1F0F ; Lu # [8] GREEK CAPITAL LETTER ALPHA WITH PSILI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F18..1F1D ; Lu # [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F28..1F2F ; Lu # [8] GREEK CAPITAL LETTER ETA WITH PSILI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F38..1F3F ; Lu # [8] GREEK CAPITAL LETTER IOTA WITH PSILI..GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F48..1F4D ; Lu # [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F59 ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F ; Lu # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F68..1F6F ; Lu # [8] GREEK CAPITAL LETTER OMEGA WITH PSILI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1FB8..1FBB ; Lu # [4] GREEK CAPITAL LETTER ALPHA WITH VRACHY..GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FC8..1FCB ; Lu # [4] GREEK CAPITAL LETTER EPSILON WITH VARIA..GREEK CAPITAL LETTER ETA WITH OXIA
+1FD8..1FDB ; Lu # [4] GREEK CAPITAL LETTER IOTA WITH VRACHY..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FE8..1FEC ; Lu # [5] GREEK CAPITAL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FF8..1FFB ; Lu # [4] GREEK CAPITAL LETTER OMICRON WITH VARIA..GREEK CAPITAL LETTER OMEGA WITH OXIA
+2102 ; Lu # DOUBLE-STRUCK CAPITAL C
+2107 ; Lu # EULER CONSTANT
+210B..210D ; Lu # [3] SCRIPT CAPITAL H..DOUBLE-STRUCK CAPITAL H
+2110..2112 ; Lu # [3] SCRIPT CAPITAL I..SCRIPT CAPITAL L
+2115 ; Lu # DOUBLE-STRUCK CAPITAL N
+2119..211D ; Lu # [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+2124 ; Lu # DOUBLE-STRUCK CAPITAL Z
+2126 ; Lu # OHM SIGN
+2128 ; Lu # BLACK-LETTER CAPITAL Z
+212A..212D ; Lu # [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
+2130..2133 ; Lu # [4] SCRIPT CAPITAL E..SCRIPT CAPITAL M
+213E..213F ; Lu # [2] DOUBLE-STRUCK CAPITAL GAMMA..DOUBLE-STRUCK CAPITAL PI
+2145 ; Lu # DOUBLE-STRUCK ITALIC CAPITAL D
+2183 ; Lu # ROMAN NUMERAL REVERSED ONE HUNDRED
+2C00..2C2E ; Lu # [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C60 ; Lu # LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C62..2C64 ; Lu # [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
+2C67 ; Lu # LATIN CAPITAL LETTER H WITH DESCENDER
+2C69 ; Lu # LATIN CAPITAL LETTER K WITH DESCENDER
+2C6B ; Lu # LATIN CAPITAL LETTER Z WITH DESCENDER
+2C6D..2C6F ; Lu # [3] LATIN CAPITAL LETTER ALPHA..LATIN CAPITAL LETTER TURNED A
+2C72 ; Lu # LATIN CAPITAL LETTER W WITH HOOK
+2C75 ; Lu # LATIN CAPITAL LETTER HALF H
+2C80 ; Lu # COPTIC CAPITAL LETTER ALFA
+2C82 ; Lu # COPTIC CAPITAL LETTER VIDA
+2C84 ; Lu # COPTIC CAPITAL LETTER GAMMA
+2C86 ; Lu # COPTIC CAPITAL LETTER DALDA
+2C88 ; Lu # COPTIC CAPITAL LETTER EIE
+2C8A ; Lu # COPTIC CAPITAL LETTER SOU
+2C8C ; Lu # COPTIC CAPITAL LETTER ZATA
+2C8E ; Lu # COPTIC CAPITAL LETTER HATE
+2C90 ; Lu # COPTIC CAPITAL LETTER THETHE
+2C92 ; Lu # COPTIC CAPITAL LETTER IAUDA
+2C94 ; Lu # COPTIC CAPITAL LETTER KAPA
+2C96 ; Lu # COPTIC CAPITAL LETTER LAULA
+2C98 ; Lu # COPTIC CAPITAL LETTER MI
+2C9A ; Lu # COPTIC CAPITAL LETTER NI
+2C9C ; Lu # COPTIC CAPITAL LETTER KSI
+2C9E ; Lu # COPTIC CAPITAL LETTER O
+2CA0 ; Lu # COPTIC CAPITAL LETTER PI
+2CA2 ; Lu # COPTIC CAPITAL LETTER RO
+2CA4 ; Lu # COPTIC CAPITAL LETTER SIMA
+2CA6 ; Lu # COPTIC CAPITAL LETTER TAU
+2CA8 ; Lu # COPTIC CAPITAL LETTER UA
+2CAA ; Lu # COPTIC CAPITAL LETTER FI
+2CAC ; Lu # COPTIC CAPITAL LETTER KHI
+2CAE ; Lu # COPTIC CAPITAL LETTER PSI
+2CB0 ; Lu # COPTIC CAPITAL LETTER OOU
+2CB2 ; Lu # COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB6 ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB8 ; Lu # COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CBA ; Lu # COPTIC CAPITAL LETTER DIALECT-P NI
+2CBC ; Lu # COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBE ; Lu # COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CC0 ; Lu # COPTIC CAPITAL LETTER SAMPI
+2CC2 ; Lu # COPTIC CAPITAL LETTER CROSSED SHEI
+2CC4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC6 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC8 ; Lu # COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CCA ; Lu # COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCC ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCE ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HA
+2CD0 ; Lu # COPTIC CAPITAL LETTER L-SHAPED HA
+2CD2 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD4 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD6 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD8 ; Lu # COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CDA ; Lu # COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDC ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDE ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CE0 ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE2 ; Lu # COPTIC CAPITAL LETTER OLD NUBIAN WAU
+A640 ; Lu # CYRILLIC CAPITAL LETTER ZEMLYA
+A642 ; Lu # CYRILLIC CAPITAL LETTER DZELO
+A644 ; Lu # CYRILLIC CAPITAL LETTER REVERSED DZE
+A646 ; Lu # CYRILLIC CAPITAL LETTER IOTA
+A648 ; Lu # CYRILLIC CAPITAL LETTER DJERV
+A64A ; Lu # CYRILLIC CAPITAL LETTER MONOGRAPH UK
+A64C ; Lu # CYRILLIC CAPITAL LETTER BROAD OMEGA
+A64E ; Lu # CYRILLIC CAPITAL LETTER NEUTRAL YER
+A650 ; Lu # CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+A652 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED YAT
+A654 ; Lu # CYRILLIC CAPITAL LETTER REVERSED YU
+A656 ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED A
+A658 ; Lu # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+A65A ; Lu # CYRILLIC CAPITAL LETTER BLENDED YUS
+A65C ; Lu # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+A65E ; Lu # CYRILLIC CAPITAL LETTER YN
+A662 ; Lu # CYRILLIC CAPITAL LETTER SOFT DE
+A664 ; Lu # CYRILLIC CAPITAL LETTER SOFT EL
+A666 ; Lu # CYRILLIC CAPITAL LETTER SOFT EM
+A668 ; Lu # CYRILLIC CAPITAL LETTER MONOCULAR O
+A66A ; Lu # CYRILLIC CAPITAL LETTER BINOCULAR O
+A66C ; Lu # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A680 ; Lu # CYRILLIC CAPITAL LETTER DWE
+A682 ; Lu # CYRILLIC CAPITAL LETTER DZWE
+A684 ; Lu # CYRILLIC CAPITAL LETTER ZHWE
+A686 ; Lu # CYRILLIC CAPITAL LETTER CCHE
+A688 ; Lu # CYRILLIC CAPITAL LETTER DZZE
+A68A ; Lu # CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+A68C ; Lu # CYRILLIC CAPITAL LETTER TWE
+A68E ; Lu # CYRILLIC CAPITAL LETTER TSWE
+A690 ; Lu # CYRILLIC CAPITAL LETTER TSSE
+A692 ; Lu # CYRILLIC CAPITAL LETTER TCHE
+A694 ; Lu # CYRILLIC CAPITAL LETTER HWE
+A696 ; Lu # CYRILLIC CAPITAL LETTER SHWE
+A722 ; Lu # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A724 ; Lu # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+A726 ; Lu # LATIN CAPITAL LETTER HENG
+A728 ; Lu # LATIN CAPITAL LETTER TZ
+A72A ; Lu # LATIN CAPITAL LETTER TRESILLO
+A72C ; Lu # LATIN CAPITAL LETTER CUATRILLO
+A72E ; Lu # LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+A732 ; Lu # LATIN CAPITAL LETTER AA
+A734 ; Lu # LATIN CAPITAL LETTER AO
+A736 ; Lu # LATIN CAPITAL LETTER AU
+A738 ; Lu # LATIN CAPITAL LETTER AV
+A73A ; Lu # LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73C ; Lu # LATIN CAPITAL LETTER AY
+A73E ; Lu # LATIN CAPITAL LETTER REVERSED C WITH DOT
+A740 ; Lu # LATIN CAPITAL LETTER K WITH STROKE
+A742 ; Lu # LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A744 ; Lu # LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+A746 ; Lu # LATIN CAPITAL LETTER BROKEN L
+A748 ; Lu # LATIN CAPITAL LETTER L WITH HIGH STROKE
+A74A ; Lu # LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+A74C ; Lu # LATIN CAPITAL LETTER O WITH LOOP
+A74E ; Lu # LATIN CAPITAL LETTER OO
+A750 ; Lu # LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+A752 ; Lu # LATIN CAPITAL LETTER P WITH FLOURISH
+A754 ; Lu # LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A756 ; Lu # LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A758 ; Lu # LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+A75A ; Lu # LATIN CAPITAL LETTER R ROTUNDA
+A75C ; Lu # LATIN CAPITAL LETTER RUM ROTUNDA
+A75E ; Lu # LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+A760 ; Lu # LATIN CAPITAL LETTER VY
+A762 ; Lu # LATIN CAPITAL LETTER VISIGOTHIC Z
+A764 ; Lu # LATIN CAPITAL LETTER THORN WITH STROKE
+A766 ; Lu # LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+A768 ; Lu # LATIN CAPITAL LETTER VEND
+A76A ; Lu # LATIN CAPITAL LETTER ET
+A76C ; Lu # LATIN CAPITAL LETTER IS
+A76E ; Lu # LATIN CAPITAL LETTER CON
+A779 ; Lu # LATIN CAPITAL LETTER INSULAR D
+A77B ; Lu # LATIN CAPITAL LETTER INSULAR F
+A77D..A77E ; Lu # [2] LATIN CAPITAL LETTER INSULAR G..LATIN CAPITAL LETTER TURNED INSULAR G
+A780 ; Lu # LATIN CAPITAL LETTER TURNED L
+A782 ; Lu # LATIN CAPITAL LETTER INSULAR R
+A784 ; Lu # LATIN CAPITAL LETTER INSULAR S
+A786 ; Lu # LATIN CAPITAL LETTER INSULAR T
+A78B ; Lu # LATIN CAPITAL LETTER SALTILLO
+FF21..FF3A ; Lu # [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+10400..10427 ; Lu # [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
+1D400..1D419 ; Lu # [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z
+1D434..1D44D ; Lu # [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z
+1D468..1D481 ; Lu # [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D49C ; Lu # MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; Lu # [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; Lu # MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; Lu # [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; Lu # [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B5 ; Lu # [8] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT CAPITAL Z
+1D4D0..1D4E9 ; Lu # [26] MATHEMATICAL BOLD SCRIPT CAPITAL A..MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D504..1D505 ; Lu # [2] MATHEMATICAL FRAKTUR CAPITAL A..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; Lu # [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; Lu # [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; Lu # [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D538..1D539 ; Lu # [2] MATHEMATICAL DOUBLE-STRUCK CAPITAL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; Lu # [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; Lu # [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; Lu # MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; Lu # [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D56C..1D585 ; Lu # [26] MATHEMATICAL BOLD FRAKTUR CAPITAL A..MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D5A0..1D5B9 ; Lu # [26] MATHEMATICAL SANS-SERIF CAPITAL A..MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5D4..1D5ED ; Lu # [26] MATHEMATICAL SANS-SERIF BOLD CAPITAL A..MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D608..1D621 ; Lu # [26] MATHEMATICAL SANS-SERIF ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D63C..1D655 ; Lu # [26] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D670..1D689 ; Lu # [26] MATHEMATICAL MONOSPACE CAPITAL A..MATHEMATICAL MONOSPACE CAPITAL Z
+1D6A8..1D6C0 ; Lu # [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6E2..1D6FA ; Lu # [25] MATHEMATICAL ITALIC CAPITAL ALPHA..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D71C..1D734 ; Lu # [25] MATHEMATICAL BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D756..1D76E ; Lu # [25] MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D790..1D7A8 ; Lu # [25] MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7CA ; Lu # MATHEMATICAL BOLD CAPITAL DIGAMMA
+
+# Total code points: 1421
+
+# ================================================
+
+# General_Category=Lowercase_Letter
+
+0061..007A ; Ll # [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+00AA ; Ll # FEMININE ORDINAL INDICATOR
+00B5 ; Ll # MICRO SIGN
+00BA ; Ll # MASCULINE ORDINAL INDICATOR
+00DF..00F6 ; Ll # [24] LATIN SMALL LETTER SHARP S..LATIN SMALL LETTER O WITH DIAERESIS
+00F8..00FF ; Ll # [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0101 ; Ll # LATIN SMALL LETTER A WITH MACRON
+0103 ; Ll # LATIN SMALL LETTER A WITH BREVE
+0105 ; Ll # LATIN SMALL LETTER A WITH OGONEK
+0107 ; Ll # LATIN SMALL LETTER C WITH ACUTE
+0109 ; Ll # LATIN SMALL LETTER C WITH CIRCUMFLEX
+010B ; Ll # LATIN SMALL LETTER C WITH DOT ABOVE
+010D ; Ll # LATIN SMALL LETTER C WITH CARON
+010F ; Ll # LATIN SMALL LETTER D WITH CARON
+0111 ; Ll # LATIN SMALL LETTER D WITH STROKE
+0113 ; Ll # LATIN SMALL LETTER E WITH MACRON
+0115 ; Ll # LATIN SMALL LETTER E WITH BREVE
+0117 ; Ll # LATIN SMALL LETTER E WITH DOT ABOVE
+0119 ; Ll # LATIN SMALL LETTER E WITH OGONEK
+011B ; Ll # LATIN SMALL LETTER E WITH CARON
+011D ; Ll # LATIN SMALL LETTER G WITH CIRCUMFLEX
+011F ; Ll # LATIN SMALL LETTER G WITH BREVE
+0121 ; Ll # LATIN SMALL LETTER G WITH DOT ABOVE
+0123 ; Ll # LATIN SMALL LETTER G WITH CEDILLA
+0125 ; Ll # LATIN SMALL LETTER H WITH CIRCUMFLEX
+0127 ; Ll # LATIN SMALL LETTER H WITH STROKE
+0129 ; Ll # LATIN SMALL LETTER I WITH TILDE
+012B ; Ll # LATIN SMALL LETTER I WITH MACRON
+012D ; Ll # LATIN SMALL LETTER I WITH BREVE
+012F ; Ll # LATIN SMALL LETTER I WITH OGONEK
+0131 ; Ll # LATIN SMALL LETTER DOTLESS I
+0133 ; Ll # LATIN SMALL LIGATURE IJ
+0135 ; Ll # LATIN SMALL LETTER J WITH CIRCUMFLEX
+0137..0138 ; Ll # [2] LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+013A ; Ll # LATIN SMALL LETTER L WITH ACUTE
+013C ; Ll # LATIN SMALL LETTER L WITH CEDILLA
+013E ; Ll # LATIN SMALL LETTER L WITH CARON
+0140 ; Ll # LATIN SMALL LETTER L WITH MIDDLE DOT
+0142 ; Ll # LATIN SMALL LETTER L WITH STROKE
+0144 ; Ll # LATIN SMALL LETTER N WITH ACUTE
+0146 ; Ll # LATIN SMALL LETTER N WITH CEDILLA
+0148..0149 ; Ll # [2] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014B ; Ll # LATIN SMALL LETTER ENG
+014D ; Ll # LATIN SMALL LETTER O WITH MACRON
+014F ; Ll # LATIN SMALL LETTER O WITH BREVE
+0151 ; Ll # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0153 ; Ll # LATIN SMALL LIGATURE OE
+0155 ; Ll # LATIN SMALL LETTER R WITH ACUTE
+0157 ; Ll # LATIN SMALL LETTER R WITH CEDILLA
+0159 ; Ll # LATIN SMALL LETTER R WITH CARON
+015B ; Ll # LATIN SMALL LETTER S WITH ACUTE
+015D ; Ll # LATIN SMALL LETTER S WITH CIRCUMFLEX
+015F ; Ll # LATIN SMALL LETTER S WITH CEDILLA
+0161 ; Ll # LATIN SMALL LETTER S WITH CARON
+0163 ; Ll # LATIN SMALL LETTER T WITH CEDILLA
+0165 ; Ll # LATIN SMALL LETTER T WITH CARON
+0167 ; Ll # LATIN SMALL LETTER T WITH STROKE
+0169 ; Ll # LATIN SMALL LETTER U WITH TILDE
+016B ; Ll # LATIN SMALL LETTER U WITH MACRON
+016D ; Ll # LATIN SMALL LETTER U WITH BREVE
+016F ; Ll # LATIN SMALL LETTER U WITH RING ABOVE
+0171 ; Ll # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0173 ; Ll # LATIN SMALL LETTER U WITH OGONEK
+0175 ; Ll # LATIN SMALL LETTER W WITH CIRCUMFLEX
+0177 ; Ll # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+017A ; Ll # LATIN SMALL LETTER Z WITH ACUTE
+017C ; Ll # LATIN SMALL LETTER Z WITH DOT ABOVE
+017E..0180 ; Ll # [3] LATIN SMALL LETTER Z WITH CARON..LATIN SMALL LETTER B WITH STROKE
+0183 ; Ll # LATIN SMALL LETTER B WITH TOPBAR
+0185 ; Ll # LATIN SMALL LETTER TONE SIX
+0188 ; Ll # LATIN SMALL LETTER C WITH HOOK
+018C..018D ; Ll # [2] LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+0192 ; Ll # LATIN SMALL LETTER F WITH HOOK
+0195 ; Ll # LATIN SMALL LETTER HV
+0199..019B ; Ll # [3] LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+019E ; Ll # LATIN SMALL LETTER N WITH LONG RIGHT LEG
+01A1 ; Ll # LATIN SMALL LETTER O WITH HORN
+01A3 ; Ll # LATIN SMALL LETTER OI
+01A5 ; Ll # LATIN SMALL LETTER P WITH HOOK
+01A8 ; Ll # LATIN SMALL LETTER TONE TWO
+01AA..01AB ; Ll # [2] LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+01AD ; Ll # LATIN SMALL LETTER T WITH HOOK
+01B0 ; Ll # LATIN SMALL LETTER U WITH HORN
+01B4 ; Ll # LATIN SMALL LETTER Y WITH HOOK
+01B6 ; Ll # LATIN SMALL LETTER Z WITH STROKE
+01B9..01BA ; Ll # [2] LATIN SMALL LETTER EZH REVERSED..LATIN SMALL LETTER EZH WITH TAIL
+01BD..01BF ; Ll # [3] LATIN SMALL LETTER TONE FIVE..LATIN LETTER WYNN
+01C6 ; Ll # LATIN SMALL LETTER DZ WITH CARON
+01C9 ; Ll # LATIN SMALL LETTER LJ
+01CC ; Ll # LATIN SMALL LETTER NJ
+01CE ; Ll # LATIN SMALL LETTER A WITH CARON
+01D0 ; Ll # LATIN SMALL LETTER I WITH CARON
+01D2 ; Ll # LATIN SMALL LETTER O WITH CARON
+01D4 ; Ll # LATIN SMALL LETTER U WITH CARON
+01D6 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D8 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01DA ; Ll # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DC..01DD ; Ll # [2] LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+01DF ; Ll # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E1 ; Ll # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E3 ; Ll # LATIN SMALL LETTER AE WITH MACRON
+01E5 ; Ll # LATIN SMALL LETTER G WITH STROKE
+01E7 ; Ll # LATIN SMALL LETTER G WITH CARON
+01E9 ; Ll # LATIN SMALL LETTER K WITH CARON
+01EB ; Ll # LATIN SMALL LETTER O WITH OGONEK
+01ED ; Ll # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EF..01F0 ; Ll # [2] LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F3 ; Ll # LATIN SMALL LETTER DZ
+01F5 ; Ll # LATIN SMALL LETTER G WITH ACUTE
+01F9 ; Ll # LATIN SMALL LETTER N WITH GRAVE
+01FB ; Ll # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FD ; Ll # LATIN SMALL LETTER AE WITH ACUTE
+01FF ; Ll # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0201 ; Ll # LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0203 ; Ll # LATIN SMALL LETTER A WITH INVERTED BREVE
+0205 ; Ll # LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0207 ; Ll # LATIN SMALL LETTER E WITH INVERTED BREVE
+0209 ; Ll # LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020B ; Ll # LATIN SMALL LETTER I WITH INVERTED BREVE
+020D ; Ll # LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020F ; Ll # LATIN SMALL LETTER O WITH INVERTED BREVE
+0211 ; Ll # LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0213 ; Ll # LATIN SMALL LETTER R WITH INVERTED BREVE
+0215 ; Ll # LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0217 ; Ll # LATIN SMALL LETTER U WITH INVERTED BREVE
+0219 ; Ll # LATIN SMALL LETTER S WITH COMMA BELOW
+021B ; Ll # LATIN SMALL LETTER T WITH COMMA BELOW
+021D ; Ll # LATIN SMALL LETTER YOGH
+021F ; Ll # LATIN SMALL LETTER H WITH CARON
+0221 ; Ll # LATIN SMALL LETTER D WITH CURL
+0223 ; Ll # LATIN SMALL LETTER OU
+0225 ; Ll # LATIN SMALL LETTER Z WITH HOOK
+0227 ; Ll # LATIN SMALL LETTER A WITH DOT ABOVE
+0229 ; Ll # LATIN SMALL LETTER E WITH CEDILLA
+022B ; Ll # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022D ; Ll # LATIN SMALL LETTER O WITH TILDE AND MACRON
+022F ; Ll # LATIN SMALL LETTER O WITH DOT ABOVE
+0231 ; Ll # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0233..0239 ; Ll # [7] LATIN SMALL LETTER Y WITH MACRON..LATIN SMALL LETTER QP DIGRAPH
+023C ; Ll # LATIN SMALL LETTER C WITH STROKE
+023F..0240 ; Ll # [2] LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+0242 ; Ll # LATIN SMALL LETTER GLOTTAL STOP
+0247 ; Ll # LATIN SMALL LETTER E WITH STROKE
+0249 ; Ll # LATIN SMALL LETTER J WITH STROKE
+024B ; Ll # LATIN SMALL LETTER Q WITH HOOK TAIL
+024D ; Ll # LATIN SMALL LETTER R WITH STROKE
+024F..0293 ; Ll # [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL
+0295..02AF ; Ll # [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+0371 ; Ll # GREEK SMALL LETTER HETA
+0373 ; Ll # GREEK SMALL LETTER ARCHAIC SAMPI
+0377 ; Ll # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037B..037D ; Ll # [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0390 ; Ll # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+03AC..03CE ; Ll # [35] GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER OMEGA WITH TONOS
+03D0..03D1 ; Ll # [2] GREEK BETA SYMBOL..GREEK THETA SYMBOL
+03D5..03D7 ; Ll # [3] GREEK PHI SYMBOL..GREEK KAI SYMBOL
+03D9 ; Ll # GREEK SMALL LETTER ARCHAIC KOPPA
+03DB ; Ll # GREEK SMALL LETTER STIGMA
+03DD ; Ll # GREEK SMALL LETTER DIGAMMA
+03DF ; Ll # GREEK SMALL LETTER KOPPA
+03E1 ; Ll # GREEK SMALL LETTER SAMPI
+03E3 ; Ll # COPTIC SMALL LETTER SHEI
+03E5 ; Ll # COPTIC SMALL LETTER FEI
+03E7 ; Ll # COPTIC SMALL LETTER KHEI
+03E9 ; Ll # COPTIC SMALL LETTER HORI
+03EB ; Ll # COPTIC SMALL LETTER GANGIA
+03ED ; Ll # COPTIC SMALL LETTER SHIMA
+03EF..03F3 ; Ll # [5] COPTIC SMALL LETTER DEI..GREEK LETTER YOT
+03F5 ; Ll # GREEK LUNATE EPSILON SYMBOL
+03F8 ; Ll # GREEK SMALL LETTER SHO
+03FB..03FC ; Ll # [2] GREEK SMALL LETTER SAN..GREEK RHO WITH STROKE SYMBOL
+0430..045F ; Ll # [48] CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER DZHE
+0461 ; Ll # CYRILLIC SMALL LETTER OMEGA
+0463 ; Ll # CYRILLIC SMALL LETTER YAT
+0465 ; Ll # CYRILLIC SMALL LETTER IOTIFIED E
+0467 ; Ll # CYRILLIC SMALL LETTER LITTLE YUS
+0469 ; Ll # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046B ; Ll # CYRILLIC SMALL LETTER BIG YUS
+046D ; Ll # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046F ; Ll # CYRILLIC SMALL LETTER KSI
+0471 ; Ll # CYRILLIC SMALL LETTER PSI
+0473 ; Ll # CYRILLIC SMALL LETTER FITA
+0475 ; Ll # CYRILLIC SMALL LETTER IZHITSA
+0477 ; Ll # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0479 ; Ll # CYRILLIC SMALL LETTER UK
+047B ; Ll # CYRILLIC SMALL LETTER ROUND OMEGA
+047D ; Ll # CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047F ; Ll # CYRILLIC SMALL LETTER OT
+0481 ; Ll # CYRILLIC SMALL LETTER KOPPA
+048B ; Ll # CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048D ; Ll # CYRILLIC SMALL LETTER SEMISOFT SIGN
+048F ; Ll # CYRILLIC SMALL LETTER ER WITH TICK
+0491 ; Ll # CYRILLIC SMALL LETTER GHE WITH UPTURN
+0493 ; Ll # CYRILLIC SMALL LETTER GHE WITH STROKE
+0495 ; Ll # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0497 ; Ll # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0499 ; Ll # CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049B ; Ll # CYRILLIC SMALL LETTER KA WITH DESCENDER
+049D ; Ll # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049F ; Ll # CYRILLIC SMALL LETTER KA WITH STROKE
+04A1 ; Ll # CYRILLIC SMALL LETTER BASHKIR KA
+04A3 ; Ll # CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A5 ; Ll # CYRILLIC SMALL LIGATURE EN GHE
+04A7 ; Ll # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A9 ; Ll # CYRILLIC SMALL LETTER ABKHASIAN HA
+04AB ; Ll # CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AD ; Ll # CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AF ; Ll # CYRILLIC SMALL LETTER STRAIGHT U
+04B1 ; Ll # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B3 ; Ll # CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B5 ; Ll # CYRILLIC SMALL LIGATURE TE TSE
+04B7 ; Ll # CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B9 ; Ll # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BB ; Ll # CYRILLIC SMALL LETTER SHHA
+04BD ; Ll # CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BF ; Ll # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C2 ; Ll # CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C4 ; Ll # CYRILLIC SMALL LETTER KA WITH HOOK
+04C6 ; Ll # CYRILLIC SMALL LETTER EL WITH TAIL
+04C8 ; Ll # CYRILLIC SMALL LETTER EN WITH HOOK
+04CA ; Ll # CYRILLIC SMALL LETTER EN WITH TAIL
+04CC ; Ll # CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CE..04CF ; Ll # [2] CYRILLIC SMALL LETTER EM WITH TAIL..CYRILLIC SMALL LETTER PALOCHKA
+04D1 ; Ll # CYRILLIC SMALL LETTER A WITH BREVE
+04D3 ; Ll # CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D5 ; Ll # CYRILLIC SMALL LIGATURE A IE
+04D7 ; Ll # CYRILLIC SMALL LETTER IE WITH BREVE
+04D9 ; Ll # CYRILLIC SMALL LETTER SCHWA
+04DB ; Ll # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DD ; Ll # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DF ; Ll # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E1 ; Ll # CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E3 ; Ll # CYRILLIC SMALL LETTER I WITH MACRON
+04E5 ; Ll # CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E7 ; Ll # CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E9 ; Ll # CYRILLIC SMALL LETTER BARRED O
+04EB ; Ll # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04ED ; Ll # CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EF ; Ll # CYRILLIC SMALL LETTER U WITH MACRON
+04F1 ; Ll # CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F3 ; Ll # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F5 ; Ll # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F7 ; Ll # CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F9 ; Ll # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04FB ; Ll # CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FD ; Ll # CYRILLIC SMALL LETTER HA WITH HOOK
+04FF ; Ll # CYRILLIC SMALL LETTER HA WITH STROKE
+0501 ; Ll # CYRILLIC SMALL LETTER KOMI DE
+0503 ; Ll # CYRILLIC SMALL LETTER KOMI DJE
+0505 ; Ll # CYRILLIC SMALL LETTER KOMI ZJE
+0507 ; Ll # CYRILLIC SMALL LETTER KOMI DZJE
+0509 ; Ll # CYRILLIC SMALL LETTER KOMI LJE
+050B ; Ll # CYRILLIC SMALL LETTER KOMI NJE
+050D ; Ll # CYRILLIC SMALL LETTER KOMI SJE
+050F ; Ll # CYRILLIC SMALL LETTER KOMI TJE
+0511 ; Ll # CYRILLIC SMALL LETTER REVERSED ZE
+0513 ; Ll # CYRILLIC SMALL LETTER EL WITH HOOK
+0515 ; Ll # CYRILLIC SMALL LETTER LHA
+0517 ; Ll # CYRILLIC SMALL LETTER RHA
+0519 ; Ll # CYRILLIC SMALL LETTER YAE
+051B ; Ll # CYRILLIC SMALL LETTER QA
+051D ; Ll # CYRILLIC SMALL LETTER WE
+051F ; Ll # CYRILLIC SMALL LETTER ALEUT KA
+0521 ; Ll # CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0523 ; Ll # CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0561..0587 ; Ll # [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+1D00..1D2B ; Ll # [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D62..1D77 ; Ll # [22] LATIN SUBSCRIPT SMALL LETTER I..LATIN SMALL LETTER TURNED G
+1D79..1D9A ; Ll # [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1E01 ; Ll # LATIN SMALL LETTER A WITH RING BELOW
+1E03 ; Ll # LATIN SMALL LETTER B WITH DOT ABOVE
+1E05 ; Ll # LATIN SMALL LETTER B WITH DOT BELOW
+1E07 ; Ll # LATIN SMALL LETTER B WITH LINE BELOW
+1E09 ; Ll # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0B ; Ll # LATIN SMALL LETTER D WITH DOT ABOVE
+1E0D ; Ll # LATIN SMALL LETTER D WITH DOT BELOW
+1E0F ; Ll # LATIN SMALL LETTER D WITH LINE BELOW
+1E11 ; Ll # LATIN SMALL LETTER D WITH CEDILLA
+1E13 ; Ll # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E15 ; Ll # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E17 ; Ll # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E19 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1B ; Ll # LATIN SMALL LETTER E WITH TILDE BELOW
+1E1D ; Ll # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1F ; Ll # LATIN SMALL LETTER F WITH DOT ABOVE
+1E21 ; Ll # LATIN SMALL LETTER G WITH MACRON
+1E23 ; Ll # LATIN SMALL LETTER H WITH DOT ABOVE
+1E25 ; Ll # LATIN SMALL LETTER H WITH DOT BELOW
+1E27 ; Ll # LATIN SMALL LETTER H WITH DIAERESIS
+1E29 ; Ll # LATIN SMALL LETTER H WITH CEDILLA
+1E2B ; Ll # LATIN SMALL LETTER H WITH BREVE BELOW
+1E2D ; Ll # LATIN SMALL LETTER I WITH TILDE BELOW
+1E2F ; Ll # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E31 ; Ll # LATIN SMALL LETTER K WITH ACUTE
+1E33 ; Ll # LATIN SMALL LETTER K WITH DOT BELOW
+1E35 ; Ll # LATIN SMALL LETTER K WITH LINE BELOW
+1E37 ; Ll # LATIN SMALL LETTER L WITH DOT BELOW
+1E39 ; Ll # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3B ; Ll # LATIN SMALL LETTER L WITH LINE BELOW
+1E3D ; Ll # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3F ; Ll # LATIN SMALL LETTER M WITH ACUTE
+1E41 ; Ll # LATIN SMALL LETTER M WITH DOT ABOVE
+1E43 ; Ll # LATIN SMALL LETTER M WITH DOT BELOW
+1E45 ; Ll # LATIN SMALL LETTER N WITH DOT ABOVE
+1E47 ; Ll # LATIN SMALL LETTER N WITH DOT BELOW
+1E49 ; Ll # LATIN SMALL LETTER N WITH LINE BELOW
+1E4B ; Ll # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4D ; Ll # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4F ; Ll # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E51 ; Ll # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E53 ; Ll # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E55 ; Ll # LATIN SMALL LETTER P WITH ACUTE
+1E57 ; Ll # LATIN SMALL LETTER P WITH DOT ABOVE
+1E59 ; Ll # LATIN SMALL LETTER R WITH DOT ABOVE
+1E5B ; Ll # LATIN SMALL LETTER R WITH DOT BELOW
+1E5D ; Ll # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5F ; Ll # LATIN SMALL LETTER R WITH LINE BELOW
+1E61 ; Ll # LATIN SMALL LETTER S WITH DOT ABOVE
+1E63 ; Ll # LATIN SMALL LETTER S WITH DOT BELOW
+1E65 ; Ll # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E67 ; Ll # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E69 ; Ll # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6B ; Ll # LATIN SMALL LETTER T WITH DOT ABOVE
+1E6D ; Ll # LATIN SMALL LETTER T WITH DOT BELOW
+1E6F ; Ll # LATIN SMALL LETTER T WITH LINE BELOW
+1E71 ; Ll # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E73 ; Ll # LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E75 ; Ll # LATIN SMALL LETTER U WITH TILDE BELOW
+1E77 ; Ll # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E79 ; Ll # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7B ; Ll # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7D ; Ll # LATIN SMALL LETTER V WITH TILDE
+1E7F ; Ll # LATIN SMALL LETTER V WITH DOT BELOW
+1E81 ; Ll # LATIN SMALL LETTER W WITH GRAVE
+1E83 ; Ll # LATIN SMALL LETTER W WITH ACUTE
+1E85 ; Ll # LATIN SMALL LETTER W WITH DIAERESIS
+1E87 ; Ll # LATIN SMALL LETTER W WITH DOT ABOVE
+1E89 ; Ll # LATIN SMALL LETTER W WITH DOT BELOW
+1E8B ; Ll # LATIN SMALL LETTER X WITH DOT ABOVE
+1E8D ; Ll # LATIN SMALL LETTER X WITH DIAERESIS
+1E8F ; Ll # LATIN SMALL LETTER Y WITH DOT ABOVE
+1E91 ; Ll # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E93 ; Ll # LATIN SMALL LETTER Z WITH DOT BELOW
+1E95..1E9D ; Ll # [9] LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+1E9F ; Ll # LATIN SMALL LETTER DELTA
+1EA1 ; Ll # LATIN SMALL LETTER A WITH DOT BELOW
+1EA3 ; Ll # LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA5 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA7 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA9 ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAB ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAD ; Ll # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAF ; Ll # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB1 ; Ll # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB3 ; Ll # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB5 ; Ll # LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB7 ; Ll # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB9 ; Ll # LATIN SMALL LETTER E WITH DOT BELOW
+1EBB ; Ll # LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBD ; Ll # LATIN SMALL LETTER E WITH TILDE
+1EBF ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC1 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC3 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC5 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC7 ; Ll # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC9 ; Ll # LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECB ; Ll # LATIN SMALL LETTER I WITH DOT BELOW
+1ECD ; Ll # LATIN SMALL LETTER O WITH DOT BELOW
+1ECF ; Ll # LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED1 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED3 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED5 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED7 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED9 ; Ll # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDB ; Ll # LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDD ; Ll # LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDF ; Ll # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE1 ; Ll # LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE3 ; Ll # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE5 ; Ll # LATIN SMALL LETTER U WITH DOT BELOW
+1EE7 ; Ll # LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE9 ; Ll # LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEB ; Ll # LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EED ; Ll # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEF ; Ll # LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF1 ; Ll # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF3 ; Ll # LATIN SMALL LETTER Y WITH GRAVE
+1EF5 ; Ll # LATIN SMALL LETTER Y WITH DOT BELOW
+1EF7 ; Ll # LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF9 ; Ll # LATIN SMALL LETTER Y WITH TILDE
+1EFB ; Ll # LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFD ; Ll # LATIN SMALL LETTER MIDDLE-WELSH V
+1EFF..1F07 ; Ll # [9] LATIN SMALL LETTER Y WITH LOOP..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10..1F15 ; Ll # [6] GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F27 ; Ll # [8] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30..1F37 ; Ll # [8] GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40..1F45 ; Ll # [6] GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; Ll # [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60..1F67 ; Ll # [8] GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70..1F7D ; Ll # [14] GREEK SMALL LETTER ALPHA WITH VARIA..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1F87 ; Ll # [8] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F90..1F97 ; Ll # [8] GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA0..1FA7 ; Ll # [8] GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FB0..1FB4 ; Ll # [5] GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FB7 ; Ll # [2] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FBE ; Ll # GREEK PROSGEGRAMMENI
+1FC2..1FC4 ; Ll # [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FC7 ; Ll # [2] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FD0..1FD3 ; Ll # [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FD7 ; Ll # [2] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FE0..1FE7 ; Ll # [8] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FF2..1FF4 ; Ll # [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FF7 ; Ll # [2] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+2071 ; Ll # SUPERSCRIPT LATIN SMALL LETTER I
+207F ; Ll # SUPERSCRIPT LATIN SMALL LETTER N
+210A ; Ll # SCRIPT SMALL G
+210E..210F ; Ll # [2] PLANCK CONSTANT..PLANCK CONSTANT OVER TWO PI
+2113 ; Ll # SCRIPT SMALL L
+212F ; Ll # SCRIPT SMALL E
+2134 ; Ll # SCRIPT SMALL O
+2139 ; Ll # INFORMATION SOURCE
+213C..213D ; Ll # [2] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK SMALL GAMMA
+2146..2149 ; Ll # [4] DOUBLE-STRUCK ITALIC SMALL D..DOUBLE-STRUCK ITALIC SMALL J
+214E ; Ll # TURNED SMALL F
+2184 ; Ll # LATIN SMALL LETTER REVERSED C
+2C30..2C5E ; Ll # [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C61 ; Ll # LATIN SMALL LETTER L WITH DOUBLE BAR
+2C65..2C66 ; Ll # [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+2C68 ; Ll # LATIN SMALL LETTER H WITH DESCENDER
+2C6A ; Ll # LATIN SMALL LETTER K WITH DESCENDER
+2C6C ; Ll # LATIN SMALL LETTER Z WITH DESCENDER
+2C71 ; Ll # LATIN SMALL LETTER V WITH RIGHT HOOK
+2C73..2C74 ; Ll # [2] LATIN SMALL LETTER W WITH HOOK..LATIN SMALL LETTER V WITH CURL
+2C76..2C7C ; Ll # [7] LATIN SMALL LETTER HALF H..LATIN SUBSCRIPT SMALL LETTER J
+2C81 ; Ll # COPTIC SMALL LETTER ALFA
+2C83 ; Ll # COPTIC SMALL LETTER VIDA
+2C85 ; Ll # COPTIC SMALL LETTER GAMMA
+2C87 ; Ll # COPTIC SMALL LETTER DALDA
+2C89 ; Ll # COPTIC SMALL LETTER EIE
+2C8B ; Ll # COPTIC SMALL LETTER SOU
+2C8D ; Ll # COPTIC SMALL LETTER ZATA
+2C8F ; Ll # COPTIC SMALL LETTER HATE
+2C91 ; Ll # COPTIC SMALL LETTER THETHE
+2C93 ; Ll # COPTIC SMALL LETTER IAUDA
+2C95 ; Ll # COPTIC SMALL LETTER KAPA
+2C97 ; Ll # COPTIC SMALL LETTER LAULA
+2C99 ; Ll # COPTIC SMALL LETTER MI
+2C9B ; Ll # COPTIC SMALL LETTER NI
+2C9D ; Ll # COPTIC SMALL LETTER KSI
+2C9F ; Ll # COPTIC SMALL LETTER O
+2CA1 ; Ll # COPTIC SMALL LETTER PI
+2CA3 ; Ll # COPTIC SMALL LETTER RO
+2CA5 ; Ll # COPTIC SMALL LETTER SIMA
+2CA7 ; Ll # COPTIC SMALL LETTER TAU
+2CA9 ; Ll # COPTIC SMALL LETTER UA
+2CAB ; Ll # COPTIC SMALL LETTER FI
+2CAD ; Ll # COPTIC SMALL LETTER KHI
+2CAF ; Ll # COPTIC SMALL LETTER PSI
+2CB1 ; Ll # COPTIC SMALL LETTER OOU
+2CB3 ; Ll # COPTIC SMALL LETTER DIALECT-P ALEF
+2CB5 ; Ll # COPTIC SMALL LETTER OLD COPTIC AIN
+2CB7 ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB9 ; Ll # COPTIC SMALL LETTER DIALECT-P KAPA
+2CBB ; Ll # COPTIC SMALL LETTER DIALECT-P NI
+2CBD ; Ll # COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBF ; Ll # COPTIC SMALL LETTER OLD COPTIC OOU
+2CC1 ; Ll # COPTIC SMALL LETTER SAMPI
+2CC3 ; Ll # COPTIC SMALL LETTER CROSSED SHEI
+2CC5 ; Ll # COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC7 ; Ll # COPTIC SMALL LETTER OLD COPTIC ESH
+2CC9 ; Ll # COPTIC SMALL LETTER AKHMIMIC KHEI
+2CCB ; Ll # COPTIC SMALL LETTER DIALECT-P HORI
+2CCD ; Ll # COPTIC SMALL LETTER OLD COPTIC HORI
+2CCF ; Ll # COPTIC SMALL LETTER OLD COPTIC HA
+2CD1 ; Ll # COPTIC SMALL LETTER L-SHAPED HA
+2CD3 ; Ll # COPTIC SMALL LETTER OLD COPTIC HEI
+2CD5 ; Ll # COPTIC SMALL LETTER OLD COPTIC HAT
+2CD7 ; Ll # COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD9 ; Ll # COPTIC SMALL LETTER OLD COPTIC DJA
+2CDB ; Ll # COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDD ; Ll # COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDF ; Ll # COPTIC SMALL LETTER OLD NUBIAN NGI
+2CE1 ; Ll # COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE3..2CE4 ; Ll # [2] COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+2D00..2D25 ; Ll # [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+A641 ; Ll # CYRILLIC SMALL LETTER ZEMLYA
+A643 ; Ll # CYRILLIC SMALL LETTER DZELO
+A645 ; Ll # CYRILLIC SMALL LETTER REVERSED DZE
+A647 ; Ll # CYRILLIC SMALL LETTER IOTA
+A649 ; Ll # CYRILLIC SMALL LETTER DJERV
+A64B ; Ll # CYRILLIC SMALL LETTER MONOGRAPH UK
+A64D ; Ll # CYRILLIC SMALL LETTER BROAD OMEGA
+A64F ; Ll # CYRILLIC SMALL LETTER NEUTRAL YER
+A651 ; Ll # CYRILLIC SMALL LETTER YERU WITH BACK YER
+A653 ; Ll # CYRILLIC SMALL LETTER IOTIFIED YAT
+A655 ; Ll # CYRILLIC SMALL LETTER REVERSED YU
+A657 ; Ll # CYRILLIC SMALL LETTER IOTIFIED A
+A659 ; Ll # CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A65B ; Ll # CYRILLIC SMALL LETTER BLENDED YUS
+A65D ; Ll # CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65F ; Ll # CYRILLIC SMALL LETTER YN
+A663 ; Ll # CYRILLIC SMALL LETTER SOFT DE
+A665 ; Ll # CYRILLIC SMALL LETTER SOFT EL
+A667 ; Ll # CYRILLIC SMALL LETTER SOFT EM
+A669 ; Ll # CYRILLIC SMALL LETTER MONOCULAR O
+A66B ; Ll # CYRILLIC SMALL LETTER BINOCULAR O
+A66D ; Ll # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A681 ; Ll # CYRILLIC SMALL LETTER DWE
+A683 ; Ll # CYRILLIC SMALL LETTER DZWE
+A685 ; Ll # CYRILLIC SMALL LETTER ZHWE
+A687 ; Ll # CYRILLIC SMALL LETTER CCHE
+A689 ; Ll # CYRILLIC SMALL LETTER DZZE
+A68B ; Ll # CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68D ; Ll # CYRILLIC SMALL LETTER TWE
+A68F ; Ll # CYRILLIC SMALL LETTER TSWE
+A691 ; Ll # CYRILLIC SMALL LETTER TSSE
+A693 ; Ll # CYRILLIC SMALL LETTER TCHE
+A695 ; Ll # CYRILLIC SMALL LETTER HWE
+A697 ; Ll # CYRILLIC SMALL LETTER SHWE
+A723 ; Ll # LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A725 ; Ll # LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A727 ; Ll # LATIN SMALL LETTER HENG
+A729 ; Ll # LATIN SMALL LETTER TZ
+A72B ; Ll # LATIN SMALL LETTER TRESILLO
+A72D ; Ll # LATIN SMALL LETTER CUATRILLO
+A72F..A731 ; Ll # [3] LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+A733 ; Ll # LATIN SMALL LETTER AA
+A735 ; Ll # LATIN SMALL LETTER AO
+A737 ; Ll # LATIN SMALL LETTER AU
+A739 ; Ll # LATIN SMALL LETTER AV
+A73B ; Ll # LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73D ; Ll # LATIN SMALL LETTER AY
+A73F ; Ll # LATIN SMALL LETTER REVERSED C WITH DOT
+A741 ; Ll # LATIN SMALL LETTER K WITH STROKE
+A743 ; Ll # LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A745 ; Ll # LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A747 ; Ll # LATIN SMALL LETTER BROKEN L
+A749 ; Ll # LATIN SMALL LETTER L WITH HIGH STROKE
+A74B ; Ll # LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74D ; Ll # LATIN SMALL LETTER O WITH LOOP
+A74F ; Ll # LATIN SMALL LETTER OO
+A751 ; Ll # LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A753 ; Ll # LATIN SMALL LETTER P WITH FLOURISH
+A755 ; Ll # LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A757 ; Ll # LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A759 ; Ll # LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A75B ; Ll # LATIN SMALL LETTER R ROTUNDA
+A75D ; Ll # LATIN SMALL LETTER RUM ROTUNDA
+A75F ; Ll # LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A761 ; Ll # LATIN SMALL LETTER VY
+A763 ; Ll # LATIN SMALL LETTER VISIGOTHIC Z
+A765 ; Ll # LATIN SMALL LETTER THORN WITH STROKE
+A767 ; Ll # LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A769 ; Ll # LATIN SMALL LETTER VEND
+A76B ; Ll # LATIN SMALL LETTER ET
+A76D ; Ll # LATIN SMALL LETTER IS
+A76F ; Ll # LATIN SMALL LETTER CON
+A771..A778 ; Ll # [8] LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
+A77A ; Ll # LATIN SMALL LETTER INSULAR D
+A77C ; Ll # LATIN SMALL LETTER INSULAR F
+A77F ; Ll # LATIN SMALL LETTER TURNED INSULAR G
+A781 ; Ll # LATIN SMALL LETTER TURNED L
+A783 ; Ll # LATIN SMALL LETTER INSULAR R
+A785 ; Ll # LATIN SMALL LETTER INSULAR S
+A787 ; Ll # LATIN SMALL LETTER INSULAR T
+A78C ; Ll # LATIN SMALL LETTER SALTILLO
+FB00..FB06 ; Ll # [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; Ll # [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FF41..FF5A ; Ll # [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+10428..1044F ; Ll # [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
+1D41A..1D433 ; Ll # [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z
+1D44E..1D454 ; Ll # [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D467 ; Ll # [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z
+1D482..1D49B ; Ll # [26] MATHEMATICAL BOLD ITALIC SMALL A..MATHEMATICAL BOLD ITALIC SMALL Z
+1D4B6..1D4B9 ; Ll # [4] MATHEMATICAL SCRIPT SMALL A..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; Ll # MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; Ll # [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D4CF ; Ll # [11] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL SCRIPT SMALL Z
+1D4EA..1D503 ; Ll # [26] MATHEMATICAL BOLD SCRIPT SMALL A..MATHEMATICAL BOLD SCRIPT SMALL Z
+1D51E..1D537 ; Ll # [26] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL FRAKTUR SMALL Z
+1D552..1D56B ; Ll # [26] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D586..1D59F ; Ll # [26] MATHEMATICAL BOLD FRAKTUR SMALL A..MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5BA..1D5D3 ; Ll # [26] MATHEMATICAL SANS-SERIF SMALL A..MATHEMATICAL SANS-SERIF SMALL Z
+1D5EE..1D607 ; Ll # [26] MATHEMATICAL SANS-SERIF BOLD SMALL A..MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D622..1D63B ; Ll # [26] MATHEMATICAL SANS-SERIF ITALIC SMALL A..MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D656..1D66F ; Ll # [26] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D68A..1D6A5 ; Ll # [28] MATHEMATICAL MONOSPACE SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6C2..1D6DA ; Ll # [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DC..1D6E1 ; Ll # [6] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL BOLD PI SYMBOL
+1D6FC..1D714 ; Ll # [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D716..1D71B ; Ll # [6] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL ITALIC PI SYMBOL
+1D736..1D74E ; Ll # [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D750..1D755 ; Ll # [6] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D770..1D788 ; Ll # [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D78A..1D78F ; Ll # [6] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D7AA..1D7C2 ; Ll # [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C4..1D7C9 ; Ll # [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7CB ; Ll # MATHEMATICAL BOLD SMALL DIGAMMA
+
+# Total code points: 1748
+
+# ================================================
+
+# General_Category=Titlecase_Letter
+
+01C5 ; Lt # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+01C8 ; Lt # LATIN CAPITAL LETTER L WITH SMALL LETTER J
+01CB ; Lt # LATIN CAPITAL LETTER N WITH SMALL LETTER J
+01F2 ; Lt # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
+1F88..1F8F ; Lt # [8] GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F98..1F9F ; Lt # [8] GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA8..1FAF ; Lt # [8] GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI..GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FBC ; Lt # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FCC ; Lt # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FFC ; Lt # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+
+# Total code points: 31
+
+# ================================================
+
+# General_Category=Modifier_Letter
+
+02B0..02C1 ; Lm # [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C6..02D1 ; Lm # [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02E0..02E4 ; Lm # [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02EC ; Lm # MODIFIER LETTER VOICING
+02EE ; Lm # MODIFIER LETTER DOUBLE APOSTROPHE
+0374 ; Lm # GREEK NUMERAL SIGN
+037A ; Lm # GREEK YPOGEGRAMMENI
+0559 ; Lm # ARMENIAN MODIFIER LETTER LEFT HALF RING
+0640 ; Lm # ARABIC TATWEEL
+06E5..06E6 ; Lm # [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+07F4..07F5 ; Lm # [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07FA ; Lm # NKO LAJANYALAN
+0971 ; Lm # DEVANAGARI SIGN HIGH SPACING DOT
+0E46 ; Lm # THAI CHARACTER MAIYAMOK
+0EC6 ; Lm # LAO KO LA
+10FC ; Lm # MODIFIER LETTER GEORGIAN NAR
+17D7 ; Lm # KHMER SIGN LEK TOO
+1843 ; Lm # MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1C78..1C7D ; Lm # [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1D2C..1D61 ; Lm # [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
+1D78 ; Lm # MODIFIER LETTER CYRILLIC EN
+1D9B..1DBF ; Lm # [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+2090..2094 ; Lm # [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+2C7D ; Lm # MODIFIER LETTER CAPITAL V
+2D6F ; Lm # TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2E2F ; Lm # VERTICAL TILDE
+3005 ; Lm # IDEOGRAPHIC ITERATION MARK
+3031..3035 ; Lm # [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+303B ; Lm # VERTICAL IDEOGRAPHIC ITERATION MARK
+309D..309E ; Lm # [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+30FC..30FE ; Lm # [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+A015 ; Lm # YI SYLLABLE WU
+A60C ; Lm # VAI SYLLABLE LENGTHENER
+A67F ; Lm # CYRILLIC PAYEROK
+A717..A71F ; Lm # [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A770 ; Lm # MODIFIER LETTER US
+A788 ; Lm # MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+FF70 ; Lm # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+
+# Total code points: 187
+
+# ================================================
+
+# General_Category=Other_Letter
+
+01BB ; Lo # LATIN LETTER TWO WITH STROKE
+01C0..01C3 ; Lo # [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+0294 ; Lo # LATIN LETTER GLOTTAL STOP
+05D0..05EA ; Lo # [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2 ; Lo # [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+0621..063F ; Lo # [31] ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0641..064A ; Lo # [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+066E..066F ; Lo # [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0671..06D3 ; Lo # [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D5 ; Lo # ARABIC LETTER AE
+06EE..06EF ; Lo # [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06FA..06FC ; Lo # [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FF ; Lo # ARABIC LETTER HEH WITH INVERTED V
+0710 ; Lo # SYRIAC LETTER ALAPH
+0712..072F ; Lo # [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+074D..07A5 ; Lo # [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
+07B1 ; Lo # THAANA LETTER NAA
+07CA..07EA ; Lo # [33] NKO LETTER A..NKO LETTER JONA RA
+0904..0939 ; Lo # [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093D ; Lo # DEVANAGARI SIGN AVAGRAHA
+0950 ; Lo # DEVANAGARI OM
+0958..0961 ; Lo # [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0972 ; Lo # DEVANAGARI LETTER CANDRA A
+097B..097F ; Lo # [5] DEVANAGARI LETTER GGA..DEVANAGARI LETTER BBA
+0985..098C ; Lo # [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; Lo # [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; Lo # [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; Lo # [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; Lo # BENGALI LETTER LA
+09B6..09B9 ; Lo # [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BD ; Lo # BENGALI SIGN AVAGRAHA
+09CE ; Lo # BENGALI LETTER KHANDA TA
+09DC..09DD ; Lo # [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; Lo # [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09F0..09F1 ; Lo # [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+0A05..0A0A ; Lo # [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; Lo # [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; Lo # [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; Lo # [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; Lo # [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; Lo # [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; Lo # [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A59..0A5C ; Lo # [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; Lo # GURMUKHI LETTER FA
+0A72..0A74 ; Lo # [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A85..0A8D ; Lo # [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; Lo # [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; Lo # [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; Lo # [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; Lo # [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; Lo # [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABD ; Lo # GUJARATI SIGN AVAGRAHA
+0AD0 ; Lo # GUJARATI OM
+0AE0..0AE1 ; Lo # [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0B05..0B0C ; Lo # [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; Lo # [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; Lo # [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; Lo # [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; Lo # [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; Lo # [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3D ; Lo # ORIYA SIGN AVAGRAHA
+0B5C..0B5D ; Lo # [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; Lo # [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B71 ; Lo # ORIYA LETTER WA
+0B83 ; Lo # TAMIL SIGN VISARGA
+0B85..0B8A ; Lo # [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; Lo # [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; Lo # [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; Lo # [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; Lo # TAMIL LETTER JA
+0B9E..0B9F ; Lo # [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; Lo # [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; Lo # [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; Lo # [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BD0 ; Lo # TAMIL OM
+0C05..0C0C ; Lo # [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; Lo # [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; Lo # [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C33 ; Lo # [10] TELUGU LETTER PA..TELUGU LETTER LLA
+0C35..0C39 ; Lo # [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C3D ; Lo # TELUGU SIGN AVAGRAHA
+0C58..0C59 ; Lo # [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61 ; Lo # [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C85..0C8C ; Lo # [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; Lo # [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; Lo # [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; Lo # [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; Lo # [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBD ; Lo # KANNADA SIGN AVAGRAHA
+0CDE ; Lo # KANNADA LETTER FA
+0CE0..0CE1 ; Lo # [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0D05..0D0C ; Lo # [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; Lo # [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D28 ; Lo # [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
+0D2A..0D39 ; Lo # [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
+0D3D ; Lo # MALAYALAM SIGN AVAGRAHA
+0D60..0D61 ; Lo # [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D7A..0D7F ; Lo # [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D85..0D96 ; Lo # [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; Lo # [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; Lo # [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; Lo # SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; Lo # [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0E01..0E30 ; Lo # [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E32..0E33 ; Lo # [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E40..0E45 ; Lo # [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E81..0E82 ; Lo # [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; Lo # LAO LETTER KHO TAM
+0E87..0E88 ; Lo # [2] LAO LETTER NGO..LAO LETTER CO
+0E8A ; Lo # LAO LETTER SO TAM
+0E8D ; Lo # LAO LETTER NYO
+0E94..0E97 ; Lo # [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F ; Lo # [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3 ; Lo # [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5 ; Lo # LAO LETTER LO LOOT
+0EA7 ; Lo # LAO LETTER WO
+0EAA..0EAB ; Lo # [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0 ; Lo # [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB2..0EB3 ; Lo # [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EBD ; Lo # LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; Lo # [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EDC..0EDD ; Lo # [2] LAO HO NO..LAO HO MO
+0F00 ; Lo # TIBETAN SYLLABLE OM
+0F40..0F47 ; Lo # [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; Lo # [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F88..0F8B ; Lo # [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
+1000..102A ; Lo # [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+103F ; Lo # MYANMAR LETTER GREAT SA
+1050..1055 ; Lo # [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+105A..105D ; Lo # [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+1061 ; Lo # MYANMAR LETTER SGAW KAREN SHA
+1065..1066 ; Lo # [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+106E..1070 ; Lo # [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1075..1081 ; Lo # [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+108E ; Lo # MYANMAR LETTER RUMAI PALAUNG FA
+10D0..10FA ; Lo # [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+1100..1159 ; Lo # [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115F..11A2 ; Lo # [68] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA
+11A8..11F9 ; Lo # [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+1200..1248 ; Lo # [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; Lo # [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; Lo # [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; Lo # ETHIOPIC SYLLABLE QHWA
+125A..125D ; Lo # [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; Lo # [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; Lo # [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; Lo # [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; Lo # [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; Lo # [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; Lo # ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; Lo # [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; Lo # [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; Lo # [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; Lo # [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; Lo # [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+1380..138F ; Lo # [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+13A0..13F4 ; Lo # [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+1401..166C ; Lo # [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166F..1676 ; Lo # [8] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+1681..169A ; Lo # [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+16A0..16EA ; Lo # [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+1700..170C ; Lo # [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711 ; Lo # [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1720..1731 ; Lo # [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1740..1751 ; Lo # [18] BUHID LETTER A..BUHID LETTER HA
+1760..176C ; Lo # [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; Lo # [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1780..17B3 ; Lo # [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17DC ; Lo # KHMER SIGN AVAKRAHASANYA
+1820..1842 ; Lo # [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1844..1877 ; Lo # [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8 ; Lo # [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18AA ; Lo # MONGOLIAN LETTER MANCHU ALI GALI LHA
+1900..191C ; Lo # [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1950..196D ; Lo # [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; Lo # [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19A9 ; Lo # [42] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
+19C1..19C7 ; Lo # [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+1A00..1A16 ; Lo # [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1B05..1B33 ; Lo # [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B45..1B4B ; Lo # [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B83..1BA0 ; Lo # [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BAE..1BAF ; Lo # [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1C00..1C23 ; Lo # [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C4D..1C4F ; Lo # [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C5A..1C77 ; Lo # [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+2135..2138 ; Lo # [4] ALEF SYMBOL..DALET SYMBOL
+2D30..2D65 ; Lo # [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D80..2D96 ; Lo # [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; Lo # [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; Lo # [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; Lo # [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; Lo # [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; Lo # [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; Lo # [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; Lo # [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; Lo # [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+3006 ; Lo # IDEOGRAPHIC CLOSING MARK
+303C ; Lo # MASU MARK
+3041..3096 ; Lo # [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+309F ; Lo # HIRAGANA DIGRAPH YORI
+30A1..30FA ; Lo # [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FF ; Lo # KATAKANA DIGRAPH KOTO
+3105..312D ; Lo # [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+3131..318E ; Lo # [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+31A0..31B7 ; Lo # [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+31F0..31FF ; Lo # [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3400..4DB5 ; Lo # [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4E00..9FC3 ; Lo # [20932] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FC3
+A000..A014 ; Lo # [21] YI SYLLABLE IT..YI SYLLABLE E
+A016..A48C ; Lo # [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A500..A60B ; Lo # [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A610..A61F ; Lo # [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A62A..A62B ; Lo # [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A66E ; Lo # CYRILLIC LETTER MULTIOCULAR O
+A7FB..A801 ; Lo # [7] LATIN EPIGRAPHIC LETTER REVERSED F..SYLOTI NAGRI LETTER I
+A803..A805 ; Lo # [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A807..A80A ; Lo # [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80C..A822 ; Lo # [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A840..A873 ; Lo # [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A882..A8B3 ; Lo # [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A90A..A925 ; Lo # [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A930..A946 ; Lo # [23] REJANG LETTER KA..REJANG LETTER A
+AA00..AA28 ; Lo # [41] CHAM LETTER A..CHAM LETTER HA
+AA40..AA42 ; Lo # [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA44..AA4B ; Lo # [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AC00..D7A3 ; Lo # [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+F900..FA2D ; Lo # [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; Lo # [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; Lo # [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB1D ; Lo # HEBREW LETTER YOD WITH HIRIQ
+FB1F..FB28 ; Lo # [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB2A..FB36 ; Lo # [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Lo # [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Lo # HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Lo # [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Lo # [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FBB1 ; Lo # [108] HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; Lo # [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; Lo # [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; Lo # [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; Lo # [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FE70..FE74 ; Lo # [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; Lo # [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FF66..FF6F ; Lo # [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF71..FF9D ; Lo # [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FFA0..FFBE ; Lo # [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; Lo # [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; Lo # [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; Lo # [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+10000..1000B ; Lo # [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; Lo # [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; Lo # [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; Lo # [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; Lo # [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; Lo # [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; Lo # [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10280..1029C ; Lo # [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0 ; Lo # [49] CARIAN LETTER A..CARIAN LETTER UUU3
+10300..1031E ; Lo # [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10330..10340 ; Lo # [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10342..10349 ; Lo # [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+10380..1039D ; Lo # [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+103A0..103C3 ; Lo # [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; Lo # [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+10450..1049D ; Lo # [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
+10800..10805 ; Lo # [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; Lo # CYPRIOT SYLLABLE JO
+1080A..10835 ; Lo # [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; Lo # [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; Lo # CYPRIOT SYLLABLE ZA
+1083F ; Lo # CYPRIOT SYLLABLE ZO
+10900..10915 ; Lo # [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10920..10939 ; Lo # [26] LYDIAN LETTER A..LYDIAN LETTER C
+10A00 ; Lo # KHAROSHTHI LETTER A
+10A10..10A13 ; Lo # [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; Lo # [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33 ; Lo # [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+12000..1236E ; Lo # [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+20000..2A6D6 ; Lo # [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2F800..2FA1D ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 90068
+
+# ================================================
+
+# General_Category=Nonspacing_Mark
+
+0300..036F ; Mn # [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0483..0487 ; Mn # [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0591..05BD ; Mn # [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BF ; Mn # HEBREW POINT RAFE
+05C1..05C2 ; Mn # [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C4..05C5 ; Mn # [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C7 ; Mn # HEBREW POINT QAMATS QATAN
+0610..061A ; Mn # [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+064B..065E ; Mn # [20] ARABIC FATHATAN..ARABIC FATHA WITH TWO DOTS
+0670 ; Mn # ARABIC LETTER SUPERSCRIPT ALEF
+06D6..06DC ; Mn # [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DF..06E4 ; Mn # [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E7..06E8 ; Mn # [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06EA..06ED ; Mn # [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+0711 ; Mn # SYRIAC LETTER SUPERSCRIPT ALAPH
+0730..074A ; Mn # [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+07A6..07B0 ; Mn # [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; Mn # [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+0901..0902 ; Mn # [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+093C ; Mn # DEVANAGARI SIGN NUKTA
+0941..0948 ; Mn # [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+094D ; Mn # DEVANAGARI SIGN VIRAMA
+0951..0954 ; Mn # [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
+0962..0963 ; Mn # [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0981 ; Mn # BENGALI SIGN CANDRABINDU
+09BC ; Mn # BENGALI SIGN NUKTA
+09C1..09C4 ; Mn # [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09CD ; Mn # BENGALI SIGN VIRAMA
+09E2..09E3 ; Mn # [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+0A01..0A02 ; Mn # [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A3C ; Mn # GURMUKHI SIGN NUKTA
+0A41..0A42 ; Mn # [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; Mn # [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; Mn # [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; Mn # GURMUKHI SIGN UDAAT
+0A70..0A71 ; Mn # [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A75 ; Mn # GURMUKHI SIGN YAKASH
+0A81..0A82 ; Mn # [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0ABC ; Mn # GUJARATI SIGN NUKTA
+0AC1..0AC5 ; Mn # [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; Mn # [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0ACD ; Mn # GUJARATI SIGN VIRAMA
+0AE2..0AE3 ; Mn # [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0B01 ; Mn # ORIYA SIGN CANDRABINDU
+0B3C ; Mn # ORIYA SIGN NUKTA
+0B3F ; Mn # ORIYA VOWEL SIGN I
+0B41..0B44 ; Mn # [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B4D ; Mn # ORIYA SIGN VIRAMA
+0B56 ; Mn # ORIYA AI LENGTH MARK
+0B62..0B63 ; Mn # [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B82 ; Mn # TAMIL SIGN ANUSVARA
+0BC0 ; Mn # TAMIL VOWEL SIGN II
+0BCD ; Mn # TAMIL SIGN VIRAMA
+0C3E..0C40 ; Mn # [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C46..0C48 ; Mn # [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; Mn # [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; Mn # [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C62..0C63 ; Mn # [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0CBC ; Mn # KANNADA SIGN NUKTA
+0CBF ; Mn # KANNADA VOWEL SIGN I
+0CC6 ; Mn # KANNADA VOWEL SIGN E
+0CCC..0CCD ; Mn # [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CE2..0CE3 ; Mn # [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D41..0D44 ; Mn # [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D4D ; Mn # MALAYALAM SIGN VIRAMA
+0D62..0D63 ; Mn # [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0DCA ; Mn # SINHALA SIGN AL-LAKUNA
+0DD2..0DD4 ; Mn # [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; Mn # SINHALA VOWEL SIGN DIGA PAA-PILLA
+0E31 ; Mn # THAI CHARACTER MAI HAN-AKAT
+0E34..0E3A ; Mn # [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E47..0E4E ; Mn # [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0EB1 ; Mn # LAO VOWEL SIGN MAI KAN
+0EB4..0EB9 ; Mn # [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC ; Mn # [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EC8..0ECD ; Mn # [6] LAO TONE MAI EK..LAO NIGGAHITA
+0F18..0F19 ; Mn # [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; Mn # TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; Mn # TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F39 ; Mn # TIBETAN MARK TSA -PHRU
+0F71..0F7E ; Mn # [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F80..0F84 ; Mn # [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F86..0F87 ; Mn # [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F90..0F97 ; Mn # [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; Mn # [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FC6 ; Mn # TIBETAN SYMBOL PADMA GDAN
+102D..1030 ; Mn # [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1032..1037 ; Mn # [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1039..103A ; Mn # [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103D..103E ; Mn # [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+1058..1059 ; Mn # [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105E..1060 ; Mn # [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1071..1074 ; Mn # [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1082 ; Mn # MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1085..1086 ; Mn # [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+108D ; Mn # MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+135F ; Mn # ETHIOPIC COMBINING GEMINATION MARK
+1712..1714 ; Mn # [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1732..1734 ; Mn # [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1752..1753 ; Mn # [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1772..1773 ; Mn # [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+17B7..17BD ; Mn # [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17C6 ; Mn # KHMER SIGN NIKAHIT
+17C9..17D3 ; Mn # [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17DD ; Mn # KHMER SIGN ATTHACAN
+180B..180D ; Mn # [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+18A9 ; Mn # MONGOLIAN LETTER ALI GALI DAGALGA
+1920..1922 ; Mn # [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1927..1928 ; Mn # [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1932 ; Mn # LIMBU SMALL LETTER ANUSVARA
+1939..193B ; Mn # [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1A17..1A18 ; Mn # [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1B00..1B03 ; Mn # [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B34 ; Mn # BALINESE SIGN REREKAN
+1B36..1B3A ; Mn # [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3C ; Mn # BALINESE VOWEL SIGN LA LENGA
+1B42 ; Mn # BALINESE VOWEL SIGN PEPET
+1B6B..1B73 ; Mn # [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B80..1B81 ; Mn # [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1BA2..1BA5 ; Mn # [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA8..1BA9 ; Mn # [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1C2C..1C33 ; Mn # [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C36..1C37 ; Mn # [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1DC0..1DE6 ; Mn # [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DFE..1DFF ; Mn # [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+20D0..20DC ; Mn # [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20E1 ; Mn # COMBINING LEFT RIGHT ARROW ABOVE
+20E5..20F0 ; Mn # [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2DE0..2DFF ; Mn # [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+302A..302F ; Mn # [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3099..309A ; Mn # [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+A66F ; Mn # COMBINING CYRILLIC VZMET
+A67C..A67D ; Mn # [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A802 ; Mn # SYLOTI NAGRI SIGN DVISVARA
+A806 ; Mn # SYLOTI NAGRI SIGN HASANTA
+A80B ; Mn # SYLOTI NAGRI SIGN ANUSVARA
+A825..A826 ; Mn # [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A8C4 ; Mn # SAURASHTRA SIGN VIRAMA
+A926..A92D ; Mn # [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A947..A951 ; Mn # [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+AA29..AA2E ; Mn # [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA31..AA32 ; Mn # [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA35..AA36 ; Mn # [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA43 ; Mn # CHAM CONSONANT SIGN FINAL NG
+AA4C ; Mn # CHAM CONSONANT SIGN FINAL M
+FB1E ; Mn # HEBREW POINT JUDEO-SPANISH VARIKA
+FE00..FE0F ; Mn # [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE20..FE26 ; Mn # [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+101FD ; Mn # PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10A01..10A03 ; Mn # [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; Mn # [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; Mn # [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A38..10A3A ; Mn # [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; Mn # KHAROSHTHI VIRAMA
+1D167..1D169 ; Mn # [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D17B..1D182 ; Mn # [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D185..1D18B ; Mn # [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; Mn # [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242..1D244 ; Mn # [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+E0100..E01EF ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+
+# Total code points: 1032
+
+# ================================================
+
+# General_Category=Enclosing_Mark
+
+0488..0489 ; Me # [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+06DE ; Me # ARABIC START OF RUB EL HIZB
+20DD..20E0 ; Me # [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E2..20E4 ; Me # [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+A670..A672 ; Me # [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+
+# Total code points: 13
+
+# ================================================
+
+# General_Category=Spacing_Mark
+
+0903 ; Mc # DEVANAGARI SIGN VISARGA
+093E..0940 ; Mc # [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0949..094C ; Mc # [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+0982..0983 ; Mc # [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+09BE..09C0 ; Mc # [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C7..09C8 ; Mc # [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; Mc # [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09D7 ; Mc # BENGALI AU LENGTH MARK
+0A03 ; Mc # GURMUKHI SIGN VISARGA
+0A3E..0A40 ; Mc # [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A83 ; Mc # GUJARATI SIGN VISARGA
+0ABE..0AC0 ; Mc # [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC9 ; Mc # GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; Mc # [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0B02..0B03 ; Mc # [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B3E ; Mc # ORIYA VOWEL SIGN AA
+0B40 ; Mc # ORIYA VOWEL SIGN II
+0B47..0B48 ; Mc # [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Mc # [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B57 ; Mc # ORIYA AU LENGTH MARK
+0BBE..0BBF ; Mc # [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC1..0BC2 ; Mc # [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; Mc # [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; Mc # [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BD7 ; Mc # TAMIL AU LENGTH MARK
+0C01..0C03 ; Mc # [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C41..0C44 ; Mc # [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C82..0C83 ; Mc # [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0CBE ; Mc # KANNADA VOWEL SIGN AA
+0CC0..0CC4 ; Mc # [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC7..0CC8 ; Mc # [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Mc # [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CD5..0CD6 ; Mc # [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0D02..0D03 ; Mc # [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D3E..0D40 ; Mc # [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D46..0D48 ; Mc # [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; Mc # [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D57 ; Mc # MALAYALAM AU LENGTH MARK
+0D82..0D83 ; Mc # [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0DCF..0DD1 ; Mc # [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD8..0DDF ; Mc # [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DF2..0DF3 ; Mc # [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0F3E..0F3F ; Mc # [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F7F ; Mc # TIBETAN SIGN RNAM BCAD
+102B..102C ; Mc # [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+1031 ; Mc # MYANMAR VOWEL SIGN E
+1038 ; Mc # MYANMAR SIGN VISARGA
+103B..103C ; Mc # [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+1056..1057 ; Mc # [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1062..1064 ; Mc # [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1067..106D ; Mc # [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+1083..1084 ; Mc # [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1087..108C ; Mc # [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108F ; Mc # MYANMAR SIGN RUMAI PALAUNG TONE-5
+17B6 ; Mc # KHMER VOWEL SIGN AA
+17BE..17C5 ; Mc # [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C7..17C8 ; Mc # [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+1923..1926 ; Mc # [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1929..192B ; Mc # [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; Mc # [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1933..1938 ; Mc # [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+19B0..19C0 ; Mc # [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C8..19C9 ; Mc # [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+1A19..1A1B ; Mc # [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
+1B04 ; Mc # BALINESE SIGN BISAH
+1B35 ; Mc # BALINESE VOWEL SIGN TEDUNG
+1B3B ; Mc # BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D..1B41 ; Mc # [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43..1B44 ; Mc # [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B82 ; Mc # SUNDANESE SIGN PANGWISAD
+1BA1 ; Mc # SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA6..1BA7 ; Mc # [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BAA ; Mc # SUNDANESE SIGN PAMAAEH
+1C24..1C2B ; Mc # [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C34..1C35 ; Mc # [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+A823..A824 ; Mc # [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A827 ; Mc # SYLOTI NAGRI VOWEL SIGN OO
+A880..A881 ; Mc # [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A8B4..A8C3 ; Mc # [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A952..A953 ; Mc # [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+AA2F..AA30 ; Mc # [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA33..AA34 ; Mc # [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA4D ; Mc # CHAM CONSONANT SIGN FINAL H
+1D165..1D166 ; Mc # [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D16D..1D172 ; Mc # [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+
+# Total code points: 236
+
+# ================================================
+
+# General_Category=Decimal_Number
+
+0030..0039 ; Nd # [10] DIGIT ZERO..DIGIT NINE
+0660..0669 ; Nd # [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+06F0..06F9 ; Nd # [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+07C0..07C9 ; Nd # [10] NKO DIGIT ZERO..NKO DIGIT NINE
+0966..096F ; Nd # [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+09E6..09EF ; Nd # [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+0A66..0A6F ; Nd # [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0AE6..0AEF ; Nd # [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0B66..0B6F ; Nd # [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0BE6..0BEF ; Nd # [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0C66..0C6F ; Nd # [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0CE6..0CEF ; Nd # [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0D66..0D6F ; Nd # [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0E50..0E59 ; Nd # [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0ED0..0ED9 ; Nd # [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0F20..0F29 ; Nd # [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+1040..1049 ; Nd # [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+1090..1099 ; Nd # [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+17E0..17E9 ; Nd # [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+1810..1819 ; Nd # [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1946..194F ; Nd # [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+19D0..19D9 ; Nd # [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+1B50..1B59 ; Nd # [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1BB0..1BB9 ; Nd # [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1C40..1C49 ; Nd # [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C50..1C59 ; Nd # [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+A620..A629 ; Nd # [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A8D0..A8D9 ; Nd # [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A900..A909 ; Nd # [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+AA50..AA59 ; Nd # [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+FF10..FF19 ; Nd # [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+104A0..104A9 ; Nd # [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+1D7CE..1D7FF ; Nd # [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+
+# Total code points: 370
+
+# ================================================
+
+# General_Category=Letter_Number
+
+16EE..16F0 ; Nl # [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+2160..2182 ; Nl # [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2185..2188 ; Nl # [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+3007 ; Nl # IDEOGRAPHIC NUMBER ZERO
+3021..3029 ; Nl # [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+3038..303A ; Nl # [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+10140..10174 ; Nl # [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10341 ; Nl # GOTHIC LETTER NINETY
+1034A ; Nl # GOTHIC LETTER NINE HUNDRED
+103D1..103D5 ; Nl # [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+12400..12462 ; Nl # [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+
+# Total code points: 214
+
+# ================================================
+
+# General_Category=Other_Number
+
+00B2..00B3 ; No # [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B9 ; No # SUPERSCRIPT ONE
+00BC..00BE ; No # [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+09F4..09F9 ; No # [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+0BF0..0BF2 ; No # [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0C78..0C7E ; No # [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0D70..0D75 ; No # [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0F2A..0F33 ; No # [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+1369..137C ; No # [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+17F0..17F9 ; No # [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+2070 ; No # SUPERSCRIPT ZERO
+2074..2079 ; No # [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+2080..2089 ; No # [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+2153..215F ; No # [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2460..249B ; No # [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+24EA..24FF ; No # [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
+2776..2793 ; No # [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2CFD ; No # COPTIC FRACTION ONE HALF
+3192..3195 ; No # [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3220..3229 ; No # [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+3251..325F ; No # [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3280..3289 ; No # [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+32B1..32BF ; No # [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+10107..10133 ; No # [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10175..10178 ; No # [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+1018A ; No # GREEK ZERO SIGN
+10320..10323 ; No # [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10916..10919 ; No # [4] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+10A40..10A47 ; No # [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+1D360..1D371 ; No # [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+
+# Total code points: 349
+
+# ================================================
+
+# General_Category=Space_Separator
+
+0020 ; Zs # SPACE
+00A0 ; Zs # NO-BREAK SPACE
+1680 ; Zs # OGHAM SPACE MARK
+180E ; Zs # MONGOLIAN VOWEL SEPARATOR
+2000..200A ; Zs # [11] EN QUAD..HAIR SPACE
+202F ; Zs # NARROW NO-BREAK SPACE
+205F ; Zs # MEDIUM MATHEMATICAL SPACE
+3000 ; Zs # IDEOGRAPHIC SPACE
+
+# Total code points: 18
+
+# ================================================
+
+# General_Category=Line_Separator
+
+2028 ; Zl # LINE SEPARATOR
+
+# Total code points: 1
+
+# ================================================
+
+# General_Category=Paragraph_Separator
+
+2029 ; Zp # PARAGRAPH SEPARATOR
+
+# Total code points: 1
+
+# ================================================
+
+# General_Category=Control
+
+0000..001F ; Cc # [32] <control-0000>..<control-001F>
+007F..009F ; Cc # [33] <control-007F>..<control-009F>
+
+# Total code points: 65
+
+# ================================================
+
+# General_Category=Format
+
+00AD ; Cf # SOFT HYPHEN
+0600..0603 ; Cf # [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+06DD ; Cf # ARABIC END OF AYAH
+070F ; Cf # SYRIAC ABBREVIATION MARK
+17B4..17B5 ; Cf # [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+200B..200F ; Cf # [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+202A..202E ; Cf # [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+2060..2064 ; Cf # [5] WORD JOINER..INVISIBLE PLUS
+206A..206F ; Cf # [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+FEFF ; Cf # ZERO WIDTH NO-BREAK SPACE
+FFF9..FFFB ; Cf # [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+1D173..1D17A ; Cf # [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+E0001 ; Cf # LANGUAGE TAG
+E0020..E007F ; Cf # [96] TAG SPACE..CANCEL TAG
+
+# Total code points: 139
+
+# ================================================
+
+# General_Category=Private_Use
+
+E000..F8FF ; Co # [6400] <private-use-E000>..<private-use-F8FF>
+F0000..FFFFD ; Co # [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD; Co # [65534] <private-use-100000>..<private-use-10FFFD>
+
+# Total code points: 137468
+
+# ================================================
+
+# General_Category=Surrogate
+
+D800..DFFF ; Cs # [2048] <surrogate-D800>..<surrogate-DFFF>
+
+# Total code points: 2048
+
+# ================================================
+
+# General_Category=Dash_Punctuation
+
+002D ; Pd # HYPHEN-MINUS
+058A ; Pd # ARMENIAN HYPHEN
+05BE ; Pd # HEBREW PUNCTUATION MAQAF
+1806 ; Pd # MONGOLIAN TODO SOFT HYPHEN
+2010..2015 ; Pd # [6] HYPHEN..HORIZONTAL BAR
+2E17 ; Pd # DOUBLE OBLIQUE HYPHEN
+2E1A ; Pd # HYPHEN WITH DIAERESIS
+301C ; Pd # WAVE DASH
+3030 ; Pd # WAVY DASH
+30A0 ; Pd # KATAKANA-HIRAGANA DOUBLE HYPHEN
+FE31..FE32 ; Pd # [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE58 ; Pd # SMALL EM DASH
+FE63 ; Pd # SMALL HYPHEN-MINUS
+FF0D ; Pd # FULLWIDTH HYPHEN-MINUS
+
+# Total code points: 20
+
+# ================================================
+
+# General_Category=Open_Punctuation
+
+0028 ; Ps # LEFT PARENTHESIS
+005B ; Ps # LEFT SQUARE BRACKET
+007B ; Ps # LEFT CURLY BRACKET
+0F3A ; Ps # TIBETAN MARK GUG RTAGS GYON
+0F3C ; Ps # TIBETAN MARK ANG KHANG GYON
+169B ; Ps # OGHAM FEATHER MARK
+201A ; Ps # SINGLE LOW-9 QUOTATION MARK
+201E ; Ps # DOUBLE LOW-9 QUOTATION MARK
+2045 ; Ps # LEFT SQUARE BRACKET WITH QUILL
+207D ; Ps # SUPERSCRIPT LEFT PARENTHESIS
+208D ; Ps # SUBSCRIPT LEFT PARENTHESIS
+2329 ; Ps # LEFT-POINTING ANGLE BRACKET
+2768 ; Ps # MEDIUM LEFT PARENTHESIS ORNAMENT
+276A ; Ps # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276C ; Ps # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276E ; Ps # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; Ps # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; Ps # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; Ps # MEDIUM LEFT CURLY BRACKET ORNAMENT
+27C5 ; Ps # LEFT S-SHAPED BAG DELIMITER
+27E6 ; Ps # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E8 ; Ps # MATHEMATICAL LEFT ANGLE BRACKET
+27EA ; Ps # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EC ; Ps # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27EE ; Ps # MATHEMATICAL LEFT FLATTENED PARENTHESIS
+2983 ; Ps # LEFT WHITE CURLY BRACKET
+2985 ; Ps # LEFT WHITE PARENTHESIS
+2987 ; Ps # Z NOTATION LEFT IMAGE BRACKET
+2989 ; Ps # Z NOTATION LEFT BINDING BRACKET
+298B ; Ps # LEFT SQUARE BRACKET WITH UNDERBAR
+298D ; Ps # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298F ; Ps # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2991 ; Ps # LEFT ANGLE BRACKET WITH DOT
+2993 ; Ps # LEFT ARC LESS-THAN BRACKET
+2995 ; Ps # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2997 ; Ps # LEFT BLACK TORTOISE SHELL BRACKET
+29D8 ; Ps # LEFT WIGGLY FENCE
+29DA ; Ps # LEFT DOUBLE WIGGLY FENCE
+29FC ; Ps # LEFT-POINTING CURVED ANGLE BRACKET
+2E22 ; Ps # TOP LEFT HALF BRACKET
+2E24 ; Ps # BOTTOM LEFT HALF BRACKET
+2E26 ; Ps # LEFT SIDEWAYS U BRACKET
+2E28 ; Ps # LEFT DOUBLE PARENTHESIS
+3008 ; Ps # LEFT ANGLE BRACKET
+300A ; Ps # LEFT DOUBLE ANGLE BRACKET
+300C ; Ps # LEFT CORNER BRACKET
+300E ; Ps # LEFT WHITE CORNER BRACKET
+3010 ; Ps # LEFT BLACK LENTICULAR BRACKET
+3014 ; Ps # LEFT TORTOISE SHELL BRACKET
+3016 ; Ps # LEFT WHITE LENTICULAR BRACKET
+3018 ; Ps # LEFT WHITE TORTOISE SHELL BRACKET
+301A ; Ps # LEFT WHITE SQUARE BRACKET
+301D ; Ps # REVERSED DOUBLE PRIME QUOTATION MARK
+FD3E ; Ps # ORNATE LEFT PARENTHESIS
+FE17 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE35 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE37 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE39 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3B ; Ps # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3D ; Ps # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3F ; Ps # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE41 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE43 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE47 ; Ps # PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE59 ; Ps # SMALL LEFT PARENTHESIS
+FE5B ; Ps # SMALL LEFT CURLY BRACKET
+FE5D ; Ps # SMALL LEFT TORTOISE SHELL BRACKET
+FF08 ; Ps # FULLWIDTH LEFT PARENTHESIS
+FF3B ; Ps # FULLWIDTH LEFT SQUARE BRACKET
+FF5B ; Ps # FULLWIDTH LEFT CURLY BRACKET
+FF5F ; Ps # FULLWIDTH LEFT WHITE PARENTHESIS
+FF62 ; Ps # HALFWIDTH LEFT CORNER BRACKET
+
+# Total code points: 72
+
+# ================================================
+
+# General_Category=Close_Punctuation
+
+0029 ; Pe # RIGHT PARENTHESIS
+005D ; Pe # RIGHT SQUARE BRACKET
+007D ; Pe # RIGHT CURLY BRACKET
+0F3B ; Pe # TIBETAN MARK GUG RTAGS GYAS
+0F3D ; Pe # TIBETAN MARK ANG KHANG GYAS
+169C ; Pe # OGHAM REVERSED FEATHER MARK
+2046 ; Pe # RIGHT SQUARE BRACKET WITH QUILL
+207E ; Pe # SUPERSCRIPT RIGHT PARENTHESIS
+208E ; Pe # SUBSCRIPT RIGHT PARENTHESIS
+232A ; Pe # RIGHT-POINTING ANGLE BRACKET
+2769 ; Pe # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276B ; Pe # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276D ; Pe # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276F ; Pe # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2771 ; Pe # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2773 ; Pe # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2775 ; Pe # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+27C6 ; Pe # RIGHT S-SHAPED BAG DELIMITER
+27E7 ; Pe # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E9 ; Pe # MATHEMATICAL RIGHT ANGLE BRACKET
+27EB ; Pe # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27ED ; Pe # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EF ; Pe # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+2984 ; Pe # RIGHT WHITE CURLY BRACKET
+2986 ; Pe # RIGHT WHITE PARENTHESIS
+2988 ; Pe # Z NOTATION RIGHT IMAGE BRACKET
+298A ; Pe # Z NOTATION RIGHT BINDING BRACKET
+298C ; Pe # RIGHT SQUARE BRACKET WITH UNDERBAR
+298E ; Pe # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; Pe # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2992 ; Pe # RIGHT ANGLE BRACKET WITH DOT
+2994 ; Pe # RIGHT ARC GREATER-THAN BRACKET
+2996 ; Pe # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2998 ; Pe # RIGHT BLACK TORTOISE SHELL BRACKET
+29D9 ; Pe # RIGHT WIGGLY FENCE
+29DB ; Pe # RIGHT DOUBLE WIGGLY FENCE
+29FD ; Pe # RIGHT-POINTING CURVED ANGLE BRACKET
+2E23 ; Pe # TOP RIGHT HALF BRACKET
+2E25 ; Pe # BOTTOM RIGHT HALF BRACKET
+2E27 ; Pe # RIGHT SIDEWAYS U BRACKET
+2E29 ; Pe # RIGHT DOUBLE PARENTHESIS
+3009 ; Pe # RIGHT ANGLE BRACKET
+300B ; Pe # RIGHT DOUBLE ANGLE BRACKET
+300D ; Pe # RIGHT CORNER BRACKET
+300F ; Pe # RIGHT WHITE CORNER BRACKET
+3011 ; Pe # RIGHT BLACK LENTICULAR BRACKET
+3015 ; Pe # RIGHT TORTOISE SHELL BRACKET
+3017 ; Pe # RIGHT WHITE LENTICULAR BRACKET
+3019 ; Pe # RIGHT WHITE TORTOISE SHELL BRACKET
+301B ; Pe # RIGHT WHITE SQUARE BRACKET
+301E..301F ; Pe # [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+FD3F ; Pe # ORNATE RIGHT PARENTHESIS
+FE18 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE36 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE38 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE3A ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3C ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3E ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE40 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE42 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE44 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE48 ; Pe # PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE5A ; Pe # SMALL RIGHT PARENTHESIS
+FE5C ; Pe # SMALL RIGHT CURLY BRACKET
+FE5E ; Pe # SMALL RIGHT TORTOISE SHELL BRACKET
+FF09 ; Pe # FULLWIDTH RIGHT PARENTHESIS
+FF3D ; Pe # FULLWIDTH RIGHT SQUARE BRACKET
+FF5D ; Pe # FULLWIDTH RIGHT CURLY BRACKET
+FF60 ; Pe # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF63 ; Pe # HALFWIDTH RIGHT CORNER BRACKET
+
+# Total code points: 71
+
+# ================================================
+
+# General_Category=Connector_Punctuation
+
+005F ; Pc # LOW LINE
+203F..2040 ; Pc # [2] UNDERTIE..CHARACTER TIE
+2054 ; Pc # INVERTED UNDERTIE
+FE33..FE34 ; Pc # [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE4D..FE4F ; Pc # [3] DASHED LOW LINE..WAVY LOW LINE
+FF3F ; Pc # FULLWIDTH LOW LINE
+
+# Total code points: 10
+
+# ================================================
+
+# General_Category=Other_Punctuation
+
+0021..0023 ; Po # [3] EXCLAMATION MARK..NUMBER SIGN
+0025..0027 ; Po # [3] PERCENT SIGN..APOSTROPHE
+002A ; Po # ASTERISK
+002C ; Po # COMMA
+002E..002F ; Po # [2] FULL STOP..SOLIDUS
+003A..003B ; Po # [2] COLON..SEMICOLON
+003F..0040 ; Po # [2] QUESTION MARK..COMMERCIAL AT
+005C ; Po # REVERSE SOLIDUS
+00A1 ; Po # INVERTED EXCLAMATION MARK
+00B7 ; Po # MIDDLE DOT
+00BF ; Po # INVERTED QUESTION MARK
+037E ; Po # GREEK QUESTION MARK
+0387 ; Po # GREEK ANO TELEIA
+055A..055F ; Po # [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0589 ; Po # ARMENIAN FULL STOP
+05C0 ; Po # HEBREW PUNCTUATION PASEQ
+05C3 ; Po # HEBREW PUNCTUATION SOF PASUQ
+05C6 ; Po # HEBREW PUNCTUATION NUN HAFUKHA
+05F3..05F4 ; Po # [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0609..060A ; Po # [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060C..060D ; Po # [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+061B ; Po # ARABIC SEMICOLON
+061E..061F ; Po # [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+066A..066D ; Po # [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+06D4 ; Po # ARABIC FULL STOP
+0700..070D ; Po # [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+07F7..07F9 ; Po # [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+0964..0965 ; Po # [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0970 ; Po # DEVANAGARI ABBREVIATION SIGN
+0DF4 ; Po # SINHALA PUNCTUATION KUNDDALIYA
+0E4F ; Po # THAI CHARACTER FONGMAN
+0E5A..0E5B ; Po # [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0F04..0F12 ; Po # [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+0F85 ; Po # TIBETAN MARK PALUTA
+0FD0..0FD4 ; Po # [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+104A..104F ; Po # [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+10FB ; Po # GEORGIAN PARAGRAPH SEPARATOR
+1361..1368 ; Po # [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
+166D..166E ; Po # [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+16EB..16ED ; Po # [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+1735..1736 ; Po # [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+17D4..17D6 ; Po # [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D8..17DA ; Po # [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+1800..1805 ; Po # [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+1807..180A ; Po # [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+1944..1945 ; Po # [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+19DE..19DF ; Po # [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+1A1E..1A1F ; Po # [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1B5A..1B60 ; Po # [7] BALINESE PANTI..BALINESE PAMENENG
+1C3B..1C3F ; Po # [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C7E..1C7F ; Po # [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+2016..2017 ; Po # [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
+2020..2027 ; Po # [8] DAGGER..HYPHENATION POINT
+2030..2038 ; Po # [9] PER MILLE SIGN..CARET
+203B..203E ; Po # [4] REFERENCE MARK..OVERLINE
+2041..2043 ; Po # [3] CARET INSERTION POINT..HYPHEN BULLET
+2047..2051 ; Po # [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+2053 ; Po # SWUNG DASH
+2055..205E ; Po # [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+2CF9..2CFC ; Po # [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFE..2CFF ; Po # [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2E00..2E01 ; Po # [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E06..2E08 ; Po # [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E0B ; Po # RAISED SQUARE
+2E0E..2E16 ; Po # [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+2E18..2E19 ; Po # [2] INVERTED INTERROBANG..PALM BRANCH
+2E1B ; Po # TILDE WITH RING ABOVE
+2E1E..2E1F ; Po # [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E2A..2E2E ; Po # [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+2E30 ; Po # RING POINT
+3001..3003 ; Po # [3] IDEOGRAPHIC COMMA..DITTO MARK
+303D ; Po # PART ALTERNATION MARK
+30FB ; Po # KATAKANA MIDDLE DOT
+A60D..A60F ; Po # [3] VAI COMMA..VAI QUESTION MARK
+A673 ; Po # SLAVONIC ASTERISK
+A67E ; Po # CYRILLIC KAVYKA
+A874..A877 ; Po # [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A8CE..A8CF ; Po # [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A92E..A92F ; Po # [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A95F ; Po # REJANG SECTION MARK
+AA5C..AA5F ; Po # [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+FE10..FE16 ; Po # [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE19 ; Po # PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; Po # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE45..FE46 ; Po # [2] SESAME DOT..WHITE SESAME DOT
+FE49..FE4C ; Po # [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE50..FE52 ; Po # [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; Po # [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE5F..FE61 ; Po # [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE68 ; Po # SMALL REVERSE SOLIDUS
+FE6A..FE6B ; Po # [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FF01..FF03 ; Po # [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF05..FF07 ; Po # [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF0A ; Po # FULLWIDTH ASTERISK
+FF0C ; Po # FULLWIDTH COMMA
+FF0E..FF0F ; Po # [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF1A..FF1B ; Po # [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1F..FF20 ; Po # [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF3C ; Po # FULLWIDTH REVERSE SOLIDUS
+FF61 ; Po # HALFWIDTH IDEOGRAPHIC FULL STOP
+FF64..FF65 ; Po # [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+10100..10101 ; Po # [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
+1039F ; Po # UGARITIC WORD DIVIDER
+103D0 ; Po # OLD PERSIAN WORD DIVIDER
+1091F ; Po # PHOENICIAN WORD SEPARATOR
+1093F ; Po # LYDIAN TRIANGULAR MARK
+10A50..10A58 ; Po # [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+12470..12473 ; Po # [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+
+# Total code points: 315
+
+# ================================================
+
+# General_Category=Math_Symbol
+
+002B ; Sm # PLUS SIGN
+003C..003E ; Sm # [3] LESS-THAN SIGN..GREATER-THAN SIGN
+007C ; Sm # VERTICAL LINE
+007E ; Sm # TILDE
+00AC ; Sm # NOT SIGN
+00B1 ; Sm # PLUS-MINUS SIGN
+00D7 ; Sm # MULTIPLICATION SIGN
+00F7 ; Sm # DIVISION SIGN
+03F6 ; Sm # GREEK REVERSED LUNATE EPSILON SYMBOL
+0606..0608 ; Sm # [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+2044 ; Sm # FRACTION SLASH
+2052 ; Sm # COMMERCIAL MINUS SIGN
+207A..207C ; Sm # [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+208A..208C ; Sm # [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+2140..2144 ; Sm # [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+214B ; Sm # TURNED AMPERSAND
+2190..2194 ; Sm # [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+219A..219B ; Sm # [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+21A0 ; Sm # RIGHTWARDS TWO HEADED ARROW
+21A3 ; Sm # RIGHTWARDS ARROW WITH TAIL
+21A6 ; Sm # RIGHTWARDS ARROW FROM BAR
+21AE ; Sm # LEFT RIGHT ARROW WITH STROKE
+21CE..21CF ; Sm # [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D2 ; Sm # RIGHTWARDS DOUBLE ARROW
+21D4 ; Sm # LEFT RIGHT DOUBLE ARROW
+21F4..22FF ; Sm # [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
+2308..230B ; Sm # [4] LEFT CEILING..RIGHT FLOOR
+2320..2321 ; Sm # [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+237C ; Sm # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+239B..23B3 ; Sm # [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23DC..23E1 ; Sm # [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+25B7 ; Sm # WHITE RIGHT-POINTING TRIANGLE
+25C1 ; Sm # WHITE LEFT-POINTING TRIANGLE
+25F8..25FF ; Sm # [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+266F ; Sm # MUSIC SHARP SIGN
+27C0..27C4 ; Sm # [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C7..27CA ; Sm # [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CC ; Sm # LONG DIVISION
+27D0..27E5 ; Sm # [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
+27F0..27FF ; Sm # [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2900..2982 ; Sm # [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
+2999..29D7 ; Sm # [63] DOTTED FENCE..BLACK HOURGLASS
+29DC..29FB ; Sm # [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FE..2AFF ; Sm # [258] TINY..N-ARY WHITE VERTICAL BAR
+2B30..2B44 ; Sm # [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B47..2B4C ; Sm # [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+FB29 ; Sm # HEBREW LETTER ALTERNATIVE PLUS SIGN
+FE62 ; Sm # SMALL PLUS SIGN
+FE64..FE66 ; Sm # [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FF0B ; Sm # FULLWIDTH PLUS SIGN
+FF1C..FF1E ; Sm # [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF5C ; Sm # FULLWIDTH VERTICAL LINE
+FF5E ; Sm # FULLWIDTH TILDE
+FFE2 ; Sm # FULLWIDTH NOT SIGN
+FFE9..FFEC ; Sm # [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+1D6C1 ; Sm # MATHEMATICAL BOLD NABLA
+1D6DB ; Sm # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6FB ; Sm # MATHEMATICAL ITALIC NABLA
+1D715 ; Sm # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D735 ; Sm # MATHEMATICAL BOLD ITALIC NABLA
+1D74F ; Sm # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D76F ; Sm # MATHEMATICAL SANS-SERIF BOLD NABLA
+1D789 ; Sm # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D7A9 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7C3 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+
+# Total code points: 945
+
+# ================================================
+
+# General_Category=Currency_Symbol
+
+0024 ; Sc # DOLLAR SIGN
+00A2..00A5 ; Sc # [4] CENT SIGN..YEN SIGN
+060B ; Sc # AFGHANI SIGN
+09F2..09F3 ; Sc # [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+0AF1 ; Sc # GUJARATI RUPEE SIGN
+0BF9 ; Sc # TAMIL RUPEE SIGN
+0E3F ; Sc # THAI CURRENCY SYMBOL BAHT
+17DB ; Sc # KHMER CURRENCY SYMBOL RIEL
+20A0..20B5 ; Sc # [22] EURO-CURRENCY SIGN..CEDI SIGN
+FDFC ; Sc # RIAL SIGN
+FE69 ; Sc # SMALL DOLLAR SIGN
+FF04 ; Sc # FULLWIDTH DOLLAR SIGN
+FFE0..FFE1 ; Sc # [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE5..FFE6 ; Sc # [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+
+# Total code points: 41
+
+# ================================================
+
+# General_Category=Modifier_Symbol
+
+005E ; Sk # CIRCUMFLEX ACCENT
+0060 ; Sk # GRAVE ACCENT
+00A8 ; Sk # DIAERESIS
+00AF ; Sk # MACRON
+00B4 ; Sk # ACUTE ACCENT
+00B8 ; Sk # CEDILLA
+02C2..02C5 ; Sk # [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02D2..02DF ; Sk # [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
+02E5..02EB ; Sk # [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02ED ; Sk # MODIFIER LETTER UNASPIRATED
+02EF..02FF ; Sk # [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0375 ; Sk # GREEK LOWER NUMERAL SIGN
+0384..0385 ; Sk # [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+1FBD ; Sk # GREEK KORONIS
+1FBF..1FC1 ; Sk # [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FCD..1FCF ; Sk # [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FDD..1FDF ; Sk # [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FED..1FEF ; Sk # [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FFD..1FFE ; Sk # [2] GREEK OXIA..GREEK DASIA
+309B..309C ; Sk # [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+A700..A716 ; Sk # [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A720..A721 ; Sk # [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A789..A78A ; Sk # [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+FF3E ; Sk # FULLWIDTH CIRCUMFLEX ACCENT
+FF40 ; Sk # FULLWIDTH GRAVE ACCENT
+FFE3 ; Sk # FULLWIDTH MACRON
+
+# Total code points: 99
+
+# ================================================
+
+# General_Category=Other_Symbol
+
+00A6..00A7 ; So # [2] BROKEN BAR..SECTION SIGN
+00A9 ; So # COPYRIGHT SIGN
+00AE ; So # REGISTERED SIGN
+00B0 ; So # DEGREE SIGN
+00B6 ; So # PILCROW SIGN
+0482 ; So # CYRILLIC THOUSANDS SIGN
+060E..060F ; So # [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+06E9 ; So # ARABIC PLACE OF SAJDAH
+06FD..06FE ; So # [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+07F6 ; So # NKO SYMBOL OO DENNEN
+09FA ; So # BENGALI ISSHAR
+0B70 ; So # ORIYA ISSHAR
+0BF3..0BF8 ; So # [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BFA ; So # TAMIL NUMBER SIGN
+0C7F ; So # TELUGU SIGN TUUMU
+0CF1..0CF2 ; So # [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0D79 ; So # MALAYALAM DATE MARK
+0F01..0F03 ; So # [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F13..0F17 ; So # [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F1A..0F1F ; So # [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F34 ; So # TIBETAN MARK BSDUS RTAGS
+0F36 ; So # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F38 ; So # TIBETAN MARK CHE MGO
+0FBE..0FC5 ; So # [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC7..0FCC ; So # [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; So # [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+109E..109F ; So # [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+1360 ; So # ETHIOPIC SECTION MARK
+1390..1399 ; So # [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+1940 ; So # LIMBU SIGN LOO
+19E0..19FF ; So # [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1B61..1B6A ; So # [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B74..1B7C ; So # [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+2100..2101 ; So # [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2103..2106 ; So # [4] DEGREE CELSIUS..CADA UNA
+2108..2109 ; So # [2] SCRUPLE..DEGREE FAHRENHEIT
+2114 ; So # L B BAR SYMBOL
+2116..2118 ; So # [3] NUMERO SIGN..SCRIPT CAPITAL P
+211E..2123 ; So # [6] PRESCRIPTION TAKE..VERSICLE
+2125 ; So # OUNCE SIGN
+2127 ; So # INVERTED OHM SIGN
+2129 ; So # TURNED GREEK SMALL LETTER IOTA
+212E ; So # ESTIMATED SYMBOL
+213A..213B ; So # [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+214A ; So # PROPERTY LINE
+214C..214D ; So # [2] PER SIGN..AKTIESELSKAB
+214F ; So # SYMBOL FOR SAMARITAN SOURCE
+2195..2199 ; So # [5] UP DOWN ARROW..SOUTH WEST ARROW
+219C..219F ; So # [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A1..21A2 ; So # [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A4..21A5 ; So # [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A7..21AD ; So # [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AF..21CD ; So # [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; So # [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D3 ; So # DOWNWARDS DOUBLE ARROW
+21D5..21F3 ; So # [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+2300..2307 ; So # [8] DIAMETER SIGN..WAVY LINE
+230C..231F ; So # [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
+2322..2328 ; So # [7] FROWN..KEYBOARD
+232B..237B ; So # [81] ERASE TO THE LEFT..NOT CHECK MARK
+237D..239A ; So # [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+23B4..23DB ; So # [40] TOP SQUARE BRACKET..FUSE
+23E2..23E7 ; So # [6] WHITE TRAPEZIUM..ELECTRICAL INTERSECTION
+2400..2426 ; So # [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A ; So # [11] OCR HOOK..OCR DOUBLE BACKSLASH
+249C..24E9 ; So # [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+2500..25B6 ; So # [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
+25B8..25C0 ; So # [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
+25C2..25F7 ; So # [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+2600..266E ; So # [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
+2670..269D ; So # [46] WEST SYRIAC CROSS..OUTLINED WHITE STAR
+26A0..26BC ; So # [29] WARNING SIGN..SESQUIQUADRATE
+26C0..26C3 ; So # [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+2701..2704 ; So # [4] UPPER BLADE SCISSORS..WHITE SCISSORS
+2706..2709 ; So # [4] TELEPHONE LOCATION SIGN..ENVELOPE
+270C..2727 ; So # [28] VICTORY HAND..WHITE FOUR POINTED STAR
+2729..274B ; So # [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D ; So # SHADOWED WHITE CIRCLE
+274F..2752 ; So # [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2756 ; So # BLACK DIAMOND MINUS WHITE X
+2758..275E ; So # [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761..2767 ; So # [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
+2794 ; So # HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798..27AF ; So # [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1..27BE ; So # [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+2800..28FF ; So # [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2B00..2B2F ; So # [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B45..2B46 ; So # [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B50..2B54 ; So # [5] WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2CE5..2CEA ; So # [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2E80..2E99 ; So # [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; So # [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; So # [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFB ; So # [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3004 ; So # JAPANESE INDUSTRIAL STANDARD SYMBOL
+3012..3013 ; So # [2] POSTAL MARK..GETA MARK
+3020 ; So # POSTAL MARK FACE
+3036..3037 ; So # [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+303E..303F ; So # [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+3190..3191 ; So # [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3196..319F ; So # [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31C0..31E3 ; So # [36] CJK STROKE T..CJK STROKE Q
+3200..321E ; So # [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+322A..3243 ; So # [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; So # PARTNERSHIP SIGN
+3260..327F ; So # [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+328A..32B0 ; So # [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32C0..32FE ; So # [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
+3300..33FF ; So # [256] SQUARE APAATO..SQUARE GAL
+4DC0..4DFF ; So # [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+A490..A4C6 ; So # [55] YI RADICAL QOT..YI RADICAL KE
+A828..A82B ; So # [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+FDFD ; So # ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FFE4 ; So # FULLWIDTH BROKEN BAR
+FFE8 ; So # HALFWIDTH FORMS LIGHT VERTICAL
+FFED..FFEE ; So # [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
+10102 ; So # AEGEAN CHECK MARK
+10137..1013F ; So # [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10179..10189 ; So # [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+10190..1019B ; So # [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101D0..101FC ; So # [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+1D000..1D0F5 ; So # [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; So # [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164 ; So # [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D16A..1D16C ; So # [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D183..1D184 ; So # [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D18C..1D1A9 ; So # [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AE..1D1DD ; So # [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D200..1D241 ; So # [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D245 ; So # GREEK MUSICAL LEIMMA
+1D300..1D356 ; So # [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1F000..1F02B ; So # [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093 ; So # [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+
+# Total code points: 3225
+
+# ================================================
+
+# General_Category=Initial_Punctuation
+
+00AB ; Pi # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+2018 ; Pi # LEFT SINGLE QUOTATION MARK
+201B..201C ; Pi # [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201F ; Pi # DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2039 ; Pi # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+2E02 ; Pi # LEFT SUBSTITUTION BRACKET
+2E04 ; Pi # LEFT DOTTED SUBSTITUTION BRACKET
+2E09 ; Pi # LEFT TRANSPOSITION BRACKET
+2E0C ; Pi # LEFT RAISED OMISSION BRACKET
+2E1C ; Pi # LEFT LOW PARAPHRASE BRACKET
+2E20 ; Pi # LEFT VERTICAL BAR WITH QUILL
+
+# Total code points: 12
+
+# ================================================
+
+# General_Category=Final_Punctuation
+
+00BB ; Pf # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+2019 ; Pf # RIGHT SINGLE QUOTATION MARK
+201D ; Pf # RIGHT DOUBLE QUOTATION MARK
+203A ; Pf # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+2E03 ; Pf # RIGHT SUBSTITUTION BRACKET
+2E05 ; Pf # RIGHT DOTTED SUBSTITUTION BRACKET
+2E0A ; Pf # RIGHT TRANSPOSITION BRACKET
+2E0D ; Pf # RIGHT RAISED OMISSION BRACKET
+2E1D ; Pf # RIGHT LOW PARAPHRASE BRACKET
+2E21 ; Pf # RIGHT VERTICAL BAR WITH QUILL
+
+# Total code points: 10
+
+# EOF
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/GraphemeBreakProperty.txt b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/GraphemeBreakProperty.txt
new file mode 100644
index 00000000000..50477a15ea1
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/GraphemeBreakProperty.txt
@@ -0,0 +1,1166 @@
+# GraphemeBreakProperty-5.1.0.txt
+# Date: 2008-03-03, 21:57:47 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2008 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see UCD.html
+
+# ================================================
+
+# Property: Grapheme_Cluster_Break
+
+# All code points not explicitly listed for Grapheme_Cluster_Break
+# have the value Other (XX).
+
+# @missing: 0000..10FFFF; Other
+
+# ================================================
+
+000D ; CR # Cc <control-000D>
+
+# Total code points: 1
+
+# ================================================
+
+000A ; LF # Cc <control-000A>
+
+# Total code points: 1
+
+# ================================================
+
+0000..0009 ; Control # Cc [10] <control-0000>..<control-0009>
+000B..000C ; Control # Cc [2] <control-000B>..<control-000C>
+000E..001F ; Control # Cc [18] <control-000E>..<control-001F>
+007F..009F ; Control # Cc [33] <control-007F>..<control-009F>
+00AD ; Control # Cf SOFT HYPHEN
+0600..0603 ; Control # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+06DD ; Control # Cf ARABIC END OF AYAH
+070F ; Control # Cf SYRIAC ABBREVIATION MARK
+17B4..17B5 ; Control # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+200B ; Control # Cf ZERO WIDTH SPACE
+200E..200F ; Control # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+2028 ; Control # Zl LINE SEPARATOR
+2029 ; Control # Zp PARAGRAPH SEPARATOR
+202A..202E ; Control # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+2060..2064 ; Control # Cf [5] WORD JOINER..INVISIBLE PLUS
+206A..206F ; Control # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+FEFF ; Control # Cf ZERO WIDTH NO-BREAK SPACE
+FFF9..FFFB ; Control # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+1D173..1D17A ; Control # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+E0001 ; Control # Cf LANGUAGE TAG
+E0020..E007F ; Control # Cf [96] TAG SPACE..CANCEL TAG
+
+# Total code points: 202
+
+# ================================================
+
+0300..036F ; Extend # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0483..0487 ; Extend # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; Extend # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+0591..05BD ; Extend # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BF ; Extend # Mn HEBREW POINT RAFE
+05C1..05C2 ; Extend # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C4..05C5 ; Extend # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C7 ; Extend # Mn HEBREW POINT QAMATS QATAN
+0610..061A ; Extend # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+064B..065E ; Extend # Mn [20] ARABIC FATHATAN..ARABIC FATHA WITH TWO DOTS
+0670 ; Extend # Mn ARABIC LETTER SUPERSCRIPT ALEF
+06D6..06DC ; Extend # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DE ; Extend # Me ARABIC START OF RUB EL HIZB
+06DF..06E4 ; Extend # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E7..06E8 ; Extend # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06EA..06ED ; Extend # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+0711 ; Extend # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0730..074A ; Extend # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+07A6..07B0 ; Extend # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; Extend # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+0901..0902 ; Extend # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+093C ; Extend # Mn DEVANAGARI SIGN NUKTA
+0941..0948 ; Extend # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+094D ; Extend # Mn DEVANAGARI SIGN VIRAMA
+0951..0954 ; Extend # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
+0962..0963 ; Extend # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0981 ; Extend # Mn BENGALI SIGN CANDRABINDU
+09BC ; Extend # Mn BENGALI SIGN NUKTA
+09BE ; Extend # Mc BENGALI VOWEL SIGN AA
+09C1..09C4 ; Extend # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09CD ; Extend # Mn BENGALI SIGN VIRAMA
+09D7 ; Extend # Mc BENGALI AU LENGTH MARK
+09E2..09E3 ; Extend # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+0A01..0A02 ; Extend # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A3C ; Extend # Mn GURMUKHI SIGN NUKTA
+0A41..0A42 ; Extend # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; Extend # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; Extend # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; Extend # Mn GURMUKHI SIGN UDAAT
+0A70..0A71 ; Extend # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A75 ; Extend # Mn GURMUKHI SIGN YAKASH
+0A81..0A82 ; Extend # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0ABC ; Extend # Mn GUJARATI SIGN NUKTA
+0AC1..0AC5 ; Extend # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; Extend # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0ACD ; Extend # Mn GUJARATI SIGN VIRAMA
+0AE2..0AE3 ; Extend # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0B01 ; Extend # Mn ORIYA SIGN CANDRABINDU
+0B3C ; Extend # Mn ORIYA SIGN NUKTA
+0B3E ; Extend # Mc ORIYA VOWEL SIGN AA
+0B3F ; Extend # Mn ORIYA VOWEL SIGN I
+0B41..0B44 ; Extend # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B4D ; Extend # Mn ORIYA SIGN VIRAMA
+0B56 ; Extend # Mn ORIYA AI LENGTH MARK
+0B57 ; Extend # Mc ORIYA AU LENGTH MARK
+0B62..0B63 ; Extend # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B82 ; Extend # Mn TAMIL SIGN ANUSVARA
+0BBE ; Extend # Mc TAMIL VOWEL SIGN AA
+0BC0 ; Extend # Mn TAMIL VOWEL SIGN II
+0BCD ; Extend # Mn TAMIL SIGN VIRAMA
+0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
+0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; Extend # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C62..0C63 ; Extend # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0CBC ; Extend # Mn KANNADA SIGN NUKTA
+0CBF ; Extend # Mn KANNADA VOWEL SIGN I
+0CC2 ; Extend # Mc KANNADA VOWEL SIGN UU
+0CC6 ; Extend # Mn KANNADA VOWEL SIGN E
+0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0D3E ; Extend # Mc MALAYALAM VOWEL SIGN AA
+0D41..0D44 ; Extend # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D4D ; Extend # Mn MALAYALAM SIGN VIRAMA
+0D57 ; Extend # Mc MALAYALAM AU LENGTH MARK
+0D62..0D63 ; Extend # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0DCA ; Extend # Mn SINHALA SIGN AL-LAKUNA
+0DCF ; Extend # Mc SINHALA VOWEL SIGN AELA-PILLA
+0DD2..0DD4 ; Extend # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; Extend # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DDF ; Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA
+0E30 ; Extend # Lo THAI CHARACTER SARA A
+0E31 ; Extend # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; Extend # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A ; Extend # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E45 ; Extend # Lo THAI CHARACTER LAKKHANGYAO
+0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0EB0 ; Extend # Lo LAO VOWEL SIGN A
+0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; Extend # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB9 ; Extend # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC ; Extend # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F39 ; Extend # Mn TIBETAN MARK TSA -PHRU
+0F71..0F7E ; Extend # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F80..0F84 ; Extend # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F86..0F87 ; Extend # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F90..0F97 ; Extend # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; Extend # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FC6 ; Extend # Mn TIBETAN SYMBOL PADMA GDAN
+102D..1030 ; Extend # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1032..1037 ; Extend # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1039..103A ; Extend # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103D..103E ; Extend # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+1058..1059 ; Extend # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105E..1060 ; Extend # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1071..1074 ; Extend # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1082 ; Extend # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1085..1086 ; Extend # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+108D ; Extend # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+135F ; Extend # Mn ETHIOPIC COMBINING GEMINATION MARK
+1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+17B7..17BD ; Extend # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17C6 ; Extend # Mn KHMER SIGN NIKAHIT
+17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17DD ; Extend # Mn KHMER SIGN ATTHACAN
+180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1927..1928 ; Extend # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1932 ; Extend # Mn LIMBU SMALL LETTER ANUSVARA
+1939..193B ; Extend # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1A17..1A18 ; Extend # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B34 ; Extend # Mn BALINESE SIGN REREKAN
+1B36..1B3A ; Extend # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3C ; Extend # Mn BALINESE VOWEL SIGN LA LENGA
+1B42 ; Extend # Mn BALINESE VOWEL SIGN PEPET
+1B6B..1B73 ; Extend # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B80..1B81 ; Extend # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1BA2..1BA5 ; Extend # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA8..1BA9 ; Extend # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1C2C..1C33 ; Extend # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C36..1C37 ; Extend # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1DC0..1DE6 ; Extend # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DFE..1DFF ; Extend # Mn [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+200C..200D ; Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; Extend # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; Extend # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; Extend # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2DE0..2DFF ; Extend # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+302A..302F ; Extend # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3099..309A ; Extend # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+A66F ; Extend # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; Extend # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A67C..A67D ; Extend # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A802 ; Extend # Mn SYLOTI NAGRI SIGN DVISVARA
+A806 ; Extend # Mn SYLOTI NAGRI SIGN HASANTA
+A80B ; Extend # Mn SYLOTI NAGRI SIGN ANUSVARA
+A825..A826 ; Extend # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A8C4 ; Extend # Mn SAURASHTRA SIGN VIRAMA
+A926..A92D ; Extend # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A947..A951 ; Extend # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+AA29..AA2E ; Extend # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA31..AA32 ; Extend # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA35..AA36 ; Extend # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA43 ; Extend # Mn CHAM CONSONANT SIGN FINAL NG
+AA4C ; Extend # Mn CHAM CONSONANT SIGN FINAL M
+FB1E ; Extend # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FE00..FE0F ; Extend # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE20..FE26 ; Extend # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+101FD ; Extend # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10A01..10A03 ; Extend # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; Extend # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; Extend # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A38..10A3A ; Extend # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; Extend # Mn KHAROSHTHI VIRAMA
+1D165 ; Extend # Mc MUSICAL SYMBOL COMBINING STEM
+1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16E..1D172 ; Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+1D17B..1D182 ; Extend # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D185..1D18B ; Extend # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; Extend # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D242..1D244 ; Extend # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+
+# Total code points: 1075
+
+# ================================================
+
+0E40..0E44 ; Prepend # Lo [5] THAI CHARACTER SARA E..THAI CHARACTER SARA AI MAIMALAI
+0EC0..0EC4 ; Prepend # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+
+# Total code points: 10
+
+# ================================================
+
+0903 ; SpacingMark # Mc DEVANAGARI SIGN VISARGA
+093E..0940 ; SpacingMark # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0949..094C ; SpacingMark # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+0982..0983 ; SpacingMark # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+09BF..09C0 ; SpacingMark # Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
+09C7..09C8 ; SpacingMark # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; SpacingMark # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+0A03 ; SpacingMark # Mc GURMUKHI SIGN VISARGA
+0A3E..0A40 ; SpacingMark # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A83 ; SpacingMark # Mc GUJARATI SIGN VISARGA
+0ABE..0AC0 ; SpacingMark # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC9 ; SpacingMark # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; SpacingMark # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0B02..0B03 ; SpacingMark # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B40 ; SpacingMark # Mc ORIYA VOWEL SIGN II
+0B47..0B48 ; SpacingMark # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; SpacingMark # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0BBF ; SpacingMark # Mc TAMIL VOWEL SIGN I
+0BC1..0BC2 ; SpacingMark # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; SpacingMark # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; SpacingMark # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0C01..0C03 ; SpacingMark # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C41..0C44 ; SpacingMark # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C82..0C83 ; SpacingMark # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0CBE ; SpacingMark # Mc KANNADA VOWEL SIGN AA
+0CC0..0CC1 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
+0CC3..0CC4 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
+0CC7..0CC8 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; SpacingMark # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0D02..0D03 ; SpacingMark # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D3F..0D40 ; SpacingMark # Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
+0D46..0D48 ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D82..0D83 ; SpacingMark # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0DD0..0DD1 ; SpacingMark # Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD8..0DDE ; SpacingMark # Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+0DF2..0DF3 ; SpacingMark # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0F3E..0F3F ; SpacingMark # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F7F ; SpacingMark # Mc TIBETAN SIGN RNAM BCAD
+102B..102C ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+1031 ; SpacingMark # Mc MYANMAR VOWEL SIGN E
+1038 ; SpacingMark # Mc MYANMAR SIGN VISARGA
+103B..103C ; SpacingMark # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+1056..1057 ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1062..1064 ; SpacingMark # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1067..106D ; SpacingMark # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+1083..1084 ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1087..108C ; SpacingMark # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108F ; SpacingMark # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+17B6 ; SpacingMark # Mc KHMER VOWEL SIGN AA
+17BE..17C5 ; SpacingMark # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C7..17C8 ; SpacingMark # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+1923..1926 ; SpacingMark # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1929..192B ; SpacingMark # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; SpacingMark # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1933..1938 ; SpacingMark # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+19B0..19C0 ; SpacingMark # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C8..19C9 ; SpacingMark # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+1A19..1A1B ; SpacingMark # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
+1B04 ; SpacingMark # Mc BALINESE SIGN BISAH
+1B35 ; SpacingMark # Mc BALINESE VOWEL SIGN TEDUNG
+1B3B ; SpacingMark # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D..1B41 ; SpacingMark # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43..1B44 ; SpacingMark # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B82 ; SpacingMark # Mc SUNDANESE SIGN PANGWISAD
+1BA1 ; SpacingMark # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA6..1BA7 ; SpacingMark # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BAA ; SpacingMark # Mc SUNDANESE SIGN PAMAAEH
+1C24..1C2B ; SpacingMark # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C34..1C35 ; SpacingMark # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+A823..A824 ; SpacingMark # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A827 ; SpacingMark # Mc SYLOTI NAGRI VOWEL SIGN OO
+A880..A881 ; SpacingMark # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A8B4..A8C3 ; SpacingMark # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A952..A953 ; SpacingMark # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+AA2F..AA30 ; SpacingMark # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA33..AA34 ; SpacingMark # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA4D ; SpacingMark # Mc CHAM CONSONANT SIGN FINAL H
+1D166 ; SpacingMark # Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D16D ; SpacingMark # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
+
+# Total code points: 217
+
+# ================================================
+
+1100..1159 ; L # Lo [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115F ; L # Lo HANGUL CHOSEONG FILLER
+
+# Total code points: 91
+
+# ================================================
+
+1160..11A2 ; V # Lo [67] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA
+
+# Total code points: 67
+
+# ================================================
+
+11A8..11F9 ; T # Lo [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+
+# Total code points: 82
+
+# ================================================
+
+AC00 ; LV # Lo HANGUL SYLLABLE GA
+AC1C ; LV # Lo HANGUL SYLLABLE GAE
+AC38 ; LV # Lo HANGUL SYLLABLE GYA
+AC54 ; LV # Lo HANGUL SYLLABLE GYAE
+AC70 ; LV # Lo HANGUL SYLLABLE GEO
+AC8C ; LV # Lo HANGUL SYLLABLE GE
+ACA8 ; LV # Lo HANGUL SYLLABLE GYEO
+ACC4 ; LV # Lo HANGUL SYLLABLE GYE
+ACE0 ; LV # Lo HANGUL SYLLABLE GO
+ACFC ; LV # Lo HANGUL SYLLABLE GWA
+AD18 ; LV # Lo HANGUL SYLLABLE GWAE
+AD34 ; LV # Lo HANGUL SYLLABLE GOE
+AD50 ; LV # Lo HANGUL SYLLABLE GYO
+AD6C ; LV # Lo HANGUL SYLLABLE GU
+AD88 ; LV # Lo HANGUL SYLLABLE GWEO
+ADA4 ; LV # Lo HANGUL SYLLABLE GWE
+ADC0 ; LV # Lo HANGUL SYLLABLE GWI
+ADDC ; LV # Lo HANGUL SYLLABLE GYU
+ADF8 ; LV # Lo HANGUL SYLLABLE GEU
+AE14 ; LV # Lo HANGUL SYLLABLE GYI
+AE30 ; LV # Lo HANGUL SYLLABLE GI
+AE4C ; LV # Lo HANGUL SYLLABLE GGA
+AE68 ; LV # Lo HANGUL SYLLABLE GGAE
+AE84 ; LV # Lo HANGUL SYLLABLE GGYA
+AEA0 ; LV # Lo HANGUL SYLLABLE GGYAE
+AEBC ; LV # Lo HANGUL SYLLABLE GGEO
+AED8 ; LV # Lo HANGUL SYLLABLE GGE
+AEF4 ; LV # Lo HANGUL SYLLABLE GGYEO
+AF10 ; LV # Lo HANGUL SYLLABLE GGYE
+AF2C ; LV # Lo HANGUL SYLLABLE GGO
+AF48 ; LV # Lo HANGUL SYLLABLE GGWA
+AF64 ; LV # Lo HANGUL SYLLABLE GGWAE
+AF80 ; LV # Lo HANGUL SYLLABLE GGOE
+AF9C ; LV # Lo HANGUL SYLLABLE GGYO
+AFB8 ; LV # Lo HANGUL SYLLABLE GGU
+AFD4 ; LV # Lo HANGUL SYLLABLE GGWEO
+AFF0 ; LV # Lo HANGUL SYLLABLE GGWE
+B00C ; LV # Lo HANGUL SYLLABLE GGWI
+B028 ; LV # Lo HANGUL SYLLABLE GGYU
+B044 ; LV # Lo HANGUL SYLLABLE GGEU
+B060 ; LV # Lo HANGUL SYLLABLE GGYI
+B07C ; LV # Lo HANGUL SYLLABLE GGI
+B098 ; LV # Lo HANGUL SYLLABLE NA
+B0B4 ; LV # Lo HANGUL SYLLABLE NAE
+B0D0 ; LV # Lo HANGUL SYLLABLE NYA
+B0EC ; LV # Lo HANGUL SYLLABLE NYAE
+B108 ; LV # Lo HANGUL SYLLABLE NEO
+B124 ; LV # Lo HANGUL SYLLABLE NE
+B140 ; LV # Lo HANGUL SYLLABLE NYEO
+B15C ; LV # Lo HANGUL SYLLABLE NYE
+B178 ; LV # Lo HANGUL SYLLABLE NO
+B194 ; LV # Lo HANGUL SYLLABLE NWA
+B1B0 ; LV # Lo HANGUL SYLLABLE NWAE
+B1CC ; LV # Lo HANGUL SYLLABLE NOE
+B1E8 ; LV # Lo HANGUL SYLLABLE NYO
+B204 ; LV # Lo HANGUL SYLLABLE NU
+B220 ; LV # Lo HANGUL SYLLABLE NWEO
+B23C ; LV # Lo HANGUL SYLLABLE NWE
+B258 ; LV # Lo HANGUL SYLLABLE NWI
+B274 ; LV # Lo HANGUL SYLLABLE NYU
+B290 ; LV # Lo HANGUL SYLLABLE NEU
+B2AC ; LV # Lo HANGUL SYLLABLE NYI
+B2C8 ; LV # Lo HANGUL SYLLABLE NI
+B2E4 ; LV # Lo HANGUL SYLLABLE DA
+B300 ; LV # Lo HANGUL SYLLABLE DAE
+B31C ; LV # Lo HANGUL SYLLABLE DYA
+B338 ; LV # Lo HANGUL SYLLABLE DYAE
+B354 ; LV # Lo HANGUL SYLLABLE DEO
+B370 ; LV # Lo HANGUL SYLLABLE DE
+B38C ; LV # Lo HANGUL SYLLABLE DYEO
+B3A8 ; LV # Lo HANGUL SYLLABLE DYE
+B3C4 ; LV # Lo HANGUL SYLLABLE DO
+B3E0 ; LV # Lo HANGUL SYLLABLE DWA
+B3FC ; LV # Lo HANGUL SYLLABLE DWAE
+B418 ; LV # Lo HANGUL SYLLABLE DOE
+B434 ; LV # Lo HANGUL SYLLABLE DYO
+B450 ; LV # Lo HANGUL SYLLABLE DU
+B46C ; LV # Lo HANGUL SYLLABLE DWEO
+B488 ; LV # Lo HANGUL SYLLABLE DWE
+B4A4 ; LV # Lo HANGUL SYLLABLE DWI
+B4C0 ; LV # Lo HANGUL SYLLABLE DYU
+B4DC ; LV # Lo HANGUL SYLLABLE DEU
+B4F8 ; LV # Lo HANGUL SYLLABLE DYI
+B514 ; LV # Lo HANGUL SYLLABLE DI
+B530 ; LV # Lo HANGUL SYLLABLE DDA
+B54C ; LV # Lo HANGUL SYLLABLE DDAE
+B568 ; LV # Lo HANGUL SYLLABLE DDYA
+B584 ; LV # Lo HANGUL SYLLABLE DDYAE
+B5A0 ; LV # Lo HANGUL SYLLABLE DDEO
+B5BC ; LV # Lo HANGUL SYLLABLE DDE
+B5D8 ; LV # Lo HANGUL SYLLABLE DDYEO
+B5F4 ; LV # Lo HANGUL SYLLABLE DDYE
+B610 ; LV # Lo HANGUL SYLLABLE DDO
+B62C ; LV # Lo HANGUL SYLLABLE DDWA
+B648 ; LV # Lo HANGUL SYLLABLE DDWAE
+B664 ; LV # Lo HANGUL SYLLABLE DDOE
+B680 ; LV # Lo HANGUL SYLLABLE DDYO
+B69C ; LV # Lo HANGUL SYLLABLE DDU
+B6B8 ; LV # Lo HANGUL SYLLABLE DDWEO
+B6D4 ; LV # Lo HANGUL SYLLABLE DDWE
+B6F0 ; LV # Lo HANGUL SYLLABLE DDWI
+B70C ; LV # Lo HANGUL SYLLABLE DDYU
+B728 ; LV # Lo HANGUL SYLLABLE DDEU
+B744 ; LV # Lo HANGUL SYLLABLE DDYI
+B760 ; LV # Lo HANGUL SYLLABLE DDI
+B77C ; LV # Lo HANGUL SYLLABLE RA
+B798 ; LV # Lo HANGUL SYLLABLE RAE
+B7B4 ; LV # Lo HANGUL SYLLABLE RYA
+B7D0 ; LV # Lo HANGUL SYLLABLE RYAE
+B7EC ; LV # Lo HANGUL SYLLABLE REO
+B808 ; LV # Lo HANGUL SYLLABLE RE
+B824 ; LV # Lo HANGUL SYLLABLE RYEO
+B840 ; LV # Lo HANGUL SYLLABLE RYE
+B85C ; LV # Lo HANGUL SYLLABLE RO
+B878 ; LV # Lo HANGUL SYLLABLE RWA
+B894 ; LV # Lo HANGUL SYLLABLE RWAE
+B8B0 ; LV # Lo HANGUL SYLLABLE ROE
+B8CC ; LV # Lo HANGUL SYLLABLE RYO
+B8E8 ; LV # Lo HANGUL SYLLABLE RU
+B904 ; LV # Lo HANGUL SYLLABLE RWEO
+B920 ; LV # Lo HANGUL SYLLABLE RWE
+B93C ; LV # Lo HANGUL SYLLABLE RWI
+B958 ; LV # Lo HANGUL SYLLABLE RYU
+B974 ; LV # Lo HANGUL SYLLABLE REU
+B990 ; LV # Lo HANGUL SYLLABLE RYI
+B9AC ; LV # Lo HANGUL SYLLABLE RI
+B9C8 ; LV # Lo HANGUL SYLLABLE MA
+B9E4 ; LV # Lo HANGUL SYLLABLE MAE
+BA00 ; LV # Lo HANGUL SYLLABLE MYA
+BA1C ; LV # Lo HANGUL SYLLABLE MYAE
+BA38 ; LV # Lo HANGUL SYLLABLE MEO
+BA54 ; LV # Lo HANGUL SYLLABLE ME
+BA70 ; LV # Lo HANGUL SYLLABLE MYEO
+BA8C ; LV # Lo HANGUL SYLLABLE MYE
+BAA8 ; LV # Lo HANGUL SYLLABLE MO
+BAC4 ; LV # Lo HANGUL SYLLABLE MWA
+BAE0 ; LV # Lo HANGUL SYLLABLE MWAE
+BAFC ; LV # Lo HANGUL SYLLABLE MOE
+BB18 ; LV # Lo HANGUL SYLLABLE MYO
+BB34 ; LV # Lo HANGUL SYLLABLE MU
+BB50 ; LV # Lo HANGUL SYLLABLE MWEO
+BB6C ; LV # Lo HANGUL SYLLABLE MWE
+BB88 ; LV # Lo HANGUL SYLLABLE MWI
+BBA4 ; LV # Lo HANGUL SYLLABLE MYU
+BBC0 ; LV # Lo HANGUL SYLLABLE MEU
+BBDC ; LV # Lo HANGUL SYLLABLE MYI
+BBF8 ; LV # Lo HANGUL SYLLABLE MI
+BC14 ; LV # Lo HANGUL SYLLABLE BA
+BC30 ; LV # Lo HANGUL SYLLABLE BAE
+BC4C ; LV # Lo HANGUL SYLLABLE BYA
+BC68 ; LV # Lo HANGUL SYLLABLE BYAE
+BC84 ; LV # Lo HANGUL SYLLABLE BEO
+BCA0 ; LV # Lo HANGUL SYLLABLE BE
+BCBC ; LV # Lo HANGUL SYLLABLE BYEO
+BCD8 ; LV # Lo HANGUL SYLLABLE BYE
+BCF4 ; LV # Lo HANGUL SYLLABLE BO
+BD10 ; LV # Lo HANGUL SYLLABLE BWA
+BD2C ; LV # Lo HANGUL SYLLABLE BWAE
+BD48 ; LV # Lo HANGUL SYLLABLE BOE
+BD64 ; LV # Lo HANGUL SYLLABLE BYO
+BD80 ; LV # Lo HANGUL SYLLABLE BU
+BD9C ; LV # Lo HANGUL SYLLABLE BWEO
+BDB8 ; LV # Lo HANGUL SYLLABLE BWE
+BDD4 ; LV # Lo HANGUL SYLLABLE BWI
+BDF0 ; LV # Lo HANGUL SYLLABLE BYU
+BE0C ; LV # Lo HANGUL SYLLABLE BEU
+BE28 ; LV # Lo HANGUL SYLLABLE BYI
+BE44 ; LV # Lo HANGUL SYLLABLE BI
+BE60 ; LV # Lo HANGUL SYLLABLE BBA
+BE7C ; LV # Lo HANGUL SYLLABLE BBAE
+BE98 ; LV # Lo HANGUL SYLLABLE BBYA
+BEB4 ; LV # Lo HANGUL SYLLABLE BBYAE
+BED0 ; LV # Lo HANGUL SYLLABLE BBEO
+BEEC ; LV # Lo HANGUL SYLLABLE BBE
+BF08 ; LV # Lo HANGUL SYLLABLE BBYEO
+BF24 ; LV # Lo HANGUL SYLLABLE BBYE
+BF40 ; LV # Lo HANGUL SYLLABLE BBO
+BF5C ; LV # Lo HANGUL SYLLABLE BBWA
+BF78 ; LV # Lo HANGUL SYLLABLE BBWAE
+BF94 ; LV # Lo HANGUL SYLLABLE BBOE
+BFB0 ; LV # Lo HANGUL SYLLABLE BBYO
+BFCC ; LV # Lo HANGUL SYLLABLE BBU
+BFE8 ; LV # Lo HANGUL SYLLABLE BBWEO
+C004 ; LV # Lo HANGUL SYLLABLE BBWE
+C020 ; LV # Lo HANGUL SYLLABLE BBWI
+C03C ; LV # Lo HANGUL SYLLABLE BBYU
+C058 ; LV # Lo HANGUL SYLLABLE BBEU
+C074 ; LV # Lo HANGUL SYLLABLE BBYI
+C090 ; LV # Lo HANGUL SYLLABLE BBI
+C0AC ; LV # Lo HANGUL SYLLABLE SA
+C0C8 ; LV # Lo HANGUL SYLLABLE SAE
+C0E4 ; LV # Lo HANGUL SYLLABLE SYA
+C100 ; LV # Lo HANGUL SYLLABLE SYAE
+C11C ; LV # Lo HANGUL SYLLABLE SEO
+C138 ; LV # Lo HANGUL SYLLABLE SE
+C154 ; LV # Lo HANGUL SYLLABLE SYEO
+C170 ; LV # Lo HANGUL SYLLABLE SYE
+C18C ; LV # Lo HANGUL SYLLABLE SO
+C1A8 ; LV # Lo HANGUL SYLLABLE SWA
+C1C4 ; LV # Lo HANGUL SYLLABLE SWAE
+C1E0 ; LV # Lo HANGUL SYLLABLE SOE
+C1FC ; LV # Lo HANGUL SYLLABLE SYO
+C218 ; LV # Lo HANGUL SYLLABLE SU
+C234 ; LV # Lo HANGUL SYLLABLE SWEO
+C250 ; LV # Lo HANGUL SYLLABLE SWE
+C26C ; LV # Lo HANGUL SYLLABLE SWI
+C288 ; LV # Lo HANGUL SYLLABLE SYU
+C2A4 ; LV # Lo HANGUL SYLLABLE SEU
+C2C0 ; LV # Lo HANGUL SYLLABLE SYI
+C2DC ; LV # Lo HANGUL SYLLABLE SI
+C2F8 ; LV # Lo HANGUL SYLLABLE SSA
+C314 ; LV # Lo HANGUL SYLLABLE SSAE
+C330 ; LV # Lo HANGUL SYLLABLE SSYA
+C34C ; LV # Lo HANGUL SYLLABLE SSYAE
+C368 ; LV # Lo HANGUL SYLLABLE SSEO
+C384 ; LV # Lo HANGUL SYLLABLE SSE
+C3A0 ; LV # Lo HANGUL SYLLABLE SSYEO
+C3BC ; LV # Lo HANGUL SYLLABLE SSYE
+C3D8 ; LV # Lo HANGUL SYLLABLE SSO
+C3F4 ; LV # Lo HANGUL SYLLABLE SSWA
+C410 ; LV # Lo HANGUL SYLLABLE SSWAE
+C42C ; LV # Lo HANGUL SYLLABLE SSOE
+C448 ; LV # Lo HANGUL SYLLABLE SSYO
+C464 ; LV # Lo HANGUL SYLLABLE SSU
+C480 ; LV # Lo HANGUL SYLLABLE SSWEO
+C49C ; LV # Lo HANGUL SYLLABLE SSWE
+C4B8 ; LV # Lo HANGUL SYLLABLE SSWI
+C4D4 ; LV # Lo HANGUL SYLLABLE SSYU
+C4F0 ; LV # Lo HANGUL SYLLABLE SSEU
+C50C ; LV # Lo HANGUL SYLLABLE SSYI
+C528 ; LV # Lo HANGUL SYLLABLE SSI
+C544 ; LV # Lo HANGUL SYLLABLE A
+C560 ; LV # Lo HANGUL SYLLABLE AE
+C57C ; LV # Lo HANGUL SYLLABLE YA
+C598 ; LV # Lo HANGUL SYLLABLE YAE
+C5B4 ; LV # Lo HANGUL SYLLABLE EO
+C5D0 ; LV # Lo HANGUL SYLLABLE E
+C5EC ; LV # Lo HANGUL SYLLABLE YEO
+C608 ; LV # Lo HANGUL SYLLABLE YE
+C624 ; LV # Lo HANGUL SYLLABLE O
+C640 ; LV # Lo HANGUL SYLLABLE WA
+C65C ; LV # Lo HANGUL SYLLABLE WAE
+C678 ; LV # Lo HANGUL SYLLABLE OE
+C694 ; LV # Lo HANGUL SYLLABLE YO
+C6B0 ; LV # Lo HANGUL SYLLABLE U
+C6CC ; LV # Lo HANGUL SYLLABLE WEO
+C6E8 ; LV # Lo HANGUL SYLLABLE WE
+C704 ; LV # Lo HANGUL SYLLABLE WI
+C720 ; LV # Lo HANGUL SYLLABLE YU
+C73C ; LV # Lo HANGUL SYLLABLE EU
+C758 ; LV # Lo HANGUL SYLLABLE YI
+C774 ; LV # Lo HANGUL SYLLABLE I
+C790 ; LV # Lo HANGUL SYLLABLE JA
+C7AC ; LV # Lo HANGUL SYLLABLE JAE
+C7C8 ; LV # Lo HANGUL SYLLABLE JYA
+C7E4 ; LV # Lo HANGUL SYLLABLE JYAE
+C800 ; LV # Lo HANGUL SYLLABLE JEO
+C81C ; LV # Lo HANGUL SYLLABLE JE
+C838 ; LV # Lo HANGUL SYLLABLE JYEO
+C854 ; LV # Lo HANGUL SYLLABLE JYE
+C870 ; LV # Lo HANGUL SYLLABLE JO
+C88C ; LV # Lo HANGUL SYLLABLE JWA
+C8A8 ; LV # Lo HANGUL SYLLABLE JWAE
+C8C4 ; LV # Lo HANGUL SYLLABLE JOE
+C8E0 ; LV # Lo HANGUL SYLLABLE JYO
+C8FC ; LV # Lo HANGUL SYLLABLE JU
+C918 ; LV # Lo HANGUL SYLLABLE JWEO
+C934 ; LV # Lo HANGUL SYLLABLE JWE
+C950 ; LV # Lo HANGUL SYLLABLE JWI
+C96C ; LV # Lo HANGUL SYLLABLE JYU
+C988 ; LV # Lo HANGUL SYLLABLE JEU
+C9A4 ; LV # Lo HANGUL SYLLABLE JYI
+C9C0 ; LV # Lo HANGUL SYLLABLE JI
+C9DC ; LV # Lo HANGUL SYLLABLE JJA
+C9F8 ; LV # Lo HANGUL SYLLABLE JJAE
+CA14 ; LV # Lo HANGUL SYLLABLE JJYA
+CA30 ; LV # Lo HANGUL SYLLABLE JJYAE
+CA4C ; LV # Lo HANGUL SYLLABLE JJEO
+CA68 ; LV # Lo HANGUL SYLLABLE JJE
+CA84 ; LV # Lo HANGUL SYLLABLE JJYEO
+CAA0 ; LV # Lo HANGUL SYLLABLE JJYE
+CABC ; LV # Lo HANGUL SYLLABLE JJO
+CAD8 ; LV # Lo HANGUL SYLLABLE JJWA
+CAF4 ; LV # Lo HANGUL SYLLABLE JJWAE
+CB10 ; LV # Lo HANGUL SYLLABLE JJOE
+CB2C ; LV # Lo HANGUL SYLLABLE JJYO
+CB48 ; LV # Lo HANGUL SYLLABLE JJU
+CB64 ; LV # Lo HANGUL SYLLABLE JJWEO
+CB80 ; LV # Lo HANGUL SYLLABLE JJWE
+CB9C ; LV # Lo HANGUL SYLLABLE JJWI
+CBB8 ; LV # Lo HANGUL SYLLABLE JJYU
+CBD4 ; LV # Lo HANGUL SYLLABLE JJEU
+CBF0 ; LV # Lo HANGUL SYLLABLE JJYI
+CC0C ; LV # Lo HANGUL SYLLABLE JJI
+CC28 ; LV # Lo HANGUL SYLLABLE CA
+CC44 ; LV # Lo HANGUL SYLLABLE CAE
+CC60 ; LV # Lo HANGUL SYLLABLE CYA
+CC7C ; LV # Lo HANGUL SYLLABLE CYAE
+CC98 ; LV # Lo HANGUL SYLLABLE CEO
+CCB4 ; LV # Lo HANGUL SYLLABLE CE
+CCD0 ; LV # Lo HANGUL SYLLABLE CYEO
+CCEC ; LV # Lo HANGUL SYLLABLE CYE
+CD08 ; LV # Lo HANGUL SYLLABLE CO
+CD24 ; LV # Lo HANGUL SYLLABLE CWA
+CD40 ; LV # Lo HANGUL SYLLABLE CWAE
+CD5C ; LV # Lo HANGUL SYLLABLE COE
+CD78 ; LV # Lo HANGUL SYLLABLE CYO
+CD94 ; LV # Lo HANGUL SYLLABLE CU
+CDB0 ; LV # Lo HANGUL SYLLABLE CWEO
+CDCC ; LV # Lo HANGUL SYLLABLE CWE
+CDE8 ; LV # Lo HANGUL SYLLABLE CWI
+CE04 ; LV # Lo HANGUL SYLLABLE CYU
+CE20 ; LV # Lo HANGUL SYLLABLE CEU
+CE3C ; LV # Lo HANGUL SYLLABLE CYI
+CE58 ; LV # Lo HANGUL SYLLABLE CI
+CE74 ; LV # Lo HANGUL SYLLABLE KA
+CE90 ; LV # Lo HANGUL SYLLABLE KAE
+CEAC ; LV # Lo HANGUL SYLLABLE KYA
+CEC8 ; LV # Lo HANGUL SYLLABLE KYAE
+CEE4 ; LV # Lo HANGUL SYLLABLE KEO
+CF00 ; LV # Lo HANGUL SYLLABLE KE
+CF1C ; LV # Lo HANGUL SYLLABLE KYEO
+CF38 ; LV # Lo HANGUL SYLLABLE KYE
+CF54 ; LV # Lo HANGUL SYLLABLE KO
+CF70 ; LV # Lo HANGUL SYLLABLE KWA
+CF8C ; LV # Lo HANGUL SYLLABLE KWAE
+CFA8 ; LV # Lo HANGUL SYLLABLE KOE
+CFC4 ; LV # Lo HANGUL SYLLABLE KYO
+CFE0 ; LV # Lo HANGUL SYLLABLE KU
+CFFC ; LV # Lo HANGUL SYLLABLE KWEO
+D018 ; LV # Lo HANGUL SYLLABLE KWE
+D034 ; LV # Lo HANGUL SYLLABLE KWI
+D050 ; LV # Lo HANGUL SYLLABLE KYU
+D06C ; LV # Lo HANGUL SYLLABLE KEU
+D088 ; LV # Lo HANGUL SYLLABLE KYI
+D0A4 ; LV # Lo HANGUL SYLLABLE KI
+D0C0 ; LV # Lo HANGUL SYLLABLE TA
+D0DC ; LV # Lo HANGUL SYLLABLE TAE
+D0F8 ; LV # Lo HANGUL SYLLABLE TYA
+D114 ; LV # Lo HANGUL SYLLABLE TYAE
+D130 ; LV # Lo HANGUL SYLLABLE TEO
+D14C ; LV # Lo HANGUL SYLLABLE TE
+D168 ; LV # Lo HANGUL SYLLABLE TYEO
+D184 ; LV # Lo HANGUL SYLLABLE TYE
+D1A0 ; LV # Lo HANGUL SYLLABLE TO
+D1BC ; LV # Lo HANGUL SYLLABLE TWA
+D1D8 ; LV # Lo HANGUL SYLLABLE TWAE
+D1F4 ; LV # Lo HANGUL SYLLABLE TOE
+D210 ; LV # Lo HANGUL SYLLABLE TYO
+D22C ; LV # Lo HANGUL SYLLABLE TU
+D248 ; LV # Lo HANGUL SYLLABLE TWEO
+D264 ; LV # Lo HANGUL SYLLABLE TWE
+D280 ; LV # Lo HANGUL SYLLABLE TWI
+D29C ; LV # Lo HANGUL SYLLABLE TYU
+D2B8 ; LV # Lo HANGUL SYLLABLE TEU
+D2D4 ; LV # Lo HANGUL SYLLABLE TYI
+D2F0 ; LV # Lo HANGUL SYLLABLE TI
+D30C ; LV # Lo HANGUL SYLLABLE PA
+D328 ; LV # Lo HANGUL SYLLABLE PAE
+D344 ; LV # Lo HANGUL SYLLABLE PYA
+D360 ; LV # Lo HANGUL SYLLABLE PYAE
+D37C ; LV # Lo HANGUL SYLLABLE PEO
+D398 ; LV # Lo HANGUL SYLLABLE PE
+D3B4 ; LV # Lo HANGUL SYLLABLE PYEO
+D3D0 ; LV # Lo HANGUL SYLLABLE PYE
+D3EC ; LV # Lo HANGUL SYLLABLE PO
+D408 ; LV # Lo HANGUL SYLLABLE PWA
+D424 ; LV # Lo HANGUL SYLLABLE PWAE
+D440 ; LV # Lo HANGUL SYLLABLE POE
+D45C ; LV # Lo HANGUL SYLLABLE PYO
+D478 ; LV # Lo HANGUL SYLLABLE PU
+D494 ; LV # Lo HANGUL SYLLABLE PWEO
+D4B0 ; LV # Lo HANGUL SYLLABLE PWE
+D4CC ; LV # Lo HANGUL SYLLABLE PWI
+D4E8 ; LV # Lo HANGUL SYLLABLE PYU
+D504 ; LV # Lo HANGUL SYLLABLE PEU
+D520 ; LV # Lo HANGUL SYLLABLE PYI
+D53C ; LV # Lo HANGUL SYLLABLE PI
+D558 ; LV # Lo HANGUL SYLLABLE HA
+D574 ; LV # Lo HANGUL SYLLABLE HAE
+D590 ; LV # Lo HANGUL SYLLABLE HYA
+D5AC ; LV # Lo HANGUL SYLLABLE HYAE
+D5C8 ; LV # Lo HANGUL SYLLABLE HEO
+D5E4 ; LV # Lo HANGUL SYLLABLE HE
+D600 ; LV # Lo HANGUL SYLLABLE HYEO
+D61C ; LV # Lo HANGUL SYLLABLE HYE
+D638 ; LV # Lo HANGUL SYLLABLE HO
+D654 ; LV # Lo HANGUL SYLLABLE HWA
+D670 ; LV # Lo HANGUL SYLLABLE HWAE
+D68C ; LV # Lo HANGUL SYLLABLE HOE
+D6A8 ; LV # Lo HANGUL SYLLABLE HYO
+D6C4 ; LV # Lo HANGUL SYLLABLE HU
+D6E0 ; LV # Lo HANGUL SYLLABLE HWEO
+D6FC ; LV # Lo HANGUL SYLLABLE HWE
+D718 ; LV # Lo HANGUL SYLLABLE HWI
+D734 ; LV # Lo HANGUL SYLLABLE HYU
+D750 ; LV # Lo HANGUL SYLLABLE HEU
+D76C ; LV # Lo HANGUL SYLLABLE HYI
+D788 ; LV # Lo HANGUL SYLLABLE HI
+
+# Total code points: 399
+
+# ================================================
+
+AC01..AC1B ; LVT # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+AC1D..AC37 ; LVT # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+AC39..AC53 ; LVT # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+AC55..AC6F ; LVT # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+AC71..AC8B ; LVT # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+AC8D..ACA7 ; LVT # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ACA9..ACC3 ; LVT # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ACC5..ACDF ; LVT # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ACE1..ACFB ; LVT # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ACFD..AD17 ; LVT # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+AD19..AD33 ; LVT # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+AD35..AD4F ; LVT # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+AD51..AD6B ; LVT # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+AD6D..AD87 ; LVT # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+AD89..ADA3 ; LVT # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ADA5..ADBF ; LVT # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ADC1..ADDB ; LVT # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ADDD..ADF7 ; LVT # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ADF9..AE13 ; LVT # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+AE15..AE2F ; LVT # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+AE31..AE4B ; LVT # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+AE4D..AE67 ; LVT # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+AE69..AE83 ; LVT # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+AE85..AE9F ; LVT # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+AEA1..AEBB ; LVT # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+AEBD..AED7 ; LVT # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+AED9..AEF3 ; LVT # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+AEF5..AF0F ; LVT # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+AF11..AF2B ; LVT # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+AF2D..AF47 ; LVT # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+AF49..AF63 ; LVT # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+AF65..AF7F ; LVT # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+AF81..AF9B ; LVT # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+AF9D..AFB7 ; LVT # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+AFB9..AFD3 ; LVT # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+AFD5..AFEF ; LVT # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+AFF1..B00B ; LVT # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+B00D..B027 ; LVT # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+B029..B043 ; LVT # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+B045..B05F ; LVT # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+B061..B07B ; LVT # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+B07D..B097 ; LVT # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+B099..B0B3 ; LVT # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+B0B5..B0CF ; LVT # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+B0D1..B0EB ; LVT # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+B0ED..B107 ; LVT # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+B109..B123 ; LVT # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+B125..B13F ; LVT # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+B141..B15B ; LVT # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+B15D..B177 ; LVT # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+B179..B193 ; LVT # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+B195..B1AF ; LVT # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+B1B1..B1CB ; LVT # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+B1CD..B1E7 ; LVT # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+B1E9..B203 ; LVT # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+B205..B21F ; LVT # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+B221..B23B ; LVT # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+B23D..B257 ; LVT # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+B259..B273 ; LVT # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+B275..B28F ; LVT # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+B291..B2AB ; LVT # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+B2AD..B2C7 ; LVT # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+B2C9..B2E3 ; LVT # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+B2E5..B2FF ; LVT # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+B301..B31B ; LVT # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+B31D..B337 ; LVT # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+B339..B353 ; LVT # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+B355..B36F ; LVT # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+B371..B38B ; LVT # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+B38D..B3A7 ; LVT # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+B3A9..B3C3 ; LVT # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+B3C5..B3DF ; LVT # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+B3E1..B3FB ; LVT # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+B3FD..B417 ; LVT # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+B419..B433 ; LVT # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+B435..B44F ; LVT # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+B451..B46B ; LVT # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+B46D..B487 ; LVT # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+B489..B4A3 ; LVT # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+B4A5..B4BF ; LVT # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+B4C1..B4DB ; LVT # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+B4DD..B4F7 ; LVT # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+B4F9..B513 ; LVT # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+B515..B52F ; LVT # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+B531..B54B ; LVT # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+B54D..B567 ; LVT # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+B569..B583 ; LVT # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+B585..B59F ; LVT # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+B5A1..B5BB ; LVT # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+B5BD..B5D7 ; LVT # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+B5D9..B5F3 ; LVT # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+B5F5..B60F ; LVT # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+B611..B62B ; LVT # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+B62D..B647 ; LVT # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+B649..B663 ; LVT # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+B665..B67F ; LVT # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+B681..B69B ; LVT # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+B69D..B6B7 ; LVT # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+B6B9..B6D3 ; LVT # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+B6D5..B6EF ; LVT # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+B6F1..B70B ; LVT # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+B70D..B727 ; LVT # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+B729..B743 ; LVT # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+B745..B75F ; LVT # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+B761..B77B ; LVT # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+B77D..B797 ; LVT # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+B799..B7B3 ; LVT # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+B7B5..B7CF ; LVT # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+B7D1..B7EB ; LVT # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+B7ED..B807 ; LVT # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+B809..B823 ; LVT # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+B825..B83F ; LVT # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+B841..B85B ; LVT # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+B85D..B877 ; LVT # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+B879..B893 ; LVT # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+B895..B8AF ; LVT # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+B8B1..B8CB ; LVT # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+B8CD..B8E7 ; LVT # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+B8E9..B903 ; LVT # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+B905..B91F ; LVT # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+B921..B93B ; LVT # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+B93D..B957 ; LVT # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+B959..B973 ; LVT # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+B975..B98F ; LVT # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+B991..B9AB ; LVT # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+B9AD..B9C7 ; LVT # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+B9C9..B9E3 ; LVT # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+B9E5..B9FF ; LVT # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+BA01..BA1B ; LVT # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+BA1D..BA37 ; LVT # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+BA39..BA53 ; LVT # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+BA55..BA6F ; LVT # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+BA71..BA8B ; LVT # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+BA8D..BAA7 ; LVT # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+BAA9..BAC3 ; LVT # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+BAC5..BADF ; LVT # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+BAE1..BAFB ; LVT # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+BAFD..BB17 ; LVT # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+BB19..BB33 ; LVT # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+BB35..BB4F ; LVT # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+BB51..BB6B ; LVT # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+BB6D..BB87 ; LVT # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+BB89..BBA3 ; LVT # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+BBA5..BBBF ; LVT # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+BBC1..BBDB ; LVT # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+BBDD..BBF7 ; LVT # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+BBF9..BC13 ; LVT # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+BC15..BC2F ; LVT # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+BC31..BC4B ; LVT # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+BC4D..BC67 ; LVT # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+BC69..BC83 ; LVT # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+BC85..BC9F ; LVT # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+BCA1..BCBB ; LVT # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+BCBD..BCD7 ; LVT # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+BCD9..BCF3 ; LVT # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+BCF5..BD0F ; LVT # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+BD11..BD2B ; LVT # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+BD2D..BD47 ; LVT # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+BD49..BD63 ; LVT # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+BD65..BD7F ; LVT # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+BD81..BD9B ; LVT # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+BD9D..BDB7 ; LVT # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+BDB9..BDD3 ; LVT # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+BDD5..BDEF ; LVT # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+BDF1..BE0B ; LVT # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+BE0D..BE27 ; LVT # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+BE29..BE43 ; LVT # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+BE45..BE5F ; LVT # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+BE61..BE7B ; LVT # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+BE7D..BE97 ; LVT # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+BE99..BEB3 ; LVT # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+BEB5..BECF ; LVT # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+BED1..BEEB ; LVT # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+BEED..BF07 ; LVT # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+BF09..BF23 ; LVT # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+BF25..BF3F ; LVT # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+BF41..BF5B ; LVT # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+BF5D..BF77 ; LVT # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+BF79..BF93 ; LVT # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+BF95..BFAF ; LVT # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+BFB1..BFCB ; LVT # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+BFCD..BFE7 ; LVT # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+BFE9..C003 ; LVT # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+C005..C01F ; LVT # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+C021..C03B ; LVT # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+C03D..C057 ; LVT # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+C059..C073 ; LVT # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+C075..C08F ; LVT # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+C091..C0AB ; LVT # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+C0AD..C0C7 ; LVT # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+C0C9..C0E3 ; LVT # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+C0E5..C0FF ; LVT # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+C101..C11B ; LVT # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+C11D..C137 ; LVT # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+C139..C153 ; LVT # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+C155..C16F ; LVT # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+C171..C18B ; LVT # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+C18D..C1A7 ; LVT # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+C1A9..C1C3 ; LVT # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+C1C5..C1DF ; LVT # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+C1E1..C1FB ; LVT # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+C1FD..C217 ; LVT # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+C219..C233 ; LVT # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+C235..C24F ; LVT # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+C251..C26B ; LVT # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+C26D..C287 ; LVT # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+C289..C2A3 ; LVT # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+C2A5..C2BF ; LVT # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+C2C1..C2DB ; LVT # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+C2DD..C2F7 ; LVT # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+C2F9..C313 ; LVT # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+C315..C32F ; LVT # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+C331..C34B ; LVT # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+C34D..C367 ; LVT # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+C369..C383 ; LVT # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+C385..C39F ; LVT # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+C3A1..C3BB ; LVT # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+C3BD..C3D7 ; LVT # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+C3D9..C3F3 ; LVT # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+C3F5..C40F ; LVT # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+C411..C42B ; LVT # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+C42D..C447 ; LVT # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+C449..C463 ; LVT # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+C465..C47F ; LVT # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+C481..C49B ; LVT # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+C49D..C4B7 ; LVT # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+C4B9..C4D3 ; LVT # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+C4D5..C4EF ; LVT # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+C4F1..C50B ; LVT # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+C50D..C527 ; LVT # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+C529..C543 ; LVT # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+C545..C55F ; LVT # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+C561..C57B ; LVT # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+C57D..C597 ; LVT # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+C599..C5B3 ; LVT # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+C5B5..C5CF ; LVT # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+C5D1..C5EB ; LVT # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+C5ED..C607 ; LVT # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+C609..C623 ; LVT # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+C625..C63F ; LVT # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+C641..C65B ; LVT # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+C65D..C677 ; LVT # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+C679..C693 ; LVT # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+C695..C6AF ; LVT # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+C6B1..C6CB ; LVT # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+C6CD..C6E7 ; LVT # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+C6E9..C703 ; LVT # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+C705..C71F ; LVT # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+C721..C73B ; LVT # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+C73D..C757 ; LVT # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+C759..C773 ; LVT # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+C775..C78F ; LVT # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+C791..C7AB ; LVT # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+C7AD..C7C7 ; LVT # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+C7C9..C7E3 ; LVT # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+C7E5..C7FF ; LVT # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+C801..C81B ; LVT # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+C81D..C837 ; LVT # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+C839..C853 ; LVT # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+C855..C86F ; LVT # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+C871..C88B ; LVT # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+C88D..C8A7 ; LVT # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+C8A9..C8C3 ; LVT # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+C8C5..C8DF ; LVT # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+C8E1..C8FB ; LVT # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+C8FD..C917 ; LVT # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+C919..C933 ; LVT # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+C935..C94F ; LVT # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+C951..C96B ; LVT # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+C96D..C987 ; LVT # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+C989..C9A3 ; LVT # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+C9A5..C9BF ; LVT # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+C9C1..C9DB ; LVT # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+C9DD..C9F7 ; LVT # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+C9F9..CA13 ; LVT # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+CA15..CA2F ; LVT # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+CA31..CA4B ; LVT # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+CA4D..CA67 ; LVT # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+CA69..CA83 ; LVT # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+CA85..CA9F ; LVT # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+CAA1..CABB ; LVT # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+CABD..CAD7 ; LVT # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+CAD9..CAF3 ; LVT # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+CAF5..CB0F ; LVT # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+CB11..CB2B ; LVT # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+CB2D..CB47 ; LVT # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+CB49..CB63 ; LVT # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+CB65..CB7F ; LVT # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+CB81..CB9B ; LVT # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+CB9D..CBB7 ; LVT # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+CBB9..CBD3 ; LVT # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+CBD5..CBEF ; LVT # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+CBF1..CC0B ; LVT # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+CC0D..CC27 ; LVT # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+CC29..CC43 ; LVT # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+CC45..CC5F ; LVT # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+CC61..CC7B ; LVT # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+CC7D..CC97 ; LVT # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+CC99..CCB3 ; LVT # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+CCB5..CCCF ; LVT # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+CCD1..CCEB ; LVT # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+CCED..CD07 ; LVT # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+CD09..CD23 ; LVT # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+CD25..CD3F ; LVT # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+CD41..CD5B ; LVT # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+CD5D..CD77 ; LVT # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+CD79..CD93 ; LVT # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+CD95..CDAF ; LVT # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+CDB1..CDCB ; LVT # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+CDCD..CDE7 ; LVT # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+CDE9..CE03 ; LVT # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+CE05..CE1F ; LVT # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+CE21..CE3B ; LVT # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+CE3D..CE57 ; LVT # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+CE59..CE73 ; LVT # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+CE75..CE8F ; LVT # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+CE91..CEAB ; LVT # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+CEAD..CEC7 ; LVT # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+CEC9..CEE3 ; LVT # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+CEE5..CEFF ; LVT # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+CF01..CF1B ; LVT # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+CF1D..CF37 ; LVT # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+CF39..CF53 ; LVT # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+CF55..CF6F ; LVT # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+CF71..CF8B ; LVT # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+CF8D..CFA7 ; LVT # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+CFA9..CFC3 ; LVT # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+CFC5..CFDF ; LVT # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+CFE1..CFFB ; LVT # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+CFFD..D017 ; LVT # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+D019..D033 ; LVT # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+D035..D04F ; LVT # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+D051..D06B ; LVT # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+D06D..D087 ; LVT # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+D089..D0A3 ; LVT # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+D0A5..D0BF ; LVT # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+D0C1..D0DB ; LVT # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+D0DD..D0F7 ; LVT # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+D0F9..D113 ; LVT # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+D115..D12F ; LVT # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+D131..D14B ; LVT # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+D14D..D167 ; LVT # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+D169..D183 ; LVT # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+D185..D19F ; LVT # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+D1A1..D1BB ; LVT # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+D1BD..D1D7 ; LVT # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+D1D9..D1F3 ; LVT # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+D1F5..D20F ; LVT # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+D211..D22B ; LVT # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+D22D..D247 ; LVT # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+D249..D263 ; LVT # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+D265..D27F ; LVT # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+D281..D29B ; LVT # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+D29D..D2B7 ; LVT # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+D2B9..D2D3 ; LVT # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+D2D5..D2EF ; LVT # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+D2F1..D30B ; LVT # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+D30D..D327 ; LVT # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+D329..D343 ; LVT # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+D345..D35F ; LVT # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+D361..D37B ; LVT # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+D37D..D397 ; LVT # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+D399..D3B3 ; LVT # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+D3B5..D3CF ; LVT # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+D3D1..D3EB ; LVT # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+D3ED..D407 ; LVT # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+D409..D423 ; LVT # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+D425..D43F ; LVT # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+D441..D45B ; LVT # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+D45D..D477 ; LVT # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+D479..D493 ; LVT # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+D495..D4AF ; LVT # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+D4B1..D4CB ; LVT # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+D4CD..D4E7 ; LVT # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+D4E9..D503 ; LVT # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+D505..D51F ; LVT # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+D521..D53B ; LVT # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+D53D..D557 ; LVT # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+D559..D573 ; LVT # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+D575..D58F ; LVT # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+D591..D5AB ; LVT # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+D5AD..D5C7 ; LVT # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+D5C9..D5E3 ; LVT # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+D5E5..D5FF ; LVT # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+D601..D61B ; LVT # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+D61D..D637 ; LVT # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+D639..D653 ; LVT # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+D655..D66F ; LVT # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+D671..D68B ; LVT # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+D68D..D6A7 ; LVT # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+D6A9..D6C3 ; LVT # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+D6C5..D6DF ; LVT # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+D6E1..D6FB ; LVT # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+D6FD..D717 ; LVT # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+D719..D733 ; LVT # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+D735..D74F ; LVT # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+D751..D76B ; LVT # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+D76D..D787 ; LVT # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+D789..D7A3 ; LVT # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+
+# Total code points: 10773
+
+# EOF
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/README b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/README
new file mode 100644
index 00000000000..605d1c097e2
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/README
@@ -0,0 +1,17 @@
+This directory contains Python script to parse several of the Unicode tables
+that are downloadable from the web and generate C header files from them.
+
+These are the locations of the files which are parsed. You should download these
+files and put them in this directory.
+
+http://www.unicode.org/Public/5.1.0/ucd/extracted/DerivedGeneralCategory.txt
+http://www.unicode.org/Public/5.1.0/ucd/extracted/DerivedCombiningClass.txt
+http://www.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
+http://www.unicode.org/Public/5.1.0/ucd/Scripts.txt
+
+Then you can run the following python scripts to generate the header files:
+
+python category-parse.py DerivedGeneralCategory.txt category-properties.h
+python combining-class-parse.py DerivedCombiningClass.txt combining-properties.h
+python grapheme-break-parse.py GraphemeBreakProperty.txt grapheme-break-properties.h
+python scripts-parse.py Scripts.txt script-properties.h
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/Scripts.txt b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/Scripts.txt
new file mode 100644
index 00000000000..7065486d3a5
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/Scripts.txt
@@ -0,0 +1,1747 @@
+# Scripts-5.1.0.txt
+# Date: 2008-03-20, 17:55:33 GMT [MD]
+#
+# Unicode Character Database
+# Copyright (c) 1991-2008 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For documentation, see UCD.html
+
+# ================================================
+
+# Property: Script
+
+# All code points not explicitly listed for Script
+# have the value Unknown (Zzzz).
+
+# @missing: 0000..10FFFF; Unknown
+
+# ================================================
+
+0000..001F ; Common # Cc [32] <control-0000>..<control-001F>
+0020 ; Common # Zs SPACE
+0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN
+0024 ; Common # Sc DOLLAR SIGN
+0025..0027 ; Common # Po [3] PERCENT SIGN..APOSTROPHE
+0028 ; Common # Ps LEFT PARENTHESIS
+0029 ; Common # Pe RIGHT PARENTHESIS
+002A ; Common # Po ASTERISK
+002B ; Common # Sm PLUS SIGN
+002C ; Common # Po COMMA
+002D ; Common # Pd HYPHEN-MINUS
+002E..002F ; Common # Po [2] FULL STOP..SOLIDUS
+0030..0039 ; Common # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B ; Common # Po [2] COLON..SEMICOLON
+003C..003E ; Common # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F..0040 ; Common # Po [2] QUESTION MARK..COMMERCIAL AT
+005B ; Common # Ps LEFT SQUARE BRACKET
+005C ; Common # Po REVERSE SOLIDUS
+005D ; Common # Pe RIGHT SQUARE BRACKET
+005E ; Common # Sk CIRCUMFLEX ACCENT
+005F ; Common # Pc LOW LINE
+0060 ; Common # Sk GRAVE ACCENT
+007B ; Common # Ps LEFT CURLY BRACKET
+007C ; Common # Sm VERTICAL LINE
+007D ; Common # Pe RIGHT CURLY BRACKET
+007E ; Common # Sm TILDE
+007F..009F ; Common # Cc [33] <control-007F>..<control-009F>
+00A0 ; Common # Zs NO-BREAK SPACE
+00A1 ; Common # Po INVERTED EXCLAMATION MARK
+00A2..00A5 ; Common # Sc [4] CENT SIGN..YEN SIGN
+00A6..00A7 ; Common # So [2] BROKEN BAR..SECTION SIGN
+00A8 ; Common # Sk DIAERESIS
+00A9 ; Common # So COPYRIGHT SIGN
+00AB ; Common # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; Common # Sm NOT SIGN
+00AD ; Common # Cf SOFT HYPHEN
+00AE ; Common # So REGISTERED SIGN
+00AF ; Common # Sk MACRON
+00B0 ; Common # So DEGREE SIGN
+00B1 ; Common # Sm PLUS-MINUS SIGN
+00B2..00B3 ; Common # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; Common # Sk ACUTE ACCENT
+00B5 ; Common # L& MICRO SIGN
+00B6 ; Common # So PILCROW SIGN
+00B7 ; Common # Po MIDDLE DOT
+00B8 ; Common # Sk CEDILLA
+00B9 ; Common # No SUPERSCRIPT ONE
+00BB ; Common # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE ; Common # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF ; Common # Po INVERTED QUESTION MARK
+00D7 ; Common # Sm MULTIPLICATION SIGN
+00F7 ; Common # Sm DIVISION SIGN
+02B9..02C1 ; Common # Lm [9] MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
+02E5..02EB ; Common # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; Common # Lm MODIFIER LETTER VOICING
+02ED ; Common # Sk MODIFIER LETTER UNASPIRATED
+02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; Common # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0374 ; Common # Lm GREEK NUMERAL SIGN
+037E ; Common # Po GREEK QUESTION MARK
+0385 ; Common # Sk GREEK DIALYTIKA TONOS
+0387 ; Common # Po GREEK ANO TELEIA
+0589 ; Common # Po ARMENIAN FULL STOP
+0600..0603 ; Common # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+060C ; Common # Po ARABIC COMMA
+061B ; Common # Po ARABIC SEMICOLON
+061F ; Common # Po ARABIC QUESTION MARK
+0640 ; Common # Lm ARABIC TATWEEL
+0660..0669 ; Common # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+06DD ; Common # Cf ARABIC END OF AYAH
+0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0970 ; Common # Po DEVANAGARI ABBREVIATION SIGN
+0CF1..0CF2 ; Common # So [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
+10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR
+16EB..16ED ; Common # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+1735..1736 ; Common # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1802..1803 ; Common # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1805 ; Common # Po MONGOLIAN FOUR DOTS
+2000..200A ; Common # Zs [11] EN QUAD..HAIR SPACE
+200B ; Common # Cf ZERO WIDTH SPACE
+200E..200F ; Common # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+2010..2015 ; Common # Pd [6] HYPHEN..HORIZONTAL BAR
+2016..2017 ; Common # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
+2018 ; Common # Pi LEFT SINGLE QUOTATION MARK
+2019 ; Common # Pf RIGHT SINGLE QUOTATION MARK
+201A ; Common # Ps SINGLE LOW-9 QUOTATION MARK
+201B..201C ; Common # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201D ; Common # Pf RIGHT DOUBLE QUOTATION MARK
+201E ; Common # Ps DOUBLE LOW-9 QUOTATION MARK
+201F ; Common # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2027 ; Common # Po [8] DAGGER..HYPHENATION POINT
+2028 ; Common # Zl LINE SEPARATOR
+2029 ; Common # Zp PARAGRAPH SEPARATOR
+202A..202E ; Common # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F ; Common # Zs NARROW NO-BREAK SPACE
+2030..2038 ; Common # Po [9] PER MILLE SIGN..CARET
+2039 ; Common # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; Common # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B..203E ; Common # Po [4] REFERENCE MARK..OVERLINE
+203F..2040 ; Common # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043 ; Common # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044 ; Common # Sm FRACTION SLASH
+2045 ; Common # Ps LEFT SQUARE BRACKET WITH QUILL
+2046 ; Common # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2051 ; Common # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; Common # Sm COMMERCIAL MINUS SIGN
+2053 ; Common # Po SWUNG DASH
+2054 ; Common # Pc INVERTED UNDERTIE
+2055..205E ; Common # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+205F ; Common # Zs MEDIUM MATHEMATICAL SPACE
+2060..2064 ; Common # Cf [5] WORD JOINER..INVISIBLE PLUS
+206A..206F ; Common # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+2070 ; Common # No SUPERSCRIPT ZERO
+2074..2079 ; Common # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+207A..207C ; Common # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; Common # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; Common # Pe SUPERSCRIPT RIGHT PARENTHESIS
+2080..2089 ; Common # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
+208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
+20A0..20B5 ; Common # Sc [22] EURO-CURRENCY SIGN..CEDI SIGN
+2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
+2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
+2107 ; Common # L& EULER CONSTANT
+2108..2109 ; Common # So [2] SCRUPLE..DEGREE FAHRENHEIT
+210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
+2114 ; Common # So L B BAR SYMBOL
+2115 ; Common # L& DOUBLE-STRUCK CAPITAL N
+2116..2118 ; Common # So [3] NUMERO SIGN..SCRIPT CAPITAL P
+2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE
+2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z
+2125 ; Common # So OUNCE SIGN
+2127 ; Common # So INVERTED OHM SIGN
+2128 ; Common # L& BLACK-LETTER CAPITAL Z
+2129 ; Common # So TURNED GREEK SMALL LETTER IOTA
+212C..212D ; Common # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E ; Common # So ESTIMATED SYMBOL
+212F..2131 ; Common # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
+2133..2134 ; Common # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
+2135..2138 ; Common # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; Common # L& INFORMATION SOURCE
+213A..213B ; Common # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F ; Common # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144 ; Common # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149 ; Common # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A ; Common # So PROPERTY LINE
+214B ; Common # Sm TURNED AMPERSAND
+214C..214D ; Common # So [2] PER SIGN..AKTIESELSKAB
+214F ; Common # So SYMBOL FOR SAMARITAN SOURCE
+2153..215F ; Common # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
+2190..2194 ; Common # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199 ; Common # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B ; Common # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F ; Common # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0 ; Common # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2 ; Common # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3 ; Common # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5 ; Common # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6 ; Common # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD ; Common # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE ; Common # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21CD ; Common # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; Common # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; Common # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2 ; Common # Sm RIGHTWARDS DOUBLE ARROW
+21D3 ; Common # So DOWNWARDS DOUBLE ARROW
+21D4 ; Common # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21F3 ; Common # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..22FF ; Common # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
+2300..2307 ; Common # So [8] DIAMETER SIGN..WAVY LINE
+2308..230B ; Common # Sm [4] LEFT CEILING..RIGHT FLOOR
+230C..231F ; Common # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
+2320..2321 ; Common # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328 ; Common # So [7] FROWN..KEYBOARD
+2329 ; Common # Ps LEFT-POINTING ANGLE BRACKET
+232A ; Common # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B ; Common # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C ; Common # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; Common # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB ; Common # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; Common # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23E7 ; Common # So [6] WHITE TRAPEZIUM..ELECTRICAL INTERSECTION
+2400..2426 ; Common # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; Common # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA..24FF ; Common # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
+2500..25B6 ; Common # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
+25B7 ; Common # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25C0 ; Common # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
+25C1 ; Common # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25F7 ; Common # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
+266F ; Common # Sm MUSIC SHARP SIGN
+2670..269D ; Common # So [46] WEST SYRIAC CROSS..OUTLINED WHITE STAR
+26A0..26BC ; Common # So [29] WARNING SIGN..SESQUIQUADRATE
+26C0..26C3 ; Common # So [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+2701..2704 ; Common # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
+2706..2709 ; Common # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
+270C..2727 ; Common # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
+2729..274B ; Common # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274D ; Common # So SHADOWED WHITE CIRCLE
+274F..2752 ; Common # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2756 ; Common # So BLACK DIAMOND MINUS WHITE X
+2758..275E ; Common # So [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761..2767 ; Common # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
+2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; Common # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; Common # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; Common # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; Common # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; Common # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; Common # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; Common # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; Common # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; Common # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794 ; Common # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2798..27AF ; Common # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B1..27BE ; Common # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER
+27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27CA ; Common # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CC ; Common # Sm LONG DIVISION
+27D0..27E5 ; Common # Sm [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; Common # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; Common # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; Common # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; Common # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; Common # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; Common # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; Common # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; Common # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2900..2982 ; Common # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
+2983 ; Common # Ps LEFT WHITE CURLY BRACKET
+2984 ; Common # Pe RIGHT WHITE CURLY BRACKET
+2985 ; Common # Ps LEFT WHITE PARENTHESIS
+2986 ; Common # Pe RIGHT WHITE PARENTHESIS
+2987 ; Common # Ps Z NOTATION LEFT IMAGE BRACKET
+2988 ; Common # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989 ; Common # Ps Z NOTATION LEFT BINDING BRACKET
+298A ; Common # Pe Z NOTATION RIGHT BINDING BRACKET
+298B ; Common # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; Common # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; Common # Ps LEFT ANGLE BRACKET WITH DOT
+2992 ; Common # Pe RIGHT ANGLE BRACKET WITH DOT
+2993 ; Common # Ps LEFT ARC LESS-THAN BRACKET
+2994 ; Common # Pe RIGHT ARC GREATER-THAN BRACKET
+2995 ; Common # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; Common # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; Common # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; Common # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7 ; Common # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8 ; Common # Ps LEFT WIGGLY FENCE
+29D9 ; Common # Pe RIGHT WIGGLY FENCE
+29DA ; Common # Ps LEFT DOUBLE WIGGLY FENCE
+29DB ; Common # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB ; Common # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC ; Common # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; Common # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..2AFF ; Common # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
+2B00..2B2F ; Common # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44 ; Common # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46 ; Common # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C ; Common # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B50..2B54 ; Common # So [5] WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET
+2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET
+2E04 ; Common # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; Common # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08 ; Common # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09 ; Common # Pi LEFT TRANSPOSITION BRACKET
+2E0A ; Common # Pf RIGHT TRANSPOSITION BRACKET
+2E0B ; Common # Po RAISED SQUARE
+2E0C ; Common # Pi LEFT RAISED OMISSION BRACKET
+2E0D ; Common # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E16 ; Common # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+2E17 ; Common # Pd DOUBLE OBLIQUE HYPHEN
+2E18..2E19 ; Common # Po [2] INVERTED INTERROBANG..PALM BRANCH
+2E1A ; Common # Pd HYPHEN WITH DIAERESIS
+2E1B ; Common # Po TILDE WITH RING ABOVE
+2E1C ; Common # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D ; Common # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F ; Common # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20 ; Common # Pi LEFT VERTICAL BAR WITH QUILL
+2E21 ; Common # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22 ; Common # Ps TOP LEFT HALF BRACKET
+2E23 ; Common # Pe TOP RIGHT HALF BRACKET
+2E24 ; Common # Ps BOTTOM LEFT HALF BRACKET
+2E25 ; Common # Pe BOTTOM RIGHT HALF BRACKET
+2E26 ; Common # Ps LEFT SIDEWAYS U BRACKET
+2E27 ; Common # Pe RIGHT SIDEWAYS U BRACKET
+2E28 ; Common # Ps LEFT DOUBLE PARENTHESIS
+2E29 ; Common # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2E ; Common # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+2E2F ; Common # Lm VERTICAL TILDE
+2E30 ; Common # Po RING POINT
+2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+3000 ; Common # Zs IDEOGRAPHIC SPACE
+3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
+3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3006 ; Common # Lo IDEOGRAPHIC CLOSING MARK
+3008 ; Common # Ps LEFT ANGLE BRACKET
+3009 ; Common # Pe RIGHT ANGLE BRACKET
+300A ; Common # Ps LEFT DOUBLE ANGLE BRACKET
+300B ; Common # Pe RIGHT DOUBLE ANGLE BRACKET
+300C ; Common # Ps LEFT CORNER BRACKET
+300D ; Common # Pe RIGHT CORNER BRACKET
+300E ; Common # Ps LEFT WHITE CORNER BRACKET
+300F ; Common # Pe RIGHT WHITE CORNER BRACKET
+3010 ; Common # Ps LEFT BLACK LENTICULAR BRACKET
+3011 ; Common # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013 ; Common # So [2] POSTAL MARK..GETA MARK
+3014 ; Common # Ps LEFT TORTOISE SHELL BRACKET
+3015 ; Common # Pe RIGHT TORTOISE SHELL BRACKET
+3016 ; Common # Ps LEFT WHITE LENTICULAR BRACKET
+3017 ; Common # Pe RIGHT WHITE LENTICULAR BRACKET
+3018 ; Common # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; Common # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; Common # Ps LEFT WHITE SQUARE BRACKET
+301B ; Common # Pe RIGHT WHITE SQUARE BRACKET
+301C ; Common # Pd WAVE DASH
+301D ; Common # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F ; Common # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020 ; Common # So POSTAL MARK FACE
+3030 ; Common # Pd WAVY DASH
+3031..3035 ; Common # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037 ; Common # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+303C ; Common # Lo MASU MARK
+303D ; Common # Po PART ALTERNATION MARK
+303E..303F ; Common # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+309B..309C ; Common # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+30A0 ; Common # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30FB ; Common # Po KATAKANA MIDDLE DOT
+30FC ; Common # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
+3190..3191 ; Common # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31C0..31E3 ; Common # So [36] CJK STROKE T..CJK STROKE Q
+3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3243 ; Common # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
+3250 ; Common # So PARTNERSHIP SIGN
+3251..325F ; Common # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+327F ; Common # So KOREAN STANDARD SYMBOL
+3280..3289 ; Common # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; Common # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; Common # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32CF ; Common # So [16] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..LIMITED LIABILITY SIGN
+3358..33FF ; Common # So [168] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..SQUARE GAL
+4DC0..4DFF ; Common # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+A700..A716 ; Common # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; Common # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; Common # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A788 ; Common # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; Common # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+FD3E ; Common # Ps ORNATE LEFT PARENTHESIS
+FD3F ; Common # Pe ORNATE RIGHT PARENTHESIS
+FDFD ; Common # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FE10..FE16 ; Common # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; Common # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; Common # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; Common # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; Common # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; Common # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; Common # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; Common # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; Common # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; Common # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; Common # Pd SMALL EM DASH
+FE59 ; Common # Ps SMALL LEFT PARENTHESIS
+FE5A ; Common # Pe SMALL RIGHT PARENTHESIS
+FE5B ; Common # Ps SMALL LEFT CURLY BRACKET
+FE5C ; Common # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; Common # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; Common # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; Common # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; Common # Sm SMALL PLUS SIGN
+FE63 ; Common # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; Common # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; Common # Po SMALL REVERSE SOLIDUS
+FE69 ; Common # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; Common # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FEFF ; Common # Cf ZERO WIDTH NO-BREAK SPACE
+FF01..FF03 ; Common # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; Common # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; Common # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; Common # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; Common # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; Common # Po FULLWIDTH ASTERISK
+FF0B ; Common # Sm FULLWIDTH PLUS SIGN
+FF0C ; Common # Po FULLWIDTH COMMA
+FF0D ; Common # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; Common # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; Common # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; Common # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; Common # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20 ; Common # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF3B ; Common # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; Common # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; Common # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; Common # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; Common # Pc FULLWIDTH LOW LINE
+FF40 ; Common # Sk FULLWIDTH GRAVE ACCENT
+FF5B ; Common # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; Common # Sm FULLWIDTH VERTICAL LINE
+FF5D ; Common # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; Common # Sm FULLWIDTH TILDE
+FF5F ; Common # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; Common # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; Common # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; Common # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; Common # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; Common # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF70 ; Common # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF9E..FF9F ; Common # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFE0..FFE1 ; Common # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; Common # Sm FULLWIDTH NOT SIGN
+FFE3 ; Common # Sk FULLWIDTH MACRON
+FFE4 ; Common # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; Common # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; Common # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; Common # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; Common # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB ; Common # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
+10100..10101 ; Common # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
+10102 ; Common # So AEGEAN CHECK MARK
+10107..10133 ; Common # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F ; Common # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10190..1019B ; Common # So [12] ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166 ; Common # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D16A..1D16C ; Common # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172 ; Common # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AE..1D1DD ; Common # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D371 ; Common # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D400..1D454 ; Common # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; Common # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; Common # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; Common # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; Common # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; Common # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; Common # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; Common # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; Common # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; Common # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; Common # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; Common # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; Common # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; Common # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; Common # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; Common # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; Common # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; Common # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; Common # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; Common # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; Common # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; Common # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; Common # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; Common # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; Common # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; Common # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; Common # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; Common # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; Common # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; Common # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; Common # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; Common # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; Common # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1F000..1F02B ; Common # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F030..1F093 ; Common # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+E0001 ; Common # Cf LANGUAGE TAG
+E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
+
+# Total code points: 5178
+
+# ================================================
+
+0041..005A ; Latin # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+0061..007A ; Latin # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+00AA ; Latin # L& FEMININE ORDINAL INDICATOR
+00BA ; Latin # L& MASCULINE ORDINAL INDICATOR
+00C0..00D6 ; Latin # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D8..00F6 ; Latin # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F8..01BA ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB ; Latin # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; Latin # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3 ; Latin # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..0293 ; Latin # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
+0294 ; Latin # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; Latin # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02B8 ; Latin # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+02E0..02E4 ; Latin # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+1D00..1D25 ; Latin # L& [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN
+1D2C..1D5C ; Latin # Lm [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL AIN
+1D62..1D65 ; Latin # L& [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
+1D6B..1D77 ; Latin # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D79..1D9A ; Latin # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBE ; Latin # Lm [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH
+1E00..1EFF ; Latin # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+2071 ; Latin # L& SUPERSCRIPT LATIN SMALL LETTER I
+207F ; Latin # L& SUPERSCRIPT LATIN SMALL LETTER N
+2090..2094 ; Latin # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
+212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN
+2132 ; Latin # L& TURNED CAPITAL F
+214E ; Latin # L& TURNED SMALL F
+2160..2182 ; Latin # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; Latin # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188 ; Latin # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2C60..2C6F ; Latin # L& [16] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN CAPITAL LETTER TURNED A
+2C71..2C7C ; Latin # L& [12] LATIN SMALL LETTER V WITH RIGHT HOOK..LATIN SUBSCRIPT SMALL LETTER J
+2C7D ; Latin # Lm MODIFIER LETTER CAPITAL V
+A722..A76F ; Latin # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770 ; Latin # Lm MODIFIER LETTER US
+A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A78B..A78C ; Latin # L& [2] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER SALTILLO
+A7FB..A7FF ; Latin # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+
+# Total code points: 1241
+
+# ================================================
+
+0370..0373 ; Greek # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0375 ; Greek # Sk GREEK LOWER NUMERAL SIGN
+0376..0377 ; Greek # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; Greek # Lm GREEK YPOGEGRAMMENI
+037B..037D ; Greek # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0384 ; Greek # Sk GREEK TONOS
+0386 ; Greek # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0388..038A ; Greek # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; Greek # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1 ; Greek # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03E1 ; Greek # L& [63] GREEK CAPITAL LETTER SIGMA..GREEK SMALL LETTER SAMPI
+03F0..03F5 ; Greek # L& [6] GREEK KAPPA SYMBOL..GREEK LUNATE EPSILON SYMBOL
+03F6 ; Greek # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF ; Greek # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+1D26..1D2A ; Greek # L& [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK LETTER SMALL CAPITAL PSI
+1D5D..1D61 ; Greek # Lm [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER SMALL CHI
+1D66..1D6A ; Greek # L& [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
+1DBF ; Greek # Lm MODIFIER LETTER SMALL THETA
+1F00..1F15 ; Greek # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; Greek # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; Greek # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; Greek # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; Greek # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; Greek # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; Greek # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; Greek # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; Greek # Sk GREEK KORONIS
+1FBE ; Greek # L& GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; Greek # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; Greek # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; Greek # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; Greek # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; Greek # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; Greek # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; Greek # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; Greek # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; Greek # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; Greek # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; Greek # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; Greek # Sk [2] GREEK OXIA..GREEK DASIA
+2126 ; Greek # L& OHM SIGN
+10140..10174 ; Greek # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178 ; Greek # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189 ; Greek # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A ; Greek # No GREEK ZERO SIGN
+1D200..1D241 ; Greek # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244 ; Greek # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245 ; Greek # So GREEK MUSICAL LEIMMA
+
+# Total code points: 511
+
+# ================================================
+
+0400..0481 ; Cyrillic # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
+0482 ; Cyrillic # So CYRILLIC THOUSANDS SIGN
+0483..0487 ; Cyrillic # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..0523 ; Cyrillic # L& [154] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
+1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
+2DE0..2DFF ; Cyrillic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+A640..A65F ; Cyrillic # L& [32] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER YN
+A662..A66D ; Cyrillic # L& [12] CYRILLIC CAPITAL LETTER SOFT DE..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; Cyrillic # Lo CYRILLIC LETTER MULTIOCULAR O
+A66F ; Cyrillic # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; Cyrillic # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673 ; Cyrillic # Po SLAVONIC ASTERISK
+A67C..A67D ; Cyrillic # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A67E ; Cyrillic # Po CYRILLIC KAVYKA
+A67F ; Cyrillic # Lm CYRILLIC PAYEROK
+A680..A697 ; Cyrillic # L& [24] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER SHWE
+
+# Total code points: 404
+
+# ================================================
+
+0531..0556 ; Armenian # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559 ; Armenian # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; Armenian # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0561..0587 ; Armenian # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
+058A ; Armenian # Pd ARMENIAN HYPHEN
+FB13..FB17 ; Armenian # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+
+# Total code points: 90
+
+# ================================================
+
+0591..05BD ; Hebrew # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE ; Hebrew # Pd HEBREW PUNCTUATION MAQAF
+05BF ; Hebrew # Mn HEBREW POINT RAFE
+05C0 ; Hebrew # Po HEBREW PUNCTUATION PASEQ
+05C1..05C2 ; Hebrew # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; Hebrew # Po HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5 ; Hebrew # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6 ; Hebrew # Po HEBREW PUNCTUATION NUN HAFUKHA
+05C7 ; Hebrew # Mn HEBREW POINT QAMATS QATAN
+05D0..05EA ; Hebrew # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05F0..05F2 ; Hebrew # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4 ; Hebrew # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+FB1D ; Hebrew # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1E ; Hebrew # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28 ; Hebrew # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; Hebrew # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; Hebrew # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; Hebrew # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; Hebrew # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; Hebrew # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; Hebrew # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+
+# Total code points: 133
+
+# ================================================
+
+0606..0608 ; Arabic # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A ; Arabic # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; Arabic # Sc AFGHANI SIGN
+060D ; Arabic # Po ARABIC DATE SEPARATOR
+060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
+0621..063F ; Arabic # Lo [31] ARABIC LETTER HAMZA..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS
+066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; Arabic # Po ARABIC FULL STOP
+06D5 ; Arabic # Lo ARABIC LETTER AE
+06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DE ; Arabic # Me ARABIC START OF RUB EL HIZB
+06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9 ; Arabic # So ARABIC PLACE OF SAJDAH
+06EA..06ED ; Arabic # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF ; Arabic # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; Arabic # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC ; Arabic # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
+0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; Arabic # Sc RIAL SIGN
+FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+
+# Total code points: 999
+
+# ================================================
+
+0700..070D ; Syriac # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F ; Syriac # Cf SYRIAC ABBREVIATION MARK
+0710 ; Syriac # Lo SYRIAC LETTER ALAPH
+0711 ; Syriac # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F ; Syriac # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A ; Syriac # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F ; Syriac # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+
+# Total code points: 77
+
+# ================================================
+
+0780..07A5 ; Thaana # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0 ; Thaana # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1 ; Thaana # Lo THAANA LETTER NAA
+
+# Total code points: 50
+
+# ================================================
+
+0901..0902 ; Devanagari # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA
+0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA
+093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA
+0950 ; Devanagari # Lo DEVANAGARI OM
+0953..0954 ; Devanagari # Mn [2] DEVANAGARI GRAVE ACCENT..DEVANAGARI ACUTE ACCENT
+0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0971 ; Devanagari # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972 ; Devanagari # Lo DEVANAGARI LETTER CANDRA A
+097B..097F ; Devanagari # Lo [5] DEVANAGARI LETTER GGA..DEVANAGARI LETTER BBA
+
+# Total code points: 107
+
+# ================================================
+
+0981 ; Bengali # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; Bengali # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C ; Bengali # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; Bengali # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; Bengali # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; Bengali # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; Bengali # Lo BENGALI LETTER LA
+09B6..09B9 ; Bengali # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC ; Bengali # Mn BENGALI SIGN NUKTA
+09BD ; Bengali # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0 ; Bengali # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; Bengali # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8 ; Bengali # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; Bengali # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD ; Bengali # Mn BENGALI SIGN VIRAMA
+09CE ; Bengali # Lo BENGALI LETTER KHANDA TA
+09D7 ; Bengali # Mc BENGALI AU LENGTH MARK
+09DC..09DD ; Bengali # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; Bengali # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3 ; Bengali # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF ; Bengali # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1 ; Bengali # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3 ; Bengali # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F9 ; Bengali # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; Bengali # So BENGALI ISSHAR
+
+# Total code points: 91
+
+# ================================================
+
+0A01..0A02 ; Gurmukhi # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03 ; Gurmukhi # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A ; Gurmukhi # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; Gurmukhi # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; Gurmukhi # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; Gurmukhi # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; Gurmukhi # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; Gurmukhi # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; Gurmukhi # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C ; Gurmukhi # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40 ; Gurmukhi # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; Gurmukhi # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; Gurmukhi # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C ; Gurmukhi # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; Gurmukhi # Lo GURMUKHI LETTER FA
+0A66..0A6F ; Gurmukhi # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71 ; Gurmukhi # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74 ; Gurmukhi # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75 ; Gurmukhi # Mn GURMUKHI SIGN YAKASH
+
+# Total code points: 79
+
+# ================================================
+
+0A81..0A82 ; Gujarati # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83 ; Gujarati # Mc GUJARATI SIGN VISARGA
+0A85..0A8D ; Gujarati # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; Gujarati # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; Gujarati # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; Gujarati # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; Gujarati # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; Gujarati # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC ; Gujarati # Mn GUJARATI SIGN NUKTA
+0ABD ; Gujarati # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0 ; Gujarati # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5 ; Gujarati # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9 ; Gujarati # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; Gujarati # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD ; Gujarati # Mn GUJARATI SIGN VIRAMA
+0AD0 ; Gujarati # Lo GUJARATI OM
+0AE0..0AE1 ; Gujarati # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF ; Gujarati # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF1 ; Gujarati # Sc GUJARATI RUPEE SIGN
+
+# Total code points: 83
+
+# ================================================
+
+0B01 ; Oriya # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; Oriya # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C ; Oriya # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; Oriya # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; Oriya # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; Oriya # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; Oriya # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; Oriya # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C ; Oriya # Mn ORIYA SIGN NUKTA
+0B3D ; Oriya # Lo ORIYA SIGN AVAGRAHA
+0B3E ; Oriya # Mc ORIYA VOWEL SIGN AA
+0B3F ; Oriya # Mn ORIYA VOWEL SIGN I
+0B40 ; Oriya # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; Oriya # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48 ; Oriya # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; Oriya # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D ; Oriya # Mn ORIYA SIGN VIRAMA
+0B56 ; Oriya # Mn ORIYA AI LENGTH MARK
+0B57 ; Oriya # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D ; Oriya # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; Oriya # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; Oriya # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; Oriya # So ORIYA ISSHAR
+0B71 ; Oriya # Lo ORIYA LETTER WA
+
+# Total code points: 84
+
+# ================================================
+
+0B82 ; Tamil # Mn TAMIL SIGN ANUSVARA
+0B83 ; Tamil # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; Tamil # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; Tamil # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; Tamil # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; Tamil # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; Tamil # Lo TAMIL LETTER JA
+0B9E..0B9F ; Tamil # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; Tamil # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; Tamil # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; Tamil # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF ; Tamil # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; Tamil # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; Tamil # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; Tamil # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; Tamil # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD ; Tamil # Mn TAMIL SIGN VIRAMA
+0BD0 ; Tamil # Lo TAMIL OM
+0BD7 ; Tamil # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF ; Tamil # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; Tamil # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8 ; Tamil # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9 ; Tamil # Sc TAMIL RUPEE SIGN
+0BFA ; Tamil # So TAMIL NUMBER SIGN
+
+# Total code points: 72
+
+# ================================================
+
+0C01..0C03 ; Telugu # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C05..0C0C ; Telugu # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C33 ; Telugu # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
+0C35..0C39 ; Telugu # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
+0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48 ; Telugu # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C59 ; Telugu # Lo [2] TELUGU LETTER TSA..TELUGU LETTER DZA
+0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F ; Telugu # So TELUGU SIGN TUUMU
+
+# Total code points: 93
+
+# ================================================
+
+0C82..0C83 ; Kannada # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C85..0C8C ; Kannada # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; Kannada # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; Kannada # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; Kannada # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; Kannada # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC ; Kannada # Mn KANNADA SIGN NUKTA
+0CBD ; Kannada # Lo KANNADA SIGN AVAGRAHA
+0CBE ; Kannada # Mc KANNADA VOWEL SIGN AA
+0CBF ; Kannada # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; Kannada # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6 ; Kannada # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; Kannada # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDE ; Kannada # Lo KANNADA LETTER FA
+0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+
+# Total code points: 84
+
+# ================================================
+
+0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D05..0D0C ; Malayalam # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D28 ; Malayalam # Lo [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
+0D2A..0D39 ; Malayalam # Lo [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
+0D3D ; Malayalam # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44 ; Malayalam # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
+0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
+0D60..0D61 ; Malayalam # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; Malayalam # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F ; Malayalam # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75 ; Malayalam # No [6] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D79 ; Malayalam # So MALAYALAM DATE MARK
+0D7A..0D7F ; Malayalam # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+
+# Total code points: 95
+
+# ================================================
+
+0D82..0D83 ; Sinhala # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96 ; Sinhala # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; Sinhala # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; Sinhala # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; Sinhala # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; Sinhala # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA ; Sinhala # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1 ; Sinhala # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; Sinhala # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; Sinhala # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; Sinhala # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DF2..0DF3 ; Sinhala # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; Sinhala # Po SINHALA PUNCTUATION KUNDDALIYA
+
+# Total code points: 80
+
+# ================================================
+
+0E01..0E30 ; Thai # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31 ; Thai # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; Thai # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A ; Thai # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E40..0E45 ; Thai # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46 ; Thai # Lm THAI CHARACTER MAIYAMOK
+0E47..0E4E ; Thai # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F ; Thai # Po THAI CHARACTER FONGMAN
+0E50..0E59 ; Thai # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; Thai # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+
+# Total code points: 86
+
+# ================================================
+
+0E81..0E82 ; Lao # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; Lao # Lo LAO LETTER KHO TAM
+0E87..0E88 ; Lao # Lo [2] LAO LETTER NGO..LAO LETTER CO
+0E8A ; Lao # Lo LAO LETTER SO TAM
+0E8D ; Lao # Lo LAO LETTER NYO
+0E94..0E97 ; Lao # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
+0E99..0E9F ; Lao # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
+0EA1..0EA3 ; Lao # Lo [3] LAO LETTER MO..LAO LETTER LO LING
+0EA5 ; Lao # Lo LAO LETTER LO LOOT
+0EA7 ; Lao # Lo LAO LETTER WO
+0EAA..0EAB ; Lao # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAD..0EB0 ; Lao # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
+0EB1 ; Lao # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; Lao # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EB9 ; Lao # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBB..0EBC ; Lao # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
+0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6 ; Lao # Lm LAO KO LA
+0EC8..0ECD ; Lao # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDD ; Lao # Lo [2] LAO HO NO..LAO HO MO
+
+# Total code points: 65
+
+# ================================================
+
+0F00 ; Tibetan # Lo TIBETAN SYLLABLE OM
+0F01..0F03 ; Tibetan # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04..0F12 ; Tibetan # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+0F13..0F17 ; Tibetan # So [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; Tibetan # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; Tibetan # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; Tibetan # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33 ; Tibetan # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34 ; Tibetan # So TIBETAN MARK BSDUS RTAGS
+0F35 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38 ; Tibetan # So TIBETAN MARK CHE MGO
+0F39 ; Tibetan # Mn TIBETAN MARK TSA -PHRU
+0F3A ; Tibetan # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B ; Tibetan # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C ; Tibetan # Ps TIBETAN MARK ANG KHANG GYON
+0F3D ; Tibetan # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F ; Tibetan # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47 ; Tibetan # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; Tibetan # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E ; Tibetan # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F ; Tibetan # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85 ; Tibetan # Po TIBETAN MARK PALUTA
+0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8B ; Tibetan # Lo [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
+0F90..0F97 ; Tibetan # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; Tibetan # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD4 ; Tibetan # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+
+# Total code points: 201
+
+# ================================================
+
+1000..102A ; Myanmar # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C ; Myanmar # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; Myanmar # Mc MYANMAR VOWEL SIGN E
+1032..1037 ; Myanmar # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038 ; Myanmar # Mc MYANMAR SIGN VISARGA
+1039..103A ; Myanmar # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C ; Myanmar # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E ; Myanmar # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F ; Myanmar # Lo MYANMAR LETTER GREAT SA
+1040..1049 ; Myanmar # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F ; Myanmar # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1055 ; Myanmar # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D ; Myanmar # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060 ; Myanmar # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061 ; Myanmar # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064 ; Myanmar # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066 ; Myanmar # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D ; Myanmar # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070 ; Myanmar # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081 ; Myanmar # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082 ; Myanmar # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; Myanmar # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; Myanmar # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E ; Myanmar # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F ; Myanmar # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099 ; Myanmar # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109E..109F ; Myanmar # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+
+# Total code points: 156
+
+# ================================================
+
+10A0..10C5 ; Georgian # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10D0..10FA ; Georgian # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FC ; Georgian # Lm MODIFIER LETTER GEORGIAN NAR
+2D00..2D25 ; Georgian # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+
+# Total code points: 120
+
+# ================================================
+
+1100..1159 ; Hangul # Lo [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115F..11A2 ; Hangul # Lo [68] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA
+11A8..11F9 ; Hangul # Lo [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3260..327E ; Hangul # So [31] CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
+AC00..D7A3 ; Hangul # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+FFA0..FFBE ; Hangul # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+
+# Total code points: 11620
+
+# ================================================
+
+1200..1248 ; Ethiopic # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; Ethiopic # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; Ethiopic # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; Ethiopic # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; Ethiopic # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135F ; Ethiopic # Mn ETHIOPIC COMBINING GEMINATION MARK
+1360 ; Ethiopic # So ETHIOPIC SECTION MARK
+1361..1368 ; Ethiopic # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F ; Ethiopic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; Ethiopic # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+2D80..2D96 ; Ethiopic # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+
+# Total code points: 461
+
+# ================================================
+
+13A0..13F4 ; Cherokee # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+
+# Total code points: 85
+
+# ================================================
+
+1401..166C ; Canadian_Aboriginal # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E ; Canadian_Aboriginal # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..1676 ; Canadian_Aboriginal # Lo [8] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+
+# Total code points: 630
+
+# ================================================
+
+1680 ; Ogham # Zs OGHAM SPACE MARK
+1681..169A ; Ogham # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B ; Ogham # Ps OGHAM FEATHER MARK
+169C ; Ogham # Pe OGHAM REVERSED FEATHER MARK
+
+# Total code points: 29
+
+# ================================================
+
+16A0..16EA ; Runic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EE..16F0 ; Runic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+
+# Total code points: 78
+
+# ================================================
+
+1780..17B3 ; Khmer # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; Khmer # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6 ; Khmer # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; Khmer # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; Khmer # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; Khmer # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; Khmer # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3 ; Khmer # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D6 ; Khmer # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; Khmer # Lm KHMER SIGN LEK TOO
+17D8..17DA ; Khmer # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+17DB ; Khmer # Sc KHMER CURRENCY SYMBOL RIEL
+17DC ; Khmer # Lo KHMER SIGN AVAKRAHASANYA
+17DD ; Khmer # Mn KHMER SIGN ATTHACAN
+17E0..17E9 ; Khmer # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9 ; Khmer # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+19E0..19FF ; Khmer # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+
+# Total code points: 146
+
+# ================================================
+
+1800..1801 ; Mongolian # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
+1804 ; Mongolian # Po MONGOLIAN COLON
+1806 ; Mongolian # Pd MONGOLIAN TODO SOFT HYPHEN
+1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; Mongolian # Zs MONGOLIAN VOWEL SEPARATOR
+1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1877 ; Mongolian # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
+1880..18A8 ; Mongolian # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9 ; Mongolian # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; Mongolian # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+
+# Total code points: 153
+
+# ================================================
+
+3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
+
+# Total code points: 89
+
+# ================================================
+
+30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
+30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
+31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO
+3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
+FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+
+# Total code points: 299
+
+# ================================================
+
+3105..312D ; Bopomofo # Lo [41] BOPOMOFO LETTER B..BOPOMOFO LETTER IH
+31A0..31B7 ; Bopomofo # Lo [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+
+# Total code points: 65
+
+# ================================================
+
+2E80..2E99 ; Han # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; Han # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; Han # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+3005 ; Han # Lm IDEOGRAPHIC ITERATION MARK
+3007 ; Han # Nl IDEOGRAPHIC NUMBER ZERO
+3021..3029 ; Han # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+3400..4DB5 ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4E00..9FC3 ; Han # Lo [20932] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FC3
+F900..FA2D ; Han # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA30..FA6A ; Han # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+20000..2A6D6 ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+# Total code points: 71578
+
+# ================================================
+
+A000..A014 ; Yi # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; Yi # Lm YI SYLLABLE WU
+A016..A48C ; Yi # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
+
+# Total code points: 1220
+
+# ================================================
+
+10300..1031E ; Old_Italic # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+10320..10323 ; Old_Italic # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+
+# Total code points: 35
+
+# ================================================
+
+10330..10340 ; Gothic # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; Gothic # Nl GOTHIC LETTER NINETY
+10342..10349 ; Gothic # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; Gothic # Nl GOTHIC LETTER NINE HUNDRED
+
+# Total code points: 27
+
+# ================================================
+
+10400..1044F ; Deseret # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+
+# Total code points: 80
+
+# ================================================
+
+0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
+0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
+0951..0952 ; Inherited # Mn [2] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI STRESS SIGN ANUDATTA
+1DC0..1DE6 ; Inherited # Mn [39] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER Z
+1DFE..1DFF ; Inherited # Mn [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; Inherited # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+302A..302F ; Inherited # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE20..FE26 ; Inherited # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON
+101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+
+# Total code points: 496
+
+# ================================================
+
+1700..170C ; Tagalog # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
+170E..1711 ; Tagalog # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+
+# Total code points: 20
+
+# ================================================
+
+1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1734 ; Hanunoo # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+
+# Total code points: 21
+
+# ================================================
+
+1740..1751 ; Buhid # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753 ; Buhid # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+
+# Total code points: 20
+
+# ================================================
+
+1760..176C ; Tagbanwa # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; Tagbanwa # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773 ; Tagbanwa # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+
+# Total code points: 18
+
+# ================================================
+
+1900..191C ; Limbu # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+1920..1922 ; Limbu # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; Limbu # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; Limbu # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; Limbu # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; Limbu # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; Limbu # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; Limbu # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B ; Limbu # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940 ; Limbu # So LIMBU SIGN LOO
+1944..1945 ; Limbu # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F ; Limbu # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+
+# Total code points: 66
+
+# ================================================
+
+1950..196D ; Tai_Le # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; Tai_Le # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+
+# Total code points: 35
+
+# ================================================
+
+10000..1000B ; Linear_B # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; Linear_B # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; Linear_B # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; Linear_B # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; Linear_B # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; Linear_B # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; Linear_B # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+
+# Total code points: 211
+
+# ================================================
+
+10380..1039D ; Ugaritic # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F ; Ugaritic # Po UGARITIC WORD DIVIDER
+
+# Total code points: 31
+
+# ================================================
+
+10450..1047F ; Shavian # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+
+# Total code points: 48
+
+# ================================================
+
+10480..1049D ; Osmanya # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9 ; Osmanya # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+
+# Total code points: 40
+
+# ================================================
+
+10800..10805 ; Cypriot # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; Cypriot # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; Cypriot # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; Cypriot # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; Cypriot # Lo CYPRIOT SYLLABLE ZA
+1083F ; Cypriot # Lo CYPRIOT SYLLABLE ZO
+
+# Total code points: 55
+
+# ================================================
+
+2800..28FF ; Braille # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+
+# Total code points: 256
+
+# ================================================
+
+1A00..1A16 ; Buginese # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18 ; Buginese # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1B ; Buginese # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
+1A1E..1A1F ; Buginese # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+
+# Total code points: 30
+
+# ================================================
+
+03E2..03EF ; Coptic # L& [14] COPTIC CAPITAL LETTER SHEI..COPTIC SMALL LETTER DEI
+2C80..2CE4 ; Coptic # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA ; Coptic # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CF9..2CFC ; Coptic # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; Coptic # No COPTIC FRACTION ONE HALF
+2CFE..2CFF ; Coptic # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+
+# Total code points: 128
+
+# ================================================
+
+1980..19A9 ; New_Tai_Lue # Lo [42] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
+19B0..19C0 ; New_Tai_Lue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
+19C1..19C7 ; New_Tai_Lue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
+19C8..19C9 ; New_Tai_Lue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
+19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DE..19DF ; New_Tai_Lue # Po [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+
+# Total code points: 80
+
+# ================================================
+
+2C00..2C2E ; Glagolitic # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C30..2C5E ; Glagolitic # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+
+# Total code points: 94
+
+# ================================================
+
+2D30..2D65 ; Tifinagh # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+
+# Total code points: 55
+
+# ================================================
+
+A800..A801 ; Syloti_Nagri # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805 ; Syloti_Nagri # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN HASANTA
+A807..A80A ; Syloti_Nagri # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822 ; Syloti_Nagri # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824 ; Syloti_Nagri # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826 ; Syloti_Nagri # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827 ; Syloti_Nagri # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+
+# Total code points: 44
+
+# ================================================
+
+103A0..103C3 ; Old_Persian # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; Old_Persian # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0 ; Old_Persian # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; Old_Persian # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+
+# Total code points: 50
+
+# ================================================
+
+10A00 ; Kharoshthi # Lo KHAROSHTHI LETTER A
+10A01..10A03 ; Kharoshthi # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; Kharoshthi # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; Kharoshthi # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13 ; Kharoshthi # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; Kharoshthi # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A33 ; Kharoshthi # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A38..10A3A ; Kharoshthi # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; Kharoshthi # Mn KHAROSHTHI VIRAMA
+10A40..10A47 ; Kharoshthi # No [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A50..10A58 ; Kharoshthi # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+
+# Total code points: 65
+
+# ================================================
+
+1B00..1B03 ; Balinese # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04 ; Balinese # Mc BALINESE SIGN BISAH
+1B05..1B33 ; Balinese # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34 ; Balinese # Mn BALINESE SIGN REREKAN
+1B35 ; Balinese # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; Balinese # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B ; Balinese # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; Balinese # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; Balinese # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; Balinese # Mn BALINESE VOWEL SIGN PEPET
+1B43..1B44 ; Balinese # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4B ; Balinese # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59 ; Balinese # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60 ; Balinese # Po [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A ; Balinese # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; Balinese # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; Balinese # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+
+# Total code points: 121
+
+# ================================================
+
+12000..1236E ; Cuneiform # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+12400..12462 ; Cuneiform # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12470..12473 ; Cuneiform # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+
+# Total code points: 982
+
+# ================================================
+
+10900..10915 ; Phoenician # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..10919 ; Phoenician # No [4] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+1091F ; Phoenician # Po PHOENICIAN WORD SEPARATOR
+
+# Total code points: 27
+
+# ================================================
+
+A840..A873 ; Phags_Pa # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877 ; Phags_Pa # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+
+# Total code points: 56
+
+# ================================================
+
+07C0..07C9 ; Nko # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; Nko # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3 ; Nko # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5 ; Nko # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6 ; Nko # So NKO SYMBOL OO DENNEN
+07F7..07F9 ; Nko # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+07FA ; Nko # Lm NKO LAJANYALAN
+
+# Total code points: 59
+
+# ================================================
+
+1B80..1B81 ; Sundanese # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82 ; Sundanese # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0 ; Sundanese # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1 ; Sundanese # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; Sundanese # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; Sundanese # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; Sundanese # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; Sundanese # Mc SUNDANESE SIGN PAMAAEH
+1BAE..1BAF ; Sundanese # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9 ; Sundanese # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+
+# Total code points: 55
+
+# ================================================
+
+1C00..1C23 ; Lepcha # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B ; Lepcha # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33 ; Lepcha # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; Lepcha # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37 ; Lepcha # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F ; Lepcha # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; Lepcha # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F ; Lepcha # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+
+# Total code points: 74
+
+# ================================================
+
+1C50..1C59 ; Ol_Chiki # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77 ; Ol_Chiki # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; Ol_Chiki # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F ; Ol_Chiki # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+
+# Total code points: 48
+
+# ================================================
+
+A500..A60B ; Vai # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; Vai # Lm VAI SYLLABLE LENGTHENER
+A60D..A60F ; Vai # Po [3] VAI COMMA..VAI QUESTION MARK
+A610..A61F ; Vai # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629 ; Vai # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B ; Vai # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+
+# Total code points: 300
+
+# ================================================
+
+A880..A881 ; Saurashtra # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3 ; Saurashtra # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3 ; Saurashtra # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4 ; Saurashtra # Mn SAURASHTRA SIGN VIRAMA
+A8CE..A8CF ; Saurashtra # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; Saurashtra # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+
+# Total code points: 81
+
+# ================================================
+
+A900..A909 ; Kayah_Li # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925 ; Kayah_Li # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D ; Kayah_Li # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F ; Kayah_Li # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+
+# Total code points: 48
+
+# ================================================
+
+A930..A946 ; Rejang # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951 ; Rejang # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953 ; Rejang # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F ; Rejang # Po REJANG SECTION MARK
+
+# Total code points: 37
+
+# ================================================
+
+10280..1029C ; Lycian # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+
+# Total code points: 29
+
+# ================================================
+
+102A0..102D0 ; Carian # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+
+# Total code points: 49
+
+# ================================================
+
+10920..10939 ; Lydian # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F ; Lydian # Po LYDIAN TRIANGULAR MARK
+
+# Total code points: 27
+
+# ================================================
+
+AA00..AA28 ; Cham # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E ; Cham # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; Cham # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; Cham # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; Cham # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; Cham # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42 ; Cham # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43 ; Cham # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B ; Cham # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C ; Cham # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; Cham # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59 ; Cham # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C..AA5F ; Cham # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+
+# Total code points: 83
+
+# EOF
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-parse.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-parse.py
new file mode 100644
index 00000000000..6818c1dbfcf
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-parse.py
@@ -0,0 +1,70 @@
+import sys
+from unicode_parse_common import *
+
+# http://www.unicode.org/Public/5.1.0/ucd/extracted/DerivedGeneralCategory.txt
+
+category_to_harfbuzz = {
+ 'Mn': 'HB_Mark_NonSpacing',
+ 'Mc': 'HB_Mark_SpacingCombining',
+ 'Me': 'HB_Mark_Enclosing',
+
+ 'Nd': 'HB_Number_DecimalDigit',
+ 'Nl': 'HB_Number_Letter',
+ 'No': 'HB_Number_Other',
+
+ 'Zs': 'HB_Separator_Space',
+ 'Zl': 'HB_Separator_Line',
+ 'Zp': 'HB_Separator_Paragraph',
+
+ 'Cc': 'HB_Other_Control',
+ 'Cf': 'HB_Other_Format',
+ 'Cs': 'HB_Other_Surrogate',
+ 'Co': 'HB_Other_PrivateUse',
+ 'Cn': 'HB_Other_NotAssigned',
+
+ 'Lu': 'HB_Letter_Uppercase',
+ 'Ll': 'HB_Letter_Lowercase',
+ 'Lt': 'HB_Letter_Titlecase',
+ 'Lm': 'HB_Letter_Modifier',
+ 'Lo': 'HB_Letter_Other',
+
+ 'Pc': 'HB_Punctuation_Connector',
+ 'Pd': 'HB_Punctuation_Dash',
+ 'Ps': 'HB_Punctuation_Open',
+ 'Pe': 'HB_Punctuation_Close',
+ 'Pi': 'HB_Punctuation_InitialQuote',
+ 'Pf': 'HB_Punctuation_FinalQuote',
+ 'Po': 'HB_Punctuation_Other',
+
+ 'Sm': 'HB_Symbol_Math',
+ 'Sc': 'HB_Symbol_Currency',
+ 'Sk': 'HB_Symbol_Modifier',
+ 'So': 'HB_Symbol_Other',
+}
+
+def main(infile, outfile):
+ ranges = unicode_file_parse(infile, category_to_harfbuzz)
+ ranges = sort_and_merge(ranges)
+
+ print >>outfile, '// Generated from Unicode script tables\n'
+ print >>outfile, '#ifndef CATEGORY_PROPERTIES_H_'
+ print >>outfile, '#define CATEGORY_PROPERTIES_H_\n'
+ print >>outfile, '#include <stdint.h>'
+ print >>outfile, '#include "harfbuzz-external.h"\n'
+ print >>outfile, 'struct category_property {'
+ print >>outfile, ' uint32_t range_start;'
+ print >>outfile, ' uint32_t range_end;'
+ print >>outfile, ' HB_CharCategory category;'
+ print >>outfile, '};\n'
+ print >>outfile, 'static const struct category_property category_properties[] = {'
+ for (start, end, value) in ranges:
+ print >>outfile, ' {0x%x, 0x%x, %s},' % (start, end, value)
+ print >>outfile, '};\n'
+ print >>outfile, 'static const unsigned category_properties_count = %d;\n' % len(ranges)
+ print >>outfile, '#endif // CATEGORY_PROPERTIES_H_'
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print 'Usage: %s <input .txt> <output .h>' % sys.argv[0]
+ else:
+ main(file(sys.argv[1], 'r'), file(sys.argv[2], 'w+'))
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-properties.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-properties.h
new file mode 100644
index 00000000000..3b7c7cafc55
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/category-properties.h
@@ -0,0 +1,2869 @@
+// Generated from Unicode script tables
+
+#ifndef CATEGORY_PROPERTIES_H_
+#define CATEGORY_PROPERTIES_H_
+
+#include <stdint.h>
+#include "harfbuzz-external.h"
+
+struct category_property {
+ uint32_t range_start;
+ uint32_t range_end;
+ HB_CharCategory category;
+};
+
+static const struct category_property category_properties[] = {
+ {0x0, 0x1f, HB_Other_Control},
+ {0x20, 0x20, HB_Separator_Space},
+ {0x21, 0x23, HB_Punctuation_Other},
+ {0x24, 0x24, HB_Symbol_Currency},
+ {0x25, 0x27, HB_Punctuation_Other},
+ {0x28, 0x28, HB_Punctuation_Open},
+ {0x29, 0x29, HB_Punctuation_Close},
+ {0x2a, 0x2a, HB_Punctuation_Other},
+ {0x2b, 0x2b, HB_Symbol_Math},
+ {0x2c, 0x2c, HB_Punctuation_Other},
+ {0x2d, 0x2d, HB_Punctuation_Dash},
+ {0x2e, 0x2f, HB_Punctuation_Other},
+ {0x30, 0x39, HB_Number_DecimalDigit},
+ {0x3a, 0x3b, HB_Punctuation_Other},
+ {0x3c, 0x3e, HB_Symbol_Math},
+ {0x3f, 0x40, HB_Punctuation_Other},
+ {0x41, 0x5a, HB_Letter_Uppercase},
+ {0x5b, 0x5b, HB_Punctuation_Open},
+ {0x5c, 0x5c, HB_Punctuation_Other},
+ {0x5d, 0x5d, HB_Punctuation_Close},
+ {0x5e, 0x5e, HB_Symbol_Modifier},
+ {0x5f, 0x5f, HB_Punctuation_Connector},
+ {0x60, 0x60, HB_Symbol_Modifier},
+ {0x61, 0x7a, HB_Letter_Lowercase},
+ {0x7b, 0x7b, HB_Punctuation_Open},
+ {0x7c, 0x7c, HB_Symbol_Math},
+ {0x7d, 0x7d, HB_Punctuation_Close},
+ {0x7e, 0x7e, HB_Symbol_Math},
+ {0x7f, 0x9f, HB_Other_Control},
+ {0xa0, 0xa0, HB_Separator_Space},
+ {0xa1, 0xa1, HB_Punctuation_Other},
+ {0xa2, 0xa5, HB_Symbol_Currency},
+ {0xa6, 0xa7, HB_Symbol_Other},
+ {0xa8, 0xa8, HB_Symbol_Modifier},
+ {0xa9, 0xa9, HB_Symbol_Other},
+ {0xaa, 0xaa, HB_Letter_Lowercase},
+ {0xab, 0xab, HB_Punctuation_InitialQuote},
+ {0xac, 0xac, HB_Symbol_Math},
+ {0xad, 0xad, HB_Other_Format},
+ {0xae, 0xae, HB_Symbol_Other},
+ {0xaf, 0xaf, HB_Symbol_Modifier},
+ {0xb0, 0xb0, HB_Symbol_Other},
+ {0xb1, 0xb1, HB_Symbol_Math},
+ {0xb2, 0xb3, HB_Number_Other},
+ {0xb4, 0xb4, HB_Symbol_Modifier},
+ {0xb5, 0xb5, HB_Letter_Lowercase},
+ {0xb6, 0xb6, HB_Symbol_Other},
+ {0xb7, 0xb7, HB_Punctuation_Other},
+ {0xb8, 0xb8, HB_Symbol_Modifier},
+ {0xb9, 0xb9, HB_Number_Other},
+ {0xba, 0xba, HB_Letter_Lowercase},
+ {0xbb, 0xbb, HB_Punctuation_FinalQuote},
+ {0xbc, 0xbe, HB_Number_Other},
+ {0xbf, 0xbf, HB_Punctuation_Other},
+ {0xc0, 0xd6, HB_Letter_Uppercase},
+ {0xd7, 0xd7, HB_Symbol_Math},
+ {0xd8, 0xde, HB_Letter_Uppercase},
+ {0xdf, 0xf6, HB_Letter_Lowercase},
+ {0xf7, 0xf7, HB_Symbol_Math},
+ {0xf8, 0xff, HB_Letter_Lowercase},
+ {0x100, 0x100, HB_Letter_Uppercase},
+ {0x101, 0x101, HB_Letter_Lowercase},
+ {0x102, 0x102, HB_Letter_Uppercase},
+ {0x103, 0x103, HB_Letter_Lowercase},
+ {0x104, 0x104, HB_Letter_Uppercase},
+ {0x105, 0x105, HB_Letter_Lowercase},
+ {0x106, 0x106, HB_Letter_Uppercase},
+ {0x107, 0x107, HB_Letter_Lowercase},
+ {0x108, 0x108, HB_Letter_Uppercase},
+ {0x109, 0x109, HB_Letter_Lowercase},
+ {0x10a, 0x10a, HB_Letter_Uppercase},
+ {0x10b, 0x10b, HB_Letter_Lowercase},
+ {0x10c, 0x10c, HB_Letter_Uppercase},
+ {0x10d, 0x10d, HB_Letter_Lowercase},
+ {0x10e, 0x10e, HB_Letter_Uppercase},
+ {0x10f, 0x10f, HB_Letter_Lowercase},
+ {0x110, 0x110, HB_Letter_Uppercase},
+ {0x111, 0x111, HB_Letter_Lowercase},
+ {0x112, 0x112, HB_Letter_Uppercase},
+ {0x113, 0x113, HB_Letter_Lowercase},
+ {0x114, 0x114, HB_Letter_Uppercase},
+ {0x115, 0x115, HB_Letter_Lowercase},
+ {0x116, 0x116, HB_Letter_Uppercase},
+ {0x117, 0x117, HB_Letter_Lowercase},
+ {0x118, 0x118, HB_Letter_Uppercase},
+ {0x119, 0x119, HB_Letter_Lowercase},
+ {0x11a, 0x11a, HB_Letter_Uppercase},
+ {0x11b, 0x11b, HB_Letter_Lowercase},
+ {0x11c, 0x11c, HB_Letter_Uppercase},
+ {0x11d, 0x11d, HB_Letter_Lowercase},
+ {0x11e, 0x11e, HB_Letter_Uppercase},
+ {0x11f, 0x11f, HB_Letter_Lowercase},
+ {0x120, 0x120, HB_Letter_Uppercase},
+ {0x121, 0x121, HB_Letter_Lowercase},
+ {0x122, 0x122, HB_Letter_Uppercase},
+ {0x123, 0x123, HB_Letter_Lowercase},
+ {0x124, 0x124, HB_Letter_Uppercase},
+ {0x125, 0x125, HB_Letter_Lowercase},
+ {0x126, 0x126, HB_Letter_Uppercase},
+ {0x127, 0x127, HB_Letter_Lowercase},
+ {0x128, 0x128, HB_Letter_Uppercase},
+ {0x129, 0x129, HB_Letter_Lowercase},
+ {0x12a, 0x12a, HB_Letter_Uppercase},
+ {0x12b, 0x12b, HB_Letter_Lowercase},
+ {0x12c, 0x12c, HB_Letter_Uppercase},
+ {0x12d, 0x12d, HB_Letter_Lowercase},
+ {0x12e, 0x12e, HB_Letter_Uppercase},
+ {0x12f, 0x12f, HB_Letter_Lowercase},
+ {0x130, 0x130, HB_Letter_Uppercase},
+ {0x131, 0x131, HB_Letter_Lowercase},
+ {0x132, 0x132, HB_Letter_Uppercase},
+ {0x133, 0x133, HB_Letter_Lowercase},
+ {0x134, 0x134, HB_Letter_Uppercase},
+ {0x135, 0x135, HB_Letter_Lowercase},
+ {0x136, 0x136, HB_Letter_Uppercase},
+ {0x137, 0x138, HB_Letter_Lowercase},
+ {0x139, 0x139, HB_Letter_Uppercase},
+ {0x13a, 0x13a, HB_Letter_Lowercase},
+ {0x13b, 0x13b, HB_Letter_Uppercase},
+ {0x13c, 0x13c, HB_Letter_Lowercase},
+ {0x13d, 0x13d, HB_Letter_Uppercase},
+ {0x13e, 0x13e, HB_Letter_Lowercase},
+ {0x13f, 0x13f, HB_Letter_Uppercase},
+ {0x140, 0x140, HB_Letter_Lowercase},
+ {0x141, 0x141, HB_Letter_Uppercase},
+ {0x142, 0x142, HB_Letter_Lowercase},
+ {0x143, 0x143, HB_Letter_Uppercase},
+ {0x144, 0x144, HB_Letter_Lowercase},
+ {0x145, 0x145, HB_Letter_Uppercase},
+ {0x146, 0x146, HB_Letter_Lowercase},
+ {0x147, 0x147, HB_Letter_Uppercase},
+ {0x148, 0x149, HB_Letter_Lowercase},
+ {0x14a, 0x14a, HB_Letter_Uppercase},
+ {0x14b, 0x14b, HB_Letter_Lowercase},
+ {0x14c, 0x14c, HB_Letter_Uppercase},
+ {0x14d, 0x14d, HB_Letter_Lowercase},
+ {0x14e, 0x14e, HB_Letter_Uppercase},
+ {0x14f, 0x14f, HB_Letter_Lowercase},
+ {0x150, 0x150, HB_Letter_Uppercase},
+ {0x151, 0x151, HB_Letter_Lowercase},
+ {0x152, 0x152, HB_Letter_Uppercase},
+ {0x153, 0x153, HB_Letter_Lowercase},
+ {0x154, 0x154, HB_Letter_Uppercase},
+ {0x155, 0x155, HB_Letter_Lowercase},
+ {0x156, 0x156, HB_Letter_Uppercase},
+ {0x157, 0x157, HB_Letter_Lowercase},
+ {0x158, 0x158, HB_Letter_Uppercase},
+ {0x159, 0x159, HB_Letter_Lowercase},
+ {0x15a, 0x15a, HB_Letter_Uppercase},
+ {0x15b, 0x15b, HB_Letter_Lowercase},
+ {0x15c, 0x15c, HB_Letter_Uppercase},
+ {0x15d, 0x15d, HB_Letter_Lowercase},
+ {0x15e, 0x15e, HB_Letter_Uppercase},
+ {0x15f, 0x15f, HB_Letter_Lowercase},
+ {0x160, 0x160, HB_Letter_Uppercase},
+ {0x161, 0x161, HB_Letter_Lowercase},
+ {0x162, 0x162, HB_Letter_Uppercase},
+ {0x163, 0x163, HB_Letter_Lowercase},
+ {0x164, 0x164, HB_Letter_Uppercase},
+ {0x165, 0x165, HB_Letter_Lowercase},
+ {0x166, 0x166, HB_Letter_Uppercase},
+ {0x167, 0x167, HB_Letter_Lowercase},
+ {0x168, 0x168, HB_Letter_Uppercase},
+ {0x169, 0x169, HB_Letter_Lowercase},
+ {0x16a, 0x16a, HB_Letter_Uppercase},
+ {0x16b, 0x16b, HB_Letter_Lowercase},
+ {0x16c, 0x16c, HB_Letter_Uppercase},
+ {0x16d, 0x16d, HB_Letter_Lowercase},
+ {0x16e, 0x16e, HB_Letter_Uppercase},
+ {0x16f, 0x16f, HB_Letter_Lowercase},
+ {0x170, 0x170, HB_Letter_Uppercase},
+ {0x171, 0x171, HB_Letter_Lowercase},
+ {0x172, 0x172, HB_Letter_Uppercase},
+ {0x173, 0x173, HB_Letter_Lowercase},
+ {0x174, 0x174, HB_Letter_Uppercase},
+ {0x175, 0x175, HB_Letter_Lowercase},
+ {0x176, 0x176, HB_Letter_Uppercase},
+ {0x177, 0x177, HB_Letter_Lowercase},
+ {0x178, 0x179, HB_Letter_Uppercase},
+ {0x17a, 0x17a, HB_Letter_Lowercase},
+ {0x17b, 0x17b, HB_Letter_Uppercase},
+ {0x17c, 0x17c, HB_Letter_Lowercase},
+ {0x17d, 0x17d, HB_Letter_Uppercase},
+ {0x17e, 0x180, HB_Letter_Lowercase},
+ {0x181, 0x182, HB_Letter_Uppercase},
+ {0x183, 0x183, HB_Letter_Lowercase},
+ {0x184, 0x184, HB_Letter_Uppercase},
+ {0x185, 0x185, HB_Letter_Lowercase},
+ {0x186, 0x187, HB_Letter_Uppercase},
+ {0x188, 0x188, HB_Letter_Lowercase},
+ {0x189, 0x18b, HB_Letter_Uppercase},
+ {0x18c, 0x18d, HB_Letter_Lowercase},
+ {0x18e, 0x191, HB_Letter_Uppercase},
+ {0x192, 0x192, HB_Letter_Lowercase},
+ {0x193, 0x194, HB_Letter_Uppercase},
+ {0x195, 0x195, HB_Letter_Lowercase},
+ {0x196, 0x198, HB_Letter_Uppercase},
+ {0x199, 0x19b, HB_Letter_Lowercase},
+ {0x19c, 0x19d, HB_Letter_Uppercase},
+ {0x19e, 0x19e, HB_Letter_Lowercase},
+ {0x19f, 0x1a0, HB_Letter_Uppercase},
+ {0x1a1, 0x1a1, HB_Letter_Lowercase},
+ {0x1a2, 0x1a2, HB_Letter_Uppercase},
+ {0x1a3, 0x1a3, HB_Letter_Lowercase},
+ {0x1a4, 0x1a4, HB_Letter_Uppercase},
+ {0x1a5, 0x1a5, HB_Letter_Lowercase},
+ {0x1a6, 0x1a7, HB_Letter_Uppercase},
+ {0x1a8, 0x1a8, HB_Letter_Lowercase},
+ {0x1a9, 0x1a9, HB_Letter_Uppercase},
+ {0x1aa, 0x1ab, HB_Letter_Lowercase},
+ {0x1ac, 0x1ac, HB_Letter_Uppercase},
+ {0x1ad, 0x1ad, HB_Letter_Lowercase},
+ {0x1ae, 0x1af, HB_Letter_Uppercase},
+ {0x1b0, 0x1b0, HB_Letter_Lowercase},
+ {0x1b1, 0x1b3, HB_Letter_Uppercase},
+ {0x1b4, 0x1b4, HB_Letter_Lowercase},
+ {0x1b5, 0x1b5, HB_Letter_Uppercase},
+ {0x1b6, 0x1b6, HB_Letter_Lowercase},
+ {0x1b7, 0x1b8, HB_Letter_Uppercase},
+ {0x1b9, 0x1ba, HB_Letter_Lowercase},
+ {0x1bb, 0x1bb, HB_Letter_Other},
+ {0x1bc, 0x1bc, HB_Letter_Uppercase},
+ {0x1bd, 0x1bf, HB_Letter_Lowercase},
+ {0x1c0, 0x1c3, HB_Letter_Other},
+ {0x1c4, 0x1c4, HB_Letter_Uppercase},
+ {0x1c5, 0x1c5, HB_Letter_Titlecase},
+ {0x1c6, 0x1c6, HB_Letter_Lowercase},
+ {0x1c7, 0x1c7, HB_Letter_Uppercase},
+ {0x1c8, 0x1c8, HB_Letter_Titlecase},
+ {0x1c9, 0x1c9, HB_Letter_Lowercase},
+ {0x1ca, 0x1ca, HB_Letter_Uppercase},
+ {0x1cb, 0x1cb, HB_Letter_Titlecase},
+ {0x1cc, 0x1cc, HB_Letter_Lowercase},
+ {0x1cd, 0x1cd, HB_Letter_Uppercase},
+ {0x1ce, 0x1ce, HB_Letter_Lowercase},
+ {0x1cf, 0x1cf, HB_Letter_Uppercase},
+ {0x1d0, 0x1d0, HB_Letter_Lowercase},
+ {0x1d1, 0x1d1, HB_Letter_Uppercase},
+ {0x1d2, 0x1d2, HB_Letter_Lowercase},
+ {0x1d3, 0x1d3, HB_Letter_Uppercase},
+ {0x1d4, 0x1d4, HB_Letter_Lowercase},
+ {0x1d5, 0x1d5, HB_Letter_Uppercase},
+ {0x1d6, 0x1d6, HB_Letter_Lowercase},
+ {0x1d7, 0x1d7, HB_Letter_Uppercase},
+ {0x1d8, 0x1d8, HB_Letter_Lowercase},
+ {0x1d9, 0x1d9, HB_Letter_Uppercase},
+ {0x1da, 0x1da, HB_Letter_Lowercase},
+ {0x1db, 0x1db, HB_Letter_Uppercase},
+ {0x1dc, 0x1dd, HB_Letter_Lowercase},
+ {0x1de, 0x1de, HB_Letter_Uppercase},
+ {0x1df, 0x1df, HB_Letter_Lowercase},
+ {0x1e0, 0x1e0, HB_Letter_Uppercase},
+ {0x1e1, 0x1e1, HB_Letter_Lowercase},
+ {0x1e2, 0x1e2, HB_Letter_Uppercase},
+ {0x1e3, 0x1e3, HB_Letter_Lowercase},
+ {0x1e4, 0x1e4, HB_Letter_Uppercase},
+ {0x1e5, 0x1e5, HB_Letter_Lowercase},
+ {0x1e6, 0x1e6, HB_Letter_Uppercase},
+ {0x1e7, 0x1e7, HB_Letter_Lowercase},
+ {0x1e8, 0x1e8, HB_Letter_Uppercase},
+ {0x1e9, 0x1e9, HB_Letter_Lowercase},
+ {0x1ea, 0x1ea, HB_Letter_Uppercase},
+ {0x1eb, 0x1eb, HB_Letter_Lowercase},
+ {0x1ec, 0x1ec, HB_Letter_Uppercase},
+ {0x1ed, 0x1ed, HB_Letter_Lowercase},
+ {0x1ee, 0x1ee, HB_Letter_Uppercase},
+ {0x1ef, 0x1f0, HB_Letter_Lowercase},
+ {0x1f1, 0x1f1, HB_Letter_Uppercase},
+ {0x1f2, 0x1f2, HB_Letter_Titlecase},
+ {0x1f3, 0x1f3, HB_Letter_Lowercase},
+ {0x1f4, 0x1f4, HB_Letter_Uppercase},
+ {0x1f5, 0x1f5, HB_Letter_Lowercase},
+ {0x1f6, 0x1f8, HB_Letter_Uppercase},
+ {0x1f9, 0x1f9, HB_Letter_Lowercase},
+ {0x1fa, 0x1fa, HB_Letter_Uppercase},
+ {0x1fb, 0x1fb, HB_Letter_Lowercase},
+ {0x1fc, 0x1fc, HB_Letter_Uppercase},
+ {0x1fd, 0x1fd, HB_Letter_Lowercase},
+ {0x1fe, 0x1fe, HB_Letter_Uppercase},
+ {0x1ff, 0x1ff, HB_Letter_Lowercase},
+ {0x200, 0x200, HB_Letter_Uppercase},
+ {0x201, 0x201, HB_Letter_Lowercase},
+ {0x202, 0x202, HB_Letter_Uppercase},
+ {0x203, 0x203, HB_Letter_Lowercase},
+ {0x204, 0x204, HB_Letter_Uppercase},
+ {0x205, 0x205, HB_Letter_Lowercase},
+ {0x206, 0x206, HB_Letter_Uppercase},
+ {0x207, 0x207, HB_Letter_Lowercase},
+ {0x208, 0x208, HB_Letter_Uppercase},
+ {0x209, 0x209, HB_Letter_Lowercase},
+ {0x20a, 0x20a, HB_Letter_Uppercase},
+ {0x20b, 0x20b, HB_Letter_Lowercase},
+ {0x20c, 0x20c, HB_Letter_Uppercase},
+ {0x20d, 0x20d, HB_Letter_Lowercase},
+ {0x20e, 0x20e, HB_Letter_Uppercase},
+ {0x20f, 0x20f, HB_Letter_Lowercase},
+ {0x210, 0x210, HB_Letter_Uppercase},
+ {0x211, 0x211, HB_Letter_Lowercase},
+ {0x212, 0x212, HB_Letter_Uppercase},
+ {0x213, 0x213, HB_Letter_Lowercase},
+ {0x214, 0x214, HB_Letter_Uppercase},
+ {0x215, 0x215, HB_Letter_Lowercase},
+ {0x216, 0x216, HB_Letter_Uppercase},
+ {0x217, 0x217, HB_Letter_Lowercase},
+ {0x218, 0x218, HB_Letter_Uppercase},
+ {0x219, 0x219, HB_Letter_Lowercase},
+ {0x21a, 0x21a, HB_Letter_Uppercase},
+ {0x21b, 0x21b, HB_Letter_Lowercase},
+ {0x21c, 0x21c, HB_Letter_Uppercase},
+ {0x21d, 0x21d, HB_Letter_Lowercase},
+ {0x21e, 0x21e, HB_Letter_Uppercase},
+ {0x21f, 0x21f, HB_Letter_Lowercase},
+ {0x220, 0x220, HB_Letter_Uppercase},
+ {0x221, 0x221, HB_Letter_Lowercase},
+ {0x222, 0x222, HB_Letter_Uppercase},
+ {0x223, 0x223, HB_Letter_Lowercase},
+ {0x224, 0x224, HB_Letter_Uppercase},
+ {0x225, 0x225, HB_Letter_Lowercase},
+ {0x226, 0x226, HB_Letter_Uppercase},
+ {0x227, 0x227, HB_Letter_Lowercase},
+ {0x228, 0x228, HB_Letter_Uppercase},
+ {0x229, 0x229, HB_Letter_Lowercase},
+ {0x22a, 0x22a, HB_Letter_Uppercase},
+ {0x22b, 0x22b, HB_Letter_Lowercase},
+ {0x22c, 0x22c, HB_Letter_Uppercase},
+ {0x22d, 0x22d, HB_Letter_Lowercase},
+ {0x22e, 0x22e, HB_Letter_Uppercase},
+ {0x22f, 0x22f, HB_Letter_Lowercase},
+ {0x230, 0x230, HB_Letter_Uppercase},
+ {0x231, 0x231, HB_Letter_Lowercase},
+ {0x232, 0x232, HB_Letter_Uppercase},
+ {0x233, 0x239, HB_Letter_Lowercase},
+ {0x23a, 0x23b, HB_Letter_Uppercase},
+ {0x23c, 0x23c, HB_Letter_Lowercase},
+ {0x23d, 0x23e, HB_Letter_Uppercase},
+ {0x23f, 0x240, HB_Letter_Lowercase},
+ {0x241, 0x241, HB_Letter_Uppercase},
+ {0x242, 0x242, HB_Letter_Lowercase},
+ {0x243, 0x246, HB_Letter_Uppercase},
+ {0x247, 0x247, HB_Letter_Lowercase},
+ {0x248, 0x248, HB_Letter_Uppercase},
+ {0x249, 0x249, HB_Letter_Lowercase},
+ {0x24a, 0x24a, HB_Letter_Uppercase},
+ {0x24b, 0x24b, HB_Letter_Lowercase},
+ {0x24c, 0x24c, HB_Letter_Uppercase},
+ {0x24d, 0x24d, HB_Letter_Lowercase},
+ {0x24e, 0x24e, HB_Letter_Uppercase},
+ {0x24f, 0x293, HB_Letter_Lowercase},
+ {0x294, 0x294, HB_Letter_Other},
+ {0x295, 0x2af, HB_Letter_Lowercase},
+ {0x2b0, 0x2c1, HB_Letter_Modifier},
+ {0x2c2, 0x2c5, HB_Symbol_Modifier},
+ {0x2c6, 0x2d1, HB_Letter_Modifier},
+ {0x2d2, 0x2df, HB_Symbol_Modifier},
+ {0x2e0, 0x2e4, HB_Letter_Modifier},
+ {0x2e5, 0x2eb, HB_Symbol_Modifier},
+ {0x2ec, 0x2ec, HB_Letter_Modifier},
+ {0x2ed, 0x2ed, HB_Symbol_Modifier},
+ {0x2ee, 0x2ee, HB_Letter_Modifier},
+ {0x2ef, 0x2ff, HB_Symbol_Modifier},
+ {0x300, 0x36f, HB_Mark_NonSpacing},
+ {0x370, 0x370, HB_Letter_Uppercase},
+ {0x371, 0x371, HB_Letter_Lowercase},
+ {0x372, 0x372, HB_Letter_Uppercase},
+ {0x373, 0x373, HB_Letter_Lowercase},
+ {0x374, 0x374, HB_Letter_Modifier},
+ {0x375, 0x375, HB_Symbol_Modifier},
+ {0x376, 0x376, HB_Letter_Uppercase},
+ {0x377, 0x377, HB_Letter_Lowercase},
+ {0x378, 0x379, HB_Other_NotAssigned},
+ {0x37a, 0x37a, HB_Letter_Modifier},
+ {0x37b, 0x37d, HB_Letter_Lowercase},
+ {0x37e, 0x37e, HB_Punctuation_Other},
+ {0x37f, 0x383, HB_Other_NotAssigned},
+ {0x384, 0x385, HB_Symbol_Modifier},
+ {0x386, 0x386, HB_Letter_Uppercase},
+ {0x387, 0x387, HB_Punctuation_Other},
+ {0x388, 0x38a, HB_Letter_Uppercase},
+ {0x38b, 0x38b, HB_Other_NotAssigned},
+ {0x38c, 0x38c, HB_Letter_Uppercase},
+ {0x38d, 0x38d, HB_Other_NotAssigned},
+ {0x38e, 0x38f, HB_Letter_Uppercase},
+ {0x390, 0x390, HB_Letter_Lowercase},
+ {0x391, 0x3a1, HB_Letter_Uppercase},
+ {0x3a2, 0x3a2, HB_Other_NotAssigned},
+ {0x3a3, 0x3ab, HB_Letter_Uppercase},
+ {0x3ac, 0x3ce, HB_Letter_Lowercase},
+ {0x3cf, 0x3cf, HB_Letter_Uppercase},
+ {0x3d0, 0x3d1, HB_Letter_Lowercase},
+ {0x3d2, 0x3d4, HB_Letter_Uppercase},
+ {0x3d5, 0x3d7, HB_Letter_Lowercase},
+ {0x3d8, 0x3d8, HB_Letter_Uppercase},
+ {0x3d9, 0x3d9, HB_Letter_Lowercase},
+ {0x3da, 0x3da, HB_Letter_Uppercase},
+ {0x3db, 0x3db, HB_Letter_Lowercase},
+ {0x3dc, 0x3dc, HB_Letter_Uppercase},
+ {0x3dd, 0x3dd, HB_Letter_Lowercase},
+ {0x3de, 0x3de, HB_Letter_Uppercase},
+ {0x3df, 0x3df, HB_Letter_Lowercase},
+ {0x3e0, 0x3e0, HB_Letter_Uppercase},
+ {0x3e1, 0x3e1, HB_Letter_Lowercase},
+ {0x3e2, 0x3e2, HB_Letter_Uppercase},
+ {0x3e3, 0x3e3, HB_Letter_Lowercase},
+ {0x3e4, 0x3e4, HB_Letter_Uppercase},
+ {0x3e5, 0x3e5, HB_Letter_Lowercase},
+ {0x3e6, 0x3e6, HB_Letter_Uppercase},
+ {0x3e7, 0x3e7, HB_Letter_Lowercase},
+ {0x3e8, 0x3e8, HB_Letter_Uppercase},
+ {0x3e9, 0x3e9, HB_Letter_Lowercase},
+ {0x3ea, 0x3ea, HB_Letter_Uppercase},
+ {0x3eb, 0x3eb, HB_Letter_Lowercase},
+ {0x3ec, 0x3ec, HB_Letter_Uppercase},
+ {0x3ed, 0x3ed, HB_Letter_Lowercase},
+ {0x3ee, 0x3ee, HB_Letter_Uppercase},
+ {0x3ef, 0x3f3, HB_Letter_Lowercase},
+ {0x3f4, 0x3f4, HB_Letter_Uppercase},
+ {0x3f5, 0x3f5, HB_Letter_Lowercase},
+ {0x3f6, 0x3f6, HB_Symbol_Math},
+ {0x3f7, 0x3f7, HB_Letter_Uppercase},
+ {0x3f8, 0x3f8, HB_Letter_Lowercase},
+ {0x3f9, 0x3fa, HB_Letter_Uppercase},
+ {0x3fb, 0x3fc, HB_Letter_Lowercase},
+ {0x3fd, 0x42f, HB_Letter_Uppercase},
+ {0x430, 0x45f, HB_Letter_Lowercase},
+ {0x460, 0x460, HB_Letter_Uppercase},
+ {0x461, 0x461, HB_Letter_Lowercase},
+ {0x462, 0x462, HB_Letter_Uppercase},
+ {0x463, 0x463, HB_Letter_Lowercase},
+ {0x464, 0x464, HB_Letter_Uppercase},
+ {0x465, 0x465, HB_Letter_Lowercase},
+ {0x466, 0x466, HB_Letter_Uppercase},
+ {0x467, 0x467, HB_Letter_Lowercase},
+ {0x468, 0x468, HB_Letter_Uppercase},
+ {0x469, 0x469, HB_Letter_Lowercase},
+ {0x46a, 0x46a, HB_Letter_Uppercase},
+ {0x46b, 0x46b, HB_Letter_Lowercase},
+ {0x46c, 0x46c, HB_Letter_Uppercase},
+ {0x46d, 0x46d, HB_Letter_Lowercase},
+ {0x46e, 0x46e, HB_Letter_Uppercase},
+ {0x46f, 0x46f, HB_Letter_Lowercase},
+ {0x470, 0x470, HB_Letter_Uppercase},
+ {0x471, 0x471, HB_Letter_Lowercase},
+ {0x472, 0x472, HB_Letter_Uppercase},
+ {0x473, 0x473, HB_Letter_Lowercase},
+ {0x474, 0x474, HB_Letter_Uppercase},
+ {0x475, 0x475, HB_Letter_Lowercase},
+ {0x476, 0x476, HB_Letter_Uppercase},
+ {0x477, 0x477, HB_Letter_Lowercase},
+ {0x478, 0x478, HB_Letter_Uppercase},
+ {0x479, 0x479, HB_Letter_Lowercase},
+ {0x47a, 0x47a, HB_Letter_Uppercase},
+ {0x47b, 0x47b, HB_Letter_Lowercase},
+ {0x47c, 0x47c, HB_Letter_Uppercase},
+ {0x47d, 0x47d, HB_Letter_Lowercase},
+ {0x47e, 0x47e, HB_Letter_Uppercase},
+ {0x47f, 0x47f, HB_Letter_Lowercase},
+ {0x480, 0x480, HB_Letter_Uppercase},
+ {0x481, 0x481, HB_Letter_Lowercase},
+ {0x482, 0x482, HB_Symbol_Other},
+ {0x483, 0x487, HB_Mark_NonSpacing},
+ {0x488, 0x489, HB_Mark_Enclosing},
+ {0x48a, 0x48a, HB_Letter_Uppercase},
+ {0x48b, 0x48b, HB_Letter_Lowercase},
+ {0x48c, 0x48c, HB_Letter_Uppercase},
+ {0x48d, 0x48d, HB_Letter_Lowercase},
+ {0x48e, 0x48e, HB_Letter_Uppercase},
+ {0x48f, 0x48f, HB_Letter_Lowercase},
+ {0x490, 0x490, HB_Letter_Uppercase},
+ {0x491, 0x491, HB_Letter_Lowercase},
+ {0x492, 0x492, HB_Letter_Uppercase},
+ {0x493, 0x493, HB_Letter_Lowercase},
+ {0x494, 0x494, HB_Letter_Uppercase},
+ {0x495, 0x495, HB_Letter_Lowercase},
+ {0x496, 0x496, HB_Letter_Uppercase},
+ {0x497, 0x497, HB_Letter_Lowercase},
+ {0x498, 0x498, HB_Letter_Uppercase},
+ {0x499, 0x499, HB_Letter_Lowercase},
+ {0x49a, 0x49a, HB_Letter_Uppercase},
+ {0x49b, 0x49b, HB_Letter_Lowercase},
+ {0x49c, 0x49c, HB_Letter_Uppercase},
+ {0x49d, 0x49d, HB_Letter_Lowercase},
+ {0x49e, 0x49e, HB_Letter_Uppercase},
+ {0x49f, 0x49f, HB_Letter_Lowercase},
+ {0x4a0, 0x4a0, HB_Letter_Uppercase},
+ {0x4a1, 0x4a1, HB_Letter_Lowercase},
+ {0x4a2, 0x4a2, HB_Letter_Uppercase},
+ {0x4a3, 0x4a3, HB_Letter_Lowercase},
+ {0x4a4, 0x4a4, HB_Letter_Uppercase},
+ {0x4a5, 0x4a5, HB_Letter_Lowercase},
+ {0x4a6, 0x4a6, HB_Letter_Uppercase},
+ {0x4a7, 0x4a7, HB_Letter_Lowercase},
+ {0x4a8, 0x4a8, HB_Letter_Uppercase},
+ {0x4a9, 0x4a9, HB_Letter_Lowercase},
+ {0x4aa, 0x4aa, HB_Letter_Uppercase},
+ {0x4ab, 0x4ab, HB_Letter_Lowercase},
+ {0x4ac, 0x4ac, HB_Letter_Uppercase},
+ {0x4ad, 0x4ad, HB_Letter_Lowercase},
+ {0x4ae, 0x4ae, HB_Letter_Uppercase},
+ {0x4af, 0x4af, HB_Letter_Lowercase},
+ {0x4b0, 0x4b0, HB_Letter_Uppercase},
+ {0x4b1, 0x4b1, HB_Letter_Lowercase},
+ {0x4b2, 0x4b2, HB_Letter_Uppercase},
+ {0x4b3, 0x4b3, HB_Letter_Lowercase},
+ {0x4b4, 0x4b4, HB_Letter_Uppercase},
+ {0x4b5, 0x4b5, HB_Letter_Lowercase},
+ {0x4b6, 0x4b6, HB_Letter_Uppercase},
+ {0x4b7, 0x4b7, HB_Letter_Lowercase},
+ {0x4b8, 0x4b8, HB_Letter_Uppercase},
+ {0x4b9, 0x4b9, HB_Letter_Lowercase},
+ {0x4ba, 0x4ba, HB_Letter_Uppercase},
+ {0x4bb, 0x4bb, HB_Letter_Lowercase},
+ {0x4bc, 0x4bc, HB_Letter_Uppercase},
+ {0x4bd, 0x4bd, HB_Letter_Lowercase},
+ {0x4be, 0x4be, HB_Letter_Uppercase},
+ {0x4bf, 0x4bf, HB_Letter_Lowercase},
+ {0x4c0, 0x4c1, HB_Letter_Uppercase},
+ {0x4c2, 0x4c2, HB_Letter_Lowercase},
+ {0x4c3, 0x4c3, HB_Letter_Uppercase},
+ {0x4c4, 0x4c4, HB_Letter_Lowercase},
+ {0x4c5, 0x4c5, HB_Letter_Uppercase},
+ {0x4c6, 0x4c6, HB_Letter_Lowercase},
+ {0x4c7, 0x4c7, HB_Letter_Uppercase},
+ {0x4c8, 0x4c8, HB_Letter_Lowercase},
+ {0x4c9, 0x4c9, HB_Letter_Uppercase},
+ {0x4ca, 0x4ca, HB_Letter_Lowercase},
+ {0x4cb, 0x4cb, HB_Letter_Uppercase},
+ {0x4cc, 0x4cc, HB_Letter_Lowercase},
+ {0x4cd, 0x4cd, HB_Letter_Uppercase},
+ {0x4ce, 0x4cf, HB_Letter_Lowercase},
+ {0x4d0, 0x4d0, HB_Letter_Uppercase},
+ {0x4d1, 0x4d1, HB_Letter_Lowercase},
+ {0x4d2, 0x4d2, HB_Letter_Uppercase},
+ {0x4d3, 0x4d3, HB_Letter_Lowercase},
+ {0x4d4, 0x4d4, HB_Letter_Uppercase},
+ {0x4d5, 0x4d5, HB_Letter_Lowercase},
+ {0x4d6, 0x4d6, HB_Letter_Uppercase},
+ {0x4d7, 0x4d7, HB_Letter_Lowercase},
+ {0x4d8, 0x4d8, HB_Letter_Uppercase},
+ {0x4d9, 0x4d9, HB_Letter_Lowercase},
+ {0x4da, 0x4da, HB_Letter_Uppercase},
+ {0x4db, 0x4db, HB_Letter_Lowercase},
+ {0x4dc, 0x4dc, HB_Letter_Uppercase},
+ {0x4dd, 0x4dd, HB_Letter_Lowercase},
+ {0x4de, 0x4de, HB_Letter_Uppercase},
+ {0x4df, 0x4df, HB_Letter_Lowercase},
+ {0x4e0, 0x4e0, HB_Letter_Uppercase},
+ {0x4e1, 0x4e1, HB_Letter_Lowercase},
+ {0x4e2, 0x4e2, HB_Letter_Uppercase},
+ {0x4e3, 0x4e3, HB_Letter_Lowercase},
+ {0x4e4, 0x4e4, HB_Letter_Uppercase},
+ {0x4e5, 0x4e5, HB_Letter_Lowercase},
+ {0x4e6, 0x4e6, HB_Letter_Uppercase},
+ {0x4e7, 0x4e7, HB_Letter_Lowercase},
+ {0x4e8, 0x4e8, HB_Letter_Uppercase},
+ {0x4e9, 0x4e9, HB_Letter_Lowercase},
+ {0x4ea, 0x4ea, HB_Letter_Uppercase},
+ {0x4eb, 0x4eb, HB_Letter_Lowercase},
+ {0x4ec, 0x4ec, HB_Letter_Uppercase},
+ {0x4ed, 0x4ed, HB_Letter_Lowercase},
+ {0x4ee, 0x4ee, HB_Letter_Uppercase},
+ {0x4ef, 0x4ef, HB_Letter_Lowercase},
+ {0x4f0, 0x4f0, HB_Letter_Uppercase},
+ {0x4f1, 0x4f1, HB_Letter_Lowercase},
+ {0x4f2, 0x4f2, HB_Letter_Uppercase},
+ {0x4f3, 0x4f3, HB_Letter_Lowercase},
+ {0x4f4, 0x4f4, HB_Letter_Uppercase},
+ {0x4f5, 0x4f5, HB_Letter_Lowercase},
+ {0x4f6, 0x4f6, HB_Letter_Uppercase},
+ {0x4f7, 0x4f7, HB_Letter_Lowercase},
+ {0x4f8, 0x4f8, HB_Letter_Uppercase},
+ {0x4f9, 0x4f9, HB_Letter_Lowercase},
+ {0x4fa, 0x4fa, HB_Letter_Uppercase},
+ {0x4fb, 0x4fb, HB_Letter_Lowercase},
+ {0x4fc, 0x4fc, HB_Letter_Uppercase},
+ {0x4fd, 0x4fd, HB_Letter_Lowercase},
+ {0x4fe, 0x4fe, HB_Letter_Uppercase},
+ {0x4ff, 0x4ff, HB_Letter_Lowercase},
+ {0x500, 0x500, HB_Letter_Uppercase},
+ {0x501, 0x501, HB_Letter_Lowercase},
+ {0x502, 0x502, HB_Letter_Uppercase},
+ {0x503, 0x503, HB_Letter_Lowercase},
+ {0x504, 0x504, HB_Letter_Uppercase},
+ {0x505, 0x505, HB_Letter_Lowercase},
+ {0x506, 0x506, HB_Letter_Uppercase},
+ {0x507, 0x507, HB_Letter_Lowercase},
+ {0x508, 0x508, HB_Letter_Uppercase},
+ {0x509, 0x509, HB_Letter_Lowercase},
+ {0x50a, 0x50a, HB_Letter_Uppercase},
+ {0x50b, 0x50b, HB_Letter_Lowercase},
+ {0x50c, 0x50c, HB_Letter_Uppercase},
+ {0x50d, 0x50d, HB_Letter_Lowercase},
+ {0x50e, 0x50e, HB_Letter_Uppercase},
+ {0x50f, 0x50f, HB_Letter_Lowercase},
+ {0x510, 0x510, HB_Letter_Uppercase},
+ {0x511, 0x511, HB_Letter_Lowercase},
+ {0x512, 0x512, HB_Letter_Uppercase},
+ {0x513, 0x513, HB_Letter_Lowercase},
+ {0x514, 0x514, HB_Letter_Uppercase},
+ {0x515, 0x515, HB_Letter_Lowercase},
+ {0x516, 0x516, HB_Letter_Uppercase},
+ {0x517, 0x517, HB_Letter_Lowercase},
+ {0x518, 0x518, HB_Letter_Uppercase},
+ {0x519, 0x519, HB_Letter_Lowercase},
+ {0x51a, 0x51a, HB_Letter_Uppercase},
+ {0x51b, 0x51b, HB_Letter_Lowercase},
+ {0x51c, 0x51c, HB_Letter_Uppercase},
+ {0x51d, 0x51d, HB_Letter_Lowercase},
+ {0x51e, 0x51e, HB_Letter_Uppercase},
+ {0x51f, 0x51f, HB_Letter_Lowercase},
+ {0x520, 0x520, HB_Letter_Uppercase},
+ {0x521, 0x521, HB_Letter_Lowercase},
+ {0x522, 0x522, HB_Letter_Uppercase},
+ {0x523, 0x523, HB_Letter_Lowercase},
+ {0x524, 0x530, HB_Other_NotAssigned},
+ {0x531, 0x556, HB_Letter_Uppercase},
+ {0x557, 0x558, HB_Other_NotAssigned},
+ {0x559, 0x559, HB_Letter_Modifier},
+ {0x55a, 0x55f, HB_Punctuation_Other},
+ {0x560, 0x560, HB_Other_NotAssigned},
+ {0x561, 0x587, HB_Letter_Lowercase},
+ {0x588, 0x588, HB_Other_NotAssigned},
+ {0x589, 0x589, HB_Punctuation_Other},
+ {0x58a, 0x58a, HB_Punctuation_Dash},
+ {0x58b, 0x590, HB_Other_NotAssigned},
+ {0x591, 0x5bd, HB_Mark_NonSpacing},
+ {0x5be, 0x5be, HB_Punctuation_Dash},
+ {0x5bf, 0x5bf, HB_Mark_NonSpacing},
+ {0x5c0, 0x5c0, HB_Punctuation_Other},
+ {0x5c1, 0x5c2, HB_Mark_NonSpacing},
+ {0x5c3, 0x5c3, HB_Punctuation_Other},
+ {0x5c4, 0x5c5, HB_Mark_NonSpacing},
+ {0x5c6, 0x5c6, HB_Punctuation_Other},
+ {0x5c7, 0x5c7, HB_Mark_NonSpacing},
+ {0x5c8, 0x5cf, HB_Other_NotAssigned},
+ {0x5d0, 0x5ea, HB_Letter_Other},
+ {0x5eb, 0x5ef, HB_Other_NotAssigned},
+ {0x5f0, 0x5f2, HB_Letter_Other},
+ {0x5f3, 0x5f4, HB_Punctuation_Other},
+ {0x5f5, 0x5ff, HB_Other_NotAssigned},
+ {0x600, 0x603, HB_Other_Format},
+ {0x604, 0x605, HB_Other_NotAssigned},
+ {0x606, 0x608, HB_Symbol_Math},
+ {0x609, 0x60a, HB_Punctuation_Other},
+ {0x60b, 0x60b, HB_Symbol_Currency},
+ {0x60c, 0x60d, HB_Punctuation_Other},
+ {0x60e, 0x60f, HB_Symbol_Other},
+ {0x610, 0x61a, HB_Mark_NonSpacing},
+ {0x61b, 0x61b, HB_Punctuation_Other},
+ {0x61c, 0x61d, HB_Other_NotAssigned},
+ {0x61e, 0x61f, HB_Punctuation_Other},
+ {0x620, 0x620, HB_Other_NotAssigned},
+ {0x621, 0x63f, HB_Letter_Other},
+ {0x640, 0x640, HB_Letter_Modifier},
+ {0x641, 0x64a, HB_Letter_Other},
+ {0x64b, 0x65e, HB_Mark_NonSpacing},
+ {0x65f, 0x65f, HB_Other_NotAssigned},
+ {0x660, 0x669, HB_Number_DecimalDigit},
+ {0x66a, 0x66d, HB_Punctuation_Other},
+ {0x66e, 0x66f, HB_Letter_Other},
+ {0x670, 0x670, HB_Mark_NonSpacing},
+ {0x671, 0x6d3, HB_Letter_Other},
+ {0x6d4, 0x6d4, HB_Punctuation_Other},
+ {0x6d5, 0x6d5, HB_Letter_Other},
+ {0x6d6, 0x6dc, HB_Mark_NonSpacing},
+ {0x6dd, 0x6dd, HB_Other_Format},
+ {0x6de, 0x6de, HB_Mark_Enclosing},
+ {0x6df, 0x6e4, HB_Mark_NonSpacing},
+ {0x6e5, 0x6e6, HB_Letter_Modifier},
+ {0x6e7, 0x6e8, HB_Mark_NonSpacing},
+ {0x6e9, 0x6e9, HB_Symbol_Other},
+ {0x6ea, 0x6ed, HB_Mark_NonSpacing},
+ {0x6ee, 0x6ef, HB_Letter_Other},
+ {0x6f0, 0x6f9, HB_Number_DecimalDigit},
+ {0x6fa, 0x6fc, HB_Letter_Other},
+ {0x6fd, 0x6fe, HB_Symbol_Other},
+ {0x6ff, 0x6ff, HB_Letter_Other},
+ {0x700, 0x70d, HB_Punctuation_Other},
+ {0x70e, 0x70e, HB_Other_NotAssigned},
+ {0x70f, 0x70f, HB_Other_Format},
+ {0x710, 0x710, HB_Letter_Other},
+ {0x711, 0x711, HB_Mark_NonSpacing},
+ {0x712, 0x72f, HB_Letter_Other},
+ {0x730, 0x74a, HB_Mark_NonSpacing},
+ {0x74b, 0x74c, HB_Other_NotAssigned},
+ {0x74d, 0x7a5, HB_Letter_Other},
+ {0x7a6, 0x7b0, HB_Mark_NonSpacing},
+ {0x7b1, 0x7b1, HB_Letter_Other},
+ {0x7b2, 0x7bf, HB_Other_NotAssigned},
+ {0x7c0, 0x7c9, HB_Number_DecimalDigit},
+ {0x7ca, 0x7ea, HB_Letter_Other},
+ {0x7eb, 0x7f3, HB_Mark_NonSpacing},
+ {0x7f4, 0x7f5, HB_Letter_Modifier},
+ {0x7f6, 0x7f6, HB_Symbol_Other},
+ {0x7f7, 0x7f9, HB_Punctuation_Other},
+ {0x7fa, 0x7fa, HB_Letter_Modifier},
+ {0x7fb, 0x900, HB_Other_NotAssigned},
+ {0x901, 0x902, HB_Mark_NonSpacing},
+ {0x903, 0x903, HB_Mark_SpacingCombining},
+ {0x904, 0x939, HB_Letter_Other},
+ {0x93a, 0x93b, HB_Other_NotAssigned},
+ {0x93c, 0x93c, HB_Mark_NonSpacing},
+ {0x93d, 0x93d, HB_Letter_Other},
+ {0x93e, 0x940, HB_Mark_SpacingCombining},
+ {0x941, 0x948, HB_Mark_NonSpacing},
+ {0x949, 0x94c, HB_Mark_SpacingCombining},
+ {0x94d, 0x94d, HB_Mark_NonSpacing},
+ {0x94e, 0x94f, HB_Other_NotAssigned},
+ {0x950, 0x950, HB_Letter_Other},
+ {0x951, 0x954, HB_Mark_NonSpacing},
+ {0x955, 0x957, HB_Other_NotAssigned},
+ {0x958, 0x961, HB_Letter_Other},
+ {0x962, 0x963, HB_Mark_NonSpacing},
+ {0x964, 0x965, HB_Punctuation_Other},
+ {0x966, 0x96f, HB_Number_DecimalDigit},
+ {0x970, 0x970, HB_Punctuation_Other},
+ {0x971, 0x971, HB_Letter_Modifier},
+ {0x972, 0x972, HB_Letter_Other},
+ {0x973, 0x97a, HB_Other_NotAssigned},
+ {0x97b, 0x97f, HB_Letter_Other},
+ {0x980, 0x980, HB_Other_NotAssigned},
+ {0x981, 0x981, HB_Mark_NonSpacing},
+ {0x982, 0x983, HB_Mark_SpacingCombining},
+ {0x984, 0x984, HB_Other_NotAssigned},
+ {0x985, 0x98c, HB_Letter_Other},
+ {0x98d, 0x98e, HB_Other_NotAssigned},
+ {0x98f, 0x990, HB_Letter_Other},
+ {0x991, 0x992, HB_Other_NotAssigned},
+ {0x993, 0x9a8, HB_Letter_Other},
+ {0x9a9, 0x9a9, HB_Other_NotAssigned},
+ {0x9aa, 0x9b0, HB_Letter_Other},
+ {0x9b1, 0x9b1, HB_Other_NotAssigned},
+ {0x9b2, 0x9b2, HB_Letter_Other},
+ {0x9b3, 0x9b5, HB_Other_NotAssigned},
+ {0x9b6, 0x9b9, HB_Letter_Other},
+ {0x9ba, 0x9bb, HB_Other_NotAssigned},
+ {0x9bc, 0x9bc, HB_Mark_NonSpacing},
+ {0x9bd, 0x9bd, HB_Letter_Other},
+ {0x9be, 0x9c0, HB_Mark_SpacingCombining},
+ {0x9c1, 0x9c4, HB_Mark_NonSpacing},
+ {0x9c5, 0x9c6, HB_Other_NotAssigned},
+ {0x9c7, 0x9c8, HB_Mark_SpacingCombining},
+ {0x9c9, 0x9ca, HB_Other_NotAssigned},
+ {0x9cb, 0x9cc, HB_Mark_SpacingCombining},
+ {0x9cd, 0x9cd, HB_Mark_NonSpacing},
+ {0x9ce, 0x9ce, HB_Letter_Other},
+ {0x9cf, 0x9d6, HB_Other_NotAssigned},
+ {0x9d7, 0x9d7, HB_Mark_SpacingCombining},
+ {0x9d8, 0x9db, HB_Other_NotAssigned},
+ {0x9dc, 0x9dd, HB_Letter_Other},
+ {0x9de, 0x9de, HB_Other_NotAssigned},
+ {0x9df, 0x9e1, HB_Letter_Other},
+ {0x9e2, 0x9e3, HB_Mark_NonSpacing},
+ {0x9e4, 0x9e5, HB_Other_NotAssigned},
+ {0x9e6, 0x9ef, HB_Number_DecimalDigit},
+ {0x9f0, 0x9f1, HB_Letter_Other},
+ {0x9f2, 0x9f3, HB_Symbol_Currency},
+ {0x9f4, 0x9f9, HB_Number_Other},
+ {0x9fa, 0x9fa, HB_Symbol_Other},
+ {0x9fb, 0xa00, HB_Other_NotAssigned},
+ {0xa01, 0xa02, HB_Mark_NonSpacing},
+ {0xa03, 0xa03, HB_Mark_SpacingCombining},
+ {0xa04, 0xa04, HB_Other_NotAssigned},
+ {0xa05, 0xa0a, HB_Letter_Other},
+ {0xa0b, 0xa0e, HB_Other_NotAssigned},
+ {0xa0f, 0xa10, HB_Letter_Other},
+ {0xa11, 0xa12, HB_Other_NotAssigned},
+ {0xa13, 0xa28, HB_Letter_Other},
+ {0xa29, 0xa29, HB_Other_NotAssigned},
+ {0xa2a, 0xa30, HB_Letter_Other},
+ {0xa31, 0xa31, HB_Other_NotAssigned},
+ {0xa32, 0xa33, HB_Letter_Other},
+ {0xa34, 0xa34, HB_Other_NotAssigned},
+ {0xa35, 0xa36, HB_Letter_Other},
+ {0xa37, 0xa37, HB_Other_NotAssigned},
+ {0xa38, 0xa39, HB_Letter_Other},
+ {0xa3a, 0xa3b, HB_Other_NotAssigned},
+ {0xa3c, 0xa3c, HB_Mark_NonSpacing},
+ {0xa3d, 0xa3d, HB_Other_NotAssigned},
+ {0xa3e, 0xa40, HB_Mark_SpacingCombining},
+ {0xa41, 0xa42, HB_Mark_NonSpacing},
+ {0xa43, 0xa46, HB_Other_NotAssigned},
+ {0xa47, 0xa48, HB_Mark_NonSpacing},
+ {0xa49, 0xa4a, HB_Other_NotAssigned},
+ {0xa4b, 0xa4d, HB_Mark_NonSpacing},
+ {0xa4e, 0xa50, HB_Other_NotAssigned},
+ {0xa51, 0xa51, HB_Mark_NonSpacing},
+ {0xa52, 0xa58, HB_Other_NotAssigned},
+ {0xa59, 0xa5c, HB_Letter_Other},
+ {0xa5d, 0xa5d, HB_Other_NotAssigned},
+ {0xa5e, 0xa5e, HB_Letter_Other},
+ {0xa5f, 0xa65, HB_Other_NotAssigned},
+ {0xa66, 0xa6f, HB_Number_DecimalDigit},
+ {0xa70, 0xa71, HB_Mark_NonSpacing},
+ {0xa72, 0xa74, HB_Letter_Other},
+ {0xa75, 0xa75, HB_Mark_NonSpacing},
+ {0xa76, 0xa80, HB_Other_NotAssigned},
+ {0xa81, 0xa82, HB_Mark_NonSpacing},
+ {0xa83, 0xa83, HB_Mark_SpacingCombining},
+ {0xa84, 0xa84, HB_Other_NotAssigned},
+ {0xa85, 0xa8d, HB_Letter_Other},
+ {0xa8e, 0xa8e, HB_Other_NotAssigned},
+ {0xa8f, 0xa91, HB_Letter_Other},
+ {0xa92, 0xa92, HB_Other_NotAssigned},
+ {0xa93, 0xaa8, HB_Letter_Other},
+ {0xaa9, 0xaa9, HB_Other_NotAssigned},
+ {0xaaa, 0xab0, HB_Letter_Other},
+ {0xab1, 0xab1, HB_Other_NotAssigned},
+ {0xab2, 0xab3, HB_Letter_Other},
+ {0xab4, 0xab4, HB_Other_NotAssigned},
+ {0xab5, 0xab9, HB_Letter_Other},
+ {0xaba, 0xabb, HB_Other_NotAssigned},
+ {0xabc, 0xabc, HB_Mark_NonSpacing},
+ {0xabd, 0xabd, HB_Letter_Other},
+ {0xabe, 0xac0, HB_Mark_SpacingCombining},
+ {0xac1, 0xac5, HB_Mark_NonSpacing},
+ {0xac6, 0xac6, HB_Other_NotAssigned},
+ {0xac7, 0xac8, HB_Mark_NonSpacing},
+ {0xac9, 0xac9, HB_Mark_SpacingCombining},
+ {0xaca, 0xaca, HB_Other_NotAssigned},
+ {0xacb, 0xacc, HB_Mark_SpacingCombining},
+ {0xacd, 0xacd, HB_Mark_NonSpacing},
+ {0xace, 0xacf, HB_Other_NotAssigned},
+ {0xad0, 0xad0, HB_Letter_Other},
+ {0xad1, 0xadf, HB_Other_NotAssigned},
+ {0xae0, 0xae1, HB_Letter_Other},
+ {0xae2, 0xae3, HB_Mark_NonSpacing},
+ {0xae4, 0xae5, HB_Other_NotAssigned},
+ {0xae6, 0xaef, HB_Number_DecimalDigit},
+ {0xaf0, 0xaf0, HB_Other_NotAssigned},
+ {0xaf1, 0xaf1, HB_Symbol_Currency},
+ {0xaf2, 0xb00, HB_Other_NotAssigned},
+ {0xb01, 0xb01, HB_Mark_NonSpacing},
+ {0xb02, 0xb03, HB_Mark_SpacingCombining},
+ {0xb04, 0xb04, HB_Other_NotAssigned},
+ {0xb05, 0xb0c, HB_Letter_Other},
+ {0xb0d, 0xb0e, HB_Other_NotAssigned},
+ {0xb0f, 0xb10, HB_Letter_Other},
+ {0xb11, 0xb12, HB_Other_NotAssigned},
+ {0xb13, 0xb28, HB_Letter_Other},
+ {0xb29, 0xb29, HB_Other_NotAssigned},
+ {0xb2a, 0xb30, HB_Letter_Other},
+ {0xb31, 0xb31, HB_Other_NotAssigned},
+ {0xb32, 0xb33, HB_Letter_Other},
+ {0xb34, 0xb34, HB_Other_NotAssigned},
+ {0xb35, 0xb39, HB_Letter_Other},
+ {0xb3a, 0xb3b, HB_Other_NotAssigned},
+ {0xb3c, 0xb3c, HB_Mark_NonSpacing},
+ {0xb3d, 0xb3d, HB_Letter_Other},
+ {0xb3e, 0xb3e, HB_Mark_SpacingCombining},
+ {0xb3f, 0xb3f, HB_Mark_NonSpacing},
+ {0xb40, 0xb40, HB_Mark_SpacingCombining},
+ {0xb41, 0xb44, HB_Mark_NonSpacing},
+ {0xb45, 0xb46, HB_Other_NotAssigned},
+ {0xb47, 0xb48, HB_Mark_SpacingCombining},
+ {0xb49, 0xb4a, HB_Other_NotAssigned},
+ {0xb4b, 0xb4c, HB_Mark_SpacingCombining},
+ {0xb4d, 0xb4d, HB_Mark_NonSpacing},
+ {0xb4e, 0xb55, HB_Other_NotAssigned},
+ {0xb56, 0xb56, HB_Mark_NonSpacing},
+ {0xb57, 0xb57, HB_Mark_SpacingCombining},
+ {0xb58, 0xb5b, HB_Other_NotAssigned},
+ {0xb5c, 0xb5d, HB_Letter_Other},
+ {0xb5e, 0xb5e, HB_Other_NotAssigned},
+ {0xb5f, 0xb61, HB_Letter_Other},
+ {0xb62, 0xb63, HB_Mark_NonSpacing},
+ {0xb64, 0xb65, HB_Other_NotAssigned},
+ {0xb66, 0xb6f, HB_Number_DecimalDigit},
+ {0xb70, 0xb70, HB_Symbol_Other},
+ {0xb71, 0xb71, HB_Letter_Other},
+ {0xb72, 0xb81, HB_Other_NotAssigned},
+ {0xb82, 0xb82, HB_Mark_NonSpacing},
+ {0xb83, 0xb83, HB_Letter_Other},
+ {0xb84, 0xb84, HB_Other_NotAssigned},
+ {0xb85, 0xb8a, HB_Letter_Other},
+ {0xb8b, 0xb8d, HB_Other_NotAssigned},
+ {0xb8e, 0xb90, HB_Letter_Other},
+ {0xb91, 0xb91, HB_Other_NotAssigned},
+ {0xb92, 0xb95, HB_Letter_Other},
+ {0xb96, 0xb98, HB_Other_NotAssigned},
+ {0xb99, 0xb9a, HB_Letter_Other},
+ {0xb9b, 0xb9b, HB_Other_NotAssigned},
+ {0xb9c, 0xb9c, HB_Letter_Other},
+ {0xb9d, 0xb9d, HB_Other_NotAssigned},
+ {0xb9e, 0xb9f, HB_Letter_Other},
+ {0xba0, 0xba2, HB_Other_NotAssigned},
+ {0xba3, 0xba4, HB_Letter_Other},
+ {0xba5, 0xba7, HB_Other_NotAssigned},
+ {0xba8, 0xbaa, HB_Letter_Other},
+ {0xbab, 0xbad, HB_Other_NotAssigned},
+ {0xbae, 0xbb9, HB_Letter_Other},
+ {0xbba, 0xbbd, HB_Other_NotAssigned},
+ {0xbbe, 0xbbf, HB_Mark_SpacingCombining},
+ {0xbc0, 0xbc0, HB_Mark_NonSpacing},
+ {0xbc1, 0xbc2, HB_Mark_SpacingCombining},
+ {0xbc3, 0xbc5, HB_Other_NotAssigned},
+ {0xbc6, 0xbc8, HB_Mark_SpacingCombining},
+ {0xbc9, 0xbc9, HB_Other_NotAssigned},
+ {0xbca, 0xbcc, HB_Mark_SpacingCombining},
+ {0xbcd, 0xbcd, HB_Mark_NonSpacing},
+ {0xbce, 0xbcf, HB_Other_NotAssigned},
+ {0xbd0, 0xbd0, HB_Letter_Other},
+ {0xbd1, 0xbd6, HB_Other_NotAssigned},
+ {0xbd7, 0xbd7, HB_Mark_SpacingCombining},
+ {0xbd8, 0xbe5, HB_Other_NotAssigned},
+ {0xbe6, 0xbef, HB_Number_DecimalDigit},
+ {0xbf0, 0xbf2, HB_Number_Other},
+ {0xbf3, 0xbf8, HB_Symbol_Other},
+ {0xbf9, 0xbf9, HB_Symbol_Currency},
+ {0xbfa, 0xbfa, HB_Symbol_Other},
+ {0xbfb, 0xc00, HB_Other_NotAssigned},
+ {0xc01, 0xc03, HB_Mark_SpacingCombining},
+ {0xc04, 0xc04, HB_Other_NotAssigned},
+ {0xc05, 0xc0c, HB_Letter_Other},
+ {0xc0d, 0xc0d, HB_Other_NotAssigned},
+ {0xc0e, 0xc10, HB_Letter_Other},
+ {0xc11, 0xc11, HB_Other_NotAssigned},
+ {0xc12, 0xc28, HB_Letter_Other},
+ {0xc29, 0xc29, HB_Other_NotAssigned},
+ {0xc2a, 0xc33, HB_Letter_Other},
+ {0xc34, 0xc34, HB_Other_NotAssigned},
+ {0xc35, 0xc39, HB_Letter_Other},
+ {0xc3a, 0xc3c, HB_Other_NotAssigned},
+ {0xc3d, 0xc3d, HB_Letter_Other},
+ {0xc3e, 0xc40, HB_Mark_NonSpacing},
+ {0xc41, 0xc44, HB_Mark_SpacingCombining},
+ {0xc45, 0xc45, HB_Other_NotAssigned},
+ {0xc46, 0xc48, HB_Mark_NonSpacing},
+ {0xc49, 0xc49, HB_Other_NotAssigned},
+ {0xc4a, 0xc4d, HB_Mark_NonSpacing},
+ {0xc4e, 0xc54, HB_Other_NotAssigned},
+ {0xc55, 0xc56, HB_Mark_NonSpacing},
+ {0xc57, 0xc57, HB_Other_NotAssigned},
+ {0xc58, 0xc59, HB_Letter_Other},
+ {0xc5a, 0xc5f, HB_Other_NotAssigned},
+ {0xc60, 0xc61, HB_Letter_Other},
+ {0xc62, 0xc63, HB_Mark_NonSpacing},
+ {0xc64, 0xc65, HB_Other_NotAssigned},
+ {0xc66, 0xc6f, HB_Number_DecimalDigit},
+ {0xc70, 0xc77, HB_Other_NotAssigned},
+ {0xc78, 0xc7e, HB_Number_Other},
+ {0xc7f, 0xc7f, HB_Symbol_Other},
+ {0xc80, 0xc81, HB_Other_NotAssigned},
+ {0xc82, 0xc83, HB_Mark_SpacingCombining},
+ {0xc84, 0xc84, HB_Other_NotAssigned},
+ {0xc85, 0xc8c, HB_Letter_Other},
+ {0xc8d, 0xc8d, HB_Other_NotAssigned},
+ {0xc8e, 0xc90, HB_Letter_Other},
+ {0xc91, 0xc91, HB_Other_NotAssigned},
+ {0xc92, 0xca8, HB_Letter_Other},
+ {0xca9, 0xca9, HB_Other_NotAssigned},
+ {0xcaa, 0xcb3, HB_Letter_Other},
+ {0xcb4, 0xcb4, HB_Other_NotAssigned},
+ {0xcb5, 0xcb9, HB_Letter_Other},
+ {0xcba, 0xcbb, HB_Other_NotAssigned},
+ {0xcbc, 0xcbc, HB_Mark_NonSpacing},
+ {0xcbd, 0xcbd, HB_Letter_Other},
+ {0xcbe, 0xcbe, HB_Mark_SpacingCombining},
+ {0xcbf, 0xcbf, HB_Mark_NonSpacing},
+ {0xcc0, 0xcc4, HB_Mark_SpacingCombining},
+ {0xcc5, 0xcc5, HB_Other_NotAssigned},
+ {0xcc6, 0xcc6, HB_Mark_NonSpacing},
+ {0xcc7, 0xcc8, HB_Mark_SpacingCombining},
+ {0xcc9, 0xcc9, HB_Other_NotAssigned},
+ {0xcca, 0xccb, HB_Mark_SpacingCombining},
+ {0xccc, 0xccd, HB_Mark_NonSpacing},
+ {0xcce, 0xcd4, HB_Other_NotAssigned},
+ {0xcd5, 0xcd6, HB_Mark_SpacingCombining},
+ {0xcd7, 0xcdd, HB_Other_NotAssigned},
+ {0xcde, 0xcde, HB_Letter_Other},
+ {0xcdf, 0xcdf, HB_Other_NotAssigned},
+ {0xce0, 0xce1, HB_Letter_Other},
+ {0xce2, 0xce3, HB_Mark_NonSpacing},
+ {0xce4, 0xce5, HB_Other_NotAssigned},
+ {0xce6, 0xcef, HB_Number_DecimalDigit},
+ {0xcf0, 0xcf0, HB_Other_NotAssigned},
+ {0xcf1, 0xcf2, HB_Symbol_Other},
+ {0xcf3, 0xd01, HB_Other_NotAssigned},
+ {0xd02, 0xd03, HB_Mark_SpacingCombining},
+ {0xd04, 0xd04, HB_Other_NotAssigned},
+ {0xd05, 0xd0c, HB_Letter_Other},
+ {0xd0d, 0xd0d, HB_Other_NotAssigned},
+ {0xd0e, 0xd10, HB_Letter_Other},
+ {0xd11, 0xd11, HB_Other_NotAssigned},
+ {0xd12, 0xd28, HB_Letter_Other},
+ {0xd29, 0xd29, HB_Other_NotAssigned},
+ {0xd2a, 0xd39, HB_Letter_Other},
+ {0xd3a, 0xd3c, HB_Other_NotAssigned},
+ {0xd3d, 0xd3d, HB_Letter_Other},
+ {0xd3e, 0xd40, HB_Mark_SpacingCombining},
+ {0xd41, 0xd44, HB_Mark_NonSpacing},
+ {0xd45, 0xd45, HB_Other_NotAssigned},
+ {0xd46, 0xd48, HB_Mark_SpacingCombining},
+ {0xd49, 0xd49, HB_Other_NotAssigned},
+ {0xd4a, 0xd4c, HB_Mark_SpacingCombining},
+ {0xd4d, 0xd4d, HB_Mark_NonSpacing},
+ {0xd4e, 0xd56, HB_Other_NotAssigned},
+ {0xd57, 0xd57, HB_Mark_SpacingCombining},
+ {0xd58, 0xd5f, HB_Other_NotAssigned},
+ {0xd60, 0xd61, HB_Letter_Other},
+ {0xd62, 0xd63, HB_Mark_NonSpacing},
+ {0xd64, 0xd65, HB_Other_NotAssigned},
+ {0xd66, 0xd6f, HB_Number_DecimalDigit},
+ {0xd70, 0xd75, HB_Number_Other},
+ {0xd76, 0xd78, HB_Other_NotAssigned},
+ {0xd79, 0xd79, HB_Symbol_Other},
+ {0xd7a, 0xd7f, HB_Letter_Other},
+ {0xd80, 0xd81, HB_Other_NotAssigned},
+ {0xd82, 0xd83, HB_Mark_SpacingCombining},
+ {0xd84, 0xd84, HB_Other_NotAssigned},
+ {0xd85, 0xd96, HB_Letter_Other},
+ {0xd97, 0xd99, HB_Other_NotAssigned},
+ {0xd9a, 0xdb1, HB_Letter_Other},
+ {0xdb2, 0xdb2, HB_Other_NotAssigned},
+ {0xdb3, 0xdbb, HB_Letter_Other},
+ {0xdbc, 0xdbc, HB_Other_NotAssigned},
+ {0xdbd, 0xdbd, HB_Letter_Other},
+ {0xdbe, 0xdbf, HB_Other_NotAssigned},
+ {0xdc0, 0xdc6, HB_Letter_Other},
+ {0xdc7, 0xdc9, HB_Other_NotAssigned},
+ {0xdca, 0xdca, HB_Mark_NonSpacing},
+ {0xdcb, 0xdce, HB_Other_NotAssigned},
+ {0xdcf, 0xdd1, HB_Mark_SpacingCombining},
+ {0xdd2, 0xdd4, HB_Mark_NonSpacing},
+ {0xdd5, 0xdd5, HB_Other_NotAssigned},
+ {0xdd6, 0xdd6, HB_Mark_NonSpacing},
+ {0xdd7, 0xdd7, HB_Other_NotAssigned},
+ {0xdd8, 0xddf, HB_Mark_SpacingCombining},
+ {0xde0, 0xdf1, HB_Other_NotAssigned},
+ {0xdf2, 0xdf3, HB_Mark_SpacingCombining},
+ {0xdf4, 0xdf4, HB_Punctuation_Other},
+ {0xdf5, 0xe00, HB_Other_NotAssigned},
+ {0xe01, 0xe30, HB_Letter_Other},
+ {0xe31, 0xe31, HB_Mark_NonSpacing},
+ {0xe32, 0xe33, HB_Letter_Other},
+ {0xe34, 0xe3a, HB_Mark_NonSpacing},
+ {0xe3b, 0xe3e, HB_Other_NotAssigned},
+ {0xe3f, 0xe3f, HB_Symbol_Currency},
+ {0xe40, 0xe45, HB_Letter_Other},
+ {0xe46, 0xe46, HB_Letter_Modifier},
+ {0xe47, 0xe4e, HB_Mark_NonSpacing},
+ {0xe4f, 0xe4f, HB_Punctuation_Other},
+ {0xe50, 0xe59, HB_Number_DecimalDigit},
+ {0xe5a, 0xe5b, HB_Punctuation_Other},
+ {0xe5c, 0xe80, HB_Other_NotAssigned},
+ {0xe81, 0xe82, HB_Letter_Other},
+ {0xe83, 0xe83, HB_Other_NotAssigned},
+ {0xe84, 0xe84, HB_Letter_Other},
+ {0xe85, 0xe86, HB_Other_NotAssigned},
+ {0xe87, 0xe88, HB_Letter_Other},
+ {0xe89, 0xe89, HB_Other_NotAssigned},
+ {0xe8a, 0xe8a, HB_Letter_Other},
+ {0xe8b, 0xe8c, HB_Other_NotAssigned},
+ {0xe8d, 0xe8d, HB_Letter_Other},
+ {0xe8e, 0xe93, HB_Other_NotAssigned},
+ {0xe94, 0xe97, HB_Letter_Other},
+ {0xe98, 0xe98, HB_Other_NotAssigned},
+ {0xe99, 0xe9f, HB_Letter_Other},
+ {0xea0, 0xea0, HB_Other_NotAssigned},
+ {0xea1, 0xea3, HB_Letter_Other},
+ {0xea4, 0xea4, HB_Other_NotAssigned},
+ {0xea5, 0xea5, HB_Letter_Other},
+ {0xea6, 0xea6, HB_Other_NotAssigned},
+ {0xea7, 0xea7, HB_Letter_Other},
+ {0xea8, 0xea9, HB_Other_NotAssigned},
+ {0xeaa, 0xeab, HB_Letter_Other},
+ {0xeac, 0xeac, HB_Other_NotAssigned},
+ {0xead, 0xeb0, HB_Letter_Other},
+ {0xeb1, 0xeb1, HB_Mark_NonSpacing},
+ {0xeb2, 0xeb3, HB_Letter_Other},
+ {0xeb4, 0xeb9, HB_Mark_NonSpacing},
+ {0xeba, 0xeba, HB_Other_NotAssigned},
+ {0xebb, 0xebc, HB_Mark_NonSpacing},
+ {0xebd, 0xebd, HB_Letter_Other},
+ {0xebe, 0xebf, HB_Other_NotAssigned},
+ {0xec0, 0xec4, HB_Letter_Other},
+ {0xec5, 0xec5, HB_Other_NotAssigned},
+ {0xec6, 0xec6, HB_Letter_Modifier},
+ {0xec7, 0xec7, HB_Other_NotAssigned},
+ {0xec8, 0xecd, HB_Mark_NonSpacing},
+ {0xece, 0xecf, HB_Other_NotAssigned},
+ {0xed0, 0xed9, HB_Number_DecimalDigit},
+ {0xeda, 0xedb, HB_Other_NotAssigned},
+ {0xedc, 0xedd, HB_Letter_Other},
+ {0xede, 0xeff, HB_Other_NotAssigned},
+ {0xf00, 0xf00, HB_Letter_Other},
+ {0xf01, 0xf03, HB_Symbol_Other},
+ {0xf04, 0xf12, HB_Punctuation_Other},
+ {0xf13, 0xf17, HB_Symbol_Other},
+ {0xf18, 0xf19, HB_Mark_NonSpacing},
+ {0xf1a, 0xf1f, HB_Symbol_Other},
+ {0xf20, 0xf29, HB_Number_DecimalDigit},
+ {0xf2a, 0xf33, HB_Number_Other},
+ {0xf34, 0xf34, HB_Symbol_Other},
+ {0xf35, 0xf35, HB_Mark_NonSpacing},
+ {0xf36, 0xf36, HB_Symbol_Other},
+ {0xf37, 0xf37, HB_Mark_NonSpacing},
+ {0xf38, 0xf38, HB_Symbol_Other},
+ {0xf39, 0xf39, HB_Mark_NonSpacing},
+ {0xf3a, 0xf3a, HB_Punctuation_Open},
+ {0xf3b, 0xf3b, HB_Punctuation_Close},
+ {0xf3c, 0xf3c, HB_Punctuation_Open},
+ {0xf3d, 0xf3d, HB_Punctuation_Close},
+ {0xf3e, 0xf3f, HB_Mark_SpacingCombining},
+ {0xf40, 0xf47, HB_Letter_Other},
+ {0xf48, 0xf48, HB_Other_NotAssigned},
+ {0xf49, 0xf6c, HB_Letter_Other},
+ {0xf6d, 0xf70, HB_Other_NotAssigned},
+ {0xf71, 0xf7e, HB_Mark_NonSpacing},
+ {0xf7f, 0xf7f, HB_Mark_SpacingCombining},
+ {0xf80, 0xf84, HB_Mark_NonSpacing},
+ {0xf85, 0xf85, HB_Punctuation_Other},
+ {0xf86, 0xf87, HB_Mark_NonSpacing},
+ {0xf88, 0xf8b, HB_Letter_Other},
+ {0xf8c, 0xf8f, HB_Other_NotAssigned},
+ {0xf90, 0xf97, HB_Mark_NonSpacing},
+ {0xf98, 0xf98, HB_Other_NotAssigned},
+ {0xf99, 0xfbc, HB_Mark_NonSpacing},
+ {0xfbd, 0xfbd, HB_Other_NotAssigned},
+ {0xfbe, 0xfc5, HB_Symbol_Other},
+ {0xfc6, 0xfc6, HB_Mark_NonSpacing},
+ {0xfc7, 0xfcc, HB_Symbol_Other},
+ {0xfcd, 0xfcd, HB_Other_NotAssigned},
+ {0xfce, 0xfcf, HB_Symbol_Other},
+ {0xfd0, 0xfd4, HB_Punctuation_Other},
+ {0xfd5, 0xfff, HB_Other_NotAssigned},
+ {0x1000, 0x102a, HB_Letter_Other},
+ {0x102b, 0x102c, HB_Mark_SpacingCombining},
+ {0x102d, 0x1030, HB_Mark_NonSpacing},
+ {0x1031, 0x1031, HB_Mark_SpacingCombining},
+ {0x1032, 0x1037, HB_Mark_NonSpacing},
+ {0x1038, 0x1038, HB_Mark_SpacingCombining},
+ {0x1039, 0x103a, HB_Mark_NonSpacing},
+ {0x103b, 0x103c, HB_Mark_SpacingCombining},
+ {0x103d, 0x103e, HB_Mark_NonSpacing},
+ {0x103f, 0x103f, HB_Letter_Other},
+ {0x1040, 0x1049, HB_Number_DecimalDigit},
+ {0x104a, 0x104f, HB_Punctuation_Other},
+ {0x1050, 0x1055, HB_Letter_Other},
+ {0x1056, 0x1057, HB_Mark_SpacingCombining},
+ {0x1058, 0x1059, HB_Mark_NonSpacing},
+ {0x105a, 0x105d, HB_Letter_Other},
+ {0x105e, 0x1060, HB_Mark_NonSpacing},
+ {0x1061, 0x1061, HB_Letter_Other},
+ {0x1062, 0x1064, HB_Mark_SpacingCombining},
+ {0x1065, 0x1066, HB_Letter_Other},
+ {0x1067, 0x106d, HB_Mark_SpacingCombining},
+ {0x106e, 0x1070, HB_Letter_Other},
+ {0x1071, 0x1074, HB_Mark_NonSpacing},
+ {0x1075, 0x1081, HB_Letter_Other},
+ {0x1082, 0x1082, HB_Mark_NonSpacing},
+ {0x1083, 0x1084, HB_Mark_SpacingCombining},
+ {0x1085, 0x1086, HB_Mark_NonSpacing},
+ {0x1087, 0x108c, HB_Mark_SpacingCombining},
+ {0x108d, 0x108d, HB_Mark_NonSpacing},
+ {0x108e, 0x108e, HB_Letter_Other},
+ {0x108f, 0x108f, HB_Mark_SpacingCombining},
+ {0x1090, 0x1099, HB_Number_DecimalDigit},
+ {0x109a, 0x109d, HB_Other_NotAssigned},
+ {0x109e, 0x109f, HB_Symbol_Other},
+ {0x10a0, 0x10c5, HB_Letter_Uppercase},
+ {0x10c6, 0x10cf, HB_Other_NotAssigned},
+ {0x10d0, 0x10fa, HB_Letter_Other},
+ {0x10fb, 0x10fb, HB_Punctuation_Other},
+ {0x10fc, 0x10fc, HB_Letter_Modifier},
+ {0x10fd, 0x10ff, HB_Other_NotAssigned},
+ {0x1100, 0x1159, HB_Letter_Other},
+ {0x115a, 0x115e, HB_Other_NotAssigned},
+ {0x115f, 0x11a2, HB_Letter_Other},
+ {0x11a3, 0x11a7, HB_Other_NotAssigned},
+ {0x11a8, 0x11f9, HB_Letter_Other},
+ {0x11fa, 0x11ff, HB_Other_NotAssigned},
+ {0x1200, 0x1248, HB_Letter_Other},
+ {0x1249, 0x1249, HB_Other_NotAssigned},
+ {0x124a, 0x124d, HB_Letter_Other},
+ {0x124e, 0x124f, HB_Other_NotAssigned},
+ {0x1250, 0x1256, HB_Letter_Other},
+ {0x1257, 0x1257, HB_Other_NotAssigned},
+ {0x1258, 0x1258, HB_Letter_Other},
+ {0x1259, 0x1259, HB_Other_NotAssigned},
+ {0x125a, 0x125d, HB_Letter_Other},
+ {0x125e, 0x125f, HB_Other_NotAssigned},
+ {0x1260, 0x1288, HB_Letter_Other},
+ {0x1289, 0x1289, HB_Other_NotAssigned},
+ {0x128a, 0x128d, HB_Letter_Other},
+ {0x128e, 0x128f, HB_Other_NotAssigned},
+ {0x1290, 0x12b0, HB_Letter_Other},
+ {0x12b1, 0x12b1, HB_Other_NotAssigned},
+ {0x12b2, 0x12b5, HB_Letter_Other},
+ {0x12b6, 0x12b7, HB_Other_NotAssigned},
+ {0x12b8, 0x12be, HB_Letter_Other},
+ {0x12bf, 0x12bf, HB_Other_NotAssigned},
+ {0x12c0, 0x12c0, HB_Letter_Other},
+ {0x12c1, 0x12c1, HB_Other_NotAssigned},
+ {0x12c2, 0x12c5, HB_Letter_Other},
+ {0x12c6, 0x12c7, HB_Other_NotAssigned},
+ {0x12c8, 0x12d6, HB_Letter_Other},
+ {0x12d7, 0x12d7, HB_Other_NotAssigned},
+ {0x12d8, 0x1310, HB_Letter_Other},
+ {0x1311, 0x1311, HB_Other_NotAssigned},
+ {0x1312, 0x1315, HB_Letter_Other},
+ {0x1316, 0x1317, HB_Other_NotAssigned},
+ {0x1318, 0x135a, HB_Letter_Other},
+ {0x135b, 0x135e, HB_Other_NotAssigned},
+ {0x135f, 0x135f, HB_Mark_NonSpacing},
+ {0x1360, 0x1360, HB_Symbol_Other},
+ {0x1361, 0x1368, HB_Punctuation_Other},
+ {0x1369, 0x137c, HB_Number_Other},
+ {0x137d, 0x137f, HB_Other_NotAssigned},
+ {0x1380, 0x138f, HB_Letter_Other},
+ {0x1390, 0x1399, HB_Symbol_Other},
+ {0x139a, 0x139f, HB_Other_NotAssigned},
+ {0x13a0, 0x13f4, HB_Letter_Other},
+ {0x13f5, 0x1400, HB_Other_NotAssigned},
+ {0x1401, 0x166c, HB_Letter_Other},
+ {0x166d, 0x166e, HB_Punctuation_Other},
+ {0x166f, 0x1676, HB_Letter_Other},
+ {0x1677, 0x167f, HB_Other_NotAssigned},
+ {0x1680, 0x1680, HB_Separator_Space},
+ {0x1681, 0x169a, HB_Letter_Other},
+ {0x169b, 0x169b, HB_Punctuation_Open},
+ {0x169c, 0x169c, HB_Punctuation_Close},
+ {0x169d, 0x169f, HB_Other_NotAssigned},
+ {0x16a0, 0x16ea, HB_Letter_Other},
+ {0x16eb, 0x16ed, HB_Punctuation_Other},
+ {0x16ee, 0x16f0, HB_Number_Letter},
+ {0x16f1, 0x16ff, HB_Other_NotAssigned},
+ {0x1700, 0x170c, HB_Letter_Other},
+ {0x170d, 0x170d, HB_Other_NotAssigned},
+ {0x170e, 0x1711, HB_Letter_Other},
+ {0x1712, 0x1714, HB_Mark_NonSpacing},
+ {0x1715, 0x171f, HB_Other_NotAssigned},
+ {0x1720, 0x1731, HB_Letter_Other},
+ {0x1732, 0x1734, HB_Mark_NonSpacing},
+ {0x1735, 0x1736, HB_Punctuation_Other},
+ {0x1737, 0x173f, HB_Other_NotAssigned},
+ {0x1740, 0x1751, HB_Letter_Other},
+ {0x1752, 0x1753, HB_Mark_NonSpacing},
+ {0x1754, 0x175f, HB_Other_NotAssigned},
+ {0x1760, 0x176c, HB_Letter_Other},
+ {0x176d, 0x176d, HB_Other_NotAssigned},
+ {0x176e, 0x1770, HB_Letter_Other},
+ {0x1771, 0x1771, HB_Other_NotAssigned},
+ {0x1772, 0x1773, HB_Mark_NonSpacing},
+ {0x1774, 0x177f, HB_Other_NotAssigned},
+ {0x1780, 0x17b3, HB_Letter_Other},
+ {0x17b4, 0x17b5, HB_Other_Format},
+ {0x17b6, 0x17b6, HB_Mark_SpacingCombining},
+ {0x17b7, 0x17bd, HB_Mark_NonSpacing},
+ {0x17be, 0x17c5, HB_Mark_SpacingCombining},
+ {0x17c6, 0x17c6, HB_Mark_NonSpacing},
+ {0x17c7, 0x17c8, HB_Mark_SpacingCombining},
+ {0x17c9, 0x17d3, HB_Mark_NonSpacing},
+ {0x17d4, 0x17d6, HB_Punctuation_Other},
+ {0x17d7, 0x17d7, HB_Letter_Modifier},
+ {0x17d8, 0x17da, HB_Punctuation_Other},
+ {0x17db, 0x17db, HB_Symbol_Currency},
+ {0x17dc, 0x17dc, HB_Letter_Other},
+ {0x17dd, 0x17dd, HB_Mark_NonSpacing},
+ {0x17de, 0x17df, HB_Other_NotAssigned},
+ {0x17e0, 0x17e9, HB_Number_DecimalDigit},
+ {0x17ea, 0x17ef, HB_Other_NotAssigned},
+ {0x17f0, 0x17f9, HB_Number_Other},
+ {0x17fa, 0x17ff, HB_Other_NotAssigned},
+ {0x1800, 0x1805, HB_Punctuation_Other},
+ {0x1806, 0x1806, HB_Punctuation_Dash},
+ {0x1807, 0x180a, HB_Punctuation_Other},
+ {0x180b, 0x180d, HB_Mark_NonSpacing},
+ {0x180e, 0x180e, HB_Separator_Space},
+ {0x180f, 0x180f, HB_Other_NotAssigned},
+ {0x1810, 0x1819, HB_Number_DecimalDigit},
+ {0x181a, 0x181f, HB_Other_NotAssigned},
+ {0x1820, 0x1842, HB_Letter_Other},
+ {0x1843, 0x1843, HB_Letter_Modifier},
+ {0x1844, 0x1877, HB_Letter_Other},
+ {0x1878, 0x187f, HB_Other_NotAssigned},
+ {0x1880, 0x18a8, HB_Letter_Other},
+ {0x18a9, 0x18a9, HB_Mark_NonSpacing},
+ {0x18aa, 0x18aa, HB_Letter_Other},
+ {0x18ab, 0x18ff, HB_Other_NotAssigned},
+ {0x1900, 0x191c, HB_Letter_Other},
+ {0x191d, 0x191f, HB_Other_NotAssigned},
+ {0x1920, 0x1922, HB_Mark_NonSpacing},
+ {0x1923, 0x1926, HB_Mark_SpacingCombining},
+ {0x1927, 0x1928, HB_Mark_NonSpacing},
+ {0x1929, 0x192b, HB_Mark_SpacingCombining},
+ {0x192c, 0x192f, HB_Other_NotAssigned},
+ {0x1930, 0x1931, HB_Mark_SpacingCombining},
+ {0x1932, 0x1932, HB_Mark_NonSpacing},
+ {0x1933, 0x1938, HB_Mark_SpacingCombining},
+ {0x1939, 0x193b, HB_Mark_NonSpacing},
+ {0x193c, 0x193f, HB_Other_NotAssigned},
+ {0x1940, 0x1940, HB_Symbol_Other},
+ {0x1941, 0x1943, HB_Other_NotAssigned},
+ {0x1944, 0x1945, HB_Punctuation_Other},
+ {0x1946, 0x194f, HB_Number_DecimalDigit},
+ {0x1950, 0x196d, HB_Letter_Other},
+ {0x196e, 0x196f, HB_Other_NotAssigned},
+ {0x1970, 0x1974, HB_Letter_Other},
+ {0x1975, 0x197f, HB_Other_NotAssigned},
+ {0x1980, 0x19a9, HB_Letter_Other},
+ {0x19aa, 0x19af, HB_Other_NotAssigned},
+ {0x19b0, 0x19c0, HB_Mark_SpacingCombining},
+ {0x19c1, 0x19c7, HB_Letter_Other},
+ {0x19c8, 0x19c9, HB_Mark_SpacingCombining},
+ {0x19ca, 0x19cf, HB_Other_NotAssigned},
+ {0x19d0, 0x19d9, HB_Number_DecimalDigit},
+ {0x19da, 0x19dd, HB_Other_NotAssigned},
+ {0x19de, 0x19df, HB_Punctuation_Other},
+ {0x19e0, 0x19ff, HB_Symbol_Other},
+ {0x1a00, 0x1a16, HB_Letter_Other},
+ {0x1a17, 0x1a18, HB_Mark_NonSpacing},
+ {0x1a19, 0x1a1b, HB_Mark_SpacingCombining},
+ {0x1a1c, 0x1a1d, HB_Other_NotAssigned},
+ {0x1a1e, 0x1a1f, HB_Punctuation_Other},
+ {0x1a20, 0x1aff, HB_Other_NotAssigned},
+ {0x1b00, 0x1b03, HB_Mark_NonSpacing},
+ {0x1b04, 0x1b04, HB_Mark_SpacingCombining},
+ {0x1b05, 0x1b33, HB_Letter_Other},
+ {0x1b34, 0x1b34, HB_Mark_NonSpacing},
+ {0x1b35, 0x1b35, HB_Mark_SpacingCombining},
+ {0x1b36, 0x1b3a, HB_Mark_NonSpacing},
+ {0x1b3b, 0x1b3b, HB_Mark_SpacingCombining},
+ {0x1b3c, 0x1b3c, HB_Mark_NonSpacing},
+ {0x1b3d, 0x1b41, HB_Mark_SpacingCombining},
+ {0x1b42, 0x1b42, HB_Mark_NonSpacing},
+ {0x1b43, 0x1b44, HB_Mark_SpacingCombining},
+ {0x1b45, 0x1b4b, HB_Letter_Other},
+ {0x1b4c, 0x1b4f, HB_Other_NotAssigned},
+ {0x1b50, 0x1b59, HB_Number_DecimalDigit},
+ {0x1b5a, 0x1b60, HB_Punctuation_Other},
+ {0x1b61, 0x1b6a, HB_Symbol_Other},
+ {0x1b6b, 0x1b73, HB_Mark_NonSpacing},
+ {0x1b74, 0x1b7c, HB_Symbol_Other},
+ {0x1b7d, 0x1b7f, HB_Other_NotAssigned},
+ {0x1b80, 0x1b81, HB_Mark_NonSpacing},
+ {0x1b82, 0x1b82, HB_Mark_SpacingCombining},
+ {0x1b83, 0x1ba0, HB_Letter_Other},
+ {0x1ba1, 0x1ba1, HB_Mark_SpacingCombining},
+ {0x1ba2, 0x1ba5, HB_Mark_NonSpacing},
+ {0x1ba6, 0x1ba7, HB_Mark_SpacingCombining},
+ {0x1ba8, 0x1ba9, HB_Mark_NonSpacing},
+ {0x1baa, 0x1baa, HB_Mark_SpacingCombining},
+ {0x1bab, 0x1bad, HB_Other_NotAssigned},
+ {0x1bae, 0x1baf, HB_Letter_Other},
+ {0x1bb0, 0x1bb9, HB_Number_DecimalDigit},
+ {0x1bba, 0x1bff, HB_Other_NotAssigned},
+ {0x1c00, 0x1c23, HB_Letter_Other},
+ {0x1c24, 0x1c2b, HB_Mark_SpacingCombining},
+ {0x1c2c, 0x1c33, HB_Mark_NonSpacing},
+ {0x1c34, 0x1c35, HB_Mark_SpacingCombining},
+ {0x1c36, 0x1c37, HB_Mark_NonSpacing},
+ {0x1c38, 0x1c3a, HB_Other_NotAssigned},
+ {0x1c3b, 0x1c3f, HB_Punctuation_Other},
+ {0x1c40, 0x1c49, HB_Number_DecimalDigit},
+ {0x1c4a, 0x1c4c, HB_Other_NotAssigned},
+ {0x1c4d, 0x1c4f, HB_Letter_Other},
+ {0x1c50, 0x1c59, HB_Number_DecimalDigit},
+ {0x1c5a, 0x1c77, HB_Letter_Other},
+ {0x1c78, 0x1c7d, HB_Letter_Modifier},
+ {0x1c7e, 0x1c7f, HB_Punctuation_Other},
+ {0x1c80, 0x1cff, HB_Other_NotAssigned},
+ {0x1d00, 0x1d2b, HB_Letter_Lowercase},
+ {0x1d2c, 0x1d61, HB_Letter_Modifier},
+ {0x1d62, 0x1d77, HB_Letter_Lowercase},
+ {0x1d78, 0x1d78, HB_Letter_Modifier},
+ {0x1d79, 0x1d9a, HB_Letter_Lowercase},
+ {0x1d9b, 0x1dbf, HB_Letter_Modifier},
+ {0x1dc0, 0x1de6, HB_Mark_NonSpacing},
+ {0x1de7, 0x1dfd, HB_Other_NotAssigned},
+ {0x1dfe, 0x1dff, HB_Mark_NonSpacing},
+ {0x1e00, 0x1e00, HB_Letter_Uppercase},
+ {0x1e01, 0x1e01, HB_Letter_Lowercase},
+ {0x1e02, 0x1e02, HB_Letter_Uppercase},
+ {0x1e03, 0x1e03, HB_Letter_Lowercase},
+ {0x1e04, 0x1e04, HB_Letter_Uppercase},
+ {0x1e05, 0x1e05, HB_Letter_Lowercase},
+ {0x1e06, 0x1e06, HB_Letter_Uppercase},
+ {0x1e07, 0x1e07, HB_Letter_Lowercase},
+ {0x1e08, 0x1e08, HB_Letter_Uppercase},
+ {0x1e09, 0x1e09, HB_Letter_Lowercase},
+ {0x1e0a, 0x1e0a, HB_Letter_Uppercase},
+ {0x1e0b, 0x1e0b, HB_Letter_Lowercase},
+ {0x1e0c, 0x1e0c, HB_Letter_Uppercase},
+ {0x1e0d, 0x1e0d, HB_Letter_Lowercase},
+ {0x1e0e, 0x1e0e, HB_Letter_Uppercase},
+ {0x1e0f, 0x1e0f, HB_Letter_Lowercase},
+ {0x1e10, 0x1e10, HB_Letter_Uppercase},
+ {0x1e11, 0x1e11, HB_Letter_Lowercase},
+ {0x1e12, 0x1e12, HB_Letter_Uppercase},
+ {0x1e13, 0x1e13, HB_Letter_Lowercase},
+ {0x1e14, 0x1e14, HB_Letter_Uppercase},
+ {0x1e15, 0x1e15, HB_Letter_Lowercase},
+ {0x1e16, 0x1e16, HB_Letter_Uppercase},
+ {0x1e17, 0x1e17, HB_Letter_Lowercase},
+ {0x1e18, 0x1e18, HB_Letter_Uppercase},
+ {0x1e19, 0x1e19, HB_Letter_Lowercase},
+ {0x1e1a, 0x1e1a, HB_Letter_Uppercase},
+ {0x1e1b, 0x1e1b, HB_Letter_Lowercase},
+ {0x1e1c, 0x1e1c, HB_Letter_Uppercase},
+ {0x1e1d, 0x1e1d, HB_Letter_Lowercase},
+ {0x1e1e, 0x1e1e, HB_Letter_Uppercase},
+ {0x1e1f, 0x1e1f, HB_Letter_Lowercase},
+ {0x1e20, 0x1e20, HB_Letter_Uppercase},
+ {0x1e21, 0x1e21, HB_Letter_Lowercase},
+ {0x1e22, 0x1e22, HB_Letter_Uppercase},
+ {0x1e23, 0x1e23, HB_Letter_Lowercase},
+ {0x1e24, 0x1e24, HB_Letter_Uppercase},
+ {0x1e25, 0x1e25, HB_Letter_Lowercase},
+ {0x1e26, 0x1e26, HB_Letter_Uppercase},
+ {0x1e27, 0x1e27, HB_Letter_Lowercase},
+ {0x1e28, 0x1e28, HB_Letter_Uppercase},
+ {0x1e29, 0x1e29, HB_Letter_Lowercase},
+ {0x1e2a, 0x1e2a, HB_Letter_Uppercase},
+ {0x1e2b, 0x1e2b, HB_Letter_Lowercase},
+ {0x1e2c, 0x1e2c, HB_Letter_Uppercase},
+ {0x1e2d, 0x1e2d, HB_Letter_Lowercase},
+ {0x1e2e, 0x1e2e, HB_Letter_Uppercase},
+ {0x1e2f, 0x1e2f, HB_Letter_Lowercase},
+ {0x1e30, 0x1e30, HB_Letter_Uppercase},
+ {0x1e31, 0x1e31, HB_Letter_Lowercase},
+ {0x1e32, 0x1e32, HB_Letter_Uppercase},
+ {0x1e33, 0x1e33, HB_Letter_Lowercase},
+ {0x1e34, 0x1e34, HB_Letter_Uppercase},
+ {0x1e35, 0x1e35, HB_Letter_Lowercase},
+ {0x1e36, 0x1e36, HB_Letter_Uppercase},
+ {0x1e37, 0x1e37, HB_Letter_Lowercase},
+ {0x1e38, 0x1e38, HB_Letter_Uppercase},
+ {0x1e39, 0x1e39, HB_Letter_Lowercase},
+ {0x1e3a, 0x1e3a, HB_Letter_Uppercase},
+ {0x1e3b, 0x1e3b, HB_Letter_Lowercase},
+ {0x1e3c, 0x1e3c, HB_Letter_Uppercase},
+ {0x1e3d, 0x1e3d, HB_Letter_Lowercase},
+ {0x1e3e, 0x1e3e, HB_Letter_Uppercase},
+ {0x1e3f, 0x1e3f, HB_Letter_Lowercase},
+ {0x1e40, 0x1e40, HB_Letter_Uppercase},
+ {0x1e41, 0x1e41, HB_Letter_Lowercase},
+ {0x1e42, 0x1e42, HB_Letter_Uppercase},
+ {0x1e43, 0x1e43, HB_Letter_Lowercase},
+ {0x1e44, 0x1e44, HB_Letter_Uppercase},
+ {0x1e45, 0x1e45, HB_Letter_Lowercase},
+ {0x1e46, 0x1e46, HB_Letter_Uppercase},
+ {0x1e47, 0x1e47, HB_Letter_Lowercase},
+ {0x1e48, 0x1e48, HB_Letter_Uppercase},
+ {0x1e49, 0x1e49, HB_Letter_Lowercase},
+ {0x1e4a, 0x1e4a, HB_Letter_Uppercase},
+ {0x1e4b, 0x1e4b, HB_Letter_Lowercase},
+ {0x1e4c, 0x1e4c, HB_Letter_Uppercase},
+ {0x1e4d, 0x1e4d, HB_Letter_Lowercase},
+ {0x1e4e, 0x1e4e, HB_Letter_Uppercase},
+ {0x1e4f, 0x1e4f, HB_Letter_Lowercase},
+ {0x1e50, 0x1e50, HB_Letter_Uppercase},
+ {0x1e51, 0x1e51, HB_Letter_Lowercase},
+ {0x1e52, 0x1e52, HB_Letter_Uppercase},
+ {0x1e53, 0x1e53, HB_Letter_Lowercase},
+ {0x1e54, 0x1e54, HB_Letter_Uppercase},
+ {0x1e55, 0x1e55, HB_Letter_Lowercase},
+ {0x1e56, 0x1e56, HB_Letter_Uppercase},
+ {0x1e57, 0x1e57, HB_Letter_Lowercase},
+ {0x1e58, 0x1e58, HB_Letter_Uppercase},
+ {0x1e59, 0x1e59, HB_Letter_Lowercase},
+ {0x1e5a, 0x1e5a, HB_Letter_Uppercase},
+ {0x1e5b, 0x1e5b, HB_Letter_Lowercase},
+ {0x1e5c, 0x1e5c, HB_Letter_Uppercase},
+ {0x1e5d, 0x1e5d, HB_Letter_Lowercase},
+ {0x1e5e, 0x1e5e, HB_Letter_Uppercase},
+ {0x1e5f, 0x1e5f, HB_Letter_Lowercase},
+ {0x1e60, 0x1e60, HB_Letter_Uppercase},
+ {0x1e61, 0x1e61, HB_Letter_Lowercase},
+ {0x1e62, 0x1e62, HB_Letter_Uppercase},
+ {0x1e63, 0x1e63, HB_Letter_Lowercase},
+ {0x1e64, 0x1e64, HB_Letter_Uppercase},
+ {0x1e65, 0x1e65, HB_Letter_Lowercase},
+ {0x1e66, 0x1e66, HB_Letter_Uppercase},
+ {0x1e67, 0x1e67, HB_Letter_Lowercase},
+ {0x1e68, 0x1e68, HB_Letter_Uppercase},
+ {0x1e69, 0x1e69, HB_Letter_Lowercase},
+ {0x1e6a, 0x1e6a, HB_Letter_Uppercase},
+ {0x1e6b, 0x1e6b, HB_Letter_Lowercase},
+ {0x1e6c, 0x1e6c, HB_Letter_Uppercase},
+ {0x1e6d, 0x1e6d, HB_Letter_Lowercase},
+ {0x1e6e, 0x1e6e, HB_Letter_Uppercase},
+ {0x1e6f, 0x1e6f, HB_Letter_Lowercase},
+ {0x1e70, 0x1e70, HB_Letter_Uppercase},
+ {0x1e71, 0x1e71, HB_Letter_Lowercase},
+ {0x1e72, 0x1e72, HB_Letter_Uppercase},
+ {0x1e73, 0x1e73, HB_Letter_Lowercase},
+ {0x1e74, 0x1e74, HB_Letter_Uppercase},
+ {0x1e75, 0x1e75, HB_Letter_Lowercase},
+ {0x1e76, 0x1e76, HB_Letter_Uppercase},
+ {0x1e77, 0x1e77, HB_Letter_Lowercase},
+ {0x1e78, 0x1e78, HB_Letter_Uppercase},
+ {0x1e79, 0x1e79, HB_Letter_Lowercase},
+ {0x1e7a, 0x1e7a, HB_Letter_Uppercase},
+ {0x1e7b, 0x1e7b, HB_Letter_Lowercase},
+ {0x1e7c, 0x1e7c, HB_Letter_Uppercase},
+ {0x1e7d, 0x1e7d, HB_Letter_Lowercase},
+ {0x1e7e, 0x1e7e, HB_Letter_Uppercase},
+ {0x1e7f, 0x1e7f, HB_Letter_Lowercase},
+ {0x1e80, 0x1e80, HB_Letter_Uppercase},
+ {0x1e81, 0x1e81, HB_Letter_Lowercase},
+ {0x1e82, 0x1e82, HB_Letter_Uppercase},
+ {0x1e83, 0x1e83, HB_Letter_Lowercase},
+ {0x1e84, 0x1e84, HB_Letter_Uppercase},
+ {0x1e85, 0x1e85, HB_Letter_Lowercase},
+ {0x1e86, 0x1e86, HB_Letter_Uppercase},
+ {0x1e87, 0x1e87, HB_Letter_Lowercase},
+ {0x1e88, 0x1e88, HB_Letter_Uppercase},
+ {0x1e89, 0x1e89, HB_Letter_Lowercase},
+ {0x1e8a, 0x1e8a, HB_Letter_Uppercase},
+ {0x1e8b, 0x1e8b, HB_Letter_Lowercase},
+ {0x1e8c, 0x1e8c, HB_Letter_Uppercase},
+ {0x1e8d, 0x1e8d, HB_Letter_Lowercase},
+ {0x1e8e, 0x1e8e, HB_Letter_Uppercase},
+ {0x1e8f, 0x1e8f, HB_Letter_Lowercase},
+ {0x1e90, 0x1e90, HB_Letter_Uppercase},
+ {0x1e91, 0x1e91, HB_Letter_Lowercase},
+ {0x1e92, 0x1e92, HB_Letter_Uppercase},
+ {0x1e93, 0x1e93, HB_Letter_Lowercase},
+ {0x1e94, 0x1e94, HB_Letter_Uppercase},
+ {0x1e95, 0x1e9d, HB_Letter_Lowercase},
+ {0x1e9e, 0x1e9e, HB_Letter_Uppercase},
+ {0x1e9f, 0x1e9f, HB_Letter_Lowercase},
+ {0x1ea0, 0x1ea0, HB_Letter_Uppercase},
+ {0x1ea1, 0x1ea1, HB_Letter_Lowercase},
+ {0x1ea2, 0x1ea2, HB_Letter_Uppercase},
+ {0x1ea3, 0x1ea3, HB_Letter_Lowercase},
+ {0x1ea4, 0x1ea4, HB_Letter_Uppercase},
+ {0x1ea5, 0x1ea5, HB_Letter_Lowercase},
+ {0x1ea6, 0x1ea6, HB_Letter_Uppercase},
+ {0x1ea7, 0x1ea7, HB_Letter_Lowercase},
+ {0x1ea8, 0x1ea8, HB_Letter_Uppercase},
+ {0x1ea9, 0x1ea9, HB_Letter_Lowercase},
+ {0x1eaa, 0x1eaa, HB_Letter_Uppercase},
+ {0x1eab, 0x1eab, HB_Letter_Lowercase},
+ {0x1eac, 0x1eac, HB_Letter_Uppercase},
+ {0x1ead, 0x1ead, HB_Letter_Lowercase},
+ {0x1eae, 0x1eae, HB_Letter_Uppercase},
+ {0x1eaf, 0x1eaf, HB_Letter_Lowercase},
+ {0x1eb0, 0x1eb0, HB_Letter_Uppercase},
+ {0x1eb1, 0x1eb1, HB_Letter_Lowercase},
+ {0x1eb2, 0x1eb2, HB_Letter_Uppercase},
+ {0x1eb3, 0x1eb3, HB_Letter_Lowercase},
+ {0x1eb4, 0x1eb4, HB_Letter_Uppercase},
+ {0x1eb5, 0x1eb5, HB_Letter_Lowercase},
+ {0x1eb6, 0x1eb6, HB_Letter_Uppercase},
+ {0x1eb7, 0x1eb7, HB_Letter_Lowercase},
+ {0x1eb8, 0x1eb8, HB_Letter_Uppercase},
+ {0x1eb9, 0x1eb9, HB_Letter_Lowercase},
+ {0x1eba, 0x1eba, HB_Letter_Uppercase},
+ {0x1ebb, 0x1ebb, HB_Letter_Lowercase},
+ {0x1ebc, 0x1ebc, HB_Letter_Uppercase},
+ {0x1ebd, 0x1ebd, HB_Letter_Lowercase},
+ {0x1ebe, 0x1ebe, HB_Letter_Uppercase},
+ {0x1ebf, 0x1ebf, HB_Letter_Lowercase},
+ {0x1ec0, 0x1ec0, HB_Letter_Uppercase},
+ {0x1ec1, 0x1ec1, HB_Letter_Lowercase},
+ {0x1ec2, 0x1ec2, HB_Letter_Uppercase},
+ {0x1ec3, 0x1ec3, HB_Letter_Lowercase},
+ {0x1ec4, 0x1ec4, HB_Letter_Uppercase},
+ {0x1ec5, 0x1ec5, HB_Letter_Lowercase},
+ {0x1ec6, 0x1ec6, HB_Letter_Uppercase},
+ {0x1ec7, 0x1ec7, HB_Letter_Lowercase},
+ {0x1ec8, 0x1ec8, HB_Letter_Uppercase},
+ {0x1ec9, 0x1ec9, HB_Letter_Lowercase},
+ {0x1eca, 0x1eca, HB_Letter_Uppercase},
+ {0x1ecb, 0x1ecb, HB_Letter_Lowercase},
+ {0x1ecc, 0x1ecc, HB_Letter_Uppercase},
+ {0x1ecd, 0x1ecd, HB_Letter_Lowercase},
+ {0x1ece, 0x1ece, HB_Letter_Uppercase},
+ {0x1ecf, 0x1ecf, HB_Letter_Lowercase},
+ {0x1ed0, 0x1ed0, HB_Letter_Uppercase},
+ {0x1ed1, 0x1ed1, HB_Letter_Lowercase},
+ {0x1ed2, 0x1ed2, HB_Letter_Uppercase},
+ {0x1ed3, 0x1ed3, HB_Letter_Lowercase},
+ {0x1ed4, 0x1ed4, HB_Letter_Uppercase},
+ {0x1ed5, 0x1ed5, HB_Letter_Lowercase},
+ {0x1ed6, 0x1ed6, HB_Letter_Uppercase},
+ {0x1ed7, 0x1ed7, HB_Letter_Lowercase},
+ {0x1ed8, 0x1ed8, HB_Letter_Uppercase},
+ {0x1ed9, 0x1ed9, HB_Letter_Lowercase},
+ {0x1eda, 0x1eda, HB_Letter_Uppercase},
+ {0x1edb, 0x1edb, HB_Letter_Lowercase},
+ {0x1edc, 0x1edc, HB_Letter_Uppercase},
+ {0x1edd, 0x1edd, HB_Letter_Lowercase},
+ {0x1ede, 0x1ede, HB_Letter_Uppercase},
+ {0x1edf, 0x1edf, HB_Letter_Lowercase},
+ {0x1ee0, 0x1ee0, HB_Letter_Uppercase},
+ {0x1ee1, 0x1ee1, HB_Letter_Lowercase},
+ {0x1ee2, 0x1ee2, HB_Letter_Uppercase},
+ {0x1ee3, 0x1ee3, HB_Letter_Lowercase},
+ {0x1ee4, 0x1ee4, HB_Letter_Uppercase},
+ {0x1ee5, 0x1ee5, HB_Letter_Lowercase},
+ {0x1ee6, 0x1ee6, HB_Letter_Uppercase},
+ {0x1ee7, 0x1ee7, HB_Letter_Lowercase},
+ {0x1ee8, 0x1ee8, HB_Letter_Uppercase},
+ {0x1ee9, 0x1ee9, HB_Letter_Lowercase},
+ {0x1eea, 0x1eea, HB_Letter_Uppercase},
+ {0x1eeb, 0x1eeb, HB_Letter_Lowercase},
+ {0x1eec, 0x1eec, HB_Letter_Uppercase},
+ {0x1eed, 0x1eed, HB_Letter_Lowercase},
+ {0x1eee, 0x1eee, HB_Letter_Uppercase},
+ {0x1eef, 0x1eef, HB_Letter_Lowercase},
+ {0x1ef0, 0x1ef0, HB_Letter_Uppercase},
+ {0x1ef1, 0x1ef1, HB_Letter_Lowercase},
+ {0x1ef2, 0x1ef2, HB_Letter_Uppercase},
+ {0x1ef3, 0x1ef3, HB_Letter_Lowercase},
+ {0x1ef4, 0x1ef4, HB_Letter_Uppercase},
+ {0x1ef5, 0x1ef5, HB_Letter_Lowercase},
+ {0x1ef6, 0x1ef6, HB_Letter_Uppercase},
+ {0x1ef7, 0x1ef7, HB_Letter_Lowercase},
+ {0x1ef8, 0x1ef8, HB_Letter_Uppercase},
+ {0x1ef9, 0x1ef9, HB_Letter_Lowercase},
+ {0x1efa, 0x1efa, HB_Letter_Uppercase},
+ {0x1efb, 0x1efb, HB_Letter_Lowercase},
+ {0x1efc, 0x1efc, HB_Letter_Uppercase},
+ {0x1efd, 0x1efd, HB_Letter_Lowercase},
+ {0x1efe, 0x1efe, HB_Letter_Uppercase},
+ {0x1eff, 0x1f07, HB_Letter_Lowercase},
+ {0x1f08, 0x1f0f, HB_Letter_Uppercase},
+ {0x1f10, 0x1f15, HB_Letter_Lowercase},
+ {0x1f16, 0x1f17, HB_Other_NotAssigned},
+ {0x1f18, 0x1f1d, HB_Letter_Uppercase},
+ {0x1f1e, 0x1f1f, HB_Other_NotAssigned},
+ {0x1f20, 0x1f27, HB_Letter_Lowercase},
+ {0x1f28, 0x1f2f, HB_Letter_Uppercase},
+ {0x1f30, 0x1f37, HB_Letter_Lowercase},
+ {0x1f38, 0x1f3f, HB_Letter_Uppercase},
+ {0x1f40, 0x1f45, HB_Letter_Lowercase},
+ {0x1f46, 0x1f47, HB_Other_NotAssigned},
+ {0x1f48, 0x1f4d, HB_Letter_Uppercase},
+ {0x1f4e, 0x1f4f, HB_Other_NotAssigned},
+ {0x1f50, 0x1f57, HB_Letter_Lowercase},
+ {0x1f58, 0x1f58, HB_Other_NotAssigned},
+ {0x1f59, 0x1f59, HB_Letter_Uppercase},
+ {0x1f5a, 0x1f5a, HB_Other_NotAssigned},
+ {0x1f5b, 0x1f5b, HB_Letter_Uppercase},
+ {0x1f5c, 0x1f5c, HB_Other_NotAssigned},
+ {0x1f5d, 0x1f5d, HB_Letter_Uppercase},
+ {0x1f5e, 0x1f5e, HB_Other_NotAssigned},
+ {0x1f5f, 0x1f5f, HB_Letter_Uppercase},
+ {0x1f60, 0x1f67, HB_Letter_Lowercase},
+ {0x1f68, 0x1f6f, HB_Letter_Uppercase},
+ {0x1f70, 0x1f7d, HB_Letter_Lowercase},
+ {0x1f7e, 0x1f7f, HB_Other_NotAssigned},
+ {0x1f80, 0x1f87, HB_Letter_Lowercase},
+ {0x1f88, 0x1f8f, HB_Letter_Titlecase},
+ {0x1f90, 0x1f97, HB_Letter_Lowercase},
+ {0x1f98, 0x1f9f, HB_Letter_Titlecase},
+ {0x1fa0, 0x1fa7, HB_Letter_Lowercase},
+ {0x1fa8, 0x1faf, HB_Letter_Titlecase},
+ {0x1fb0, 0x1fb4, HB_Letter_Lowercase},
+ {0x1fb5, 0x1fb5, HB_Other_NotAssigned},
+ {0x1fb6, 0x1fb7, HB_Letter_Lowercase},
+ {0x1fb8, 0x1fbb, HB_Letter_Uppercase},
+ {0x1fbc, 0x1fbc, HB_Letter_Titlecase},
+ {0x1fbd, 0x1fbd, HB_Symbol_Modifier},
+ {0x1fbe, 0x1fbe, HB_Letter_Lowercase},
+ {0x1fbf, 0x1fc1, HB_Symbol_Modifier},
+ {0x1fc2, 0x1fc4, HB_Letter_Lowercase},
+ {0x1fc5, 0x1fc5, HB_Other_NotAssigned},
+ {0x1fc6, 0x1fc7, HB_Letter_Lowercase},
+ {0x1fc8, 0x1fcb, HB_Letter_Uppercase},
+ {0x1fcc, 0x1fcc, HB_Letter_Titlecase},
+ {0x1fcd, 0x1fcf, HB_Symbol_Modifier},
+ {0x1fd0, 0x1fd3, HB_Letter_Lowercase},
+ {0x1fd4, 0x1fd5, HB_Other_NotAssigned},
+ {0x1fd6, 0x1fd7, HB_Letter_Lowercase},
+ {0x1fd8, 0x1fdb, HB_Letter_Uppercase},
+ {0x1fdc, 0x1fdc, HB_Other_NotAssigned},
+ {0x1fdd, 0x1fdf, HB_Symbol_Modifier},
+ {0x1fe0, 0x1fe7, HB_Letter_Lowercase},
+ {0x1fe8, 0x1fec, HB_Letter_Uppercase},
+ {0x1fed, 0x1fef, HB_Symbol_Modifier},
+ {0x1ff0, 0x1ff1, HB_Other_NotAssigned},
+ {0x1ff2, 0x1ff4, HB_Letter_Lowercase},
+ {0x1ff5, 0x1ff5, HB_Other_NotAssigned},
+ {0x1ff6, 0x1ff7, HB_Letter_Lowercase},
+ {0x1ff8, 0x1ffb, HB_Letter_Uppercase},
+ {0x1ffc, 0x1ffc, HB_Letter_Titlecase},
+ {0x1ffd, 0x1ffe, HB_Symbol_Modifier},
+ {0x1fff, 0x1fff, HB_Other_NotAssigned},
+ {0x2000, 0x200a, HB_Separator_Space},
+ {0x200b, 0x200f, HB_Other_Format},
+ {0x2010, 0x2015, HB_Punctuation_Dash},
+ {0x2016, 0x2017, HB_Punctuation_Other},
+ {0x2018, 0x2018, HB_Punctuation_InitialQuote},
+ {0x2019, 0x2019, HB_Punctuation_FinalQuote},
+ {0x201a, 0x201a, HB_Punctuation_Open},
+ {0x201b, 0x201c, HB_Punctuation_InitialQuote},
+ {0x201d, 0x201d, HB_Punctuation_FinalQuote},
+ {0x201e, 0x201e, HB_Punctuation_Open},
+ {0x201f, 0x201f, HB_Punctuation_InitialQuote},
+ {0x2020, 0x2027, HB_Punctuation_Other},
+ {0x2028, 0x2028, HB_Separator_Line},
+ {0x2029, 0x2029, HB_Separator_Paragraph},
+ {0x202a, 0x202e, HB_Other_Format},
+ {0x202f, 0x202f, HB_Separator_Space},
+ {0x2030, 0x2038, HB_Punctuation_Other},
+ {0x2039, 0x2039, HB_Punctuation_InitialQuote},
+ {0x203a, 0x203a, HB_Punctuation_FinalQuote},
+ {0x203b, 0x203e, HB_Punctuation_Other},
+ {0x203f, 0x2040, HB_Punctuation_Connector},
+ {0x2041, 0x2043, HB_Punctuation_Other},
+ {0x2044, 0x2044, HB_Symbol_Math},
+ {0x2045, 0x2045, HB_Punctuation_Open},
+ {0x2046, 0x2046, HB_Punctuation_Close},
+ {0x2047, 0x2051, HB_Punctuation_Other},
+ {0x2052, 0x2052, HB_Symbol_Math},
+ {0x2053, 0x2053, HB_Punctuation_Other},
+ {0x2054, 0x2054, HB_Punctuation_Connector},
+ {0x2055, 0x205e, HB_Punctuation_Other},
+ {0x205f, 0x205f, HB_Separator_Space},
+ {0x2060, 0x2064, HB_Other_Format},
+ {0x2065, 0x2069, HB_Other_NotAssigned},
+ {0x206a, 0x206f, HB_Other_Format},
+ {0x2070, 0x2070, HB_Number_Other},
+ {0x2071, 0x2071, HB_Letter_Lowercase},
+ {0x2072, 0x2073, HB_Other_NotAssigned},
+ {0x2074, 0x2079, HB_Number_Other},
+ {0x207a, 0x207c, HB_Symbol_Math},
+ {0x207d, 0x207d, HB_Punctuation_Open},
+ {0x207e, 0x207e, HB_Punctuation_Close},
+ {0x207f, 0x207f, HB_Letter_Lowercase},
+ {0x2080, 0x2089, HB_Number_Other},
+ {0x208a, 0x208c, HB_Symbol_Math},
+ {0x208d, 0x208d, HB_Punctuation_Open},
+ {0x208e, 0x208e, HB_Punctuation_Close},
+ {0x208f, 0x208f, HB_Other_NotAssigned},
+ {0x2090, 0x2094, HB_Letter_Modifier},
+ {0x2095, 0x209f, HB_Other_NotAssigned},
+ {0x20a0, 0x20b5, HB_Symbol_Currency},
+ {0x20b6, 0x20cf, HB_Other_NotAssigned},
+ {0x20d0, 0x20dc, HB_Mark_NonSpacing},
+ {0x20dd, 0x20e0, HB_Mark_Enclosing},
+ {0x20e1, 0x20e1, HB_Mark_NonSpacing},
+ {0x20e2, 0x20e4, HB_Mark_Enclosing},
+ {0x20e5, 0x20f0, HB_Mark_NonSpacing},
+ {0x20f1, 0x20ff, HB_Other_NotAssigned},
+ {0x2100, 0x2101, HB_Symbol_Other},
+ {0x2102, 0x2102, HB_Letter_Uppercase},
+ {0x2103, 0x2106, HB_Symbol_Other},
+ {0x2107, 0x2107, HB_Letter_Uppercase},
+ {0x2108, 0x2109, HB_Symbol_Other},
+ {0x210a, 0x210a, HB_Letter_Lowercase},
+ {0x210b, 0x210d, HB_Letter_Uppercase},
+ {0x210e, 0x210f, HB_Letter_Lowercase},
+ {0x2110, 0x2112, HB_Letter_Uppercase},
+ {0x2113, 0x2113, HB_Letter_Lowercase},
+ {0x2114, 0x2114, HB_Symbol_Other},
+ {0x2115, 0x2115, HB_Letter_Uppercase},
+ {0x2116, 0x2118, HB_Symbol_Other},
+ {0x2119, 0x211d, HB_Letter_Uppercase},
+ {0x211e, 0x2123, HB_Symbol_Other},
+ {0x2124, 0x2124, HB_Letter_Uppercase},
+ {0x2125, 0x2125, HB_Symbol_Other},
+ {0x2126, 0x2126, HB_Letter_Uppercase},
+ {0x2127, 0x2127, HB_Symbol_Other},
+ {0x2128, 0x2128, HB_Letter_Uppercase},
+ {0x2129, 0x2129, HB_Symbol_Other},
+ {0x212a, 0x212d, HB_Letter_Uppercase},
+ {0x212e, 0x212e, HB_Symbol_Other},
+ {0x212f, 0x212f, HB_Letter_Lowercase},
+ {0x2130, 0x2133, HB_Letter_Uppercase},
+ {0x2134, 0x2134, HB_Letter_Lowercase},
+ {0x2135, 0x2138, HB_Letter_Other},
+ {0x2139, 0x2139, HB_Letter_Lowercase},
+ {0x213a, 0x213b, HB_Symbol_Other},
+ {0x213c, 0x213d, HB_Letter_Lowercase},
+ {0x213e, 0x213f, HB_Letter_Uppercase},
+ {0x2140, 0x2144, HB_Symbol_Math},
+ {0x2145, 0x2145, HB_Letter_Uppercase},
+ {0x2146, 0x2149, HB_Letter_Lowercase},
+ {0x214a, 0x214a, HB_Symbol_Other},
+ {0x214b, 0x214b, HB_Symbol_Math},
+ {0x214c, 0x214d, HB_Symbol_Other},
+ {0x214e, 0x214e, HB_Letter_Lowercase},
+ {0x214f, 0x214f, HB_Symbol_Other},
+ {0x2150, 0x2152, HB_Other_NotAssigned},
+ {0x2153, 0x215f, HB_Number_Other},
+ {0x2160, 0x2182, HB_Number_Letter},
+ {0x2183, 0x2183, HB_Letter_Uppercase},
+ {0x2184, 0x2184, HB_Letter_Lowercase},
+ {0x2185, 0x2188, HB_Number_Letter},
+ {0x2189, 0x218f, HB_Other_NotAssigned},
+ {0x2190, 0x2194, HB_Symbol_Math},
+ {0x2195, 0x2199, HB_Symbol_Other},
+ {0x219a, 0x219b, HB_Symbol_Math},
+ {0x219c, 0x219f, HB_Symbol_Other},
+ {0x21a0, 0x21a0, HB_Symbol_Math},
+ {0x21a1, 0x21a2, HB_Symbol_Other},
+ {0x21a3, 0x21a3, HB_Symbol_Math},
+ {0x21a4, 0x21a5, HB_Symbol_Other},
+ {0x21a6, 0x21a6, HB_Symbol_Math},
+ {0x21a7, 0x21ad, HB_Symbol_Other},
+ {0x21ae, 0x21ae, HB_Symbol_Math},
+ {0x21af, 0x21cd, HB_Symbol_Other},
+ {0x21ce, 0x21cf, HB_Symbol_Math},
+ {0x21d0, 0x21d1, HB_Symbol_Other},
+ {0x21d2, 0x21d2, HB_Symbol_Math},
+ {0x21d3, 0x21d3, HB_Symbol_Other},
+ {0x21d4, 0x21d4, HB_Symbol_Math},
+ {0x21d5, 0x21f3, HB_Symbol_Other},
+ {0x21f4, 0x22ff, HB_Symbol_Math},
+ {0x2300, 0x2307, HB_Symbol_Other},
+ {0x2308, 0x230b, HB_Symbol_Math},
+ {0x230c, 0x231f, HB_Symbol_Other},
+ {0x2320, 0x2321, HB_Symbol_Math},
+ {0x2322, 0x2328, HB_Symbol_Other},
+ {0x2329, 0x2329, HB_Punctuation_Open},
+ {0x232a, 0x232a, HB_Punctuation_Close},
+ {0x232b, 0x237b, HB_Symbol_Other},
+ {0x237c, 0x237c, HB_Symbol_Math},
+ {0x237d, 0x239a, HB_Symbol_Other},
+ {0x239b, 0x23b3, HB_Symbol_Math},
+ {0x23b4, 0x23db, HB_Symbol_Other},
+ {0x23dc, 0x23e1, HB_Symbol_Math},
+ {0x23e2, 0x23e7, HB_Symbol_Other},
+ {0x23e8, 0x23ff, HB_Other_NotAssigned},
+ {0x2400, 0x2426, HB_Symbol_Other},
+ {0x2427, 0x243f, HB_Other_NotAssigned},
+ {0x2440, 0x244a, HB_Symbol_Other},
+ {0x244b, 0x245f, HB_Other_NotAssigned},
+ {0x2460, 0x249b, HB_Number_Other},
+ {0x249c, 0x24e9, HB_Symbol_Other},
+ {0x24ea, 0x24ff, HB_Number_Other},
+ {0x2500, 0x25b6, HB_Symbol_Other},
+ {0x25b7, 0x25b7, HB_Symbol_Math},
+ {0x25b8, 0x25c0, HB_Symbol_Other},
+ {0x25c1, 0x25c1, HB_Symbol_Math},
+ {0x25c2, 0x25f7, HB_Symbol_Other},
+ {0x25f8, 0x25ff, HB_Symbol_Math},
+ {0x2600, 0x266e, HB_Symbol_Other},
+ {0x266f, 0x266f, HB_Symbol_Math},
+ {0x2670, 0x269d, HB_Symbol_Other},
+ {0x269e, 0x269f, HB_Other_NotAssigned},
+ {0x26a0, 0x26bc, HB_Symbol_Other},
+ {0x26bd, 0x26bf, HB_Other_NotAssigned},
+ {0x26c0, 0x26c3, HB_Symbol_Other},
+ {0x26c4, 0x2700, HB_Other_NotAssigned},
+ {0x2701, 0x2704, HB_Symbol_Other},
+ {0x2705, 0x2705, HB_Other_NotAssigned},
+ {0x2706, 0x2709, HB_Symbol_Other},
+ {0x270a, 0x270b, HB_Other_NotAssigned},
+ {0x270c, 0x2727, HB_Symbol_Other},
+ {0x2728, 0x2728, HB_Other_NotAssigned},
+ {0x2729, 0x274b, HB_Symbol_Other},
+ {0x274c, 0x274c, HB_Other_NotAssigned},
+ {0x274d, 0x274d, HB_Symbol_Other},
+ {0x274e, 0x274e, HB_Other_NotAssigned},
+ {0x274f, 0x2752, HB_Symbol_Other},
+ {0x2753, 0x2755, HB_Other_NotAssigned},
+ {0x2756, 0x2756, HB_Symbol_Other},
+ {0x2757, 0x2757, HB_Other_NotAssigned},
+ {0x2758, 0x275e, HB_Symbol_Other},
+ {0x275f, 0x2760, HB_Other_NotAssigned},
+ {0x2761, 0x2767, HB_Symbol_Other},
+ {0x2768, 0x2768, HB_Punctuation_Open},
+ {0x2769, 0x2769, HB_Punctuation_Close},
+ {0x276a, 0x276a, HB_Punctuation_Open},
+ {0x276b, 0x276b, HB_Punctuation_Close},
+ {0x276c, 0x276c, HB_Punctuation_Open},
+ {0x276d, 0x276d, HB_Punctuation_Close},
+ {0x276e, 0x276e, HB_Punctuation_Open},
+ {0x276f, 0x276f, HB_Punctuation_Close},
+ {0x2770, 0x2770, HB_Punctuation_Open},
+ {0x2771, 0x2771, HB_Punctuation_Close},
+ {0x2772, 0x2772, HB_Punctuation_Open},
+ {0x2773, 0x2773, HB_Punctuation_Close},
+ {0x2774, 0x2774, HB_Punctuation_Open},
+ {0x2775, 0x2775, HB_Punctuation_Close},
+ {0x2776, 0x2793, HB_Number_Other},
+ {0x2794, 0x2794, HB_Symbol_Other},
+ {0x2795, 0x2797, HB_Other_NotAssigned},
+ {0x2798, 0x27af, HB_Symbol_Other},
+ {0x27b0, 0x27b0, HB_Other_NotAssigned},
+ {0x27b1, 0x27be, HB_Symbol_Other},
+ {0x27bf, 0x27bf, HB_Other_NotAssigned},
+ {0x27c0, 0x27c4, HB_Symbol_Math},
+ {0x27c5, 0x27c5, HB_Punctuation_Open},
+ {0x27c6, 0x27c6, HB_Punctuation_Close},
+ {0x27c7, 0x27ca, HB_Symbol_Math},
+ {0x27cb, 0x27cb, HB_Other_NotAssigned},
+ {0x27cc, 0x27cc, HB_Symbol_Math},
+ {0x27cd, 0x27cf, HB_Other_NotAssigned},
+ {0x27d0, 0x27e5, HB_Symbol_Math},
+ {0x27e6, 0x27e6, HB_Punctuation_Open},
+ {0x27e7, 0x27e7, HB_Punctuation_Close},
+ {0x27e8, 0x27e8, HB_Punctuation_Open},
+ {0x27e9, 0x27e9, HB_Punctuation_Close},
+ {0x27ea, 0x27ea, HB_Punctuation_Open},
+ {0x27eb, 0x27eb, HB_Punctuation_Close},
+ {0x27ec, 0x27ec, HB_Punctuation_Open},
+ {0x27ed, 0x27ed, HB_Punctuation_Close},
+ {0x27ee, 0x27ee, HB_Punctuation_Open},
+ {0x27ef, 0x27ef, HB_Punctuation_Close},
+ {0x27f0, 0x27ff, HB_Symbol_Math},
+ {0x2800, 0x28ff, HB_Symbol_Other},
+ {0x2900, 0x2982, HB_Symbol_Math},
+ {0x2983, 0x2983, HB_Punctuation_Open},
+ {0x2984, 0x2984, HB_Punctuation_Close},
+ {0x2985, 0x2985, HB_Punctuation_Open},
+ {0x2986, 0x2986, HB_Punctuation_Close},
+ {0x2987, 0x2987, HB_Punctuation_Open},
+ {0x2988, 0x2988, HB_Punctuation_Close},
+ {0x2989, 0x2989, HB_Punctuation_Open},
+ {0x298a, 0x298a, HB_Punctuation_Close},
+ {0x298b, 0x298b, HB_Punctuation_Open},
+ {0x298c, 0x298c, HB_Punctuation_Close},
+ {0x298d, 0x298d, HB_Punctuation_Open},
+ {0x298e, 0x298e, HB_Punctuation_Close},
+ {0x298f, 0x298f, HB_Punctuation_Open},
+ {0x2990, 0x2990, HB_Punctuation_Close},
+ {0x2991, 0x2991, HB_Punctuation_Open},
+ {0x2992, 0x2992, HB_Punctuation_Close},
+ {0x2993, 0x2993, HB_Punctuation_Open},
+ {0x2994, 0x2994, HB_Punctuation_Close},
+ {0x2995, 0x2995, HB_Punctuation_Open},
+ {0x2996, 0x2996, HB_Punctuation_Close},
+ {0x2997, 0x2997, HB_Punctuation_Open},
+ {0x2998, 0x2998, HB_Punctuation_Close},
+ {0x2999, 0x29d7, HB_Symbol_Math},
+ {0x29d8, 0x29d8, HB_Punctuation_Open},
+ {0x29d9, 0x29d9, HB_Punctuation_Close},
+ {0x29da, 0x29da, HB_Punctuation_Open},
+ {0x29db, 0x29db, HB_Punctuation_Close},
+ {0x29dc, 0x29fb, HB_Symbol_Math},
+ {0x29fc, 0x29fc, HB_Punctuation_Open},
+ {0x29fd, 0x29fd, HB_Punctuation_Close},
+ {0x29fe, 0x2aff, HB_Symbol_Math},
+ {0x2b00, 0x2b2f, HB_Symbol_Other},
+ {0x2b30, 0x2b44, HB_Symbol_Math},
+ {0x2b45, 0x2b46, HB_Symbol_Other},
+ {0x2b47, 0x2b4c, HB_Symbol_Math},
+ {0x2b4d, 0x2b4f, HB_Other_NotAssigned},
+ {0x2b50, 0x2b54, HB_Symbol_Other},
+ {0x2b55, 0x2bff, HB_Other_NotAssigned},
+ {0x2c00, 0x2c2e, HB_Letter_Uppercase},
+ {0x2c2f, 0x2c2f, HB_Other_NotAssigned},
+ {0x2c30, 0x2c5e, HB_Letter_Lowercase},
+ {0x2c5f, 0x2c5f, HB_Other_NotAssigned},
+ {0x2c60, 0x2c60, HB_Letter_Uppercase},
+ {0x2c61, 0x2c61, HB_Letter_Lowercase},
+ {0x2c62, 0x2c64, HB_Letter_Uppercase},
+ {0x2c65, 0x2c66, HB_Letter_Lowercase},
+ {0x2c67, 0x2c67, HB_Letter_Uppercase},
+ {0x2c68, 0x2c68, HB_Letter_Lowercase},
+ {0x2c69, 0x2c69, HB_Letter_Uppercase},
+ {0x2c6a, 0x2c6a, HB_Letter_Lowercase},
+ {0x2c6b, 0x2c6b, HB_Letter_Uppercase},
+ {0x2c6c, 0x2c6c, HB_Letter_Lowercase},
+ {0x2c6d, 0x2c6f, HB_Letter_Uppercase},
+ {0x2c70, 0x2c70, HB_Other_NotAssigned},
+ {0x2c71, 0x2c71, HB_Letter_Lowercase},
+ {0x2c72, 0x2c72, HB_Letter_Uppercase},
+ {0x2c73, 0x2c74, HB_Letter_Lowercase},
+ {0x2c75, 0x2c75, HB_Letter_Uppercase},
+ {0x2c76, 0x2c7c, HB_Letter_Lowercase},
+ {0x2c7d, 0x2c7d, HB_Letter_Modifier},
+ {0x2c7e, 0x2c7f, HB_Other_NotAssigned},
+ {0x2c80, 0x2c80, HB_Letter_Uppercase},
+ {0x2c81, 0x2c81, HB_Letter_Lowercase},
+ {0x2c82, 0x2c82, HB_Letter_Uppercase},
+ {0x2c83, 0x2c83, HB_Letter_Lowercase},
+ {0x2c84, 0x2c84, HB_Letter_Uppercase},
+ {0x2c85, 0x2c85, HB_Letter_Lowercase},
+ {0x2c86, 0x2c86, HB_Letter_Uppercase},
+ {0x2c87, 0x2c87, HB_Letter_Lowercase},
+ {0x2c88, 0x2c88, HB_Letter_Uppercase},
+ {0x2c89, 0x2c89, HB_Letter_Lowercase},
+ {0x2c8a, 0x2c8a, HB_Letter_Uppercase},
+ {0x2c8b, 0x2c8b, HB_Letter_Lowercase},
+ {0x2c8c, 0x2c8c, HB_Letter_Uppercase},
+ {0x2c8d, 0x2c8d, HB_Letter_Lowercase},
+ {0x2c8e, 0x2c8e, HB_Letter_Uppercase},
+ {0x2c8f, 0x2c8f, HB_Letter_Lowercase},
+ {0x2c90, 0x2c90, HB_Letter_Uppercase},
+ {0x2c91, 0x2c91, HB_Letter_Lowercase},
+ {0x2c92, 0x2c92, HB_Letter_Uppercase},
+ {0x2c93, 0x2c93, HB_Letter_Lowercase},
+ {0x2c94, 0x2c94, HB_Letter_Uppercase},
+ {0x2c95, 0x2c95, HB_Letter_Lowercase},
+ {0x2c96, 0x2c96, HB_Letter_Uppercase},
+ {0x2c97, 0x2c97, HB_Letter_Lowercase},
+ {0x2c98, 0x2c98, HB_Letter_Uppercase},
+ {0x2c99, 0x2c99, HB_Letter_Lowercase},
+ {0x2c9a, 0x2c9a, HB_Letter_Uppercase},
+ {0x2c9b, 0x2c9b, HB_Letter_Lowercase},
+ {0x2c9c, 0x2c9c, HB_Letter_Uppercase},
+ {0x2c9d, 0x2c9d, HB_Letter_Lowercase},
+ {0x2c9e, 0x2c9e, HB_Letter_Uppercase},
+ {0x2c9f, 0x2c9f, HB_Letter_Lowercase},
+ {0x2ca0, 0x2ca0, HB_Letter_Uppercase},
+ {0x2ca1, 0x2ca1, HB_Letter_Lowercase},
+ {0x2ca2, 0x2ca2, HB_Letter_Uppercase},
+ {0x2ca3, 0x2ca3, HB_Letter_Lowercase},
+ {0x2ca4, 0x2ca4, HB_Letter_Uppercase},
+ {0x2ca5, 0x2ca5, HB_Letter_Lowercase},
+ {0x2ca6, 0x2ca6, HB_Letter_Uppercase},
+ {0x2ca7, 0x2ca7, HB_Letter_Lowercase},
+ {0x2ca8, 0x2ca8, HB_Letter_Uppercase},
+ {0x2ca9, 0x2ca9, HB_Letter_Lowercase},
+ {0x2caa, 0x2caa, HB_Letter_Uppercase},
+ {0x2cab, 0x2cab, HB_Letter_Lowercase},
+ {0x2cac, 0x2cac, HB_Letter_Uppercase},
+ {0x2cad, 0x2cad, HB_Letter_Lowercase},
+ {0x2cae, 0x2cae, HB_Letter_Uppercase},
+ {0x2caf, 0x2caf, HB_Letter_Lowercase},
+ {0x2cb0, 0x2cb0, HB_Letter_Uppercase},
+ {0x2cb1, 0x2cb1, HB_Letter_Lowercase},
+ {0x2cb2, 0x2cb2, HB_Letter_Uppercase},
+ {0x2cb3, 0x2cb3, HB_Letter_Lowercase},
+ {0x2cb4, 0x2cb4, HB_Letter_Uppercase},
+ {0x2cb5, 0x2cb5, HB_Letter_Lowercase},
+ {0x2cb6, 0x2cb6, HB_Letter_Uppercase},
+ {0x2cb7, 0x2cb7, HB_Letter_Lowercase},
+ {0x2cb8, 0x2cb8, HB_Letter_Uppercase},
+ {0x2cb9, 0x2cb9, HB_Letter_Lowercase},
+ {0x2cba, 0x2cba, HB_Letter_Uppercase},
+ {0x2cbb, 0x2cbb, HB_Letter_Lowercase},
+ {0x2cbc, 0x2cbc, HB_Letter_Uppercase},
+ {0x2cbd, 0x2cbd, HB_Letter_Lowercase},
+ {0x2cbe, 0x2cbe, HB_Letter_Uppercase},
+ {0x2cbf, 0x2cbf, HB_Letter_Lowercase},
+ {0x2cc0, 0x2cc0, HB_Letter_Uppercase},
+ {0x2cc1, 0x2cc1, HB_Letter_Lowercase},
+ {0x2cc2, 0x2cc2, HB_Letter_Uppercase},
+ {0x2cc3, 0x2cc3, HB_Letter_Lowercase},
+ {0x2cc4, 0x2cc4, HB_Letter_Uppercase},
+ {0x2cc5, 0x2cc5, HB_Letter_Lowercase},
+ {0x2cc6, 0x2cc6, HB_Letter_Uppercase},
+ {0x2cc7, 0x2cc7, HB_Letter_Lowercase},
+ {0x2cc8, 0x2cc8, HB_Letter_Uppercase},
+ {0x2cc9, 0x2cc9, HB_Letter_Lowercase},
+ {0x2cca, 0x2cca, HB_Letter_Uppercase},
+ {0x2ccb, 0x2ccb, HB_Letter_Lowercase},
+ {0x2ccc, 0x2ccc, HB_Letter_Uppercase},
+ {0x2ccd, 0x2ccd, HB_Letter_Lowercase},
+ {0x2cce, 0x2cce, HB_Letter_Uppercase},
+ {0x2ccf, 0x2ccf, HB_Letter_Lowercase},
+ {0x2cd0, 0x2cd0, HB_Letter_Uppercase},
+ {0x2cd1, 0x2cd1, HB_Letter_Lowercase},
+ {0x2cd2, 0x2cd2, HB_Letter_Uppercase},
+ {0x2cd3, 0x2cd3, HB_Letter_Lowercase},
+ {0x2cd4, 0x2cd4, HB_Letter_Uppercase},
+ {0x2cd5, 0x2cd5, HB_Letter_Lowercase},
+ {0x2cd6, 0x2cd6, HB_Letter_Uppercase},
+ {0x2cd7, 0x2cd7, HB_Letter_Lowercase},
+ {0x2cd8, 0x2cd8, HB_Letter_Uppercase},
+ {0x2cd9, 0x2cd9, HB_Letter_Lowercase},
+ {0x2cda, 0x2cda, HB_Letter_Uppercase},
+ {0x2cdb, 0x2cdb, HB_Letter_Lowercase},
+ {0x2cdc, 0x2cdc, HB_Letter_Uppercase},
+ {0x2cdd, 0x2cdd, HB_Letter_Lowercase},
+ {0x2cde, 0x2cde, HB_Letter_Uppercase},
+ {0x2cdf, 0x2cdf, HB_Letter_Lowercase},
+ {0x2ce0, 0x2ce0, HB_Letter_Uppercase},
+ {0x2ce1, 0x2ce1, HB_Letter_Lowercase},
+ {0x2ce2, 0x2ce2, HB_Letter_Uppercase},
+ {0x2ce3, 0x2ce4, HB_Letter_Lowercase},
+ {0x2ce5, 0x2cea, HB_Symbol_Other},
+ {0x2ceb, 0x2cf8, HB_Other_NotAssigned},
+ {0x2cf9, 0x2cfc, HB_Punctuation_Other},
+ {0x2cfd, 0x2cfd, HB_Number_Other},
+ {0x2cfe, 0x2cff, HB_Punctuation_Other},
+ {0x2d00, 0x2d25, HB_Letter_Lowercase},
+ {0x2d26, 0x2d2f, HB_Other_NotAssigned},
+ {0x2d30, 0x2d65, HB_Letter_Other},
+ {0x2d66, 0x2d6e, HB_Other_NotAssigned},
+ {0x2d6f, 0x2d6f, HB_Letter_Modifier},
+ {0x2d70, 0x2d7f, HB_Other_NotAssigned},
+ {0x2d80, 0x2d96, HB_Letter_Other},
+ {0x2d97, 0x2d9f, HB_Other_NotAssigned},
+ {0x2da0, 0x2da6, HB_Letter_Other},
+ {0x2da7, 0x2da7, HB_Other_NotAssigned},
+ {0x2da8, 0x2dae, HB_Letter_Other},
+ {0x2daf, 0x2daf, HB_Other_NotAssigned},
+ {0x2db0, 0x2db6, HB_Letter_Other},
+ {0x2db7, 0x2db7, HB_Other_NotAssigned},
+ {0x2db8, 0x2dbe, HB_Letter_Other},
+ {0x2dbf, 0x2dbf, HB_Other_NotAssigned},
+ {0x2dc0, 0x2dc6, HB_Letter_Other},
+ {0x2dc7, 0x2dc7, HB_Other_NotAssigned},
+ {0x2dc8, 0x2dce, HB_Letter_Other},
+ {0x2dcf, 0x2dcf, HB_Other_NotAssigned},
+ {0x2dd0, 0x2dd6, HB_Letter_Other},
+ {0x2dd7, 0x2dd7, HB_Other_NotAssigned},
+ {0x2dd8, 0x2dde, HB_Letter_Other},
+ {0x2ddf, 0x2ddf, HB_Other_NotAssigned},
+ {0x2de0, 0x2dff, HB_Mark_NonSpacing},
+ {0x2e00, 0x2e01, HB_Punctuation_Other},
+ {0x2e02, 0x2e02, HB_Punctuation_InitialQuote},
+ {0x2e03, 0x2e03, HB_Punctuation_FinalQuote},
+ {0x2e04, 0x2e04, HB_Punctuation_InitialQuote},
+ {0x2e05, 0x2e05, HB_Punctuation_FinalQuote},
+ {0x2e06, 0x2e08, HB_Punctuation_Other},
+ {0x2e09, 0x2e09, HB_Punctuation_InitialQuote},
+ {0x2e0a, 0x2e0a, HB_Punctuation_FinalQuote},
+ {0x2e0b, 0x2e0b, HB_Punctuation_Other},
+ {0x2e0c, 0x2e0c, HB_Punctuation_InitialQuote},
+ {0x2e0d, 0x2e0d, HB_Punctuation_FinalQuote},
+ {0x2e0e, 0x2e16, HB_Punctuation_Other},
+ {0x2e17, 0x2e17, HB_Punctuation_Dash},
+ {0x2e18, 0x2e19, HB_Punctuation_Other},
+ {0x2e1a, 0x2e1a, HB_Punctuation_Dash},
+ {0x2e1b, 0x2e1b, HB_Punctuation_Other},
+ {0x2e1c, 0x2e1c, HB_Punctuation_InitialQuote},
+ {0x2e1d, 0x2e1d, HB_Punctuation_FinalQuote},
+ {0x2e1e, 0x2e1f, HB_Punctuation_Other},
+ {0x2e20, 0x2e20, HB_Punctuation_InitialQuote},
+ {0x2e21, 0x2e21, HB_Punctuation_FinalQuote},
+ {0x2e22, 0x2e22, HB_Punctuation_Open},
+ {0x2e23, 0x2e23, HB_Punctuation_Close},
+ {0x2e24, 0x2e24, HB_Punctuation_Open},
+ {0x2e25, 0x2e25, HB_Punctuation_Close},
+ {0x2e26, 0x2e26, HB_Punctuation_Open},
+ {0x2e27, 0x2e27, HB_Punctuation_Close},
+ {0x2e28, 0x2e28, HB_Punctuation_Open},
+ {0x2e29, 0x2e29, HB_Punctuation_Close},
+ {0x2e2a, 0x2e2e, HB_Punctuation_Other},
+ {0x2e2f, 0x2e2f, HB_Letter_Modifier},
+ {0x2e30, 0x2e30, HB_Punctuation_Other},
+ {0x2e31, 0x2e7f, HB_Other_NotAssigned},
+ {0x2e80, 0x2e99, HB_Symbol_Other},
+ {0x2e9a, 0x2e9a, HB_Other_NotAssigned},
+ {0x2e9b, 0x2ef3, HB_Symbol_Other},
+ {0x2ef4, 0x2eff, HB_Other_NotAssigned},
+ {0x2f00, 0x2fd5, HB_Symbol_Other},
+ {0x2fd6, 0x2fef, HB_Other_NotAssigned},
+ {0x2ff0, 0x2ffb, HB_Symbol_Other},
+ {0x2ffc, 0x2fff, HB_Other_NotAssigned},
+ {0x3000, 0x3000, HB_Separator_Space},
+ {0x3001, 0x3003, HB_Punctuation_Other},
+ {0x3004, 0x3004, HB_Symbol_Other},
+ {0x3005, 0x3005, HB_Letter_Modifier},
+ {0x3006, 0x3006, HB_Letter_Other},
+ {0x3007, 0x3007, HB_Number_Letter},
+ {0x3008, 0x3008, HB_Punctuation_Open},
+ {0x3009, 0x3009, HB_Punctuation_Close},
+ {0x300a, 0x300a, HB_Punctuation_Open},
+ {0x300b, 0x300b, HB_Punctuation_Close},
+ {0x300c, 0x300c, HB_Punctuation_Open},
+ {0x300d, 0x300d, HB_Punctuation_Close},
+ {0x300e, 0x300e, HB_Punctuation_Open},
+ {0x300f, 0x300f, HB_Punctuation_Close},
+ {0x3010, 0x3010, HB_Punctuation_Open},
+ {0x3011, 0x3011, HB_Punctuation_Close},
+ {0x3012, 0x3013, HB_Symbol_Other},
+ {0x3014, 0x3014, HB_Punctuation_Open},
+ {0x3015, 0x3015, HB_Punctuation_Close},
+ {0x3016, 0x3016, HB_Punctuation_Open},
+ {0x3017, 0x3017, HB_Punctuation_Close},
+ {0x3018, 0x3018, HB_Punctuation_Open},
+ {0x3019, 0x3019, HB_Punctuation_Close},
+ {0x301a, 0x301a, HB_Punctuation_Open},
+ {0x301b, 0x301b, HB_Punctuation_Close},
+ {0x301c, 0x301c, HB_Punctuation_Dash},
+ {0x301d, 0x301d, HB_Punctuation_Open},
+ {0x301e, 0x301f, HB_Punctuation_Close},
+ {0x3020, 0x3020, HB_Symbol_Other},
+ {0x3021, 0x3029, HB_Number_Letter},
+ {0x302a, 0x302f, HB_Mark_NonSpacing},
+ {0x3030, 0x3030, HB_Punctuation_Dash},
+ {0x3031, 0x3035, HB_Letter_Modifier},
+ {0x3036, 0x3037, HB_Symbol_Other},
+ {0x3038, 0x303a, HB_Number_Letter},
+ {0x303b, 0x303b, HB_Letter_Modifier},
+ {0x303c, 0x303c, HB_Letter_Other},
+ {0x303d, 0x303d, HB_Punctuation_Other},
+ {0x303e, 0x303f, HB_Symbol_Other},
+ {0x3040, 0x3040, HB_Other_NotAssigned},
+ {0x3041, 0x3096, HB_Letter_Other},
+ {0x3097, 0x3098, HB_Other_NotAssigned},
+ {0x3099, 0x309a, HB_Mark_NonSpacing},
+ {0x309b, 0x309c, HB_Symbol_Modifier},
+ {0x309d, 0x309e, HB_Letter_Modifier},
+ {0x309f, 0x309f, HB_Letter_Other},
+ {0x30a0, 0x30a0, HB_Punctuation_Dash},
+ {0x30a1, 0x30fa, HB_Letter_Other},
+ {0x30fb, 0x30fb, HB_Punctuation_Other},
+ {0x30fc, 0x30fe, HB_Letter_Modifier},
+ {0x30ff, 0x30ff, HB_Letter_Other},
+ {0x3100, 0x3104, HB_Other_NotAssigned},
+ {0x3105, 0x312d, HB_Letter_Other},
+ {0x312e, 0x3130, HB_Other_NotAssigned},
+ {0x3131, 0x318e, HB_Letter_Other},
+ {0x318f, 0x318f, HB_Other_NotAssigned},
+ {0x3190, 0x3191, HB_Symbol_Other},
+ {0x3192, 0x3195, HB_Number_Other},
+ {0x3196, 0x319f, HB_Symbol_Other},
+ {0x31a0, 0x31b7, HB_Letter_Other},
+ {0x31b8, 0x31bf, HB_Other_NotAssigned},
+ {0x31c0, 0x31e3, HB_Symbol_Other},
+ {0x31e4, 0x31ef, HB_Other_NotAssigned},
+ {0x31f0, 0x31ff, HB_Letter_Other},
+ {0x3200, 0x321e, HB_Symbol_Other},
+ {0x321f, 0x321f, HB_Other_NotAssigned},
+ {0x3220, 0x3229, HB_Number_Other},
+ {0x322a, 0x3243, HB_Symbol_Other},
+ {0x3244, 0x324f, HB_Other_NotAssigned},
+ {0x3250, 0x3250, HB_Symbol_Other},
+ {0x3251, 0x325f, HB_Number_Other},
+ {0x3260, 0x327f, HB_Symbol_Other},
+ {0x3280, 0x3289, HB_Number_Other},
+ {0x328a, 0x32b0, HB_Symbol_Other},
+ {0x32b1, 0x32bf, HB_Number_Other},
+ {0x32c0, 0x32fe, HB_Symbol_Other},
+ {0x32ff, 0x32ff, HB_Other_NotAssigned},
+ {0x3300, 0x33ff, HB_Symbol_Other},
+ {0x3400, 0x4db5, HB_Letter_Other},
+ {0x4db6, 0x4dbf, HB_Other_NotAssigned},
+ {0x4dc0, 0x4dff, HB_Symbol_Other},
+ {0x4e00, 0x9fc3, HB_Letter_Other},
+ {0x9fc4, 0x9fff, HB_Other_NotAssigned},
+ {0xa000, 0xa014, HB_Letter_Other},
+ {0xa015, 0xa015, HB_Letter_Modifier},
+ {0xa016, 0xa48c, HB_Letter_Other},
+ {0xa48d, 0xa48f, HB_Other_NotAssigned},
+ {0xa490, 0xa4c6, HB_Symbol_Other},
+ {0xa4c7, 0xa4ff, HB_Other_NotAssigned},
+ {0xa500, 0xa60b, HB_Letter_Other},
+ {0xa60c, 0xa60c, HB_Letter_Modifier},
+ {0xa60d, 0xa60f, HB_Punctuation_Other},
+ {0xa610, 0xa61f, HB_Letter_Other},
+ {0xa620, 0xa629, HB_Number_DecimalDigit},
+ {0xa62a, 0xa62b, HB_Letter_Other},
+ {0xa62c, 0xa63f, HB_Other_NotAssigned},
+ {0xa640, 0xa640, HB_Letter_Uppercase},
+ {0xa641, 0xa641, HB_Letter_Lowercase},
+ {0xa642, 0xa642, HB_Letter_Uppercase},
+ {0xa643, 0xa643, HB_Letter_Lowercase},
+ {0xa644, 0xa644, HB_Letter_Uppercase},
+ {0xa645, 0xa645, HB_Letter_Lowercase},
+ {0xa646, 0xa646, HB_Letter_Uppercase},
+ {0xa647, 0xa647, HB_Letter_Lowercase},
+ {0xa648, 0xa648, HB_Letter_Uppercase},
+ {0xa649, 0xa649, HB_Letter_Lowercase},
+ {0xa64a, 0xa64a, HB_Letter_Uppercase},
+ {0xa64b, 0xa64b, HB_Letter_Lowercase},
+ {0xa64c, 0xa64c, HB_Letter_Uppercase},
+ {0xa64d, 0xa64d, HB_Letter_Lowercase},
+ {0xa64e, 0xa64e, HB_Letter_Uppercase},
+ {0xa64f, 0xa64f, HB_Letter_Lowercase},
+ {0xa650, 0xa650, HB_Letter_Uppercase},
+ {0xa651, 0xa651, HB_Letter_Lowercase},
+ {0xa652, 0xa652, HB_Letter_Uppercase},
+ {0xa653, 0xa653, HB_Letter_Lowercase},
+ {0xa654, 0xa654, HB_Letter_Uppercase},
+ {0xa655, 0xa655, HB_Letter_Lowercase},
+ {0xa656, 0xa656, HB_Letter_Uppercase},
+ {0xa657, 0xa657, HB_Letter_Lowercase},
+ {0xa658, 0xa658, HB_Letter_Uppercase},
+ {0xa659, 0xa659, HB_Letter_Lowercase},
+ {0xa65a, 0xa65a, HB_Letter_Uppercase},
+ {0xa65b, 0xa65b, HB_Letter_Lowercase},
+ {0xa65c, 0xa65c, HB_Letter_Uppercase},
+ {0xa65d, 0xa65d, HB_Letter_Lowercase},
+ {0xa65e, 0xa65e, HB_Letter_Uppercase},
+ {0xa65f, 0xa65f, HB_Letter_Lowercase},
+ {0xa660, 0xa661, HB_Other_NotAssigned},
+ {0xa662, 0xa662, HB_Letter_Uppercase},
+ {0xa663, 0xa663, HB_Letter_Lowercase},
+ {0xa664, 0xa664, HB_Letter_Uppercase},
+ {0xa665, 0xa665, HB_Letter_Lowercase},
+ {0xa666, 0xa666, HB_Letter_Uppercase},
+ {0xa667, 0xa667, HB_Letter_Lowercase},
+ {0xa668, 0xa668, HB_Letter_Uppercase},
+ {0xa669, 0xa669, HB_Letter_Lowercase},
+ {0xa66a, 0xa66a, HB_Letter_Uppercase},
+ {0xa66b, 0xa66b, HB_Letter_Lowercase},
+ {0xa66c, 0xa66c, HB_Letter_Uppercase},
+ {0xa66d, 0xa66d, HB_Letter_Lowercase},
+ {0xa66e, 0xa66e, HB_Letter_Other},
+ {0xa66f, 0xa66f, HB_Mark_NonSpacing},
+ {0xa670, 0xa672, HB_Mark_Enclosing},
+ {0xa673, 0xa673, HB_Punctuation_Other},
+ {0xa674, 0xa67b, HB_Other_NotAssigned},
+ {0xa67c, 0xa67d, HB_Mark_NonSpacing},
+ {0xa67e, 0xa67e, HB_Punctuation_Other},
+ {0xa67f, 0xa67f, HB_Letter_Modifier},
+ {0xa680, 0xa680, HB_Letter_Uppercase},
+ {0xa681, 0xa681, HB_Letter_Lowercase},
+ {0xa682, 0xa682, HB_Letter_Uppercase},
+ {0xa683, 0xa683, HB_Letter_Lowercase},
+ {0xa684, 0xa684, HB_Letter_Uppercase},
+ {0xa685, 0xa685, HB_Letter_Lowercase},
+ {0xa686, 0xa686, HB_Letter_Uppercase},
+ {0xa687, 0xa687, HB_Letter_Lowercase},
+ {0xa688, 0xa688, HB_Letter_Uppercase},
+ {0xa689, 0xa689, HB_Letter_Lowercase},
+ {0xa68a, 0xa68a, HB_Letter_Uppercase},
+ {0xa68b, 0xa68b, HB_Letter_Lowercase},
+ {0xa68c, 0xa68c, HB_Letter_Uppercase},
+ {0xa68d, 0xa68d, HB_Letter_Lowercase},
+ {0xa68e, 0xa68e, HB_Letter_Uppercase},
+ {0xa68f, 0xa68f, HB_Letter_Lowercase},
+ {0xa690, 0xa690, HB_Letter_Uppercase},
+ {0xa691, 0xa691, HB_Letter_Lowercase},
+ {0xa692, 0xa692, HB_Letter_Uppercase},
+ {0xa693, 0xa693, HB_Letter_Lowercase},
+ {0xa694, 0xa694, HB_Letter_Uppercase},
+ {0xa695, 0xa695, HB_Letter_Lowercase},
+ {0xa696, 0xa696, HB_Letter_Uppercase},
+ {0xa697, 0xa697, HB_Letter_Lowercase},
+ {0xa698, 0xa6ff, HB_Other_NotAssigned},
+ {0xa700, 0xa716, HB_Symbol_Modifier},
+ {0xa717, 0xa71f, HB_Letter_Modifier},
+ {0xa720, 0xa721, HB_Symbol_Modifier},
+ {0xa722, 0xa722, HB_Letter_Uppercase},
+ {0xa723, 0xa723, HB_Letter_Lowercase},
+ {0xa724, 0xa724, HB_Letter_Uppercase},
+ {0xa725, 0xa725, HB_Letter_Lowercase},
+ {0xa726, 0xa726, HB_Letter_Uppercase},
+ {0xa727, 0xa727, HB_Letter_Lowercase},
+ {0xa728, 0xa728, HB_Letter_Uppercase},
+ {0xa729, 0xa729, HB_Letter_Lowercase},
+ {0xa72a, 0xa72a, HB_Letter_Uppercase},
+ {0xa72b, 0xa72b, HB_Letter_Lowercase},
+ {0xa72c, 0xa72c, HB_Letter_Uppercase},
+ {0xa72d, 0xa72d, HB_Letter_Lowercase},
+ {0xa72e, 0xa72e, HB_Letter_Uppercase},
+ {0xa72f, 0xa731, HB_Letter_Lowercase},
+ {0xa732, 0xa732, HB_Letter_Uppercase},
+ {0xa733, 0xa733, HB_Letter_Lowercase},
+ {0xa734, 0xa734, HB_Letter_Uppercase},
+ {0xa735, 0xa735, HB_Letter_Lowercase},
+ {0xa736, 0xa736, HB_Letter_Uppercase},
+ {0xa737, 0xa737, HB_Letter_Lowercase},
+ {0xa738, 0xa738, HB_Letter_Uppercase},
+ {0xa739, 0xa739, HB_Letter_Lowercase},
+ {0xa73a, 0xa73a, HB_Letter_Uppercase},
+ {0xa73b, 0xa73b, HB_Letter_Lowercase},
+ {0xa73c, 0xa73c, HB_Letter_Uppercase},
+ {0xa73d, 0xa73d, HB_Letter_Lowercase},
+ {0xa73e, 0xa73e, HB_Letter_Uppercase},
+ {0xa73f, 0xa73f, HB_Letter_Lowercase},
+ {0xa740, 0xa740, HB_Letter_Uppercase},
+ {0xa741, 0xa741, HB_Letter_Lowercase},
+ {0xa742, 0xa742, HB_Letter_Uppercase},
+ {0xa743, 0xa743, HB_Letter_Lowercase},
+ {0xa744, 0xa744, HB_Letter_Uppercase},
+ {0xa745, 0xa745, HB_Letter_Lowercase},
+ {0xa746, 0xa746, HB_Letter_Uppercase},
+ {0xa747, 0xa747, HB_Letter_Lowercase},
+ {0xa748, 0xa748, HB_Letter_Uppercase},
+ {0xa749, 0xa749, HB_Letter_Lowercase},
+ {0xa74a, 0xa74a, HB_Letter_Uppercase},
+ {0xa74b, 0xa74b, HB_Letter_Lowercase},
+ {0xa74c, 0xa74c, HB_Letter_Uppercase},
+ {0xa74d, 0xa74d, HB_Letter_Lowercase},
+ {0xa74e, 0xa74e, HB_Letter_Uppercase},
+ {0xa74f, 0xa74f, HB_Letter_Lowercase},
+ {0xa750, 0xa750, HB_Letter_Uppercase},
+ {0xa751, 0xa751, HB_Letter_Lowercase},
+ {0xa752, 0xa752, HB_Letter_Uppercase},
+ {0xa753, 0xa753, HB_Letter_Lowercase},
+ {0xa754, 0xa754, HB_Letter_Uppercase},
+ {0xa755, 0xa755, HB_Letter_Lowercase},
+ {0xa756, 0xa756, HB_Letter_Uppercase},
+ {0xa757, 0xa757, HB_Letter_Lowercase},
+ {0xa758, 0xa758, HB_Letter_Uppercase},
+ {0xa759, 0xa759, HB_Letter_Lowercase},
+ {0xa75a, 0xa75a, HB_Letter_Uppercase},
+ {0xa75b, 0xa75b, HB_Letter_Lowercase},
+ {0xa75c, 0xa75c, HB_Letter_Uppercase},
+ {0xa75d, 0xa75d, HB_Letter_Lowercase},
+ {0xa75e, 0xa75e, HB_Letter_Uppercase},
+ {0xa75f, 0xa75f, HB_Letter_Lowercase},
+ {0xa760, 0xa760, HB_Letter_Uppercase},
+ {0xa761, 0xa761, HB_Letter_Lowercase},
+ {0xa762, 0xa762, HB_Letter_Uppercase},
+ {0xa763, 0xa763, HB_Letter_Lowercase},
+ {0xa764, 0xa764, HB_Letter_Uppercase},
+ {0xa765, 0xa765, HB_Letter_Lowercase},
+ {0xa766, 0xa766, HB_Letter_Uppercase},
+ {0xa767, 0xa767, HB_Letter_Lowercase},
+ {0xa768, 0xa768, HB_Letter_Uppercase},
+ {0xa769, 0xa769, HB_Letter_Lowercase},
+ {0xa76a, 0xa76a, HB_Letter_Uppercase},
+ {0xa76b, 0xa76b, HB_Letter_Lowercase},
+ {0xa76c, 0xa76c, HB_Letter_Uppercase},
+ {0xa76d, 0xa76d, HB_Letter_Lowercase},
+ {0xa76e, 0xa76e, HB_Letter_Uppercase},
+ {0xa76f, 0xa76f, HB_Letter_Lowercase},
+ {0xa770, 0xa770, HB_Letter_Modifier},
+ {0xa771, 0xa778, HB_Letter_Lowercase},
+ {0xa779, 0xa779, HB_Letter_Uppercase},
+ {0xa77a, 0xa77a, HB_Letter_Lowercase},
+ {0xa77b, 0xa77b, HB_Letter_Uppercase},
+ {0xa77c, 0xa77c, HB_Letter_Lowercase},
+ {0xa77d, 0xa77e, HB_Letter_Uppercase},
+ {0xa77f, 0xa77f, HB_Letter_Lowercase},
+ {0xa780, 0xa780, HB_Letter_Uppercase},
+ {0xa781, 0xa781, HB_Letter_Lowercase},
+ {0xa782, 0xa782, HB_Letter_Uppercase},
+ {0xa783, 0xa783, HB_Letter_Lowercase},
+ {0xa784, 0xa784, HB_Letter_Uppercase},
+ {0xa785, 0xa785, HB_Letter_Lowercase},
+ {0xa786, 0xa786, HB_Letter_Uppercase},
+ {0xa787, 0xa787, HB_Letter_Lowercase},
+ {0xa788, 0xa788, HB_Letter_Modifier},
+ {0xa789, 0xa78a, HB_Symbol_Modifier},
+ {0xa78b, 0xa78b, HB_Letter_Uppercase},
+ {0xa78c, 0xa78c, HB_Letter_Lowercase},
+ {0xa78d, 0xa7fa, HB_Other_NotAssigned},
+ {0xa7fb, 0xa801, HB_Letter_Other},
+ {0xa802, 0xa802, HB_Mark_NonSpacing},
+ {0xa803, 0xa805, HB_Letter_Other},
+ {0xa806, 0xa806, HB_Mark_NonSpacing},
+ {0xa807, 0xa80a, HB_Letter_Other},
+ {0xa80b, 0xa80b, HB_Mark_NonSpacing},
+ {0xa80c, 0xa822, HB_Letter_Other},
+ {0xa823, 0xa824, HB_Mark_SpacingCombining},
+ {0xa825, 0xa826, HB_Mark_NonSpacing},
+ {0xa827, 0xa827, HB_Mark_SpacingCombining},
+ {0xa828, 0xa82b, HB_Symbol_Other},
+ {0xa82c, 0xa83f, HB_Other_NotAssigned},
+ {0xa840, 0xa873, HB_Letter_Other},
+ {0xa874, 0xa877, HB_Punctuation_Other},
+ {0xa878, 0xa87f, HB_Other_NotAssigned},
+ {0xa880, 0xa881, HB_Mark_SpacingCombining},
+ {0xa882, 0xa8b3, HB_Letter_Other},
+ {0xa8b4, 0xa8c3, HB_Mark_SpacingCombining},
+ {0xa8c4, 0xa8c4, HB_Mark_NonSpacing},
+ {0xa8c5, 0xa8cd, HB_Other_NotAssigned},
+ {0xa8ce, 0xa8cf, HB_Punctuation_Other},
+ {0xa8d0, 0xa8d9, HB_Number_DecimalDigit},
+ {0xa8da, 0xa8ff, HB_Other_NotAssigned},
+ {0xa900, 0xa909, HB_Number_DecimalDigit},
+ {0xa90a, 0xa925, HB_Letter_Other},
+ {0xa926, 0xa92d, HB_Mark_NonSpacing},
+ {0xa92e, 0xa92f, HB_Punctuation_Other},
+ {0xa930, 0xa946, HB_Letter_Other},
+ {0xa947, 0xa951, HB_Mark_NonSpacing},
+ {0xa952, 0xa953, HB_Mark_SpacingCombining},
+ {0xa954, 0xa95e, HB_Other_NotAssigned},
+ {0xa95f, 0xa95f, HB_Punctuation_Other},
+ {0xa960, 0xa9ff, HB_Other_NotAssigned},
+ {0xaa00, 0xaa28, HB_Letter_Other},
+ {0xaa29, 0xaa2e, HB_Mark_NonSpacing},
+ {0xaa2f, 0xaa30, HB_Mark_SpacingCombining},
+ {0xaa31, 0xaa32, HB_Mark_NonSpacing},
+ {0xaa33, 0xaa34, HB_Mark_SpacingCombining},
+ {0xaa35, 0xaa36, HB_Mark_NonSpacing},
+ {0xaa37, 0xaa3f, HB_Other_NotAssigned},
+ {0xaa40, 0xaa42, HB_Letter_Other},
+ {0xaa43, 0xaa43, HB_Mark_NonSpacing},
+ {0xaa44, 0xaa4b, HB_Letter_Other},
+ {0xaa4c, 0xaa4c, HB_Mark_NonSpacing},
+ {0xaa4d, 0xaa4d, HB_Mark_SpacingCombining},
+ {0xaa4e, 0xaa4f, HB_Other_NotAssigned},
+ {0xaa50, 0xaa59, HB_Number_DecimalDigit},
+ {0xaa5a, 0xaa5b, HB_Other_NotAssigned},
+ {0xaa5c, 0xaa5f, HB_Punctuation_Other},
+ {0xaa60, 0xabff, HB_Other_NotAssigned},
+ {0xac00, 0xd7a3, HB_Letter_Other},
+ {0xd7a4, 0xd7ff, HB_Other_NotAssigned},
+ {0xd800, 0xdfff, HB_Other_Surrogate},
+ {0xe000, 0xf8ff, HB_Other_PrivateUse},
+ {0xf900, 0xfa2d, HB_Letter_Other},
+ {0xfa2e, 0xfa2f, HB_Other_NotAssigned},
+ {0xfa30, 0xfa6a, HB_Letter_Other},
+ {0xfa6b, 0xfa6f, HB_Other_NotAssigned},
+ {0xfa70, 0xfad9, HB_Letter_Other},
+ {0xfada, 0xfaff, HB_Other_NotAssigned},
+ {0xfb00, 0xfb06, HB_Letter_Lowercase},
+ {0xfb07, 0xfb12, HB_Other_NotAssigned},
+ {0xfb13, 0xfb17, HB_Letter_Lowercase},
+ {0xfb18, 0xfb1c, HB_Other_NotAssigned},
+ {0xfb1d, 0xfb1d, HB_Letter_Other},
+ {0xfb1e, 0xfb1e, HB_Mark_NonSpacing},
+ {0xfb1f, 0xfb28, HB_Letter_Other},
+ {0xfb29, 0xfb29, HB_Symbol_Math},
+ {0xfb2a, 0xfb36, HB_Letter_Other},
+ {0xfb37, 0xfb37, HB_Other_NotAssigned},
+ {0xfb38, 0xfb3c, HB_Letter_Other},
+ {0xfb3d, 0xfb3d, HB_Other_NotAssigned},
+ {0xfb3e, 0xfb3e, HB_Letter_Other},
+ {0xfb3f, 0xfb3f, HB_Other_NotAssigned},
+ {0xfb40, 0xfb41, HB_Letter_Other},
+ {0xfb42, 0xfb42, HB_Other_NotAssigned},
+ {0xfb43, 0xfb44, HB_Letter_Other},
+ {0xfb45, 0xfb45, HB_Other_NotAssigned},
+ {0xfb46, 0xfbb1, HB_Letter_Other},
+ {0xfbb2, 0xfbd2, HB_Other_NotAssigned},
+ {0xfbd3, 0xfd3d, HB_Letter_Other},
+ {0xfd3e, 0xfd3e, HB_Punctuation_Open},
+ {0xfd3f, 0xfd3f, HB_Punctuation_Close},
+ {0xfd40, 0xfd4f, HB_Other_NotAssigned},
+ {0xfd50, 0xfd8f, HB_Letter_Other},
+ {0xfd90, 0xfd91, HB_Other_NotAssigned},
+ {0xfd92, 0xfdc7, HB_Letter_Other},
+ {0xfdc8, 0xfdef, HB_Other_NotAssigned},
+ {0xfdf0, 0xfdfb, HB_Letter_Other},
+ {0xfdfc, 0xfdfc, HB_Symbol_Currency},
+ {0xfdfd, 0xfdfd, HB_Symbol_Other},
+ {0xfdfe, 0xfdff, HB_Other_NotAssigned},
+ {0xfe00, 0xfe0f, HB_Mark_NonSpacing},
+ {0xfe10, 0xfe16, HB_Punctuation_Other},
+ {0xfe17, 0xfe17, HB_Punctuation_Open},
+ {0xfe18, 0xfe18, HB_Punctuation_Close},
+ {0xfe19, 0xfe19, HB_Punctuation_Other},
+ {0xfe1a, 0xfe1f, HB_Other_NotAssigned},
+ {0xfe20, 0xfe26, HB_Mark_NonSpacing},
+ {0xfe27, 0xfe2f, HB_Other_NotAssigned},
+ {0xfe30, 0xfe30, HB_Punctuation_Other},
+ {0xfe31, 0xfe32, HB_Punctuation_Dash},
+ {0xfe33, 0xfe34, HB_Punctuation_Connector},
+ {0xfe35, 0xfe35, HB_Punctuation_Open},
+ {0xfe36, 0xfe36, HB_Punctuation_Close},
+ {0xfe37, 0xfe37, HB_Punctuation_Open},
+ {0xfe38, 0xfe38, HB_Punctuation_Close},
+ {0xfe39, 0xfe39, HB_Punctuation_Open},
+ {0xfe3a, 0xfe3a, HB_Punctuation_Close},
+ {0xfe3b, 0xfe3b, HB_Punctuation_Open},
+ {0xfe3c, 0xfe3c, HB_Punctuation_Close},
+ {0xfe3d, 0xfe3d, HB_Punctuation_Open},
+ {0xfe3e, 0xfe3e, HB_Punctuation_Close},
+ {0xfe3f, 0xfe3f, HB_Punctuation_Open},
+ {0xfe40, 0xfe40, HB_Punctuation_Close},
+ {0xfe41, 0xfe41, HB_Punctuation_Open},
+ {0xfe42, 0xfe42, HB_Punctuation_Close},
+ {0xfe43, 0xfe43, HB_Punctuation_Open},
+ {0xfe44, 0xfe44, HB_Punctuation_Close},
+ {0xfe45, 0xfe46, HB_Punctuation_Other},
+ {0xfe47, 0xfe47, HB_Punctuation_Open},
+ {0xfe48, 0xfe48, HB_Punctuation_Close},
+ {0xfe49, 0xfe4c, HB_Punctuation_Other},
+ {0xfe4d, 0xfe4f, HB_Punctuation_Connector},
+ {0xfe50, 0xfe52, HB_Punctuation_Other},
+ {0xfe53, 0xfe53, HB_Other_NotAssigned},
+ {0xfe54, 0xfe57, HB_Punctuation_Other},
+ {0xfe58, 0xfe58, HB_Punctuation_Dash},
+ {0xfe59, 0xfe59, HB_Punctuation_Open},
+ {0xfe5a, 0xfe5a, HB_Punctuation_Close},
+ {0xfe5b, 0xfe5b, HB_Punctuation_Open},
+ {0xfe5c, 0xfe5c, HB_Punctuation_Close},
+ {0xfe5d, 0xfe5d, HB_Punctuation_Open},
+ {0xfe5e, 0xfe5e, HB_Punctuation_Close},
+ {0xfe5f, 0xfe61, HB_Punctuation_Other},
+ {0xfe62, 0xfe62, HB_Symbol_Math},
+ {0xfe63, 0xfe63, HB_Punctuation_Dash},
+ {0xfe64, 0xfe66, HB_Symbol_Math},
+ {0xfe67, 0xfe67, HB_Other_NotAssigned},
+ {0xfe68, 0xfe68, HB_Punctuation_Other},
+ {0xfe69, 0xfe69, HB_Symbol_Currency},
+ {0xfe6a, 0xfe6b, HB_Punctuation_Other},
+ {0xfe6c, 0xfe6f, HB_Other_NotAssigned},
+ {0xfe70, 0xfe74, HB_Letter_Other},
+ {0xfe75, 0xfe75, HB_Other_NotAssigned},
+ {0xfe76, 0xfefc, HB_Letter_Other},
+ {0xfefd, 0xfefe, HB_Other_NotAssigned},
+ {0xfeff, 0xfeff, HB_Other_Format},
+ {0xff00, 0xff00, HB_Other_NotAssigned},
+ {0xff01, 0xff03, HB_Punctuation_Other},
+ {0xff04, 0xff04, HB_Symbol_Currency},
+ {0xff05, 0xff07, HB_Punctuation_Other},
+ {0xff08, 0xff08, HB_Punctuation_Open},
+ {0xff09, 0xff09, HB_Punctuation_Close},
+ {0xff0a, 0xff0a, HB_Punctuation_Other},
+ {0xff0b, 0xff0b, HB_Symbol_Math},
+ {0xff0c, 0xff0c, HB_Punctuation_Other},
+ {0xff0d, 0xff0d, HB_Punctuation_Dash},
+ {0xff0e, 0xff0f, HB_Punctuation_Other},
+ {0xff10, 0xff19, HB_Number_DecimalDigit},
+ {0xff1a, 0xff1b, HB_Punctuation_Other},
+ {0xff1c, 0xff1e, HB_Symbol_Math},
+ {0xff1f, 0xff20, HB_Punctuation_Other},
+ {0xff21, 0xff3a, HB_Letter_Uppercase},
+ {0xff3b, 0xff3b, HB_Punctuation_Open},
+ {0xff3c, 0xff3c, HB_Punctuation_Other},
+ {0xff3d, 0xff3d, HB_Punctuation_Close},
+ {0xff3e, 0xff3e, HB_Symbol_Modifier},
+ {0xff3f, 0xff3f, HB_Punctuation_Connector},
+ {0xff40, 0xff40, HB_Symbol_Modifier},
+ {0xff41, 0xff5a, HB_Letter_Lowercase},
+ {0xff5b, 0xff5b, HB_Punctuation_Open},
+ {0xff5c, 0xff5c, HB_Symbol_Math},
+ {0xff5d, 0xff5d, HB_Punctuation_Close},
+ {0xff5e, 0xff5e, HB_Symbol_Math},
+ {0xff5f, 0xff5f, HB_Punctuation_Open},
+ {0xff60, 0xff60, HB_Punctuation_Close},
+ {0xff61, 0xff61, HB_Punctuation_Other},
+ {0xff62, 0xff62, HB_Punctuation_Open},
+ {0xff63, 0xff63, HB_Punctuation_Close},
+ {0xff64, 0xff65, HB_Punctuation_Other},
+ {0xff66, 0xff6f, HB_Letter_Other},
+ {0xff70, 0xff70, HB_Letter_Modifier},
+ {0xff71, 0xff9d, HB_Letter_Other},
+ {0xff9e, 0xff9f, HB_Letter_Modifier},
+ {0xffa0, 0xffbe, HB_Letter_Other},
+ {0xffbf, 0xffc1, HB_Other_NotAssigned},
+ {0xffc2, 0xffc7, HB_Letter_Other},
+ {0xffc8, 0xffc9, HB_Other_NotAssigned},
+ {0xffca, 0xffcf, HB_Letter_Other},
+ {0xffd0, 0xffd1, HB_Other_NotAssigned},
+ {0xffd2, 0xffd7, HB_Letter_Other},
+ {0xffd8, 0xffd9, HB_Other_NotAssigned},
+ {0xffda, 0xffdc, HB_Letter_Other},
+ {0xffdd, 0xffdf, HB_Other_NotAssigned},
+ {0xffe0, 0xffe1, HB_Symbol_Currency},
+ {0xffe2, 0xffe2, HB_Symbol_Math},
+ {0xffe3, 0xffe3, HB_Symbol_Modifier},
+ {0xffe4, 0xffe4, HB_Symbol_Other},
+ {0xffe5, 0xffe6, HB_Symbol_Currency},
+ {0xffe7, 0xffe7, HB_Other_NotAssigned},
+ {0xffe8, 0xffe8, HB_Symbol_Other},
+ {0xffe9, 0xffec, HB_Symbol_Math},
+ {0xffed, 0xffee, HB_Symbol_Other},
+ {0xffef, 0xfff8, HB_Other_NotAssigned},
+ {0xfff9, 0xfffb, HB_Other_Format},
+ {0xfffc, 0xfffd, HB_Symbol_Other},
+ {0xfffe, 0xffff, HB_Other_NotAssigned},
+ {0x10000, 0x1000b, HB_Letter_Other},
+ {0x1000c, 0x1000c, HB_Other_NotAssigned},
+ {0x1000d, 0x10026, HB_Letter_Other},
+ {0x10027, 0x10027, HB_Other_NotAssigned},
+ {0x10028, 0x1003a, HB_Letter_Other},
+ {0x1003b, 0x1003b, HB_Other_NotAssigned},
+ {0x1003c, 0x1003d, HB_Letter_Other},
+ {0x1003e, 0x1003e, HB_Other_NotAssigned},
+ {0x1003f, 0x1004d, HB_Letter_Other},
+ {0x1004e, 0x1004f, HB_Other_NotAssigned},
+ {0x10050, 0x1005d, HB_Letter_Other},
+ {0x1005e, 0x1007f, HB_Other_NotAssigned},
+ {0x10080, 0x100fa, HB_Letter_Other},
+ {0x100fb, 0x100ff, HB_Other_NotAssigned},
+ {0x10100, 0x10101, HB_Punctuation_Other},
+ {0x10102, 0x10102, HB_Symbol_Other},
+ {0x10103, 0x10106, HB_Other_NotAssigned},
+ {0x10107, 0x10133, HB_Number_Other},
+ {0x10134, 0x10136, HB_Other_NotAssigned},
+ {0x10137, 0x1013f, HB_Symbol_Other},
+ {0x10140, 0x10174, HB_Number_Letter},
+ {0x10175, 0x10178, HB_Number_Other},
+ {0x10179, 0x10189, HB_Symbol_Other},
+ {0x1018a, 0x1018a, HB_Number_Other},
+ {0x1018b, 0x1018f, HB_Other_NotAssigned},
+ {0x10190, 0x1019b, HB_Symbol_Other},
+ {0x1019c, 0x101cf, HB_Other_NotAssigned},
+ {0x101d0, 0x101fc, HB_Symbol_Other},
+ {0x101fd, 0x101fd, HB_Mark_NonSpacing},
+ {0x101fe, 0x1027f, HB_Other_NotAssigned},
+ {0x10280, 0x1029c, HB_Letter_Other},
+ {0x1029d, 0x1029f, HB_Other_NotAssigned},
+ {0x102a0, 0x102d0, HB_Letter_Other},
+ {0x102d1, 0x102ff, HB_Other_NotAssigned},
+ {0x10300, 0x1031e, HB_Letter_Other},
+ {0x1031f, 0x1031f, HB_Other_NotAssigned},
+ {0x10320, 0x10323, HB_Number_Other},
+ {0x10324, 0x1032f, HB_Other_NotAssigned},
+ {0x10330, 0x10340, HB_Letter_Other},
+ {0x10341, 0x10341, HB_Number_Letter},
+ {0x10342, 0x10349, HB_Letter_Other},
+ {0x1034a, 0x1034a, HB_Number_Letter},
+ {0x1034b, 0x1037f, HB_Other_NotAssigned},
+ {0x10380, 0x1039d, HB_Letter_Other},
+ {0x1039e, 0x1039e, HB_Other_NotAssigned},
+ {0x1039f, 0x1039f, HB_Punctuation_Other},
+ {0x103a0, 0x103c3, HB_Letter_Other},
+ {0x103c4, 0x103c7, HB_Other_NotAssigned},
+ {0x103c8, 0x103cf, HB_Letter_Other},
+ {0x103d0, 0x103d0, HB_Punctuation_Other},
+ {0x103d1, 0x103d5, HB_Number_Letter},
+ {0x103d6, 0x103ff, HB_Other_NotAssigned},
+ {0x10400, 0x10427, HB_Letter_Uppercase},
+ {0x10428, 0x1044f, HB_Letter_Lowercase},
+ {0x10450, 0x1049d, HB_Letter_Other},
+ {0x1049e, 0x1049f, HB_Other_NotAssigned},
+ {0x104a0, 0x104a9, HB_Number_DecimalDigit},
+ {0x104aa, 0x107ff, HB_Other_NotAssigned},
+ {0x10800, 0x10805, HB_Letter_Other},
+ {0x10806, 0x10807, HB_Other_NotAssigned},
+ {0x10808, 0x10808, HB_Letter_Other},
+ {0x10809, 0x10809, HB_Other_NotAssigned},
+ {0x1080a, 0x10835, HB_Letter_Other},
+ {0x10836, 0x10836, HB_Other_NotAssigned},
+ {0x10837, 0x10838, HB_Letter_Other},
+ {0x10839, 0x1083b, HB_Other_NotAssigned},
+ {0x1083c, 0x1083c, HB_Letter_Other},
+ {0x1083d, 0x1083e, HB_Other_NotAssigned},
+ {0x1083f, 0x1083f, HB_Letter_Other},
+ {0x10840, 0x108ff, HB_Other_NotAssigned},
+ {0x10900, 0x10915, HB_Letter_Other},
+ {0x10916, 0x10919, HB_Number_Other},
+ {0x1091a, 0x1091e, HB_Other_NotAssigned},
+ {0x1091f, 0x1091f, HB_Punctuation_Other},
+ {0x10920, 0x10939, HB_Letter_Other},
+ {0x1093a, 0x1093e, HB_Other_NotAssigned},
+ {0x1093f, 0x1093f, HB_Punctuation_Other},
+ {0x10940, 0x109ff, HB_Other_NotAssigned},
+ {0x10a00, 0x10a00, HB_Letter_Other},
+ {0x10a01, 0x10a03, HB_Mark_NonSpacing},
+ {0x10a04, 0x10a04, HB_Other_NotAssigned},
+ {0x10a05, 0x10a06, HB_Mark_NonSpacing},
+ {0x10a07, 0x10a0b, HB_Other_NotAssigned},
+ {0x10a0c, 0x10a0f, HB_Mark_NonSpacing},
+ {0x10a10, 0x10a13, HB_Letter_Other},
+ {0x10a14, 0x10a14, HB_Other_NotAssigned},
+ {0x10a15, 0x10a17, HB_Letter_Other},
+ {0x10a18, 0x10a18, HB_Other_NotAssigned},
+ {0x10a19, 0x10a33, HB_Letter_Other},
+ {0x10a34, 0x10a37, HB_Other_NotAssigned},
+ {0x10a38, 0x10a3a, HB_Mark_NonSpacing},
+ {0x10a3b, 0x10a3e, HB_Other_NotAssigned},
+ {0x10a3f, 0x10a3f, HB_Mark_NonSpacing},
+ {0x10a40, 0x10a47, HB_Number_Other},
+ {0x10a48, 0x10a4f, HB_Other_NotAssigned},
+ {0x10a50, 0x10a58, HB_Punctuation_Other},
+ {0x10a59, 0x11fff, HB_Other_NotAssigned},
+ {0x12000, 0x1236e, HB_Letter_Other},
+ {0x1236f, 0x123ff, HB_Other_NotAssigned},
+ {0x12400, 0x12462, HB_Number_Letter},
+ {0x12463, 0x1246f, HB_Other_NotAssigned},
+ {0x12470, 0x12473, HB_Punctuation_Other},
+ {0x12474, 0x1cfff, HB_Other_NotAssigned},
+ {0x1d000, 0x1d0f5, HB_Symbol_Other},
+ {0x1d0f6, 0x1d0ff, HB_Other_NotAssigned},
+ {0x1d100, 0x1d126, HB_Symbol_Other},
+ {0x1d127, 0x1d128, HB_Other_NotAssigned},
+ {0x1d129, 0x1d164, HB_Symbol_Other},
+ {0x1d165, 0x1d166, HB_Mark_SpacingCombining},
+ {0x1d167, 0x1d169, HB_Mark_NonSpacing},
+ {0x1d16a, 0x1d16c, HB_Symbol_Other},
+ {0x1d16d, 0x1d172, HB_Mark_SpacingCombining},
+ {0x1d173, 0x1d17a, HB_Other_Format},
+ {0x1d17b, 0x1d182, HB_Mark_NonSpacing},
+ {0x1d183, 0x1d184, HB_Symbol_Other},
+ {0x1d185, 0x1d18b, HB_Mark_NonSpacing},
+ {0x1d18c, 0x1d1a9, HB_Symbol_Other},
+ {0x1d1aa, 0x1d1ad, HB_Mark_NonSpacing},
+ {0x1d1ae, 0x1d1dd, HB_Symbol_Other},
+ {0x1d1de, 0x1d1ff, HB_Other_NotAssigned},
+ {0x1d200, 0x1d241, HB_Symbol_Other},
+ {0x1d242, 0x1d244, HB_Mark_NonSpacing},
+ {0x1d245, 0x1d245, HB_Symbol_Other},
+ {0x1d246, 0x1d2ff, HB_Other_NotAssigned},
+ {0x1d300, 0x1d356, HB_Symbol_Other},
+ {0x1d357, 0x1d35f, HB_Other_NotAssigned},
+ {0x1d360, 0x1d371, HB_Number_Other},
+ {0x1d372, 0x1d3ff, HB_Other_NotAssigned},
+ {0x1d400, 0x1d419, HB_Letter_Uppercase},
+ {0x1d41a, 0x1d433, HB_Letter_Lowercase},
+ {0x1d434, 0x1d44d, HB_Letter_Uppercase},
+ {0x1d44e, 0x1d454, HB_Letter_Lowercase},
+ {0x1d455, 0x1d455, HB_Other_NotAssigned},
+ {0x1d456, 0x1d467, HB_Letter_Lowercase},
+ {0x1d468, 0x1d481, HB_Letter_Uppercase},
+ {0x1d482, 0x1d49b, HB_Letter_Lowercase},
+ {0x1d49c, 0x1d49c, HB_Letter_Uppercase},
+ {0x1d49d, 0x1d49d, HB_Other_NotAssigned},
+ {0x1d49e, 0x1d49f, HB_Letter_Uppercase},
+ {0x1d4a0, 0x1d4a1, HB_Other_NotAssigned},
+ {0x1d4a2, 0x1d4a2, HB_Letter_Uppercase},
+ {0x1d4a3, 0x1d4a4, HB_Other_NotAssigned},
+ {0x1d4a5, 0x1d4a6, HB_Letter_Uppercase},
+ {0x1d4a7, 0x1d4a8, HB_Other_NotAssigned},
+ {0x1d4a9, 0x1d4ac, HB_Letter_Uppercase},
+ {0x1d4ad, 0x1d4ad, HB_Other_NotAssigned},
+ {0x1d4ae, 0x1d4b5, HB_Letter_Uppercase},
+ {0x1d4b6, 0x1d4b9, HB_Letter_Lowercase},
+ {0x1d4ba, 0x1d4ba, HB_Other_NotAssigned},
+ {0x1d4bb, 0x1d4bb, HB_Letter_Lowercase},
+ {0x1d4bc, 0x1d4bc, HB_Other_NotAssigned},
+ {0x1d4bd, 0x1d4c3, HB_Letter_Lowercase},
+ {0x1d4c4, 0x1d4c4, HB_Other_NotAssigned},
+ {0x1d4c5, 0x1d4cf, HB_Letter_Lowercase},
+ {0x1d4d0, 0x1d4e9, HB_Letter_Uppercase},
+ {0x1d4ea, 0x1d503, HB_Letter_Lowercase},
+ {0x1d504, 0x1d505, HB_Letter_Uppercase},
+ {0x1d506, 0x1d506, HB_Other_NotAssigned},
+ {0x1d507, 0x1d50a, HB_Letter_Uppercase},
+ {0x1d50b, 0x1d50c, HB_Other_NotAssigned},
+ {0x1d50d, 0x1d514, HB_Letter_Uppercase},
+ {0x1d515, 0x1d515, HB_Other_NotAssigned},
+ {0x1d516, 0x1d51c, HB_Letter_Uppercase},
+ {0x1d51d, 0x1d51d, HB_Other_NotAssigned},
+ {0x1d51e, 0x1d537, HB_Letter_Lowercase},
+ {0x1d538, 0x1d539, HB_Letter_Uppercase},
+ {0x1d53a, 0x1d53a, HB_Other_NotAssigned},
+ {0x1d53b, 0x1d53e, HB_Letter_Uppercase},
+ {0x1d53f, 0x1d53f, HB_Other_NotAssigned},
+ {0x1d540, 0x1d544, HB_Letter_Uppercase},
+ {0x1d545, 0x1d545, HB_Other_NotAssigned},
+ {0x1d546, 0x1d546, HB_Letter_Uppercase},
+ {0x1d547, 0x1d549, HB_Other_NotAssigned},
+ {0x1d54a, 0x1d550, HB_Letter_Uppercase},
+ {0x1d551, 0x1d551, HB_Other_NotAssigned},
+ {0x1d552, 0x1d56b, HB_Letter_Lowercase},
+ {0x1d56c, 0x1d585, HB_Letter_Uppercase},
+ {0x1d586, 0x1d59f, HB_Letter_Lowercase},
+ {0x1d5a0, 0x1d5b9, HB_Letter_Uppercase},
+ {0x1d5ba, 0x1d5d3, HB_Letter_Lowercase},
+ {0x1d5d4, 0x1d5ed, HB_Letter_Uppercase},
+ {0x1d5ee, 0x1d607, HB_Letter_Lowercase},
+ {0x1d608, 0x1d621, HB_Letter_Uppercase},
+ {0x1d622, 0x1d63b, HB_Letter_Lowercase},
+ {0x1d63c, 0x1d655, HB_Letter_Uppercase},
+ {0x1d656, 0x1d66f, HB_Letter_Lowercase},
+ {0x1d670, 0x1d689, HB_Letter_Uppercase},
+ {0x1d68a, 0x1d6a5, HB_Letter_Lowercase},
+ {0x1d6a6, 0x1d6a7, HB_Other_NotAssigned},
+ {0x1d6a8, 0x1d6c0, HB_Letter_Uppercase},
+ {0x1d6c1, 0x1d6c1, HB_Symbol_Math},
+ {0x1d6c2, 0x1d6da, HB_Letter_Lowercase},
+ {0x1d6db, 0x1d6db, HB_Symbol_Math},
+ {0x1d6dc, 0x1d6e1, HB_Letter_Lowercase},
+ {0x1d6e2, 0x1d6fa, HB_Letter_Uppercase},
+ {0x1d6fb, 0x1d6fb, HB_Symbol_Math},
+ {0x1d6fc, 0x1d714, HB_Letter_Lowercase},
+ {0x1d715, 0x1d715, HB_Symbol_Math},
+ {0x1d716, 0x1d71b, HB_Letter_Lowercase},
+ {0x1d71c, 0x1d734, HB_Letter_Uppercase},
+ {0x1d735, 0x1d735, HB_Symbol_Math},
+ {0x1d736, 0x1d74e, HB_Letter_Lowercase},
+ {0x1d74f, 0x1d74f, HB_Symbol_Math},
+ {0x1d750, 0x1d755, HB_Letter_Lowercase},
+ {0x1d756, 0x1d76e, HB_Letter_Uppercase},
+ {0x1d76f, 0x1d76f, HB_Symbol_Math},
+ {0x1d770, 0x1d788, HB_Letter_Lowercase},
+ {0x1d789, 0x1d789, HB_Symbol_Math},
+ {0x1d78a, 0x1d78f, HB_Letter_Lowercase},
+ {0x1d790, 0x1d7a8, HB_Letter_Uppercase},
+ {0x1d7a9, 0x1d7a9, HB_Symbol_Math},
+ {0x1d7aa, 0x1d7c2, HB_Letter_Lowercase},
+ {0x1d7c3, 0x1d7c3, HB_Symbol_Math},
+ {0x1d7c4, 0x1d7c9, HB_Letter_Lowercase},
+ {0x1d7ca, 0x1d7ca, HB_Letter_Uppercase},
+ {0x1d7cb, 0x1d7cb, HB_Letter_Lowercase},
+ {0x1d7cc, 0x1d7cd, HB_Other_NotAssigned},
+ {0x1d7ce, 0x1d7ff, HB_Number_DecimalDigit},
+ {0x1d800, 0x1efff, HB_Other_NotAssigned},
+ {0x1f000, 0x1f02b, HB_Symbol_Other},
+ {0x1f02c, 0x1f02f, HB_Other_NotAssigned},
+ {0x1f030, 0x1f093, HB_Symbol_Other},
+ {0x1f094, 0x1ffff, HB_Other_NotAssigned},
+ {0x20000, 0x2a6d6, HB_Letter_Other},
+ {0x2a6d7, 0x2f7ff, HB_Other_NotAssigned},
+ {0x2f800, 0x2fa1d, HB_Letter_Other},
+ {0x2fa1e, 0xe0000, HB_Other_NotAssigned},
+ {0xe0001, 0xe0001, HB_Other_Format},
+ {0xe0002, 0xe001f, HB_Other_NotAssigned},
+ {0xe0020, 0xe007f, HB_Other_Format},
+ {0xe0080, 0xe00ff, HB_Other_NotAssigned},
+ {0xe0100, 0xe01ef, HB_Mark_NonSpacing},
+ {0xe01f0, 0xeffff, HB_Other_NotAssigned},
+ {0xf0000, 0xffffd, HB_Other_PrivateUse},
+ {0xffffe, 0xfffff, HB_Other_NotAssigned},
+ {0x100000, 0x10fffd, HB_Other_PrivateUse},
+ {0x10fffe, 0x10ffff, HB_Other_NotAssigned},
+};
+
+static const unsigned category_properties_count = 2849;
+
+#endif // CATEGORY_PROPERTIES_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-class-parse.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-class-parse.py
new file mode 100644
index 00000000000..c591dddc429
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-class-parse.py
@@ -0,0 +1,34 @@
+import sys
+from unicode_parse_common import *
+
+# http://www.unicode.org/Public/5.1.0/ucd/extracted/DerivedCombiningClass.txt
+
+class IdentityMap(object):
+ def __getitem__(_, key):
+ return key
+
+def main(infile, outfile):
+ ranges = unicode_file_parse(infile, IdentityMap(), '0')
+ ranges = sort_and_merge(ranges)
+
+ print >>outfile, '// Generated from Unicode tables\n'
+ print >>outfile, '#ifndef COMBINING_PROPERTIES_H_'
+ print >>outfile, '#define COMBINING_PROPERTIES_H_\n'
+ print >>outfile, '#include <stdint.h>'
+ print >>outfile, 'struct combining_property {'
+ print >>outfile, ' uint32_t range_start;'
+ print >>outfile, ' uint32_t range_end;'
+ print >>outfile, ' uint8_t klass;'
+ print >>outfile, '};\n'
+ print >>outfile, 'static const struct combining_property combining_properties[] = {'
+ for (start, end, value) in ranges:
+ print >>outfile, ' {0x%x, 0x%x, %s},' % (start, end, value)
+ print >>outfile, '};\n'
+ print >>outfile, 'static const unsigned combining_properties_count = %d;\n' % len(ranges)
+ print >>outfile, '#endif // COMBINING_PROPERTIES_H_'
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print 'Usage: %s <input .txt> <output .h>' % sys.argv[0]
+ else:
+ main(file(sys.argv[1], 'r'), file(sys.argv[2], 'w+'))
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-properties.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-properties.h
new file mode 100644
index 00000000000..552ed355eb5
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/combining-properties.h
@@ -0,0 +1,247 @@
+// Generated from Unicode tables
+
+#ifndef COMBINING_PROPERTIES_H_
+#define COMBINING_PROPERTIES_H_
+
+#include <stdint.h>
+struct combining_property {
+ uint32_t range_start;
+ uint32_t range_end;
+ uint8_t klass;
+};
+
+static const struct combining_property combining_properties[] = {
+ {0x300, 0x314, 230},
+ {0x315, 0x315, 232},
+ {0x316, 0x319, 220},
+ {0x31a, 0x31a, 232},
+ {0x31b, 0x31b, 216},
+ {0x31c, 0x320, 220},
+ {0x321, 0x322, 202},
+ {0x323, 0x326, 220},
+ {0x327, 0x328, 202},
+ {0x329, 0x333, 220},
+ {0x334, 0x338, 1},
+ {0x339, 0x33c, 220},
+ {0x33d, 0x344, 230},
+ {0x345, 0x345, 240},
+ {0x346, 0x346, 230},
+ {0x347, 0x349, 220},
+ {0x34a, 0x34c, 230},
+ {0x34d, 0x34e, 220},
+ {0x350, 0x352, 230},
+ {0x353, 0x356, 220},
+ {0x357, 0x357, 230},
+ {0x358, 0x358, 232},
+ {0x359, 0x35a, 220},
+ {0x35b, 0x35b, 230},
+ {0x35c, 0x35c, 233},
+ {0x35d, 0x35e, 234},
+ {0x35f, 0x35f, 233},
+ {0x360, 0x361, 234},
+ {0x362, 0x362, 233},
+ {0x363, 0x36f, 230},
+ {0x483, 0x487, 230},
+ {0x591, 0x591, 220},
+ {0x592, 0x595, 230},
+ {0x596, 0x596, 220},
+ {0x597, 0x599, 230},
+ {0x59a, 0x59a, 222},
+ {0x59b, 0x59b, 220},
+ {0x59c, 0x5a1, 230},
+ {0x5a2, 0x5a7, 220},
+ {0x5a8, 0x5a9, 230},
+ {0x5aa, 0x5aa, 220},
+ {0x5ab, 0x5ac, 230},
+ {0x5ad, 0x5ad, 222},
+ {0x5ae, 0x5ae, 228},
+ {0x5af, 0x5af, 230},
+ {0x5b0, 0x5b0, 10},
+ {0x5b1, 0x5b1, 11},
+ {0x5b2, 0x5b2, 12},
+ {0x5b3, 0x5b3, 13},
+ {0x5b4, 0x5b4, 14},
+ {0x5b5, 0x5b5, 15},
+ {0x5b6, 0x5b6, 16},
+ {0x5b7, 0x5b7, 17},
+ {0x5b8, 0x5b8, 18},
+ {0x5b9, 0x5ba, 19},
+ {0x5bb, 0x5bb, 20},
+ {0x5bc, 0x5bc, 21},
+ {0x5bd, 0x5bd, 22},
+ {0x5bf, 0x5bf, 23},
+ {0x5c1, 0x5c1, 24},
+ {0x5c2, 0x5c2, 25},
+ {0x5c4, 0x5c4, 230},
+ {0x5c5, 0x5c5, 220},
+ {0x5c7, 0x5c7, 18},
+ {0x610, 0x617, 230},
+ {0x618, 0x618, 30},
+ {0x619, 0x619, 31},
+ {0x61a, 0x61a, 32},
+ {0x64b, 0x64b, 27},
+ {0x64c, 0x64c, 28},
+ {0x64d, 0x64d, 29},
+ {0x64e, 0x64e, 30},
+ {0x64f, 0x64f, 31},
+ {0x650, 0x650, 32},
+ {0x651, 0x651, 33},
+ {0x652, 0x652, 34},
+ {0x653, 0x654, 230},
+ {0x655, 0x656, 220},
+ {0x657, 0x65b, 230},
+ {0x65c, 0x65c, 220},
+ {0x65d, 0x65e, 230},
+ {0x670, 0x670, 35},
+ {0x6d6, 0x6dc, 230},
+ {0x6df, 0x6e2, 230},
+ {0x6e3, 0x6e3, 220},
+ {0x6e4, 0x6e4, 230},
+ {0x6e7, 0x6e8, 230},
+ {0x6ea, 0x6ea, 220},
+ {0x6eb, 0x6ec, 230},
+ {0x6ed, 0x6ed, 220},
+ {0x711, 0x711, 36},
+ {0x730, 0x730, 230},
+ {0x731, 0x731, 220},
+ {0x732, 0x733, 230},
+ {0x734, 0x734, 220},
+ {0x735, 0x736, 230},
+ {0x737, 0x739, 220},
+ {0x73a, 0x73a, 230},
+ {0x73b, 0x73c, 220},
+ {0x73d, 0x73d, 230},
+ {0x73e, 0x73e, 220},
+ {0x73f, 0x741, 230},
+ {0x742, 0x742, 220},
+ {0x743, 0x743, 230},
+ {0x744, 0x744, 220},
+ {0x745, 0x745, 230},
+ {0x746, 0x746, 220},
+ {0x747, 0x747, 230},
+ {0x748, 0x748, 220},
+ {0x749, 0x74a, 230},
+ {0x7eb, 0x7f1, 230},
+ {0x7f2, 0x7f2, 220},
+ {0x7f3, 0x7f3, 230},
+ {0x93c, 0x93c, 7},
+ {0x94d, 0x94d, 9},
+ {0x951, 0x951, 230},
+ {0x952, 0x952, 220},
+ {0x953, 0x954, 230},
+ {0x9bc, 0x9bc, 7},
+ {0x9cd, 0x9cd, 9},
+ {0xa3c, 0xa3c, 7},
+ {0xa4d, 0xa4d, 9},
+ {0xabc, 0xabc, 7},
+ {0xacd, 0xacd, 9},
+ {0xb3c, 0xb3c, 7},
+ {0xb4d, 0xb4d, 9},
+ {0xbcd, 0xbcd, 9},
+ {0xc4d, 0xc4d, 9},
+ {0xc55, 0xc55, 84},
+ {0xc56, 0xc56, 91},
+ {0xcbc, 0xcbc, 7},
+ {0xccd, 0xccd, 9},
+ {0xd4d, 0xd4d, 9},
+ {0xdca, 0xdca, 9},
+ {0xe38, 0xe39, 103},
+ {0xe3a, 0xe3a, 9},
+ {0xe48, 0xe4b, 107},
+ {0xeb8, 0xeb9, 118},
+ {0xec8, 0xecb, 122},
+ {0xf18, 0xf19, 220},
+ {0xf35, 0xf35, 220},
+ {0xf37, 0xf37, 220},
+ {0xf39, 0xf39, 216},
+ {0xf71, 0xf71, 129},
+ {0xf72, 0xf72, 130},
+ {0xf74, 0xf74, 132},
+ {0xf7a, 0xf7d, 130},
+ {0xf80, 0xf80, 130},
+ {0xf82, 0xf83, 230},
+ {0xf84, 0xf84, 9},
+ {0xf86, 0xf87, 230},
+ {0xfc6, 0xfc6, 220},
+ {0x1037, 0x1037, 7},
+ {0x1039, 0x103a, 9},
+ {0x108d, 0x108d, 220},
+ {0x135f, 0x135f, 230},
+ {0x1714, 0x1714, 9},
+ {0x1734, 0x1734, 9},
+ {0x17d2, 0x17d2, 9},
+ {0x17dd, 0x17dd, 230},
+ {0x18a9, 0x18a9, 228},
+ {0x1939, 0x1939, 222},
+ {0x193a, 0x193a, 230},
+ {0x193b, 0x193b, 220},
+ {0x1a17, 0x1a17, 230},
+ {0x1a18, 0x1a18, 220},
+ {0x1b34, 0x1b34, 7},
+ {0x1b44, 0x1b44, 9},
+ {0x1b6b, 0x1b6b, 230},
+ {0x1b6c, 0x1b6c, 220},
+ {0x1b6d, 0x1b73, 230},
+ {0x1baa, 0x1baa, 9},
+ {0x1c37, 0x1c37, 7},
+ {0x1dc0, 0x1dc1, 230},
+ {0x1dc2, 0x1dc2, 220},
+ {0x1dc3, 0x1dc9, 230},
+ {0x1dca, 0x1dca, 220},
+ {0x1dcb, 0x1dcc, 230},
+ {0x1dcd, 0x1dcd, 234},
+ {0x1dce, 0x1dce, 214},
+ {0x1dcf, 0x1dcf, 220},
+ {0x1dd0, 0x1dd0, 202},
+ {0x1dd1, 0x1de6, 230},
+ {0x1dfe, 0x1dfe, 230},
+ {0x1dff, 0x1dff, 220},
+ {0x20d0, 0x20d1, 230},
+ {0x20d2, 0x20d3, 1},
+ {0x20d4, 0x20d7, 230},
+ {0x20d8, 0x20da, 1},
+ {0x20db, 0x20dc, 230},
+ {0x20e1, 0x20e1, 230},
+ {0x20e5, 0x20e6, 1},
+ {0x20e7, 0x20e7, 230},
+ {0x20e8, 0x20e8, 220},
+ {0x20e9, 0x20e9, 230},
+ {0x20ea, 0x20eb, 1},
+ {0x20ec, 0x20ef, 220},
+ {0x20f0, 0x20f0, 230},
+ {0x2de0, 0x2dff, 230},
+ {0x302a, 0x302a, 218},
+ {0x302b, 0x302b, 228},
+ {0x302c, 0x302c, 232},
+ {0x302d, 0x302d, 222},
+ {0x302e, 0x302f, 224},
+ {0x3099, 0x309a, 8},
+ {0xa66f, 0xa66f, 230},
+ {0xa67c, 0xa67d, 230},
+ {0xa806, 0xa806, 9},
+ {0xa8c4, 0xa8c4, 9},
+ {0xa92b, 0xa92d, 220},
+ {0xa953, 0xa953, 9},
+ {0xfb1e, 0xfb1e, 26},
+ {0xfe20, 0xfe26, 230},
+ {0x101fd, 0x101fd, 220},
+ {0x10a0d, 0x10a0d, 220},
+ {0x10a0f, 0x10a0f, 230},
+ {0x10a38, 0x10a38, 230},
+ {0x10a39, 0x10a39, 1},
+ {0x10a3a, 0x10a3a, 220},
+ {0x10a3f, 0x10a3f, 9},
+ {0x1d165, 0x1d166, 216},
+ {0x1d167, 0x1d169, 1},
+ {0x1d16d, 0x1d16d, 226},
+ {0x1d16e, 0x1d172, 216},
+ {0x1d17b, 0x1d182, 220},
+ {0x1d185, 0x1d189, 230},
+ {0x1d18a, 0x1d18b, 220},
+ {0x1d1aa, 0x1d1ad, 230},
+ {0x1d242, 0x1d244, 230},
+};
+
+static const unsigned combining_properties_count = 229;
+
+#endif // COMBINING_PROPERTIES_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-parse.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-parse.py
new file mode 100644
index 00000000000..a4b35342436
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-parse.py
@@ -0,0 +1,45 @@
+import sys
+from unicode_parse_common import *
+
+# http://www.unicode.org/Public/UNIDATA/auxiliary/GraphemeBreakProperty.txt
+
+property_to_harfbuzz = {
+ 'CR': 'HB_Grapheme_CR',
+ 'LF': 'HB_Grapheme_LF',
+ 'Control': 'HB_Grapheme_Control',
+ 'Extend': 'HB_Grapheme_Extend',
+ 'Prepend': 'HB_Grapheme_Other',
+ 'SpacingMark': 'HB_Grapheme_Other',
+ 'L': 'HB_Grapheme_L',
+ 'V': 'HB_Grapheme_V',
+ 'T': 'HB_Grapheme_T',
+ 'LV': 'HB_Grapheme_LV',
+ 'LVT': 'HB_Grapheme_LVT',
+}
+
+def main(infile, outfile):
+ ranges = unicode_file_parse(infile, property_to_harfbuzz)
+ ranges.sort()
+
+ print >>outfile, '// Generated from Unicode Grapheme break tables\n'
+ print >>outfile, '#ifndef GRAPHEME_BREAK_PROPERTY_H_'
+ print >>outfile, '#define GRAPHEME_BREAK_PROPERTY_H_\n'
+ print >>outfile, '#include <stdint.h>'
+ print >>outfile, '#include "harfbuzz-external.h"\n'
+ print >>outfile, 'struct grapheme_break_property {'
+ print >>outfile, ' uint32_t range_start;'
+ print >>outfile, ' uint32_t range_end;'
+ print >>outfile, ' HB_GraphemeClass klass;'
+ print >>outfile, '};\n'
+ print >>outfile, 'static const struct grapheme_break_property grapheme_break_properties[] = {'
+ for (start, end, value) in ranges:
+ print >>outfile, ' {0x%x, 0x%x, %s},' % (start, end, value)
+ print >>outfile, '};\n'
+ print >>outfile, 'static const unsigned grapheme_break_properties_count = %d;\n' % len(ranges)
+ print >>outfile, '#endif // GRAPHEME_BREAK_PROPERTY_H_'
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print 'Usage: %s <input .txt> <output .h>' % sys.argv[0]
+ else:
+ main(file(sys.argv[1], 'r'), file(sys.argv[2], 'w+'))
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-properties.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-properties.h
new file mode 100644
index 00000000000..73f47d44d24
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/grapheme-break-properties.h
@@ -0,0 +1,1113 @@
+// Generated from Unicode Grapheme break tables
+
+#ifndef GRAPHEME_BREAK_PROPERTY_H_
+#define GRAPHEME_BREAK_PROPERTY_H_
+
+#include <stdint.h>
+#include "harfbuzz-external.h"
+
+struct grapheme_break_property {
+ uint32_t range_start;
+ uint32_t range_end;
+ HB_GraphemeClass klass;
+};
+
+static const struct grapheme_break_property grapheme_break_properties[] = {
+ {0x0, 0x9, HB_Grapheme_Control},
+ {0xa, 0xa, HB_Grapheme_LF},
+ {0xb, 0xc, HB_Grapheme_Control},
+ {0xd, 0xd, HB_Grapheme_CR},
+ {0xe, 0x1f, HB_Grapheme_Control},
+ {0x7f, 0x9f, HB_Grapheme_Control},
+ {0xad, 0xad, HB_Grapheme_Control},
+ {0x300, 0x36f, HB_Grapheme_Extend},
+ {0x483, 0x487, HB_Grapheme_Extend},
+ {0x488, 0x489, HB_Grapheme_Extend},
+ {0x591, 0x5bd, HB_Grapheme_Extend},
+ {0x5bf, 0x5bf, HB_Grapheme_Extend},
+ {0x5c1, 0x5c2, HB_Grapheme_Extend},
+ {0x5c4, 0x5c5, HB_Grapheme_Extend},
+ {0x5c7, 0x5c7, HB_Grapheme_Extend},
+ {0x600, 0x603, HB_Grapheme_Control},
+ {0x610, 0x61a, HB_Grapheme_Extend},
+ {0x64b, 0x65e, HB_Grapheme_Extend},
+ {0x670, 0x670, HB_Grapheme_Extend},
+ {0x6d6, 0x6dc, HB_Grapheme_Extend},
+ {0x6dd, 0x6dd, HB_Grapheme_Control},
+ {0x6de, 0x6de, HB_Grapheme_Extend},
+ {0x6df, 0x6e4, HB_Grapheme_Extend},
+ {0x6e7, 0x6e8, HB_Grapheme_Extend},
+ {0x6ea, 0x6ed, HB_Grapheme_Extend},
+ {0x70f, 0x70f, HB_Grapheme_Control},
+ {0x711, 0x711, HB_Grapheme_Extend},
+ {0x730, 0x74a, HB_Grapheme_Extend},
+ {0x7a6, 0x7b0, HB_Grapheme_Extend},
+ {0x7eb, 0x7f3, HB_Grapheme_Extend},
+ {0x901, 0x902, HB_Grapheme_Extend},
+ {0x903, 0x903, HB_Grapheme_Other},
+ {0x93c, 0x93c, HB_Grapheme_Extend},
+ {0x93e, 0x940, HB_Grapheme_Other},
+ {0x941, 0x948, HB_Grapheme_Extend},
+ {0x949, 0x94c, HB_Grapheme_Other},
+ {0x94d, 0x94d, HB_Grapheme_Extend},
+ {0x951, 0x954, HB_Grapheme_Extend},
+ {0x962, 0x963, HB_Grapheme_Extend},
+ {0x981, 0x981, HB_Grapheme_Extend},
+ {0x982, 0x983, HB_Grapheme_Other},
+ {0x9bc, 0x9bc, HB_Grapheme_Extend},
+ {0x9be, 0x9be, HB_Grapheme_Extend},
+ {0x9bf, 0x9c0, HB_Grapheme_Other},
+ {0x9c1, 0x9c4, HB_Grapheme_Extend},
+ {0x9c7, 0x9c8, HB_Grapheme_Other},
+ {0x9cb, 0x9cc, HB_Grapheme_Other},
+ {0x9cd, 0x9cd, HB_Grapheme_Extend},
+ {0x9d7, 0x9d7, HB_Grapheme_Extend},
+ {0x9e2, 0x9e3, HB_Grapheme_Extend},
+ {0xa01, 0xa02, HB_Grapheme_Extend},
+ {0xa03, 0xa03, HB_Grapheme_Other},
+ {0xa3c, 0xa3c, HB_Grapheme_Extend},
+ {0xa3e, 0xa40, HB_Grapheme_Other},
+ {0xa41, 0xa42, HB_Grapheme_Extend},
+ {0xa47, 0xa48, HB_Grapheme_Extend},
+ {0xa4b, 0xa4d, HB_Grapheme_Extend},
+ {0xa51, 0xa51, HB_Grapheme_Extend},
+ {0xa70, 0xa71, HB_Grapheme_Extend},
+ {0xa75, 0xa75, HB_Grapheme_Extend},
+ {0xa81, 0xa82, HB_Grapheme_Extend},
+ {0xa83, 0xa83, HB_Grapheme_Other},
+ {0xabc, 0xabc, HB_Grapheme_Extend},
+ {0xabe, 0xac0, HB_Grapheme_Other},
+ {0xac1, 0xac5, HB_Grapheme_Extend},
+ {0xac7, 0xac8, HB_Grapheme_Extend},
+ {0xac9, 0xac9, HB_Grapheme_Other},
+ {0xacb, 0xacc, HB_Grapheme_Other},
+ {0xacd, 0xacd, HB_Grapheme_Extend},
+ {0xae2, 0xae3, HB_Grapheme_Extend},
+ {0xb01, 0xb01, HB_Grapheme_Extend},
+ {0xb02, 0xb03, HB_Grapheme_Other},
+ {0xb3c, 0xb3c, HB_Grapheme_Extend},
+ {0xb3e, 0xb3e, HB_Grapheme_Extend},
+ {0xb3f, 0xb3f, HB_Grapheme_Extend},
+ {0xb40, 0xb40, HB_Grapheme_Other},
+ {0xb41, 0xb44, HB_Grapheme_Extend},
+ {0xb47, 0xb48, HB_Grapheme_Other},
+ {0xb4b, 0xb4c, HB_Grapheme_Other},
+ {0xb4d, 0xb4d, HB_Grapheme_Extend},
+ {0xb56, 0xb56, HB_Grapheme_Extend},
+ {0xb57, 0xb57, HB_Grapheme_Extend},
+ {0xb62, 0xb63, HB_Grapheme_Extend},
+ {0xb82, 0xb82, HB_Grapheme_Extend},
+ {0xbbe, 0xbbe, HB_Grapheme_Extend},
+ {0xbbf, 0xbbf, HB_Grapheme_Other},
+ {0xbc0, 0xbc0, HB_Grapheme_Extend},
+ {0xbc1, 0xbc2, HB_Grapheme_Other},
+ {0xbc6, 0xbc8, HB_Grapheme_Other},
+ {0xbca, 0xbcc, HB_Grapheme_Other},
+ {0xbcd, 0xbcd, HB_Grapheme_Extend},
+ {0xbd7, 0xbd7, HB_Grapheme_Extend},
+ {0xc01, 0xc03, HB_Grapheme_Other},
+ {0xc3e, 0xc40, HB_Grapheme_Extend},
+ {0xc41, 0xc44, HB_Grapheme_Other},
+ {0xc46, 0xc48, HB_Grapheme_Extend},
+ {0xc4a, 0xc4d, HB_Grapheme_Extend},
+ {0xc55, 0xc56, HB_Grapheme_Extend},
+ {0xc62, 0xc63, HB_Grapheme_Extend},
+ {0xc82, 0xc83, HB_Grapheme_Other},
+ {0xcbc, 0xcbc, HB_Grapheme_Extend},
+ {0xcbe, 0xcbe, HB_Grapheme_Other},
+ {0xcbf, 0xcbf, HB_Grapheme_Extend},
+ {0xcc0, 0xcc1, HB_Grapheme_Other},
+ {0xcc2, 0xcc2, HB_Grapheme_Extend},
+ {0xcc3, 0xcc4, HB_Grapheme_Other},
+ {0xcc6, 0xcc6, HB_Grapheme_Extend},
+ {0xcc7, 0xcc8, HB_Grapheme_Other},
+ {0xcca, 0xccb, HB_Grapheme_Other},
+ {0xccc, 0xccd, HB_Grapheme_Extend},
+ {0xcd5, 0xcd6, HB_Grapheme_Extend},
+ {0xce2, 0xce3, HB_Grapheme_Extend},
+ {0xd02, 0xd03, HB_Grapheme_Other},
+ {0xd3e, 0xd3e, HB_Grapheme_Extend},
+ {0xd3f, 0xd40, HB_Grapheme_Other},
+ {0xd41, 0xd44, HB_Grapheme_Extend},
+ {0xd46, 0xd48, HB_Grapheme_Other},
+ {0xd4a, 0xd4c, HB_Grapheme_Other},
+ {0xd4d, 0xd4d, HB_Grapheme_Extend},
+ {0xd57, 0xd57, HB_Grapheme_Extend},
+ {0xd62, 0xd63, HB_Grapheme_Extend},
+ {0xd82, 0xd83, HB_Grapheme_Other},
+ {0xdca, 0xdca, HB_Grapheme_Extend},
+ {0xdcf, 0xdcf, HB_Grapheme_Extend},
+ {0xdd0, 0xdd1, HB_Grapheme_Other},
+ {0xdd2, 0xdd4, HB_Grapheme_Extend},
+ {0xdd6, 0xdd6, HB_Grapheme_Extend},
+ {0xdd8, 0xdde, HB_Grapheme_Other},
+ {0xddf, 0xddf, HB_Grapheme_Extend},
+ {0xdf2, 0xdf3, HB_Grapheme_Other},
+ {0xe30, 0xe30, HB_Grapheme_Extend},
+ {0xe31, 0xe31, HB_Grapheme_Extend},
+ {0xe32, 0xe33, HB_Grapheme_Extend},
+ {0xe34, 0xe3a, HB_Grapheme_Extend},
+ {0xe40, 0xe44, HB_Grapheme_Other},
+ {0xe45, 0xe45, HB_Grapheme_Extend},
+ {0xe47, 0xe4e, HB_Grapheme_Extend},
+ {0xeb0, 0xeb0, HB_Grapheme_Extend},
+ {0xeb1, 0xeb1, HB_Grapheme_Extend},
+ {0xeb2, 0xeb3, HB_Grapheme_Extend},
+ {0xeb4, 0xeb9, HB_Grapheme_Extend},
+ {0xebb, 0xebc, HB_Grapheme_Extend},
+ {0xec0, 0xec4, HB_Grapheme_Other},
+ {0xec8, 0xecd, HB_Grapheme_Extend},
+ {0xf18, 0xf19, HB_Grapheme_Extend},
+ {0xf35, 0xf35, HB_Grapheme_Extend},
+ {0xf37, 0xf37, HB_Grapheme_Extend},
+ {0xf39, 0xf39, HB_Grapheme_Extend},
+ {0xf3e, 0xf3f, HB_Grapheme_Other},
+ {0xf71, 0xf7e, HB_Grapheme_Extend},
+ {0xf7f, 0xf7f, HB_Grapheme_Other},
+ {0xf80, 0xf84, HB_Grapheme_Extend},
+ {0xf86, 0xf87, HB_Grapheme_Extend},
+ {0xf90, 0xf97, HB_Grapheme_Extend},
+ {0xf99, 0xfbc, HB_Grapheme_Extend},
+ {0xfc6, 0xfc6, HB_Grapheme_Extend},
+ {0x102b, 0x102c, HB_Grapheme_Other},
+ {0x102d, 0x1030, HB_Grapheme_Extend},
+ {0x1031, 0x1031, HB_Grapheme_Other},
+ {0x1032, 0x1037, HB_Grapheme_Extend},
+ {0x1038, 0x1038, HB_Grapheme_Other},
+ {0x1039, 0x103a, HB_Grapheme_Extend},
+ {0x103b, 0x103c, HB_Grapheme_Other},
+ {0x103d, 0x103e, HB_Grapheme_Extend},
+ {0x1056, 0x1057, HB_Grapheme_Other},
+ {0x1058, 0x1059, HB_Grapheme_Extend},
+ {0x105e, 0x1060, HB_Grapheme_Extend},
+ {0x1062, 0x1064, HB_Grapheme_Other},
+ {0x1067, 0x106d, HB_Grapheme_Other},
+ {0x1071, 0x1074, HB_Grapheme_Extend},
+ {0x1082, 0x1082, HB_Grapheme_Extend},
+ {0x1083, 0x1084, HB_Grapheme_Other},
+ {0x1085, 0x1086, HB_Grapheme_Extend},
+ {0x1087, 0x108c, HB_Grapheme_Other},
+ {0x108d, 0x108d, HB_Grapheme_Extend},
+ {0x108f, 0x108f, HB_Grapheme_Other},
+ {0x1100, 0x1159, HB_Grapheme_L},
+ {0x115f, 0x115f, HB_Grapheme_L},
+ {0x1160, 0x11a2, HB_Grapheme_V},
+ {0x11a8, 0x11f9, HB_Grapheme_T},
+ {0x135f, 0x135f, HB_Grapheme_Extend},
+ {0x1712, 0x1714, HB_Grapheme_Extend},
+ {0x1732, 0x1734, HB_Grapheme_Extend},
+ {0x1752, 0x1753, HB_Grapheme_Extend},
+ {0x1772, 0x1773, HB_Grapheme_Extend},
+ {0x17b4, 0x17b5, HB_Grapheme_Control},
+ {0x17b6, 0x17b6, HB_Grapheme_Other},
+ {0x17b7, 0x17bd, HB_Grapheme_Extend},
+ {0x17be, 0x17c5, HB_Grapheme_Other},
+ {0x17c6, 0x17c6, HB_Grapheme_Extend},
+ {0x17c7, 0x17c8, HB_Grapheme_Other},
+ {0x17c9, 0x17d3, HB_Grapheme_Extend},
+ {0x17dd, 0x17dd, HB_Grapheme_Extend},
+ {0x180b, 0x180d, HB_Grapheme_Extend},
+ {0x18a9, 0x18a9, HB_Grapheme_Extend},
+ {0x1920, 0x1922, HB_Grapheme_Extend},
+ {0x1923, 0x1926, HB_Grapheme_Other},
+ {0x1927, 0x1928, HB_Grapheme_Extend},
+ {0x1929, 0x192b, HB_Grapheme_Other},
+ {0x1930, 0x1931, HB_Grapheme_Other},
+ {0x1932, 0x1932, HB_Grapheme_Extend},
+ {0x1933, 0x1938, HB_Grapheme_Other},
+ {0x1939, 0x193b, HB_Grapheme_Extend},
+ {0x19b0, 0x19c0, HB_Grapheme_Other},
+ {0x19c8, 0x19c9, HB_Grapheme_Other},
+ {0x1a17, 0x1a18, HB_Grapheme_Extend},
+ {0x1a19, 0x1a1b, HB_Grapheme_Other},
+ {0x1b00, 0x1b03, HB_Grapheme_Extend},
+ {0x1b04, 0x1b04, HB_Grapheme_Other},
+ {0x1b34, 0x1b34, HB_Grapheme_Extend},
+ {0x1b35, 0x1b35, HB_Grapheme_Other},
+ {0x1b36, 0x1b3a, HB_Grapheme_Extend},
+ {0x1b3b, 0x1b3b, HB_Grapheme_Other},
+ {0x1b3c, 0x1b3c, HB_Grapheme_Extend},
+ {0x1b3d, 0x1b41, HB_Grapheme_Other},
+ {0x1b42, 0x1b42, HB_Grapheme_Extend},
+ {0x1b43, 0x1b44, HB_Grapheme_Other},
+ {0x1b6b, 0x1b73, HB_Grapheme_Extend},
+ {0x1b80, 0x1b81, HB_Grapheme_Extend},
+ {0x1b82, 0x1b82, HB_Grapheme_Other},
+ {0x1ba1, 0x1ba1, HB_Grapheme_Other},
+ {0x1ba2, 0x1ba5, HB_Grapheme_Extend},
+ {0x1ba6, 0x1ba7, HB_Grapheme_Other},
+ {0x1ba8, 0x1ba9, HB_Grapheme_Extend},
+ {0x1baa, 0x1baa, HB_Grapheme_Other},
+ {0x1c24, 0x1c2b, HB_Grapheme_Other},
+ {0x1c2c, 0x1c33, HB_Grapheme_Extend},
+ {0x1c34, 0x1c35, HB_Grapheme_Other},
+ {0x1c36, 0x1c37, HB_Grapheme_Extend},
+ {0x1dc0, 0x1de6, HB_Grapheme_Extend},
+ {0x1dfe, 0x1dff, HB_Grapheme_Extend},
+ {0x200b, 0x200b, HB_Grapheme_Control},
+ {0x200c, 0x200d, HB_Grapheme_Extend},
+ {0x200e, 0x200f, HB_Grapheme_Control},
+ {0x2028, 0x2028, HB_Grapheme_Control},
+ {0x2029, 0x2029, HB_Grapheme_Control},
+ {0x202a, 0x202e, HB_Grapheme_Control},
+ {0x2060, 0x2064, HB_Grapheme_Control},
+ {0x206a, 0x206f, HB_Grapheme_Control},
+ {0x20d0, 0x20dc, HB_Grapheme_Extend},
+ {0x20dd, 0x20e0, HB_Grapheme_Extend},
+ {0x20e1, 0x20e1, HB_Grapheme_Extend},
+ {0x20e2, 0x20e4, HB_Grapheme_Extend},
+ {0x20e5, 0x20f0, HB_Grapheme_Extend},
+ {0x2de0, 0x2dff, HB_Grapheme_Extend},
+ {0x302a, 0x302f, HB_Grapheme_Extend},
+ {0x3099, 0x309a, HB_Grapheme_Extend},
+ {0xa66f, 0xa66f, HB_Grapheme_Extend},
+ {0xa670, 0xa672, HB_Grapheme_Extend},
+ {0xa67c, 0xa67d, HB_Grapheme_Extend},
+ {0xa802, 0xa802, HB_Grapheme_Extend},
+ {0xa806, 0xa806, HB_Grapheme_Extend},
+ {0xa80b, 0xa80b, HB_Grapheme_Extend},
+ {0xa823, 0xa824, HB_Grapheme_Other},
+ {0xa825, 0xa826, HB_Grapheme_Extend},
+ {0xa827, 0xa827, HB_Grapheme_Other},
+ {0xa880, 0xa881, HB_Grapheme_Other},
+ {0xa8b4, 0xa8c3, HB_Grapheme_Other},
+ {0xa8c4, 0xa8c4, HB_Grapheme_Extend},
+ {0xa926, 0xa92d, HB_Grapheme_Extend},
+ {0xa947, 0xa951, HB_Grapheme_Extend},
+ {0xa952, 0xa953, HB_Grapheme_Other},
+ {0xaa29, 0xaa2e, HB_Grapheme_Extend},
+ {0xaa2f, 0xaa30, HB_Grapheme_Other},
+ {0xaa31, 0xaa32, HB_Grapheme_Extend},
+ {0xaa33, 0xaa34, HB_Grapheme_Other},
+ {0xaa35, 0xaa36, HB_Grapheme_Extend},
+ {0xaa43, 0xaa43, HB_Grapheme_Extend},
+ {0xaa4c, 0xaa4c, HB_Grapheme_Extend},
+ {0xaa4d, 0xaa4d, HB_Grapheme_Other},
+ {0xac00, 0xac00, HB_Grapheme_LV},
+ {0xac01, 0xac1b, HB_Grapheme_LVT},
+ {0xac1c, 0xac1c, HB_Grapheme_LV},
+ {0xac1d, 0xac37, HB_Grapheme_LVT},
+ {0xac38, 0xac38, HB_Grapheme_LV},
+ {0xac39, 0xac53, HB_Grapheme_LVT},
+ {0xac54, 0xac54, HB_Grapheme_LV},
+ {0xac55, 0xac6f, HB_Grapheme_LVT},
+ {0xac70, 0xac70, HB_Grapheme_LV},
+ {0xac71, 0xac8b, HB_Grapheme_LVT},
+ {0xac8c, 0xac8c, HB_Grapheme_LV},
+ {0xac8d, 0xaca7, HB_Grapheme_LVT},
+ {0xaca8, 0xaca8, HB_Grapheme_LV},
+ {0xaca9, 0xacc3, HB_Grapheme_LVT},
+ {0xacc4, 0xacc4, HB_Grapheme_LV},
+ {0xacc5, 0xacdf, HB_Grapheme_LVT},
+ {0xace0, 0xace0, HB_Grapheme_LV},
+ {0xace1, 0xacfb, HB_Grapheme_LVT},
+ {0xacfc, 0xacfc, HB_Grapheme_LV},
+ {0xacfd, 0xad17, HB_Grapheme_LVT},
+ {0xad18, 0xad18, HB_Grapheme_LV},
+ {0xad19, 0xad33, HB_Grapheme_LVT},
+ {0xad34, 0xad34, HB_Grapheme_LV},
+ {0xad35, 0xad4f, HB_Grapheme_LVT},
+ {0xad50, 0xad50, HB_Grapheme_LV},
+ {0xad51, 0xad6b, HB_Grapheme_LVT},
+ {0xad6c, 0xad6c, HB_Grapheme_LV},
+ {0xad6d, 0xad87, HB_Grapheme_LVT},
+ {0xad88, 0xad88, HB_Grapheme_LV},
+ {0xad89, 0xada3, HB_Grapheme_LVT},
+ {0xada4, 0xada4, HB_Grapheme_LV},
+ {0xada5, 0xadbf, HB_Grapheme_LVT},
+ {0xadc0, 0xadc0, HB_Grapheme_LV},
+ {0xadc1, 0xaddb, HB_Grapheme_LVT},
+ {0xaddc, 0xaddc, HB_Grapheme_LV},
+ {0xaddd, 0xadf7, HB_Grapheme_LVT},
+ {0xadf8, 0xadf8, HB_Grapheme_LV},
+ {0xadf9, 0xae13, HB_Grapheme_LVT},
+ {0xae14, 0xae14, HB_Grapheme_LV},
+ {0xae15, 0xae2f, HB_Grapheme_LVT},
+ {0xae30, 0xae30, HB_Grapheme_LV},
+ {0xae31, 0xae4b, HB_Grapheme_LVT},
+ {0xae4c, 0xae4c, HB_Grapheme_LV},
+ {0xae4d, 0xae67, HB_Grapheme_LVT},
+ {0xae68, 0xae68, HB_Grapheme_LV},
+ {0xae69, 0xae83, HB_Grapheme_LVT},
+ {0xae84, 0xae84, HB_Grapheme_LV},
+ {0xae85, 0xae9f, HB_Grapheme_LVT},
+ {0xaea0, 0xaea0, HB_Grapheme_LV},
+ {0xaea1, 0xaebb, HB_Grapheme_LVT},
+ {0xaebc, 0xaebc, HB_Grapheme_LV},
+ {0xaebd, 0xaed7, HB_Grapheme_LVT},
+ {0xaed8, 0xaed8, HB_Grapheme_LV},
+ {0xaed9, 0xaef3, HB_Grapheme_LVT},
+ {0xaef4, 0xaef4, HB_Grapheme_LV},
+ {0xaef5, 0xaf0f, HB_Grapheme_LVT},
+ {0xaf10, 0xaf10, HB_Grapheme_LV},
+ {0xaf11, 0xaf2b, HB_Grapheme_LVT},
+ {0xaf2c, 0xaf2c, HB_Grapheme_LV},
+ {0xaf2d, 0xaf47, HB_Grapheme_LVT},
+ {0xaf48, 0xaf48, HB_Grapheme_LV},
+ {0xaf49, 0xaf63, HB_Grapheme_LVT},
+ {0xaf64, 0xaf64, HB_Grapheme_LV},
+ {0xaf65, 0xaf7f, HB_Grapheme_LVT},
+ {0xaf80, 0xaf80, HB_Grapheme_LV},
+ {0xaf81, 0xaf9b, HB_Grapheme_LVT},
+ {0xaf9c, 0xaf9c, HB_Grapheme_LV},
+ {0xaf9d, 0xafb7, HB_Grapheme_LVT},
+ {0xafb8, 0xafb8, HB_Grapheme_LV},
+ {0xafb9, 0xafd3, HB_Grapheme_LVT},
+ {0xafd4, 0xafd4, HB_Grapheme_LV},
+ {0xafd5, 0xafef, HB_Grapheme_LVT},
+ {0xaff0, 0xaff0, HB_Grapheme_LV},
+ {0xaff1, 0xb00b, HB_Grapheme_LVT},
+ {0xb00c, 0xb00c, HB_Grapheme_LV},
+ {0xb00d, 0xb027, HB_Grapheme_LVT},
+ {0xb028, 0xb028, HB_Grapheme_LV},
+ {0xb029, 0xb043, HB_Grapheme_LVT},
+ {0xb044, 0xb044, HB_Grapheme_LV},
+ {0xb045, 0xb05f, HB_Grapheme_LVT},
+ {0xb060, 0xb060, HB_Grapheme_LV},
+ {0xb061, 0xb07b, HB_Grapheme_LVT},
+ {0xb07c, 0xb07c, HB_Grapheme_LV},
+ {0xb07d, 0xb097, HB_Grapheme_LVT},
+ {0xb098, 0xb098, HB_Grapheme_LV},
+ {0xb099, 0xb0b3, HB_Grapheme_LVT},
+ {0xb0b4, 0xb0b4, HB_Grapheme_LV},
+ {0xb0b5, 0xb0cf, HB_Grapheme_LVT},
+ {0xb0d0, 0xb0d0, HB_Grapheme_LV},
+ {0xb0d1, 0xb0eb, HB_Grapheme_LVT},
+ {0xb0ec, 0xb0ec, HB_Grapheme_LV},
+ {0xb0ed, 0xb107, HB_Grapheme_LVT},
+ {0xb108, 0xb108, HB_Grapheme_LV},
+ {0xb109, 0xb123, HB_Grapheme_LVT},
+ {0xb124, 0xb124, HB_Grapheme_LV},
+ {0xb125, 0xb13f, HB_Grapheme_LVT},
+ {0xb140, 0xb140, HB_Grapheme_LV},
+ {0xb141, 0xb15b, HB_Grapheme_LVT},
+ {0xb15c, 0xb15c, HB_Grapheme_LV},
+ {0xb15d, 0xb177, HB_Grapheme_LVT},
+ {0xb178, 0xb178, HB_Grapheme_LV},
+ {0xb179, 0xb193, HB_Grapheme_LVT},
+ {0xb194, 0xb194, HB_Grapheme_LV},
+ {0xb195, 0xb1af, HB_Grapheme_LVT},
+ {0xb1b0, 0xb1b0, HB_Grapheme_LV},
+ {0xb1b1, 0xb1cb, HB_Grapheme_LVT},
+ {0xb1cc, 0xb1cc, HB_Grapheme_LV},
+ {0xb1cd, 0xb1e7, HB_Grapheme_LVT},
+ {0xb1e8, 0xb1e8, HB_Grapheme_LV},
+ {0xb1e9, 0xb203, HB_Grapheme_LVT},
+ {0xb204, 0xb204, HB_Grapheme_LV},
+ {0xb205, 0xb21f, HB_Grapheme_LVT},
+ {0xb220, 0xb220, HB_Grapheme_LV},
+ {0xb221, 0xb23b, HB_Grapheme_LVT},
+ {0xb23c, 0xb23c, HB_Grapheme_LV},
+ {0xb23d, 0xb257, HB_Grapheme_LVT},
+ {0xb258, 0xb258, HB_Grapheme_LV},
+ {0xb259, 0xb273, HB_Grapheme_LVT},
+ {0xb274, 0xb274, HB_Grapheme_LV},
+ {0xb275, 0xb28f, HB_Grapheme_LVT},
+ {0xb290, 0xb290, HB_Grapheme_LV},
+ {0xb291, 0xb2ab, HB_Grapheme_LVT},
+ {0xb2ac, 0xb2ac, HB_Grapheme_LV},
+ {0xb2ad, 0xb2c7, HB_Grapheme_LVT},
+ {0xb2c8, 0xb2c8, HB_Grapheme_LV},
+ {0xb2c9, 0xb2e3, HB_Grapheme_LVT},
+ {0xb2e4, 0xb2e4, HB_Grapheme_LV},
+ {0xb2e5, 0xb2ff, HB_Grapheme_LVT},
+ {0xb300, 0xb300, HB_Grapheme_LV},
+ {0xb301, 0xb31b, HB_Grapheme_LVT},
+ {0xb31c, 0xb31c, HB_Grapheme_LV},
+ {0xb31d, 0xb337, HB_Grapheme_LVT},
+ {0xb338, 0xb338, HB_Grapheme_LV},
+ {0xb339, 0xb353, HB_Grapheme_LVT},
+ {0xb354, 0xb354, HB_Grapheme_LV},
+ {0xb355, 0xb36f, HB_Grapheme_LVT},
+ {0xb370, 0xb370, HB_Grapheme_LV},
+ {0xb371, 0xb38b, HB_Grapheme_LVT},
+ {0xb38c, 0xb38c, HB_Grapheme_LV},
+ {0xb38d, 0xb3a7, HB_Grapheme_LVT},
+ {0xb3a8, 0xb3a8, HB_Grapheme_LV},
+ {0xb3a9, 0xb3c3, HB_Grapheme_LVT},
+ {0xb3c4, 0xb3c4, HB_Grapheme_LV},
+ {0xb3c5, 0xb3df, HB_Grapheme_LVT},
+ {0xb3e0, 0xb3e0, HB_Grapheme_LV},
+ {0xb3e1, 0xb3fb, HB_Grapheme_LVT},
+ {0xb3fc, 0xb3fc, HB_Grapheme_LV},
+ {0xb3fd, 0xb417, HB_Grapheme_LVT},
+ {0xb418, 0xb418, HB_Grapheme_LV},
+ {0xb419, 0xb433, HB_Grapheme_LVT},
+ {0xb434, 0xb434, HB_Grapheme_LV},
+ {0xb435, 0xb44f, HB_Grapheme_LVT},
+ {0xb450, 0xb450, HB_Grapheme_LV},
+ {0xb451, 0xb46b, HB_Grapheme_LVT},
+ {0xb46c, 0xb46c, HB_Grapheme_LV},
+ {0xb46d, 0xb487, HB_Grapheme_LVT},
+ {0xb488, 0xb488, HB_Grapheme_LV},
+ {0xb489, 0xb4a3, HB_Grapheme_LVT},
+ {0xb4a4, 0xb4a4, HB_Grapheme_LV},
+ {0xb4a5, 0xb4bf, HB_Grapheme_LVT},
+ {0xb4c0, 0xb4c0, HB_Grapheme_LV},
+ {0xb4c1, 0xb4db, HB_Grapheme_LVT},
+ {0xb4dc, 0xb4dc, HB_Grapheme_LV},
+ {0xb4dd, 0xb4f7, HB_Grapheme_LVT},
+ {0xb4f8, 0xb4f8, HB_Grapheme_LV},
+ {0xb4f9, 0xb513, HB_Grapheme_LVT},
+ {0xb514, 0xb514, HB_Grapheme_LV},
+ {0xb515, 0xb52f, HB_Grapheme_LVT},
+ {0xb530, 0xb530, HB_Grapheme_LV},
+ {0xb531, 0xb54b, HB_Grapheme_LVT},
+ {0xb54c, 0xb54c, HB_Grapheme_LV},
+ {0xb54d, 0xb567, HB_Grapheme_LVT},
+ {0xb568, 0xb568, HB_Grapheme_LV},
+ {0xb569, 0xb583, HB_Grapheme_LVT},
+ {0xb584, 0xb584, HB_Grapheme_LV},
+ {0xb585, 0xb59f, HB_Grapheme_LVT},
+ {0xb5a0, 0xb5a0, HB_Grapheme_LV},
+ {0xb5a1, 0xb5bb, HB_Grapheme_LVT},
+ {0xb5bc, 0xb5bc, HB_Grapheme_LV},
+ {0xb5bd, 0xb5d7, HB_Grapheme_LVT},
+ {0xb5d8, 0xb5d8, HB_Grapheme_LV},
+ {0xb5d9, 0xb5f3, HB_Grapheme_LVT},
+ {0xb5f4, 0xb5f4, HB_Grapheme_LV},
+ {0xb5f5, 0xb60f, HB_Grapheme_LVT},
+ {0xb610, 0xb610, HB_Grapheme_LV},
+ {0xb611, 0xb62b, HB_Grapheme_LVT},
+ {0xb62c, 0xb62c, HB_Grapheme_LV},
+ {0xb62d, 0xb647, HB_Grapheme_LVT},
+ {0xb648, 0xb648, HB_Grapheme_LV},
+ {0xb649, 0xb663, HB_Grapheme_LVT},
+ {0xb664, 0xb664, HB_Grapheme_LV},
+ {0xb665, 0xb67f, HB_Grapheme_LVT},
+ {0xb680, 0xb680, HB_Grapheme_LV},
+ {0xb681, 0xb69b, HB_Grapheme_LVT},
+ {0xb69c, 0xb69c, HB_Grapheme_LV},
+ {0xb69d, 0xb6b7, HB_Grapheme_LVT},
+ {0xb6b8, 0xb6b8, HB_Grapheme_LV},
+ {0xb6b9, 0xb6d3, HB_Grapheme_LVT},
+ {0xb6d4, 0xb6d4, HB_Grapheme_LV},
+ {0xb6d5, 0xb6ef, HB_Grapheme_LVT},
+ {0xb6f0, 0xb6f0, HB_Grapheme_LV},
+ {0xb6f1, 0xb70b, HB_Grapheme_LVT},
+ {0xb70c, 0xb70c, HB_Grapheme_LV},
+ {0xb70d, 0xb727, HB_Grapheme_LVT},
+ {0xb728, 0xb728, HB_Grapheme_LV},
+ {0xb729, 0xb743, HB_Grapheme_LVT},
+ {0xb744, 0xb744, HB_Grapheme_LV},
+ {0xb745, 0xb75f, HB_Grapheme_LVT},
+ {0xb760, 0xb760, HB_Grapheme_LV},
+ {0xb761, 0xb77b, HB_Grapheme_LVT},
+ {0xb77c, 0xb77c, HB_Grapheme_LV},
+ {0xb77d, 0xb797, HB_Grapheme_LVT},
+ {0xb798, 0xb798, HB_Grapheme_LV},
+ {0xb799, 0xb7b3, HB_Grapheme_LVT},
+ {0xb7b4, 0xb7b4, HB_Grapheme_LV},
+ {0xb7b5, 0xb7cf, HB_Grapheme_LVT},
+ {0xb7d0, 0xb7d0, HB_Grapheme_LV},
+ {0xb7d1, 0xb7eb, HB_Grapheme_LVT},
+ {0xb7ec, 0xb7ec, HB_Grapheme_LV},
+ {0xb7ed, 0xb807, HB_Grapheme_LVT},
+ {0xb808, 0xb808, HB_Grapheme_LV},
+ {0xb809, 0xb823, HB_Grapheme_LVT},
+ {0xb824, 0xb824, HB_Grapheme_LV},
+ {0xb825, 0xb83f, HB_Grapheme_LVT},
+ {0xb840, 0xb840, HB_Grapheme_LV},
+ {0xb841, 0xb85b, HB_Grapheme_LVT},
+ {0xb85c, 0xb85c, HB_Grapheme_LV},
+ {0xb85d, 0xb877, HB_Grapheme_LVT},
+ {0xb878, 0xb878, HB_Grapheme_LV},
+ {0xb879, 0xb893, HB_Grapheme_LVT},
+ {0xb894, 0xb894, HB_Grapheme_LV},
+ {0xb895, 0xb8af, HB_Grapheme_LVT},
+ {0xb8b0, 0xb8b0, HB_Grapheme_LV},
+ {0xb8b1, 0xb8cb, HB_Grapheme_LVT},
+ {0xb8cc, 0xb8cc, HB_Grapheme_LV},
+ {0xb8cd, 0xb8e7, HB_Grapheme_LVT},
+ {0xb8e8, 0xb8e8, HB_Grapheme_LV},
+ {0xb8e9, 0xb903, HB_Grapheme_LVT},
+ {0xb904, 0xb904, HB_Grapheme_LV},
+ {0xb905, 0xb91f, HB_Grapheme_LVT},
+ {0xb920, 0xb920, HB_Grapheme_LV},
+ {0xb921, 0xb93b, HB_Grapheme_LVT},
+ {0xb93c, 0xb93c, HB_Grapheme_LV},
+ {0xb93d, 0xb957, HB_Grapheme_LVT},
+ {0xb958, 0xb958, HB_Grapheme_LV},
+ {0xb959, 0xb973, HB_Grapheme_LVT},
+ {0xb974, 0xb974, HB_Grapheme_LV},
+ {0xb975, 0xb98f, HB_Grapheme_LVT},
+ {0xb990, 0xb990, HB_Grapheme_LV},
+ {0xb991, 0xb9ab, HB_Grapheme_LVT},
+ {0xb9ac, 0xb9ac, HB_Grapheme_LV},
+ {0xb9ad, 0xb9c7, HB_Grapheme_LVT},
+ {0xb9c8, 0xb9c8, HB_Grapheme_LV},
+ {0xb9c9, 0xb9e3, HB_Grapheme_LVT},
+ {0xb9e4, 0xb9e4, HB_Grapheme_LV},
+ {0xb9e5, 0xb9ff, HB_Grapheme_LVT},
+ {0xba00, 0xba00, HB_Grapheme_LV},
+ {0xba01, 0xba1b, HB_Grapheme_LVT},
+ {0xba1c, 0xba1c, HB_Grapheme_LV},
+ {0xba1d, 0xba37, HB_Grapheme_LVT},
+ {0xba38, 0xba38, HB_Grapheme_LV},
+ {0xba39, 0xba53, HB_Grapheme_LVT},
+ {0xba54, 0xba54, HB_Grapheme_LV},
+ {0xba55, 0xba6f, HB_Grapheme_LVT},
+ {0xba70, 0xba70, HB_Grapheme_LV},
+ {0xba71, 0xba8b, HB_Grapheme_LVT},
+ {0xba8c, 0xba8c, HB_Grapheme_LV},
+ {0xba8d, 0xbaa7, HB_Grapheme_LVT},
+ {0xbaa8, 0xbaa8, HB_Grapheme_LV},
+ {0xbaa9, 0xbac3, HB_Grapheme_LVT},
+ {0xbac4, 0xbac4, HB_Grapheme_LV},
+ {0xbac5, 0xbadf, HB_Grapheme_LVT},
+ {0xbae0, 0xbae0, HB_Grapheme_LV},
+ {0xbae1, 0xbafb, HB_Grapheme_LVT},
+ {0xbafc, 0xbafc, HB_Grapheme_LV},
+ {0xbafd, 0xbb17, HB_Grapheme_LVT},
+ {0xbb18, 0xbb18, HB_Grapheme_LV},
+ {0xbb19, 0xbb33, HB_Grapheme_LVT},
+ {0xbb34, 0xbb34, HB_Grapheme_LV},
+ {0xbb35, 0xbb4f, HB_Grapheme_LVT},
+ {0xbb50, 0xbb50, HB_Grapheme_LV},
+ {0xbb51, 0xbb6b, HB_Grapheme_LVT},
+ {0xbb6c, 0xbb6c, HB_Grapheme_LV},
+ {0xbb6d, 0xbb87, HB_Grapheme_LVT},
+ {0xbb88, 0xbb88, HB_Grapheme_LV},
+ {0xbb89, 0xbba3, HB_Grapheme_LVT},
+ {0xbba4, 0xbba4, HB_Grapheme_LV},
+ {0xbba5, 0xbbbf, HB_Grapheme_LVT},
+ {0xbbc0, 0xbbc0, HB_Grapheme_LV},
+ {0xbbc1, 0xbbdb, HB_Grapheme_LVT},
+ {0xbbdc, 0xbbdc, HB_Grapheme_LV},
+ {0xbbdd, 0xbbf7, HB_Grapheme_LVT},
+ {0xbbf8, 0xbbf8, HB_Grapheme_LV},
+ {0xbbf9, 0xbc13, HB_Grapheme_LVT},
+ {0xbc14, 0xbc14, HB_Grapheme_LV},
+ {0xbc15, 0xbc2f, HB_Grapheme_LVT},
+ {0xbc30, 0xbc30, HB_Grapheme_LV},
+ {0xbc31, 0xbc4b, HB_Grapheme_LVT},
+ {0xbc4c, 0xbc4c, HB_Grapheme_LV},
+ {0xbc4d, 0xbc67, HB_Grapheme_LVT},
+ {0xbc68, 0xbc68, HB_Grapheme_LV},
+ {0xbc69, 0xbc83, HB_Grapheme_LVT},
+ {0xbc84, 0xbc84, HB_Grapheme_LV},
+ {0xbc85, 0xbc9f, HB_Grapheme_LVT},
+ {0xbca0, 0xbca0, HB_Grapheme_LV},
+ {0xbca1, 0xbcbb, HB_Grapheme_LVT},
+ {0xbcbc, 0xbcbc, HB_Grapheme_LV},
+ {0xbcbd, 0xbcd7, HB_Grapheme_LVT},
+ {0xbcd8, 0xbcd8, HB_Grapheme_LV},
+ {0xbcd9, 0xbcf3, HB_Grapheme_LVT},
+ {0xbcf4, 0xbcf4, HB_Grapheme_LV},
+ {0xbcf5, 0xbd0f, HB_Grapheme_LVT},
+ {0xbd10, 0xbd10, HB_Grapheme_LV},
+ {0xbd11, 0xbd2b, HB_Grapheme_LVT},
+ {0xbd2c, 0xbd2c, HB_Grapheme_LV},
+ {0xbd2d, 0xbd47, HB_Grapheme_LVT},
+ {0xbd48, 0xbd48, HB_Grapheme_LV},
+ {0xbd49, 0xbd63, HB_Grapheme_LVT},
+ {0xbd64, 0xbd64, HB_Grapheme_LV},
+ {0xbd65, 0xbd7f, HB_Grapheme_LVT},
+ {0xbd80, 0xbd80, HB_Grapheme_LV},
+ {0xbd81, 0xbd9b, HB_Grapheme_LVT},
+ {0xbd9c, 0xbd9c, HB_Grapheme_LV},
+ {0xbd9d, 0xbdb7, HB_Grapheme_LVT},
+ {0xbdb8, 0xbdb8, HB_Grapheme_LV},
+ {0xbdb9, 0xbdd3, HB_Grapheme_LVT},
+ {0xbdd4, 0xbdd4, HB_Grapheme_LV},
+ {0xbdd5, 0xbdef, HB_Grapheme_LVT},
+ {0xbdf0, 0xbdf0, HB_Grapheme_LV},
+ {0xbdf1, 0xbe0b, HB_Grapheme_LVT},
+ {0xbe0c, 0xbe0c, HB_Grapheme_LV},
+ {0xbe0d, 0xbe27, HB_Grapheme_LVT},
+ {0xbe28, 0xbe28, HB_Grapheme_LV},
+ {0xbe29, 0xbe43, HB_Grapheme_LVT},
+ {0xbe44, 0xbe44, HB_Grapheme_LV},
+ {0xbe45, 0xbe5f, HB_Grapheme_LVT},
+ {0xbe60, 0xbe60, HB_Grapheme_LV},
+ {0xbe61, 0xbe7b, HB_Grapheme_LVT},
+ {0xbe7c, 0xbe7c, HB_Grapheme_LV},
+ {0xbe7d, 0xbe97, HB_Grapheme_LVT},
+ {0xbe98, 0xbe98, HB_Grapheme_LV},
+ {0xbe99, 0xbeb3, HB_Grapheme_LVT},
+ {0xbeb4, 0xbeb4, HB_Grapheme_LV},
+ {0xbeb5, 0xbecf, HB_Grapheme_LVT},
+ {0xbed0, 0xbed0, HB_Grapheme_LV},
+ {0xbed1, 0xbeeb, HB_Grapheme_LVT},
+ {0xbeec, 0xbeec, HB_Grapheme_LV},
+ {0xbeed, 0xbf07, HB_Grapheme_LVT},
+ {0xbf08, 0xbf08, HB_Grapheme_LV},
+ {0xbf09, 0xbf23, HB_Grapheme_LVT},
+ {0xbf24, 0xbf24, HB_Grapheme_LV},
+ {0xbf25, 0xbf3f, HB_Grapheme_LVT},
+ {0xbf40, 0xbf40, HB_Grapheme_LV},
+ {0xbf41, 0xbf5b, HB_Grapheme_LVT},
+ {0xbf5c, 0xbf5c, HB_Grapheme_LV},
+ {0xbf5d, 0xbf77, HB_Grapheme_LVT},
+ {0xbf78, 0xbf78, HB_Grapheme_LV},
+ {0xbf79, 0xbf93, HB_Grapheme_LVT},
+ {0xbf94, 0xbf94, HB_Grapheme_LV},
+ {0xbf95, 0xbfaf, HB_Grapheme_LVT},
+ {0xbfb0, 0xbfb0, HB_Grapheme_LV},
+ {0xbfb1, 0xbfcb, HB_Grapheme_LVT},
+ {0xbfcc, 0xbfcc, HB_Grapheme_LV},
+ {0xbfcd, 0xbfe7, HB_Grapheme_LVT},
+ {0xbfe8, 0xbfe8, HB_Grapheme_LV},
+ {0xbfe9, 0xc003, HB_Grapheme_LVT},
+ {0xc004, 0xc004, HB_Grapheme_LV},
+ {0xc005, 0xc01f, HB_Grapheme_LVT},
+ {0xc020, 0xc020, HB_Grapheme_LV},
+ {0xc021, 0xc03b, HB_Grapheme_LVT},
+ {0xc03c, 0xc03c, HB_Grapheme_LV},
+ {0xc03d, 0xc057, HB_Grapheme_LVT},
+ {0xc058, 0xc058, HB_Grapheme_LV},
+ {0xc059, 0xc073, HB_Grapheme_LVT},
+ {0xc074, 0xc074, HB_Grapheme_LV},
+ {0xc075, 0xc08f, HB_Grapheme_LVT},
+ {0xc090, 0xc090, HB_Grapheme_LV},
+ {0xc091, 0xc0ab, HB_Grapheme_LVT},
+ {0xc0ac, 0xc0ac, HB_Grapheme_LV},
+ {0xc0ad, 0xc0c7, HB_Grapheme_LVT},
+ {0xc0c8, 0xc0c8, HB_Grapheme_LV},
+ {0xc0c9, 0xc0e3, HB_Grapheme_LVT},
+ {0xc0e4, 0xc0e4, HB_Grapheme_LV},
+ {0xc0e5, 0xc0ff, HB_Grapheme_LVT},
+ {0xc100, 0xc100, HB_Grapheme_LV},
+ {0xc101, 0xc11b, HB_Grapheme_LVT},
+ {0xc11c, 0xc11c, HB_Grapheme_LV},
+ {0xc11d, 0xc137, HB_Grapheme_LVT},
+ {0xc138, 0xc138, HB_Grapheme_LV},
+ {0xc139, 0xc153, HB_Grapheme_LVT},
+ {0xc154, 0xc154, HB_Grapheme_LV},
+ {0xc155, 0xc16f, HB_Grapheme_LVT},
+ {0xc170, 0xc170, HB_Grapheme_LV},
+ {0xc171, 0xc18b, HB_Grapheme_LVT},
+ {0xc18c, 0xc18c, HB_Grapheme_LV},
+ {0xc18d, 0xc1a7, HB_Grapheme_LVT},
+ {0xc1a8, 0xc1a8, HB_Grapheme_LV},
+ {0xc1a9, 0xc1c3, HB_Grapheme_LVT},
+ {0xc1c4, 0xc1c4, HB_Grapheme_LV},
+ {0xc1c5, 0xc1df, HB_Grapheme_LVT},
+ {0xc1e0, 0xc1e0, HB_Grapheme_LV},
+ {0xc1e1, 0xc1fb, HB_Grapheme_LVT},
+ {0xc1fc, 0xc1fc, HB_Grapheme_LV},
+ {0xc1fd, 0xc217, HB_Grapheme_LVT},
+ {0xc218, 0xc218, HB_Grapheme_LV},
+ {0xc219, 0xc233, HB_Grapheme_LVT},
+ {0xc234, 0xc234, HB_Grapheme_LV},
+ {0xc235, 0xc24f, HB_Grapheme_LVT},
+ {0xc250, 0xc250, HB_Grapheme_LV},
+ {0xc251, 0xc26b, HB_Grapheme_LVT},
+ {0xc26c, 0xc26c, HB_Grapheme_LV},
+ {0xc26d, 0xc287, HB_Grapheme_LVT},
+ {0xc288, 0xc288, HB_Grapheme_LV},
+ {0xc289, 0xc2a3, HB_Grapheme_LVT},
+ {0xc2a4, 0xc2a4, HB_Grapheme_LV},
+ {0xc2a5, 0xc2bf, HB_Grapheme_LVT},
+ {0xc2c0, 0xc2c0, HB_Grapheme_LV},
+ {0xc2c1, 0xc2db, HB_Grapheme_LVT},
+ {0xc2dc, 0xc2dc, HB_Grapheme_LV},
+ {0xc2dd, 0xc2f7, HB_Grapheme_LVT},
+ {0xc2f8, 0xc2f8, HB_Grapheme_LV},
+ {0xc2f9, 0xc313, HB_Grapheme_LVT},
+ {0xc314, 0xc314, HB_Grapheme_LV},
+ {0xc315, 0xc32f, HB_Grapheme_LVT},
+ {0xc330, 0xc330, HB_Grapheme_LV},
+ {0xc331, 0xc34b, HB_Grapheme_LVT},
+ {0xc34c, 0xc34c, HB_Grapheme_LV},
+ {0xc34d, 0xc367, HB_Grapheme_LVT},
+ {0xc368, 0xc368, HB_Grapheme_LV},
+ {0xc369, 0xc383, HB_Grapheme_LVT},
+ {0xc384, 0xc384, HB_Grapheme_LV},
+ {0xc385, 0xc39f, HB_Grapheme_LVT},
+ {0xc3a0, 0xc3a0, HB_Grapheme_LV},
+ {0xc3a1, 0xc3bb, HB_Grapheme_LVT},
+ {0xc3bc, 0xc3bc, HB_Grapheme_LV},
+ {0xc3bd, 0xc3d7, HB_Grapheme_LVT},
+ {0xc3d8, 0xc3d8, HB_Grapheme_LV},
+ {0xc3d9, 0xc3f3, HB_Grapheme_LVT},
+ {0xc3f4, 0xc3f4, HB_Grapheme_LV},
+ {0xc3f5, 0xc40f, HB_Grapheme_LVT},
+ {0xc410, 0xc410, HB_Grapheme_LV},
+ {0xc411, 0xc42b, HB_Grapheme_LVT},
+ {0xc42c, 0xc42c, HB_Grapheme_LV},
+ {0xc42d, 0xc447, HB_Grapheme_LVT},
+ {0xc448, 0xc448, HB_Grapheme_LV},
+ {0xc449, 0xc463, HB_Grapheme_LVT},
+ {0xc464, 0xc464, HB_Grapheme_LV},
+ {0xc465, 0xc47f, HB_Grapheme_LVT},
+ {0xc480, 0xc480, HB_Grapheme_LV},
+ {0xc481, 0xc49b, HB_Grapheme_LVT},
+ {0xc49c, 0xc49c, HB_Grapheme_LV},
+ {0xc49d, 0xc4b7, HB_Grapheme_LVT},
+ {0xc4b8, 0xc4b8, HB_Grapheme_LV},
+ {0xc4b9, 0xc4d3, HB_Grapheme_LVT},
+ {0xc4d4, 0xc4d4, HB_Grapheme_LV},
+ {0xc4d5, 0xc4ef, HB_Grapheme_LVT},
+ {0xc4f0, 0xc4f0, HB_Grapheme_LV},
+ {0xc4f1, 0xc50b, HB_Grapheme_LVT},
+ {0xc50c, 0xc50c, HB_Grapheme_LV},
+ {0xc50d, 0xc527, HB_Grapheme_LVT},
+ {0xc528, 0xc528, HB_Grapheme_LV},
+ {0xc529, 0xc543, HB_Grapheme_LVT},
+ {0xc544, 0xc544, HB_Grapheme_LV},
+ {0xc545, 0xc55f, HB_Grapheme_LVT},
+ {0xc560, 0xc560, HB_Grapheme_LV},
+ {0xc561, 0xc57b, HB_Grapheme_LVT},
+ {0xc57c, 0xc57c, HB_Grapheme_LV},
+ {0xc57d, 0xc597, HB_Grapheme_LVT},
+ {0xc598, 0xc598, HB_Grapheme_LV},
+ {0xc599, 0xc5b3, HB_Grapheme_LVT},
+ {0xc5b4, 0xc5b4, HB_Grapheme_LV},
+ {0xc5b5, 0xc5cf, HB_Grapheme_LVT},
+ {0xc5d0, 0xc5d0, HB_Grapheme_LV},
+ {0xc5d1, 0xc5eb, HB_Grapheme_LVT},
+ {0xc5ec, 0xc5ec, HB_Grapheme_LV},
+ {0xc5ed, 0xc607, HB_Grapheme_LVT},
+ {0xc608, 0xc608, HB_Grapheme_LV},
+ {0xc609, 0xc623, HB_Grapheme_LVT},
+ {0xc624, 0xc624, HB_Grapheme_LV},
+ {0xc625, 0xc63f, HB_Grapheme_LVT},
+ {0xc640, 0xc640, HB_Grapheme_LV},
+ {0xc641, 0xc65b, HB_Grapheme_LVT},
+ {0xc65c, 0xc65c, HB_Grapheme_LV},
+ {0xc65d, 0xc677, HB_Grapheme_LVT},
+ {0xc678, 0xc678, HB_Grapheme_LV},
+ {0xc679, 0xc693, HB_Grapheme_LVT},
+ {0xc694, 0xc694, HB_Grapheme_LV},
+ {0xc695, 0xc6af, HB_Grapheme_LVT},
+ {0xc6b0, 0xc6b0, HB_Grapheme_LV},
+ {0xc6b1, 0xc6cb, HB_Grapheme_LVT},
+ {0xc6cc, 0xc6cc, HB_Grapheme_LV},
+ {0xc6cd, 0xc6e7, HB_Grapheme_LVT},
+ {0xc6e8, 0xc6e8, HB_Grapheme_LV},
+ {0xc6e9, 0xc703, HB_Grapheme_LVT},
+ {0xc704, 0xc704, HB_Grapheme_LV},
+ {0xc705, 0xc71f, HB_Grapheme_LVT},
+ {0xc720, 0xc720, HB_Grapheme_LV},
+ {0xc721, 0xc73b, HB_Grapheme_LVT},
+ {0xc73c, 0xc73c, HB_Grapheme_LV},
+ {0xc73d, 0xc757, HB_Grapheme_LVT},
+ {0xc758, 0xc758, HB_Grapheme_LV},
+ {0xc759, 0xc773, HB_Grapheme_LVT},
+ {0xc774, 0xc774, HB_Grapheme_LV},
+ {0xc775, 0xc78f, HB_Grapheme_LVT},
+ {0xc790, 0xc790, HB_Grapheme_LV},
+ {0xc791, 0xc7ab, HB_Grapheme_LVT},
+ {0xc7ac, 0xc7ac, HB_Grapheme_LV},
+ {0xc7ad, 0xc7c7, HB_Grapheme_LVT},
+ {0xc7c8, 0xc7c8, HB_Grapheme_LV},
+ {0xc7c9, 0xc7e3, HB_Grapheme_LVT},
+ {0xc7e4, 0xc7e4, HB_Grapheme_LV},
+ {0xc7e5, 0xc7ff, HB_Grapheme_LVT},
+ {0xc800, 0xc800, HB_Grapheme_LV},
+ {0xc801, 0xc81b, HB_Grapheme_LVT},
+ {0xc81c, 0xc81c, HB_Grapheme_LV},
+ {0xc81d, 0xc837, HB_Grapheme_LVT},
+ {0xc838, 0xc838, HB_Grapheme_LV},
+ {0xc839, 0xc853, HB_Grapheme_LVT},
+ {0xc854, 0xc854, HB_Grapheme_LV},
+ {0xc855, 0xc86f, HB_Grapheme_LVT},
+ {0xc870, 0xc870, HB_Grapheme_LV},
+ {0xc871, 0xc88b, HB_Grapheme_LVT},
+ {0xc88c, 0xc88c, HB_Grapheme_LV},
+ {0xc88d, 0xc8a7, HB_Grapheme_LVT},
+ {0xc8a8, 0xc8a8, HB_Grapheme_LV},
+ {0xc8a9, 0xc8c3, HB_Grapheme_LVT},
+ {0xc8c4, 0xc8c4, HB_Grapheme_LV},
+ {0xc8c5, 0xc8df, HB_Grapheme_LVT},
+ {0xc8e0, 0xc8e0, HB_Grapheme_LV},
+ {0xc8e1, 0xc8fb, HB_Grapheme_LVT},
+ {0xc8fc, 0xc8fc, HB_Grapheme_LV},
+ {0xc8fd, 0xc917, HB_Grapheme_LVT},
+ {0xc918, 0xc918, HB_Grapheme_LV},
+ {0xc919, 0xc933, HB_Grapheme_LVT},
+ {0xc934, 0xc934, HB_Grapheme_LV},
+ {0xc935, 0xc94f, HB_Grapheme_LVT},
+ {0xc950, 0xc950, HB_Grapheme_LV},
+ {0xc951, 0xc96b, HB_Grapheme_LVT},
+ {0xc96c, 0xc96c, HB_Grapheme_LV},
+ {0xc96d, 0xc987, HB_Grapheme_LVT},
+ {0xc988, 0xc988, HB_Grapheme_LV},
+ {0xc989, 0xc9a3, HB_Grapheme_LVT},
+ {0xc9a4, 0xc9a4, HB_Grapheme_LV},
+ {0xc9a5, 0xc9bf, HB_Grapheme_LVT},
+ {0xc9c0, 0xc9c0, HB_Grapheme_LV},
+ {0xc9c1, 0xc9db, HB_Grapheme_LVT},
+ {0xc9dc, 0xc9dc, HB_Grapheme_LV},
+ {0xc9dd, 0xc9f7, HB_Grapheme_LVT},
+ {0xc9f8, 0xc9f8, HB_Grapheme_LV},
+ {0xc9f9, 0xca13, HB_Grapheme_LVT},
+ {0xca14, 0xca14, HB_Grapheme_LV},
+ {0xca15, 0xca2f, HB_Grapheme_LVT},
+ {0xca30, 0xca30, HB_Grapheme_LV},
+ {0xca31, 0xca4b, HB_Grapheme_LVT},
+ {0xca4c, 0xca4c, HB_Grapheme_LV},
+ {0xca4d, 0xca67, HB_Grapheme_LVT},
+ {0xca68, 0xca68, HB_Grapheme_LV},
+ {0xca69, 0xca83, HB_Grapheme_LVT},
+ {0xca84, 0xca84, HB_Grapheme_LV},
+ {0xca85, 0xca9f, HB_Grapheme_LVT},
+ {0xcaa0, 0xcaa0, HB_Grapheme_LV},
+ {0xcaa1, 0xcabb, HB_Grapheme_LVT},
+ {0xcabc, 0xcabc, HB_Grapheme_LV},
+ {0xcabd, 0xcad7, HB_Grapheme_LVT},
+ {0xcad8, 0xcad8, HB_Grapheme_LV},
+ {0xcad9, 0xcaf3, HB_Grapheme_LVT},
+ {0xcaf4, 0xcaf4, HB_Grapheme_LV},
+ {0xcaf5, 0xcb0f, HB_Grapheme_LVT},
+ {0xcb10, 0xcb10, HB_Grapheme_LV},
+ {0xcb11, 0xcb2b, HB_Grapheme_LVT},
+ {0xcb2c, 0xcb2c, HB_Grapheme_LV},
+ {0xcb2d, 0xcb47, HB_Grapheme_LVT},
+ {0xcb48, 0xcb48, HB_Grapheme_LV},
+ {0xcb49, 0xcb63, HB_Grapheme_LVT},
+ {0xcb64, 0xcb64, HB_Grapheme_LV},
+ {0xcb65, 0xcb7f, HB_Grapheme_LVT},
+ {0xcb80, 0xcb80, HB_Grapheme_LV},
+ {0xcb81, 0xcb9b, HB_Grapheme_LVT},
+ {0xcb9c, 0xcb9c, HB_Grapheme_LV},
+ {0xcb9d, 0xcbb7, HB_Grapheme_LVT},
+ {0xcbb8, 0xcbb8, HB_Grapheme_LV},
+ {0xcbb9, 0xcbd3, HB_Grapheme_LVT},
+ {0xcbd4, 0xcbd4, HB_Grapheme_LV},
+ {0xcbd5, 0xcbef, HB_Grapheme_LVT},
+ {0xcbf0, 0xcbf0, HB_Grapheme_LV},
+ {0xcbf1, 0xcc0b, HB_Grapheme_LVT},
+ {0xcc0c, 0xcc0c, HB_Grapheme_LV},
+ {0xcc0d, 0xcc27, HB_Grapheme_LVT},
+ {0xcc28, 0xcc28, HB_Grapheme_LV},
+ {0xcc29, 0xcc43, HB_Grapheme_LVT},
+ {0xcc44, 0xcc44, HB_Grapheme_LV},
+ {0xcc45, 0xcc5f, HB_Grapheme_LVT},
+ {0xcc60, 0xcc60, HB_Grapheme_LV},
+ {0xcc61, 0xcc7b, HB_Grapheme_LVT},
+ {0xcc7c, 0xcc7c, HB_Grapheme_LV},
+ {0xcc7d, 0xcc97, HB_Grapheme_LVT},
+ {0xcc98, 0xcc98, HB_Grapheme_LV},
+ {0xcc99, 0xccb3, HB_Grapheme_LVT},
+ {0xccb4, 0xccb4, HB_Grapheme_LV},
+ {0xccb5, 0xcccf, HB_Grapheme_LVT},
+ {0xccd0, 0xccd0, HB_Grapheme_LV},
+ {0xccd1, 0xcceb, HB_Grapheme_LVT},
+ {0xccec, 0xccec, HB_Grapheme_LV},
+ {0xcced, 0xcd07, HB_Grapheme_LVT},
+ {0xcd08, 0xcd08, HB_Grapheme_LV},
+ {0xcd09, 0xcd23, HB_Grapheme_LVT},
+ {0xcd24, 0xcd24, HB_Grapheme_LV},
+ {0xcd25, 0xcd3f, HB_Grapheme_LVT},
+ {0xcd40, 0xcd40, HB_Grapheme_LV},
+ {0xcd41, 0xcd5b, HB_Grapheme_LVT},
+ {0xcd5c, 0xcd5c, HB_Grapheme_LV},
+ {0xcd5d, 0xcd77, HB_Grapheme_LVT},
+ {0xcd78, 0xcd78, HB_Grapheme_LV},
+ {0xcd79, 0xcd93, HB_Grapheme_LVT},
+ {0xcd94, 0xcd94, HB_Grapheme_LV},
+ {0xcd95, 0xcdaf, HB_Grapheme_LVT},
+ {0xcdb0, 0xcdb0, HB_Grapheme_LV},
+ {0xcdb1, 0xcdcb, HB_Grapheme_LVT},
+ {0xcdcc, 0xcdcc, HB_Grapheme_LV},
+ {0xcdcd, 0xcde7, HB_Grapheme_LVT},
+ {0xcde8, 0xcde8, HB_Grapheme_LV},
+ {0xcde9, 0xce03, HB_Grapheme_LVT},
+ {0xce04, 0xce04, HB_Grapheme_LV},
+ {0xce05, 0xce1f, HB_Grapheme_LVT},
+ {0xce20, 0xce20, HB_Grapheme_LV},
+ {0xce21, 0xce3b, HB_Grapheme_LVT},
+ {0xce3c, 0xce3c, HB_Grapheme_LV},
+ {0xce3d, 0xce57, HB_Grapheme_LVT},
+ {0xce58, 0xce58, HB_Grapheme_LV},
+ {0xce59, 0xce73, HB_Grapheme_LVT},
+ {0xce74, 0xce74, HB_Grapheme_LV},
+ {0xce75, 0xce8f, HB_Grapheme_LVT},
+ {0xce90, 0xce90, HB_Grapheme_LV},
+ {0xce91, 0xceab, HB_Grapheme_LVT},
+ {0xceac, 0xceac, HB_Grapheme_LV},
+ {0xcead, 0xcec7, HB_Grapheme_LVT},
+ {0xcec8, 0xcec8, HB_Grapheme_LV},
+ {0xcec9, 0xcee3, HB_Grapheme_LVT},
+ {0xcee4, 0xcee4, HB_Grapheme_LV},
+ {0xcee5, 0xceff, HB_Grapheme_LVT},
+ {0xcf00, 0xcf00, HB_Grapheme_LV},
+ {0xcf01, 0xcf1b, HB_Grapheme_LVT},
+ {0xcf1c, 0xcf1c, HB_Grapheme_LV},
+ {0xcf1d, 0xcf37, HB_Grapheme_LVT},
+ {0xcf38, 0xcf38, HB_Grapheme_LV},
+ {0xcf39, 0xcf53, HB_Grapheme_LVT},
+ {0xcf54, 0xcf54, HB_Grapheme_LV},
+ {0xcf55, 0xcf6f, HB_Grapheme_LVT},
+ {0xcf70, 0xcf70, HB_Grapheme_LV},
+ {0xcf71, 0xcf8b, HB_Grapheme_LVT},
+ {0xcf8c, 0xcf8c, HB_Grapheme_LV},
+ {0xcf8d, 0xcfa7, HB_Grapheme_LVT},
+ {0xcfa8, 0xcfa8, HB_Grapheme_LV},
+ {0xcfa9, 0xcfc3, HB_Grapheme_LVT},
+ {0xcfc4, 0xcfc4, HB_Grapheme_LV},
+ {0xcfc5, 0xcfdf, HB_Grapheme_LVT},
+ {0xcfe0, 0xcfe0, HB_Grapheme_LV},
+ {0xcfe1, 0xcffb, HB_Grapheme_LVT},
+ {0xcffc, 0xcffc, HB_Grapheme_LV},
+ {0xcffd, 0xd017, HB_Grapheme_LVT},
+ {0xd018, 0xd018, HB_Grapheme_LV},
+ {0xd019, 0xd033, HB_Grapheme_LVT},
+ {0xd034, 0xd034, HB_Grapheme_LV},
+ {0xd035, 0xd04f, HB_Grapheme_LVT},
+ {0xd050, 0xd050, HB_Grapheme_LV},
+ {0xd051, 0xd06b, HB_Grapheme_LVT},
+ {0xd06c, 0xd06c, HB_Grapheme_LV},
+ {0xd06d, 0xd087, HB_Grapheme_LVT},
+ {0xd088, 0xd088, HB_Grapheme_LV},
+ {0xd089, 0xd0a3, HB_Grapheme_LVT},
+ {0xd0a4, 0xd0a4, HB_Grapheme_LV},
+ {0xd0a5, 0xd0bf, HB_Grapheme_LVT},
+ {0xd0c0, 0xd0c0, HB_Grapheme_LV},
+ {0xd0c1, 0xd0db, HB_Grapheme_LVT},
+ {0xd0dc, 0xd0dc, HB_Grapheme_LV},
+ {0xd0dd, 0xd0f7, HB_Grapheme_LVT},
+ {0xd0f8, 0xd0f8, HB_Grapheme_LV},
+ {0xd0f9, 0xd113, HB_Grapheme_LVT},
+ {0xd114, 0xd114, HB_Grapheme_LV},
+ {0xd115, 0xd12f, HB_Grapheme_LVT},
+ {0xd130, 0xd130, HB_Grapheme_LV},
+ {0xd131, 0xd14b, HB_Grapheme_LVT},
+ {0xd14c, 0xd14c, HB_Grapheme_LV},
+ {0xd14d, 0xd167, HB_Grapheme_LVT},
+ {0xd168, 0xd168, HB_Grapheme_LV},
+ {0xd169, 0xd183, HB_Grapheme_LVT},
+ {0xd184, 0xd184, HB_Grapheme_LV},
+ {0xd185, 0xd19f, HB_Grapheme_LVT},
+ {0xd1a0, 0xd1a0, HB_Grapheme_LV},
+ {0xd1a1, 0xd1bb, HB_Grapheme_LVT},
+ {0xd1bc, 0xd1bc, HB_Grapheme_LV},
+ {0xd1bd, 0xd1d7, HB_Grapheme_LVT},
+ {0xd1d8, 0xd1d8, HB_Grapheme_LV},
+ {0xd1d9, 0xd1f3, HB_Grapheme_LVT},
+ {0xd1f4, 0xd1f4, HB_Grapheme_LV},
+ {0xd1f5, 0xd20f, HB_Grapheme_LVT},
+ {0xd210, 0xd210, HB_Grapheme_LV},
+ {0xd211, 0xd22b, HB_Grapheme_LVT},
+ {0xd22c, 0xd22c, HB_Grapheme_LV},
+ {0xd22d, 0xd247, HB_Grapheme_LVT},
+ {0xd248, 0xd248, HB_Grapheme_LV},
+ {0xd249, 0xd263, HB_Grapheme_LVT},
+ {0xd264, 0xd264, HB_Grapheme_LV},
+ {0xd265, 0xd27f, HB_Grapheme_LVT},
+ {0xd280, 0xd280, HB_Grapheme_LV},
+ {0xd281, 0xd29b, HB_Grapheme_LVT},
+ {0xd29c, 0xd29c, HB_Grapheme_LV},
+ {0xd29d, 0xd2b7, HB_Grapheme_LVT},
+ {0xd2b8, 0xd2b8, HB_Grapheme_LV},
+ {0xd2b9, 0xd2d3, HB_Grapheme_LVT},
+ {0xd2d4, 0xd2d4, HB_Grapheme_LV},
+ {0xd2d5, 0xd2ef, HB_Grapheme_LVT},
+ {0xd2f0, 0xd2f0, HB_Grapheme_LV},
+ {0xd2f1, 0xd30b, HB_Grapheme_LVT},
+ {0xd30c, 0xd30c, HB_Grapheme_LV},
+ {0xd30d, 0xd327, HB_Grapheme_LVT},
+ {0xd328, 0xd328, HB_Grapheme_LV},
+ {0xd329, 0xd343, HB_Grapheme_LVT},
+ {0xd344, 0xd344, HB_Grapheme_LV},
+ {0xd345, 0xd35f, HB_Grapheme_LVT},
+ {0xd360, 0xd360, HB_Grapheme_LV},
+ {0xd361, 0xd37b, HB_Grapheme_LVT},
+ {0xd37c, 0xd37c, HB_Grapheme_LV},
+ {0xd37d, 0xd397, HB_Grapheme_LVT},
+ {0xd398, 0xd398, HB_Grapheme_LV},
+ {0xd399, 0xd3b3, HB_Grapheme_LVT},
+ {0xd3b4, 0xd3b4, HB_Grapheme_LV},
+ {0xd3b5, 0xd3cf, HB_Grapheme_LVT},
+ {0xd3d0, 0xd3d0, HB_Grapheme_LV},
+ {0xd3d1, 0xd3eb, HB_Grapheme_LVT},
+ {0xd3ec, 0xd3ec, HB_Grapheme_LV},
+ {0xd3ed, 0xd407, HB_Grapheme_LVT},
+ {0xd408, 0xd408, HB_Grapheme_LV},
+ {0xd409, 0xd423, HB_Grapheme_LVT},
+ {0xd424, 0xd424, HB_Grapheme_LV},
+ {0xd425, 0xd43f, HB_Grapheme_LVT},
+ {0xd440, 0xd440, HB_Grapheme_LV},
+ {0xd441, 0xd45b, HB_Grapheme_LVT},
+ {0xd45c, 0xd45c, HB_Grapheme_LV},
+ {0xd45d, 0xd477, HB_Grapheme_LVT},
+ {0xd478, 0xd478, HB_Grapheme_LV},
+ {0xd479, 0xd493, HB_Grapheme_LVT},
+ {0xd494, 0xd494, HB_Grapheme_LV},
+ {0xd495, 0xd4af, HB_Grapheme_LVT},
+ {0xd4b0, 0xd4b0, HB_Grapheme_LV},
+ {0xd4b1, 0xd4cb, HB_Grapheme_LVT},
+ {0xd4cc, 0xd4cc, HB_Grapheme_LV},
+ {0xd4cd, 0xd4e7, HB_Grapheme_LVT},
+ {0xd4e8, 0xd4e8, HB_Grapheme_LV},
+ {0xd4e9, 0xd503, HB_Grapheme_LVT},
+ {0xd504, 0xd504, HB_Grapheme_LV},
+ {0xd505, 0xd51f, HB_Grapheme_LVT},
+ {0xd520, 0xd520, HB_Grapheme_LV},
+ {0xd521, 0xd53b, HB_Grapheme_LVT},
+ {0xd53c, 0xd53c, HB_Grapheme_LV},
+ {0xd53d, 0xd557, HB_Grapheme_LVT},
+ {0xd558, 0xd558, HB_Grapheme_LV},
+ {0xd559, 0xd573, HB_Grapheme_LVT},
+ {0xd574, 0xd574, HB_Grapheme_LV},
+ {0xd575, 0xd58f, HB_Grapheme_LVT},
+ {0xd590, 0xd590, HB_Grapheme_LV},
+ {0xd591, 0xd5ab, HB_Grapheme_LVT},
+ {0xd5ac, 0xd5ac, HB_Grapheme_LV},
+ {0xd5ad, 0xd5c7, HB_Grapheme_LVT},
+ {0xd5c8, 0xd5c8, HB_Grapheme_LV},
+ {0xd5c9, 0xd5e3, HB_Grapheme_LVT},
+ {0xd5e4, 0xd5e4, HB_Grapheme_LV},
+ {0xd5e5, 0xd5ff, HB_Grapheme_LVT},
+ {0xd600, 0xd600, HB_Grapheme_LV},
+ {0xd601, 0xd61b, HB_Grapheme_LVT},
+ {0xd61c, 0xd61c, HB_Grapheme_LV},
+ {0xd61d, 0xd637, HB_Grapheme_LVT},
+ {0xd638, 0xd638, HB_Grapheme_LV},
+ {0xd639, 0xd653, HB_Grapheme_LVT},
+ {0xd654, 0xd654, HB_Grapheme_LV},
+ {0xd655, 0xd66f, HB_Grapheme_LVT},
+ {0xd670, 0xd670, HB_Grapheme_LV},
+ {0xd671, 0xd68b, HB_Grapheme_LVT},
+ {0xd68c, 0xd68c, HB_Grapheme_LV},
+ {0xd68d, 0xd6a7, HB_Grapheme_LVT},
+ {0xd6a8, 0xd6a8, HB_Grapheme_LV},
+ {0xd6a9, 0xd6c3, HB_Grapheme_LVT},
+ {0xd6c4, 0xd6c4, HB_Grapheme_LV},
+ {0xd6c5, 0xd6df, HB_Grapheme_LVT},
+ {0xd6e0, 0xd6e0, HB_Grapheme_LV},
+ {0xd6e1, 0xd6fb, HB_Grapheme_LVT},
+ {0xd6fc, 0xd6fc, HB_Grapheme_LV},
+ {0xd6fd, 0xd717, HB_Grapheme_LVT},
+ {0xd718, 0xd718, HB_Grapheme_LV},
+ {0xd719, 0xd733, HB_Grapheme_LVT},
+ {0xd734, 0xd734, HB_Grapheme_LV},
+ {0xd735, 0xd74f, HB_Grapheme_LVT},
+ {0xd750, 0xd750, HB_Grapheme_LV},
+ {0xd751, 0xd76b, HB_Grapheme_LVT},
+ {0xd76c, 0xd76c, HB_Grapheme_LV},
+ {0xd76d, 0xd787, HB_Grapheme_LVT},
+ {0xd788, 0xd788, HB_Grapheme_LV},
+ {0xd789, 0xd7a3, HB_Grapheme_LVT},
+ {0xfb1e, 0xfb1e, HB_Grapheme_Extend},
+ {0xfe00, 0xfe0f, HB_Grapheme_Extend},
+ {0xfe20, 0xfe26, HB_Grapheme_Extend},
+ {0xfeff, 0xfeff, HB_Grapheme_Control},
+ {0xff9e, 0xff9f, HB_Grapheme_Extend},
+ {0xfff9, 0xfffb, HB_Grapheme_Control},
+ {0x101fd, 0x101fd, HB_Grapheme_Extend},
+ {0x10a01, 0x10a03, HB_Grapheme_Extend},
+ {0x10a05, 0x10a06, HB_Grapheme_Extend},
+ {0x10a0c, 0x10a0f, HB_Grapheme_Extend},
+ {0x10a38, 0x10a3a, HB_Grapheme_Extend},
+ {0x10a3f, 0x10a3f, HB_Grapheme_Extend},
+ {0x1d165, 0x1d165, HB_Grapheme_Extend},
+ {0x1d166, 0x1d166, HB_Grapheme_Other},
+ {0x1d167, 0x1d169, HB_Grapheme_Extend},
+ {0x1d16d, 0x1d16d, HB_Grapheme_Other},
+ {0x1d16e, 0x1d172, HB_Grapheme_Extend},
+ {0x1d173, 0x1d17a, HB_Grapheme_Control},
+ {0x1d17b, 0x1d182, HB_Grapheme_Extend},
+ {0x1d185, 0x1d18b, HB_Grapheme_Extend},
+ {0x1d1aa, 0x1d1ad, HB_Grapheme_Extend},
+ {0x1d242, 0x1d244, HB_Grapheme_Extend},
+ {0xe0001, 0xe0001, HB_Grapheme_Control},
+ {0xe0020, 0xe007f, HB_Grapheme_Control},
+ {0xe0100, 0xe01ef, HB_Grapheme_Extend},
+};
+
+static const unsigned grapheme_break_properties_count = 1093;
+
+#endif // GRAPHEME_BREAK_PROPERTY_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-parse.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-parse.py
new file mode 100644
index 00000000000..5724e19d75a
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-parse.py
@@ -0,0 +1,50 @@
+import sys
+
+# http://www.unicode.org/Public/UNIDATA/auxiliary/BidiMirroring.txt
+
+# This parses a file in the format of the above file and outputs a table
+# suitable for bsearch(3). This table maps Unicode code points to their
+# 'mirror'. (Mirroring is used when rendering RTL characters, see the Unicode
+# standard). By convention, this mapping should be commutative, but this code
+# doesn't enforce or check this.
+
+def main(infile, outfile):
+ pairs = []
+ for line in infile:
+ line = line[:-1]
+ if len(line) == 0 or line[0] == '#':
+ continue
+ if '#' in line:
+ (data, _) = line.split('#', 1)
+ else:
+ data = line
+ if ';' not in data:
+ continue
+ (a, b) = data.split(';', 1)
+ a = int(a, 16)
+ b = int(b, 16)
+
+ pairs.append((a, b))
+
+ pairs.sort()
+
+ print >>outfile, '// Generated from Unicode Bidi Mirroring tables\n'
+ print >>outfile, '#ifndef MIRRORING_PROPERTY_H_'
+ print >>outfile, '#define MIRRORING_PROPERTY_H_\n'
+ print >>outfile, '#include <stdint.h>'
+ print >>outfile, 'struct mirroring_property {'
+ print >>outfile, ' uint32_t a;'
+ print >>outfile, ' uint32_t b;'
+ print >>outfile, '};\n'
+ print >>outfile, 'static const struct mirroring_property mirroring_properties[] = {'
+ for pair in pairs:
+ print >>outfile, ' {0x%x, 0x%x},' % pair
+ print >>outfile, '};\n'
+ print >>outfile, 'static const unsigned mirroring_properties_count = %d;\n' % len(pairs)
+ print >>outfile, '#endif // MIRRORING_PROPERTY_H_'
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print 'Usage: %s <input .txt> <output .h>' % sys.argv[0]
+ else:
+ main(file(sys.argv[1], 'r'), file(sys.argv[2], 'w+'))
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-properties.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-properties.h
new file mode 100644
index 00000000000..f9be2f666ff
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/mirroring-properties.h
@@ -0,0 +1,379 @@
+// Generated from Unicode Bidi Mirroring tables
+
+#ifndef MIRRORING_PROPERTY_H_
+#define MIRRORING_PROPERTY_H_
+
+#include <stdint.h>
+struct mirroring_property {
+ uint32_t a;
+ uint32_t b;
+};
+
+static const struct mirroring_property mirroring_properties[] = {
+ {0x28, 0x29},
+ {0x29, 0x28},
+ {0x3c, 0x3e},
+ {0x3e, 0x3c},
+ {0x5b, 0x5d},
+ {0x5d, 0x5b},
+ {0x7b, 0x7d},
+ {0x7d, 0x7b},
+ {0xab, 0xbb},
+ {0xbb, 0xab},
+ {0xf3a, 0xf3b},
+ {0xf3b, 0xf3a},
+ {0xf3c, 0xf3d},
+ {0xf3d, 0xf3c},
+ {0x169b, 0x169c},
+ {0x169c, 0x169b},
+ {0x2039, 0x203a},
+ {0x203a, 0x2039},
+ {0x2045, 0x2046},
+ {0x2046, 0x2045},
+ {0x207d, 0x207e},
+ {0x207e, 0x207d},
+ {0x208d, 0x208e},
+ {0x208e, 0x208d},
+ {0x2208, 0x220b},
+ {0x2209, 0x220c},
+ {0x220a, 0x220d},
+ {0x220b, 0x2208},
+ {0x220c, 0x2209},
+ {0x220d, 0x220a},
+ {0x2215, 0x29f5},
+ {0x223c, 0x223d},
+ {0x223d, 0x223c},
+ {0x2243, 0x22cd},
+ {0x2252, 0x2253},
+ {0x2253, 0x2252},
+ {0x2254, 0x2255},
+ {0x2255, 0x2254},
+ {0x2264, 0x2265},
+ {0x2265, 0x2264},
+ {0x2266, 0x2267},
+ {0x2267, 0x2266},
+ {0x2268, 0x2269},
+ {0x2269, 0x2268},
+ {0x226a, 0x226b},
+ {0x226b, 0x226a},
+ {0x226e, 0x226f},
+ {0x226f, 0x226e},
+ {0x2270, 0x2271},
+ {0x2271, 0x2270},
+ {0x2272, 0x2273},
+ {0x2273, 0x2272},
+ {0x2274, 0x2275},
+ {0x2275, 0x2274},
+ {0x2276, 0x2277},
+ {0x2277, 0x2276},
+ {0x2278, 0x2279},
+ {0x2279, 0x2278},
+ {0x227a, 0x227b},
+ {0x227b, 0x227a},
+ {0x227c, 0x227d},
+ {0x227d, 0x227c},
+ {0x227e, 0x227f},
+ {0x227f, 0x227e},
+ {0x2280, 0x2281},
+ {0x2281, 0x2280},
+ {0x2282, 0x2283},
+ {0x2283, 0x2282},
+ {0x2284, 0x2285},
+ {0x2285, 0x2284},
+ {0x2286, 0x2287},
+ {0x2287, 0x2286},
+ {0x2288, 0x2289},
+ {0x2289, 0x2288},
+ {0x228a, 0x228b},
+ {0x228b, 0x228a},
+ {0x228f, 0x2290},
+ {0x2290, 0x228f},
+ {0x2291, 0x2292},
+ {0x2292, 0x2291},
+ {0x2298, 0x29b8},
+ {0x22a2, 0x22a3},
+ {0x22a3, 0x22a2},
+ {0x22a6, 0x2ade},
+ {0x22a8, 0x2ae4},
+ {0x22a9, 0x2ae3},
+ {0x22ab, 0x2ae5},
+ {0x22b0, 0x22b1},
+ {0x22b1, 0x22b0},
+ {0x22b2, 0x22b3},
+ {0x22b3, 0x22b2},
+ {0x22b4, 0x22b5},
+ {0x22b5, 0x22b4},
+ {0x22b6, 0x22b7},
+ {0x22b7, 0x22b6},
+ {0x22c9, 0x22ca},
+ {0x22ca, 0x22c9},
+ {0x22cb, 0x22cc},
+ {0x22cc, 0x22cb},
+ {0x22cd, 0x2243},
+ {0x22d0, 0x22d1},
+ {0x22d1, 0x22d0},
+ {0x22d6, 0x22d7},
+ {0x22d7, 0x22d6},
+ {0x22d8, 0x22d9},
+ {0x22d9, 0x22d8},
+ {0x22da, 0x22db},
+ {0x22db, 0x22da},
+ {0x22dc, 0x22dd},
+ {0x22dd, 0x22dc},
+ {0x22de, 0x22df},
+ {0x22df, 0x22de},
+ {0x22e0, 0x22e1},
+ {0x22e1, 0x22e0},
+ {0x22e2, 0x22e3},
+ {0x22e3, 0x22e2},
+ {0x22e4, 0x22e5},
+ {0x22e5, 0x22e4},
+ {0x22e6, 0x22e7},
+ {0x22e7, 0x22e6},
+ {0x22e8, 0x22e9},
+ {0x22e9, 0x22e8},
+ {0x22ea, 0x22eb},
+ {0x22eb, 0x22ea},
+ {0x22ec, 0x22ed},
+ {0x22ed, 0x22ec},
+ {0x22f0, 0x22f1},
+ {0x22f1, 0x22f0},
+ {0x22f2, 0x22fa},
+ {0x22f3, 0x22fb},
+ {0x22f4, 0x22fc},
+ {0x22f6, 0x22fd},
+ {0x22f7, 0x22fe},
+ {0x22fa, 0x22f2},
+ {0x22fb, 0x22f3},
+ {0x22fc, 0x22f4},
+ {0x22fd, 0x22f6},
+ {0x22fe, 0x22f7},
+ {0x2308, 0x2309},
+ {0x2309, 0x2308},
+ {0x230a, 0x230b},
+ {0x230b, 0x230a},
+ {0x2329, 0x232a},
+ {0x232a, 0x2329},
+ {0x2768, 0x2769},
+ {0x2769, 0x2768},
+ {0x276a, 0x276b},
+ {0x276b, 0x276a},
+ {0x276c, 0x276d},
+ {0x276d, 0x276c},
+ {0x276e, 0x276f},
+ {0x276f, 0x276e},
+ {0x2770, 0x2771},
+ {0x2771, 0x2770},
+ {0x2772, 0x2773},
+ {0x2773, 0x2772},
+ {0x2774, 0x2775},
+ {0x2775, 0x2774},
+ {0x27c3, 0x27c4},
+ {0x27c4, 0x27c3},
+ {0x27c5, 0x27c6},
+ {0x27c6, 0x27c5},
+ {0x27c8, 0x27c9},
+ {0x27c9, 0x27c8},
+ {0x27d5, 0x27d6},
+ {0x27d6, 0x27d5},
+ {0x27dd, 0x27de},
+ {0x27de, 0x27dd},
+ {0x27e2, 0x27e3},
+ {0x27e3, 0x27e2},
+ {0x27e4, 0x27e5},
+ {0x27e5, 0x27e4},
+ {0x27e6, 0x27e7},
+ {0x27e7, 0x27e6},
+ {0x27e8, 0x27e9},
+ {0x27e9, 0x27e8},
+ {0x27ea, 0x27eb},
+ {0x27eb, 0x27ea},
+ {0x27ec, 0x27ed},
+ {0x27ed, 0x27ec},
+ {0x27ee, 0x27ef},
+ {0x27ef, 0x27ee},
+ {0x2983, 0x2984},
+ {0x2984, 0x2983},
+ {0x2985, 0x2986},
+ {0x2986, 0x2985},
+ {0x2987, 0x2988},
+ {0x2988, 0x2987},
+ {0x2989, 0x298a},
+ {0x298a, 0x2989},
+ {0x298b, 0x298c},
+ {0x298c, 0x298b},
+ {0x298d, 0x2990},
+ {0x298e, 0x298f},
+ {0x298f, 0x298e},
+ {0x2990, 0x298d},
+ {0x2991, 0x2992},
+ {0x2992, 0x2991},
+ {0x2993, 0x2994},
+ {0x2994, 0x2993},
+ {0x2995, 0x2996},
+ {0x2996, 0x2995},
+ {0x2997, 0x2998},
+ {0x2998, 0x2997},
+ {0x29b8, 0x2298},
+ {0x29c0, 0x29c1},
+ {0x29c1, 0x29c0},
+ {0x29c4, 0x29c5},
+ {0x29c5, 0x29c4},
+ {0x29cf, 0x29d0},
+ {0x29d0, 0x29cf},
+ {0x29d1, 0x29d2},
+ {0x29d2, 0x29d1},
+ {0x29d4, 0x29d5},
+ {0x29d5, 0x29d4},
+ {0x29d8, 0x29d9},
+ {0x29d9, 0x29d8},
+ {0x29da, 0x29db},
+ {0x29db, 0x29da},
+ {0x29f5, 0x2215},
+ {0x29f8, 0x29f9},
+ {0x29f9, 0x29f8},
+ {0x29fc, 0x29fd},
+ {0x29fd, 0x29fc},
+ {0x2a2b, 0x2a2c},
+ {0x2a2c, 0x2a2b},
+ {0x2a2d, 0x2a2e},
+ {0x2a2e, 0x2a2d},
+ {0x2a34, 0x2a35},
+ {0x2a35, 0x2a34},
+ {0x2a3c, 0x2a3d},
+ {0x2a3d, 0x2a3c},
+ {0x2a64, 0x2a65},
+ {0x2a65, 0x2a64},
+ {0x2a79, 0x2a7a},
+ {0x2a7a, 0x2a79},
+ {0x2a7d, 0x2a7e},
+ {0x2a7e, 0x2a7d},
+ {0x2a7f, 0x2a80},
+ {0x2a80, 0x2a7f},
+ {0x2a81, 0x2a82},
+ {0x2a82, 0x2a81},
+ {0x2a83, 0x2a84},
+ {0x2a84, 0x2a83},
+ {0x2a8b, 0x2a8c},
+ {0x2a8c, 0x2a8b},
+ {0x2a91, 0x2a92},
+ {0x2a92, 0x2a91},
+ {0x2a93, 0x2a94},
+ {0x2a94, 0x2a93},
+ {0x2a95, 0x2a96},
+ {0x2a96, 0x2a95},
+ {0x2a97, 0x2a98},
+ {0x2a98, 0x2a97},
+ {0x2a99, 0x2a9a},
+ {0x2a9a, 0x2a99},
+ {0x2a9b, 0x2a9c},
+ {0x2a9c, 0x2a9b},
+ {0x2aa1, 0x2aa2},
+ {0x2aa2, 0x2aa1},
+ {0x2aa6, 0x2aa7},
+ {0x2aa7, 0x2aa6},
+ {0x2aa8, 0x2aa9},
+ {0x2aa9, 0x2aa8},
+ {0x2aaa, 0x2aab},
+ {0x2aab, 0x2aaa},
+ {0x2aac, 0x2aad},
+ {0x2aad, 0x2aac},
+ {0x2aaf, 0x2ab0},
+ {0x2ab0, 0x2aaf},
+ {0x2ab3, 0x2ab4},
+ {0x2ab4, 0x2ab3},
+ {0x2abb, 0x2abc},
+ {0x2abc, 0x2abb},
+ {0x2abd, 0x2abe},
+ {0x2abe, 0x2abd},
+ {0x2abf, 0x2ac0},
+ {0x2ac0, 0x2abf},
+ {0x2ac1, 0x2ac2},
+ {0x2ac2, 0x2ac1},
+ {0x2ac3, 0x2ac4},
+ {0x2ac4, 0x2ac3},
+ {0x2ac5, 0x2ac6},
+ {0x2ac6, 0x2ac5},
+ {0x2acd, 0x2ace},
+ {0x2ace, 0x2acd},
+ {0x2acf, 0x2ad0},
+ {0x2ad0, 0x2acf},
+ {0x2ad1, 0x2ad2},
+ {0x2ad2, 0x2ad1},
+ {0x2ad3, 0x2ad4},
+ {0x2ad4, 0x2ad3},
+ {0x2ad5, 0x2ad6},
+ {0x2ad6, 0x2ad5},
+ {0x2ade, 0x22a6},
+ {0x2ae3, 0x22a9},
+ {0x2ae4, 0x22a8},
+ {0x2ae5, 0x22ab},
+ {0x2aec, 0x2aed},
+ {0x2aed, 0x2aec},
+ {0x2af7, 0x2af8},
+ {0x2af8, 0x2af7},
+ {0x2af9, 0x2afa},
+ {0x2afa, 0x2af9},
+ {0x2e02, 0x2e03},
+ {0x2e03, 0x2e02},
+ {0x2e04, 0x2e05},
+ {0x2e05, 0x2e04},
+ {0x2e09, 0x2e0a},
+ {0x2e0a, 0x2e09},
+ {0x2e0c, 0x2e0d},
+ {0x2e0d, 0x2e0c},
+ {0x2e1c, 0x2e1d},
+ {0x2e1d, 0x2e1c},
+ {0x2e20, 0x2e21},
+ {0x2e21, 0x2e20},
+ {0x2e22, 0x2e23},
+ {0x2e23, 0x2e22},
+ {0x2e24, 0x2e25},
+ {0x2e25, 0x2e24},
+ {0x2e26, 0x2e27},
+ {0x2e27, 0x2e26},
+ {0x2e28, 0x2e29},
+ {0x2e29, 0x2e28},
+ {0x3008, 0x3009},
+ {0x3009, 0x3008},
+ {0x300a, 0x300b},
+ {0x300b, 0x300a},
+ {0x300c, 0x300d},
+ {0x300d, 0x300c},
+ {0x300e, 0x300f},
+ {0x300f, 0x300e},
+ {0x3010, 0x3011},
+ {0x3011, 0x3010},
+ {0x3014, 0x3015},
+ {0x3015, 0x3014},
+ {0x3016, 0x3017},
+ {0x3017, 0x3016},
+ {0x3018, 0x3019},
+ {0x3019, 0x3018},
+ {0x301a, 0x301b},
+ {0x301b, 0x301a},
+ {0xfe59, 0xfe5a},
+ {0xfe5a, 0xfe59},
+ {0xfe5b, 0xfe5c},
+ {0xfe5c, 0xfe5b},
+ {0xfe5d, 0xfe5e},
+ {0xfe5e, 0xfe5d},
+ {0xfe64, 0xfe65},
+ {0xfe65, 0xfe64},
+ {0xff08, 0xff09},
+ {0xff09, 0xff08},
+ {0xff1c, 0xff1e},
+ {0xff1e, 0xff1c},
+ {0xff3b, 0xff3d},
+ {0xff3d, 0xff3b},
+ {0xff5b, 0xff5d},
+ {0xff5d, 0xff5b},
+ {0xff5f, 0xff60},
+ {0xff60, 0xff5f},
+ {0xff62, 0xff63},
+ {0xff63, 0xff62},
+};
+
+static const unsigned mirroring_properties_count = 362;
+
+#endif // MIRRORING_PROPERTY_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/script-properties.h b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/script-properties.h
new file mode 100644
index 00000000000..a6ff50b0601
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/script-properties.h
@@ -0,0 +1,297 @@
+// Generated from Unicode script tables
+
+#ifndef SCRIPT_PROPERTIES_H_
+#define SCRIPT_PROPERTIES_H_
+
+#include <stdint.h>
+#include "harfbuzz-shaper.h"
+
+struct script_property {
+ uint32_t range_start;
+ uint32_t range_end;
+ HB_Script script;
+};
+
+static const struct script_property script_properties[] = {
+ {0x300, 0x36f, HB_Script_Inherited},
+ {0x370, 0x373, HB_Script_Greek},
+ {0x375, 0x377, HB_Script_Greek},
+ {0x37a, 0x37d, HB_Script_Greek},
+ {0x384, 0x384, HB_Script_Greek},
+ {0x386, 0x386, HB_Script_Greek},
+ {0x388, 0x38a, HB_Script_Greek},
+ {0x38c, 0x38c, HB_Script_Greek},
+ {0x38e, 0x3a1, HB_Script_Greek},
+ {0x3a3, 0x3e1, HB_Script_Greek},
+ {0x3f0, 0x3ff, HB_Script_Greek},
+ {0x400, 0x523, HB_Script_Cyrillic},
+ {0x531, 0x556, HB_Script_Armenian},
+ {0x559, 0x55f, HB_Script_Armenian},
+ {0x561, 0x587, HB_Script_Armenian},
+ {0x58a, 0x58a, HB_Script_Armenian},
+ {0x591, 0x5c7, HB_Script_Hebrew},
+ {0x5d0, 0x5ea, HB_Script_Hebrew},
+ {0x5f0, 0x5f4, HB_Script_Hebrew},
+ {0x606, 0x60b, HB_Script_Arabic},
+ {0x60d, 0x61a, HB_Script_Arabic},
+ {0x61e, 0x61e, HB_Script_Arabic},
+ {0x621, 0x63f, HB_Script_Arabic},
+ {0x641, 0x64a, HB_Script_Arabic},
+ {0x64b, 0x655, HB_Script_Inherited},
+ {0x656, 0x65e, HB_Script_Arabic},
+ {0x66a, 0x66f, HB_Script_Arabic},
+ {0x670, 0x670, HB_Script_Inherited},
+ {0x671, 0x6dc, HB_Script_Arabic},
+ {0x6de, 0x6ff, HB_Script_Arabic},
+ {0x700, 0x70d, HB_Script_Syriac},
+ {0x70f, 0x74a, HB_Script_Syriac},
+ {0x74d, 0x74f, HB_Script_Syriac},
+ {0x750, 0x77f, HB_Script_Arabic},
+ {0x780, 0x7b1, HB_Script_Thaana},
+ {0x901, 0x939, HB_Script_Devanagari},
+ {0x93c, 0x94d, HB_Script_Devanagari},
+ {0x950, 0x950, HB_Script_Devanagari},
+ {0x951, 0x952, HB_Script_Inherited},
+ {0x953, 0x954, HB_Script_Devanagari},
+ {0x958, 0x963, HB_Script_Devanagari},
+ {0x966, 0x96f, HB_Script_Devanagari},
+ {0x971, 0x972, HB_Script_Devanagari},
+ {0x97b, 0x97f, HB_Script_Devanagari},
+ {0x981, 0x983, HB_Script_Bengali},
+ {0x985, 0x98c, HB_Script_Bengali},
+ {0x98f, 0x990, HB_Script_Bengali},
+ {0x993, 0x9a8, HB_Script_Bengali},
+ {0x9aa, 0x9b0, HB_Script_Bengali},
+ {0x9b2, 0x9b2, HB_Script_Bengali},
+ {0x9b6, 0x9b9, HB_Script_Bengali},
+ {0x9bc, 0x9c4, HB_Script_Bengali},
+ {0x9c7, 0x9c8, HB_Script_Bengali},
+ {0x9cb, 0x9ce, HB_Script_Bengali},
+ {0x9d7, 0x9d7, HB_Script_Bengali},
+ {0x9dc, 0x9dd, HB_Script_Bengali},
+ {0x9df, 0x9e3, HB_Script_Bengali},
+ {0x9e6, 0x9fa, HB_Script_Bengali},
+ {0xa01, 0xa03, HB_Script_Gurmukhi},
+ {0xa05, 0xa0a, HB_Script_Gurmukhi},
+ {0xa0f, 0xa10, HB_Script_Gurmukhi},
+ {0xa13, 0xa28, HB_Script_Gurmukhi},
+ {0xa2a, 0xa30, HB_Script_Gurmukhi},
+ {0xa32, 0xa33, HB_Script_Gurmukhi},
+ {0xa35, 0xa36, HB_Script_Gurmukhi},
+ {0xa38, 0xa39, HB_Script_Gurmukhi},
+ {0xa3c, 0xa3c, HB_Script_Gurmukhi},
+ {0xa3e, 0xa42, HB_Script_Gurmukhi},
+ {0xa47, 0xa48, HB_Script_Gurmukhi},
+ {0xa4b, 0xa4d, HB_Script_Gurmukhi},
+ {0xa51, 0xa51, HB_Script_Gurmukhi},
+ {0xa59, 0xa5c, HB_Script_Gurmukhi},
+ {0xa5e, 0xa5e, HB_Script_Gurmukhi},
+ {0xa66, 0xa75, HB_Script_Gurmukhi},
+ {0xa81, 0xa83, HB_Script_Gujarati},
+ {0xa85, 0xa8d, HB_Script_Gujarati},
+ {0xa8f, 0xa91, HB_Script_Gujarati},
+ {0xa93, 0xaa8, HB_Script_Gujarati},
+ {0xaaa, 0xab0, HB_Script_Gujarati},
+ {0xab2, 0xab3, HB_Script_Gujarati},
+ {0xab5, 0xab9, HB_Script_Gujarati},
+ {0xabc, 0xac5, HB_Script_Gujarati},
+ {0xac7, 0xac9, HB_Script_Gujarati},
+ {0xacb, 0xacd, HB_Script_Gujarati},
+ {0xad0, 0xad0, HB_Script_Gujarati},
+ {0xae0, 0xae3, HB_Script_Gujarati},
+ {0xae6, 0xaef, HB_Script_Gujarati},
+ {0xaf1, 0xaf1, HB_Script_Gujarati},
+ {0xb01, 0xb03, HB_Script_Oriya},
+ {0xb05, 0xb0c, HB_Script_Oriya},
+ {0xb0f, 0xb10, HB_Script_Oriya},
+ {0xb13, 0xb28, HB_Script_Oriya},
+ {0xb2a, 0xb30, HB_Script_Oriya},
+ {0xb32, 0xb33, HB_Script_Oriya},
+ {0xb35, 0xb39, HB_Script_Oriya},
+ {0xb3c, 0xb44, HB_Script_Oriya},
+ {0xb47, 0xb48, HB_Script_Oriya},
+ {0xb4b, 0xb4d, HB_Script_Oriya},
+ {0xb56, 0xb57, HB_Script_Oriya},
+ {0xb5c, 0xb5d, HB_Script_Oriya},
+ {0xb5f, 0xb63, HB_Script_Oriya},
+ {0xb66, 0xb71, HB_Script_Oriya},
+ {0xb82, 0xb83, HB_Script_Tamil},
+ {0xb85, 0xb8a, HB_Script_Tamil},
+ {0xb8e, 0xb90, HB_Script_Tamil},
+ {0xb92, 0xb95, HB_Script_Tamil},
+ {0xb99, 0xb9a, HB_Script_Tamil},
+ {0xb9c, 0xb9c, HB_Script_Tamil},
+ {0xb9e, 0xb9f, HB_Script_Tamil},
+ {0xba3, 0xba4, HB_Script_Tamil},
+ {0xba8, 0xbaa, HB_Script_Tamil},
+ {0xbae, 0xbb9, HB_Script_Tamil},
+ {0xbbe, 0xbc2, HB_Script_Tamil},
+ {0xbc6, 0xbc8, HB_Script_Tamil},
+ {0xbca, 0xbcd, HB_Script_Tamil},
+ {0xbd0, 0xbd0, HB_Script_Tamil},
+ {0xbd7, 0xbd7, HB_Script_Tamil},
+ {0xbe6, 0xbfa, HB_Script_Tamil},
+ {0xc01, 0xc03, HB_Script_Telugu},
+ {0xc05, 0xc0c, HB_Script_Telugu},
+ {0xc0e, 0xc10, HB_Script_Telugu},
+ {0xc12, 0xc28, HB_Script_Telugu},
+ {0xc2a, 0xc33, HB_Script_Telugu},
+ {0xc35, 0xc39, HB_Script_Telugu},
+ {0xc3d, 0xc44, HB_Script_Telugu},
+ {0xc46, 0xc48, HB_Script_Telugu},
+ {0xc4a, 0xc4d, HB_Script_Telugu},
+ {0xc55, 0xc56, HB_Script_Telugu},
+ {0xc58, 0xc59, HB_Script_Telugu},
+ {0xc60, 0xc63, HB_Script_Telugu},
+ {0xc66, 0xc6f, HB_Script_Telugu},
+ {0xc78, 0xc7f, HB_Script_Telugu},
+ {0xc82, 0xc83, HB_Script_Kannada},
+ {0xc85, 0xc8c, HB_Script_Kannada},
+ {0xc8e, 0xc90, HB_Script_Kannada},
+ {0xc92, 0xca8, HB_Script_Kannada},
+ {0xcaa, 0xcb3, HB_Script_Kannada},
+ {0xcb5, 0xcb9, HB_Script_Kannada},
+ {0xcbc, 0xcc4, HB_Script_Kannada},
+ {0xcc6, 0xcc8, HB_Script_Kannada},
+ {0xcca, 0xccd, HB_Script_Kannada},
+ {0xcd5, 0xcd6, HB_Script_Kannada},
+ {0xcde, 0xcde, HB_Script_Kannada},
+ {0xce0, 0xce3, HB_Script_Kannada},
+ {0xce6, 0xcef, HB_Script_Kannada},
+ {0xd02, 0xd03, HB_Script_Malayalam},
+ {0xd05, 0xd0c, HB_Script_Malayalam},
+ {0xd0e, 0xd10, HB_Script_Malayalam},
+ {0xd12, 0xd28, HB_Script_Malayalam},
+ {0xd2a, 0xd39, HB_Script_Malayalam},
+ {0xd3d, 0xd44, HB_Script_Malayalam},
+ {0xd46, 0xd48, HB_Script_Malayalam},
+ {0xd4a, 0xd4d, HB_Script_Malayalam},
+ {0xd57, 0xd57, HB_Script_Malayalam},
+ {0xd60, 0xd63, HB_Script_Malayalam},
+ {0xd66, 0xd75, HB_Script_Malayalam},
+ {0xd79, 0xd7f, HB_Script_Malayalam},
+ {0xd82, 0xd83, HB_Script_Sinhala},
+ {0xd85, 0xd96, HB_Script_Sinhala},
+ {0xd9a, 0xdb1, HB_Script_Sinhala},
+ {0xdb3, 0xdbb, HB_Script_Sinhala},
+ {0xdbd, 0xdbd, HB_Script_Sinhala},
+ {0xdc0, 0xdc6, HB_Script_Sinhala},
+ {0xdca, 0xdca, HB_Script_Sinhala},
+ {0xdcf, 0xdd4, HB_Script_Sinhala},
+ {0xdd6, 0xdd6, HB_Script_Sinhala},
+ {0xdd8, 0xddf, HB_Script_Sinhala},
+ {0xdf2, 0xdf4, HB_Script_Sinhala},
+ {0xe01, 0xe3a, HB_Script_Thai},
+ {0xe40, 0xe5b, HB_Script_Thai},
+ {0xe81, 0xe82, HB_Script_Lao},
+ {0xe84, 0xe84, HB_Script_Lao},
+ {0xe87, 0xe88, HB_Script_Lao},
+ {0xe8a, 0xe8a, HB_Script_Lao},
+ {0xe8d, 0xe8d, HB_Script_Lao},
+ {0xe94, 0xe97, HB_Script_Lao},
+ {0xe99, 0xe9f, HB_Script_Lao},
+ {0xea1, 0xea3, HB_Script_Lao},
+ {0xea5, 0xea5, HB_Script_Lao},
+ {0xea7, 0xea7, HB_Script_Lao},
+ {0xeaa, 0xeab, HB_Script_Lao},
+ {0xead, 0xeb9, HB_Script_Lao},
+ {0xebb, 0xebd, HB_Script_Lao},
+ {0xec0, 0xec4, HB_Script_Lao},
+ {0xec6, 0xec6, HB_Script_Lao},
+ {0xec8, 0xecd, HB_Script_Lao},
+ {0xed0, 0xed9, HB_Script_Lao},
+ {0xedc, 0xedd, HB_Script_Lao},
+ {0xf00, 0xf47, HB_Script_Tibetan},
+ {0xf49, 0xf6c, HB_Script_Tibetan},
+ {0xf71, 0xf8b, HB_Script_Tibetan},
+ {0xf90, 0xf97, HB_Script_Tibetan},
+ {0xf99, 0xfbc, HB_Script_Tibetan},
+ {0xfbe, 0xfcc, HB_Script_Tibetan},
+ {0xfce, 0xfd4, HB_Script_Tibetan},
+ {0x1000, 0x1099, HB_Script_Myanmar},
+ {0x109e, 0x109f, HB_Script_Myanmar},
+ {0x10a0, 0x10c5, HB_Script_Georgian},
+ {0x10d0, 0x10fa, HB_Script_Georgian},
+ {0x10fc, 0x10fc, HB_Script_Georgian},
+ {0x1100, 0x1159, HB_Script_Hangul},
+ {0x115f, 0x11a2, HB_Script_Hangul},
+ {0x11a8, 0x11f9, HB_Script_Hangul},
+ {0x1680, 0x169c, HB_Script_Ogham},
+ {0x16a0, 0x16ea, HB_Script_Runic},
+ {0x16ee, 0x16f0, HB_Script_Runic},
+ {0x1780, 0x17dd, HB_Script_Khmer},
+ {0x17e0, 0x17e9, HB_Script_Khmer},
+ {0x17f0, 0x17f9, HB_Script_Khmer},
+ {0x19e0, 0x19ff, HB_Script_Khmer},
+ {0x1d26, 0x1d2a, HB_Script_Greek},
+ {0x1d2b, 0x1d2b, HB_Script_Cyrillic},
+ {0x1d5d, 0x1d61, HB_Script_Greek},
+ {0x1d66, 0x1d6a, HB_Script_Greek},
+ {0x1d78, 0x1d78, HB_Script_Cyrillic},
+ {0x1dbf, 0x1dbf, HB_Script_Greek},
+ {0x1dc0, 0x1de6, HB_Script_Inherited},
+ {0x1dfe, 0x1dff, HB_Script_Inherited},
+ {0x1f00, 0x1f15, HB_Script_Greek},
+ {0x1f18, 0x1f1d, HB_Script_Greek},
+ {0x1f20, 0x1f45, HB_Script_Greek},
+ {0x1f48, 0x1f4d, HB_Script_Greek},
+ {0x1f50, 0x1f57, HB_Script_Greek},
+ {0x1f59, 0x1f59, HB_Script_Greek},
+ {0x1f5b, 0x1f5b, HB_Script_Greek},
+ {0x1f5d, 0x1f5d, HB_Script_Greek},
+ {0x1f5f, 0x1f7d, HB_Script_Greek},
+ {0x1f80, 0x1fb4, HB_Script_Greek},
+ {0x1fb6, 0x1fc4, HB_Script_Greek},
+ {0x1fc6, 0x1fd3, HB_Script_Greek},
+ {0x1fd6, 0x1fdb, HB_Script_Greek},
+ {0x1fdd, 0x1fef, HB_Script_Greek},
+ {0x1ff2, 0x1ff4, HB_Script_Greek},
+ {0x1ff6, 0x1ffe, HB_Script_Greek},
+ {0x200c, 0x200d, HB_Script_Inherited},
+ {0x20d0, 0x20f0, HB_Script_Inherited},
+ {0x2126, 0x2126, HB_Script_Greek},
+ {0x2d00, 0x2d25, HB_Script_Georgian},
+ {0x2de0, 0x2dff, HB_Script_Cyrillic},
+ {0x302a, 0x302f, HB_Script_Inherited},
+ {0x3099, 0x309a, HB_Script_Inherited},
+ {0x3131, 0x318e, HB_Script_Hangul},
+ {0x3200, 0x321e, HB_Script_Hangul},
+ {0x3260, 0x327e, HB_Script_Hangul},
+ {0xa640, 0xa65f, HB_Script_Cyrillic},
+ {0xa662, 0xa673, HB_Script_Cyrillic},
+ {0xa67c, 0xa697, HB_Script_Cyrillic},
+ {0xac00, 0xd7a3, HB_Script_Hangul},
+ {0xfb13, 0xfb17, HB_Script_Armenian},
+ {0xfb1d, 0xfb36, HB_Script_Hebrew},
+ {0xfb38, 0xfb3c, HB_Script_Hebrew},
+ {0xfb3e, 0xfb3e, HB_Script_Hebrew},
+ {0xfb40, 0xfb41, HB_Script_Hebrew},
+ {0xfb43, 0xfb44, HB_Script_Hebrew},
+ {0xfb46, 0xfb4f, HB_Script_Hebrew},
+ {0xfb50, 0xfbb1, HB_Script_Arabic},
+ {0xfbd3, 0xfd3d, HB_Script_Arabic},
+ {0xfd50, 0xfd8f, HB_Script_Arabic},
+ {0xfd92, 0xfdc7, HB_Script_Arabic},
+ {0xfdf0, 0xfdfc, HB_Script_Arabic},
+ {0xfe00, 0xfe0f, HB_Script_Inherited},
+ {0xfe20, 0xfe26, HB_Script_Inherited},
+ {0xfe70, 0xfe74, HB_Script_Arabic},
+ {0xfe76, 0xfefc, HB_Script_Arabic},
+ {0xffa0, 0xffbe, HB_Script_Hangul},
+ {0xffc2, 0xffc7, HB_Script_Hangul},
+ {0xffca, 0xffcf, HB_Script_Hangul},
+ {0xffd2, 0xffd7, HB_Script_Hangul},
+ {0xffda, 0xffdc, HB_Script_Hangul},
+ {0x10140, 0x1018a, HB_Script_Greek},
+ {0x101fd, 0x101fd, HB_Script_Inherited},
+ {0x1d167, 0x1d169, HB_Script_Inherited},
+ {0x1d17b, 0x1d182, HB_Script_Inherited},
+ {0x1d185, 0x1d18b, HB_Script_Inherited},
+ {0x1d1aa, 0x1d1ad, HB_Script_Inherited},
+ {0x1d200, 0x1d245, HB_Script_Greek},
+ {0xe0100, 0xe01ef, HB_Script_Inherited},
+};
+
+static const unsigned script_properties_count = 277;
+
+#endif // SCRIPT_PROPERTIES_H_
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/scripts-parse.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/scripts-parse.py
new file mode 100644
index 00000000000..23bac10f271
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/scripts-parse.py
@@ -0,0 +1,75 @@
+import sys
+from unicode_parse_common import *
+
+# http://www.unicode.org/Public/5.1.0/ucd/Scripts.txt
+
+script_to_harfbuzz = {
+ # This is the list of HB_Script_* at the time of writing
+ 'Common': 'HB_Script_Common',
+ 'Greek': 'HB_Script_Greek',
+ 'Cyrillic': 'HB_Script_Cyrillic',
+ 'Armenian': 'HB_Script_Armenian',
+ 'Hebrew': 'HB_Script_Hebrew',
+ 'Arabic': 'HB_Script_Arabic',
+ 'Syriac': 'HB_Script_Syriac',
+ 'Thaana': 'HB_Script_Thaana',
+ 'Devanagari': 'HB_Script_Devanagari',
+ 'Bengali': 'HB_Script_Bengali',
+ 'Gurmukhi': 'HB_Script_Gurmukhi',
+ 'Gujarati': 'HB_Script_Gujarati',
+ 'Oriya': 'HB_Script_Oriya',
+ 'Tamil': 'HB_Script_Tamil',
+ 'Telugu': 'HB_Script_Telugu',
+ 'Kannada': 'HB_Script_Kannada',
+ 'Malayalam': 'HB_Script_Malayalam',
+ 'Sinhala': 'HB_Script_Sinhala',
+ 'Thai': 'HB_Script_Thai',
+ 'Lao': 'HB_Script_Lao',
+ 'Tibetan': 'HB_Script_Tibetan',
+ 'Myanmar': 'HB_Script_Myanmar',
+ 'Georgian': 'HB_Script_Georgian',
+ 'Hangul': 'HB_Script_Hangul',
+ 'Ogham': 'HB_Script_Ogham',
+ 'Runic': 'HB_Script_Runic',
+ 'Khmer': 'HB_Script_Khmer',
+ 'Inherited': 'HB_Script_Inherited',
+}
+
+class ScriptDict(object):
+ def __init__(self, base):
+ self.base = base
+
+ def __getitem__(self, key):
+ r = self.base.get(key, None)
+ if r is None:
+ return 'HB_Script_Common'
+ return r
+
+def main(infile, outfile):
+ ranges = unicode_file_parse(infile,
+ ScriptDict(script_to_harfbuzz),
+ 'HB_Script_Common')
+ ranges = sort_and_merge(ranges)
+
+ print >>outfile, '// Generated from Unicode script tables\n'
+ print >>outfile, '#ifndef SCRIPT_PROPERTIES_H_'
+ print >>outfile, '#define SCRIPT_PROPERTIES_H_\n'
+ print >>outfile, '#include <stdint.h>'
+ print >>outfile, '#include "harfbuzz-shaper.h"\n'
+ print >>outfile, 'struct script_property {'
+ print >>outfile, ' uint32_t range_start;'
+ print >>outfile, ' uint32_t range_end;'
+ print >>outfile, ' HB_Script script;'
+ print >>outfile, '};\n'
+ print >>outfile, 'static const struct script_property script_properties[] = {'
+ for (start, end, value) in ranges:
+ print >>outfile, ' {0x%x, 0x%x, %s},' % (start, end, value)
+ print >>outfile, '};\n'
+ print >>outfile, 'static const unsigned script_properties_count = %d;\n' % len(ranges)
+ print >>outfile, '#endif // SCRIPT_PROPERTIES_H_'
+
+if __name__ == '__main__':
+ if len(sys.argv) != 3:
+ print 'Usage: %s <input .txt> <output .h>' % sys.argv[0]
+ else:
+ main(file(sys.argv[1], 'r'), file(sys.argv[2], 'w+'))
diff --git a/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/unicode_parse_common.py b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/unicode_parse_common.py
new file mode 100644
index 00000000000..ac26ecae3d9
--- /dev/null
+++ b/chromium/third_party/skia/third_party/harfbuzz/contrib/tables/unicode_parse_common.py
@@ -0,0 +1,70 @@
+def lines_get(f):
+ '''Parse a file like object, removing comments and returning a list of
+ lines.'''
+ def cut_comment(line):
+ first_hash = line.find('#')
+ if first_hash == -1:
+ return line
+ return line[:first_hash]
+
+ return [x for x in [cut_comment(x[:-1]) for x in f.readlines()] if len(x)]
+
+def line_split(line):
+ '''Split a line based on a semicolon separator.'''
+ def normalise(word):
+ return word.lstrip().rstrip()
+ return [normalise(x) for x in line.split(';')]
+
+def codepoints_parse(token):
+ '''Parse a Unicode style code-point range. Return either a single value or a
+ tuple of (start, end) for a range of code-points.'''
+ def fromHex(token):
+ return int(token, 16)
+ parts = token.split('..')
+ if len(parts) == 2:
+ return (fromHex(parts[0]), fromHex(parts[1]))
+ elif len(parts) == 1:
+ return fromHex(parts[0])
+ else:
+ raise ValueError(token)
+
+def unicode_file_parse(input, map, default_value = None):
+ '''Parse a file like object, @input where the first column is a code-point
+ range and the second column is mapped via the given dict, @map.'''
+ ranges = []
+ tokens = [line_split(x) for x in lines_get(input)]
+ for line in tokens:
+ if len(line) == 2:
+ codepoints = codepoints_parse(line[0])
+ value = map[line[1]]
+ if value == default_value:
+ continue
+
+ if type(codepoints) == int:
+ codepoints = (codepoints, codepoints)
+
+ ranges.append((codepoints[0], codepoints[1], value))
+ else:
+ raise ValueError(line)
+
+ return ranges
+
+def sort_and_merge(ranges):
+ '''Given a list of (start, end, value), merge elements where the ranges are
+ continuous and the values are the same.'''
+ output = []
+ ranges.sort()
+ current = None
+ for v in ranges:
+ if current is None:
+ current = v
+ continue
+ if current[1] + 1 == v[0] and current[2] == v[2]:
+ current = (current[0], v[1], v[2])
+ else:
+ output.append(current)
+ current = v
+ if current is not None:
+ output.append(current)
+
+ return output