Эх сурвалжийг харах

idna: only store range start in the initial TABLE

Dirkjan Ochtman 5 жил өмнө
parent
commit
945908c5a2

+ 2 - 5
idna/src/make_uts46_mapping_table.py

@@ -151,13 +151,10 @@ def merge_single_char_ranges(ranges):
 optimized_ranges = list(merge_single_char_ranges(optimized_ranges))
 
 
-print("static TABLE: &[Range] = &[")
+print("static TABLE: &[char] = &[")
 
 for ranges in optimized_ranges:
-    first = ranges[0][0]
-    last = ranges[-1][1]
-    print("    Range { from: '%s', to: '%s', }," % (escape_char(char(first)),
-                                                            escape_char(char(last))))
+    print("    '%s'," % escape_char(char(ranges[0][0])))
 
 print("];\n")
 

+ 14 - 28
idna/src/uts46.rs

@@ -11,7 +11,6 @@
 
 use self::Mapping::*;
 use crate::punycode;
-use std::cmp::Ordering::{Equal, Greater, Less};
 use std::{error::Error as StdError, fmt};
 use unicode_bidi::{bidi_class, BidiClass};
 use unicode_normalization::char::is_combining_mark;
@@ -51,36 +50,23 @@ enum Mapping {
     DisallowedIdna2008,
 }
 
-struct Range {
-    from: char,
-    to: char,
-}
-
 fn find_char(codepoint: char) -> &'static Mapping {
-    let r = TABLE.binary_search_by(|ref range| {
-        if codepoint > range.to {
-            Less
-        } else if codepoint < range.from {
-            Greater
-        } else {
-            Equal
-        }
-    });
-    r.ok()
-        .map(|i| {
-            const SINGLE_MARKER: u16 = 1 << 15;
+    let idx = match TABLE.binary_search(&codepoint) {
+        Ok(idx) => idx,
+        Err(idx) => idx - 1,
+    };
 
-            let x = INDEX_TABLE[i];
-            let single = (x & SINGLE_MARKER) != 0;
-            let offset = !SINGLE_MARKER & x;
+    const SINGLE_MARKER: u16 = 1 << 15;
 
-            if single {
-                &MAPPING_TABLE[offset as usize]
-            } else {
-                &MAPPING_TABLE[(offset + (codepoint as u16 - TABLE[i].from as u16)) as usize]
-            }
-        })
-        .unwrap()
+    let x = INDEX_TABLE[idx];
+    let single = (x & SINGLE_MARKER) != 0;
+    let offset = !SINGLE_MARKER & x;
+
+    if single {
+        &MAPPING_TABLE[offset as usize]
+    } else {
+        &MAPPING_TABLE[(offset + (codepoint as u16 - TABLE[idx] as u16)) as usize]
+    }
 }
 
 struct Mapper<'a> {

+ 1883 - 1883
idna/src/uts46_mapping_table.rs

@@ -8,1889 +8,1889 @@
 
 // Generated by make_idna_table.py
 
