merge mozilla-inbound to mozilla-central a=merge
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Mon, 10 Apr 2017 10:33:54 +0200
changeset 352144 731639fccc709a4dd95fed7e9dda88efb2227906
parent 352104 50cb1ce431d7d2acb0f483bd77395a3b96068d2c (current diff)
parent 352143 53be95383c097b48e72176ddf553b6c8ebde8103 (diff)
child 352145 c66641fedace045bdd356f7d5ba367406d28ffa6
child 352219 84fffa0bce1a342af863d8fddc0d08615b94e3fd
child 352229 8d5d22b02f42dfee46de3b30b04ac470b6c21cb9
child 352919 f7851b58db67c8906c9e8d2a59da98ca371d0d6f
push id40399
push usercbook@mozilla.com
push dateMon, 10 Apr 2017 08:44:16 +0000
treeherderautoland@c66641fedace [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone55.0a1
first release with
nightly linux32
731639fccc70 / 55.0a1 / 20170410100144 / files
nightly linux64
731639fccc70 / 55.0a1 / 20170410100144 / files
nightly mac
731639fccc70 / 55.0a1 / 20170410030221 / files
nightly win32
731639fccc70 / 55.0a1 / 20170410030221 / files
nightly win64
731639fccc70 / 55.0a1 / 20170410030221 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
merge mozilla-inbound to mozilla-central a=merge
--- a/config/check_spidermonkey_style.py
+++ b/config/check_spidermonkey_style.py
@@ -78,16 +78,17 @@ included_inclnames_to_ignore = set([
     'prprf.h',                  # NSPR
     'prthread.h',               # NSPR
     'prtypes.h',                # NSPR
     'selfhosted.out.h',         # generated in $OBJDIR
     'shellmoduleloader.out.h',  # generated in $OBJDIR
     'unicode/timezone.h',       # ICU
     'unicode/plurrule.h',       # ICU
     'unicode/ucal.h',           # ICU
+    'unicode/uchar.h',          # ICU
     'unicode/uclean.h',         # ICU
     'unicode/ucol.h',           # ICU
     'unicode/udat.h',           # ICU
     'unicode/udatpg.h',         # ICU
     'unicode/uenum.h',          # ICU
     'unicode/uloc.h',           # ICU
     'unicode/unorm2.h',         # ICU
     'unicode/unum.h',           # ICU
--- a/js/src/builtin/Intl.cpp
+++ b/js/src/builtin/Intl.cpp
@@ -19,16 +19,17 @@
 #include <string.h>
 
 #include "jsapi.h"
 #include "jsatom.h"
 #include "jscntxt.h"
 #include "jsfriendapi.h"
 #include "jsobj.h"
 #include "jsstr.h"
+#include "jsutil.h"
 
 #include "builtin/IntlTimeZoneData.h"
 #include "ds/Sort.h"
 #if ENABLE_INTL_API
 #include "unicode/plurrule.h"
 #include "unicode/ucal.h"
 #include "unicode/ucol.h"
 #include "unicode/udat.h"
@@ -40,16 +41,17 @@
 #include "unicode/upluralrules.h"
 #include "unicode/ustring.h"
 #endif
 #include "vm/DateTime.h"
 #include "vm/GlobalObject.h"
 #include "vm/Interpreter.h"
 #include "vm/SelfHosting.h"
 #include "vm/Stack.h"
+#include "vm/String.h"
 #include "vm/StringBuffer.h"
 #include "vm/Unicode.h"
 
 #include "jsobjinlines.h"
 
 #include "vm/NativeObject-inl.h"
 
 using namespace js;
@@ -810,16 +812,30 @@ uplrules_openForType(const char *locale,
 
 int32_t
 uplrules_select(const UPluralRules *uplrules, double number, UChar *keyword, int32_t capacity,
                 UErrorCode *status)
 {
     MOZ_CRASH("uplrules_select: Intl API disabled");
 }
 
+int32_t
+u_strToLower(UChar* dest, int32_t destCapacity, const UChar* src, int32_t srcLength,
+             const char* locale, UErrorCode* pErrorCode)
+{
+    MOZ_CRASH("u_strToLower: Intl API disabled");
+}
+
+int32_t
+u_strToUpper(UChar* dest, int32_t destCapacity, const UChar* src, int32_t srcLength,
+             const char* locale, UErrorCode* pErrorCode)
+{
+    MOZ_CRASH("u_strToUpper: Intl API disabled");
+}
+
 } // anonymous namespace
 
 #endif
 
 
 /******************** Common to Intl constructors ********************/
 
 static bool
@@ -2498,17 +2514,17 @@ dateTimeFormat_toSource(JSContext* cx, u
 
 static const JSFunctionSpec dateTimeFormat_static_methods[] = {
     JS_SELF_HOSTED_FN("supportedLocalesOf", "Intl_DateTimeFormat_supportedLocalesOf", 1, 0),
     JS_FS_END
 };
 
 static const JSFunctionSpec dateTimeFormat_methods[] = {
     JS_SELF_HOSTED_FN("resolvedOptions", "Intl_DateTimeFormat_resolvedOptions", 0, 0),
-    JS_SELF_HOSTED_FN("formatToParts", "Intl_DateTimeFormat_formatToParts", 0, 0),
+    JS_SELF_HOSTED_FN("formatToParts", "Intl_DateTimeFormat_formatToParts", 1, 0),
 #if JS_HAS_TOSOURCE
     JS_FN(js_toSource_str, dateTimeFormat_toSource, 0, 0),
 #endif
     JS_FS_END
 };
 
 static const JSPropertySpec dateTimeFormat_properties[] = {
     JS_SELF_HOSTED_GET("format", "Intl_DateTimeFormat_format_get", 0),
@@ -3882,16 +3898,141 @@ js::intl_GetPluralCategories(JSContext* 
             return false;
     } while (true);
 
     args.rval().setObject(*res);
     return true;
 }
 
 
+/******************** String ********************/
+
+static const char*
+CaseMappingLocale(JSLinearString* locale)
+{
+    MOZ_ASSERT(locale->length() >= 2, "locale is a valid language tag");
+
+    // Lithuanian, Turkish, and Azeri have language dependent case mappings.
+    static const char languagesWithSpecialCasing[][3] = { "lt", "tr", "az" };
+
+    // All strings in |languagesWithSpecialCasing| are of length two, so we
+    // only need to compare the first two characters to find a matching locale.
+    // ES2017 Intl, §9.2.2 BestAvailableLocale
+    if (locale->length() == 2 || locale->latin1OrTwoByteChar(2) == '-') {
+        for (const auto& language : languagesWithSpecialCasing) {
+            if (locale->latin1OrTwoByteChar(0) == language[0] &&
+                locale->latin1OrTwoByteChar(1) == language[1])
+            {
+                return language;
+            }
+        }
+    }
+
+    return ""; // ICU root locale
+}
+
+static bool
+HasLanguageDependentCasing(JSLinearString* locale)
+{
+    return !equal(CaseMappingLocale(locale), "");
+}
+
+bool
+js::intl_toLocaleLowerCase(JSContext* cx, unsigned argc, Value* vp)
+{
+    CallArgs args = CallArgsFromVp(argc, vp);
+    MOZ_ASSERT(args.length() == 2);
+    MOZ_ASSERT(args[0].isString());
+    MOZ_ASSERT(args[1].isString());
+
+    RootedLinearString linear(cx, args[0].toString()->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    RootedLinearString locale(cx, args[1].toString()->ensureLinear(cx));
+    if (!locale)
+        return false;
+
+    // Call String.prototype.toLowerCase() for language independent casing.
+    if (!HasLanguageDependentCasing(locale)) {
+        JSString* str = js::StringToLowerCase(cx, linear);
+        if (!str)
+            return false;
+
+        args.rval().setString(str);
+        return true;
+    }
+
+    AutoStableStringChars inputChars(cx);
+    if (!inputChars.initTwoByte(cx, linear))
+        return false;
+    mozilla::Range<const char16_t> input = inputChars.twoByteRange();
+
+    // Maximum case mapping length is three characters.
+    static_assert(JSString::MAX_LENGTH < INT32_MAX / 3,
+                  "Case conversion doesn't overflow int32_t indices");
+
+    JSString* str = Call(cx, [&input, &locale](UChar* chars, int32_t size, UErrorCode* status) {
+        return u_strToLower(chars, size, Char16ToUChar(input.begin().get()), input.length(),
+                            CaseMappingLocale(locale), status);
+    });
+    if (!str)
+        return false;
+
+    args.rval().setString(str);
+    return true;
+}
+
+bool
+js::intl_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp)
+{
+    CallArgs args = CallArgsFromVp(argc, vp);
+    MOZ_ASSERT(args.length() == 2);
+    MOZ_ASSERT(args[0].isString());
+    MOZ_ASSERT(args[1].isString());
+
+    RootedLinearString linear(cx, args[0].toString()->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    RootedLinearString locale(cx, args[1].toString()->ensureLinear(cx));
+    if (!locale)
+        return false;
+
+    // Call String.prototype.toUpperCase() for language independent casing.
+    if (!HasLanguageDependentCasing(locale)) {
+        JSString* str = js::StringToUpperCase(cx, linear);
+        if (!str)
+            return false;
+
+        args.rval().setString(str);
+        return true;
+    }
+
+    AutoStableStringChars inputChars(cx);
+    if (!inputChars.initTwoByte(cx, linear))
+        return false;
+    mozilla::Range<const char16_t> input = inputChars.twoByteRange();
+
+    // Maximum case mapping length is three characters.
+    static_assert(JSString::MAX_LENGTH < INT32_MAX / 3,
+                  "Case conversion doesn't overflow int32_t indices");
+
+    JSString* str = Call(cx, [&input, &locale](UChar* chars, int32_t size, UErrorCode* status) {
+        return u_strToUpper(chars, size, Char16ToUChar(input.begin().get()), input.length(),
+                            CaseMappingLocale(locale), status);
+    });
+    if (!str)
+        return false;
+
+    args.rval().setString(str);
+    return true;
+}
+
+
 /******************** Intl ********************/
 
 bool
 js::intl_GetCalendarInfo(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
     MOZ_ASSERT(args.length() == 1);
 
--- a/js/src/builtin/Intl.h
+++ b/js/src/builtin/Intl.h
@@ -662,16 +662,37 @@ intl_GetLocaleInfo(JSContext* cx, unsign
  *   'January',
  *   'Monday',
  *   'AM'
  * ]
  */
 extern MOZ_MUST_USE bool
 intl_ComputeDisplayNames(JSContext* cx, unsigned argc, Value* vp);
 
+
+/******************** String ********************/
+
+/**
+ * Returns the input string converted to lower case based on the language
+ * specific case mappings for the input locale.
+ *
+ * Usage: lowerCase = intl_toLocaleLowerCase(string, locale)
+ */
+extern MOZ_MUST_USE bool
+intl_toLocaleLowerCase(JSContext* cx, unsigned argc, Value* vp);
+
+/**
+ * Returns the input string converted to upper case based on the language
+ * specific case mappings for the input locale.
+ *
+ * Usage: upperCase = intl_toLocaleUpperCase(string, locale)
+ */
+extern MOZ_MUST_USE bool
+intl_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp);
+
 #if ENABLE_INTL_API
 /**
  * Cast char16_t* strings to UChar* strings used by ICU.
  */
 inline const UChar*
 Char16ToUChar(const char16_t* chars)
 {
   return reinterpret_cast<const UChar*>(chars);
--- a/js/src/builtin/Intl.js
+++ b/js/src/builtin/Intl.js
@@ -467,16 +467,73 @@ function CanonicalizeLanguageTag(locale)
         else
             canonical = privateUse;
     }
 
     return canonical;
 }
 
 
+/**
+ * Returns true if the input contains only ASCII alphabetical characters.
+ */
+function IsASCIIAlphaString(s) {
+    assert(typeof s === "string", "IsASCIIAlphaString");
+
+    for (var i = 0; i < s.length; i++) {
+        var c = callFunction(std_String_charCodeAt, s, i);
+        if (!((0x41 <= c && c <= 0x5A) || (0x61 <= c && c <= 0x7A)))
+            return false
+    }
+    return true;
+}
+
+
+/**
+ * Validates and canonicalizes the given language tag.
+ */
+function ValidateAndCanonicalizeLanguageTag(locale) {
+    assert(typeof locale === "string", "ValidateAndCanonicalizeLanguageTag");
+
+    // Handle the common case (a standalone language) first.
+    // Only the following BCP47 subset is accepted:
+    //   Language-Tag  = langtag
+    //   langtag       = language
+    //   language      = 2*3ALPHA ; shortest ISO 639 code
+    // For three character long strings we need to make sure it's not a
+    // private use only language tag, for example "x-x".
+    if (locale.length === 2 || (locale.length === 3 && locale[1] !== "-")) {
+        if (!IsASCIIAlphaString(locale))
+            ThrowRangeError(JSMSG_INVALID_LANGUAGE_TAG, locale);
+        assert(IsStructurallyValidLanguageTag(locale), "2*3ALPHA is a valid language tag");
+
+        // The language subtag is canonicalized to lower case.
+        locale = callFunction(std_String_toLowerCase, locale);
+
+        // langTagMappings doesn't contain any 2*3ALPHA keys, so we don't need
+        // to check for possible replacements in this map.
+        assert(!callFunction(std_Object_hasOwnProperty, langTagMappings, locale),
+               "langTagMappings contains no 2*3ALPHA mappings");
+
+        // Replace deprecated subtags with their preferred values.
+        locale = callFunction(std_Object_hasOwnProperty, langSubtagMappings, locale)
+                 ? langSubtagMappings[locale]
+                 : locale;
+        assert(locale === CanonicalizeLanguageTag(locale), "expected same canonicalization");
+
+        return locale;
+    }
+
+    if (!IsStructurallyValidLanguageTag(locale))
+        ThrowRangeError(JSMSG_INVALID_LANGUAGE_TAG, locale);
+
+    return CanonicalizeLanguageTag(locale);
+}
+
+
 function localeContainsNoUnicodeExtensions(locale) {
     // No "-u-", no possible Unicode extension.
     if (callFunction(std_String_indexOf, locale, "-u-") === -1)
         return true;
 
     // "-u-" within privateuse also isn't one.
     if (callFunction(std_String_indexOf, locale, "-u-") > callFunction(std_String_indexOf, locale, "-x-"))
         return true;
@@ -1653,53 +1710,62 @@ function collatorSearchLocaleData(locale
 
 
 /**
  * Function to be bound and returned by Intl.Collator.prototype.format.
  *
  * Spec: ECMAScript Internationalization API Specification, 12.3.2.
  */
 function collatorCompareToBind(x, y) {
-    // Steps 1.a.i-ii implemented by ECMAScript declaration binding instantiation,
-    // ES5.1 10.5, step 4.d.ii.
-
-    // Step 1.a.iii-v.
+    // Step 1.
+    var collator = this;
+
+    // Step 2.
+    assert(IsObject(collator), "collatorCompareToBind called with non-object");
+    assert(IsCollator(collator), "collatorCompareToBind called with non-Collator");
+
+    // Steps 3-6
     var X = ToString(x);
     var Y = ToString(y);
-    return intl_CompareStrings(this, X, Y);
+
+    // Step 7.
+    return intl_CompareStrings(collator, X, Y);
 }
 
 
 /**
  * Returns a function bound to this Collator that compares x (converted to a
  * String value) and y (converted to a String value),
  * and returns a number less than 0 if x < y, 0 if x = y, or a number greater
  * than 0 if x > y according to the sort order for the locale and collation
  * options of this Collator object.
  *
  * Spec: ECMAScript Internationalization API Specification, 10.3.2.
  */
 function Intl_Collator_compare_get() {
-    // Check "this Collator object" per introduction of section 10.3.
-    if (!IsObject(this) || !IsCollator(this))
+    // Step 1.
+    var collator = this;
+
+    // Steps 2-3.
+    if (!IsObject(collator) || !IsCollator(collator))
         ThrowTypeError(JSMSG_INTL_OBJECT_NOT_INITED, "Collator", "compare", "Collator");
 
-    var internals = getCollatorInternals(this);
-
-    // Step 1.
+    var internals = getCollatorInternals(collator);
+
+    // Step 4.
     if (internals.boundCompare === undefined) {
-        // Step 1.a.
+        // Step 4.a.
         var F = collatorCompareToBind;
 
-        // Steps 1.b-d.
-        var bc = callFunction(FunctionBind, F, this);
+        // Steps 4.b-d.
+        var bc = callFunction(FunctionBind, F, collator);
         internals.boundCompare = bc;
     }
 
-    // Step 2.
+    // Step 5.
     return internals.boundCompare;
 }
 _SetCanonicalName(Intl_Collator_compare_get, "get compare");
 
 
 /**
  * Returns the resolved options for a Collator object.
  *
@@ -2102,22 +2168,28 @@ function numberFormatLocaleData(locale) 
 
 
 /**
  * Function to be bound and returned by Intl.NumberFormat.prototype.format.
  *
  * Spec: ECMAScript Internationalization API Specification, 11.3.2.
  */
 function numberFormatFormatToBind(value) {
-    // Steps 1.a.i implemented by ECMAScript declaration binding instantiation,
-    // ES5.1 10.5, step 4.d.ii.
-
-    // Step 1.a.ii-iii.
+    // Step 1.
+    var nf = this;
+
+    // Step 2.
+    assert(IsObject(nf), "InitializeNumberFormat called with non-object");
+    assert(IsNumberFormat(nf), "InitializeNumberFormat called with non-NumberFormat");
+
+    // Steps 3-4.
     var x = ToNumber(value);
-    return intl_FormatNumber(this, x, /* formatToParts = */ false);
+
+    // Step 5.
+    return intl_FormatNumber(nf, x, /* formatToParts = */ false);
 }
 
 
 /**
  * Returns a function bound to this NumberFormat that returns a String value
  * representing the result of calling ToNumber(value) according to the
  * effective locale and the formatting options of this NumberFormat.
  *
@@ -2790,23 +2862,29 @@ function dateTimeFormatLocaleData(locale
 }
 
 
 /**
  * Function to be bound and returned by Intl.DateTimeFormat.prototype.format.
  *
  * Spec: ECMAScript Internationalization API Specification, 12.3.2.
  */
-function dateTimeFormatFormatToBind() {
-    // Steps 1.a.i-ii
-    var date = arguments.length > 0 ? arguments[0] : undefined;
+function dateTimeFormatFormatToBind(date) {
+    // Step 1.
+    var dtf = this;
+
+    // Step 2.
+    assert(IsObject(dtf), "dateTimeFormatFormatToBind called with non-Object");
+    assert(IsDateTimeFormat(dtf), "dateTimeFormatFormatToBind called with non-DateTimeFormat");
+
+    // Steps 3-4.
     var x = (date === undefined) ? std_Date_now() : ToNumber(date);
 
-    // Step 1.a.iii.
-    return intl_FormatDateTime(this, x, /* formatToParts = */ false);
+    // Step 5.
+    return intl_FormatDateTime(dtf, x, /* formatToParts = */ false);
 }
 
 /**
  * Returns a function bound to this DateTimeFormat that returns a String value
  * representing the result of calling ToNumber(date) according to the
  * effective locale and the formatting options of this DateTimeFormat.
  *
  * Spec: ECMAScript Internationalization API Specification, 12.3.2.
@@ -2828,25 +2906,27 @@ function Intl_DateTimeFormat_format_get(
     }
 
     // Step 5.
     return internals.boundFormat;
 }
 _SetCanonicalName(Intl_DateTimeFormat_format_get, "get format");
 
 
-function Intl_DateTimeFormat_formatToParts() {
+/**
+ * Intl.DateTimeFormat.prototype.formatToParts ( date )
+ */
+function Intl_DateTimeFormat_formatToParts(date) {
     // Steps 1-3.
     var dtf = UnwrapDateTimeFormat(this, "formatToParts");
 
     // Ensure the DateTimeFormat internals are resolved.
     getDateTimeFormatInternals(dtf);
 
     // Steps 4-5.
-    var date = arguments.length > 0 ? arguments[0] : undefined;
     var x = (date === undefined) ? std_Date_now() : ToNumber(date);
 
     // Step 6.
     return intl_FormatDateTime(dtf, x, /* formatToParts = */ true);
 }
 
 
 /**
--- a/js/src/builtin/String.js
+++ b/js/src/builtin/String.js
@@ -596,16 +596,98 @@ function String_localeCompare(that) {
     } else {
         collator = intl_Collator(locales, options);
     }
 
     // Step 7.
     return intl_CompareStrings(collator, S, That);
 }
 
+/**
+ * 13.1.2 String.prototype.toLocaleLowerCase ( [ locales ] )
+ *
+ * ES2017 Intl draft rev 94045d234762ad107a3d09bb6f7381a65f1a2f9b
+ */
+function String_toLocaleLowerCase() {
+    // Step 1.
+    RequireObjectCoercible(this);
+
+    // Step 2.
+    var string = ToString(this);
+
+    // Handle the common cases (no locales argument or a single string
+    // argument) first.
+    var locales = arguments.length > 0 ? arguments[0] : undefined;
+    var requestedLocale;
+    if (locales === undefined) {
+        // Steps 3, 6.
+        requestedLocale = undefined;
+    } else if (typeof locales === "string") {
+        // Steps 3, 5.
+        requestedLocale = ValidateAndCanonicalizeLanguageTag(locales);
+    } else {
+        // Step 3.
+        var requestedLocales = CanonicalizeLocaleList(locales);
+
+        // Steps 4-6.
+        requestedLocale = requestedLocales.length > 0 ? requestedLocales[0] : undefined;
+    }
+
+    // Trivial case: When the input is empty, directly return the empty string.
+    if (string.length === 0)
+        return "";
+
+    if (requestedLocale === undefined)
+        requestedLocale = DefaultLocale();
+
+    // Steps 7-16.
+    return intl_toLocaleLowerCase(string, requestedLocale);
+}
+
+/**
+ * 13.1.3 String.prototype.toLocaleUpperCase ( [ locales ] )
+ *
+ * ES2017 Intl draft rev 94045d234762ad107a3d09bb6f7381a65f1a2f9b
+ */
+function String_toLocaleUpperCase() {
+    // Step 1.
+    RequireObjectCoercible(this);
+
+    // Step 2.
+    var string = ToString(this);
+
+    // Handle the common cases (no locales argument or a single string
+    // argument) first.
+    var locales = arguments.length > 0 ? arguments[0] : undefined;
+    var requestedLocale;
+    if (locales === undefined) {
+        // Steps 3, 6.
+        requestedLocale = undefined;
+    } else if (typeof locales === "string") {
+        // Steps 3, 5.
+        requestedLocale = ValidateAndCanonicalizeLanguageTag(locales);
+    } else {
+        // Step 3.
+        var requestedLocales = CanonicalizeLocaleList(locales);
+
+        // Steps 4-6.
+        requestedLocale = requestedLocales.length > 0 ? requestedLocales[0] : undefined;
+    }
+
+    // Trivial case: When the input is empty, directly return the empty string.
+    if (string.length === 0)
+        return "";
+
+    if (requestedLocale === undefined)
+        requestedLocale = DefaultLocale();
+
+    // Steps 7-16.
+    return intl_toLocaleUpperCase(string, requestedLocale);
+}
+
 /* ES6 Draft May 22, 2014 21.1.2.4 */
 function String_static_raw(callSite, ...substitutions) {
     // Step 1 (implicit).
     // Step 2.
     var numberOfSubstitutions = substitutions.length;
 
     // Steps 3-4.
     var cooked = ToObject(callSite);
@@ -864,24 +946,38 @@ function String_static_trimRight(string)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, "String.trimRight");
     return callFunction(std_String_trimRight, string);
 }
 
 function String_static_toLocaleLowerCase(string) {
     WarnDeprecatedStringMethod(STRING_GENERICS_TO_LOCALE_LOWER_CASE, "toLocaleLowerCase");
     if (arguments.length < 1)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, "String.toLocaleLowerCase");
+/* eslint-disable no-unreachable */
+#if EXPOSE_INTL_API
+    var locales = arguments.length > 1 ? arguments[1] : undefined;
+    return callFunction(String_toLocaleLowerCase, string, locales);
+#else
     return callFunction(std_String_toLocaleLowerCase, string);
+#endif
+/* eslint-enable no-unreachable */
 }
 
 function String_static_toLocaleUpperCase(string) {
     WarnDeprecatedStringMethod(STRING_GENERICS_TO_LOCALE_UPPER_CASE, "toLocaleUpperCase");
     if (arguments.length < 1)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, "String.toLocaleUpperCase");
+/* eslint-disable no-unreachable */
+#if EXPOSE_INTL_API
+    var locales = arguments.length > 1 ? arguments[1] : undefined;
+    return callFunction(String_toLocaleUpperCase, string, locales);
+#else
     return callFunction(std_String_toLocaleUpperCase, string);
+#endif
+/* eslint-enable no-unreachable */
 }
 
 #if EXPOSE_INTL_API
 function String_static_normalize(string) {
     WarnDeprecatedStringMethod(STRING_GENERICS_NORMALIZE, "normalize");
     if (arguments.length < 1)
         ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, "String.normalize");
     var form = arguments.length > 1 ? arguments[1] : undefined;
--- a/js/src/builtin/make_intl_data.py
+++ b/js/src/builtin/make_intl_data.py
@@ -151,16 +151,20 @@ def readRegistry(registry):
             raise Exception("Conflict: lang with extlang mapping: " + lang)
     for extlang in extlangSubtags:
         if extlang in langSubtagMappings:
             raise Exception("Conflict: extlang with lang mapping: " + extlang)
 
     # Special case for heploc.
     langTagMappings["ja-latn-hepburn-heploc"] = "ja-Latn-alalc97"
 
+    # ValidateAndCanonicalizeLanguageTag in Intl.js expects langTagMappings
+    # contains no 2*3ALPHA.
+    assert all(len(lang) > 3 for lang in langTagMappings.iterkeys())
+
     return {"fileDate": fileDate,
             "langTagMappings": langTagMappings,
             "langSubtagMappings": langSubtagMappings,
             "extlangMappings": extlangMappings}
 
 
 def writeMappingsVar(intlData, dict, name, description, fileDate, url):
     """ Writes a variable definition with a mapping table to file intlData.
--- a/js/src/frontend/Parser.cpp
+++ b/js/src/frontend/Parser.cpp
@@ -2495,17 +2495,17 @@ Parser<FullParseHandler>::standaloneFunc
         MOZ_ASSERT(tt == TOK_ASYNC);
         if (!tokenStream.getToken(&tt))
             return null();
     }
     MOZ_ASSERT(tt == TOK_FUNCTION);
 
     if (!tokenStream.getToken(&tt))
         return null();
-    if (generatorKind == StarGenerator && asyncKind == SyncFunction) {
+    if (generatorKind == StarGenerator) {
         MOZ_ASSERT(tt == TOK_MUL);
         if (!tokenStream.getToken(&tt))
             return null();
     }
 
     // Skip function name, if present.
     if (TokenKindIsPossibleIdentifierName(tt)) {
         MOZ_ASSERT(tokenStream.currentName() == fun->explicitName());
@@ -6999,16 +6999,17 @@ JSOpFromPropertyType(PropertyType propTy
         return JSOP_INITPROP_GETTER;
       case PropertyType::Setter:
       case PropertyType::SetterNoExpressionClosure:
         return JSOP_INITPROP_SETTER;
       case PropertyType::Normal:
       case PropertyType::Method:
       case PropertyType::GeneratorMethod:
       case PropertyType::AsyncMethod:
+      case PropertyType::AsyncGeneratorMethod:
       case PropertyType::Constructor:
       case PropertyType::DerivedConstructor:
         return JSOP_INITPROP;
       default:
         MOZ_CRASH("unexpected property type");
     }
 }
 
@@ -7116,17 +7117,18 @@ Parser<ParseHandler>::classDefinition(Yi
 
         PropertyType propType;
         Node propName = propertyName(yieldHandling, classMethods, &propType, &propAtom);
         if (!propName)
             return null();
 
         if (propType != PropertyType::Getter && propType != PropertyType::Setter &&
             propType != PropertyType::Method && propType != PropertyType::GeneratorMethod &&
-            propType != PropertyType::AsyncMethod)
+            propType != PropertyType::AsyncMethod &&
+            propType != PropertyType::AsyncGeneratorMethod)
         {
             errorAt(nameOffset, JSMSG_BAD_METHOD_DEF);
             return null();
         }
 
         if (propType == PropertyType::Getter)
             propType = PropertyType::GetterNoExpressionClosure;
         if (propType == PropertyType::Setter)
@@ -9337,32 +9339,35 @@ Parser<ParseHandler>::propertyName(Yield
 
     bool isGenerator = false;
     bool isAsync = false;
 
     if (ltok == TOK_ASYNC) {
         // AsyncMethod[Yield, Await]:
         //   async [no LineTerminator here] PropertyName[?Yield, ?Await] ...
         //
+        //  AsyncGeneratorMethod[Yield, Await]:
+        //    async [no LineTerminator here] * PropertyName[?Yield, ?Await] ...
+        //
         // PropertyName:
         //   LiteralPropertyName
         //   ComputedPropertyName[?Yield, ?Await]
         //
         // LiteralPropertyName:
         //   IdentifierName
         //   StringLiteral
         //   NumericLiteral
         //
         // ComputedPropertyName[Yield, Await]:
         //   [ ...
         TokenKind tt = TOK_EOF;
         if (!tokenStream.peekTokenSameLine(&tt))
             return null();
         if (tt == TOK_STRING || tt == TOK_NUMBER || tt == TOK_LB ||
-            TokenKindIsPossibleIdentifierName(tt))
+            TokenKindIsPossibleIdentifierName(tt) || tt == TOK_MUL)
         {
             isAsync = true;
             tokenStream.consumeKnownToken(tt);
             ltok = tt;
         }
     }
 
     if (ltok == TOK_MUL) {
@@ -9498,17 +9503,19 @@ Parser<ParseHandler>::propertyName(Yield
         *propType = tt == TOK_ASSIGN ?
                           PropertyType::CoverInitializedName :
                           PropertyType::Shorthand;
         return propName;
     }
 
     if (tt == TOK_LP) {
         tokenStream.ungetToken();
-        if (isGenerator)
+        if (isGenerator && isAsync)
+            *propType = PropertyType::AsyncGeneratorMethod;
+        else if (isGenerator)
             *propType = PropertyType::GeneratorMethod;
         else if (isAsync)
             *propType = PropertyType::AsyncMethod;
         else
             *propType = PropertyType::Method;
         return propName;
     }
 
@@ -9742,36 +9749,39 @@ Parser<ParseHandler>::methodDefinition(u
 
       case PropertyType::SetterNoExpressionClosure:
         kind = SetterNoExpressionClosure;
         break;
 
       case PropertyType::Method:
       case PropertyType::GeneratorMethod:
       case PropertyType::AsyncMethod:
+      case PropertyType::AsyncGeneratorMethod:
         kind = Method;
         break;
 
       case PropertyType::Constructor:
         kind = ClassConstructor;
         break;
 
       case PropertyType::DerivedConstructor:
         kind = DerivedClassConstructor;
         break;
 
       default:
         MOZ_CRASH("unexpected property type");
     }
 
-    GeneratorKind generatorKind = propType == PropertyType::GeneratorMethod
+    GeneratorKind generatorKind = (propType == PropertyType::GeneratorMethod ||
+                                   propType == PropertyType::AsyncGeneratorMethod)
                                   ? StarGenerator
                                   : NotGenerator;
 
-    FunctionAsyncKind asyncKind = (propType == PropertyType::AsyncMethod)
+    FunctionAsyncKind asyncKind = (propType == PropertyType::AsyncMethod ||
+                                   propType == PropertyType::AsyncGeneratorMethod)
                                   ? AsyncFunction
                                   : SyncFunction;
 
     YieldHandling yieldHandling = GetYieldHandling(generatorKind);
 
     Node pn = handler.newFunctionExpression();
     if (!pn)
         return null();
--- a/js/src/frontend/Parser.h
+++ b/js/src/frontend/Parser.h
@@ -573,16 +573,17 @@ enum class PropertyType {
     CoverInitializedName,
     Getter,
     GetterNoExpressionClosure,
     Setter,
     SetterNoExpressionClosure,
     Method,
     GeneratorMethod,
     AsyncMethod,
+    AsyncGeneratorMethod,
     Constructor,
     DerivedConstructor
 };
 
 // Specify a value for an ES6 grammar parametrization.  We have no enum for
 // [Return] because its behavior is exactly equivalent to checking whether
 // we're in a function box -- easier and simpler than passing an extra
 // parameter everywhere.
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -5304,18 +5304,18 @@ JS_GetDefaultLocale(JSContext* cx);
  */
 extern JS_PUBLIC_API(void)
 JS_ResetDefaultLocale(JSContext* cx);
 
 /**
  * Locale specific string conversion and error message callbacks.
  */
 struct JSLocaleCallbacks {
-    JSLocaleToUpperCase     localeToUpperCase;
-    JSLocaleToLowerCase     localeToLowerCase;
+    JSLocaleToUpperCase     localeToUpperCase; // not used #if EXPOSE_INTL_API
+    JSLocaleToLowerCase     localeToLowerCase; // not used #if EXPOSE_INTL_API
     JSLocaleCompare         localeCompare; // not used #if EXPOSE_INTL_API
     JSLocaleToUnicode       localeToUnicode;
 };
 
 /**
  * Establish locale callbacks. The pointer must persist as long as the
  * JSContext.  Passing nullptr restores the default behaviour.
  */
--- a/js/src/jsfun.cpp
+++ b/js/src/jsfun.cpp
@@ -1672,17 +1672,17 @@ FunctionConstructor(JSContext* cx, const
     StringBuffer sb(cx);
 
     if (isAsync) {
         if (!sb.append("async "))
             return false;
     }
     if (!sb.append("function"))
          return false;
-    if (isStarGenerator && !isAsync) {
+    if (isStarGenerator) {
         if (!sb.append('*'))
             return false;
     }
 
     if (!sb.append(" anonymous("))
         return false;
 
     if (args.length() > 1) {
@@ -1757,19 +1757,22 @@ FunctionConstructor(JSContext* cx, const
     if (!proto && (isStarGenerator || isAsync)) {
         proto = GlobalObject::getOrCreateStarGeneratorFunctionPrototype(cx, global);
         if (!proto)
             return false;
     }
 
     // Step 25-32 (reordered).
     RootedObject globalLexical(cx, &global->lexicalEnvironment());
+    JSFunction::Flags flags = (isStarGenerator || isAsync)
+                              ? JSFunction::INTERPRETED_LAMBDA_GENERATOR_OR_ASYNC
+                              : JSFunction::INTERPRETED_LAMBDA;
     AllocKind allocKind = isAsync ? AllocKind::FUNCTION_EXTENDED : AllocKind::FUNCTION;
     RootedFunction fun(cx, NewFunctionWithProto(cx, nullptr, 0,
-                                                JSFunction::INTERPRETED_LAMBDA, globalLexical,
+                                                flags, globalLexical,
                                                 anonymousAtom, proto,
                                                 allocKind, TenuredObject));
     if (!fun)
         return false;
 
     if (!JSFunction::setTypeForScriptedFunction(cx, fun))
         return false;
 
--- a/js/src/jsstr.cpp
+++ b/js/src/jsstr.cpp
@@ -32,16 +32,17 @@
 #include "jsutil.h"
 
 #include "builtin/Intl.h"
 #include "builtin/RegExp.h"
 #include "jit/InlinableNatives.h"
 #include "js/Conversions.h"
 #include "js/UniquePtr.h"
 #if ENABLE_INTL_API
+#include "unicode/uchar.h"
 #include "unicode/unorm2.h"
 #endif
 #include "vm/GlobalObject.h"
 #include "vm/Interpreter.h"
 #include "vm/Opcodes.h"
 #include "vm/Printer.h"
 #include "vm/RegExpObject.h"
 #include "vm/RegExpStatics.h"
@@ -598,28 +599,221 @@ js::SubstringKernel(JSContext* cx, Handl
 
         return JSRope::new_<CanGC>(cx, lhs, rhs, len);
     }
 
     return NewDependentString(cx, str, begin, len);
 }
 
 template <typename CharT>
+static auto
+ReallocChars(JSContext* cx, UniquePtr<CharT[], JS::FreePolicy> chars, size_t oldLength,
+             size_t newLength)
+  -> decltype(chars)
+{
+    using AnyCharPtr = decltype(chars);
+
+    CharT* oldChars = chars.release();
+    CharT* newChars = cx->pod_realloc(oldChars, oldLength, newLength);
+    if (!newChars) {
+        js_free(oldChars);
+        return AnyCharPtr();
+    }
+
+    return AnyCharPtr(newChars);
+}
+
+/**
+ * U+03A3 GREEK CAPITAL LETTER SIGMA has two different lower case mappings
+ * depending on its context:
+ * When it's preceded by a cased character and not followed by another cased
+ * character, its lower case form is U+03C2 GREEK SMALL LETTER FINAL SIGMA.
+ * Otherwise its lower case mapping is U+03C3 GREEK SMALL LETTER SIGMA.
+ *
+ * Unicode 9.0, §3.13 Default Case Algorithms
+ */
+static char16_t
+Final_Sigma(const char16_t* chars, size_t length, size_t index)
+{
+    MOZ_ASSERT(index < length);
+    MOZ_ASSERT(chars[index] == unicode::GREEK_CAPITAL_LETTER_SIGMA);
+    MOZ_ASSERT(unicode::ToLowerCase(unicode::GREEK_CAPITAL_LETTER_SIGMA) ==
+               unicode::GREEK_SMALL_LETTER_SIGMA);
+
+#if ENABLE_INTL_API
+    // Tell the analysis the BinaryProperty.contains function pointer called by
+    // u_hasBinaryProperty cannot GC.
+    JS::AutoSuppressGCAnalysis nogc;
+
+    bool precededByCased = false;
+    for (size_t i = index; i > 0; ) {
+        char16_t c = chars[--i];
+        uint32_t codePoint = c;
+        if (unicode::IsTrailSurrogate(c) && i > 0) {
+            char16_t lead = chars[i - 1];
+            if (unicode::IsLeadSurrogate(lead)) {
+                codePoint = unicode::UTF16Decode(lead, c);
+                i--;
+            }
+        }
+
+        // Ignore any characters with the property Case_Ignorable.
+        // NB: We need to skip over all Case_Ignorable characters, even when
+        // they also have the Cased binary property.
+        if (u_hasBinaryProperty(codePoint, UCHAR_CASE_IGNORABLE))
+            continue;
+
+        precededByCased = u_hasBinaryProperty(codePoint, UCHAR_CASED);
+        break;
+    }
+    if (!precededByCased)
+        return unicode::GREEK_SMALL_LETTER_SIGMA;
+
+    bool followedByCased = false;
+    for (size_t i = index + 1; i < length; ) {
+        char16_t c = chars[i++];
+        uint32_t codePoint = c;
+        if (unicode::IsLeadSurrogate(c) && i < length) {
+            char16_t trail = chars[i];
+            if (unicode::IsTrailSurrogate(trail)) {
+                codePoint = unicode::UTF16Decode(c, trail);
+                i++;
+            }
+        }
+
+        // Ignore any characters with the property Case_Ignorable.
+        // NB: We need to skip over all Case_Ignorable characters, even when
+        // they also have the Cased binary property.
+        if (u_hasBinaryProperty(codePoint, UCHAR_CASE_IGNORABLE))
+            continue;
+
+        followedByCased = u_hasBinaryProperty(codePoint, UCHAR_CASED);
+        break;
+    }
+    if (!followedByCased)
+        return unicode::GREEK_SMALL_LETTER_FINAL_SIGMA;
+#endif
+
+    return unicode::GREEK_SMALL_LETTER_SIGMA;
+}
+
+static Latin1Char
+Final_Sigma(const Latin1Char* chars, size_t length, size_t index)
+{
+    MOZ_ASSERT_UNREACHABLE("U+03A3 is not a Latin-1 character");
+    return 0;
+}
+
+// If |srcLength == destLength| is true, the destination buffer was allocated
+// with the same size as the source buffer. When we append characters which
+// have special casing mappings, we test |srcLength == destLength| to decide
+// if we need to back out and reallocate a sufficiently large destination
+// buffer. Otherwise the destination buffer was allocated with the correct
+// size to hold all lower case mapped characters, i.e.
+// |destLength == ToLowerCaseLength(srcChars, 0, srcLength)| is true.
+template <typename CharT>
+static size_t
+ToLowerCaseImpl(CharT* destChars, const CharT* srcChars, size_t startIndex, size_t srcLength,
+                size_t destLength)
+{
+    MOZ_ASSERT(startIndex < srcLength);
+    MOZ_ASSERT(srcLength <= destLength);
+    MOZ_ASSERT_IF((IsSame<CharT, Latin1Char>::value), srcLength == destLength);
+
+    size_t j = startIndex;
+    for (size_t i = startIndex; i < srcLength; i++) {
+        char16_t c = srcChars[i];
+        if (!IsSame<CharT, Latin1Char>::value) {
+            if (unicode::IsLeadSurrogate(c) && i + 1 < srcLength) {
+                char16_t trail = srcChars[i + 1];
+                if (unicode::IsTrailSurrogate(trail)) {
+                    trail = unicode::ToLowerCaseNonBMPTrail(c, trail);
+                    destChars[j++] = c;
+                    destChars[j++] = trail;
+                    i++;
+                    continue;
+                }
+            }
+
+            // Special case: U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
+            // lowercases to <U+0069 U+0307>.
+            if (c == unicode::LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) {
+                // Return if the output buffer is too small.
+                if (srcLength == destLength)
+                    return i;
+
+                destChars[j++] = CharT('i');
+                destChars[j++] = CharT(unicode::COMBINING_DOT_ABOVE);
+                continue;
+            }
+
+            // Special case: U+03A3 GREEK CAPITAL LETTER SIGMA lowercases to
+            // one of two codepoints depending on context.
+            if (c == unicode::GREEK_CAPITAL_LETTER_SIGMA) {
+                destChars[j++] = Final_Sigma(srcChars, srcLength, i);
+                continue;
+            }
+        }
+
+        c = unicode::ToLowerCase(c);
+        MOZ_ASSERT_IF((IsSame<CharT, Latin1Char>::value), c <= JSString::MAX_LATIN1_CHAR);
+        destChars[j++] = c;
+    }
+
+    MOZ_ASSERT(j == destLength);
+    destChars[destLength] = '\0';
+
+    return srcLength;
+}
+
+static size_t
+ToLowerCaseLength(const char16_t* chars, size_t startIndex, size_t length)
+{
+    size_t lowerLength = length;
+    for (size_t i = startIndex; i < length; i++) {
+        char16_t c = chars[i];
+
+        // U+0130 is lowercased to the two-element sequence <U+0069 U+0307>.
+        if (c == unicode::LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE)
+            lowerLength += 1;
+    }
+    return lowerLength;
+}
+
+static size_t
+ToLowerCaseLength(const Latin1Char* chars, size_t startIndex, size_t length)
+{
+    MOZ_ASSERT_UNREACHABLE("never called for Latin-1 strings");
+    return 0;
+}
+
+template <typename CharT>
 static JSString*
 ToLowerCase(JSContext* cx, JSLinearString* str)
 {
-    // Unlike toUpperCase, toLowerCase has the nice invariant that if the input
-    // is a Latin1 string, the output is also a Latin1 string.
-    UniquePtr<CharT[], JS::FreePolicy> newChars;
-    size_t length = str->length();
+    // Unlike toUpperCase, toLowerCase has the nice invariant that if the
+    // input is a Latin-1 string, the output is also a Latin-1 string.
+    using AnyCharPtr = UniquePtr<CharT[], JS::FreePolicy>;
+
+    AnyCharPtr newChars;
+    const size_t length = str->length();
+    size_t resultLength;
     {
         AutoCheckCannotGC nogc;
         const CharT* chars = str->chars<CharT>(nogc);
 
-        // Look for the first upper case character.
+        // We don't need extra special casing checks in the loop below,
+        // because U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE and U+03A3
+        // GREEK CAPITAL LETTER SIGMA already have simple lower case mappings.
+        MOZ_ASSERT(unicode::CanLowerCase(unicode::LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE),
+                   "U+0130 has a simple lower case mapping");
+        MOZ_ASSERT(unicode::CanLowerCase(unicode::GREEK_CAPITAL_LETTER_SIGMA),
+                   "U+03A3 has a simple lower case mapping");
+
+        // Look for the first character that changes when lowercased.
         size_t i = 0;
         for (; i < length; i++) {
             char16_t c = chars[i];
             if (!IsSame<CharT, Latin1Char>::value) {
                 if (unicode::IsLeadSurrogate(c) && i + 1 < length) {
                     char16_t trail = chars[i + 1];
                     if (unicode::IsTrailSurrogate(trail)) {
                         if (unicode::CanLowerCaseNonBMP(c, trail))
@@ -629,155 +823,303 @@ ToLowerCase(JSContext* cx, JSLinearStrin
                         continue;
                     }
                 }
             }
             if (unicode::CanLowerCase(c))
                 break;
         }
 
-        // If all characters are lower case, return the input string.
+        // If no character needs to change, return the input string.
         if (i == length)
             return str;
 
-        newChars = cx->make_pod_array<CharT>(length + 1);
+        resultLength = length;
+        newChars = cx->make_pod_array<CharT>(resultLength + 1);
         if (!newChars)
             return nullptr;
 
         PodCopy(newChars.get(), chars, i);
 
-        for (; i < length; i++) {
-            char16_t c = chars[i];
-            if (!IsSame<CharT, Latin1Char>::value) {
-                if (unicode::IsLeadSurrogate(c) && i + 1 < length) {
-                    char16_t trail = chars[i + 1];
-                    if (unicode::IsTrailSurrogate(trail)) {
-                        trail = unicode::ToLowerCaseNonBMPTrail(c, trail);
-                        newChars[i] = c;
-                        newChars[i + 1] = trail;
-                        i++;
-                        continue;
-                    }
-                }
-            }
-
-            c = unicode::ToLowerCase(c);
-            MOZ_ASSERT_IF((IsSame<CharT, Latin1Char>::value), c <= JSString::MAX_LATIN1_CHAR);
-            newChars[i] = c;
+        size_t readChars = ToLowerCaseImpl(newChars.get(), chars, i, length, resultLength);
+        if (readChars < length) {
+            MOZ_ASSERT((!IsSame<CharT, Latin1Char>::value),
+                       "Latin-1 strings don't have special lower case mappings");
+            resultLength = ToLowerCaseLength(chars, readChars, length);
+
+            AnyCharPtr buf = ReallocChars(cx, Move(newChars), length + 1, resultLength + 1);
+            if (!buf)
+                return nullptr;
+
+            newChars = Move(buf);
+
+            MOZ_ALWAYS_TRUE(length ==
+                ToLowerCaseImpl(newChars.get(), chars, readChars, length, resultLength));
         }
-
-        newChars[length] = 0;
     }
 
-    JSString* res = NewStringDontDeflate<CanGC>(cx, newChars.get(), length);
+    JSString* res = NewStringDontDeflate<CanGC>(cx, newChars.get(), resultLength);
     if (!res)
         return nullptr;
 
     mozilla::Unused << newChars.release();
     return res;
 }
 
-static inline bool
-ToLowerCaseHelper(JSContext* cx, const CallArgs& args)
+JSString*
+js::StringToLowerCase(JSContext* cx, HandleLinearString string)
 {
-    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
-    if (!str)
-        return false;
-
-    JSLinearString* linear = str->ensureLinear(cx);
-    if (!linear)
-        return false;
-
-    if (linear->hasLatin1Chars())
-        str = ToLowerCase<Latin1Char>(cx, linear);
-    else
-        str = ToLowerCase<char16_t>(cx, linear);
-    if (!str)
-        return false;
-
-    args.rval().setString(str);
-    return true;
+    if (string->hasLatin1Chars())
+        return ToLowerCase<Latin1Char>(cx, string);
+    return ToLowerCase<char16_t>(cx, string);
 }
 
 bool
 js::str_toLowerCase(JSContext* cx, unsigned argc, Value* vp)
 {
-    return ToLowerCaseHelper(cx, CallArgsFromVp(argc, vp));
+    CallArgs args = CallArgsFromVp(argc, vp);
+
+    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
+    if (!str)
+        return false;
+
+    RootedLinearString linear(cx, str->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    JSString* result = StringToLowerCase(cx, linear);
+    if (!result)
+        return false;
+
+    args.rval().setString(result);
+    return true;
 }
 
+#if !EXPOSE_INTL_API
 bool
 js::str_toLocaleLowerCase(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
 
+    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
+    if (!str)
+        return false;
+
     /*
      * Forcefully ignore the first (or any) argument and return toLowerCase(),
      * ECMA has reserved that argument, presumably for defining the locale.
      */
     if (cx->runtime()->localeCallbacks && cx->runtime()->localeCallbacks->localeToLowerCase) {
-        RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
-        if (!str)
-            return false;
-
         RootedValue result(cx);
         if (!cx->runtime()->localeCallbacks->localeToLowerCase(cx, str, &result))
             return false;
 
         args.rval().set(result);
         return true;
     }
 
-    return ToLowerCaseHelper(cx, args);
+    RootedLinearString linear(cx, str->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    JSString* result = StringToLowerCase(cx, linear);
+    if (!result)
+        return false;
+
+    args.rval().setString(result);
+    return true;
 }
-
-template <typename DestChar, typename SrcChar>
-static void
-ToUpperCaseImpl(DestChar* destChars, const SrcChar* srcChars, size_t firstLowerCase, size_t length)
+#endif /* !EXPOSE_INTL_API */
+
+static inline bool
+CanUpperCaseSpecialCasing(Latin1Char charCode)
+{
+    // Handle U+00DF LATIN SMALL LETTER SHARP S inline, all other Latin-1
+    // characters don't have special casing rules.
+    MOZ_ASSERT_IF(charCode != unicode::LATIN_SMALL_LETTER_SHARP_S,
+                  !unicode::CanUpperCaseSpecialCasing(charCode));
+
+    return charCode == unicode::LATIN_SMALL_LETTER_SHARP_S;
+}
+
+static inline bool
+CanUpperCaseSpecialCasing(char16_t charCode)
+{
+    return unicode::CanUpperCaseSpecialCasing(charCode);
+}
+
+static inline size_t
+LengthUpperCaseSpecialCasing(Latin1Char charCode)
 {
-    MOZ_ASSERT(firstLowerCase < length);
-
-    for (size_t i = 0; i < firstLowerCase; i++)
-        destChars[i] = srcChars[i];
-
-    for (size_t i = firstLowerCase; i < length; i++) {
+    // U+00DF LATIN SMALL LETTER SHARP S is uppercased to two 'S'.
+    MOZ_ASSERT(charCode == unicode::LATIN_SMALL_LETTER_SHARP_S);
+
+    return 2;
+}
+
+static inline size_t
+LengthUpperCaseSpecialCasing(char16_t charCode)
+{
+    MOZ_ASSERT(CanUpperCaseSpecialCasing(charCode));
+
+    return unicode::LengthUpperCaseSpecialCasing(charCode);
+}
+
+static inline void
+AppendUpperCaseSpecialCasing(char16_t charCode, Latin1Char* elements, size_t* index)
+{
+    // U+00DF LATIN SMALL LETTER SHARP S is uppercased to two 'S'.
+    MOZ_ASSERT(charCode == unicode::LATIN_SMALL_LETTER_SHARP_S);
+    static_assert('S' <= JSString::MAX_LATIN1_CHAR, "'S' is a Latin-1 character");
+
+    elements[(*index)++] = 'S';
+    elements[(*index)++] = 'S';
+}
+
+static inline void
+AppendUpperCaseSpecialCasing(char16_t charCode, char16_t* elements, size_t* index)
+{
+    unicode::AppendUpperCaseSpecialCasing(charCode, elements, index);
+}
+
+// See ToLowerCaseImpl for an explanation of the parameters.
+template <typename DestChar, typename SrcChar>
+static size_t
+ToUpperCaseImpl(DestChar* destChars, const SrcChar* srcChars, size_t startIndex, size_t srcLength,
+                size_t destLength)
+{
+    static_assert(IsSame<SrcChar, Latin1Char>::value || !IsSame<DestChar, Latin1Char>::value,
+                  "cannot write non-Latin-1 characters into Latin-1 string");
+    MOZ_ASSERT(startIndex < srcLength);
+    MOZ_ASSERT(srcLength <= destLength);
+
+    size_t j = startIndex;
+    for (size_t i = startIndex; i < srcLength; i++) {
         char16_t c = srcChars[i];
         if (!IsSame<DestChar, Latin1Char>::value) {
-            if (unicode::IsLeadSurrogate(c) && i + 1 < length) {
+            if (unicode::IsLeadSurrogate(c) && i + 1 < srcLength) {
                 char16_t trail = srcChars[i + 1];
                 if (unicode::IsTrailSurrogate(trail)) {
                     trail = unicode::ToUpperCaseNonBMPTrail(c, trail);
-                    destChars[i] = c;
-                    destChars[i + 1] = trail;
+                    destChars[j++] = c;
+                    destChars[j++] = trail;
                     i++;
                     continue;
                 }
             }
         }
+
+        if (MOZ_UNLIKELY(c > 0x7f && CanUpperCaseSpecialCasing(static_cast<SrcChar>(c)))) {
+            // Return if the output buffer is too small.
+            if (srcLength == destLength)
+                return i;
+
+            AppendUpperCaseSpecialCasing(c, destChars, &j);
+            continue;
+        }
+
         c = unicode::ToUpperCase(c);
         MOZ_ASSERT_IF((IsSame<DestChar, Latin1Char>::value), c <= JSString::MAX_LATIN1_CHAR);
-        destChars[i] = c;
+        destChars[j++] = c;
+    }
+
+    MOZ_ASSERT(j == destLength);
+    destChars[destLength] = '\0';
+
+    return srcLength;
+}
+
+// Explicit instantiation so we don't hit the static_assert from above.
+static bool
+ToUpperCaseImpl(Latin1Char* destChars, const char16_t* srcChars, size_t startIndex,
+                size_t srcLength, size_t destLength)
+{
+    MOZ_ASSERT_UNREACHABLE("cannot write non-Latin-1 characters into Latin-1 string");
+    return false;
+}
+
+template <typename CharT>
+static size_t
+ToUpperCaseLength(const CharT* chars, size_t startIndex, size_t length)
+{
+    size_t upperLength = length;
+    for (size_t i = startIndex; i < length; i++) {
+        char16_t c = chars[i];
+
+        if (c > 0x7f && CanUpperCaseSpecialCasing(static_cast<CharT>(c)))
+            upperLength += LengthUpperCaseSpecialCasing(static_cast<CharT>(c)) - 1;
     }
-
-    destChars[length] = '\0';
+    return upperLength;
+}
+
+template <typename DestChar, typename SrcChar>
+static inline void
+CopyChars(DestChar* destChars, const SrcChar* srcChars, size_t length)
+{
+    static_assert(!IsSame<DestChar, SrcChar>::value, "PodCopy is used for the same type case");
+    for (size_t i = 0; i < length; i++)
+        destChars[i] = srcChars[i];
+}
+
+template <typename CharT>
+static inline void
+CopyChars(CharT* destChars, const CharT* srcChars, size_t length)
+{
+    PodCopy(destChars, srcChars, length);
+}
+
+template <typename DestChar, typename SrcChar>
+static inline UniquePtr<DestChar[], JS::FreePolicy>
+ToUpperCase(JSContext* cx, const SrcChar* chars, size_t startIndex, size_t length,
+            size_t* resultLength)
+{
+    MOZ_ASSERT(startIndex < length);
+
+    using DestCharPtr = UniquePtr<DestChar[], JS::FreePolicy>;
+
+    *resultLength = length;
+    DestCharPtr buf = cx->make_pod_array<DestChar>(length + 1);
+    if (!buf)
+        return buf;
+
+    CopyChars(buf.get(), chars, startIndex);
+
+    size_t readChars = ToUpperCaseImpl(buf.get(), chars, startIndex, length, length);
+    if (readChars < length) {
+        size_t actualLength = ToUpperCaseLength(chars, readChars, length);
+
+        *resultLength = actualLength;
+        DestCharPtr buf2 = ReallocChars(cx, Move(buf), length + 1, actualLength + 1);
+        if (!buf2)
+            return buf2;
+
+        buf = Move(buf2);
+
+        MOZ_ALWAYS_TRUE(length ==
+            ToUpperCaseImpl(buf.get(), chars, readChars, length, actualLength));
+    }
+
+    return buf;
 }
 
 template <typename CharT>
 static JSString*
 ToUpperCase(JSContext* cx, JSLinearString* str)
 {
-    typedef UniquePtr<Latin1Char[], JS::FreePolicy> Latin1CharPtr;
-    typedef UniquePtr<char16_t[], JS::FreePolicy> TwoByteCharPtr;
+    using Latin1CharPtr = UniquePtr<Latin1Char[], JS::FreePolicy>;
+    using TwoByteCharPtr = UniquePtr<char16_t[], JS::FreePolicy>;
 
     mozilla::MaybeOneOf<Latin1CharPtr, TwoByteCharPtr> newChars;
-    size_t length = str->length();
+    const size_t length = str->length();
+    size_t resultLength;
     {
         AutoCheckCannotGC nogc;
         const CharT* chars = str->chars<CharT>(nogc);
 
-        // Look for the first lower case character.
+        // Look for the first character that changes when uppercased.
         size_t i = 0;
         for (; i < length; i++) {
             char16_t c = chars[i];
             if (!IsSame<CharT, Latin1Char>::value) {
                 if (unicode::IsLeadSurrogate(c) && i + 1 < length) {
                     char16_t trail = chars[i + 1];
                     if (unicode::IsTrailSurrogate(trail)) {
                         if (unicode::CanUpperCaseNonBMP(c, trail))
@@ -785,129 +1127,151 @@ ToUpperCase(JSContext* cx, JSLinearStrin
 
                         i++;
                         continue;
                     }
                 }
             }
             if (unicode::CanUpperCase(c))
                 break;
+            if (MOZ_UNLIKELY(c > 0x7f && CanUpperCaseSpecialCasing(static_cast<CharT>(c))))
+                break;
         }
 
-        // If all characters are upper case, return the input string.
+        // If no character needs to change, return the input string.
         if (i == length)
             return str;
 
-        // If the string is Latin1, check if it contains the MICRO SIGN (0xb5)
-        // or SMALL LETTER Y WITH DIAERESIS (0xff) character. The corresponding
-        // upper case characters are not in the Latin1 range.
+        // The string changes when uppercased, so we must create a new string.
+        // Can it be Latin-1?
+        //
+        // If the original string is Latin-1, it can -- unless the string
+        // contains U+00B5 MICRO SIGN or U+00FF SMALL LETTER Y WITH DIAERESIS,
+        // the only Latin-1 codepoints that don't uppercase within Latin-1.
+        // Search for those codepoints to decide whether the new string can be
+        // Latin-1.
+        // If the original string is a two-byte string, its uppercase form is
+        // so rarely Latin-1 that we don't even consider creating a new
+        // Latin-1 string.
         bool resultIsLatin1;
         if (IsSame<CharT, Latin1Char>::value) {
             resultIsLatin1 = true;
             for (size_t j = i; j < length; j++) {
                 Latin1Char c = chars[j];
-                if (c == 0xb5 || c == 0xff) {
+                if (c == unicode::MICRO_SIGN ||
+                    c == unicode::LATIN_SMALL_LETTER_Y_WITH_DIAERESIS)
+                {
                     MOZ_ASSERT(unicode::ToUpperCase(c) > JSString::MAX_LATIN1_CHAR);
                     resultIsLatin1 = false;
                     break;
                 } else {
                     MOZ_ASSERT(unicode::ToUpperCase(c) <= JSString::MAX_LATIN1_CHAR);
                 }
             }
         } else {
             resultIsLatin1 = false;
         }
 
         if (resultIsLatin1) {
-            Latin1CharPtr buf = cx->make_pod_array<Latin1Char>(length + 1);
+            Latin1CharPtr buf = ToUpperCase<Latin1Char>(cx, chars, i, length, &resultLength);
             if (!buf)
                 return nullptr;
 
-            ToUpperCaseImpl(buf.get(), chars, i, length);
             newChars.construct<Latin1CharPtr>(Move(buf));
         } else {
-            TwoByteCharPtr buf = cx->make_pod_array<char16_t>(length + 1);
+            TwoByteCharPtr buf = ToUpperCase<char16_t>(cx, chars, i, length, &resultLength);
             if (!buf)
                 return nullptr;
 
-            ToUpperCaseImpl(buf.get(), chars, i, length);
             newChars.construct<TwoByteCharPtr>(Move(buf));
         }
     }
 
     JSString* res;
     if (newChars.constructed<Latin1CharPtr>()) {
-        res = NewStringDontDeflate<CanGC>(cx, newChars.ref<Latin1CharPtr>().get(), length);
+        res = NewStringDontDeflate<CanGC>(cx, newChars.ref<Latin1CharPtr>().get(), resultLength);
         if (!res)
             return nullptr;
 
         mozilla::Unused << newChars.ref<Latin1CharPtr>().release();
     } else {
-        res = NewStringDontDeflate<CanGC>(cx, newChars.ref<TwoByteCharPtr>().get(), length);
+        res = NewStringDontDeflate<CanGC>(cx, newChars.ref<TwoByteCharPtr>().get(), resultLength);
         if (!res)
             return nullptr;
 
         mozilla::Unused << newChars.ref<TwoByteCharPtr>().release();
     }
 
     return res;
 }
 
-static bool
-ToUpperCaseHelper(JSContext* cx, const CallArgs& args)
+JSString*
+js::StringToUpperCase(JSContext* cx, HandleLinearString string)
 {
-    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
-    if (!str)
-        return false;
-
-    JSLinearString* linear = str->ensureLinear(cx);
-    if (!linear)
-        return false;
-
-    if (linear->hasLatin1Chars())
-        str = ToUpperCase<Latin1Char>(cx, linear);
-    else
-        str = ToUpperCase<char16_t>(cx, linear);
-    if (!str)
-        return false;
-
-    args.rval().setString(str);
-    return true;
+    if (string->hasLatin1Chars())
+        return ToUpperCase<Latin1Char>(cx, string);
+    return ToUpperCase<char16_t>(cx, string);
 }
 
 bool
 js::str_toUpperCase(JSContext* cx, unsigned argc, Value* vp)
 {
-    return ToUpperCaseHelper(cx, CallArgsFromVp(argc, vp));
+    CallArgs args = CallArgsFromVp(argc, vp);
+
+    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
+    if (!str)
+        return false;
+
+    RootedLinearString linear(cx, str->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    JSString* result = StringToUpperCase(cx, linear);
+    if (!result)
+        return false;
+
+    args.rval().setString(result);
+    return true;
 }
 
+#if !EXPOSE_INTL_API
 bool
 js::str_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
 
+    RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
+    if (!str)
+        return false;
+
     /*
      * Forcefully ignore the first (or any) argument and return toUpperCase(),
      * ECMA has reserved that argument, presumably for defining the locale.
      */
     if (cx->runtime()->localeCallbacks && cx->runtime()->localeCallbacks->localeToUpperCase) {
-        RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
-        if (!str)
-            return false;
-
         RootedValue result(cx);
         if (!cx->runtime()->localeCallbacks->localeToUpperCase(cx, str, &result))
             return false;
 
         args.rval().set(result);
         return true;
     }
 
-    return ToUpperCaseHelper(cx, args);
+    RootedLinearString linear(cx, str->ensureLinear(cx));
+    if (!linear)
+        return false;
+
+    JSString* result = StringToUpperCase(cx, linear);
+    if (!result)
+        return false;
+
+    args.rval().setString(result);
+    return true;
 }
+#endif /* !EXPOSE_INTL_API */
 
 #if !EXPOSE_INTL_API
 bool
 js::str_localeCompare(JSContext* cx, unsigned argc, Value* vp)
 {
     CallArgs args = CallArgsFromVp(argc, vp);
     RootedString str(cx, ToStringForStringFunction(cx, args.thisv()));
     if (!str)
@@ -976,17 +1340,17 @@ js::str_normalize(JSContext* cx, unsigne
             return false;
         }
     }
 
     JSLinearString* linear = str->ensureLinear(cx);
     if (!linear)
         return false;
 
-    // Latin1 strings are already in Normalization Form C.
+    // Latin-1 strings are already in Normalization Form C.
     if (form == NFC && linear->hasLatin1Chars()) {
         // Step 7.
         args.rval().setString(str);
         return true;
     }
 
     // Step 6.
     AutoStableStringChars stableChars(cx);
@@ -1392,17 +1756,17 @@ StringMatch(const TextChar* text, uint32
         int index = BoyerMooreHorspool(text, textLen, pat, patLen);
         if (index != sBMHBadPattern)
             return index;
     }
 
     /*
      * For big patterns with large potential overlap we want the SIMD-optimized
      * speed of memcmp. For small patterns, a simple loop is faster. We also can't
-     * use memcmp if one of the strings is TwoByte and the other is Latin1.
+     * use memcmp if one of the strings is TwoByte and the other is Latin-1.
      *
      * FIXME: Linux memcmp performance is sad and the manual loop is faster.
      */
     return
 #if !defined(__linux__)
         (patLen > 128 && IsSame<TextChar, PatChar>::value)
             ? Matcher<MemCmp<TextChar, PatChar>, TextChar, PatChar>(text, textLen, pat, patLen)
             :
@@ -1589,17 +1953,17 @@ RopeMatch(JSContext* cx, JSRope* text, J
     LinearStringVector strings;
 
     /*
      * We don't want to do rope matching if there is a poor node-to-char ratio,
      * since this means spending a lot of time in the match loop below. We also
      * need to build the list of leaf nodes. Do both here: iterate over the
      * nodes so long as there are not too many.
      *
-     * We also don't use rope matching if the rope contains both Latin1 and
+     * We also don't use rope matching if the rope contains both Latin-1 and
      * TwoByte nodes, to simplify the match algorithm.
      */
     {
         size_t threshold = text->length() >> sRopeMatchThresholdRatioLog2;
         StringSegmentRange r(cx);
         if (!r.init(text))
             return false;
 
@@ -2660,21 +3024,23 @@ static const JSFunctionSpec string_metho
     JS_FN("includes",          str_includes,          1,0),
     JS_FN("indexOf",           str_indexOf,           1,0),
     JS_FN("lastIndexOf",       str_lastIndexOf,       1,0),
     JS_FN("startsWith",        str_startsWith,        1,0),
     JS_FN("endsWith",          str_endsWith,          1,0),
     JS_FN("trim",              str_trim,              0,0),
     JS_FN("trimLeft",          str_trimLeft,          0,0),
     JS_FN("trimRight",         str_trimRight,         0,0),
+#if EXPOSE_INTL_API
+    JS_SELF_HOSTED_FN("toLocaleLowerCase", "String_toLocaleLowerCase", 0,0),
+    JS_SELF_HOSTED_FN("toLocaleUpperCase", "String_toLocaleUpperCase", 0,0),
+    JS_SELF_HOSTED_FN("localeCompare", "String_localeCompare", 1,0),
+#else
     JS_FN("toLocaleLowerCase", str_toLocaleLowerCase, 0,0),
     JS_FN("toLocaleUpperCase", str_toLocaleUpperCase, 0,0),
-#if EXPOSE_INTL_API
-    JS_SELF_HOSTED_FN("localeCompare", "String_localeCompare", 1,0),
-#else
     JS_FN("localeCompare",     str_localeCompare,     1,0),
 #endif
     JS_SELF_HOSTED_FN("repeat", "String_repeat",      1,0),
 #if EXPOSE_INTL_API
     JS_FN("normalize",         str_normalize,         0,0),
 #endif
 
     /* Perl-ish methods (search is actually Python-esque). */
@@ -2771,17 +3137,17 @@ js::str_fromCharCode(JSContext* cx, unsi
     // Optimize the single-char case.
     if (args.length() == 1)
         return str_fromCharCode_one_arg(cx, args[0], args.rval());
 
     // Optimize the case where the result will definitely fit in an inline
     // string (thin or fat) and so we don't need to malloc the chars. (We could
     // cover some cases where args.length() goes up to
     // JSFatInlineString::MAX_LENGTH_LATIN1 if we also checked if the chars are
-    // all Latin1, but it doesn't seem worth the effort.)
+    // all Latin-1, but it doesn't seem worth the effort.)
     if (args.length() <= JSFatInlineString::MAX_LENGTH_TWO_BYTE)
         return str_fromCharCode_few_args(cx, args);
 
     char16_t* chars = cx->pod_malloc<char16_t>(args.length() + 1);
     if (!chars)
         return false;
     for (unsigned i = 0; i < args.length(); i++) {
         uint16_t code;
@@ -2914,17 +3280,17 @@ js::str_fromCodePoint(JSContext* cx, uns
     // Optimize the single code-point case.
     if (args.length() == 1)
         return str_fromCodePoint_one_arg(cx, args[0], args.rval());
 
     // Optimize the case where the result will definitely fit in an inline
     // string (thin or fat) and so we don't need to malloc the chars. (We could
     // cover some cases where |args.length()| goes up to
     // JSFatInlineString::MAX_LENGTH_LATIN1 / 2 if we also checked if the chars
-    // are all Latin1, but it doesn't seem worth the effort.)
+    // are all Latin-1, but it doesn't seem worth the effort.)
     if (args.length() <= JSFatInlineString::MAX_LENGTH_TWO_BYTE / 2)
         return str_fromCodePoint_few_args(cx, args);
 
     // Steps 1-2 (omitted).
 
     // Step 3.
     static_assert(ARGS_LENGTH_MAX < std::numeric_limits<size_t>::max() / 2,
                   "|args.length() * 2 + 1| does not overflow");
--- a/js/src/jsstr.h
+++ b/js/src/jsstr.h
@@ -366,23 +366,23 @@ extern bool
 str_trim(JSContext* cx, unsigned argc, Value* vp);
 
 extern bool
 str_trimLeft(JSContext* cx, unsigned argc, Value* vp);
 
 extern bool
 str_trimRight(JSContext* cx, unsigned argc, Value* vp);
 
+#if !EXPOSE_INTL_API
 extern bool
 str_toLocaleLowerCase(JSContext* cx, unsigned argc, Value* vp);
 
 extern bool
 str_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp);
 
-#if !EXPOSE_INTL_API
 extern bool
 str_localeCompare(JSContext* cx, unsigned argc, Value* vp);
 #else
 extern bool
 str_normalize(JSContext* cx, unsigned argc, Value* vp);
 #endif
 
 extern bool
@@ -476,16 +476,22 @@ str_split_string(JSContext* cx, HandleOb
 JSString *
 str_flat_replace_string(JSContext *cx, HandleString string, HandleString pattern,
                         HandleString replacement);
 
 JSString*
 str_replace_string_raw(JSContext* cx, HandleString string, HandleString pattern,
                        HandleString replacement);
 
+extern JSString*
+StringToLowerCase(JSContext* cx, HandleLinearString string);
+
+extern JSString*
+StringToUpperCase(JSContext* cx, HandleLinearString string);
+
 extern bool
 StringConstructor(JSContext* cx, unsigned argc, Value* vp);
 
 extern bool
 FlatStringMatch(JSContext* cx, unsigned argc, Value* vp);
 
 extern bool
 FlatStringSearch(JSContext* cx, unsigned argc, Value* vp);
new file mode 100644
new file mode 100644
--- /dev/null
+++ b/js/src/tests/Intl/String/toLocaleLowerCase.js
@@ -0,0 +1,69 @@
+// |reftest| skip-if(!this.hasOwnProperty("Intl"))
+
+// Test language dependent special casing with different language tags.
+for (let locale of ["tr", "TR", "tr-TR", "tr-u-co-search", "tr-x-turkish"]) {
+    assertEq("\u0130".toLocaleLowerCase(locale), "i");
+    assertEq("\u0130".toLocaleLowerCase([locale]), "i");
+
+    // Additional language tags are ignored.
+    assertEq("\u0130".toLocaleLowerCase([locale, "und"]), "i");
+    assertEq("\u0130".toLocaleLowerCase(["und", locale]), "\u0069\u0307");
+}
+
+// Ensure "trl" (Traveller Scottish) isn't misrecognized as "tr", even though
+// both share the same prefix.
+assertEq("\u0130".toLocaleLowerCase("trl"), "\u0069\u0307");
+assertEq("\u0130".toLocaleLowerCase(["trl"]), "\u0069\u0307");
+
+// Language tag is always verified.
+for (let locale of ["no_locale", "tr-invalid_ext", ["no_locale"], ["en", "no_locale"]]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleLowerCase(locale), RangeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "x".toLocaleLowerCase(locale), RangeError);
+}
+
+// The language tag fast-path for String.prototype.toLocaleLowerCase doesn't
+// trip up on three element private-use only language tags.
+assertEq("A".toLocaleLowerCase("x-x"), "a");
+assertEq("A".toLocaleLowerCase("x-0"), "a");
+
+// No locale argument, undefined as locale, and empty array or array-like all
+// return the same result. Testing with "a/A" because it has only simple case
+// mappings.
+assertEq("A".toLocaleLowerCase(), "a");
+assertEq("A".toLocaleLowerCase(undefined), "a");
+assertEq("A".toLocaleLowerCase([]), "a");
+assertEq("A".toLocaleLowerCase({}), "a");
+assertEq("A".toLocaleLowerCase({length: 0}), "a");
+assertEq("A".toLocaleLowerCase({length: -1}), "a");
+
+// Test with incorrect locale type.
+for (let locale of [null, 0, Math.PI, NaN, Infinity, true, false, Symbol()]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleLowerCase([locale]), TypeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "A".toLocaleLowerCase([locale]), TypeError);
+}
+
+// Primitives are converted with ToObject and then queried for .length property.
+for (let locale of [null]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleLowerCase([locale]), TypeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "A".toLocaleLowerCase([locale]), TypeError);
+}
+// ToLength(ToObject(<primitive>)) returns 0.
+for (let locale of [0, Math.PI, NaN, Infinity, true, false, Symbol()]) {
+    // Empty input string.
+    assertEq("".toLocaleLowerCase(locale), "");
+
+    // Non-empty input string.
+    assertEq("A".toLocaleLowerCase(locale), "a");
+}
+
+if (typeof reportCompare === "function")
+    reportCompare(0, 0, "ok");
new file mode 100644
--- /dev/null
+++ b/js/src/tests/Intl/String/toLocaleUpperCase.js
@@ -0,0 +1,69 @@
+// |reftest| skip-if(!this.hasOwnProperty("Intl"))
+
+// Test language dependent special casing with different language tags.
+for (let locale of ["lt", "LT", "lt-LT", "lt-u-co-phonebk", "lt-x-lietuva"]) {
+    assertEq("i\u0307".toLocaleUpperCase(locale), "I");
+    assertEq("i\u0307".toLocaleUpperCase([locale]), "I");
+
+    // Additional language tags are ignored.
+    assertEq("i\u0307".toLocaleUpperCase([locale, "und"]), "I");
+    assertEq("i\u0307".toLocaleUpperCase(["und", locale]), "I\u0307");
+}
+
+// Ensure "lti" (Leti) isn't misrecognized as "lt", even though both share the
+// same prefix.
+assertEq("i\u0307".toLocaleUpperCase("lti"), "I\u0307");
+assertEq("i\u0307".toLocaleUpperCase(["lti"]), "I\u0307");
+
+// Language tag is always verified.
+for (let locale of ["no_locale", "lt-invalid_ext", ["no_locale"], ["en", "no_locale"]]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleUpperCase(locale), RangeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "a".toLocaleUpperCase(locale), RangeError);
+}
+
+// The language tag fast-path for String.prototype.toLocaleUpperCase doesn't
+// trip up on three element private-use only language tags.
+assertEq("a".toLocaleUpperCase("x-x"), "A");
+assertEq("a".toLocaleUpperCase("x-0"), "A");
+
+// No locale argument, undefined as locale, and empty array or array-like all
+// return the same result. Testing with "a/A" because it has only simple case
+// mappings.
+assertEq("a".toLocaleUpperCase(), "A");
+assertEq("a".toLocaleUpperCase(undefined), "A");
+assertEq("a".toLocaleUpperCase([]), "A");
+assertEq("a".toLocaleUpperCase({}), "A");
+assertEq("a".toLocaleUpperCase({length: 0}), "A");
+assertEq("a".toLocaleUpperCase({length: -1}), "A");
+
+// Test with incorrect locale type.
+for (let locale of [null, 0, Math.PI, NaN, Infinity, true, false, Symbol()]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleUpperCase([locale]), TypeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "a".toLocaleUpperCase([locale]), TypeError);
+}
+
+// Primitives are converted with ToObject and then queried for .length property.
+for (let locale of [null]) {
+    // Empty input string.
+    assertThrowsInstanceOf(() => "".toLocaleUpperCase([locale]), TypeError);
+
+    // Non-empty input string.
+    assertThrowsInstanceOf(() => "a".toLocaleUpperCase([locale]), TypeError);
+}
+// ToLength(ToObject(<primitive>)) returns 0.
+for (let locale of [0, Math.PI, NaN, Infinity, true, false, Symbol()]) {
+    // Empty input string.
+    assertEq("".toLocaleUpperCase(locale), "");
+
+    // Non-empty input string.
+    assertEq("a".toLocaleUpperCase(locale), "A");
+}
+
+if (typeof reportCompare === "function")
+    reportCompare(0, 0, "ok");
--- a/js/src/tests/ecma/String/15.5.4.12-5.js
+++ b/js/src/tests/ecma/String/15.5.4.12-5.js
@@ -30,16 +30,19 @@ var VERSION = "ECMA_1";
 startTest();
 var TITLE   = "String.prototype.toUpperCase()";
 
 writeHeaderToLog( SECTION + " "+ TITLE);
 
 // Armenian
 // Range: U+0530 to U+058F
 for ( var i = 0x0530; i <= 0x058F; i++ ) {
+  // U+0587 (ARMENIAN SMALL LIGATURE ECH YIWN) has special upper casing.
+  if (i == 0x0587) continue;
+
   var U = new Unicode( i );
 /*
   new TestCase(   SECTION,
   "var s = new String( String.fromCharCode("+i+") ); s.toUpperCase()",
   String.fromCharCode(U.upper),
   eval("var s = new String( String.fromCharCode("+i+") ); s.toUpperCase()") );
 */
   new TestCase(   SECTION,
--- a/js/src/tests/ecma_5/String/string-space-trim.js
+++ b/js/src/tests/ecma_5/String/string-space-trim.js
@@ -1,16 +1,42 @@
 /* Generated by make_unicode.py DO NOT MODIFY */
 /* Unicode version: 9.0.0 */
 
 /*
  * Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/licenses/publicdomain/
  */
-var onlySpace = String.fromCharCode(0x9, 0xa, 0xb, 0xc, 0xd, 0x20, 0xa0, 0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200a, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff);
+var onlySpace = String.fromCharCode(
+    0x0009 /* <control> (CHARACTER TABULATION) */,
+    0x000A /* <control> (LINE FEED (LF)) */,
+    0x000B /* <control> (LINE TABULATION) */,
+    0x000C /* <control> (FORM FEED (FF)) */,
+    0x000D /* <control> (CARRIAGE RETURN (CR)) */,
+    0x0020 /* SPACE */,
+    0x00A0 /* NO-BREAK SPACE (NON-BREAKING SPACE) */,
+    0x1680 /* OGHAM SPACE MARK */,
+    0x2000 /* EN QUAD */,
+    0x2001 /* EM QUAD */,
+    0x2002 /* EN SPACE */,
+    0x2003 /* EM SPACE */,
+    0x2004 /* THREE-PER-EM SPACE */,
+    0x2005 /* FOUR-PER-EM SPACE */,
+    0x2006 /* SIX-PER-EM SPACE */,
+    0x2007 /* FIGURE SPACE */,
+    0x2008 /* PUNCTUATION SPACE */,
+    0x2009 /* THIN SPACE */,
+    0x200A /* HAIR SPACE */,
+    0x2028 /* LINE SEPARATOR */,
+    0x2029 /* PARAGRAPH SEPARATOR */,
+    0x202F /* NARROW NO-BREAK SPACE */,
+    0x205F /* MEDIUM MATHEMATICAL SPACE */,
+    0x3000 /* IDEOGRAPHIC SPACE */,
+    0xFEFF /* ZERO WIDTH NO-BREAK SPACE (BYTE ORDER MARK) */
+);
 
 assertEq(onlySpace.trim(), "");
 assertEq((onlySpace + 'aaaa').trim(), 'aaaa');
 assertEq(('aaaa' + onlySpace).trim(), 'aaaa');
 assertEq((onlySpace + 'aaaa' + onlySpace).trim(), 'aaaa');
 
 if (typeof reportCompare === "function")
     reportCompare(true, true);
--- a/js/src/tests/ecma_5/String/string-upper-lower-mapping.js
+++ b/js/src/tests/ecma_5/String/string-upper-lower-mapping.js
@@ -1,65556 +1,65557 @@
 /* Generated by make_unicode.py DO NOT MODIFY */
 /* Unicode version: 9.0.0 */
 
 /*
  * Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/licenses/publicdomain/
  */
 var mapping = [
-  [0x0, 0x0], /* <control> (NULL) */
-  [0x1, 0x1], /* <control> (START OF HEADING) */
-  [0x2, 0x2], /* <control> (START OF TEXT) */
-  [0x3, 0x3], /* <control> (END OF TEXT) */
-  [0x4, 0x4], /* <control> (END OF TRANSMISSION) */
-  [0x5, 0x5], /* <control> (ENQUIRY) */
-  [0x6, 0x6], /* <control> (ACKNOWLEDGE) */
-  [0x7, 0x7], /* <control> (BELL) */
-  [0x8, 0x8], /* <control> (BACKSPACE) */
-  [0x9, 0x9], /* <control> (CHARACTER TABULATION) */
-  [0xa, 0xa], /* <control> (LINE FEED (LF)) */
-  [0xb, 0xb], /* <control> (LINE TABULATION) */
-  [0xc, 0xc], /* <control> (FORM FEED (FF)) */
-  [0xd, 0xd], /* <control> (CARRIAGE RETURN (CR)) */
-  [0xe, 0xe], /* <control> (SHIFT OUT) */
-  [0xf, 0xf], /* <control> (SHIFT IN) */
-  [0x10, 0x10], /* <control> (DATA LINK ESCAPE) */
-  [0x11, 0x11], /* <control> (DEVICE CONTROL ONE) */
-  [0x12, 0x12], /* <control> (DEVICE CONTROL TWO) */
-  [0x13, 0x13], /* <control> (DEVICE CONTROL THREE) */
-  [0x14, 0x14], /* <control> (DEVICE CONTROL FOUR) */
-  [0x15, 0x15], /* <control> (NEGATIVE ACKNOWLEDGE) */
-  [0x16, 0x16], /* <control> (SYNCHRONOUS IDLE) */
-  [0x17, 0x17], /* <control> (END OF TRANSMISSION BLOCK) */
-  [0x18, 0x18], /* <control> (CANCEL) */
-  [0x19, 0x19], /* <control> (END OF MEDIUM) */
-  [0x1a, 0x1a], /* <control> (SUBSTITUTE) */
-  [0x1b, 0x1b], /* <control> (ESCAPE) */
-  [0x1c, 0x1c], /* <control> (INFORMATION SEPARATOR FOUR) */
-  [0x1d, 0x1d], /* <control> (INFORMATION SEPARATOR THREE) */
-  [0x1e, 0x1e], /* <control> (INFORMATION SEPARATOR TWO) */
-  [0x1f, 0x1f], /* <control> (INFORMATION SEPARATOR ONE) */
-  [0x20, 0x20], /* SPACE */
-  [0x21, 0x21], /* EXCLAMATION MARK */
-  [0x22, 0x22], /* QUOTATION MARK */
-  [0x23, 0x23], /* NUMBER SIGN */
-  [0x24, 0x24], /* DOLLAR SIGN */
-  [0x25, 0x25], /* PERCENT SIGN */
-  [0x26, 0x26], /* AMPERSAND */
-  [0x27, 0x27], /* APOSTROPHE (APOSTROPHE-QUOTE) */
-  [0x28, 0x28], /* LEFT PARENTHESIS (OPENING PARENTHESIS) */
-  [0x29, 0x29], /* RIGHT PARENTHESIS (CLOSING PARENTHESIS) */
-  [0x2a, 0x2a], /* ASTERISK */
-  [0x2b, 0x2b], /* PLUS SIGN */
-  [0x2c, 0x2c], /* COMMA */
-  [0x2d, 0x2d], /* HYPHEN-MINUS */
-  [0x2e, 0x2e], /* FULL STOP (PERIOD) */
-  [0x2f, 0x2f], /* SOLIDUS (SLASH) */
-  [0x30, 0x30], /* DIGIT ZERO */
-  [0x31, 0x31], /* DIGIT ONE */
-  [0x32, 0x32], /* DIGIT TWO */
-  [0x33, 0x33], /* DIGIT THREE */
-  [0x34, 0x34], /* DIGIT FOUR */
-  [0x35, 0x35], /* DIGIT FIVE */
-  [0x36, 0x36], /* DIGIT SIX */
-  [0x37, 0x37], /* DIGIT SEVEN */
-  [0x38, 0x38], /* DIGIT EIGHT */
-  [0x39, 0x39], /* DIGIT NINE */
-  [0x3a, 0x3a], /* COLON */
-  [0x3b, 0x3b], /* SEMICOLON */
-  [0x3c, 0x3c], /* LESS-THAN SIGN */
-  [0x3d, 0x3d], /* EQUALS SIGN */
-  [0x3e, 0x3e], /* GREATER-THAN SIGN */
-  [0x3f, 0x3f], /* QUESTION MARK */
-  [0x40, 0x40], /* COMMERCIAL AT */
-  [0x41, 0x61], /* LATIN CAPITAL LETTER A */
-  [0x42, 0x62], /* LATIN CAPITAL LETTER B */
-  [0x43, 0x63], /* LATIN CAPITAL LETTER C */
-  [0x44, 0x64], /* LATIN CAPITAL LETTER D */
-  [0x45, 0x65], /* LATIN CAPITAL LETTER E */
-  [0x46, 0x66], /* LATIN CAPITAL LETTER F */
-  [0x47, 0x67], /* LATIN CAPITAL LETTER G */
-  [0x48, 0x68], /* LATIN CAPITAL LETTER H */
-  [0x49, 0x69], /* LATIN CAPITAL LETTER I */
-  [0x4a, 0x6a], /* LATIN CAPITAL LETTER J */
-  [0x4b, 0x6b], /* LATIN CAPITAL LETTER K */
-  [0x4c, 0x6c], /* LATIN CAPITAL LETTER L */
-  [0x4d, 0x6d], /* LATIN CAPITAL LETTER M */
-  [0x4e, 0x6e], /* LATIN CAPITAL LETTER N */
-  [0x4f, 0x6f], /* LATIN CAPITAL LETTER O */
-  [0x50, 0x70], /* LATIN CAPITAL LETTER P */
-  [0x51, 0x71], /* LATIN CAPITAL LETTER Q */
-  [0x52, 0x72], /* LATIN CAPITAL LETTER R */
-  [0x53, 0x73], /* LATIN CAPITAL LETTER S */
-  [0x54, 0x74], /* LATIN CAPITAL LETTER T */
-  [0x55, 0x75], /* LATIN CAPITAL LETTER U */
-  [0x56, 0x76], /* LATIN CAPITAL LETTER V */
-  [0x57, 0x77], /* LATIN CAPITAL LETTER W */
-  [0x58, 0x78], /* LATIN CAPITAL LETTER X */
-  [0x59, 0x79], /* LATIN CAPITAL LETTER Y */
-  [0x5a, 0x7a], /* LATIN CAPITAL LETTER Z */
-  [0x5b, 0x5b], /* LEFT SQUARE BRACKET (OPENING SQUARE BRACKET) */
-  [0x5c, 0x5c], /* REVERSE SOLIDUS (BACKSLASH) */
-  [0x5d, 0x5d], /* RIGHT SQUARE BRACKET (CLOSING SQUARE BRACKET) */
-  [0x5e, 0x5e], /* CIRCUMFLEX ACCENT (SPACING CIRCUMFLEX) */
-  [0x5f, 0x5f], /* LOW LINE (SPACING UNDERSCORE) */
-  [0x60, 0x60], /* GRAVE ACCENT (SPACING GRAVE) */
-  [0x41, 0x61], /* LATIN SMALL LETTER A */
-  [0x42, 0x62], /* LATIN SMALL LETTER B */
-  [0x43, 0x63], /* LATIN SMALL LETTER C */
-  [0x44, 0x64], /* LATIN SMALL LETTER D */
-  [0x45, 0x65], /* LATIN SMALL LETTER E */
-  [0x46, 0x66], /* LATIN SMALL LETTER F */
-  [0x47, 0x67], /* LATIN SMALL LETTER G */
-  [0x48, 0x68], /* LATIN SMALL LETTER H */
-  [0x49, 0x69], /* LATIN SMALL LETTER I */
-  [0x4a, 0x6a], /* LATIN SMALL LETTER J */
-  [0x4b, 0x6b], /* LATIN SMALL LETTER K */
-  [0x4c, 0x6c], /* LATIN SMALL LETTER L */
-  [0x4d, 0x6d], /* LATIN SMALL LETTER M */
-  [0x4e, 0x6e], /* LATIN SMALL LETTER N */
-  [0x4f, 0x6f], /* LATIN SMALL LETTER O */
-  [0x50, 0x70], /* LATIN SMALL LETTER P */
-  [0x51, 0x71], /* LATIN SMALL LETTER Q */
-  [0x52, 0x72], /* LATIN SMALL LETTER R */
-  [0x53, 0x73], /* LATIN SMALL LETTER S */
-  [0x54, 0x74], /* LATIN SMALL LETTER T */
-  [0x55, 0x75], /* LATIN SMALL LETTER U */
-  [0x56, 0x76], /* LATIN SMALL LETTER V */
-  [0x57, 0x77], /* LATIN SMALL LETTER W */
-  [0x58, 0x78], /* LATIN SMALL LETTER X */
-  [0x59, 0x79], /* LATIN SMALL LETTER Y */
-  [0x5a, 0x7a], /* LATIN SMALL LETTER Z */
-  [0x7b, 0x7b], /* LEFT CURLY BRACKET (OPENING CURLY BRACKET) */
-  [0x7c, 0x7c], /* VERTICAL LINE (VERTICAL BAR) */
-  [0x7d, 0x7d], /* RIGHT CURLY BRACKET (CLOSING CURLY BRACKET) */
-  [0x7e, 0x7e], /* TILDE */
-  [0x7f, 0x7f], /* <control> (DELETE) */
-  [0x80, 0x80], /* <control> */
-  [0x81, 0x81], /* <control> */
-  [0x82, 0x82], /* <control> (BREAK PERMITTED HERE) */
-  [0x83, 0x83], /* <control> (NO BREAK HERE) */
-  [0x84, 0x84], /* <control> */
-  [0x85, 0x85], /* <control> (NEXT LINE (NEL)) */
-  [0x86, 0x86], /* <control> (START OF SELECTED AREA) */
-  [0x87, 0x87], /* <control> (END OF SELECTED AREA) */
-  [0x88, 0x88], /* <control> (CHARACTER TABULATION SET) */
-  [0x89, 0x89], /* <control> (CHARACTER TABULATION WITH JUSTIFICATION) */
-  [0x8a, 0x8a], /* <control> (LINE TABULATION SET) */
-  [0x8b, 0x8b], /* <control> (PARTIAL LINE FORWARD) */
-  [0x8c, 0x8c], /* <control> (PARTIAL LINE BACKWARD) */
-  [0x8d, 0x8d], /* <control> (REVERSE LINE FEED) */
-  [0x8e, 0x8e], /* <control> (SINGLE SHIFT TWO) */
-  [0x8f, 0x8f], /* <control> (SINGLE SHIFT THREE) */
-  [0x90, 0x90], /* <control> (DEVICE CONTROL STRING) */
-  [0x91, 0x91], /* <control> (PRIVATE USE ONE) */
-  [0x92, 0x92], /* <control> (PRIVATE USE TWO) */
-  [0x93, 0x93], /* <control> (SET TRANSMIT STATE) */
-  [0x94, 0x94], /* <control> (CANCEL CHARACTER) */
-  [0x95, 0x95], /* <control> (MESSAGE WAITING) */
-  [0x96, 0x96], /* <control> (START OF GUARDED AREA) */
-  [0x97, 0x97], /* <control> (END OF GUARDED AREA) */
-  [0x98, 0x98], /* <control> (START OF STRING) */
-  [0x99, 0x99], /* <control> */
-  [0x9a, 0x9a], /* <control> (SINGLE CHARACTER INTRODUCER) */
-  [0x9b, 0x9b], /* <control> (CONTROL SEQUENCE INTRODUCER) */
-  [0x9c, 0x9c], /* <control> (STRING TERMINATOR) */
-  [0x9d, 0x9d], /* <control> (OPERATING SYSTEM COMMAND) */
-  [0x9e, 0x9e], /* <control> (PRIVACY MESSAGE) */
-  [0x9f, 0x9f], /* <control> (APPLICATION PROGRAM COMMAND) */
-  [0xa0, 0xa0], /* NO-BREAK SPACE (NON-BREAKING SPACE) */
-  [0xa1, 0xa1], /* INVERTED EXCLAMATION MARK */
-  [0xa2, 0xa2], /* CENT SIGN */
-  [0xa3, 0xa3], /* POUND SIGN */
-  [0xa4, 0xa4], /* CURRENCY SIGN */
-  [0xa5, 0xa5], /* YEN SIGN */
-  [0xa6, 0xa6], /* BROKEN BAR (BROKEN VERTICAL BAR) */
-  [0xa7, 0xa7], /* SECTION SIGN */
-  [0xa8, 0xa8], /* DIAERESIS (SPACING DIAERESIS) */
-  [0xa9, 0xa9], /* COPYRIGHT SIGN */
-  [0xaa, 0xaa], /* FEMININE ORDINAL INDICATOR */
-  [0xab, 0xab], /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (LEFT POINTING GUILLEMET) */
-  [0xac, 0xac], /* NOT SIGN */
-  [0xad, 0xad], /* SOFT HYPHEN */
-  [0xae, 0xae], /* REGISTERED SIGN (REGISTERED TRADE MARK SIGN) */
-  [0xaf, 0xaf], /* MACRON (SPACING MACRON) */
-  [0xb0, 0xb0], /* DEGREE SIGN */
-  [0xb1, 0xb1], /* PLUS-MINUS SIGN (PLUS-OR-MINUS SIGN) */
-  [0xb2, 0xb2], /* SUPERSCRIPT TWO (SUPERSCRIPT DIGIT TWO) */
-  [0xb3, 0xb3], /* SUPERSCRIPT THREE (SUPERSCRIPT DIGIT THREE) */
-  [0xb4, 0xb4], /* ACUTE ACCENT (SPACING ACUTE) */
-  [0x39c, 0xb5], /* MICRO SIGN */
-  [0xb6, 0xb6], /* PILCROW SIGN (PARAGRAPH SIGN) */
-  [0xb7, 0xb7], /* MIDDLE DOT */
-  [0xb8, 0xb8], /* CEDILLA (SPACING CEDILLA) */
-  [0xb9, 0xb9], /* SUPERSCRIPT ONE (SUPERSCRIPT DIGIT ONE) */
-  [0xba, 0xba], /* MASCULINE ORDINAL INDICATOR */
-  [0xbb, 0xbb], /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (RIGHT POINTING GUILLEMET) */
-  [0xbc, 0xbc], /* VULGAR FRACTION ONE QUARTER (FRACTION ONE QUARTER) */
-  [0xbd, 0xbd], /* VULGAR FRACTION ONE HALF (FRACTION ONE HALF) */
-  [0xbe, 0xbe], /* VULGAR FRACTION THREE QUARTERS (FRACTION THREE QUARTERS) */
-  [0xbf, 0xbf], /* INVERTED QUESTION MARK */
-  [0xc0, 0xe0], /* LATIN CAPITAL LETTER A WITH GRAVE (LATIN CAPITAL LETTER A GRAVE) */
-  [0xc1, 0xe1], /* LATIN CAPITAL LETTER A WITH ACUTE (LATIN CAPITAL LETTER A ACUTE) */
-  [0xc2, 0xe2], /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX (LATIN CAPITAL LETTER A CIRCUMFLEX) */
-  [0xc3, 0xe3], /* LATIN CAPITAL LETTER A WITH TILDE (LATIN CAPITAL LETTER A TILDE) */
-  [0xc4, 0xe4], /* LATIN CAPITAL LETTER A WITH DIAERESIS (LATIN CAPITAL LETTER A DIAERESIS) */
-  [0xc5, 0xe5], /* LATIN CAPITAL LETTER A WITH RING ABOVE (LATIN CAPITAL LETTER A RING) */
-  [0xc6, 0xe6], /* LATIN CAPITAL LETTER AE (LATIN CAPITAL LETTER A E) */
-  [0xc7, 0xe7], /* LATIN CAPITAL LETTER C WITH CEDILLA (LATIN CAPITAL LETTER C CEDILLA) */
-  [0xc8, 0xe8], /* LATIN CAPITAL LETTER E WITH GRAVE (LATIN CAPITAL LETTER E GRAVE) */
-  [0xc9, 0xe9], /* LATIN CAPITAL LETTER E WITH ACUTE (LATIN CAPITAL LETTER E ACUTE) */
-  [0xca, 0xea], /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX (LATIN CAPITAL LETTER E CIRCUMFLEX) */
-  [0xcb, 0xeb], /* LATIN CAPITAL LETTER E WITH DIAERESIS (LATIN CAPITAL LETTER E DIAERESIS) */
-  [0xcc, 0xec], /* LATIN CAPITAL LETTER I WITH GRAVE (LATIN CAPITAL LETTER I GRAVE) */
-  [0xcd, 0xed], /* LATIN CAPITAL LETTER I WITH ACUTE (LATIN CAPITAL LETTER I ACUTE) */
-  [0xce, 0xee], /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX (LATIN CAPITAL LETTER I CIRCUMFLEX) */
-  [0xcf, 0xef], /* LATIN CAPITAL LETTER I WITH DIAERESIS (LATIN CAPITAL LETTER I DIAERESIS) */
-  [0xd0, 0xf0], /* LATIN CAPITAL LETTER ETH */
-  [0xd1, 0xf1], /* LATIN CAPITAL LETTER N WITH TILDE (LATIN CAPITAL LETTER N TILDE) */
-  [0xd2, 0xf2], /* LATIN CAPITAL LETTER O WITH GRAVE (LATIN CAPITAL LETTER O GRAVE) */
-  [0xd3, 0xf3], /* LATIN CAPITAL LETTER O WITH ACUTE (LATIN CAPITAL LETTER O ACUTE) */
-  [0xd4, 0xf4], /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX (LATIN CAPITAL LETTER O CIRCUMFLEX) */
-  [0xd5, 0xf5], /* LATIN CAPITAL LETTER O WITH TILDE (LATIN CAPITAL LETTER O TILDE) */
-  [0xd6, 0xf6], /* LATIN CAPITAL LETTER O WITH DIAERESIS (LATIN CAPITAL LETTER O DIAERESIS) */
-  [0xd7, 0xd7], /* MULTIPLICATION SIGN */
-  [0xd8, 0xf8], /* LATIN CAPITAL LETTER O WITH STROKE (LATIN CAPITAL LETTER O SLASH) */
-  [0xd9, 0xf9], /* LATIN CAPITAL LETTER U WITH GRAVE (LATIN CAPITAL LETTER U GRAVE) */
-  [0xda, 0xfa], /* LATIN CAPITAL LETTER U WITH ACUTE (LATIN CAPITAL LETTER U ACUTE) */
-  [0xdb, 0xfb], /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX (LATIN CAPITAL LETTER U CIRCUMFLEX) */
-  [0xdc, 0xfc], /* LATIN CAPITAL LETTER U WITH DIAERESIS (LATIN CAPITAL LETTER U DIAERESIS) */
-  [0xdd, 0xfd], /* LATIN CAPITAL LETTER Y WITH ACUTE (LATIN CAPITAL LETTER Y ACUTE) */
-  [0xde, 0xfe], /* LATIN CAPITAL LETTER THORN */
-  [0xdf, 0xdf], /* LATIN SMALL LETTER SHARP S */
-  [0xc0, 0xe0], /* LATIN SMALL LETTER A WITH GRAVE (LATIN SMALL LETTER A GRAVE) */
-  [0xc1, 0xe1], /* LATIN SMALL LETTER A WITH ACUTE (LATIN SMALL LETTER A ACUTE) */
-  [0xc2, 0xe2], /* LATIN SMALL LETTER A WITH CIRCUMFLEX (LATIN SMALL LETTER A CIRCUMFLEX) */
-  [0xc3, 0xe3], /* LATIN SMALL LETTER A WITH TILDE (LATIN SMALL LETTER A TILDE) */
-  [0xc4, 0xe4], /* LATIN SMALL LETTER A WITH DIAERESIS (LATIN SMALL LETTER A DIAERESIS) */
-  [0xc5, 0xe5], /* LATIN SMALL LETTER A WITH RING ABOVE (LATIN SMALL LETTER A RING) */
-  [0xc6, 0xe6], /* LATIN SMALL LETTER AE (LATIN SMALL LETTER A E) */
-  [0xc7, 0xe7], /* LATIN SMALL LETTER C WITH CEDILLA (LATIN SMALL LETTER C CEDILLA) */
-  [0xc8, 0xe8], /* LATIN SMALL LETTER E WITH GRAVE (LATIN SMALL LETTER E GRAVE) */
-  [0xc9, 0xe9], /* LATIN SMALL LETTER E WITH ACUTE (LATIN SMALL LETTER E ACUTE) */
-  [0xca, 0xea], /* LATIN SMALL LETTER E WITH CIRCUMFLEX (LATIN SMALL LETTER E CIRCUMFLEX) */
-  [0xcb, 0xeb], /* LATIN SMALL LETTER E WITH DIAERESIS (LATIN SMALL LETTER E DIAERESIS) */
-  [0xcc, 0xec], /* LATIN SMALL LETTER I WITH GRAVE (LATIN SMALL LETTER I GRAVE) */
-  [0xcd, 0xed], /* LATIN SMALL LETTER I WITH ACUTE (LATIN SMALL LETTER I ACUTE) */
-  [0xce, 0xee], /* LATIN SMALL LETTER I WITH CIRCUMFLEX (LATIN SMALL LETTER I CIRCUMFLEX) */
-  [0xcf, 0xef], /* LATIN SMALL LETTER I WITH DIAERESIS (LATIN SMALL LETTER I DIAERESIS) */
-  [0xd0, 0xf0], /* LATIN SMALL LETTER ETH */
-  [0xd1, 0xf1], /* LATIN SMALL LETTER N WITH TILDE (LATIN SMALL LETTER N TILDE) */
-  [0xd2, 0xf2], /* LATIN SMALL LETTER O WITH GRAVE (LATIN SMALL LETTER O GRAVE) */
-  [0xd3, 0xf3], /* LATIN SMALL LETTER O WITH ACUTE (LATIN SMALL LETTER O ACUTE) */
-  [0xd4, 0xf4], /* LATIN SMALL LETTER O WITH CIRCUMFLEX (LATIN SMALL LETTER O CIRCUMFLEX) */
-  [0xd5, 0xf5], /* LATIN SMALL LETTER O WITH TILDE (LATIN SMALL LETTER O TILDE) */
-  [0xd6, 0xf6], /* LATIN SMALL LETTER O WITH DIAERESIS (LATIN SMALL LETTER O DIAERESIS) */
-  [0xf7, 0xf7], /* DIVISION SIGN */
-  [0xd8, 0xf8], /* LATIN SMALL LETTER O WITH STROKE (LATIN SMALL LETTER O SLASH) */
-  [0xd9, 0xf9], /* LATIN SMALL LETTER U WITH GRAVE (LATIN SMALL LETTER U GRAVE) */
-  [0xda, 0xfa], /* LATIN SMALL LETTER U WITH ACUTE (LATIN SMALL LETTER U ACUTE) */
-  [0xdb, 0xfb], /* LATIN SMALL LETTER U WITH CIRCUMFLEX (LATIN SMALL LETTER U CIRCUMFLEX) */
-  [0xdc, 0xfc], /* LATIN SMALL LETTER U WITH DIAERESIS (LATIN SMALL LETTER U DIAERESIS) */
-  [0xdd, 0xfd], /* LATIN SMALL LETTER Y WITH ACUTE (LATIN SMALL LETTER Y ACUTE) */
-  [0xde, 0xfe], /* LATIN SMALL LETTER THORN */
-  [0x178, 0xff], /* LATIN SMALL LETTER Y WITH DIAERESIS (LATIN SMALL LETTER Y DIAERESIS) */
-  [0x100, 0x101], /* LATIN CAPITAL LETTER A WITH MACRON (LATIN CAPITAL LETTER A MACRON) */
-  [0x100, 0x101], /* LATIN SMALL LETTER A WITH MACRON (LATIN SMALL LETTER A MACRON) */
-  [0x102, 0x103], /* LATIN CAPITAL LETTER A WITH BREVE (LATIN CAPITAL LETTER A BREVE) */
-  [0x102, 0x103], /* LATIN SMALL LETTER A WITH BREVE (LATIN SMALL LETTER A BREVE) */
-  [0x104, 0x105], /* LATIN CAPITAL LETTER A WITH OGONEK (LATIN CAPITAL LETTER A OGONEK) */
-  [0x104, 0x105], /* LATIN SMALL LETTER A WITH OGONEK (LATIN SMALL LETTER A OGONEK) */
-  [0x106, 0x107], /* LATIN CAPITAL LETTER C WITH ACUTE (LATIN CAPITAL LETTER C ACUTE) */
-  [0x106, 0x107], /* LATIN SMALL LETTER C WITH ACUTE (LATIN SMALL LETTER C ACUTE) */
-  [0x108, 0x109], /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX (LATIN CAPITAL LETTER C CIRCUMFLEX) */
-  [0x108, 0x109], /* LATIN SMALL LETTER C WITH CIRCUMFLEX (LATIN SMALL LETTER C CIRCUMFLEX) */
-  [0x10a, 0x10b], /* LATIN CAPITAL LETTER C WITH DOT ABOVE (LATIN CAPITAL LETTER C DOT) */
-  [0x10a, 0x10b], /* LATIN SMALL LETTER C WITH DOT ABOVE (LATIN SMALL LETTER C DOT) */
-  [0x10c, 0x10d], /* LATIN CAPITAL LETTER C WITH CARON (LATIN CAPITAL LETTER C HACEK) */
-  [0x10c, 0x10d], /* LATIN SMALL LETTER C WITH CARON (LATIN SMALL LETTER C HACEK) */
-  [0x10e, 0x10f], /* LATIN CAPITAL LETTER D WITH CARON (LATIN CAPITAL LETTER D HACEK) */
-  [0x10e, 0x10f], /* LATIN SMALL LETTER D WITH CARON (LATIN SMALL LETTER D HACEK) */
-  [0x110, 0x111], /* LATIN CAPITAL LETTER D WITH STROKE (LATIN CAPITAL LETTER D BAR) */
-  [0x110, 0x111], /* LATIN SMALL LETTER D WITH STROKE (LATIN SMALL LETTER D BAR) */
-  [0x112, 0x113], /* LATIN CAPITAL LETTER E WITH MACRON (LATIN CAPITAL LETTER E MACRON) */
-  [0x112, 0x113], /* LATIN SMALL LETTER E WITH MACRON (LATIN SMALL LETTER E MACRON) */
-  [0x114, 0x115], /* LATIN CAPITAL LETTER E WITH BREVE (LATIN CAPITAL LETTER E BREVE) */
-  [0x114, 0x115], /* LATIN SMALL LETTER E WITH BREVE (LATIN SMALL LETTER E BREVE) */
-  [0x116, 0x117], /* LATIN CAPITAL LETTER E WITH DOT ABOVE (LATIN CAPITAL LETTER E DOT) */
-  [0x116, 0x117], /* LATIN SMALL LETTER E WITH DOT ABOVE (LATIN SMALL LETTER E DOT) */
-  [0x118, 0x119], /* LATIN CAPITAL LETTER E WITH OGONEK (LATIN CAPITAL LETTER E OGONEK) */
-  [0x118, 0x119], /* LATIN SMALL LETTER E WITH OGONEK (LATIN SMALL LETTER E OGONEK) */
-  [0x11a, 0x11b], /* LATIN CAPITAL LETTER E WITH CARON (LATIN CAPITAL LETTER E HACEK) */
-  [0x11a, 0x11b], /* LATIN SMALL LETTER E WITH CARON (LATIN SMALL LETTER E HACEK) */
-  [0x11c, 0x11d], /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX (LATIN CAPITAL LETTER G CIRCUMFLEX) */
-  [0x11c, 0x11d], /* LATIN SMALL LETTER G WITH CIRCUMFLEX (LATIN SMALL LETTER G CIRCUMFLEX) */
-  [0x11e, 0x11f], /* LATIN CAPITAL LETTER G WITH BREVE (LATIN CAPITAL LETTER G BREVE) */
-  [0x11e, 0x11f], /* LATIN SMALL LETTER G WITH BREVE (LATIN SMALL LETTER G BREVE) */
-  [0x120, 0x121], /* LATIN CAPITAL LETTER G WITH DOT ABOVE (LATIN CAPITAL LETTER G DOT) */
-  [0x120, 0x121], /* LATIN SMALL LETTER G WITH DOT ABOVE (LATIN SMALL LETTER G DOT) */
-  [0x122, 0x123], /* LATIN CAPITAL LETTER G WITH CEDILLA (LATIN CAPITAL LETTER G CEDILLA) */
-  [0x122, 0x123], /* LATIN SMALL LETTER G WITH CEDILLA (LATIN SMALL LETTER G CEDILLA) */
-  [0x124, 0x125], /* LATIN CAPITAL LETTER H WITH CIRCUMFLEX (LATIN CAPITAL LETTER H CIRCUMFLEX) */
-  [0x124, 0x125], /* LATIN SMALL LETTER H WITH CIRCUMFLEX (LATIN SMALL LETTER H CIRCUMFLEX) */
-  [0x126, 0x127], /* LATIN CAPITAL LETTER H WITH STROKE (LATIN CAPITAL LETTER H BAR) */
-  [0x126, 0x127], /* LATIN SMALL LETTER H WITH STROKE (LATIN SMALL LETTER H BAR) */
-  [0x128, 0x129], /* LATIN CAPITAL LETTER I WITH TILDE (LATIN CAPITAL LETTER I TILDE) */
-  [0x128, 0x129], /* LATIN SMALL LETTER I WITH TILDE (LATIN SMALL LETTER I TILDE) */
-  [0x12a, 0x12b], /* LATIN CAPITAL LETTER I WITH MACRON (LATIN CAPITAL LETTER I MACRON) */
-  [0x12a, 0x12b], /* LATIN SMALL LETTER I WITH MACRON (LATIN SMALL LETTER I MACRON) */
-  [0x12c, 0x12d], /* LATIN CAPITAL LETTER I WITH BREVE (LATIN CAPITAL LETTER I BREVE) */
-  [0x12c, 0x12d], /* LATIN SMALL LETTER I WITH BREVE (LATIN SMALL LETTER I BREVE) */
-  [0x12e, 0x12f], /* LATIN CAPITAL LETTER I WITH OGONEK (LATIN CAPITAL LETTER I OGONEK) */
-  [0x12e, 0x12f], /* LATIN SMALL LETTER I WITH OGONEK (LATIN SMALL LETTER I OGONEK) */
-  [0x130, 0x69], /* LATIN CAPITAL LETTER I WITH DOT ABOVE (LATIN CAPITAL LETTER I DOT) */
-  [0x49, 0x131], /* LATIN SMALL LETTER DOTLESS I */
-  [0x132, 0x133], /* LATIN CAPITAL LIGATURE IJ (LATIN CAPITAL LETTER I J) */
-  [0x132, 0x133], /* LATIN SMALL LIGATURE IJ (LATIN SMALL LETTER I J) */
-  [0x134, 0x135], /* LATIN CAPITAL LETTER J WITH CIRCUMFLEX (LATIN CAPITAL LETTER J CIRCUMFLEX) */
-  [0x134, 0x135], /* LATIN SMALL LETTER J WITH CIRCUMFLEX (LATIN SMALL LETTER J CIRCUMFLEX) */
-  [0x136, 0x137], /* LATIN CAPITAL LETTER K WITH CEDILLA (LATIN CAPITAL LETTER K CEDILLA) */
-  [0x136, 0x137], /* LATIN SMALL LETTER K WITH CEDILLA (LATIN SMALL LETTER K CEDILLA) */
-  [0x138, 0x138], /* LATIN SMALL LETTER KRA */
-  [0x139, 0x13a], /* LATIN CAPITAL LETTER L WITH ACUTE (LATIN CAPITAL LETTER L ACUTE) */
-  [0x139, 0x13a], /* LATIN SMALL LETTER L WITH ACUTE (LATIN SMALL LETTER L ACUTE) */
-  [0x13b, 0x13c], /* LATIN CAPITAL LETTER L WITH CEDILLA (LATIN CAPITAL LETTER L CEDILLA) */
-  [0x13b, 0x13c], /* LATIN SMALL LETTER L WITH CEDILLA (LATIN SMALL LETTER L CEDILLA) */
-  [0x13d, 0x13e], /* LATIN CAPITAL LETTER L WITH CARON (LATIN CAPITAL LETTER L HACEK) */
-  [0x13d, 0x13e], /* LATIN SMALL LETTER L WITH CARON (LATIN SMALL LETTER L HACEK) */
-  [0x13f, 0x140], /* LATIN CAPITAL LETTER L WITH MIDDLE DOT */
-  [0x13f, 0x140], /* LATIN SMALL LETTER L WITH MIDDLE DOT */
-  [0x141, 0x142], /* LATIN CAPITAL LETTER L WITH STROKE (LATIN CAPITAL LETTER L SLASH) */
-  [0x141, 0x142], /* LATIN SMALL LETTER L WITH STROKE (LATIN SMALL LETTER L SLASH) */
-  [0x143, 0x144], /* LATIN CAPITAL LETTER N WITH ACUTE (LATIN CAPITAL LETTER N ACUTE) */
-  [0x143, 0x144], /* LATIN SMALL LETTER N WITH ACUTE (LATIN SMALL LETTER N ACUTE) */
-  [0x145, 0x146], /* LATIN CAPITAL LETTER N WITH CEDILLA (LATIN CAPITAL LETTER N CEDILLA) */
-  [0x145, 0x146], /* LATIN SMALL LETTER N WITH CEDILLA (LATIN SMALL LETTER N CEDILLA) */
-  [0x147, 0x148], /* LATIN CAPITAL LETTER N WITH CARON (LATIN CAPITAL LETTER N HACEK) */
-  [0x147, 0x148], /* LATIN SMALL LETTER N WITH CARON (LATIN SMALL LETTER N HACEK) */
-  [0x149, 0x149], /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE (LATIN SMALL LETTER APOSTROPHE N) */
-  [0x14a, 0x14b], /* LATIN CAPITAL LETTER ENG */
-  [0x14a, 0x14b], /* LATIN SMALL LETTER ENG */
-  [0x14c, 0x14d], /* LATIN CAPITAL LETTER O WITH MACRON (LATIN CAPITAL LETTER O MACRON) */
-  [0x14c, 0x14d], /* LATIN SMALL LETTER O WITH MACRON (LATIN SMALL LETTER O MACRON) */
-  [0x14e, 0x14f], /* LATIN CAPITAL LETTER O WITH BREVE (LATIN CAPITAL LETTER O BREVE) */
-  [0x14e, 0x14f], /* LATIN SMALL LETTER O WITH BREVE (LATIN SMALL LETTER O BREVE) */
-  [0x150, 0x151], /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE (LATIN CAPITAL LETTER O DOUBLE ACUTE) */
-  [0x150, 0x151], /* LATIN SMALL LETTER O WITH DOUBLE ACUTE (LATIN SMALL LETTER O DOUBLE ACUTE) */
-  [0x152, 0x153], /* LATIN CAPITAL LIGATURE OE (LATIN CAPITAL LETTER O E) */
-  [0x152, 0x153], /* LATIN SMALL LIGATURE OE (LATIN SMALL LETTER O E) */
-  [0x154, 0x155], /* LATIN CAPITAL LETTER R WITH ACUTE (LATIN CAPITAL LETTER R ACUTE) */
-  [0x154, 0x155], /* LATIN SMALL LETTER R WITH ACUTE (LATIN SMALL LETTER R ACUTE) */
-  [0x156, 0x157], /* LATIN CAPITAL LETTER R WITH CEDILLA (LATIN CAPITAL LETTER R CEDILLA) */
-  [0x156, 0x157], /* LATIN SMALL LETTER R WITH CEDILLA (LATIN SMALL LETTER R CEDILLA) */
-  [0x158, 0x159], /* LATIN CAPITAL LETTER R WITH CARON (LATIN CAPITAL LETTER R HACEK) */
-  [0x158, 0x159], /* LATIN SMALL LETTER R WITH CARON (LATIN SMALL LETTER R HACEK) */
-  [0x15a, 0x15b], /* LATIN CAPITAL LETTER S WITH ACUTE (LATIN CAPITAL LETTER S ACUTE) */
-  [0x15a, 0x15b], /* LATIN SMALL LETTER S WITH ACUTE (LATIN SMALL LETTER S ACUTE) */
-  [0x15c, 0x15d], /* LATIN CAPITAL LETTER S WITH CIRCUMFLEX (LATIN CAPITAL LETTER S CIRCUMFLEX) */
-  [0x15c, 0x15d], /* LATIN SMALL LETTER S WITH CIRCUMFLEX (LATIN SMALL LETTER S CIRCUMFLEX) */
-  [0x15e, 0x15f], /* LATIN CAPITAL LETTER S WITH CEDILLA (LATIN CAPITAL LETTER S CEDILLA) */
-  [0x15e, 0x15f], /* LATIN SMALL LETTER S WITH CEDILLA (LATIN SMALL LETTER S CEDILLA) */
-  [0x160, 0x161], /* LATIN CAPITAL LETTER S WITH CARON (LATIN CAPITAL LETTER S HACEK) */
-  [0x160, 0x161], /* LATIN SMALL LETTER S WITH CARON (LATIN SMALL LETTER S HACEK) */
-  [0x162, 0x163], /* LATIN CAPITAL LETTER T WITH CEDILLA (LATIN CAPITAL LETTER T CEDILLA) */
-  [0x162, 0x163], /* LATIN SMALL LETTER T WITH CEDILLA (LATIN SMALL LETTER T CEDILLA) */
-  [0x164, 0x165], /* LATIN CAPITAL LETTER T WITH CARON (LATIN CAPITAL LETTER T HACEK) */
-  [0x164, 0x165], /* LATIN SMALL LETTER T WITH CARON (LATIN SMALL LETTER T HACEK) */
-  [0x166, 0x167], /* LATIN CAPITAL LETTER T WITH STROKE (LATIN CAPITAL LETTER T BAR) */
-  [0x166, 0x167], /* LATIN SMALL LETTER T WITH STROKE (LATIN SMALL LETTER T BAR) */
-  [0x168, 0x169], /* LATIN CAPITAL LETTER U WITH TILDE (LATIN CAPITAL LETTER U TILDE) */
-  [0x168, 0x169], /* LATIN SMALL LETTER U WITH TILDE (LATIN SMALL LETTER U TILDE) */
-  [0x16a, 0x16b], /* LATIN CAPITAL LETTER U WITH MACRON (LATIN CAPITAL LETTER U MACRON) */
-  [0x16a, 0x16b], /* LATIN SMALL LETTER U WITH MACRON (LATIN SMALL LETTER U MACRON) */
-  [0x16c, 0x16d], /* LATIN CAPITAL LETTER U WITH BREVE (LATIN CAPITAL LETTER U BREVE) */
-  [0x16c, 0x16d], /* LATIN SMALL LETTER U WITH BREVE (LATIN SMALL LETTER U BREVE) */
-  [0x16e, 0x16f], /* LATIN CAPITAL LETTER U WITH RING ABOVE (LATIN CAPITAL LETTER U RING) */
-  [0x16e, 0x16f], /* LATIN SMALL LETTER U WITH RING ABOVE (LATIN SMALL LETTER U RING) */
-  [0x170, 0x171], /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE (LATIN CAPITAL LETTER U DOUBLE ACUTE) */
-  [0x170, 0x171], /* LATIN SMALL LETTER U WITH DOUBLE ACUTE (LATIN SMALL LETTER U DOUBLE ACUTE) */
-  [0x172, 0x173], /* LATIN CAPITAL LETTER U WITH OGONEK (LATIN CAPITAL LETTER U OGONEK) */
-  [0x172, 0x173], /* LATIN SMALL LETTER U WITH OGONEK (LATIN SMALL LETTER U OGONEK) */
-  [0x174, 0x175], /* LATIN CAPITAL LETTER W WITH CIRCUMFLEX (LATIN CAPITAL LETTER W CIRCUMFLEX) */
-  [0x174, 0x175], /* LATIN SMALL LETTER W WITH CIRCUMFLEX (LATIN SMALL LETTER W CIRCUMFLEX) */
-  [0x176, 0x177], /* LATIN CAPITAL LETTER Y WITH CIRCUMFLEX (LATIN CAPITAL LETTER Y CIRCUMFLEX) */
-  [0x176, 0x177], /* LATIN SMALL LETTER Y WITH CIRCUMFLEX (LATIN SMALL LETTER Y CIRCUMFLEX) */
-  [0x178, 0xff], /* LATIN CAPITAL LETTER Y WITH DIAERESIS (LATIN CAPITAL LETTER Y DIAERESIS) */
-  [0x179, 0x17a], /* LATIN CAPITAL LETTER Z WITH ACUTE (LATIN CAPITAL LETTER Z ACUTE) */
-  [0x179, 0x17a], /* LATIN SMALL LETTER Z WITH ACUTE (LATIN SMALL LETTER Z ACUTE) */
-  [0x17b, 0x17c], /* LATIN CAPITAL LETTER Z WITH DOT ABOVE (LATIN CAPITAL LETTER Z DOT) */
-  [0x17b, 0x17c], /* LATIN SMALL LETTER Z WITH DOT ABOVE (LATIN SMALL LETTER Z DOT) */
-  [0x17d, 0x17e], /* LATIN CAPITAL LETTER Z WITH CARON (LATIN CAPITAL LETTER Z HACEK) */
-  [0x17d, 0x17e], /* LATIN SMALL LETTER Z WITH CARON (LATIN SMALL LETTER Z HACEK) */
-  [0x53, 0x17f], /* LATIN SMALL LETTER LONG S */
-  [0x243, 0x180], /* LATIN SMALL LETTER B WITH STROKE (LATIN SMALL LETTER B BAR) */
-  [0x181, 0x253], /* LATIN CAPITAL LETTER B WITH HOOK (LATIN CAPITAL LETTER B HOOK) */
-  [0x182, 0x183], /* LATIN CAPITAL LETTER B WITH TOPBAR (LATIN CAPITAL LETTER B TOPBAR) */
-  [0x182, 0x183], /* LATIN SMALL LETTER B WITH TOPBAR (LATIN SMALL LETTER B TOPBAR) */
-  [0x184, 0x185], /* LATIN CAPITAL LETTER TONE SIX */
-  [0x184, 0x185], /* LATIN SMALL LETTER TONE SIX */
-  [0x186, 0x254], /* LATIN CAPITAL LETTER OPEN O */
-  [0x187, 0x188], /* LATIN CAPITAL LETTER C WITH HOOK (LATIN CAPITAL LETTER C HOOK) */
-  [0x187, 0x188], /* LATIN SMALL LETTER C WITH HOOK (LATIN SMALL LETTER C HOOK) */
-  [0x189, 0x256], /* LATIN CAPITAL LETTER AFRICAN D */
-  [0x18a, 0x257], /* LATIN CAPITAL LETTER D WITH HOOK (LATIN CAPITAL LETTER D HOOK) */
-  [0x18b, 0x18c], /* LATIN CAPITAL LETTER D WITH TOPBAR (LATIN CAPITAL LETTER D TOPBAR) */
-  [0x18b, 0x18c], /* LATIN SMALL LETTER D WITH TOPBAR (LATIN SMALL LETTER D TOPBAR) */
-  [0x18d, 0x18d], /* LATIN SMALL LETTER TURNED DELTA */
-  [0x18e, 0x1dd], /* LATIN CAPITAL LETTER REVERSED E (LATIN CAPITAL LETTER TURNED E) */
-  [0x18f, 0x259], /* LATIN CAPITAL LETTER SCHWA */
-  [0x190, 0x25b], /* LATIN CAPITAL LETTER OPEN E (LATIN CAPITAL LETTER EPSILON) */
-  [0x191, 0x192], /* LATIN CAPITAL LETTER F WITH HOOK (LATIN CAPITAL LETTER F HOOK) */
-  [0x191, 0x192], /* LATIN SMALL LETTER F WITH HOOK (LATIN SMALL LETTER SCRIPT F) */
-  [0x193, 0x260], /* LATIN CAPITAL LETTER G WITH HOOK (LATIN CAPITAL LETTER G HOOK) */
-  [0x194, 0x263], /* LATIN CAPITAL LETTER GAMMA */
-  [0x1f6, 0x195], /* LATIN SMALL LETTER HV (LATIN SMALL LETTER H V) */
-  [0x196, 0x269], /* LATIN CAPITAL LETTER IOTA */
-  [0x197, 0x268], /* LATIN CAPITAL LETTER I WITH STROKE (LATIN CAPITAL LETTER BARRED I) */
-  [0x198, 0x199], /* LATIN CAPITAL LETTER K WITH HOOK (LATIN CAPITAL LETTER K HOOK) */
-  [0x198, 0x199], /* LATIN SMALL LETTER K WITH HOOK (LATIN SMALL LETTER K HOOK) */
-  [0x23d, 0x19a], /* LATIN SMALL LETTER L WITH BAR (LATIN SMALL LETTER BARRED L) */
-  [0x19b, 0x19b], /* LATIN SMALL LETTER LAMBDA WITH STROKE (LATIN SMALL LETTER BARRED LAMBDA) */
-  [0x19c, 0x26f], /* LATIN CAPITAL LETTER TURNED M */
-  [0x19d, 0x272], /* LATIN CAPITAL LETTER N WITH LEFT HOOK (LATIN CAPITAL LETTER N HOOK) */
-  [0x220, 0x19e], /* LATIN SMALL LETTER N WITH LONG RIGHT LEG */
-  [0x19f, 0x275], /* LATIN CAPITAL LETTER O WITH MIDDLE TILDE (LATIN CAPITAL LETTER BARRED O) */
-  [0x1a0, 0x1a1], /* LATIN CAPITAL LETTER O WITH HORN (LATIN CAPITAL LETTER O HORN) */
-  [0x1a0, 0x1a1], /* LATIN SMALL LETTER O WITH HORN (LATIN SMALL LETTER O HORN) */
-  [0x1a2, 0x1a3], /* LATIN CAPITAL LETTER OI (LATIN CAPITAL LETTER O I) */
-  [0x1a2, 0x1a3], /* LATIN SMALL LETTER OI (LATIN SMALL LETTER O I) */
-  [0x1a4, 0x1a5], /* LATIN CAPITAL LETTER P WITH HOOK (LATIN CAPITAL LETTER P HOOK) */
-  [0x1a4, 0x1a5], /* LATIN SMALL LETTER P WITH HOOK (LATIN SMALL LETTER P HOOK) */
-  [0x1a6, 0x280], /* LATIN LETTER YR (LATIN LETTER Y R) */
-  [0x1a7, 0x1a8], /* LATIN CAPITAL LETTER TONE TWO */
-  [0x1a7, 0x1a8], /* LATIN SMALL LETTER TONE TWO */
-  [0x1a9, 0x283], /* LATIN CAPITAL LETTER ESH */
-  [0x1aa, 0x1aa], /* LATIN LETTER REVERSED ESH LOOP */
-  [0x1ab, 0x1ab], /* LATIN SMALL LETTER T WITH PALATAL HOOK (LATIN SMALL LETTER T PALATAL HOOK) */
-  [0x1ac, 0x1ad], /* LATIN CAPITAL LETTER T WITH HOOK (LATIN CAPITAL LETTER T HOOK) */
-  [0x1ac, 0x1ad], /* LATIN SMALL LETTER T WITH HOOK (LATIN SMALL LETTER T HOOK) */
-  [0x1ae, 0x288], /* LATIN CAPITAL LETTER T WITH RETROFLEX HOOK (LATIN CAPITAL LETTER T RETROFLEX HOOK) */
-  [0x1af, 0x1b0], /* LATIN CAPITAL LETTER U WITH HORN (LATIN CAPITAL LETTER U HORN) */
-  [0x1af, 0x1b0], /* LATIN SMALL LETTER U WITH HORN (LATIN SMALL LETTER U HORN) */
-  [0x1b1, 0x28a], /* LATIN CAPITAL LETTER UPSILON */
-  [0x1b2, 0x28b], /* LATIN CAPITAL LETTER V WITH HOOK (LATIN CAPITAL LETTER SCRIPT V) */
-  [0x1b3, 0x1b4], /* LATIN CAPITAL LETTER Y WITH HOOK (LATIN CAPITAL LETTER Y HOOK) */
-  [0x1b3, 0x1b4], /* LATIN SMALL LETTER Y WITH HOOK (LATIN SMALL LETTER Y HOOK) */
-  [0x1b5, 0x1b6], /* LATIN CAPITAL LETTER Z WITH STROKE (LATIN CAPITAL LETTER Z BAR) */
-  [0x1b5, 0x1b6], /* LATIN SMALL LETTER Z WITH STROKE (LATIN SMALL LETTER Z BAR) */
-  [0x1b7, 0x292], /* LATIN CAPITAL LETTER EZH (LATIN CAPITAL LETTER YOGH) */
-  [0x1b8, 0x1b9], /* LATIN CAPITAL LETTER EZH REVERSED (LATIN CAPITAL LETTER REVERSED YOGH) */
-  [0x1b8, 0x1b9], /* LATIN SMALL LETTER EZH REVERSED (LATIN SMALL LETTER REVERSED YOGH) */
-  [0x1ba, 0x1ba], /* LATIN SMALL LETTER EZH WITH TAIL (LATIN SMALL LETTER YOGH WITH TAIL) */
-  [0x1bb, 0x1bb], /* LATIN LETTER TWO WITH STROKE (LATIN LETTER TWO BAR) */
-  [0x1bc, 0x1bd], /* LATIN CAPITAL LETTER TONE FIVE */
-  [0x1bc, 0x1bd], /* LATIN SMALL LETTER TONE FIVE */
-  [0x1be, 0x1be], /* LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE (LATIN LETTER INVERTED GLOTTAL STOP BAR) */
-  [0x1f7, 0x1bf], /* LATIN LETTER WYNN */
-  [0x1c0, 0x1c0], /* LATIN LETTER DENTAL CLICK (LATIN LETTER PIPE) */
-  [0x1c1, 0x1c1], /* LATIN LETTER LATERAL CLICK (LATIN LETTER DOUBLE PIPE) */
-  [0x1c2, 0x1c2], /* LATIN LETTER ALVEOLAR CLICK (LATIN LETTER PIPE DOUBLE BAR) */
-  [0x1c3, 0x1c3], /* LATIN LETTER RETROFLEX CLICK (LATIN LETTER EXCLAMATION MARK) */
-  [0x1c4, 0x1c6], /* LATIN CAPITAL LETTER DZ WITH CARON (LATIN CAPITAL LETTER D Z HACEK) */
-  [0x1c4, 0x1c6], /* LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON (LATIN LETTER CAPITAL D SMALL Z HACEK) */
-  [0x1c4, 0x1c6], /* LATIN SMALL LETTER DZ WITH CARON (LATIN SMALL LETTER D Z HACEK) */
-  [0x1c7, 0x1c9], /* LATIN CAPITAL LETTER LJ (LATIN CAPITAL LETTER L J) */
-  [0x1c7, 0x1c9], /* LATIN CAPITAL LETTER L WITH SMALL LETTER J (LATIN LETTER CAPITAL L SMALL J) */
-  [0x1c7, 0x1c9], /* LATIN SMALL LETTER LJ (LATIN SMALL LETTER L J) */
-  [0x1ca, 0x1cc], /* LATIN CAPITAL LETTER NJ (LATIN CAPITAL LETTER N J) */
-  [0x1ca, 0x1cc], /* LATIN CAPITAL LETTER N WITH SMALL LETTER J (LATIN LETTER CAPITAL N SMALL J) */
-  [0x1ca, 0x1cc], /* LATIN SMALL LETTER NJ (LATIN SMALL LETTER N J) */
-  [0x1cd, 0x1ce], /* LATIN CAPITAL LETTER A WITH CARON (LATIN CAPITAL LETTER A HACEK) */
-  [0x1cd, 0x1ce], /* LATIN SMALL LETTER A WITH CARON (LATIN SMALL LETTER A HACEK) */
-  [0x1cf, 0x1d0], /* LATIN CAPITAL LETTER I WITH CARON (LATIN CAPITAL LETTER I HACEK) */
-  [0x1cf, 0x1d0], /* LATIN SMALL LETTER I WITH CARON (LATIN SMALL LETTER I HACEK) */
-  [0x1d1, 0x1d2], /* LATIN CAPITAL LETTER O WITH CARON (LATIN CAPITAL LETTER O HACEK) */
-  [0x1d1, 0x1d2], /* LATIN SMALL LETTER O WITH CARON (LATIN SMALL LETTER O HACEK) */
-  [0x1d3, 0x1d4], /* LATIN CAPITAL LETTER U WITH CARON (LATIN CAPITAL LETTER U HACEK) */
-  [0x1d3, 0x1d4], /* LATIN SMALL LETTER U WITH CARON (LATIN SMALL LETTER U HACEK) */
-  [0x1d5, 0x1d6], /* LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON (LATIN CAPITAL LETTER U DIAERESIS MACRON) */
-  [0x1d5, 0x1d6], /* LATIN SMALL LETTER U WITH DIAERESIS AND MACRON (LATIN SMALL LETTER U DIAERESIS MACRON) */
-  [0x1d7, 0x1d8], /* LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE (LATIN CAPITAL LETTER U DIAERESIS ACUTE) */
-  [0x1d7, 0x1d8], /* LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE (LATIN SMALL LETTER U DIAERESIS ACUTE) */
-  [0x1d9, 0x1da], /* LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON (LATIN CAPITAL LETTER U DIAERESIS HACEK) */
-  [0x1d9, 0x1da], /* LATIN SMALL LETTER U WITH DIAERESIS AND CARON (LATIN SMALL LETTER U DIAERESIS HACEK) */
-  [0x1db, 0x1dc], /* LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE (LATIN CAPITAL LETTER U DIAERESIS GRAVE) */
-  [0x1db, 0x1dc], /* LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE (LATIN SMALL LETTER U DIAERESIS GRAVE) */
-  [0x18e, 0x1dd], /* LATIN SMALL LETTER TURNED E */
-  [0x1de, 0x1df], /* LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON (LATIN CAPITAL LETTER A DIAERESIS MACRON) */
-  [0x1de, 0x1df], /* LATIN SMALL LETTER A WITH DIAERESIS AND MACRON (LATIN SMALL LETTER A DIAERESIS MACRON) */
-  [0x1e0, 0x1e1], /* LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON (LATIN CAPITAL LETTER A DOT MACRON) */
-  [0x1e0, 0x1e1], /* LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON (LATIN SMALL LETTER A DOT MACRON) */
-  [0x1e2, 0x1e3], /* LATIN CAPITAL LETTER AE WITH MACRON (LATIN CAPITAL LETTER A E MACRON) */
-  [0x1e2, 0x1e3], /* LATIN SMALL LETTER AE WITH MACRON (LATIN SMALL LETTER A E MACRON) */
-  [0x1e4, 0x1e5], /* LATIN CAPITAL LETTER G WITH STROKE (LATIN CAPITAL LETTER G BAR) */
-  [0x1e4, 0x1e5], /* LATIN SMALL LETTER G WITH STROKE (LATIN SMALL LETTER G BAR) */
-  [0x1e6, 0x1e7], /* LATIN CAPITAL LETTER G WITH CARON (LATIN CAPITAL LETTER G HACEK) */
-  [0x1e6, 0x1e7], /* LATIN SMALL LETTER G WITH CARON (LATIN SMALL LETTER G HACEK) */
-  [0x1e8, 0x1e9], /* LATIN CAPITAL LETTER K WITH CARON (LATIN CAPITAL LETTER K HACEK) */
-  [0x1e8, 0x1e9], /* LATIN SMALL LETTER K WITH CARON (LATIN SMALL LETTER K HACEK) */
-  [0x1ea, 0x1eb], /* LATIN CAPITAL LETTER O WITH OGONEK (LATIN CAPITAL LETTER O OGONEK) */
-  [0x1ea, 0x1eb], /* LATIN SMALL LETTER O WITH OGONEK (LATIN SMALL LETTER O OGONEK) */
-  [0x1ec, 0x1ed], /* LATIN CAPITAL LETTER O WITH OGONEK AND MACRON (LATIN CAPITAL LETTER O OGONEK MACRON) */
-  [0x1ec, 0x1ed], /* LATIN SMALL LETTER O WITH OGONEK AND MACRON (LATIN SMALL LETTER O OGONEK MACRON) */
-  [0x1ee, 0x1ef], /* LATIN CAPITAL LETTER EZH WITH CARON (LATIN CAPITAL LETTER YOGH HACEK) */
-  [0x1ee, 0x1ef], /* LATIN SMALL LETTER EZH WITH CARON (LATIN SMALL LETTER YOGH HACEK) */
-  [0x1f0, 0x1f0], /* LATIN SMALL LETTER J WITH CARON (LATIN SMALL LETTER J HACEK) */
-  [0x1f1, 0x1f3], /* LATIN CAPITAL LETTER DZ */
-  [0x1f1, 0x1f3], /* LATIN CAPITAL LETTER D WITH SMALL LETTER Z */
-  [0x1f1, 0x1f3], /* LATIN SMALL LETTER DZ */
-  [0x1f4, 0x1f5], /* LATIN CAPITAL LETTER G WITH ACUTE */
-  [0x1f4, 0x1f5], /* LATIN SMALL LETTER G WITH ACUTE */
-  [0x1f6, 0x195], /* LATIN CAPITAL LETTER HWAIR */
-  [0x1f7, 0x1bf], /* LATIN CAPITAL LETTER WYNN */
-  [0x1f8, 0x1f9], /* LATIN CAPITAL LETTER N WITH GRAVE */
-  [0x1f8, 0x1f9], /* LATIN SMALL LETTER N WITH GRAVE */
-  [0x1fa, 0x1fb], /* LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE */
-  [0x1fa, 0x1fb], /* LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE */
-  [0x1fc, 0x1fd], /* LATIN CAPITAL LETTER AE WITH ACUTE */
-  [0x1fc, 0x1fd], /* LATIN SMALL LETTER AE WITH ACUTE */
-  [0x1fe, 0x1ff], /* LATIN CAPITAL LETTER O WITH STROKE AND ACUTE */
-  [0x1fe, 0x1ff], /* LATIN SMALL LETTER O WITH STROKE AND ACUTE */
-  [0x200, 0x201], /* LATIN CAPITAL LETTER A WITH DOUBLE GRAVE */
-  [0x200, 0x201], /* LATIN SMALL LETTER A WITH DOUBLE GRAVE */
-  [0x202, 0x203], /* LATIN CAPITAL LETTER A WITH INVERTED BREVE */
-  [0x202, 0x203], /* LATIN SMALL LETTER A WITH INVERTED BREVE */
-  [0x204, 0x205], /* LATIN CAPITAL LETTER E WITH DOUBLE GRAVE */
-  [0x204, 0x205], /* LATIN SMALL LETTER E WITH DOUBLE GRAVE */
-  [0x206, 0x207], /* LATIN CAPITAL LETTER E WITH INVERTED BREVE */
-  [0x206, 0x207], /* LATIN SMALL LETTER E WITH INVERTED BREVE */
-  [0x208, 0x209], /* LATIN CAPITAL LETTER I WITH DOUBLE GRAVE */
-  [0x208, 0x209], /* LATIN SMALL LETTER I WITH DOUBLE GRAVE */
-  [0x20a, 0x20b], /* LATIN CAPITAL LETTER I WITH INVERTED BREVE */
-  [0x20a, 0x20b], /* LATIN SMALL LETTER I WITH INVERTED BREVE */
-  [0x20c, 0x20d], /* LATIN CAPITAL LETTER O WITH DOUBLE GRAVE */
-  [0x20c, 0x20d], /* LATIN SMALL LETTER O WITH DOUBLE GRAVE */
-  [0x20e, 0x20f], /* LATIN CAPITAL LETTER O WITH INVERTED BREVE */
-  [0x20e, 0x20f], /* LATIN SMALL LETTER O WITH INVERTED BREVE */
-  [0x210, 0x211], /* LATIN CAPITAL LETTER R WITH DOUBLE GRAVE */
-  [0x210, 0x211], /* LATIN SMALL LETTER R WITH DOUBLE GRAVE */
-  [0x212, 0x213], /* LATIN CAPITAL LETTER R WITH INVERTED BREVE */
-  [0x212, 0x213], /* LATIN SMALL LETTER R WITH INVERTED BREVE */
-  [0x214, 0x215], /* LATIN CAPITAL LETTER U WITH DOUBLE GRAVE */
-  [0x214, 0x215], /* LATIN SMALL LETTER U WITH DOUBLE GRAVE */
-  [0x216, 0x217], /* LATIN CAPITAL LETTER U WITH INVERTED BREVE */
-  [0x216, 0x217], /* LATIN SMALL LETTER U WITH INVERTED BREVE */
-  [0x218, 0x219], /* LATIN CAPITAL LETTER S WITH COMMA BELOW */
-  [0x218, 0x219], /* LATIN SMALL LETTER S WITH COMMA BELOW */
-  [0x21a, 0x21b], /* LATIN CAPITAL LETTER T WITH COMMA BELOW */
-  [0x21a, 0x21b], /* LATIN SMALL LETTER T WITH COMMA BELOW */
-  [0x21c, 0x21d], /* LATIN CAPITAL LETTER YOGH */
-  [0x21c, 0x21d], /* LATIN SMALL LETTER YOGH */
-  [0x21e, 0x21f], /* LATIN CAPITAL LETTER H WITH CARON */
-  [0x21e, 0x21f], /* LATIN SMALL LETTER H WITH CARON */
-  [0x220, 0x19e], /* LATIN CAPITAL LETTER N WITH LONG RIGHT LEG */
-  [0x221, 0x221], /* LATIN SMALL LETTER D WITH CURL */
-  [0x222, 0x223], /* LATIN CAPITAL LETTER OU */
-  [0x222, 0x223], /* LATIN SMALL LETTER OU */
-  [0x224, 0x225], /* LATIN CAPITAL LETTER Z WITH HOOK */
-  [0x224, 0x225], /* LATIN SMALL LETTER Z WITH HOOK */
-  [0x226, 0x227], /* LATIN CAPITAL LETTER A WITH DOT ABOVE */
-  [0x226, 0x227], /* LATIN SMALL LETTER A WITH DOT ABOVE */
-  [0x228, 0x229], /* LATIN CAPITAL LETTER E WITH CEDILLA */
-  [0x228, 0x229], /* LATIN SMALL LETTER E WITH CEDILLA */
-  [0x22a, 0x22b], /* LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON */
-  [0x22a, 0x22b], /* LATIN SMALL LETTER O WITH DIAERESIS AND MACRON */
-  [0x22c, 0x22d], /* LATIN CAPITAL LETTER O WITH TILDE AND MACRON */
-  [0x22c, 0x22d], /* LATIN SMALL LETTER O WITH TILDE AND MACRON */
-  [0x22e, 0x22f], /* LATIN CAPITAL LETTER O WITH DOT ABOVE */
-  [0x22e, 0x22f], /* LATIN SMALL LETTER O WITH DOT ABOVE */
-  [0x230, 0x231], /* LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON */
-  [0x230, 0x231], /* LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON */
-  [0x232, 0x233], /* LATIN CAPITAL LETTER Y WITH MACRON */
-  [0x232, 0x233], /* LATIN SMALL LETTER Y WITH MACRON */
-  [0x234, 0x234], /* LATIN SMALL LETTER L WITH CURL */
-  [0x235, 0x235], /* LATIN SMALL LETTER N WITH CURL */
-  [0x236, 0x236], /* LATIN SMALL LETTER T WITH CURL */
-  [0x237, 0x237], /* LATIN SMALL LETTER DOTLESS J */
-  [0x238, 0x238], /* LATIN SMALL LETTER DB DIGRAPH */
-  [0x239, 0x239], /* LATIN SMALL LETTER QP DIGRAPH */
-  [0x23a, 0x2c65], /* LATIN CAPITAL LETTER A WITH STROKE */
-  [0x23b, 0x23c], /* LATIN CAPITAL LETTER C WITH STROKE */
-  [0x23b, 0x23c], /* LATIN SMALL LETTER C WITH STROKE */
-  [0x23d, 0x19a], /* LATIN CAPITAL LETTER L WITH BAR */
-  [0x23e, 0x2c66], /* LATIN CAPITAL LETTER T WITH DIAGONAL STROKE */
-  [0x2c7e, 0x23f], /* LATIN SMALL LETTER S WITH SWASH TAIL */
-  [0x2c7f, 0x240], /* LATIN SMALL LETTER Z WITH SWASH TAIL */
-  [0x241, 0x242], /* LATIN CAPITAL LETTER GLOTTAL STOP */
-  [0x241, 0x242], /* LATIN SMALL LETTER GLOTTAL STOP */
-  [0x243, 0x180], /* LATIN CAPITAL LETTER B WITH STROKE */
-  [0x244, 0x289], /* LATIN CAPITAL LETTER U BAR */
-  [0x245, 0x28c], /* LATIN CAPITAL LETTER TURNED V */
-  [0x246, 0x247], /* LATIN CAPITAL LETTER E WITH STROKE */
-  [0x246, 0x247], /* LATIN SMALL LETTER E WITH STROKE */
-  [0x248, 0x249], /* LATIN CAPITAL LETTER J WITH STROKE */
-  [0x248, 0x249], /* LATIN SMALL LETTER J WITH STROKE */
-  [0x24a, 0x24b], /* LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL */
-  [0x24a, 0x24b], /* LATIN SMALL LETTER Q WITH HOOK TAIL */
-  [0x24c, 0x24d], /* LATIN CAPITAL LETTER R WITH STROKE */
-  [0x24c, 0x24d], /* LATIN SMALL LETTER R WITH STROKE */
-  [0x24e, 0x24f], /* LATIN CAPITAL LETTER Y WITH STROKE */
-  [0x24e, 0x24f], /* LATIN SMALL LETTER Y WITH STROKE */
-  [0x2c6f, 0x250], /* LATIN SMALL LETTER TURNED A */
-  [0x2c6d, 0x251], /* LATIN SMALL LETTER ALPHA (LATIN SMALL LETTER SCRIPT A) */
-  [0x2c70, 0x252], /* LATIN SMALL LETTER TURNED ALPHA (LATIN SMALL LETTER TURNED SCRIPT A) */
-  [0x181, 0x253], /* LATIN SMALL LETTER B WITH HOOK (LATIN SMALL LETTER B HOOK) */
-  [0x186, 0x254], /* LATIN SMALL LETTER OPEN O */
-  [0x255, 0x255], /* LATIN SMALL LETTER C WITH CURL (LATIN SMALL LETTER C CURL) */
-  [0x189, 0x256], /* LATIN SMALL LETTER D WITH TAIL (LATIN SMALL LETTER D RETROFLEX HOOK) */
-  [0x18a, 0x257], /* LATIN SMALL LETTER D WITH HOOK (LATIN SMALL LETTER D HOOK) */
-  [0x258, 0x258], /* LATIN SMALL LETTER REVERSED E */
-  [0x18f, 0x259], /* LATIN SMALL LETTER SCHWA */
-  [0x25a, 0x25a], /* LATIN SMALL LETTER SCHWA WITH HOOK (LATIN SMALL LETTER SCHWA HOOK) */
-  [0x190, 0x25b], /* LATIN SMALL LETTER OPEN E (LATIN SMALL LETTER EPSILON) */
-  [0xa7ab, 0x25c], /* LATIN SMALL LETTER REVERSED OPEN E (LATIN SMALL LETTER REVERSED EPSILON) */
-  [0x25d, 0x25d], /* LATIN SMALL LETTER REVERSED OPEN E WITH HOOK (LATIN SMALL LETTER REVERSED EPSILON HOOK) */
-  [0x25e, 0x25e], /* LATIN SMALL LETTER CLOSED REVERSED OPEN E (LATIN SMALL LETTER CLOSED REVERSED EPSILON) */
-  [0x25f, 0x25f], /* LATIN SMALL LETTER DOTLESS J WITH STROKE (LATIN SMALL LETTER DOTLESS J BAR) */
-  [0x193, 0x260], /* LATIN SMALL LETTER G WITH HOOK (LATIN SMALL LETTER G HOOK) */
-  [0xa7ac, 0x261], /* LATIN SMALL LETTER SCRIPT G */
-  [0x262, 0x262], /* LATIN LETTER SMALL CAPITAL G */
-  [0x194, 0x263], /* LATIN SMALL LETTER GAMMA */
-  [0x264, 0x264], /* LATIN SMALL LETTER RAMS HORN (LATIN SMALL LETTER BABY GAMMA) */
-  [0xa78d, 0x265], /* LATIN SMALL LETTER TURNED H */
-  [0xa7aa, 0x266], /* LATIN SMALL LETTER H WITH HOOK (LATIN SMALL LETTER H HOOK) */
-  [0x267, 0x267], /* LATIN SMALL LETTER HENG WITH HOOK (LATIN SMALL LETTER HENG HOOK) */
-  [0x197, 0x268], /* LATIN SMALL LETTER I WITH STROKE (LATIN SMALL LETTER BARRED I) */
-  [0x196, 0x269], /* LATIN SMALL LETTER IOTA */
-  [0xa7ae, 0x26a], /* LATIN LETTER SMALL CAPITAL I */
-  [0x2c62, 0x26b], /* LATIN SMALL LETTER L WITH MIDDLE TILDE */
-  [0xa7ad, 0x26c], /* LATIN SMALL LETTER L WITH BELT (LATIN SMALL LETTER L BELT) */
-  [0x26d, 0x26d], /* LATIN SMALL LETTER L WITH RETROFLEX HOOK (LATIN SMALL LETTER L RETROFLEX HOOK) */
-  [0x26e, 0x26e], /* LATIN SMALL LETTER LEZH (LATIN SMALL LETTER L YOGH) */
-  [0x19c, 0x26f], /* LATIN SMALL LETTER TURNED M */
-  [0x270, 0x270], /* LATIN SMALL LETTER TURNED M WITH LONG LEG */
-  [0x2c6e, 0x271], /* LATIN SMALL LETTER M WITH HOOK (LATIN SMALL LETTER M HOOK) */
-  [0x19d, 0x272], /* LATIN SMALL LETTER N WITH LEFT HOOK (LATIN SMALL LETTER N HOOK) */
-  [0x273, 0x273], /* LATIN SMALL LETTER N WITH RETROFLEX HOOK (LATIN SMALL LETTER N RETROFLEX HOOK) */
-  [0x274, 0x274], /* LATIN LETTER SMALL CAPITAL N */
-  [0x19f, 0x275], /* LATIN SMALL LETTER BARRED O */
-  [0x276, 0x276], /* LATIN LETTER SMALL CAPITAL OE (LATIN LETTER SMALL CAPITAL O E) */
-  [0x277, 0x277], /* LATIN SMALL LETTER CLOSED OMEGA */
-  [0x278, 0x278], /* LATIN SMALL LETTER PHI */
-  [0x279, 0x279], /* LATIN SMALL LETTER TURNED R */
-  [0x27a, 0x27a], /* LATIN SMALL LETTER TURNED R WITH LONG LEG */
-  [0x27b, 0x27b], /* LATIN SMALL LETTER TURNED R WITH HOOK (LATIN SMALL LETTER TURNED R HOOK) */
-  [0x27c, 0x27c], /* LATIN SMALL LETTER R WITH LONG LEG */
-  [0x2c64, 0x27d], /* LATIN SMALL LETTER R WITH TAIL (LATIN SMALL LETTER R HOOK) */
-  [0x27e, 0x27e], /* LATIN SMALL LETTER R WITH FISHHOOK (LATIN SMALL LETTER FISHHOOK R) */
-  [0x27f, 0x27f], /* LATIN SMALL LETTER REVERSED R WITH FISHHOOK (LATIN SMALL LETTER REVERSED FISHHOOK R) */
-  [0x1a6, 0x280], /* LATIN LETTER SMALL CAPITAL R */
-  [0x281, 0x281], /* LATIN LETTER SMALL CAPITAL INVERTED R */
-  [0x282, 0x282], /* LATIN SMALL LETTER S WITH HOOK (LATIN SMALL LETTER S HOOK) */
-  [0x1a9, 0x283], /* LATIN SMALL LETTER ESH */
-  [0x284, 0x284], /* LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK (LATIN SMALL LETTER DOTLESS J BAR HOOK) */
-  [0x285, 0x285], /* LATIN SMALL LETTER SQUAT REVERSED ESH */
-  [0x286, 0x286], /* LATIN SMALL LETTER ESH WITH CURL (LATIN SMALL LETTER ESH CURL) */
-  [0xa7b1, 0x287], /* LATIN SMALL LETTER TURNED T */
-  [0x1ae, 0x288], /* LATIN SMALL LETTER T WITH RETROFLEX HOOK (LATIN SMALL LETTER T RETROFLEX HOOK) */
-  [0x244, 0x289], /* LATIN SMALL LETTER U BAR */
-  [0x1b1, 0x28a], /* LATIN SMALL LETTER UPSILON */
-  [0x1b2, 0x28b], /* LATIN SMALL LETTER V WITH HOOK (LATIN SMALL LETTER SCRIPT V) */
-  [0x245, 0x28c], /* LATIN SMALL LETTER TURNED V */
-  [0x28d, 0x28d], /* LATIN SMALL LETTER TURNED W */
-  [0x28e, 0x28e], /* LATIN SMALL LETTER TURNED Y */
-  [0x28f, 0x28f], /* LATIN LETTER SMALL CAPITAL Y */
-  [0x290, 0x290], /* LATIN SMALL LETTER Z WITH RETROFLEX HOOK (LATIN SMALL LETTER Z RETROFLEX HOOK) */
-  [0x291, 0x291], /* LATIN SMALL LETTER Z WITH CURL (LATIN SMALL LETTER Z CURL) */
-  [0x1b7, 0x292], /* LATIN SMALL LETTER EZH (LATIN SMALL LETTER YOGH) */
-  [0x293, 0x293], /* LATIN SMALL LETTER EZH WITH CURL (LATIN SMALL LETTER YOGH CURL) */
-  [0x294, 0x294], /* LATIN LETTER GLOTTAL STOP */
-  [0x295, 0x295], /* LATIN LETTER PHARYNGEAL VOICED FRICATIVE (LATIN LETTER REVERSED GLOTTAL STOP) */
-  [0x296, 0x296], /* LATIN LETTER INVERTED GLOTTAL STOP */
-  [0x297, 0x297], /* LATIN LETTER STRETCHED C */
-  [0x298, 0x298], /* LATIN LETTER BILABIAL CLICK (LATIN LETTER BULLSEYE) */
-  [0x299, 0x299], /* LATIN LETTER SMALL CAPITAL B */
-  [0x29a, 0x29a], /* LATIN SMALL LETTER CLOSED OPEN E (LATIN SMALL LETTER CLOSED EPSILON) */
-  [0x29b, 0x29b], /* LATIN LETTER SMALL CAPITAL G WITH HOOK (LATIN LETTER SMALL CAPITAL G HOOK) */
-  [0x29c, 0x29c], /* LATIN LETTER SMALL CAPITAL H */
-  [0xa7b2, 0x29d], /* LATIN SMALL LETTER J WITH CROSSED-TAIL (LATIN SMALL LETTER CROSSED-TAIL J) */
-  [0xa7b0, 0x29e], /* LATIN SMALL LETTER TURNED K */
-  [0x29f, 0x29f], /* LATIN LETTER SMALL CAPITAL L */
-  [0x2a0, 0x2a0], /* LATIN SMALL LETTER Q WITH HOOK (LATIN SMALL LETTER Q HOOK) */
-  [0x2a1, 0x2a1], /* LATIN LETTER GLOTTAL STOP WITH STROKE (LATIN LETTER GLOTTAL STOP BAR) */
-  [0x2a2, 0x2a2], /* LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE (LATIN LETTER REVERSED GLOTTAL STOP BAR) */
-  [0x2a3, 0x2a3], /* LATIN SMALL LETTER DZ DIGRAPH (LATIN SMALL LETTER D Z) */
-  [0x2a4, 0x2a4], /* LATIN SMALL LETTER DEZH DIGRAPH (LATIN SMALL LETTER D YOGH) */
-  [0x2a5, 0x2a5], /* LATIN SMALL LETTER DZ DIGRAPH WITH CURL (LATIN SMALL LETTER D Z CURL) */
-  [0x2a6, 0x2a6], /* LATIN SMALL LETTER TS DIGRAPH (LATIN SMALL LETTER T S) */
-  [0x2a7, 0x2a7], /* LATIN SMALL LETTER TESH DIGRAPH (LATIN SMALL LETTER T ESH) */
-  [0x2a8, 0x2a8], /* LATIN SMALL LETTER TC DIGRAPH WITH CURL (LATIN SMALL LETTER T C CURL) */
-  [0x2a9, 0x2a9], /* LATIN SMALL LETTER FENG DIGRAPH */
-  [0x2aa, 0x2aa], /* LATIN SMALL LETTER LS DIGRAPH */
-  [0x2ab, 0x2ab], /* LATIN SMALL LETTER LZ DIGRAPH */
-  [0x2ac, 0x2ac], /* LATIN LETTER BILABIAL PERCUSSIVE */
-  [0x2ad, 0x2ad], /* LATIN LETTER BIDENTAL PERCUSSIVE */
-  [0x2ae, 0x2ae], /* LATIN SMALL LETTER TURNED H WITH FISHHOOK */
-  [0x2af, 0x2af], /* LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL */
-  [0x2b0, 0x2b0], /* MODIFIER LETTER SMALL H */
-  [0x2b1, 0x2b1], /* MODIFIER LETTER SMALL H WITH HOOK (MODIFIER LETTER SMALL H HOOK) */
-  [0x2b2, 0x2b2], /* MODIFIER LETTER SMALL J */
-  [0x2b3, 0x2b3], /* MODIFIER LETTER SMALL R */
-  [0x2b4, 0x2b4], /* MODIFIER LETTER SMALL TURNED R */
-  [0x2b5, 0x2b5], /* MODIFIER LETTER SMALL TURNED R WITH HOOK (MODIFIER LETTER SMALL TURNED R HOOK) */
-  [0x2b6, 0x2b6], /* MODIFIER LETTER SMALL CAPITAL INVERTED R */
-  [0x2b7, 0x2b7], /* MODIFIER LETTER SMALL W */
-  [0x2b8, 0x2b8], /* MODIFIER LETTER SMALL Y */
-  [0x2b9, 0x2b9], /* MODIFIER LETTER PRIME */
-  [0x2ba, 0x2ba], /* MODIFIER LETTER DOUBLE PRIME */
-  [0x2bb, 0x2bb], /* MODIFIER LETTER TURNED COMMA */
-  [0x2bc, 0x2bc], /* MODIFIER LETTER APOSTROPHE */
-  [0x2bd, 0x2bd], /* MODIFIER LETTER REVERSED COMMA */
-  [0x2be, 0x2be], /* MODIFIER LETTER RIGHT HALF RING */
-  [0x2bf, 0x2bf], /* MODIFIER LETTER LEFT HALF RING */
-  [0x2c0, 0x2c0], /* MODIFIER LETTER GLOTTAL STOP */
-  [0x2c1, 0x2c1], /* MODIFIER LETTER REVERSED GLOTTAL STOP */
-  [0x2c2, 0x2c2], /* MODIFIER LETTER LEFT ARROWHEAD */
-  [0x2c3, 0x2c3], /* MODIFIER LETTER RIGHT ARROWHEAD */
-  [0x2c4, 0x2c4], /* MODIFIER LETTER UP ARROWHEAD */
-  [0x2c5, 0x2c5], /* MODIFIER LETTER DOWN ARROWHEAD */
-  [0x2c6, 0x2c6], /* MODIFIER LETTER CIRCUMFLEX ACCENT (MODIFIER LETTER CIRCUMFLEX) */
-  [0x2c7, 0x2c7], /* CARON (MODIFIER LETTER HACEK) */
-  [0x2c8, 0x2c8], /* MODIFIER LETTER VERTICAL LINE */
-  [0x2c9, 0x2c9], /* MODIFIER LETTER MACRON */
-  [0x2ca, 0x2ca], /* MODIFIER LETTER ACUTE ACCENT (MODIFIER LETTER ACUTE) */
-  [0x2cb, 0x2cb], /* MODIFIER LETTER GRAVE ACCENT (MODIFIER LETTER GRAVE) */
-  [0x2cc, 0x2cc], /* MODIFIER LETTER LOW VERTICAL LINE */
-  [0x2cd, 0x2cd], /* MODIFIER LETTER LOW MACRON */
-  [0x2ce, 0x2ce], /* MODIFIER LETTER LOW GRAVE ACCENT (MODIFIER LETTER LOW GRAVE) */
-  [0x2cf, 0x2cf], /* MODIFIER LETTER LOW ACUTE ACCENT (MODIFIER LETTER LOW ACUTE) */
-  [0x2d0, 0x2d0], /* MODIFIER LETTER TRIANGULAR COLON */
-  [0x2d1, 0x2d1], /* MODIFIER LETTER HALF TRIANGULAR COLON */
-  [0x2d2, 0x2d2], /* MODIFIER LETTER CENTRED RIGHT HALF RING (MODIFIER LETTER CENTERED RIGHT HALF RING) */
-  [0x2d3, 0x2d3], /* MODIFIER LETTER CENTRED LEFT HALF RING (MODIFIER LETTER CENTERED LEFT HALF RING) */
-  [0x2d4, 0x2d4], /* MODIFIER LETTER UP TACK */
-  [0x2d5, 0x2d5], /* MODIFIER LETTER DOWN TACK */
-  [0x2d6, 0x2d6], /* MODIFIER LETTER PLUS SIGN */
-  [0x2d7, 0x2d7], /* MODIFIER LETTER MINUS SIGN */
-  [0x2d8, 0x2d8], /* BREVE (SPACING BREVE) */
-  [0x2d9, 0x2d9], /* DOT ABOVE (SPACING DOT ABOVE) */
-  [0x2da, 0x2da], /* RING ABOVE (SPACING RING ABOVE) */
-  [0x2db, 0x2db], /* OGONEK (SPACING OGONEK) */
-  [0x2dc, 0x2dc], /* SMALL TILDE (SPACING TILDE) */
-  [0x2dd, 0x2dd], /* DOUBLE ACUTE ACCENT (SPACING DOUBLE ACUTE) */
-  [0x2de, 0x2de], /* MODIFIER LETTER RHOTIC HOOK */
-  [0x2df, 0x2df], /* MODIFIER LETTER CROSS ACCENT */
-  [0x2e0, 0x2e0], /* MODIFIER LETTER SMALL GAMMA */
-  [0x2e1, 0x2e1], /* MODIFIER LETTER SMALL L */
-  [0x2e2, 0x2e2], /* MODIFIER LETTER SMALL S */
-  [0x2e3, 0x2e3], /* MODIFIER LETTER SMALL X */
-  [0x2e4, 0x2e4], /* MODIFIER LETTER SMALL REVERSED GLOTTAL STOP */
-  [0x2e5, 0x2e5], /* MODIFIER LETTER EXTRA-HIGH TONE BAR */
-  [0x2e6, 0x2e6], /* MODIFIER LETTER HIGH TONE BAR */
-  [0x2e7, 0x2e7], /* MODIFIER LETTER MID TONE BAR */
-  [0x2e8, 0x2e8], /* MODIFIER LETTER LOW TONE BAR */
-  [0x2e9, 0x2e9], /* MODIFIER LETTER EXTRA-LOW TONE BAR */
-  [0x2ea, 0x2ea], /* MODIFIER LETTER YIN DEPARTING TONE MARK */
-  [0x2eb, 0x2eb], /* MODIFIER LETTER YANG DEPARTING TONE MARK */
-  [0x2ec, 0x2ec], /* MODIFIER LETTER VOICING */
-  [0x2ed, 0x2ed], /* MODIFIER LETTER UNASPIRATED */
-  [0x2ee, 0x2ee], /* MODIFIER LETTER DOUBLE APOSTROPHE */
-  [0x2ef, 0x2ef], /* MODIFIER LETTER LOW DOWN ARROWHEAD */
-  [0x2f0, 0x2f0], /* MODIFIER LETTER LOW UP ARROWHEAD */
-  [0x2f1, 0x2f1], /* MODIFIER LETTER LOW LEFT ARROWHEAD */
-  [0x2f2, 0x2f2], /* MODIFIER LETTER LOW RIGHT ARROWHEAD */
-  [0x2f3, 0x2f3], /* MODIFIER LETTER LOW RING */
-  [0x2f4, 0x2f4], /* MODIFIER LETTER MIDDLE GRAVE ACCENT */
-  [0x2f5, 0x2f5], /* MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT */
-  [0x2f6, 0x2f6], /* MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT */
-  [0x2f7, 0x2f7], /* MODIFIER LETTER LOW TILDE */
-  [0x2f8, 0x2f8], /* MODIFIER LETTER RAISED COLON */
-  [0x2f9, 0x2f9], /* MODIFIER LETTER BEGIN HIGH TONE */
-  [0x2fa, 0x2fa], /* MODIFIER LETTER END HIGH TONE */
-  [0x2fb, 0x2fb], /* MODIFIER LETTER BEGIN LOW TONE */
-  [0x2fc, 0x2fc], /* MODIFIER LETTER END LOW TONE */
-  [0x2fd, 0x2fd], /* MODIFIER LETTER SHELF */
-  [0x2fe, 0x2fe], /* MODIFIER LETTER OPEN SHELF */
-  [0x2ff, 0x2ff], /* MODIFIER LETTER LOW LEFT ARROW */
-  [0x300, 0x300], /* COMBINING GRAVE ACCENT (NON-SPACING GRAVE) */
-  [0x301, 0x301], /* COMBINING ACUTE ACCENT (NON-SPACING ACUTE) */
-  [0x302, 0x302], /* COMBINING CIRCUMFLEX ACCENT (NON-SPACING CIRCUMFLEX) */
-  [0x303, 0x303], /* COMBINING TILDE (NON-SPACING TILDE) */
-  [0x304, 0x304], /* COMBINING MACRON (NON-SPACING MACRON) */
-  [0x305, 0x305], /* COMBINING OVERLINE (NON-SPACING OVERSCORE) */
-  [0x306, 0x306], /* COMBINING BREVE (NON-SPACING BREVE) */
-  [0x307, 0x307], /* COMBINING DOT ABOVE (NON-SPACING DOT ABOVE) */
-  [0x308, 0x308], /* COMBINING DIAERESIS (NON-SPACING DIAERESIS) */
-  [0x309, 0x309], /* COMBINING HOOK ABOVE (NON-SPACING HOOK ABOVE) */
-  [0x30a, 0x30a], /* COMBINING RING ABOVE (NON-SPACING RING ABOVE) */
-  [0x30b, 0x30b], /* COMBINING DOUBLE ACUTE ACCENT (NON-SPACING DOUBLE ACUTE) */
-  [0x30c, 0x30c], /* COMBINING CARON (NON-SPACING HACEK) */
-  [0x30d, 0x30d], /* COMBINING VERTICAL LINE ABOVE (NON-SPACING VERTICAL LINE ABOVE) */
-  [0x30e, 0x30e], /* COMBINING DOUBLE VERTICAL LINE ABOVE (NON-SPACING DOUBLE VERTICAL LINE ABOVE) */
-  [0x30f, 0x30f], /* COMBINING DOUBLE GRAVE ACCENT (NON-SPACING DOUBLE GRAVE) */
-  [0x310, 0x310], /* COMBINING CANDRABINDU (NON-SPACING CANDRABINDU) */
-  [0x311, 0x311], /* COMBINING INVERTED BREVE (NON-SPACING INVERTED BREVE) */
-  [0x312, 0x312], /* COMBINING TURNED COMMA ABOVE (NON-SPACING TURNED COMMA ABOVE) */
-  [0x313, 0x313], /* COMBINING COMMA ABOVE (NON-SPACING COMMA ABOVE) */
-  [0x314, 0x314], /* COMBINING REVERSED COMMA ABOVE (NON-SPACING REVERSED COMMA ABOVE) */
-  [0x315, 0x315], /* COMBINING COMMA ABOVE RIGHT (NON-SPACING COMMA ABOVE RIGHT) */
-  [0x316, 0x316], /* COMBINING GRAVE ACCENT BELOW (NON-SPACING GRAVE BELOW) */
-  [0x317, 0x317], /* COMBINING ACUTE ACCENT BELOW (NON-SPACING ACUTE BELOW) */
-  [0x318, 0x318], /* COMBINING LEFT TACK BELOW (NON-SPACING LEFT TACK BELOW) */
-  [0x319, 0x319], /* COMBINING RIGHT TACK BELOW (NON-SPACING RIGHT TACK BELOW) */
-  [0x31a, 0x31a], /* COMBINING LEFT ANGLE ABOVE (NON-SPACING LEFT ANGLE ABOVE) */
-  [0x31b, 0x31b], /* COMBINING HORN (NON-SPACING HORN) */
-  [0x31c, 0x31c], /* COMBINING LEFT HALF RING BELOW (NON-SPACING LEFT HALF RING BELOW) */
-  [0x31d, 0x31d], /* COMBINING UP TACK BELOW (NON-SPACING UP TACK BELOW) */
-  [0x31e, 0x31e], /* COMBINING DOWN TACK BELOW (NON-SPACING DOWN TACK BELOW) */
-  [0x31f, 0x31f], /* COMBINING PLUS SIGN BELOW (NON-SPACING PLUS SIGN BELOW) */
-  [0x320, 0x320], /* COMBINING MINUS SIGN BELOW (NON-SPACING MINUS SIGN BELOW) */
-  [0x321, 0x321], /* COMBINING PALATALIZED HOOK BELOW (NON-SPACING PALATALIZED HOOK BELOW) */
-  [0x322, 0x322], /* COMBINING RETROFLEX HOOK BELOW (NON-SPACING RETROFLEX HOOK BELOW) */
-  [0x323, 0x323], /* COMBINING DOT BELOW (NON-SPACING DOT BELOW) */
-  [0x324, 0x324], /* COMBINING DIAERESIS BELOW (NON-SPACING DOUBLE DOT BELOW) */
-  [0x325, 0x325], /* COMBINING RING BELOW (NON-SPACING RING BELOW) */
-  [0x326, 0x326], /* COMBINING COMMA BELOW (NON-SPACING COMMA BELOW) */
-  [0x327, 0x327], /* COMBINING CEDILLA (NON-SPACING CEDILLA) */
-  [0x328, 0x328], /* COMBINING OGONEK (NON-SPACING OGONEK) */
-  [0x329, 0x329], /* COMBINING VERTICAL LINE BELOW (NON-SPACING VERTICAL LINE BELOW) */
-  [0x32a, 0x32a], /* COMBINING BRIDGE BELOW (NON-SPACING BRIDGE BELOW) */
-  [0x32b, 0x32b], /* COMBINING INVERTED DOUBLE ARCH BELOW (NON-SPACING INVERTED DOUBLE ARCH BELOW) */
-  [0x32c, 0x32c], /* COMBINING CARON BELOW (NON-SPACING HACEK BELOW) */
-  [0x32d, 0x32d], /* COMBINING CIRCUMFLEX ACCENT BELOW (NON-SPACING CIRCUMFLEX BELOW) */
-  [0x32e, 0x32e], /* COMBINING BREVE BELOW (NON-SPACING BREVE BELOW) */
-  [0x32f, 0x32f], /* COMBINING INVERTED BREVE BELOW (NON-SPACING INVERTED BREVE BELOW) */
-  [0x330, 0x330], /* COMBINING TILDE BELOW (NON-SPACING TILDE BELOW) */
-  [0x331, 0x331], /* COMBINING MACRON BELOW (NON-SPACING MACRON BELOW) */
-  [0x332, 0x332], /* COMBINING LOW LINE (NON-SPACING UNDERSCORE) */
-  [0x333, 0x333], /* COMBINING DOUBLE LOW LINE (NON-SPACING DOUBLE UNDERSCORE) */
-  [0x334, 0x334], /* COMBINING TILDE OVERLAY (NON-SPACING TILDE OVERLAY) */
-  [0x335, 0x335], /* COMBINING SHORT STROKE OVERLAY (NON-SPACING SHORT BAR OVERLAY) */
-  [0x336, 0x336], /* COMBINING LONG STROKE OVERLAY (NON-SPACING LONG BAR OVERLAY) */
-  [0x337, 0x337], /* COMBINING SHORT SOLIDUS OVERLAY (NON-SPACING SHORT SLASH OVERLAY) */
-  [0x338, 0x338], /* COMBINING LONG SOLIDUS OVERLAY (NON-SPACING LONG SLASH OVERLAY) */
-  [0x339, 0x339], /* COMBINING RIGHT HALF RING BELOW (NON-SPACING RIGHT HALF RING BELOW) */
-  [0x33a, 0x33a], /* COMBINING INVERTED BRIDGE BELOW (NON-SPACING INVERTED BRIDGE BELOW) */
-  [0x33b, 0x33b], /* COMBINING SQUARE BELOW (NON-SPACING SQUARE BELOW) */
-  [0x33c, 0x33c], /* COMBINING SEAGULL BELOW (NON-SPACING SEAGULL BELOW) */
-  [0x33d, 0x33d], /* COMBINING X ABOVE (NON-SPACING X ABOVE) */
-  [0x33e, 0x33e], /* COMBINING VERTICAL TILDE (NON-SPACING VERTICAL TILDE) */
-  [0x33f, 0x33f], /* COMBINING DOUBLE OVERLINE (NON-SPACING DOUBLE OVERSCORE) */
-  [0x340, 0x340], /* COMBINING GRAVE TONE MARK (NON-SPACING GRAVE TONE MARK) */
-  [0x341, 0x341], /* COMBINING ACUTE TONE MARK (NON-SPACING ACUTE TONE MARK) */
-  [0x342, 0x342], /* COMBINING GREEK PERISPOMENI */
-  [0x343, 0x343], /* COMBINING GREEK KORONIS */
-  [0x344, 0x344], /* COMBINING GREEK DIALYTIKA TONOS (GREEK NON-SPACING DIAERESIS TONOS) */
-  [0x399, 0x345], /* COMBINING GREEK YPOGEGRAMMENI (GREEK NON-SPACING IOTA BELOW) */
-  [0x346, 0x346], /* COMBINING BRIDGE ABOVE */
-  [0x347, 0x347], /* COMBINING EQUALS SIGN BELOW */
-  [0x348, 0x348], /* COMBINING DOUBLE VERTICAL LINE BELOW */
-  [0x349, 0x349], /* COMBINING LEFT ANGLE BELOW */
-  [0x34a, 0x34a], /* COMBINING NOT TILDE ABOVE */
-  [0x34b, 0x34b], /* COMBINING HOMOTHETIC ABOVE */
-  [0x34c, 0x34c], /* COMBINING ALMOST EQUAL TO ABOVE */
-  [0x34d, 0x34d], /* COMBINING LEFT RIGHT ARROW BELOW */
-  [0x34e, 0x34e], /* COMBINING UPWARDS ARROW BELOW */
-  [0x34f, 0x34f], /* COMBINING GRAPHEME JOINER */
-  [0x350, 0x350], /* COMBINING RIGHT ARROWHEAD ABOVE */
-  [0x351, 0x351], /* COMBINING LEFT HALF RING ABOVE */
-  [0x352, 0x352], /* COMBINING FERMATA */
-  [0x353, 0x353], /* COMBINING X BELOW */
-  [0x354, 0x354], /* COMBINING LEFT ARROWHEAD BELOW */
-  [0x355, 0x355], /* COMBINING RIGHT ARROWHEAD BELOW */
-  [0x356, 0x356], /* COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW */
-  [0x357, 0x357], /* COMBINING RIGHT HALF RING ABOVE */
-  [0x358, 0x358], /* COMBINING DOT ABOVE RIGHT */
-  [0x359, 0x359], /* COMBINING ASTERISK BELOW */
-  [0x35a, 0x35a], /* COMBINING DOUBLE RING BELOW */
-  [0x35b, 0x35b], /* COMBINING ZIGZAG ABOVE */
-  [0x35c, 0x35c], /* COMBINING DOUBLE BREVE BELOW */
-  [0x35d, 0x35d], /* COMBINING DOUBLE BREVE */
-  [0x35e, 0x35e], /* COMBINING DOUBLE MACRON */
-  [0x35f, 0x35f], /* COMBINING DOUBLE MACRON BELOW */
-  [0x360, 0x360], /* COMBINING DOUBLE TILDE */
-  [0x361, 0x361], /* COMBINING DOUBLE INVERTED BREVE */
-  [0x362, 0x362], /* COMBINING DOUBLE RIGHTWARDS ARROW BELOW */
-  [0x363, 0x363], /* COMBINING LATIN SMALL LETTER A */
-  [0x364, 0x364], /* COMBINING LATIN SMALL LETTER E */
-  [0x365, 0x365], /* COMBINING LATIN SMALL LETTER I */
-  [0x366, 0x366], /* COMBINING LATIN SMALL LETTER O */
-  [0x367, 0x367], /* COMBINING LATIN SMALL LETTER U */
-  [0x368, 0x368], /* COMBINING LATIN SMALL LETTER C */
-  [0x369, 0x369], /* COMBINING LATIN SMALL LETTER D */
-  [0x36a, 0x36a], /* COMBINING LATIN SMALL LETTER H */
-  [0x36b, 0x36b], /* COMBINING LATIN SMALL LETTER M */
-  [0x36c, 0x36c], /* COMBINING LATIN SMALL LETTER R */
-  [0x36d, 0x36d], /* COMBINING LATIN SMALL LETTER T */
-  [0x36e, 0x36e], /* COMBINING LATIN SMALL LETTER V */
-  [0x36f, 0x36f], /* COMBINING LATIN SMALL LETTER X */
-  [0x370, 0x371], /* GREEK CAPITAL LETTER HETA */
-  [0x370, 0x371], /* GREEK SMALL LETTER HETA */
-  [0x372, 0x373], /* GREEK CAPITAL LETTER ARCHAIC SAMPI */
-  [0x372, 0x373], /* GREEK SMALL LETTER ARCHAIC SAMPI */
-  [0x374, 0x374], /* GREEK NUMERAL SIGN (GREEK UPPER NUMERAL SIGN) */
-  [0x375, 0x375], /* GREEK LOWER NUMERAL SIGN */
-  [0x376, 0x377], /* GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA */
-  [0x376, 0x377], /* GREEK SMALL LETTER PAMPHYLIAN DIGAMMA */
-  [0x378, 0x378],
-  [0x379, 0x379],
-  [0x37a, 0x37a], /* GREEK YPOGEGRAMMENI (GREEK SPACING IOTA BELOW) */
-  [0x3fd, 0x37b], /* GREEK SMALL REVERSED LUNATE SIGMA SYMBOL */
-  [0x3fe, 0x37c], /* GREEK SMALL DOTTED LUNATE SIGMA SYMBOL */
-  [0x3ff, 0x37d], /* GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL */
-  [0x37e, 0x37e], /* GREEK QUESTION MARK */
-  [0x37f, 0x3f3], /* GREEK CAPITAL LETTER YOT */
-  [0x380, 0x380],
-  [0x381, 0x381],
-  [0x382, 0x382],
-  [0x383, 0x383],
-  [0x384, 0x384], /* GREEK TONOS (GREEK SPACING TONOS) */
-  [0x385, 0x385], /* GREEK DIALYTIKA TONOS (GREEK SPACING DIAERESIS TONOS) */
-  [0x386, 0x3ac], /* GREEK CAPITAL LETTER ALPHA WITH TONOS (GREEK CAPITAL LETTER ALPHA TONOS) */
-  [0x387, 0x387], /* GREEK ANO TELEIA */
-  [0x388, 0x3ad], /* GREEK CAPITAL LETTER EPSILON WITH TONOS (GREEK CAPITAL LETTER EPSILON TONOS) */
-  [0x389, 0x3ae], /* GREEK CAPITAL LETTER ETA WITH TONOS (GREEK CAPITAL LETTER ETA TONOS) */
-  [0x38a, 0x3af], /* GREEK CAPITAL LETTER IOTA WITH TONOS (GREEK CAPITAL LETTER IOTA TONOS) */
-  [0x38b, 0x38b],
-  [0x38c, 0x3cc], /* GREEK CAPITAL LETTER OMICRON WITH TONOS (GREEK CAPITAL LETTER OMICRON TONOS) */
-  [0x38d, 0x38d],
-  [0x38e, 0x3cd], /* GREEK CAPITAL LETTER UPSILON WITH TONOS (GREEK CAPITAL LETTER UPSILON TONOS) */
-  [0x38f, 0x3ce], /* GREEK CAPITAL LETTER OMEGA WITH TONOS (GREEK CAPITAL LETTER OMEGA TONOS) */
-  [0x390, 0x390], /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS (GREEK SMALL LETTER IOTA DIAERESIS TONOS) */
-  [0x391, 0x3b1], /* GREEK CAPITAL LETTER ALPHA */
-  [0x392, 0x3b2], /* GREEK CAPITAL LETTER BETA */
-  [0x393, 0x3b3], /* GREEK CAPITAL LETTER GAMMA */
-  [0x394, 0x3b4], /* GREEK CAPITAL LETTER DELTA */
-  [0x395, 0x3b5], /* GREEK CAPITAL LETTER EPSILON */
-  [0x396, 0x3b6], /* GREEK CAPITAL LETTER ZETA */
-  [0x397, 0x3b7], /* GREEK CAPITAL LETTER ETA */
-  [0x398, 0x3b8], /* GREEK CAPITAL LETTER THETA */
-  [0x399, 0x3b9], /* GREEK CAPITAL LETTER IOTA */
-  [0x39a, 0x3ba], /* GREEK CAPITAL LETTER KAPPA */
-  [0x39b, 0x3bb], /* GREEK CAPITAL LETTER LAMDA (GREEK CAPITAL LETTER LAMBDA) */
-  [0x39c, 0x3bc], /* GREEK CAPITAL LETTER MU */
-  [0x39d, 0x3bd], /* GREEK CAPITAL LETTER NU */
-  [0x39e, 0x3be], /* GREEK CAPITAL LETTER XI */
-  [0x39f, 0x3bf], /* GREEK CAPITAL LETTER OMICRON */
-  [0x3a0, 0x3c0], /* GREEK CAPITAL LETTER PI */
-  [0x3a1, 0x3c1], /* GREEK CAPITAL LETTER RHO */
-  [0x3a2, 0x3a2],
-  [0x3a3, 0x3c3], /* GREEK CAPITAL LETTER SIGMA */
-  [0x3a4, 0x3c4], /* GREEK CAPITAL LETTER TAU */
-  [0x3a5, 0x3c5], /* GREEK CAPITAL LETTER UPSILON */
-  [0x3a6, 0x3c6], /* GREEK CAPITAL LETTER PHI */
-  [0x3a7, 0x3c7], /* GREEK CAPITAL LETTER CHI */
-  [0x3a8, 0x3c8], /* GREEK CAPITAL LETTER PSI */
-  [0x3a9, 0x3c9], /* GREEK CAPITAL LETTER OMEGA */
-  [0x3aa, 0x3ca], /* GREEK CAPITAL LETTER IOTA WITH DIALYTIKA (GREEK CAPITAL LETTER IOTA DIAERESIS) */
-  [0x3ab, 0x3cb], /* GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA (GREEK CAPITAL LETTER UPSILON DIAERESIS) */
-  [0x386, 0x3ac], /* GREEK SMALL LETTER ALPHA WITH TONOS (GREEK SMALL LETTER ALPHA TONOS) */
-  [0x388, 0x3ad], /* GREEK SMALL LETTER EPSILON WITH TONOS (GREEK SMALL LETTER EPSILON TONOS) */
-  [0x389, 0x3ae], /* GREEK SMALL LETTER ETA WITH TONOS (GREEK SMALL LETTER ETA TONOS) */
-  [0x38a, 0x3af], /* GREEK SMALL LETTER IOTA WITH TONOS (GREEK SMALL LETTER IOTA TONOS) */
-  [0x3b0, 0x3b0], /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS (GREEK SMALL LETTER UPSILON DIAERESIS TONOS) */
-  [0x391, 0x3b1], /* GREEK SMALL LETTER ALPHA */
-  [0x392, 0x3b2], /* GREEK SMALL LETTER BETA */
-  [0x393, 0x3b3], /* GREEK SMALL LETTER GAMMA */
-  [0x394, 0x3b4], /* GREEK SMALL LETTER DELTA */
-  [0x395, 0x3b5], /* GREEK SMALL LETTER EPSILON */
-  [0x396, 0x3b6], /* GREEK SMALL LETTER ZETA */
-  [0x397, 0x3b7], /* GREEK SMALL LETTER ETA */
-  [0x398, 0x3b8], /* GREEK SMALL LETTER THETA */
-  [0x399, 0x3b9], /* GREEK SMALL LETTER IOTA */
-  [0x39a, 0x3ba], /* GREEK SMALL LETTER KAPPA */
-  [0x39b, 0x3bb], /* GREEK SMALL LETTER LAMDA (GREEK SMALL LETTER LAMBDA) */
-  [0x39c, 0x3bc], /* GREEK SMALL LETTER MU */
-  [0x39d, 0x3bd], /* GREEK SMALL LETTER NU */
-  [0x39e, 0x3be], /* GREEK SMALL LETTER XI */
-  [0x39f, 0x3bf], /* GREEK SMALL LETTER OMICRON */
-  [0x3a0, 0x3c0], /* GREEK SMALL LETTER PI */
-  [0x3a1, 0x3c1], /* GREEK SMALL LETTER RHO */
-  [0x3a3, 0x3c2], /* GREEK SMALL LETTER FINAL SIGMA */
-  [0x3a3, 0x3c3], /* GREEK SMALL LETTER SIGMA */
-  [0x3a4, 0x3c4], /* GREEK SMALL LETTER TAU */
-  [0x3a5, 0x3c5], /* GREEK SMALL LETTER UPSILON */
-  [0x3a6, 0x3c6], /* GREEK SMALL LETTER PHI */
-  [0x3a7, 0x3c7], /* GREEK SMALL LETTER CHI */
-  [0x3a8, 0x3c8], /* GREEK SMALL LETTER PSI */
-  [0x3a9, 0x3c9], /* GREEK SMALL LETTER OMEGA */
-  [0x3aa, 0x3ca], /* GREEK SMALL LETTER IOTA WITH DIALYTIKA (GREEK SMALL LETTER IOTA DIAERESIS) */
-  [0x3ab, 0x3cb], /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA (GREEK SMALL LETTER UPSILON DIAERESIS) */
-  [0x38c, 0x3cc], /* GREEK SMALL LETTER OMICRON WITH TONOS (GREEK SMALL LETTER OMICRON TONOS) */
-  [0x38e, 0x3cd], /* GREEK SMALL LETTER UPSILON WITH TONOS (GREEK SMALL LETTER UPSILON TONOS) */
-  [0x38f, 0x3ce], /* GREEK SMALL LETTER OMEGA WITH TONOS (GREEK SMALL LETTER OMEGA TONOS) */
-  [0x3cf, 0x3d7], /* GREEK CAPITAL KAI SYMBOL */
-  [0x392, 0x3d0], /* GREEK BETA SYMBOL (GREEK SMALL LETTER CURLED BETA) */
-  [0x398, 0x3d1], /* GREEK THETA SYMBOL (GREEK SMALL LETTER SCRIPT THETA) */
-  [0x3d2, 0x3d2], /* GREEK UPSILON WITH HOOK SYMBOL (GREEK CAPITAL LETTER UPSILON HOOK) */
-  [0x3d3, 0x3d3], /* GREEK UPSILON WITH ACUTE AND HOOK SYMBOL (GREEK CAPITAL LETTER UPSILON HOOK TONOS) */
-  [0x3d4, 0x3d4], /* GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL (GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS) */
-  [0x3a6, 0x3d5], /* GREEK PHI SYMBOL (GREEK SMALL LETTER SCRIPT PHI) */
-  [0x3a0, 0x3d6], /* GREEK PI SYMBOL (GREEK SMALL LETTER OMEGA PI) */
-  [0x3cf, 0x3d7], /* GREEK KAI SYMBOL */
-  [0x3d8, 0x3d9], /* GREEK LETTER ARCHAIC KOPPA */
-  [0x3d8, 0x3d9], /* GREEK SMALL LETTER ARCHAIC KOPPA */
-  [0x3da, 0x3db], /* GREEK LETTER STIGMA (GREEK CAPITAL LETTER STIGMA) */
-  [0x3da, 0x3db], /* GREEK SMALL LETTER STIGMA */
-  [0x3dc, 0x3dd], /* GREEK LETTER DIGAMMA (GREEK CAPITAL LETTER DIGAMMA) */
-  [0x3dc, 0x3dd], /* GREEK SMALL LETTER DIGAMMA */
-  [0x3de, 0x3df], /* GREEK LETTER KOPPA (GREEK CAPITAL LETTER KOPPA) */
-  [0x3de, 0x3df], /* GREEK SMALL LETTER KOPPA */
-  [0x3e0, 0x3e1], /* GREEK LETTER SAMPI (GREEK CAPITAL LETTER SAMPI) */
-  [0x3e0, 0x3e1], /* GREEK SMALL LETTER SAMPI */
-  [0x3e2, 0x3e3], /* COPTIC CAPITAL LETTER SHEI (GREEK CAPITAL LETTER SHEI) */
-  [0x3e2, 0x3e3], /* COPTIC SMALL LETTER SHEI (GREEK SMALL LETTER SHEI) */
-  [0x3e4, 0x3e5], /* COPTIC CAPITAL LETTER FEI (GREEK CAPITAL LETTER FEI) */
-  [0x3e4, 0x3e5], /* COPTIC SMALL LETTER FEI (GREEK SMALL LETTER FEI) */
-  [0x3e6, 0x3e7], /* COPTIC CAPITAL LETTER KHEI (GREEK CAPITAL LETTER KHEI) */
-  [0x3e6, 0x3e7], /* COPTIC SMALL LETTER KHEI (GREEK SMALL LETTER KHEI) */
-  [0x3e8, 0x3e9], /* COPTIC CAPITAL LETTER HORI (GREEK CAPITAL LETTER HORI) */
-  [0x3e8, 0x3e9], /* COPTIC SMALL LETTER HORI (GREEK SMALL LETTER HORI) */
-  [0x3ea, 0x3eb], /* COPTIC CAPITAL LETTER GANGIA (GREEK CAPITAL LETTER GANGIA) */
-  [0x3ea, 0x3eb], /* COPTIC SMALL LETTER GANGIA (GREEK SMALL LETTER GANGIA) */
-  [0x3ec, 0x3ed], /* COPTIC CAPITAL LETTER SHIMA (GREEK CAPITAL LETTER SHIMA) */
-  [0x3ec, 0x3ed], /* COPTIC SMALL LETTER SHIMA (GREEK SMALL LETTER SHIMA) */
-  [0x3ee, 0x3ef], /* COPTIC CAPITAL LETTER DEI (GREEK CAPITAL LETTER DEI) */
-  [0x3ee, 0x3ef], /* COPTIC SMALL LETTER DEI (GREEK SMALL LETTER DEI) */
-  [0x39a, 0x3f0], /* GREEK KAPPA SYMBOL (GREEK SMALL LETTER SCRIPT KAPPA) */
-  [0x3a1, 0x3f1], /* GREEK RHO SYMBOL (GREEK SMALL LETTER TAILED RHO) */
-  [0x3f9, 0x3f2], /* GREEK LUNATE SIGMA SYMBOL (GREEK SMALL LETTER LUNATE SIGMA) */
-  [0x37f, 0x3f3], /* GREEK LETTER YOT */
-  [0x3f4, 0x3b8], /* GREEK CAPITAL THETA SYMBOL */
-  [0x395, 0x3f5], /* GREEK LUNATE EPSILON SYMBOL */
-  [0x3f6, 0x3f6], /* GREEK REVERSED LUNATE EPSILON SYMBOL */
-  [0x3f7, 0x3f8], /* GREEK CAPITAL LETTER SHO */
-  [0x3f7, 0x3f8], /* GREEK SMALL LETTER SHO */
-  [0x3f9, 0x3f2], /* GREEK CAPITAL LUNATE SIGMA SYMBOL */
-  [0x3fa, 0x3fb], /* GREEK CAPITAL LETTER SAN */
-  [0x3fa, 0x3fb], /* GREEK SMALL LETTER SAN */
-  [0x3fc, 0x3fc], /* GREEK RHO WITH STROKE SYMBOL */
-  [0x3fd, 0x37b], /* GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL */
-  [0x3fe, 0x37c], /* GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL */
-  [0x3ff, 0x37d], /* GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL */
-  [0x400, 0x450], /* CYRILLIC CAPITAL LETTER IE WITH GRAVE */
-  [0x401, 0x451], /* CYRILLIC CAPITAL LETTER IO */
-  [0x402, 0x452], /* CYRILLIC CAPITAL LETTER DJE */
-  [0x403, 0x453], /* CYRILLIC CAPITAL LETTER GJE */
-  [0x404, 0x454], /* CYRILLIC CAPITAL LETTER UKRAINIAN IE (CYRILLIC CAPITAL LETTER E) */
-  [0x405, 0x455], /* CYRILLIC CAPITAL LETTER DZE */
-  [0x406, 0x456], /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I (CYRILLIC CAPITAL LETTER I) */
-  [0x407, 0x457], /* CYRILLIC CAPITAL LETTER YI */
-  [0x408, 0x458], /* CYRILLIC CAPITAL LETTER JE */
-  [0x409, 0x459], /* CYRILLIC CAPITAL LETTER LJE */
-  [0x40a, 0x45a], /* CYRILLIC CAPITAL LETTER NJE */
-  [0x40b, 0x45b], /* CYRILLIC CAPITAL LETTER TSHE */
-  [0x40c, 0x45c], /* CYRILLIC CAPITAL LETTER KJE */
-  [0x40d, 0x45d], /* CYRILLIC CAPITAL LETTER I WITH GRAVE */
-  [0x40e, 0x45e], /* CYRILLIC CAPITAL LETTER SHORT U */
-  [0x40f, 0x45f], /* CYRILLIC CAPITAL LETTER DZHE */
-  [0x410, 0x430], /* CYRILLIC CAPITAL LETTER A */
-  [0x411, 0x431], /* CYRILLIC CAPITAL LETTER BE */
-  [0x412, 0x432], /* CYRILLIC CAPITAL LETTER VE */
-  [0x413, 0x433], /* CYRILLIC CAPITAL LETTER GHE (CYRILLIC CAPITAL LETTER GE) */
-  [0x414, 0x434], /* CYRILLIC CAPITAL LETTER DE */
-  [0x415, 0x435], /* CYRILLIC CAPITAL LETTER IE */
-  [0x416, 0x436], /* CYRILLIC CAPITAL LETTER ZHE */
-  [0x417, 0x437], /* CYRILLIC CAPITAL LETTER ZE */
-  [0x418, 0x438], /* CYRILLIC CAPITAL LETTER I (CYRILLIC CAPITAL LETTER II) */
-  [0x419, 0x439], /* CYRILLIC CAPITAL LETTER SHORT I (CYRILLIC CAPITAL LETTER SHORT II) */
-  [0x41a, 0x43a], /* CYRILLIC CAPITAL LETTER KA */
-  [0x41b, 0x43b], /* CYRILLIC CAPITAL LETTER EL */
-  [0x41c, 0x43c], /* CYRILLIC CAPITAL LETTER EM */
-  [0x41d, 0x43d], /* CYRILLIC CAPITAL LETTER EN */
-  [0x41e, 0x43e], /* CYRILLIC CAPITAL LETTER O */
-  [0x41f, 0x43f], /* CYRILLIC CAPITAL LETTER PE */
-  [0x420, 0x440], /* CYRILLIC CAPITAL LETTER ER */
-  [0x421, 0x441], /* CYRILLIC CAPITAL LETTER ES */
-  [0x422, 0x442], /* CYRILLIC CAPITAL LETTER TE */
-  [0x423, 0x443], /* CYRILLIC CAPITAL LETTER U */
-  [0x424, 0x444], /* CYRILLIC CAPITAL LETTER EF */
-  [0x425, 0x445], /* CYRILLIC CAPITAL LETTER HA (CYRILLIC CAPITAL LETTER KHA) */
-  [0x426, 0x446], /* CYRILLIC CAPITAL LETTER TSE */
-  [0x427, 0x447], /* CYRILLIC CAPITAL LETTER CHE */
-  [0x428, 0x448], /* CYRILLIC CAPITAL LETTER SHA */
-  [0x429, 0x449], /* CYRILLIC CAPITAL LETTER SHCHA */
-  [0x42a, 0x44a], /* CYRILLIC CAPITAL LETTER HARD SIGN */
-  [0x42b, 0x44b], /* CYRILLIC CAPITAL LETTER YERU (CYRILLIC CAPITAL LETTER YERI) */
-  [0x42c, 0x44c], /* CYRILLIC CAPITAL LETTER SOFT SIGN */
-  [0x42d, 0x44d], /* CYRILLIC CAPITAL LETTER E (CYRILLIC CAPITAL LETTER REVERSED E) */
-  [0x42e, 0x44e], /* CYRILLIC CAPITAL LETTER YU (CYRILLIC CAPITAL LETTER IU) */
-  [0x42f, 0x44f], /* CYRILLIC CAPITAL LETTER YA (CYRILLIC CAPITAL LETTER IA) */
-  [0x410, 0x430], /* CYRILLIC SMALL LETTER A */
-  [0x411, 0x431], /* CYRILLIC SMALL LETTER BE */
-  [0x412, 0x432], /* CYRILLIC SMALL LETTER VE */
-  [0x413, 0x433], /* CYRILLIC SMALL LETTER GHE (CYRILLIC SMALL LETTER GE) */
-  [0x414, 0x434], /* CYRILLIC SMALL LETTER DE */
-  [0x415, 0x435], /* CYRILLIC SMALL LETTER IE */
-  [0x416, 0x436], /* CYRILLIC SMALL LETTER ZHE */
-  [0x417, 0x437], /* CYRILLIC SMALL LETTER ZE */
-  [0x418, 0x438], /* CYRILLIC SMALL LETTER I (CYRILLIC SMALL LETTER II) */
-  [0x419, 0x439], /* CYRILLIC SMALL LETTER SHORT I (CYRILLIC SMALL LETTER SHORT II) */
-  [0x41a, 0x43a], /* CYRILLIC SMALL LETTER KA */
-  [0x41b, 0x43b], /* CYRILLIC SMALL LETTER EL */
-  [0x41c, 0x43c], /* CYRILLIC SMALL LETTER EM */
-  [0x41d, 0x43d], /* CYRILLIC SMALL LETTER EN */
-  [0x41e, 0x43e], /* CYRILLIC SMALL LETTER O */
-  [0x41f, 0x43f], /* CYRILLIC SMALL LETTER PE */
-  [0x420, 0x440], /* CYRILLIC SMALL LETTER ER */
-  [0x421, 0x441], /* CYRILLIC SMALL LETTER ES */
-  [0x422, 0x442], /* CYRILLIC SMALL LETTER TE */
-  [0x423, 0x443], /* CYRILLIC SMALL LETTER U */
-  [0x424, 0x444], /* CYRILLIC SMALL LETTER EF */
-  [0x425, 0x445], /* CYRILLIC SMALL LETTER HA (CYRILLIC SMALL LETTER KHA) */
-  [0x426, 0x446], /* CYRILLIC SMALL LETTER TSE */
-  [0x427, 0x447], /* CYRILLIC SMALL LETTER CHE */
-  [0x428, 0x448], /* CYRILLIC SMALL LETTER SHA */
-  [0x429, 0x449], /* CYRILLIC SMALL LETTER SHCHA */
-  [0x42a, 0x44a], /* CYRILLIC SMALL LETTER HARD SIGN */
-  [0x42b, 0x44b], /* CYRILLIC SMALL LETTER YERU (CYRILLIC SMALL LETTER YERI) */
-  [0x42c, 0x44c], /* CYRILLIC SMALL LETTER SOFT SIGN */
-  [0x42d, 0x44d], /* CYRILLIC SMALL LETTER E (CYRILLIC SMALL LETTER REVERSED E) */
-  [0x42e, 0x44e], /* CYRILLIC SMALL LETTER YU (CYRILLIC SMALL LETTER IU) */
-  [0x42f, 0x44f], /* CYRILLIC SMALL LETTER YA (CYRILLIC SMALL LETTER IA) */
-  [0x400, 0x450], /* CYRILLIC SMALL LETTER IE WITH GRAVE */
-  [0x401, 0x451], /* CYRILLIC SMALL LETTER IO */
-  [0x402, 0x452], /* CYRILLIC SMALL LETTER DJE */
-  [0x403, 0x453], /* CYRILLIC SMALL LETTER GJE */
-  [0x404, 0x454], /* CYRILLIC SMALL LETTER UKRAINIAN IE (CYRILLIC SMALL LETTER E) */
-  [0x405, 0x455], /* CYRILLIC SMALL LETTER DZE */
-  [0x406, 0x456], /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I (CYRILLIC SMALL LETTER I) */
-  [0x407, 0x457], /* CYRILLIC SMALL LETTER YI */
-  [0x408, 0x458], /* CYRILLIC SMALL LETTER JE */
-  [0x409, 0x459], /* CYRILLIC SMALL LETTER LJE */
-  [0x40a, 0x45a], /* CYRILLIC SMALL LETTER NJE */
-  [0x40b, 0x45b], /* CYRILLIC SMALL LETTER TSHE */
-  [0x40c, 0x45c], /* CYRILLIC SMALL LETTER KJE */
-  [0x40d, 0x45d], /* CYRILLIC SMALL LETTER I WITH GRAVE */
-  [0x40e, 0x45e], /* CYRILLIC SMALL LETTER SHORT U */
-  [0x40f, 0x45f], /* CYRILLIC SMALL LETTER DZHE */
-  [0x460, 0x461], /* CYRILLIC CAPITAL LETTER OMEGA */
-  [0x460, 0x461], /* CYRILLIC SMALL LETTER OMEGA */
-  [0x462, 0x463], /* CYRILLIC CAPITAL LETTER YAT */
-  [0x462, 0x463], /* CYRILLIC SMALL LETTER YAT */
-  [0x464, 0x465], /* CYRILLIC CAPITAL LETTER IOTIFIED E */
-  [0x464, 0x465], /* CYRILLIC SMALL LETTER IOTIFIED E */
-  [0x466, 0x467], /* CYRILLIC CAPITAL LETTER LITTLE YUS */
-  [0x466, 0x467], /* CYRILLIC SMALL LETTER LITTLE YUS */
-  [0x468, 0x469], /* CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS */
-  [0x468, 0x469], /* CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS */
-  [0x46a, 0x46b], /* CYRILLIC CAPITAL LETTER BIG YUS */
-  [0x46a, 0x46b], /* CYRILLIC SMALL LETTER BIG YUS */
-  [0x46c, 0x46d], /* CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS */
-  [0x46c, 0x46d], /* CYRILLIC SMALL LETTER IOTIFIED BIG YUS */
-  [0x46e, 0x46f], /* CYRILLIC CAPITAL LETTER KSI */
-  [0x46e, 0x46f], /* CYRILLIC SMALL LETTER KSI */
-  [0x470, 0x471], /* CYRILLIC CAPITAL LETTER PSI */
-  [0x470, 0x471], /* CYRILLIC SMALL LETTER PSI */
-  [0x472, 0x473], /* CYRILLIC CAPITAL LETTER FITA */
-  [0x472, 0x473], /* CYRILLIC SMALL LETTER FITA */
-  [0x474, 0x475], /* CYRILLIC CAPITAL LETTER IZHITSA */
-  [0x474, 0x475], /* CYRILLIC SMALL LETTER IZHITSA */
-  [0x476, 0x477], /* CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT (CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE) */
-  [0x476, 0x477], /* CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT (CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE) */
-  [0x478, 0x479], /* CYRILLIC CAPITAL LETTER UK (CYRILLIC CAPITAL LETTER UK DIGRAPH) */
-  [0x478, 0x479], /* CYRILLIC SMALL LETTER UK (CYRILLIC SMALL LETTER UK DIGRAPH) */
-  [0x47a, 0x47b], /* CYRILLIC CAPITAL LETTER ROUND OMEGA */
-  [0x47a, 0x47b], /* CYRILLIC SMALL LETTER ROUND OMEGA */
-  [0x47c, 0x47d], /* CYRILLIC CAPITAL LETTER OMEGA WITH TITLO (CYRILLIC CAPITAL LETTER OMEGA TITLO) */
-  [0x47c, 0x47d], /* CYRILLIC SMALL LETTER OMEGA WITH TITLO (CYRILLIC SMALL LETTER OMEGA TITLO) */
-  [0x47e, 0x47f], /* CYRILLIC CAPITAL LETTER OT */
-  [0x47e, 0x47f], /* CYRILLIC SMALL LETTER OT */
-  [0x480, 0x481], /* CYRILLIC CAPITAL LETTER KOPPA */
-  [0x480, 0x481], /* CYRILLIC SMALL LETTER KOPPA */
-  [0x482, 0x482], /* CYRILLIC THOUSANDS SIGN */
-  [0x483, 0x483], /* COMBINING CYRILLIC TITLO (CYRILLIC NON-SPACING TITLO) */
-  [0x484, 0x484], /* COMBINING CYRILLIC PALATALIZATION (CYRILLIC NON-SPACING PALATALIZATION) */
-  [0x485, 0x485], /* COMBINING CYRILLIC DASIA PNEUMATA (CYRILLIC NON-SPACING DASIA PNEUMATA) */
-  [0x486, 0x486], /* COMBINING CYRILLIC PSILI PNEUMATA (CYRILLIC NON-SPACING PSILI PNEUMATA) */
-  [0x487, 0x487], /* COMBINING CYRILLIC POKRYTIE */
-  [0x488, 0x488], /* COMBINING CYRILLIC HUNDRED THOUSANDS SIGN */
-  [0x489, 0x489], /* COMBINING CYRILLIC MILLIONS SIGN */
-  [0x48a, 0x48b], /* CYRILLIC CAPITAL LETTER SHORT I WITH TAIL */
-  [0x48a, 0x48b], /* CYRILLIC SMALL LETTER SHORT I WITH TAIL */
-  [0x48c, 0x48d], /* CYRILLIC CAPITAL LETTER SEMISOFT SIGN */
-  [0x48c, 0x48d], /* CYRILLIC SMALL LETTER SEMISOFT SIGN */
-  [0x48e, 0x48f], /* CYRILLIC CAPITAL LETTER ER WITH TICK */
-  [0x48e, 0x48f], /* CYRILLIC SMALL LETTER ER WITH TICK */
-  [0x490, 0x491], /* CYRILLIC CAPITAL LETTER GHE WITH UPTURN (CYRILLIC CAPITAL LETTER GE WITH UPTURN) */
-  [0x490, 0x491], /* CYRILLIC SMALL LETTER GHE WITH UPTURN (CYRILLIC SMALL LETTER GE WITH UPTURN) */
-  [0x492, 0x493], /* CYRILLIC CAPITAL LETTER GHE WITH STROKE (CYRILLIC CAPITAL LETTER GE BAR) */
-  [0x492, 0x493], /* CYRILLIC SMALL LETTER GHE WITH STROKE (CYRILLIC SMALL LETTER GE BAR) */
-  [0x494, 0x495], /* CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK (CYRILLIC CAPITAL LETTER GE HOOK) */
-  [0x494, 0x495], /* CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK (CYRILLIC SMALL LETTER GE HOOK) */
-  [0x496, 0x497], /* CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER (CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER) */
-  [0x496, 0x497], /* CYRILLIC SMALL LETTER ZHE WITH DESCENDER (CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER) */
-  [0x498, 0x499], /* CYRILLIC CAPITAL LETTER ZE WITH DESCENDER (CYRILLIC CAPITAL LETTER ZE CEDILLA) */
-  [0x498, 0x499], /* CYRILLIC SMALL LETTER ZE WITH DESCENDER (CYRILLIC SMALL LETTER ZE CEDILLA) */
-  [0x49a, 0x49b], /* CYRILLIC CAPITAL LETTER KA WITH DESCENDER (CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER) */
-  [0x49a, 0x49b], /* CYRILLIC SMALL LETTER KA WITH DESCENDER (CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER) */
-  [0x49c, 0x49d], /* CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE (CYRILLIC CAPITAL LETTER KA VERTICAL BAR) */
-  [0x49c, 0x49d], /* CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE (CYRILLIC SMALL LETTER KA VERTICAL BAR) */
-  [0x49e, 0x49f], /* CYRILLIC CAPITAL LETTER KA WITH STROKE (CYRILLIC CAPITAL LETTER KA BAR) */
-  [0x49e, 0x49f], /* CYRILLIC SMALL LETTER KA WITH STROKE (CYRILLIC SMALL LETTER KA BAR) */
-  [0x4a0, 0x4a1], /* CYRILLIC CAPITAL LETTER BASHKIR KA (CYRILLIC CAPITAL LETTER REVERSED GE KA) */
-  [0x4a0, 0x4a1], /* CYRILLIC SMALL LETTER BASHKIR KA (CYRILLIC SMALL LETTER REVERSED GE KA) */
-  [0x4a2, 0x4a3], /* CYRILLIC CAPITAL LETTER EN WITH DESCENDER (CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER) */
-  [0x4a2, 0x4a3], /* CYRILLIC SMALL LETTER EN WITH DESCENDER (CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER) */
-  [0x4a4, 0x4a5], /* CYRILLIC CAPITAL LIGATURE EN GHE (CYRILLIC CAPITAL LETTER EN GE) */
-  [0x4a4, 0x4a5], /* CYRILLIC SMALL LIGATURE EN GHE (CYRILLIC SMALL LETTER EN GE) */
-  [0x4a6, 0x4a7], /* CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK (CYRILLIC CAPITAL LETTER PE HOOK) */
-  [0x4a6, 0x4a7], /* CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK (CYRILLIC SMALL LETTER PE HOOK) */
-  [0x4a8, 0x4a9], /* CYRILLIC CAPITAL LETTER ABKHASIAN HA (CYRILLIC CAPITAL LETTER O HOOK) */
-  [0x4a8, 0x4a9], /* CYRILLIC SMALL LETTER ABKHASIAN HA (CYRILLIC SMALL LETTER O HOOK) */
-  [0x4aa, 0x4ab], /* CYRILLIC CAPITAL LETTER ES WITH DESCENDER (CYRILLIC CAPITAL LETTER ES CEDILLA) */
-  [0x4aa, 0x4ab], /* CYRILLIC SMALL LETTER ES WITH DESCENDER (CYRILLIC SMALL LETTER ES CEDILLA) */
-  [0x4ac, 0x4ad], /* CYRILLIC CAPITAL LETTER TE WITH DESCENDER (CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER) */
-  [0x4ac, 0x4ad], /* CYRILLIC SMALL LETTER TE WITH DESCENDER (CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER) */
-  [0x4ae, 0x4af], /* CYRILLIC CAPITAL LETTER STRAIGHT U */
-  [0x4ae, 0x4af], /* CYRILLIC SMALL LETTER STRAIGHT U */
-  [0x4b0, 0x4b1], /* CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE (CYRILLIC CAPITAL LETTER STRAIGHT U BAR) */
-  [0x4b0, 0x4b1], /* CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE (CYRILLIC SMALL LETTER STRAIGHT U BAR) */
-  [0x4b2, 0x4b3], /* CYRILLIC CAPITAL LETTER HA WITH DESCENDER (CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER) */
-  [0x4b2, 0x4b3], /* CYRILLIC SMALL LETTER HA WITH DESCENDER (CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER) */
-  [0x4b4, 0x4b5], /* CYRILLIC CAPITAL LIGATURE TE TSE (CYRILLIC CAPITAL LETTER TE TSE) */
-  [0x4b4, 0x4b5], /* CYRILLIC SMALL LIGATURE TE TSE (CYRILLIC SMALL LETTER TE TSE) */
-  [0x4b6, 0x4b7], /* CYRILLIC CAPITAL LETTER CHE WITH DESCENDER (CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER) */
-  [0x4b6, 0x4b7], /* CYRILLIC SMALL LETTER CHE WITH DESCENDER (CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER) */
-  [0x4b8, 0x4b9], /* CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE (CYRILLIC CAPITAL LETTER CHE VERTICAL BAR) */
-  [0x4b8, 0x4b9], /* CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE (CYRILLIC SMALL LETTER CHE VERTICAL BAR) */
-  [0x4ba, 0x4bb], /* CYRILLIC CAPITAL LETTER SHHA (CYRILLIC CAPITAL LETTER H) */
-  [0x4ba, 0x4bb], /* CYRILLIC SMALL LETTER SHHA (CYRILLIC SMALL LETTER H) */
-  [0x4bc, 0x4bd], /* CYRILLIC CAPITAL LETTER ABKHASIAN CHE (CYRILLIC CAPITAL LETTER IE HOOK) */
-  [0x4bc, 0x4bd], /* CYRILLIC SMALL LETTER ABKHASIAN CHE (CYRILLIC SMALL LETTER IE HOOK) */
-  [0x4be, 0x4bf], /* CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER (CYRILLIC CAPITAL LETTER IE HOOK OGONEK) */
-  [0x4be, 0x4bf], /* CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER (CYRILLIC SMALL LETTER IE HOOK OGONEK) */
-  [0x4c0, 0x4cf], /* CYRILLIC LETTER PALOCHKA (CYRILLIC LETTER I) */
-  [0x4c1, 0x4c2], /* CYRILLIC CAPITAL LETTER ZHE WITH BREVE (CYRILLIC CAPITAL LETTER SHORT ZHE) */
-  [0x4c1, 0x4c2], /* CYRILLIC SMALL LETTER ZHE WITH BREVE (CYRILLIC SMALL LETTER SHORT ZHE) */
-  [0x4c3, 0x4c4], /* CYRILLIC CAPITAL LETTER KA WITH HOOK (CYRILLIC CAPITAL LETTER KA HOOK) */
-  [0x4c3, 0x4c4], /* CYRILLIC SMALL LETTER KA WITH HOOK (CYRILLIC SMALL LETTER KA HOOK) */
-  [0x4c5, 0x4c6], /* CYRILLIC CAPITAL LETTER EL WITH TAIL */
-  [0x4c5, 0x4c6], /* CYRILLIC SMALL LETTER EL WITH TAIL */
-  [0x4c7, 0x4c8], /* CYRILLIC CAPITAL LETTER EN WITH HOOK (CYRILLIC CAPITAL LETTER EN HOOK) */
-  [0x4c7, 0x4c8], /* CYRILLIC SMALL LETTER EN WITH HOOK (CYRILLIC SMALL LETTER EN HOOK) */
-  [0x4c9, 0x4ca], /* CYRILLIC CAPITAL LETTER EN WITH TAIL */
-  [0x4c9, 0x4ca], /* CYRILLIC SMALL LETTER EN WITH TAIL */
-  [0x4cb, 0x4cc], /* CYRILLIC CAPITAL LETTER KHAKASSIAN CHE (CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER) */
-  [0x4cb, 0x4cc], /* CYRILLIC SMALL LETTER KHAKASSIAN CHE (CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER) */
-  [0x4cd, 0x4ce], /* CYRILLIC CAPITAL LETTER EM WITH TAIL */
-  [0x4cd, 0x4ce], /* CYRILLIC SMALL LETTER EM WITH TAIL */
-  [0x4c0, 0x4cf], /* CYRILLIC SMALL LETTER PALOCHKA */
-  [0x4d0, 0x4d1], /* CYRILLIC CAPITAL LETTER A WITH BREVE */
-  [0x4d0, 0x4d1], /* CYRILLIC SMALL LETTER A WITH BREVE */
-  [0x4d2, 0x4d3], /* CYRILLIC CAPITAL LETTER A WITH DIAERESIS */
-  [0x4d2, 0x4d3], /* CYRILLIC SMALL LETTER A WITH DIAERESIS */
-  [0x4d4, 0x4d5], /* CYRILLIC CAPITAL LIGATURE A IE */
-  [0x4d4, 0x4d5], /* CYRILLIC SMALL LIGATURE A IE */
-  [0x4d6, 0x4d7], /* CYRILLIC CAPITAL LETTER IE WITH BREVE */
-  [0x4d6, 0x4d7], /* CYRILLIC SMALL LETTER IE WITH BREVE */
-  [0x4d8, 0x4d9], /* CYRILLIC CAPITAL LETTER SCHWA */
-  [0x4d8, 0x4d9], /* CYRILLIC SMALL LETTER SCHWA */
-  [0x4da, 0x4db], /* CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS */
-  [0x4da, 0x4db], /* CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS */
-  [0x4dc, 0x4dd], /* CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS */
-  [0x4dc, 0x4dd], /* CYRILLIC SMALL LETTER ZHE WITH DIAERESIS */
-  [0x4de, 0x4df], /* CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS */
-  [0x4de, 0x4df], /* CYRILLIC SMALL LETTER ZE WITH DIAERESIS */
-  [0x4e0, 0x4e1], /* CYRILLIC CAPITAL LETTER ABKHASIAN DZE */
-  [0x4e0, 0x4e1], /* CYRILLIC SMALL LETTER ABKHASIAN DZE */
-  [0x4e2, 0x4e3], /* CYRILLIC CAPITAL LETTER I WITH MACRON */
-  [0x4e2, 0x4e3], /* CYRILLIC SMALL LETTER I WITH MACRON */
-  [0x4e4, 0x4e5], /* CYRILLIC CAPITAL LETTER I WITH DIAERESIS */
-  [0x4e4, 0x4e5], /* CYRILLIC SMALL LETTER I WITH DIAERESIS */
-  [0x4e6, 0x4e7], /* CYRILLIC CAPITAL LETTER O WITH DIAERESIS */
-  [0x4e6, 0x4e7], /* CYRILLIC SMALL LETTER O WITH DIAERESIS */
-  [0x4e8, 0x4e9], /* CYRILLIC CAPITAL LETTER BARRED O */
-  [0x4e8, 0x4e9], /* CYRILLIC SMALL LETTER BARRED O */
-  [0x4ea, 0x4eb], /* CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS */
-  [0x4ea, 0x4eb], /* CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS */
-  [0x4ec, 0x4ed], /* CYRILLIC CAPITAL LETTER E WITH DIAERESIS */
-  [0x4ec, 0x4ed], /* CYRILLIC SMALL LETTER E WITH DIAERESIS */
-  [0x4ee, 0x4ef], /* CYRILLIC CAPITAL LETTER U WITH MACRON */
-  [0x4ee, 0x4ef], /* CYRILLIC SMALL LETTER U WITH MACRON */
-  [0x4f0, 0x4f1], /* CYRILLIC CAPITAL LETTER U WITH DIAERESIS */
-  [0x4f0, 0x4f1], /* CYRILLIC SMALL LETTER U WITH DIAERESIS */
-  [0x4f2, 0x4f3], /* CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE */
-  [0x4f2, 0x4f3], /* CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE */
-  [0x4f4, 0x4f5], /* CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS */
-  [0x4f4, 0x4f5], /* CYRILLIC SMALL LETTER CHE WITH DIAERESIS */
-  [0x4f6, 0x4f7], /* CYRILLIC CAPITAL LETTER GHE WITH DESCENDER */
-  [0x4f6, 0x4f7], /* CYRILLIC SMALL LETTER GHE WITH DESCENDER */
-  [0x4f8, 0x4f9], /* CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS */
-  [0x4f8, 0x4f9], /* CYRILLIC SMALL LETTER YERU WITH DIAERESIS */
-  [0x4fa, 0x4fb], /* CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK */
-  [0x4fa, 0x4fb], /* CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK */
-  [0x4fc, 0x4fd], /* CYRILLIC CAPITAL LETTER HA WITH HOOK */
-  [0x4fc, 0x4fd], /* CYRILLIC SMALL LETTER HA WITH HOOK */
-  [0x4fe, 0x4ff], /* CYRILLIC CAPITAL LETTER HA WITH STROKE */
-  [0x4fe, 0x4ff], /* CYRILLIC SMALL LETTER HA WITH STROKE */
-  [0x500, 0x501], /* CYRILLIC CAPITAL LETTER KOMI DE */
-  [0x500, 0x501], /* CYRILLIC SMALL LETTER KOMI DE */
-  [0x502, 0x503], /* CYRILLIC CAPITAL LETTER KOMI DJE */
-  [0x502, 0x503], /* CYRILLIC SMALL LETTER KOMI DJE */
-  [0x504, 0x505], /* CYRILLIC CAPITAL LETTER KOMI ZJE */
-  [0x504, 0x505], /* CYRILLIC SMALL LETTER KOMI ZJE */
-  [0x506, 0x507], /* CYRILLIC CAPITAL LETTER KOMI DZJE */
-  [0x506, 0x507], /* CYRILLIC SMALL LETTER KOMI DZJE */
-  [0x508, 0x509], /* CYRILLIC CAPITAL LETTER KOMI LJE */
-  [0x508, 0x509], /* CYRILLIC SMALL LETTER KOMI LJE */
-  [0x50a, 0x50b], /* CYRILLIC CAPITAL LETTER KOMI NJE */
-  [0x50a, 0x50b], /* CYRILLIC SMALL LETTER KOMI NJE */
-  [0x50c, 0x50d], /* CYRILLIC CAPITAL LETTER KOMI SJE */
-  [0x50c, 0x50d], /* CYRILLIC SMALL LETTER KOMI SJE */
-  [0x50e, 0x50f], /* CYRILLIC CAPITAL LETTER KOMI TJE */
-  [0x50e, 0x50f], /* CYRILLIC SMALL LETTER KOMI TJE */
-  [0x510, 0x511], /* CYRILLIC CAPITAL LETTER REVERSED ZE */
-  [0x510, 0x511], /* CYRILLIC SMALL LETTER REVERSED ZE */
-  [0x512, 0x513], /* CYRILLIC CAPITAL LETTER EL WITH HOOK */
-  [0x512, 0x513], /* CYRILLIC SMALL LETTER EL WITH HOOK */
-  [0x514, 0x515], /* CYRILLIC CAPITAL LETTER LHA */
-  [0x514, 0x515], /* CYRILLIC SMALL LETTER LHA */
-  [0x516, 0x517], /* CYRILLIC CAPITAL LETTER RHA */
-  [0x516, 0x517], /* CYRILLIC SMALL LETTER RHA */
-  [0x518, 0x519], /* CYRILLIC CAPITAL LETTER YAE */
-  [0x518, 0x519], /* CYRILLIC SMALL LETTER YAE */
-  [0x51a, 0x51b], /* CYRILLIC CAPITAL LETTER QA */
-  [0x51a, 0x51b], /* CYRILLIC SMALL LETTER QA */
-  [0x51c, 0x51d], /* CYRILLIC CAPITAL LETTER WE */
-  [0x51c, 0x51d], /* CYRILLIC SMALL LETTER WE */
-  [0x51e, 0x51f], /* CYRILLIC CAPITAL LETTER ALEUT KA */
-  [0x51e, 0x51f], /* CYRILLIC SMALL LETTER ALEUT KA */
-  [0x520, 0x521], /* CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK */
-  [0x520, 0x521], /* CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK */
-  [0x522, 0x523], /* CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK */
-  [0x522, 0x523], /* CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK */
-  [0x524, 0x525], /* CYRILLIC CAPITAL LETTER PE WITH DESCENDER */
-  [0x524, 0x525], /* CYRILLIC SMALL LETTER PE WITH DESCENDER */
-  [0x526, 0x527], /* CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER */
-  [0x526, 0x527], /* CYRILLIC SMALL LETTER SHHA WITH DESCENDER */
-  [0x528, 0x529], /* CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK */
-  [0x528, 0x529], /* CYRILLIC SMALL LETTER EN WITH LEFT HOOK */
-  [0x52a, 0x52b], /* CYRILLIC CAPITAL LETTER DZZHE */
-  [0x52a, 0x52b], /* CYRILLIC SMALL LETTER DZZHE */
-  [0x52c, 0x52d], /* CYRILLIC CAPITAL LETTER DCHE */
-  [0x52c, 0x52d], /* CYRILLIC SMALL LETTER DCHE */
-  [0x52e, 0x52f], /* CYRILLIC CAPITAL LETTER EL WITH DESCENDER */
-  [0x52e, 0x52f], /* CYRILLIC SMALL LETTER EL WITH DESCENDER */
-  [0x530, 0x530],
-  [0x531, 0x561], /* ARMENIAN CAPITAL LETTER AYB */
-  [0x532, 0x562], /* ARMENIAN CAPITAL LETTER BEN */
-  [0x533, 0x563], /* ARMENIAN CAPITAL LETTER GIM */
-  [0x534, 0x564], /* ARMENIAN CAPITAL LETTER DA */
-  [0x535, 0x565], /* ARMENIAN CAPITAL LETTER ECH */
-  [0x536, 0x566], /* ARMENIAN CAPITAL LETTER ZA */
-  [0x537, 0x567], /* ARMENIAN CAPITAL LETTER EH */
-  [0x538, 0x568], /* ARMENIAN CAPITAL LETTER ET */
-  [0x539, 0x569], /* ARMENIAN CAPITAL LETTER TO */
-  [0x53a, 0x56a], /* ARMENIAN CAPITAL LETTER ZHE */
-  [0x53b, 0x56b], /* ARMENIAN CAPITAL LETTER INI */
-  [0x53c, 0x56c], /* ARMENIAN CAPITAL LETTER LIWN */
-  [0x53d, 0x56d], /* ARMENIAN CAPITAL LETTER XEH */
-  [0x53e, 0x56e], /* ARMENIAN CAPITAL LETTER CA */
-  [0x53f, 0x56f], /* ARMENIAN CAPITAL LETTER KEN */
-  [0x540, 0x570], /* ARMENIAN CAPITAL LETTER HO */
-  [0x541, 0x571], /* ARMENIAN CAPITAL LETTER JA */
-  [0x542, 0x572], /* ARMENIAN CAPITAL LETTER GHAD (ARMENIAN CAPITAL LETTER LAD) */
-  [0x543, 0x573], /* ARMENIAN CAPITAL LETTER CHEH */
-  [0x544, 0x574], /* ARMENIAN CAPITAL LETTER MEN */
-  [0x545, 0x575], /* ARMENIAN CAPITAL LETTER YI */
-  [0x546, 0x576], /* ARMENIAN CAPITAL LETTER NOW */
-  [0x547, 0x577], /* ARMENIAN CAPITAL LETTER SHA */
-  [0x548, 0x578], /* ARMENIAN CAPITAL LETTER VO */
-  [0x549, 0x579], /* ARMENIAN CAPITAL LETTER CHA */
-  [0x54a, 0x57a], /* ARMENIAN CAPITAL LETTER PEH */
-  [0x54b, 0x57b], /* ARMENIAN CAPITAL LETTER JHEH */
-  [0x54c, 0x57c], /* ARMENIAN CAPITAL LETTER RA */
-  [0x54d, 0x57d], /* ARMENIAN CAPITAL LETTER SEH */
-  [0x54e, 0x57e], /* ARMENIAN CAPITAL LETTER VEW */
-  [0x54f, 0x57f], /* ARMENIAN CAPITAL LETTER TIWN */
-  [0x550, 0x580], /* ARMENIAN CAPITAL LETTER REH */
-  [0x551, 0x581], /* ARMENIAN CAPITAL LETTER CO */
-  [0x552, 0x582], /* ARMENIAN CAPITAL LETTER YIWN */
-  [0x553, 0x583], /* ARMENIAN CAPITAL LETTER PIWR */
-  [0x554, 0x584], /* ARMENIAN CAPITAL LETTER KEH */
-  [0x555, 0x585], /* ARMENIAN CAPITAL LETTER OH */
-  [0x556, 0x586], /* ARMENIAN CAPITAL LETTER FEH */
-  [0x557, 0x557],
-  [0x558, 0x558],
-  [0x559, 0x559], /* ARMENIAN MODIFIER LETTER LEFT HALF RING */
-  [0x55a, 0x55a], /* ARMENIAN APOSTROPHE (ARMENIAN MODIFIER LETTER RIGHT HALF RING) */
-  [0x55b, 0x55b], /* ARMENIAN EMPHASIS MARK */
-  [0x55c, 0x55c], /* ARMENIAN EXCLAMATION MARK */
-  [0x55d, 0x55d], /* ARMENIAN COMMA */
-  [0x55e, 0x55e], /* ARMENIAN QUESTION MARK */
-  [0x55f, 0x55f], /* ARMENIAN ABBREVIATION MARK */
-  [0x560, 0x560],
-  [0x531, 0x561], /* ARMENIAN SMALL LETTER AYB */
-  [0x532, 0x562], /* ARMENIAN SMALL LETTER BEN */
-  [0x533, 0x563], /* ARMENIAN SMALL LETTER GIM */
-  [0x534, 0x564], /* ARMENIAN SMALL LETTER DA */
-  [0x535, 0x565], /* ARMENIAN SMALL LETTER ECH */
-  [0x536, 0x566], /* ARMENIAN SMALL LETTER ZA */
-  [0x537, 0x567], /* ARMENIAN SMALL LETTER EH */
-  [0x538, 0x568], /* ARMENIAN SMALL LETTER ET */
-  [0x539, 0x569], /* ARMENIAN SMALL LETTER TO */
-  [0x53a, 0x56a], /* ARMENIAN SMALL LETTER ZHE */
-  [0x53b, 0x56b], /* ARMENIAN SMALL LETTER INI */
-  [0x53c, 0x56c], /* ARMENIAN SMALL LETTER LIWN */
-  [0x53d, 0x56d], /* ARMENIAN SMALL LETTER XEH */
-  [0x53e, 0x56e], /* ARMENIAN SMALL LETTER CA */
-  [0x53f, 0x56f], /* ARMENIAN SMALL LETTER KEN */
-  [0x540, 0x570], /* ARMENIAN SMALL LETTER HO */
-  [0x541, 0x571], /* ARMENIAN SMALL LETTER JA */
-  [0x542, 0x572], /* ARMENIAN SMALL LETTER GHAD (ARMENIAN SMALL LETTER LAD) */
-  [0x543, 0x573], /* ARMENIAN SMALL LETTER CHEH */
-  [0x544, 0x574], /* ARMENIAN SMALL LETTER MEN */
-  [0x545, 0x575], /* ARMENIAN SMALL LETTER YI */
-  [0x546, 0x576], /* ARMENIAN SMALL LETTER NOW */
-  [0x547, 0x577], /* ARMENIAN SMALL LETTER SHA */
-  [0x548, 0x578], /* ARMENIAN SMALL LETTER VO */
-  [0x549, 0x579], /* ARMENIAN SMALL LETTER CHA */
-  [0x54a, 0x57a], /* ARMENIAN SMALL LETTER PEH */
-  [0x54b, 0x57b], /* ARMENIAN SMALL LETTER JHEH */
-  [0x54c, 0x57c], /* ARMENIAN SMALL LETTER RA */
-  [0x54d, 0x57d], /* ARMENIAN SMALL LETTER SEH */
-  [0x54e, 0x57e], /* ARMENIAN SMALL LETTER VEW */
-  [0x54f, 0x57f], /* ARMENIAN SMALL LETTER TIWN */
-  [0x550, 0x580], /* ARMENIAN SMALL LETTER REH */
-  [0x551, 0x581], /* ARMENIAN SMALL LETTER CO */
-  [0x552, 0x582], /* ARMENIAN SMALL LETTER YIWN */
-  [0x553, 0x583], /* ARMENIAN SMALL LETTER PIWR */
-  [0x554, 0x584], /* ARMENIAN SMALL LETTER KEH */
-  [0x555, 0x585], /* ARMENIAN SMALL LETTER OH */
-  [0x556, 0x586], /* ARMENIAN SMALL LETTER FEH */
-  [0x587, 0x587], /* ARMENIAN SMALL LIGATURE ECH YIWN */
-  [0x588, 0x588],
-  [0x589, 0x589], /* ARMENIAN FULL STOP (ARMENIAN PERIOD) */
-  [0x58a, 0x58a], /* ARMENIAN HYPHEN */
-  [0x58b, 0x58b],
-  [0x58c, 0x58c],
-  [0x58d, 0x58d], /* RIGHT-FACING ARMENIAN ETERNITY SIGN */
-  [0x58e, 0x58e], /* LEFT-FACING ARMENIAN ETERNITY SIGN */
-  [0x58f, 0x58f], /* ARMENIAN DRAM SIGN */
-  [0x590, 0x590],
-  [0x591, 0x591], /* HEBREW ACCENT ETNAHTA */
-  [0x592, 0x592], /* HEBREW ACCENT SEGOL */
-  [0x593, 0x593], /* HEBREW ACCENT SHALSHELET */
-  [0x594, 0x594], /* HEBREW ACCENT ZAQEF QATAN */
-  [0x595, 0x595], /* HEBREW ACCENT ZAQEF GADOL */
-  [0x596, 0x596], /* HEBREW ACCENT TIPEHA */
-  [0x597, 0x597], /* HEBREW ACCENT REVIA */
-  [0x598, 0x598], /* HEBREW ACCENT ZARQA */
-  [0x599, 0x599], /* HEBREW ACCENT PASHTA */
-  [0x59a, 0x59a], /* HEBREW ACCENT YETIV */
-  [0x59b, 0x59b], /* HEBREW ACCENT TEVIR */
-  [0x59c, 0x59c], /* HEBREW ACCENT GERESH */
-  [0x59d, 0x59d], /* HEBREW ACCENT GERESH MUQDAM */
-  [0x59e, 0x59e], /* HEBREW ACCENT GERSHAYIM */
-  [0x59f, 0x59f], /* HEBREW ACCENT QARNEY PARA */
-  [0x5a0, 0x5a0], /* HEBREW ACCENT TELISHA GEDOLA */
-  [0x5a1, 0x5a1], /* HEBREW ACCENT PAZER */
-  [0x5a2, 0x5a2], /* HEBREW ACCENT ATNAH HAFUKH */
-  [0x5a3, 0x5a3], /* HEBREW ACCENT MUNAH */
-  [0x5a4, 0x5a4], /* HEBREW ACCENT MAHAPAKH */
-  [0x5a5, 0x5a5], /* HEBREW ACCENT MERKHA */
-  [0x5a6, 0x5a6], /* HEBREW ACCENT MERKHA KEFULA */
-  [0x5a7, 0x5a7], /* HEBREW ACCENT DARGA */
-  [0x5a8, 0x5a8], /* HEBREW ACCENT QADMA */
-  [0x5a9, 0x5a9], /* HEBREW ACCENT TELISHA QETANA */
-  [0x5aa, 0x5aa], /* HEBREW ACCENT YERAH BEN YOMO */
-  [0x5ab, 0x5ab], /* HEBREW ACCENT OLE */
-  [0x5ac, 0x5ac], /* HEBREW ACCENT ILUY */
-  [0x5ad, 0x5ad], /* HEBREW ACCENT DEHI */
-  [0x5ae, 0x5ae], /* HEBREW ACCENT ZINOR */
-  [0x5af, 0x5af], /* HEBREW MARK MASORA CIRCLE */
-  [0x5b0, 0x5b0], /* HEBREW POINT SHEVA */
-  [0x5b1, 0x5b1], /* HEBREW POINT HATAF SEGOL */
-  [0x5b2, 0x5b2], /* HEBREW POINT HATAF PATAH */
-  [0x5b3, 0x5b3], /* HEBREW POINT HATAF QAMATS */
-  [0x5b4, 0x5b4], /* HEBREW POINT HIRIQ */
-  [0x5b5, 0x5b5], /* HEBREW POINT TSERE */
-  [0x5b6, 0x5b6], /* HEBREW POINT SEGOL */
-  [0x5b7, 0x5b7], /* HEBREW POINT PATAH */
-  [0x5b8, 0x5b8], /* HEBREW POINT QAMATS */
-  [0x5b9, 0x5b9], /* HEBREW POINT HOLAM */
-  [0x5ba, 0x5ba], /* HEBREW POINT HOLAM HASER FOR VAV */
-  [0x5bb, 0x5bb], /* HEBREW POINT QUBUTS */
-  [0x5bc, 0x5bc], /* HEBREW POINT DAGESH OR MAPIQ (HEBREW POINT DAGESH) */
-  [0x5bd, 0x5bd], /* HEBREW POINT METEG */
-  [0x5be, 0x5be], /* HEBREW PUNCTUATION MAQAF */
-  [0x5bf, 0x5bf], /* HEBREW POINT RAFE */
-  [0x5c0, 0x5c0], /* HEBREW PUNCTUATION PASEQ (HEBREW POINT PASEQ) */
-  [0x5c1, 0x5c1], /* HEBREW POINT SHIN DOT */
-  [0x5c2, 0x5c2], /* HEBREW POINT SIN DOT */
-  [0x5c3, 0x5c3], /* HEBREW PUNCTUATION SOF PASUQ */
-  [0x5c4, 0x5c4], /* HEBREW MARK UPPER DOT */
-  [0x5c5, 0x5c5], /* HEBREW MARK LOWER DOT */
-  [0x5c6, 0x5c6], /* HEBREW PUNCTUATION NUN HAFUKHA */
-  [0x5c7, 0x5c7], /* HEBREW POINT QAMATS QATAN */
-  [0x5c8, 0x5c8],
-  [0x5c9, 0x5c9],
-  [0x5ca, 0x5ca],
-  [0x5cb, 0x5cb],
-  [0x5cc, 0x5cc],
-  [0x5cd, 0x5cd],
-  [0x5ce, 0x5ce],
-  [0x5cf, 0x5cf],
-  [0x5d0, 0x5d0], /* HEBREW LETTER ALEF */
-  [0x5d1, 0x5d1], /* HEBREW LETTER BET */
-  [0x5d2, 0x5d2], /* HEBREW LETTER GIMEL */
-  [0x5d3, 0x5d3], /* HEBREW LETTER DALET */
-  [0x5d4, 0x5d4], /* HEBREW LETTER HE */
-  [0x5d5, 0x5d5], /* HEBREW LETTER VAV */
-  [0x5d6, 0x5d6], /* HEBREW LETTER ZAYIN */
-  [0x5d7, 0x5d7], /* HEBREW LETTER HET */
-  [0x5d8, 0x5d8], /* HEBREW LETTER TET */
-  [0x5d9, 0x5d9], /* HEBREW LETTER YOD */
-  [0x5da, 0x5da], /* HEBREW LETTER FINAL KAF */
-  [0x5db, 0x5db], /* HEBREW LETTER KAF */
-  [0x5dc, 0x5dc], /* HEBREW LETTER LAMED */
-  [0x5dd, 0x5dd], /* HEBREW LETTER FINAL MEM */
-  [0x5de, 0x5de], /* HEBREW LETTER MEM */
-  [0x5df, 0x5df], /* HEBREW LETTER FINAL NUN */
-  [0x5e0, 0x5e0], /* HEBREW LETTER NUN */
-  [0x5e1, 0x5e1], /* HEBREW LETTER SAMEKH */
-  [0x5e2, 0x5e2], /* HEBREW LETTER AYIN */
-  [0x5e3, 0x5e3], /* HEBREW LETTER FINAL PE */
-  [0x5e4, 0x5e4], /* HEBREW LETTER PE */
-  [0x5e5, 0x5e5], /* HEBREW LETTER FINAL TSADI */
-  [0x5e6, 0x5e6], /* HEBREW LETTER TSADI */
-  [0x5e7, 0x5e7], /* HEBREW LETTER QOF */
-  [0x5e8, 0x5e8], /* HEBREW LETTER RESH */
-  [0x5e9, 0x5e9], /* HEBREW LETTER SHIN */
-  [0x5ea, 0x5ea], /* HEBREW LETTER TAV */
-  [0x5eb, 0x5eb],
-  [0x5ec, 0x5ec],
-  [0x5ed, 0x5ed],
-  [0x5ee, 0x5ee],
-  [0x5ef, 0x5ef],
-  [0x5f0, 0x5f0], /* HEBREW LIGATURE YIDDISH DOUBLE VAV (HEBREW LETTER DOUBLE VAV) */
-  [0x5f1, 0x5f1], /* HEBREW LIGATURE YIDDISH VAV YOD (HEBREW LETTER VAV YOD) */
-  [0x5f2, 0x5f2], /* HEBREW LIGATURE YIDDISH DOUBLE YOD (HEBREW LETTER DOUBLE YOD) */
-  [0x5f3, 0x5f3], /* HEBREW PUNCTUATION GERESH */
-  [0x5f4, 0x5f4], /* HEBREW PUNCTUATION GERSHAYIM */
-  [0x5f5, 0x5f5],
-  [0x5f6, 0x5f6],
-  [0x5f7, 0x5f7],
-  [0x5f8, 0x5f8],
-  [0x5f9, 0x5f9],
-  [0x5fa, 0x5fa],
-  [0x5fb, 0x5fb],
-  [0x5fc, 0x5fc],
-  [0x5fd, 0x5fd],
-  [0x5fe, 0x5fe],
-  [0x5ff, 0x5ff],
-  [0x600, 0x600], /* ARABIC NUMBER SIGN */
-  [0x601, 0x601], /* ARABIC SIGN SANAH */
-  [0x602, 0x602], /* ARABIC FOOTNOTE MARKER */
-  [0x603, 0x603], /* ARABIC SIGN SAFHA */
-  [0x604, 0x604], /* ARABIC SIGN SAMVAT */
-  [0x605, 0x605], /* ARABIC NUMBER MARK ABOVE */
-  [0x606, 0x606], /* ARABIC-INDIC CUBE ROOT */
-  [0x607, 0x607], /* ARABIC-INDIC FOURTH ROOT */
-  [0x608, 0x608], /* ARABIC RAY */
-  [0x609, 0x609], /* ARABIC-INDIC PER MILLE SIGN */
-  [0x60a, 0x60a], /* ARABIC-INDIC PER TEN THOUSAND SIGN */
-  [0x60b, 0x60b], /* AFGHANI SIGN */
-  [0x60c, 0x60c], /* ARABIC COMMA */
-  [0x60d, 0x60d], /* ARABIC DATE SEPARATOR */
-  [0x60e, 0x60e], /* ARABIC POETIC VERSE SIGN */
-  [0x60f, 0x60f], /* ARABIC SIGN MISRA */
-  [0x610, 0x610], /* ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM */
-  [0x611, 0x611], /* ARABIC SIGN ALAYHE ASSALLAM */
-  [0x612, 0x612], /* ARABIC SIGN RAHMATULLAH ALAYHE */
-  [0x613, 0x613], /* ARABIC SIGN RADI ALLAHOU ANHU */
-  [0x614, 0x614], /* ARABIC SIGN TAKHALLUS */
-  [0x615, 0x615], /* ARABIC SMALL HIGH TAH */
-  [0x616, 0x616], /* ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH */
-  [0x617, 0x617], /* ARABIC SMALL HIGH ZAIN */
-  [0x618, 0x618], /* ARABIC SMALL FATHA */
-  [0x619, 0x619], /* ARABIC SMALL DAMMA */
-  [0x61a, 0x61a], /* ARABIC SMALL KASRA */
-  [0x61b, 0x61b], /* ARABIC SEMICOLON */
-  [0x61c, 0x61c], /* ARABIC LETTER MARK */
-  [0x61d, 0x61d],
-  [0x61e, 0x61e], /* ARABIC TRIPLE DOT PUNCTUATION MARK */
-  [0x61f, 0x61f], /* ARABIC QUESTION MARK */
-  [0x620, 0x620], /* ARABIC LETTER KASHMIRI YEH */
-  [0x621, 0x621], /* ARABIC LETTER HAMZA (ARABIC LETTER HAMZAH) */
-  [0x622, 0x622], /* ARABIC LETTER ALEF WITH MADDA ABOVE (ARABIC LETTER MADDAH ON ALEF) */
-  [0x623, 0x623], /* ARABIC LETTER ALEF WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON ALEF) */
-  [0x624, 0x624], /* ARABIC LETTER WAW WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON WAW) */
-  [0x625, 0x625], /* ARABIC LETTER ALEF WITH HAMZA BELOW (ARABIC LETTER HAMZAH UNDER ALEF) */
-  [0x626, 0x626], /* ARABIC LETTER YEH WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON YA) */
-  [0x627, 0x627], /* ARABIC LETTER ALEF */
-  [0x628, 0x628], /* ARABIC LETTER BEH (ARABIC LETTER BAA) */
-  [0x629, 0x629], /* ARABIC LETTER TEH MARBUTA (ARABIC LETTER TAA MARBUTAH) */
-  [0x62a, 0x62a], /* ARABIC LETTER TEH (ARABIC LETTER TAA) */
-  [0x62b, 0x62b], /* ARABIC LETTER THEH (ARABIC LETTER THAA) */
-  [0x62c, 0x62c], /* ARABIC LETTER JEEM */
-  [0x62d, 0x62d], /* ARABIC LETTER HAH (ARABIC LETTER HAA) */
-  [0x62e, 0x62e], /* ARABIC LETTER KHAH (ARABIC LETTER KHAA) */
-  [0x62f, 0x62f], /* ARABIC LETTER DAL */
-  [0x630, 0x630], /* ARABIC LETTER THAL */
-  [0x631, 0x631], /* ARABIC LETTER REH (ARABIC LETTER RA) */
-  [0x632, 0x632], /* ARABIC LETTER ZAIN */
-  [0x633, 0x633], /* ARABIC LETTER SEEN */
-  [0x634, 0x634], /* ARABIC LETTER SHEEN */
-  [0x635, 0x635], /* ARABIC LETTER SAD */
-  [0x636, 0x636], /* ARABIC LETTER DAD */
-  [0x637, 0x637], /* ARABIC LETTER TAH */
-  [0x638, 0x638], /* ARABIC LETTER ZAH (ARABIC LETTER DHAH) */
-  [0x639, 0x639], /* ARABIC LETTER AIN */
-  [0x63a, 0x63a], /* ARABIC LETTER GHAIN */
-  [0x63b, 0x63b], /* ARABIC LETTER KEHEH WITH TWO DOTS ABOVE */
-  [0x63c, 0x63c], /* ARABIC LETTER KEHEH WITH THREE DOTS BELOW */
-  [0x63d, 0x63d], /* ARABIC LETTER FARSI YEH WITH INVERTED V */
-  [0x63e, 0x63e], /* ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE */
-  [0x63f, 0x63f], /* ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE */
-  [0x640, 0x640], /* ARABIC TATWEEL */
-  [0x641, 0x641], /* ARABIC LETTER FEH (ARABIC LETTER FA) */
-  [0x642, 0x642], /* ARABIC LETTER QAF */
-  [0x643, 0x643], /* ARABIC LETTER KAF (ARABIC LETTER CAF) */
-  [0x644, 0x644], /* ARABIC LETTER LAM */
-  [0x645, 0x645], /* ARABIC LETTER MEEM */
-  [0x646, 0x646], /* ARABIC LETTER NOON */
-  [0x647, 0x647], /* ARABIC LETTER HEH (ARABIC LETTER HA) */
-  [0x648, 0x648], /* ARABIC LETTER WAW */
-  [0x649, 0x649], /* ARABIC LETTER ALEF MAKSURA (ARABIC LETTER ALEF MAQSURAH) */
-  [0x64a, 0x64a], /* ARABIC LETTER YEH (ARABIC LETTER YA) */
-  [0x64b, 0x64b], /* ARABIC FATHATAN */
-  [0x64c, 0x64c], /* ARABIC DAMMATAN */
-  [0x64d, 0x64d], /* ARABIC KASRATAN */
-  [0x64e, 0x64e], /* ARABIC FATHA (ARABIC FATHAH) */
-  [0x64f, 0x64f], /* ARABIC DAMMA (ARABIC DAMMAH) */
-  [0x650, 0x650], /* ARABIC KASRA (ARABIC KASRAH) */
-  [0x651, 0x651], /* ARABIC SHADDA (ARABIC SHADDAH) */
-  [0x652, 0x652], /* ARABIC SUKUN */
-  [0x653, 0x653], /* ARABIC MADDAH ABOVE */
-  [0x654, 0x654], /* ARABIC HAMZA ABOVE */
-  [0x655, 0x655], /* ARABIC HAMZA BELOW */
-  [0x656, 0x656], /* ARABIC SUBSCRIPT ALEF */
-  [0x657, 0x657], /* ARABIC INVERTED DAMMA */
-  [0x658, 0x658], /* ARABIC MARK NOON GHUNNA */
-  [0x659, 0x659], /* ARABIC ZWARAKAY */
-  [0x65a, 0x65a], /* ARABIC VOWEL SIGN SMALL V ABOVE */
-  [0x65b, 0x65b], /* ARABIC VOWEL SIGN INVERTED SMALL V ABOVE */
-  [0x65c, 0x65c], /* ARABIC VOWEL SIGN DOT BELOW */
-  [0x65d, 0x65d], /* ARABIC REVERSED DAMMA */
-  [0x65e, 0x65e], /* ARABIC FATHA WITH TWO DOTS */
-  [0x65f, 0x65f], /* ARABIC WAVY HAMZA BELOW */
-  [0x660, 0x660], /* ARABIC-INDIC DIGIT ZERO */
-  [0x661, 0x661], /* ARABIC-INDIC DIGIT ONE */
-  [0x662, 0x662], /* ARABIC-INDIC DIGIT TWO */
-  [0x663, 0x663], /* ARABIC-INDIC DIGIT THREE */
-  [0x664, 0x664], /* ARABIC-INDIC DIGIT FOUR */
-  [0x665, 0x665], /* ARABIC-INDIC DIGIT FIVE */
-  [0x666, 0x666], /* ARABIC-INDIC DIGIT SIX */
-  [0x667, 0x667], /* ARABIC-INDIC DIGIT SEVEN */
-  [0x668, 0x668], /* ARABIC-INDIC DIGIT EIGHT */
-  [0x669, 0x669], /* ARABIC-INDIC DIGIT NINE */
-  [0x66a, 0x66a], /* ARABIC PERCENT SIGN */
-  [0x66b, 0x66b], /* ARABIC DECIMAL SEPARATOR */
-  [0x66c, 0x66c], /* ARABIC THOUSANDS SEPARATOR */
-  [0x66d, 0x66d], /* ARABIC FIVE POINTED STAR */
-  [0x66e, 0x66e], /* ARABIC LETTER DOTLESS BEH */
-  [0x66f, 0x66f], /* ARABIC LETTER DOTLESS QAF */
-  [0x670, 0x670], /* ARABIC LETTER SUPERSCRIPT ALEF (ARABIC ALEF ABOVE) */
-  [0x671, 0x671], /* ARABIC LETTER ALEF WASLA (ARABIC LETTER HAMZAT WASL ON ALEF) */
-  [0x672, 0x672], /* ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE (ARABIC LETTER WAVY HAMZAH ON ALEF) */
-  [0x673, 0x673], /* ARABIC LETTER ALEF WITH WAVY HAMZA BELOW (ARABIC LETTER WAVY HAMZAH UNDER ALEF) */
-  [0x674, 0x674], /* ARABIC LETTER HIGH HAMZA (ARABIC LETTER HIGH HAMZAH) */
-  [0x675, 0x675], /* ARABIC LETTER HIGH HAMZA ALEF (ARABIC LETTER HIGH HAMZAH ALEF) */
-  [0x676, 0x676], /* ARABIC LETTER HIGH HAMZA WAW (ARABIC LETTER HIGH HAMZAH WAW) */
-  [0x677, 0x677], /* ARABIC LETTER U WITH HAMZA ABOVE (ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH) */
-  [0x678, 0x678], /* ARABIC LETTER HIGH HAMZA YEH (ARABIC LETTER HIGH HAMZAH YA) */
-  [0x679, 0x679], /* ARABIC LETTER TTEH (ARABIC LETTER TAA WITH SMALL TAH) */
-  [0x67a, 0x67a], /* ARABIC LETTER TTEHEH (ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE) */
-  [0x67b, 0x67b], /* ARABIC LETTER BEEH (ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW) */
-  [0x67c, 0x67c], /* ARABIC LETTER TEH WITH RING (ARABIC LETTER TAA WITH RING) */
-  [0x67d, 0x67d], /* ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS (ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD) */
-  [0x67e, 0x67e], /* ARABIC LETTER PEH (ARABIC LETTER TAA WITH THREE DOTS BELOW) */
-  [0x67f, 0x67f], /* ARABIC LETTER TEHEH (ARABIC LETTER TAA WITH FOUR DOTS ABOVE) */
-  [0x680, 0x680], /* ARABIC LETTER BEHEH (ARABIC LETTER BAA WITH FOUR DOTS BELOW) */
-  [0x681, 0x681], /* ARABIC LETTER HAH WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON HAA) */
-  [0x682, 0x682], /* ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE (ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE) */
-  [0x683, 0x683], /* ARABIC LETTER NYEH (ARABIC LETTER HAA WITH MIDDLE TWO DOTS) */
-  [0x684, 0x684], /* ARABIC LETTER DYEH (ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL) */
-  [0x685, 0x685], /* ARABIC LETTER HAH WITH THREE DOTS ABOVE (ARABIC LETTER HAA WITH THREE DOTS ABOVE) */
-  [0x686, 0x686], /* ARABIC LETTER TCHEH (ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD) */
-  [0x687, 0x687], /* ARABIC LETTER TCHEHEH (ARABIC LETTER HAA WITH MIDDLE FOUR DOTS) */
-  [0x688, 0x688], /* ARABIC LETTER DDAL (ARABIC LETTER DAL WITH SMALL TAH) */
-  [0x689, 0x689], /* ARABIC LETTER DAL WITH RING */
-  [0x68a, 0x68a], /* ARABIC LETTER DAL WITH DOT BELOW */
-  [0x68b, 0x68b], /* ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH */
-  [0x68c, 0x68c], /* ARABIC LETTER DAHAL (ARABIC LETTER DAL WITH TWO DOTS ABOVE) */
-  [0x68d, 0x68d], /* ARABIC LETTER DDAHAL (ARABIC LETTER DAL WITH TWO DOTS BELOW) */
-  [0x68e, 0x68e], /* ARABIC LETTER DUL (ARABIC LETTER DAL WITH THREE DOTS ABOVE) */
-  [0x68f, 0x68f], /* ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS (ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD) */
-  [0x690, 0x690], /* ARABIC LETTER DAL WITH FOUR DOTS ABOVE */
-  [0x691, 0x691], /* ARABIC LETTER RREH (ARABIC LETTER RA WITH SMALL TAH) */
-  [0x692, 0x692], /* ARABIC LETTER REH WITH SMALL V (ARABIC LETTER RA WITH SMALL V) */
-  [0x693, 0x693], /* ARABIC LETTER REH WITH RING (ARABIC LETTER RA WITH RING) */
-  [0x694, 0x694], /* ARABIC LETTER REH WITH DOT BELOW (ARABIC LETTER RA WITH DOT BELOW) */
-  [0x695, 0x695], /* ARABIC LETTER REH WITH SMALL V BELOW (ARABIC LETTER RA WITH SMALL V BELOW) */
-  [0x696, 0x696], /* ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE (ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE) */
-  [0x697, 0x697], /* ARABIC LETTER REH WITH TWO DOTS ABOVE (ARABIC LETTER RA WITH TWO DOTS ABOVE) */
-  [0x698, 0x698], /* ARABIC LETTER JEH (ARABIC LETTER RA WITH THREE DOTS ABOVE) */
-  [0x699, 0x699], /* ARABIC LETTER REH WITH FOUR DOTS ABOVE (ARABIC LETTER RA WITH FOUR DOTS ABOVE) */
-  [0x69a, 0x69a], /* ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE */
-  [0x69b, 0x69b], /* ARABIC LETTER SEEN WITH THREE DOTS BELOW */
-  [0x69c, 0x69c], /* ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE */
-  [0x69d, 0x69d], /* ARABIC LETTER SAD WITH TWO DOTS BELOW */
-  [0x69e, 0x69e], /* ARABIC LETTER SAD WITH THREE DOTS ABOVE */
-  [0x69f, 0x69f], /* ARABIC LETTER TAH WITH THREE DOTS ABOVE */
-  [0x6a0, 0x6a0], /* ARABIC LETTER AIN WITH THREE DOTS ABOVE */
-  [0x6a1, 0x6a1], /* ARABIC LETTER DOTLESS FEH (ARABIC LETTER DOTLESS FA) */
-  [0x6a2, 0x6a2], /* ARABIC LETTER FEH WITH DOT MOVED BELOW (ARABIC LETTER FA WITH DOT MOVED BELOW) */
-  [0x6a3, 0x6a3], /* ARABIC LETTER FEH WITH DOT BELOW (ARABIC LETTER FA WITH DOT BELOW) */
-  [0x6a4, 0x6a4], /* ARABIC LETTER VEH (ARABIC LETTER FA WITH THREE DOTS ABOVE) */
-  [0x6a5, 0x6a5], /* ARABIC LETTER FEH WITH THREE DOTS BELOW (ARABIC LETTER FA WITH THREE DOTS BELOW) */
-  [0x6a6, 0x6a6], /* ARABIC LETTER PEHEH (ARABIC LETTER FA WITH FOUR DOTS ABOVE) */
-  [0x6a7, 0x6a7], /* ARABIC LETTER QAF WITH DOT ABOVE */
-  [0x6a8, 0x6a8], /* ARABIC LETTER QAF WITH THREE DOTS ABOVE */
-  [0x6a9, 0x6a9], /* ARABIC LETTER KEHEH (ARABIC LETTER OPEN CAF) */
-  [0x6aa, 0x6aa], /* ARABIC LETTER SWASH KAF (ARABIC LETTER SWASH CAF) */
-  [0x6ab, 0x6ab], /* ARABIC LETTER KAF WITH RING (ARABIC LETTER CAF WITH RING) */
-  [0x6ac, 0x6ac], /* ARABIC LETTER KAF WITH DOT ABOVE (ARABIC LETTER CAF WITH DOT ABOVE) */
-  [0x6ad, 0x6ad], /* ARABIC LETTER NG (ARABIC LETTER CAF WITH THREE DOTS ABOVE) */
-  [0x6ae, 0x6ae], /* ARABIC LETTER KAF WITH THREE DOTS BELOW (ARABIC LETTER CAF WITH THREE DOTS BELOW) */
-  [0x6af, 0x6af], /* ARABIC LETTER GAF */
-  [0x6b0, 0x6b0], /* ARABIC LETTER GAF WITH RING */
-  [0x6b1, 0x6b1], /* ARABIC LETTER NGOEH (ARABIC LETTER GAF WITH TWO DOTS ABOVE) */
-  [0x6b2, 0x6b2], /* ARABIC LETTER GAF WITH TWO DOTS BELOW */
-  [0x6b3, 0x6b3], /* ARABIC LETTER GUEH (ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW) */
-  [0x6b4, 0x6b4], /* ARABIC LETTER GAF WITH THREE DOTS ABOVE */
-  [0x6b5, 0x6b5], /* ARABIC LETTER LAM WITH SMALL V */
-  [0x6b6, 0x6b6], /* ARABIC LETTER LAM WITH DOT ABOVE */
-  [0x6b7, 0x6b7], /* ARABIC LETTER LAM WITH THREE DOTS ABOVE */
-  [0x6b8, 0x6b8], /* ARABIC LETTER LAM WITH THREE DOTS BELOW */
-  [0x6b9, 0x6b9], /* ARABIC LETTER NOON WITH DOT BELOW */
-  [0x6ba, 0x6ba], /* ARABIC LETTER NOON GHUNNA (ARABIC LETTER DOTLESS NOON) */
-  [0x6bb, 0x6bb], /* ARABIC LETTER RNOON (ARABIC LETTER DOTLESS NOON WITH SMALL TAH) */
-  [0x6bc, 0x6bc], /* ARABIC LETTER NOON WITH RING */
-  [0x6bd, 0x6bd], /* ARABIC LETTER NOON WITH THREE DOTS ABOVE */
-  [0x6be, 0x6be], /* ARABIC LETTER HEH DOACHASHMEE (ARABIC LETTER KNOTTED HA) */
-  [0x6bf, 0x6bf], /* ARABIC LETTER TCHEH WITH DOT ABOVE */
-  [0x6c0, 0x6c0], /* ARABIC LETTER HEH WITH YEH ABOVE (ARABIC LETTER HAMZAH ON HA) */
-  [0x6c1, 0x6c1], /* ARABIC LETTER HEH GOAL (ARABIC LETTER HA GOAL) */
-  [0x6c2, 0x6c2], /* ARABIC LETTER HEH GOAL WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON HA GOAL) */
-  [0x6c3, 0x6c3], /* ARABIC LETTER TEH MARBUTA GOAL (ARABIC LETTER TAA MARBUTAH GOAL) */
-  [0x6c4, 0x6c4], /* ARABIC LETTER WAW WITH RING */
-  [0x6c5, 0x6c5], /* ARABIC LETTER KIRGHIZ OE (ARABIC LETTER WAW WITH BAR) */
-  [0x6c6, 0x6c6], /* ARABIC LETTER OE (ARABIC LETTER WAW WITH SMALL V) */
-  [0x6c7, 0x6c7], /* ARABIC LETTER U (ARABIC LETTER WAW WITH DAMMAH) */
-  [0x6c8, 0x6c8], /* ARABIC LETTER YU (ARABIC LETTER WAW WITH ALEF ABOVE) */
-  [0x6c9, 0x6c9], /* ARABIC LETTER KIRGHIZ YU (ARABIC LETTER WAW WITH INVERTED SMALL V) */
-  [0x6ca, 0x6ca], /* ARABIC LETTER WAW WITH TWO DOTS ABOVE */
-  [0x6cb, 0x6cb], /* ARABIC LETTER VE (ARABIC LETTER WAW WITH THREE DOTS ABOVE) */
-  [0x6cc, 0x6cc], /* ARABIC LETTER FARSI YEH (ARABIC LETTER DOTLESS YA) */
-  [0x6cd, 0x6cd], /* ARABIC LETTER YEH WITH TAIL (ARABIC LETTER YA WITH TAIL) */
-  [0x6ce, 0x6ce], /* ARABIC LETTER YEH WITH SMALL V (ARABIC LETTER YA WITH SMALL V) */
-  [0x6cf, 0x6cf], /* ARABIC LETTER WAW WITH DOT ABOVE */
-  [0x6d0, 0x6d0], /* ARABIC LETTER E (ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW) */
-  [0x6d1, 0x6d1], /* ARABIC LETTER YEH WITH THREE DOTS BELOW (ARABIC LETTER YA WITH THREE DOTS BELOW) */
-  [0x6d2, 0x6d2], /* ARABIC LETTER YEH BARREE (ARABIC LETTER YA BARREE) */
-  [0x6d3, 0x6d3], /* ARABIC LETTER YEH BARREE WITH HAMZA ABOVE (ARABIC LETTER HAMZAH ON YA BARREE) */
-  [0x6d4, 0x6d4], /* ARABIC FULL STOP (ARABIC PERIOD) */
-  [0x6d5, 0x6d5], /* ARABIC LETTER AE */
-  [0x6d6, 0x6d6], /* ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA */
-  [0x6d7, 0x6d7], /* ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA */
-  [0x6d8, 0x6d8], /* ARABIC SMALL HIGH MEEM INITIAL FORM */
-  [0x6d9, 0x6d9], /* ARABIC SMALL HIGH LAM ALEF */
-  [0x6da, 0x6da], /* ARABIC SMALL HIGH JEEM */
-  [0x6db, 0x6db], /* ARABIC SMALL HIGH THREE DOTS */
-  [0x6dc, 0x6dc], /* ARABIC SMALL HIGH SEEN */
-  [0x6dd, 0x6dd], /* ARABIC END OF AYAH */
-  [0x6de, 0x6de], /* ARABIC START OF RUB EL HIZB */
-  [0x6df, 0x6df], /* ARABIC SMALL HIGH ROUNDED ZERO */
-  [0x6e0, 0x6e0], /* ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO */
-  [0x6e1, 0x6e1], /* ARABIC SMALL HIGH DOTLESS HEAD OF KHAH */
-  [0x6e2, 0x6e2], /* ARABIC SMALL HIGH MEEM ISOLATED FORM */
-  [0x6e3, 0x6e3], /* ARABIC SMALL LOW SEEN */
-  [0x6e4, 0x6e4], /* ARABIC SMALL HIGH MADDA */
-  [0x6e5, 0x6e5], /* ARABIC SMALL WAW */
-  [0x6e6, 0x6e6], /* ARABIC SMALL YEH */
-  [0x6e7, 0x6e7], /* ARABIC SMALL HIGH YEH */
-  [0x6e8, 0x6e8], /* ARABIC SMALL HIGH NOON */
-  [0x6e9, 0x6e9], /* ARABIC PLACE OF SAJDAH */
-  [0x6ea, 0x6ea], /* ARABIC EMPTY CENTRE LOW STOP */
-  [0x6eb, 0x6eb], /* ARABIC EMPTY CENTRE HIGH STOP */
-  [0x6ec, 0x6ec], /* ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE */
-  [0x6ed, 0x6ed], /* ARABIC SMALL LOW MEEM */
-  [0x6ee, 0x6ee], /* ARABIC LETTER DAL WITH INVERTED V */
-  [0x6ef, 0x6ef], /* ARABIC LETTER REH WITH INVERTED V */
-  [0x6f0, 0x6f0], /* EXTENDED ARABIC-INDIC DIGIT ZERO (EASTERN ARABIC-INDIC DIGIT ZERO) */
-  [0x6f1, 0x6f1], /* EXTENDED ARABIC-INDIC DIGIT ONE (EASTERN ARABIC-INDIC DIGIT ONE) */
-  [0x6f2, 0x6f2], /* EXTENDED ARABIC-INDIC DIGIT TWO (EASTERN ARABIC-INDIC DIGIT TWO) */
-  [0x6f3, 0x6f3], /* EXTENDED ARABIC-INDIC DIGIT THREE (EASTERN ARABIC-INDIC DIGIT THREE) */
-  [0x6f4, 0x6f4], /* EXTENDED ARABIC-INDIC DIGIT FOUR (EASTERN ARABIC-INDIC DIGIT FOUR) */
-  [0x6f5, 0x6f5], /* EXTENDED ARABIC-INDIC DIGIT FIVE (EASTERN ARABIC-INDIC DIGIT FIVE) */
-  [0x6f6, 0x6f6], /* EXTENDED ARABIC-INDIC DIGIT SIX (EASTERN ARABIC-INDIC DIGIT SIX) */
-  [0x6f7, 0x6f7], /* EXTENDED ARABIC-INDIC DIGIT SEVEN (EASTERN ARABIC-INDIC DIGIT SEVEN) */
-  [0x6f8, 0x6f8], /* EXTENDED ARABIC-INDIC DIGIT EIGHT (EASTERN ARABIC-INDIC DIGIT EIGHT) */
-  [0x6f9, 0x6f9], /* EXTENDED ARABIC-INDIC DIGIT NINE (EASTERN ARABIC-INDIC DIGIT NINE) */
-  [0x6fa, 0x6fa], /* ARABIC LETTER SHEEN WITH DOT BELOW */
-  [0x6fb, 0x6fb], /* ARABIC LETTER DAD WITH DOT BELOW */
-  [0x6fc, 0x6fc], /* ARABIC LETTER GHAIN WITH DOT BELOW */
-  [0x6fd, 0x6fd], /* ARABIC SIGN SINDHI AMPERSAND */
-  [0x6fe, 0x6fe], /* ARABIC SIGN SINDHI POSTPOSITION MEN */
-  [0x6ff, 0x6ff], /* ARABIC LETTER HEH WITH INVERTED V */
-  [0x700, 0x700], /* SYRIAC END OF PARAGRAPH */
-  [0x701, 0x701], /* SYRIAC SUPRALINEAR FULL STOP */
-  [0x702, 0x702], /* SYRIAC SUBLINEAR FULL STOP */
-  [0x703, 0x703], /* SYRIAC SUPRALINEAR COLON */
-  [0x704, 0x704], /* SYRIAC SUBLINEAR COLON */
-  [0x705, 0x705], /* SYRIAC HORIZONTAL COLON */
-  [0x706, 0x706], /* SYRIAC COLON SKEWED LEFT */
-  [0x707, 0x707], /* SYRIAC COLON SKEWED RIGHT */
-  [0x708, 0x708], /* SYRIAC SUPRALINEAR COLON SKEWED LEFT */
-  [0x709, 0x709], /* SYRIAC SUBLINEAR COLON SKEWED RIGHT */
-  [0x70a, 0x70a], /* SYRIAC CONTRACTION */
-  [0x70b, 0x70b], /* SYRIAC HARKLEAN OBELUS */
-  [0x70c, 0x70c], /* SYRIAC HARKLEAN METOBELUS */
-  [0x70d, 0x70d], /* SYRIAC HARKLEAN ASTERISCUS */
-  [0x70e, 0x70e],
-  [0x70f, 0x70f], /* SYRIAC ABBREVIATION MARK */
-  [0x710, 0x710], /* SYRIAC LETTER ALAPH */
-  [0x711, 0x711], /* SYRIAC LETTER SUPERSCRIPT ALAPH */
-  [0x712, 0x712], /* SYRIAC LETTER BETH */
-  [0x713, 0x713], /* SYRIAC LETTER GAMAL */
-  [0x714, 0x714], /* SYRIAC LETTER GAMAL GARSHUNI */
-  [0x715, 0x715], /* SYRIAC LETTER DALATH */
-  [0x716, 0x716], /* SYRIAC LETTER DOTLESS DALATH RISH */
-  [0x717, 0x717], /* SYRIAC LETTER HE */
-  [0x718, 0x718], /* SYRIAC LETTER WAW */
-  [0x719, 0x719], /* SYRIAC LETTER ZAIN */
-  [0x71a, 0x71a], /* SYRIAC LETTER HETH */
-  [0x71b, 0x71b], /* SYRIAC LETTER TETH */
-  [0x71c, 0x71c], /* SYRIAC LETTER TETH GARSHUNI */
-  [0x71d, 0x71d], /* SYRIAC LETTER YUDH */
-  [0x71e, 0x71e], /* SYRIAC LETTER YUDH HE */
-  [0x71f, 0x71f], /* SYRIAC LETTER KAPH */
-  [0x720, 0x720], /* SYRIAC LETTER LAMADH */
-  [0x721, 0x721], /* SYRIAC LETTER MIM */
-  [0x722, 0x722], /* SYRIAC LETTER NUN */
-  [0x723, 0x723], /* SYRIAC LETTER SEMKATH */
-  [0x724, 0x724], /* SYRIAC LETTER FINAL SEMKATH */
-  [0x725, 0x725], /* SYRIAC LETTER E */
-  [0x726, 0x726], /* SYRIAC LETTER PE */
-  [0x727, 0x727], /* SYRIAC LETTER REVERSED PE */
-  [0x728, 0x728], /* SYRIAC LETTER SADHE */
-  [0x729, 0x729], /* SYRIAC LETTER QAPH */
-  [0x72a, 0x72a], /* SYRIAC LETTER RISH */
-  [0x72b, 0x72b], /* SYRIAC LETTER SHIN */
-  [0x72c, 0x72c], /* SYRIAC LETTER TAW */
-  [0x72d, 0x72d], /* SYRIAC LETTER PERSIAN BHETH */
-  [0x72e, 0x72e], /* SYRIAC LETTER PERSIAN GHAMAL */
-  [0x72f, 0x72f], /* SYRIAC LETTER PERSIAN DHALATH */
-  [0x730, 0x730], /* SYRIAC PTHAHA ABOVE */
-  [0x731, 0x731], /* SYRIAC PTHAHA BELOW */
-  [0x732, 0x732], /* SYRIAC PTHAHA DOTTED */
-  [0x733, 0x733], /* SYRIAC ZQAPHA ABOVE */
-  [0x734, 0x734], /* SYRIAC ZQAPHA BELOW */
-  [0x735, 0x735], /* SYRIAC ZQAPHA DOTTED */
-  [0x736, 0x736], /* SYRIAC RBASA ABOVE */
-  [0x737, 0x737], /* SYRIAC RBASA BELOW */
-  [0x738, 0x738], /* SYRIAC DOTTED ZLAMA HORIZONTAL */
-  [0x739, 0x739], /* SYRIAC DOTTED ZLAMA ANGULAR */
-  [0x73a, 0x73a], /* SYRIAC HBASA ABOVE */
-  [0x73b, 0x73b], /* SYRIAC HBASA BELOW */
-  [0x73c, 0x73c], /* SYRIAC HBASA-ESASA DOTTED */
-  [0x73d, 0x73d], /* SYRIAC ESASA ABOVE */
-  [0x73e, 0x73e], /* SYRIAC ESASA BELOW */
-  [0x73f, 0x73f], /* SYRIAC RWAHA */
-  [0x740, 0x740], /* SYRIAC FEMININE DOT */
-  [0x741, 0x741], /* SYRIAC QUSHSHAYA */
-  [0x742, 0x742], /* SYRIAC RUKKAKHA */
-  [0x743, 0x743], /* SYRIAC TWO VERTICAL DOTS ABOVE */
-  [0x744, 0x744], /* SYRIAC TWO VERTICAL DOTS BELOW */
-  [0x745, 0x745], /* SYRIAC THREE DOTS ABOVE */
-  [0x746, 0x746], /* SYRIAC THREE DOTS BELOW */
-  [0x747, 0x747], /* SYRIAC OBLIQUE LINE ABOVE */
-  [0x748, 0x748], /* SYRIAC OBLIQUE LINE BELOW */
-  [0x749, 0x749], /* SYRIAC MUSIC */
-  [0x74a, 0x74a], /* SYRIAC BARREKH */
-  [0x74b, 0x74b],
-  [0x74c, 0x74c],
-  [0x74d, 0x74d], /* SYRIAC LETTER SOGDIAN ZHAIN */
-  [0x74e, 0x74e], /* SYRIAC LETTER SOGDIAN KHAPH */
-  [0x74f, 0x74f], /* SYRIAC LETTER SOGDIAN FE */
-  [0x750, 0x750], /* ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW */
-  [0x751, 0x751], /* ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE */
-  [0x752, 0x752], /* ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW */
-  [0x753, 0x753], /* ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE */
-  [0x754, 0x754], /* ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE */
-  [0x755, 0x755], /* ARABIC LETTER BEH WITH INVERTED SMALL V BELOW */
-  [0x756, 0x756], /* ARABIC LETTER BEH WITH SMALL V */
-  [0x757, 0x757], /* ARABIC LETTER HAH WITH TWO DOTS ABOVE */
-  [0x758, 0x758], /* ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW */
-  [0x759, 0x759], /* ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH */
-  [0x75a, 0x75a], /* ARABIC LETTER DAL WITH INVERTED SMALL V BELOW */
-  [0x75b, 0x75b], /* ARABIC LETTER REH WITH STROKE */
-  [0x75c, 0x75c], /* ARABIC LETTER SEEN WITH FOUR DOTS ABOVE */
-  [0x75d, 0x75d], /* ARABIC LETTER AIN WITH TWO DOTS ABOVE */
-  [0x75e, 0x75e], /* ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE */
-  [0x75f, 0x75f], /* ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE */
-  [0x760, 0x760], /* ARABIC LETTER FEH WITH TWO DOTS BELOW */
-  [0x761, 0x761], /* ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW */
-  [0x762, 0x762], /* ARABIC LETTER KEHEH WITH DOT ABOVE */
-  [0x763, 0x763], /* ARABIC LETTER KEHEH WITH THREE DOTS ABOVE */
-  [0x764, 0x764], /* ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW */
-  [0x765, 0x765], /* ARABIC LETTER MEEM WITH DOT ABOVE */
-  [0x766, 0x766], /* ARABIC LETTER MEEM WITH DOT BELOW */
-  [0x767, 0x767], /* ARABIC LETTER NOON WITH TWO DOTS BELOW */
-  [0x768, 0x768], /* ARABIC LETTER NOON WITH SMALL TAH */
-  [0x769, 0x769], /* ARABIC LETTER NOON WITH SMALL V */
-  [0x76a, 0x76a], /* ARABIC LETTER LAM WITH BAR */
-  [0x76b, 0x76b], /* ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE */
-  [0x76c, 0x76c], /* ARABIC LETTER REH WITH HAMZA ABOVE */
-  [0x76d, 0x76d], /* ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE */
-  [0x76e, 0x76e], /* ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW */
-  [0x76f, 0x76f], /* ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS */
-  [0x770, 0x770], /* ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS */
-  [0x771, 0x771], /* ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS */
-  [0x772, 0x772], /* ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE */
-  [0x773, 0x773], /* ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE */
-  [0x774, 0x774], /* ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE */
-  [0x775, 0x775], /* ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE */
-  [0x776, 0x776], /* ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE */
-  [0x777, 0x777], /* ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW */
-  [0x778, 0x778], /* ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE */
-  [0x779, 0x779], /* ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE */
-  [0x77a, 0x77a], /* ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE */
-  [0x77b, 0x77b], /* ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE */
-  [0x77c, 0x77c], /* ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW */
-  [0x77d, 0x77d], /* ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE */
-  [0x77e, 0x77e], /* ARABIC LETTER SEEN WITH INVERTED V */
-  [0x77f, 0x77f], /* ARABIC LETTER KAF WITH TWO DOTS ABOVE */
-  [0x780, 0x780], /* THAANA LETTER HAA */
-  [0x781, 0x781], /* THAANA LETTER SHAVIYANI */
-  [0x782, 0x782], /* THAANA LETTER NOONU */
-  [0x783, 0x783], /* THAANA LETTER RAA */
-  [0x784, 0x784], /* THAANA LETTER BAA */
-  [0x785, 0x785], /* THAANA LETTER LHAVIYANI */
-  [0x786, 0x786], /* THAANA LETTER KAAFU */
-  [0x787, 0x787], /* THAANA LETTER ALIFU */
-  [0x788, 0x788], /* THAANA LETTER VAAVU */
-  [0x789, 0x789], /* THAANA LETTER MEEMU */
-  [0x78a, 0x78a], /* THAANA LETTER FAAFU */
-  [0x78b, 0x78b], /* THAANA LETTER DHAALU */
-  [0x78c, 0x78c], /* THAANA LETTER THAA */
-  [0x78d, 0x78d], /* THAANA LETTER LAAMU */
-  [0x78e, 0x78e], /* THAANA LETTER GAAFU */
-  [0x78f, 0x78f], /* THAANA LETTER GNAVIYANI */
-  [0x790, 0x790], /* THAANA LETTER SEENU */
-  [0x791, 0x791], /* THAANA LETTER DAVIYANI */
-  [0x792, 0x792], /* THAANA LETTER ZAVIYANI */
-  [0x793, 0x793], /* THAANA LETTER TAVIYANI */
-  [0x794, 0x794], /* THAANA LETTER YAA */
-  [0x795, 0x795], /* THAANA LETTER PAVIYANI */
-  [0x796, 0x796], /* THAANA LETTER JAVIYANI */
-  [0x797, 0x797], /* THAANA LETTER CHAVIYANI */
-  [0x798, 0x798], /* THAANA LETTER TTAA */
-  [0x799, 0x799], /* THAANA LETTER HHAA */
-  [0x79a, 0x79a], /* THAANA LETTER KHAA */
-  [0x79b, 0x79b], /* THAANA LETTER THAALU */
-  [0x79c, 0x79c], /* THAANA LETTER ZAA */
-  [0x79d, 0x79d], /* THAANA LETTER SHEENU */
-  [0x79e, 0x79e], /* THAANA LETTER SAADHU */
-  [0x79f, 0x79f], /* THAANA LETTER DAADHU */
-  [0x7a0, 0x7a0], /* THAANA LETTER TO */
-  [0x7a1, 0x7a1], /* THAANA LETTER ZO */
-  [0x7a2, 0x7a2], /* THAANA LETTER AINU */
-  [0x7a3, 0x7a3], /* THAANA LETTER GHAINU */
-  [0x7a4, 0x7a4], /* THAANA LETTER QAAFU */
-  [0x7a5, 0x7a5], /* THAANA LETTER WAAVU */
-  [0x7a6, 0x7a6], /* THAANA ABAFILI */
-  [0x7a7, 0x7a7], /* THAANA AABAAFILI */
-  [0x7a8, 0x7a8], /* THAANA IBIFILI */
-  [0x7a9, 0x7a9], /* THAANA EEBEEFILI */
-  [0x7aa, 0x7aa], /* THAANA UBUFILI */
-  [0x7ab, 0x7ab], /* THAANA OOBOOFILI */
-  [0x7ac, 0x7ac], /* THAANA EBEFILI */
-  [0x7ad, 0x7ad], /* THAANA EYBEYFILI */
-  [0x7ae, 0x7ae], /* THAANA OBOFILI */
-  [0x7af, 0x7af], /* THAANA OABOAFILI */
-  [0x7b0, 0x7b0], /* THAANA SUKUN */
-  [0x7b1, 0x7b1], /* THAANA LETTER NAA */
-  [0x7b2, 0x7b2],
-  [0x7b3, 0x7b3],
-  [0x7b4, 0x7b4],
-  [0x7b5, 0x7b5],
-  [0x7b6, 0x7b6],
-  [0x7b7, 0x7b7],
-  [0x7b8, 0x7b8],
-  [0x7b9, 0x7b9],
-  [0x7ba, 0x7ba],
-  [0x7bb, 0x7bb],
-  [0x7bc, 0x7bc],
-  [0x7bd, 0x7bd],
-  [0x7be, 0x7be],
-  [0x7bf, 0x7bf],
-  [0x7c0, 0x7c0], /* NKO DIGIT ZERO */
-  [0x7c1, 0x7c1], /* NKO DIGIT ONE */
-  [0x7c2, 0x7c2], /* NKO DIGIT TWO */
-  [0x7c3, 0x7c3], /* NKO DIGIT THREE */
-  [0x7c4, 0x7c4], /* NKO DIGIT FOUR */
-  [0x7c5, 0x7c5], /* NKO DIGIT FIVE */
-  [0x7c6, 0x7c6], /* NKO DIGIT SIX */
-  [0x7c7, 0x7c7], /* NKO DIGIT SEVEN */
-  [0x7c8, 0x7c8], /* NKO DIGIT EIGHT */
-  [0x7c9, 0x7c9], /* NKO DIGIT NINE */
-  [0x7ca, 0x7ca], /* NKO LETTER A */
-  [0x7cb, 0x7cb], /* NKO LETTER EE */
-  [0x7cc, 0x7cc], /* NKO LETTER I */
-  [0x7cd, 0x7cd], /* NKO LETTER E */
-  [0x7ce, 0x7ce], /* NKO LETTER U */
-  [0x7cf, 0x7cf], /* NKO LETTER OO */
-  [0x7d0, 0x7d0], /* NKO LETTER O */
-  [0x7d1, 0x7d1], /* NKO LETTER DAGBASINNA */
-  [0x7d2, 0x7d2], /* NKO LETTER N */
-  [0x7d3, 0x7d3], /* NKO LETTER BA */
-  [0x7d4, 0x7d4], /* NKO LETTER PA */
-  [0x7d5, 0x7d5], /* NKO LETTER TA */
-  [0x7d6, 0x7d6], /* NKO LETTER JA */
-  [0x7d7, 0x7d7], /* NKO LETTER CHA */
-  [0x7d8, 0x7d8], /* NKO LETTER DA */
-  [0x7d9, 0x7d9], /* NKO LETTER RA */
-  [0x7da, 0x7da], /* NKO LETTER RRA */
-  [0x7db, 0x7db], /* NKO LETTER SA */
-  [0x7dc, 0x7dc], /* NKO LETTER GBA */
-  [0x7dd, 0x7dd], /* NKO LETTER FA */
-  [0x7de, 0x7de], /* NKO LETTER KA */
-  [0x7df, 0x7df], /* NKO LETTER LA */
-  [0x7e0, 0x7e0], /* NKO LETTER NA WOLOSO */
-  [0x7e1, 0x7e1], /* NKO LETTER MA */
-  [0x7e2, 0x7e2], /* NKO LETTER NYA */
-  [0x7e3, 0x7e3], /* NKO LETTER NA */
-  [0x7e4, 0x7e4], /* NKO LETTER HA */
-  [0x7e5, 0x7e5], /* NKO LETTER WA */
-  [0x7e6, 0x7e6], /* NKO LETTER YA */
-  [0x7e7, 0x7e7], /* NKO LETTER NYA WOLOSO */
-  [0x7e8, 0x7e8], /* NKO LETTER JONA JA */
-  [0x7e9, 0x7e9], /* NKO LETTER JONA CHA */
-  [0x7ea, 0x7ea], /* NKO LETTER JONA RA */
-  [0x7eb, 0x7eb], /* NKO COMBINING SHORT HIGH TONE */
-  [0x7ec, 0x7ec], /* NKO COMBINING SHORT LOW TONE */
-  [0x7ed, 0x7ed], /* NKO COMBINING SHORT RISING TONE */
-  [0x7ee, 0x7ee], /* NKO COMBINING LONG DESCENDING TONE */
-  [0x7ef, 0x7ef], /* NKO COMBINING LONG HIGH TONE */
-  [0x7f0, 0x7f0], /* NKO COMBINING LONG LOW TONE */
-  [0x7f1, 0x7f1], /* NKO COMBINING LONG RISING TONE */
-  [0x7f2, 0x7f2], /* NKO COMBINING NASALIZATION MARK */
-  [0x7f3, 0x7f3], /* NKO COMBINING DOUBLE DOT ABOVE */
-  [0x7f4, 0x7f4], /* NKO HIGH TONE APOSTROPHE */
-  [0x7f5, 0x7f5], /* NKO LOW TONE APOSTROPHE */
-  [0x7f6, 0x7f6], /* NKO SYMBOL OO DENNEN */
-  [0x7f7, 0x7f7], /* NKO SYMBOL GBAKURUNEN */
-  [0x7f8, 0x7f8], /* NKO COMMA */
-  [0x7f9, 0x7f9], /* NKO EXCLAMATION MARK */
-  [0x7fa, 0x7fa], /* NKO LAJANYALAN */
-  [0x7fb, 0x7fb],
-  [0x7fc, 0x7fc],
-  [0x7fd, 0x7fd],
-  [0x7fe, 0x7fe],
-  [0x7ff, 0x7ff],
-  [0x800, 0x800], /* SAMARITAN LETTER ALAF */
-  [0x801, 0x801], /* SAMARITAN LETTER BIT */
-  [0x802, 0x802], /* SAMARITAN LETTER GAMAN */
-  [0x803, 0x803], /* SAMARITAN LETTER DALAT */
-  [0x804, 0x804], /* SAMARITAN LETTER IY */
-  [0x805, 0x805], /* SAMARITAN LETTER BAA */
-  [0x806, 0x806], /* SAMARITAN LETTER ZEN */
-  [0x807, 0x807], /* SAMARITAN LETTER IT */
-  [0x808, 0x808], /* SAMARITAN LETTER TIT */
-  [0x809, 0x809], /* SAMARITAN LETTER YUT */
-  [0x80a, 0x80a], /* SAMARITAN LETTER KAAF */
-  [0x80b, 0x80b], /* SAMARITAN LETTER LABAT */
-  [0x80c, 0x80c], /* SAMARITAN LETTER MIM */
-  [0x80d, 0x80d], /* SAMARITAN LETTER NUN */
-  [0x80e, 0x80e], /* SAMARITAN LETTER SINGAAT */
-  [0x80f, 0x80f], /* SAMARITAN LETTER IN */
-  [0x810, 0x810], /* SAMARITAN LETTER FI */
-  [0x811, 0x811], /* SAMARITAN LETTER TSAADIY */
-  [0x812, 0x812], /* SAMARITAN LETTER QUF */
-  [0x813, 0x813], /* SAMARITAN LETTER RISH */
-  [0x814, 0x814], /* SAMARITAN LETTER SHAN */
-  [0x815, 0x815], /* SAMARITAN LETTER TAAF */
-  [0x816, 0x816], /* SAMARITAN MARK IN */
-  [0x817, 0x817], /* SAMARITAN MARK IN-ALAF */
-  [0x818, 0x818], /* SAMARITAN MARK OCCLUSION */
-  [0x819, 0x819], /* SAMARITAN MARK DAGESH */
-  [0x81a, 0x81a], /* SAMARITAN MODIFIER LETTER EPENTHETIC YUT */
-  [0x81b, 0x81b], /* SAMARITAN MARK EPENTHETIC YUT */
-  [0x81c, 0x81c], /* SAMARITAN VOWEL SIGN LONG E */
-  [0x81d, 0x81d], /* SAMARITAN VOWEL SIGN E */
-  [0x81e, 0x81e], /* SAMARITAN VOWEL SIGN OVERLONG AA */
-  [0x81f, 0x81f], /* SAMARITAN VOWEL SIGN LONG AA */
-  [0x820, 0x820], /* SAMARITAN VOWEL SIGN AA */
-  [0x821, 0x821], /* SAMARITAN VOWEL SIGN OVERLONG A */
-  [0x822, 0x822], /* SAMARITAN VOWEL SIGN LONG A */
-  [0x823, 0x823], /* SAMARITAN VOWEL SIGN A */
-  [0x824, 0x824], /* SAMARITAN MODIFIER LETTER SHORT A */
-  [0x825, 0x825], /* SAMARITAN VOWEL SIGN SHORT A */
-  [0x826, 0x826], /* SAMARITAN VOWEL SIGN LONG U */
-  [0x827, 0x827], /* SAMARITAN VOWEL SIGN U */
-  [0x828, 0x828], /* SAMARITAN MODIFIER LETTER I */
-  [0x829, 0x829], /* SAMARITAN VOWEL SIGN LONG I */
-  [0x82a, 0x82a], /* SAMARITAN VOWEL SIGN I */
-  [0x82b, 0x82b], /* SAMARITAN VOWEL SIGN O */
-  [0x82c, 0x82c], /* SAMARITAN VOWEL SIGN SUKUN */
-  [0x82d, 0x82d], /* SAMARITAN MARK NEQUDAA */
-  [0x82e, 0x82e],
-  [0x82f, 0x82f],
-  [0x830, 0x830], /* SAMARITAN PUNCTUATION NEQUDAA */
-  [0x831, 0x831], /* SAMARITAN PUNCTUATION AFSAAQ */
-  [0x832, 0x832], /* SAMARITAN PUNCTUATION ANGED */
-  [0x833, 0x833], /* SAMARITAN PUNCTUATION BAU */
-  [0x834, 0x834], /* SAMARITAN PUNCTUATION ATMAAU */
-  [0x835, 0x835], /* SAMARITAN PUNCTUATION SHIYYAALAA */
-  [0x836, 0x836], /* SAMARITAN ABBREVIATION MARK */
-  [0x837, 0x837], /* SAMARITAN PUNCTUATION MELODIC QITSA */
-  [0x838, 0x838], /* SAMARITAN PUNCTUATION ZIQAA */
-  [0x839, 0x839], /* SAMARITAN PUNCTUATION QITSA */
-  [0x83a, 0x83a], /* SAMARITAN PUNCTUATION ZAEF */
-  [0x83b, 0x83b], /* SAMARITAN PUNCTUATION TURU */
-  [0x83c, 0x83c], /* SAMARITAN PUNCTUATION ARKAANU */
-  [0x83d, 0x83d], /* SAMARITAN PUNCTUATION SOF MASHFAAT */
-  [0x83e, 0x83e], /* SAMARITAN PUNCTUATION ANNAAU */
-  [0x83f, 0x83f],
-  [0x840, 0x840], /* MANDAIC LETTER HALQA */
-  [0x841, 0x841], /* MANDAIC LETTER AB */
-  [0x842, 0x842], /* MANDAIC LETTER AG */
-  [0x843, 0x843], /* MANDAIC LETTER AD */
-  [0x844, 0x844], /* MANDAIC LETTER AH */
-  [0x845, 0x845], /* MANDAIC LETTER USHENNA */
-  [0x846, 0x846], /* MANDAIC LETTER AZ */
-  [0x847, 0x847], /* MANDAIC LETTER IT */
-  [0x848, 0x848], /* MANDAIC LETTER ATT */
-  [0x849, 0x849], /* MANDAIC LETTER AKSA */
-  [0x84a, 0x84a], /* MANDAIC LETTER AK */
-  [0x84b, 0x84b], /* MANDAIC LETTER AL */
-  [0x84c, 0x84c], /* MANDAIC LETTER AM */
-  [0x84d, 0x84d], /* MANDAIC LETTER AN */
-  [0x84e, 0x84e], /* MANDAIC LETTER AS */
-  [0x84f, 0x84f], /* MANDAIC LETTER IN */
-  [0x850, 0x850], /* MANDAIC LETTER AP */
-  [0x851, 0x851], /* MANDAIC LETTER ASZ */
-  [0x852, 0x852], /* MANDAIC LETTER AQ */
-  [0x853, 0x853], /* MANDAIC LETTER AR */
-  [0x854, 0x854], /* MANDAIC LETTER ASH */
-  [0x855, 0x855], /* MANDAIC LETTER AT */
-  [0x856, 0x856], /* MANDAIC LETTER DUSHENNA */
-  [0x857, 0x857], /* MANDAIC LETTER KAD */
-  [0x858, 0x858], /* MANDAIC LETTER AIN */
-  [0x859, 0x859], /* MANDAIC AFFRICATION MARK */
-  [0x85a, 0x85a], /* MANDAIC VOCALIZATION MARK */
-  [0x85b, 0x85b], /* MANDAIC GEMINATION MARK */
-  [0x85c, 0x85c],
-  [0x85d, 0x85d],
-  [0x85e, 0x85e], /* MANDAIC PUNCTUATION */
-  [0x85f, 0x85f],
-  [0x860, 0x860],
-  [0x861, 0x861],
-  [0x862, 0x862],
-  [0x863, 0x863],
-  [0x864, 0x864],
-  [0x865, 0x865],
-  [0x866, 0x866],
-  [0x867, 0x867],
-  [0x868, 0x868],
-  [0x869, 0x869],
-  [0x86a, 0x86a],
-  [0x86b, 0x86b],
-  [0x86c, 0x86c],
-  [0x86d, 0x86d],
-  [0x86e, 0x86e],
-  [0x86f, 0x86f],
-  [0x870, 0x870],
-  [0x871, 0x871],
-  [0x872, 0x872],
-  [0x873, 0x873],
-  [0x874, 0x874],
-  [0x875, 0x875],
-  [0x876, 0x876],
-  [0x877, 0x877],
-  [0x878, 0x878],
-  [0x879, 0x879],
-  [0x87a, 0x87a],
-  [0x87b, 0x87b],
-  [0x87c, 0x87c],
-  [0x87d, 0x87d],
-  [0x87e, 0x87e],
-  [0x87f, 0x87f],
-  [0x880, 0x880],
-  [0x881, 0x881],
-  [0x882, 0x882],
-  [0x883, 0x883],
-  [0x884, 0x884],
-  [0x885, 0x885],
-  [0x886, 0x886],
-  [0x887, 0x887],
-  [0x888, 0x888],
-  [0x889, 0x889],
-  [0x88a, 0x88a],
-  [0x88b, 0x88b],
-  [0x88c, 0x88c],
-  [0x88d, 0x88d],
-  [0x88e, 0x88e],
-  [0x88f, 0x88f],
-  [0x890, 0x890],
-  [0x891, 0x891],
-  [0x892, 0x892],
-  [0x893, 0x893],
-  [0x894, 0x894],
-  [0x895, 0x895],
-  [0x896, 0x896],
-  [0x897, 0x897],
-  [0x898, 0x898],
-  [0x899, 0x899],
-  [0x89a, 0x89a],
-  [0x89b, 0x89b],
-  [0x89c, 0x89c],
-  [0x89d, 0x89d],
-  [0x89e, 0x89e],
-  [0x89f, 0x89f],
-  [0x8a0, 0x8a0], /* ARABIC LETTER BEH WITH SMALL V BELOW */
-  [0x8a1, 0x8a1], /* ARABIC LETTER BEH WITH HAMZA ABOVE */
-  [0x8a2, 0x8a2], /* ARABIC LETTER JEEM WITH TWO DOTS ABOVE */
-  [0x8a3, 0x8a3], /* ARABIC LETTER TAH WITH TWO DOTS ABOVE */
-  [0x8a4, 0x8a4], /* ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE */
-  [0x8a5, 0x8a5], /* ARABIC LETTER QAF WITH DOT BELOW */
-  [0x8a6, 0x8a6], /* ARABIC LETTER LAM WITH DOUBLE BAR */
-  [0x8a7, 0x8a7], /* ARABIC LETTER MEEM WITH THREE DOTS ABOVE */
-  [0x8a8, 0x8a8], /* ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE */
-  [0x8a9, 0x8a9], /* ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE */
-  [0x8aa, 0x8aa], /* ARABIC LETTER REH WITH LOOP */
-  [0x8ab, 0x8ab], /* ARABIC LETTER WAW WITH DOT WITHIN */
-  [0x8ac, 0x8ac], /* ARABIC LETTER ROHINGYA YEH */
-  [0x8ad, 0x8ad], /* ARABIC LETTER LOW ALEF */
-  [0x8ae, 0x8ae], /* ARABIC LETTER DAL WITH THREE DOTS BELOW */
-  [0x8af, 0x8af], /* ARABIC LETTER SAD WITH THREE DOTS BELOW */
-  [0x8b0, 0x8b0], /* ARABIC LETTER GAF WITH INVERTED STROKE */
-  [0x8b1, 0x8b1], /* ARABIC LETTER STRAIGHT WAW */
-  [0x8b2, 0x8b2], /* ARABIC LETTER ZAIN WITH INVERTED V ABOVE */
-  [0x8b3, 0x8b3], /* ARABIC LETTER AIN WITH THREE DOTS BELOW */
-  [0x8b4, 0x8b4], /* ARABIC LETTER KAF WITH DOT BELOW */
-  [0x8b5, 0x8b5],
-  [0x8b6, 0x8b6], /* ARABIC LETTER BEH WITH SMALL MEEM ABOVE */
-  [0x8b7, 0x8b7], /* ARABIC LETTER PEH WITH SMALL MEEM ABOVE */
-  [0x8b8, 0x8b8], /* ARABIC LETTER TEH WITH SMALL TEH ABOVE */
-  [0x8b9, 0x8b9], /* ARABIC LETTER REH WITH SMALL NOON ABOVE */
-  [0x8ba, 0x8ba], /* ARABIC LETTER YEH WITH TWO DOTS BELOW AND SMALL NOON ABOVE */
-  [0x8bb, 0x8bb], /* ARABIC LETTER AFRICAN FEH */
-  [0x8bc, 0x8bc], /* ARABIC LETTER AFRICAN QAF */
-  [0x8bd, 0x8bd], /* ARABIC LETTER AFRICAN NOON */
-  [0x8be, 0x8be],
-  [0x8bf, 0x8bf],
-  [0x8c0, 0x8c0],
-  [0x8c1, 0x8c1],
-  [0x8c2, 0x8c2],
-  [0x8c3, 0x8c3],
-  [0x8c4, 0x8c4],
-  [0x8c5, 0x8c5],
-  [0x8c6, 0x8c6],
-  [0x8c7, 0x8c7],
-  [0x8c8, 0x8c8],
-  [0x8c9, 0x8c9],
-  [0x8ca, 0x8ca],
-  [0x8cb, 0x8cb],
-  [0x8cc, 0x8cc],
-  [0x8cd, 0x8cd],
-  [0x8ce, 0x8ce],
-  [0x8cf, 0x8cf],
-  [0x8d0, 0x8d0],
-  [0x8d1, 0x8d1],
-  [0x8d2, 0x8d2],
-  [0x8d3, 0x8d3],
-  [0x8d4, 0x8d4], /* ARABIC SMALL HIGH WORD AR-RUB */
-  [0x8d5, 0x8d5], /* ARABIC SMALL HIGH SAD */
-  [0x8d6, 0x8d6], /* ARABIC SMALL HIGH AIN */
-  [0x8d7, 0x8d7], /* ARABIC SMALL HIGH QAF */
-  [0x8d8, 0x8d8], /* ARABIC SMALL HIGH NOON WITH KASRA */
-  [0x8d9, 0x8d9], /* ARABIC SMALL LOW NOON WITH KASRA */
-  [0x8da, 0x8da], /* ARABIC SMALL HIGH WORD ATH-THALATHA */
-  [0x8db, 0x8db], /* ARABIC SMALL HIGH WORD AS-SAJDA */
-  [0x8dc, 0x8dc], /* ARABIC SMALL HIGH WORD AN-NISF */
-  [0x8dd, 0x8dd], /* ARABIC SMALL HIGH WORD SAKTA */
-  [0x8de, 0x8de], /* ARABIC SMALL HIGH WORD QIF */
-  [0x8df, 0x8df], /* ARABIC SMALL HIGH WORD WAQFA */
-  [0x8e0, 0x8e0], /* ARABIC SMALL HIGH FOOTNOTE MARKER */
-  [0x8e1, 0x8e1], /* ARABIC SMALL HIGH SIGN SAFHA */
-  [0x8e2, 0x8e2], /* ARABIC DISPUTED END OF AYAH */
-  [0x8e3, 0x8e3], /* ARABIC TURNED DAMMA BELOW */
-  [0x8e4, 0x8e4], /* ARABIC CURLY FATHA */
-  [0x8e5, 0x8e5], /* ARABIC CURLY DAMMA */
-  [0x8e6, 0x8e6], /* ARABIC CURLY KASRA */
-  [0x8e7, 0x8e7], /* ARABIC CURLY FATHATAN */
-  [0x8e8, 0x8e8], /* ARABIC CURLY DAMMATAN */
-  [0x8e9, 0x8e9], /* ARABIC CURLY KASRATAN */
-  [0x8ea, 0x8ea], /* ARABIC TONE ONE DOT ABOVE */
-  [0x8eb, 0x8eb], /* ARABIC TONE TWO DOTS ABOVE */
-  [0x8ec, 0x8ec], /* ARABIC TONE LOOP ABOVE */
-  [0x8ed, 0x8ed], /* ARABIC TONE ONE DOT BELOW */
-  [0x8ee, 0x8ee], /* ARABIC TONE TWO DOTS BELOW */
-  [0x8ef, 0x8ef], /* ARABIC TONE LOOP BELOW */
-  [0x8f0, 0x8f0], /* ARABIC OPEN FATHATAN */
-  [0x8f1, 0x8f1], /* ARABIC OPEN DAMMATAN */
-  [0x8f2, 0x8f2], /* ARABIC OPEN KASRATAN */
-  [0x8f3, 0x8f3], /* ARABIC SMALL HIGH WAW */
-  [0x8f4, 0x8f4], /* ARABIC FATHA WITH RING */
-  [0x8f5, 0x8f5], /* ARABIC FATHA WITH DOT ABOVE */
-  [0x8f6, 0x8f6], /* ARABIC KASRA WITH DOT BELOW */
-  [0x8f7, 0x8f7], /* ARABIC LEFT ARROWHEAD ABOVE */
-  [0x8f8, 0x8f8], /* ARABIC RIGHT ARROWHEAD ABOVE */
-  [0x8f9, 0x8f9], /* ARABIC LEFT ARROWHEAD BELOW */
-  [0x8fa, 0x8fa], /* ARABIC RIGHT ARROWHEAD BELOW */
-  [0x8fb, 0x8fb], /* ARABIC DOUBLE RIGHT ARROWHEAD ABOVE */
-  [0x8fc, 0x8fc], /* ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT */
-  [0x8fd, 0x8fd], /* ARABIC RIGHT ARROWHEAD ABOVE WITH DOT */
-  [0x8fe, 0x8fe], /* ARABIC DAMMA WITH DOT */
-  [0x8ff, 0x8ff], /* ARABIC MARK SIDEWAYS NOON GHUNNA */
-  [0x900, 0x900], /* DEVANAGARI SIGN INVERTED CANDRABINDU */
-  [0x901, 0x901], /* DEVANAGARI SIGN CANDRABINDU */
-  [0x902, 0x902], /* DEVANAGARI SIGN ANUSVARA */
-  [0x903, 0x903], /* DEVANAGARI SIGN VISARGA */
-  [0x904, 0x904], /* DEVANAGARI LETTER SHORT A */
-  [0x905, 0x905], /* DEVANAGARI LETTER A */
-  [0x906, 0x906], /* DEVANAGARI LETTER AA */
-  [0x907, 0x907], /* DEVANAGARI LETTER I */
-  [0x908, 0x908], /* DEVANAGARI LETTER II */
-  [0x909, 0x909], /* DEVANAGARI LETTER U */
-  [0x90a, 0x90a], /* DEVANAGARI LETTER UU */
-  [0x90b, 0x90b], /* DEVANAGARI LETTER VOCALIC R */
-  [0x90c, 0x90c], /* DEVANAGARI LETTER VOCALIC L */
-  [0x90d, 0x90d], /* DEVANAGARI LETTER CANDRA E */
-  [0x90e, 0x90e], /* DEVANAGARI LETTER SHORT E */
-  [0x90f, 0x90f], /* DEVANAGARI LETTER E */
-  [0x910, 0x910], /* DEVANAGARI LETTER AI */
-  [0x911, 0x911], /* DEVANAGARI LETTER CANDRA O */
-  [0x912, 0x912], /* DEVANAGARI LETTER SHORT O */
-  [0x913, 0x913], /* DEVANAGARI LETTER O */
-  [0x914, 0x914], /* DEVANAGARI LETTER AU */
-  [0x915, 0x915], /* DEVANAGARI LETTER KA */
-  [0x916, 0x916], /* DEVANAGARI LETTER KHA */
-  [0x917, 0x917], /* DEVANAGARI LETTER GA */
-  [0x918, 0x918], /* DEVANAGARI LETTER GHA */
-  [0x919, 0x919], /* DEVANAGARI LETTER NGA */
-  [0x91a, 0x91a], /* DEVANAGARI LETTER CA */
-  [0x91b, 0x91b], /* DEVANAGARI LETTER CHA */
-  [0x91c, 0x91c], /* DEVANAGARI LETTER JA */
-  [0x91d, 0x91d], /* DEVANAGARI LETTER JHA */
-  [0x91e, 0x91e], /* DEVANAGARI LETTER NYA */
-  [0x91f, 0x91f], /* DEVANAGARI LETTER TTA */
-  [0x920, 0x920], /* DEVANAGARI LETTER TTHA */
-  [0x921, 0x921], /* DEVANAGARI LETTER DDA */
-  [0x922, 0x922], /* DEVANAGARI LETTER DDHA */
-  [0x923, 0x923], /* DEVANAGARI LETTER NNA */
-  [0x924, 0x924], /* DEVANAGARI LETTER TA */
-  [0x925, 0x925], /* DEVANAGARI LETTER THA */
-  [0x926, 0x926], /* DEVANAGARI LETTER DA */
-  [0x927, 0x927], /* DEVANAGARI LETTER DHA */
-  [0x928, 0x928], /* DEVANAGARI LETTER NA */
-  [0x929, 0x929], /* DEVANAGARI LETTER NNNA */
-  [0x92a, 0x92a], /* DEVANAGARI LETTER PA */
-  [0x92b, 0x92b], /* DEVANAGARI LETTER PHA */
-  [0x92c, 0x92c], /* DEVANAGARI LETTER BA */
-  [0x92d, 0x92d], /* DEVANAGARI LETTER BHA */
-  [0x92e, 0x92e], /* DEVANAGARI LETTER MA */
-  [0x92f, 0x92f], /* DEVANAGARI LETTER YA */
-  [0x930, 0x930], /* DEVANAGARI LETTER RA */
-  [0x931, 0x931], /* DEVANAGARI LETTER RRA */
-  [0x932, 0x932], /* DEVANAGARI LETTER LA */
-  [0x933, 0x933], /* DEVANAGARI LETTER LLA */
-  [0x934, 0x934], /* DEVANAGARI LETTER LLLA */
-  [0x935, 0x935], /* DEVANAGARI LETTER VA */
-  [0x936, 0x936], /* DEVANAGARI LETTER SHA */
-  [0x937, 0x937], /* DEVANAGARI LETTER SSA */
-  [0x938, 0x938], /* DEVANAGARI LETTER SA */
-  [0x939, 0x939], /* DEVANAGARI LETTER HA */
-  [0x93a, 0x93a], /* DEVANAGARI VOWEL SIGN OE */
-  [0x93b, 0x93b], /* DEVANAGARI VOWEL SIGN OOE */
-  [0x93c, 0x93c], /* DEVANAGARI SIGN NUKTA */
-  [0x93d, 0x93d], /* DEVANAGARI SIGN AVAGRAHA */
-  [0x93e, 0x93e], /* DEVANAGARI VOWEL SIGN AA */
-  [0x93f, 0x93f], /* DEVANAGARI VOWEL SIGN I */
-  [0x940, 0x940], /* DEVANAGARI VOWEL SIGN II */
-  [0x941, 0x941], /* DEVANAGARI VOWEL SIGN U */
-  [0x942, 0x942], /* DEVANAGARI VOWEL SIGN UU */
-  [0x943, 0x943], /* DEVANAGARI VOWEL SIGN VOCALIC R */
-  [0x944, 0x944], /* DEVANAGARI VOWEL SIGN VOCALIC RR */
-  [0x945, 0x945], /* DEVANAGARI VOWEL SIGN CANDRA E */
-  [0x946, 0x946], /* DEVANAGARI VOWEL SIGN SHORT E */
-  [0x947, 0x947], /* DEVANAGARI VOWEL SIGN E */
-  [0x948, 0x948], /* DEVANAGARI VOWEL SIGN AI */
-  [0x949, 0x949], /* DEVANAGARI VOWEL SIGN CANDRA O */
-  [0x94a, 0x94a], /* DEVANAGARI VOWEL SIGN SHORT O */
-  [0x94b, 0x94b], /* DEVANAGARI VOWEL SIGN O */
-  [0x94c, 0x94c], /* DEVANAGARI VOWEL SIGN AU */
-  [0x94d, 0x94d], /* DEVANAGARI SIGN VIRAMA */
-  [0x94e, 0x94e], /* DEVANAGARI VOWEL SIGN PRISHTHAMATRA E */
-  [0x94f, 0x94f], /* DEVANAGARI VOWEL SIGN AW */
-  [0x950, 0x950], /* DEVANAGARI OM */
-  [0x951, 0x951], /* DEVANAGARI STRESS SIGN UDATTA */
-  [0x952, 0x952], /* DEVANAGARI STRESS SIGN ANUDATTA */
-  [0x953, 0x953], /* DEVANAGARI GRAVE ACCENT */
-  [0x954, 0x954], /* DEVANAGARI ACUTE ACCENT */
-  [0x955, 0x955], /* DEVANAGARI VOWEL SIGN CANDRA LONG E */
-  [0x956, 0x956], /* DEVANAGARI VOWEL SIGN UE */
-  [0x957, 0x957], /* DEVANAGARI VOWEL SIGN UUE */
-  [0x958, 0x958], /* DEVANAGARI LETTER QA */
-  [0x959, 0x959], /* DEVANAGARI LETTER KHHA */
-  [0x95a, 0x95a], /* DEVANAGARI LETTER GHHA */
-  [0x95b, 0x95b], /* DEVANAGARI LETTER ZA */
-  [0x95c, 0x95c], /* DEVANAGARI LETTER DDDHA */
-  [0x95d, 0x95d], /* DEVANAGARI LETTER RHA */
-  [0x95e, 0x95e], /* DEVANAGARI LETTER FA */
-  [0x95f, 0x95f], /* DEVANAGARI LETTER YYA */
-  [0x960, 0x960], /* DEVANAGARI LETTER VOCALIC RR */
-  [0x961, 0x961], /* DEVANAGARI LETTER VOCALIC LL */
-  [0x962, 0x962], /* DEVANAGARI VOWEL SIGN VOCALIC L */
-  [0x963, 0x963], /* DEVANAGARI VOWEL SIGN VOCALIC LL */
-  [0x964, 0x964], /* DEVANAGARI DANDA */
-  [0x965, 0x965], /* DEVANAGARI DOUBLE DANDA */
-  [0x966, 0x966], /* DEVANAGARI DIGIT ZERO */
-  [0x967, 0x967], /* DEVANAGARI DIGIT ONE */
-  [0x968, 0x968], /* DEVANAGARI DIGIT TWO */
-  [0x969, 0x969], /* DEVANAGARI DIGIT THREE */
-  [0x96a, 0x96a], /* DEVANAGARI DIGIT FOUR */
-  [0x96b, 0x96b], /* DEVANAGARI DIGIT FIVE */
-  [0x96c, 0x96c], /* DEVANAGARI DIGIT SIX */
-  [0x96d, 0x96d], /* DEVANAGARI DIGIT SEVEN */
-  [0x96e, 0x96e], /* DEVANAGARI DIGIT EIGHT */
-  [0x96f, 0x96f], /* DEVANAGARI DIGIT NINE */
-  [0x970, 0x970], /* DEVANAGARI ABBREVIATION SIGN */
-  [0x971, 0x971], /* DEVANAGARI SIGN HIGH SPACING DOT */
-  [0x972, 0x972], /* DEVANAGARI LETTER CANDRA A */
-  [0x973, 0x973], /* DEVANAGARI LETTER OE */
-  [0x974, 0x974], /* DEVANAGARI LETTER OOE */
-  [0x975, 0x975], /* DEVANAGARI LETTER AW */
-  [0x976, 0x976], /* DEVANAGARI LETTER UE */
-  [0x977, 0x977], /* DEVANAGARI LETTER UUE */
-  [0x978, 0x978], /* DEVANAGARI LETTER MARWARI DDA */
-  [0x979, 0x979], /* DEVANAGARI LETTER ZHA */
-  [0x97a, 0x97a], /* DEVANAGARI LETTER HEAVY YA */
-  [0x97b, 0x97b], /* DEVANAGARI LETTER GGA */
-  [0x97c, 0x97c], /* DEVANAGARI LETTER JJA */
-  [0x97d, 0x97d], /* DEVANAGARI LETTER GLOTTAL STOP */
-  [0x97e, 0x97e], /* DEVANAGARI LETTER DDDA */
-  [0x97f, 0x97f], /* DEVANAGARI LETTER BBA */
-  [0x980, 0x980], /* BENGALI ANJI */
-  [0x981, 0x981], /* BENGALI SIGN CANDRABINDU */
-  [0x982, 0x982], /* BENGALI SIGN ANUSVARA */
-  [0x983, 0x983], /* BENGALI SIGN VISARGA */
-  [0x984, 0x984],
-  [0x985, 0x985], /* BENGALI LETTER A */
-  [0x986, 0x986], /* BENGALI LETTER AA */
-  [0x987, 0x987], /* BENGALI LETTER I */
-  [0x988, 0x988], /* BENGALI LETTER II */
-  [0x989, 0x989], /* BENGALI LETTER U */
-  [0x98a, 0x98a], /* BENGALI LETTER UU */
-  [0x98b, 0x98b], /* BENGALI LETTER VOCALIC R */
-  [0x98c, 0x98c], /* BENGALI LETTER VOCALIC L */
-  [0x98d, 0x98d],
-  [0x98e, 0x98e],
-  [0x98f, 0x98f], /* BENGALI LETTER E */
-  [0x990, 0x990], /* BENGALI LETTER AI */
-  [0x991, 0x991],
-  [0x992, 0x992],
-  [0x993, 0x993], /* BENGALI LETTER O */
-  [0x994, 0x994], /* BENGALI LETTER AU */
-  [0x995, 0x995], /* BENGALI LETTER KA */
-  [0x996, 0x996], /* BENGALI LETTER KHA */
-  [0x997, 0x997], /* BENGALI LETTER GA */
-  [0x998, 0x998], /* BENGALI LETTER GHA */
-  [0x999, 0x999], /* BENGALI LETTER NGA */
-  [0x99a, 0x99a], /* BENGALI LETTER CA */
-  [0x99b, 0x99b], /* BENGALI LETTER CHA */
-  [0x99c, 0x99c], /* BENGALI LETTER JA */
-  [0x99d, 0x99d], /* BENGALI LETTER JHA */
-  [0x99e, 0x99e], /* BENGALI LETTER NYA */
-  [0x99f, 0x99f], /* BENGALI LETTER TTA */
-  [0x9a0, 0x9a0], /* BENGALI LETTER TTHA */
-  [0x9a1, 0x9a1], /* BENGALI LETTER DDA */
-  [0x9a2, 0x9a2], /* BENGALI LETTER DDHA */
-  [0x9a3, 0x9a3], /* BENGALI LETTER NNA */
-  [0x9a4, 0x9a4], /* BENGALI LETTER TA */
-  [0x9a5, 0x9a5], /* BENGALI LETTER THA */
-  [0x9a6, 0x9a6], /* BENGALI LETTER DA */
-  [0x9a7, 0x9a7], /* BENGALI LETTER DHA */
-  [0x9a8, 0x9a8], /* BENGALI LETTER NA */
-  [0x9a9, 0x9a9],
-  [0x9aa, 0x9aa], /* BENGALI LETTER PA */
-  [0x9ab, 0x9ab], /* BENGALI LETTER PHA */
-  [0x9ac, 0x9ac], /* BENGALI LETTER BA */
-  [0x9ad, 0x9ad], /* BENGALI LETTER BHA */
-  [0x9ae, 0x9ae], /* BENGALI LETTER MA */
-  [0x9af, 0x9af], /* BENGALI LETTER YA */
-  [0x9b0, 0x9b0], /* BENGALI LETTER RA */
-  [0x9b1, 0x9b1],
-  [0x9b2, 0x9b2], /* BENGALI LETTER LA */
-  [0x9b3, 0x9b3],
-  [0x9b4, 0x9b4],
-  [0x9b5, 0x9b5],
-  [0x9b6, 0x9b6], /* BENGALI LETTER SHA */
-  [0x9b7, 0x9b7], /* BENGALI LETTER SSA */
-  [0x9b8, 0x9b8], /* BENGALI LETTER SA */
-  [0x9b9, 0x9b9], /* BENGALI LETTER HA */
-  [0x9ba, 0x9ba],
-  [0x9bb, 0x9bb],
-  [0x9bc, 0x9bc], /* BENGALI SIGN NUKTA */
-  [0x9bd, 0x9bd], /* BENGALI SIGN AVAGRAHA */
-  [0x9be, 0x9be], /* BENGALI VOWEL SIGN AA */
-  [0x9bf, 0x9bf], /* BENGALI VOWEL SIGN I */
-  [0x9c0, 0x9c0], /* BENGALI VOWEL SIGN II */
-  [0x9c1, 0x9c1], /* BENGALI VOWEL SIGN U */
-  [0x9c2, 0x9c2], /* BENGALI VOWEL SIGN UU */
-  [0x9c3, 0x9c3], /* BENGALI VOWEL SIGN VOCALIC R */
-  [0x9c4, 0x9c4], /* BENGALI VOWEL SIGN VOCALIC RR */
-  [0x9c5, 0x9c5],
-  [0x9c6, 0x9c6],
-  [0x9c7, 0x9c7], /* BENGALI VOWEL SIGN E */
-  [0x9c8, 0x9c8], /* BENGALI VOWEL SIGN AI */
-  [0x9c9, 0x9c9],
-  [0x9ca, 0x9ca],
-  [0x9cb, 0x9cb], /* BENGALI VOWEL SIGN O */
-  [0x9cc, 0x9cc], /* BENGALI VOWEL SIGN AU */
-  [0x9cd, 0x9cd], /* BENGALI SIGN VIRAMA */
-  [0x9ce, 0x9ce], /* BENGALI LETTER KHANDA TA */
-  [0x9cf, 0x9cf],
-  [0x9d0, 0x9d0],
-  [0x9d1, 0x9d1],
-  [0x9d2, 0x9d2],
-  [0x9d3, 0x9d3],
-  [0x9d4, 0x9d4],
-  [0x9d5, 0x9d5],
-  [0x9d6, 0x9d6],
-  [0x9d7, 0x9d7], /* BENGALI AU LENGTH MARK */
-  [0x9d8, 0x9d8],
-  [0x9d9, 0x9d9],
-  [0x9da, 0x9da],
-  [0x9db, 0x9db],
-  [0x9dc, 0x9dc], /* BENGALI LETTER RRA */
-  [0x9dd, 0x9dd], /* BENGALI LETTER RHA */
-  [0x9de, 0x9de],
-  [0x9df, 0x9df], /* BENGALI LETTER YYA */
-  [0x9e0, 0x9e0], /* BENGALI LETTER VOCALIC RR */
-  [0x9e1, 0x9e1], /* BENGALI LETTER VOCALIC LL */
-  [0x9e2, 0x9e2], /* BENGALI VOWEL SIGN VOCALIC L */
-  [0x9e3, 0x9e3], /* BENGALI VOWEL SIGN VOCALIC LL */
-  [0x9e4, 0x9e4],
-  [0x9e5, 0x9e5],
-  [0x9e6, 0x9e6], /* BENGALI DIGIT ZERO */
-  [0x9e7, 0x9e7], /* BENGALI DIGIT ONE */
-  [0x9e8, 0x9e8], /* BENGALI DIGIT TWO */
-  [0x9e9, 0x9e9], /* BENGALI DIGIT THREE */
-  [0x9ea, 0x9ea], /* BENGALI DIGIT FOUR */
-  [0x9eb, 0x9eb], /* BENGALI DIGIT FIVE */
-  [0x9ec, 0x9ec], /* BENGALI DIGIT SIX */
-  [0x9ed, 0x9ed], /* BENGALI DIGIT SEVEN */
-  [0x9ee, 0x9ee], /* BENGALI DIGIT EIGHT */
-  [0x9ef, 0x9ef], /* BENGALI DIGIT NINE */
-  [0x9f0, 0x9f0], /* BENGALI LETTER RA WITH MIDDLE DIAGONAL */
-  [0x9f1, 0x9f1], /* BENGALI LETTER RA WITH LOWER DIAGONAL (BENGALI LETTER VA WITH LOWER DIAGONAL) */
-  [0x9f2, 0x9f2], /* BENGALI RUPEE MARK */
-  [0x9f3, 0x9f3], /* BENGALI RUPEE SIGN */
-  [0x9f4, 0x9f4], /* BENGALI CURRENCY NUMERATOR ONE */
-  [0x9f5, 0x9f5], /* BENGALI CURRENCY NUMERATOR TWO */
-  [0x9f6, 0x9f6], /* BENGALI CURRENCY NUMERATOR THREE */
-  [0x9f7, 0x9f7], /* BENGALI CURRENCY NUMERATOR FOUR */
-  [0x9f8, 0x9f8], /* BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR */
-  [0x9f9, 0x9f9], /* BENGALI CURRENCY DENOMINATOR SIXTEEN */
-  [0x9fa, 0x9fa], /* BENGALI ISSHAR */
-  [0x9fb, 0x9fb], /* BENGALI GANDA MARK */
-  [0x9fc, 0x9fc],
-  [0x9fd, 0x9fd],
-  [0x9fe, 0x9fe],
-  [0x9ff, 0x9ff],
-  [0xa00, 0xa00],
-  [0xa01, 0xa01], /* GURMUKHI SIGN ADAK BINDI */
-  [0xa02, 0xa02], /* GURMUKHI SIGN BINDI */
-  [0xa03, 0xa03], /* GURMUKHI SIGN VISARGA */
-  [0xa04, 0xa04],
-  [0xa05, 0xa05], /* GURMUKHI LETTER A */
-  [0xa06, 0xa06], /* GURMUKHI LETTER AA */
-  [0xa07, 0xa07], /* GURMUKHI LETTER I */
-  [0xa08, 0xa08], /* GURMUKHI LETTER II */
-  [0xa09, 0xa09], /* GURMUKHI LETTER U */
-  [0xa0a, 0xa0a], /* GURMUKHI LETTER UU */
-  [0xa0b, 0xa0b],
-  [0xa0c, 0xa0c],
-  [0xa0d, 0xa0d],
-  [0xa0e, 0xa0e],
-  [0xa0f, 0xa0f], /* GURMUKHI LETTER EE */
-  [0xa10, 0xa10], /* GURMUKHI LETTER AI */
-  [0xa11, 0xa11],
-  [0xa12, 0xa12],
-  [0xa13, 0xa13], /* GURMUKHI LETTER OO */
-  [0xa14, 0xa14], /* GURMUKHI LETTER AU */
-  [0xa15, 0xa15], /* GURMUKHI LETTER KA */
-  [0xa16, 0xa16], /* GURMUKHI LETTER KHA */
-  [0xa17, 0xa17], /* GURMUKHI LETTER GA */
-  [0xa18, 0xa18], /* GURMUKHI LETTER GHA */
-  [0xa19, 0xa19], /* GURMUKHI LETTER NGA */
-  [0xa1a, 0xa1a], /* GURMUKHI LETTER CA */
-  [0xa1b, 0xa1b], /* GURMUKHI LETTER CHA */
-  [0xa1c, 0xa1c], /* GURMUKHI LETTER JA */
-  [0xa1d, 0xa1d], /* GURMUKHI LETTER JHA */
-  [0xa1e, 0xa1e], /* GURMUKHI LETTER NYA */
-  [0xa1f, 0xa1f], /* GURMUKHI LETTER TTA */
-  [0xa20, 0xa20], /* GURMUKHI LETTER TTHA */
-  [0xa21, 0xa21], /* GURMUKHI LETTER DDA */
-  [0xa22, 0xa22], /* GURMUKHI LETTER DDHA */
-  [0xa23, 0xa23], /* GURMUKHI LETTER NNA */
-  [0xa24, 0xa24], /* GURMUKHI LETTER TA */
-  [0xa25, 0xa25], /* GURMUKHI LETTER THA */
-  [0xa26, 0xa26], /* GURMUKHI LETTER DA */
-  [0xa27, 0xa27], /* GURMUKHI LETTER DHA */
-  [0xa28, 0xa28], /* GURMUKHI LETTER NA */
-  [0xa29, 0xa29],
-  [0xa2a, 0xa2a], /* GURMUKHI LETTER PA */
-  [0xa2b, 0xa2b], /* GURMUKHI LETTER PHA */
-  [0xa2c, 0xa2c], /* GURMUKHI LETTER BA */
-  [0xa2d, 0xa2d], /* GURMUKHI LETTER BHA */
-  [0xa2e, 0xa2e], /* GURMUKHI LETTER MA */
-  [0xa2f, 0xa2f], /* GURMUKHI LETTER YA */
-  [0xa30, 0xa30], /* GURMUKHI LETTER RA */
-  [0xa31, 0xa31],
-  [0xa32, 0xa32], /* GURMUKHI LETTER LA */
-  [0xa33, 0xa33], /* GURMUKHI LETTER LLA */
-  [0xa34, 0xa34],
-  [0xa35, 0xa35], /* GURMUKHI LETTER VA */
-  [0xa36, 0xa36], /* GURMUKHI LETTER SHA */
-  [0xa37, 0xa37],
-  [0xa38, 0xa38], /* GURMUKHI LETTER SA */
-  [0xa39, 0xa39], /* GURMUKHI LETTER HA */
-  [0xa3a, 0xa3a],
-  [0xa3b, 0xa3b],
-  [0xa3c, 0xa3c], /* GURMUKHI SIGN NUKTA */
-  [0xa3d, 0xa3d],
-  [0xa3e, 0xa3e], /* GURMUKHI VOWEL SIGN AA */
-  [0xa3f, 0xa3f], /* GURMUKHI VOWEL SIGN I */
-  [0xa40, 0xa40], /* GURMUKHI VOWEL SIGN II */
-  [0xa41, 0xa41], /* GURMUKHI VOWEL SIGN U */
-  [0xa42, 0xa42], /* GURMUKHI VOWEL SIGN UU */
-  [0xa43, 0xa43],
-  [0xa44, 0xa44],
-  [0xa45, 0xa45],
-  [0xa46, 0xa46],
-  [0xa47, 0xa47], /* GURMUKHI VOWEL SIGN EE */
-  [0xa48, 0xa48], /* GURMUKHI VOWEL SIGN AI */
-  [0xa49, 0xa49],
-  [0xa4a, 0xa4a],
-  [0xa4b, 0xa4b], /* GURMUKHI VOWEL SIGN OO */
-  [0xa4c, 0xa4c], /* GURMUKHI VOWEL SIGN AU */
-  [0xa4d, 0xa4d], /* GURMUKHI SIGN VIRAMA */
-  [0xa4e, 0xa4e],
-  [0xa4f, 0xa4f],
-  [0xa50, 0xa50],
-  [0xa51, 0xa51], /* GURMUKHI SIGN UDAAT */
-  [0xa52, 0xa52],
-  [0xa53, 0xa53],
-  [0xa54, 0xa54],
-  [0xa55, 0xa55],
-  [0xa56, 0xa56],
-  [0xa57, 0xa57],
-  [0xa58, 0xa58],
-  [0xa59, 0xa59], /* GURMUKHI LETTER KHHA */
-  [0xa5a, 0xa5a], /* GURMUKHI LETTER GHHA */
-  [0xa5b, 0xa5b], /* GURMUKHI LETTER ZA */
-  [0xa5c, 0xa5c], /* GURMUKHI LETTER RRA */
-  [0xa5d, 0xa5d],
-  [0xa5e, 0xa5e], /* GURMUKHI LETTER FA */
-  [0xa5f, 0xa5f],
-  [0xa60, 0xa60],
-  [0xa61, 0xa61],
-  [0xa62, 0xa62],
-  [0xa63, 0xa63],
-  [0xa64, 0xa64],
-  [0xa65, 0xa65],
-  [0xa66, 0xa66], /* GURMUKHI DIGIT ZERO */
-  [0xa67, 0xa67], /* GURMUKHI DIGIT ONE */
-  [0xa68, 0xa68], /* GURMUKHI DIGIT TWO */
-  [0xa69, 0xa69], /* GURMUKHI DIGIT THREE */
-  [0xa6a, 0xa6a], /* GURMUKHI DIGIT FOUR */
-  [0xa6b, 0xa6b], /* GURMUKHI DIGIT FIVE */
-  [0xa6c, 0xa6c], /* GURMUKHI DIGIT SIX */
-  [0xa6d, 0xa6d], /* GURMUKHI DIGIT SEVEN */
-  [0xa6e, 0xa6e], /* GURMUKHI DIGIT EIGHT */
-  [0xa6f, 0xa6f], /* GURMUKHI DIGIT NINE */
-  [0xa70, 0xa70], /* GURMUKHI TIPPI */
-  [0xa71, 0xa71], /* GURMUKHI ADDAK */
-  [0xa72, 0xa72], /* GURMUKHI IRI */
-  [0xa73, 0xa73], /* GURMUKHI URA */
-  [0xa74, 0xa74], /* GURMUKHI EK ONKAR */
-  [0xa75, 0xa75], /* GURMUKHI SIGN YAKASH */
-  [0xa76, 0xa76],
-  [0xa77, 0xa77],
-  [0xa78, 0xa78],
-  [0xa79, 0xa79],
-  [0xa7a, 0xa7a],
-  [0xa7b, 0xa7b],
-  [0xa7c, 0xa7c],
-  [0xa7d, 0xa7d],
-  [0xa7e, 0xa7e],
-  [0xa7f, 0xa7f],
-  [0xa80, 0xa80],
-  [0xa81, 0xa81], /* GUJARATI SIGN CANDRABINDU */
-  [0xa82, 0xa82], /* GUJARATI SIGN ANUSVARA */
-  [0xa83, 0xa83], /* GUJARATI SIGN VISARGA */
-  [0xa84, 0xa84],
-  [0xa85, 0xa85], /* GUJARATI LETTER A */
-  [0xa86, 0xa86], /* GUJARATI LETTER AA */
-  [0xa87, 0xa87], /* GUJARATI LETTER I */
-  [0xa88, 0xa88], /* GUJARATI LETTER II */
-  [0xa89, 0xa89], /* GUJARATI LETTER U */
-  [0xa8a, 0xa8a], /* GUJARATI LETTER UU */
-  [0xa8b, 0xa8b], /* GUJARATI LETTER VOCALIC R */
-  [0xa8c, 0xa8c], /* GUJARATI LETTER VOCALIC L */
-  [0xa8d, 0xa8d], /* GUJARATI VOWEL CANDRA E */
-  [0xa8e, 0xa8e],
-  [0xa8f, 0xa8f], /* GUJARATI LETTER E */
-  [0xa90, 0xa90], /* GUJARATI LETTER AI */
-  [0xa91, 0xa91], /* GUJARATI VOWEL CANDRA O */
-  [0xa92, 0xa92],
-  [0xa93, 0xa93], /* GUJARATI LETTER O */
-  [0xa94, 0xa94], /* GUJARATI LETTER AU */
-  [0xa95, 0xa95], /* GUJARATI LETTER KA */
-  [0xa96, 0xa96], /* GUJARATI LETTER KHA */
-  [0xa97, 0xa97], /* GUJARATI LETTER GA */
-  [0xa98, 0xa98], /* GUJARATI LETTER GHA */
-  [0xa99, 0xa99], /* GUJARATI LETTER NGA */
-  [0xa9a, 0xa9a], /* GUJARATI LETTER CA */
-  [0xa9b, 0xa9b], /* GUJARATI LETTER CHA */
-  [0xa9c, 0xa9c], /* GUJARATI LETTER JA */
-  [0xa9d, 0xa9d], /* GUJARATI LETTER JHA */
-  [0xa9e, 0xa9e], /* GUJARATI LETTER NYA */
-  [0xa9f, 0xa9f], /* GUJARATI LETTER TTA */
-  [0xaa0, 0xaa0], /* GUJARATI LETTER TTHA */
-  [0xaa1, 0xaa1], /* GUJARATI LETTER DDA */
-  [0xaa2, 0xaa2], /* GUJARATI LETTER DDHA */
-  [0xaa3, 0xaa3], /* GUJARATI LETTER NNA */
-  [0xaa4, 0xaa4], /* GUJARATI LETTER TA */
-  [0xaa5, 0xaa5], /* GUJARATI LETTER THA */
-  [0xaa6, 0xaa6], /* GUJARATI LETTER DA */
-  [0xaa7, 0xaa7], /* GUJARATI LETTER DHA */
-  [0xaa8, 0xaa8], /* GUJARATI LETTER NA */
-  [0xaa9, 0xaa9],
-  [0xaaa, 0xaaa], /* GUJARATI LETTER PA */
-  [0xaab, 0xaab], /* GUJARATI LETTER PHA */
-  [0xaac, 0xaac], /* GUJARATI LETTER BA */
-  [0xaad, 0xaad], /* GUJARATI LETTER BHA */
-  [0xaae, 0xaae], /* GUJARATI LETTER MA */
-  [0xaaf, 0xaaf], /* GUJARATI LETTER YA */
-  [0xab0, 0xab0], /* GUJARATI LETTER RA */
-  [0xab1, 0xab1],
-  [0xab2, 0xab2], /* GUJARATI LETTER LA */
-  [0xab3, 0xab3], /* GUJARATI LETTER LLA */
-  [0xab4, 0xab4],
-  [0xab5, 0xab5], /* GUJARATI LETTER VA */
-  [0xab6, 0xab6], /* GUJARATI LETTER SHA */
-  [0xab7, 0xab7], /* GUJARATI LETTER SSA */
-  [0xab8, 0xab8], /* GUJARATI LETTER SA */
-  [0xab9, 0xab9], /* GUJARATI LETTER HA */
-  [0xaba, 0xaba],
-  [0xabb, 0xabb],
-  [0xabc, 0xabc], /* GUJARATI SIGN NUKTA */
-  [0xabd, 0xabd], /* GUJARATI SIGN AVAGRAHA */
-  [0xabe, 0xabe], /* GUJARATI VOWEL SIGN AA */
-  [0xabf, 0xabf], /* GUJARATI VOWEL SIGN I */
-  [0xac0, 0xac0], /* GUJARATI VOWEL SIGN II */
-  [0xac1, 0xac1], /* GUJARATI VOWEL SIGN U */
-  [0xac2, 0xac2], /* GUJARATI VOWEL SIGN UU */
-  [0xac3, 0xac3], /* GUJARATI VOWEL SIGN VOCALIC R */
-  [0xac4, 0xac4], /* GUJARATI VOWEL SIGN VOCALIC RR */
-  [0xac5, 0xac5], /* GUJARATI VOWEL SIGN CANDRA E */
-  [0xac6, 0xac6],
-  [0xac7, 0xac7], /* GUJARATI VOWEL SIGN E */
-  [0xac8, 0xac8], /* GUJARATI VOWEL SIGN AI */
-  [0xac9, 0xac9], /* GUJARATI VOWEL SIGN CANDRA O */
-  [0xaca, 0xaca],
-  [0xacb, 0xacb], /* GUJARATI VOWEL SIGN O */
-  [0xacc, 0xacc], /* GUJARATI VOWEL SIGN AU */
-  [0xacd, 0xacd], /* GUJARATI SIGN VIRAMA */
-  [0xace, 0xace],
-  [0xacf, 0xacf],
-  [0xad0, 0xad0], /* GUJARATI OM */
-  [0xad1, 0xad1],
-  [0xad2, 0xad2],
-  [0xad3, 0xad3],
-  [0xad4, 0xad4],
-  [0xad5, 0xad5],
-  [0xad6, 0xad6],
-  [0xad7, 0xad7],
-  [0xad8, 0xad8],
-  [0xad9, 0xad9],
-  [0xada, 0xada],
-  [0xadb, 0xadb],
-  [0xadc, 0xadc],
-  [0xadd, 0xadd],
-  [0xade, 0xade],
-  [0xadf, 0xadf],
-  [0xae0, 0xae0], /* GUJARATI LETTER VOCALIC RR */
-  [0xae1, 0xae1], /* GUJARATI LETTER VOCALIC LL */
-  [0xae2, 0xae2], /* GUJARATI VOWEL SIGN VOCALIC L */
-  [0xae3, 0xae3], /* GUJARATI VOWEL SIGN VOCALIC LL */
-  [0xae4, 0xae4],
-  [0xae5, 0xae5],
-  [0xae6, 0xae6], /* GUJARATI DIGIT ZERO */
-  [0xae7, 0xae7], /* GUJARATI DIGIT ONE */
-  [0xae8, 0xae8], /* GUJARATI DIGIT TWO */
-  [0xae9, 0xae9], /* GUJARATI DIGIT THREE */
-  [0xaea, 0xaea], /* GUJARATI DIGIT FOUR */
-  [0xaeb, 0xaeb], /* GUJARATI DIGIT FIVE */
-  [0xaec, 0xaec], /* GUJARATI DIGIT SIX */
-  [0xaed, 0xaed], /* GUJARATI DIGIT SEVEN */
-  [0xaee, 0xaee], /* GUJARATI DIGIT EIGHT */
-  [0xaef, 0xaef], /* GUJARATI DIGIT NINE */
-  [0xaf0, 0xaf0], /* GUJARATI ABBREVIATION SIGN */
-  [0xaf1, 0xaf1], /* GUJARATI RUPEE SIGN */
-  [0xaf2, 0xaf2],
-  [0xaf3, 0xaf3],
-  [0xaf4, 0xaf4],
-  [0xaf5, 0xaf5],
-  [0xaf6, 0xaf6],
-  [0xaf7, 0xaf7],
-  [0xaf8, 0xaf8],
-  [0xaf9, 0xaf9], /* GUJARATI LETTER ZHA */
-  [0xafa, 0xafa],
-  [0xafb, 0xafb],
-  [0xafc, 0xafc],
-  [0xafd, 0xafd],
-  [0xafe, 0xafe],
-  [0xaff, 0xaff],
-  [0xb00, 0xb00],
-  [0xb01, 0xb01], /* ORIYA SIGN CANDRABINDU */
-  [0xb02, 0xb02], /* ORIYA SIGN ANUSVARA */
-  [0xb03, 0xb03], /* ORIYA SIGN VISARGA */
-  [0xb04, 0xb04],
-  [0xb05, 0xb05], /* ORIYA LETTER A */
-  [0xb06, 0xb06], /* ORIYA LETTER AA */
-  [0xb07, 0xb07], /* ORIYA LETTER I */
-  [0xb08, 0xb08], /* ORIYA LETTER II */
-  [0xb09, 0xb09], /* ORIYA LETTER U */
-  [0xb0a, 0xb0a], /* ORIYA LETTER UU */
-  [0xb0b, 0xb0b], /* ORIYA LETTER VOCALIC R */
-  [0xb0c, 0xb0c], /* ORIYA LETTER VOCALIC L */
-  [0xb0d, 0xb0d],
-  [0xb0e, 0xb0e],
-  [0xb0f, 0xb0f], /* ORIYA LETTER E */
-  [0xb10, 0xb10], /* ORIYA LETTER AI */
-  [0xb11, 0xb11],
-  [0xb12, 0xb12],
-  [0xb13, 0xb13], /* ORIYA LETTER O */
-  [0xb14, 0xb14], /* ORIYA LETTER AU */
-  [0xb15, 0xb15], /* ORIYA LETTER KA */
-  [0xb16, 0xb16], /* ORIYA LETTER KHA */
-  [0xb17, 0xb17], /* ORIYA LETTER GA */
-  [0xb18, 0xb18], /* ORIYA LETTER GHA */
-  [0xb19, 0xb19], /* ORIYA LETTER NGA */
-  [0xb1a, 0xb1a], /* ORIYA LETTER CA */
-  [0xb1b, 0xb1b], /* ORIYA LETTER CHA */
-  [0xb1c, 0xb1c], /* ORIYA LETTER JA */
-  [0xb1d, 0xb1d], /* ORIYA LETTER JHA */
-  [0xb1e, 0xb1e], /* ORIYA LETTER NYA */
-  [0xb1f, 0xb1f], /* ORIYA LETTER TTA */
-  [0xb20, 0xb20], /* ORIYA LETTER TTHA */
-  [0xb21, 0xb21], /* ORIYA LETTER DDA */
-  [0xb22, 0xb22], /* ORIYA LETTER DDHA */
-  [0xb23, 0xb23], /* ORIYA LETTER NNA */
-  [0xb24, 0xb24], /* ORIYA LETTER TA */
-  [0xb25, 0xb25], /* ORIYA LETTER THA */
-  [0xb26, 0xb26], /* ORIYA LETTER DA */
-  [0xb27, 0xb27], /* ORIYA LETTER DHA */
-  [0xb28, 0xb28], /* ORIYA LETTER NA */
-  [0xb29, 0xb29],
-  [0xb2a, 0xb2a], /* ORIYA LETTER PA */
-  [0xb2b, 0xb2b], /* ORIYA LETTER PHA */
-  [0xb2c, 0xb2c], /* ORIYA LETTER BA */
-  [0xb2d, 0xb2d], /* ORIYA LETTER BHA */
-  [0xb2e, 0xb2e], /* ORIYA LETTER MA */
-  [0xb2f, 0xb2f], /* ORIYA LETTER YA */
-  [0xb30, 0xb30], /* ORIYA LETTER RA */
-  [0xb31, 0xb31],
-  [0xb32, 0xb32], /* ORIYA LETTER LA */
-  [0xb33, 0xb33], /* ORIYA LETTER LLA */
-  [0xb34, 0xb34],
-  [0xb35, 0xb35], /* ORIYA LETTER VA */
-  [0xb36, 0xb36], /* ORIYA LETTER SHA */
-  [0xb37, 0xb37], /* ORIYA LETTER SSA */
-  [0xb38, 0xb38], /* ORIYA LETTER SA */
-  [0xb39, 0xb39], /* ORIYA LETTER HA */
-  [0xb3a, 0xb3a],
-  [0xb3b, 0xb3b],
-  [0xb3c, 0xb3c], /* ORIYA SIGN NUKTA */
-  [0xb3d, 0xb3d], /* ORIYA SIGN AVAGRAHA */
-  [0xb3e, 0xb3e], /* ORIYA VOWEL SIGN AA */
-  [0xb3f, 0xb3f], /* ORIYA VOWEL SIGN I */
-  [0xb40, 0xb40], /* ORIYA VOWEL SIGN II */
-  [0xb41, 0xb41], /* ORIYA VOWEL SIGN U */
-  [0xb42, 0xb42], /* ORIYA VOWEL SIGN UU */
-  [0xb43, 0xb43], /* ORIYA VOWEL SIGN VOCALIC R */
-  [0xb44, 0xb44], /* ORIYA VOWEL SIGN VOCALIC RR */
-  [0xb45, 0xb45],
-  [0xb46, 0xb46],
-  [0xb47, 0xb47], /* ORIYA VOWEL SIGN E */
-  [0xb48, 0xb48], /* ORIYA VOWEL SIGN AI */
-  [0xb49, 0xb49],
-  [0xb4a, 0xb4a],
-  [0xb4b, 0xb4b], /* ORIYA VOWEL SIGN O */
-  [0xb4c, 0xb4c], /* ORIYA VOWEL SIGN AU */
-  [0xb4d, 0xb4d], /* ORIYA SIGN VIRAMA */
-  [0xb4e, 0xb4e],
-  [0xb4f, 0xb4f],
-  [0xb50, 0xb50],
-  [0xb51, 0xb51],
-  [0xb52, 0xb52],
-  [0xb53, 0xb53],
-  [0xb54, 0xb54],
-  [0xb55, 0xb55],
-  [0xb56, 0xb56], /* ORIYA AI LENGTH MARK */
-  [0xb57, 0xb57], /* ORIYA AU LENGTH MARK */
-  [0xb58, 0xb58],
-  [0xb59, 0xb59],
-  [0xb5a, 0xb5a],
-  [0xb5b, 0xb5b],
-  [0xb5c, 0xb5c], /* ORIYA LETTER RRA */
-  [0xb5d, 0xb5d], /* ORIYA LETTER RHA */
-  [0xb5e, 0xb5e],
-  [0xb5f, 0xb5f], /* ORIYA LETTER YYA */
-  [0xb60, 0xb60], /* ORIYA LETTER VOCALIC RR */
-  [0xb61, 0xb61], /* ORIYA LETTER VOCALIC LL */
-  [0xb62, 0xb62], /* ORIYA VOWEL SIGN VOCALIC L */
-  [0xb63, 0xb63], /* ORIYA VOWEL SIGN VOCALIC LL */
-  [0xb64, 0xb64],
-  [0xb65, 0xb65],
-  [0xb66, 0xb66], /* ORIYA DIGIT ZERO */
-  [0xb67, 0xb67], /* ORIYA DIGIT ONE */
-  [0xb68, 0xb68], /* ORIYA DIGIT TWO */
-  [0xb69, 0xb69], /* ORIYA DIGIT THREE */
-  [0xb6a, 0xb6a], /* ORIYA DIGIT FOUR */
-  [0xb6b, 0xb6b], /* ORIYA DIGIT FIVE */
-  [0xb6c, 0xb6c], /* ORIYA DIGIT SIX */
-  [0xb6d, 0xb6d], /* ORIYA DIGIT SEVEN */
-  [0xb6e, 0xb6e], /* ORIYA DIGIT EIGHT */
-  [0xb6f, 0xb6f], /* ORIYA DIGIT NINE */
-  [0xb70, 0xb70], /* ORIYA ISSHAR */
-  [0xb71, 0xb71], /* ORIYA LETTER WA */
-  [0xb72, 0xb72], /* ORIYA FRACTION ONE QUARTER */
-  [0xb73, 0xb73], /* ORIYA FRACTION ONE HALF */
-  [0xb74, 0xb74], /* ORIYA FRACTION THREE QUARTERS */
-  [0xb75, 0xb75], /* ORIYA FRACTION ONE SIXTEENTH */
-  [0xb76, 0xb76], /* ORIYA FRACTION ONE EIGHTH */
-  [0xb77, 0xb77], /* ORIYA FRACTION THREE SIXTEENTHS */
-  [0xb78, 0xb78],
-  [0xb79, 0xb79],
-  [0xb7a, 0xb7a],
-  [0xb7b, 0xb7b],
-  [0xb7c, 0xb7c],
-  [0xb7d, 0xb7d],
-  [0xb7e, 0xb7e],
-  [0xb7f, 0xb7f],
-  [0xb80, 0xb80],
-  [0xb81, 0xb81],
-  [0xb82, 0xb82], /* TAMIL SIGN ANUSVARA */
-  [0xb83, 0xb83], /* TAMIL SIGN VISARGA */
-  [0xb84, 0xb84],
-  [0xb85, 0xb85], /* TAMIL LETTER A */
-  [0xb86, 0xb86], /* TAMIL LETTER AA */
-  [0xb87, 0xb87], /* TAMIL LETTER I */
-  [0xb88, 0xb88], /* TAMIL LETTER II */
-  [0xb89, 0xb89], /* TAMIL LETTER U */
-  [0xb8a, 0xb8a], /* TAMIL LETTER UU */
-  [0xb8b, 0xb8b],
-  [0xb8c, 0xb8c],
-  [0xb8d, 0xb8d],
-  [0xb8e, 0xb8e], /* TAMIL LETTER E */
-  [0xb8f, 0xb8f], /* TAMIL LETTER EE */
-  [0xb90, 0xb90], /* TAMIL LETTER AI */
-  [0xb91, 0xb91],
-  [0xb92, 0xb92], /* TAMIL LETTER O */
-  [0xb93, 0xb93], /* TAMIL LETTER OO */
-  [0xb94, 0xb94], /* TAMIL LETTER AU */
-  [0xb95, 0xb95], /* TAMIL LETTER KA */
-  [0xb96, 0xb96],
-  [0xb97, 0xb97],
-  [0xb98, 0xb98],
-  [0xb99, 0xb99], /* TAMIL LETTER NGA */
-  [0xb9a, 0xb9a], /* TAMIL LETTER CA */
-  [0xb9b, 0xb9b],
-  [0xb9c, 0xb9c], /* TAMIL LETTER JA */
-  [0xb9d, 0xb9d],
-  [0xb9e, 0xb9e], /* TAMIL LETTER NYA */
-  [0xb9f, 0xb9f], /* TAMIL LETTER TTA */
-  [0xba0, 0xba0],
-  [0xba1, 0xba1],
-  [0xba2, 0xba2],
-  [0xba3, 0xba3], /* TAMIL LETTER NNA */
-  [0xba4, 0xba4], /* TAMIL LETTER TA */
-  [0xba5, 0xba5],
-  [0xba6, 0xba6],
-  [0xba7, 0xba7],
-  [0xba8, 0xba8], /* TAMIL LETTER NA */
-  [0xba9, 0xba9], /* TAMIL LETTER NNNA */
-  [0xbaa, 0xbaa], /* TAMIL LETTER PA */
-  [0xbab, 0xbab],
-  [0xbac, 0xbac],
-  [0xbad, 0xbad],
-  [0xbae, 0xbae], /* TAMIL LETTER MA */
-  [0xbaf, 0xbaf], /* TAMIL LETTER YA */
-  [0xbb0, 0xbb0], /* TAMIL LETTER RA */
-  [0xbb1, 0xbb1], /* TAMIL LETTER RRA */
-  [0xbb2, 0xbb2], /* TAMIL LETTER LA */
-  [0xbb3, 0xbb3], /* TAMIL LETTER LLA */
-  [0xbb4, 0xbb4], /* TAMIL LETTER LLLA */
-  [0xbb5, 0xbb5], /* TAMIL LETTER VA */
-  [0xbb6, 0xbb6], /* TAMIL LETTER SHA */
-  [0xbb7, 0xbb7], /* TAMIL LETTER SSA */
-  [0xbb8, 0xbb8], /* TAMIL LETTER SA */
-  [0xbb9, 0xbb9], /* TAMIL LETTER HA */
-  [0xbba, 0xbba],
-  [0xbbb, 0xbbb],
-  [0xbbc, 0xbbc],
-  [0xbbd, 0xbbd],
-  [0xbbe, 0xbbe], /* TAMIL VOWEL SIGN AA */
-  [0xbbf, 0xbbf], /* TAMIL VOWEL SIGN I */
-  [0xbc0, 0xbc0], /* TAMIL VOWEL SIGN II */
-  [0xbc1, 0xbc1], /* TAMIL VOWEL SIGN U */
-  [0xbc2, 0xbc2], /* TAMIL VOWEL SIGN UU */
-  [0xbc3, 0xbc3],
-  [0xbc4, 0xbc4],
-  [0xbc5, 0xbc5],
-  [0xbc6, 0xbc6], /* TAMIL VOWEL SIGN E */
-  [0xbc7, 0xbc7], /* TAMIL VOWEL SIGN EE */
-  [0xbc8, 0xbc8], /* TAMIL VOWEL SIGN AI */
-  [0xbc9, 0xbc9],
-  [0xbca, 0xbca], /* TAMIL VOWEL SIGN O */
-  [0xbcb, 0xbcb], /* TAMIL VOWEL SIGN OO */
-  [0xbcc, 0xbcc], /* TAMIL VOWEL SIGN AU */
-  [0xbcd, 0xbcd], /* TAMIL SIGN VIRAMA */
-  [0xbce, 0xbce],
-  [0xbcf, 0xbcf],
-  [0xbd0, 0xbd0], /* TAMIL OM */
-  [0xbd1, 0xbd1],
-  [0xbd2, 0xbd2],
-  [0xbd3, 0xbd3],
-  [0xbd4, 0xbd4],
-  [0xbd5, 0xbd5],
-  [0xbd6, 0xbd6],
-  [0xbd7, 0xbd7], /* TAMIL AU LENGTH MARK */
-  [0xbd8, 0xbd8],
-  [0xbd9, 0xbd9],
-  [0xbda, 0xbda],
-  [0xbdb, 0xbdb],
-  [0xbdc, 0xbdc],
-  [0xbdd, 0xbdd],
-  [0xbde, 0xbde],
-  [0xbdf, 0xbdf],
-  [0xbe0, 0xbe0],
-  [0xbe1, 0xbe1],
-  [0xbe2, 0xbe2],
-  [0xbe3, 0xbe3],
-  [0xbe4, 0xbe4],
-  [0xbe5, 0xbe5],
-  [0xbe6, 0xbe6], /* TAMIL DIGIT ZERO */
-  [0xbe7, 0xbe7], /* TAMIL DIGIT ONE */
-  [0xbe8, 0xbe8], /* TAMIL DIGIT TWO */
-  [0xbe9, 0xbe9], /* TAMIL DIGIT THREE */
-  [0xbea, 0xbea], /* TAMIL DIGIT FOUR */
-  [0xbeb, 0xbeb], /* TAMIL DIGIT FIVE */
-  [0xbec, 0xbec], /* TAMIL DIGIT SIX */
-  [0xbed, 0xbed], /* TAMIL DIGIT SEVEN */
-  [0xbee, 0xbee], /* TAMIL DIGIT EIGHT */
-  [0xbef, 0xbef], /* TAMIL DIGIT NINE */
-  [0xbf0, 0xbf0], /* TAMIL NUMBER TEN */
-  [0xbf1, 0xbf1], /* TAMIL NUMBER ONE HUNDRED */
-  [0xbf2, 0xbf2], /* TAMIL NUMBER ONE THOUSAND */
-  [0xbf3, 0xbf3], /* TAMIL DAY SIGN */
-  [0xbf4, 0xbf4], /* TAMIL MONTH SIGN */
-  [0xbf5, 0xbf5], /* TAMIL YEAR SIGN */
-  [0xbf6, 0xbf6], /* TAMIL DEBIT SIGN */
-  [0xbf7, 0xbf7], /* TAMIL CREDIT SIGN */
-  [0xbf8, 0xbf8], /* TAMIL AS ABOVE SIGN */
-  [0xbf9, 0xbf9], /* TAMIL RUPEE SIGN */
-  [0xbfa, 0xbfa], /* TAMIL NUMBER SIGN */
-  [0xbfb, 0xbfb],
-  [0xbfc, 0xbfc],
-  [0xbfd, 0xbfd],
-  [0xbfe, 0xbfe],
-  [0xbff, 0xbff],
-  [0xc00, 0xc00], /* TELUGU SIGN COMBINING CANDRABINDU ABOVE */
-  [0xc01, 0xc01], /* TELUGU SIGN CANDRABINDU */
-  [0xc02, 0xc02], /* TELUGU SIGN ANUSVARA */
-  [0xc03, 0xc03], /* TELUGU SIGN VISARGA */
-  [0xc04, 0xc04],
-  [0xc05, 0xc05], /* TELUGU LETTER A */
-  [0xc06, 0xc06], /* TELUGU LETTER AA */
-  [0xc07, 0xc07], /* TELUGU LETTER I */
-  [0xc08, 0xc08], /* TELUGU LETTER II */
-  [0xc09, 0xc09], /* TELUGU LETTER U */
-  [0xc0a, 0xc0a], /* TELUGU LETTER UU */
-  [0xc0b, 0xc0b], /* TELUGU LETTER VOCALIC R */
-  [0xc0c, 0xc0c], /* TELUGU LETTER VOCALIC L */
-  [0xc0d, 0xc0d],
-  [0xc0e, 0xc0e], /* TELUGU LETTER E */
-  [0xc0f, 0xc0f], /* TELUGU LETTER EE */
-  [0xc10, 0xc10], /* TELUGU LETTER AI */
-  [0xc11, 0xc11],
-  [0xc12, 0xc12], /* TELUGU LETTER O */
-  [0xc13, 0xc13], /* TELUGU LETTER OO */
-  [0xc14, 0xc14], /* TELUGU LETTER AU */
-  [0xc15, 0xc15], /* TELUGU LETTER KA */
-  [0xc16, 0xc16], /* TELUGU LETTER KHA */
-  [0xc17, 0xc17], /* TELUGU LETTER GA */
-  [0xc18, 0xc18], /* TELUGU LETTER GHA */
-  [0xc19, 0xc19], /* TELUGU LETTER NGA */
-  [0xc1a, 0xc1a], /* TELUGU LETTER CA */
-  [0xc1b, 0xc1b], /* TELUGU LETTER CHA */
-  [0xc1c, 0xc1c], /* TELUGU LETTER JA */
-  [0xc1d, 0xc1d], /* TELUGU LETTER JHA */
-  [0xc1e, 0xc1e], /* TELUGU LETTER NYA */
-  [0xc1f, 0xc1f], /* TELUGU LETTER TTA */
-  [0xc20, 0xc20], /* TELUGU LETTER TTHA */
-  [0xc21, 0xc21], /* TELUGU LETTER DDA */
-  [0xc22, 0xc22], /* TELUGU LETTER DDHA */
-  [0xc23, 0xc23], /* TELUGU LETTER NNA */
-  [0xc24, 0xc24], /* TELUGU LETTER TA */
-  [0xc25, 0xc25], /* TELUGU LETTER THA */
-  [0xc26, 0xc26], /* TELUGU LETTER DA */
-  [0xc27, 0xc27], /* TELUGU LETTER DHA */
-  [0xc28, 0xc28], /* TELUGU LETTER NA */
-  [0xc29, 0xc29],
-  [0xc2a, 0xc2a], /* TELUGU LETTER PA */
-  [0xc2b, 0xc2b], /* TELUGU LETTER PHA */
-  [0xc2c, 0xc2c], /* TELUGU LETTER BA */
-  [0xc2d, 0xc2d], /* TELUGU LETTER BHA */
-  [0xc2e, 0xc2e], /* TELUGU LETTER MA */
-  [0xc2f, 0xc2f], /* TELUGU LETTER YA */
-  [0xc30, 0xc30], /* TELUGU LETTER RA */
-  [0xc31, 0xc31], /* TELUGU LETTER RRA */
-  [0xc32, 0xc32], /* TELUGU LETTER LA */
-  [0xc33, 0xc33], /* TELUGU LETTER LLA */
-  [0xc34, 0xc34], /* TELUGU LETTER LLLA */
-  [0xc35, 0xc35], /* TELUGU LETTER VA */
-  [0xc36, 0xc36], /* TELUGU LETTER SHA */
-  [0xc37, 0xc37], /* TELUGU LETTER SSA */
-  [0xc38, 0xc38], /* TELUGU LETTER SA */
-  [0xc39, 0xc39], /* TELUGU LETTER HA */
-  [0xc3a, 0xc3a],
-  [0xc3b, 0xc3b],
-  [0xc3c, 0xc3c],
-  [0xc3d, 0xc3d], /* TELUGU SIGN AVAGRAHA */
-  [0xc3e, 0xc3e], /* TELUGU VOWEL SIGN AA */
-  [0xc3f, 0xc3f], /* TELUGU VOWEL SIGN I */
-  [0xc40, 0xc40], /* TELUGU VOWEL SIGN II */
-  [0xc41, 0xc41], /* TELUGU VOWEL SIGN U */
-  [0xc42, 0xc42], /* TELUGU VOWEL SIGN UU */
-  [0xc43, 0xc43], /* TELUGU VOWEL SIGN VOCALIC R */
-  [0xc44, 0xc44], /* TELUGU VOWEL SIGN VOCALIC RR */
-  [0xc45, 0xc45],
-  [0xc46, 0xc46], /* TELUGU VOWEL SIGN E */
-  [0xc47, 0xc47], /* TELUGU VOWEL SIGN EE */
-  [0xc48, 0xc48], /* TELUGU VOWEL SIGN AI */
-  [0xc49, 0xc49],
-  [0xc4a, 0xc4a], /* TELUGU VOWEL SIGN O */
-  [0xc4b, 0xc4b], /* TELUGU VOWEL SIGN OO */
-  [0xc4c, 0xc4c], /* TELUGU VOWEL SIGN AU */
-  [0xc4d, 0xc4d], /* TELUGU SIGN VIRAMA */
-  [0xc4e, 0xc4e],
-  [0xc4f, 0xc4f],
-  [0xc50, 0xc50],
-  [0xc51, 0xc51],
-  [0xc52, 0xc52],
-  [0xc53, 0xc53],
-  [0xc54, 0xc54],
-  [0xc55, 0xc55], /* TELUGU LENGTH MARK */
-  [0xc56, 0xc56], /* TELUGU AI LENGTH MARK */
-  [0xc57, 0xc57],
-  [0xc58, 0xc58], /* TELUGU LETTER TSA */
-  [0xc59, 0xc59], /* TELUGU LETTER DZA */
-  [0xc5a, 0xc5a], /* TELUGU LETTER RRRA */
-  [0xc5b, 0xc5b],
-  [0xc5c, 0xc5c],
-  [0xc5d, 0xc5d],
-  [0xc5e, 0xc5e],
-  [0xc5f, 0xc5f],
-  [0xc60, 0xc60], /* TELUGU LETTER VOCALIC RR */
-  [0xc61, 0xc61], /* TELUGU LETTER VOCALIC LL */
-  [0xc62, 0xc62], /* TELUGU VOWEL SIGN VOCALIC L */
-  [0xc63, 0xc63], /* TELUGU VOWEL SIGN VOCALIC LL */
-  [0xc64, 0xc64],
-  [0xc65, 0xc65],
-  [0xc66, 0xc66], /* TELUGU DIGIT ZERO */
-  [0xc67, 0xc67], /* TELUGU DIGIT ONE */
-  [0xc68, 0xc68], /* TELUGU DIGIT TWO */
-  [0xc69, 0xc69], /* TELUGU DIGIT THREE */
-  [0xc6a, 0xc6a], /* TELUGU DIGIT FOUR */
-  [0xc6b, 0xc6b], /* TELUGU DIGIT FIVE */
-  [0xc6c, 0xc6c], /* TELUGU DIGIT SIX */
-  [0xc6d, 0xc6d], /* TELUGU DIGIT SEVEN */
-  [0xc6e, 0xc6e], /* TELUGU DIGIT EIGHT */
-  [0xc6f, 0xc6f], /* TELUGU DIGIT NINE */
-  [0xc70, 0xc70],
-  [0xc71, 0xc71],
-  [0xc72, 0xc72],
-  [0xc73, 0xc73],
-  [0xc74, 0xc74],
-  [0xc75, 0xc75],
-  [0xc76, 0xc76],
-  [0xc77, 0xc77],
-  [0xc78, 0xc78], /* TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR */
-  [0xc79, 0xc79], /* TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR */
-  [0xc7a, 0xc7a], /* TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR */
-  [0xc7b, 0xc7b], /* TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR */
-  [0xc7c, 0xc7c], /* TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR */
-  [0xc7d, 0xc7d], /* TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR */
-  [0xc7e, 0xc7e], /* TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR */
-  [0xc7f, 0xc7f], /* TELUGU SIGN TUUMU */
-  [0xc80, 0xc80], /* KANNADA SIGN SPACING CANDRABINDU */
-  [0xc81, 0xc81], /* KANNADA SIGN CANDRABINDU */
-  [0xc82, 0xc82], /* KANNADA SIGN ANUSVARA */
-  [0xc83, 0xc83], /* KANNADA SIGN VISARGA */
-  [0xc84, 0xc84],
-  [0xc85, 0xc85], /* KANNADA LETTER A */
-  [0xc86, 0xc86], /* KANNADA LETTER AA */
-  [0xc87, 0xc87], /* KANNADA LETTER I */
-  [0xc88, 0xc88], /* KANNADA LETTER II */
-  [0xc89, 0xc89], /* KANNADA LETTER U */
-  [0xc8a, 0xc8a], /* KANNADA LETTER UU */
-  [0xc8b, 0xc8b], /* KANNADA LETTER VOCALIC R */
-  [0xc8c, 0xc8c], /* KANNADA LETTER VOCALIC L */
-  [0xc8d, 0xc8d],
-  [0xc8e, 0xc8e], /* KANNADA LETTER E */
-  [0xc8f, 0xc8f], /* KANNADA LETTER EE */
-  [0xc90, 0xc90], /* KANNADA LETTER AI */
-  [0xc91, 0xc91],
-  [0xc92, 0xc92], /* KANNADA LETTER O */
-  [0xc93, 0xc93], /* KANNADA LETTER OO */
-  [0xc94, 0xc94], /* KANNADA LETTER AU */
-  [0xc95, 0xc95], /* KANNADA LETTER KA */
-  [0xc96, 0xc96], /* KANNADA LETTER KHA */
-  [0xc97, 0xc97], /* KANNADA LETTER GA */
-  [0xc98, 0xc98], /* KANNADA LETTER GHA */
-  [0xc99, 0xc99], /* KANNADA LETTER NGA */
-  [0xc9a, 0xc9a], /* KANNADA LETTER CA */
-  [0xc9b, 0xc9b], /* KANNADA LETTER CHA */
-  [0xc9c, 0xc9c], /* KANNADA LETTER JA */
-  [0xc9d, 0xc9d], /* KANNADA LETTER JHA */
-  [0xc9e, 0xc9e], /* KANNADA LETTER NYA */
-  [0xc9f, 0xc9f], /* KANNADA LETTER TTA */
-  [0xca0, 0xca0], /* KANNADA LETTER TTHA */
-  [0xca1, 0xca1], /* KANNADA LETTER DDA */
-  [0xca2, 0xca2], /* KANNADA LETTER DDHA */
-  [0xca3, 0xca3], /* KANNADA LETTER NNA */
-  [0xca4, 0xca4], /* KANNADA LETTER TA */
-  [0xca5, 0xca5], /* KANNADA LETTER THA */
-  [0xca6, 0xca6], /* KANNADA LETTER DA */
-  [0xca7, 0xca7], /* KANNADA LETTER DHA */
-  [0xca8, 0xca8], /* KANNADA LETTER NA */
-  [0xca9, 0xca9],
-  [0xcaa, 0xcaa], /* KANNADA LETTER PA */
-  [0xcab, 0xcab], /* KANNADA LETTER PHA */
-  [0xcac, 0xcac], /* KANNADA LETTER BA */
-  [0xcad, 0xcad], /* KANNADA LETTER BHA */
-  [0xcae, 0xcae], /* KANNADA LETTER MA */
-  [0xcaf, 0xcaf], /* KANNADA LETTER YA */
-  [0xcb0, 0xcb0], /* KANNADA LETTER RA */
-  [0xcb1, 0xcb1], /* KANNADA LETTER RRA */
-  [0xcb2, 0xcb2], /* KANNADA LETTER LA */
-  [0xcb3, 0xcb3], /* KANNADA LETTER LLA */
-  [0xcb4, 0xcb4],
-  [0xcb5, 0xcb5], /* KANNADA LETTER VA */
-  [0xcb6, 0xcb6], /* KANNADA LETTER SHA */
-  [0xcb7, 0xcb7], /* KANNADA LETTER SSA */
-  [0xcb8, 0xcb8], /* KANNADA LETTER SA */
-  [0xcb9, 0xcb9], /* KANNADA LETTER HA */
-  [0xcba, 0xcba],
-  [0xcbb, 0xcbb],
-  [0xcbc, 0xcbc], /* KANNADA SIGN NUKTA */
-  [0xcbd, 0xcbd], /* KANNADA SIGN AVAGRAHA */
-  [0xcbe, 0xcbe], /* KANNADA VOWEL SIGN AA */
-  [0xcbf, 0xcbf], /* KANNADA VOWEL SIGN I */
-  [0xcc0, 0xcc0], /* KANNADA VOWEL SIGN II */
-  [0xcc1, 0xcc1], /* KANNADA VOWEL SIGN U */
-  [0xcc2, 0xcc2], /* KANNADA VOWEL SIGN UU */
-  [0xcc3, 0xcc3], /* KANNADA VOWEL SIGN VOCALIC R */
-  [0xcc4, 0xcc4], /* KANNADA VOWEL SIGN VOCALIC RR */
-  [0xcc5, 0xcc5],
-  [0xcc6, 0xcc6], /* KANNADA VOWEL SIGN E */
-  [0xcc7, 0xcc7], /* KANNADA VOWEL SIGN EE */
-  [0xcc8, 0xcc8], /* KANNADA VOWEL SIGN AI */
-  [0xcc9, 0xcc9],
-  [0xcca, 0xcca], /* KANNADA VOWEL SIGN O */
-  [0xccb, 0xccb], /* KANNADA VOWEL SIGN OO */
-  [0xccc, 0xccc], /* KANNADA VOWEL SIGN AU */
-  [0xccd, 0xccd], /* KANNADA SIGN VIRAMA */
-  [0xcce, 0xcce],
-  [0xccf, 0xccf],
-  [0xcd0, 0xcd0],
-  [0xcd1, 0xcd1],
-  [0xcd2, 0xcd2],
-  [0xcd3, 0xcd3],
-  [0xcd4, 0xcd4],
-  [0xcd5, 0xcd5], /* KANNADA LENGTH MARK */
-  [0xcd6, 0xcd6], /* KANNADA AI LENGTH MARK */
-  [0xcd7, 0xcd7],
-  [0xcd8, 0xcd8],
-  [0xcd9, 0xcd9],
-  [0xcda, 0xcda],
-  [0xcdb, 0xcdb],
-  [0xcdc, 0xcdc],
-  [0xcdd, 0xcdd],
-  [0xcde, 0xcde], /* KANNADA LETTER FA */
-  [0xcdf, 0xcdf],
-  [0xce0, 0xce0], /* KANNADA LETTER VOCALIC RR */
-  [0xce1, 0xce1], /* KANNADA LETTER VOCALIC LL */
-  [0xce2, 0xce2], /* KANNADA VOWEL SIGN VOCALIC L */
-  [0xce3, 0xce3], /* KANNADA VOWEL SIGN VOCALIC LL */
-  [0xce4, 0xce4],
-  [0xce5, 0xce5],
-  [0xce6, 0xce6], /* KANNADA DIGIT ZERO */
-  [0xce7, 0xce7], /* KANNADA DIGIT ONE */
-  [0xce8, 0xce8], /* KANNADA DIGIT TWO */
-  [0xce9, 0xce9], /* KANNADA DIGIT THREE */
-  [0xcea, 0xcea], /* KANNADA DIGIT FOUR */
-  [0xceb, 0xceb], /* KANNADA DIGIT FIVE */
-  [0xcec, 0xcec], /* KANNADA DIGIT SIX */
-  [0xced, 0xced], /* KANNADA DIGIT SEVEN */
-  [0xcee, 0xcee], /* KANNADA DIGIT EIGHT */
-  [0xcef, 0xcef], /* KANNADA DIGIT NINE */
-  [0xcf0, 0xcf0],
-  [0xcf1, 0xcf1], /* KANNADA SIGN JIHVAMULIYA */
-  [0xcf2, 0xcf2], /* KANNADA SIGN UPADHMANIYA */
-  [0xcf3, 0xcf3],
-  [0xcf4, 0xcf4],
-  [0xcf5, 0xcf5],
-  [0xcf6, 0xcf6],
-  [0xcf7, 0xcf7],
-  [0xcf8, 0xcf8],
-  [0xcf9, 0xcf9],
-  [0xcfa, 0xcfa],
-  [0xcfb, 0xcfb],
-  [0xcfc, 0xcfc],
-  [0xcfd, 0xcfd],
-  [0xcfe, 0xcfe],
-  [0xcff, 0xcff],
-  [0xd00, 0xd00],
-  [0xd01, 0xd01], /* MALAYALAM SIGN CANDRABINDU */
-  [0xd02, 0xd02], /* MALAYALAM SIGN ANUSVARA */
-  [0xd03, 0xd03], /* MALAYALAM SIGN VISARGA */
-  [0xd04, 0xd04],
-  [0xd05, 0xd05], /* MALAYALAM LETTER A */
-  [0xd06, 0xd06], /* MALAYALAM LETTER AA */
-  [0xd07, 0xd07], /* MALAYALAM LETTER I */
-  [0xd08, 0xd08], /* MALAYALAM LETTER II */
-  [0xd09, 0xd09], /* MALAYALAM LETTER U */
-  [0xd0a, 0xd0a], /* MALAYALAM LETTER UU */
-  [0xd0b, 0xd0b], /* MALAYALAM LETTER VOCALIC R */
-  [0xd0c, 0xd0c], /* MALAYALAM LETTER VOCALIC L */
-  [0xd0d, 0xd0d],
-  [0xd0e, 0xd0e], /* MALAYALAM LETTER E */
-  [0xd0f, 0xd0f], /* MALAYALAM LETTER EE */
-  [0xd10, 0xd10], /* MALAYALAM LETTER AI */
-  [0xd11, 0xd11],
-  [0xd12, 0xd12], /* MALAYALAM LETTER O */
-  [0xd13, 0xd13], /* MALAYALAM LETTER OO */
-  [0xd14, 0xd14], /* MALAYALAM LETTER AU */
-  [0xd15, 0xd15], /* MALAYALAM LETTER KA */
-  [0xd16, 0xd16], /* MALAYALAM LETTER KHA */
-  [0xd17, 0xd17], /* MALAYALAM LETTER GA */
-  [0xd18, 0xd18], /* MALAYALAM LETTER GHA */
-  [0xd19, 0xd19], /* MALAYALAM LETTER NGA */
-  [0xd1a, 0xd1a], /* MALAYALAM LETTER CA */
-  [0xd1b, 0xd1b], /* MALAYALAM LETTER CHA */
-  [0xd1c, 0xd1c], /* MALAYALAM LETTER JA */
-  [0xd1d, 0xd1d], /* MALAYALAM LETTER JHA */
-  [0xd1e, 0xd1e], /* MALAYALAM LETTER NYA */
-  [0xd1f, 0xd1f], /* MALAYALAM LETTER TTA */
-  [0xd20, 0xd20], /* MALAYALAM LETTER TTHA */
-  [0xd21, 0xd21], /* MALAYALAM LETTER DDA */
-  [0xd22, 0xd22], /* MALAYALAM LETTER DDHA */
-  [0xd23, 0xd23], /* MALAYALAM LETTER NNA */
-  [0xd24, 0xd24], /* MALAYALAM LETTER TA */
-  [0xd25, 0xd25], /* MALAYALAM LETTER THA */
-  [0xd26, 0xd26], /* MALAYALAM LETTER DA */
-  [0xd27, 0xd27], /* MALAYALAM LETTER DHA */
-  [0xd28, 0xd28], /* MALAYALAM LETTER NA */
-  [0xd29, 0xd29], /* MALAYALAM LETTER NNNA */
-  [0xd2a, 0xd2a], /* MALAYALAM LETTER PA */
-  [0xd2b, 0xd2b], /* MALAYALAM LETTER PHA */
-  [0xd2c, 0xd2c], /* MALAYALAM LETTER BA */
-  [0xd2d, 0xd2d], /* MALAYALAM LETTER BHA */
-  [0xd2e, 0xd2e], /* MALAYALAM LETTER MA */
-  [0xd2f, 0xd2f], /* MALAYALAM LETTER YA */
-  [0xd30, 0xd30], /* MALAYALAM LETTER RA */
-  [0xd31, 0xd31], /* MALAYALAM LETTER RRA */
-  [0xd32, 0xd32], /* MALAYALAM LETTER LA */
-  [0xd33, 0xd33], /* MALAYALAM LETTER LLA */
-  [0xd34, 0xd34], /* MALAYALAM LETTER LLLA */
-  [0xd35, 0xd35], /* MALAYALAM LETTER VA */
-  [0xd36, 0xd36], /* MALAYALAM LETTER SHA */
-  [0xd37, 0xd37], /* MALAYALAM LETTER SSA */
-  [0xd38, 0xd38], /* MALAYALAM LETTER SA */
-  [0xd39, 0xd39], /* MALAYALAM LETTER HA */
-  [0xd3a, 0xd3a], /* MALAYALAM LETTER TTTA */
-  [0xd3b, 0xd3b],
-  [0xd3c, 0xd3c],
-  [0xd3d, 0xd3d], /* MALAYALAM SIGN AVAGRAHA */
-  [0xd3e, 0xd3e], /* MALAYALAM VOWEL SIGN AA */
-  [0xd3f, 0xd3f], /* MALAYALAM VOWEL SIGN I */
-  [0xd40, 0xd40], /* MALAYALAM VOWEL SIGN II */
-  [0xd41, 0xd41], /* MALAYALAM VOWEL SIGN U */
-  [0xd42, 0xd42], /* MALAYALAM VOWEL SIGN UU */
-  [0xd43, 0xd43], /* MALAYALAM VOWEL SIGN VOCALIC R */
-  [0xd44, 0xd44], /* MALAYALAM VOWEL SIGN VOCALIC RR */
-  [0xd45, 0xd45],
-  [0xd46, 0xd46], /* MALAYALAM VOWEL SIGN E */
-  [0xd47, 0xd47], /* MALAYALAM VOWEL SIGN EE */
-  [0xd48, 0xd48], /* MALAYALAM VOWEL SIGN AI */
-  [0xd49, 0xd49],
-  [0xd4a, 0xd4a], /* MALAYALAM VOWEL SIGN O */
-  [0xd4b, 0xd4b], /* MALAYALAM VOWEL SIGN OO */
-  [0xd4c, 0xd4c], /* MALAYALAM VOWEL SIGN AU */
-  [0xd4d, 0xd4d], /* MALAYALAM SIGN VIRAMA */
-  [0xd4e, 0xd4e], /* MALAYALAM LETTER DOT REPH */
-  [0xd4f, 0xd4f], /* MALAYALAM SIGN PARA */
-  [0xd50, 0xd50],
-  [0xd51, 0xd51],
-  [0xd52, 0xd52],
-  [0xd53, 0xd53],
-  [0xd54, 0xd54], /* MALAYALAM LETTER CHILLU M */
-  [0xd55, 0xd55], /* MALAYALAM LETTER CHILLU Y */
-  [0xd56, 0xd56], /* MALAYALAM LETTER CHILLU LLL */
-  [0xd57, 0xd57], /* MALAYALAM AU LENGTH MARK */
-  [0xd58, 0xd58], /* MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH */
-  [0xd59, 0xd59], /* MALAYALAM FRACTION ONE FORTIETH */
-  [0xd5a, 0xd5a], /* MALAYALAM FRACTION THREE EIGHTIETHS */
-  [0xd5b, 0xd5b], /* MALAYALAM FRACTION ONE TWENTIETH */
-  [0xd5c, 0xd5c], /* MALAYALAM FRACTION ONE TENTH */
-  [0xd5d, 0xd5d], /* MALAYALAM FRACTION THREE TWENTIETHS */
-  [0xd5e, 0xd5e], /* MALAYALAM FRACTION ONE FIFTH */
-  [0xd5f, 0xd5f], /* MALAYALAM LETTER ARCHAIC II */
-  [0xd60, 0xd60], /* MALAYALAM LETTER VOCALIC RR */
-  [0xd61, 0xd61], /* MALAYALAM LETTER VOCALIC LL */
-  [0xd62, 0xd62], /* MALAYALAM VOWEL SIGN VOCALIC L */
-  [0xd63, 0xd63], /* MALAYALAM VOWEL SIGN VOCALIC LL */
-  [0xd64, 0xd64],
-  [0xd65, 0xd65],
-  [0xd66, 0xd66], /* MALAYALAM DIGIT ZERO */
-  [0xd67, 0xd67], /* MALAYALAM DIGIT ONE */
-  [0xd68, 0xd68], /* MALAYALAM DIGIT TWO */
-  [0xd69, 0xd69], /* MALAYALAM DIGIT THREE */
-  [0xd6a, 0xd6a], /* MALAYALAM DIGIT FOUR */
-  [0xd6b, 0xd6b], /* MALAYALAM DIGIT FIVE */
-  [0xd6c, 0xd6c], /* MALAYALAM DIGIT SIX */
-  [0xd6d, 0xd6d], /* MALAYALAM DIGIT SEVEN */
-  [0xd6e, 0xd6e], /* MALAYALAM DIGIT EIGHT */
-  [0xd6f, 0xd6f], /* MALAYALAM DIGIT NINE */
-  [0xd70, 0xd70], /* MALAYALAM NUMBER TEN */
-  [0xd71, 0xd71], /* MALAYALAM NUMBER ONE HUNDRED */
-  [0xd72, 0xd72], /* MALAYALAM NUMBER ONE THOUSAND */
-  [0xd73, 0xd73], /* MALAYALAM FRACTION ONE QUARTER */
-  [0xd74, 0xd74], /* MALAYALAM FRACTION ONE HALF */
-  [0xd75, 0xd75], /* MALAYALAM FRACTION THREE QUARTERS */
-  [0xd76, 0xd76], /* MALAYALAM FRACTION ONE SIXTEENTH */
-  [0xd77, 0xd77], /* MALAYALAM FRACTION ONE EIGHTH */
-  [0xd78, 0xd78], /* MALAYALAM FRACTION THREE SIXTEENTHS */
-  [0xd79, 0xd79], /* MALAYALAM DATE MARK */
-  [0xd7a, 0xd7a], /* MALAYALAM LETTER CHILLU NN */
-  [0xd7b, 0xd7b], /* MALAYALAM LETTER CHILLU N */
-  [0xd7c, 0xd7c], /* MALAYALAM LETTER CHILLU RR */
-  [0xd7d, 0xd7d], /* MALAYALAM LETTER CHILLU L */
-  [0xd7e, 0xd7e], /* MALAYALAM LETTER CHILLU LL */
-  [0xd7f, 0xd7f], /* MALAYALAM LETTER CHILLU K */
-  [0xd80, 0xd80],
-  [0xd81, 0xd81],
-  [0xd82, 0xd82], /* SINHALA SIGN ANUSVARAYA */
-  [0xd83, 0xd83], /* SINHALA SIGN VISARGAYA */
-  [0xd84, 0xd84],
-  [0xd85, 0xd85], /* SINHALA LETTER AYANNA */
-  [0xd86, 0xd86], /* SINHALA LETTER AAYANNA */
-  [0xd87, 0xd87], /* SINHALA LETTER AEYANNA */
-  [0xd88, 0xd88], /* SINHALA LETTER AEEYANNA */
-  [0xd89, 0xd89], /* SINHALA LETTER IYANNA */
-  [0xd8a, 0xd8a], /* SINHALA LETTER IIYANNA */
-  [0xd8b, 0xd8b], /* SINHALA LETTER UYANNA */
-  [0xd8c, 0xd8c], /* SINHALA LETTER UUYANNA */
-  [0xd8d, 0xd8d], /* SINHALA LETTER IRUYANNA */
-  [0xd8e, 0xd8e], /* SINHALA LETTER IRUUYANNA */
-  [0xd8f, 0xd8f], /* SINHALA LETTER ILUYANNA */
-  [0xd90, 0xd90], /* SINHALA LETTER ILUUYANNA */
-  [0xd91, 0xd91], /* SINHALA LETTER EYANNA */
-  [0xd92, 0xd92], /* SINHALA LETTER EEYANNA */
-  [0xd93, 0xd93], /* SINHALA LETTER AIYANNA */
-  [0xd94, 0xd94], /* SINHALA LETTER OYANNA */
-  [0xd95, 0xd95], /* SINHALA LETTER OOYANNA */
-  [0xd96, 0xd96], /* SINHALA LETTER AUYANNA */
-  [0xd97, 0xd97],
-  [0xd98, 0xd98],
-  [0xd99, 0xd99],
-  [0xd9a, 0xd9a], /* SINHALA LETTER ALPAPRAANA KAYANNA */
-  [0xd9b, 0xd9b], /* SINHALA LETTER MAHAAPRAANA KAYANNA */
-  [0xd9c, 0xd9c], /* SINHALA LETTER ALPAPRAANA GAYANNA */
-  [0xd9d, 0xd9d], /* SINHALA LETTER MAHAAPRAANA GAYANNA */
-  [0xd9e, 0xd9e], /* SINHALA LETTER KANTAJA NAASIKYAYA */
-  [0xd9f, 0xd9f], /* SINHALA LETTER SANYAKA GAYANNA */
-  [0xda0, 0xda0], /* SINHALA LETTER ALPAPRAANA CAYANNA */
-  [0xda1, 0xda1], /* SINHALA LETTER MAHAAPRAANA CAYANNA */
-  [0xda2, 0xda2], /* SINHALA LETTER ALPAPRAANA JAYANNA */
-  [0xda3, 0xda3], /* SINHALA LETTER MAHAAPRAANA JAYANNA */
-  [0xda4, 0xda4], /* SINHALA LETTER TAALUJA NAASIKYAYA */
-  [0xda5, 0xda5], /* SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA */
-  [0xda6, 0xda6], /* SINHALA LETTER SANYAKA JAYANNA */
-  [0xda7, 0xda7], /* SINHALA LETTER ALPAPRAANA TTAYANNA */
-  [0xda8, 0xda8], /* SINHALA LETTER MAHAAPRAANA TTAYANNA */
-  [0xda9, 0xda9], /* SINHALA LETTER ALPAPRAANA DDAYANNA */
-  [0xdaa, 0xdaa], /* SINHALA LETTER MAHAAPRAANA DDAYANNA */
-  [0xdab, 0xdab], /* SINHALA LETTER MUURDHAJA NAYANNA */
-  [0xdac, 0xdac], /* SINHALA LETTER SANYAKA DDAYANNA */
-  [0xdad, 0xdad], /* SINHALA LETTER ALPAPRAANA TAYANNA */
-  [0xdae, 0xdae], /* SINHALA LETTER MAHAAPRAANA TAYANNA */
-  [0xdaf, 0xdaf], /* SINHALA LETTER ALPAPRAANA DAYANNA */
-  [0xdb0, 0xdb0], /* SINHALA LETTER MAHAAPRAANA DAYANNA */
-  [0xdb1, 0xdb1], /* SINHALA LETTER DANTAJA NAYANNA */
-  [0xdb2, 0xdb2],
-  [0xdb3, 0xdb3], /* SINHALA LETTER SANYAKA DAYANNA */
-  [0xdb4, 0xdb4], /* SINHALA LETTER ALPAPRAANA PAYANNA */
-  [0xdb5, 0xdb5], /* SINHALA LETTER MAHAAPRAANA PAYANNA */
-  [0xdb6, 0xdb6], /* SINHALA LETTER ALPAPRAANA BAYANNA */
-  [0xdb7, 0xdb7], /* SINHALA LETTER MAHAAPRAANA BAYANNA */
-  [0xdb8, 0xdb8], /* SINHALA LETTER MAYANNA */
-  [0xdb9, 0xdb9], /* SINHALA LETTER AMBA BAYANNA */
-  [0xdba, 0xdba], /* SINHALA LETTER YAYANNA */
-  [0xdbb, 0xdbb], /* SINHALA LETTER RAYANNA */
-  [0xdbc, 0xdbc],
-  [0xdbd, 0xdbd], /* SINHALA LETTER DANTAJA LAYANNA */
-  [0xdbe, 0xdbe],
-  [0xdbf, 0xdbf],
-  [0xdc0, 0xdc0], /* SINHALA LETTER VAYANNA */
-  [0xdc1, 0xdc1], /* SINHALA LETTER TAALUJA SAYANNA */
-  [0xdc2, 0xdc2], /* SINHALA LETTER MUURDHAJA SAYANNA */
-  [0xdc3, 0xdc3], /* SINHALA LETTER DANTAJA SAYANNA */
-  [0xdc4, 0xdc4], /* SINHALA LETTER HAYANNA */
-  [0xdc5, 0xdc5], /* SINHALA LETTER MUURDHAJA LAYANNA */
-  [0xdc6, 0xdc6], /* SINHALA LETTER FAYANNA */
-  [0xdc7, 0xdc7],
-  [0xdc8, 0xdc8],
-  [0xdc9, 0xdc9],
-  [0xdca, 0xdca], /* SINHALA SIGN AL-LAKUNA */
-  [0xdcb, 0xdcb],
-  [0xdcc, 0xdcc],
-  [0xdcd, 0xdcd],
-  [0xdce, 0xdce],
-  [0xdcf, 0xdcf], /* SINHALA VOWEL SIGN AELA-PILLA */
-  [0xdd0, 0xdd0], /* SINHALA VOWEL SIGN KETTI AEDA-PILLA */
-  [0xdd1, 0xdd1], /* SINHALA VOWEL SIGN DIGA AEDA-PILLA */
-  [0xdd2, 0xdd2], /* SINHALA VOWEL SIGN KETTI IS-PILLA */
-  [0xdd3, 0xdd3], /* SINHALA VOWEL SIGN DIGA IS-PILLA */
-  [0xdd4, 0xdd4], /* SINHALA VOWEL SIGN KETTI PAA-PILLA */
-  [0xdd5, 0xdd5],
-  [0xdd6, 0xdd6], /* SINHALA VOWEL SIGN DIGA PAA-PILLA */
-  [0xdd7, 0xdd7],
-  [0xdd8, 0xdd8], /* SINHALA VOWEL SIGN GAETTA-PILLA */
-  [0xdd9, 0xdd9], /* SINHALA VOWEL SIGN KOMBUVA */
-  [0xdda, 0xdda], /* SINHALA VOWEL SIGN DIGA KOMBUVA */
-  [0xddb, 0xddb], /* SINHALA VOWEL SIGN KOMBU DEKA */
-  [0xddc, 0xddc], /* SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA */
-  [0xddd, 0xddd], /* SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA */
-  [0xdde, 0xdde], /* SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA */
-  [0xddf, 0xddf], /* SINHALA VOWEL SIGN GAYANUKITTA */
-  [0xde0, 0xde0],
-  [0xde1, 0xde1],
-  [0xde2, 0xde2],
-  [0xde3, 0xde3],
-  [0xde4, 0xde4],
-  [0xde5, 0xde5],
-  [0xde6, 0xde6], /* SINHALA LITH DIGIT ZERO */
-  [0xde7, 0xde7], /* SINHALA LITH DIGIT ONE */
-  [0xde8, 0xde8], /* SINHALA LITH DIGIT TWO */
-  [0xde9, 0xde9], /* SINHALA LITH DIGIT THREE */
-  [0xdea, 0xdea], /* SINHALA LITH DIGIT FOUR */
-  [0xdeb, 0xdeb], /* SINHALA LITH DIGIT FIVE */
-  [0xdec, 0xdec], /* SINHALA LITH DIGIT SIX */
-  [0xded, 0xded], /* SINHALA LITH DIGIT SEVEN */
-  [0xdee, 0xdee], /* SINHALA LITH DIGIT EIGHT */
-  [0xdef, 0xdef], /* SINHALA LITH DIGIT NINE */
-  [0xdf0, 0xdf0],
-  [0xdf1, 0xdf1],
-  [0xdf2, 0xdf2], /* SINHALA VOWEL SIGN DIGA GAETTA-PILLA */
-  [0xdf3, 0xdf3], /* SINHALA VOWEL SIGN DIGA GAYANUKITTA */
-  [0xdf4, 0xdf4], /* SINHALA PUNCTUATION KUNDDALIYA */
-  [0xdf5, 0xdf5],
-  [0xdf6, 0xdf6],
-  [0xdf7, 0xdf7],
-  [0xdf8, 0xdf8],
-  [0xdf9, 0xdf9],
-  [0xdfa, 0xdfa],
-  [0xdfb, 0xdfb],
-  [0xdfc, 0xdfc],
-  [0xdfd, 0xdfd],
-  [0xdfe, 0xdfe],
-  [0xdff, 0xdff],
-  [0xe00, 0xe00],
-  [0xe01, 0xe01], /* THAI CHARACTER KO KAI (THAI LETTER KO KAI) */
-  [0xe02, 0xe02], /* THAI CHARACTER KHO KHAI (THAI LETTER KHO KHAI) */
-  [0xe03, 0xe03], /* THAI CHARACTER KHO KHUAT (THAI LETTER KHO KHUAT) */
-  [0xe04, 0xe04], /* THAI CHARACTER KHO KHWAI (THAI LETTER KHO KHWAI) */
-  [0xe05, 0xe05], /* THAI CHARACTER KHO KHON (THAI LETTER KHO KHON) */
-  [0xe06, 0xe06], /* THAI CHARACTER KHO RAKHANG (THAI LETTER KHO RAKHANG) */
-  [0xe07, 0xe07], /* THAI CHARACTER NGO NGU (THAI LETTER NGO NGU) */
-  [0xe08, 0xe08], /* THAI CHARACTER CHO CHAN (THAI LETTER CHO CHAN) */
-  [0xe09, 0xe09], /* THAI CHARACTER CHO CHING (THAI LETTER CHO CHING) */
-  [0xe0a, 0xe0a], /* THAI CHARACTER CHO CHANG (THAI LETTER CHO CHANG) */
-  [0xe0b, 0xe0b], /* THAI CHARACTER SO SO (THAI LETTER SO SO) */
-  [0xe0c, 0xe0c], /* THAI CHARACTER CHO CHOE (THAI LETTER CHO CHOE) */
-  [0xe0d, 0xe0d], /* THAI CHARACTER YO YING (THAI LETTER YO YING) */
-  [0xe0e, 0xe0e], /* THAI CHARACTER DO CHADA (THAI LETTER DO CHADA) */
-  [0xe0f, 0xe0f], /* THAI CHARACTER TO PATAK (THAI LETTER TO PATAK) */
-  [0xe10, 0xe10], /* THAI CHARACTER THO THAN (THAI LETTER THO THAN) */
-  [0xe11, 0xe11], /* THAI CHARACTER THO NANGMONTHO (THAI LETTER THO NANGMONTHO) */
-  [0xe12, 0xe12], /* THAI CHARACTER THO PHUTHAO (THAI LETTER THO PHUTHAO) */
-  [0xe13, 0xe13], /* THAI CHARACTER NO NEN (THAI LETTER NO NEN) */
-  [0xe14, 0xe14], /* THAI CHARACTER DO DEK (THAI LETTER DO DEK) */
-  [0xe15, 0xe15], /* THAI CHARACTER TO TAO (THAI LETTER TO TAO) */
-  [0xe16, 0xe16], /* THAI CHARACTER THO THUNG (THAI LETTER THO THUNG) */
-  [0xe17, 0xe17], /* THAI CHARACTER THO THAHAN (THAI LETTER THO THAHAN) */
-  [0xe18, 0xe18], /* THAI CHARACTER THO THONG (THAI LETTER THO THONG) */
-  [0xe19, 0xe19], /* THAI CHARACTER NO NU (THAI LETTER NO NU) */
-  [0xe1a, 0xe1a], /* THAI CHARACTER BO BAIMAI (THAI LETTER BO BAIMAI) */
-  [0xe1b, 0xe1b], /* THAI CHARACTER PO PLA (THAI LETTER PO PLA) */
-  [0xe1c, 0xe1c], /* THAI CHARACTER PHO PHUNG (THAI LETTER PHO PHUNG) */
-  [0xe1d, 0xe1d], /* THAI CHARACTER FO FA (THAI LETTER FO FA) */
-  [0xe1e, 0xe1e], /* THAI CHARACTER PHO PHAN (THAI LETTER PHO PHAN) */
-  [0xe1f, 0xe1f], /* THAI CHARACTER FO FAN (THAI LETTER FO FAN) */
-  [0xe20, 0xe20], /* THAI CHARACTER PHO SAMPHAO (THAI LETTER PHO SAMPHAO) */
-  [0xe21, 0xe21], /* THAI CHARACTER MO MA (THAI LETTER MO MA) */
-  [0xe22, 0xe22], /* THAI CHARACTER YO YAK (THAI LETTER YO YAK) */
-  [0xe23, 0xe23], /* THAI CHARACTER RO RUA (THAI LETTER RO RUA) */
-  [0xe24, 0xe24], /* THAI CHARACTER RU (THAI LETTER RU) */
-  [0xe25, 0xe25], /* THAI CHARACTER LO LING (THAI LETTER LO LING) */
-  [0xe26, 0xe26], /* THAI CHARACTER LU (THAI LETTER LU) */
-  [0xe27, 0xe27], /* THAI CHARACTER WO WAEN (THAI LETTER WO WAEN) */
-  [0xe28, 0xe28], /* THAI CHARACTER SO SALA (THAI LETTER SO SALA) */
-  [0xe29, 0xe29], /* THAI CHARACTER SO RUSI (THAI LETTER SO RUSI) */
-  [0xe2a, 0xe2a], /* THAI CHARACTER SO SUA (THAI LETTER SO SUA) */
-  [0xe2b, 0xe2b], /* THAI CHARACTER HO HIP (THAI LETTER HO HIP) */
-  [0xe2c, 0xe2c], /* THAI CHARACTER LO CHULA (THAI LETTER LO CHULA) */
-  [0xe2d, 0xe2d], /* THAI CHARACTER O ANG (THAI LETTER O ANG) */
-  [0xe2e, 0xe2e], /* THAI CHARACTER HO NOKHUK (THAI LETTER HO NOK HUK) */
-  [0xe2f, 0xe2f], /* THAI CHARACTER PAIYANNOI (THAI PAI YAN NOI) */
-  [0xe30, 0xe30], /* THAI CHARACTER SARA A (THAI VOWEL SIGN SARA A) */
-  [0xe31, 0xe31], /* THAI CHARACTER MAI HAN-AKAT (THAI VOWEL SIGN MAI HAN-AKAT) */
-  [0xe32, 0xe32], /* THAI CHARACTER SARA AA (THAI VOWEL SIGN SARA AA) */
-  [0xe33, 0xe33], /* THAI CHARACTER SARA AM (THAI VOWEL SIGN SARA AM) */
-  [0xe34, 0xe34], /* THAI CHARACTER SARA I (THAI VOWEL SIGN SARA I) */
-  [0xe35, 0xe35], /* THAI CHARACTER SARA II (THAI VOWEL SIGN SARA II) */
-  [0xe36, 0xe36], /* THAI CHARACTER SARA UE (THAI VOWEL SIGN SARA UE) */
-  [0xe37, 0xe37], /* THAI CHARACTER SARA UEE (THAI VOWEL SIGN SARA UEE) */
-  [0xe38, 0xe38], /* THAI CHARACTER SARA U (THAI VOWEL SIGN SARA U) */
-  [0xe39, 0xe39], /* THAI CHARACTER SARA UU (THAI VOWEL SIGN SARA UU) */
-  [0xe3a, 0xe3a], /* THAI CHARACTER PHINTHU (THAI VOWEL SIGN PHINTHU) */
-  [0xe3b, 0xe3b],
-  [0xe3c, 0xe3c],
-  [0xe3d, 0xe3d],
-  [0xe3e, 0xe3e],
-  [0xe3f, 0xe3f], /* THAI CURRENCY SYMBOL BAHT (THAI BAHT SIGN) */
-  [0xe40, 0xe40], /* THAI CHARACTER SARA E (THAI VOWEL SIGN SARA E) */
-  [0xe41, 0xe41], /* THAI CHARACTER SARA AE (THAI VOWEL SIGN SARA AE) */
-  [0xe42, 0xe42], /* THAI CHARACTER SARA O (THAI VOWEL SIGN SARA O) */
-  [0xe43, 0xe43], /* THAI CHARACTER SARA AI MAIMUAN (THAI VOWEL SIGN SARA MAI MUAN) */
-  [0xe44, 0xe44], /* THAI CHARACTER SARA AI MAIMALAI (THAI VOWEL SIGN SARA MAI MALAI) */
-  [0xe45, 0xe45], /* THAI CHARACTER LAKKHANGYAO (THAI LAK KHANG YAO) */
-  [0xe46, 0xe46], /* THAI CHARACTER MAIYAMOK (THAI MAI YAMOK) */
-  [0xe47, 0xe47], /* THAI CHARACTER MAITAIKHU (THAI VOWEL SIGN MAI TAI KHU) */
-  [0xe48, 0xe48], /* THAI CHARACTER MAI EK (THAI TONE MAI EK) */
-  [0xe49, 0xe49], /* THAI CHARACTER MAI THO (THAI TONE MAI THO) */
-  [0xe4a, 0xe4a], /* THAI CHARACTER MAI TRI (THAI TONE MAI TRI) */
-  [0xe4b, 0xe4b], /* THAI CHARACTER MAI CHATTAWA (THAI TONE MAI CHATTAWA) */
-  [0xe4c, 0xe4c], /* THAI CHARACTER THANTHAKHAT (THAI THANTHAKHAT) */
-  [0xe4d, 0xe4d], /* THAI CHARACTER NIKHAHIT (THAI NIKKHAHIT) */
-  [0xe4e, 0xe4e], /* THAI CHARACTER YAMAKKAN (THAI YAMAKKAN) */
-  [0xe4f, 0xe4f], /* THAI CHARACTER FONGMAN (THAI FONGMAN) */
-  [0xe50, 0xe50], /* THAI DIGIT ZERO */
-  [0xe51, 0xe51], /* THAI DIGIT ONE */
-  [0xe52, 0xe52], /* THAI DIGIT TWO */
-  [0xe53, 0xe53], /* THAI DIGIT THREE */
-  [0xe54, 0xe54], /* THAI DIGIT FOUR */
-  [0xe55, 0xe55], /* THAI DIGIT FIVE */
-  [0xe56, 0xe56], /* THAI DIGIT SIX */
-  [0xe57, 0xe57], /* THAI DIGIT SEVEN */
-  [0xe58, 0xe58], /* THAI DIGIT EIGHT */
-  [0xe59, 0xe59], /* THAI DIGIT NINE */
-  [0xe5a, 0xe5a], /* THAI CHARACTER ANGKHANKHU (THAI ANGKHANKHU) */
-  [0xe5b, 0xe5b], /* THAI CHARACTER KHOMUT (THAI KHOMUT) */
-  [0xe5c, 0xe5c],
-  [0xe5d, 0xe5d],
-  [0xe5e, 0xe5e],
-  [0xe5f, 0xe5f],
-  [0xe60, 0xe60],
-  [0xe61, 0xe61],
-  [0xe62, 0xe62],
-  [0xe63, 0xe63],
-  [0xe64, 0xe64],
-  [0xe65, 0xe65],
-  [0xe66, 0xe66],
-  [0xe67, 0xe67],
-  [0xe68, 0xe68],
-  [0xe69, 0xe69],
-  [0xe6a, 0xe6a],
-  [0xe6b, 0xe6b],
-  [0xe6c, 0xe6c],
-  [0xe6d, 0xe6d],
-  [0xe6e, 0xe6e],
-  [0xe6f, 0xe6f],
-  [0xe70, 0xe70],
-  [0xe71, 0xe71],
-  [0xe72, 0xe72],
-  [0xe73, 0xe73],
-  [0xe74, 0xe74],
-  [0xe75, 0xe75],
-  [0xe76, 0xe76],
-  [0xe77, 0xe77],
-  [0xe78, 0xe78],
-  [0xe79, 0xe79],
-  [0xe7a, 0xe7a],
-  [0xe7b, 0xe7b],
-  [0xe7c, 0xe7c],
-  [0xe7d, 0xe7d],
-  [0xe7e, 0xe7e],
-  [0xe7f, 0xe7f],
-  [0xe80, 0xe80],
-  [0xe81, 0xe81], /* LAO LETTER KO */
-  [0xe82, 0xe82], /* LAO LETTER KHO SUNG */
-  [0xe83, 0xe83],
-  [0xe84, 0xe84], /* LAO LETTER KHO TAM */
-  [0xe85, 0xe85],
-  [0xe86, 0xe86],
-  [0xe87, 0xe87], /* LAO LETTER NGO */
-  [0xe88, 0xe88], /* LAO LETTER CO */
-  [0xe89, 0xe89],
-  [0xe8a, 0xe8a], /* LAO LETTER SO TAM */
-  [0xe8b, 0xe8b],
-  [0xe8c, 0xe8c],
-  [0xe8d, 0xe8d], /* LAO LETTER NYO */
-  [0xe8e, 0xe8e],
-  [0xe8f, 0xe8f],
-  [0xe90, 0xe90],
-  [0xe91, 0xe91],
-  [0xe92, 0xe92],
-  [0xe93, 0xe93],
-  [0xe94, 0xe94], /* LAO LETTER DO */
-  [0xe95, 0xe95], /* LAO LETTER TO */
-  [0xe96, 0xe96], /* LAO LETTER THO SUNG */
-  [0xe97, 0xe97], /* LAO LETTER THO TAM */
-  [0xe98, 0xe98],
-  [0xe99, 0xe99], /* LAO LETTER NO */
-  [0xe9a, 0xe9a], /* LAO LETTER BO */
-  [0xe9b, 0xe9b], /* LAO LETTER PO */
-  [0xe9c, 0xe9c], /* LAO LETTER PHO SUNG */
-  [0xe9d, 0xe9d], /* LAO LETTER FO TAM */
-  [0xe9e, 0xe9e], /* LAO LETTER PHO TAM */
-  [0xe9f, 0xe9f], /* LAO LETTER FO SUNG */
-  [0xea0, 0xea0],
-  [0xea1, 0xea1], /* LAO LETTER MO */
-  [0xea2, 0xea2], /* LAO LETTER YO */
-  [0xea3, 0xea3], /* LAO LETTER LO LING */
-  [0xea4, 0xea4],
-  [0xea5, 0xea5], /* LAO LETTER LO LOOT */
-  [0xea6, 0xea6],
-  [0xea7, 0xea7], /* LAO LETTER WO */
-  [0xea8, 0xea8],
-  [0xea9, 0xea9],
-  [0xeaa, 0xeaa], /* LAO LETTER SO SUNG */
-  [0xeab, 0xeab], /* LAO LETTER HO SUNG */
-  [0xeac, 0xeac],
-  [0xead, 0xead], /* LAO LETTER O */
-  [0xeae, 0xeae], /* LAO LETTER HO TAM */
-  [0xeaf, 0xeaf], /* LAO ELLIPSIS */
-  [0xeb0, 0xeb0], /* LAO VOWEL SIGN A */
-  [0xeb1, 0xeb1], /* LAO VOWEL SIGN MAI KAN */
-  [0xeb2, 0xeb2], /* LAO VOWEL SIGN AA */
-  [0xeb3, 0xeb3], /* LAO VOWEL SIGN AM */
-  [0xeb4, 0xeb4], /* LAO VOWEL SIGN I */
-  [0xeb5, 0xeb5], /* LAO VOWEL SIGN II */
-  [0xeb6, 0xeb6], /* LAO VOWEL SIGN Y */
-  [0xeb7, 0xeb7], /* LAO VOWEL SIGN YY */
-  [0xeb8, 0xeb8], /* LAO VOWEL SIGN U */
-  [0xeb9, 0xeb9], /* LAO VOWEL SIGN UU */
-  [0xeba, 0xeba],
-  [0xebb, 0xebb], /* LAO VOWEL SIGN MAI KON */
-  [0xebc, 0xebc], /* LAO SEMIVOWEL SIGN LO */
-  [0xebd, 0xebd], /* LAO SEMIVOWEL SIGN NYO */
-  [0xebe, 0xebe],
-  [0xebf, 0xebf],
-  [0xec0, 0xec0], /* LAO VOWEL SIGN E */
-  [0xec1, 0xec1], /* LAO VOWEL SIGN EI */
-  [0xec2, 0xec2], /* LAO VOWEL SIGN O */
-  [0xec3, 0xec3], /* LAO VOWEL SIGN AY */
-  [0xec4, 0xec4], /* LAO VOWEL SIGN AI */
-  [0xec5, 0xec5],
-  [0xec6, 0xec6], /* LAO KO LA */
-  [0xec7, 0xec7],
-  [0xec8, 0xec8], /* LAO TONE MAI EK */
-  [0xec9, 0xec9], /* LAO TONE MAI THO */
-  [0xeca, 0xeca], /* LAO TONE MAI TI */
-  [0xecb, 0xecb], /* LAO TONE MAI CATAWA */
-  [0xecc, 0xecc], /* LAO CANCELLATION MARK */
-  [0xecd, 0xecd], /* LAO NIGGAHITA */
-  [0xece, 0xece],
-  [0xecf, 0xecf],
-  [0xed0, 0xed0], /* LAO DIGIT ZERO */
-  [0xed1, 0xed1], /* LAO DIGIT ONE */
-  [0xed2, 0xed2], /* LAO DIGIT TWO */
-  [0xed3, 0xed3], /* LAO DIGIT THREE */
-  [0xed4, 0xed4], /* LAO DIGIT FOUR */
-  [0xed5, 0xed5], /* LAO DIGIT FIVE */
-  [0xed6, 0xed6], /* LAO DIGIT SIX */
-  [0xed7, 0xed7], /* LAO DIGIT SEVEN */
-  [0xed8, 0xed8], /* LAO DIGIT EIGHT */
-  [0xed9, 0xed9], /* LAO DIGIT NINE */
-  [0xeda, 0xeda],
-  [0xedb, 0xedb],
-  [0xedc, 0xedc], /* LAO HO NO */
-  [0xedd, 0xedd], /* LAO HO MO */
-  [0xede, 0xede], /* LAO LETTER KHMU GO */
-  [0xedf, 0xedf], /* LAO LETTER KHMU NYO */
-  [0xee0, 0xee0],
-  [0xee1, 0xee1],
-  [0xee2, 0xee2],
-  [0xee3, 0xee3],
-  [0xee4, 0xee4],
-  [0xee5, 0xee5],
-  [0xee6, 0xee6],
-  [0xee7, 0xee7],
-  [0xee8, 0xee8],
-  [0xee9, 0xee9],
-  [0xeea, 0xeea],
-  [0xeeb, 0xeeb],
-  [0xeec, 0xeec],
-  [0xeed, 0xeed],
-  [0xeee, 0xeee],
-  [0xeef, 0xeef],
-  [0xef0, 0xef0],
-  [0xef1, 0xef1],
-  [0xef2, 0xef2],
-  [0xef3, 0xef3],
-  [0xef4, 0xef4],
-  [0xef5, 0xef5],
-  [0xef6, 0xef6],
-  [0xef7, 0xef7],
-  [0xef8, 0xef8],
-  [0xef9, 0xef9],
-  [0xefa, 0xefa],
-  [0xefb, 0xefb],
-  [0xefc, 0xefc],
-  [0xefd, 0xefd],
-  [0xefe, 0xefe],
-  [0xeff, 0xeff],
-  [0xf00, 0xf00], /* TIBETAN SYLLABLE OM */
-  [0xf01, 0xf01], /* TIBETAN MARK GTER YIG MGO TRUNCATED A */
-  [0xf02, 0xf02], /* TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA */
-  [0xf03, 0xf03], /* TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA */
-  [0xf04, 0xf04], /* TIBETAN MARK INITIAL YIG MGO MDUN MA (TIBETAN SINGLE ORNAMENT) */
-  [0xf05, 0xf05], /* TIBETAN MARK CLOSING YIG MGO SGAB MA */
-  [0xf06, 0xf06], /* TIBETAN MARK CARET YIG MGO PHUR SHAD MA */
-  [0xf07, 0xf07], /* TIBETAN MARK YIG MGO TSHEG SHAD MA */
-  [0xf08, 0xf08], /* TIBETAN MARK SBRUL SHAD (TIBETAN RGYANSHAD) */
-  [0xf09, 0xf09], /* TIBETAN MARK BSKUR YIG MGO */
-  [0xf0a, 0xf0a], /* TIBETAN MARK BKA- SHOG YIG MGO */
-  [0xf0b, 0xf0b], /* TIBETAN MARK INTERSYLLABIC TSHEG (TIBETAN TSEG) */
-  [0xf0c, 0xf0c], /* TIBETAN MARK DELIMITER TSHEG BSTAR */
-  [0xf0d, 0xf0d], /* TIBETAN MARK SHAD (TIBETAN SHAD) */
-  [0xf0e, 0xf0e], /* TIBETAN MARK NYIS SHAD (TIBETAN DOUBLE SHAD) */
-  [0xf0f, 0xf0f], /* TIBETAN MARK TSHEG SHAD */
-  [0xf10, 0xf10], /* TIBETAN MARK NYIS TSHEG SHAD */
-  [0xf11, 0xf11], /* TIBETAN MARK RIN CHEN SPUNGS SHAD (TIBETAN RINCHANPHUNGSHAD) */
-  [0xf12, 0xf12], /* TIBETAN MARK RGYA GRAM SHAD */
-  [0xf13, 0xf13], /* TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN */
-  [0xf14, 0xf14], /* TIBETAN MARK GTER TSHEG (TIBETAN COMMA) */
-  [0xf15, 0xf15], /* TIBETAN LOGOTYPE SIGN CHAD RTAGS */
-  [0xf16, 0xf16], /* TIBETAN LOGOTYPE SIGN LHAG RTAGS */
-  [0xf17, 0xf17], /* TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS */
-  [0xf18, 0xf18], /* TIBETAN ASTROLOGICAL SIGN -KHYUD PA */
-  [0xf19, 0xf19], /* TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS */
-  [0xf1a, 0xf1a], /* TIBETAN SIGN RDEL DKAR GCIG */
-  [0xf1b, 0xf1b], /* TIBETAN SIGN RDEL DKAR GNYIS */
-  [0xf1c, 0xf1c], /* TIBETAN SIGN RDEL DKAR GSUM */
-  [0xf1d, 0xf1d], /* TIBETAN SIGN RDEL NAG GCIG */
-  [0xf1e, 0xf1e], /* TIBETAN SIGN RDEL NAG GNYIS */
-  [0xf1f, 0xf1f], /* TIBETAN SIGN RDEL DKAR RDEL NAG */
-  [0xf20, 0xf20], /* TIBETAN DIGIT ZERO */
-  [0xf21, 0xf21], /* TIBETAN DIGIT ONE */
-  [0xf22, 0xf22], /* TIBETAN DIGIT TWO */
-  [0xf23, 0xf23], /* TIBETAN DIGIT THREE */
-  [0xf24, 0xf24], /* TIBETAN DIGIT FOUR */
-  [0xf25, 0xf25], /* TIBETAN DIGIT FIVE */
-  [0xf26, 0xf26], /* TIBETAN DIGIT SIX */
-  [0xf27, 0xf27], /* TIBETAN DIGIT SEVEN */
-  [0xf28, 0xf28], /* TIBETAN DIGIT EIGHT */
-  [0xf29, 0xf29], /* TIBETAN DIGIT NINE */
-  [0xf2a, 0xf2a], /* TIBETAN DIGIT HALF ONE */
-  [0xf2b, 0xf2b], /* TIBETAN DIGIT HALF TWO */
-  [0xf2c, 0xf2c], /* TIBETAN DIGIT HALF THREE */
-  [0xf2d, 0xf2d], /* TIBETAN DIGIT HALF FOUR */
-  [0xf2e, 0xf2e], /* TIBETAN DIGIT HALF FIVE */
-  [0xf2f, 0xf2f], /* TIBETAN DIGIT HALF SIX */
-  [0xf30, 0xf30], /* TIBETAN DIGIT HALF SEVEN */
-  [0xf31, 0xf31], /* TIBETAN DIGIT HALF EIGHT */
-  [0xf32, 0xf32], /* TIBETAN DIGIT HALF NINE */
-  [0xf33, 0xf33], /* TIBETAN DIGIT HALF ZERO */
-  [0xf34, 0xf34], /* TIBETAN MARK BSDUS RTAGS */
-  [0xf35, 0xf35], /* TIBETAN MARK NGAS BZUNG NYI ZLA (TIBETAN HONORIFIC UNDER RING) */
-  [0xf36, 0xf36], /* TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN */
-  [0xf37, 0xf37], /* TIBETAN MARK NGAS BZUNG SGOR RTAGS (TIBETAN UNDER RING) */
-  [0xf38, 0xf38], /* TIBETAN MARK CHE MGO */
-  [0xf39, 0xf39], /* TIBETAN MARK TSA -PHRU (TIBETAN LENITION MARK) */
-  [0xf3a, 0xf3a], /* TIBETAN MARK GUG RTAGS GYON */
-  [0xf3b, 0xf3b], /* TIBETAN MARK GUG RTAGS GYAS */
-  [0xf3c, 0xf3c], /* TIBETAN MARK ANG KHANG GYON (TIBETAN LEFT BRACE) */
-  [0xf3d, 0xf3d], /* TIBETAN MARK ANG KHANG GYAS (TIBETAN RIGHT BRACE) */
-  [0xf3e, 0xf3e], /* TIBETAN SIGN YAR TSHES */
-  [0xf3f, 0xf3f], /* TIBETAN SIGN MAR TSHES */
-  [0xf40, 0xf40], /* TIBETAN LETTER KA */
-  [0xf41, 0xf41], /* TIBETAN LETTER KHA */
-  [0xf42, 0xf42], /* TIBETAN LETTER GA */
-  [0xf43, 0xf43], /* TIBETAN LETTER GHA */
-  [0xf44, 0xf44], /* TIBETAN LETTER NGA */
-  [0xf45, 0xf45], /* TIBETAN LETTER CA */
-  [0xf46, 0xf46], /* TIBETAN LETTER CHA */
-  [0xf47, 0xf47], /* TIBETAN LETTER JA */
-  [0xf48, 0xf48],
-  [0xf49, 0xf49], /* TIBETAN LETTER NYA */
-  [0xf4a, 0xf4a], /* TIBETAN LETTER TTA (TIBETAN LETTER REVERSED TA) */
-  [0xf4b, 0xf4b], /* TIBETAN LETTER TTHA (TIBETAN LETTER REVERSED THA) */
-  [0xf4c, 0xf4c], /* TIBETAN LETTER DDA (TIBETAN LETTER REVERSED DA) */
-  [0xf4d, 0xf4d], /* TIBETAN LETTER DDHA */
-  [0xf4e, 0xf4e], /* TIBETAN LETTER NNA (TIBETAN LETTER REVERSED NA) */
-  [0xf4f, 0xf4f], /* TIBETAN LETTER TA */
-  [0xf50, 0xf50], /* TIBETAN LETTER THA */
-  [0xf51, 0xf51], /* TIBETAN LETTER DA */
-  [0xf52, 0xf52], /* TIBETAN LETTER DHA */
-  [0xf53, 0xf53], /* TIBETAN LETTER NA */
-  [0xf54, 0xf54], /* TIBETAN LETTER PA */
-  [0xf55, 0xf55], /* TIBETAN LETTER PHA */
-  [0xf56, 0xf56], /* TIBETAN LETTER BA */
-  [0xf57, 0xf57], /* TIBETAN LETTER BHA */
-  [0xf58, 0xf58], /* TIBETAN LETTER MA */
-  [0xf59, 0xf59], /* TIBETAN LETTER TSA */
-  [0xf5a, 0xf5a], /* TIBETAN LETTER TSHA */
-  [0xf5b, 0xf5b], /* TIBETAN LETTER DZA */
-  [0xf5c, 0xf5c], /* TIBETAN LETTER DZHA */
-  [0xf5d, 0xf5d], /* TIBETAN LETTER WA */
-  [0xf5e, 0xf5e], /* TIBETAN LETTER ZHA */
-  [0xf5f, 0xf5f], /* TIBETAN LETTER ZA */
-  [0xf60, 0xf60], /* TIBETAN LETTER -A (TIBETAN LETTER AA) */
-  [0xf61, 0xf61], /* TIBETAN LETTER YA */
-  [0xf62, 0xf62], /* TIBETAN LETTER RA */
-  [0xf63, 0xf63], /* TIBETAN LETTER LA */
-  [0xf64, 0xf64], /* TIBETAN LETTER SHA */
-  [0xf65, 0xf65], /* TIBETAN LETTER SSA (TIBETAN LETTER REVERSED SHA) */
-  [0xf66, 0xf66], /* TIBETAN LETTER SA */
-  [0xf67, 0xf67], /* TIBETAN LETTER HA */
-  [0xf68, 0xf68], /* TIBETAN LETTER A */
-  [0xf69, 0xf69], /* TIBETAN LETTER KSSA */
-  [0xf6a, 0xf6a], /* TIBETAN LETTER FIXED-FORM RA */
-  [0xf6b, 0xf6b], /* TIBETAN LETTER KKA */
-  [0xf6c, 0xf6c], /* TIBETAN LETTER RRA */
-  [0xf6d, 0xf6d],
-  [0xf6e, 0xf6e],
-  [0xf6f, 0xf6f],
-  [0xf70, 0xf70],
-  [0xf71, 0xf71], /* TIBETAN VOWEL SIGN AA */
-  [0xf72, 0xf72], /* TIBETAN VOWEL SIGN I */
-  [0xf73, 0xf73], /* TIBETAN VOWEL SIGN II */
-  [0xf74, 0xf74], /* TIBETAN VOWEL SIGN U */
-  [0xf75, 0xf75], /* TIBETAN VOWEL SIGN UU */
-  [0xf76, 0xf76], /* TIBETAN VOWEL SIGN VOCALIC R */
-  [0xf77, 0xf77], /* TIBETAN VOWEL SIGN VOCALIC RR */
-  [0xf78, 0xf78], /* TIBETAN VOWEL SIGN VOCALIC L */
-  [0xf79, 0xf79], /* TIBETAN VOWEL SIGN VOCALIC LL */
-  [0xf7a, 0xf7a], /* TIBETAN VOWEL SIGN E */
-  [0xf7b, 0xf7b], /* TIBETAN VOWEL SIGN EE (TIBETAN VOWEL SIGN AI) */
-  [0xf7c, 0xf7c], /* TIBETAN VOWEL SIGN O */
-  [0xf7d, 0xf7d], /* TIBETAN VOWEL SIGN OO (TIBETAN VOWEL SIGN AU) */
-  [0xf7e, 0xf7e], /* TIBETAN SIGN RJES SU NGA RO (TIBETAN ANUSVARA) */
-  [0xf7f, 0xf7f], /* TIBETAN SIGN RNAM BCAD (TIBETAN VISARGA) */
-  [0xf80, 0xf80], /* TIBETAN VOWEL SIGN REVERSED I (TIBETAN VOWEL SIGN SHORT I) */
-  [0xf81, 0xf81], /* TIBETAN VOWEL SIGN REVERSED II */
-  [0xf82, 0xf82], /* TIBETAN SIGN NYI ZLA NAA DA (TIBETAN CANDRABINDU WITH ORNAMENT) */
-  [0xf83, 0xf83], /* TIBETAN SIGN SNA LDAN (TIBETAN CANDRABINDU) */
-  [0xf84, 0xf84], /* TIBETAN MARK HALANTA (TIBETAN VIRAMA) */
-  [0xf85, 0xf85], /* TIBETAN MARK PALUTA (TIBETAN CHUCHENYIGE) */
-  [0xf86, 0xf86], /* TIBETAN SIGN LCI RTAGS */
-  [0xf87, 0xf87], /* TIBETAN SIGN YANG RTAGS */
-  [0xf88, 0xf88], /* TIBETAN SIGN LCE TSA CAN */
-  [0xf89, 0xf89], /* TIBETAN SIGN MCHU CAN */
-  [0xf8a, 0xf8a], /* TIBETAN SIGN GRU CAN RGYINGS */
-  [0xf8b, 0xf8b], /* TIBETAN SIGN GRU MED RGYINGS */
-  [0xf8c, 0xf8c], /* TIBETAN SIGN INVERTED MCHU CAN */
-  [0xf8d, 0xf8d], /* TIBETAN SUBJOINED SIGN LCE TSA CAN */
-  [0xf8e, 0xf8e], /* TIBETAN SUBJOINED SIGN MCHU CAN */
-  [0xf8f, 0xf8f], /* TIBETAN SUBJOINED SIGN INVERTED MCHU CAN */
-  [0xf90, 0xf90], /* TIBETAN SUBJOINED LETTER KA */
-  [0xf91, 0xf91], /* TIBETAN SUBJOINED LETTER KHA */
-  [0xf92, 0xf92], /* TIBETAN SUBJOINED LETTER GA */
-  [0xf93, 0xf93], /* TIBETAN SUBJOINED LETTER GHA */
-  [0xf94, 0xf94], /* TIBETAN SUBJOINED LETTER NGA */
-  [0xf95, 0xf95], /* TIBETAN SUBJOINED LETTER CA */
-  [0xf96, 0xf96], /* TIBETAN SUBJOINED LETTER CHA */
-  [0xf97, 0xf97], /* TIBETAN SUBJOINED LETTER JA */
-  [0xf98, 0xf98],
-  [0xf99, 0xf99], /* TIBETAN SUBJOINED LETTER NYA */
-  [0xf9a, 0xf9a], /* TIBETAN SUBJOINED LETTER TTA */
-  [0xf9b, 0xf9b], /* TIBETAN SUBJOINED LETTER TTHA */
-  [0xf9c, 0xf9c], /* TIBETAN SUBJOINED LETTER DDA */
-  [0xf9d, 0xf9d], /* TIBETAN SUBJOINED LETTER DDHA */
-  [0xf9e, 0xf9e], /* TIBETAN SUBJOINED LETTER NNA */
-  [0xf9f, 0xf9f], /* TIBETAN SUBJOINED LETTER TA */
-  [0xfa0, 0xfa0], /* TIBETAN SUBJOINED LETTER THA */
-  [0xfa1, 0xfa1], /* TIBETAN SUBJOINED LETTER DA */
-  [0xfa2, 0xfa2], /* TIBETAN SUBJOINED LETTER DHA */
-  [0xfa3, 0xfa3], /* TIBETAN SUBJOINED LETTER NA */
-  [0xfa4, 0xfa4], /* TIBETAN SUBJOINED LETTER PA */
-  [0xfa5, 0xfa5], /* TIBETAN SUBJOINED LETTER PHA */
-  [0xfa6, 0xfa6], /* TIBETAN SUBJOINED LETTER BA */
-  [0xfa7, 0xfa7], /* TIBETAN SUBJOINED LETTER BHA */
-  [0xfa8, 0xfa8], /* TIBETAN SUBJOINED LETTER MA */
-  [0xfa9, 0xfa9], /* TIBETAN SUBJOINED LETTER TSA */
-  [0xfaa, 0xfaa], /* TIBETAN SUBJOINED LETTER TSHA */
-  [0xfab, 0xfab], /* TIBETAN SUBJOINED LETTER DZA */
-  [0xfac, 0xfac], /* TIBETAN SUBJOINED LETTER DZHA */
-  [0xfad, 0xfad], /* TIBETAN SUBJOINED LETTER WA */
-  [0xfae, 0xfae], /* TIBETAN SUBJOINED LETTER ZHA */
-  [0xfaf, 0xfaf], /* TIBETAN SUBJOINED LETTER ZA */
-  [0xfb0, 0xfb0], /* TIBETAN SUBJOINED LETTER -A */
-  [0xfb1, 0xfb1], /* TIBETAN SUBJOINED LETTER YA */
-  [0xfb2, 0xfb2], /* TIBETAN SUBJOINED LETTER RA */
-  [0xfb3, 0xfb3], /* TIBETAN SUBJOINED LETTER LA */
-  [0xfb4, 0xfb4], /* TIBETAN SUBJOINED LETTER SHA */
-  [0xfb5, 0xfb5], /* TIBETAN SUBJOINED LETTER SSA */
-  [0xfb6, 0xfb6], /* TIBETAN SUBJOINED LETTER SA */
-  [0xfb7, 0xfb7], /* TIBETAN SUBJOINED LETTER HA */
-  [0xfb8, 0xfb8], /* TIBETAN SUBJOINED LETTER A */
-  [0xfb9, 0xfb9], /* TIBETAN SUBJOINED LETTER KSSA */
-  [0xfba, 0xfba], /* TIBETAN SUBJOINED LETTER FIXED-FORM WA */
-  [0xfbb, 0xfbb], /* TIBETAN SUBJOINED LETTER FIXED-FORM YA */
-  [0xfbc, 0xfbc], /* TIBETAN SUBJOINED LETTER FIXED-FORM RA */
-  [0xfbd, 0xfbd],
-  [0xfbe, 0xfbe], /* TIBETAN KU RU KHA */
-  [0xfbf, 0xfbf], /* TIBETAN KU RU KHA BZHI MIG CAN */
-  [0xfc0, 0xfc0], /* TIBETAN CANTILLATION SIGN HEAVY BEAT */
-  [0xfc1, 0xfc1], /* TIBETAN CANTILLATION SIGN LIGHT BEAT */
-  [0xfc2, 0xfc2], /* TIBETAN CANTILLATION SIGN CANG TE-U */
-  [0xfc3, 0xfc3], /* TIBETAN CANTILLATION SIGN SBUB -CHAL */
-  [0xfc4, 0xfc4], /* TIBETAN SYMBOL DRIL BU */
-  [0xfc5, 0xfc5], /* TIBETAN SYMBOL RDO RJE */
-  [0xfc6, 0xfc6], /* TIBETAN SYMBOL PADMA GDAN */
-  [0xfc7, 0xfc7], /* TIBETAN SYMBOL RDO RJE RGYA GRAM */
-  [0xfc8, 0xfc8], /* TIBETAN SYMBOL PHUR PA */
-  [0xfc9, 0xfc9], /* TIBETAN SYMBOL NOR BU */
-  [0xfca, 0xfca], /* TIBETAN SYMBOL NOR BU NYIS -KHYIL */
-  [0xfcb, 0xfcb], /* TIBETAN SYMBOL NOR BU GSUM -KHYIL */
-  [0xfcc, 0xfcc], /* TIBETAN SYMBOL NOR BU BZHI -KHYIL */
-  [0xfcd, 0xfcd],
-  [0xfce, 0xfce], /* TIBETAN SIGN RDEL NAG RDEL DKAR */
-  [0xfcf, 0xfcf], /* TIBETAN SIGN RDEL NAG GSUM */
-  [0xfd0, 0xfd0], /* TIBETAN MARK BSKA- SHOG GI MGO RGYAN */
-  [0xfd1, 0xfd1], /* TIBETAN MARK MNYAM YIG GI MGO RGYAN */
-  [0xfd2, 0xfd2], /* TIBETAN MARK NYIS TSHEG */
-  [0xfd3, 0xfd3], /* TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA */
-  [0xfd4, 0xfd4], /* TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA */
-  [0xfd5, 0xfd5], /* RIGHT-FACING SVASTI SIGN */
-  [0xfd6, 0xfd6], /* LEFT-FACING SVASTI SIGN */
-  [0xfd7, 0xfd7], /* RIGHT-FACING SVASTI SIGN WITH DOTS */
-  [0xfd8, 0xfd8], /* LEFT-FACING SVASTI SIGN WITH DOTS */
-  [0xfd9, 0xfd9], /* TIBETAN MARK LEADING MCHAN RTAGS */
-  [0xfda, 0xfda], /* TIBETAN MARK TRAILING MCHAN RTAGS */
-  [0xfdb, 0xfdb],
-  [0xfdc, 0xfdc],
-  [0xfdd, 0xfdd],
-  [0xfde, 0xfde],
-  [0xfdf, 0xfdf],
-  [0xfe0, 0xfe0],
-  [0xfe1, 0xfe1],
-  [0xfe2, 0xfe2],
-  [0xfe3, 0xfe3],
-  [0xfe4, 0xfe4],
-  [0xfe5, 0xfe5],
-  [0xfe6, 0xfe6],
-  [0xfe7, 0xfe7],
-  [0xfe8, 0xfe8],
-  [0xfe9, 0xfe9],
-  [0xfea, 0xfea],
-  [0xfeb, 0xfeb],
-  [0xfec, 0xfec],
-  [0xfed, 0xfed],
-  [0xfee, 0xfee],
-  [0xfef, 0xfef],
-  [0xff0, 0xff0],
-  [0xff1, 0xff1],
-  [0xff2, 0xff2],
-  [0xff3, 0xff3],
-  [0xff4, 0xff4],
-  [0xff5, 0xff5],
-  [0xff6, 0xff6],
-  [0xff7, 0xff7],
-  [0xff8, 0xff8],
-  [0xff9, 0xff9],
-  [0xffa, 0xffa],
-  [0xffb, 0xffb],
-  [0xffc, 0xffc],
-  [0xffd, 0xffd],
-  [0xffe, 0xffe],
-  [0xfff, 0xfff],
-  [0x1000, 0x1000], /* MYANMAR LETTER KA */
-  [0x1001, 0x1001], /* MYANMAR LETTER KHA */
-  [0x1002, 0x1002], /* MYANMAR LETTER GA */
-  [0x1003, 0x1003], /* MYANMAR LETTER GHA */
-  [0x1004, 0x1004], /* MYANMAR LETTER NGA */
-  [0x1005, 0x1005], /* MYANMAR LETTER CA */
-  [0x1006, 0x1006], /* MYANMAR LETTER CHA */
-  [0x1007, 0x1007], /* MYANMAR LETTER JA */
-  [0x1008, 0x1008], /* MYANMAR LETTER JHA */
-  [0x1009, 0x1009], /* MYANMAR LETTER NYA */
-  [0x100a, 0x100a], /* MYANMAR LETTER NNYA */
-  [0x100b, 0x100b], /* MYANMAR LETTER TTA */
-  [0x100c, 0x100c], /* MYANMAR LETTER TTHA */
-  [0x100d, 0x100d], /* MYANMAR LETTER DDA */
-  [0x100e, 0x100e], /* MYANMAR LETTER DDHA */
-  [0x100f, 0x100f], /* MYANMAR LETTER NNA */
-  [0x1010, 0x1010], /* MYANMAR LETTER TA */
-  [0x1011, 0x1011], /* MYANMAR LETTER THA */
-  [0x1012, 0x1012], /* MYANMAR LETTER DA */
-  [0x1013, 0x1013], /* MYANMAR LETTER DHA */
-  [0x1014, 0x1014], /* MYANMAR LETTER NA */
-  [0x1015, 0x1015], /* MYANMAR LETTER PA */
-  [0x1016, 0x1016], /* MYANMAR LETTER PHA */
-  [0x1017, 0x1017], /* MYANMAR LETTER BA */
-  [0x1018, 0x1018], /* MYANMAR LETTER BHA */
-  [0x1019, 0x1019], /* MYANMAR LETTER MA */
-  [0x101a, 0x101a], /* MYANMAR LETTER YA */
-  [0x101b, 0x101b], /* MYANMAR LETTER RA */
-  [0x101c, 0x101c], /* MYANMAR LETTER LA */
-  [0x101d, 0x101d], /* MYANMAR LETTER WA */
-  [0x101e, 0x101e], /* MYANMAR LETTER SA */
-  [0x101f, 0x101f], /* MYANMAR LETTER HA */
-  [0x1020, 0x1020], /* MYANMAR LETTER LLA */
-  [0x1021, 0x1021], /* MYANMAR LETTER A */
-  [0x1022, 0x1022], /* MYANMAR LETTER SHAN A */
-  [0x1023, 0x1023], /* MYANMAR LETTER I */
-  [0x1024, 0x1024], /* MYANMAR LETTER II */
-  [0x1025, 0x1025], /* MYANMAR LETTER U */
-  [0x1026, 0x1026], /* MYANMAR LETTER UU */
-  [0x1027, 0x1027], /* MYANMAR LETTER E */
-  [0x1028, 0x1028], /* MYANMAR LETTER MON E */
-  [0x1029, 0x1029], /* MYANMAR LETTER O */
-  [0x102a, 0x102a], /* MYANMAR LETTER AU */
-  [0x102b, 0x102b], /* MYANMAR VOWEL SIGN TALL AA */
-  [0x102c, 0x102c], /* MYANMAR VOWEL SIGN AA */
-  [0x102d, 0x102d], /* MYANMAR VOWEL SIGN I */
-  [0x102e, 0x102e], /* MYANMAR VOWEL SIGN II */
-  [0x102f, 0x102f], /* MYANMAR VOWEL SIGN U */
-  [0x1030, 0x1030], /* MYANMAR VOWEL SIGN UU */
-  [0x1031, 0x1031], /* MYANMAR VOWEL SIGN E */
-  [0x1032, 0x1032], /* MYANMAR VOWEL SIGN AI */
-  [0x1033, 0x1033], /* MYANMAR VOWEL SIGN MON II */
-  [0x1034, 0x1034], /* MYANMAR VOWEL SIGN MON O */
-  [0x1035, 0x1035], /* MYANMAR VOWEL SIGN E ABOVE */
-  [0x1036, 0x1036], /* MYANMAR SIGN ANUSVARA */
-  [0x1037, 0x1037], /* MYANMAR SIGN DOT BELOW */
-  [0x1038, 0x1038], /* MYANMAR SIGN VISARGA */
-  [0x1039, 0x1039], /* MYANMAR SIGN VIRAMA */
-  [0x103a, 0x103a], /* MYANMAR SIGN ASAT */
-  [0x103b, 0x103b], /* MYANMAR CONSONANT SIGN MEDIAL YA */
-  [0x103c, 0x103c], /* MYANMAR CONSONANT SIGN MEDIAL RA */
-  [0x103d, 0x103d], /* MYANMAR CONSONANT SIGN MEDIAL WA */
-  [0x103e, 0x103e], /* MYANMAR CONSONANT SIGN MEDIAL HA */
-  [0x103f, 0x103f], /* MYANMAR LETTER GREAT SA */
-  [0x1040, 0x1040], /* MYANMAR DIGIT ZERO */
-  [0x1041, 0x1041], /* MYANMAR DIGIT ONE */
-  [0x1042, 0x1042], /* MYANMAR DIGIT TWO */
-  [0x1043, 0x1043], /* MYANMAR DIGIT THREE */
-  [0x1044, 0x1044], /* MYANMAR DIGIT FOUR */
-  [0x1045, 0x1045], /* MYANMAR DIGIT FIVE */
-  [0x1046, 0x1046], /* MYANMAR DIGIT SIX */
-  [0x1047, 0x1047], /* MYANMAR DIGIT SEVEN */
-  [0x1048, 0x1048], /* MYANMAR DIGIT EIGHT */
-  [0x1049, 0x1049], /* MYANMAR DIGIT NINE */
-  [0x104a, 0x104a], /* MYANMAR SIGN LITTLE SECTION */
-  [0x104b, 0x104b], /* MYANMAR SIGN SECTION */
-  [0x104c, 0x104c], /* MYANMAR SYMBOL LOCATIVE */
-  [0x104d, 0x104d], /* MYANMAR SYMBOL COMPLETED */
-  [0x104e, 0x104e], /* MYANMAR SYMBOL AFOREMENTIONED */
-  [0x104f, 0x104f], /* MYANMAR SYMBOL GENITIVE */
-  [0x1050, 0x1050], /* MYANMAR LETTER SHA */
-  [0x1051, 0x1051], /* MYANMAR LETTER SSA */
-  [0x1052, 0x1052], /* MYANMAR LETTER VOCALIC R */
-  [0x1053, 0x1053], /* MYANMAR LETTER VOCALIC RR */
-  [0x1054, 0x1054], /* MYANMAR LETTER VOCALIC L */
-  [0x1055, 0x1055], /* MYANMAR LETTER VOCALIC LL */
-  [0x1056, 0x1056], /* MYANMAR VOWEL SIGN VOCALIC R */
-  [0x1057, 0x1057], /* MYANMAR VOWEL SIGN VOCALIC RR */
-  [0x1058, 0x1058], /* MYANMAR VOWEL SIGN VOCALIC L */
-  [0x1059, 0x1059], /* MYANMAR VOWEL SIGN VOCALIC LL */
-  [0x105a, 0x105a], /* MYANMAR LETTER MON NGA */
-  [0x105b, 0x105b], /* MYANMAR LETTER MON JHA */
-  [0x105c, 0x105c], /* MYANMAR LETTER MON BBA */
-  [0x105d, 0x105d], /* MYANMAR LETTER MON BBE */
-  [0x105e, 0x105e], /* MYANMAR CONSONANT SIGN MON MEDIAL NA */
-  [0x105f, 0x105f], /* MYANMAR CONSONANT SIGN MON MEDIAL MA */
-  [0x1060, 0x1060], /* MYANMAR CONSONANT SIGN MON MEDIAL LA */
-  [0x1061, 0x1061], /* MYANMAR LETTER SGAW KAREN SHA */
-  [0x1062, 0x1062], /* MYANMAR VOWEL SIGN SGAW KAREN EU */
-  [0x1063, 0x1063], /* MYANMAR TONE MARK SGAW KAREN HATHI */
-  [0x1064, 0x1064], /* MYANMAR TONE MARK SGAW KAREN KE PHO */
-  [0x1065, 0x1065], /* MYANMAR LETTER WESTERN PWO KAREN THA */
-  [0x1066, 0x1066], /* MYANMAR LETTER WESTERN PWO KAREN PWA */
-  [0x1067, 0x1067], /* MYANMAR VOWEL SIGN WESTERN PWO KAREN EU */
-  [0x1068, 0x1068], /* MYANMAR VOWEL SIGN WESTERN PWO KAREN UE */
-  [0x1069, 0x1069], /* MYANMAR SIGN WESTERN PWO KAREN TONE-1 */
-  [0x106a, 0x106a], /* MYANMAR SIGN WESTERN PWO KAREN TONE-2 */
-  [0x106b, 0x106b], /* MYANMAR SIGN WESTERN PWO KAREN TONE-3 */
-  [0x106c, 0x106c], /* MYANMAR SIGN WESTERN PWO KAREN TONE-4 */
-  [0x106d, 0x106d], /* MYANMAR SIGN WESTERN PWO KAREN TONE-5 */
-  [0x106e, 0x106e], /* MYANMAR LETTER EASTERN PWO KAREN NNA */
-  [0x106f, 0x106f], /* MYANMAR LETTER EASTERN PWO KAREN YWA */
-  [0x1070, 0x1070], /* MYANMAR LETTER EASTERN PWO KAREN GHWA */
-  [0x1071, 0x1071], /* MYANMAR VOWEL SIGN GEBA KAREN I */
-  [0x1072, 0x1072], /* MYANMAR VOWEL SIGN KAYAH OE */
-  [0x1073, 0x1073], /* MYANMAR VOWEL SIGN KAYAH U */
-  [0x1074, 0x1074], /* MYANMAR VOWEL SIGN KAYAH EE */
-  [0x1075, 0x1075], /* MYANMAR LETTER SHAN KA */
-  [0x1076, 0x1076], /* MYANMAR LETTER SHAN KHA */
-  [0x1077, 0x1077], /* MYANMAR LETTER SHAN GA */
-  [0x1078, 0x1078], /* MYANMAR LETTER SHAN CA */
-  [0x1079, 0x1079], /* MYANMAR LETTER SHAN ZA */
-  [0x107a, 0x107a], /* MYANMAR LETTER SHAN NYA */
-  [0x107b, 0x107b], /* MYANMAR LETTER SHAN DA */
-  [0x107c, 0x107c], /* MYANMAR LETTER SHAN NA */
-  [0x107d, 0x107d], /* MYANMAR LETTER SHAN PHA */
-  [0x107e, 0x107e], /* MYANMAR LETTER SHAN FA */
-  [0x107f, 0x107f], /* MYANMAR LETTER SHAN BA */
-  [0x1080, 0x1080], /* MYANMAR LETTER SHAN THA */
-  [0x1081, 0x1081], /* MYANMAR LETTER SHAN HA */
-  [0x1082, 0x1082], /* MYANMAR CONSONANT SIGN SHAN MEDIAL WA */
-  [0x1083, 0x1083], /* MYANMAR VOWEL SIGN SHAN AA */
-  [0x1084, 0x1084], /* MYANMAR VOWEL SIGN SHAN E */
-  [0x1085, 0x1085], /* MYANMAR VOWEL SIGN SHAN E ABOVE */
-  [0x1086, 0x1086], /* MYANMAR VOWEL SIGN SHAN FINAL Y */
-  [0x1087, 0x1087], /* MYANMAR SIGN SHAN TONE-2 */
-  [0x1088, 0x1088], /* MYANMAR SIGN SHAN TONE-3 */
-  [0x1089, 0x1089], /* MYANMAR SIGN SHAN TONE-5 */
-  [0x108a, 0x108a], /* MYANMAR SIGN SHAN TONE-6 */
-  [0x108b, 0x108b], /* MYANMAR SIGN SHAN COUNCIL TONE-2 */
-  [0x108c, 0x108c], /* MYANMAR SIGN SHAN COUNCIL TONE-3 */
-  [0x108d, 0x108d], /* MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE */
-  [0x108e, 0x108e], /* MYANMAR LETTER RUMAI PALAUNG FA */
-  [0x108f, 0x108f], /* MYANMAR SIGN RUMAI PALAUNG TONE-5 */
-  [0x1090, 0x1090], /* MYANMAR SHAN DIGIT ZERO */
-  [0x1091, 0x1091], /* MYANMAR SHAN DIGIT ONE */
-  [0x1092, 0x1092], /* MYANMAR SHAN DIGIT TWO */
-  [0x1093, 0x1093], /* MYANMAR SHAN DIGIT THREE */
-  [0x1094, 0x1094], /* MYANMAR SHAN DIGIT FOUR */
-  [0x1095, 0x1095], /* MYANMAR SHAN DIGIT FIVE */
-  [0x1096, 0x1096], /* MYANMAR SHAN DIGIT SIX */
-  [0x1097, 0x1097], /* MYANMAR SHAN DIGIT SEVEN */
-  [0x1098, 0x1098], /* MYANMAR SHAN DIGIT EIGHT */
-  [0x1099, 0x1099], /* MYANMAR SHAN DIGIT NINE */
-  [0x109a, 0x109a], /* MYANMAR SIGN KHAMTI TONE-1 */
-  [0x109b, 0x109b], /* MYANMAR SIGN KHAMTI TONE-3 */
-  [0x109c, 0x109c], /* MYANMAR VOWEL SIGN AITON A */
-  [0x109d, 0x109d], /* MYANMAR VOWEL SIGN AITON AI */
-  [0x109e, 0x109e], /* MYANMAR SYMBOL SHAN ONE */
-  [0x109f, 0x109f], /* MYANMAR SYMBOL SHAN EXCLAMATION */
-  [0x10a0, 0x2d00], /* GEORGIAN CAPITAL LETTER AN */
-  [0x10a1, 0x2d01], /* GEORGIAN CAPITAL LETTER BAN */
-  [0x10a2, 0x2d02], /* GEORGIAN CAPITAL LETTER GAN */
-  [0x10a3, 0x2d03], /* GEORGIAN CAPITAL LETTER DON */
-  [0x10a4, 0x2d04], /* GEORGIAN CAPITAL LETTER EN */
-  [0x10a5, 0x2d05], /* GEORGIAN CAPITAL LETTER VIN */
-  [0x10a6, 0x2d06], /* GEORGIAN CAPITAL LETTER ZEN */
-  [0x10a7, 0x2d07], /* GEORGIAN CAPITAL LETTER TAN */
-  [0x10a8, 0x2d08], /* GEORGIAN CAPITAL LETTER IN */
-  [0x10a9, 0x2d09], /* GEORGIAN CAPITAL LETTER KAN */
-  [0x10aa, 0x2d0a], /* GEORGIAN CAPITAL LETTER LAS */
-  [0x10ab, 0x2d0b], /* GEORGIAN CAPITAL LETTER MAN */
-  [0x10ac, 0x2d0c], /* GEORGIAN CAPITAL LETTER NAR */
-  [0x10ad, 0x2d0d], /* GEORGIAN CAPITAL LETTER ON */
-  [0x10ae, 0x2d0e], /* GEORGIAN CAPITAL LETTER PAR */
-  [0x10af, 0x2d0f], /* GEORGIAN CAPITAL LETTER ZHAR */
-  [0x10b0, 0x2d10], /* GEORGIAN CAPITAL LETTER RAE */
-  [0x10b1, 0x2d11], /* GEORGIAN CAPITAL LETTER SAN */
-  [0x10b2, 0x2d12], /* GEORGIAN CAPITAL LETTER TAR */
-  [0x10b3, 0x2d13], /* GEORGIAN CAPITAL LETTER UN */
-  [0x10b4, 0x2d14], /* GEORGIAN CAPITAL LETTER PHAR */
-  [0x10b5, 0x2d15], /* GEORGIAN CAPITAL LETTER KHAR */
-  [0x10b6, 0x2d16], /* GEORGIAN CAPITAL LETTER GHAN */
-  [0x10b7, 0x2d17], /* GEORGIAN CAPITAL LETTER QAR */
-  [0x10b8, 0x2d18], /* GEORGIAN CAPITAL LETTER SHIN */
-  [0x10b9, 0x2d19], /* GEORGIAN CAPITAL LETTER CHIN */
-  [0x10ba, 0x2d1a], /* GEORGIAN CAPITAL LETTER CAN */
-  [0x10bb, 0x2d1b], /* GEORGIAN CAPITAL LETTER JIL */
-  [0x10bc, 0x2d1c], /* GEORGIAN CAPITAL LETTER CIL */
-  [0x10bd, 0x2d1d], /* GEORGIAN CAPITAL LETTER CHAR */
-  [0x10be, 0x2d1e], /* GEORGIAN CAPITAL LETTER XAN */
-  [0x10bf, 0x2d1f], /* GEORGIAN CAPITAL LETTER JHAN */
-  [0x10c0, 0x2d20], /* GEORGIAN CAPITAL LETTER HAE */
-  [0x10c1, 0x2d21], /* GEORGIAN CAPITAL LETTER HE */
-  [0x10c2, 0x2d22], /* GEORGIAN CAPITAL LETTER HIE */
-  [0x10c3, 0x2d23], /* GEORGIAN CAPITAL LETTER WE */
-  [0x10c4, 0x2d24], /* GEORGIAN CAPITAL LETTER HAR */
-  [0x10c5, 0x2d25], /* GEORGIAN CAPITAL LETTER HOE */
-  [0x10c6, 0x10c6],
-  [0x10c7, 0x2d27], /* GEORGIAN CAPITAL LETTER YN */
-  [0x10c8, 0x10c8],
-  [0x10c9, 0x10c9],
-  [0x10ca, 0x10ca],
-  [0x10cb, 0x10cb],
-  [0x10cc, 0x10cc],
-  [0x10cd, 0x2d2d], /* GEORGIAN CAPITAL LETTER AEN */
-  [0x10ce, 0x10ce],
-  [0x10cf, 0x10cf],
-  [0x10d0, 0x10d0], /* GEORGIAN LETTER AN (GEORGIAN SMALL LETTER AN) */
-  [0x10d1, 0x10d1], /* GEORGIAN LETTER BAN (GEORGIAN SMALL LETTER BAN) */
-  [0x10d2, 0x10d2], /* GEORGIAN LETTER GAN (GEORGIAN SMALL LETTER GAN) */
-  [0x10d3, 0x10d3], /* GEORGIAN LETTER DON (GEORGIAN SMALL LETTER DON) */
-  [0x10d4, 0x10d4], /* GEORGIAN LETTER EN (GEORGIAN SMALL LETTER EN) */
-  [0x10d5, 0x10d5], /* GEORGIAN LETTER VIN (GEORGIAN SMALL LETTER VIN) */
-  [0x10d6, 0x10d6], /* GEORGIAN LETTER ZEN (GEORGIAN SMALL LETTER ZEN) */
-  [0x10d7, 0x10d7], /* GEORGIAN LETTER TAN (GEORGIAN SMALL LETTER TAN) */
-  [0x10d8, 0x10d8], /* GEORGIAN LETTER IN (GEORGIAN SMALL LETTER IN) */
-  [0x10d9, 0x10d9], /* GEORGIAN LETTER KAN (GEORGIAN SMALL LETTER KAN) */
-  [0x10da, 0x10da], /* GEORGIAN LETTER LAS (GEORGIAN SMALL LETTER LAS) */
-  [0x10db, 0x10db], /* GEORGIAN LETTER MAN (GEORGIAN SMALL LETTER MAN) */
-  [0x10dc, 0x10dc], /* GEORGIAN LETTER NAR (GEORGIAN SMALL LETTER NAR) */
-  [0x10dd, 0x10dd], /* GEORGIAN LETTER ON (GEORGIAN SMALL LETTER ON) */
-  [0x10de, 0x10de], /* GEORGIAN LETTER PAR (GEORGIAN SMALL LETTER PAR) */
-  [0x10df, 0x10df], /* GEORGIAN LETTER ZHAR (GEORGIAN SMALL LETTER ZHAR) */
-  [0x10e0, 0x10e0], /* GEORGIAN LETTER RAE (GEORGIAN SMALL LETTER RAE) */
-  [0x10e1, 0x10e1], /* GEORGIAN LETTER SAN (GEORGIAN SMALL LETTER SAN) */
-  [0x10e2, 0x10e2], /* GEORGIAN LETTER TAR (GEORGIAN SMALL LETTER TAR) */
-  [0x10e3, 0x10e3], /* GEORGIAN LETTER UN (GEORGIAN SMALL LETTER UN) */
-  [0x10e4, 0x10e4], /* GEORGIAN LETTER PHAR (GEORGIAN SMALL LETTER PHAR) */
-  [0x10e5, 0x10e5], /* GEORGIAN LETTER KHAR (GEORGIAN SMALL LETTER KHAR) */
-  [0x10e6, 0x10e6], /* GEORGIAN LETTER GHAN (GEORGIAN SMALL LETTER GHAN) */
-  [0x10e7, 0x10e7], /* GEORGIAN LETTER QAR (GEORGIAN SMALL LETTER QAR) */
-  [0x10e8, 0x10e8], /* GEORGIAN LETTER SHIN (GEORGIAN SMALL LETTER SHIN) */
-  [0x10e9, 0x10e9], /* GEORGIAN LETTER CHIN (GEORGIAN SMALL LETTER CHIN) */
-  [0x10ea, 0x10ea], /* GEORGIAN LETTER CAN (GEORGIAN SMALL LETTER CAN) */
-  [0x10eb, 0x10eb], /* GEORGIAN LETTER JIL (GEORGIAN SMALL LETTER JIL) */
-  [0x10ec, 0x10ec], /* GEORGIAN LETTER CIL (GEORGIAN SMALL LETTER CIL) */
-  [0x10ed, 0x10ed], /* GEORGIAN LETTER CHAR (GEORGIAN SMALL LETTER CHAR) */
-  [0x10ee, 0x10ee], /* GEORGIAN LETTER XAN (GEORGIAN SMALL LETTER XAN) */
-  [0x10ef, 0x10ef], /* GEORGIAN LETTER JHAN (GEORGIAN SMALL LETTER JHAN) */
-  [0x10f0, 0x10f0], /* GEORGIAN LETTER HAE (GEORGIAN SMALL LETTER HAE) */
-  [0x10f1, 0x10f1], /* GEORGIAN LETTER HE (GEORGIAN SMALL LETTER HE) */
-  [0x10f2, 0x10f2], /* GEORGIAN LETTER HIE (GEORGIAN SMALL LETTER HIE) */
-  [0x10f3, 0x10f3], /* GEORGIAN LETTER WE (GEORGIAN SMALL LETTER WE) */
-  [0x10f4, 0x10f4], /* GEORGIAN LETTER HAR (GEORGIAN SMALL LETTER HAR) */
-  [0x10f5, 0x10f5], /* GEORGIAN LETTER HOE (GEORGIAN SMALL LETTER HOE) */
-  [0x10f6, 0x10f6], /* GEORGIAN LETTER FI (GEORGIAN SMALL LETTER FI) */
-  [0x10f7, 0x10f7], /* GEORGIAN LETTER YN */
-  [0x10f8, 0x10f8], /* GEORGIAN LETTER ELIFI */
-  [0x10f9, 0x10f9], /* GEORGIAN LETTER TURNED GAN */
-  [0x10fa, 0x10fa], /* GEORGIAN LETTER AIN */
-  [0x10fb, 0x10fb], /* GEORGIAN PARAGRAPH SEPARATOR */
-  [0x10fc, 0x10fc], /* MODIFIER LETTER GEORGIAN NAR */
-  [0x10fd, 0x10fd], /* GEORGIAN LETTER AEN */
-  [0x10fe, 0x10fe], /* GEORGIAN LETTER HARD SIGN */
-  [0x10ff, 0x10ff], /* GEORGIAN LETTER LABIAL SIGN */
-  [0x1100, 0x1100], /* HANGUL CHOSEONG KIYEOK */
-  [0x1101, 0x1101], /* HANGUL CHOSEONG SSANGKIYEOK */
-  [0x1102, 0x1102], /* HANGUL CHOSEONG NIEUN */
-  [0x1103, 0x1103], /* HANGUL CHOSEONG TIKEUT */
-  [0x1104, 0x1104], /* HANGUL CHOSEONG SSANGTIKEUT */
-  [0x1105, 0x1105], /* HANGUL CHOSEONG RIEUL */
-  [0x1106, 0x1106], /* HANGUL CHOSEONG MIEUM */
-  [0x1107, 0x1107], /* HANGUL CHOSEONG PIEUP */
-  [0x1108, 0x1108], /* HANGUL CHOSEONG SSANGPIEUP */
-  [0x1109, 0x1109], /* HANGUL CHOSEONG SIOS */
-  [0x110a, 0x110a], /* HANGUL CHOSEONG SSANGSIOS */
-  [0x110b, 0x110b], /* HANGUL CHOSEONG IEUNG */
-  [0x110c, 0x110c], /* HANGUL CHOSEONG CIEUC */
-  [0x110d, 0x110d], /* HANGUL CHOSEONG SSANGCIEUC */
-  [0x110e, 0x110e], /* HANGUL CHOSEONG CHIEUCH */
-  [0x110f, 0x110f], /* HANGUL CHOSEONG KHIEUKH */
-  [0x1110, 0x1110], /* HANGUL CHOSEONG THIEUTH */
-  [0x1111, 0x1111], /* HANGUL CHOSEONG PHIEUPH */
-  [0x1112, 0x1112], /* HANGUL CHOSEONG HIEUH */
-  [0x1113, 0x1113], /* HANGUL CHOSEONG NIEUN-KIYEOK */
-  [0x1114, 0x1114], /* HANGUL CHOSEONG SSANGNIEUN */
-  [0x1115, 0x1115], /* HANGUL CHOSEONG NIEUN-TIKEUT */
-  [0x1116, 0x1116], /* HANGUL CHOSEONG NIEUN-PIEUP */
-  [0x1117, 0x1117], /* HANGUL CHOSEONG TIKEUT-KIYEOK */
-  [0x1118, 0x1118], /* HANGUL CHOSEONG RIEUL-NIEUN */
-  [0x1119, 0x1119], /* HANGUL CHOSEONG SSANGRIEUL */
-  [0x111a, 0x111a], /* HANGUL CHOSEONG RIEUL-HIEUH */
-  [0x111b, 0x111b], /* HANGUL CHOSEONG KAPYEOUNRIEUL */
-  [0x111c, 0x111c], /* HANGUL CHOSEONG MIEUM-PIEUP */
-  [0x111d, 0x111d], /* HANGUL CHOSEONG KAPYEOUNMIEUM */
-  [0x111e, 0x111e], /* HANGUL CHOSEONG PIEUP-KIYEOK */
-  [0x111f, 0x111f], /* HANGUL CHOSEONG PIEUP-NIEUN */
-  [0x1120, 0x1120], /* HANGUL CHOSEONG PIEUP-TIKEUT */
-  [0x1121, 0x1121], /* HANGUL CHOSEONG PIEUP-SIOS */
-  [0x1122, 0x1122], /* HANGUL CHOSEONG PIEUP-SIOS-KIYEOK */
-  [0x1123, 0x1123], /* HANGUL CHOSEONG PIEUP-SIOS-TIKEUT */
-  [0x1124, 0x1124], /* HANGUL CHOSEONG PIEUP-SIOS-PIEUP */
-  [0x1125, 0x1125], /* HANGUL CHOSEONG PIEUP-SSANGSIOS */
-  [0x1126, 0x1126], /* HANGUL CHOSEONG PIEUP-SIOS-CIEUC */
-  [0x1127, 0x1127], /* HANGUL CHOSEONG PIEUP-CIEUC */
-  [0x1128, 0x1128], /* HANGUL CHOSEONG PIEUP-CHIEUCH */
-  [0x1129, 0x1129], /* HANGUL CHOSEONG PIEUP-THIEUTH */
-  [0x112a, 0x112a], /* HANGUL CHOSEONG PIEUP-PHIEUPH */
-  [0x112b, 0x112b], /* HANGUL CHOSEONG KAPYEOUNPIEUP */
-  [0x112c, 0x112c], /* HANGUL CHOSEONG KAPYEOUNSSANGPIEUP */
-  [0x112d, 0x112d], /* HANGUL CHOSEONG SIOS-KIYEOK */
-  [0x112e, 0x112e], /* HANGUL CHOSEONG SIOS-NIEUN */
-  [0x112f, 0x112f], /* HANGUL CHOSEONG SIOS-TIKEUT */
-  [0x1130, 0x1130], /* HANGUL CHOSEONG SIOS-RIEUL */
-  [0x1131, 0x1131], /* HANGUL CHOSEONG SIOS-MIEUM */
-  [0x1132, 0x1132], /* HANGUL CHOSEONG SIOS-PIEUP */
-  [0x1133, 0x1133], /* HANGUL CHOSEONG SIOS-PIEUP-KIYEOK */
-  [0x1134, 0x1134], /* HANGUL CHOSEONG SIOS-SSANGSIOS */
-  [0x1135, 0x1135], /* HANGUL CHOSEONG SIOS-IEUNG */
-  [0x1136, 0x1136], /* HANGUL CHOSEONG SIOS-CIEUC */
-  [0x1137, 0x1137], /* HANGUL CHOSEONG SIOS-CHIEUCH */
-  [0x1138, 0x1138], /* HANGUL CHOSEONG SIOS-KHIEUKH */
-  [0x1139, 0x1139], /* HANGUL CHOSEONG SIOS-THIEUTH */
-  [0x113a, 0x113a], /* HANGUL CHOSEONG SIOS-PHIEUPH */
-  [0x113b, 0x113b], /* HANGUL CHOSEONG SIOS-HIEUH */
-  [0x113c, 0x113c], /* HANGUL CHOSEONG CHITUEUMSIOS */
-  [0x113d, 0x113d], /* HANGUL CHOSEONG CHITUEUMSSANGSIOS */
-  [0x113e, 0x113e], /* HANGUL CHOSEONG CEONGCHIEUMSIOS */
-  [0x113f, 0x113f], /* HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS */
-  [0x1140, 0x1140], /* HANGUL CHOSEONG PANSIOS */
-  [0x1141, 0x1141], /* HANGUL CHOSEONG IEUNG-KIYEOK */
-  [0x1142, 0x1142], /* HANGUL CHOSEONG IEUNG-TIKEUT */
-  [0x1143, 0x1143], /* HANGUL CHOSEONG IEUNG-MIEUM */
-  [0x1144, 0x1144], /* HANGUL CHOSEONG IEUNG-PIEUP */
-  [0x1145, 0x1145], /* HANGUL CHOSEONG IEUNG-SIOS */
-  [0x1146, 0x1146], /* HANGUL CHOSEONG IEUNG-PANSIOS */
-  [0x1147, 0x1147], /* HANGUL CHOSEONG SSANGIEUNG */
-  [0x1148, 0x1148], /* HANGUL CHOSEONG IEUNG-CIEUC */
-  [0x1149, 0x1149], /* HANGUL CHOSEONG IEUNG-CHIEUCH */
-  [0x114a, 0x114a], /* HANGUL CHOSEONG IEUNG-THIEUTH */
-  [0x114b, 0x114b], /* HANGUL CHOSEONG IEUNG-PHIEUPH */
-  [0x114c, 0x114c], /* HANGUL CHOSEONG YESIEUNG */
-  [0x114d, 0x114d], /* HANGUL CHOSEONG CIEUC-IEUNG */
-  [0x114e, 0x114e], /* HANGUL CHOSEONG CHITUEUMCIEUC */
-  [0x114f, 0x114f], /* HANGUL CHOSEONG CHITUEUMSSANGCIEUC */
-  [0x1150, 0x1150], /* HANGUL CHOSEONG CEONGCHIEUMCIEUC */
-  [0x1151, 0x1151], /* HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC */
-  [0x1152, 0x1152], /* HANGUL CHOSEONG CHIEUCH-KHIEUKH */
-  [0x1153, 0x1153], /* HANGUL CHOSEONG CHIEUCH-HIEUH */
-  [0x1154, 0x1154], /* HANGUL CHOSEONG CHITUEUMCHIEUCH */
-  [0x1155, 0x1155], /* HANGUL CHOSEONG CEONGCHIEUMCHIEUCH */
-  [0x1156, 0x1156], /* HANGUL CHOSEONG PHIEUPH-PIEUP */
-  [0x1157, 0x1157], /* HANGUL CHOSEONG KAPYEOUNPHIEUPH */
-  [0x1158, 0x1158], /* HANGUL CHOSEONG SSANGHIEUH */
-  [0x1159, 0x1159], /* HANGUL CHOSEONG YEORINHIEUH */
-  [0x115a, 0x115a], /* HANGUL CHOSEONG KIYEOK-TIKEUT */
-  [0x115b, 0x115b], /* HANGUL CHOSEONG NIEUN-SIOS */
-  [0x115c, 0x115c], /* HANGUL CHOSEONG NIEUN-CIEUC */
-  [0x115d, 0x115d], /* HANGUL CHOSEONG NIEUN-HIEUH */
-  [0x115e, 0x115e], /* HANGUL CHOSEONG TIKEUT-RIEUL */
-  [0x115f, 0x115f], /* HANGUL CHOSEONG FILLER */
-  [0x1160, 0x1160], /* HANGUL JUNGSEONG FILLER */
-  [0x1161, 0x1161], /* HANGUL JUNGSEONG A */
-  [0x1162, 0x1162], /* HANGUL JUNGSEONG AE */
-  [0x1163, 0x1163], /* HANGUL JUNGSEONG YA */
-  [0x1164, 0x1164], /* HANGUL JUNGSEONG YAE */
-  [0x1165, 0x1165], /* HANGUL JUNGSEONG EO */
-  [0x1166, 0x1166], /* HANGUL JUNGSEONG E */
-  [0x1167, 0x1167], /* HANGUL JUNGSEONG YEO */
-  [0x1168, 0x1168], /* HANGUL JUNGSEONG YE */
-  [0x1169, 0x1169], /* HANGUL JUNGSEONG O */
-  [0x116a, 0x116a], /* HANGUL JUNGSEONG WA */
-  [0x116b, 0x116b], /* HANGUL JUNGSEONG WAE */
-  [0x116c, 0x116c], /* HANGUL JUNGSEONG OE */
-  [0x116d, 0x116d], /* HANGUL JUNGSEONG YO */
-  [0x116e, 0x116e], /* HANGUL JUNGSEONG U */
-  [0x116f, 0x116f], /* HANGUL JUNGSEONG WEO */
-  [0x1170, 0x1170], /* HANGUL JUNGSEONG WE */
-  [0x1171, 0x1171], /* HANGUL JUNGSEONG WI */
-  [0x1172, 0x1172], /* HANGUL JUNGSEONG YU */
-  [0x1173, 0x1173], /* HANGUL JUNGSEONG EU */
-  [0x1174, 0x1174], /* HANGUL JUNGSEONG YI */
-  [0x1175, 0x1175], /* HANGUL JUNGSEONG I */
-  [0x1176, 0x1176], /* HANGUL JUNGSEONG A-O */
-  [0x1177, 0x1177], /* HANGUL JUNGSEONG A-U */
-  [0x1178, 0x1178], /* HANGUL JUNGSEONG YA-O */
-  [0x1179, 0x1179], /* HANGUL JUNGSEONG YA-YO */
-  [0x117a, 0x117a], /* HANGUL JUNGSEONG EO-O */
-  [0x117b, 0x117b], /* HANGUL JUNGSEONG EO-U */
-  [0x117c, 0x117c], /* HANGUL JUNGSEONG EO-EU */
-  [0x117d, 0x117d], /* HANGUL JUNGSEONG YEO-O */
-  [0x117e, 0x117e], /* HANGUL JUNGSEONG YEO-U */
-  [0x117f, 0x117f], /* HANGUL JUNGSEONG O-EO */
-  [0x1180, 0x1180], /* HANGUL JUNGSEONG O-E */
-  [0x1181, 0x1181], /* HANGUL JUNGSEONG O-YE */
-  [0x1182, 0x1182], /* HANGUL JUNGSEONG O-O */
-  [0x1183, 0x1183], /* HANGUL JUNGSEONG O-U */
-  [0x1184, 0x1184], /* HANGUL JUNGSEONG YO-YA */
-  [0x1185, 0x1185], /* HANGUL JUNGSEONG YO-YAE */
-  [0x1186, 0x1186], /* HANGUL JUNGSEONG YO-YEO */
-  [0x1187, 0x1187], /* HANGUL JUNGSEONG YO-O */
-  [0x1188, 0x1188], /* HANGUL JUNGSEONG YO-I */
-  [0x1189, 0x1189], /* HANGUL JUNGSEONG U-A */
-  [0x118a, 0x118a], /* HANGUL JUNGSEONG U-AE */
-  [0x118b, 0x118b], /* HANGUL JUNGSEONG U-EO-EU */
-  [0x118c, 0x118c], /* HANGUL JUNGSEONG U-YE */
-  [0x118d, 0x118d], /* HANGUL JUNGSEONG U-U */
-  [0x118e, 0x118e], /* HANGUL JUNGSEONG YU-A */
-  [0x118f, 0x118f], /* HANGUL JUNGSEONG YU-EO */
-  [0x1190, 0x1190], /* HANGUL JUNGSEONG YU-E */
-  [0x1191, 0x1191], /* HANGUL JUNGSEONG YU-YEO */
-  [0x1192, 0x1192], /* HANGUL JUNGSEONG YU-YE */
-  [0x1193, 0x1193], /* HANGUL JUNGSEONG YU-U */
-  [0x1194, 0x1194], /* HANGUL JUNGSEONG YU-I */
-  [0x1195, 0x1195], /* HANGUL JUNGSEONG EU-U */
-  [0x1196, 0x1196], /* HANGUL JUNGSEONG EU-EU */
-  [0x1197, 0x1197], /* HANGUL JUNGSEONG YI-U */
-  [0x1198, 0x1198], /* HANGUL JUNGSEONG I-A */
-  [0x1199, 0x1199], /* HANGUL JUNGSEONG I-YA */
-  [0x119a, 0x119a], /* HANGUL JUNGSEONG I-O */
-  [0x119b, 0x119b], /* HANGUL JUNGSEONG I-U */
-  [0x119c, 0x119c], /* HANGUL JUNGSEONG I-EU */
-  [0x119d, 0x119d], /* HANGUL JUNGSEONG I-ARAEA */
-  [0x119e, 0x119e], /* HANGUL JUNGSEONG ARAEA */
-  [0x119f, 0x119f], /* HANGUL JUNGSEONG ARAEA-EO */
-  [0x11a0, 0x11a0], /* HANGUL JUNGSEONG ARAEA-U */
-  [0x11a1, 0x11a1], /* HANGUL JUNGSEONG ARAEA-I */
-  [0x11a2, 0x11a2], /* HANGUL JUNGSEONG SSANGARAEA */
-  [0x11a3, 0x11a3], /* HANGUL JUNGSEONG A-EU */
-  [0x11a4, 0x11a4], /* HANGUL JUNGSEONG YA-U */
-  [0x11a5, 0x11a5], /* HANGUL JUNGSEONG YEO-YA */
-  [0x11a6, 0x11a6], /* HANGUL JUNGSEONG O-YA */
-  [0x11a7, 0x11a7], /* HANGUL JUNGSEONG O-YAE */
-  [0x11a8, 0x11a8], /* HANGUL JONGSEONG KIYEOK */
-  [0x11a9, 0x11a9], /* HANGUL JONGSEONG SSANGKIYEOK */
-  [0x11aa, 0x11aa], /* HANGUL JONGSEONG KIYEOK-SIOS */
-  [0x11ab, 0x11ab], /* HANGUL JONGSEONG NIEUN */
-  [0x11ac, 0x11ac], /* HANGUL JONGSEONG NIEUN-CIEUC */
-  [0x11ad, 0x11ad], /* HANGUL JONGSEONG NIEUN-HIEUH */
-  [0x11ae, 0x11ae], /* HANGUL JONGSEONG TIKEUT */
-  [0x11af, 0x11af], /* HANGUL JONGSEONG RIEUL */
-  [0x11b0, 0x11b0], /* HANGUL JONGSEONG RIEUL-KIYEOK */
-  [0x11b1, 0x11b1], /* HANGUL JONGSEONG RIEUL-MIEUM */
-  [0x11b2, 0x11b2], /* HANGUL JONGSEONG RIEUL-PIEUP */
-  [0x11b3, 0x11b3], /* HANGUL JONGSEONG RIEUL-SIOS */
-  [0x11b4, 0x11b4], /* HANGUL JONGSEONG RIEUL-THIEUTH */
-  [0x11b5, 0x11b5], /* HANGUL JONGSEONG RIEUL-PHIEUPH */
-  [0x11b6, 0x11b6], /* HANGUL JONGSEONG RIEUL-HIEUH */
-  [0x11b7, 0x11b7], /* HANGUL JONGSEONG MIEUM */
-  [0x11b8, 0x11b8], /* HANGUL JONGSEONG PIEUP */
-  [0x11b9, 0x11b9], /* HANGUL JONGSEONG PIEUP-SIOS */
-  [0x11ba, 0x11ba], /* HANGUL JONGSEONG SIOS */
-  [0x11bb, 0x11bb], /* HANGUL JONGSEONG SSANGSIOS */
-  [0x11bc, 0x11bc], /* HANGUL JONGSEONG IEUNG */
-  [0x11bd, 0x11bd], /* HANGUL JONGSEONG CIEUC */
-  [0x11be, 0x11be], /* HANGUL JONGSEONG CHIEUCH */
-  [0x11bf, 0x11bf], /* HANGUL JONGSEONG KHIEUKH */
-  [0x11c0, 0x11c0], /* HANGUL JONGSEONG THIEUTH */
-  [0x11c1, 0x11c1], /* HANGUL JONGSEONG PHIEUPH */
-  [0x11c2, 0x11c2], /* HANGUL JONGSEONG HIEUH */
-  [0x11c3, 0x11c3], /* HANGUL JONGSEONG KIYEOK-RIEUL */
-  [0x11c4, 0x11c4], /* HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK */
-  [0x11c5, 0x11c5], /* HANGUL JONGSEONG NIEUN-KIYEOK */
-  [0x11c6, 0x11c6], /* HANGUL JONGSEONG NIEUN-TIKEUT */
-  [0x11c7, 0x11c7], /* HANGUL JONGSEONG NIEUN-SIOS */
-  [0x11c8, 0x11c8], /* HANGUL JONGSEONG NIEUN-PANSIOS */
-  [0x11c9, 0x11c9], /* HANGUL JONGSEONG NIEUN-THIEUTH */
-  [0x11ca, 0x11ca], /* HANGUL JONGSEONG TIKEUT-KIYEOK */
-  [0x11cb, 0x11cb], /* HANGUL JONGSEONG TIKEUT-RIEUL */
-  [0x11cc, 0x11cc], /* HANGUL JONGSEONG RIEUL-KIYEOK-SIOS */
-  [0x11cd, 0x11cd], /* HANGUL JONGSEONG RIEUL-NIEUN */
-  [0x11ce, 0x11ce], /* HANGUL JONGSEONG RIEUL-TIKEUT */
-  [0x11cf, 0x11cf], /* HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH */
-  [0x11d0, 0x11d0], /* HANGUL JONGSEONG SSANGRIEUL */
-  [0x11d1, 0x11d1], /* HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK */
-  [0x11d2, 0x11d2], /* HANGUL JONGSEONG RIEUL-MIEUM-SIOS */
-  [0x11d3, 0x11d3], /* HANGUL JONGSEONG RIEUL-PIEUP-SIOS */
-  [0x11d4, 0x11d4], /* HANGUL JONGSEONG RIEUL-PIEUP-HIEUH */
-  [0x11d5, 0x11d5], /* HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP */
-  [0x11d6, 0x11d6], /* HANGUL JONGSEONG RIEUL-SSANGSIOS */
-  [0x11d7, 0x11d7], /* HANGUL JONGSEONG RIEUL-PANSIOS */
-  [0x11d8, 0x11d8], /* HANGUL JONGSEONG RIEUL-KHIEUKH */
-  [0x11d9, 0x11d9], /* HANGUL JONGSEONG RIEUL-YEORINHIEUH */
-  [0x11da, 0x11da], /* HANGUL JONGSEONG MIEUM-KIYEOK */
-  [0x11db, 0x11db], /* HANGUL JONGSEONG MIEUM-RIEUL */
-  [0x11dc, 0x11dc], /* HANGUL JONGSEONG MIEUM-PIEUP */
-  [0x11dd, 0x11dd], /* HANGUL JONGSEONG MIEUM-SIOS */
-  [0x11de, 0x11de], /* HANGUL JONGSEONG MIEUM-SSANGSIOS */
-  [0x11df, 0x11df], /* HANGUL JONGSEONG MIEUM-PANSIOS */
-  [0x11e0, 0x11e0], /* HANGUL JONGSEONG MIEUM-CHIEUCH */
-  [0x11e1, 0x11e1], /* HANGUL JONGSEONG MIEUM-HIEUH */
-  [0x11e2, 0x11e2], /* HANGUL JONGSEONG KAPYEOUNMIEUM */
-  [0x11e3, 0x11e3], /* HANGUL JONGSEONG PIEUP-RIEUL */
-  [0x11e4, 0x11e4], /* HANGUL JONGSEONG PIEUP-PHIEUPH */
-  [0x11e5, 0x11e5], /* HANGUL JONGSEONG PIEUP-HIEUH */
-  [0x11e6, 0x11e6], /* HANGUL JONGSEONG KAPYEOUNPIEUP */
-  [0x11e7, 0x11e7], /* HANGUL JONGSEONG SIOS-KIYEOK */
-  [0x11e8, 0x11e8], /* HANGUL JONGSEONG SIOS-TIKEUT */
-  [0x11e9, 0x11e9], /* HANGUL JONGSEONG SIOS-RIEUL */
-  [0x11ea, 0x11ea], /* HANGUL JONGSEONG SIOS-PIEUP */
-  [0x11eb, 0x11eb], /* HANGUL JONGSEONG PANSIOS */
-  [0x11ec, 0x11ec], /* HANGUL JONGSEONG IEUNG-KIYEOK */
-  [0x11ed, 0x11ed], /* HANGUL JONGSEONG IEUNG-SSANGKIYEOK */
-  [0x11ee, 0x11ee], /* HANGUL JONGSEONG SSANGIEUNG */
-  [0x11ef, 0x11ef], /* HANGUL JONGSEONG IEUNG-KHIEUKH */
-  [0x11f0, 0x11f0], /* HANGUL JONGSEONG YESIEUNG */
-  [0x11f1, 0x11f1], /* HANGUL JONGSEONG YESIEUNG-SIOS */
-  [0x11f2, 0x11f2], /* HANGUL JONGSEONG YESIEUNG-PANSIOS */
-  [0x11f3, 0x11f3], /* HANGUL JONGSEONG PHIEUPH-PIEUP */
-  [0x11f4, 0x11f4], /* HANGUL JONGSEONG KAPYEOUNPHIEUPH */
-  [0x11f5, 0x11f5], /* HANGUL JONGSEONG HIEUH-NIEUN */
-  [0x11f6, 0x11f6], /* HANGUL JONGSEONG HIEUH-RIEUL */
-  [0x11f7, 0x11f7], /* HANGUL JONGSEONG HIEUH-MIEUM */
-  [0x11f8, 0x11f8], /* HANGUL JONGSEONG HIEUH-PIEUP */
-  [0x11f9, 0x11f9], /* HANGUL JONGSEONG YEORINHIEUH */
-  [0x11fa, 0x11fa], /* HANGUL JONGSEONG KIYEOK-NIEUN */
-  [0x11fb, 0x11fb], /* HANGUL JONGSEONG KIYEOK-PIEUP */
-  [0x11fc, 0x11fc], /* HANGUL JONGSEONG KIYEOK-CHIEUCH */
-  [0x11fd, 0x11fd], /* HANGUL JONGSEONG KIYEOK-KHIEUKH */
-  [0x11fe, 0x11fe], /* HANGUL JONGSEONG KIYEOK-HIEUH */
-  [0x11ff, 0x11ff], /* HANGUL JONGSEONG SSANGNIEUN */
-  [0x1200, 0x1200], /* ETHIOPIC SYLLABLE HA */
-  [0x1201, 0x1201], /* ETHIOPIC SYLLABLE HU */
-  [0x1202, 0x1202], /* ETHIOPIC SYLLABLE HI */
-  [0x1203, 0x1203], /* ETHIOPIC SYLLABLE HAA */
-  [0x1204, 0x1204], /* ETHIOPIC SYLLABLE HEE */
-  [0x1205, 0x1205], /* ETHIOPIC SYLLABLE HE */
-  [0x1206, 0x1206], /* ETHIOPIC SYLLABLE HO */
-  [0x1207, 0x1207], /* ETHIOPIC SYLLABLE HOA */
-  [0x1208, 0x1208], /* ETHIOPIC SYLLABLE LA */
-  [0x1209, 0x1209], /* ETHIOPIC SYLLABLE LU */
-  [0x120a, 0x120a], /* ETHIOPIC SYLLABLE LI */
-  [0x120b, 0x120b], /* ETHIOPIC SYLLABLE LAA */
-  [0x120c, 0x120c], /* ETHIOPIC SYLLABLE LEE */
-  [0x120d, 0x120d], /* ETHIOPIC SYLLABLE LE */
-  [0x120e, 0x120e], /* ETHIOPIC SYLLABLE LO */
-  [0x120f, 0x120f], /* ETHIOPIC SYLLABLE LWA */
-  [0x1210, 0x1210], /* ETHIOPIC SYLLABLE HHA */
-  [0x1211, 0x1211], /* ETHIOPIC SYLLABLE HHU */
-  [0x1212, 0x1212], /* ETHIOPIC SYLLABLE HHI */
-  [0x1213, 0x1213], /* ETHIOPIC SYLLABLE HHAA */
-  [0x1214, 0x1214], /* ETHIOPIC SYLLABLE HHEE */
-  [0x1215, 0x1215], /* ETHIOPIC SYLLABLE HHE */
-  [0x1216, 0x1216], /* ETHIOPIC SYLLABLE HHO */
-  [0x1217, 0x1217], /* ETHIOPIC SYLLABLE HHWA */
-  [0x1218, 0x1218], /* ETHIOPIC SYLLABLE MA */
-  [0x1219, 0x1219], /* ETHIOPIC SYLLABLE MU */
-  [0x121a, 0x121a], /* ETHIOPIC SYLLABLE MI */
-  [0x121b, 0x121b], /* ETHIOPIC SYLLABLE MAA */
-  [0x121c, 0x121c], /* ETHIOPIC SYLLABLE MEE */
-  [0x121d, 0x121d], /* ETHIOPIC SYLLABLE ME */
-  [0x121e, 0x121e], /* ETHIOPIC SYLLABLE MO */
-  [0x121f, 0x121f], /* ETHIOPIC SYLLABLE MWA */
-  [0x1220, 0x1220], /* ETHIOPIC SYLLABLE SZA */
-  [0x1221, 0x1221], /* ETHIOPIC SYLLABLE SZU */
-  [0x1222, 0x1222], /* ETHIOPIC SYLLABLE SZI */
-  [0x1223, 0x1223], /* ETHIOPIC SYLLABLE SZAA */
-  [0x1224, 0x1224], /* ETHIOPIC SYLLABLE SZEE */
-  [0x1225, 0x1225], /* ETHIOPIC SYLLABLE SZE */
-  [0x1226, 0x1226], /* ETHIOPIC SYLLABLE SZO */
-  [0x1227, 0x1227], /* ETHIOPIC SYLLABLE SZWA */
-  [0x1228, 0x1228], /* ETHIOPIC SYLLABLE RA */
-  [0x1229, 0x1229], /* ETHIOPIC SYLLABLE RU */
-  [0x122a, 0x122a], /* ETHIOPIC SYLLABLE RI */
-  [0x122b, 0x122b], /* ETHIOPIC SYLLABLE RAA */
-  [0x122c, 0x122c], /* ETHIOPIC SYLLABLE REE */
-  [0x122d, 0x122d], /* ETHIOPIC SYLLABLE RE */
-  [0x122e, 0x122e], /* ETHIOPIC SYLLABLE RO */
-  [0x122f, 0x122f], /* ETHIOPIC SYLLABLE RWA */
-  [0x1230, 0x1230], /* ETHIOPIC SYLLABLE SA */
-  [0x1231, 0x1231], /* ETHIOPIC SYLLABLE SU */
-  [0x1232, 0x1232], /* ETHIOPIC SYLLABLE SI */
-  [0x1233, 0x1233], /* ETHIOPIC SYLLABLE SAA */
-  [0x1234, 0x1234], /* ETHIOPIC SYLLABLE SEE */
-  [0x1235, 0x1235], /* ETHIOPIC SYLLABLE SE */
-  [0x1236, 0x1236], /* ETHIOPIC SYLLABLE SO */
-  [0x1237, 0x1237], /* ETHIOPIC SYLLABLE SWA */
-  [0x1238, 0x1238], /* ETHIOPIC SYLLABLE SHA */
-  [0x1239, 0x1239], /* ETHIOPIC SYLLABLE SHU */
-  [0x123a, 0x123a], /* ETHIOPIC SYLLABLE SHI */
-  [0x123b, 0x123b], /* ETHIOPIC SYLLABLE SHAA */
-  [0x123c, 0x123c], /* ETHIOPIC SYLLABLE SHEE */
-  [0x123d, 0x123d], /* ETHIOPIC SYLLABLE SHE */
-  [0x123e, 0x123e], /* ETHIOPIC SYLLABLE SHO */
-  [0x123f, 0x123f], /* ETHIOPIC SYLLABLE SHWA */
-  [0x1240, 0x1240], /* ETHIOPIC SYLLABLE QA */
-  [0x1241, 0x1241], /* ETHIOPIC SYLLABLE QU */
-  [0x1242, 0x1242], /* ETHIOPIC SYLLABLE QI */
-  [0x1243, 0x1243], /* ETHIOPIC SYLLABLE QAA */
-  [0x1244, 0x1244], /* ETHIOPIC SYLLABLE QEE */
-  [0x1245, 0x1245], /* ETHIOPIC SYLLABLE QE */
-  [0x1246, 0x1246], /* ETHIOPIC SYLLABLE QO */
-  [0x1247, 0x1247], /* ETHIOPIC SYLLABLE QOA */
-  [0x1248, 0x1248], /* ETHIOPIC SYLLABLE QWA */
-  [0x1249, 0x1249],
-  [0x124a, 0x124a], /* ETHIOPIC SYLLABLE QWI */
-  [0x124b, 0x124b], /* ETHIOPIC SYLLABLE QWAA */
-  [0x124c, 0x124c], /* ETHIOPIC SYLLABLE QWEE */
-  [0x124d, 0x124d], /* ETHIOPIC SYLLABLE QWE */
-  [0x124e, 0x124e],
-  [0x124f, 0x124f],
-  [0x1250, 0x1250], /* ETHIOPIC SYLLABLE QHA */
-  [0x1251, 0x1251], /* ETHIOPIC SYLLABLE QHU */
-  [0x1252, 0x1252], /* ETHIOPIC SYLLABLE QHI */
-  [0x1253, 0x1253], /* ETHIOPIC SYLLABLE QHAA */
-  [0x1254, 0x1254], /* ETHIOPIC SYLLABLE QHEE */
-  [0x1255, 0x1255], /* ETHIOPIC SYLLABLE QHE */
-  [0x1256, 0x1256], /* ETHIOPIC SYLLABLE QHO */
-  [0x1257, 0x1257],
-  [0x1258, 0x1258], /* ETHIOPIC SYLLABLE QHWA */
-  [0x1259, 0x1259],
-  [0x125a, 0x125a], /* ETHIOPIC SYLLABLE QHWI */
-  [0x125b, 0x125b], /* ETHIOPIC SYLLABLE QHWAA */
-  [0x125c, 0x125c], /* ETHIOPIC SYLLABLE QHWEE */
-  [0x125d, 0x125d], /* ETHIOPIC SYLLABLE QHWE */
-  [0x125e, 0x125e],
-  [0x125f, 0x125f],
-  [0x1260, 0x1260], /* ETHIOPIC SYLLABLE BA */
-  [0x1261, 0x1261], /* ETHIOPIC SYLLABLE BU */
-  [0x1262, 0x1262], /* ETHIOPIC SYLLABLE BI */
-  [0x1263, 0x1263], /* ETHIOPIC SYLLABLE BAA */
-  [0x1264, 0x1264], /* ETHIOPIC SYLLABLE BEE */
-  [0x1265, 0x1265], /* ETHIOPIC SYLLABLE BE */
-  [0x1266, 0x1266], /* ETHIOPIC SYLLABLE BO */
-  [0x1267, 0x1267], /* ETHIOPIC SYLLABLE BWA */
-  [0x1268, 0x1268], /* ETHIOPIC SYLLABLE VA */
-  [0x1269, 0x1269], /* ETHIOPIC SYLLABLE VU */
-  [0x126a, 0x126a], /* ETHIOPIC SYLLABLE VI */
-  [0x126b, 0x126b], /* ETHIOPIC SYLLABLE VAA */
-  [0x126c, 0x126c], /* ETHIOPIC SYLLABLE VEE */
-  [0x126d, 0x126d], /* ETHIOPIC SYLLABLE VE */
-  [0x126e, 0x126e], /* ETHIOPIC SYLLABLE VO */
-  [0x126f, 0x126f], /* ETHIOPIC SYLLABLE VWA */
-  [0x1270, 0x1270], /* ETHIOPIC SYLLABLE TA */
-  [0x1271, 0x1271], /* ETHIOPIC SYLLABLE TU */
-  [0x1272, 0x1272], /* ETHIOPIC SYLLABLE TI */
-  [0x1273, 0x1273], /* ETHIOPIC SYLLABLE TAA */
-  [0x1274, 0x1274], /* ETHIOPIC SYLLABLE TEE */
-  [0x1275, 0x1275], /* ETHIOPIC SYLLABLE TE */
-  [0x1276, 0x1276], /* ETHIOPIC SYLLABLE TO */
-  [0x1277, 0x1277], /* ETHIOPIC SYLLABLE TWA */
-  [0x1278, 0x1278], /* ETHIOPIC SYLLABLE CA */
-  [0x1279, 0x1279], /* ETHIOPIC SYLLABLE CU */
-  [0x127a, 0x127a], /* ETHIOPIC SYLLABLE CI */
-  [0x127b, 0x127b], /* ETHIOPIC SYLLABLE CAA */
-  [0x127c, 0x127c], /* ETHIOPIC SYLLABLE CEE */
-  [0x127d, 0x127d], /* ETHIOPIC SYLLABLE CE */
-  [0x127e, 0x127e], /* ETHIOPIC SYLLABLE CO */
-  [0x127f, 0x127f], /* ETHIOPIC SYLLABLE CWA */
-  [0x1280, 0x1280], /* ETHIOPIC SYLLABLE XA */
-  [0x1281, 0x1281], /* ETHIOPIC SYLLABLE XU */
-  [0x1282, 0x1282], /* ETHIOPIC SYLLABLE XI */
-  [0x1283, 0x1283], /* ETHIOPIC SYLLABLE XAA */
-  [0x1284, 0x1284], /* ETHIOPIC SYLLABLE XEE */
-  [0x1285, 0x1285], /* ETHIOPIC SYLLABLE XE */
-  [0x1286, 0x1286], /* ETHIOPIC SYLLABLE XO */
-  [0x1287, 0x1287], /* ETHIOPIC SYLLABLE XOA */
-  [0x1288, 0x1288], /* ETHIOPIC SYLLABLE XWA */
-  [0x1289, 0x1289],
-  [0x128a, 0x128a], /* ETHIOPIC SYLLABLE XWI */
-  [0x128b, 0x128b], /* ETHIOPIC SYLLABLE XWAA */
-  [0x128c, 0x128c], /* ETHIOPIC SYLLABLE XWEE */
-  [0x128d, 0x128d], /* ETHIOPIC SYLLABLE XWE */
-  [0x128e, 0x128e],
-  [0x128f, 0x128f],
-  [0x1290, 0x1290], /* ETHIOPIC SYLLABLE NA */
-  [0x1291, 0x1291], /* ETHIOPIC SYLLABLE NU */
-  [0x1292, 0x1292], /* ETHIOPIC SYLLABLE NI */
-  [0x1293, 0x1293], /* ETHIOPIC SYLLABLE NAA */
-  [0x1294, 0x1294], /* ETHIOPIC SYLLABLE NEE */
-  [0x1295, 0x1295], /* ETHIOPIC SYLLABLE NE */
-  [0x1296, 0x1296], /* ETHIOPIC SYLLABLE NO */
-  [0x1297, 0x1297], /* ETHIOPIC SYLLABLE NWA */
-  [0x1298, 0x1298], /* ETHIOPIC SYLLABLE NYA */
-  [0x1299, 0x1299], /* ETHIOPIC SYLLABLE NYU */
-  [0x129a, 0x129a], /* ETHIOPIC SYLLABLE NYI */
-  [0x129b, 0x129b], /* ETHIOPIC SYLLABLE NYAA */
-  [0x129c, 0x129c], /* ETHIOPIC SYLLABLE NYEE */
-  [0x129d, 0x129d], /* ETHIOPIC SYLLABLE NYE */
-  [0x129e, 0x129e], /* ETHIOPIC SYLLABLE NYO */
-  [0x129f, 0x129f], /* ETHIOPIC SYLLABLE NYWA */
-  [0x12a0, 0x12a0], /* ETHIOPIC SYLLABLE GLOTTAL A */
-  [0x12a1, 0x12a1], /* ETHIOPIC SYLLABLE GLOTTAL U */
-  [0x12a2, 0x12a2], /* ETHIOPIC SYLLABLE GLOTTAL I */
-  [0x12a3, 0x12a3], /* ETHIOPIC SYLLABLE GLOTTAL AA */
-  [0x12a4, 0x12a4], /* ETHIOPIC SYLLABLE GLOTTAL EE */
-  [0x12a5, 0x12a5], /* ETHIOPIC SYLLABLE GLOTTAL E */
-  [0x12a6, 0x12a6], /* ETHIOPIC SYLLABLE GLOTTAL O */
-  [0x12a7, 0x12a7], /* ETHIOPIC SYLLABLE GLOTTAL WA */
-  [0x12a8, 0x12a8], /* ETHIOPIC SYLLABLE KA */
-  [0x12a9, 0x12a9], /* ETHIOPIC SYLLABLE KU */
-  [0x12aa, 0x12aa], /* ETHIOPIC SYLLABLE KI */
-  [0x12ab, 0x12ab], /* ETHIOPIC SYLLABLE KAA */
-  [0x12ac, 0x12ac], /* ETHIOPIC SYLLABLE KEE */
-  [0x12ad, 0x12ad], /* ETHIOPIC SYLLABLE KE */
-  [0x12ae, 0x12ae], /* ETHIOPIC SYLLABLE KO */
-  [0x12af, 0x12af], /* ETHIOPIC SYLLABLE KOA */
-  [0x12b0, 0x12b0], /* ETHIOPIC SYLLABLE KWA */
-  [0x12b1, 0x12b1],
-  [0x12b2, 0x12b2], /* ETHIOPIC SYLLABLE KWI */
-  [0x12b3, 0x12b3], /* ETHIOPIC SYLLABLE KWAA */
-  [0x12b4, 0x12b4], /* ETHIOPIC SYLLABLE KWEE */
-  [0x12b5, 0x12b5], /* ETHIOPIC SYLLABLE KWE */
-  [0x12b6, 0x12b6],
-  [0x12b7, 0x12b7],
-  [0x12b8, 0x12b8], /* ETHIOPIC SYLLABLE KXA */
-  [0x12b9, 0x12b9], /* ETHIOPIC SYLLABLE KXU */
-  [0x12ba, 0x12ba], /* ETHIOPIC SYLLABLE KXI */
-  [0x12bb, 0x12bb], /* ETHIOPIC SYLLABLE KXAA */
-  [0x12bc, 0x12bc], /* ETHIOPIC SYLLABLE KXEE */
-  [0x12bd, 0x12bd], /* ETHIOPIC SYLLABLE KXE */
-  [0x12be, 0x12be], /* ETHIOPIC SYLLABLE KXO */
-  [0x12bf, 0x12bf],
-  [0x12c0, 0x12c0], /* ETHIOPIC SYLLABLE KXWA */
-  [0x12c1, 0x12c1],
-  [0x12c2, 0x12c2], /* ETHIOPIC SYLLABLE KXWI */
-  [0x12c3, 0x12c3], /* ETHIOPIC SYLLABLE KXWAA */
-  [0x12c4, 0x12c4], /* ETHIOPIC SYLLABLE KXWEE */
-  [0x12c5, 0x12c5], /* ETHIOPIC SYLLABLE KXWE */
-  [0x12c6, 0x12c6],
-  [0x12c7, 0x12c7],
-  [0x12c8, 0x12c8], /* ETHIOPIC SYLLABLE WA */
-  [0x12c9, 0x12c9], /* ETHIOPIC SYLLABLE WU */
-  [0x12ca, 0x12ca], /* ETHIOPIC SYLLABLE WI */
-  [0x12cb, 0x12cb], /* ETHIOPIC SYLLABLE WAA */
-  [0x12cc, 0x12cc], /* ETHIOPIC SYLLABLE WEE */
-  [0x12cd, 0x12cd], /* ETHIOPIC SYLLABLE WE */
-  [0x12ce, 0x12ce], /* ETHIOPIC SYLLABLE WO */
-  [0x12cf, 0x12cf], /* ETHIOPIC SYLLABLE WOA */
-  [0x12d0, 0x12d0], /* ETHIOPIC SYLLABLE PHARYNGEAL A */
-  [0x12d1, 0x12d1], /* ETHIOPIC SYLLABLE PHARYNGEAL U */
-  [0x12d2, 0x12d2], /* ETHIOPIC SYLLABLE PHARYNGEAL I */
-  [0x12d3, 0x12d3], /* ETHIOPIC SYLLABLE PHARYNGEAL AA */
-  [0x12d4, 0x12d4], /* ETHIOPIC SYLLABLE PHARYNGEAL EE */
-  [0x12d5, 0x12d5], /* ETHIOPIC SYLLABLE PHARYNGEAL E */
-  [0x12d6, 0x12d6], /* ETHIOPIC SYLLABLE PHARYNGEAL O */
-  [0x12d7, 0x12d7],
-  [0x12d8, 0x12d8], /* ETHIOPIC SYLLABLE ZA */
-  [0x12d9, 0x12d9], /* ETHIOPIC SYLLABLE ZU */
-  [0x12da, 0x12da], /* ETHIOPIC SYLLABLE ZI */
-  [0x12db, 0x12db], /* ETHIOPIC SYLLABLE ZAA */
-  [0x12dc, 0x12dc], /* ETHIOPIC SYLLABLE ZEE */
-  [0x12dd, 0x12dd], /* ETHIOPIC SYLLABLE ZE */
-  [0x12de, 0x12de], /* ETHIOPIC SYLLABLE ZO */
-  [0x12df, 0x12df], /* ETHIOPIC SYLLABLE ZWA */
-  [0x12e0, 0x12e0], /* ETHIOPIC SYLLABLE ZHA */
-  [0x12e1, 0x12e1], /* ETHIOPIC SYLLABLE ZHU */
-  [0x12e2, 0x12e2], /* ETHIOPIC SYLLABLE ZHI */
-  [0x12e3, 0x12e3], /* ETHIOPIC SYLLABLE ZHAA */
-  [0x12e4, 0x12e4], /* ETHIOPIC SYLLABLE ZHEE */
-  [0x12e5, 0x12e5], /* ETHIOPIC SYLLABLE ZHE */
-  [0x12e6, 0x12e6], /* ETHIOPIC SYLLABLE ZHO */
-  [0x12e7, 0x12e7], /* ETHIOPIC SYLLABLE ZHWA */
-  [0x12e8, 0x12e8], /* ETHIOPIC SYLLABLE YA */
-  [0x12e9, 0x12e9], /* ETHIOPIC SYLLABLE YU */
-  [0x12ea, 0x12ea], /* ETHIOPIC SYLLABLE YI */
-  [0x12eb, 0x12eb], /* ETHIOPIC SYLLABLE YAA */
-  [0x12ec, 0x12ec], /* ETHIOPIC SYLLABLE YEE */
-  [0x12ed, 0x12ed], /* ETHIOPIC SYLLABLE YE */
-  [0x12ee, 0x12ee], /* ETHIOPIC SYLLABLE YO */
-  [0x12ef, 0x12ef], /* ETHIOPIC SYLLABLE YOA */
-  [0x12f0, 0x12f0], /* ETHIOPIC SYLLABLE DA */
-  [0x12f1, 0x12f1], /* ETHIOPIC SYLLABLE DU */
-  [0x12f2, 0x12f2], /* ETHIOPIC SYLLABLE DI */
-  [0x12f3, 0x12f3], /* ETHIOPIC SYLLABLE DAA */
-  [0x12f4, 0x12f4], /* ETHIOPIC SYLLABLE DEE */
-  [0x12f5, 0x12f5], /* ETHIOPIC SYLLABLE DE */
-  [0x12f6, 0x12f6], /* ETHIOPIC SYLLABLE DO */
-  [0x12f7, 0x12f7], /* ETHIOPIC SYLLABLE DWA */
-  [0x12f8, 0x12f8], /* ETHIOPIC SYLLABLE DDA */
-  [0x12f9, 0x12f9], /* ETHIOPIC SYLLABLE DDU */
-  [0x12fa, 0x12fa], /* ETHIOPIC SYLLABLE DDI */
-  [0x12fb, 0x12fb], /* ETHIOPIC SYLLABLE DDAA */
-  [0x12fc, 0x12fc], /* ETHIOPIC SYLLABLE DDEE */
-  [0x12fd, 0x12fd], /* ETHIOPIC SYLLABLE DDE */
-  [0x12fe, 0x12fe], /* ETHIOPIC SYLLABLE DDO */
-  [0x12ff, 0x12ff], /* ETHIOPIC SYLLABLE DDWA */
-  [0x1300, 0x1300], /* ETHIOPIC SYLLABLE JA */
-  [0x1301, 0x1301], /* ETHIOPIC SYLLABLE JU */
-  [0x1302, 0x1302], /* ETHIOPIC SYLLABLE JI */
-  [0x1303, 0x1303], /* ETHIOPIC SYLLABLE JAA */
-  [0x1304, 0x1304], /* ETHIOPIC SYLLABLE JEE */
-  [0x1305, 0x1305], /* ETHIOPIC SYLLABLE JE */
-  [0x1306, 0x1306], /* ETHIOPIC SYLLABLE JO */
-  [0x1307, 0x1307], /* ETHIOPIC SYLLABLE JWA */
-  [0x1308, 0x1308], /* ETHIOPIC SYLLABLE GA */
-  [0x1309, 0x1309], /* ETHIOPIC SYLLABLE GU */
-  [0x130a, 0x130a], /* ETHIOPIC SYLLABLE GI */
-  [0x130b, 0x130b], /* ETHIOPIC SYLLABLE GAA */
-  [0x130c, 0x130c], /* ETHIOPIC SYLLABLE GEE */
-  [0x130d, 0x130d], /* ETHIOPIC SYLLABLE GE */
-  [0x130e, 0x130e], /* ETHIOPIC SYLLABLE GO */
-  [0x130f, 0x130f], /* ETHIOPIC SYLLABLE GOA */
-  [0x1310, 0x1310], /* ETHIOPIC SYLLABLE GWA */
-  [0x1311, 0x1311],
-  [0x1312, 0x1312], /* ETHIOPIC SYLLABLE GWI */
-  [0x1313, 0x1313], /* ETHIOPIC SYLLABLE GWAA */
-  [0x1314, 0x1314], /* ETHIOPIC SYLLABLE GWEE */
-  [0x1315, 0x1315], /* ETHIOPIC SYLLABLE GWE */
-  [0x1316, 0x1316],
-  [0x1317, 0x1317],
-  [0x1318, 0x1318], /* ETHIOPIC SYLLABLE GGA */
-  [0x1319, 0x1319], /* ETHIOPIC SYLLABLE GGU */
-  [0x131a, 0x131a], /* ETHIOPIC SYLLABLE GGI */
-  [0x131b, 0x131b], /* ETHIOPIC SYLLABLE GGAA */
-  [0x131c, 0x131c], /* ETHIOPIC SYLLABLE GGEE */
-  [0x131d, 0x131d], /* ETHIOPIC SYLLABLE GGE */
-  [0x131e, 0x131e], /* ETHIOPIC SYLLABLE GGO */
-  [0x131f, 0x131f], /* ETHIOPIC SYLLABLE GGWAA */
-  [0x1320, 0x1320], /* ETHIOPIC SYLLABLE THA */
-  [0x1321, 0x1321], /* ETHIOPIC SYLLABLE THU */
-  [0x1322, 0x1322], /* ETHIOPIC SYLLABLE THI */
-  [0x1323, 0x1323], /* ETHIOPIC SYLLABLE THAA */
-  [0x1324, 0x1324], /* ETHIOPIC SYLLABLE THEE */
-  [0x1325, 0x1325], /* ETHIOPIC SYLLABLE THE */
-  [0x1326, 0x1326], /* ETHIOPIC SYLLABLE THO */
-  [0x1327, 0x1327], /* ETHIOPIC SYLLABLE THWA */
-  [0x1328, 0x1328], /* ETHIOPIC SYLLABLE CHA */
-  [0x1329, 0x1329], /* ETHIOPIC SYLLABLE CHU */
-  [0x132a, 0x132a], /* ETHIOPIC SYLLABLE CHI */
-  [0x132b, 0x132b], /* ETHIOPIC SYLLABLE CHAA */
-  [0x132c, 0x132c], /* ETHIOPIC SYLLABLE CHEE */
-  [0x132d, 0x132d], /* ETHIOPIC SYLLABLE CHE */
-  [0x132e, 0x132e], /* ETHIOPIC SYLLABLE CHO */
-  [0x132f, 0x132f], /* ETHIOPIC SYLLABLE CHWA */
-  [0x1330, 0x1330], /* ETHIOPIC SYLLABLE PHA */
-  [0x1331, 0x1331], /* ETHIOPIC SYLLABLE PHU */
-  [0x1332, 0x1332], /* ETHIOPIC SYLLABLE PHI */
-  [0x1333, 0x1333], /* ETHIOPIC SYLLABLE PHAA */
-  [0x1334, 0x1334], /* ETHIOPIC SYLLABLE PHEE */
-  [0x1335, 0x1335], /* ETHIOPIC SYLLABLE PHE */
-  [0x1336, 0x1336], /* ETHIOPIC SYLLABLE PHO */
-  [0x1337, 0x1337], /* ETHIOPIC SYLLABLE PHWA */
-  [0x1338, 0x1338], /* ETHIOPIC SYLLABLE TSA */
-  [0x1339, 0x1339], /* ETHIOPIC SYLLABLE TSU */
-  [0x133a, 0x133a], /* ETHIOPIC SYLLABLE TSI */
-  [0x133b, 0x133b], /* ETHIOPIC SYLLABLE TSAA */
-  [0x133c, 0x133c], /* ETHIOPIC SYLLABLE TSEE */
-  [0x133d, 0x133d], /* ETHIOPIC SYLLABLE TSE */
-  [0x133e, 0x133e], /* ETHIOPIC SYLLABLE TSO */
-  [0x133f, 0x133f], /* ETHIOPIC SYLLABLE TSWA */
-  [0x1340, 0x1340], /* ETHIOPIC SYLLABLE TZA */
-  [0x1341, 0x1341], /* ETHIOPIC SYLLABLE TZU */
-  [0x1342, 0x1342], /* ETHIOPIC SYLLABLE TZI */
-  [0x1343, 0x1343], /* ETHIOPIC SYLLABLE TZAA */
-  [0x1344, 0x1344], /* ETHIOPIC SYLLABLE TZEE */
-  [0x1345, 0x1345], /* ETHIOPIC SYLLABLE TZE */
-  [0x1346, 0x1346], /* ETHIOPIC SYLLABLE TZO */
-  [0x1347, 0x1347], /* ETHIOPIC SYLLABLE TZOA */
-  [0x1348, 0x1348], /* ETHIOPIC SYLLABLE FA */
-  [0x1349, 0x1349], /* ETHIOPIC SYLLABLE FU */
-  [0x134a, 0x134a], /* ETHIOPIC SYLLABLE FI */
-  [0x134b, 0x134b], /* ETHIOPIC SYLLABLE FAA */
-  [0x134c, 0x134c], /* ETHIOPIC SYLLABLE FEE */
-  [0x134d, 0x134d], /* ETHIOPIC SYLLABLE FE */
-  [0x134e, 0x134e], /* ETHIOPIC SYLLABLE FO */
-  [0x134f, 0x134f], /* ETHIOPIC SYLLABLE FWA */
-  [0x1350, 0x1350], /* ETHIOPIC SYLLABLE PA */
-  [0x1351, 0x1351], /* ETHIOPIC SYLLABLE PU */
-  [0x1352, 0x1352], /* ETHIOPIC SYLLABLE PI */
-  [0x1353, 0x1353], /* ETHIOPIC SYLLABLE PAA */
-  [0x1354, 0x1354], /* ETHIOPIC SYLLABLE PEE */
-  [0x1355, 0x1355], /* ETHIOPIC SYLLABLE PE */
-  [0x1356, 0x1356], /* ETHIOPIC SYLLABLE PO */
-  [0x1357, 0x1357], /* ETHIOPIC SYLLABLE PWA */
-  [0x1358, 0x1358], /* ETHIOPIC SYLLABLE RYA */
-  [0x1359, 0x1359], /* ETHIOPIC SYLLABLE MYA */
-  [0x135a, 0x135a], /* ETHIOPIC SYLLABLE FYA */
-  [0x135b, 0x135b],
-  [0x135c, 0x135c],
-  [0x135d, 0x135d], /* ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK */
-  [0x135e, 0x135e], /* ETHIOPIC COMBINING VOWEL LENGTH MARK */
-  [0x135f, 0x135f], /* ETHIOPIC COMBINING GEMINATION MARK */
-  [0x1360, 0x1360], /* ETHIOPIC SECTION MARK */
-  [0x1361, 0x1361], /* ETHIOPIC WORDSPACE */
-  [0x1362, 0x1362], /* ETHIOPIC FULL STOP */
-  [0x1363, 0x1363], /* ETHIOPIC COMMA */
-  [0x1364, 0x1364], /* ETHIOPIC SEMICOLON */
-  [0x1365, 0x1365], /* ETHIOPIC COLON */
-  [0x1366, 0x1366], /* ETHIOPIC PREFACE COLON */
-  [0x1367, 0x1367], /* ETHIOPIC QUESTION MARK */
-  [0x1368, 0x1368], /* ETHIOPIC PARAGRAPH SEPARATOR */
-  [0x1369, 0x1369], /* ETHIOPIC DIGIT ONE */
-  [0x136a, 0x136a], /* ETHIOPIC DIGIT TWO */
-  [0x136b, 0x136b], /* ETHIOPIC DIGIT THREE */
-  [0x136c, 0x136c], /* ETHIOPIC DIGIT FOUR */
-  [0x136d, 0x136d], /* ETHIOPIC DIGIT FIVE */
-  [0x136e, 0x136e], /* ETHIOPIC DIGIT SIX */
-  [0x136f, 0x136f], /* ETHIOPIC DIGIT SEVEN */
-  [0x1370, 0x1370], /* ETHIOPIC DIGIT EIGHT */
-  [0x1371, 0x1371], /* ETHIOPIC DIGIT NINE */
-  [0x1372, 0x1372], /* ETHIOPIC NUMBER TEN */
-  [0x1373, 0x1373], /* ETHIOPIC NUMBER TWENTY */
-  [0x1374, 0x1374], /* ETHIOPIC NUMBER THIRTY */
-  [0x1375, 0x1375], /* ETHIOPIC NUMBER FORTY */
-  [0x1376, 0x1376], /* ETHIOPIC NUMBER FIFTY */
-  [0x1377, 0x1377], /* ETHIOPIC NUMBER SIXTY */
-  [0x1378, 0x1378], /* ETHIOPIC NUMBER SEVENTY */
-  [0x1379, 0x1379], /* ETHIOPIC NUMBER EIGHTY */
-  [0x137a, 0x137a], /* ETHIOPIC NUMBER NINETY */
-  [0x137b, 0x137b], /* ETHIOPIC NUMBER HUNDRED */
-  [0x137c, 0x137c], /* ETHIOPIC NUMBER TEN THOUSAND */
-  [0x137d, 0x137d],
-  [0x137e, 0x137e],
-  [0x137f, 0x137f],
-  [0x1380, 0x1380], /* ETHIOPIC SYLLABLE SEBATBEIT MWA */
-  [0x1381, 0x1381], /* ETHIOPIC SYLLABLE MWI */
-  [0x1382, 0x1382], /* ETHIOPIC SYLLABLE MWEE */
-  [0x1383, 0x1383], /* ETHIOPIC SYLLABLE MWE */
-  [0x1384, 0x1384], /* ETHIOPIC SYLLABLE SEBATBEIT BWA */
-  [0x1385, 0x1385], /* ETHIOPIC SYLLABLE BWI */
-  [0x1386, 0x1386], /* ETHIOPIC SYLLABLE BWEE */
-  [0x1387, 0x1387], /* ETHIOPIC SYLLABLE BWE */
-  [0x1388, 0x1388], /* ETHIOPIC SYLLABLE SEBATBEIT FWA */
-  [0x1389, 0x1389], /* ETHIOPIC SYLLABLE FWI */
-  [0x138a, 0x138a], /* ETHIOPIC SYLLABLE FWEE */
-  [0x138b, 0x138b], /* ETHIOPIC SYLLABLE FWE */
-  [0x138c, 0x138c], /* ETHIOPIC SYLLABLE SEBATBEIT PWA */
-  [0x138d, 0x138d], /* ETHIOPIC SYLLABLE PWI */
-  [0x138e, 0x138e], /* ETHIOPIC SYLLABLE PWEE */
-  [0x138f, 0x138f], /* ETHIOPIC SYLLABLE PWE */
-  [0x1390, 0x1390], /* ETHIOPIC TONAL MARK YIZET */
-  [0x1391, 0x1391], /* ETHIOPIC TONAL MARK DERET */
-  [0x1392, 0x1392], /* ETHIOPIC TONAL MARK RIKRIK */
-  [0x1393, 0x1393], /* ETHIOPIC TONAL MARK SHORT RIKRIK */
-  [0x1394, 0x1394], /* ETHIOPIC TONAL MARK DIFAT */
-  [0x1395, 0x1395], /* ETHIOPIC TONAL MARK KENAT */
-  [0x1396, 0x1396], /* ETHIOPIC TONAL MARK CHIRET */
-  [0x1397, 0x1397], /* ETHIOPIC TONAL MARK HIDET */
-  [0x1398, 0x1398], /* ETHIOPIC TONAL MARK DERET-HIDET */
-  [0x1399, 0x1399], /* ETHIOPIC TONAL MARK KURT */
-  [0x139a, 0x139a],
-  [0x139b, 0x139b],
-  [0x139c, 0x139c],
-  [0x139d, 0x139d],
-  [0x139e, 0x139e],
-  [0x139f, 0x139f],
-  [0x13a0, 0xab70], /* CHEROKEE LETTER A */
-  [0x13a1, 0xab71], /* CHEROKEE LETTER E */
-  [0x13a2, 0xab72], /* CHEROKEE LETTER I */
-  [0x13a3, 0xab73], /* CHEROKEE LETTER O */
-  [0x13a4, 0xab74], /* CHEROKEE LETTER U */
-  [0x13a5, 0xab75], /* CHEROKEE LETTER V */
-  [0x13a6, 0xab76], /* CHEROKEE LETTER GA */
-  [0x13a7, 0xab77], /* CHEROKEE LETTER KA */
-  [0x13a8, 0xab78], /* CHEROKEE LETTER GE */
-  [0x13a9, 0xab79], /* CHEROKEE LETTER GI */
-  [0x13aa, 0xab7a], /* CHEROKEE LETTER GO */
-  [0x13ab, 0xab7b], /* CHEROKEE LETTER GU */
-  [0x13ac, 0xab7c], /* CHEROKEE LETTER GV */
-  [0x13ad, 0xab7d], /* CHEROKEE LETTER HA */
-  [0x13ae, 0xab7e], /* CHEROKEE LETTER HE */
-  [0x13af, 0xab7f], /* CHEROKEE LETTER HI */
-  [0x13b0, 0xab80], /* CHEROKEE LETTER HO */
-  [0x13b1, 0xab81], /* CHEROKEE LETTER HU */
-  [0x13b2, 0xab82], /* CHEROKEE LETTER HV */
-  [0x13b3, 0xab83], /* CHEROKEE LETTER LA */
-  [0x13b4, 0xab84], /* CHEROKEE LETTER LE */
-  [0x13b5, 0xab85], /* CHEROKEE LETTER LI */
-  [0x13b6, 0xab86], /* CHEROKEE LETTER LO */
-  [0x13b7, 0xab87], /* CHEROKEE LETTER LU */
-  [0x13b8, 0xab88], /* CHEROKEE LETTER LV */
-  [0x13b9, 0xab89], /* CHEROKEE LETTER MA */
-  [0x13ba, 0xab8a], /* CHEROKEE LETTER ME */
-  [0x13bb, 0xab8b], /* CHEROKEE LETTER MI */
-  [0x13bc, 0xab8c], /* CHEROKEE LETTER MO */
-  [0x13bd, 0xab8d], /* CHEROKEE LETTER MU */
-  [0x13be, 0xab8e], /* CHEROKEE LETTER NA */
-  [0x13bf, 0xab8f], /* CHEROKEE LETTER HNA */
-  [0x13c0, 0xab90], /* CHEROKEE LETTER NAH */
-  [0x13c1, 0xab91], /* CHEROKEE LETTER NE */
-  [0x13c2, 0xab92], /* CHEROKEE LETTER NI */
-  [0x13c3, 0xab93], /* CHEROKEE LETTER NO */
-  [0x13c4, 0xab94], /* CHEROKEE LETTER NU */
-  [0x13c5, 0xab95], /* CHEROKEE LETTER NV */
-  [0x13c6, 0xab96], /* CHEROKEE LETTER QUA */
-  [0x13c7, 0xab97], /* CHEROKEE LETTER QUE */
-  [0x13c8, 0xab98], /* CHEROKEE LETTER QUI */
-  [0x13c9, 0xab99], /* CHEROKEE LETTER QUO */
-  [0x13ca, 0xab9a], /* CHEROKEE LETTER QUU */
-  [0x13cb, 0xab9b], /* CHEROKEE LETTER QUV */
-  [0x13cc, 0xab9c], /* CHEROKEE LETTER SA */
-  [0x13cd, 0xab9d], /* CHEROKEE LETTER S */
-  [0x13ce, 0xab9e], /* CHEROKEE LETTER SE */
-  [0x13cf, 0xab9f], /* CHEROKEE LETTER SI */
-  [0x13d0, 0xaba0], /* CHEROKEE LETTER SO */
-  [0x13d1, 0xaba1], /* CHEROKEE LETTER SU */
-  [0x13d2, 0xaba2], /* CHEROKEE LETTER SV */
-  [0x13d3, 0xaba3], /* CHEROKEE LETTER DA */
-  [0x13d4, 0xaba4], /* CHEROKEE LETTER TA */
-  [0x13d5, 0xaba5], /* CHEROKEE LETTER DE */
-  [0x13d6, 0xaba6], /* CHEROKEE LETTER TE */
-  [0x13d7, 0xaba7], /* CHEROKEE LETTER DI */
-  [0x13d8, 0xaba8], /* CHEROKEE LETTER TI */
-  [0x13d9, 0xaba9], /* CHEROKEE LETTER DO */
-  [0x13da, 0xabaa], /* CHEROKEE LETTER DU */
-  [0x13db, 0xabab], /* CHEROKEE LETTER DV */
-  [0x13dc, 0xabac], /* CHEROKEE LETTER DLA */
-  [0x13dd, 0xabad], /* CHEROKEE LETTER TLA */
-  [0x13de, 0xabae], /* CHEROKEE LETTER TLE */
-  [0x13df, 0xabaf], /* CHEROKEE LETTER TLI */
-  [0x13e0, 0xabb0], /* CHEROKEE LETTER TLO */
-  [0x13e1, 0xabb1], /* CHEROKEE LETTER TLU */
-  [0x13e2, 0xabb2], /* CHEROKEE LETTER TLV */
-  [0x13e3, 0xabb3], /* CHEROKEE LETTER TSA */
-  [0x13e4, 0xabb4], /* CHEROKEE LETTER TSE */
-  [0x13e5, 0xabb5], /* CHEROKEE LETTER TSI */
-  [0x13e6, 0xabb6], /* CHEROKEE LETTER TSO */
-  [0x13e7, 0xabb7], /* CHEROKEE LETTER TSU */
-  [0x13e8, 0xabb8], /* CHEROKEE LETTER TSV */
-  [0x13e9, 0xabb9], /* CHEROKEE LETTER WA */
-  [0x13ea, 0xabba], /* CHEROKEE LETTER WE */
-  [0x13eb, 0xabbb], /* CHEROKEE LETTER WI */
-  [0x13ec, 0xabbc], /* CHEROKEE LETTER WO */
-  [0x13ed, 0xabbd], /* CHEROKEE LETTER WU */
-  [0x13ee, 0xabbe], /* CHEROKEE LETTER WV */
-  [0x13ef, 0xabbf], /* CHEROKEE LETTER YA */
-  [0x13f0, 0x13f8], /* CHEROKEE LETTER YE */
-  [0x13f1, 0x13f9], /* CHEROKEE LETTER YI */
-  [0x13f2, 0x13fa], /* CHEROKEE LETTER YO */
-  [0x13f3, 0x13fb], /* CHEROKEE LETTER YU */
-  [0x13f4, 0x13fc], /* CHEROKEE LETTER YV */
-  [0x13f5, 0x13fd], /* CHEROKEE LETTER MV */
-  [0x13f6, 0x13f6],
-  [0x13f7, 0x13f7],
-  [0x13f0, 0x13f8], /* CHEROKEE SMALL LETTER YE */
-  [0x13f1, 0x13f9], /* CHEROKEE SMALL LETTER YI */
-  [0x13f2, 0x13fa], /* CHEROKEE SMALL LETTER YO */
-  [0x13f3, 0x13fb], /* CHEROKEE SMALL LETTER YU */
-  [0x13f4, 0x13fc], /* CHEROKEE SMALL LETTER YV */
-  [0x13f5, 0x13fd], /* CHEROKEE SMALL LETTER MV */
-  [0x13fe, 0x13fe],
-  [0x13ff, 0x13ff],
-  [0x1400, 0x1400], /* CANADIAN SYLLABICS HYPHEN */
-  [0x1401, 0x1401], /* CANADIAN SYLLABICS E */
-  [0x1402, 0x1402], /* CANADIAN SYLLABICS AAI */
-  [0x1403, 0x1403], /* CANADIAN SYLLABICS I */
-  [0x1404, 0x1404], /* CANADIAN SYLLABICS II */
-  [0x1405, 0x1405], /* CANADIAN SYLLABICS O */
-  [0x1406, 0x1406], /* CANADIAN SYLLABICS OO */
-  [0x1407, 0x1407], /* CANADIAN SYLLABICS Y-CREE OO */
-  [0x1408, 0x1408], /* CANADIAN SYLLABICS CARRIER EE */
-  [0x1409, 0x1409], /* CANADIAN SYLLABICS CARRIER I */
-  [0x140a, 0x140a], /* CANADIAN SYLLABICS A */
-  [0x140b, 0x140b], /* CANADIAN SYLLABICS AA */
-  [0x140c, 0x140c], /* CANADIAN SYLLABICS WE */
-  [0x140d, 0x140d], /* CANADIAN SYLLABICS WEST-CREE WE */
-  [0x140e, 0x140e], /* CANADIAN SYLLABICS WI */
-  [0x140f, 0x140f], /* CANADIAN SYLLABICS WEST-CREE WI */
-  [0x1410, 0x1410], /* CANADIAN SYLLABICS WII */
-  [0x1411, 0x1411], /* CANADIAN SYLLABICS WEST-CREE WII */
-  [0x1412, 0x1412], /* CANADIAN SYLLABICS WO */
-  [0x1413, 0x1413], /* CANADIAN SYLLABICS WEST-CREE WO */
-  [0x1414, 0x1414], /* CANADIAN SYLLABICS WOO */
-  [0x1415, 0x1415], /* CANADIAN SYLLABICS WEST-CREE WOO */
-  [0x1416, 0x1416], /* CANADIAN SYLLABICS NASKAPI WOO */
-  [0x1417, 0x1417], /* CANADIAN SYLLABICS WA */
-  [0x1418, 0x1418], /* CANADIAN SYLLABICS WEST-CREE WA */
-  [0x1419, 0x1419], /* CANADIAN SYLLABICS WAA */
-  [0x141a, 0x141a], /* CANADIAN SYLLABICS WEST-CREE WAA */
-  [0x141b, 0x141b], /* CANADIAN SYLLABICS NASKAPI WAA */
-  [0x141c, 0x141c], /* CANADIAN SYLLABICS AI */
-  [0x141d, 0x141d], /* CANADIAN SYLLABICS Y-CREE W */
-  [0x141e, 0x141e], /* CANADIAN SYLLABICS GLOTTAL STOP */
-  [0x141f, 0x141f], /* CANADIAN SYLLABICS FINAL ACUTE */
-  [0x1420, 0x1420], /* CANADIAN SYLLABICS FINAL GRAVE */
-  [0x1421, 0x1421], /* CANADIAN SYLLABICS FINAL BOTTOM HALF RING */
-  [0x1422, 0x1422], /* CANADIAN SYLLABICS FINAL TOP HALF RING */
-  [0x1423, 0x1423], /* CANADIAN SYLLABICS FINAL RIGHT HALF RING */
-  [0x1424, 0x1424], /* CANADIAN SYLLABICS FINAL RING */
-  [0x1425, 0x1425], /* CANADIAN SYLLABICS FINAL DOUBLE ACUTE */
-  [0x1426, 0x1426], /* CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES */
-  [0x1427, 0x1427], /* CANADIAN SYLLABICS FINAL MIDDLE DOT */
-  [0x1428, 0x1428], /* CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE */
-  [0x1429, 0x1429], /* CANADIAN SYLLABICS FINAL PLUS */
-  [0x142a, 0x142a], /* CANADIAN SYLLABICS FINAL DOWN TACK */
-  [0x142b, 0x142b], /* CANADIAN SYLLABICS EN */
-  [0x142c, 0x142c], /* CANADIAN SYLLABICS IN */
-  [0x142d, 0x142d], /* CANADIAN SYLLABICS ON */
-  [0x142e, 0x142e], /* CANADIAN SYLLABICS AN */
-  [0x142f, 0x142f], /* CANADIAN SYLLABICS PE */
-  [0x1430, 0x1430], /* CANADIAN SYLLABICS PAAI */
-  [0x1431, 0x1431], /* CANADIAN SYLLABICS PI */
-  [0x1432, 0x1432], /* CANADIAN SYLLABICS PII */
-  [0x1433, 0x1433], /* CANADIAN SYLLABICS PO */
-  [0x1434, 0x1434], /* CANADIAN SYLLABICS POO */
-  [0x1435, 0x1435], /* CANADIAN SYLLABICS Y-CREE POO */
-  [0x1436, 0x1436], /* CANADIAN SYLLABICS CARRIER HEE */
-  [0x1437, 0x1437], /* CANADIAN SYLLABICS CARRIER HI */
-  [0x1438, 0x1438], /* CANADIAN SYLLABICS PA */
-  [0x1439, 0x1439], /* CANADIAN SYLLABICS PAA */
-  [0x143a, 0x143a], /* CANADIAN SYLLABICS PWE */
-  [0x143b, 0x143b], /* CANADIAN SYLLABICS WEST-CREE PWE */
-  [0x143c, 0x143c], /* CANADIAN SYLLABICS PWI */
-  [0x143d, 0x143d], /* CANADIAN SYLLABICS WEST-CREE PWI */
-  [0x143e, 0x143e], /* CANADIAN SYLLABICS PWII */
-  [0x143f, 0x143f], /* CANADIAN SYLLABICS WEST-CREE PWII */
-  [0x1440, 0x1440], /* CANADIAN SYLLABICS PWO */
-  [0x1441, 0x1441], /* CANADIAN SYLLABICS WEST-CREE PWO */
-  [0x1442, 0x1442], /* CANADIAN SYLLABICS PWOO */
-  [0x1443, 0x1443], /* CANADIAN SYLLABICS WEST-CREE PWOO */
-  [0x1444, 0x1444], /* CANADIAN SYLLABICS PWA */
-  [0x1445, 0x1445], /* CANADIAN SYLLABICS WEST-CREE PWA */
-  [0x1446, 0x1446], /* CANADIAN SYLLABICS PWAA */
-  [0x1447, 0x1447], /* CANADIAN SYLLABICS WEST-CREE PWAA */
-  [0x1448, 0x1448], /* CANADIAN SYLLABICS Y-CREE PWAA */
-  [0x1449, 0x1449], /* CANADIAN SYLLABICS P */
-  [0x144a, 0x144a], /* CANADIAN SYLLABICS WEST-CREE P */
-  [0x144b, 0x144b], /* CANADIAN SYLLABICS CARRIER H */
-  [0x144c, 0x144c], /* CANADIAN SYLLABICS TE */
-  [0x144d, 0x144d], /* CANADIAN SYLLABICS TAAI */
-  [0x144e, 0x144e], /* CANADIAN SYLLABICS TI */
-  [0x144f, 0x144f], /* CANADIAN SYLLABICS TII */
-  [0x1450, 0x1450], /* CANADIAN SYLLABICS TO */
-  [0x1451, 0x1451], /* CANADIAN SYLLABICS TOO */
-  [0x1452, 0x1452], /* CANADIAN SYLLABICS Y-CREE TOO */
-  [0x1453, 0x1453], /* CANADIAN SYLLABICS CARRIER DEE */
-  [0x1454, 0x1454], /* CANADIAN SYLLABICS CARRIER DI */
-  [0x1455, 0x1455], /* CANADIAN SYLLABICS TA */
-  [0x1456, 0x1456], /* CANADIAN SYLLABICS TAA */
-  [0x1457, 0x1457], /* CANADIAN SYLLABICS TWE */
-  [0x1458, 0x1458], /* CANADIAN SYLLABICS WEST-CREE TWE */
-  [0x1459, 0x1459], /* CANADIAN SYLLABICS TWI */
-  [0x145a, 0x145a], /* CANADIAN SYLLABICS WEST-CREE TWI */
-  [0x145b, 0x145b], /* CANADIAN SYLLABICS TWII */
-  [0x145c, 0x145c], /* CANADIAN SYLLABICS WEST-CREE TWII */
-  [0x145d, 0x145d], /* CANADIAN SYLLABICS TWO */
-  [0x145e, 0x145e], /* CANADIAN SYLLABICS WEST-CREE TWO */
-  [0x145f, 0x145f], /* CANADIAN SYLLABICS TWOO */
-  [0x1460, 0x1460], /* CANADIAN SYLLABICS WEST-CREE TWOO */
-  [0x1461, 0x1461], /* CANADIAN SYLLABICS TWA */
-  [0x1462, 0x1462], /* CANADIAN SYLLABICS WEST-CREE TWA */
-  [0x1463, 0x1463], /* CANADIAN SYLLABICS TWAA */
-  [0x1464, 0x1464], /* CANADIAN SYLLABICS WEST-CREE TWAA */
-  [0x1465, 0x1465], /* CANADIAN SYLLABICS NASKAPI TWAA */
-  [0x1466, 0x1466], /* CANADIAN SYLLABICS T */
-  [0x1467, 0x1467], /* CANADIAN SYLLABICS TTE */
-  [0x1468, 0x1468], /* CANADIAN SYLLABICS TTI */
-  [0x1469, 0x1469], /* CANADIAN SYLLABICS TTO */
-  [0x146a, 0x146a], /* CANADIAN SYLLABICS TTA */
-  [0x146b, 0x146b], /* CANADIAN SYLLABICS KE */
-  [0x146c, 0x146c], /* CANADIAN SYLLABICS KAAI */
-  [0x146d, 0x146d], /* CANADIAN SYLLABICS KI */
-  [0x146e, 0x146e], /* CANADIAN SYLLABICS KII */
-  [0x146f, 0x146f], /* CANADIAN SYLLABICS KO */
-  [0x1470, 0x1470], /* CANADIAN SYLLABICS KOO */
-  [0x1471, 0x1471], /* CANADIAN SYLLABICS Y-CREE KOO */
-  [0x1472, 0x1472], /* CANADIAN SYLLABICS KA */
-  [0x1473, 0x1473], /* CANADIAN SYLLABICS KAA */
-  [0x1474, 0x1474], /* CANADIAN SYLLABICS KWE */
-  [0x1475, 0x1475], /* CANADIAN SYLLABICS WEST-CREE KWE */
-  [0x1476, 0x1476], /* CANADIAN SYLLABICS KWI */
-  [0x1477, 0x1477], /* CANADIAN SYLLABICS WEST-CREE KWI */
-  [0x1478, 0x1478], /* CANADIAN SYLLABICS KWII */
-  [0x1479, 0x1479], /* CANADIAN SYLLABICS WEST-CREE KWII */
-  [0x147a, 0x147a], /* CANADIAN SYLLABICS KWO */
-  [0x147b, 0x147b], /* CANADIAN SYLLABICS WEST-CREE KWO */
-  [0x147c, 0x147c], /* CANADIAN SYLLABICS KWOO */
-  [0x147d, 0x147d], /* CANADIAN SYLLABICS WEST-CREE KWOO */
-  [0x147e, 0x147e], /* CANADIAN SYLLABICS KWA */
-  [0x147f, 0x147f], /* CANADIAN SYLLABICS WEST-CREE KWA */
-  [0x1480, 0x1480], /* CANADIAN SYLLABICS KWAA */
-  [0x1481, 0x1481], /* CANADIAN SYLLABICS WEST-CREE KWAA */
-  [0x1482, 0x1482], /* CANADIAN SYLLABICS NASKAPI KWAA */
-  [0x1483, 0x1483], /* CANADIAN SYLLABICS K */
-  [0x1484, 0x1484], /* CANADIAN SYLLABICS KW */
-  [0x1485, 0x1485], /* CANADIAN SYLLABICS SOUTH-SLAVEY KEH */
-  [0x1486, 0x1486], /* CANADIAN SYLLABICS SOUTH-SLAVEY KIH */
-  [0x1487, 0x1487], /* CANADIAN SYLLABICS SOUTH-SLAVEY KOH */
-  [0x1488, 0x1488], /* CANADIAN SYLLABICS SOUTH-SLAVEY KAH */
-  [0x1489, 0x1489], /* CANADIAN SYLLABICS CE */
-  [0x148a, 0x148a], /* CANADIAN SYLLABICS CAAI */
-  [0x148b, 0x148b], /* CANADIAN SYLLABICS CI */
-  [0x148c, 0x148c], /* CANADIAN SYLLABICS CII */
-  [0x148d, 0x148d], /* CANADIAN SYLLABICS CO */
-  [0x148e, 0x148e], /* CANADIAN SYLLABICS COO */
-  [0x148f, 0x148f], /* CANADIAN SYLLABICS Y-CREE COO */
-  [0x1490, 0x1490], /* CANADIAN SYLLABICS CA */
-  [0x1491, 0x1491], /* CANADIAN SYLLABICS CAA */
-  [0x1492, 0x1492], /* CANADIAN SYLLABICS CWE */
-  [0x1493, 0x1493], /* CANADIAN SYLLABICS WEST-CREE CWE */
-  [0x1494, 0x1494], /* CANADIAN SYLLABICS CWI */
-  [0x1495, 0x1495], /* CANADIAN SYLLABICS WEST-CREE CWI */
-  [0x1496, 0x1496], /* CANADIAN SYLLABICS CWII */
-  [0x1497, 0x1497], /* CANADIAN SYLLABICS WEST-CREE CWII */
-  [0x1498, 0x1498], /* CANADIAN SYLLABICS CWO */
-  [0x1499, 0x1499], /* CANADIAN SYLLABICS WEST-CREE CWO */
-  [0x149a, 0x149a], /* CANADIAN SYLLABICS CWOO */
-  [0x149b, 0x149b], /* CANADIAN SYLLABICS WEST-CREE CWOO */
-  [0x149c, 0x149c], /* CANADIAN SYLLABICS CWA */
-  [0x149d, 0x149d], /* CANADIAN SYLLABICS WEST-CREE CWA */
-  [0x149e, 0x149e], /* CANADIAN SYLLABICS CWAA */
-  [0x149f, 0x149f], /* CANADIAN SYLLABICS WEST-CREE CWAA */
-  [0x14a0, 0x14a0], /* CANADIAN SYLLABICS NASKAPI CWAA */
-  [0x14a1, 0x14a1], /* CANADIAN SYLLABICS C */
-  [0x14a2, 0x14a2], /* CANADIAN SYLLABICS SAYISI TH */
-  [0x14a3, 0x14a3], /* CANADIAN SYLLABICS ME */
-  [0x14a4, 0x14a4], /* CANADIAN SYLLABICS MAAI */
-  [0x14a5, 0x14a5], /* CANADIAN SYLLABICS MI */
-  [0x14a6, 0x14a6], /* CANADIAN SYLLABICS MII */
-  [0x14a7, 0x14a7], /* CANADIAN SYLLABICS MO */
-  [0x14a8, 0x14a8], /* CANADIAN SYLLABICS MOO */
-  [0x14a9, 0x14a9], /* CANADIAN SYLLABICS Y-CREE MOO */
-  [0x14aa, 0x14aa], /* CANADIAN SYLLABICS MA */
-  [0x14ab, 0x14ab], /* CANADIAN SYLLABICS MAA */
-  [0x14ac, 0x14ac], /* CANADIAN SYLLABICS MWE */
-  [0x14ad, 0x14ad], /* CANADIAN SYLLABICS WEST-CREE MWE */
-  [0x14ae, 0x14ae], /* CANADIAN SYLLABICS MWI */
-  [0x14af, 0x14af], /* CANADIAN SYLLABICS WEST-CREE MWI */
-  [0x14b0, 0x14b0], /* CANADIAN SYLLABICS MWII */
-  [0x14b1, 0x14b1], /* CANADIAN SYLLABICS WEST-CREE MWII */
-  [0x14b2, 0x14b2], /* CANADIAN SYLLABICS MWO */
-  [0x14b3, 0x14b3], /* CANADIAN SYLLABICS WEST-CREE MWO */
-  [0x14b4, 0x14b4], /* CANADIAN SYLLABICS MWOO */
-  [0x14b5, 0x14b5], /* CANADIAN SYLLABICS WEST-CREE MWOO */
-  [0x14b6, 0x14b6], /* CANADIAN SYLLABICS MWA */
-  [0x14b7, 0x14b7], /* CANADIAN SYLLABICS WEST-CREE MWA */
-  [0x14b8, 0x14b8], /* CANADIAN SYLLABICS MWAA */
-  [0x14b9, 0x14b9], /* CANADIAN SYLLABICS WEST-CREE MWAA */
-  [0x14ba, 0x14ba], /* CANADIAN SYLLABICS NASKAPI MWAA */
-  [0x14bb, 0x14bb], /* CANADIAN SYLLABICS M */
-  [0x14bc, 0x14bc], /* CANADIAN SYLLABICS WEST-CREE M */
-  [0x14bd, 0x14bd], /* CANADIAN SYLLABICS MH */
-  [0x14be, 0x14be], /* CANADIAN SYLLABICS ATHAPASCAN M */
-  [0x14bf, 0x14bf], /* CANADIAN SYLLABICS SAYISI M */
-  [0x14c0, 0x14c0], /* CANADIAN SYLLABICS NE */
-  [0x14c1, 0x14c1], /* CANADIAN SYLLABICS NAAI */
-  [0x14c2, 0x14c2], /* CANADIAN SYLLABICS NI */
-  [0x14c3, 0x14c3], /* CANADIAN SYLLABICS NII */
-  [0x14c4, 0x14c4], /* CANADIAN SYLLABICS NO */
-  [0x14c5, 0x14c5], /* CANADIAN SYLLABICS NOO */
-  [0x14c6, 0x14c6], /* CANADIAN SYLLABICS Y-CREE NOO */
-  [0x14c7, 0x14c7], /* CANADIAN SYLLABICS NA */
-  [0x14c8, 0x14c8], /* CANADIAN SYLLABICS NAA */
-  [0x14c9, 0x14c9], /* CANADIAN SYLLABICS NWE */
-  [0x14ca, 0x14ca], /* CANADIAN SYLLABICS WEST-CREE NWE */
-  [0x14cb, 0x14cb], /* CANADIAN SYLLABICS NWA */
-  [0x14cc, 0x14cc], /* CANADIAN SYLLABICS WEST-CREE NWA */
-  [0x14cd, 0x14cd], /* CANADIAN SYLLABICS NWAA */
-  [0x14ce, 0x14ce], /* CANADIAN SYLLABICS WEST-CREE NWAA */
-  [0x14cf, 0x14cf], /* CANADIAN SYLLABICS NASKAPI NWAA */
-  [0x14d0, 0x14d0], /* CANADIAN SYLLABICS N */
-  [0x14d1, 0x14d1], /* CANADIAN SYLLABICS CARRIER NG */
-  [0x14d2, 0x14d2], /* CANADIAN SYLLABICS NH */
-  [0x14d3, 0x14d3], /* CANADIAN SYLLABICS LE */
-  [0x14d4, 0x14d4], /* CANADIAN SYLLABICS LAAI */
-  [0x14d5, 0x14d5], /* CANADIAN SYLLABICS LI */
-  [0x14d6, 0x14d6], /* CANADIAN SYLLABICS LII */
-  [0x14d7, 0x14d7], /* CANADIAN SYLLABICS LO */
-  [0x14d8, 0x14d8], /* CANADIAN SYLLABICS LOO */
-  [0x14d9, 0x14d9], /* CANADIAN SYLLABICS Y-CREE LOO */
-  [0x14da, 0x14da], /* CANADIAN SYLLABICS LA */
-  [0x14db, 0x14db], /* CANADIAN SYLLABICS LAA */
-  [0x14dc, 0x14dc], /* CANADIAN SYLLABICS LWE */
-  [0x14dd, 0x14dd], /* CANADIAN SYLLABICS WEST-CREE LWE */
-  [0x14de, 0x14de], /* CANADIAN SYLLABICS LWI */
-  [0x14df, 0x14df], /* CANADIAN SYLLABICS WEST-CREE LWI */
-  [0x14e0, 0x14e0], /* CANADIAN SYLLABICS LWII */
-  [0x14e1, 0x14e1], /* CANADIAN SYLLABICS WEST-CREE LWII */
-  [0x14e2, 0x14e2], /* CANADIAN SYLLABICS LWO */
-  [0x14e3, 0x14e3], /* CANADIAN SYLLABICS WEST-CREE LWO */
-  [0x14e4, 0x14e4], /* CANADIAN SYLLABICS LWOO */
-  [0x14e5, 0x14e5], /* CANADIAN SYLLABICS WEST-CREE LWOO */
-  [0x14e6, 0x14e6], /* CANADIAN SYLLABICS LWA */
-  [0x14e7, 0x14e7], /* CANADIAN SYLLABICS WEST-CREE LWA */
-  [0x14e8, 0x14e8], /* CANADIAN SYLLABICS LWAA */
-  [0x14e9, 0x14e9], /* CANADIAN SYLLABICS WEST-CREE LWAA */
-  [0x14ea, 0x14ea], /* CANADIAN SYLLABICS L */
-  [0x14eb, 0x14eb], /* CANADIAN SYLLABICS WEST-CREE L */
-  [0x14ec, 0x14ec], /* CANADIAN SYLLABICS MEDIAL L */
-  [0x14ed, 0x14ed], /* CANADIAN SYLLABICS SE */
-  [0x14ee, 0x14ee], /* CANADIAN SYLLABICS SAAI */
-  [0x14ef, 0x14ef], /* CANADIAN SYLLABICS SI */
-  [0x14f0, 0x14f0], /* CANADIAN SYLLABICS SII */
-  [0x14f1, 0x14f1], /* CANADIAN SYLLABICS SO */
-  [0x14f2, 0x14f2], /* CANADIAN SYLLABICS SOO */
-  [0x14f3, 0x14f3], /* CANADIAN SYLLABICS Y-CREE SOO */
-  [0x14f4, 0x14f4], /* CANADIAN SYLLABICS SA */
-  [0x14f5, 0x14f5], /* CANADIAN SYLLABICS SAA */
-  [0x14f6, 0x14f6], /* CANADIAN SYLLABICS SWE */
-  [0x14f7, 0x14f7], /* CANADIAN SYLLABICS WEST-CREE SWE */
-  [0x14f8, 0x14f8], /* CANADIAN SYLLABICS SWI */
-  [0x14f9, 0x14f9], /* CANADIAN SYLLABICS WEST-CREE SWI */
-  [0x14fa, 0x14fa], /* CANADIAN SYLLABICS SWII */
-  [0x14fb, 0x14fb], /* CANADIAN SYLLABICS WEST-CREE SWII */
-  [0x14fc, 0x14fc], /* CANADIAN SYLLABICS SWO */
-  [0x14fd, 0x14fd], /* CANADIAN SYLLABICS WEST-CREE SWO */
-  [0x14fe, 0x14fe], /* CANADIAN SYLLABICS SWOO */
-  [0x14ff, 0x14ff], /* CANADIAN SYLLABICS WEST-CREE SWOO */
-  [0x1500, 0x1500], /* CANADIAN SYLLABICS SWA */
-  [0x1501, 0x1501], /* CANADIAN SYLLABICS WEST-CREE SWA */
-  [0x1502, 0x1502], /* CANADIAN SYLLABICS SWAA */
-  [0x1503, 0x1503], /* CANADIAN SYLLABICS WEST-CREE SWAA */
-  [0x1504, 0x1504], /* CANADIAN SYLLABICS NASKAPI SWAA */
-  [0x1505, 0x1505], /* CANADIAN SYLLABICS S */
-  [0x1506, 0x1506], /* CANADIAN SYLLABICS ATHAPASCAN S */
-  [0x1507, 0x1507], /* CANADIAN SYLLABICS SW */
-  [0x1508, 0x1508], /* CANADIAN SYLLABICS BLACKFOOT S */
-  [0x1509, 0x1509], /* CANADIAN SYLLABICS MOOSE-CREE SK */
-  [0x150a, 0x150a], /* CANADIAN SYLLABICS NASKAPI SKW */
-  [0x150b, 0x150b], /* CANADIAN SYLLABICS NASKAPI S-W */
-  [0x150c, 0x150c], /* CANADIAN SYLLABICS NASKAPI SPWA */
-  [0x150d, 0x150d], /* CANADIAN SYLLABICS NASKAPI STWA */
-  [0x150e, 0x150e], /* CANADIAN SYLLABICS NASKAPI SKWA */
-  [0x150f, 0x150f], /* CANADIAN SYLLABICS NASKAPI SCWA */
-  [0x1510, 0x1510], /* CANADIAN SYLLABICS SHE */
-  [0x1511, 0x1511], /* CANADIAN SYLLABICS SHI */
-  [0x1512, 0x1512], /* CANADIAN SYLLABICS SHII */
-  [0x1513, 0x1513], /* CANADIAN SYLLABICS SHO */
-  [0x1514, 0x1514], /* CANADIAN SYLLABICS SHOO */
-  [0x1515, 0x1515], /* CANADIAN SYLLABICS SHA */
-  [0x1516, 0x1516], /* CANADIAN SYLLABICS SHAA */
-  [0x1517, 0x1517], /* CANADIAN SYLLABICS SHWE */
-  [0x1518, 0x1518], /* CANADIAN SYLLABICS WEST-CREE SHWE */
-  [0x1519, 0x1519], /* CANADIAN SYLLABICS SHWI */
-  [0x151a, 0x151a], /* CANADIAN SYLLABICS WEST-CREE SHWI */
-  [0x151b, 0x151b], /* CANADIAN SYLLABICS SHWII */
-  [0x151c, 0x151c], /* CANADIAN SYLLABICS WEST-CREE SHWII */
-  [0x151d, 0x151d], /* CANADIAN SYLLABICS SHWO */
-  [0x151e, 0x151e], /* CANADIAN SYLLABICS WEST-CREE SHWO */
-  [0x151f, 0x151f], /* CANADIAN SYLLABICS SHWOO */
-  [0x1520, 0x1520], /* CANADIAN SYLLABICS WEST-CREE SHWOO */
-  [0x1521, 0x1521], /* CANADIAN SYLLABICS SHWA */
-  [0x1522, 0x1522], /* CANADIAN SYLLABICS WEST-CREE SHWA */
-  [0x1523, 0x1523], /* CANADIAN SYLLABICS SHWAA */
-  [0x1524, 0x1524], /* CANADIAN SYLLABICS WEST-CREE SHWAA */
-  [0x1525, 0x1525], /* CANADIAN SYLLABICS SH */
-  [0x1526, 0x1526], /* CANADIAN SYLLABICS YE */
-  [0x1527, 0x1527], /* CANADIAN SYLLABICS YAAI */
-  [0x1528, 0x1528], /* CANADIAN SYLLABICS YI */
-  [0x1529, 0x1529], /* CANADIAN SYLLABICS YII */
-  [0x152a, 0x152a], /* CANADIAN SYLLABICS YO */
-  [0x152b, 0x152b], /* CANADIAN SYLLABICS YOO */
-  [0x152c, 0x152c], /* CANADIAN SYLLABICS Y-CREE YOO */
-  [0x152d, 0x152d], /* CANADIAN SYLLABICS YA */
-  [0x152e, 0x152e], /* CANADIAN SYLLABICS YAA */
-  [0x152f, 0x152f], /* CANADIAN SYLLABICS YWE */
-  [0x1530, 0x1530], /* CANADIAN SYLLABICS WEST-CREE YWE */
-  [0x1531, 0x1531], /* CANADIAN SYLLABICS YWI */
-  [0x1532, 0x1532], /* CANADIAN SYLLABICS WEST-CREE YWI */
-  [0x1533, 0x1533], /* CANADIAN SYLLABICS YWII */
-  [0x1534, 0x1534], /* CANADIAN SYLLABICS WEST-CREE YWII */
-  [0x1535, 0x1535], /* CANADIAN SYLLABICS YWO */
-  [0x1536, 0x1536], /* CANADIAN SYLLABICS WEST-CREE YWO */
-  [0x1537, 0x1537], /* CANADIAN SYLLABICS YWOO */
-  [0x1538, 0x1538], /* CANADIAN SYLLABICS WEST-CREE YWOO */
-  [0x1539, 0x1539], /* CANADIAN SYLLABICS YWA */
-  [0x153a, 0x153a], /* CANADIAN SYLLABICS WEST-CREE YWA */
-  [0x153b, 0x153b], /* CANADIAN SYLLABICS YWAA */
-  [0x153c, 0x153c], /* CANADIAN SYLLABICS WEST-CREE YWAA */
-  [0x153d, 0x153d], /* CANADIAN SYLLABICS NASKAPI YWAA */
-  [0x153e, 0x153e], /* CANADIAN SYLLABICS Y */
-  [0x153f, 0x153f], /* CANADIAN SYLLABICS BIBLE-CREE Y */
-  [0x1540, 0x1540], /* CANADIAN SYLLABICS WEST-CREE Y */
-  [0x1541, 0x1541], /* CANADIAN SYLLABICS SAYISI YI */
-  [0x1542, 0x1542], /* CANADIAN SYLLABICS RE */
-  [0x1543, 0x1543], /* CANADIAN SYLLABICS R-CREE RE */
-  [0x1544, 0x1544], /* CANADIAN SYLLABICS WEST-CREE LE */
-  [0x1545, 0x1545], /* CANADIAN SYLLABICS RAAI */
-  [0x1546, 0x1546], /* CANADIAN SYLLABICS RI */
-  [0x1547, 0x1547], /* CANADIAN SYLLABICS RII */
-  [0x1548, 0x1548], /* CANADIAN SYLLABICS RO */
-  [0x1549, 0x1549], /* CANADIAN SYLLABICS ROO */
-  [0x154a, 0x154a], /* CANADIAN SYLLABICS WEST-CREE LO */
-  [0x154b, 0x154b], /* CANADIAN SYLLABICS RA */
-  [0x154c, 0x154c], /* CANADIAN SYLLABICS RAA */
-  [0x154d, 0x154d], /* CANADIAN SYLLABICS WEST-CREE LA */
-  [0x154e, 0x154e], /* CANADIAN SYLLABICS RWAA */
-  [0x154f, 0x154f], /* CANADIAN SYLLABICS WEST-CREE RWAA */
-  [0x1550, 0x1550], /* CANADIAN SYLLABICS R */
-  [0x1551, 0x1551], /* CANADIAN SYLLABICS WEST-CREE R */
-  [0x1552, 0x1552], /* CANADIAN SYLLABICS MEDIAL R */
-  [0x1553, 0x1553], /* CANADIAN SYLLABICS FE */
-  [0x1554, 0x1554], /* CANADIAN SYLLABICS FAAI */
-  [0x1555, 0x1555], /* CANADIAN SYLLABICS FI */
-  [0x1556, 0x1556], /* CANADIAN SYLLABICS FII */
-  [0x1557, 0x1557], /* CANADIAN SYLLABICS FO */
-  [0x1558, 0x1558], /* CANADIAN SYLLABICS FOO */
-  [0x1559, 0x1559], /* CANADIAN SYLLABICS FA */
-  [0x155a, 0x155a], /* CANADIAN SYLLABICS FAA */
-  [0x155b, 0x155b], /* CANADIAN SYLLABICS FWAA */
-  [0x155c, 0x155c], /* CANADIAN SYLLABICS WEST-CREE FWAA */
-  [0x155d, 0x155d], /* CANADIAN SYLLABICS F */
-  [0x155e, 0x155e], /* CANADIAN SYLLABICS THE */
-  [0x155f, 0x155f], /* CANADIAN SYLLABICS N-CREE THE */
-  [0x1560, 0x1560], /* CANADIAN SYLLABICS THI */
-  [0x1561, 0x1561], /* CANADIAN SYLLABICS N-CREE THI */
-  [0x1562, 0x1562], /* CANADIAN SYLLABICS THII */
-  [0x1563, 0x1563], /* CANADIAN SYLLABICS N-CREE THII */
-  [0x1564, 0x1564], /* CANADIAN SYLLABICS THO */
-  [0x1565, 0x1565], /* CANADIAN SYLLABICS THOO */
-  [0x1566, 0x1566], /* CANADIAN SYLLABICS THA */
-  [0x1567, 0x1567], /* CANADIAN SYLLABICS THAA */
-  [0x1568, 0x1568], /* CANADIAN SYLLABICS THWAA */
-  [0x1569, 0x1569], /* CANADIAN SYLLABICS WEST-CREE THWAA */
-  [0x156a, 0x156a], /* CANADIAN SYLLABICS TH */
-  [0x156b, 0x156b], /* CANADIAN SYLLABICS TTHE */
-  [0x156c, 0x156c], /* CANADIAN SYLLABICS TTHI */
-  [0x156d, 0x156d], /* CANADIAN SYLLABICS TTHO */
-  [0x156e, 0x156e], /* CANADIAN SYLLABICS TTHA */
-  [0x156f, 0x156f], /* CANADIAN SYLLABICS TTH */
-  [0x1570, 0x1570], /* CANADIAN SYLLABICS TYE */
-  [0x1571, 0x1571], /* CANADIAN SYLLABICS TYI */
-  [0x1572, 0x1572], /* CANADIAN SYLLABICS TYO */
-  [0x1573, 0x1573], /* CANADIAN SYLLABICS TYA */
-  [0x1574, 0x1574], /* CANADIAN SYLLABICS NUNAVIK HE */
-  [0x1575, 0x1575], /* CANADIAN SYLLABICS NUNAVIK HI */
-  [0x1576, 0x1576], /* CANADIAN SYLLABICS NUNAVIK HII */
-  [0x1577, 0x1577], /* CANADIAN SYLLABICS NUNAVIK HO */
-  [0x1578, 0x1578], /* CANADIAN SYLLABICS NUNAVIK HOO */
-  [0x1579, 0x1579], /* CANADIAN SYLLABICS NUNAVIK HA */
-  [0x157a, 0x157a], /* CANADIAN SYLLABICS NUNAVIK HAA */
-  [0x157b, 0x157b], /* CANADIAN SYLLABICS NUNAVIK H */
-  [0x157c, 0x157c], /* CANADIAN SYLLABICS NUNAVUT H */
-  [0x157d, 0x157d], /* CANADIAN SYLLABICS HK */
-  [0x157e, 0x157e], /* CANADIAN SYLLABICS QAAI */
-  [0x157f, 0x157f], /* CANADIAN SYLLABICS QI */
-  [0x1580, 0x1580], /* CANADIAN SYLLABICS QII */
-  [0x1581, 0x1581], /* CANADIAN SYLLABICS QO */
-  [0x1582, 0x1582], /* CANADIAN SYLLABICS QOO */
-  [0x1583, 0x1583], /* CANADIAN SYLLABICS QA */
-  [0x1584, 0x1584], /* CANADIAN SYLLABICS QAA */
-  [0x1585, 0x1585], /* CANADIAN SYLLABICS Q */
-  [0x1586, 0x1586], /* CANADIAN SYLLABICS TLHE */
-  [0x1587, 0x1587], /* CANADIAN SYLLABICS TLHI */
-  [0x1588, 0x1588], /* CANADIAN SYLLABICS TLHO */
-  [0x1589, 0x1589], /* CANADIAN SYLLABICS TLHA */
-  [0x158a, 0x158a], /* CANADIAN SYLLABICS WEST-CREE RE */
-  [0x158b, 0x158b], /* CANADIAN SYLLABICS WEST-CREE RI */
-  [0x158c, 0x158c], /* CANADIAN SYLLABICS WEST-CREE RO */
-  [0x158d, 0x158d], /* CANADIAN SYLLABICS WEST-CREE RA */
-  [0x158e, 0x158e], /* CANADIAN SYLLABICS NGAAI */
-  [0x158f, 0x158f], /* CANADIAN SYLLABICS NGI */
-  [0x1590, 0x1590], /* CANADIAN SYLLABICS NGII */
-  [0x1591, 0x1591], /* CANADIAN SYLLABICS NGO */
-  [0x1592, 0x1592], /* CANADIAN SYLLABICS NGOO */
-  [0x1593, 0x1593], /* CANADIAN SYLLABICS NGA */
-  [0x1594, 0x1594], /* CANADIAN SYLLABICS NGAA */
-  [0x1595, 0x1595], /* CANADIAN SYLLABICS NG */
-  [0x1596, 0x1596], /* CANADIAN SYLLABICS NNG */
-  [0x1597, 0x1597], /* CANADIAN SYLLABICS SAYISI SHE */
-  [0x1598, 0x1598], /* CANADIAN SYLLABICS SAYISI SHI */
-  [0x1599, 0x1599], /* CANADIAN SYLLABICS SAYISI SHO */
-  [0x159a, 0x159a], /* CANADIAN SYLLABICS SAYISI SHA */
-  [0x159b, 0x159b], /* CANADIAN SYLLABICS WOODS-CREE THE */
-  [0x159c, 0x159c], /* CANADIAN SYLLABICS WOODS-CREE THI */
-  [0x159d, 0x159d], /* CANADIAN SYLLABICS WOODS-CREE THO */
-  [0x159e, 0x159e], /* CANADIAN SYLLABICS WOODS-CREE THA */
-  [0x159f, 0x159f], /* CANADIAN SYLLABICS WOODS-CREE TH */
-  [0x15a0, 0x15a0], /* CANADIAN SYLLABICS LHI */
-  [0x15a1, 0x15a1], /* CANADIAN SYLLABICS LHII */
-  [0x15a2, 0x15a2], /* CANADIAN SYLLABICS LHO */
-  [0x15a3, 0x15a3], /* CANADIAN SYLLABICS LHOO */
-  [0x15a4, 0x15a4], /* CANADIAN SYLLABICS LHA */
-  [0x15a5, 0x15a5], /* CANADIAN SYLLABICS LHAA */
-  [0x15a6, 0x15a6], /* CANADIAN SYLLABICS LH */
-  [0x15a7, 0x15a7], /* CANADIAN SYLLABICS TH-CREE THE */
-  [0x15a8, 0x15a8], /* CANADIAN SYLLABICS TH-CREE THI */
-  [0x15a9, 0x15a9], /* CANADIAN SYLLABICS TH-CREE THII */
-  [0x15aa, 0x15aa], /* CANADIAN SYLLABICS TH-CREE THO */
-  [0x15ab, 0x15ab], /* CANADIAN SYLLABICS TH-CREE THOO */
-  [0x15ac, 0x15ac], /* CANADIAN SYLLABICS TH-CREE THA */
-  [0x15ad, 0x15ad], /* CANADIAN SYLLABICS TH-CREE THAA */
-  [0x15ae, 0x15ae], /* CANADIAN SYLLABICS TH-CREE TH */
-  [0x15af, 0x15af], /* CANADIAN SYLLABICS AIVILIK B */
-  [0x15b0, 0x15b0], /* CANADIAN SYLLABICS BLACKFOOT E */
-  [0x15b1, 0x15b1], /* CANADIAN SYLLABICS BLACKFOOT I */
-  [0x15b2, 0x15b2], /* CANADIAN SYLLABICS BLACKFOOT O */
-  [0x15b3, 0x15b3], /* CANADIAN SYLLABICS BLACKFOOT A */
-  [0x15b4, 0x15b4], /* CANADIAN SYLLABICS BLACKFOOT WE */
-  [0x15b5, 0x15b5], /* CANADIAN SYLLABICS BLACKFOOT WI */
-  [0x15b6, 0x15b6], /* CANADIAN SYLLABICS BLACKFOOT WO */
-  [0x15b7, 0x15b7], /* CANADIAN SYLLABICS BLACKFOOT WA */
-  [0x15b8, 0x15b8], /* CANADIAN SYLLABICS BLACKFOOT NE */
-  [0x15b9, 0x15b9], /* CANADIAN SYLLABICS BLACKFOOT NI */
-  [0x15ba, 0x15ba], /* CANADIAN SYLLABICS BLACKFOOT NO */
-  [0x15bb, 0x15bb], /* CANADIAN SYLLABICS BLACKFOOT NA */
-  [0x15bc, 0x15bc], /* CANADIAN SYLLABICS BLACKFOOT KE */
-  [0x15bd, 0x15bd], /* CANADIAN SYLLABICS BLACKFOOT KI */
-  [0x15be, 0x15be], /* CANADIAN SYLLABICS BLACKFOOT KO */
-  [0x15bf, 0x15bf], /* CANADIAN SYLLABICS BLACKFOOT KA */
-  [0x15c0, 0x15c0], /* CANADIAN SYLLABICS SAYISI HE */
-  [0x15c1, 0x15c1], /* CANADIAN SYLLABICS SAYISI HI */
-  [0x15c2, 0x15c2], /* CANADIAN SYLLABICS SAYISI HO */
-  [0x15c3, 0x15c3], /* CANADIAN SYLLABICS SAYISI HA */
-  [0x15c4, 0x15c4], /* CANADIAN SYLLABICS CARRIER GHU */
-  [0x15c5, 0x15c5], /* CANADIAN SYLLABICS CARRIER GHO */
-  [0x15c6, 0x15c6], /* CANADIAN SYLLABICS CARRIER GHE */
-  [0x15c7, 0x15c7], /* CANADIAN SYLLABICS CARRIER GHEE */
-  [0x15c8, 0x15c8], /* CANADIAN SYLLABICS CARRIER GHI */
-  [0x15c9, 0x15c9], /* CANADIAN SYLLABICS CARRIER GHA */
-  [0x15ca, 0x15ca], /* CANADIAN SYLLABICS CARRIER RU */
-  [0x15cb, 0x15cb], /* CANADIAN SYLLABICS CARRIER RO */
-  [0x15cc, 0x15cc], /* CANADIAN SYLLABICS CARRIER RE */
-  [0x15cd, 0x15cd], /* CANADIAN SYLLABICS CARRIER REE */
-  [0x15ce, 0x15ce], /* CANADIAN SYLLABICS CARRIER RI */
-  [0x15cf, 0x15cf], /* CANADIAN SYLLABICS CARRIER RA */
-  [0x15d0, 0x15d0], /* CANADIAN SYLLABICS CARRIER WU */
-  [0x15d1, 0x15d1], /* CANADIAN SYLLABICS CARRIER WO */
-  [0x15d2, 0x15d2], /* CANADIAN SYLLABICS CARRIER WE */
-  [0x15d3, 0x15d3], /* CANADIAN SYLLABICS CARRIER WEE */
-  [0x15d4, 0x15d4], /* CANADIAN SYLLABICS CARRIER WI */
-  [0x15d5, 0x15d5], /* CANADIAN SYLLABICS CARRIER WA */
-  [0x15d6, 0x15d6], /* CANADIAN SYLLABICS CARRIER HWU */
-  [0x15d7, 0x15d7], /* CANADIAN SYLLABICS CARRIER HWO */
-  [0x15d8, 0x15d8], /* CANADIAN SYLLABICS CARRIER HWE */
-  [0x15d9, 0x15d9], /* CANADIAN SYLLABICS CARRIER HWEE */
-  [0x15da, 0x15da], /* CANADIAN SYLLABICS CARRIER HWI */
-  [0x15db, 0x15db], /* CANADIAN SYLLABICS CARRIER HWA */
-  [0x15dc, 0x15dc], /* CANADIAN SYLLABICS CARRIER THU */
-  [0x15dd, 0x15dd], /* CANADIAN SYLLABICS CARRIER THO */
-  [0x15de, 0x15de], /* CANADIAN SYLLABICS CARRIER THE */
-  [0x15df, 0x15df], /* CANADIAN SYLLABICS CARRIER THEE */
-  [0x15e0, 0x15e0], /* CANADIAN SYLLABICS CARRIER THI */
-  [0x15e1, 0x15e1], /* CANADIAN SYLLABICS CARRIER THA */
-  [0x15e2, 0x15e2], /* CANADIAN SYLLABICS CARRIER TTU */
-  [0x15e3, 0x15e3], /* CANADIAN SYLLABICS CARRIER TTO */
-  [0x15e4, 0x15e4], /* CANADIAN SYLLABICS CARRIER TTE */
-  [0x15e5, 0x15e5], /* CANADIAN SYLLABICS CARRIER TTEE */
-  [0x15e6, 0x15e6], /* CANADIAN SYLLABICS CARRIER TTI */
-  [0x15e7, 0x15e7], /* CANADIAN SYLLABICS CARRIER TTA */
-  [0x15e8, 0x15e8], /* CANADIAN SYLLABICS CARRIER PU */
-  [0x15e9, 0x15e9], /* CANADIAN SYLLABICS CARRIER PO */
-  [0x15ea, 0x15ea], /* CANADIAN SYLLABICS CARRIER PE */
-  [0x15eb, 0x15eb], /* CANADIAN SYLLABICS CARRIER PEE */
-  [0x15ec, 0x15ec], /* CANADIAN SYLLABICS CARRIER PI */
-  [0x15ed, 0x15ed], /* CANADIAN SYLLABICS CARRIER PA */
-  [0x15ee, 0x15ee], /* CANADIAN SYLLABICS CARRIER P */
-  [0x15ef, 0x15ef], /* CANADIAN SYLLABICS CARRIER GU */
-  [0x15f0, 0x15f0], /* CANADIAN SYLLABICS CARRIER GO */
-  [0x15f1, 0x15f1], /* CANADIAN SYLLABICS CARRIER GE */
-  [0x15f2, 0x15f2], /* CANADIAN SYLLABICS CARRIER GEE */
-  [0x15f3, 0x15f3], /* CANADIAN SYLLABICS CARRIER GI */
-  [0x15f4, 0x15f4], /* CANADIAN SYLLABICS CARRIER GA */
-  [0x15f5, 0x15f5], /* CANADIAN SYLLABICS CARRIER KHU */
-  [0x15f6, 0x15f6], /* CANADIAN SYLLABICS CARRIER KHO */
-  [0x15f7, 0x15f7], /* CANADIAN SYLLABICS CARRIER KHE */
-  [0x15f8, 0x15f8], /* CANADIAN SYLLABICS CARRIER KHEE */
-  [0x15f9, 0x15f9], /* CANADIAN SYLLABICS CARRIER KHI */
-  [0x15fa, 0x15fa], /* CANADIAN SYLLABICS CARRIER KHA */
-  [0x15fb, 0x15fb], /* CANADIAN SYLLABICS CARRIER KKU */
-  [0x15fc, 0x15fc], /* CANADIAN SYLLABICS CARRIER KKO */
-  [0x15fd, 0x15fd], /* CANADIAN SYLLABICS CARRIER KKE */
-  [0x15fe, 0x15fe], /* CANADIAN SYLLABICS CARRIER KKEE */
-  [0x15ff, 0x15ff], /* CANADIAN SYLLABICS CARRIER KKI */
-  [0x1600, 0x1600], /* CANADIAN SYLLABICS CARRIER KKA */
-  [0x1601, 0x1601], /* CANADIAN SYLLABICS CARRIER KK */
-  [0x1602, 0x1602], /* CANADIAN SYLLABICS CARRIER NU */
-  [0x1603, 0x1603], /* CANADIAN SYLLABICS CARRIER NO */
-  [0x1604, 0x1604], /* CANADIAN SYLLABICS CARRIER NE */
-  [0x1605, 0x1605], /* CANADIAN SYLLABICS CARRIER NEE */
-  [0x1606, 0x1606], /* CANADIAN SYLLABICS CARRIER NI */
-  [0x1607, 0x1607], /* CANADIAN SYLLABICS CARRIER NA */
-  [0x1608, 0x1608], /* CANADIAN SYLLABICS CARRIER MU */
-  [0x1609, 0x1609], /* CANADIAN SYLLABICS CARRIER MO */
-  [0x160a, 0x160a], /* CANADIAN SYLLABICS CARRIER ME */
-  [0x160b, 0x160b], /* CANADIAN SYLLABICS CARRIER MEE */
-  [0x160c, 0x160c], /* CANADIAN SYLLABICS CARRIER MI */
-  [0x160d, 0x160d], /* CANADIAN SYLLABICS CARRIER MA */
-  [0x160e, 0x160e], /* CANADIAN SYLLABICS CARRIER YU */
-  [0x160f, 0x160f], /* CANADIAN SYLLABICS CARRIER YO */
-  [0x1610, 0x1610], /* CANADIAN SYLLABICS CARRIER YE */
-  [0x1611, 0x1611], /* CANADIAN SYLLABICS CARRIER YEE */
-  [0x1612, 0x1612], /* CANADIAN SYLLABICS CARRIER YI */
-  [0x1613, 0x1613], /* CANADIAN SYLLABICS CARRIER YA */
-  [0x1614, 0x1614], /* CANADIAN SYLLABICS CARRIER JU */
-  [0x1615, 0x1615], /* CANADIAN SYLLABICS SAYISI JU */
-  [0x1616, 0x1616], /* CANADIAN SYLLABICS CARRIER JO */
-  [0x1617, 0x1617], /* CANADIAN SYLLABICS CARRIER JE */
-  [0x1618, 0x1618], /* CANADIAN SYLLABICS CARRIER JEE */
-  [0x1619, 0x1619], /* CANADIAN SYLLABICS CARRIER JI */
-  [0x161a, 0x161a], /* CANADIAN SYLLABICS SAYISI JI */
-  [0x161b, 0x161b], /* CANADIAN SYLLABICS CARRIER JA */
-  [0x161c, 0x161c], /* CANADIAN SYLLABICS CARRIER JJU */
-  [0x161d, 0x161d], /* CANADIAN SYLLABICS CARRIER JJO */
-  [0x161e, 0x161e], /* CANADIAN SYLLABICS CARRIER JJE */
-  [0x161f, 0x161f], /* CANADIAN SYLLABICS CARRIER JJEE */
-  [0x1620, 0x1620], /* CANADIAN SYLLABICS CARRIER JJI */
-  [0x1621, 0x1621], /* CANADIAN SYLLABICS CARRIER JJA */
-  [0x1622, 0x1622], /* CANADIAN SYLLABICS CARRIER LU */
-  [0x1623, 0x1623], /* CANADIAN SYLLABICS CARRIER LO */
-  [0x1624, 0x1624], /* CANADIAN SYLLABICS CARRIER LE */
-  [0x1625, 0x1625], /* CANADIAN SYLLABICS CARRIER LEE */
-  [0x1626, 0x1626], /* CANADIAN SYLLABICS CARRIER LI */
-  [0x1627, 0x1627], /* CANADIAN SYLLABICS CARRIER LA */
-  [0x1628, 0x1628], /* CANADIAN SYLLABICS CARRIER DLU */
-  [0x1629, 0x1629], /* CANADIAN SYLLABICS CARRIER DLO */
-  [0x162a, 0x162a], /* CANADIAN SYLLABICS CARRIER DLE */
-  [0x162b, 0x162b], /* CANADIAN SYLLABICS CARRIER DLEE */
-  [0x162c, 0x162c], /* CANADIAN SYLLABICS CARRIER DLI */
-  [0x162d, 0x162d], /* CANADIAN SYLLABICS CARRIER DLA */
-  [0x162e, 0x162e], /* CANADIAN SYLLABICS CARRIER LHU */
-  [0x162f, 0x162f], /* CANADIAN SYLLABICS CARRIER LHO */
-  [0x1630, 0x1630], /* CANADIAN SYLLABICS CARRIER LHE */
-  [0x1631, 0x1631], /* CANADIAN SYLLABICS CARRIER LHEE */
-  [0x1632, 0x1632], /* CANADIAN SYLLABICS CARRIER LHI */
-  [0x1633, 0x1633], /* CANADIAN SYLLABICS CARRIER LHA */
-  [0x1634, 0x1634], /* CANADIAN SYLLABICS CARRIER TLHU */
-  [0x1635, 0x1635], /* CANADIAN SYLLABICS CARRIER TLHO */
-  [0x1636, 0x1636], /* CANADIAN SYLLABICS CARRIER TLHE */
-  [0x1637, 0x1637], /* CANADIAN SYLLABICS CARRIER TLHEE */
-  [0x1638, 0x1638], /* CANADIAN SYLLABICS CARRIER TLHI */
-  [0x1639, 0x1639], /* CANADIAN SYLLABICS CARRIER TLHA */
-  [0x163a, 0x163a], /* CANADIAN SYLLABICS CARRIER TLU */
-  [0x163b, 0x163b], /* CANADIAN SYLLABICS CARRIER TLO */
-  [0x163c, 0x163c], /* CANADIAN SYLLABICS CARRIER TLE */
-  [0x163d, 0x163d], /* CANADIAN SYLLABICS CARRIER TLEE */
-  [0x163e, 0x163e], /* CANADIAN SYLLABICS CARRIER TLI */
-  [0x163f, 0x163f], /* CANADIAN SYLLABICS CARRIER TLA */
-  [0x1640, 0x1640], /* CANADIAN SYLLABICS CARRIER ZU */
-  [0x1641, 0x1641], /* CANADIAN SYLLABICS CARRIER ZO */
-  [0x1642, 0x1642], /* CANADIAN SYLLABICS CARRIER ZE */
-  [0x1643, 0x1643], /* CANADIAN SYLLABICS CARRIER ZEE */
-  [0x1644, 0x1644], /* CANADIAN SYLLABICS CARRIER ZI */
-  [0x1645, 0x1645], /* CANADIAN SYLLABICS CARRIER ZA */
-  [0x1646, 0x1646], /* CANADIAN SYLLABICS CARRIER Z */
-  [0x1647, 0x1647], /* CANADIAN SYLLABICS CARRIER INITIAL Z */
-  [0x1648, 0x1648], /* CANADIAN SYLLABICS CARRIER DZU */
-  [0x1649, 0x1649], /* CANADIAN SYLLABICS CARRIER DZO */
-  [0x164a, 0x164a], /* CANADIAN SYLLABICS CARRIER DZE */
-  [0x164b, 0x164b], /* CANADIAN SYLLABICS CARRIER DZEE */
-  [0x164c, 0x164c], /* CANADIAN SYLLABICS CARRIER DZI */
-  [0x164d, 0x164d], /* CANADIAN SYLLABICS CARRIER DZA */
-  [0x164e, 0x164e], /* CANADIAN SYLLABICS CARRIER SU */
-  [0x164f, 0x164f], /* CANADIAN SYLLABICS CARRIER SO */
-  [0x1650, 0x1650], /* CANADIAN SYLLABICS CARRIER SE */
-  [0x1651, 0x1651], /* CANADIAN SYLLABICS CARRIER SEE */
-  [0x1652, 0x1652], /* CANADIAN SYLLABICS CARRIER SI */
-  [0x1653, 0x1653], /* CANADIAN SYLLABICS CARRIER SA */
-  [0x1654, 0x1654], /* CANADIAN SYLLABICS CARRIER SHU */
-  [0x1655, 0x1655], /* CANADIAN SYLLABICS CARRIER SHO */
-  [0x1656, 0x1656], /* CANADIAN SYLLABICS CARRIER SHE */
-  [0x1657, 0x1657], /* CANADIAN SYLLABICS CARRIER SHEE */
-  [0x1658, 0x1658], /* CANADIAN SYLLABICS CARRIER SHI */
-  [0x1659, 0x1659], /* CANADIAN SYLLABICS CARRIER SHA */
-  [0x165a, 0x165a], /* CANADIAN SYLLABICS CARRIER SH */
-  [0x165b, 0x165b], /* CANADIAN SYLLABICS CARRIER TSU */
-  [0x165c, 0x165c], /* CANADIAN SYLLABICS CARRIER TSO */
-  [0x165d, 0x165d], /* CANADIAN SYLLABICS CARRIER TSE */
-  [0x165e, 0x165e], /* CANADIAN SYLLABICS CARRIER TSEE */
-  [0x165f, 0x165f], /* CANADIAN SYLLABICS CARRIER TSI */
-  [0x1660, 0x1660], /* CANADIAN SYLLABICS CARRIER TSA */
-  [0x1661, 0x1661], /* CANADIAN SYLLABICS CARRIER CHU */
-  [0x1662, 0x1662], /* CANADIAN SYLLABICS CARRIER CHO */
-  [0x1663, 0x1663], /* CANADIAN SYLLABICS CARRIER CHE */
-  [0x1664, 0x1664], /* CANADIAN SYLLABICS CARRIER CHEE */
-  [0x1665, 0x1665], /* CANADIAN SYLLABICS CARRIER CHI */
-  [0x1666, 0x1666], /* CANADIAN SYLLABICS CARRIER CHA */
-  [0x1667, 0x1667], /* CANADIAN SYLLABICS CARRIER TTSU */
-  [0x1668, 0x1668], /* CANADIAN SYLLABICS CARRIER TTSO */
-  [0x1669, 0x1669], /* CANADIAN SYLLABICS CARRIER TTSE */
-  [0x166a, 0x166a], /* CANADIAN SYLLABICS CARRIER TTSEE */
-  [0x166b, 0x166b], /* CANADIAN SYLLABICS CARRIER TTSI */
-  [0x166c, 0x166c], /* CANADIAN SYLLABICS CARRIER TTSA */
-  [0x166d, 0x166d], /* CANADIAN SYLLABICS CHI SIGN */
-  [0x166e, 0x166e], /* CANADIAN SYLLABICS FULL STOP */
-  [0x166f, 0x166f], /* CANADIAN SYLLABICS QAI */
-  [0x1670, 0x1670], /* CANADIAN SYLLABICS NGAI */
-  [0x1671, 0x1671], /* CANADIAN SYLLABICS NNGI */
-  [0x1672, 0x1672], /* CANADIAN SYLLABICS NNGII */
-  [0x1673, 0x1673], /* CANADIAN SYLLABICS NNGO */
-  [0x1674, 0x1674], /* CANADIAN SYLLABICS NNGOO */
-  [0x1675, 0x1675], /* CANADIAN SYLLABICS NNGA */
-  [0x1676, 0x1676], /* CANADIAN SYLLABICS NNGAA */
-  [0x1677, 0x1677], /* CANADIAN SYLLABICS WOODS-CREE THWEE */
-  [0x1678, 0x1678], /* CANADIAN SYLLABICS WOODS-CREE THWI */
-  [0x1679, 0x1679], /* CANADIAN SYLLABICS WOODS-CREE THWII */
-  [0x167a, 0x167a], /* CANADIAN SYLLABICS WOODS-CREE THWO */
-  [0x167b, 0x167b], /* CANADIAN SYLLABICS WOODS-CREE THWOO */
-  [0x167c, 0x167c], /* CANADIAN SYLLABICS WOODS-CREE THWA */
-  [0x167d, 0x167d], /* CANADIAN SYLLABICS WOODS-CREE THWAA */
-  [0x167e, 0x167e], /* CANADIAN SYLLABICS WOODS-CREE FINAL TH */
-  [0x167f, 0x167f], /* CANADIAN SYLLABICS BLACKFOOT W */
-  [0x1680, 0x1680], /* OGHAM SPACE MARK */
-  [0x1681, 0x1681], /* OGHAM LETTER BEITH */
-  [0x1682, 0x1682], /* OGHAM LETTER LUIS */
-  [0x1683, 0x1683], /* OGHAM LETTER FEARN */
-  [0x1684, 0x1684], /* OGHAM LETTER SAIL */
-  [0x1685, 0x1685], /* OGHAM LETTER NION */
-  [0x1686, 0x1686], /* OGHAM LETTER UATH */
-  [0x1687, 0x1687], /* OGHAM LETTER DAIR */
-  [0x1688, 0x1688], /* OGHAM LETTER TINNE */
-  [0x1689, 0x1689], /* OGHAM LETTER COLL */
-  [0x168a, 0x168a], /* OGHAM LETTER CEIRT */
-  [0x168b, 0x168b], /* OGHAM LETTER MUIN */
-  [0x168c, 0x168c], /* OGHAM LETTER GORT */
-  [0x168d, 0x168d], /* OGHAM LETTER NGEADAL */
-  [0x168e, 0x168e], /* OGHAM LETTER STRAIF */
-  [0x168f, 0x168f], /* OGHAM LETTER RUIS */
-  [0x1690, 0x1690], /* OGHAM LETTER AILM */
-  [0x1691, 0x1691], /* OGHAM LETTER ONN */
-  [0x1692, 0x1692], /* OGHAM LETTER UR */
-  [0x1693, 0x1693], /* OGHAM LETTER EADHADH */
-  [0x1694, 0x1694], /* OGHAM LETTER IODHADH */
-  [0x1695, 0x1695], /* OGHAM LETTER EABHADH */
-  [0x1696, 0x1696], /* OGHAM LETTER OR */
-  [0x1697, 0x1697], /* OGHAM LETTER UILLEANN */
-  [0x1698, 0x1698], /* OGHAM LETTER IFIN */
-  [0x1699, 0x1699], /* OGHAM LETTER EAMHANCHOLL */
-  [0x169a, 0x169a], /* OGHAM LETTER PEITH */
-  [0x169b, 0x169b], /* OGHAM FEATHER MARK */
-  [0x169c, 0x169c], /* OGHAM REVERSED FEATHER MARK */
-  [0x169d, 0x169d],
-  [0x169e, 0x169e],
-  [0x169f, 0x169f],
-  [0x16a0, 0x16a0], /* RUNIC LETTER FEHU FEOH FE F */
-  [0x16a1, 0x16a1], /* RUNIC LETTER V */
-  [0x16a2, 0x16a2], /* RUNIC LETTER URUZ UR U */
-  [0x16a3, 0x16a3], /* RUNIC LETTER YR */
-  [0x16a4, 0x16a4], /* RUNIC LETTER Y */
-  [0x16a5, 0x16a5], /* RUNIC LETTER W */
-  [0x16a6, 0x16a6], /* RUNIC LETTER THURISAZ THURS THORN */
-  [0x16a7, 0x16a7], /* RUNIC LETTER ETH */
-  [0x16a8, 0x16a8], /* RUNIC LETTER ANSUZ A */
-  [0x16a9, 0x16a9], /* RUNIC LETTER OS O */
-  [0x16aa, 0x16aa], /* RUNIC LETTER AC A */
-  [0x16ab, 0x16ab], /* RUNIC LETTER AESC */
-  [0x16ac, 0x16ac], /* RUNIC LETTER LONG-BRANCH-OSS O */
-  [0x16ad, 0x16ad], /* RUNIC LETTER SHORT-TWIG-OSS O */
-  [0x16ae, 0x16ae], /* RUNIC LETTER O */
-  [0x16af, 0x16af], /* RUNIC LETTER OE */
-  [0x16b0, 0x16b0], /* RUNIC LETTER ON */
-  [0x16b1, 0x16b1], /* RUNIC LETTER RAIDO RAD REID R */
-  [0x16b2, 0x16b2], /* RUNIC LETTER KAUNA */
-  [0x16b3, 0x16b3], /* RUNIC LETTER CEN */
-  [0x16b4, 0x16b4], /* RUNIC LETTER KAUN K */
-  [0x16b5, 0x16b5], /* RUNIC LETTER G */
-  [0x16b6, 0x16b6], /* RUNIC LETTER ENG */
-  [0x16b7, 0x16b7], /* RUNIC LETTER GEBO GYFU G */
-  [0x16b8, 0x16b8], /* RUNIC LETTER GAR */
-  [0x16b9, 0x16b9], /* RUNIC LETTER WUNJO WYNN W */
-  [0x16ba, 0x16ba], /* RUNIC LETTER HAGLAZ H */
-  [0x16bb, 0x16bb], /* RUNIC LETTER HAEGL H */
-  [0x16bc, 0x16bc], /* RUNIC LETTER LONG-BRANCH-HAGALL H */
-  [0x16bd, 0x16bd], /* RUNIC LETTER SHORT-TWIG-HAGALL H */
-  [0x16be, 0x16be], /* RUNIC LETTER NAUDIZ NYD NAUD N */
-  [0x16bf, 0x16bf], /* RUNIC LETTER SHORT-TWIG-NAUD N */
-  [0x16c0, 0x16c0], /* RUNIC LETTER DOTTED-N */
-  [0x16c1, 0x16c1], /* RUNIC LETTER ISAZ IS ISS I */
-  [0x16c2, 0x16c2], /* RUNIC LETTER E */
-  [0x16c3, 0x16c3], /* RUNIC LETTER JERAN J */
-  [0x16c4, 0x16c4], /* RUNIC LETTER GER */
-  [0x16c5, 0x16c5], /* RUNIC LETTER LONG-BRANCH-AR AE */
-  [0x16c6, 0x16c6], /* RUNIC LETTER SHORT-TWIG-AR A */
-  [0x16c7, 0x16c7], /* RUNIC LETTER IWAZ EOH */
-  [0x16c8, 0x16c8], /* RUNIC LETTER PERTHO PEORTH P */
-  [0x16c9, 0x16c9], /* RUNIC LETTER ALGIZ EOLHX */
-  [0x16ca, 0x16ca], /* RUNIC LETTER SOWILO S */
-  [0x16cb, 0x16cb], /* RUNIC LETTER SIGEL LONG-BRANCH-SOL S */
-  [0x16cc, 0x16cc], /* RUNIC LETTER SHORT-TWIG-SOL S */
-  [0x16cd, 0x16cd], /* RUNIC LETTER C */
-  [0x16ce, 0x16ce], /* RUNIC LETTER Z */
-  [0x16cf, 0x16cf], /* RUNIC LETTER TIWAZ TIR TYR T */
-  [0x16d0, 0x16d0], /* RUNIC LETTER SHORT-TWIG-TYR T */
-  [0x16d1, 0x16d1], /* RUNIC LETTER D */
-  [0x16d2, 0x16d2], /* RUNIC LETTER BERKANAN BEORC BJARKAN B */
-  [0x16d3, 0x16d3], /* RUNIC LETTER SHORT-TWIG-BJARKAN B */
-  [0x16d4, 0x16d4], /* RUNIC LETTER DOTTED-P */
-  [0x16d5, 0x16d5], /* RUNIC LETTER OPEN-P */
-  [0x16d6, 0x16d6], /* RUNIC LETTER EHWAZ EH E */
-  [0x16d7, 0x16d7], /* RUNIC LETTER MANNAZ MAN M */
-  [0x16d8, 0x16d8], /* RUNIC LETTER LONG-BRANCH-MADR M */
-  [0x16d9, 0x16d9], /* RUNIC LETTER SHORT-TWIG-MADR M */
-  [0x16da, 0x16da], /* RUNIC LETTER LAUKAZ LAGU LOGR L */
-  [0x16db, 0x16db], /* RUNIC LETTER DOTTED-L */
-  [0x16dc, 0x16dc], /* RUNIC LETTER INGWAZ */
-  [0x16dd, 0x16dd], /* RUNIC LETTER ING */
-  [0x16de, 0x16de], /* RUNIC LETTER DAGAZ DAEG D */
-  [0x16df, 0x16df], /* RUNIC LETTER OTHALAN ETHEL O */
-  [0x16e0, 0x16e0], /* RUNIC LETTER EAR */
-  [0x16e1, 0x16e1], /* RUNIC LETTER IOR */
-  [0x16e2, 0x16e2], /* RUNIC LETTER CWEORTH */
-  [0x16e3, 0x16e3], /* RUNIC LETTER CALC */
-  [0x16e4, 0x16e4], /* RUNIC LETTER CEALC */
-  [0x16e5, 0x16e5], /* RUNIC LETTER STAN */
-  [0x16e6, 0x16e6], /* RUNIC LETTER LONG-BRANCH-YR */
-  [0x16e7, 0x16e7], /* RUNIC LETTER SHORT-TWIG-YR */
-  [0x16e8, 0x16e8], /* RUNIC LETTER ICELANDIC-YR */
-  [0x16e9, 0x16e9], /* RUNIC LETTER Q */
-  [0x16ea, 0x16ea], /* RUNIC LETTER X */
-  [0x16eb, 0x16eb], /* RUNIC SINGLE PUNCTUATION */
-  [0x16ec, 0x16ec], /* RUNIC MULTIPLE PUNCTUATION */
-  [0x16ed, 0x16ed], /* RUNIC CROSS PUNCTUATION */
-  [0x16ee, 0x16ee], /* RUNIC ARLAUG SYMBOL */
-  [0x16ef, 0x16ef], /* RUNIC TVIMADUR SYMBOL */
-  [0x16f0, 0x16f0], /* RUNIC BELGTHOR SYMBOL */
-  [0x16f1, 0x16f1], /* RUNIC LETTER K */
-  [0x16f2, 0x16f2], /* RUNIC LETTER SH */
-  [0x16f3, 0x16f3], /* RUNIC LETTER OO */
-  [0x16f4, 0x16f4], /* RUNIC LETTER FRANKS CASKET OS */
-  [0x16f5, 0x16f5], /* RUNIC LETTER FRANKS CASKET IS */
-  [0x16f6, 0x16f6], /* RUNIC LETTER FRANKS CASKET EH */
-  [0x16f7, 0x16f7], /* RUNIC LETTER FRANKS CASKET AC */
-  [0x16f8, 0x16f8], /* RUNIC LETTER FRANKS CASKET AESC */
-  [0x16f9, 0x16f9],
-  [0x16fa, 0x16fa],
-  [0x16fb, 0x16fb],
-  [0x16fc, 0x16fc],
-  [0x16fd, 0x16fd],
-  [0x16fe, 0x16fe],
-  [0x16ff, 0x16ff],
-  [0x1700, 0x1700], /* TAGALOG LETTER A */
-  [0x1701, 0x1701], /* TAGALOG LETTER I */
-  [0x1702, 0x1702], /* TAGALOG LETTER U */
-  [0x1703, 0x1703], /* TAGALOG LETTER KA */
-  [0x1704, 0x1704], /* TAGALOG LETTER GA */
-  [0x1705, 0x1705], /* TAGALOG LETTER NGA */
-  [0x1706, 0x1706], /* TAGALOG LETTER TA */
-  [0x1707, 0x1707], /* TAGALOG LETTER DA */
-  [0x1708, 0x1708], /* TAGALOG LETTER NA */
-  [0x1709, 0x1709], /* TAGALOG LETTER PA */
-  [0x170a, 0x170a], /* TAGALOG LETTER BA */
-  [0x170b, 0x170b], /* TAGALOG LETTER MA */
-  [0x170c, 0x170c], /* TAGALOG LETTER YA */
-  [0x170d, 0x170d],
-  [0x170e, 0x170e], /* TAGALOG LETTER LA */
-  [0x170f, 0x170f], /* TAGALOG LETTER WA */
-  [0x1710, 0x1710], /* TAGALOG LETTER SA */
-  [0x1711, 0x1711], /* TAGALOG LETTER HA */
-  [0x1712, 0x1712], /* TAGALOG VOWEL SIGN I */
-  [0x1713, 0x1713], /* TAGALOG VOWEL SIGN U */
-  [0x1714, 0x1714], /* TAGALOG SIGN VIRAMA */
-  [0x1715, 0x1715],
-  [0x1716, 0x1716],
-  [0x1717, 0x1717],
-  [0x1718, 0x1718],
-  [0x1719, 0x1719],
-  [0x171a, 0x171a],
-  [0x171b, 0x171b],
-  [0x171c, 0x171c],
-  [0x171d, 0x171d],
-  [0x171e, 0x171e],
-  [0x171f, 0x171f],
-  [0x1720, 0x1720], /* HANUNOO LETTER A */
-  [0x1721, 0x1721], /* HANUNOO LETTER I */
-  [0x1722, 0x1722], /* HANUNOO LETTER U */
-  [0x1723, 0x1723], /* HANUNOO LETTER KA */
-  [0x1724, 0x1724], /* HANUNOO LETTER GA */
-  [0x1725, 0x1725], /* HANUNOO LETTER NGA */
-  [0x1726, 0x1726], /* HANUNOO LETTER TA */
-  [0x1727, 0x1727], /* HANUNOO LETTER DA */
-  [0x1728, 0x1728], /* HANUNOO LETTER NA */
-  [0x1729, 0x1729], /* HANUNOO LETTER PA */
-  [0x172a, 0x172a], /* HANUNOO LETTER BA */
-  [0x172b, 0x172b], /* HANUNOO LETTER MA */
-  [0x172c, 0x172c], /* HANUNOO LETTER YA */
-  [0x172d, 0x172d], /* HANUNOO LETTER RA */
-  [0x172e, 0x172e], /* HANUNOO LETTER LA */
-  [0x172f, 0x172f], /* HANUNOO LETTER WA */
-  [0x1730, 0x1730], /* HANUNOO LETTER SA */
-  [0x1731, 0x1731], /* HANUNOO LETTER HA */
-  [0x1732, 0x1732], /* HANUNOO VOWEL SIGN I */
-  [0x1733, 0x1733], /* HANUNOO VOWEL SIGN U */
-  [0x1734, 0x1734], /* HANUNOO SIGN PAMUDPOD */
-  [0x1735, 0x1735], /* PHILIPPINE SINGLE PUNCTUATION */
-  [0x1736, 0x1736], /* PHILIPPINE DOUBLE PUNCTUATION */
-  [0x1737, 0x1737],
-  [0x1738, 0x1738],
-  [0x1739, 0x1739],
-  [0x173a, 0x173a],
-  [0x173b, 0x173b],
-  [0x173c, 0x173c],
-  [0x173d, 0x173d],
-  [0x173e, 0x173e],
-  [0x173f, 0x173f],
-  [0x1740, 0x1740], /* BUHID LETTER A */
-  [0x1741, 0x1741], /* BUHID LETTER I */
-  [0x1742, 0x1742], /* BUHID LETTER U */
-  [0x1743, 0x1743], /* BUHID LETTER KA */
-  [0x1744, 0x1744], /* BUHID LETTER GA */
-  [0x1745, 0x1745], /* BUHID LETTER NGA */
-  [0x1746, 0x1746], /* BUHID LETTER TA */
-  [0x1747, 0x1747], /* BUHID LETTER DA */
-  [0x1748, 0x1748], /* BUHID LETTER NA */
-  [0x1749, 0x1749], /* BUHID LETTER PA */
-  [0x174a, 0x174a], /* BUHID LETTER BA */
-  [0x174b, 0x174b], /* BUHID LETTER MA */
-  [0x174c, 0x174c], /* BUHID LETTER YA */
-  [0x174d, 0x174d], /* BUHID LETTER RA */
-  [0x174e, 0x174e], /* BUHID LETTER LA */
-  [0x174f, 0x174f], /* BUHID LETTER WA */
-  [0x1750, 0x1750], /* BUHID LETTER SA */
-  [0x1751, 0x1751], /* BUHID LETTER HA */
-  [0x1752, 0x1752], /* BUHID VOWEL SIGN I */
-  [0x1753, 0x1753], /* BUHID VOWEL SIGN U */
-  [0x1754, 0x1754],
-  [0x1755, 0x1755],
-  [0x1756, 0x1756],
-  [0x1757, 0x1757],
-  [0x1758, 0x1758],
-  [0x1759, 0x1759],
-  [0x175a, 0x175a],
-  [0x175b, 0x175b],
-  [0x175c, 0x175c],
-  [0x175d, 0x175d],
-  [0x175e, 0x175e],
-  [0x175f, 0x175f],
-  [0x1760, 0x1760], /* TAGBANWA LETTER A */
-  [0x1761, 0x1761], /* TAGBANWA LETTER I */
-  [0x1762, 0x1762], /* TAGBANWA LETTER U */
-  [0x1763, 0x1763], /* TAGBANWA LETTER KA */
-  [0x1764, 0x1764], /* TAGBANWA LETTER GA */
-  [0x1765, 0x1765], /* TAGBANWA LETTER NGA */
-  [0x1766, 0x1766], /* TAGBANWA LETTER TA */
-  [0x1767, 0x1767], /* TAGBANWA LETTER DA */
-  [0x1768, 0x1768], /* TAGBANWA LETTER NA */
-  [0x1769, 0x1769], /* TAGBANWA LETTER PA */
-  [0x176a, 0x176a], /* TAGBANWA LETTER BA */
-  [0x176b, 0x176b], /* TAGBANWA LETTER MA */
-  [0x176c, 0x176c], /* TAGBANWA LETTER YA */
-  [0x176d, 0x176d],
-  [0x176e, 0x176e], /* TAGBANWA LETTER LA */
-  [0x176f, 0x176f], /* TAGBANWA LETTER WA */
-  [0x1770, 0x1770], /* TAGBANWA LETTER SA */
-  [0x1771, 0x1771],
-  [0x1772, 0x1772], /* TAGBANWA VOWEL SIGN I */
-  [0x1773, 0x1773], /* TAGBANWA VOWEL SIGN U */
-  [0x1774, 0x1774],
-  [0x1775, 0x1775],
-  [0x1776, 0x1776],
-  [0x1777, 0x1777],
-  [0x1778, 0x1778],
-  [0x1779, 0x1779],
-  [0x177a, 0x177a],
-  [0x177b, 0x177b],
-  [0x177c, 0x177c],
-  [0x177d, 0x177d],
-  [0x177e, 0x177e],
-  [0x177f, 0x177f],
-  [0x1780, 0x1780], /* KHMER LETTER KA */
-  [0x1781, 0x1781], /* KHMER LETTER KHA */
-  [0x1782, 0x1782], /* KHMER LETTER KO */
-  [0x1783, 0x1783], /* KHMER LETTER KHO */
-  [0x1784, 0x1784], /* KHMER LETTER NGO */
-  [0x1785, 0x1785], /* KHMER LETTER CA */
-  [0x1786, 0x1786], /* KHMER LETTER CHA */
-  [0x1787, 0x1787], /* KHMER LETTER CO */
-  [0x1788, 0x1788], /* KHMER LETTER CHO */
-  [0x1789, 0x1789], /* KHMER LETTER NYO */
-  [0x178a, 0x178a], /* KHMER LETTER DA */
-  [0x178b, 0x178b], /* KHMER LETTER TTHA */
-  [0x178c, 0x178c], /* KHMER LETTER DO */
-  [0x178d, 0x178d], /* KHMER LETTER TTHO */
-  [0x178e, 0x178e], /* KHMER LETTER NNO */
-  [0x178f, 0x178f], /* KHMER LETTER TA */
-  [0x1790, 0x1790], /* KHMER LETTER THA */
-  [0x1791, 0x1791], /* KHMER LETTER TO */
-  [0x1792, 0x1792], /* KHMER LETTER THO */
-  [0x1793, 0x1793], /* KHMER LETTER NO */
-  [0x1794, 0x1794], /* KHMER LETTER BA */
-  [0x1795, 0x1795], /* KHMER LETTER PHA */
-  [0x1796, 0x1796], /* KHMER LETTER PO */
-  [0x1797, 0x1797], /* KHMER LETTER PHO */
-  [0x1798, 0x1798], /* KHMER LETTER MO */
-  [0x1799, 0x1799], /* KHMER LETTER YO */
-  [0x179a, 0x179a], /* KHMER LETTER RO */
-  [0x179b, 0x179b], /* KHMER LETTER LO */
-  [0x179c, 0x179c], /* KHMER LETTER VO */
-  [0x179d, 0x179d], /* KHMER LETTER SHA */
-  [0x179e, 0x179e], /* KHMER LETTER SSO */
-  [0x179f, 0x179f], /* KHMER LETTER SA */
-  [0x17a0, 0x17a0], /* KHMER LETTER HA */
-  [0x17a1, 0x17a1], /* KHMER LETTER LA */
-  [0x17a2, 0x17a2], /* KHMER LETTER QA */
-  [0x17a3, 0x17a3], /* KHMER INDEPENDENT VOWEL QAQ */
-  [0x17a4, 0x17a4], /* KHMER INDEPENDENT VOWEL QAA */
-  [0x17a5, 0x17a5], /* KHMER INDEPENDENT VOWEL QI */
-  [0x17a6, 0x17a6], /* KHMER INDEPENDENT VOWEL QII */
-  [0x17a7, 0x17a7], /* KHMER INDEPENDENT VOWEL QU */
-  [0x17a8, 0x17a8], /* KHMER INDEPENDENT VOWEL QUK */
-  [0x17a9, 0x17a9], /* KHMER INDEPENDENT VOWEL QUU */
-  [0x17aa, 0x17aa], /* KHMER INDEPENDENT VOWEL QUUV */
-  [0x17ab, 0x17ab], /* KHMER INDEPENDENT VOWEL RY */
-  [0x17ac, 0x17ac], /* KHMER INDEPENDENT VOWEL RYY */
-  [0x17ad, 0x17ad], /* KHMER INDEPENDENT VOWEL LY */
-  [0x17ae, 0x17ae], /* KHMER INDEPENDENT VOWEL LYY */
-  [0x17af, 0x17af], /* KHMER INDEPENDENT VOWEL QE */
-  [0x17b0, 0x17b0], /* KHMER INDEPENDENT VOWEL QAI */
-  [0x17b1, 0x17b1], /* KHMER INDEPENDENT VOWEL QOO TYPE ONE */
-  [0x17b2, 0x17b2], /* KHMER INDEPENDENT VOWEL QOO TYPE TWO */
-  [0x17b3, 0x17b3], /* KHMER INDEPENDENT VOWEL QAU */
-  [0x17b4, 0x17b4], /* KHMER VOWEL INHERENT AQ */
-  [0x17b5, 0x17b5], /* KHMER VOWEL INHERENT AA */
-  [0x17b6, 0x17b6], /* KHMER VOWEL SIGN AA */
-  [0x17b7, 0x17b7], /* KHMER VOWEL SIGN I */
-  [0x17b8, 0x17b8], /* KHMER VOWEL SIGN II */
-  [0x17b9, 0x17b9], /* KHMER VOWEL SIGN Y */
-  [0x17ba, 0x17ba], /* KHMER VOWEL SIGN YY */
-  [0x17bb, 0x17bb], /* KHMER VOWEL SIGN U */
-  [0x17bc, 0x17bc], /* KHMER VOWEL SIGN UU */
-  [0x17bd, 0x17bd], /* KHMER VOWEL SIGN UA */
-  [0x17be, 0x17be], /* KHMER VOWEL SIGN OE */
-  [0x17bf, 0x17bf], /* KHMER VOWEL SIGN YA */
-  [0x17c0, 0x17c0], /* KHMER VOWEL SIGN IE */
-  [0x17c1, 0x17c1], /* KHMER VOWEL SIGN E */
-  [0x17c2, 0x17c2], /* KHMER VOWEL SIGN AE */
-  [0x17c3, 0x17c3], /* KHMER VOWEL SIGN AI */
-  [0x17c4, 0x17c4], /* KHMER VOWEL SIGN OO */
-  [0x17c5, 0x17c5], /* KHMER VOWEL SIGN AU */
-  [0x17c6, 0x17c6], /* KHMER SIGN NIKAHIT */
-  [0x17c7, 0x17c7], /* KHMER SIGN REAHMUK */
-  [0x17c8, 0x17c8], /* KHMER SIGN YUUKALEAPINTU */
-  [0x17c9, 0x17c9], /* KHMER SIGN MUUSIKATOAN */
-  [0x17ca, 0x17ca], /* KHMER SIGN TRIISAP */
-  [0x17cb, 0x17cb], /* KHMER SIGN BANTOC */
-  [0x17cc, 0x17cc], /* KHMER SIGN ROBAT */
-  [0x17cd, 0x17cd], /* KHMER SIGN TOANDAKHIAT */
-  [0x17ce, 0x17ce], /* KHMER SIGN KAKABAT */
-  [0x17cf, 0x17cf], /* KHMER SIGN AHSDA */
-  [0x17d0, 0x17d0], /* KHMER SIGN SAMYOK SANNYA */
-  [0x17d1, 0x17d1], /* KHMER SIGN VIRIAM */
-  [0x17d2, 0x17d2], /* KHMER SIGN COENG */
-  [0x17d3, 0x17d3], /* KHMER SIGN BATHAMASAT */
-  [0x17d4, 0x17d4], /* KHMER SIGN KHAN */
-  [0x17d5, 0x17d5], /* KHMER SIGN BARIYOOSAN */
-  [0x17d6, 0x17d6], /* KHMER SIGN CAMNUC PII KUUH */
-  [0x17d7, 0x17d7], /* KHMER SIGN LEK TOO */
-  [0x17d8, 0x17d8], /* KHMER SIGN BEYYAL */
-  [0x17d9, 0x17d9], /* KHMER SIGN PHNAEK MUAN */
-  [0x17da, 0x17da], /* KHMER SIGN KOOMUUT */
-  [0x17db, 0x17db], /* KHMER CURRENCY SYMBOL RIEL */
-  [0x17dc, 0x17dc], /* KHMER SIGN AVAKRAHASANYA */
-  [0x17dd, 0x17dd], /* KHMER SIGN ATTHACAN */
-  [0x17de, 0x17de],
-  [0x17df, 0x17df],
-  [0x17e0, 0x17e0], /* KHMER DIGIT ZERO */
-  [0x17e1, 0x17e1], /* KHMER DIGIT ONE */
-  [0x17e2, 0x17e2], /* KHMER DIGIT TWO */
-  [0x17e3, 0x17e3], /* KHMER DIGIT THREE */
-  [0x17e4, 0x17e4], /* KHMER DIGIT FOUR */
-  [0x17e5, 0x17e5], /* KHMER DIGIT FIVE */
-  [0x17e6, 0x17e6], /* KHMER DIGIT SIX */
-  [0x17e7, 0x17e7], /* KHMER DIGIT SEVEN */
-  [0x17e8, 0x17e8], /* KHMER DIGIT EIGHT */
-  [0x17e9, 0x17e9], /* KHMER DIGIT NINE */
-  [0x17ea, 0x17ea],
-  [0x17eb, 0x17eb],
-  [0x17ec, 0x17ec],
-  [0x17ed, 0x17ed],
-  [0x17ee, 0x17ee],
-  [0x17ef, 0x17ef],
-  [0x17f0, 0x17f0], /* KHMER SYMBOL LEK ATTAK SON */
-  [0x17f1, 0x17f1], /* KHMER SYMBOL LEK ATTAK MUOY */
-  [0x17f2, 0x17f2], /* KHMER SYMBOL LEK ATTAK PII */
-  [0x17f3, 0x17f3], /* KHMER SYMBOL LEK ATTAK BEI */
-  [0x17f4, 0x17f4], /* KHMER SYMBOL LEK ATTAK BUON */
-  [0x17f5, 0x17f5], /* KHMER SYMBOL LEK ATTAK PRAM */
-  [0x17f6, 0x17f6], /* KHMER SYMBOL LEK ATTAK PRAM-MUOY */
-  [0x17f7, 0x17f7], /* KHMER SYMBOL LEK ATTAK PRAM-PII */
-  [0x17f8, 0x17f8], /* KHMER SYMBOL LEK ATTAK PRAM-BEI */
-  [0x17f9, 0x17f9], /* KHMER SYMBOL LEK ATTAK PRAM-BUON */
-  [0x17fa, 0x17fa],
-  [0x17fb, 0x17fb],
-  [0x17fc, 0x17fc],
-  [0x17fd, 0x17fd],
-  [0x17fe, 0x17fe],
-  [0x17ff, 0x17ff],
-  [0x1800, 0x1800], /* MONGOLIAN BIRGA */
-  [0x1801, 0x1801], /* MONGOLIAN ELLIPSIS */
-  [0x1802, 0x1802], /* MONGOLIAN COMMA */
-  [0x1803, 0x1803], /* MONGOLIAN FULL STOP */
-  [0x1804, 0x1804], /* MONGOLIAN COLON */
-  [0x1805, 0x1805], /* MONGOLIAN FOUR DOTS */
-  [0x1806, 0x1806], /* MONGOLIAN TODO SOFT HYPHEN */
-  [0x1807, 0x1807], /* MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER */
-  [0x1808, 0x1808], /* MONGOLIAN MANCHU COMMA */
-  [0x1809, 0x1809], /* MONGOLIAN MANCHU FULL STOP */
-  [0x180a, 0x180a], /* MONGOLIAN NIRUGU */
-  [0x180b, 0x180b], /* MONGOLIAN FREE VARIATION SELECTOR ONE */
-  [0x180c, 0x180c], /* MONGOLIAN FREE VARIATION SELECTOR TWO */
-  [0x180d, 0x180d], /* MONGOLIAN FREE VARIATION SELECTOR THREE */
-  [0x180e, 0x180e], /* MONGOLIAN VOWEL SEPARATOR */
-  [0x180f, 0x180f],
-  [0x1810, 0x1810], /* MONGOLIAN DIGIT ZERO */
-  [0x1811, 0x1811], /* MONGOLIAN DIGIT ONE */
-  [0x1812, 0x1812], /* MONGOLIAN DIGIT TWO */
-  [0x1813, 0x1813], /* MONGOLIAN DIGIT THREE */
-  [0x1814, 0x1814], /* MONGOLIAN DIGIT FOUR */
-  [0x1815, 0x1815], /* MONGOLIAN DIGIT FIVE */
-  [0x1816, 0x1816], /* MONGOLIAN DIGIT SIX */
-  [0x1817, 0x1817], /* MONGOLIAN DIGIT SEVEN */
-  [0x1818, 0x1818], /* MONGOLIAN DIGIT EIGHT */
-  [0x1819, 0x1819], /* MONGOLIAN DIGIT NINE */
-  [0x181a, 0x181a],
-  [0x181b, 0x181b],
-  [0x181c, 0x181c],
-  [0x181d, 0x181d],
-  [0x181e, 0x181e],
-  [0x181f, 0x181f],
-  [0x1820, 0x1820], /* MONGOLIAN LETTER A */
-  [0x1821, 0x1821], /* MONGOLIAN LETTER E */
-  [0x1822, 0x1822], /* MONGOLIAN LETTER I */
-  [0x1823, 0x1823], /* MONGOLIAN LETTER O */
-  [0x1824, 0x1824], /* MONGOLIAN LETTER U */
-  [0x1825, 0x1825], /* MONGOLIAN LETTER OE */
-  [0x1826, 0x1826], /* MONGOLIAN LETTER UE */
-  [0x1827, 0x1827], /* MONGOLIAN LETTER EE */
-  [0x1828, 0x1828], /* MONGOLIAN LETTER NA */
-  [0x1829, 0x1829], /* MONGOLIAN LETTER ANG */
-  [0x182a, 0x182a], /* MONGOLIAN LETTER BA */
-  [0x182b, 0x182b], /* MONGOLIAN LETTER PA */
-  [0x182c, 0x182c], /* MONGOLIAN LETTER QA */
-  [0x182d, 0x182d], /* MONGOLIAN LETTER GA */
-  [0x182e, 0x182e], /* MONGOLIAN LETTER MA */
-  [0x182f, 0x182f], /* MONGOLIAN LETTER LA */
-  [0x1830, 0x1830], /* MONGOLIAN LETTER SA */
-  [0x1831, 0x1831], /* MONGOLIAN LETTER SHA */
-  [0x1832, 0x1832], /* MONGOLIAN LETTER TA */
-  [0x1833, 0x1833], /* MONGOLIAN LETTER DA */
-  [0x1834, 0x1834], /* MONGOLIAN LETTER CHA */
-  [0x1835, 0x1835], /* MONGOLIAN LETTER JA */
-  [0x1836, 0x1836], /* MONGOLIAN LETTER YA */
-  [0x1837, 0x1837], /* MONGOLIAN LETTER RA */
-  [0x1838, 0x1838], /* MONGOLIAN LETTER WA */
-  [0x1839, 0x1839], /* MONGOLIAN LETTER FA */
-  [0x183a, 0x183a], /* MONGOLIAN LETTER KA */
-  [0x183b, 0x183b], /* MONGOLIAN LETTER KHA */
-  [0x183c, 0x183c], /* MONGOLIAN LETTER TSA */
-  [0x183d, 0x183d], /* MONGOLIAN LETTER ZA */
-  [0x183e, 0x183e], /* MONGOLIAN LETTER HAA */
-  [0x183f, 0x183f], /* MONGOLIAN LETTER ZRA */
-  [0x1840, 0x1840], /* MONGOLIAN LETTER LHA */
-  [0x1841, 0x1841], /* MONGOLIAN LETTER ZHI */
-  [0x1842, 0x1842], /* MONGOLIAN LETTER CHI */
-  [0x1843, 0x1843], /* MONGOLIAN LETTER TODO LONG VOWEL SIGN */
-  [0x1844, 0x1844], /* MONGOLIAN LETTER TODO E */
-  [0x1845, 0x1845], /* MONGOLIAN LETTER TODO I */
-  [0x1846, 0x1846], /* MONGOLIAN LETTER TODO O */
-  [0x1847, 0x1847], /* MONGOLIAN LETTER TODO U */
-  [0x1848, 0x1848], /* MONGOLIAN LETTER TODO OE */
-  [0x1849, 0x1849], /* MONGOLIAN LETTER TODO UE */
-  [0x184a, 0x184a], /* MONGOLIAN LETTER TODO ANG */
-  [0x184b, 0x184b], /* MONGOLIAN LETTER TODO BA */
-  [0x184c, 0x184c], /* MONGOLIAN LETTER TODO PA */
-  [0x184d, 0x184d], /* MONGOLIAN LETTER TODO QA */
-  [0x184e, 0x184e], /* MONGOLIAN LETTER TODO GA */
-  [0x184f, 0x184f], /* MONGOLIAN LETTER TODO MA */
-  [0x1850, 0x1850], /* MONGOLIAN LETTER TODO TA */
-  [0x1851, 0x1851], /* MONGOLIAN LETTER TODO DA */
-  [0x1852, 0x1852], /* MONGOLIAN LETTER TODO CHA */
-  [0x1853, 0x1853], /* MONGOLIAN LETTER TODO JA */
-  [0x1854, 0x1854], /* MONGOLIAN LETTER TODO TSA */
-  [0x1855, 0x1855], /* MONGOLIAN LETTER TODO YA */
-  [0x1856, 0x1856], /* MONGOLIAN LETTER TODO WA */
-  [0x1857, 0x1857], /* MONGOLIAN LETTER TODO KA */
-  [0x1858, 0x1858], /* MONGOLIAN LETTER TODO GAA */
-  [0x1859, 0x1859], /* MONGOLIAN LETTER TODO HAA */
-  [0x185a, 0x185a], /* MONGOLIAN LETTER TODO JIA */
-  [0x185b, 0x185b], /* MONGOLIAN LETTER TODO NIA */
-  [0x185c, 0x185c], /* MONGOLIAN LETTER TODO DZA */
-  [0x185d, 0x185d], /* MONGOLIAN LETTER SIBE E */
-  [0x185e, 0x185e], /* MONGOLIAN LETTER SIBE I */
-  [0x185f, 0x185f], /* MONGOLIAN LETTER SIBE IY */
-  [0x1860, 0x1860], /* MONGOLIAN LETTER SIBE UE */
-  [0x1861, 0x1861], /* MONGOLIAN LETTER SIBE U */
-  [0x1862, 0x1862], /* MONGOLIAN LETTER SIBE ANG */
-  [0x1863, 0x1863], /* MONGOLIAN LETTER SIBE KA */
-  [0x1864, 0x1864], /* MONGOLIAN LETTER SIBE GA */
-  [0x1865, 0x1865], /* MONGOLIAN LETTER SIBE HA */
-  [0x1866, 0x1866], /* MONGOLIAN LETTER SIBE PA */
-  [0x1867, 0x1867], /* MONGOLIAN LETTER SIBE SHA */
-  [0x1868, 0x1868], /* MONGOLIAN LETTER SIBE TA */
-  [0x1869, 0x1869], /* MONGOLIAN LETTER SIBE DA */
-  [0x186a, 0x186a], /* MONGOLIAN LETTER SIBE JA */
-  [0x186b, 0x186b], /* MONGOLIAN LETTER SIBE FA */
-  [0x186c, 0x186c], /* MONGOLIAN LETTER SIBE GAA */
-  [0x186d, 0x186d], /* MONGOLIAN LETTER SIBE HAA */
-  [0x186e, 0x186e], /* MONGOLIAN LETTER SIBE TSA */
-  [0x186f, 0x186f], /* MONGOLIAN LETTER SIBE ZA */
-  [0x1870, 0x1870], /* MONGOLIAN LETTER SIBE RAA */
-  [0x1871, 0x1871], /* MONGOLIAN LETTER SIBE CHA */
-  [0x1872, 0x1872], /* MONGOLIAN LETTER SIBE ZHA */
-  [0x1873, 0x1873], /* MONGOLIAN LETTER MANCHU I */
-  [0x1874, 0x1874], /* MONGOLIAN LETTER MANCHU KA */
-  [0x1875, 0x1875], /* MONGOLIAN LETTER MANCHU RA */
-  [0x1876, 0x1876], /* MONGOLIAN LETTER MANCHU FA */
-  [0x1877, 0x1877], /* MONGOLIAN LETTER MANCHU ZHA */
-  [0x1878, 0x1878],
-  [0x1879, 0x1879],
-  [0x187a, 0x187a],
-  [0x187b, 0x187b],
-  [0x187c, 0x187c],
-  [0x187d, 0x187d],
-  [0x187e, 0x187e],
-  [0x187f, 0x187f],
-  [0x1880, 0x1880], /* MONGOLIAN LETTER ALI GALI ANUSVARA ONE */
-  [0x1881, 0x1881], /* MONGOLIAN LETTER ALI GALI VISARGA ONE */
-  [0x1882, 0x1882], /* MONGOLIAN LETTER ALI GALI DAMARU */
-  [0x1883, 0x1883], /* MONGOLIAN LETTER ALI GALI UBADAMA */
-  [0x1884, 0x1884], /* MONGOLIAN LETTER ALI GALI INVERTED UBADAMA */
-  [0x1885, 0x1885], /* MONGOLIAN LETTER ALI GALI BALUDA */
-  [0x1886, 0x1886], /* MONGOLIAN LETTER ALI GALI THREE BALUDA */
-  [0x1887, 0x1887], /* MONGOLIAN LETTER ALI GALI A */
-  [0x1888, 0x1888], /* MONGOLIAN LETTER ALI GALI I */
-  [0x1889, 0x1889], /* MONGOLIAN LETTER ALI GALI KA */
-  [0x188a, 0x188a], /* MONGOLIAN LETTER ALI GALI NGA */
-  [0x188b, 0x188b], /* MONGOLIAN LETTER ALI GALI CA */
-  [0x188c, 0x188c], /* MONGOLIAN LETTER ALI GALI TTA */
-  [0x188d, 0x188d], /* MONGOLIAN LETTER ALI GALI TTHA */
-  [0x188e, 0x188e], /* MONGOLIAN LETTER ALI GALI DDA */
-  [0x188f, 0x188f], /* MONGOLIAN LETTER ALI GALI NNA */
-  [0x1890, 0x1890], /* MONGOLIAN LETTER ALI GALI TA */
-  [0x1891, 0x1891], /* MONGOLIAN LETTER ALI GALI DA */
-  [0x1892, 0x1892], /* MONGOLIAN LETTER ALI GALI PA */
-  [0x1893, 0x1893], /* MONGOLIAN LETTER ALI GALI PHA */
-  [0x1894, 0x1894], /* MONGOLIAN LETTER ALI GALI SSA */
-  [0x1895, 0x1895], /* MONGOLIAN LETTER ALI GALI ZHA */
-  [0x1896, 0x1896], /* MONGOLIAN LETTER ALI GALI ZA */
-  [0x1897, 0x1897], /* MONGOLIAN LETTER ALI GALI AH */
-  [0x1898, 0x1898], /* MONGOLIAN LETTER TODO ALI GALI TA */
-  [0x1899, 0x1899], /* MONGOLIAN LETTER TODO ALI GALI ZHA */
-  [0x189a, 0x189a], /* MONGOLIAN LETTER MANCHU ALI GALI GHA */
-  [0x189b, 0x189b], /* MONGOLIAN LETTER MANCHU ALI GALI NGA */
-  [0x189c, 0x189c], /* MONGOLIAN LETTER MANCHU ALI GALI CA */
-  [0x189d, 0x189d], /* MONGOLIAN LETTER MANCHU ALI GALI JHA */
-  [0x189e, 0x189e], /* MONGOLIAN LETTER MANCHU ALI GALI TTA */
-  [0x189f, 0x189f], /* MONGOLIAN LETTER MANCHU ALI GALI DDHA */
-  [0x18a0, 0x18a0], /* MONGOLIAN LETTER MANCHU ALI GALI TA */
-  [0x18a1, 0x18a1], /* MONGOLIAN LETTER MANCHU ALI GALI DHA */
-  [0x18a2, 0x18a2], /* MONGOLIAN LETTER MANCHU ALI GALI SSA */
-  [0x18a3, 0x18a3], /* MONGOLIAN LETTER MANCHU ALI GALI CYA */
-  [0x18a4, 0x18a4], /* MONGOLIAN LETTER MANCHU ALI GALI ZHA */
-  [0x18a5, 0x18a5], /* MONGOLIAN LETTER MANCHU ALI GALI ZA */
-  [0x18a6, 0x18a6], /* MONGOLIAN LETTER ALI GALI HALF U */
-  [0x18a7, 0x18a7], /* MONGOLIAN LETTER ALI GALI HALF YA */
-  [0x18a8, 0x18a8], /* MONGOLIAN LETTER MANCHU ALI GALI BHA */
-  [0x18a9, 0x18a9], /* MONGOLIAN LETTER ALI GALI DAGALGA */
-  [0x18aa, 0x18aa], /* MONGOLIAN LETTER MANCHU ALI GALI LHA */
-  [0x18ab, 0x18ab],
-  [0x18ac, 0x18ac],
-  [0x18ad, 0x18ad],
-  [0x18ae, 0x18ae],
-  [0x18af, 0x18af],
-  [0x18b0, 0x18b0], /* CANADIAN SYLLABICS OY */
-  [0x18b1, 0x18b1], /* CANADIAN SYLLABICS AY */
-  [0x18b2, 0x18b2], /* CANADIAN SYLLABICS AAY */
-  [0x18b3, 0x18b3], /* CANADIAN SYLLABICS WAY */
-  [0x18b4, 0x18b4], /* CANADIAN SYLLABICS POY */
-  [0x18b5, 0x18b5], /* CANADIAN SYLLABICS PAY */
-  [0x18b6, 0x18b6], /* CANADIAN SYLLABICS PWOY */
-  [0x18b7, 0x18b7], /* CANADIAN SYLLABICS TAY */
-  [0x18b8, 0x18b8], /* CANADIAN SYLLABICS KAY */
-  [0x18b9, 0x18b9], /* CANADIAN SYLLABICS KWAY */
-  [0x18ba, 0x18ba], /* CANADIAN SYLLABICS MAY */
-  [0x18bb, 0x18bb], /* CANADIAN SYLLABICS NOY */
-  [0x18bc, 0x18bc], /* CANADIAN SYLLABICS NAY */
-  [0x18bd, 0x18bd], /* CANADIAN SYLLABICS LAY */
-  [0x18be, 0x18be], /* CANADIAN SYLLABICS SOY */
-  [0x18bf, 0x18bf], /* CANADIAN SYLLABICS SAY */
-  [0x18c0, 0x18c0], /* CANADIAN SYLLABICS SHOY */
-  [0x18c1, 0x18c1], /* CANADIAN SYLLABICS SHAY */
-  [0x18c2, 0x18c2], /* CANADIAN SYLLABICS SHWOY */
-  [0x18c3, 0x18c3], /* CANADIAN SYLLABICS YOY */
-  [0x18c4, 0x18c4], /* CANADIAN SYLLABICS YAY */
-  [0x18c5, 0x18c5], /* CANADIAN SYLLABICS RAY */
-  [0x18c6, 0x18c6], /* CANADIAN SYLLABICS NWI */
-  [0x18c7, 0x18c7], /* CANADIAN SYLLABICS OJIBWAY NWI */
-  [0x18c8, 0x18c8], /* CANADIAN SYLLABICS NWII */
-  [0x18c9, 0x18c9], /* CANADIAN SYLLABICS OJIBWAY NWII */
-  [0x18ca, 0x18ca], /* CANADIAN SYLLABICS NWO */
-  [0x18cb, 0x18cb], /* CANADIAN SYLLABICS OJIBWAY NWO */
-  [0x18cc, 0x18cc], /* CANADIAN SYLLABICS NWOO */
-  [0x18cd, 0x18cd], /* CANADIAN SYLLABICS OJIBWAY NWOO */
-  [0x18ce, 0x18ce], /* CANADIAN SYLLABICS RWEE */
-  [0x18cf, 0x18cf], /* CANADIAN SYLLABICS RWI */
-  [0x18d0, 0x18d0], /* CANADIAN SYLLABICS RWII */
-  [0x18d1, 0x18d1], /* CANADIAN SYLLABICS RWO */
-  [0x18d2, 0x18d2], /* CANADIAN SYLLABICS RWOO */
-  [0x18d3, 0x18d3], /* CANADIAN SYLLABICS RWA */
-  [0x18d4, 0x18d4], /* CANADIAN SYLLABICS OJIBWAY P */
-  [0x18d5, 0x18d5], /* CANADIAN SYLLABICS OJIBWAY T */
-  [0x18d6, 0x18d6], /* CANADIAN SYLLABICS OJIBWAY K */
-  [0x18d7, 0x18d7], /* CANADIAN SYLLABICS OJIBWAY C */
-  [0x18d8, 0x18d8], /* CANADIAN SYLLABICS OJIBWAY M */
-  [0x18d9, 0x18d9], /* CANADIAN SYLLABICS OJIBWAY N */
-  [0x18da, 0x18da], /* CANADIAN SYLLABICS OJIBWAY S */
-  [0x18db, 0x18db], /* CANADIAN SYLLABICS OJIBWAY SH */
-  [0x18dc, 0x18dc], /* CANADIAN SYLLABICS EASTERN W */
-  [0x18dd, 0x18dd], /* CANADIAN SYLLABICS WESTERN W */
-  [0x18de, 0x18de], /* CANADIAN SYLLABICS FINAL SMALL RING */
-  [0x18df, 0x18df], /* CANADIAN SYLLABICS FINAL RAISED DOT */
-  [0x18e0, 0x18e0], /* CANADIAN SYLLABICS R-CREE RWE */
-  [0x18e1, 0x18e1], /* CANADIAN SYLLABICS WEST-CREE LOO */
-  [0x18e2, 0x18e2], /* CANADIAN SYLLABICS WEST-CREE LAA */
-  [0x18e3, 0x18e3], /* CANADIAN SYLLABICS THWE */
-  [0x18e4, 0x18e4], /* CANADIAN SYLLABICS THWA */
-  [0x18e5, 0x18e5], /* CANADIAN SYLLABICS TTHWE */
-  [0x18e6, 0x18e6], /* CANADIAN SYLLABICS TTHOO */
-  [0x18e7, 0x18e7], /* CANADIAN SYLLABICS TTHAA */
-  [0x18e8, 0x18e8], /* CANADIAN SYLLABICS TLHWE */
-  [0x18e9, 0x18e9], /* CANADIAN SYLLABICS TLHOO */
-  [0x18ea, 0x18ea], /* CANADIAN SYLLABICS SAYISI SHWE */
-  [0x18eb, 0x18eb], /* CANADIAN SYLLABICS SAYISI SHOO */
-  [0x18ec, 0x18ec], /* CANADIAN SYLLABICS SAYISI HOO */
-  [0x18ed, 0x18ed], /* CANADIAN SYLLABICS CARRIER GWU */
-  [0x18ee, 0x18ee], /* CANADIAN SYLLABICS CARRIER DENE GEE */
-  [0x18ef, 0x18ef], /* CANADIAN SYLLABICS CARRIER GAA */
-  [0x18f0, 0x18f0], /* CANADIAN SYLLABICS CARRIER GWA */
-  [0x18f1, 0x18f1], /* CANADIAN SYLLABICS SAYISI JUU */
-  [0x18f2, 0x18f2], /* CANADIAN SYLLABICS CARRIER JWA */
-  [0x18f3, 0x18f3], /* CANADIAN SYLLABICS BEAVER DENE L */
-  [0x18f4, 0x18f4], /* CANADIAN SYLLABICS BEAVER DENE R */
-  [0x18f5, 0x18f5], /* CANADIAN SYLLABICS CARRIER DENTAL S */
-  [0x18f6, 0x18f6],
-  [0x18f7, 0x18f7],
-  [0x18f8, 0x18f8],
-  [0x18f9, 0x18f9],
-  [0x18fa, 0x18fa],
-  [0x18fb, 0x18fb],
-  [0x18fc, 0x18fc],
-  [0x18fd, 0x18fd],
-  [0x18fe, 0x18fe],
-  [0x18ff, 0x18ff],
-  [0x1900, 0x1900], /* LIMBU VOWEL-CARRIER LETTER */
-  [0x1901, 0x1901], /* LIMBU LETTER KA */
-  [0x1902, 0x1902], /* LIMBU LETTER KHA */
-  [0x1903, 0x1903], /* LIMBU LETTER GA */
-  [0x1904, 0x1904], /* LIMBU LETTER GHA */
-  [0x1905, 0x1905], /* LIMBU LETTER NGA */
-  [0x1906, 0x1906], /* LIMBU LETTER CA */
-  [0x1907, 0x1907], /* LIMBU LETTER CHA */
-  [0x1908, 0x1908], /* LIMBU LETTER JA */
-  [0x1909, 0x1909], /* LIMBU LETTER JHA */
-  [0x190a, 0x190a], /* LIMBU LETTER YAN */
-  [0x190b, 0x190b], /* LIMBU LETTER TA */
-  [0x190c, 0x190c], /* LIMBU LETTER THA */
-  [0x190d, 0x190d], /* LIMBU LETTER DA */
-  [0x190e, 0x190e], /* LIMBU LETTER DHA */
-  [0x190f, 0x190f], /* LIMBU LETTER NA */
-  [0x1910, 0x1910], /* LIMBU LETTER PA */
-  [0x1911, 0x1911], /* LIMBU LETTER PHA */
-  [0x1912, 0x1912], /* LIMBU LETTER BA */
-  [0x1913, 0x1913], /* LIMBU LETTER BHA */
-  [0x1914, 0x1914], /* LIMBU LETTER MA */
-  [0x1915, 0x1915], /* LIMBU LETTER YA */
-  [0x1916, 0x1916], /* LIMBU LETTER RA */
-  [0x1917, 0x1917], /* LIMBU LETTER LA */
-  [0x1918, 0x1918], /* LIMBU LETTER WA */
-  [0x1919, 0x1919], /* LIMBU LETTER SHA */
-  [0x191a, 0x191a], /* LIMBU LETTER SSA */
-  [0x191b, 0x191b], /* LIMBU LETTER SA */
-  [0x191c, 0x191c], /* LIMBU LETTER HA */
-  [0x191d, 0x191d], /* LIMBU LETTER GYAN */
-  [0x191e, 0x191e], /* LIMBU LETTER TRA */
-  [0x191f, 0x191f],
-  [0x1920, 0x1920], /* LIMBU VOWEL SIGN A */
-  [0x1921, 0x1921], /* LIMBU VOWEL SIGN I */
-  [0x1922, 0x1922], /* LIMBU VOWEL SIGN U */
-  [0x1923, 0x1923], /* LIMBU VOWEL SIGN EE */
-  [0x1924, 0x1924], /* LIMBU VOWEL SIGN AI */
-  [0x1925, 0x1925], /* LIMBU VOWEL SIGN OO */
-  [0x1926, 0x1926], /* LIMBU VOWEL SIGN AU */
-  [0x1927, 0x1927], /* LIMBU VOWEL SIGN E */
-  [0x1928, 0x1928], /* LIMBU VOWEL SIGN O */
-  [0x1929, 0x1929], /* LIMBU SUBJOINED LETTER YA */
-  [0x192a, 0x192a], /* LIMBU SUBJOINED LETTER RA */
-  [0x192b, 0x192b], /* LIMBU SUBJOINED LETTER WA */
-  [0x192c, 0x192c],
-  [0x192d, 0x192d],
-  [0x192e, 0x192e],
-  [0x192f, 0x192f],
-  [0x1930, 0x1930], /* LIMBU SMALL LETTER KA */
-  [0x1931, 0x1931], /* LIMBU SMALL LETTER NGA */
-  [0x1932, 0x1932], /* LIMBU SMALL LETTER ANUSVARA */
-  [0x1933, 0x1933], /* LIMBU SMALL LETTER TA */
-  [0x1934, 0x1934], /* LIMBU SMALL LETTER NA */
-  [0x1935, 0x1935], /* LIMBU SMALL LETTER PA */
-  [0x1936, 0x1936], /* LIMBU SMALL LETTER MA */
-  [0x1937, 0x1937], /* LIMBU SMALL LETTER RA */
-  [0x1938, 0x1938], /* LIMBU SMALL LETTER LA */
-  [0x1939, 0x1939], /* LIMBU SIGN MUKPHRENG */
-  [0x193a, 0x193a], /* LIMBU SIGN KEMPHRENG */
-  [0x193b, 0x193b], /* LIMBU SIGN SA-I */
-  [0x193c, 0x193c],
-  [0x193d, 0x193d],
-  [0x193e, 0x193e],
-  [0x193f, 0x193f],
-  [0x1940, 0x1940], /* LIMBU SIGN LOO */
-  [0x1941, 0x1941],
-  [0x1942, 0x1942],
-  [0x1943, 0x1943],
-  [0x1944, 0x1944], /* LIMBU EXCLAMATION MARK */
-  [0x1945, 0x1945], /* LIMBU QUESTION MARK */
-  [0x1946, 0x1946], /* LIMBU DIGIT ZERO */
-  [0x1947, 0x1947], /* LIMBU DIGIT ONE */
-  [0x1948, 0x1948], /* LIMBU DIGIT TWO */
-  [0x1949, 0x1949], /* LIMBU DIGIT THREE */
-  [0x194a, 0x194a], /* LIMBU DIGIT FOUR */
-  [0x194b, 0x194b], /* LIMBU DIGIT FIVE */
-  [0x194c, 0x194c], /* LIMBU DIGIT SIX */
-  [0x194d, 0x194d], /* LIMBU DIGIT SEVEN */
-  [0x194e, 0x194e], /* LIMBU DIGIT EIGHT */
-  [0x194f, 0x194f], /* LIMBU DIGIT NINE */
-  [0x1950, 0x1950], /* TAI LE LETTER KA */
-  [0x1951, 0x1951], /* TAI LE LETTER XA */
-  [0x1952, 0x1952], /* TAI LE LETTER NGA */
-  [0x1953, 0x1953], /* TAI LE LETTER TSA */
-  [0x1954, 0x1954], /* TAI LE LETTER SA */
-  [0x1955, 0x1955], /* TAI LE LETTER YA */
-  [0x1956, 0x1956], /* TAI LE LETTER TA */
-  [0x1957, 0x1957], /* TAI LE LETTER THA */
-  [0x1958, 0x1958], /* TAI LE LETTER LA */
-  [0x1959, 0x1959], /* TAI LE LETTER PA */
-  [0x195a, 0x195a], /* TAI LE LETTER PHA */
-  [0x195b, 0x195b], /* TAI LE LETTER MA */
-  [0x195c, 0x195c], /* TAI LE LETTER FA */
-  [0x195d, 0x195d], /* TAI LE LETTER VA */
-  [0x195e, 0x195e], /* TAI LE LETTER HA */
-  [0x195f, 0x195f], /* TAI LE LETTER QA */
-  [0x1960, 0x1960], /* TAI LE LETTER KHA */
-  [0x1961, 0x1961], /* TAI LE LETTER TSHA */
-  [0x1962, 0x1962], /* TAI LE LETTER NA */
-  [0x1963, 0x1963], /* TAI LE LETTER A */
-  [0x1964, 0x1964], /* TAI LE LETTER I */
-  [0x1965, 0x1965], /* TAI LE LETTER EE */
-  [0x1966, 0x1966], /* TAI LE LETTER EH */
-  [0x1967, 0x1967], /* TAI LE LETTER U */
-  [0x1968, 0x1968], /* TAI LE LETTER OO */
-  [0x1969, 0x1969], /* TAI LE LETTER O */
-  [0x196a, 0x196a], /* TAI LE LETTER UE */
-  [0x196b, 0x196b], /* TAI LE LETTER E */
-  [0x196c, 0x196c], /* TAI LE LETTER AUE */
-  [0x196d, 0x196d], /* TAI LE LETTER AI */
-  [0x196e, 0x196e],
-  [0x196f, 0x196f],
-  [0x1970, 0x1970], /* TAI LE LETTER TONE-2 */
-  [0x1971, 0x1971], /* TAI LE LETTER TONE-3 */
-  [0x1972, 0x1972], /* TAI LE LETTER TONE-4 */
-  [0x1973, 0x1973], /* TAI LE LETTER TONE-5 */
-  [0x1974, 0x1974], /* TAI LE LETTER TONE-6 */
-  [0x1975, 0x1975],
-  [0x1976, 0x1976],
-  [0x1977, 0x1977],
-  [0x1978, 0x1978],
-  [0x1979, 0x1979],
-  [0x197a, 0x197a],
-  [0x197b, 0x197b],
-  [0x197c, 0x197c],
-  [0x197d, 0x197d],
-  [0x197e, 0x197e],
-  [0x197f, 0x197f],
-  [0x1980, 0x1980], /* NEW TAI LUE LETTER HIGH QA */
-  [0x1981, 0x1981], /* NEW TAI LUE LETTER LOW QA */
-  [0x1982, 0x1982], /* NEW TAI LUE LETTER HIGH KA */
-  [0x1983, 0x1983], /* NEW TAI LUE LETTER HIGH XA */
-  [0x1984, 0x1984], /* NEW TAI LUE LETTER HIGH NGA */
-  [0x1985, 0x1985], /* NEW TAI LUE LETTER LOW KA */
-  [0x1986, 0x1986], /* NEW TAI LUE LETTER LOW XA */
-  [0x1987, 0x1987], /* NEW TAI LUE LETTER LOW NGA */
-  [0x1988, 0x1988], /* NEW TAI LUE LETTER HIGH TSA */
-  [0x1989, 0x1989], /* NEW TAI LUE LETTER HIGH SA */
-  [0x198a, 0x198a], /* NEW TAI LUE LETTER HIGH YA */
-  [0x198b, 0x198b], /* NEW TAI LUE LETTER LOW TSA */
-  [0x198c, 0x198c], /* NEW TAI LUE LETTER LOW SA */
-  [0x198d, 0x198d], /* NEW TAI LUE LETTER LOW YA */
-  [0x198e, 0x198e], /* NEW TAI LUE LETTER HIGH TA */
-  [0x198f, 0x198f], /* NEW TAI LUE LETTER HIGH THA */
-  [0x1990, 0x1990], /* NEW TAI LUE LETTER HIGH NA */
-  [0x1991, 0x1991], /* NEW TAI LUE LETTER LOW TA */
-  [0x1992, 0x1992], /* NEW TAI LUE LETTER LOW THA */
-  [0x1993, 0x1993], /* NEW TAI LUE LETTER LOW NA */
-  [0x1994, 0x1994], /* NEW TAI LUE LETTER HIGH PA */
-  [0x1995, 0x1995], /* NEW TAI LUE LETTER HIGH PHA */
-  [0x1996, 0x1996], /* NEW TAI LUE LETTER HIGH MA */
-  [0x1997, 0x1997], /* NEW TAI LUE LETTER LOW PA */
-  [0x1998, 0x1998], /* NEW TAI LUE LETTER LOW PHA */
-  [0x1999, 0x1999], /* NEW TAI LUE LETTER LOW MA */
-  [0x199a, 0x199a], /* NEW TAI LUE LETTER HIGH FA */
-  [0x199b, 0x199b], /* NEW TAI LUE LETTER HIGH VA */
-  [0x199c, 0x199c], /* NEW TAI LUE LETTER HIGH LA */
-  [0x199d, 0x199d], /* NEW TAI LUE LETTER LOW FA */
-  [0x199e, 0x199e], /* NEW TAI LUE LETTER LOW VA */
-  [0x199f, 0x199f], /* NEW TAI LUE LETTER LOW LA */
-  [0x19a0, 0x19a0], /* NEW TAI LUE LETTER HIGH HA */
-  [0x19a1, 0x19a1], /* NEW TAI LUE LETTER HIGH DA */
-  [0x19a2, 0x19a2], /* NEW TAI LUE LETTER HIGH BA */
-  [0x19a3, 0x19a3], /* NEW TAI LUE LETTER LOW HA */
-  [0x19a4, 0x19a4], /* NEW TAI LUE LETTER LOW DA */
-  [0x19a5, 0x19a5], /* NEW TAI LUE LETTER LOW BA */
-  [0x19a6, 0x19a6], /* NEW TAI LUE LETTER HIGH KVA */
-  [0x19a7, 0x19a7], /* NEW TAI LUE LETTER HIGH XVA */
-  [0x19a8, 0x19a8], /* NEW TAI LUE LETTER LOW KVA */
-  [0x19a9, 0x19a9], /* NEW TAI LUE LETTER LOW XVA */
-  [0x19aa, 0x19aa], /* NEW TAI LUE LETTER HIGH SUA */
-  [0x19ab, 0x19ab], /* NEW TAI LUE LETTER LOW SUA */
-  [0x19ac, 0x19ac],
-  [0x19ad, 0x19ad],
-  [0x19ae, 0x19ae],
-  [0x19af, 0x19af],
-  [0x19b0, 0x19b0], /* NEW TAI LUE VOWEL SIGN VOWEL SHORTENER */
-  [0x19b1, 0x19b1], /* NEW TAI LUE VOWEL SIGN AA */
-  [0x19b2, 0x19b2], /* NEW TAI LUE VOWEL SIGN II */
-  [0x19b3, 0x19b3], /* NEW TAI LUE VOWEL SIGN U */
-  [0x19b4, 0x19b4], /* NEW TAI LUE VOWEL SIGN UU */
-  [0x19b5, 0x19b5], /* NEW TAI LUE VOWEL SIGN E */
-  [0x19b6, 0x19b6], /* NEW TAI LUE VOWEL SIGN AE */
-  [0x19b7, 0x19b7], /* NEW TAI LUE VOWEL SIGN O */
-  [0x19b8, 0x19b8], /* NEW TAI LUE VOWEL SIGN OA */
-  [0x19b9, 0x19b9], /* NEW TAI LUE VOWEL SIGN UE */
-  [0x19ba, 0x19ba], /* NEW TAI LUE VOWEL SIGN AY */
-  [0x19bb, 0x19bb], /* NEW TAI LUE VOWEL SIGN AAY */
-  [0x19bc, 0x19bc], /* NEW TAI LUE VOWEL SIGN UY */
-  [0x19bd, 0x19bd], /* NEW TAI LUE VOWEL SIGN OY */
-  [0x19be, 0x19be], /* NEW TAI LUE VOWEL SIGN OAY */
-  [0x19bf, 0x19bf], /* NEW TAI LUE VOWEL SIGN UEY */
-  [0x19c0, 0x19c0], /* NEW TAI LUE VOWEL SIGN IY */
-  [0x19c1, 0x19c1], /* NEW TAI LUE LETTER FINAL V */
-  [0x19c2, 0x19c2], /* NEW TAI LUE LETTER FINAL NG */
-  [0x19c3, 0x19c3], /* NEW TAI LUE LETTER FINAL N */
-  [0x19c4, 0x19c4], /* NEW TAI LUE LETTER FINAL M */
-  [0x19c5, 0x19c5], /* NEW TAI LUE LETTER FINAL K */
-  [0x19c6, 0x19c6], /* NEW TAI LUE LETTER FINAL D */
-  [0x19c7, 0x19c7], /* NEW TAI LUE LETTER FINAL B */
-  [0x19c8, 0x19c8], /* NEW TAI LUE TONE MARK-1 */
-  [0x19c9, 0x19c9], /* NEW TAI LUE TONE MARK-2 */
-  [0x19ca, 0x19ca],
-  [0x19cb, 0x19cb],
-  [0x19cc, 0x19cc],
-  [0x19cd, 0x19cd],
-  [0x19ce, 0x19ce],
-  [0x19cf, 0x19cf],
-  [0x19d0, 0x19d0], /* NEW TAI LUE DIGIT ZERO */
-  [0x19d1, 0x19d1], /* NEW TAI LUE DIGIT ONE */
-  [0x19d2, 0x19d2], /* NEW TAI LUE DIGIT TWO */
-  [0x19d3, 0x19d3], /* NEW TAI LUE DIGIT THREE */
-  [0x19d4, 0x19d4], /* NEW TAI LUE DIGIT FOUR */
-  [0x19d5, 0x19d5], /* NEW TAI LUE DIGIT FIVE */
-  [0x19d6, 0x19d6], /* NEW TAI LUE DIGIT SIX */
-  [0x19d7, 0x19d7], /* NEW TAI LUE DIGIT SEVEN */
-  [0x19d8, 0x19d8], /* NEW TAI LUE DIGIT EIGHT */
-  [0x19d9, 0x19d9], /* NEW TAI LUE DIGIT NINE */
-  [0x19da, 0x19da], /* NEW TAI LUE THAM DIGIT ONE */
-  [0x19db, 0x19db],
-  [0x19dc, 0x19dc],
-  [0x19dd, 0x19dd],
-  [0x19de, 0x19de], /* NEW TAI LUE SIGN LAE */
-  [0x19df, 0x19df], /* NEW TAI LUE SIGN LAEV */
-  [0x19e0, 0x19e0], /* KHMER SYMBOL PATHAMASAT */
-  [0x19e1, 0x19e1], /* KHMER SYMBOL MUOY KOET */
-  [0x19e2, 0x19e2], /* KHMER SYMBOL PII KOET */
-  [0x19e3, 0x19e3], /* KHMER SYMBOL BEI KOET */
-  [0x19e4, 0x19e4], /* KHMER SYMBOL BUON KOET */
-  [0x19e5, 0x19e5], /* KHMER SYMBOL PRAM KOET */
-  [0x19e6, 0x19e6], /* KHMER SYMBOL PRAM-MUOY KOET */
-  [0x19e7, 0x19e7], /* KHMER SYMBOL PRAM-PII KOET */
-  [0x19e8, 0x19e8], /* KHMER SYMBOL PRAM-BEI KOET */
-  [0x19e9, 0x19e9], /* KHMER SYMBOL PRAM-BUON KOET */
-  [0x19ea, 0x19ea], /* KHMER SYMBOL DAP KOET */
-  [0x19eb, 0x19eb], /* KHMER SYMBOL DAP-MUOY KOET */
-  [0x19ec, 0x19ec], /* KHMER SYMBOL DAP-PII KOET */
-  [0x19ed, 0x19ed], /* KHMER SYMBOL DAP-BEI KOET */
-  [0x19ee, 0x19ee], /* KHMER SYMBOL DAP-BUON KOET */
-  [0x19ef, 0x19ef], /* KHMER SYMBOL DAP-PRAM KOET */
-  [0x19f0, 0x19f0], /* KHMER SYMBOL TUTEYASAT */
-  [0x19f1, 0x19f1], /* KHMER SYMBOL MUOY ROC */
-  [0x19f2, 0x19f2], /* KHMER SYMBOL PII ROC */
-  [0x19f3, 0x19f3], /* KHMER SYMBOL BEI ROC */
-  [0x19f4, 0x19f4], /* KHMER SYMBOL BUON ROC */
-  [0x19f5, 0x19f5], /* KHMER SYMBOL PRAM ROC */
-  [0x19f6, 0x19f6], /* KHMER SYMBOL PRAM-MUOY ROC */
-  [0x19f7, 0x19f7], /* KHMER SYMBOL PRAM-PII ROC */
-  [0x19f8, 0x19f8], /* KHMER SYMBOL PRAM-BEI ROC */
-  [0x19f9, 0x19f9], /* KHMER SYMBOL PRAM-BUON ROC */
-  [0x19fa, 0x19fa], /* KHMER SYMBOL DAP ROC */
-  [0x19fb, 0x19fb], /* KHMER SYMBOL DAP-MUOY ROC */
-  [0x19fc, 0x19fc], /* KHMER SYMBOL DAP-PII ROC */
-  [0x19fd, 0x19fd], /* KHMER SYMBOL DAP-BEI ROC */
-  [0x19fe, 0x19fe], /* KHMER SYMBOL DAP-BUON ROC */
-  [0x19ff, 0x19ff], /* KHMER SYMBOL DAP-PRAM ROC */
-  [0x1a00, 0x1a00], /* BUGINESE LETTER KA */
-  [0x1a01, 0x1a01], /* BUGINESE LETTER GA */
-  [0x1a02, 0x1a02], /* BUGINESE LETTER NGA */
-  [0x1a03, 0x1a03], /* BUGINESE LETTER NGKA */
-  [0x1a04, 0x1a04], /* BUGINESE LETTER PA */
-  [0x1a05, 0x1a05], /* BUGINESE LETTER BA */
-  [0x1a06, 0x1a06], /* BUGINESE LETTER MA */
-  [0x1a07, 0x1a07], /* BUGINESE LETTER MPA */
-  [0x1a08, 0x1a08], /* BUGINESE LETTER TA */
-  [0x1a09, 0x1a09], /* BUGINESE LETTER DA */
-  [0x1a0a, 0x1a0a], /* BUGINESE LETTER NA */</