-static TABLE: &[Range] = &[
-    Range { from: '\u{0}', to: '\u{2c}', },
-    Range { from: '\u{2d}', to: '\u{2e}', },
-    Range { from: '\u{2f}', to: '\u{2f}', },
-    Range { from: '\u{30}', to: '\u{39}', },
-    Range { from: '\u{3a}', to: '\u{40}', },
-    Range { from: '\u{41}', to: '\u{5a}', },
-    Range { from: '\u{5b}', to: '\u{60}', },
-    Range { from: '\u{61}', to: '\u{7a}', },
-    Range { from: '\u{7b}', to: '\u{7f}', },
-    Range { from: '\u{80}', to: '\u{9f}', },
-    Range { from: '\u{a0}', to: '\u{a0}', },
-    Range { from: '\u{a1}', to: '\u{a7}', },
-    Range { from: '\u{a8}', to: '\u{aa}', },
-    Range { from: '\u{ab}', to: '\u{ac}', },
-    Range { from: '\u{ad}', to: '\u{af}', },
-    Range { from: '\u{b0}', to: '\u{b1}', },
-    Range { from: '\u{b2}', to: '\u{df}', },
-    Range { from: '\u{e0}', to: '\u{f6}', },
-    Range { from: '\u{f7}', to: '\u{f7}', },
-    Range { from: '\u{f8}', to: '\u{ff}', },
-    Range { from: '\u{100}', to: '\u{131}', },
-    Range { from: '\u{132}', to: '\u{133}', },
-    Range { from: '\u{134}', to: '\u{136}', },
-    Range { from: '\u{137}', to: '\u{138}', },
-    Range { from: '\u{139}', to: '\u{13e}', },
-    Range { from: '\u{13f}', to: '\u{140}', },
-    Range { from: '\u{141}', to: '\u{18b}', },
-    Range { from: '\u{18c}', to: '\u{18d}', },
-    Range { from: '\u{18e}', to: '\u{198}', },
-    Range { from: '\u{199}', to: '\u{19b}', },
-    Range { from: '\u{19c}', to: '\u{1a9}', },
-    Range { from: '\u{1aa}', to: '\u{1ab}', },
-    Range { from: '\u{1ac}', to: '\u{1b8}', },
-    Range { from: '\u{1b9}', to: '\u{1bb}', },
-    Range { from: '\u{1bc}', to: '\u{1bc}', },
-    Range { from: '\u{1bd}', to: '\u{1c3}', },
-    Range { from: '\u{1c4}', to: '\u{1c6}', },
-    Range { from: '\u{1c7}', to: '\u{1c9}', },
-    Range { from: '\u{1ca}', to: '\u{1cc}', },
-    Range { from: '\u{1cd}', to: '\u{1db}', },
-    Range { from: '\u{1dc}', to: '\u{1dd}', },
-    Range { from: '\u{1de}', to: '\u{1ee}', },
-    Range { from: '\u{1ef}', to: '\u{1f0}', },
-    Range { from: '\u{1f1}', to: '\u{1f3}', },
-    Range { from: '\u{1f4}', to: '\u{232}', },
-    Range { from: '\u{233}', to: '\u{239}', },
-    Range { from: '\u{23a}', to: '\u{23e}', },
-    Range { from: '\u{23f}', to: '\u{240}', },
-    Range { from: '\u{241}', to: '\u{24e}', },
-    Range { from: '\u{24f}', to: '\u{2af}', },
-    Range { from: '\u{2b0}', to: '\u{2b8}', },
-    Range { from: '\u{2b9}', to: '\u{2c1}', },
-    Range { from: '\u{2c2}', to: '\u{2c5}', },
-    Range { from: '\u{2c6}', to: '\u{2d1}', },
-    Range { from: '\u{2d2}', to: '\u{2d7}', },
-    Range { from: '\u{2d8}', to: '\u{2dd}', },
-    Range { from: '\u{2de}', to: '\u{2df}', },
-    Range { from: '\u{2e0}', to: '\u{2e4}', },
-    Range { from: '\u{2e5}', to: '\u{2eb}', },
-    Range { from: '\u{2ec}', to: '\u{2ee}', },
-    Range { from: '\u{2ef}', to: '\u{2ff}', },
-    Range { from: '\u{300}', to: '\u{33f}', },
-    Range { from: '\u{340}', to: '\u{345}', },
-    Range { from: '\u{346}', to: '\u{34e}', },
-    Range { from: '\u{34f}', to: '\u{34f}', },
-    Range { from: '\u{350}', to: '\u{36f}', },
-    Range { from: '\u{370}', to: '\u{377}', },
-    Range { from: '\u{378}', to: '\u{379}', },
-    Range { from: '\u{37a}', to: '\u{37a}', },
-    Range { from: '\u{37b}', to: '\u{37d}', },
-    Range { from: '\u{37e}', to: '\u{37f}', },
-    Range { from: '\u{380}', to: '\u{383}', },
-    Range { from: '\u{384}', to: '\u{3ab}', },
-    Range { from: '\u{3ac}', to: '\u{3c1}', },
-    Range { from: '\u{3c2}', to: '\u{3c2}', },
-    Range { from: '\u{3c3}', to: '\u{3ce}', },
-    Range { from: '\u{3cf}', to: '\u{3fa}', },
-    Range { from: '\u{3fb}', to: '\u{3fc}', },
-    Range { from: '\u{3fd}', to: '\u{42f}', },
-    Range { from: '\u{430}', to: '\u{45f}', },
-    Range { from: '\u{460}', to: '\u{482}', },
-    Range { from: '\u{483}', to: '\u{487}', },
-    Range { from: '\u{488}', to: '\u{489}', },
-    Range { from: '\u{48a}', to: '\u{4cd}', },
-    Range { from: '\u{4ce}', to: '\u{4cf}', },
-    Range { from: '\u{4d0}', to: '\u{556}', },
-    Range { from: '\u{557}', to: '\u{558}', },
-    Range { from: '\u{559}', to: '\u{559}', },
-    Range { from: '\u{55a}', to: '\u{55f}', },
-    Range { from: '\u{560}', to: '\u{586}', },
-    Range { from: '\u{587}', to: '\u{588}', },
-    Range { from: '\u{589}', to: '\u{58a}', },
-    Range { from: '\u{58b}', to: '\u{58c}', },
-    Range { from: '\u{58d}', to: '\u{58f}', },
-    Range { from: '\u{590}', to: '\u{590}', },
-    Range { from: '\u{591}', to: '\u{5bd}', },
-    Range { from: '\u{5be}', to: '\u{5c0}', },
-    Range { from: '\u{5c1}', to: '\u{5c2}', },
-    Range { from: '\u{5c3}', to: '\u{5c3}', },
-    Range { from: '\u{5c4}', to: '\u{5c5}', },
-    Range { from: '\u{5c6}', to: '\u{5c7}', },
-    Range { from: '\u{5c8}', to: '\u{5cf}', },
-    Range { from: '\u{5d0}', to: '\u{5ea}', },
-    Range { from: '\u{5eb}', to: '\u{5ee}', },
-    Range { from: '\u{5ef}', to: '\u{5f4}', },
-    Range { from: '\u{5f5}', to: '\u{605}', },
-    Range { from: '\u{606}', to: '\u{60f}', },
-    Range { from: '\u{610}', to: '\u{61a}', },
-    Range { from: '\u{61b}', to: '\u{61b}', },
-    Range { from: '\u{61c}', to: '\u{61d}', },
-    Range { from: '\u{61e}', to: '\u{61f}', },
-    Range { from: '\u{620}', to: '\u{63f}', },
-    Range { from: '\u{640}', to: '\u{640}', },
-    Range { from: '\u{641}', to: '\u{669}', },
-    Range { from: '\u{66a}', to: '\u{66d}', },
-    Range { from: '\u{66e}', to: '\u{674}', },
-    Range { from: '\u{675}', to: '\u{678}', },
-    Range { from: '\u{679}', to: '\u{6d3}', },
-    Range { from: '\u{6d4}', to: '\u{6d4}', },
-    Range { from: '\u{6d5}', to: '\u{6dc}', },
-    Range { from: '\u{6dd}', to: '\u{6de}', },
-    Range { from: '\u{6df}', to: '\u{6e8}', },
-    Range { from: '\u{6e9}', to: '\u{6e9}', },
-    Range { from: '\u{6ea}', to: '\u{6ff}', },
-    Range { from: '\u{700}', to: '\u{70d}', },
-    Range { from: '\u{70e}', to: '\u{70f}', },
-    Range { from: '\u{710}', to: '\u{74a}', },
-    Range { from: '\u{74b}', to: '\u{74c}', },
-    Range { from: '\u{74d}', to: '\u{7b1}', },
-    Range { from: '\u{7b2}', to: '\u{7bf}', },
-    Range { from: '\u{7c0}', to: '\u{7f5}', },
-    Range { from: '\u{7f6}', to: '\u{7fa}', },
-    Range { from: '\u{7fb}', to: '\u{7fc}', },
-    Range { from: '\u{7fd}', to: '\u{7fd}', },
-    Range { from: '\u{7fe}', to: '\u{7ff}', },
-    Range { from: '\u{800}', to: '\u{82d}', },
-    Range { from: '\u{82e}', to: '\u{82f}', },
-    Range { from: '\u{830}', to: '\u{83e}', },
-    Range { from: '\u{83f}', to: '\u{83f}', },
-    Range { from: '\u{840}', to: '\u{85b}', },
-    Range { from: '\u{85c}', to: '\u{85d}', },
-    Range { from: '\u{85e}', to: '\u{85f}', },
-    Range { from: '\u{860}', to: '\u{86a}', },
-    Range { from: '\u{86b}', to: '\u{89f}', },
-    Range { from: '\u{8a0}', to: '\u{8b4}', },
-    Range { from: '\u{8b5}', to: '\u{8b5}', },
-    Range { from: '\u{8b6}', to: '\u{8c7}', },
-    Range { from: '\u{8c8}', to: '\u{8d2}', },
-    Range { from: '\u{8d3}', to: '\u{8e1}', },
-    Range { from: '\u{8e2}', to: '\u{8e2}', },
-    Range { from: '\u{8e3}', to: '\u{957}', },
-    Range { from: '\u{958}', to: '\u{95f}', },
-    Range { from: '\u{960}', to: '\u{963}', },
-    Range { from: '\u{964}', to: '\u{965}', },
-    Range { from: '\u{966}', to: '\u{96f}', },
-    Range { from: '\u{970}', to: '\u{970}', },
-    Range { from: '\u{971}', to: '\u{983}', },
-    Range { from: '\u{984}', to: '\u{984}', },
-    Range { from: '\u{985}', to: '\u{98c}', },
-    Range { from: '\u{98d}', to: '\u{98e}', },
-    Range { from: '\u{98f}', to: '\u{990}', },
-    Range { from: '\u{991}', to: '\u{992}', },
-    Range { from: '\u{993}', to: '\u{9a8}', },
-    Range { from: '\u{9a9}', to: '\u{9a9}', },
-    Range { from: '\u{9aa}', to: '\u{9b0}', },
-    Range { from: '\u{9b1}', to: '\u{9b2}', },
-    Range { from: '\u{9b3}', to: '\u{9b5}', },
-    Range { from: '\u{9b6}', to: '\u{9b9}', },
-    Range { from: '\u{9ba}', to: '\u{9bb}', },
-    Range { from: '\u{9bc}', to: '\u{9c4}', },
-    Range { from: '\u{9c5}', to: '\u{9c6}', },
-    Range { from: '\u{9c7}', to: '\u{9c8}', },
-    Range { from: '\u{9c9}', to: '\u{9ca}', },
-    Range { from: '\u{9cb}', to: '\u{9ce}', },
-    Range { from: '\u{9cf}', to: '\u{9d6}', },
-    Range { from: '\u{9d7}', to: '\u{9d7}', },
-    Range { from: '\u{9d8}', to: '\u{9db}', },
-    Range { from: '\u{9dc}', to: '\u{9df}', },
-    Range { from: '\u{9e0}', to: '\u{9e3}', },
-    Range { from: '\u{9e4}', to: '\u{9e5}', },
-    Range { from: '\u{9e6}', to: '\u{9f1}', },
-    Range { from: '\u{9f2}', to: '\u{9fb}', },
-    Range { from: '\u{9fc}', to: '\u{9fe}', },
-    Range { from: '\u{9ff}', to: '\u{a00}', },
-    Range { from: '\u{a01}', to: '\u{a03}', },
-    Range { from: '\u{a04}', to: '\u{a04}', },
-    Range { from: '\u{a05}', to: '\u{a0a}', },
-    Range { from: '\u{a0b}', to: '\u{a0e}', },
-    Range { from: '\u{a0f}', to: '\u{a10}', },
-    Range { from: '\u{a11}', to: '\u{a12}', },
-    Range { from: '\u{a13}', to: '\u{a28}', },
-    Range { from: '\u{a29}', to: '\u{a29}', },
-    Range { from: '\u{a2a}', to: '\u{a30}', },
-    Range { from: '\u{a31}', to: '\u{a37}', },
-    Range { from: '\u{a38}', to: '\u{a39}', },
-    Range { from: '\u{a3a}', to: '\u{a3b}', },
-    Range { from: '\u{a3c}', to: '\u{a3d}', },
-    Range { from: '\u{a3e}', to: '\u{a42}', },
-    Range { from: '\u{a43}', to: '\u{a46}', },
-    Range { from: '\u{a47}', to: '\u{a48}', },
-    Range { from: '\u{a49}', to: '\u{a4a}', },
-    Range { from: '\u{a4b}', to: '\u{a4d}', },
-    Range { from: '\u{a4e}', to: '\u{a50}', },
-    Range { from: '\u{a51}', to: '\u{a51}', },
-    Range { from: '\u{a52}', to: '\u{a58}', },
-    Range { from: '\u{a59}', to: '\u{a5e}', },
-    Range { from: '\u{a5f}', to: '\u{a65}', },
-    Range { from: '\u{a66}', to: '\u{a75}', },
-    Range { from: '\u{a76}', to: '\u{a76}', },
-    Range { from: '\u{a77}', to: '\u{a80}', },
-    Range { from: '\u{a81}', to: '\u{a83}', },
-    Range { from: '\u{a84}', to: '\u{a84}', },
-    Range { from: '\u{a85}', to: '\u{a8d}', },
-    Range { from: '\u{a8e}', to: '\u{a8e}', },
-    Range { from: '\u{a8f}', to: '\u{a91}', },
-    Range { from: '\u{a92}', to: '\u{a92}', },
-    Range { from: '\u{a93}', to: '\u{aa8}', },
-    Range { from: '\u{aa9}', to: '\u{aa9}', },
-    Range { from: '\u{aaa}', to: '\u{ab0}', },
-    Range { from: '\u{ab1}', to: '\u{ab1}', },
-    Range { from: '\u{ab2}', to: '\u{ab3}', },
-    Range { from: '\u{ab4}', to: '\u{ab4}', },
-    Range { from: '\u{ab5}', to: '\u{ab9}', },
-    Range { from: '\u{aba}', to: '\u{abb}', },
-    Range { from: '\u{abc}', to: '\u{ac5}', },
-    Range { from: '\u{ac6}', to: '\u{ac6}', },
-    Range { from: '\u{ac7}', to: '\u{ac9}', },
-    Range { from: '\u{aca}', to: '\u{aca}', },
-    Range { from: '\u{acb}', to: '\u{acd}', },
-    Range { from: '\u{ace}', to: '\u{acf}', },
-    Range { from: '\u{ad0}', to: '\u{ad0}', },
-    Range { from: '\u{ad1}', to: '\u{adf}', },
-    Range { from: '\u{ae0}', to: '\u{ae3}', },
-    Range { from: '\u{ae4}', to: '\u{ae5}', },
-    Range { from: '\u{ae6}', to: '\u{aef}', },
-    Range { from: '\u{af0}', to: '\u{af1}', },
-    Range { from: '\u{af2}', to: '\u{af8}', },
-    Range { from: '\u{af9}', to: '\u{aff}', },
-    Range { from: '\u{b00}', to: '\u{b00}', },
-    Range { from: '\u{b01}', to: '\u{b03}', },
-    Range { from: '\u{b04}', to: '\u{b04}', },
-    Range { from: '\u{b05}', to: '\u{b0c}', },
-    Range { from: '\u{b0d}', to: '\u{b0e}', },
-    Range { from: '\u{b0f}', to: '\u{b10}', },
-    Range { from: '\u{b11}', to: '\u{b12}', },
-    Range { from: '\u{b13}', to: '\u{b28}', },
-    Range { from: '\u{b29}', to: '\u{b29}', },
-    Range { from: '\u{b2a}', to: '\u{b30}', },
-    Range { from: '\u{b31}', to: '\u{b31}', },
-    Range { from: '\u{b32}', to: '\u{b33}', },
-    Range { from: '\u{b34}', to: '\u{b34}', },
-    Range { from: '\u{b35}', to: '\u{b39}', },
-    Range { from: '\u{b3a}', to: '\u{b3b}', },
-    Range { from: '\u{b3c}', to: '\u{b44}', },
-    Range { from: '\u{b45}', to: '\u{b46}', },
-    Range { from: '\u{b47}', to: '\u{b48}', },
-    Range { from: '\u{b49}', to: '\u{b4a}', },
-    Range { from: '\u{b4b}', to: '\u{b4d}', },
-    Range { from: '\u{b4e}', to: '\u{b54}', },
-    Range { from: '\u{b55}', to: '\u{b57}', },
-    Range { from: '\u{b58}', to: '\u{b5b}', },
-    Range { from: '\u{b5c}', to: '\u{b5e}', },
-    Range { from: '\u{b5f}', to: '\u{b63}', },
-    Range { from: '\u{b64}', to: '\u{b65}', },
-    Range { from: '\u{b66}', to: '\u{b6f}', },
-    Range { from: '\u{b70}', to: '\u{b71}', },
-    Range { from: '\u{b72}', to: '\u{b77}', },
-    Range { from: '\u{b78}', to: '\u{b81}', },
-    Range { from: '\u{b82}', to: '\u{b83}', },
-    Range { from: '\u{b84}', to: '\u{b84}', },
-    Range { from: '\u{b85}', to: '\u{b8a}', },
-    Range { from: '\u{b8b}', to: '\u{b8d}', },
-    Range { from: '\u{b8e}', to: '\u{b90}', },
-    Range { from: '\u{b91}', to: '\u{b91}', },
-    Range { from: '\u{b92}', to: '\u{b95}', },
-    Range { from: '\u{b96}', to: '\u{b98}', },
-    Range { from: '\u{b99}', to: '\u{b9a}', },
-    Range { from: '\u{b9b}', to: '\u{b9d}', },
-    Range { from: '\u{b9e}', to: '\u{b9f}', },
-    Range { from: '\u{ba0}', to: '\u{ba2}', },
-    Range { from: '\u{ba3}', to: '\u{ba4}', },
-    Range { from: '\u{ba5}', to: '\u{ba7}', },
-    Range { from: '\u{ba8}', to: '\u{baa}', },
-    Range { from: '\u{bab}', to: '\u{bad}', },
-    Range { from: '\u{bae}', to: '\u{bb9}', },
-    Range { from: '\u{bba}', to: '\u{bbd}', },
-    Range { from: '\u{bbe}', to: '\u{bc2}', },
-    Range { from: '\u{bc3}', to: '\u{bc5}', },
-    Range { from: '\u{bc6}', to: '\u{bc8}', },
-    Range { from: '\u{bc9}', to: '\u{bc9}', },
-    Range { from: '\u{bca}', to: '\u{bcd}', },
-    Range { from: '\u{bce}', to: '\u{bcf}', },
-    Range { from: '\u{bd0}', to: '\u{bd0}', },
-    Range { from: '\u{bd1}', to: '\u{bd6}', },
-    Range { from: '\u{bd7}', to: '\u{bd7}', },
-    Range { from: '\u{bd8}', to: '\u{be5}', },
-    Range { from: '\u{be6}', to: '\u{bef}', },
-    Range { from: '\u{bf0}', to: '\u{bfa}', },
-    Range { from: '\u{bfb}', to: '\u{bff}', },
-    Range { from: '\u{c00}', to: '\u{c0c}', },
-    Range { from: '\u{c0d}', to: '\u{c0d}', },
-    Range { from: '\u{c0e}', to: '\u{c10}', },
-    Range { from: '\u{c11}', to: '\u{c11}', },
-    Range { from: '\u{c12}', to: '\u{c28}', },
-    Range { from: '\u{c29}', to: '\u{c29}', },
-    Range { from: '\u{c2a}', to: '\u{c39}', },
-    Range { from: '\u{c3a}', to: '\u{c3c}', },
-    Range { from: '\u{c3d}', to: '\u{c44}', },
-    Range { from: '\u{c45}', to: '\u{c45}', },
-    Range { from: '\u{c46}', to: '\u{c48}', },
-    Range { from: '\u{c49}', to: '\u{c49}', },
-    Range { from: '\u{c4a}', to: '\u{c4d}', },
-    Range { from: '\u{c4e}', to: '\u{c54}', },
-    Range { from: '\u{c55}', to: '\u{c56}', },
-    Range { from: '\u{c57}', to: '\u{c57}', },
-    Range { from: '\u{c58}', to: '\u{c5a}', },
-    Range { from: '\u{c5b}', to: '\u{c5f}', },
-    Range { from: '\u{c60}', to: '\u{c63}', },
-    Range { from: '\u{c64}', to: '\u{c65}', },
-    Range { from: '\u{c66}', to: '\u{c6f}', },
-    Range { from: '\u{c70}', to: '\u{c76}', },
-    Range { from: '\u{c77}', to: '\u{c7f}', },
-    Range { from: '\u{c80}', to: '\u{c83}', },
-    Range { from: '\u{c84}', to: '\u{c84}', },
-    Range { from: '\u{c85}', to: '\u{c8c}', },
-    Range { from: '\u{c8d}', to: '\u{c8d}', },
-    Range { from: '\u{c8e}', to: '\u{c90}', },
-    Range { from: '\u{c91}', to: '\u{c91}', },
-    Range { from: '\u{c92}', to: '\u{ca8}', },
-    Range { from: '\u{ca9}', to: '\u{ca9}', },
-    Range { from: '\u{caa}', to: '\u{cb3}', },
-    Range { from: '\u{cb4}', to: '\u{cb4}', },
-    Range { from: '\u{cb5}', to: '\u{cb9}', },
-    Range { from: '\u{cba}', to: '\u{cbb}', },
-    Range { from: '\u{cbc}', to: '\u{cc4}', },
-    Range { from: '\u{cc5}', to: '\u{cc5}', },
-    Range { from: '\u{cc6}', to: '\u{cc8}', },
-    Range { from: '\u{cc9}', to: '\u{cc9}', },
-    Range { from: '\u{cca}', to: '\u{ccd}', },
-    Range { from: '\u{cce}', to: '\u{cd4}', },
-    Range { from: '\u{cd5}', to: '\u{cd6}', },
-    Range { from: '\u{cd7}', to: '\u{cdd}', },
-    Range { from: '\u{cde}', to: '\u{cdf}', },
-    Range { from: '\u{ce0}', to: '\u{ce3}', },
-    Range { from: '\u{ce4}', to: '\u{ce5}', },
-    Range { from: '\u{ce6}', to: '\u{cef}', },
-    Range { from: '\u{cf0}', to: '\u{cf0}', },
-    Range { from: '\u{cf1}', to: '\u{cf2}', },
-    Range { from: '\u{cf3}', to: '\u{cff}', },
-    Range { from: '\u{d00}', to: '\u{d0c}', },
-    Range { from: '\u{d0d}', to: '\u{d0d}', },
-    Range { from: '\u{d0e}', to: '\u{d10}', },
-    Range { from: '\u{d11}', to: '\u{d11}', },
-    Range { from: '\u{d12}', to: '\u{d44}', },
-    Range { from: '\u{d45}', to: '\u{d45}', },
-    Range { from: '\u{d46}', to: '\u{d48}', },
-    Range { from: '\u{d49}', to: '\u{d49}', },
-    Range { from: '\u{d4a}', to: '\u{d4e}', },
-    Range { from: '\u{d4f}', to: '\u{d4f}', },
-    Range { from: '\u{d50}', to: '\u{d53}', },
-    Range { from: '\u{d54}', to: '\u{d57}', },
-    Range { from: '\u{d58}', to: '\u{d5e}', },
-    Range { from: '\u{d5f}', to: '\u{d63}', },
-    Range { from: '\u{d64}', to: '\u{d65}', },
-    Range { from: '\u{d66}', to: '\u{d6f}', },
-    Range { from: '\u{d70}', to: '\u{d79}', },
-    Range { from: '\u{d7a}', to: '\u{d7f}', },
-    Range { from: '\u{d80}', to: '\u{d80}', },
-    Range { from: '\u{d81}', to: '\u{d83}', },
-    Range { from: '\u{d84}', to: '\u{d84}', },
-    Range { from: '\u{d85}', to: '\u{d96}', },
-    Range { from: '\u{d97}', to: '\u{d99}', },
-    Range { from: '\u{d9a}', to: '\u{db1}', },
-    Range { from: '\u{db2}', to: '\u{db2}', },
-    Range { from: '\u{db3}', to: '\u{dbb}', },
-    Range { from: '\u{dbc}', to: '\u{dbd}', },
-    Range { from: '\u{dbe}', to: '\u{dbf}', },
-    Range { from: '\u{dc0}', to: '\u{dc6}', },
-    Range { from: '\u{dc7}', to: '\u{dc9}', },
-    Range { from: '\u{dca}', to: '\u{dca}', },
-    Range { from: '\u{dcb}', to: '\u{dce}', },
-    Range { from: '\u{dcf}', to: '\u{dd4}', },
-    Range { from: '\u{dd5}', to: '\u{dd7}', },
-    Range { from: '\u{dd8}', to: '\u{ddf}', },
-    Range { from: '\u{de0}', to: '\u{de5}', },
-    Range { from: '\u{de6}', to: '\u{def}', },
-    Range { from: '\u{df0}', to: '\u{df1}', },
-    Range { from: '\u{df2}', to: '\u{df3}', },
-    Range { from: '\u{df4}', to: '\u{df4}', },
-    Range { from: '\u{df5}', to: '\u{e00}', },
-    Range { from: '\u{e01}', to: '\u{e32}', },
-    Range { from: '\u{e33}', to: '\u{e33}', },
-    Range { from: '\u{e34}', to: '\u{e3a}', },
-    Range { from: '\u{e3b}', to: '\u{e3e}', },
-    Range { from: '\u{e3f}', to: '\u{e3f}', },
-    Range { from: '\u{e40}', to: '\u{e4e}', },
-    Range { from: '\u{e4f}', to: '\u{e4f}', },
-    Range { from: '\u{e50}', to: '\u{e59}', },
-    Range { from: '\u{e5a}', to: '\u{e5b}', },
-    Range { from: '\u{e5c}', to: '\u{e80}', },
-    Range { from: '\u{e81}', to: '\u{e82}', },
-    Range { from: '\u{e83}', to: '\u{e85}', },
-    Range { from: '\u{e86}', to: '\u{e8a}', },
-    Range { from: '\u{e8b}', to: '\u{e8b}', },
-    Range { from: '\u{e8c}', to: '\u{ea3}', },
-    Range { from: '\u{ea4}', to: '\u{ea6}', },
-    Range { from: '\u{ea7}', to: '\u{eb2}', },
-    Range { from: '\u{eb3}', to: '\u{eb3}', },
-    Range { from: '\u{eb4}', to: '\u{ebd}', },
-    Range { from: '\u{ebe}', to: '\u{ebf}', },
-    Range { from: '\u{ec0}', to: '\u{ec4}', },
-    Range { from: '\u{ec5}', to: '\u{ec7}', },
-    Range { from: '\u{ec8}', to: '\u{ecd}', },
-    Range { from: '\u{ece}', to: '\u{ecf}', },
-    Range { from: '\u{ed0}', to: '\u{ed9}', },
-    Range { from: '\u{eda}', to: '\u{edb}', },
-    Range { from: '\u{edc}', to: '\u{edd}', },
-    Range { from: '\u{ede}', to: '\u{edf}', },
-    Range { from: '\u{ee0}', to: '\u{eff}', },
-    Range { from: '\u{f00}', to: '\u{f00}', },
-    Range { from: '\u{f01}', to: '\u{f0a}', },
-    Range { from: '\u{f0b}', to: '\u{f0c}', },
-    Range { from: '\u{f0d}', to: '\u{f17}', },
-    Range { from: '\u{f18}', to: '\u{f19}', },
-    Range { from: '\u{f1a}', to: '\u{f1f}', },
-    Range { from: '\u{f20}', to: '\u{f29}', },
-    Range { from: '\u{f2a}', to: '\u{f34}', },
-    Range { from: '\u{f35}', to: '\u{f39}', },
-    Range { from: '\u{f3a}', to: '\u{f3d}', },
-    Range { from: '\u{f3e}', to: '\u{f42}', },
-    Range { from: '\u{f43}', to: '\u{f43}', },
-    Range { from: '\u{f44}', to: '\u{f47}', },
-    Range { from: '\u{f48}', to: '\u{f48}', },
-    Range { from: '\u{f49}', to: '\u{f4c}', },
-    Range { from: '\u{f4d}', to: '\u{f4d}', },
-    Range { from: '\u{f4e}', to: '\u{f51}', },
-    Range { from: '\u{f52}', to: '\u{f52}', },
-    Range { from: '\u{f53}', to: '\u{f56}', },
-    Range { from: '\u{f57}', to: '\u{f57}', },
-    Range { from: '\u{f58}', to: '\u{f5b}', },
-    Range { from: '\u{f5c}', to: '\u{f5c}', },
-    Range { from: '\u{f5d}', to: '\u{f68}', },
-    Range { from: '\u{f69}', to: '\u{f69}', },
-    Range { from: '\u{f6a}', to: '\u{f6c}', },
-    Range { from: '\u{f6d}', to: '\u{f70}', },
-    Range { from: '\u{f71}', to: '\u{f72}', },
-    Range { from: '\u{f73}', to: '\u{f79}', },
-    Range { from: '\u{f7a}', to: '\u{f80}', },
-    Range { from: '\u{f81}', to: '\u{f81}', },
-    Range { from: '\u{f82}', to: '\u{f84}', },
-    Range { from: '\u{f85}', to: '\u{f85}', },
-    Range { from: '\u{f86}', to: '\u{f92}', },
-    Range { from: '\u{f93}', to: '\u{f93}', },
-    Range { from: '\u{f94}', to: '\u{f97}', },
-    Range { from: '\u{f98}', to: '\u{f98}', },
-    Range { from: '\u{f99}', to: '\u{f9c}', },
-    Range { from: '\u{f9d}', to: '\u{f9d}', },
-    Range { from: '\u{f9e}', to: '\u{fa1}', },
-    Range { from: '\u{fa2}', to: '\u{fa2}', },
-    Range { from: '\u{fa3}', to: '\u{fa6}', },
-    Range { from: '\u{fa7}', to: '\u{fa7}', },
-    Range { from: '\u{fa8}', to: '\u{fab}', },
-    Range { from: '\u{fac}', to: '\u{fac}', },
-    Range { from: '\u{fad}', to: '\u{fb8}', },
-    Range { from: '\u{fb9}', to: '\u{fb9}', },
-    Range { from: '\u{fba}', to: '\u{fbc}', },
-    Range { from: '\u{fbd}', to: '\u{fbd}', },
-    Range { from: '\u{fbe}', to: '\u{fc5}', },
-    Range { from: '\u{fc6}', to: '\u{fc6}', },
-    Range { from: '\u{fc7}', to: '\u{fcc}', },
-    Range { from: '\u{fcd}', to: '\u{fcd}', },
-    Range { from: '\u{fce}', to: '\u{fda}', },
-    Range { from: '\u{fdb}', to: '\u{fff}', },
-    Range { from: '\u{1000}', to: '\u{1049}', },
-    Range { from: '\u{104a}', to: '\u{104f}', },
-    Range { from: '\u{1050}', to: '\u{109d}', },
-    Range { from: '\u{109e}', to: '\u{109f}', },
-    Range { from: '\u{10a0}', to: '\u{10c6}', },
-    Range { from: '\u{10c7}', to: '\u{10c7}', },
-    Range { from: '\u{10c8}', to: '\u{10cc}', },
-    Range { from: '\u{10cd}', to: '\u{10cd}', },
-    Range { from: '\u{10ce}', to: '\u{10cf}', },
-    Range { from: '\u{10d0}', to: '\u{10fa}', },
-    Range { from: '\u{10fb}', to: '\u{10fc}', },
-    Range { from: '\u{10fd}', to: '\u{10ff}', },
-    Range { from: '\u{1100}', to: '\u{115e}', },
-    Range { from: '\u{115f}', to: '\u{1160}', },
-    Range { from: '\u{1161}', to: '\u{11ff}', },
-    Range { from: '\u{1200}', to: '\u{1248}', },
-    Range { from: '\u{1249}', to: '\u{1249}', },
-    Range { from: '\u{124a}', to: '\u{124d}', },
-    Range { from: '\u{124e}', to: '\u{124f}', },
-    Range { from: '\u{1250}', to: '\u{1256}', },
-    Range { from: '\u{1257}', to: '\u{1259}', },
-    Range { from: '\u{125a}', to: '\u{125d}', },
-    Range { from: '\u{125e}', to: '\u{125f}', },
-    Range { from: '\u{1260}', to: '\u{1288}', },
-    Range { from: '\u{1289}', to: '\u{1289}', },
-    Range { from: '\u{128a}', to: '\u{128d}', },
-    Range { from: '\u{128e}', to: '\u{128f}', },
-    Range { from: '\u{1290}', to: '\u{12b0}', },
-    Range { from: '\u{12b1}', to: '\u{12b1}', },
-    Range { from: '\u{12b2}', to: '\u{12b5}', },
-    Range { from: '\u{12b6}', to: '\u{12b7}', },
-    Range { from: '\u{12b8}', to: '\u{12be}', },
-    Range { from: '\u{12bf}', to: '\u{12c1}', },
-    Range { from: '\u{12c2}', to: '\u{12c5}', },
-    Range { from: '\u{12c6}', to: '\u{12c7}', },
-    Range { from: '\u{12c8}', to: '\u{12d6}', },
-    Range { from: '\u{12d7}', to: '\u{12d7}', },
-    Range { from: '\u{12d8}', to: '\u{1310}', },
-    Range { from: '\u{1311}', to: '\u{1311}', },
-    Range { from: '\u{1312}', to: '\u{1315}', },
-    Range { from: '\u{1316}', to: '\u{1317}', },
-    Range { from: '\u{1318}', to: '\u{135a}', },
-    Range { from: '\u{135b}', to: '\u{135c}', },
-    Range { from: '\u{135d}', to: '\u{135f}', },
-    Range { from: '\u{1360}', to: '\u{137c}', },
-    Range { from: '\u{137d}', to: '\u{137f}', },
-    Range { from: '\u{1380}', to: '\u{138f}', },
-    Range { from: '\u{1390}', to: '\u{1399}', },
-    Range { from: '\u{139a}', to: '\u{139f}', },
-    Range { from: '\u{13a0}', to: '\u{13f5}', },
-    Range { from: '\u{13f6}', to: '\u{13f7}', },
-    Range { from: '\u{13f8}', to: '\u{13fd}', },
-    Range { from: '\u{13fe}', to: '\u{13ff}', },
-    Range { from: '\u{1400}', to: '\u{1400}', },
-    Range { from: '\u{1401}', to: '\u{166c}', },
-    Range { from: '\u{166d}', to: '\u{166e}', },
-    Range { from: '\u{166f}', to: '\u{167f}', },
-    Range { from: '\u{1680}', to: '\u{1680}', },
-    Range { from: '\u{1681}', to: '\u{169a}', },
-    Range { from: '\u{169b}', to: '\u{169c}', },
-    Range { from: '\u{169d}', to: '\u{169f}', },
-    Range { from: '\u{16a0}', to: '\u{16ea}', },
-    Range { from: '\u{16eb}', to: '\u{16f0}', },
-    Range { from: '\u{16f1}', to: '\u{16f8}', },
-    Range { from: '\u{16f9}', to: '\u{16ff}', },
-    Range { from: '\u{1700}', to: '\u{170c}', },
-    Range { from: '\u{170d}', to: '\u{170d}', },
-    Range { from: '\u{170e}', to: '\u{1714}', },
-    Range { from: '\u{1715}', to: '\u{171f}', },
-    Range { from: '\u{1720}', to: '\u{1734}', },
-    Range { from: '\u{1735}', to: '\u{1736}', },
-    Range { from: '\u{1737}', to: '\u{173f}', },
-    Range { from: '\u{1740}', to: '\u{1753}', },
-    Range { from: '\u{1754}', to: '\u{175f}', },
-    Range { from: '\u{1760}', to: '\u{176c}', },
-    Range { from: '\u{176d}', to: '\u{176d}', },
-    Range { from: '\u{176e}', to: '\u{1770}', },
-    Range { from: '\u{1771}', to: '\u{1771}', },
-    Range { from: '\u{1772}', to: '\u{1773}', },
-    Range { from: '\u{1774}', to: '\u{177f}', },
-    Range { from: '\u{1780}', to: '\u{17b3}', },
-    Range { from: '\u{17b4}', to: '\u{17b5}', },
-    Range { from: '\u{17b6}', to: '\u{17d3}', },
-    Range { from: '\u{17d4}', to: '\u{17d6}', },
-    Range { from: '\u{17d7}', to: '\u{17d7}', },
-    Range { from: '\u{17d8}', to: '\u{17db}', },
-    Range { from: '\u{17dc}', to: '\u{17dd}', },
-    Range { from: '\u{17de}', to: '\u{17df}', },
-    Range { from: '\u{17e0}', to: '\u{17e9}', },
-    Range { from: '\u{17ea}', to: '\u{17ef}', },
-    Range { from: '\u{17f0}', to: '\u{17f9}', },
-    Range { from: '\u{17fa}', to: '\u{17ff}', },
-    Range { from: '\u{1800}', to: '\u{1805}', },
-    Range { from: '\u{1806}', to: '\u{1806}', },
-    Range { from: '\u{1807}', to: '\u{180a}', },
-    Range { from: '\u{180b}', to: '\u{180d}', },
-    Range { from: '\u{180e}', to: '\u{180f}', },
-    Range { from: '\u{1810}', to: '\u{1819}', },
-    Range { from: '\u{181a}', to: '\u{181f}', },
-    Range { from: '\u{1820}', to: '\u{1878}', },
-    Range { from: '\u{1879}', to: '\u{187f}', },
-    Range { from: '\u{1880}', to: '\u{18aa}', },
-    Range { from: '\u{18ab}', to: '\u{18af}', },
-    Range { from: '\u{18b0}', to: '\u{18f5}', },
-    Range { from: '\u{18f6}', to: '\u{18ff}', },
-    Range { from: '\u{1900}', to: '\u{191e}', },
-    Range { from: '\u{191f}', to: '\u{191f}', },
-    Range { from: '\u{1920}', to: '\u{192b}', },
-    Range { from: '\u{192c}', to: '\u{192f}', },
-    Range { from: '\u{1930}', to: '\u{193b}', },
-    Range { from: '\u{193c}', to: '\u{193f}', },
-    Range { from: '\u{1940}', to: '\u{1940}', },
-    Range { from: '\u{1941}', to: '\u{1943}', },
-    Range { from: '\u{1944}', to: '\u{1945}', },
-    Range { from: '\u{1946}', to: '\u{196d}', },
-    Range { from: '\u{196e}', to: '\u{196f}', },
-    Range { from: '\u{1970}', to: '\u{1974}', },
-    Range { from: '\u{1975}', to: '\u{197f}', },
-    Range { from: '\u{1980}', to: '\u{19ab}', },
-    Range { from: '\u{19ac}', to: '\u{19af}', },
-    Range { from: '\u{19b0}', to: '\u{19c9}', },
-    Range { from: '\u{19ca}', to: '\u{19cf}', },
-    Range { from: '\u{19d0}', to: '\u{19d9}', },
-    Range { from: '\u{19da}', to: '\u{19da}', },
-    Range { from: '\u{19db}', to: '\u{19dd}', },
-    Range { from: '\u{19de}', to: '\u{19ff}', },
-    Range { from: '\u{1a00}', to: '\u{1a1b}', },
-    Range { from: '\u{1a1c}', to: '\u{1a1d}', },
-    Range { from: '\u{1a1e}', to: '\u{1a1f}', },
-    Range { from: '\u{1a20}', to: '\u{1a5e}', },
-    Range { from: '\u{1a5f}', to: '\u{1a5f}', },
-    Range { from: '\u{1a60}', to: '\u{1a7c}', },
-    Range { from: '\u{1a7d}', to: '\u{1a7e}', },
-    Range { from: '\u{1a7f}', to: '\u{1a89}', },
-    Range { from: '\u{1a8a}', to: '\u{1a8f}', },
-    Range { from: '\u{1a90}', to: '\u{1a99}', },
-    Range { from: '\u{1a9a}', to: '\u{1a9f}', },
-    Range { from: '\u{1aa0}', to: '\u{1aa6}', },
-    Range { from: '\u{1aa7}', to: '\u{1aa7}', },
-    Range { from: '\u{1aa8}', to: '\u{1aad}', },
-    Range { from: '\u{1aae}', to: '\u{1aaf}', },
-    Range { from: '\u{1ab0}', to: '\u{1abd}', },
-    Range { from: '\u{1abe}', to: '\u{1abe}', },
-    Range { from: '\u{1abf}', to: '\u{1ac0}', },
-    Range { from: '\u{1ac1}', to: '\u{1aff}', },
-    Range { from: '\u{1b00}', to: '\u{1b4b}', },
-    Range { from: '\u{1b4c}', to: '\u{1b4f}', },
-    Range { from: '\u{1b50}', to: '\u{1b59}', },
-    Range { from: '\u{1b5a}', to: '\u{1b6a}', },
-    Range { from: '\u{1b6b}', to: '\u{1b73}', },
-    Range { from: '\u{1b74}', to: '\u{1b7c}', },
-    Range { from: '\u{1b7d}', to: '\u{1b7f}', },
-    Range { from: '\u{1b80}', to: '\u{1bf3}', },
-    Range { from: '\u{1bf4}', to: '\u{1bfb}', },
-    Range { from: '\u{1bfc}', to: '\u{1bff}', },
-    Range { from: '\u{1c00}', to: '\u{1c37}', },
-    Range { from: '\u{1c38}', to: '\u{1c3a}', },
-    Range { from: '\u{1c3b}', to: '\u{1c3f}', },
-    Range { from: '\u{1c40}', to: '\u{1c49}', },
-    Range { from: '\u{1c4a}', to: '\u{1c4c}', },
-    Range { from: '\u{1c4d}', to: '\u{1c7d}', },
-    Range { from: '\u{1c7e}', to: '\u{1c7f}', },
-    Range { from: '\u{1c80}', to: '\u{1c83}', },
-    Range { from: '\u{1c84}', to: '\u{1c85}', },
-    Range { from: '\u{1c86}', to: '\u{1c88}', },
-    Range { from: '\u{1c89}', to: '\u{1c8f}', },
-    Range { from: '\u{1c90}', to: '\u{1cba}', },
-    Range { from: '\u{1cbb}', to: '\u{1cbc}', },
-    Range { from: '\u{1cbd}', to: '\u{1cbf}', },
-    Range { from: '\u{1cc0}', to: '\u{1cc7}', },
-    Range { from: '\u{1cc8}', to: '\u{1ccf}', },
-    Range { from: '\u{1cd0}', to: '\u{1cd2}', },
-    Range { from: '\u{1cd3}', to: '\u{1cd3}', },
-    Range { from: '\u{1cd4}', to: '\u{1cfa}', },
-    Range { from: '\u{1cfb}', to: '\u{1cff}', },
-    Range { from: '\u{1d00}', to: '\u{1d2b}', },
-    Range { from: '\u{1d2c}', to: '\u{1d6a}', },
-    Range { from: '\u{1d6b}', to: '\u{1d77}', },
-    Range { from: '\u{1d78}', to: '\u{1d78}', },
-    Range { from: '\u{1d79}', to: '\u{1d9a}', },
-    Range { from: '\u{1d9b}', to: '\u{1dbf}', },
-    Range { from: '\u{1dc0}', to: '\u{1df9}', },
-    Range { from: '\u{1dfa}', to: '\u{1dfa}', },
-    Range { from: '\u{1dfb}', to: '\u{1dff}', },
-    Range { from: '\u{1e00}', to: '\u{1e94}', },
-    Range { from: '\u{1e95}', to: '\u{1e99}', },
-    Range { from: '\u{1e9a}', to: '\u{1e9b}', },
-    Range { from: '\u{1e9c}', to: '\u{1e9d}', },
-    Range { from: '\u{1e9e}', to: '\u{1efe}', },
-    Range { from: '\u{1eff}', to: '\u{1f07}', },
-    Range { from: '\u{1f08}', to: '\u{1f0f}', },
-    Range { from: '\u{1f10}', to: '\u{1f15}', },
-    Range { from: '\u{1f16}', to: '\u{1f17}', },
-    Range { from: '\u{1f18}', to: '\u{1f1d}', },
-    Range { from: '\u{1f1e}', to: '\u{1f1f}', },
-    Range { from: '\u{1f20}', to: '\u{1f27}', },
-    Range { from: '\u{1f28}', to: '\u{1f2f}', },
-    Range { from: '\u{1f30}', to: '\u{1f37}', },
-    Range { from: '\u{1f38}', to: '\u{1f3f}', },
-    Range { from: '\u{1f40}', to: '\u{1f45}', },
-    Range { from: '\u{1f46}', to: '\u{1f47}', },
-    Range { from: '\u{1f48}', to: '\u{1f4d}', },
-    Range { from: '\u{1f4e}', to: '\u{1f4f}', },
-    Range { from: '\u{1f50}', to: '\u{1f57}', },
-    Range { from: '\u{1f58}', to: '\u{1f5f}', },
-    Range { from: '\u{1f60}', to: '\u{1f67}', },
-    Range { from: '\u{1f68}', to: '\u{1f7d}', },
-    Range { from: '\u{1f7e}', to: '\u{1f7f}', },
-    Range { from: '\u{1f80}', to: '\u{1faf}', },
-    Range { from: '\u{1fb0}', to: '\u{1fb1}', },
-    Range { from: '\u{1fb2}', to: '\u{1fcf}', },
-    Range { from: '\u{1fd0}', to: '\u{1fd2}', },
-    Range { from: '\u{1fd3}', to: '\u{1fd3}', },
-    Range { from: '\u{1fd4}', to: '\u{1fd5}', },
-    Range { from: '\u{1fd6}', to: '\u{1fd7}', },
-    Range { from: '\u{1fd8}', to: '\u{1fdf}', },
-    Range { from: '\u{1fe0}', to: '\u{1fe2}', },
-    Range { from: '\u{1fe3}', to: '\u{1fe3}', },
-    Range { from: '\u{1fe4}', to: '\u{1fe7}', },
-    Range { from: '\u{1fe8}', to: '\u{1fef}', },
-    Range { from: '\u{1ff0}', to: '\u{1ff1}', },
-    Range { from: '\u{1ff2}', to: '\u{1fff}', },
-    Range { from: '\u{2000}', to: '\u{200a}', },
-    Range { from: '\u{200b}', to: '\u{200b}', },
-    Range { from: '\u{200c}', to: '\u{200d}', },
-    Range { from: '\u{200e}', to: '\u{200f}', },
-    Range { from: '\u{2010}', to: '\u{2011}', },
-    Range { from: '\u{2012}', to: '\u{2016}', },
-    Range { from: '\u{2017}', to: '\u{2017}', },
-    Range { from: '\u{2018}', to: '\u{2023}', },
-    Range { from: '\u{2024}', to: '\u{2026}', },
-    Range { from: '\u{2027}', to: '\u{2027}', },
-    Range { from: '\u{2028}', to: '\u{202e}', },
-    Range { from: '\u{202f}', to: '\u{202f}', },
-    Range { from: '\u{2030}', to: '\u{2032}', },
-    Range { from: '\u{2033}', to: '\u{2037}', },
-    Range { from: '\u{2038}', to: '\u{203b}', },
-    Range { from: '\u{203c}', to: '\u{203e}', },
-    Range { from: '\u{203f}', to: '\u{2046}', },
-    Range { from: '\u{2047}', to: '\u{2049}', },
-    Range { from: '\u{204a}', to: '\u{2056}', },
-    Range { from: '\u{2057}', to: '\u{2057}', },
-    Range { from: '\u{2058}', to: '\u{205e}', },
-    Range { from: '\u{205f}', to: '\u{2060}', },
-    Range { from: '\u{2061}', to: '\u{2063}', },
-    Range { from: '\u{2064}', to: '\u{2064}', },
-    Range { from: '\u{2065}', to: '\u{206f}', },
-    Range { from: '\u{2070}', to: '\u{2071}', },
-    Range { from: '\u{2072}', to: '\u{2073}', },
-    Range { from: '\u{2074}', to: '\u{209c}', },
-    Range { from: '\u{209d}', to: '\u{209f}', },
-    Range { from: '\u{20a0}', to: '\u{20a7}', },
-    Range { from: '\u{20a8}', to: '\u{20a8}', },
-    Range { from: '\u{20a9}', to: '\u{20bf}', },
-    Range { from: '\u{20c0}', to: '\u{20cf}', },
-    Range { from: '\u{20d0}', to: '\u{20f0}', },
-    Range { from: '\u{20f1}', to: '\u{20ff}', },
-    Range { from: '\u{2100}', to: '\u{210a}', },
-    Range { from: '\u{210b}', to: '\u{210e}', },
-    Range { from: '\u{210f}', to: '\u{210f}', },
-    Range { from: '\u{2110}', to: '\u{2111}', },
-    Range { from: '\u{2112}', to: '\u{2113}', },
-    Range { from: '\u{2114}', to: '\u{2116}', },
-    Range { from: '\u{2117}', to: '\u{2118}', },
-    Range { from: '\u{2119}', to: '\u{211a}', },
-    Range { from: '\u{211b}', to: '\u{211d}', },
-    Range { from: '\u{211e}', to: '\u{211f}', },
-    Range { from: '\u{2120}', to: '\u{212e}', },
-    Range { from: '\u{212f}', to: '\u{2130}', },
-    Range { from: '\u{2131}', to: '\u{213c}', },
-    Range { from: '\u{213d}', to: '\u{213e}', },
-    Range { from: '\u{213f}', to: '\u{2140}', },
-    Range { from: '\u{2141}', to: '\u{2144}', },
-    Range { from: '\u{2145}', to: '\u{2146}', },
-    Range { from: '\u{2147}', to: '\u{2149}', },
-    Range { from: '\u{214a}', to: '\u{214d}', },
-    Range { from: '\u{214e}', to: '\u{217f}', },
-    Range { from: '\u{2180}', to: '\u{2182}', },
-    Range { from: '\u{2183}', to: '\u{2184}', },
-    Range { from: '\u{2185}', to: '\u{2188}', },
-    Range { from: '\u{2189}', to: '\u{2189}', },
-    Range { from: '\u{218a}', to: '\u{218b}', },
-    Range { from: '\u{218c}', to: '\u{218f}', },
-    Range { from: '\u{2190}', to: '\u{222b}', },
-    Range { from: '\u{222c}', to: '\u{2230}', },
-    Range { from: '\u{2231}', to: '\u{225f}', },
-    Range { from: '\u{2260}', to: '\u{2260}', },
-    Range { from: '\u{2261}', to: '\u{226d}', },
-    Range { from: '\u{226e}', to: '\u{226f}', },
-    Range { from: '\u{2270}', to: '\u{2328}', },
-    Range { from: '\u{2329}', to: '\u{232a}', },
-    Range { from: '\u{232b}', to: '\u{2426}', },
-    Range { from: '\u{2427}', to: '\u{243f}', },
-    Range { from: '\u{2440}', to: '\u{244a}', },
-    Range { from: '\u{244b}', to: '\u{245f}', },
-    Range { from: '\u{2460}', to: '\u{2487}', },
-    Range { from: '\u{2488}', to: '\u{249b}', },
-    Range { from: '\u{249c}', to: '\u{24ea}', },
-    Range { from: '\u{24eb}', to: '\u{2a0b}', },
-    Range { from: '\u{2a0c}', to: '\u{2a0c}', },
-    Range { from: '\u{2a0d}', to: '\u{2a73}', },
-    Range { from: '\u{2a74}', to: '\u{2a76}', },
-    Range { from: '\u{2a77}', to: '\u{2adb}', },
-    Range { from: '\u{2adc}', to: '\u{2adc}', },
-    Range { from: '\u{2add}', to: '\u{2b73}', },
-    Range { from: '\u{2b74}', to: '\u{2b75}', },
-    Range { from: '\u{2b76}', to: '\u{2b95}', },
-    Range { from: '\u{2b96}', to: '\u{2b96}', },
-    Range { from: '\u{2b97}', to: '\u{2bff}', },
-    Range { from: '\u{2c00}', to: '\u{2c2f}', },
-    Range { from: '\u{2c30}', to: '\u{2c5e}', },
-    Range { from: '\u{2c5f}', to: '\u{2c64}', },
-    Range { from: '\u{2c65}', to: '\u{2c66}', },
-    Range { from: '\u{2c67}', to: '\u{2c72}', },
-    Range { from: '\u{2c73}', to: '\u{2c74}', },
-    Range { from: '\u{2c75}', to: '\u{2c75}', },
-    Range { from: '\u{2c76}', to: '\u{2c7b}', },
-    Range { from: '\u{2c7c}', to: '\u{2ce2}', },
-    Range { from: '\u{2ce3}', to: '\u{2ce4}', },
-    Range { from: '\u{2ce5}', to: '\u{2cea}', },
-    Range { from: '\u{2ceb}', to: '\u{2ced}', },
-    Range { from: '\u{2cee}', to: '\u{2cf1}', },
-    Range { from: '\u{2cf2}', to: '\u{2cf3}', },
-    Range { from: '\u{2cf4}', to: '\u{2cf8}', },
-    Range { from: '\u{2cf9}', to: '\u{2cff}', },
-    Range { from: '\u{2d00}', to: '\u{2d25}', },
-    Range { from: '\u{2d26}', to: '\u{2d27}', },
-    Range { from: '\u{2d28}', to: '\u{2d2c}', },
-    Range { from: '\u{2d2d}', to: '\u{2d2d}', },
-    Range { from: '\u{2d2e}', to: '\u{2d2f}', },
-    Range { from: '\u{2d30}', to: '\u{2d67}', },
-    Range { from: '\u{2d68}', to: '\u{2d6e}', },
-    Range { from: '\u{2d6f}', to: '\u{2d70}', },
-    Range { from: '\u{2d71}', to: '\u{2d7e}', },
-    Range { from: '\u{2d7f}', to: '\u{2d96}', },
-    Range { from: '\u{2d97}', to: '\u{2d9f}', },
-    Range { from: '\u{2da0}', to: '\u{2da6}', },
-    Range { from: '\u{2da7}', to: '\u{2da7}', },
-    Range { from: '\u{2da8}', to: '\u{2dae}', },
-    Range { from: '\u{2daf}', to: '\u{2daf}', },
-    Range { from: '\u{2db0}', to: '\u{2db6}', },
-    Range { from: '\u{2db7}', to: '\u{2db7}', },
-    Range { from: '\u{2db8}', to: '\u{2dbe}', },
-    Range { from: '\u{2dbf}', to: '\u{2dbf}', },
-    Range { from: '\u{2dc0}', to: '\u{2dc6}', },
-    Range { from: '\u{2dc7}', to: '\u{2dc7}', },
-    Range { from: '\u{2dc8}', to: '\u{2dce}', },
-    Range { from: '\u{2dcf}', to: '\u{2dcf}', },
-    Range { from: '\u{2dd0}', to: '\u{2dd6}', },
-    Range { from: '\u{2dd7}', to: '\u{2dd7}', },
-    Range { from: '\u{2dd8}', to: '\u{2dde}', },
-    Range { from: '\u{2ddf}', to: '\u{2ddf}', },
-    Range { from: '\u{2de0}', to: '\u{2dff}', },
-    Range { from: '\u{2e00}', to: '\u{2e2e}', },
-    Range { from: '\u{2e2f}', to: '\u{2e2f}', },
-    Range { from: '\u{2e30}', to: '\u{2e52}', },
-    Range { from: '\u{2e53}', to: '\u{2e7f}', },
-    Range { from: '\u{2e80}', to: '\u{2e99}', },
-    Range { from: '\u{2e9a}', to: '\u{2e9a}', },
-    Range { from: '\u{2e9b}', to: '\u{2e9e}', },
-    Range { from: '\u{2e9f}', to: '\u{2e9f}', },
-    Range { from: '\u{2ea0}', to: '\u{2ef2}', },
-    Range { from: '\u{2ef3}', to: '\u{2ef3}', },
-    Range { from: '\u{2ef4}', to: '\u{2eff}', },
-    Range { from: '\u{2f00}', to: '\u{2fd5}', },
-    Range { from: '\u{2fd6}', to: '\u{2fff}', },
-    Range { from: '\u{3000}', to: '\u{3002}', },
-    Range { from: '\u{3003}', to: '\u{3004}', },
-    Range { from: '\u{3005}', to: '\u{3007}', },
-    Range { from: '\u{3008}', to: '\u{3029}', },
-    Range { from: '\u{302a}', to: '\u{302d}', },
-    Range { from: '\u{302e}', to: '\u{3035}', },
-    Range { from: '\u{3036}', to: '\u{303c}', },
-    Range { from: '\u{303d}', to: '\u{303f}', },
-    Range { from: '\u{3040}', to: '\u{3040}', },
-    Range { from: '\u{3041}', to: '\u{3096}', },
-    Range { from: '\u{3097}', to: '\u{3098}', },
-    Range { from: '\u{3099}', to: '\u{309a}', },
-    Range { from: '\u{309b}', to: '\u{309c}', },
-    Range { from: '\u{309d}', to: '\u{309e}', },
-    Range { from: '\u{309f}', to: '\u{30a0}', },
-    Range { from: '\u{30a1}', to: '\u{30fe}', },
-    Range { from: '\u{30ff}', to: '\u{30ff}', },
-    Range { from: '\u{3100}', to: '\u{3104}', },
-    Range { from: '\u{3105}', to: '\u{312f}', },
-    Range { from: '\u{3130}', to: '\u{318f}', },
-    Range { from: '\u{3190}', to: '\u{3191}', },
-    Range { from: '\u{3192}', to: '\u{319f}', },
-    Range { from: '\u{31a0}', to: '\u{31bf}', },
-    Range { from: '\u{31c0}', to: '\u{31e3}', },
-    Range { from: '\u{31e4}', to: '\u{31ef}', },
-    Range { from: '\u{31f0}', to: '\u{31ff}', },
-    Range { from: '\u{3200}', to: '\u{3247}', },
-    Range { from: '\u{3248}', to: '\u{324f}', },
-    Range { from: '\u{3250}', to: '\u{33ff}', },
-    Range { from: '\u{3400}', to: '\u{4dbf}', },
-    Range { from: '\u{4dc0}', to: '\u{4dff}', },
-    Range { from: '\u{4e00}', to: '\u{9ffc}', },
-    Range { from: '\u{9ffd}', to: '\u{9fff}', },
-    Range { from: '\u{a000}', to: '\u{a48c}', },
-    Range { from: '\u{a48d}', to: '\u{a48f}', },
-    Range { from: '\u{a490}', to: '\u{a4c6}', },
-    Range { from: '\u{a4c7}', to: '\u{a4cf}', },
-    Range { from: '\u{a4d0}', to: '\u{a4fd}', },
-    Range { from: '\u{a4fe}', to: '\u{a4ff}', },
-    Range { from: '\u{a500}', to: '\u{a60c}', },
-    Range { from: '\u{a60d}', to: '\u{a60f}', },
-    Range { from: '\u{a610}', to: '\u{a62b}', },
-    Range { from: '\u{a62c}', to: '\u{a63f}', },
-    Range { from: '\u{a640}', to: '\u{a66c}', },
-    Range { from: '\u{a66d}', to: '\u{a66f}', },
-    Range { from: '\u{a670}', to: '\u{a673}', },
-    Range { from: '\u{a674}', to: '\u{a67d}', },
-    Range { from: '\u{a67e}', to: '\u{a69d}', },
-    Range { from: '\u{a69e}', to: '\u{a6e5}', },
-    Range { from: '\u{a6e6}', to: '\u{a6ef}', },
-    Range { from: '\u{a6f0}', to: '\u{a6f1}', },
-    Range { from: '\u{a6f2}', to: '\u{a6f7}', },
-    Range { from: '\u{a6f8}', to: '\u{a6ff}', },
-    Range { from: '\u{a700}', to: '\u{a716}', },
-    Range { from: '\u{a717}', to: '\u{a71f}', },
-    Range { from: '\u{a720}', to: '\u{a721}', },
-    Range { from: '\u{a722}', to: '\u{a72e}', },
-    Range { from: '\u{a72f}', to: '\u{a731}', },
-    Range { from: '\u{a732}', to: '\u{a770}', },
-    Range { from: '\u{a771}', to: '\u{a778}', },
-    Range { from: '\u{a779}', to: '\u{a786}', },
-    Range { from: '\u{a787}', to: '\u{a788}', },
-    Range { from: '\u{a789}', to: '\u{a78a}', },
-    Range { from: '\u{a78b}', to: '\u{a78d}', },
-    Range { from: '\u{a78e}', to: '\u{a78f}', },
-    Range { from: '\u{a790}', to: '\u{a792}', },
-    Range { from: '\u{a793}', to: '\u{a795}', },
-    Range { from: '\u{a796}', to: '\u{a7bf}', },
-    Range { from: '\u{a7c0}', to: '\u{a7c1}', },
-    Range { from: '\u{a7c2}', to: '\u{a7ca}', },
-    Range { from: '\u{a7cb}', to: '\u{a7f4}', },
-    Range { from: '\u{a7f5}', to: '\u{a7f5}', },
-    Range { from: '\u{a7f6}', to: '\u{a7f7}', },
-    Range { from: '\u{a7f8}', to: '\u{a7f9}', },
-    Range { from: '\u{a7fa}', to: '\u{a827}', },
-    Range { from: '\u{a828}', to: '\u{a82b}', },
-    Range { from: '\u{a82c}', to: '\u{a82c}', },
-    Range { from: '\u{a82d}', to: '\u{a82f}', },
-    Range { from: '\u{a830}', to: '\u{a839}', },
-    Range { from: '\u{a83a}', to: '\u{a83f}', },
-    Range { from: '\u{a840}', to: '\u{a873}', },
-    Range { from: '\u{a874}', to: '\u{a877}', },
-    Range { from: '\u{a878}', to: '\u{a87f}', },
-    Range { from: '\u{a880}', to: '\u{a8c5}', },
-    Range { from: '\u{a8c6}', to: '\u{a8cd}', },
-    Range { from: '\u{a8ce}', to: '\u{a8cf}', },
-    Range { from: '\u{a8d0}', to: '\u{a8d9}', },
-    Range { from: '\u{a8da}', to: '\u{a8df}', },
-    Range { from: '\u{a8e0}', to: '\u{a8f7}', },
-    Range { from: '\u{a8f8}', to: '\u{a8fa}', },
-    Range { from: '\u{a8fb}', to: '\u{a8fc}', },
-    Range { from: '\u{a8fd}', to: '\u{a92d}', },
-    Range { from: '\u{a92e}', to: '\u{a92f}', },
-    Range { from: '\u{a930}', to: '\u{a953}', },
-    Range { from: '\u{a954}', to: '\u{a95e}', },
-    Range { from: '\u{a95f}', to: '\u{a97c}', },
-    Range { from: '\u{a97d}', to: '\u{a97f}', },
-    Range { from: '\u{a980}', to: '\u{a9c0}', },
-    Range { from: '\u{a9c1}', to: '\u{a9cd}', },
-    Range { from: '\u{a9ce}', to: '\u{a9ce}', },
-    Range { from: '\u{a9cf}', to: '\u{a9d9}', },
-    Range { from: '\u{a9da}', to: '\u{a9dd}', },
-    Range { from: '\u{a9de}', to: '\u{a9df}', },
-    Range { from: '\u{a9e0}', to: '\u{a9fe}', },
-    Range { from: '\u{a9ff}', to: '\u{a9ff}', },
-    Range { from: '\u{aa00}', to: '\u{aa36}', },
-    Range { from: '\u{aa37}', to: '\u{aa3f}', },
-    Range { from: '\u{aa40}', to: '\u{aa4d}', },
-    Range { from: '\u{aa4e}', to: '\u{aa4f}', },
-    Range { from: '\u{aa50}', to: '\u{aa59}', },
-    Range { from: '\u{aa5a}', to: '\u{aa5b}', },
-    Range { from: '\u{aa5c}', to: '\u{aa5f}', },
-    Range { from: '\u{aa60}', to: '\u{aa76}', },
-    Range { from: '\u{aa77}', to: '\u{aa79}', },
-    Range { from: '\u{aa7a}', to: '\u{aac2}', },
-    Range { from: '\u{aac3}', to: '\u{aada}', },
-    Range { from: '\u{aadb}', to: '\u{aadd}', },
-    Range { from: '\u{aade}', to: '\u{aadf}', },
-    Range { from: '\u{aae0}', to: '\u{aaef}', },
-    Range { from: '\u{aaf0}', to: '\u{aaf1}', },
-    Range { from: '\u{aaf2}', to: '\u{aaf6}', },
-    Range { from: '\u{aaf7}', to: '\u{ab00}', },
-    Range { from: '\u{ab01}', to: '\u{ab06}', },
-    Range { from: '\u{ab07}', to: '\u{ab08}', },
-    Range { from: '\u{ab09}', to: '\u{ab0e}', },
-    Range { from: '\u{ab0f}', to: '\u{ab10}', },
-    Range { from: '\u{ab11}', to: '\u{ab16}', },
-    Range { from: '\u{ab17}', to: '\u{ab1f}', },
-    Range { from: '\u{ab20}', to: '\u{ab26}', },
-    Range { from: '\u{ab27}', to: '\u{ab27}', },
-    Range { from: '\u{ab28}', to: '\u{ab2e}', },
-    Range { from: '\u{ab2f}', to: '\u{ab2f}', },
-    Range { from: '\u{ab30}', to: '\u{ab5a}', },
-    Range { from: '\u{ab5b}', to: '\u{ab5f}', },
-    Range { from: '\u{ab60}', to: '\u{ab68}', },
-    Range { from: '\u{ab69}', to: '\u{ab69}', },
-    Range { from: '\u{ab6a}', to: '\u{ab6b}', },
-    Range { from: '\u{ab6c}', to: '\u{ab6f}', },
-    Range { from: '\u{ab70}', to: '\u{abbf}', },
-    Range { from: '\u{abc0}', to: '\u{abea}', },
-    Range { from: '\u{abeb}', to: '\u{abeb}', },
-    Range { from: '\u{abec}', to: '\u{abed}', },
-    Range { from: '\u{abee}', to: '\u{abef}', },
-    Range { from: '\u{abf0}', to: '\u{abf9}', },
-    Range { from: '\u{abfa}', to: '\u{abff}', },
-    Range { from: '\u{ac00}', to: '\u{d7a3}', },
-    Range { from: '\u{d7a4}', to: '\u{d7af}', },
-    Range { from: '\u{d7b0}', to: '\u{d7c6}', },
-    Range { from: '\u{d7c7}', to: '\u{d7ca}', },
-    Range { from: '\u{d7cb}', to: '\u{d7fb}', },
-    Range { from: '\u{d7fc}', to: '\u{f8ff}', },
-    Range { from: '\u{f900}', to: '\u{f906}', },
-    Range { from: '\u{f907}', to: '\u{f908}', },
-    Range { from: '\u{f909}', to: '\u{fa0d}', },
-    Range { from: '\u{fa0e}', to: '\u{fa0f}', },
-    Range { from: '\u{fa10}', to: '\u{fa12}', },
-    Range { from: '\u{fa13}', to: '\u{fa14}', },
-    Range { from: '\u{fa15}', to: '\u{fa22}', },
-    Range { from: '\u{fa23}', to: '\u{fa24}', },
-    Range { from: '\u{fa25}', to: '\u{fa26}', },
-    Range { from: '\u{fa27}', to: '\u{fa29}', },
-    Range { from: '\u{fa2a}', to: '\u{fa5c}', },
-    Range { from: '\u{fa5d}', to: '\u{fa5e}', },
-    Range { from: '\u{fa5f}', to: '\u{fa6d}', },
-    Range { from: '\u{fa6e}', to: '\u{fa6f}', },
-    Range { from: '\u{fa70}', to: '\u{fad9}', },
-    Range { from: '\u{fada}', to: '\u{faff}', },
-    Range { from: '\u{fb00}', to: '\u{fb04}', },
-    Range { from: '\u{fb05}', to: '\u{fb06}', },
-    Range { from: '\u{fb07}', to: '\u{fb12}', },
-    Range { from: '\u{fb13}', to: '\u{fb17}', },
-    Range { from: '\u{fb18}', to: '\u{fb1c}', },
-    Range { from: '\u{fb1d}', to: '\u{fb4f}', },
-    Range { from: '\u{fb50}', to: '\u{fb51}', },
-    Range { from: '\u{fb52}', to: '\u{fb55}', },
-    Range { from: '\u{fb56}', to: '\u{fb59}', },
-    Range { from: '\u{fb5a}', to: '\u{fb5d}', },
-    Range { from: '\u{fb5e}', to: '\u{fb61}', },
-    Range { from: '\u{fb62}', to: '\u{fb65}', },
-    Range { from: '\u{fb66}', to: '\u{fb69}', },
-    Range { from: '\u{fb6a}', to: '\u{fb6d}', },
-    Range { from: '\u{fb6e}', to: '\u{fb71}', },
-    Range { from: '\u{fb72}', to: '\u{fb75}', },
-    Range { from: '\u{fb76}', to: '\u{fb79}', },
-    Range { from: '\u{fb7a}', to: '\u{fb7d}', },
-    Range { from: '\u{fb7e}', to: '\u{fb81}', },
-    Range { from: '\u{fb82}', to: '\u{fb83}', },
-    Range { from: '\u{fb84}', to: '\u{fb85}', },
-    Range { from: '\u{fb86}', to: '\u{fb87}', },
-    Range { from: '\u{fb88}', to: '\u{fb89}', },
-    Range { from: '\u{fb8a}', to: '\u{fb8b}', },
-    Range { from: '\u{fb8c}', to: '\u{fb8d}', },
-    Range { from: '\u{fb8e}', to: '\u{fb91}', },
-    Range { from: '\u{fb92}', to: '\u{fb95}', },
-    Range { from: '\u{fb96}', to: '\u{fb99}', },
-    Range { from: '\u{fb9a}', to: '\u{fb9d}', },
-    Range { from: '\u{fb9e}', to: '\u{fb9f}', },
-    Range { from: '\u{fba0}', to: '\u{fba3}', },
-    Range { from: '\u{fba4}', to: '\u{fba5}', },
-    Range { from: '\u{fba6}', to: '\u{fba9}', },
-    Range { from: '\u{fbaa}', to: '\u{fbad}', },
-    Range { from: '\u{fbae}', to: '\u{fbaf}', },
-    Range { from: '\u{fbb0}', to: '\u{fbb1}', },
-    Range { from: '\u{fbb2}', to: '\u{fbc1}', },
-    Range { from: '\u{fbc2}', to: '\u{fbd2}', },
-    Range { from: '\u{fbd3}', to: '\u{fbd6}', },
-    Range { from: '\u{fbd7}', to: '\u{fbd8}', },
-    Range { from: '\u{fbd9}', to: '\u{fbda}', },
-    Range { from: '\u{fbdb}', to: '\u{fbdc}', },
-    Range { from: '\u{fbdd}', to: '\u{fbdd}', },
-    Range { from: '\u{fbde}', to: '\u{fbdf}', },
-    Range { from: '\u{fbe0}', to: '\u{fbe1}', },
-    Range { from: '\u{fbe2}', to: '\u{fbe3}', },
-    Range { from: '\u{fbe4}', to: '\u{fbe7}', },
-    Range { from: '\u{fbe8}', to: '\u{fbe9}', },
-    Range { from: '\u{fbea}', to: '\u{fbeb}', },
-    Range { from: '\u{fbec}', to: '\u{fbed}', },
-    Range { from: '\u{fbee}', to: '\u{fbef}', },
-    Range { from: '\u{fbf0}', to: '\u{fbf1}', },
-    Range { from: '\u{fbf2}', to: '\u{fbf3}', },
-    Range { from: '\u{fbf4}', to: '\u{fbf5}', },
-    Range { from: '\u{fbf6}', to: '\u{fbf8}', },
-    Range { from: '\u{fbf9}', to: '\u{fbfb}', },
-    Range { from: '\u{fbfc}', to: '\u{fbff}', },
-    Range { from: '\u{fc00}', to: '\u{fd3b}', },
-    Range { from: '\u{fd3c}', to: '\u{fd3d}', },
-    Range { from: '\u{fd3e}', to: '\u{fd3f}', },
-    Range { from: '\u{fd40}', to: '\u{fd4f}', },
-    Range { from: '\u{fd50}', to: '\u{fd50}', },
-    Range { from: '\u{fd51}', to: '\u{fd52}', },
-    Range { from: '\u{fd53}', to: '\u{fd57}', },
-    Range { from: '\u{fd58}', to: '\u{fd59}', },
-    Range { from: '\u{fd5a}', to: '\u{fd5e}', },
-    Range { from: '\u{fd5f}', to: '\u{fd60}', },
-    Range { from: '\u{fd61}', to: '\u{fd61}', },
-    Range { from: '\u{fd62}', to: '\u{fd63}', },
-    Range { from: '\u{fd64}', to: '\u{fd65}', },
-    Range { from: '\u{fd66}', to: '\u{fd66}', },
-    Range { from: '\u{fd67}', to: '\u{fd68}', },
-    Range { from: '\u{fd69}', to: '\u{fd69}', },
-    Range { from: '\u{fd6a}', to: '\u{fd6b}', },
-    Range { from: '\u{fd6c}', to: '\u{fd6d}', },
-    Range { from: '\u{fd6e}', to: '\u{fd6e}', },
-    Range { from: '\u{fd6f}', to: '\u{fd70}', },
-    Range { from: '\u{fd71}', to: '\u{fd72}', },
-    Range { from: '\u{fd73}', to: '\u{fd75}', },
-    Range { from: '\u{fd76}', to: '\u{fd77}', },
-    Range { from: '\u{fd78}', to: '\u{fd7b}', },
-    Range { from: '\u{fd7c}', to: '\u{fd7d}', },
-    Range { from: '\u{fd7e}', to: '\u{fd82}', },
-    Range { from: '\u{fd83}', to: '\u{fd84}', },
-    Range { from: '\u{fd85}', to: '\u{fd86}', },
-    Range { from: '\u{fd87}', to: '\u{fd88}', },
-    Range { from: '\u{fd89}', to: '\u{fd8f}', },
-    Range { from: '\u{fd90}', to: '\u{fd91}', },
-    Range { from: '\u{fd92}', to: '\u{fd96}', },
-    Range { from: '\u{fd97}', to: '\u{fd98}', },
-    Range { from: '\u{fd99}', to: '\u{fd9b}', },
-    Range { from: '\u{fd9c}', to: '\u{fd9d}', },
-    Range { from: '\u{fd9e}', to: '\u{fdc7}', },
-    Range { from: '\u{fdc8}', to: '\u{fdef}', },
-    Range { from: '\u{fdf0}', to: '\u{fdfd}', },
-    Range { from: '\u{fdfe}', to: '\u{fdff}', },
-    Range { from: '\u{fe00}', to: '\u{fe0f}', },
-    Range { from: '\u{fe10}', to: '\u{fe18}', },
-    Range { from: '\u{fe19}', to: '\u{fe1f}', },
-    Range { from: '\u{fe20}', to: '\u{fe2f}', },
-    Range { from: '\u{fe30}', to: '\u{fe32}', },
-    Range { from: '\u{fe33}', to: '\u{fe34}', },
-    Range { from: '\u{fe35}', to: '\u{fe44}', },
-    Range { from: '\u{fe45}', to: '\u{fe46}', },
-    Range { from: '\u{fe47}', to: '\u{fe48}', },
-    Range { from: '\u{fe49}', to: '\u{fe4c}', },
-    Range { from: '\u{fe4d}', to: '\u{fe4f}', },
-    Range { from: '\u{fe50}', to: '\u{fe51}', },
-    Range { from: '\u{fe52}', to: '\u{fe53}', },
-    Range { from: '\u{fe54}', to: '\u{fe6b}', },
-    Range { from: '\u{fe6c}', to: '\u{fe6f}', },
-    Range { from: '\u{fe70}', to: '\u{fe80}', },
-    Range { from: '\u{fe81}', to: '\u{fe82}', },
-    Range { from: '\u{fe83}', to: '\u{fe84}', },
-    Range { from: '\u{fe85}', to: '\u{fe86}', },
-    Range { from: '\u{fe87}', to: '\u{fe88}', },
-    Range { from: '\u{fe89}', to: '\u{fe8c}', },
-    Range { from: '\u{fe8d}', to: '\u{fe8e}', },
-    Range { from: '\u{fe8f}', to: '\u{fe92}', },
-    Range { from: '\u{fe93}', to: '\u{fe94}', },
-    Range { from: '\u{fe95}', to: '\u{fe98}', },
-    Range { from: '\u{fe99}', to: '\u{fe9c}', },
-    Range { from: '\u{fe9d}', to: '\u{fea0}', },
-    Range { from: '\u{fea1}', to: '\u{fea4}', },
-    Range { from: '\u{fea5}', to: '\u{fea8}', },
-    Range { from: '\u{fea9}', to: '\u{feaa}', },
-    Range { from: '\u{feab}', to: '\u{feac}', },
-    Range { from: '\u{fead}', to: '\u{feae}', },
-    Range { from: '\u{feaf}', to: '\u{feb0}', },
-    Range { from: '\u{feb1}', to: '\u{feb4}', },
-    Range { from: '\u{feb5}', to: '\u{feb8}', },
-    Range { from: '\u{feb9}', to: '\u{febc}', },
-    Range { from: '\u{febd}', to: '\u{fec0}', },
-    Range { from: '\u{fec1}', to: '\u{fec4}', },
-    Range { from: '\u{fec5}', to: '\u{fec8}', },
-    Range { from: '\u{fec9}', to: '\u{fecc}', },
-    Range { from: '\u{fecd}', to: '\u{fed0}', },
-    Range { from: '\u{fed1}', to: '\u{fed4}', },
-    Range { from: '\u{fed5}', to: '\u{fed8}', },
-    Range { from: '\u{fed9}', to: '\u{fedc}', },
-    Range { from: '\u{fedd}', to: '\u{fee0}', },
-    Range { from: '\u{fee1}', to: '\u{fee4}', },
-    Range { from: '\u{fee5}', to: '\u{fee8}', },
-    Range { from: '\u{fee9}', to: '\u{feec}', },
-    Range { from: '\u{feed}', to: '\u{feee}', },
-    Range { from: '\u{feef}', to: '\u{fef0}', },
-    Range { from: '\u{fef1}', to: '\u{fef4}', },
-    Range { from: '\u{fef5}', to: '\u{fef6}', },
-    Range { from: '\u{fef7}', to: '\u{fef8}', },
-    Range { from: '\u{fef9}', to: '\u{fefa}', },
-    Range { from: '\u{fefb}', to: '\u{fefc}', },
-    Range { from: '\u{fefd}', to: '\u{fefe}', },
-    Range { from: '\u{feff}', to: '\u{ffbe}', },
-    Range { from: '\u{ffbf}', to: '\u{ffc1}', },
-    Range { from: '\u{ffc2}', to: '\u{ffc7}', },
-    Range { from: '\u{ffc8}', to: '\u{ffc9}', },
-    Range { from: '\u{ffca}', to: '\u{ffcf}', },
-    Range { from: '\u{ffd0}', to: '\u{ffd1}', },
-    Range { from: '\u{ffd2}', to: '\u{ffd7}', },
-    Range { from: '\u{ffd8}', to: '\u{ffd9}', },
-    Range { from: '\u{ffda}', to: '\u{ffdc}', },
-    Range { from: '\u{ffdd}', to: '\u{ffdf}', },
-    Range { from: '\u{ffe0}', to: '\u{ffee}', },
-    Range { from: '\u{ffef}', to: '\u{ffff}', },
-    Range { from: '\u{10000}', to: '\u{1000b}', },
-    Range { from: '\u{1000c}', to: '\u{1000c}', },
-    Range { from: '\u{1000d}', to: '\u{10026}', },
-    Range { from: '\u{10027}', to: '\u{10027}', },
-    Range { from: '\u{10028}', to: '\u{1003a}', },
-    Range { from: '\u{1003b}', to: '\u{1003b}', },
-    Range { from: '\u{1003c}', to: '\u{1003d}', },
-    Range { from: '\u{1003e}', to: '\u{1003e}', },
-    Range { from: '\u{1003f}', to: '\u{1004d}', },
-    Range { from: '\u{1004e}', to: '\u{1004f}', },
-    Range { from: '\u{10050}', to: '\u{1005d}', },
-    Range { from: '\u{1005e}', to: '\u{1007f}', },
-    Range { from: '\u{10080}', to: '\u{100fa}', },
-    Range { from: '\u{100fb}', to: '\u{100ff}', },
-    Range { from: '\u{10100}', to: '\u{10102}', },
-    Range { from: '\u{10103}', to: '\u{10106}', },
-    Range { from: '\u{10107}', to: '\u{10133}', },
-    Range { from: '\u{10134}', to: '\u{10136}', },
-    Range { from: '\u{10137}', to: '\u{1018e}', },
-    Range { from: '\u{1018f}', to: '\u{1018f}', },
-    Range { from: '\u{10190}', to: '\u{1019c}', },
-    Range { from: '\u{1019d}', to: '\u{1019f}', },
-    Range { from: '\u{101a0}', to: '\u{101a0}', },
-    Range { from: '\u{101a1}', to: '\u{101cf}', },
-    Range { from: '\u{101d0}', to: '\u{101fc}', },
-    Range { from: '\u{101fd}', to: '\u{101fd}', },
-    Range { from: '\u{101fe}', to: '\u{1027f}', },
-    Range { from: '\u{10280}', to: '\u{1029c}', },
-    Range { from: '\u{1029d}', to: '\u{1029f}', },
-    Range { from: '\u{102a0}', to: '\u{102d0}', },
-    Range { from: '\u{102d1}', to: '\u{102df}', },
-    Range { from: '\u{102e0}', to: '\u{102e0}', },
-    Range { from: '\u{102e1}', to: '\u{102fb}', },
-    Range { from: '\u{102fc}', to: '\u{102ff}', },
-    Range { from: '\u{10300}', to: '\u{1031f}', },
-    Range { from: '\u{10320}', to: '\u{10323}', },
-    Range { from: '\u{10324}', to: '\u{1032c}', },
-    Range { from: '\u{1032d}', to: '\u{10340}', },
-    Range { from: '\u{10341}', to: '\u{10341}', },
-    Range { from: '\u{10342}', to: '\u{10349}', },
-    Range { from: '\u{1034a}', to: '\u{1034a}', },
-    Range { from: '\u{1034b}', to: '\u{1034f}', },
-    Range { from: '\u{10350}', to: '\u{1037a}', },
-    Range { from: '\u{1037b}', to: '\u{1037f}', },
-    Range { from: '\u{10380}', to: '\u{1039d}', },
-    Range { from: '\u{1039e}', to: '\u{1039f}', },
-    Range { from: '\u{103a0}', to: '\u{103c3}', },
-    Range { from: '\u{103c4}', to: '\u{103c7}', },
-    Range { from: '\u{103c8}', to: '\u{103cf}', },
-    Range { from: '\u{103d0}', to: '\u{103d5}', },
-    Range { from: '\u{103d6}', to: '\u{103ff}', },
-    Range { from: '\u{10400}', to: '\u{10427}', },
-    Range { from: '\u{10428}', to: '\u{1049d}', },
-    Range { from: '\u{1049e}', to: '\u{1049f}', },
-    Range { from: '\u{104a0}', to: '\u{104a9}', },
-    Range { from: '\u{104aa}', to: '\u{104af}', },
-    Range { from: '\u{104b0}', to: '\u{104d3}', },
-    Range { from: '\u{104d4}', to: '\u{104d7}', },
-    Range { from: '\u{104d8}', to: '\u{104fb}', },
-    Range { from: '\u{104fc}', to: '\u{104ff}', },
-    Range { from: '\u{10500}', to: '\u{10527}', },
-    Range { from: '\u{10528}', to: '\u{1052f}', },
-    Range { from: '\u{10530}', to: '\u{10563}', },
-    Range { from: '\u{10564}', to: '\u{1056e}', },
-    Range { from: '\u{1056f}', to: '\u{1056f}', },
-    Range { from: '\u{10570}', to: '\u{105ff}', },
-    Range { from: '\u{10600}', to: '\u{10736}', },
-    Range { from: '\u{10737}', to: '\u{1073f}', },
-    Range { from: '\u{10740}', to: '\u{10755}', },
-    Range { from: '\u{10756}', to: '\u{1075f}', },
-    Range { from: '\u{10760}', to: '\u{10767}', },
-    Range { from: '\u{10768}', to: '\u{107ff}', },
-    Range { from: '\u{10800}', to: '\u{10805}', },
-    Range { from: '\u{10806}', to: '\u{10807}', },
-    Range { from: '\u{10808}', to: '\u{10809}', },
-    Range { from: '\u{1080a}', to: '\u{10835}', },
-    Range { from: '\u{10836}', to: '\u{10836}', },
-    Range { from: '\u{10837}', to: '\u{10838}', },
-    Range { from: '\u{10839}', to: '\u{1083b}', },
-    Range { from: '\u{1083c}', to: '\u{1083c}', },
-    Range { from: '\u{1083d}', to: '\u{1083e}', },
-    Range { from: '\u{1083f}', to: '\u{10855}', },
-    Range { from: '\u{10856}', to: '\u{10856}', },
-    Range { from: '\u{10857}', to: '\u{1085f}', },
-    Range { from: '\u{10860}', to: '\u{10876}', },
-    Range { from: '\u{10877}', to: '\u{1087f}', },
-    Range { from: '\u{10880}', to: '\u{1089e}', },
-    Range { from: '\u{1089f}', to: '\u{108a6}', },
-    Range { from: '\u{108a7}', to: '\u{108af}', },
-    Range { from: '\u{108b0}', to: '\u{108df}', },
-    Range { from: '\u{108e0}', to: '\u{108f2}', },
-    Range { from: '\u{108f3}', to: '\u{108f3}', },
-    Range { from: '\u{108f4}', to: '\u{108f5}', },
-    Range { from: '\u{108f6}', to: '\u{108fa}', },
-    Range { from: '\u{108fb}', to: '\u{108ff}', },
-    Range { from: '\u{10900}', to: '\u{10915}', },
-    Range { from: '\u{10916}', to: '\u{1091b}', },
-    Range { from: '\u{1091c}', to: '\u{1091e}', },
-    Range { from: '\u{1091f}', to: '\u{1091f}', },
-    Range { from: '\u{10920}', to: '\u{10939}', },
-    Range { from: '\u{1093a}', to: '\u{1093e}', },
-    Range { from: '\u{1093f}', to: '\u{1093f}', },
-    Range { from: '\u{10940}', to: '\u{1097f}', },
-    Range { from: '\u{10980}', to: '\u{109b7}', },
-    Range { from: '\u{109b8}', to: '\u{109bb}', },
-    Range { from: '\u{109bc}', to: '\u{109bd}', },
-    Range { from: '\u{109be}', to: '\u{109bf}', },
-    Range { from: '\u{109c0}', to: '\u{109cf}', },
-    Range { from: '\u{109d0}', to: '\u{109d1}', },
-    Range { from: '\u{109d2}', to: '\u{109ff}', },
-    Range { from: '\u{10a00}', to: '\u{10a03}', },
-    Range { from: '\u{10a04}', to: '\u{10a04}', },
-    Range { from: '\u{10a05}', to: '\u{10a06}', },
-    Range { from: '\u{10a07}', to: '\u{10a0b}', },
-    Range { from: '\u{10a0c}', to: '\u{10a13}', },
-    Range { from: '\u{10a14}', to: '\u{10a14}', },
-    Range { from: '\u{10a15}', to: '\u{10a17}', },
-    Range { from: '\u{10a18}', to: '\u{10a18}', },
-    Range { from: '\u{10a19}', to: '\u{10a35}', },
-    Range { from: '\u{10a36}', to: '\u{10a37}', },
-    Range { from: '\u{10a38}', to: '\u{10a3a}', },
-    Range { from: '\u{10a3b}', to: '\u{10a3e}', },
-    Range { from: '\u{10a3f}', to: '\u{10a3f}', },
-    Range { from: '\u{10a40}', to: '\u{10a48}', },
-    Range { from: '\u{10a49}', to: '\u{10a4f}', },
-    Range { from: '\u{10a50}', to: '\u{10a58}', },
-    Range { from: '\u{10a59}', to: '\u{10a5f}', },
-    Range { from: '\u{10a60}', to: '\u{10a7c}', },
-    Range { from: '\u{10a7d}', to: '\u{10a7f}', },
-    Range { from: '\u{10a80}', to: '\u{10a9c}', },
-    Range { from: '\u{10a9d}', to: '\u{10a9f}', },
-    Range { from: '\u{10aa0}', to: '\u{10abf}', },
-    Range { from: '\u{10ac0}', to: '\u{10ac7}', },
-    Range { from: '\u{10ac8}', to: '\u{10ac8}', },
-    Range { from: '\u{10ac9}', to: '\u{10ae6}', },
-    Range { from: '\u{10ae7}', to: '\u{10aea}', },
-    Range { from: '\u{10aeb}', to: '\u{10af6}', },
-    Range { from: '\u{10af7}', to: '\u{10aff}', },
-    Range { from: '\u{10b00}', to: '\u{10b35}', },
-    Range { from: '\u{10b36}', to: '\u{10b38}', },
-    Range { from: '\u{10b39}', to: '\u{10b3f}', },
-    Range { from: '\u{10b40}', to: '\u{10b55}', },
-    Range { from: '\u{10b56}', to: '\u{10b57}', },
-    Range { from: '\u{10b58}', to: '\u{10b5f}', },
-    Range { from: '\u{10b60}', to: '\u{10b72}', },
-    Range { from: '\u{10b73}', to: '\u{10b77}', },
-    Range { from: '\u{10b78}', to: '\u{10b7f}', },
-    Range { from: '\u{10b80}', to: '\u{10b91}', },
-    Range { from: '\u{10b92}', to: '\u{10b98}', },
-    Range { from: '\u{10b99}', to: '\u{10b9c}', },
-    Range { from: '\u{10b9d}', to: '\u{10ba8}', },
-    Range { from: '\u{10ba9}', to: '\u{10baf}', },
-    Range { from: '\u{10bb0}', to: '\u{10bff}', },
-    Range { from: '\u{10c00}', to: '\u{10c48}', },
-    Range { from: '\u{10c49}', to: '\u{10c7f}', },
-    Range { from: '\u{10c80}', to: '\u{10cb2}', },
-    Range { from: '\u{10cb3}', to: '\u{10cbf}', },
-    Range { from: '\u{10cc0}', to: '\u{10cf2}', },
-    Range { from: '\u{10cf3}', to: '\u{10cf9}', },
-    Range { from: '\u{10cfa}', to: '\u{10cff}', },
-    Range { from: '\u{10d00}', to: '\u{10d27}', },
-    Range { from: '\u{10d28}', to: '\u{10d2f}', },
-    Range { from: '\u{10d30}', to: '\u{10d39}', },
-    Range { from: '\u{10d3a}', to: '\u{10e5f}', },
-    Range { from: '\u{10e60}', to: '\u{10e7e}', },
-    Range { from: '\u{10e7f}', to: '\u{10e7f}', },
-    Range { from: '\u{10e80}', to: '\u{10ea9}', },
-    Range { from: '\u{10eaa}', to: '\u{10eaa}', },
-    Range { from: '\u{10eab}', to: '\u{10eac}', },
-    Range { from: '\u{10ead}', to: '\u{10ead}', },
-    Range { from: '\u{10eae}', to: '\u{10eaf}', },
-    Range { from: '\u{10eb0}', to: '\u{10eb1}', },
-    Range { from: '\u{10eb2}', to: '\u{10eff}', },
-    Range { from: '\u{10f00}', to: '\u{10f1c}', },
-    Range { from: '\u{10f1d}', to: '\u{10f26}', },
-    Range { from: '\u{10f27}', to: '\u{10f27}', },
-    Range { from: '\u{10f28}', to: '\u{10f2f}', },
-    Range { from: '\u{10f30}', to: '\u{10f50}', },
-    Range { from: '\u{10f51}', to: '\u{10f59}', },
-    Range { from: '\u{10f5a}', to: '\u{10faf}', },
-    Range { from: '\u{10fb0}', to: '\u{10fc4}', },
-    Range { from: '\u{10fc5}', to: '\u{10fcb}', },
-    Range { from: '\u{10fcc}', to: '\u{10fdf}', },
-    Range { from: '\u{10fe0}', to: '\u{10ff6}', },
-    Range { from: '\u{10ff7}', to: '\u{10fff}', },
-    Range { from: '\u{11000}', to: '\u{11046}', },
-    Range { from: '\u{11047}', to: '\u{1104d}', },
-    Range { from: '\u{1104e}', to: '\u{11051}', },
-    Range { from: '\u{11052}', to: '\u{11065}', },
-    Range { from: '\u{11066}', to: '\u{1106f}', },
-    Range { from: '\u{11070}', to: '\u{1107e}', },
-    Range { from: '\u{1107f}', to: '\u{110ba}', },
-    Range { from: '\u{110bb}', to: '\u{110bc}', },
-    Range { from: '\u{110bd}', to: '\u{110bd}', },
-    Range { from: '\u{110be}', to: '\u{110c1}', },
-    Range { from: '\u{110c2}', to: '\u{110cf}', },
-    Range { from: '\u{110d0}', to: '\u{110e8}', },
-    Range { from: '\u{110e9}', to: '\u{110ef}', },
-    Range { from: '\u{110f0}', to: '\u{110f9}', },
-    Range { from: '\u{110fa}', to: '\u{110ff}', },
-    Range { from: '\u{11100}', to: '\u{11134}', },
-    Range { from: '\u{11135}', to: '\u{11135}', },
-    Range { from: '\u{11136}', to: '\u{1113f}', },
-    Range { from: '\u{11140}', to: '\u{11143}', },
-    Range { from: '\u{11144}', to: '\u{11147}', },
-    Range { from: '\u{11148}', to: '\u{1114f}', },
-    Range { from: '\u{11150}', to: '\u{11173}', },
-    Range { from: '\u{11174}', to: '\u{11175}', },
-    Range { from: '\u{11176}', to: '\u{11176}', },
-    Range { from: '\u{11177}', to: '\u{1117f}', },
-    Range { from: '\u{11180}', to: '\u{111c4}', },
-    Range { from: '\u{111c5}', to: '\u{111c8}', },
-    Range { from: '\u{111c9}', to: '\u{111cc}', },
-    Range { from: '\u{111cd}', to: '\u{111cd}', },
-    Range { from: '\u{111ce}', to: '\u{111da}', },
-    Range { from: '\u{111db}', to: '\u{111dc}', },
-    Range { from: '\u{111dd}', to: '\u{111df}', },
-    Range { from: '\u{111e0}', to: '\u{111e0}', },
-    Range { from: '\u{111e1}', to: '\u{111f4}', },
-    Range { from: '\u{111f5}', to: '\u{111ff}', },
-    Range { from: '\u{11200}', to: '\u{11211}', },
-    Range { from: '\u{11212}', to: '\u{11212}', },
-    Range { from: '\u{11213}', to: '\u{11237}', },
-    Range { from: '\u{11238}', to: '\u{1123d}', },
-    Range { from: '\u{1123e}', to: '\u{1123e}', },
-    Range { from: '\u{1123f}', to: '\u{1127f}', },
-    Range { from: '\u{11280}', to: '\u{11286}', },
-    Range { from: '\u{11287}', to: '\u{11289}', },
-    Range { from: '\u{1128a}', to: '\u{1128d}', },
-    Range { from: '\u{1128e}', to: '\u{1128e}', },
-    Range { from: '\u{1128f}', to: '\u{1129d}', },
-    Range { from: '\u{1129e}', to: '\u{1129e}', },
-    Range { from: '\u{1129f}', to: '\u{112a8}', },
-    Range { from: '\u{112a9}', to: '\u{112a9}', },
-    Range { from: '\u{112aa}', to: '\u{112af}', },
-    Range { from: '\u{112b0}', to: '\u{112ea}', },
-    Range { from: '\u{112eb}', to: '\u{112ef}', },
-    Range { from: '\u{112f0}', to: '\u{112f9}', },
-    Range { from: '\u{112fa}', to: '\u{112ff}', },
-    Range { from: '\u{11300}', to: '\u{11303}', },
-    Range { from: '\u{11304}', to: '\u{11304}', },
-    Range { from: '\u{11305}', to: '\u{1130c}', },
-    Range { from: '\u{1130d}', to: '\u{1130e}', },
-    Range { from: '\u{1130f}', to: '\u{11310}', },
-    Range { from: '\u{11311}', to: '\u{11312}', },
-    Range { from: '\u{11313}', to: '\u{11328}', },
-    Range { from: '\u{11329}', to: '\u{11329}', },
-    Range { from: '\u{1132a}', to: '\u{11330}', },
-    Range { from: '\u{11331}', to: '\u{11331}', },
-    Range { from: '\u{11332}', to: '\u{11333}', },
-    Range { from: '\u{11334}', to: '\u{11334}', },
-    Range { from: '\u{11335}', to: '\u{11339}', },
-    Range { from: '\u{1133a}', to: '\u{1133a}', },
-    Range { from: '\u{1133b}', to: '\u{11344}', },
-    Range { from: '\u{11345}', to: '\u{11346}', },
-    Range { from: '\u{11347}', to: '\u{11348}', },
-    Range { from: '\u{11349}', to: '\u{1134a}', },
-    Range { from: '\u{1134b}', to: '\u{1134d}', },
-    Range { from: '\u{1134e}', to: '\u{1134f}', },
-    Range { from: '\u{11350}', to: '\u{11350}', },
-    Range { from: '\u{11351}', to: '\u{11356}', },
-    Range { from: '\u{11357}', to: '\u{11357}', },
-    Range { from: '\u{11358}', to: '\u{1135c}', },
-    Range { from: '\u{1135d}', to: '\u{11363}', },
-    Range { from: '\u{11364}', to: '\u{11365}', },
-    Range { from: '\u{11366}', to: '\u{1136c}', },
-    Range { from: '\u{1136d}', to: '\u{1136f}', },
-    Range { from: '\u{11370}', to: '\u{11374}', },
-    Range { from: '\u{11375}', to: '\u{113ff}', },
-    Range { from: '\u{11400}', to: '\u{1144a}', },
-    Range { from: '\u{1144b}', to: '\u{1144f}', },
-    Range { from: '\u{11450}', to: '\u{11459}', },
-    Range { from: '\u{1145a}', to: '\u{1145b}', },
-    Range { from: '\u{1145c}', to: '\u{1145d}', },
-    Range { from: '\u{1145e}', to: '\u{11461}', },
-    Range { from: '\u{11462}', to: '\u{1147f}', },
-    Range { from: '\u{11480}', to: '\u{114c5}', },
-    Range { from: '\u{114c6}', to: '\u{114c7}', },
-    Range { from: '\u{114c8}', to: '\u{114cf}', },
-    Range { from: '\u{114d0}', to: '\u{114d9}', },
-    Range { from: '\u{114da}', to: '\u{1157f}', },
-    Range { from: '\u{11580}', to: '\u{115b5}', },
-    Range { from: '\u{115b6}', to: '\u{115b7}', },
-    Range { from: '\u{115b8}', to: '\u{115c0}', },
-    Range { from: '\u{115c1}', to: '\u{115d7}', },
-    Range { from: '\u{115d8}', to: '\u{115dd}', },
-    Range { from: '\u{115de}', to: '\u{115ff}', },
-    Range { from: '\u{11600}', to: '\u{11640}', },
-    Range { from: '\u{11641}', to: '\u{11643}', },
-    Range { from: '\u{11644}', to: '\u{11644}', },
-    Range { from: '\u{11645}', to: '\u{1164f}', },
-    Range { from: '\u{11650}', to: '\u{11659}', },
-    Range { from: '\u{1165a}', to: '\u{1165f}', },
-    Range { from: '\u{11660}', to: '\u{1166c}', },
-    Range { from: '\u{1166d}', to: '\u{1167f}', },
-    Range { from: '\u{11680}', to: '\u{116b8}', },
-    Range { from: '\u{116b9}', to: '\u{116bf}', },
-    Range { from: '\u{116c0}', to: '\u{116c9}', },
-    Range { from: '\u{116ca}', to: '\u{116ff}', },
-    Range { from: '\u{11700}', to: '\u{1171a}', },
-    Range { from: '\u{1171b}', to: '\u{1171c}', },
-    Range { from: '\u{1171d}', to: '\u{1172b}', },
-    Range { from: '\u{1172c}', to: '\u{1172f}', },
-    Range { from: '\u{11730}', to: '\u{11739}', },
-    Range { from: '\u{1173a}', to: '\u{1173f}', },
-    Range { from: '\u{11740}', to: '\u{117ff}', },
-    Range { from: '\u{11800}', to: '\u{1183a}', },
-    Range { from: '\u{1183b}', to: '\u{1183b}', },
-    Range { from: '\u{1183c}', to: '\u{1189f}', },
-    Range { from: '\u{118a0}', to: '\u{118bf}', },
-    Range { from: '\u{118c0}', to: '\u{118e9}', },
-    Range { from: '\u{118ea}', to: '\u{118f2}', },
-    Range { from: '\u{118f3}', to: '\u{118fe}', },
-    Range { from: '\u{118ff}', to: '\u{11906}', },
-    Range { from: '\u{11907}', to: '\u{11908}', },
-    Range { from: '\u{11909}', to: '\u{11909}', },
-    Range { from: '\u{1190a}', to: '\u{1190b}', },
-    Range { from: '\u{1190c}', to: '\u{11913}', },
-    Range { from: '\u{11914}', to: '\u{11914}', },
-    Range { from: '\u{11915}', to: '\u{11916}', },
-    Range { from: '\u{11917}', to: '\u{11917}', },
-    Range { from: '\u{11918}', to: '\u{11935}', },
-    Range { from: '\u{11936}', to: '\u{11936}', },
-    Range { from: '\u{11937}', to: '\u{11938}', },
-    Range { from: '\u{11939}', to: '\u{1193a}', },
-    Range { from: '\u{1193b}', to: '\u{11943}', },
-    Range { from: '\u{11944}', to: '\u{11946}', },
-    Range { from: '\u{11947}', to: '\u{1194f}', },
-    Range { from: '\u{11950}', to: '\u{11959}', },
-    Range { from: '\u{1195a}', to: '\u{1199f}', },
-    Range { from: '\u{119a0}', to: '\u{119a7}', },
-    Range { from: '\u{119a8}', to: '\u{119a9}', },
-    Range { from: '\u{119aa}', to: '\u{119d7}', },
-    Range { from: '\u{119d8}', to: '\u{119d9}', },
-    Range { from: '\u{119da}', to: '\u{119e1}', },
-    Range { from: '\u{119e2}', to: '\u{119e2}', },
-    Range { from: '\u{119e3}', to: '\u{119e4}', },
-    Range { from: '\u{119e5}', to: '\u{119ff}', },
-    Range { from: '\u{11a00}', to: '\u{11a3e}', },
-    Range { from: '\u{11a3f}', to: '\u{11a46}', },
-    Range { from: '\u{11a47}', to: '\u{11a47}', },
-    Range { from: '\u{11a48}', to: '\u{11a4f}', },
-    Range { from: '\u{11a50}', to: '\u{11a99}', },
-    Range { from: '\u{11a9a}', to: '\u{11a9c}', },
-    Range { from: '\u{11a9d}', to: '\u{11a9d}', },
-    Range { from: '\u{11a9e}', to: '\u{11aa2}', },
-    Range { from: '\u{11aa3}', to: '\u{11abf}', },
-    Range { from: '\u{11ac0}', to: '\u{11af8}', },
-    Range { from: '\u{11af9}', to: '\u{11bff}', },
-    Range { from: '\u{11c00}', to: '\u{11c08}', },
-    Range { from: '\u{11c09}', to: '\u{11c09}', },
-    Range { from: '\u{11c0a}', to: '\u{11c36}', },
-    Range { from: '\u{11c37}', to: '\u{11c37}', },
-    Range { from: '\u{11c38}', to: '\u{11c40}', },
-    Range { from: '\u{11c41}', to: '\u{11c45}', },
-    Range { from: '\u{11c46}', to: '\u{11c4f}', },
-    Range { from: '\u{11c50}', to: '\u{11c59}', },
-    Range { from: '\u{11c5a}', to: '\u{11c6c}', },
-    Range { from: '\u{11c6d}', to: '\u{11c6f}', },
-    Range { from: '\u{11c70}', to: '\u{11c71}', },
-    Range { from: '\u{11c72}', to: '\u{11c8f}', },
-    Range { from: '\u{11c90}', to: '\u{11c91}', },
-    Range { from: '\u{11c92}', to: '\u{11ca7}', },
-    Range { from: '\u{11ca8}', to: '\u{11ca8}', },
-    Range { from: '\u{11ca9}', to: '\u{11cb6}', },
-    Range { from: '\u{11cb7}', to: '\u{11cff}', },
-    Range { from: '\u{11d00}', to: '\u{11d06}', },
-    Range { from: '\u{11d07}', to: '\u{11d07}', },
-    Range { from: '\u{11d08}', to: '\u{11d09}', },
-    Range { from: '\u{11d0a}', to: '\u{11d0a}', },
-    Range { from: '\u{11d0b}', to: '\u{11d36}', },
-    Range { from: '\u{11d37}', to: '\u{11d39}', },
-    Range { from: '\u{11d3a}', to: '\u{11d3b}', },
-    Range { from: '\u{11d3c}', to: '\u{11d3d}', },
-    Range { from: '\u{11d3e}', to: '\u{11d3e}', },
-    Range { from: '\u{11d3f}', to: '\u{11d47}', },
-    Range { from: '\u{11d48}', to: '\u{11d4f}', },
-    Range { from: '\u{11d50}', to: '\u{11d59}', },
-    Range { from: '\u{11d5a}', to: '\u{11d5f}', },
-    Range { from: '\u{11d60}', to: '\u{11d65}', },
-    Range { from: '\u{11d66}', to: '\u{11d66}', },
-    Range { from: '\u{11d67}', to: '\u{11d68}', },
-    Range { from: '\u{11d69}', to: '\u{11d69}', },
-    Range { from: '\u{11d6a}', to: '\u{11d8e}', },
-    Range { from: '\u{11d8f}', to: '\u{11d8f}', },
-    Range { from: '\u{11d90}', to: '\u{11d91}', },
-    Range { from: '\u{11d92}', to: '\u{11d92}', },
-    Range { from: '\u{11d93}', to: '\u{11d98}', },
-    Range { from: '\u{11d99}', to: '\u{11d9f}', },
-    Range { from: '\u{11da0}', to: '\u{11da9}', },
-    Range { from: '\u{11daa}', to: '\u{11edf}', },
-    Range { from: '\u{11ee0}', to: '\u{11ef6}', },
-    Range { from: '\u{11ef7}', to: '\u{11ef8}', },
-    Range { from: '\u{11ef9}', to: '\u{11faf}', },
-    Range { from: '\u{11fb0}', to: '\u{11fb0}', },
-    Range { from: '\u{11fb1}', to: '\u{11fbf}', },
-    Range { from: '\u{11fc0}', to: '\u{11ff1}', },
-    Range { from: '\u{11ff2}', to: '\u{11ffe}', },
-    Range { from: '\u{11fff}', to: '\u{11fff}', },
-    Range { from: '\u{12000}', to: '\u{12399}', },
-    Range { from: '\u{1239a}', to: '\u{123ff}', },
-    Range { from: '\u{12400}', to: '\u{1246e}', },
-    Range { from: '\u{1246f}', to: '\u{1246f}', },
-    Range { from: '\u{12470}', to: '\u{12474}', },
-    Range { from: '\u{12475}', to: '\u{1247f}', },
-    Range { from: '\u{12480}', to: '\u{12543}', },
-    Range { from: '\u{12544}', to: '\u{12fff}', },
-    Range { from: '\u{13000}', to: '\u{1342e}', },
-    Range { from: '\u{1342f}', to: '\u{143ff}', },
-    Range { from: '\u{14400}', to: '\u{14646}', },
-    Range { from: '\u{14647}', to: '\u{167ff}', },
-    Range { from: '\u{16800}', to: '\u{16a38}', },
-    Range { from: '\u{16a39}', to: '\u{16a3f}', },
-    Range { from: '\u{16a40}', to: '\u{16a5e}', },
-    Range { from: '\u{16a5f}', to: '\u{16a5f}', },
-    Range { from: '\u{16a60}', to: '\u{16a69}', },
-    Range { from: '\u{16a6a}', to: '\u{16a6d}', },
-    Range { from: '\u{16a6e}', to: '\u{16a6f}', },
-    Range { from: '\u{16a70}', to: '\u{16acf}', },
-    Range { from: '\u{16ad0}', to: '\u{16aed}', },
-    Range { from: '\u{16aee}', to: '\u{16aef}', },
-    Range { from: '\u{16af0}', to: '\u{16af4}', },
-    Range { from: '\u{16af5}', to: '\u{16af5}', },
-    Range { from: '\u{16af6}', to: '\u{16aff}', },
-    Range { from: '\u{16b00}', to: '\u{16b36}', },
-    Range { from: '\u{16b37}', to: '\u{16b3f}', },
-    Range { from: '\u{16b40}', to: '\u{16b43}', },
-    Range { from: '\u{16b44}', to: '\u{16b45}', },
-    Range { from: '\u{16b46}', to: '\u{16b4f}', },
-    Range { from: '\u{16b50}', to: '\u{16b59}', },
-    Range { from: '\u{16b5a}', to: '\u{16b5a}', },
-    Range { from: '\u{16b5b}', to: '\u{16b61}', },
-    Range { from: '\u{16b62}', to: '\u{16b62}', },
-    Range { from: '\u{16b63}', to: '\u{16b77}', },
-    Range { from: '\u{16b78}', to: '\u{16b7c}', },
-    Range { from: '\u{16b7d}', to: '\u{16b8f}', },
-    Range { from: '\u{16b90}', to: '\u{16e3f}', },
-    Range { from: '\u{16e40}', to: '\u{16e5f}', },
-    Range { from: '\u{16e60}', to: '\u{16e7f}', },
-    Range { from: '\u{16e80}', to: '\u{16e9a}', },
-    Range { from: '\u{16e9b}', to: '\u{16eff}', },
-    Range { from: '\u{16f00}', to: '\u{16f4a}', },
-    Range { from: '\u{16f4b}', to: '\u{16f4e}', },
-    Range { from: '\u{16f4f}', to: '\u{16f87}', },
-    Range { from: '\u{16f88}', to: '\u{16f8e}', },
-    Range { from: '\u{16f8f}', to: '\u{16f9f}', },
-    Range { from: '\u{16fa0}', to: '\u{16fdf}', },
-    Range { from: '\u{16fe0}', to: '\u{16fe1}', },
-    Range { from: '\u{16fe2}', to: '\u{16fe2}', },
-    Range { from: '\u{16fe3}', to: '\u{16fe4}', },
-    Range { from: '\u{16fe5}', to: '\u{16fef}', },
-    Range { from: '\u{16ff0}', to: '\u{16ff1}', },
-    Range { from: '\u{16ff2}', to: '\u{16fff}', },
-    Range { from: '\u{17000}', to: '\u{187f7}', },
-    Range { from: '\u{187f8}', to: '\u{187ff}', },
-    Range { from: '\u{18800}', to: '\u{18cd5}', },
-    Range { from: '\u{18cd6}', to: '\u{18cff}', },
-    Range { from: '\u{18d00}', to: '\u{18d08}', },
-    Range { from: '\u{18d09}', to: '\u{1afff}', },
-    Range { from: '\u{1b000}', to: '\u{1b11e}', },
-    Range { from: '\u{1b11f}', to: '\u{1b14f}', },
-    Range { from: '\u{1b150}', to: '\u{1b152}', },
-    Range { from: '\u{1b153}', to: '\u{1b163}', },
-    Range { from: '\u{1b164}', to: '\u{1b167}', },
-    Range { from: '\u{1b168}', to: '\u{1b16f}', },
-    Range { from: '\u{1b170}', to: '\u{1b2fb}', },
-    Range { from: '\u{1b2fc}', to: '\u{1bbff}', },
-    Range { from: '\u{1bc00}', to: '\u{1bc6a}', },
-    Range { from: '\u{1bc6b}', to: '\u{1bc6f}', },
-    Range { from: '\u{1bc70}', to: '\u{1bc7c}', },
-    Range { from: '\u{1bc7d}', to: '\u{1bc7f}', },
-    Range { from: '\u{1bc80}', to: '\u{1bc88}', },
-    Range { from: '\u{1bc89}', to: '\u{1bc8f}', },
-    Range { from: '\u{1bc90}', to: '\u{1bc99}', },
-    Range { from: '\u{1bc9a}', to: '\u{1bc9b}', },
-    Range { from: '\u{1bc9c}', to: '\u{1bc9c}', },
-    Range { from: '\u{1bc9d}', to: '\u{1bc9e}', },
-    Range { from: '\u{1bc9f}', to: '\u{1bc9f}', },
-    Range { from: '\u{1bca0}', to: '\u{1bca3}', },
-    Range { from: '\u{1bca4}', to: '\u{1cfff}', },
-    Range { from: '\u{1d000}', to: '\u{1d0f5}', },
-    Range { from: '\u{1d0f6}', to: '\u{1d0ff}', },
-    Range { from: '\u{1d100}', to: '\u{1d126}', },
-    Range { from: '\u{1d127}', to: '\u{1d128}', },
-    Range { from: '\u{1d129}', to: '\u{1d15d}', },
-    Range { from: '\u{1d15e}', to: '\u{1d164}', },
-    Range { from: '\u{1d165}', to: '\u{1d172}', },
-    Range { from: '\u{1d173}', to: '\u{1d17a}', },
-    Range { from: '\u{1d17b}', to: '\u{1d1ba}', },
-    Range { from: '\u{1d1bb}', to: '\u{1d1c0}', },
-    Range { from: '\u{1d1c1}', to: '\u{1d1e8}', },
-    Range { from: '\u{1d1e9}', to: '\u{1d1ff}', },
-    Range { from: '\u{1d200}', to: '\u{1d245}', },
-    Range { from: '\u{1d246}', to: '\u{1d2df}', },
-    Range { from: '\u{1d2e0}', to: '\u{1d2f3}', },
-    Range { from: '\u{1d2f4}', to: '\u{1d2ff}', },
-    Range { from: '\u{1d300}', to: '\u{1d356}', },
-    Range { from: '\u{1d357}', to: '\u{1d35f}', },
-    Range { from: '\u{1d360}', to: '\u{1d378}', },
-    Range { from: '\u{1d379}', to: '\u{1d3ff}', },
-    Range { from: '\u{1d400}', to: '\u{1d49f}', },
-    Range { from: '\u{1d4a0}', to: '\u{1d4a1}', },
-    Range { from: '\u{1d4a2}', to: '\u{1d4a2}', },
-    Range { from: '\u{1d4a3}', to: '\u{1d4a4}', },
-    Range { from: '\u{1d4a5}', to: '\u{1d4a6}', },
-    Range { from: '\u{1d4a7}', to: '\u{1d4a8}', },
-    Range { from: '\u{1d4a9}', to: '\u{1d50a}', },
-    Range { from: '\u{1d50b}', to: '\u{1d50c}', },
-    Range { from: '\u{1d50d}', to: '\u{1d546}', },
-    Range { from: '\u{1d547}', to: '\u{1d549}', },
-    Range { from: '\u{1d54a}', to: '\u{1d6a5}', },
-    Range { from: '\u{1d6a6}', to: '\u{1d6a7}', },
-    Range { from: '\u{1d6a8}', to: '\u{1d6d2}', },
-    Range { from: '\u{1d6d3}', to: '\u{1d6d4}', },
-    Range { from: '\u{1d6d5}', to: '\u{1d70c}', },
-    Range { from: '\u{1d70d}', to: '\u{1d70e}', },
-    Range { from: '\u{1d70f}', to: '\u{1d746}', },
-    Range { from: '\u{1d747}', to: '\u{1d748}', },
-    Range { from: '\u{1d749}', to: '\u{1d780}', },
-    Range { from: '\u{1d781}', to: '\u{1d782}', },
-    Range { from: '\u{1d783}', to: '\u{1d7ba}', },
-    Range { from: '\u{1d7bb}', to: '\u{1d7bc}', },
-    Range { from: '\u{1d7bd}', to: '\u{1d7c9}', },
-    Range { from: '\u{1d7ca}', to: '\u{1d7cb}', },
-    Range { from: '\u{1d7cc}', to: '\u{1d7cd}', },
-    Range { from: '\u{1d7ce}', to: '\u{1d7ff}', },
-    Range { from: '\u{1d800}', to: '\u{1d9ff}', },
-    Range { from: '\u{1da00}', to: '\u{1da36}', },
-    Range { from: '\u{1da37}', to: '\u{1da3a}', },
-    Range { from: '\u{1da3b}', to: '\u{1da6c}', },
-    Range { from: '\u{1da6d}', to: '\u{1da74}', },
-    Range { from: '\u{1da75}', to: '\u{1da75}', },
-    Range { from: '\u{1da76}', to: '\u{1da83}', },
-    Range { from: '\u{1da84}', to: '\u{1da84}', },
-    Range { from: '\u{1da85}', to: '\u{1da8b}', },
-    Range { from: '\u{1da8c}', to: '\u{1da9a}', },
-    Range { from: '\u{1da9b}', to: '\u{1da9f}', },
-    Range { from: '\u{1daa0}', to: '\u{1daa0}', },
-    Range { from: '\u{1daa1}', to: '\u{1daaf}', },
-    Range { from: '\u{1dab0}', to: '\u{1dfff}', },
-    Range { from: '\u{1e000}', to: '\u{1e006}', },
-    Range { from: '\u{1e007}', to: '\u{1e007}', },
-    Range { from: '\u{1e008}', to: '\u{1e018}', },
-    Range { from: '\u{1e019}', to: '\u{1e01a}', },
-    Range { from: '\u{1e01b}', to: '\u{1e021}', },
-    Range { from: '\u{1e022}', to: '\u{1e022}', },
-    Range { from: '\u{1e023}', to: '\u{1e024}', },
-    Range { from: '\u{1e025}', to: '\u{1e025}', },
-    Range { from: '\u{1e026}', to: '\u{1e02a}', },
-    Range { from: '\u{1e02b}', to: '\u{1e0ff}', },
-    Range { from: '\u{1e100}', to: '\u{1e12c}', },
-    Range { from: '\u{1e12d}', to: '\u{1e12f}', },
-    Range { from: '\u{1e130}', to: '\u{1e13d}', },
-    Range { from: '\u{1e13e}', to: '\u{1e13f}', },
-    Range { from: '\u{1e140}', to: '\u{1e149}', },
-    Range { from: '\u{1e14a}', to: '\u{1e14d}', },
-    Range { from: '\u{1e14e}', to: '\u{1e14f}', },
-    Range { from: '\u{1e150}', to: '\u{1e2bf}', },
-    Range { from: '\u{1e2c0}', to: '\u{1e2f9}', },
-    Range { from: '\u{1e2fa}', to: '\u{1e2fe}', },
-    Range { from: '\u{1e2ff}', to: '\u{1e2ff}', },
-    Range { from: '\u{1e300}', to: '\u{1e7ff}', },
-    Range { from: '\u{1e800}', to: '\u{1e8c4}', },
-    Range { from: '\u{1e8c5}', to: '\u{1e8c6}', },
-    Range { from: '\u{1e8c7}', to: '\u{1e8cf}', },
-    Range { from: '\u{1e8d0}', to: '\u{1e8d6}', },
-    Range { from: '\u{1e8d7}', to: '\u{1e8ff}', },
-    Range { from: '\u{1e900}', to: '\u{1e921}', },
-    Range { from: '\u{1e922}', to: '\u{1e94b}', },
-    Range { from: '\u{1e94c}', to: '\u{1e94f}', },
-    Range { from: '\u{1e950}', to: '\u{1e959}', },
-    Range { from: '\u{1e95a}', to: '\u{1e95d}', },
-    Range { from: '\u{1e95e}', to: '\u{1e95f}', },
-    Range { from: '\u{1e960}', to: '\u{1ec70}', },
-    Range { from: '\u{1ec71}', to: '\u{1ecb4}', },
-    Range { from: '\u{1ecb5}', to: '\u{1ed00}', },
-    Range { from: '\u{1ed01}', to: '\u{1ed3d}', },
-    Range { from: '\u{1ed3e}', to: '\u{1edff}', },
-    Range { from: '\u{1ee00}', to: '\u{1ee24}', },
-    Range { from: '\u{1ee25}', to: '\u{1ee26}', },
-    Range { from: '\u{1ee27}', to: '\u{1ee3b}', },
-    Range { from: '\u{1ee3c}', to: '\u{1ee41}', },
-    Range { from: '\u{1ee42}', to: '\u{1ee42}', },
-    Range { from: '\u{1ee43}', to: '\u{1ee46}', },
-    Range { from: '\u{1ee47}', to: '\u{1ee54}', },
-    Range { from: '\u{1ee55}', to: '\u{1ee56}', },
-    Range { from: '\u{1ee57}', to: '\u{1ee64}', },
-    Range { from: '\u{1ee65}', to: '\u{1ee66}', },
-    Range { from: '\u{1ee67}', to: '\u{1ee9b}', },
-    Range { from: '\u{1ee9c}', to: '\u{1eea0}', },
-    Range { from: '\u{1eea1}', to: '\u{1eebb}', },
-    Range { from: '\u{1eebc}', to: '\u{1eeef}', },
-    Range { from: '\u{1eef0}', to: '\u{1eef1}', },
-    Range { from: '\u{1eef2}', to: '\u{1efff}', },
-    Range { from: '\u{1f000}', to: '\u{1f02b}', },
-    Range { from: '\u{1f02c}', to: '\u{1f02f}', },
-    Range { from: '\u{1f030}', to: '\u{1f093}', },
-    Range { from: '\u{1f094}', to: '\u{1f09f}', },
-    Range { from: '\u{1f0a0}', to: '\u{1f0ae}', },
-    Range { from: '\u{1f0af}', to: '\u{1f0b0}', },
-    Range { from: '\u{1f0b1}', to: '\u{1f0bf}', },
-    Range { from: '\u{1f0c0}', to: '\u{1f0c0}', },
-    Range { from: '\u{1f0c1}', to: '\u{1f0cf}', },
-    Range { from: '\u{1f0d0}', to: '\u{1f0d0}', },
-    Range { from: '\u{1f0d1}', to: '\u{1f0f5}', },
-    Range { from: '\u{1f0f6}', to: '\u{1f100}', },
-    Range { from: '\u{1f101}', to: '\u{1f10a}', },
-    Range { from: '\u{1f10b}', to: '\u{1f10f}', },
-    Range { from: '\u{1f110}', to: '\u{1f14f}', },
-    Range { from: '\u{1f150}', to: '\u{1f169}', },
-    Range { from: '\u{1f16a}', to: '\u{1f16c}', },
-    Range { from: '\u{1f16d}', to: '\u{1f18f}', },
-    Range { from: '\u{1f190}', to: '\u{1f190}', },
-    Range { from: '\u{1f191}', to: '\u{1f1ad}', },
-    Range { from: '\u{1f1ae}', to: '\u{1f1e5}', },
-    Range { from: '\u{1f1e6}', to: '\u{1f1ff}', },
-    Range { from: '\u{1f200}', to: '\u{1f202}', },
-    Range { from: '\u{1f203}', to: '\u{1f20f}', },
-    Range { from: '\u{1f210}', to: '\u{1f23b}', },
-    Range { from: '\u{1f23c}', to: '\u{1f23f}', },
-    Range { from: '\u{1f240}', to: '\u{1f248}', },
-    Range { from: '\u{1f249}', to: '\u{1f24f}', },
-    Range { from: '\u{1f250}', to: '\u{1f251}', },
-    Range { from: '\u{1f252}', to: '\u{1f25f}', },
-    Range { from: '\u{1f260}', to: '\u{1f265}', },
-    Range { from: '\u{1f266}', to: '\u{1f2ff}', },
-    Range { from: '\u{1f300}', to: '\u{1f6d7}', },
-    Range { from: '\u{1f6d8}', to: '\u{1f6df}', },
-    Range { from: '\u{1f6e0}', to: '\u{1f6ec}', },
-    Range { from: '\u{1f6ed}', to: '\u{1f6ef}', },
-    Range { from: '\u{1f6f0}', to: '\u{1f6fc}', },
-    Range { from: '\u{1f6fd}', to: '\u{1f6ff}', },
-    Range { from: '\u{1f700}', to: '\u{1f773}', },
-    Range { from: '\u{1f774}', to: '\u{1f77f}', },
-    Range { from: '\u{1f780}', to: '\u{1f7d8}', },
-    Range { from: '\u{1f7d9}', to: '\u{1f7df}', },
-    Range { from: '\u{1f7e0}', to: '\u{1f7eb}', },
-    Range { from: '\u{1f7ec}', to: '\u{1f7ff}', },
-    Range { from: '\u{1f800}', to: '\u{1f80b}', },
-    Range { from: '\u{1f80c}', to: '\u{1f80f}', },
-    Range { from: '\u{1f810}', to: '\u{1f847}', },
-    Range { from: '\u{1f848}', to: '\u{1f84f}', },
-    Range { from: '\u{1f850}', to: '\u{1f859}', },
-    Range { from: '\u{1f85a}', to: '\u{1f85f}', },
-    Range { from: '\u{1f860}', to: '\u{1f887}', },
-    Range { from: '\u{1f888}', to: '\u{1f88f}', },
-    Range { from: '\u{1f890}', to: '\u{1f8ad}', },
-    Range { from: '\u{1f8ae}', to: '\u{1f8af}', },
-    Range { from: '\u{1f8b0}', to: '\u{1f8b1}', },
-    Range { from: '\u{1f8b2}', to: '\u{1f8ff}', },
-    Range { from: '\u{1f900}', to: '\u{1f978}', },
-    Range { from: '\u{1f979}', to: '\u{1f979}', },
-    Range { from: '\u{1f97a}', to: '\u{1f9cb}', },
-    Range { from: '\u{1f9cc}', to: '\u{1f9cc}', },
-    Range { from: '\u{1f9cd}', to: '\u{1fa53}', },
-    Range { from: '\u{1fa54}', to: '\u{1fa5f}', },
-    Range { from: '\u{1fa60}', to: '\u{1fa6d}', },
-    Range { from: '\u{1fa6e}', to: '\u{1fa6f}', },
-    Range { from: '\u{1fa70}', to: '\u{1fa74}', },
-    Range { from: '\u{1fa75}', to: '\u{1fa77}', },
-    Range { from: '\u{1fa78}', to: '\u{1fa7a}', },
-    Range { from: '\u{1fa7b}', to: '\u{1fa7f}', },
-    Range { from: '\u{1fa80}', to: '\u{1fa86}', },
-    Range { from: '\u{1fa87}', to: '\u{1fa8f}', },
-    Range { from: '\u{1fa90}', to: '\u{1faa8}', },
-    Range { from: '\u{1faa9}', to: '\u{1faaf}', },
-    Range { from: '\u{1fab0}', to: '\u{1fab6}', },
-    Range { from: '\u{1fab7}', to: '\u{1fabf}', },
-    Range { from: '\u{1fac0}', to: '\u{1fac2}', },
-    Range { from: '\u{1fac3}', to: '\u{1facf}', },
-    Range { from: '\u{1fad0}', to: '\u{1fad6}', },
-    Range { from: '\u{1fad7}', to: '\u{1faff}', },
-    Range { from: '\u{1fb00}', to: '\u{1fb92}', },
-    Range { from: '\u{1fb93}', to: '\u{1fb93}', },
-    Range { from: '\u{1fb94}', to: '\u{1fbca}', },
-    Range { from: '\u{1fbcb}', to: '\u{1fbef}', },
-    Range { from: '\u{1fbf0}', to: '\u{1fbf9}', },
-    Range { from: '\u{1fbfa}', to: '\u{1ffff}', },
-    Range { from: '\u{20000}', to: '\u{2a6dd}', },
-    Range { from: '\u{2a6de}', to: '\u{2a6ff}', },
-    Range { from: '\u{2a700}', to: '\u{2b734}', },
-    Range { from: '\u{2b735}', to: '\u{2b73f}', },
-    Range { from: '\u{2b740}', to: '\u{2b81d}', },
-    Range { from: '\u{2b81e}', to: '\u{2b81f}', },
-    Range { from: '\u{2b820}', to: '\u{2cea1}', },
-    Range { from: '\u{2cea2}', to: '\u{2ceaf}', },
-    Range { from: '\u{2ceb0}', to: '\u{2ebe0}', },
-    Range { from: '\u{2ebe1}', to: '\u{2f7ff}', },
-    Range { from: '\u{2f800}', to: '\u{2f830}', },
-    Range { from: '\u{2f831}', to: '\u{2f833}', },
-    Range { from: '\u{2f834}', to: '\u{2f844}', },
-    Range { from: '\u{2f845}', to: '\u{2f846}', },
-    Range { from: '\u{2f847}', to: '\u{2f869}', },
-    Range { from: '\u{2f86a}', to: '\u{2f86b}', },
-    Range { from: '\u{2f86c}', to: '\u{2f890}', },
-    Range { from: '\u{2f891}', to: '\u{2f892}', },
-    Range { from: '\u{2f893}', to: '\u{2f893}', },
-    Range { from: '\u{2f894}', to: '\u{2f895}', },
-    Range { from: '\u{2f896}', to: '\u{2f92b}', },
-    Range { from: '\u{2f92c}', to: '\u{2f92d}', },
-    Range { from: '\u{2f92e}', to: '\u{2f945}', },
-    Range { from: '\u{2f946}', to: '\u{2f947}', },
-    Range { from: '\u{2f948}', to: '\u{2f95c}', },
-    Range { from: '\u{2f95d}', to: '\u{2f95e}', },
-    Range { from: '\u{2f95f}', to: '\u{2f9fd}', },
-    Range { from: '\u{2f9fe}', to: '\u{2f9ff}', },
-    Range { from: '\u{2fa00}', to: '\u{2fa1d}', },
-    Range { from: '\u{2fa1e}', to: '\u{2ffff}', },
-    Range { from: '\u{30000}', to: '\u{3134a}', },
-    Range { from: '\u{3134b}', to: '\u{e00ff}', },
-    Range { from: '\u{e0100}', to: '\u{e01ef}', },
-    Range { from: '\u{e01f0}', to: '\u{10ffff}', },
+static TABLE: &[char] = &[
+    '\u{0}',
+    '\u{2d}',
+    '\u{2f}',
+    '\u{30}',
+    '\u{3a}',
+    '\u{41}',
+    '\u{5b}',
+    '\u{61}',
+    '\u{7b}',
+    '\u{80}',
+    '\u{a0}',
+    '\u{a1}',
+    '\u{a8}',
+    '\u{ab}',
+    '\u{ad}',
+    '\u{b0}',
+    '\u{b2}',
+    '\u{e0}',
+    '\u{f7}',
+    '\u{f8}',
+    '\u{100}',
+    '\u{132}',
+    '\u{134}',
+    '\u{137}',
+    '\u{139}',
+    '\u{13f}',
+    '\u{141}',
+    '\u{18c}',
+    '\u{18e}',
+    '\u{199}',
+    '\u{19c}',
+    '\u{1aa}',
+    '\u{1ac}',
+    '\u{1b9}',
+    '\u{1bc}',
+    '\u{1bd}',
+    '\u{1c4}',
+    '\u{1c7}',
+    '\u{1ca}',
+    '\u{1cd}',
+    '\u{1dc}',
+    '\u{1de}',
+    '\u{1ef}',
+    '\u{1f1}',
+    '\u{1f4}',
+    '\u{233}',
+    '\u{23a}',
+    '\u{23f}',
+    '\u{241}',
+    '\u{24f}',
+    '\u{2b0}',
+    '\u{2b9}',
+    '\u{2c2}',
+    '\u{2c6}',
+    '\u{2d2}',
+    '\u{2d8}',
+    '\u{2de}',
+    '\u{2e0}',
+    '\u{2e5}',
+    '\u{2ec}',
+    '\u{2ef}',
+    '\u{300}',
+    '\u{340}',
+    '\u{346}',
+    '\u{34f}',
+    '\u{350}',
+    '\u{370}',
+    '\u{378}',
+    '\u{37a}',
+    '\u{37b}',
+    '\u{37e}',
+    '\u{380}',
+    '\u{384}',
+    '\u{3ac}',
+    '\u{3c2}',
+    '\u{3c3}',
+    '\u{3cf}',
+    '\u{3fb}',
+    '\u{3fd}',
+    '\u{430}',
+    '\u{460}',
+    '\u{483}',
+    '\u{488}',
+    '\u{48a}',
+    '\u{4ce}',
+    '\u{4d0}',
+    '\u{557}',
+    '\u{559}',
+    '\u{55a}',
+    '\u{560}',
+    '\u{587}',
+    '\u{589}',
+    '\u{58b}',
+    '\u{58d}',
+    '\u{590}',
+    '\u{591}',
+    '\u{5be}',
+    '\u{5c1}',
+    '\u{5c3}',
+    '\u{5c4}',
+    '\u{5c6}',
+    '\u{5c8}',
+    '\u{5d0}',
+    '\u{5eb}',
+    '\u{5ef}',
+    '\u{5f5}',
+    '\u{606}',
+    '\u{610}',
+    '\u{61b}',
+    '\u{61c}',
+    '\u{61e}',
+    '\u{620}',
+    '\u{640}',
+    '\u{641}',
+    '\u{66a}',
+    '\u{66e}',
+    '\u{675}',
+    '\u{679}',
+    '\u{6d4}',
+    '\u{6d5}',
+    '\u{6dd}',
+    '\u{6df}',
+    '\u{6e9}',
+    '\u{6ea}',
+    '\u{700}',
+    '\u{70e}',
+    '\u{710}',
+    '\u{74b}',
+    '\u{74d}',
+    '\u{7b2}',
+    '\u{7c0}',
+    '\u{7f6}',
+    '\u{7fb}',
+    '\u{7fd}',
+    '\u{7fe}',
+    '\u{800}',
+    '\u{82e}',
+    '\u{830}',
+    '\u{83f}',
+    '\u{840}',
+    '\u{85c}',
+    '\u{85e}',
+    '\u{860}',
+    '\u{86b}',
+    '\u{8a0}',
+    '\u{8b5}',
+    '\u{8b6}',
+    '\u{8c8}',
+    '\u{8d3}',
+    '\u{8e2}',
+    '\u{8e3}',
+    '\u{958}',
+    '\u{960}',
+    '\u{964}',
+    '\u{966}',
+    '\u{970}',
+    '\u{971}',
+    '\u{984}',
+    '\u{985}',
+    '\u{98d}',
+    '\u{98f}',
+    '\u{991}',
+    '\u{993}',
+    '\u{9a9}',
+    '\u{9aa}',
+    '\u{9b1}',
+    '\u{9b3}',
+    '\u{9b6}',
+    '\u{9ba}',
+    '\u{9bc}',
+    '\u{9c5}',
+    '\u{9c7}',
+    '\u{9c9}',
+    '\u{9cb}',
+    '\u{9cf}',
+    '\u{9d7}',
+    '\u{9d8}',
+    '\u{9dc}',
+    '\u{9e0}',
+    '\u{9e4}',
+    '\u{9e6}',
+    '\u{9f2}',
+    '\u{9fc}',
+    '\u{9ff}',
+    '\u{a01}',
+    '\u{a04}',
+    '\u{a05}',
+    '\u{a0b}',
+    '\u{a0f}',
+    '\u{a11}',
+    '\u{a13}',
+    '\u{a29}',
+    '\u{a2a}',
+    '\u{a31}',
+    '\u{a38}',
+    '\u{a3a}',
+    '\u{a3c}',
+    '\u{a3e}',
+    '\u{a43}',
+    '\u{a47}',
+    '\u{a49}',
+    '\u{a4b}',
+    '\u{a4e}',
+    '\u{a51}',
+    '\u{a52}',
+    '\u{a59}',
+    '\u{a5f}',
+    '\u{a66}',
+    '\u{a76}',
+    '\u{a77}',
+    '\u{a81}',
+    '\u{a84}',
+    '\u{a85}',
+    '\u{a8e}',
+    '\u{a8f}',
+    '\u{a92}',
+    '\u{a93}',
+    '\u{aa9}',
+    '\u{aaa}',
+    '\u{ab1}',
+    '\u{ab2}',
+    '\u{ab4}',
+    '\u{ab5}',
+    '\u{aba}',
+    '\u{abc}',
+    '\u{ac6}',
+    '\u{ac7}',
+    '\u{aca}',
+    '\u{acb}',
+    '\u{ace}',
+    '\u{ad0}',
+    '\u{ad1}',
+    '\u{ae0}',
+    '\u{ae4}',
+    '\u{ae6}',
+    '\u{af0}',
+    '\u{af2}',
+    '\u{af9}',
+    '\u{b00}',
+    '\u{b01}',
+    '\u{b04}',
+    '\u{b05}',
+    '\u{b0d}',
+    '\u{b0f}',
+    '\u{b11}',
+    '\u{b13}',
+    '\u{b29}',
+    '\u{b2a}',
+    '\u{b31}',
+    '\u{b32}',
+    '\u{b34}',
+    '\u{b35}',
+    '\u{b3a}',
+    '\u{b3c}',
+    '\u{b45}',
+    '\u{b47}',
+    '\u{b49}',
+    '\u{b4b}',
+    '\u{b4e}',
+    '\u{b55}',
+    '\u{b58}',
+    '\u{b5c}',
+    '\u{b5f}',
+    '\u{b64}',
+    '\u{b66}',
+    '\u{b70}',
+    '\u{b72}',
+    '\u{b78}',
+    '\u{b82}',
+    '\u{b84}',
+    '\u{b85}',
+    '\u{b8b}',
+    '\u{b8e}',
+    '\u{b91}',
+    '\u{b92}',
+    '\u{b96}',
+    '\u{b99}',
+    '\u{b9b}',
+    '\u{b9e}',
+    '\u{ba0}',
+    '\u{ba3}',
+    '\u{ba5}',
+    '\u{ba8}',
+    '\u{bab}',
+    '\u{bae}',
+    '\u{bba}',
+    '\u{bbe}',
+    '\u{bc3}',
+    '\u{bc6}',
+    '\u{bc9}',
+    '\u{bca}',
+    '\u{bce}',
+    '\u{bd0}',
+    '\u{bd1}',
+    '\u{bd7}',
+    '\u{bd8}',
+    '\u{be6}',
+    '\u{bf0}',
+    '\u{bfb}',
+    '\u{c00}',
+    '\u{c0d}',
+    '\u{c0e}',
+    '\u{c11}',
+    '\u{c12}',
+    '\u{c29}',
+    '\u{c2a}',
+    '\u{c3a}',
+    '\u{c3d}',
+    '\u{c45}',
+    '\u{c46}',
+    '\u{c49}',
+    '\u{c4a}',
+    '\u{c4e}',
+    '\u{c55}',
+    '\u{c57}',
+    '\u{c58}',
+    '\u{c5b}',
+    '\u{c60}',
+    '\u{c64}',
+    '\u{c66}',
+    '\u{c70}',
+    '\u{c77}',
+    '\u{c80}',
+    '\u{c84}',
+    '\u{c85}',
+    '\u{c8d}',
+    '\u{c8e}',
+    '\u{c91}',
+    '\u{c92}',
+    '\u{ca9}',
+    '\u{caa}',
+    '\u{cb4}',
+    '\u{cb5}',
+    '\u{cba}',
+    '\u{cbc}',
+    '\u{cc5}',
+    '\u{cc6}',
+    '\u{cc9}',
+    '\u{cca}',
+    '\u{cce}',
+    '\u{cd5}',
+    '\u{cd7}',
+    '\u{cde}',
+    '\u{ce0}',
+    '\u{ce4}',
+    '\u{ce6}',
+    '\u{cf0}',
+    '\u{cf1}',
+    '\u{cf3}',
+    '\u{d00}',
+    '\u{d0d}',
+    '\u{d0e}',
+    '\u{d11}',
+    '\u{d12}',
+    '\u{d45}',
+    '\u{d46}',
+    '\u{d49}',
+    '\u{d4a}',
+    '\u{d4f}',
+    '\u{d50}',
+    '\u{d54}',
+    '\u{d58}',
+    '\u{d5f}',
+    '\u{d64}',
+    '\u{d66}',
+    '\u{d70}',
+    '\u{d7a}',
+    '\u{d80}',
+    '\u{d81}',
+    '\u{d84}',
+    '\u{d85}',
+    '\u{d97}',
+    '\u{d9a}',
+    '\u{db2}',
+    '\u{db3}',
+    '\u{dbc}',
+    '\u{dbe}',
+    '\u{dc0}',
+    '\u{dc7}',
+    '\u{dca}',
+    '\u{dcb}',
+    '\u{dcf}',
+    '\u{dd5}',
+    '\u{dd8}',
+    '\u{de0}',
+    '\u{de6}',
+    '\u{df0}',
+    '\u{df2}',
+    '\u{df4}',
+    '\u{df5}',
+    '\u{e01}',
+    '\u{e33}',
+    '\u{e34}',
+    '\u{e3b}',
+    '\u{e3f}',
+    '\u{e40}',
+    '\u{e4f}',
+    '\u{e50}',
+    '\u{e5a}',
+    '\u{e5c}',
+    '\u{e81}',
+    '\u{e83}',
+    '\u{e86}',
+    '\u{e8b}',
+    '\u{e8c}',
+    '\u{ea4}',
+    '\u{ea7}',
+    '\u{eb3}',
+    '\u{eb4}',
+    '\u{ebe}',
+    '\u{ec0}',
+    '\u{ec5}',
+    '\u{ec8}',
+    '\u{ece}',
+    '\u{ed0}',
+    '\u{eda}',
+    '\u{edc}',
+    '\u{ede}',
+    '\u{ee0}',
+    '\u{f00}',
+    '\u{f01}',
+    '\u{f0b}',
+    '\u{f0d}',
+    '\u{f18}',
+    '\u{f1a}',
+    '\u{f20}',
+    '\u{f2a}',
+    '\u{f35}',
+    '\u{f3a}',
+    '\u{f3e}',
+    '\u{f43}',
+    '\u{f44}',
+    '\u{f48}',
+    '\u{f49}',
+    '\u{f4d}',
+    '\u{f4e}',
+    '\u{f52}',
+    '\u{f53}',
+    '\u{f57}',
+    '\u{f58}',
+    '\u{f5c}',
+    '\u{f5d}',
+    '\u{f69}',
+    '\u{f6a}',
+    '\u{f6d}',
+    '\u{f71}',
+    '\u{f73}',
+    '\u{f7a}',
+    '\u{f81}',
+    '\u{f82}',
+    '\u{f85}',
+    '\u{f86}',
+    '\u{f93}',
+    '\u{f94}',
+    '\u{f98}',
+    '\u{f99}',
+    '\u{f9d}',
+    '\u{f9e}',
+    '\u{fa2}',
+    '\u{fa3}',
+    '\u{fa7}',
+    '\u{fa8}',
+    '\u{fac}',
+    '\u{fad}',
+    '\u{fb9}',
+    '\u{fba}',
+    '\u{fbd}',
+    '\u{fbe}',
+    '\u{fc6}',
+    '\u{fc7}',
+    '\u{fcd}',
+    '\u{fce}',
+    '\u{fdb}',
+    '\u{1000}',
+    '\u{104a}',
+    '\u{1050}',
+    '\u{109e}',
+    '\u{10a0}',
+    '\u{10c7}',
+    '\u{10c8}',
+    '\u{10cd}',
+    '\u{10ce}',
+    '\u{10d0}',
+    '\u{10fb}',
+    '\u{10fd}',
+    '\u{1100}',
+    '\u{115f}',
+    '\u{1161}',
+    '\u{1200}',
+    '\u{1249}',
+    '\u{124a}',
+    '\u{124e}',
+    '\u{1250}',
+    '\u{1257}',
+    '\u{125a}',
+    '\u{125e}',
+    '\u{1260}',
+    '\u{1289}',
+    '\u{128a}',
+    '\u{128e}',
+    '\u{1290}',
+    '\u{12b1}',
+    '\u{12b2}',
+    '\u{12b6}',
+    '\u{12b8}',
+    '\u{12bf}',
+    '\u{12c2}',
+    '\u{12c6}',
+    '\u{12c8}',
+    '\u{12d7}',
+    '\u{12d8}',
+    '\u{1311}',
+    '\u{1312}',
+    '\u{1316}',
+    '\u{1318}',
+    '\u{135b}',
+    '\u{135d}',
+    '\u{1360}',
+    '\u{137d}',
+    '\u{1380}',
+    '\u{1390}',
+    '\u{139a}',
+    '\u{13a0}',
+    '\u{13f6}',
+    '\u{13f8}',
+    '\u{13fe}',
+    '\u{1400}',
+    '\u{1401}',
+    '\u{166d}',
+    '\u{166f}',
+    '\u{1680}',
+    '\u{1681}',
+    '\u{169b}',
+    '\u{169d}',
+    '\u{16a0}',
+    '\u{16eb}',
+    '\u{16f1}',
+    '\u{16f9}',
+    '\u{1700}',
+    '\u{170d}',
+    '\u{170e}',
+    '\u{1715}',
+    '\u{1720}',
+    '\u{1735}',
+    '\u{1737}',
+    '\u{1740}',
+    '\u{1754}',
+    '\u{1760}',
+    '\u{176d}',
+    '\u{176e}',
+    '\u{1771}',
+    '\u{1772}',
+    '\u{1774}',
+    '\u{1780}',
+    '\u{17b4}',
+    '\u{17b6}',
+    '\u{17d4}',
+    '\u{17d7}',
+    '\u{17d8}',
+    '\u{17dc}',
+    '\u{17de}',
+    '\u{17e0}',
+    '\u{17ea}',
+    '\u{17f0}',
+    '\u{17fa}',
+    '\u{1800}',
+    '\u{1806}',
+    '\u{1807}',
+    '\u{180b}',
+    '\u{180e}',
+    '\u{1810}',
+    '\u{181a}',
+    '\u{1820}',
+    '\u{1879}',
+    '\u{1880}',
+    '\u{18ab}',
+    '\u{18b0}',
+    '\u{18f6}',
+    '\u{1900}',
+    '\u{191f}',
+    '\u{1920}',
+    '\u{192c}',
+    '\u{1930}',
+    '\u{193c}',
+    '\u{1940}',
+    '\u{1941}',
+    '\u{1944}',
+    '\u{1946}',
+    '\u{196e}',
+    '\u{1970}',
+    '\u{1975}',
+    '\u{1980}',
+    '\u{19ac}',
+    '\u{19b0}',
+    '\u{19ca}',
+    '\u{19d0}',
+    '\u{19da}',
+    '\u{19db}',
+    '\u{19de}',
+    '\u{1a00}',
+    '\u{1a1c}',
+    '\u{1a1e}',
+    '\u{1a20}',
+    '\u{1a5f}',
+    '\u{1a60}',
+    '\u{1a7d}',
+    '\u{1a7f}',
+    '\u{1a8a}',
+    '\u{1a90}',
+    '\u{1a9a}',
+    '\u{1aa0}',
+    '\u{1aa7}',
+    '\u{1aa8}',
+    '\u{1aae}',
+    '\u{1ab0}',
+    '\u{1abe}',
+    '\u{1abf}',
+    '\u{1ac1}',
+    '\u{1b00}',
+    '\u{1b4c}',
+    '\u{1b50}',
+    '\u{1b5a}',
+    '\u{1b6b}',
+    '\u{1b74}',
+    '\u{1b7d}',
+    '\u{1b80}',
+    '\u{1bf4}',
+    '\u{1bfc}',
+    '\u{1c00}',
+    '\u{1c38}',
+    '\u{1c3b}',
+    '\u{1c40}',
+    '\u{1c4a}',
+    '\u{1c4d}',
+    '\u{1c7e}',
+    '\u{1c80}',
+    '\u{1c84}',
+    '\u{1c86}',
+    '\u{1c89}',
+    '\u{1c90}',
+    '\u{1cbb}',
+    '\u{1cbd}',
+    '\u{1cc0}',
+    '\u{1cc8}',
+    '\u{1cd0}',
+    '\u{1cd3}',
+    '\u{1cd4}',
+    '\u{1cfb}',
+    '\u{1d00}',
+    '\u{1d2c}',
+    '\u{1d6b}',
+    '\u{1d78}',
+    '\u{1d79}',
+    '\u{1d9b}',
+    '\u{1dc0}',
+    '\u{1dfa}',
+    '\u{1dfb}',
+    '\u{1e00}',
+    '\u{1e95}',
+    '\u{1e9a}',
+    '\u{1e9c}',
+    '\u{1e9e}',
+    '\u{1eff}',
+    '\u{1f08}',
+    '\u{1f10}',
+    '\u{1f16}',
+    '\u{1f18}',
+    '\u{1f1e}',
+    '\u{1f20}',
+    '\u{1f28}',
+    '\u{1f30}',
+    '\u{1f38}',
+    '\u{1f40}',
+    '\u{1f46}',
+    '\u{1f48}',
+    '\u{1f4e}',
+    '\u{1f50}',
+    '\u{1f58}',
+    '\u{1f60}',
+    '\u{1f68}',
+    '\u{1f7e}',
+    '\u{1f80}',
+    '\u{1fb0}',
+    '\u{1fb2}',
+    '\u{1fd0}',
+    '\u{1fd3}',
+    '\u{1fd4}',
+    '\u{1fd6}',
+    '\u{1fd8}',
+    '\u{1fe0}',
+    '\u{1fe3}',
+    '\u{1fe4}',
+    '\u{1fe8}',
+    '\u{1ff0}',
+    '\u{1ff2}',
+    '\u{2000}',
+    '\u{200b}',
+    '\u{200c}',
+    '\u{200e}',
+    '\u{2010}',
+    '\u{2012}',
+    '\u{2017}',
+    '\u{2018}',
+    '\u{2024}',
+    '\u{2027}',
+    '\u{2028}',
+    '\u{202f}',
+    '\u{2030}',
+    '\u{2033}',
+    '\u{2038}',
+    '\u{203c}',
+    '\u{203f}',
+    '\u{2047}',
+    '\u{204a}',
+    '\u{2057}',
+    '\u{2058}',
+    '\u{205f}',
+    '\u{2061}',
+    '\u{2064}',
+    '\u{2065}',
+    '\u{2070}',
+    '\u{2072}',
+    '\u{2074}',
+    '\u{209d}',
+    '\u{20a0}',
+    '\u{20a8}',
+    '\u{20a9}',
+    '\u{20c0}',
+    '\u{20d0}',
+    '\u{20f1}',
+    '\u{2100}',
+    '\u{210b}',
+    '\u{210f}',
+    '\u{2110}',
+    '\u{2112}',
+    '\u{2114}',
+    '\u{2117}',
+    '\u{2119}',
+    '\u{211b}',
+    '\u{211e}',
+    '\u{2120}',
+    '\u{212f}',
+    '\u{2131}',
+    '\u{213d}',
+    '\u{213f}',
+    '\u{2141}',
+    '\u{2145}',
+    '\u{2147}',
+    '\u{214a}',
+    '\u{214e}',
+    '\u{2180}',
+    '\u{2183}',
+    '\u{2185}',
+    '\u{2189}',
+    '\u{218a}',
+    '\u{218c}',
+    '\u{2190}',
+    '\u{222c}',
+    '\u{2231}',
+    '\u{2260}',
+    '\u{2261}',
+    '\u{226e}',
+    '\u{2270}',
+    '\u{2329}',
+    '\u{232b}',
+    '\u{2427}',
+    '\u{2440}',
+    '\u{244b}',
+    '\u{2460}',
+    '\u{2488}',
+    '\u{249c}',
+    '\u{24eb}',
+    '\u{2a0c}',
+    '\u{2a0d}',
+    '\u{2a74}',
+    '\u{2a77}',
+    '\u{2adc}',
+    '\u{2add}',
+    '\u{2b74}',
+    '\u{2b76}',
+    '\u{2b96}',
+    '\u{2b97}',
+    '\u{2c00}',
+    '\u{2c30}',
+    '\u{2c5f}',
+    '\u{2c65}',
+    '\u{2c67}',
+    '\u{2c73}',
+    '\u{2c75}',
+    '\u{2c76}',
+    '\u{2c7c}',
+    '\u{2ce3}',
+    '\u{2ce5}',
+    '\u{2ceb}',
+    '\u{2cee}',
+    '\u{2cf2}',
+    '\u{2cf4}',
+    '\u{2cf9}',
+    '\u{2d00}',
+    '\u{2d26}',
+    '\u{2d28}',
+    '\u{2d2d}',
+    '\u{2d2e}',
+    '\u{2d30}',
+    '\u{2d68}',
+    '\u{2d6f}',
+    '\u{2d71}',
+    '\u{2d7f}',
+    '\u{2d97}',
+    '\u{2da0}',
+    '\u{2da7}',
+    '\u{2da8}',
+    '\u{2daf}',
+    '\u{2db0}',
+    '\u{2db7}',
+    '\u{2db8}',
+    '\u{2dbf}',
+    '\u{2dc0}',
+    '\u{2dc7}',
+    '\u{2dc8}',
+    '\u{2dcf}',
+    '\u{2dd0}',
+    '\u{2dd7}',
+    '\u{2dd8}',
+    '\u{2ddf}',
+    '\u{2de0}',
+    '\u{2e00}',
+    '\u{2e2f}',
+    '\u{2e30}',
+    '\u{2e53}',
+    '\u{2e80}',
+    '\u{2e9a}',
+    '\u{2e9b}',
+    '\u{2e9f}',
+    '\u{2ea0}',
+    '\u{2ef3}',
+    '\u{2ef4}',
+    '\u{2f00}',
+    '\u{2fd6}',
+    '\u{3000}',
+    '\u{3003}',
+    '\u{3005}',
+    '\u{3008}',
+    '\u{302a}',
+    '\u{302e}',
+    '\u{3036}',
+    '\u{303d}',
+    '\u{3040}',
+    '\u{3041}',
+    '\u{3097}',
+    '\u{3099}',
+    '\u{309b}',
+    '\u{309d}',
+    '\u{309f}',
+    '\u{30a1}',
+    '\u{30ff}',
+    '\u{3100}',
+    '\u{3105}',
+    '\u{3130}',
+    '\u{3190}',
+    '\u{3192}',
+    '\u{31a0}',
+    '\u{31c0}',
+    '\u{31e4}',
+    '\u{31f0}',
+    '\u{3200}',
+    '\u{3248}',
+    '\u{3250}',
+    '\u{3400}',
+    '\u{4dc0}',
+    '\u{4e00}',
+    '\u{9ffd}',
+    '\u{a000}',
+    '\u{a48d}',
+    '\u{a490}',
+    '\u{a4c7}',
+    '\u{a4d0}',
+    '\u{a4fe}',
+    '\u{a500}',
+    '\u{a60d}',
+    '\u{a610}',
+    '\u{a62c}',
+    '\u{a640}',
+    '\u{a66d}',
+    '\u{a670}',
+    '\u{a674}',
+    '\u{a67e}',
+    '\u{a69e}',
+    '\u{a6e6}',
+    '\u{a6f0}',
+    '\u{a6f2}',
+    '\u{a6f8}',
+    '\u{a700}',
+    '\u{a717}',
+    '\u{a720}',
+    '\u{a722}',
+    '\u{a72f}',
+    '\u{a732}',
+    '\u{a771}',
+    '\u{a779}',
+    '\u{a787}',
+    '\u{a789}',
+    '\u{a78b}',
+    '\u{a78e}',
+    '\u{a790}',
+    '\u{a793}',
+    '\u{a796}',
+    '\u{a7c0}',
+    '\u{a7c2}',
+    '\u{a7cb}',
+    '\u{a7f5}',
+    '\u{a7f6}',
+    '\u{a7f8}',
+    '\u{a7fa}',
+    '\u{a828}',
+    '\u{a82c}',
+    '\u{a82d}',
+    '\u{a830}',
+    '\u{a83a}',
+    '\u{a840}',
+    '\u{a874}',
+    '\u{a878}',
+    '\u{a880}',
+    '\u{a8c6}',
+    '\u{a8ce}',
+    '\u{a8d0}',
+    '\u{a8da}',
+    '\u{a8e0}',
+    '\u{a8f8}',
+    '\u{a8fb}',
+    '\u{a8fd}',
+    '\u{a92e}',
+    '\u{a930}',
+    '\u{a954}',
+    '\u{a95f}',
+    '\u{a97d}',
+    '\u{a980}',
+    '\u{a9c1}',
+    '\u{a9ce}',
+    '\u{a9cf}',
+    '\u{a9da}',
+    '\u{a9de}',
+    '\u{a9e0}',
+    '\u{a9ff}',
+    '\u{aa00}',
+    '\u{aa37}',
+    '\u{aa40}',
+    '\u{aa4e}',
+    '\u{aa50}',
+    '\u{aa5a}',
+    '\u{aa5c}',
+    '\u{aa60}',
+    '\u{aa77}',
+    '\u{aa7a}',
+    '\u{aac3}',
+    '\u{aadb}',
+    '\u{aade}',
+    '\u{aae0}',
+    '\u{aaf0}',
+    '\u{aaf2}',
+    '\u{aaf7}',
+    '\u{ab01}',
+    '\u{ab07}',
+    '\u{ab09}',
+    '\u{ab0f}',
+    '\u{ab11}',
+    '\u{ab17}',
+    '\u{ab20}',
+    '\u{ab27}',
+    '\u{ab28}',
+    '\u{ab2f}',
+    '\u{ab30}',
+    '\u{ab5b}',
+    '\u{ab60}',
+    '\u{ab69}',
+    '\u{ab6a}',
+    '\u{ab6c}',
+    '\u{ab70}',
+    '\u{abc0}',
+    '\u{abeb}',
+    '\u{abec}',
+    '\u{abee}',
+    '\u{abf0}',
+    '\u{abfa}',
+    '\u{ac00}',
+    '\u{d7a4}',
+    '\u{d7b0}',
+    '\u{d7c7}',
+    '\u{d7cb}',
+    '\u{d7fc}',
+    '\u{f900}',
+    '\u{f907}',
+    '\u{f909}',
+    '\u{fa0e}',
+    '\u{fa10}',
+    '\u{fa13}',
+    '\u{fa15}',
+    '\u{fa23}',
+    '\u{fa25}',
+    '\u{fa27}',
+    '\u{fa2a}',
+    '\u{fa5d}',
+    '\u{fa5f}',
+    '\u{fa6e}',
+    '\u{fa70}',
+    '\u{fada}',
+    '\u{fb00}',
+    '\u{fb05}',
+    '\u{fb07}',
+    '\u{fb13}',
+    '\u{fb18}',
+    '\u{fb1d}',
+    '\u{fb50}',
+    '\u{fb52}',
+    '\u{fb56}',
+    '\u{fb5a}',
+    '\u{fb5e}',
+    '\u{fb62}',
+    '\u{fb66}',
+    '\u{fb6a}',
+    '\u{fb6e}',
+    '\u{fb72}',
+    '\u{fb76}',
+    '\u{fb7a}',
+    '\u{fb7e}',
+    '\u{fb82}',
+    '\u{fb84}',
+    '\u{fb86}',
+    '\u{fb88}',
+    '\u{fb8a}',
+    '\u{fb8c}',
+    '\u{fb8e}',
+    '\u{fb92}',
+    '\u{fb96}',
+    '\u{fb9a}',
+    '\u{fb9e}',
+    '\u{fba0}',
+    '\u{fba4}',
+    '\u{fba6}',
+    '\u{fbaa}',
+    '\u{fbae}',
+    '\u{fbb0}',
+    '\u{fbb2}',
+    '\u{fbc2}',
+    '\u{fbd3}',
+    '\u{fbd7}',
+    '\u{fbd9}',
+    '\u{fbdb}',
+    '\u{fbdd}',
+    '\u{fbde}',
+    '\u{fbe0}',
+    '\u{fbe2}',
+    '\u{fbe4}',
+    '\u{fbe8}',
+    '\u{fbea}',
+    '\u{fbec}',
+    '\u{fbee}',
+    '\u{fbf0}',
+    '\u{fbf2}',
+    '\u{fbf4}',
+    '\u{fbf6}',
+    '\u{fbf9}',
+    '\u{fbfc}',
+    '\u{fc00}',
+    '\u{fd3c}',
+    '\u{fd3e}',
+    '\u{fd40}',
+    '\u{fd50}',
+    '\u{fd51}',
+    '\u{fd53}',
+    '\u{fd58}',
+    '\u{fd5a}',
+    '\u{fd5f}',
+    '\u{fd61}',
+    '\u{fd62}',
+    '\u{fd64}',
+    '\u{fd66}',
+    '\u{fd67}',
+    '\u{fd69}',
+    '\u{fd6a}',
+    '\u{fd6c}',
+    '\u{fd6e}',
+    '\u{fd6f}',
+    '\u{fd71}',
+    '\u{fd73}',
+    '\u{fd76}',
+    '\u{fd78}',
+    '\u{fd7c}',
+    '\u{fd7e}',
+    '\u{fd83}',
+    '\u{fd85}',
+    '\u{fd87}',
+    '\u{fd89}',
+    '\u{fd90}',
+    '\u{fd92}',
+    '\u{fd97}',
+    '\u{fd99}',
+    '\u{fd9c}',
+    '\u{fd9e}',
+    '\u{fdc8}',
+    '\u{fdf0}',
+    '\u{fdfe}',
+    '\u{fe00}',
+    '\u{fe10}',
+    '\u{fe19}',
+    '\u{fe20}',
+    '\u{fe30}',
+    '\u{fe33}',
+    '\u{fe35}',
+    '\u{fe45}',
+    '\u{fe47}',
+    '\u{fe49}',
+    '\u{fe4d}',
+    '\u{fe50}',
+    '\u{fe52}',
+    '\u{fe54}',
+    '\u{fe6c}',
+    '\u{fe70}',
+    '\u{fe81}',
+    '\u{fe83}',
+    '\u{fe85}',
+    '\u{fe87}',
+    '\u{fe89}',
+    '\u{fe8d}',
+    '\u{fe8f}',
+    '\u{fe93}',
+    '\u{fe95}',
+    '\u{fe99}',
+    '\u{fe9d}',
+    '\u{fea1}',
+    '\u{fea5}',
+    '\u{fea9}',
+    '\u{feab}',
+    '\u{fead}',
+    '\u{feaf}',
+    '\u{feb1}',
+    '\u{feb5}',
+    '\u{feb9}',
+    '\u{febd}',
+    '\u{fec1}',
+    '\u{fec5}',
+    '\u{fec9}',
+    '\u{fecd}',
+    '\u{fed1}',
+    '\u{fed5}',
+    '\u{fed9}',
+    '\u{fedd}',
+    '\u{fee1}',
+    '\u{fee5}',
+    '\u{fee9}',
+    '\u{feed}',
+    '\u{feef}',
+    '\u{fef1}',
+    '\u{fef5}',
+    '\u{fef7}',
+    '\u{fef9}',
+    '\u{fefb}',
+    '\u{fefd}',
+    '\u{feff}',
+    '\u{ffbf}',
+    '\u{ffc2}',
+    '\u{ffc8}',
+    '\u{ffca}',
+    '\u{ffd0}',
+    '\u{ffd2}',
+    '\u{ffd8}',
+    '\u{ffda}',
+    '\u{ffdd}',
+    '\u{ffe0}',
+    '\u{ffef}',
+    '\u{10000}',
+    '\u{1000c}',
+    '\u{1000d}',
+    '\u{10027}',
+    '\u{10028}',
+    '\u{1003b}',
+    '\u{1003c}',
+    '\u{1003e}',
+    '\u{1003f}',
+    '\u{1004e}',
+    '\u{10050}',
+    '\u{1005e}',
+    '\u{10080}',
+    '\u{100fb}',
+    '\u{10100}',
+    '\u{10103}',
+    '\u{10107}',
+    '\u{10134}',
+    '\u{10137}',
+    '\u{1018f}',
+    '\u{10190}',
+    '\u{1019d}',
+    '\u{101a0}',
+    '\u{101a1}',
+    '\u{101d0}',
+    '\u{101fd}',
+    '\u{101fe}',
+    '\u{10280}',
+    '\u{1029d}',
+    '\u{102a0}',
+    '\u{102d1}',
+    '\u{102e0}',
+    '\u{102e1}',
+    '\u{102fc}',
+    '\u{10300}',
+    '\u{10320}',
+    '\u{10324}',
+    '\u{1032d}',
+    '\u{10341}',
+    '\u{10342}',
+    '\u{1034a}',
+    '\u{1034b}',
+    '\u{10350}',
+    '\u{1037b}',
+    '\u{10380}',
+    '\u{1039e}',
+    '\u{103a0}',
+    '\u{103c4}',
+    '\u{103c8}',
+    '\u{103d0}',
+    '\u{103d6}',
+    '\u{10400}',
+    '\u{10428}',
+    '\u{1049e}',
+    '\u{104a0}',
+    '\u{104aa}',
+    '\u{104b0}',
+    '\u{104d4}',
+    '\u{104d8}',
+    '\u{104fc}',
+    '\u{10500}',
+    '\u{10528}',
+    '\u{10530}',
+    '\u{10564}',
+    '\u{1056f}',
+    '\u{10570}',
+    '\u{10600}',
+    '\u{10737}',
+    '\u{10740}',
+    '\u{10756}',
+    '\u{10760}',
+    '\u{10768}',
+    '\u{10800}',
+    '\u{10806}',
+    '\u{10808}',
+    '\u{1080a}',
+    '\u{10836}',
+    '\u{10837}',
+    '\u{10839}',
+    '\u{1083c}',
+    '\u{1083d}',
+    '\u{1083f}',
+    '\u{10856}',
+    '\u{10857}',
+    '\u{10860}',
+    '\u{10877}',
+    '\u{10880}',
+    '\u{1089f}',
+    '\u{108a7}',
+    '\u{108b0}',
+    '\u{108e0}',
+    '\u{108f3}',
+    '\u{108f4}',
+    '\u{108f6}',
+    '\u{108fb}',
+    '\u{10900}',
+    '\u{10916}',
+    '\u{1091c}',
+    '\u{1091f}',
+    '\u{10920}',
+    '\u{1093a}',
+    '\u{1093f}',
+    '\u{10940}',
+    '\u{10980}',
+    '\u{109b8}',
+    '\u{109bc}',
+    '\u{109be}',
+    '\u{109c0}',
+    '\u{109d0}',
+    '\u{109d2}',
+    '\u{10a00}',
+    '\u{10a04}',
+    '\u{10a05}',
+    '\u{10a07}',
+    '\u{10a0c}',
+    '\u{10a14}',
+    '\u{10a15}',
+    '\u{10a18}',
+    '\u{10a19}',
+    '\u{10a36}',
+    '\u{10a38}',
+    '\u{10a3b}',
+    '\u{10a3f}',
+    '\u{10a40}',
+    '\u{10a49}',
+    '\u{10a50}',
+    '\u{10a59}',
+    '\u{10a60}',
+    '\u{10a7d}',
+    '\u{10a80}',
+    '\u{10a9d}',
+    '\u{10aa0}',
+    '\u{10ac0}',
+    '\u{10ac8}',
+    '\u{10ac9}',
+    '\u{10ae7}',
+    '\u{10aeb}',
+    '\u{10af7}',
+    '\u{10b00}',
+    '\u{10b36}',
+    '\u{10b39}',
+    '\u{10b40}',
+    '\u{10b56}',
+    '\u{10b58}',
+    '\u{10b60}',
+    '\u{10b73}',
+    '\u{10b78}',
+    '\u{10b80}',
+    '\u{10b92}',
+    '\u{10b99}',
+    '\u{10b9d}',
+    '\u{10ba9}',
+    '\u{10bb0}',
+    '\u{10c00}',
+    '\u{10c49}',
+    '\u{10c80}',
+    '\u{10cb3}',
+    '\u{10cc0}',
+    '\u{10cf3}',
+    '\u{10cfa}',
+    '\u{10d00}',
+    '\u{10d28}',
+    '\u{10d30}',
+    '\u{10d3a}',
+    '\u{10e60}',
+    '\u{10e7f}',
+    '\u{10e80}',
+    '\u{10eaa}',
+    '\u{10eab}',
+    '\u{10ead}',
+    '\u{10eae}',
+    '\u{10eb0}',
+    '\u{10eb2}',
+    '\u{10f00}',
+    '\u{10f1d}',
+    '\u{10f27}',
+    '\u{10f28}',
+    '\u{10f30}',
+    '\u{10f51}',
+    '\u{10f5a}',
+    '\u{10fb0}',
+    '\u{10fc5}',
+    '\u{10fcc}',
+    '\u{10fe0}',
+    '\u{10ff7}',
+    '\u{11000}',
+    '\u{11047}',
+    '\u{1104e}',
+    '\u{11052}',
+    '\u{11066}',
+    '\u{11070}',
+    '\u{1107f}',
+    '\u{110bb}',
+    '\u{110bd}',
+    '\u{110be}',
+    '\u{110c2}',
+    '\u{110d0}',
+    '\u{110e9}',
+    '\u{110f0}',
+    '\u{110fa}',
+    '\u{11100}',
+    '\u{11135}',
+    '\u{11136}',
+    '\u{11140}',
+    '\u{11144}',
+    '\u{11148}',
+    '\u{11150}',
+    '\u{11174}',
+    '\u{11176}',
+    '\u{11177}',
+    '\u{11180}',
+    '\u{111c5}',
+    '\u{111c9}',
+    '\u{111cd}',
+    '\u{111ce}',
+    '\u{111db}',
+    '\u{111dd}',
+    '\u{111e0}',
+    '\u{111e1}',
+    '\u{111f5}',
+    '\u{11200}',
+    '\u{11212}',
+    '\u{11213}',
+    '\u{11238}',
+    '\u{1123e}',
+    '\u{1123f}',
+    '\u{11280}',
+    '\u{11287}',
+    '\u{1128a}',
+    '\u{1128e}',
+    '\u{1128f}',
+    '\u{1129e}',
+    '\u{1129f}',
+    '\u{112a9}',
+    '\u{112aa}',
+    '\u{112b0}',
+    '\u{112eb}',
+    '\u{112f0}',
+    '\u{112fa}',
+    '\u{11300}',
+    '\u{11304}',
+    '\u{11305}',
+    '\u{1130d}',
+    '\u{1130f}',
+    '\u{11311}',
+    '\u{11313}',
+    '\u{11329}',
+    '\u{1132a}',
+    '\u{11331}',
+    '\u{11332}',
+    '\u{11334}',
+    '\u{11335}',
+    '\u{1133a}',
+    '\u{1133b}',
+    '\u{11345}',
+    '\u{11347}',
+    '\u{11349}',
+    '\u{1134b}',
+    '\u{1134e}',
+    '\u{11350}',
+    '\u{11351}',
+    '\u{11357}',
+    '\u{11358}',
+    '\u{1135d}',
+    '\u{11364}',
+    '\u{11366}',
+    '\u{1136d}',
+    '\u{11370}',
+    '\u{11375}',
+    '\u{11400}',
+    '\u{1144b}',
+    '\u{11450}',
+    '\u{1145a}',
+    '\u{1145c}',
+    '\u{1145e}',
+    '\u{11462}',
+    '\u{11480}',
+    '\u{114c6}',
+    '\u{114c8}',
+    '\u{114d0}',
+    '\u{114da}',
+    '\u{11580}',
+    '\u{115b6}',
+    '\u{115b8}',
+    '\u{115c1}',
+    '\u{115d8}',
+    '\u{115de}',
+    '\u{11600}',
+    '\u{11641}',
+    '\u{11644}',
+    '\u{11645}',
+    '\u{11650}',
+    '\u{1165a}',
+    '\u{11660}',
+    '\u{1166d}',
+    '\u{11680}',
+    '\u{116b9}',
+    '\u{116c0}',
+    '\u{116ca}',
+    '\u{11700}',
+    '\u{1171b}',
+    '\u{1171d}',
+    '\u{1172c}',
+    '\u{11730}',
+    '\u{1173a}',
+    '\u{11740}',
+    '\u{11800}',
+    '\u{1183b}',
+    '\u{1183c}',
+    '\u{118a0}',
+    '\u{118c0}',
+    '\u{118ea}',
+    '\u{118f3}',
+    '\u{118ff}',
+    '\u{11907}',
+    '\u{11909}',
+    '\u{1190a}',
+    '\u{1190c}',
+    '\u{11914}',
+    '\u{11915}',
+    '\u{11917}',
+    '\u{11918}',
+    '\u{11936}',
+    '\u{11937}',
+    '\u{11939}',
+    '\u{1193b}',
+    '\u{11944}',
+    '\u{11947}',
+    '\u{11950}',
+    '\u{1195a}',
+    '\u{119a0}',
+    '\u{119a8}',
+    '\u{119aa}',
+    '\u{119d8}',
+    '\u{119da}',
+    '\u{119e2}',
+    '\u{119e3}',
+    '\u{119e5}',
+    '\u{11a00}',
+    '\u{11a3f}',
+    '\u{11a47}',
+    '\u{11a48}',
+    '\u{11a50}',
+    '\u{11a9a}',
+    '\u{11a9d}',
+    '\u{11a9e}',
+    '\u{11aa3}',
+    '\u{11ac0}',
+    '\u{11af9}',
+    '\u{11c00}',
+    '\u{11c09}',
+    '\u{11c0a}',
+    '\u{11c37}',
+    '\u{11c38}',
+    '\u{11c41}',
+    '\u{11c46}',
+    '\u{11c50}',
+    '\u{11c5a}',
+    '\u{11c6d}',
+    '\u{11c70}',
+    '\u{11c72}',
+    '\u{11c90}',
+    '\u{11c92}',
+    '\u{11ca8}',
+    '\u{11ca9}',
+    '\u{11cb7}',
+    '\u{11d00}',
+    '\u{11d07}',
+    '\u{11d08}',
+    '\u{11d0a}',
+    '\u{11d0b}',
+    '\u{11d37}',
+    '\u{11d3a}',
+    '\u{11d3c}',
+    '\u{11d3e}',
+    '\u{11d3f}',
+    '\u{11d48}',
+    '\u{11d50}',
+    '\u{11d5a}',
+    '\u{11d60}',
+    '\u{11d66}',
+    '\u{11d67}',
+    '\u{11d69}',
+    '\u{11d6a}',
+    '\u{11d8f}',
+    '\u{11d90}',
+    '\u{11d92}',
+    '\u{11d93}',
+    '\u{11d99}',
+    '\u{11da0}',
+    '\u{11daa}',
+    '\u{11ee0}',
+    '\u{11ef7}',
+    '\u{11ef9}',
+    '\u{11fb0}',
+    '\u{11fb1}',
+    '\u{11fc0}',
+    '\u{11ff2}',
+    '\u{11fff}',
+    '\u{12000}',
+    '\u{1239a}',
+    '\u{12400}',
+    '\u{1246f}',
+    '\u{12470}',
+    '\u{12475}',
+    '\u{12480}',
+    '\u{12544}',
+    '\u{13000}',
+    '\u{1342f}',
+    '\u{14400}',
+    '\u{14647}',
+    '\u{16800}',
+    '\u{16a39}',
+    '\u{16a40}',
+    '\u{16a5f}',
+    '\u{16a60}',
+    '\u{16a6a}',
+    '\u{16a6e}',
+    '\u{16a70}',
+    '\u{16ad0}',
+    '\u{16aee}',
+    '\u{16af0}',
+    '\u{16af5}',
+    '\u{16af6}',
+    '\u{16b00}',
+    '\u{16b37}',
+    '\u{16b40}',
+    '\u{16b44}',
+    '\u{16b46}',
+    '\u{16b50}',
+    '\u{16b5a}',
+    '\u{16b5b}',
+    '\u{16b62}',
+    '\u{16b63}',
+    '\u{16b78}',
+    '\u{16b7d}',
+    '\u{16b90}',
+    '\u{16e40}',
+    '\u{16e60}',
+    '\u{16e80}',
+    '\u{16e9b}',
+    '\u{16f00}',
+    '\u{16f4b}',
+    '\u{16f4f}',
+    '\u{16f88}',
+    '\u{16f8f}',
+    '\u{16fa0}',
+    '\u{16fe0}',
+    '\u{16fe2}',
+    '\u{16fe3}',
+    '\u{16fe5}',
+    '\u{16ff0}',
+    '\u{16ff2}',
+    '\u{17000}',
+    '\u{187f8}',
+    '\u{18800}',
+    '\u{18cd6}',
+    '\u{18d00}',
+    '\u{18d09}',
+    '\u{1b000}',
+    '\u{1b11f}',
+    '\u{1b150}',
+    '\u{1b153}',
+    '\u{1b164}',
+    '\u{1b168}',
+    '\u{1b170}',
+    '\u{1b2fc}',
+    '\u{1bc00}',
+    '\u{1bc6b}',
+    '\u{1bc70}',
+    '\u{1bc7d}',
+    '\u{1bc80}',
+    '\u{1bc89}',
+    '\u{1bc90}',
+    '\u{1bc9a}',
+    '\u{1bc9c}',
+    '\u{1bc9d}',
+    '\u{1bc9f}',
+    '\u{1bca0}',
+    '\u{1bca4}',
+    '\u{1d000}',
+    '\u{1d0f6}',
+    '\u{1d100}',
+    '\u{1d127}',
+    '\u{1d129}',
+    '\u{1d15e}',
+    '\u{1d165}',
+    '\u{1d173}',
+    '\u{1d17b}',
+    '\u{1d1bb}',
+    '\u{1d1c1}',
+    '\u{1d1e9}',
+    '\u{1d200}',
+    '\u{1d246}',
+    '\u{1d2e0}',
+    '\u{1d2f4}',
+    '\u{1d300}',
+    '\u{1d357}',
+    '\u{1d360}',
+    '\u{1d379}',
+    '\u{1d400}',
+    '\u{1d4a0}',
+    '\u{1d4a2}',
+    '\u{1d4a3}',
+    '\u{1d4a5}',
+    '\u{1d4a7}',
+    '\u{1d4a9}',
+    '\u{1d50b}',
+    '\u{1d50d}',
+    '\u{1d547}',
+    '\u{1d54a}',
+    '\u{1d6a6}',
+    '\u{1d6a8}',
+    '\u{1d6d3}',
+    '\u{1d6d5}',
+    '\u{1d70d}',
+    '\u{1d70f}',
+    '\u{1d747}',
+    '\u{1d749}',
+    '\u{1d781}',
+    '\u{1d783}',
+    '\u{1d7bb}',
+    '\u{1d7bd}',
+    '\u{1d7ca}',
+    '\u{1d7cc}',
+    '\u{1d7ce}',
+    '\u{1d800}',
+    '\u{1da00}',
+    '\u{1da37}',
+    '\u{1da3b}',
+    '\u{1da6d}',
+    '\u{1da75}',
+    '\u{1da76}',
+    '\u{1da84}',
+    '\u{1da85}',
+    '\u{1da8c}',
+    '\u{1da9b}',
+    '\u{1daa0}',
+    '\u{1daa1}',
+    '\u{1dab0}',
+    '\u{1e000}',
+    '\u{1e007}',
+    '\u{1e008}',
+    '\u{1e019}',
+    '\u{1e01b}',
+    '\u{1e022}',
+    '\u{1e023}',
+    '\u{1e025}',
+    '\u{1e026}',
+    '\u{1e02b}',
+    '\u{1e100}',
+    '\u{1e12d}',
+    '\u{1e130}',
+    '\u{1e13e}',
+    '\u{1e140}',
+    '\u{1e14a}',
+    '\u{1e14e}',
+    '\u{1e150}',
+    '\u{1e2c0}',
+    '\u{1e2fa}',
+    '\u{1e2ff}',
+    '\u{1e300}',
+    '\u{1e800}',
+    '\u{1e8c5}',
+    '\u{1e8c7}',
+    '\u{1e8d0}',
+    '\u{1e8d7}',
+    '\u{1e900}',
+    '\u{1e922}',
+    '\u{1e94c}',
+    '\u{1e950}',
+    '\u{1e95a}',
+    '\u{1e95e}',
+    '\u{1e960}',
+    '\u{1ec71}',
+    '\u{1ecb5}',
+    '\u{1ed01}',
+    '\u{1ed3e}',
+    '\u{1ee00}',
+    '\u{1ee25}',
+    '\u{1ee27}',
+    '\u{1ee3c}',
+    '\u{1ee42}',
+    '\u{1ee43}',
+    '\u{1ee47}',
+    '\u{1ee55}',
+    '\u{1ee57}',
+    '\u{1ee65}',
+    '\u{1ee67}',
+    '\u{1ee9c}',
+    '\u{1eea1}',
+    '\u{1eebc}',
+    '\u{1eef0}',
+    '\u{1eef2}',
+    '\u{1f000}',
+    '\u{1f02c}',
+    '\u{1f030}',
+    '\u{1f094}',
+    '\u{1f0a0}',
+    '\u{1f0af}',
+    '\u{1f0b1}',
+    '\u{1f0c0}',
+    '\u{1f0c1}',
+    '\u{1f0d0}',
+    '\u{1f0d1}',
+    '\u{1f0f6}',
+    '\u{1f101}',
+    '\u{1f10b}',
+    '\u{1f110}',
+    '\u{1f150}',
+    '\u{1f16a}',
+    '\u{1f16d}',
+    '\u{1f190}',
+    '\u{1f191}',
+    '\u{1f1ae}',
+    '\u{1f1e6}',
+    '\u{1f200}',
+    '\u{1f203}',
+    '\u{1f210}',
+    '\u{1f23c}',
+    '\u{1f240}',
+    '\u{1f249}',
+    '\u{1f250}',
+    '\u{1f252}',
+    '\u{1f260}',
+    '\u{1f266}',
+    '\u{1f300}',
+    '\u{1f6d8}',
+    '\u{1f6e0}',
+    '\u{1f6ed}',
+    '\u{1f6f0}',
+    '\u{1f6fd}',
+    '\u{1f700}',
+    '\u{1f774}',
+    '\u{1f780}',
+    '\u{1f7d9}',
+    '\u{1f7e0}',
+    '\u{1f7ec}',
+    '\u{1f800}',
+    '\u{1f80c}',
+    '\u{1f810}',
+    '\u{1f848}',
+    '\u{1f850}',
+    '\u{1f85a}',
+    '\u{1f860}',
+    '\u{1f888}',
+    '\u{1f890}',
+    '\u{1f8ae}',
+    '\u{1f8b0}',
+    '\u{1f8b2}',
+    '\u{1f900}',
+    '\u{1f979}',
+    '\u{1f97a}',
+    '\u{1f9cc}',
+    '\u{1f9cd}',
+    '\u{1fa54}',
+    '\u{1fa60}',
+    '\u{1fa6e}',
+    '\u{1fa70}',
+    '\u{1fa75}',
+    '\u{1fa78}',
+    '\u{1fa7b}',
+    '\u{1fa80}',
+    '\u{1fa87}',
+    '\u{1fa90}',
+    '\u{1faa9}',
+    '\u{1fab0}',
+    '\u{1fab7}',
+    '\u{1fac0}',
+    '\u{1fac3}',
+    '\u{1fad0}',
+    '\u{1fad7}',
+    '\u{1fb00}',
+    '\u{1fb93}',
+    '\u{1fb94}',
+    '\u{1fbcb}',
+    '\u{1fbf0}',
+    '\u{1fbfa}',
+    '\u{20000}',
+    '\u{2a6de}',
+    '\u{2a700}',
+    '\u{2b735}',
+    '\u{2b740}',
+    '\u{2b81e}',
+    '\u{2b820}',
+    '\u{2cea2}',
+    '\u{2ceb0}',
+    '\u{2ebe1}',
+    '\u{2f800}',
+    '\u{2f831}',
+    '\u{2f834}',
+    '\u{2f845}',
+    '\u{2f847}',
+    '\u{2f86a}',
+    '\u{2f86c}',
+    '\u{2f891}',
+    '\u{2f893}',
+    '\u{2f894}',
+    '\u{2f896}',
+    '\u{2f92c}',
+    '\u{2f92e}',
+    '\u{2f946}',
+    '\u{2f948}',
+    '\u{2f95d}',
+    '\u{2f95f}',
+    '\u{2f9fe}',
+    '\u{2fa00}',
+    '\u{2fa1e}',
+    '\u{30000}',
+    '\u{3134b}',
+    '\u{e0100}',
+    '\u{e01f0}',
 ];
 
 static INDEX_TABLE: &[u16] = &[