Coverage Report

Created: 2026-06-10 06:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/unicode-segmentation/src/tables.rs
Line
Count
Source
1
// Copyright 2012-2018 The Rust Project Developers. See the COPYRIGHT
2
// file at the top-level directory of this distribution and at
3
// http://rust-lang.org/COPYRIGHT.
4
//
5
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
// option. This file may not be copied, modified, or distributed
9
// except according to those terms.
10
11
// NOTE: The following code was generated by "scripts/unicode.py", do not edit directly
12
13
#![allow(missing_docs, non_upper_case_globals, non_snake_case)]
14
15
/// The version of [Unicode](http://www.unicode.org/)
16
/// that this version of unicode-segmentation is based on.
17
pub const UNICODE_VERSION: (u64, u64, u64) = (17, 0, 0);
18
19
const UNICODE_VERSION_U8: (u8, u8, u8) = (17, 0, 0);
20
21
pub mod util {
22
    #[inline]
23
46.2M
    pub fn bsearch_range_table(c: char, r: &[(char,char)]) -> bool {
24
        use core::cmp::Ordering::{Equal, Less, Greater};
25
462M
        r.binary_search_by(|&(lo,hi)| {
26
462M
            if lo <= c && c <= hi { Equal }
27
461M
            else if hi < c { Less }
28
457M
            else { Greater }
29
462M
        }).is_ok()
30
46.2M
    }
unicode_segmentation::tables::util::bsearch_range_table
Line
Count
Source
23
44.9M
    pub fn bsearch_range_table(c: char, r: &[(char,char)]) -> bool {
24
        use core::cmp::Ordering::{Equal, Less, Greater};
25
44.9M
        r.binary_search_by(|&(lo,hi)| {
26
            if lo <= c && c <= hi { Equal }
27
            else if hi < c { Less }
28
            else { Greater }
29
44.9M
        }).is_ok()
30
44.9M
    }
unicode_segmentation::tables::util::bsearch_range_table
Line
Count
Source
23
1.39M
    pub fn bsearch_range_table(c: char, r: &[(char,char)]) -> bool {
24
        use core::cmp::Ordering::{Equal, Less, Greater};
25
1.39M
        r.binary_search_by(|&(lo,hi)| {
26
            if lo <= c && c <= hi { Equal }
27
            else if hi < c { Less }
28
            else { Greater }
29
1.39M
        }).is_ok()
30
1.39M
    }
31
32
    #[inline]
33
8.37M
    fn is_alphabetic(c: char) -> bool {
34
8.37M
        if super::UNICODE_VERSION_U8 == char::UNICODE_VERSION {
35
0
            c.is_alphabetic()
36
        } else {
37
7.52M
            match c {
38
1.46M
                'a' ..= 'z' | 'A' ..= 'Z' => true,
39
7.52M
                c if c > '\x7f' => super::derived_property::Alphabetic(c),
40
6.82M
                _ => false,
41
            }
42
        }
43
8.37M
    }
44
45
    #[inline]
46
7.50M
    fn is_numeric(c: char) -> bool {
47
7.50M
        if super::UNICODE_VERSION_U8 == char::UNICODE_VERSION {
48
0
            c.is_numeric()
49
        } else {
50
7.37M
            match c {
51
1.16M
                '0' ..= '9' => true,
52
7.37M
                c if c > '\x7f' => super::general_category::N(c),
53
6.68M
                _ => false,
54
            }
55
        }
56
7.50M
    }
57
58
    #[inline]
59
8.37M
    pub fn is_alphanumeric(c: char) -> bool {
60
8.37M
        is_alphabetic(c) || is_numeric(c)
61
8.37M
    }
62
}
63
64
pub mod general_category {
65
    const N_table: &[(char, char)] = &[
66
        ('\u{30}', '\u{39}'), ('\u{b2}', '\u{b3}'), ('\u{b9}', '\u{b9}'), ('\u{bc}', '\u{be}'),
67
        ('\u{660}', '\u{669}'), ('\u{6f0}', '\u{6f9}'), ('\u{7c0}', '\u{7c9}'), ('\u{966}',
68
        '\u{96f}'), ('\u{9e6}', '\u{9ef}'), ('\u{9f4}', '\u{9f9}'), ('\u{a66}', '\u{a6f}'),
69
        ('\u{ae6}', '\u{aef}'), ('\u{b66}', '\u{b6f}'), ('\u{b72}', '\u{b77}'), ('\u{be6}',
70
        '\u{bf2}'), ('\u{c66}', '\u{c6f}'), ('\u{c78}', '\u{c7e}'), ('\u{ce6}', '\u{cef}'),
71
        ('\u{d58}', '\u{d5e}'), ('\u{d66}', '\u{d78}'), ('\u{de6}', '\u{def}'), ('\u{e50}',
72
        '\u{e59}'), ('\u{ed0}', '\u{ed9}'), ('\u{f20}', '\u{f33}'), ('\u{1040}', '\u{1049}'),
73
        ('\u{1090}', '\u{1099}'), ('\u{1369}', '\u{137c}'), ('\u{16ee}', '\u{16f0}'), ('\u{17e0}',
74
        '\u{17e9}'), ('\u{17f0}', '\u{17f9}'), ('\u{1810}', '\u{1819}'), ('\u{1946}', '\u{194f}'),
75
        ('\u{19d0}', '\u{19da}'), ('\u{1a80}', '\u{1a89}'), ('\u{1a90}', '\u{1a99}'), ('\u{1b50}',
76
        '\u{1b59}'), ('\u{1bb0}', '\u{1bb9}'), ('\u{1c40}', '\u{1c49}'), ('\u{1c50}', '\u{1c59}'),
77
        ('\u{2070}', '\u{2070}'), ('\u{2074}', '\u{2079}'), ('\u{2080}', '\u{2089}'), ('\u{2150}',
78
        '\u{2182}'), ('\u{2185}', '\u{2189}'), ('\u{2460}', '\u{249b}'), ('\u{24ea}', '\u{24ff}'),
79
        ('\u{2776}', '\u{2793}'), ('\u{2cfd}', '\u{2cfd}'), ('\u{3007}', '\u{3007}'), ('\u{3021}',
80
        '\u{3029}'), ('\u{3038}', '\u{303a}'), ('\u{3192}', '\u{3195}'), ('\u{3220}', '\u{3229}'),
81
        ('\u{3248}', '\u{324f}'), ('\u{3251}', '\u{325f}'), ('\u{3280}', '\u{3289}'), ('\u{32b1}',
82
        '\u{32bf}'), ('\u{a620}', '\u{a629}'), ('\u{a6e6}', '\u{a6ef}'), ('\u{a830}', '\u{a835}'),
83
        ('\u{a8d0}', '\u{a8d9}'), ('\u{a900}', '\u{a909}'), ('\u{a9d0}', '\u{a9d9}'), ('\u{a9f0}',
84
        '\u{a9f9}'), ('\u{aa50}', '\u{aa59}'), ('\u{abf0}', '\u{abf9}'), ('\u{ff10}', '\u{ff19}'),
85
        ('\u{10107}', '\u{10133}'), ('\u{10140}', '\u{10178}'), ('\u{1018a}', '\u{1018b}'),
86
        ('\u{102e1}', '\u{102fb}'), ('\u{10320}', '\u{10323}'), ('\u{10341}', '\u{10341}'),
87
        ('\u{1034a}', '\u{1034a}'), ('\u{103d1}', '\u{103d5}'), ('\u{104a0}', '\u{104a9}'),
88
        ('\u{10858}', '\u{1085f}'), ('\u{10879}', '\u{1087f}'), ('\u{108a7}', '\u{108af}'),
89
        ('\u{108fb}', '\u{108ff}'), ('\u{10916}', '\u{1091b}'), ('\u{109bc}', '\u{109bd}'),
90
        ('\u{109c0}', '\u{109cf}'), ('\u{109d2}', '\u{109ff}'), ('\u{10a40}', '\u{10a48}'),
91
        ('\u{10a7d}', '\u{10a7e}'), ('\u{10a9d}', '\u{10a9f}'), ('\u{10aeb}', '\u{10aef}'),
92
        ('\u{10b58}', '\u{10b5f}'), ('\u{10b78}', '\u{10b7f}'), ('\u{10ba9}', '\u{10baf}'),
93
        ('\u{10cfa}', '\u{10cff}'), ('\u{10d30}', '\u{10d39}'), ('\u{10d40}', '\u{10d49}'),
94
        ('\u{10e60}', '\u{10e7e}'), ('\u{10f1d}', '\u{10f26}'), ('\u{10f51}', '\u{10f54}'),
95
        ('\u{10fc5}', '\u{10fcb}'), ('\u{11052}', '\u{1106f}'), ('\u{110f0}', '\u{110f9}'),
96
        ('\u{11136}', '\u{1113f}'), ('\u{111d0}', '\u{111d9}'), ('\u{111e1}', '\u{111f4}'),
97
        ('\u{112f0}', '\u{112f9}'), ('\u{11450}', '\u{11459}'), ('\u{114d0}', '\u{114d9}'),
98
        ('\u{11650}', '\u{11659}'), ('\u{116c0}', '\u{116c9}'), ('\u{116d0}', '\u{116e3}'),
99
        ('\u{11730}', '\u{1173b}'), ('\u{118e0}', '\u{118f2}'), ('\u{11950}', '\u{11959}'),
100
        ('\u{11bf0}', '\u{11bf9}'), ('\u{11c50}', '\u{11c6c}'), ('\u{11d50}', '\u{11d59}'),
101
        ('\u{11da0}', '\u{11da9}'), ('\u{11de0}', '\u{11de9}'), ('\u{11f50}', '\u{11f59}'),
102
        ('\u{11fc0}', '\u{11fd4}'), ('\u{12400}', '\u{1246e}'), ('\u{16130}', '\u{16139}'),
103
        ('\u{16a60}', '\u{16a69}'), ('\u{16ac0}', '\u{16ac9}'), ('\u{16b50}', '\u{16b59}'),
104
        ('\u{16b5b}', '\u{16b61}'), ('\u{16d70}', '\u{16d79}'), ('\u{16e80}', '\u{16e96}'),
105
        ('\u{16ff4}', '\u{16ff6}'), ('\u{1ccf0}', '\u{1ccf9}'), ('\u{1d2c0}', '\u{1d2d3}'),
106
        ('\u{1d2e0}', '\u{1d2f3}'), ('\u{1d360}', '\u{1d378}'), ('\u{1d7ce}', '\u{1d7ff}'),
107
        ('\u{1e140}', '\u{1e149}'), ('\u{1e2f0}', '\u{1e2f9}'), ('\u{1e4f0}', '\u{1e4f9}'),
108
        ('\u{1e5f1}', '\u{1e5fa}'), ('\u{1e8c7}', '\u{1e8cf}'), ('\u{1e950}', '\u{1e959}'),
109
        ('\u{1ec71}', '\u{1ecab}'), ('\u{1ecad}', '\u{1ecaf}'), ('\u{1ecb1}', '\u{1ecb4}'),
110
        ('\u{1ed01}', '\u{1ed2d}'), ('\u{1ed2f}', '\u{1ed3d}'), ('\u{1f100}', '\u{1f10c}'),
111
        ('\u{1fbf0}', '\u{1fbf9}')
112
    ];
113
114
    #[inline]
115
683k
    pub fn N(c: char) -> bool {
116
683k
        super::util::bsearch_range_table(c, N_table)
117
683k
    }
118
119
}
120
121
pub mod derived_property {
122
    const Alphabetic_table: &[(char, char)] = &[
123
        ('\u{41}', '\u{5a}'), ('\u{61}', '\u{7a}'), ('\u{aa}', '\u{aa}'), ('\u{b5}', '\u{b5}'),
124
        ('\u{ba}', '\u{ba}'), ('\u{c0}', '\u{d6}'), ('\u{d8}', '\u{f6}'), ('\u{f8}', '\u{2c1}'),
125
        ('\u{2c6}', '\u{2d1}'), ('\u{2e0}', '\u{2e4}'), ('\u{2ec}', '\u{2ec}'), ('\u{2ee}',
126
        '\u{2ee}'), ('\u{345}', '\u{345}'), ('\u{363}', '\u{374}'), ('\u{376}', '\u{377}'),
127
        ('\u{37a}', '\u{37d}'), ('\u{37f}', '\u{37f}'), ('\u{386}', '\u{386}'), ('\u{388}',
128
        '\u{38a}'), ('\u{38c}', '\u{38c}'), ('\u{38e}', '\u{3a1}'), ('\u{3a3}', '\u{3f5}'),
129
        ('\u{3f7}', '\u{481}'), ('\u{48a}', '\u{52f}'), ('\u{531}', '\u{556}'), ('\u{559}',
130
        '\u{559}'), ('\u{560}', '\u{588}'), ('\u{5b0}', '\u{5bd}'), ('\u{5bf}', '\u{5bf}'),
131
        ('\u{5c1}', '\u{5c2}'), ('\u{5c4}', '\u{5c5}'), ('\u{5c7}', '\u{5c7}'), ('\u{5d0}',
132
        '\u{5ea}'), ('\u{5ef}', '\u{5f2}'), ('\u{610}', '\u{61a}'), ('\u{620}', '\u{657}'),
133
        ('\u{659}', '\u{65f}'), ('\u{66e}', '\u{6d3}'), ('\u{6d5}', '\u{6dc}'), ('\u{6e1}',
134
        '\u{6e8}'), ('\u{6ed}', '\u{6ef}'), ('\u{6fa}', '\u{6fc}'), ('\u{6ff}', '\u{6ff}'),
135
        ('\u{710}', '\u{73f}'), ('\u{74d}', '\u{7b1}'), ('\u{7ca}', '\u{7ea}'), ('\u{7f4}',
136
        '\u{7f5}'), ('\u{7fa}', '\u{7fa}'), ('\u{800}', '\u{817}'), ('\u{81a}', '\u{82c}'),
137
        ('\u{840}', '\u{858}'), ('\u{860}', '\u{86a}'), ('\u{870}', '\u{887}'), ('\u{889}',
138
        '\u{88f}'), ('\u{897}', '\u{897}'), ('\u{8a0}', '\u{8c9}'), ('\u{8d4}', '\u{8df}'),
139
        ('\u{8e3}', '\u{8e9}'), ('\u{8f0}', '\u{93b}'), ('\u{93d}', '\u{94c}'), ('\u{94e}',
140
        '\u{950}'), ('\u{955}', '\u{963}'), ('\u{971}', '\u{983}'), ('\u{985}', '\u{98c}'),
141
        ('\u{98f}', '\u{990}'), ('\u{993}', '\u{9a8}'), ('\u{9aa}', '\u{9b0}'), ('\u{9b2}',
142
        '\u{9b2}'), ('\u{9b6}', '\u{9b9}'), ('\u{9bd}', '\u{9c4}'), ('\u{9c7}', '\u{9c8}'),
143
        ('\u{9cb}', '\u{9cc}'), ('\u{9ce}', '\u{9ce}'), ('\u{9d7}', '\u{9d7}'), ('\u{9dc}',
144
        '\u{9dd}'), ('\u{9df}', '\u{9e3}'), ('\u{9f0}', '\u{9f1}'), ('\u{9fc}', '\u{9fc}'),
145
        ('\u{a01}', '\u{a03}'), ('\u{a05}', '\u{a0a}'), ('\u{a0f}', '\u{a10}'), ('\u{a13}',
146
        '\u{a28}'), ('\u{a2a}', '\u{a30}'), ('\u{a32}', '\u{a33}'), ('\u{a35}', '\u{a36}'),
147
        ('\u{a38}', '\u{a39}'), ('\u{a3e}', '\u{a42}'), ('\u{a47}', '\u{a48}'), ('\u{a4b}',
148
        '\u{a4c}'), ('\u{a51}', '\u{a51}'), ('\u{a59}', '\u{a5c}'), ('\u{a5e}', '\u{a5e}'),
149
        ('\u{a70}', '\u{a75}'), ('\u{a81}', '\u{a83}'), ('\u{a85}', '\u{a8d}'), ('\u{a8f}',
150
        '\u{a91}'), ('\u{a93}', '\u{aa8}'), ('\u{aaa}', '\u{ab0}'), ('\u{ab2}', '\u{ab3}'),
151
        ('\u{ab5}', '\u{ab9}'), ('\u{abd}', '\u{ac5}'), ('\u{ac7}', '\u{ac9}'), ('\u{acb}',
152
        '\u{acc}'), ('\u{ad0}', '\u{ad0}'), ('\u{ae0}', '\u{ae3}'), ('\u{af9}', '\u{afc}'),
153
        ('\u{b01}', '\u{b03}'), ('\u{b05}', '\u{b0c}'), ('\u{b0f}', '\u{b10}'), ('\u{b13}',
154
        '\u{b28}'), ('\u{b2a}', '\u{b30}'), ('\u{b32}', '\u{b33}'), ('\u{b35}', '\u{b39}'),
155
        ('\u{b3d}', '\u{b44}'), ('\u{b47}', '\u{b48}'), ('\u{b4b}', '\u{b4c}'), ('\u{b56}',
156
        '\u{b57}'), ('\u{b5c}', '\u{b5d}'), ('\u{b5f}', '\u{b63}'), ('\u{b71}', '\u{b71}'),
157
        ('\u{b82}', '\u{b83}'), ('\u{b85}', '\u{b8a}'), ('\u{b8e}', '\u{b90}'), ('\u{b92}',
158
        '\u{b95}'), ('\u{b99}', '\u{b9a}'), ('\u{b9c}', '\u{b9c}'), ('\u{b9e}', '\u{b9f}'),
159
        ('\u{ba3}', '\u{ba4}'), ('\u{ba8}', '\u{baa}'), ('\u{bae}', '\u{bb9}'), ('\u{bbe}',
160
        '\u{bc2}'), ('\u{bc6}', '\u{bc8}'), ('\u{bca}', '\u{bcc}'), ('\u{bd0}', '\u{bd0}'),
161
        ('\u{bd7}', '\u{bd7}'), ('\u{c00}', '\u{c0c}'), ('\u{c0e}', '\u{c10}'), ('\u{c12}',
162
        '\u{c28}'), ('\u{c2a}', '\u{c39}'), ('\u{c3d}', '\u{c44}'), ('\u{c46}', '\u{c48}'),
163
        ('\u{c4a}', '\u{c4c}'), ('\u{c55}', '\u{c56}'), ('\u{c58}', '\u{c5a}'), ('\u{c5c}',
164
        '\u{c5d}'), ('\u{c60}', '\u{c63}'), ('\u{c80}', '\u{c83}'), ('\u{c85}', '\u{c8c}'),
165
        ('\u{c8e}', '\u{c90}'), ('\u{c92}', '\u{ca8}'), ('\u{caa}', '\u{cb3}'), ('\u{cb5}',
166
        '\u{cb9}'), ('\u{cbd}', '\u{cc4}'), ('\u{cc6}', '\u{cc8}'), ('\u{cca}', '\u{ccc}'),
167
        ('\u{cd5}', '\u{cd6}'), ('\u{cdc}', '\u{cde}'), ('\u{ce0}', '\u{ce3}'), ('\u{cf1}',
168
        '\u{cf3}'), ('\u{d00}', '\u{d0c}'), ('\u{d0e}', '\u{d10}'), ('\u{d12}', '\u{d3a}'),
169
        ('\u{d3d}', '\u{d44}'), ('\u{d46}', '\u{d48}'), ('\u{d4a}', '\u{d4c}'), ('\u{d4e}',
170
        '\u{d4e}'), ('\u{d54}', '\u{d57}'), ('\u{d5f}', '\u{d63}'), ('\u{d7a}', '\u{d7f}'),
171
        ('\u{d81}', '\u{d83}'), ('\u{d85}', '\u{d96}'), ('\u{d9a}', '\u{db1}'), ('\u{db3}',
172
        '\u{dbb}'), ('\u{dbd}', '\u{dbd}'), ('\u{dc0}', '\u{dc6}'), ('\u{dcf}', '\u{dd4}'),
173
        ('\u{dd6}', '\u{dd6}'), ('\u{dd8}', '\u{ddf}'), ('\u{df2}', '\u{df3}'), ('\u{e01}',
174
        '\u{e3a}'), ('\u{e40}', '\u{e46}'), ('\u{e4d}', '\u{e4d}'), ('\u{e81}', '\u{e82}'),
175
        ('\u{e84}', '\u{e84}'), ('\u{e86}', '\u{e8a}'), ('\u{e8c}', '\u{ea3}'), ('\u{ea5}',
176
        '\u{ea5}'), ('\u{ea7}', '\u{eb9}'), ('\u{ebb}', '\u{ebd}'), ('\u{ec0}', '\u{ec4}'),
177
        ('\u{ec6}', '\u{ec6}'), ('\u{ecd}', '\u{ecd}'), ('\u{edc}', '\u{edf}'), ('\u{f00}',
178
        '\u{f00}'), ('\u{f40}', '\u{f47}'), ('\u{f49}', '\u{f6c}'), ('\u{f71}', '\u{f83}'),
179
        ('\u{f88}', '\u{f97}'), ('\u{f99}', '\u{fbc}'), ('\u{1000}', '\u{1036}'), ('\u{1038}',
180
        '\u{1038}'), ('\u{103b}', '\u{103f}'), ('\u{1050}', '\u{108f}'), ('\u{109a}', '\u{109d}'),
181
        ('\u{10a0}', '\u{10c5}'), ('\u{10c7}', '\u{10c7}'), ('\u{10cd}', '\u{10cd}'), ('\u{10d0}',
182
        '\u{10fa}'), ('\u{10fc}', '\u{1248}'), ('\u{124a}', '\u{124d}'), ('\u{1250}', '\u{1256}'),
183
        ('\u{1258}', '\u{1258}'), ('\u{125a}', '\u{125d}'), ('\u{1260}', '\u{1288}'), ('\u{128a}',
184
        '\u{128d}'), ('\u{1290}', '\u{12b0}'), ('\u{12b2}', '\u{12b5}'), ('\u{12b8}', '\u{12be}'),
185
        ('\u{12c0}', '\u{12c0}'), ('\u{12c2}', '\u{12c5}'), ('\u{12c8}', '\u{12d6}'), ('\u{12d8}',
186
        '\u{1310}'), ('\u{1312}', '\u{1315}'), ('\u{1318}', '\u{135a}'), ('\u{1380}', '\u{138f}'),
187
        ('\u{13a0}', '\u{13f5}'), ('\u{13f8}', '\u{13fd}'), ('\u{1401}', '\u{166c}'), ('\u{166f}',
188
        '\u{167f}'), ('\u{1681}', '\u{169a}'), ('\u{16a0}', '\u{16ea}'), ('\u{16ee}', '\u{16f8}'),
189
        ('\u{1700}', '\u{1713}'), ('\u{171f}', '\u{1733}'), ('\u{1740}', '\u{1753}'), ('\u{1760}',
190
        '\u{176c}'), ('\u{176e}', '\u{1770}'), ('\u{1772}', '\u{1773}'), ('\u{1780}', '\u{17b3}'),
191
        ('\u{17b6}', '\u{17c8}'), ('\u{17d7}', '\u{17d7}'), ('\u{17dc}', '\u{17dc}'), ('\u{1820}',
192
        '\u{1878}'), ('\u{1880}', '\u{18aa}'), ('\u{18b0}', '\u{18f5}'), ('\u{1900}', '\u{191e}'),
193
        ('\u{1920}', '\u{192b}'), ('\u{1930}', '\u{1938}'), ('\u{1950}', '\u{196d}'), ('\u{1970}',
194
        '\u{1974}'), ('\u{1980}', '\u{19ab}'), ('\u{19b0}', '\u{19c9}'), ('\u{1a00}', '\u{1a1b}'),
195
        ('\u{1a20}', '\u{1a5e}'), ('\u{1a61}', '\u{1a74}'), ('\u{1aa7}', '\u{1aa7}'), ('\u{1abf}',
196
        '\u{1ac0}'), ('\u{1acc}', '\u{1ace}'), ('\u{1b00}', '\u{1b33}'), ('\u{1b35}', '\u{1b43}'),
197
        ('\u{1b45}', '\u{1b4c}'), ('\u{1b80}', '\u{1ba9}'), ('\u{1bac}', '\u{1baf}'), ('\u{1bba}',
198
        '\u{1be5}'), ('\u{1be7}', '\u{1bf1}'), ('\u{1c00}', '\u{1c36}'), ('\u{1c4d}', '\u{1c4f}'),
199
        ('\u{1c5a}', '\u{1c7d}'), ('\u{1c80}', '\u{1c8a}'), ('\u{1c90}', '\u{1cba}'), ('\u{1cbd}',
200
        '\u{1cbf}'), ('\u{1ce9}', '\u{1cec}'), ('\u{1cee}', '\u{1cf3}'), ('\u{1cf5}', '\u{1cf6}'),
201
        ('\u{1cfa}', '\u{1cfa}'), ('\u{1d00}', '\u{1dbf}'), ('\u{1dd3}', '\u{1df4}'), ('\u{1e00}',
202
        '\u{1f15}'), ('\u{1f18}', '\u{1f1d}'), ('\u{1f20}', '\u{1f45}'), ('\u{1f48}', '\u{1f4d}'),
203
        ('\u{1f50}', '\u{1f57}'), ('\u{1f59}', '\u{1f59}'), ('\u{1f5b}', '\u{1f5b}'), ('\u{1f5d}',
204
        '\u{1f5d}'), ('\u{1f5f}', '\u{1f7d}'), ('\u{1f80}', '\u{1fb4}'), ('\u{1fb6}', '\u{1fbc}'),
205
        ('\u{1fbe}', '\u{1fbe}'), ('\u{1fc2}', '\u{1fc4}'), ('\u{1fc6}', '\u{1fcc}'), ('\u{1fd0}',
206
        '\u{1fd3}'), ('\u{1fd6}', '\u{1fdb}'), ('\u{1fe0}', '\u{1fec}'), ('\u{1ff2}', '\u{1ff4}'),
207
        ('\u{1ff6}', '\u{1ffc}'), ('\u{2071}', '\u{2071}'), ('\u{207f}', '\u{207f}'), ('\u{2090}',
208
        '\u{209c}'), ('\u{2102}', '\u{2102}'), ('\u{2107}', '\u{2107}'), ('\u{210a}', '\u{2113}'),
209
        ('\u{2115}', '\u{2115}'), ('\u{2119}', '\u{211d}'), ('\u{2124}', '\u{2124}'), ('\u{2126}',
210
        '\u{2126}'), ('\u{2128}', '\u{2128}'), ('\u{212a}', '\u{212d}'), ('\u{212f}', '\u{2139}'),
211
        ('\u{213c}', '\u{213f}'), ('\u{2145}', '\u{2149}'), ('\u{214e}', '\u{214e}'), ('\u{2160}',
212
        '\u{2188}'), ('\u{24b6}', '\u{24e9}'), ('\u{2c00}', '\u{2ce4}'), ('\u{2ceb}', '\u{2cee}'),
213
        ('\u{2cf2}', '\u{2cf3}'), ('\u{2d00}', '\u{2d25}'), ('\u{2d27}', '\u{2d27}'), ('\u{2d2d}',
214
        '\u{2d2d}'), ('\u{2d30}', '\u{2d67}'), ('\u{2d6f}', '\u{2d6f}'), ('\u{2d80}', '\u{2d96}'),
215
        ('\u{2da0}', '\u{2da6}'), ('\u{2da8}', '\u{2dae}'), ('\u{2db0}', '\u{2db6}'), ('\u{2db8}',
216
        '\u{2dbe}'), ('\u{2dc0}', '\u{2dc6}'), ('\u{2dc8}', '\u{2dce}'), ('\u{2dd0}', '\u{2dd6}'),
217
        ('\u{2dd8}', '\u{2dde}'), ('\u{2de0}', '\u{2dff}'), ('\u{2e2f}', '\u{2e2f}'), ('\u{3005}',
218
        '\u{3007}'), ('\u{3021}', '\u{3029}'), ('\u{3031}', '\u{3035}'), ('\u{3038}', '\u{303c}'),
219
        ('\u{3041}', '\u{3096}'), ('\u{309d}', '\u{309f}'), ('\u{30a1}', '\u{30fa}'), ('\u{30fc}',
220
        '\u{30ff}'), ('\u{3105}', '\u{312f}'), ('\u{3131}', '\u{318e}'), ('\u{31a0}', '\u{31bf}'),
221
        ('\u{31f0}', '\u{31ff}'), ('\u{3400}', '\u{4dbf}'), ('\u{4e00}', '\u{a48c}'), ('\u{a4d0}',
222
        '\u{a4fd}'), ('\u{a500}', '\u{a60c}'), ('\u{a610}', '\u{a61f}'), ('\u{a62a}', '\u{a62b}'),
223
        ('\u{a640}', '\u{a66e}'), ('\u{a674}', '\u{a67b}'), ('\u{a67f}', '\u{a6ef}'), ('\u{a717}',
224
        '\u{a71f}'), ('\u{a722}', '\u{a788}'), ('\u{a78b}', '\u{a7dc}'), ('\u{a7f1}', '\u{a805}'),
225
        ('\u{a807}', '\u{a827}'), ('\u{a840}', '\u{a873}'), ('\u{a880}', '\u{a8c3}'), ('\u{a8c5}',
226
        '\u{a8c5}'), ('\u{a8f2}', '\u{a8f7}'), ('\u{a8fb}', '\u{a8fb}'), ('\u{a8fd}', '\u{a8ff}'),
227
        ('\u{a90a}', '\u{a92a}'), ('\u{a930}', '\u{a952}'), ('\u{a960}', '\u{a97c}'), ('\u{a980}',
228
        '\u{a9b2}'), ('\u{a9b4}', '\u{a9bf}'), ('\u{a9cf}', '\u{a9cf}'), ('\u{a9e0}', '\u{a9ef}'),
229
        ('\u{a9fa}', '\u{a9fe}'), ('\u{aa00}', '\u{aa36}'), ('\u{aa40}', '\u{aa4d}'), ('\u{aa60}',
230
        '\u{aa76}'), ('\u{aa7a}', '\u{aabe}'), ('\u{aac0}', '\u{aac0}'), ('\u{aac2}', '\u{aac2}'),
231
        ('\u{aadb}', '\u{aadd}'), ('\u{aae0}', '\u{aaef}'), ('\u{aaf2}', '\u{aaf5}'), ('\u{ab01}',
232
        '\u{ab06}'), ('\u{ab09}', '\u{ab0e}'), ('\u{ab11}', '\u{ab16}'), ('\u{ab20}', '\u{ab26}'),
233
        ('\u{ab28}', '\u{ab2e}'), ('\u{ab30}', '\u{ab5a}'), ('\u{ab5c}', '\u{ab69}'), ('\u{ab70}',
234
        '\u{abea}'), ('\u{ac00}', '\u{d7a3}'), ('\u{d7b0}', '\u{d7c6}'), ('\u{d7cb}', '\u{d7fb}'),
235
        ('\u{f900}', '\u{fa6d}'), ('\u{fa70}', '\u{fad9}'), ('\u{fb00}', '\u{fb06}'), ('\u{fb13}',
236
        '\u{fb17}'), ('\u{fb1d}', '\u{fb28}'), ('\u{fb2a}', '\u{fb36}'), ('\u{fb38}', '\u{fb3c}'),
237
        ('\u{fb3e}', '\u{fb3e}'), ('\u{fb40}', '\u{fb41}'), ('\u{fb43}', '\u{fb44}'), ('\u{fb46}',
238
        '\u{fbb1}'), ('\u{fbd3}', '\u{fd3d}'), ('\u{fd50}', '\u{fd8f}'), ('\u{fd92}', '\u{fdc7}'),
239
        ('\u{fdf0}', '\u{fdfb}'), ('\u{fe70}', '\u{fe74}'), ('\u{fe76}', '\u{fefc}'), ('\u{ff21}',
240
        '\u{ff3a}'), ('\u{ff41}', '\u{ff5a}'), ('\u{ff66}', '\u{ffbe}'), ('\u{ffc2}', '\u{ffc7}'),
241
        ('\u{ffca}', '\u{ffcf}'), ('\u{ffd2}', '\u{ffd7}'), ('\u{ffda}', '\u{ffdc}'), ('\u{10000}',
242
        '\u{1000b}'), ('\u{1000d}', '\u{10026}'), ('\u{10028}', '\u{1003a}'), ('\u{1003c}',
243
        '\u{1003d}'), ('\u{1003f}', '\u{1004d}'), ('\u{10050}', '\u{1005d}'), ('\u{10080}',
244
        '\u{100fa}'), ('\u{10140}', '\u{10174}'), ('\u{10280}', '\u{1029c}'), ('\u{102a0}',
245
        '\u{102d0}'), ('\u{10300}', '\u{1031f}'), ('\u{1032d}', '\u{1034a}'), ('\u{10350}',
246
        '\u{1037a}'), ('\u{10380}', '\u{1039d}'), ('\u{103a0}', '\u{103c3}'), ('\u{103c8}',
247
        '\u{103cf}'), ('\u{103d1}', '\u{103d5}'), ('\u{10400}', '\u{1049d}'), ('\u{104b0}',
248
        '\u{104d3}'), ('\u{104d8}', '\u{104fb}'), ('\u{10500}', '\u{10527}'), ('\u{10530}',
249
        '\u{10563}'), ('\u{10570}', '\u{1057a}'), ('\u{1057c}', '\u{1058a}'), ('\u{1058c}',
250
        '\u{10592}'), ('\u{10594}', '\u{10595}'), ('\u{10597}', '\u{105a1}'), ('\u{105a3}',
251
        '\u{105b1}'), ('\u{105b3}', '\u{105b9}'), ('\u{105bb}', '\u{105bc}'), ('\u{105c0}',
252
        '\u{105f3}'), ('\u{10600}', '\u{10736}'), ('\u{10740}', '\u{10755}'), ('\u{10760}',
253
        '\u{10767}'), ('\u{10780}', '\u{10785}'), ('\u{10787}', '\u{107b0}'), ('\u{107b2}',
254
        '\u{107ba}'), ('\u{10800}', '\u{10805}'), ('\u{10808}', '\u{10808}'), ('\u{1080a}',
255
        '\u{10835}'), ('\u{10837}', '\u{10838}'), ('\u{1083c}', '\u{1083c}'), ('\u{1083f}',
256
        '\u{10855}'), ('\u{10860}', '\u{10876}'), ('\u{10880}', '\u{1089e}'), ('\u{108e0}',
257
        '\u{108f2}'), ('\u{108f4}', '\u{108f5}'), ('\u{10900}', '\u{10915}'), ('\u{10920}',
258
        '\u{10939}'), ('\u{10940}', '\u{10959}'), ('\u{10980}', '\u{109b7}'), ('\u{109be}',
259
        '\u{109bf}'), ('\u{10a00}', '\u{10a03}'), ('\u{10a05}', '\u{10a06}'), ('\u{10a0c}',
260
        '\u{10a13}'), ('\u{10a15}', '\u{10a17}'), ('\u{10a19}', '\u{10a35}'), ('\u{10a60}',
261
        '\u{10a7c}'), ('\u{10a80}', '\u{10a9c}'), ('\u{10ac0}', '\u{10ac7}'), ('\u{10ac9}',
262
        '\u{10ae4}'), ('\u{10b00}', '\u{10b35}'), ('\u{10b40}', '\u{10b55}'), ('\u{10b60}',
263
        '\u{10b72}'), ('\u{10b80}', '\u{10b91}'), ('\u{10c00}', '\u{10c48}'), ('\u{10c80}',
264
        '\u{10cb2}'), ('\u{10cc0}', '\u{10cf2}'), ('\u{10d00}', '\u{10d27}'), ('\u{10d4a}',
265
        '\u{10d65}'), ('\u{10d69}', '\u{10d69}'), ('\u{10d6f}', '\u{10d85}'), ('\u{10e80}',
266
        '\u{10ea9}'), ('\u{10eab}', '\u{10eac}'), ('\u{10eb0}', '\u{10eb1}'), ('\u{10ec2}',
267
        '\u{10ec7}'), ('\u{10efa}', '\u{10efc}'), ('\u{10f00}', '\u{10f1c}'), ('\u{10f27}',
268
        '\u{10f27}'), ('\u{10f30}', '\u{10f45}'), ('\u{10f70}', '\u{10f81}'), ('\u{10fb0}',
269
        '\u{10fc4}'), ('\u{10fe0}', '\u{10ff6}'), ('\u{11000}', '\u{11045}'), ('\u{11071}',
270
        '\u{11075}'), ('\u{11080}', '\u{110b8}'), ('\u{110c2}', '\u{110c2}'), ('\u{110d0}',
271
        '\u{110e8}'), ('\u{11100}', '\u{11132}'), ('\u{11144}', '\u{11147}'), ('\u{11150}',
272
        '\u{11172}'), ('\u{11176}', '\u{11176}'), ('\u{11180}', '\u{111bf}'), ('\u{111c1}',
273
        '\u{111c4}'), ('\u{111ce}', '\u{111cf}'), ('\u{111da}', '\u{111da}'), ('\u{111dc}',
274
        '\u{111dc}'), ('\u{11200}', '\u{11211}'), ('\u{11213}', '\u{11234}'), ('\u{11237}',
275
        '\u{11237}'), ('\u{1123e}', '\u{11241}'), ('\u{11280}', '\u{11286}'), ('\u{11288}',
276
        '\u{11288}'), ('\u{1128a}', '\u{1128d}'), ('\u{1128f}', '\u{1129d}'), ('\u{1129f}',
277
        '\u{112a8}'), ('\u{112b0}', '\u{112e8}'), ('\u{11300}', '\u{11303}'), ('\u{11305}',
278
        '\u{1130c}'), ('\u{1130f}', '\u{11310}'), ('\u{11313}', '\u{11328}'), ('\u{1132a}',
279
        '\u{11330}'), ('\u{11332}', '\u{11333}'), ('\u{11335}', '\u{11339}'), ('\u{1133d}',
280
        '\u{11344}'), ('\u{11347}', '\u{11348}'), ('\u{1134b}', '\u{1134c}'), ('\u{11350}',
281
        '\u{11350}'), ('\u{11357}', '\u{11357}'), ('\u{1135d}', '\u{11363}'), ('\u{11380}',
282
        '\u{11389}'), ('\u{1138b}', '\u{1138b}'), ('\u{1138e}', '\u{1138e}'), ('\u{11390}',
283
        '\u{113b5}'), ('\u{113b7}', '\u{113c0}'), ('\u{113c2}', '\u{113c2}'), ('\u{113c5}',
284
        '\u{113c5}'), ('\u{113c7}', '\u{113ca}'), ('\u{113cc}', '\u{113cd}'), ('\u{113d1}',
285
        '\u{113d1}'), ('\u{113d3}', '\u{113d3}'), ('\u{11400}', '\u{11441}'), ('\u{11443}',
286
        '\u{11445}'), ('\u{11447}', '\u{1144a}'), ('\u{1145f}', '\u{11461}'), ('\u{11480}',
287
        '\u{114c1}'), ('\u{114c4}', '\u{114c5}'), ('\u{114c7}', '\u{114c7}'), ('\u{11580}',
288
        '\u{115b5}'), ('\u{115b8}', '\u{115be}'), ('\u{115d8}', '\u{115dd}'), ('\u{11600}',
289
        '\u{1163e}'), ('\u{11640}', '\u{11640}'), ('\u{11644}', '\u{11644}'), ('\u{11680}',
290
        '\u{116b5}'), ('\u{116b8}', '\u{116b8}'), ('\u{11700}', '\u{1171a}'), ('\u{1171d}',
291
        '\u{1172a}'), ('\u{11740}', '\u{11746}'), ('\u{11800}', '\u{11838}'), ('\u{118a0}',
292
        '\u{118df}'), ('\u{118ff}', '\u{11906}'), ('\u{11909}', '\u{11909}'), ('\u{1190c}',
293
        '\u{11913}'), ('\u{11915}', '\u{11916}'), ('\u{11918}', '\u{11935}'), ('\u{11937}',
294
        '\u{11938}'), ('\u{1193b}', '\u{1193c}'), ('\u{1193f}', '\u{11942}'), ('\u{119a0}',
295
        '\u{119a7}'), ('\u{119aa}', '\u{119d7}'), ('\u{119da}', '\u{119df}'), ('\u{119e1}',
296
        '\u{119e1}'), ('\u{119e3}', '\u{119e4}'), ('\u{11a00}', '\u{11a32}'), ('\u{11a35}',
297
        '\u{11a3e}'), ('\u{11a50}', '\u{11a97}'), ('\u{11a9d}', '\u{11a9d}'), ('\u{11ab0}',
298
        '\u{11af8}'), ('\u{11b60}', '\u{11b67}'), ('\u{11bc0}', '\u{11be0}'), ('\u{11c00}',
299
        '\u{11c08}'), ('\u{11c0a}', '\u{11c36}'), ('\u{11c38}', '\u{11c3e}'), ('\u{11c40}',
300
        '\u{11c40}'), ('\u{11c72}', '\u{11c8f}'), ('\u{11c92}', '\u{11ca7}'), ('\u{11ca9}',
301
        '\u{11cb6}'), ('\u{11d00}', '\u{11d06}'), ('\u{11d08}', '\u{11d09}'), ('\u{11d0b}',
302
        '\u{11d36}'), ('\u{11d3a}', '\u{11d3a}'), ('\u{11d3c}', '\u{11d3d}'), ('\u{11d3f}',
303
        '\u{11d41}'), ('\u{11d43}', '\u{11d43}'), ('\u{11d46}', '\u{11d47}'), ('\u{11d60}',
304
        '\u{11d65}'), ('\u{11d67}', '\u{11d68}'), ('\u{11d6a}', '\u{11d8e}'), ('\u{11d90}',
305
        '\u{11d91}'), ('\u{11d93}', '\u{11d96}'), ('\u{11d98}', '\u{11d98}'), ('\u{11db0}',
306
        '\u{11ddb}'), ('\u{11ee0}', '\u{11ef6}'), ('\u{11f00}', '\u{11f10}'), ('\u{11f12}',
307
        '\u{11f3a}'), ('\u{11f3e}', '\u{11f40}'), ('\u{11fb0}', '\u{11fb0}'), ('\u{12000}',
308
        '\u{12399}'), ('\u{12400}', '\u{1246e}'), ('\u{12480}', '\u{12543}'), ('\u{12f90}',
309
        '\u{12ff0}'), ('\u{13000}', '\u{1342f}'), ('\u{13441}', '\u{13446}'), ('\u{13460}',
310
        '\u{143fa}'), ('\u{14400}', '\u{14646}'), ('\u{16100}', '\u{1612e}'), ('\u{16800}',
311
        '\u{16a38}'), ('\u{16a40}', '\u{16a5e}'), ('\u{16a70}', '\u{16abe}'), ('\u{16ad0}',
312
        '\u{16aed}'), ('\u{16b00}', '\u{16b2f}'), ('\u{16b40}', '\u{16b43}'), ('\u{16b63}',
313
        '\u{16b77}'), ('\u{16b7d}', '\u{16b8f}'), ('\u{16d40}', '\u{16d6c}'), ('\u{16e40}',
314
        '\u{16e7f}'), ('\u{16ea0}', '\u{16eb8}'), ('\u{16ebb}', '\u{16ed3}'), ('\u{16f00}',
315
        '\u{16f4a}'), ('\u{16f4f}', '\u{16f87}'), ('\u{16f8f}', '\u{16f9f}'), ('\u{16fe0}',
316
        '\u{16fe1}'), ('\u{16fe3}', '\u{16fe3}'), ('\u{16ff0}', '\u{16ff6}'), ('\u{17000}',
317
        '\u{18cd5}'), ('\u{18cff}', '\u{18d1e}'), ('\u{18d80}', '\u{18df2}'), ('\u{1aff0}',
318
        '\u{1aff3}'), ('\u{1aff5}', '\u{1affb}'), ('\u{1affd}', '\u{1affe}'), ('\u{1b000}',
319
        '\u{1b122}'), ('\u{1b132}', '\u{1b132}'), ('\u{1b150}', '\u{1b152}'), ('\u{1b155}',
320
        '\u{1b155}'), ('\u{1b164}', '\u{1b167}'), ('\u{1b170}', '\u{1b2fb}'), ('\u{1bc00}',
321
        '\u{1bc6a}'), ('\u{1bc70}', '\u{1bc7c}'), ('\u{1bc80}', '\u{1bc88}'), ('\u{1bc90}',
322
        '\u{1bc99}'), ('\u{1bc9e}', '\u{1bc9e}'), ('\u{1d400}', '\u{1d454}'), ('\u{1d456}',
323
        '\u{1d49c}'), ('\u{1d49e}', '\u{1d49f}'), ('\u{1d4a2}', '\u{1d4a2}'), ('\u{1d4a5}',
324
        '\u{1d4a6}'), ('\u{1d4a9}', '\u{1d4ac}'), ('\u{1d4ae}', '\u{1d4b9}'), ('\u{1d4bb}',
325
        '\u{1d4bb}'), ('\u{1d4bd}', '\u{1d4c3}'), ('\u{1d4c5}', '\u{1d505}'), ('\u{1d507}',
326
        '\u{1d50a}'), ('\u{1d50d}', '\u{1d514}'), ('\u{1d516}', '\u{1d51c}'), ('\u{1d51e}',
327
        '\u{1d539}'), ('\u{1d53b}', '\u{1d53e}'), ('\u{1d540}', '\u{1d544}'), ('\u{1d546}',
328
        '\u{1d546}'), ('\u{1d54a}', '\u{1d550}'), ('\u{1d552}', '\u{1d6a5}'), ('\u{1d6a8}',
329
        '\u{1d6c0}'), ('\u{1d6c2}', '\u{1d6da}'), ('\u{1d6dc}', '\u{1d6fa}'), ('\u{1d6fc}',
330
        '\u{1d714}'), ('\u{1d716}', '\u{1d734}'), ('\u{1d736}', '\u{1d74e}'), ('\u{1d750}',
331
        '\u{1d76e}'), ('\u{1d770}', '\u{1d788}'), ('\u{1d78a}', '\u{1d7a8}'), ('\u{1d7aa}',
332
        '\u{1d7c2}'), ('\u{1d7c4}', '\u{1d7cb}'), ('\u{1df00}', '\u{1df1e}'), ('\u{1df25}',
333
        '\u{1df2a}'), ('\u{1e000}', '\u{1e006}'), ('\u{1e008}', '\u{1e018}'), ('\u{1e01b}',
334
        '\u{1e021}'), ('\u{1e023}', '\u{1e024}'), ('\u{1e026}', '\u{1e02a}'), ('\u{1e030}',
335
        '\u{1e06d}'), ('\u{1e08f}', '\u{1e08f}'), ('\u{1e100}', '\u{1e12c}'), ('\u{1e137}',
336
        '\u{1e13d}'), ('\u{1e14e}', '\u{1e14e}'), ('\u{1e290}', '\u{1e2ad}'), ('\u{1e2c0}',
337
        '\u{1e2eb}'), ('\u{1e4d0}', '\u{1e4eb}'), ('\u{1e5d0}', '\u{1e5ed}'), ('\u{1e5f0}',
338
        '\u{1e5f0}'), ('\u{1e6c0}', '\u{1e6de}'), ('\u{1e6e0}', '\u{1e6f5}'), ('\u{1e6fe}',
339
        '\u{1e6ff}'), ('\u{1e7e0}', '\u{1e7e6}'), ('\u{1e7e8}', '\u{1e7eb}'), ('\u{1e7ed}',
340
        '\u{1e7ee}'), ('\u{1e7f0}', '\u{1e7fe}'), ('\u{1e800}', '\u{1e8c4}'), ('\u{1e900}',
341
        '\u{1e943}'), ('\u{1e947}', '\u{1e947}'), ('\u{1e94b}', '\u{1e94b}'), ('\u{1ee00}',
342
        '\u{1ee03}'), ('\u{1ee05}', '\u{1ee1f}'), ('\u{1ee21}', '\u{1ee22}'), ('\u{1ee24}',
343
        '\u{1ee24}'), ('\u{1ee27}', '\u{1ee27}'), ('\u{1ee29}', '\u{1ee32}'), ('\u{1ee34}',
344
        '\u{1ee37}'), ('\u{1ee39}', '\u{1ee39}'), ('\u{1ee3b}', '\u{1ee3b}'), ('\u{1ee42}',
345
        '\u{1ee42}'), ('\u{1ee47}', '\u{1ee47}'), ('\u{1ee49}', '\u{1ee49}'), ('\u{1ee4b}',
346
        '\u{1ee4b}'), ('\u{1ee4d}', '\u{1ee4f}'), ('\u{1ee51}', '\u{1ee52}'), ('\u{1ee54}',
347
        '\u{1ee54}'), ('\u{1ee57}', '\u{1ee57}'), ('\u{1ee59}', '\u{1ee59}'), ('\u{1ee5b}',
348
        '\u{1ee5b}'), ('\u{1ee5d}', '\u{1ee5d}'), ('\u{1ee5f}', '\u{1ee5f}'), ('\u{1ee61}',
349
        '\u{1ee62}'), ('\u{1ee64}', '\u{1ee64}'), ('\u{1ee67}', '\u{1ee6a}'), ('\u{1ee6c}',
350
        '\u{1ee72}'), ('\u{1ee74}', '\u{1ee77}'), ('\u{1ee79}', '\u{1ee7c}'), ('\u{1ee7e}',
351
        '\u{1ee7e}'), ('\u{1ee80}', '\u{1ee89}'), ('\u{1ee8b}', '\u{1ee9b}'), ('\u{1eea1}',
352
        '\u{1eea3}'), ('\u{1eea5}', '\u{1eea9}'), ('\u{1eeab}', '\u{1eebb}'), ('\u{1f130}',
353
        '\u{1f149}'), ('\u{1f150}', '\u{1f169}'), ('\u{1f170}', '\u{1f189}'), ('\u{20000}',
354
        '\u{2a6df}'), ('\u{2a700}', '\u{2b81d}'), ('\u{2b820}', '\u{2cead}'), ('\u{2ceb0}',
355
        '\u{2ebe0}'), ('\u{2ebf0}', '\u{2ee5d}'), ('\u{2f800}', '\u{2fa1d}'), ('\u{30000}',
356
        '\u{3134a}'), ('\u{31350}', '\u{33479}')
357
    ];
358
359
    #[inline]
360
707k
    pub fn Alphabetic(c: char) -> bool {
361
707k
        super::util::bsearch_range_table(c, Alphabetic_table)
362
707k
    }
363
364
    const InCB_Extend_table: &[(char, char)] = &[
365
        ('\u{300}', '\u{36f}'), ('\u{483}', '\u{489}'), ('\u{591}', '\u{5bd}'), ('\u{5bf}',
366
        '\u{5bf}'), ('\u{5c1}', '\u{5c2}'), ('\u{5c4}', '\u{5c5}'), ('\u{5c7}', '\u{5c7}'),
367
        ('\u{610}', '\u{61a}'), ('\u{64b}', '\u{65f}'), ('\u{670}', '\u{670}'), ('\u{6d6}',
368
        '\u{6dc}'), ('\u{6df}', '\u{6e4}'), ('\u{6e7}', '\u{6e8}'), ('\u{6ea}', '\u{6ed}'),
369
        ('\u{711}', '\u{711}'), ('\u{730}', '\u{74a}'), ('\u{7a6}', '\u{7b0}'), ('\u{7eb}',
370
        '\u{7f3}'), ('\u{7fd}', '\u{7fd}'), ('\u{816}', '\u{819}'), ('\u{81b}', '\u{823}'),
371
        ('\u{825}', '\u{827}'), ('\u{829}', '\u{82d}'), ('\u{859}', '\u{85b}'), ('\u{897}',
372
        '\u{89f}'), ('\u{8ca}', '\u{8e1}'), ('\u{8e3}', '\u{902}'), ('\u{93a}', '\u{93a}'),
373
        ('\u{93c}', '\u{93c}'), ('\u{941}', '\u{948}'), ('\u{951}', '\u{957}'), ('\u{962}',
374
        '\u{963}'), ('\u{981}', '\u{981}'), ('\u{9bc}', '\u{9bc}'), ('\u{9be}', '\u{9be}'),
375
        ('\u{9c1}', '\u{9c4}'), ('\u{9d7}', '\u{9d7}'), ('\u{9e2}', '\u{9e3}'), ('\u{9fe}',
376
        '\u{9fe}'), ('\u{a01}', '\u{a02}'), ('\u{a3c}', '\u{a3c}'), ('\u{a41}', '\u{a42}'),
377
        ('\u{a47}', '\u{a48}'), ('\u{a4b}', '\u{a4d}'), ('\u{a51}', '\u{a51}'), ('\u{a70}',
378
        '\u{a71}'), ('\u{a75}', '\u{a75}'), ('\u{a81}', '\u{a82}'), ('\u{abc}', '\u{abc}'),
379
        ('\u{ac1}', '\u{ac5}'), ('\u{ac7}', '\u{ac8}'), ('\u{ae2}', '\u{ae3}'), ('\u{afa}',
380
        '\u{aff}'), ('\u{b01}', '\u{b01}'), ('\u{b3c}', '\u{b3c}'), ('\u{b3e}', '\u{b3f}'),
381
        ('\u{b41}', '\u{b44}'), ('\u{b55}', '\u{b57}'), ('\u{b62}', '\u{b63}'), ('\u{b82}',
382
        '\u{b82}'), ('\u{bbe}', '\u{bbe}'), ('\u{bc0}', '\u{bc0}'), ('\u{bcd}', '\u{bcd}'),
383
        ('\u{bd7}', '\u{bd7}'), ('\u{c00}', '\u{c00}'), ('\u{c04}', '\u{c04}'), ('\u{c3c}',
384
        '\u{c3c}'), ('\u{c3e}', '\u{c40}'), ('\u{c46}', '\u{c48}'), ('\u{c4a}', '\u{c4c}'),
385
        ('\u{c55}', '\u{c56}'), ('\u{c62}', '\u{c63}'), ('\u{c81}', '\u{c81}'), ('\u{cbc}',
386
        '\u{cbc}'), ('\u{cbf}', '\u{cc0}'), ('\u{cc2}', '\u{cc2}'), ('\u{cc6}', '\u{cc8}'),
387
        ('\u{cca}', '\u{ccd}'), ('\u{cd5}', '\u{cd6}'), ('\u{ce2}', '\u{ce3}'), ('\u{d00}',
388
        '\u{d01}'), ('\u{d3b}', '\u{d3c}'), ('\u{d3e}', '\u{d3e}'), ('\u{d41}', '\u{d44}'),
389
        ('\u{d57}', '\u{d57}'), ('\u{d62}', '\u{d63}'), ('\u{d81}', '\u{d81}'), ('\u{dca}',
390
        '\u{dca}'), ('\u{dcf}', '\u{dcf}'), ('\u{dd2}', '\u{dd4}'), ('\u{dd6}', '\u{dd6}'),
391
        ('\u{ddf}', '\u{ddf}'), ('\u{e31}', '\u{e31}'), ('\u{e34}', '\u{e3a}'), ('\u{e47}',
392
        '\u{e4e}'), ('\u{eb1}', '\u{eb1}'), ('\u{eb4}', '\u{ebc}'), ('\u{ec8}', '\u{ece}'),
393
        ('\u{f18}', '\u{f19}'), ('\u{f35}', '\u{f35}'), ('\u{f37}', '\u{f37}'), ('\u{f39}',
394
        '\u{f39}'), ('\u{f71}', '\u{f7e}'), ('\u{f80}', '\u{f84}'), ('\u{f86}', '\u{f87}'),
395
        ('\u{f8d}', '\u{f97}'), ('\u{f99}', '\u{fbc}'), ('\u{fc6}', '\u{fc6}'), ('\u{102d}',
396
        '\u{1030}'), ('\u{1032}', '\u{1037}'), ('\u{103a}', '\u{103a}'), ('\u{103d}', '\u{103e}'),
397
        ('\u{1058}', '\u{1059}'), ('\u{105e}', '\u{1060}'), ('\u{1071}', '\u{1074}'), ('\u{1082}',
398
        '\u{1082}'), ('\u{1085}', '\u{1086}'), ('\u{108d}', '\u{108d}'), ('\u{109d}', '\u{109d}'),
399
        ('\u{135d}', '\u{135f}'), ('\u{1712}', '\u{1715}'), ('\u{1732}', '\u{1734}'), ('\u{1752}',
400
        '\u{1753}'), ('\u{1772}', '\u{1773}'), ('\u{17b4}', '\u{17b5}'), ('\u{17b7}', '\u{17bd}'),
401
        ('\u{17c6}', '\u{17c6}'), ('\u{17c9}', '\u{17d1}'), ('\u{17d3}', '\u{17d3}'), ('\u{17dd}',
402
        '\u{17dd}'), ('\u{180b}', '\u{180d}'), ('\u{180f}', '\u{180f}'), ('\u{1885}', '\u{1886}'),
403
        ('\u{18a9}', '\u{18a9}'), ('\u{1920}', '\u{1922}'), ('\u{1927}', '\u{1928}'), ('\u{1932}',
404
        '\u{1932}'), ('\u{1939}', '\u{193b}'), ('\u{1a17}', '\u{1a18}'), ('\u{1a1b}', '\u{1a1b}'),
405
        ('\u{1a56}', '\u{1a56}'), ('\u{1a58}', '\u{1a5e}'), ('\u{1a62}', '\u{1a62}'), ('\u{1a65}',
406
        '\u{1a6c}'), ('\u{1a73}', '\u{1a7c}'), ('\u{1a7f}', '\u{1a7f}'), ('\u{1ab0}', '\u{1add}'),
407
        ('\u{1ae0}', '\u{1aeb}'), ('\u{1b00}', '\u{1b03}'), ('\u{1b34}', '\u{1b3d}'), ('\u{1b42}',
408
        '\u{1b43}'), ('\u{1b6b}', '\u{1b73}'), ('\u{1b80}', '\u{1b81}'), ('\u{1ba2}', '\u{1ba5}'),
409
        ('\u{1ba8}', '\u{1baa}'), ('\u{1bac}', '\u{1bad}'), ('\u{1be6}', '\u{1be6}'), ('\u{1be8}',
410
        '\u{1be9}'), ('\u{1bed}', '\u{1bed}'), ('\u{1bef}', '\u{1bf3}'), ('\u{1c2c}', '\u{1c33}'),
411
        ('\u{1c36}', '\u{1c37}'), ('\u{1cd0}', '\u{1cd2}'), ('\u{1cd4}', '\u{1ce0}'), ('\u{1ce2}',
412
        '\u{1ce8}'), ('\u{1ced}', '\u{1ced}'), ('\u{1cf4}', '\u{1cf4}'), ('\u{1cf8}', '\u{1cf9}'),
413
        ('\u{1dc0}', '\u{1dff}'), ('\u{200d}', '\u{200d}'), ('\u{20d0}', '\u{20f0}'), ('\u{2cef}',
414
        '\u{2cf1}'), ('\u{2d7f}', '\u{2d7f}'), ('\u{2de0}', '\u{2dff}'), ('\u{302a}', '\u{302f}'),
415
        ('\u{3099}', '\u{309a}'), ('\u{a66f}', '\u{a672}'), ('\u{a674}', '\u{a67d}'), ('\u{a69e}',
416
        '\u{a69f}'), ('\u{a6f0}', '\u{a6f1}'), ('\u{a802}', '\u{a802}'), ('\u{a806}', '\u{a806}'),
417
        ('\u{a80b}', '\u{a80b}'), ('\u{a825}', '\u{a826}'), ('\u{a82c}', '\u{a82c}'), ('\u{a8c4}',
418
        '\u{a8c5}'), ('\u{a8e0}', '\u{a8f1}'), ('\u{a8ff}', '\u{a8ff}'), ('\u{a926}', '\u{a92d}'),
419
        ('\u{a947}', '\u{a951}'), ('\u{a953}', '\u{a953}'), ('\u{a980}', '\u{a982}'), ('\u{a9b3}',
420
        '\u{a9b3}'), ('\u{a9b6}', '\u{a9b9}'), ('\u{a9bc}', '\u{a9bd}'), ('\u{a9e5}', '\u{a9e5}'),
421
        ('\u{aa29}', '\u{aa2e}'), ('\u{aa31}', '\u{aa32}'), ('\u{aa35}', '\u{aa36}'), ('\u{aa43}',
422
        '\u{aa43}'), ('\u{aa4c}', '\u{aa4c}'), ('\u{aa7c}', '\u{aa7c}'), ('\u{aab0}', '\u{aab0}'),
423
        ('\u{aab2}', '\u{aab4}'), ('\u{aab7}', '\u{aab8}'), ('\u{aabe}', '\u{aabf}'), ('\u{aac1}',
424
        '\u{aac1}'), ('\u{aaec}', '\u{aaed}'), ('\u{abe5}', '\u{abe5}'), ('\u{abe8}', '\u{abe8}'),
425
        ('\u{abed}', '\u{abed}'), ('\u{fb1e}', '\u{fb1e}'), ('\u{fe00}', '\u{fe0f}'), ('\u{fe20}',
426
        '\u{fe2f}'), ('\u{ff9e}', '\u{ff9f}'), ('\u{101fd}', '\u{101fd}'), ('\u{102e0}',
427
        '\u{102e0}'), ('\u{10376}', '\u{1037a}'), ('\u{10a01}', '\u{10a03}'), ('\u{10a05}',
428
        '\u{10a06}'), ('\u{10a0c}', '\u{10a0f}'), ('\u{10a38}', '\u{10a3a}'), ('\u{10ae5}',
429
        '\u{10ae6}'), ('\u{10d24}', '\u{10d27}'), ('\u{10d69}', '\u{10d6d}'), ('\u{10eab}',
430
        '\u{10eac}'), ('\u{10efa}', '\u{10eff}'), ('\u{10f46}', '\u{10f50}'), ('\u{10f82}',
431
        '\u{10f85}'), ('\u{11001}', '\u{11001}'), ('\u{11038}', '\u{11046}'), ('\u{11070}',
432
        '\u{11070}'), ('\u{11073}', '\u{11074}'), ('\u{1107f}', '\u{11081}'), ('\u{110b3}',
433
        '\u{110b6}'), ('\u{110b9}', '\u{110ba}'), ('\u{110c2}', '\u{110c2}'), ('\u{11100}',
434
        '\u{11102}'), ('\u{11127}', '\u{1112b}'), ('\u{1112d}', '\u{11132}'), ('\u{11134}',
435
        '\u{11134}'), ('\u{11173}', '\u{11173}'), ('\u{11180}', '\u{11181}'), ('\u{111b6}',
436
        '\u{111be}'), ('\u{111c0}', '\u{111c0}'), ('\u{111c9}', '\u{111cc}'), ('\u{111cf}',
437
        '\u{111cf}'), ('\u{1122f}', '\u{11231}'), ('\u{11234}', '\u{11237}'), ('\u{1123e}',
438
        '\u{1123e}'), ('\u{11241}', '\u{11241}'), ('\u{112df}', '\u{112df}'), ('\u{112e3}',
439
        '\u{112ea}'), ('\u{11300}', '\u{11301}'), ('\u{1133b}', '\u{1133c}'), ('\u{1133e}',
440
        '\u{1133e}'), ('\u{11340}', '\u{11340}'), ('\u{1134d}', '\u{1134d}'), ('\u{11357}',
441
        '\u{11357}'), ('\u{11366}', '\u{1136c}'), ('\u{11370}', '\u{11374}'), ('\u{113b8}',
442
        '\u{113b8}'), ('\u{113bb}', '\u{113c0}'), ('\u{113c2}', '\u{113c2}'), ('\u{113c5}',
443
        '\u{113c5}'), ('\u{113c7}', '\u{113c9}'), ('\u{113ce}', '\u{113cf}'), ('\u{113d2}',
444
        '\u{113d2}'), ('\u{113e1}', '\u{113e2}'), ('\u{11438}', '\u{1143f}'), ('\u{11442}',
445
        '\u{11444}'), ('\u{11446}', '\u{11446}'), ('\u{1145e}', '\u{1145e}'), ('\u{114b0}',
446
        '\u{114b0}'), ('\u{114b3}', '\u{114b8}'), ('\u{114ba}', '\u{114ba}'), ('\u{114bd}',
447
        '\u{114bd}'), ('\u{114bf}', '\u{114c0}'), ('\u{114c2}', '\u{114c3}'), ('\u{115af}',
448
        '\u{115af}'), ('\u{115b2}', '\u{115b5}'), ('\u{115bc}', '\u{115bd}'), ('\u{115bf}',
449
        '\u{115c0}'), ('\u{115dc}', '\u{115dd}'), ('\u{11633}', '\u{1163a}'), ('\u{1163d}',
450
        '\u{1163d}'), ('\u{1163f}', '\u{11640}'), ('\u{116ab}', '\u{116ab}'), ('\u{116ad}',
451
        '\u{116ad}'), ('\u{116b0}', '\u{116b7}'), ('\u{1171d}', '\u{1171d}'), ('\u{1171f}',
452
        '\u{1171f}'), ('\u{11722}', '\u{11725}'), ('\u{11727}', '\u{1172b}'), ('\u{1182f}',
453
        '\u{11837}'), ('\u{11839}', '\u{1183a}'), ('\u{11930}', '\u{11930}'), ('\u{1193b}',
454
        '\u{1193d}'), ('\u{11943}', '\u{11943}'), ('\u{119d4}', '\u{119d7}'), ('\u{119da}',
455
        '\u{119db}'), ('\u{119e0}', '\u{119e0}'), ('\u{11a01}', '\u{11a0a}'), ('\u{11a33}',
456
        '\u{11a38}'), ('\u{11a3b}', '\u{11a3e}'), ('\u{11a51}', '\u{11a56}'), ('\u{11a59}',
457
        '\u{11a5b}'), ('\u{11a8a}', '\u{11a96}'), ('\u{11a98}', '\u{11a98}'), ('\u{11b60}',
458
        '\u{11b60}'), ('\u{11b62}', '\u{11b64}'), ('\u{11b66}', '\u{11b66}'), ('\u{11c30}',
459
        '\u{11c36}'), ('\u{11c38}', '\u{11c3d}'), ('\u{11c3f}', '\u{11c3f}'), ('\u{11c92}',
460
        '\u{11ca7}'), ('\u{11caa}', '\u{11cb0}'), ('\u{11cb2}', '\u{11cb3}'), ('\u{11cb5}',
461
        '\u{11cb6}'), ('\u{11d31}', '\u{11d36}'), ('\u{11d3a}', '\u{11d3a}'), ('\u{11d3c}',
462
        '\u{11d3d}'), ('\u{11d3f}', '\u{11d45}'), ('\u{11d47}', '\u{11d47}'), ('\u{11d90}',
463
        '\u{11d91}'), ('\u{11d95}', '\u{11d95}'), ('\u{11d97}', '\u{11d97}'), ('\u{11ef3}',
464
        '\u{11ef4}'), ('\u{11f00}', '\u{11f01}'), ('\u{11f36}', '\u{11f3a}'), ('\u{11f40}',
465
        '\u{11f41}'), ('\u{11f5a}', '\u{11f5a}'), ('\u{13440}', '\u{13440}'), ('\u{13447}',
466
        '\u{13455}'), ('\u{1611e}', '\u{16129}'), ('\u{1612d}', '\u{1612f}'), ('\u{16af0}',
467
        '\u{16af4}'), ('\u{16b30}', '\u{16b36}'), ('\u{16f4f}', '\u{16f4f}'), ('\u{16f8f}',
468
        '\u{16f92}'), ('\u{16fe4}', '\u{16fe4}'), ('\u{16ff0}', '\u{16ff1}'), ('\u{1bc9d}',
469
        '\u{1bc9e}'), ('\u{1cf00}', '\u{1cf2d}'), ('\u{1cf30}', '\u{1cf46}'), ('\u{1d165}',
470
        '\u{1d169}'), ('\u{1d16d}', '\u{1d172}'), ('\u{1d17b}', '\u{1d182}'), ('\u{1d185}',
471
        '\u{1d18b}'), ('\u{1d1aa}', '\u{1d1ad}'), ('\u{1d242}', '\u{1d244}'), ('\u{1da00}',
472
        '\u{1da36}'), ('\u{1da3b}', '\u{1da6c}'), ('\u{1da75}', '\u{1da75}'), ('\u{1da84}',
473
        '\u{1da84}'), ('\u{1da9b}', '\u{1da9f}'), ('\u{1daa1}', '\u{1daaf}'), ('\u{1e000}',
474
        '\u{1e006}'), ('\u{1e008}', '\u{1e018}'), ('\u{1e01b}', '\u{1e021}'), ('\u{1e023}',
475
        '\u{1e024}'), ('\u{1e026}', '\u{1e02a}'), ('\u{1e08f}', '\u{1e08f}'), ('\u{1e130}',
476
        '\u{1e136}'), ('\u{1e2ae}', '\u{1e2ae}'), ('\u{1e2ec}', '\u{1e2ef}'), ('\u{1e4ec}',
477
        '\u{1e4ef}'), ('\u{1e5ee}', '\u{1e5ef}'), ('\u{1e6e3}', '\u{1e6e3}'), ('\u{1e6e6}',
478
        '\u{1e6e6}'), ('\u{1e6ee}', '\u{1e6ef}'), ('\u{1e6f5}', '\u{1e6f5}'), ('\u{1e8d0}',
479
        '\u{1e8d6}'), ('\u{1e944}', '\u{1e94a}'), ('\u{1f3fb}', '\u{1f3ff}'), ('\u{e0020}',
480
        '\u{e007f}'), ('\u{e0100}', '\u{e01ef}')
481
    ];
482
483
    #[inline]
484
44.9M
    pub fn InCB_Extend(c: char) -> bool {
485
44.9M
        super::util::bsearch_range_table(c, InCB_Extend_table)
486
44.9M
    }
unicode_segmentation::tables::derived_property::InCB_Extend
Line
Count
Source
484
44.9M
    pub fn InCB_Extend(c: char) -> bool {
485
44.9M
        super::util::bsearch_range_table(c, InCB_Extend_table)
486
44.9M
    }
Unexecuted instantiation: unicode_segmentation::tables::derived_property::InCB_Extend
487
488
}
489
490
45.0M
pub fn is_incb_linker(c: char) -> bool {
491
45.0M
    matches!(c, | '\u{94D}' | '\u{9CD}' | '\u{ACD}' | '\u{B4D}' | '\u{C4D}' | '\u{D4D}' | '\u{1039}' | '\u{17D2}' | '\u{1A60}' | '\u{1B44}' | '\u{1BAB}' | '\u{A9C0}' | '\u{AAF6}' | '\u{10A3F}' | '\u{11133}' | '\u{113D0}' | '\u{1193E}' | '\u{11A47}' | '\u{11A99}' | '\u{11F42}')
492
45.0M
}
493
494
pub mod grapheme {
495
    use core::result::Result::{Ok, Err};
496
497
    pub use self::GraphemeCat::*;
498
499
    #[allow(non_camel_case_types)]
500
    #[derive(Clone, Copy, PartialEq, Eq, Debug)]
501
    pub enum GraphemeCat {
502
        GC_Any,
503
        GC_CR,
504
        GC_Control,
505
        GC_Extend,
506
        GC_Extended_Pictographic,
507
        GC_InCB_Consonant,
508
        GC_L,
509
        GC_LF,
510
        GC_LV,
511
        GC_LVT,
512
        GC_Prepend,
513
        GC_Regional_Indicator,
514
        GC_SpacingMark,
515
        GC_T,
516
        GC_V,
517
        GC_ZWJ,
518
    }
519
520
176k
    fn bsearch_range_value_table(c: char, r: &[(char, char, GraphemeCat)], default_lower: u32, default_upper: u32) -> (u32, u32, GraphemeCat) {
521
        use core::cmp::Ordering::{Equal, Less, Greater};
522
767k
        match r.binary_search_by(|&(lo, hi, _)| {
523
767k
            if lo <= c && c <= hi { Equal }
524
473k
            else if hi < c { Less }
525
360k
            else { Greater }
526
767k
        }) {
527
160k
            Ok(idx) => {
528
160k
                let (lower, upper, cat) = r[idx];
529
160k
                (lower as u32, upper as u32, cat)
530
            }
531
16.5k
            Err(idx) => {
532
                (
533
16.5k
                    if idx > 0 { r[idx-1].1 as u32 + 1 } else { default_lower },
534
16.5k
                    r.get(idx).map(|c|c.0 as u32 - 1).unwrap_or(default_upper),
535
16.5k
                    GC_Any,
536
                )
537
            }
538
        }
539
176k
    }
540
541
176k
    pub fn grapheme_category(c: char) -> (u32, u32, GraphemeCat) {
542
        // Perform a quick O(1) lookup in a precomputed table to determine
543
        // the slice of the range table to search in.
544
176k
        let lookup_interval = 0x80;
545
176k
        let idx = (c as u32 / lookup_interval) as usize;
546
176k
        let range = grapheme_cat_lookup.get(idx..(idx + 2)).map_or(
547
          // If the `idx` is outside of the precomputed table - use the slice
548
          // starting from the last covered index in the precomputed table and
549
          // ending with the length of the range table.
550
176k
          1612..1618,
551
171k
          |r| (r[0] as usize)..((r[1] + 1) as usize)
552
        );
553
554
        // Compute pessimistic default lower and upper bounds on the category.
555
        // If character doesn't map to any range and there is no adjacent range
556
        // in the table slice - these bounds has to apply.
557
176k
        let lower = idx as u32 * lookup_interval;
558
176k
        let upper = lower + lookup_interval - 1;
559
176k
        bsearch_range_value_table(c, &grapheme_cat_table[range], lower, upper)
560
176k
    }
561
562
    const grapheme_cat_lookup: &[u16] = &[
563
        0, 5, 9, 9, 9, 9, 9, 10, 10, 10, 11, 11, 16, 21, 26, 29, 32, 37, 41, 56, 75, 85, 101, 119,
564
        128, 141, 154, 167, 177, 181, 185, 192, 197, 214, 221, 222, 224, 224, 224, 225, 225, 225,
565
        225, 225, 225, 225, 225, 229, 238, 241, 243, 251, 251, 265, 267, 276, 292, 296, 304, 304,
566
        305, 305, 305, 305, 305, 313, 314, 316, 318, 318, 318, 320, 323, 323, 324, 324, 328, 349,
567
        366, 384, 388, 388, 388, 389, 389, 389, 389, 393, 393, 393, 394, 395, 396, 396, 396, 396,
568
        396, 399, 400, 400, 400, 400, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
569
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
570
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
571
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
572
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
573
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
574
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
575
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
576
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
577
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
578
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
579
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
580
        402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402, 402,
581
        402, 402, 402, 404, 406, 406, 406, 413, 418, 423, 438, 451, 462, 462, 470, 479, 489, 497,
582
        507, 515, 525, 534, 543, 553, 561, 571, 579, 589, 598, 607, 617, 625, 635, 643, 653, 662,
583
        671, 681, 689, 699, 707, 717, 726, 735, 745, 753, 763, 771, 781, 790, 799, 809, 817, 827,
584
        835, 845, 854, 863, 873, 881, 891, 899, 909, 918, 927, 937, 945, 955, 963, 973, 982, 991,
585
        1001, 1009, 1019, 1027, 1037, 1046, 1055, 1065, 1073, 1083, 1091, 1101, 1110, 1119, 1129,
586
        1137, 1147, 1155, 1165, 1174, 1183, 1193, 1201, 1211, 1219, 1229, 1238, 1247, 1257, 1265,
587
        1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
588
        1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
589
        1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
590
        1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270,
591
        1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1271, 1271, 1271, 1271,
592
        1271, 1271, 1273, 1274, 1274, 1276, 1276, 1276, 1276, 1277, 1277, 1278, 1279, 1279, 1279,
593
        1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1288, 1289, 1289, 1289,
594
        1289, 1289, 1291, 1291, 1291, 1293, 1294, 1295, 1301, 1310, 1319, 1329, 1335, 1338, 1352,
595
        1368, 1375, 1386, 1386, 1394, 1400, 1405, 1411, 1411, 1415, 1415, 1429, 1435, 1446, 1451,
596
        1457, 1457, 1462, 1469, 1475, 1481, 1481, 1483, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
597
        1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
598
        1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
599
        1493, 1493, 1493, 1493, 1493, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
600
        1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
601
        1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
602
        1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
603
        1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
604
        1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
605
        1496, 1496, 1496, 1496, 1496, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
606
        1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1500, 1501, 1501, 1501, 1501, 1503,
607
        1503, 1503, 1503, 1504, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
608
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
609
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
610
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
611
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
612
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
613
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
614
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
615
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
616
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
617
        1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
618
        1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
619
        1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
620
        1512, 1512, 1512, 1512, 1515, 1518, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519,
621
        1519, 1519, 1519, 1519, 1519, 1519, 1519, 1522, 1525, 1525, 1525, 1525, 1525, 1525, 1525,
622
        1525, 1525, 1525, 1525, 1530, 1531, 1532, 1532, 1532, 1534, 1534, 1534, 1534, 1535, 1535,
623
        1536, 1536, 1540, 1540, 1540, 1540, 1541, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542,
624
        1542, 1542, 1542, 1542, 1542, 1542, 1544, 1549, 1551, 1555, 1561, 1561, 1562, 1569, 1569,
625
        1570, 1575, 1591, 1592, 1598, 1598, 1599, 1602, 1607, 1609, 1610, 1611, 1612, 1612, 1612,
626
        1612, 1612, 1612, 1612, 1612, 1612, 1612
627
    ];
628
629
    const grapheme_cat_table: &[(char, char, GraphemeCat)] = &[
630
        ('\u{0}', '\u{9}', GC_Control), ('\u{a}', '\u{a}', GC_LF), ('\u{b}', '\u{c}', GC_Control),
631
        ('\u{d}', '\u{d}', GC_CR), ('\u{e}', '\u{1f}', GC_Control), ('\u{7f}', '\u{9f}',
632
        GC_Control), ('\u{a9}', '\u{a9}', GC_Extended_Pictographic), ('\u{ad}', '\u{ad}',
633
        GC_Control), ('\u{ae}', '\u{ae}', GC_Extended_Pictographic), ('\u{300}', '\u{36f}',
634
        GC_Extend), ('\u{483}', '\u{489}', GC_Extend), ('\u{591}', '\u{5bd}', GC_Extend),
635
        ('\u{5bf}', '\u{5bf}', GC_Extend), ('\u{5c1}', '\u{5c2}', GC_Extend), ('\u{5c4}', '\u{5c5}',
636
        GC_Extend), ('\u{5c7}', '\u{5c7}', GC_Extend), ('\u{600}', '\u{605}', GC_Prepend),
637
        ('\u{610}', '\u{61a}', GC_Extend), ('\u{61c}', '\u{61c}', GC_Control), ('\u{64b}',
638
        '\u{65f}', GC_Extend), ('\u{670}', '\u{670}', GC_Extend), ('\u{6d6}', '\u{6dc}', GC_Extend),
639
        ('\u{6dd}', '\u{6dd}', GC_Prepend), ('\u{6df}', '\u{6e4}', GC_Extend), ('\u{6e7}',
640
        '\u{6e8}', GC_Extend), ('\u{6ea}', '\u{6ed}', GC_Extend), ('\u{70f}', '\u{70f}',
641
        GC_Prepend), ('\u{711}', '\u{711}', GC_Extend), ('\u{730}', '\u{74a}', GC_Extend),
642
        ('\u{7a6}', '\u{7b0}', GC_Extend), ('\u{7eb}', '\u{7f3}', GC_Extend), ('\u{7fd}', '\u{7fd}',
643
        GC_Extend), ('\u{816}', '\u{819}', GC_Extend), ('\u{81b}', '\u{823}', GC_Extend),
644
        ('\u{825}', '\u{827}', GC_Extend), ('\u{829}', '\u{82d}', GC_Extend), ('\u{859}', '\u{85b}',
645
        GC_Extend), ('\u{890}', '\u{891}', GC_Prepend), ('\u{897}', '\u{89f}', GC_Extend),
646
        ('\u{8ca}', '\u{8e1}', GC_Extend), ('\u{8e2}', '\u{8e2}', GC_Prepend), ('\u{8e3}',
647
        '\u{902}', GC_Extend), ('\u{903}', '\u{903}', GC_SpacingMark), ('\u{915}', '\u{939}',
648
        GC_InCB_Consonant), ('\u{93a}', '\u{93a}', GC_Extend), ('\u{93b}', '\u{93b}',
649
        GC_SpacingMark), ('\u{93c}', '\u{93c}', GC_Extend), ('\u{93e}', '\u{940}', GC_SpacingMark),
650
        ('\u{941}', '\u{948}', GC_Extend), ('\u{949}', '\u{94c}', GC_SpacingMark), ('\u{94d}',
651
        '\u{94d}', GC_Extend), ('\u{94e}', '\u{94f}', GC_SpacingMark), ('\u{951}', '\u{957}',
652
        GC_Extend), ('\u{958}', '\u{95f}', GC_InCB_Consonant), ('\u{962}', '\u{963}', GC_Extend),
653
        ('\u{978}', '\u{97f}', GC_InCB_Consonant), ('\u{981}', '\u{981}', GC_Extend), ('\u{982}',
654
        '\u{983}', GC_SpacingMark), ('\u{995}', '\u{9a8}', GC_InCB_Consonant), ('\u{9aa}',
655
        '\u{9b0}', GC_InCB_Consonant), ('\u{9b2}', '\u{9b2}', GC_InCB_Consonant), ('\u{9b6}',
656
        '\u{9b9}', GC_InCB_Consonant), ('\u{9bc}', '\u{9bc}', GC_Extend), ('\u{9be}', '\u{9be}',
657
        GC_Extend), ('\u{9bf}', '\u{9c0}', GC_SpacingMark), ('\u{9c1}', '\u{9c4}', GC_Extend),
658
        ('\u{9c7}', '\u{9c8}', GC_SpacingMark), ('\u{9cb}', '\u{9cc}', GC_SpacingMark), ('\u{9cd}',
659
        '\u{9cd}', GC_Extend), ('\u{9d7}', '\u{9d7}', GC_Extend), ('\u{9dc}', '\u{9dd}',
660
        GC_InCB_Consonant), ('\u{9df}', '\u{9df}', GC_InCB_Consonant), ('\u{9e2}', '\u{9e3}',
661
        GC_Extend), ('\u{9f0}', '\u{9f1}', GC_InCB_Consonant), ('\u{9fe}', '\u{9fe}', GC_Extend),
662
        ('\u{a01}', '\u{a02}', GC_Extend), ('\u{a03}', '\u{a03}', GC_SpacingMark), ('\u{a3c}',
663
        '\u{a3c}', GC_Extend), ('\u{a3e}', '\u{a40}', GC_SpacingMark), ('\u{a41}', '\u{a42}',
664
        GC_Extend), ('\u{a47}', '\u{a48}', GC_Extend), ('\u{a4b}', '\u{a4d}', GC_Extend),
665
        ('\u{a51}', '\u{a51}', GC_Extend), ('\u{a70}', '\u{a71}', GC_Extend), ('\u{a75}', '\u{a75}',
666
        GC_Extend), ('\u{a81}', '\u{a82}', GC_Extend), ('\u{a83}', '\u{a83}', GC_SpacingMark),
667
        ('\u{a95}', '\u{aa8}', GC_InCB_Consonant), ('\u{aaa}', '\u{ab0}', GC_InCB_Consonant),
668
        ('\u{ab2}', '\u{ab3}', GC_InCB_Consonant), ('\u{ab5}', '\u{ab9}', GC_InCB_Consonant),
669
        ('\u{abc}', '\u{abc}', GC_Extend), ('\u{abe}', '\u{ac0}', GC_SpacingMark), ('\u{ac1}',
670
        '\u{ac5}', GC_Extend), ('\u{ac7}', '\u{ac8}', GC_Extend), ('\u{ac9}', '\u{ac9}',
671
        GC_SpacingMark), ('\u{acb}', '\u{acc}', GC_SpacingMark), ('\u{acd}', '\u{acd}', GC_Extend),
672
        ('\u{ae2}', '\u{ae3}', GC_Extend), ('\u{af9}', '\u{af9}', GC_InCB_Consonant), ('\u{afa}',
673
        '\u{aff}', GC_Extend), ('\u{b01}', '\u{b01}', GC_Extend), ('\u{b02}', '\u{b03}',
674
        GC_SpacingMark), ('\u{b15}', '\u{b28}', GC_InCB_Consonant), ('\u{b2a}', '\u{b30}',
675
        GC_InCB_Consonant), ('\u{b32}', '\u{b33}', GC_InCB_Consonant), ('\u{b35}', '\u{b39}',
676
        GC_InCB_Consonant), ('\u{b3c}', '\u{b3c}', GC_Extend), ('\u{b3e}', '\u{b3f}', GC_Extend),
677
        ('\u{b40}', '\u{b40}', GC_SpacingMark), ('\u{b41}', '\u{b44}', GC_Extend), ('\u{b47}',
678
        '\u{b48}', GC_SpacingMark), ('\u{b4b}', '\u{b4c}', GC_SpacingMark), ('\u{b4d}', '\u{b4d}',
679
        GC_Extend), ('\u{b55}', '\u{b57}', GC_Extend), ('\u{b5c}', '\u{b5d}', GC_InCB_Consonant),
680
        ('\u{b5f}', '\u{b5f}', GC_InCB_Consonant), ('\u{b62}', '\u{b63}', GC_Extend), ('\u{b71}',
681
        '\u{b71}', GC_InCB_Consonant), ('\u{b82}', '\u{b82}', GC_Extend), ('\u{bbe}', '\u{bbe}',
682
        GC_Extend), ('\u{bbf}', '\u{bbf}', GC_SpacingMark), ('\u{bc0}', '\u{bc0}', GC_Extend),
683
        ('\u{bc1}', '\u{bc2}', GC_SpacingMark), ('\u{bc6}', '\u{bc8}', GC_SpacingMark), ('\u{bca}',
684
        '\u{bcc}', GC_SpacingMark), ('\u{bcd}', '\u{bcd}', GC_Extend), ('\u{bd7}', '\u{bd7}',
685
        GC_Extend), ('\u{c00}', '\u{c00}', GC_Extend), ('\u{c01}', '\u{c03}', GC_SpacingMark),
686
        ('\u{c04}', '\u{c04}', GC_Extend), ('\u{c15}', '\u{c28}', GC_InCB_Consonant), ('\u{c2a}',
687
        '\u{c39}', GC_InCB_Consonant), ('\u{c3c}', '\u{c3c}', GC_Extend), ('\u{c3e}', '\u{c40}',
688
        GC_Extend), ('\u{c41}', '\u{c44}', GC_SpacingMark), ('\u{c46}', '\u{c48}', GC_Extend),
689
        ('\u{c4a}', '\u{c4d}', GC_Extend), ('\u{c55}', '\u{c56}', GC_Extend), ('\u{c58}', '\u{c5a}',
690
        GC_InCB_Consonant), ('\u{c62}', '\u{c63}', GC_Extend), ('\u{c81}', '\u{c81}', GC_Extend),
691
        ('\u{c82}', '\u{c83}', GC_SpacingMark), ('\u{cbc}', '\u{cbc}', GC_Extend), ('\u{cbe}',
692
        '\u{cbe}', GC_SpacingMark), ('\u{cbf}', '\u{cc0}', GC_Extend), ('\u{cc1}', '\u{cc1}',
693
        GC_SpacingMark), ('\u{cc2}', '\u{cc2}', GC_Extend), ('\u{cc3}', '\u{cc4}', GC_SpacingMark),
694
        ('\u{cc6}', '\u{cc8}', GC_Extend), ('\u{cca}', '\u{ccd}', GC_Extend), ('\u{cd5}', '\u{cd6}',
695
        GC_Extend), ('\u{ce2}', '\u{ce3}', GC_Extend), ('\u{cf3}', '\u{cf3}', GC_SpacingMark),
696
        ('\u{d00}', '\u{d01}', GC_Extend), ('\u{d02}', '\u{d03}', GC_SpacingMark), ('\u{d15}',
697
        '\u{d3a}', GC_InCB_Consonant), ('\u{d3b}', '\u{d3c}', GC_Extend), ('\u{d3e}', '\u{d3e}',
698
        GC_Extend), ('\u{d3f}', '\u{d40}', GC_SpacingMark), ('\u{d41}', '\u{d44}', GC_Extend),
699
        ('\u{d46}', '\u{d48}', GC_SpacingMark), ('\u{d4a}', '\u{d4c}', GC_SpacingMark), ('\u{d4d}',
700
        '\u{d4d}', GC_Extend), ('\u{d4e}', '\u{d4e}', GC_Prepend), ('\u{d57}', '\u{d57}',
701
        GC_Extend), ('\u{d62}', '\u{d63}', GC_Extend), ('\u{d81}', '\u{d81}', GC_Extend),
702
        ('\u{d82}', '\u{d83}', GC_SpacingMark), ('\u{dca}', '\u{dca}', GC_Extend), ('\u{dcf}',
703
        '\u{dcf}', GC_Extend), ('\u{dd0}', '\u{dd1}', GC_SpacingMark), ('\u{dd2}', '\u{dd4}',
704
        GC_Extend), ('\u{dd6}', '\u{dd6}', GC_Extend), ('\u{dd8}', '\u{dde}', GC_SpacingMark),
705
        ('\u{ddf}', '\u{ddf}', GC_Extend), ('\u{df2}', '\u{df3}', GC_SpacingMark), ('\u{e31}',
706
        '\u{e31}', GC_Extend), ('\u{e33}', '\u{e33}', GC_SpacingMark), ('\u{e34}', '\u{e3a}',
707
        GC_Extend), ('\u{e47}', '\u{e4e}', GC_Extend), ('\u{eb1}', '\u{eb1}', GC_Extend),
708
        ('\u{eb3}', '\u{eb3}', GC_SpacingMark), ('\u{eb4}', '\u{ebc}', GC_Extend), ('\u{ec8}',
709
        '\u{ece}', GC_Extend), ('\u{f18}', '\u{f19}', GC_Extend), ('\u{f35}', '\u{f35}', GC_Extend),
710
        ('\u{f37}', '\u{f37}', GC_Extend), ('\u{f39}', '\u{f39}', GC_Extend), ('\u{f3e}', '\u{f3f}',
711
        GC_SpacingMark), ('\u{f71}', '\u{f7e}', GC_Extend), ('\u{f7f}', '\u{f7f}', GC_SpacingMark),
712
        ('\u{f80}', '\u{f84}', GC_Extend), ('\u{f86}', '\u{f87}', GC_Extend), ('\u{f8d}', '\u{f97}',
713
        GC_Extend), ('\u{f99}', '\u{fbc}', GC_Extend), ('\u{fc6}', '\u{fc6}', GC_Extend),
714
        ('\u{1000}', '\u{102a}', GC_InCB_Consonant), ('\u{102d}', '\u{1030}', GC_Extend),
715
        ('\u{1031}', '\u{1031}', GC_SpacingMark), ('\u{1032}', '\u{1037}', GC_Extend), ('\u{1039}',
716
        '\u{103a}', GC_Extend), ('\u{103b}', '\u{103c}', GC_SpacingMark), ('\u{103d}', '\u{103e}',
717
        GC_Extend), ('\u{103f}', '\u{103f}', GC_InCB_Consonant), ('\u{1050}', '\u{1055}',
718
        GC_InCB_Consonant), ('\u{1056}', '\u{1057}', GC_SpacingMark), ('\u{1058}', '\u{1059}',
719
        GC_Extend), ('\u{105a}', '\u{105d}', GC_InCB_Consonant), ('\u{105e}', '\u{1060}',
720
        GC_Extend), ('\u{1061}', '\u{1061}', GC_InCB_Consonant), ('\u{1065}', '\u{1066}',
721
        GC_InCB_Consonant), ('\u{106e}', '\u{1070}', GC_InCB_Consonant), ('\u{1071}', '\u{1074}',
722
        GC_Extend), ('\u{1075}', '\u{1081}', GC_InCB_Consonant), ('\u{1082}', '\u{1082}',
723
        GC_Extend), ('\u{1084}', '\u{1084}', GC_SpacingMark), ('\u{1085}', '\u{1086}', GC_Extend),
724
        ('\u{108d}', '\u{108d}', GC_Extend), ('\u{108e}', '\u{108e}', GC_InCB_Consonant),
725
        ('\u{109d}', '\u{109d}', GC_Extend), ('\u{1100}', '\u{115f}', GC_L), ('\u{1160}',
726
        '\u{11a7}', GC_V), ('\u{11a8}', '\u{11ff}', GC_T), ('\u{135d}', '\u{135f}', GC_Extend),
727
        ('\u{1712}', '\u{1715}', GC_Extend), ('\u{1732}', '\u{1734}', GC_Extend), ('\u{1752}',
728
        '\u{1753}', GC_Extend), ('\u{1772}', '\u{1773}', GC_Extend), ('\u{1780}', '\u{17b3}',
729
        GC_InCB_Consonant), ('\u{17b4}', '\u{17b5}', GC_Extend), ('\u{17b6}', '\u{17b6}',
730
        GC_SpacingMark), ('\u{17b7}', '\u{17bd}', GC_Extend), ('\u{17be}', '\u{17c5}',
731
        GC_SpacingMark), ('\u{17c6}', '\u{17c6}', GC_Extend), ('\u{17c7}', '\u{17c8}',
732
        GC_SpacingMark), ('\u{17c9}', '\u{17d3}', GC_Extend), ('\u{17dd}', '\u{17dd}', GC_Extend),
733
        ('\u{180b}', '\u{180d}', GC_Extend), ('\u{180e}', '\u{180e}', GC_Control), ('\u{180f}',
734
        '\u{180f}', GC_Extend), ('\u{1885}', '\u{1886}', GC_Extend), ('\u{18a9}', '\u{18a9}',
735
        GC_Extend), ('\u{1920}', '\u{1922}', GC_Extend), ('\u{1923}', '\u{1926}', GC_SpacingMark),
736
        ('\u{1927}', '\u{1928}', GC_Extend), ('\u{1929}', '\u{192b}', GC_SpacingMark), ('\u{1930}',
737
        '\u{1931}', GC_SpacingMark), ('\u{1932}', '\u{1932}', GC_Extend), ('\u{1933}', '\u{1938}',
738
        GC_SpacingMark), ('\u{1939}', '\u{193b}', GC_Extend), ('\u{1a17}', '\u{1a18}', GC_Extend),
739
        ('\u{1a19}', '\u{1a1a}', GC_SpacingMark), ('\u{1a1b}', '\u{1a1b}', GC_Extend), ('\u{1a20}',
740
        '\u{1a54}', GC_InCB_Consonant), ('\u{1a55}', '\u{1a55}', GC_SpacingMark), ('\u{1a56}',
741
        '\u{1a56}', GC_Extend), ('\u{1a57}', '\u{1a57}', GC_SpacingMark), ('\u{1a58}', '\u{1a5e}',
742
        GC_Extend), ('\u{1a60}', '\u{1a60}', GC_Extend), ('\u{1a62}', '\u{1a62}', GC_Extend),
743
        ('\u{1a65}', '\u{1a6c}', GC_Extend), ('\u{1a6d}', '\u{1a72}', GC_SpacingMark), ('\u{1a73}',
744
        '\u{1a7c}', GC_Extend), ('\u{1a7f}', '\u{1a7f}', GC_Extend), ('\u{1ab0}', '\u{1add}',
745
        GC_Extend), ('\u{1ae0}', '\u{1aeb}', GC_Extend), ('\u{1b00}', '\u{1b03}', GC_Extend),
746
        ('\u{1b04}', '\u{1b04}', GC_SpacingMark), ('\u{1b0b}', '\u{1b0c}', GC_InCB_Consonant),
747
        ('\u{1b13}', '\u{1b33}', GC_InCB_Consonant), ('\u{1b34}', '\u{1b3d}', GC_Extend),
748
        ('\u{1b3e}', '\u{1b41}', GC_SpacingMark), ('\u{1b42}', '\u{1b44}', GC_Extend), ('\u{1b45}',
749
        '\u{1b4c}', GC_InCB_Consonant), ('\u{1b6b}', '\u{1b73}', GC_Extend), ('\u{1b80}',
750
        '\u{1b81}', GC_Extend), ('\u{1b82}', '\u{1b82}', GC_SpacingMark), ('\u{1b83}', '\u{1ba0}',
751
        GC_InCB_Consonant), ('\u{1ba1}', '\u{1ba1}', GC_SpacingMark), ('\u{1ba2}', '\u{1ba5}',
752
        GC_Extend), ('\u{1ba6}', '\u{1ba7}', GC_SpacingMark), ('\u{1ba8}', '\u{1bad}', GC_Extend),
753
        ('\u{1bae}', '\u{1baf}', GC_InCB_Consonant), ('\u{1bbb}', '\u{1bbd}', GC_InCB_Consonant),
754
        ('\u{1be6}', '\u{1be6}', GC_Extend), ('\u{1be7}', '\u{1be7}', GC_SpacingMark), ('\u{1be8}',
755
        '\u{1be9}', GC_Extend), ('\u{1bea}', '\u{1bec}', GC_SpacingMark), ('\u{1bed}', '\u{1bed}',
756
        GC_Extend), ('\u{1bee}', '\u{1bee}', GC_SpacingMark), ('\u{1bef}', '\u{1bf3}', GC_Extend),
757
        ('\u{1c24}', '\u{1c2b}', GC_SpacingMark), ('\u{1c2c}', '\u{1c33}', GC_Extend), ('\u{1c34}',
758
        '\u{1c35}', GC_SpacingMark), ('\u{1c36}', '\u{1c37}', GC_Extend), ('\u{1cd0}', '\u{1cd2}',
759
        GC_Extend), ('\u{1cd4}', '\u{1ce0}', GC_Extend), ('\u{1ce1}', '\u{1ce1}', GC_SpacingMark),
760
        ('\u{1ce2}', '\u{1ce8}', GC_Extend), ('\u{1ced}', '\u{1ced}', GC_Extend), ('\u{1cf4}',
761
        '\u{1cf4}', GC_Extend), ('\u{1cf7}', '\u{1cf7}', GC_SpacingMark), ('\u{1cf8}', '\u{1cf9}',
762
        GC_Extend), ('\u{1dc0}', '\u{1dff}', GC_Extend), ('\u{200b}', '\u{200b}', GC_Control),
763
        ('\u{200c}', '\u{200c}', GC_Extend), ('\u{200d}', '\u{200d}', GC_ZWJ), ('\u{200e}',
764
        '\u{200f}', GC_Control), ('\u{2028}', '\u{202e}', GC_Control), ('\u{203c}', '\u{203c}',
765
        GC_Extended_Pictographic), ('\u{2049}', '\u{2049}', GC_Extended_Pictographic), ('\u{2060}',
766
        '\u{206f}', GC_Control), ('\u{20d0}', '\u{20f0}', GC_Extend), ('\u{2122}', '\u{2122}',
767
        GC_Extended_Pictographic), ('\u{2139}', '\u{2139}', GC_Extended_Pictographic), ('\u{2194}',
768
        '\u{2199}', GC_Extended_Pictographic), ('\u{21a9}', '\u{21aa}', GC_Extended_Pictographic),
769
        ('\u{231a}', '\u{231b}', GC_Extended_Pictographic), ('\u{2328}', '\u{2328}',
770
        GC_Extended_Pictographic), ('\u{23cf}', '\u{23cf}', GC_Extended_Pictographic), ('\u{23e9}',
771
        '\u{23f3}', GC_Extended_Pictographic), ('\u{23f8}', '\u{23fa}', GC_Extended_Pictographic),
772
        ('\u{24c2}', '\u{24c2}', GC_Extended_Pictographic), ('\u{25aa}', '\u{25ab}',
773
        GC_Extended_Pictographic), ('\u{25b6}', '\u{25b6}', GC_Extended_Pictographic), ('\u{25c0}',
774
        '\u{25c0}', GC_Extended_Pictographic), ('\u{25fb}', '\u{25fe}', GC_Extended_Pictographic),
775
        ('\u{2600}', '\u{2604}', GC_Extended_Pictographic), ('\u{260e}', '\u{260e}',
776
        GC_Extended_Pictographic), ('\u{2611}', '\u{2611}', GC_Extended_Pictographic), ('\u{2614}',
777
        '\u{2615}', GC_Extended_Pictographic), ('\u{2618}', '\u{2618}', GC_Extended_Pictographic),
778
        ('\u{261d}', '\u{261d}', GC_Extended_Pictographic), ('\u{2620}', '\u{2620}',
779
        GC_Extended_Pictographic), ('\u{2622}', '\u{2623}', GC_Extended_Pictographic), ('\u{2626}',
780
        '\u{2626}', GC_Extended_Pictographic), ('\u{262a}', '\u{262a}', GC_Extended_Pictographic),
781
        ('\u{262e}', '\u{262f}', GC_Extended_Pictographic), ('\u{2638}', '\u{263a}',
782
        GC_Extended_Pictographic), ('\u{2640}', '\u{2640}', GC_Extended_Pictographic), ('\u{2642}',
783
        '\u{2642}', GC_Extended_Pictographic), ('\u{2648}', '\u{2653}', GC_Extended_Pictographic),
784
        ('\u{265f}', '\u{2660}', GC_Extended_Pictographic), ('\u{2663}', '\u{2663}',
785
        GC_Extended_Pictographic), ('\u{2665}', '\u{2666}', GC_Extended_Pictographic), ('\u{2668}',
786
        '\u{2668}', GC_Extended_Pictographic), ('\u{267b}', '\u{267b}', GC_Extended_Pictographic),
787
        ('\u{267e}', '\u{267f}', GC_Extended_Pictographic), ('\u{2692}', '\u{2697}',
788
        GC_Extended_Pictographic), ('\u{2699}', '\u{2699}', GC_Extended_Pictographic), ('\u{269b}',
789
        '\u{269c}', GC_Extended_Pictographic), ('\u{26a0}', '\u{26a1}', GC_Extended_Pictographic),
790
        ('\u{26a7}', '\u{26a7}', GC_Extended_Pictographic), ('\u{26aa}', '\u{26ab}',
791
        GC_Extended_Pictographic), ('\u{26b0}', '\u{26b1}', GC_Extended_Pictographic), ('\u{26bd}',
792
        '\u{26be}', GC_Extended_Pictographic), ('\u{26c4}', '\u{26c5}', GC_Extended_Pictographic),
793
        ('\u{26c8}', '\u{26c8}', GC_Extended_Pictographic), ('\u{26ce}', '\u{26cf}',
794
        GC_Extended_Pictographic), ('\u{26d1}', '\u{26d1}', GC_Extended_Pictographic), ('\u{26d3}',
795
        '\u{26d4}', GC_Extended_Pictographic), ('\u{26e9}', '\u{26ea}', GC_Extended_Pictographic),
796
        ('\u{26f0}', '\u{26f5}', GC_Extended_Pictographic), ('\u{26f7}', '\u{26fa}',
797
        GC_Extended_Pictographic), ('\u{26fd}', '\u{26fd}', GC_Extended_Pictographic), ('\u{2702}',
798
        '\u{2702}', GC_Extended_Pictographic), ('\u{2705}', '\u{2705}', GC_Extended_Pictographic),
799
        ('\u{2708}', '\u{270d}', GC_Extended_Pictographic), ('\u{270f}', '\u{270f}',
800
        GC_Extended_Pictographic), ('\u{2712}', '\u{2712}', GC_Extended_Pictographic), ('\u{2714}',
801
        '\u{2714}', GC_Extended_Pictographic), ('\u{2716}', '\u{2716}', GC_Extended_Pictographic),
802
        ('\u{271d}', '\u{271d}', GC_Extended_Pictographic), ('\u{2721}', '\u{2721}',
803
        GC_Extended_Pictographic), ('\u{2728}', '\u{2728}', GC_Extended_Pictographic), ('\u{2733}',
804
        '\u{2734}', GC_Extended_Pictographic), ('\u{2744}', '\u{2744}', GC_Extended_Pictographic),
805
        ('\u{2747}', '\u{2747}', GC_Extended_Pictographic), ('\u{274c}', '\u{274c}',
806
        GC_Extended_Pictographic), ('\u{274e}', '\u{274e}', GC_Extended_Pictographic), ('\u{2753}',
807
        '\u{2755}', GC_Extended_Pictographic), ('\u{2757}', '\u{2757}', GC_Extended_Pictographic),
808
        ('\u{2763}', '\u{2764}', GC_Extended_Pictographic), ('\u{2795}', '\u{2797}',
809
        GC_Extended_Pictographic), ('\u{27a1}', '\u{27a1}', GC_Extended_Pictographic), ('\u{27b0}',
810
        '\u{27b0}', GC_Extended_Pictographic), ('\u{27bf}', '\u{27bf}', GC_Extended_Pictographic),
811
        ('\u{2934}', '\u{2935}', GC_Extended_Pictographic), ('\u{2b05}', '\u{2b07}',
812
        GC_Extended_Pictographic), ('\u{2b1b}', '\u{2b1c}', GC_Extended_Pictographic), ('\u{2b50}',
813
        '\u{2b50}', GC_Extended_Pictographic), ('\u{2b55}', '\u{2b55}', GC_Extended_Pictographic),
814
        ('\u{2cef}', '\u{2cf1}', GC_Extend), ('\u{2d7f}', '\u{2d7f}', GC_Extend), ('\u{2de0}',
815
        '\u{2dff}', GC_Extend), ('\u{302a}', '\u{302f}', GC_Extend), ('\u{3030}', '\u{3030}',
816
        GC_Extended_Pictographic), ('\u{303d}', '\u{303d}', GC_Extended_Pictographic), ('\u{3099}',
817
        '\u{309a}', GC_Extend), ('\u{3297}', '\u{3297}', GC_Extended_Pictographic), ('\u{3299}',
818
        '\u{3299}', GC_Extended_Pictographic), ('\u{a66f}', '\u{a672}', GC_Extend), ('\u{a674}',
819
        '\u{a67d}', GC_Extend), ('\u{a69e}', '\u{a69f}', GC_Extend), ('\u{a6f0}', '\u{a6f1}',
820
        GC_Extend), ('\u{a802}', '\u{a802}', GC_Extend), ('\u{a806}', '\u{a806}', GC_Extend),
821
        ('\u{a80b}', '\u{a80b}', GC_Extend), ('\u{a823}', '\u{a824}', GC_SpacingMark), ('\u{a825}',
822
        '\u{a826}', GC_Extend), ('\u{a827}', '\u{a827}', GC_SpacingMark), ('\u{a82c}', '\u{a82c}',
823
        GC_Extend), ('\u{a880}', '\u{a881}', GC_SpacingMark), ('\u{a8b4}', '\u{a8c3}',
824
        GC_SpacingMark), ('\u{a8c4}', '\u{a8c5}', GC_Extend), ('\u{a8e0}', '\u{a8f1}', GC_Extend),
825
        ('\u{a8ff}', '\u{a8ff}', GC_Extend), ('\u{a926}', '\u{a92d}', GC_Extend), ('\u{a947}',
826
        '\u{a951}', GC_Extend), ('\u{a952}', '\u{a952}', GC_SpacingMark), ('\u{a953}', '\u{a953}',
827
        GC_Extend), ('\u{a960}', '\u{a97c}', GC_L), ('\u{a980}', '\u{a982}', GC_Extend),
828
        ('\u{a983}', '\u{a983}', GC_SpacingMark), ('\u{a989}', '\u{a98b}', GC_InCB_Consonant),
829
        ('\u{a98f}', '\u{a9b2}', GC_InCB_Consonant), ('\u{a9b3}', '\u{a9b3}', GC_Extend),
830
        ('\u{a9b4}', '\u{a9b5}', GC_SpacingMark), ('\u{a9b6}', '\u{a9b9}', GC_Extend), ('\u{a9ba}',
831
        '\u{a9bb}', GC_SpacingMark), ('\u{a9bc}', '\u{a9bd}', GC_Extend), ('\u{a9be}', '\u{a9bf}',
832
        GC_SpacingMark), ('\u{a9c0}', '\u{a9c0}', GC_Extend), ('\u{a9e0}', '\u{a9e4}',
833
        GC_InCB_Consonant), ('\u{a9e5}', '\u{a9e5}', GC_Extend), ('\u{a9e7}', '\u{a9ef}',
834
        GC_InCB_Consonant), ('\u{a9fa}', '\u{a9fe}', GC_InCB_Consonant), ('\u{aa29}', '\u{aa2e}',
835
        GC_Extend), ('\u{aa2f}', '\u{aa30}', GC_SpacingMark), ('\u{aa31}', '\u{aa32}', GC_Extend),
836
        ('\u{aa33}', '\u{aa34}', GC_SpacingMark), ('\u{aa35}', '\u{aa36}', GC_Extend), ('\u{aa43}',
837
        '\u{aa43}', GC_Extend), ('\u{aa4c}', '\u{aa4c}', GC_Extend), ('\u{aa4d}', '\u{aa4d}',
838
        GC_SpacingMark), ('\u{aa60}', '\u{aa6f}', GC_InCB_Consonant), ('\u{aa71}', '\u{aa73}',
839
        GC_InCB_Consonant), ('\u{aa7a}', '\u{aa7a}', GC_InCB_Consonant), ('\u{aa7c}', '\u{aa7c}',
840
        GC_Extend), ('\u{aa7e}', '\u{aa7f}', GC_InCB_Consonant), ('\u{aab0}', '\u{aab0}',
841
        GC_Extend), ('\u{aab2}', '\u{aab4}', GC_Extend), ('\u{aab7}', '\u{aab8}', GC_Extend),
842
        ('\u{aabe}', '\u{aabf}', GC_Extend), ('\u{aac1}', '\u{aac1}', GC_Extend), ('\u{aae0}',
843
        '\u{aaea}', GC_InCB_Consonant), ('\u{aaeb}', '\u{aaeb}', GC_SpacingMark), ('\u{aaec}',
844
        '\u{aaed}', GC_Extend), ('\u{aaee}', '\u{aaef}', GC_SpacingMark), ('\u{aaf5}', '\u{aaf5}',
845
        GC_SpacingMark), ('\u{aaf6}', '\u{aaf6}', GC_Extend), ('\u{abc0}', '\u{abda}',
846
        GC_InCB_Consonant), ('\u{abe3}', '\u{abe4}', GC_SpacingMark), ('\u{abe5}', '\u{abe5}',
847
        GC_Extend), ('\u{abe6}', '\u{abe7}', GC_SpacingMark), ('\u{abe8}', '\u{abe8}', GC_Extend),
848
        ('\u{abe9}', '\u{abea}', GC_SpacingMark), ('\u{abec}', '\u{abec}', GC_SpacingMark),
849
        ('\u{abed}', '\u{abed}', GC_Extend), ('\u{ac00}', '\u{ac00}', GC_LV), ('\u{ac01}',
850
        '\u{ac1b}', GC_LVT), ('\u{ac1c}', '\u{ac1c}', GC_LV), ('\u{ac1d}', '\u{ac37}', GC_LVT),
851
        ('\u{ac38}', '\u{ac38}', GC_LV), ('\u{ac39}', '\u{ac53}', GC_LVT), ('\u{ac54}', '\u{ac54}',
852
        GC_LV), ('\u{ac55}', '\u{ac6f}', GC_LVT), ('\u{ac70}', '\u{ac70}', GC_LV), ('\u{ac71}',
853
        '\u{ac8b}', GC_LVT), ('\u{ac8c}', '\u{ac8c}', GC_LV), ('\u{ac8d}', '\u{aca7}', GC_LVT),
854
        ('\u{aca8}', '\u{aca8}', GC_LV), ('\u{aca9}', '\u{acc3}', GC_LVT), ('\u{acc4}', '\u{acc4}',
855
        GC_LV), ('\u{acc5}', '\u{acdf}', GC_LVT), ('\u{ace0}', '\u{ace0}', GC_LV), ('\u{ace1}',
856
        '\u{acfb}', GC_LVT), ('\u{acfc}', '\u{acfc}', GC_LV), ('\u{acfd}', '\u{ad17}', GC_LVT),
857
        ('\u{ad18}', '\u{ad18}', GC_LV), ('\u{ad19}', '\u{ad33}', GC_LVT), ('\u{ad34}', '\u{ad34}',
858
        GC_LV), ('\u{ad35}', '\u{ad4f}', GC_LVT), ('\u{ad50}', '\u{ad50}', GC_LV), ('\u{ad51}',
859
        '\u{ad6b}', GC_LVT), ('\u{ad6c}', '\u{ad6c}', GC_LV), ('\u{ad6d}', '\u{ad87}', GC_LVT),
860
        ('\u{ad88}', '\u{ad88}', GC_LV), ('\u{ad89}', '\u{ada3}', GC_LVT), ('\u{ada4}', '\u{ada4}',
861
        GC_LV), ('\u{ada5}', '\u{adbf}', GC_LVT), ('\u{adc0}', '\u{adc0}', GC_LV), ('\u{adc1}',
862
        '\u{addb}', GC_LVT), ('\u{addc}', '\u{addc}', GC_LV), ('\u{addd}', '\u{adf7}', GC_LVT),
863
        ('\u{adf8}', '\u{adf8}', GC_LV), ('\u{adf9}', '\u{ae13}', GC_LVT), ('\u{ae14}', '\u{ae14}',
864
        GC_LV), ('\u{ae15}', '\u{ae2f}', GC_LVT), ('\u{ae30}', '\u{ae30}', GC_LV), ('\u{ae31}',
865
        '\u{ae4b}', GC_LVT), ('\u{ae4c}', '\u{ae4c}', GC_LV), ('\u{ae4d}', '\u{ae67}', GC_LVT),
866
        ('\u{ae68}', '\u{ae68}', GC_LV), ('\u{ae69}', '\u{ae83}', GC_LVT), ('\u{ae84}', '\u{ae84}',
867
        GC_LV), ('\u{ae85}', '\u{ae9f}', GC_LVT), ('\u{aea0}', '\u{aea0}', GC_LV), ('\u{aea1}',
868
        '\u{aebb}', GC_LVT), ('\u{aebc}', '\u{aebc}', GC_LV), ('\u{aebd}', '\u{aed7}', GC_LVT),
869
        ('\u{aed8}', '\u{aed8}', GC_LV), ('\u{aed9}', '\u{aef3}', GC_LVT), ('\u{aef4}', '\u{aef4}',
870
        GC_LV), ('\u{aef5}', '\u{af0f}', GC_LVT), ('\u{af10}', '\u{af10}', GC_LV), ('\u{af11}',
871
        '\u{af2b}', GC_LVT), ('\u{af2c}', '\u{af2c}', GC_LV), ('\u{af2d}', '\u{af47}', GC_LVT),
872
        ('\u{af48}', '\u{af48}', GC_LV), ('\u{af49}', '\u{af63}', GC_LVT), ('\u{af64}', '\u{af64}',
873
        GC_LV), ('\u{af65}', '\u{af7f}', GC_LVT), ('\u{af80}', '\u{af80}', GC_LV), ('\u{af81}',
874
        '\u{af9b}', GC_LVT), ('\u{af9c}', '\u{af9c}', GC_LV), ('\u{af9d}', '\u{afb7}', GC_LVT),
875
        ('\u{afb8}', '\u{afb8}', GC_LV), ('\u{afb9}', '\u{afd3}', GC_LVT), ('\u{afd4}', '\u{afd4}',
876
        GC_LV), ('\u{afd5}', '\u{afef}', GC_LVT), ('\u{aff0}', '\u{aff0}', GC_LV), ('\u{aff1}',
877
        '\u{b00b}', GC_LVT), ('\u{b00c}', '\u{b00c}', GC_LV), ('\u{b00d}', '\u{b027}', GC_LVT),
878
        ('\u{b028}', '\u{b028}', GC_LV), ('\u{b029}', '\u{b043}', GC_LVT), ('\u{b044}', '\u{b044}',
879
        GC_LV), ('\u{b045}', '\u{b05f}', GC_LVT), ('\u{b060}', '\u{b060}', GC_LV), ('\u{b061}',
880
        '\u{b07b}', GC_LVT), ('\u{b07c}', '\u{b07c}', GC_LV), ('\u{b07d}', '\u{b097}', GC_LVT),
881
        ('\u{b098}', '\u{b098}', GC_LV), ('\u{b099}', '\u{b0b3}', GC_LVT), ('\u{b0b4}', '\u{b0b4}',
882
        GC_LV), ('\u{b0b5}', '\u{b0cf}', GC_LVT), ('\u{b0d0}', '\u{b0d0}', GC_LV), ('\u{b0d1}',
883
        '\u{b0eb}', GC_LVT), ('\u{b0ec}', '\u{b0ec}', GC_LV), ('\u{b0ed}', '\u{b107}', GC_LVT),
884
        ('\u{b108}', '\u{b108}', GC_LV), ('\u{b109}', '\u{b123}', GC_LVT), ('\u{b124}', '\u{b124}',
885
        GC_LV), ('\u{b125}', '\u{b13f}', GC_LVT), ('\u{b140}', '\u{b140}', GC_LV), ('\u{b141}',
886
        '\u{b15b}', GC_LVT), ('\u{b15c}', '\u{b15c}', GC_LV), ('\u{b15d}', '\u{b177}', GC_LVT),
887
        ('\u{b178}', '\u{b178}', GC_LV), ('\u{b179}', '\u{b193}', GC_LVT), ('\u{b194}', '\u{b194}',
888
        GC_LV), ('\u{b195}', '\u{b1af}', GC_LVT), ('\u{b1b0}', '\u{b1b0}', GC_LV), ('\u{b1b1}',
889
        '\u{b1cb}', GC_LVT), ('\u{b1cc}', '\u{b1cc}', GC_LV), ('\u{b1cd}', '\u{b1e7}', GC_LVT),
890
        ('\u{b1e8}', '\u{b1e8}', GC_LV), ('\u{b1e9}', '\u{b203}', GC_LVT), ('\u{b204}', '\u{b204}',
891
        GC_LV), ('\u{b205}', '\u{b21f}', GC_LVT), ('\u{b220}', '\u{b220}', GC_LV), ('\u{b221}',
892
        '\u{b23b}', GC_LVT), ('\u{b23c}', '\u{b23c}', GC_LV), ('\u{b23d}', '\u{b257}', GC_LVT),
893
        ('\u{b258}', '\u{b258}', GC_LV), ('\u{b259}', '\u{b273}', GC_LVT), ('\u{b274}', '\u{b274}',
894
        GC_LV), ('\u{b275}', '\u{b28f}', GC_LVT), ('\u{b290}', '\u{b290}', GC_LV), ('\u{b291}',
895
        '\u{b2ab}', GC_LVT), ('\u{b2ac}', '\u{b2ac}', GC_LV), ('\u{b2ad}', '\u{b2c7}', GC_LVT),
896
        ('\u{b2c8}', '\u{b2c8}', GC_LV), ('\u{b2c9}', '\u{b2e3}', GC_LVT), ('\u{b2e4}', '\u{b2e4}',
897
        GC_LV), ('\u{b2e5}', '\u{b2ff}', GC_LVT), ('\u{b300}', '\u{b300}', GC_LV), ('\u{b301}',
898
        '\u{b31b}', GC_LVT), ('\u{b31c}', '\u{b31c}', GC_LV), ('\u{b31d}', '\u{b337}', GC_LVT),
899
        ('\u{b338}', '\u{b338}', GC_LV), ('\u{b339}', '\u{b353}', GC_LVT), ('\u{b354}', '\u{b354}',
900
        GC_LV), ('\u{b355}', '\u{b36f}', GC_LVT), ('\u{b370}', '\u{b370}', GC_LV), ('\u{b371}',
901
        '\u{b38b}', GC_LVT), ('\u{b38c}', '\u{b38c}', GC_LV), ('\u{b38d}', '\u{b3a7}', GC_LVT),
902
        ('\u{b3a8}', '\u{b3a8}', GC_LV), ('\u{b3a9}', '\u{b3c3}', GC_LVT), ('\u{b3c4}', '\u{b3c4}',
903
        GC_LV), ('\u{b3c5}', '\u{b3df}', GC_LVT), ('\u{b3e0}', '\u{b3e0}', GC_LV), ('\u{b3e1}',
904
        '\u{b3fb}', GC_LVT), ('\u{b3fc}', '\u{b3fc}', GC_LV), ('\u{b3fd}', '\u{b417}', GC_LVT),
905
        ('\u{b418}', '\u{b418}', GC_LV), ('\u{b419}', '\u{b433}', GC_LVT), ('\u{b434}', '\u{b434}',
906
        GC_LV), ('\u{b435}', '\u{b44f}', GC_LVT), ('\u{b450}', '\u{b450}', GC_LV), ('\u{b451}',
907
        '\u{b46b}', GC_LVT), ('\u{b46c}', '\u{b46c}', GC_LV), ('\u{b46d}', '\u{b487}', GC_LVT),
908
        ('\u{b488}', '\u{b488}', GC_LV), ('\u{b489}', '\u{b4a3}', GC_LVT), ('\u{b4a4}', '\u{b4a4}',
909
        GC_LV), ('\u{b4a5}', '\u{b4bf}', GC_LVT), ('\u{b4c0}', '\u{b4c0}', GC_LV), ('\u{b4c1}',
910
        '\u{b4db}', GC_LVT), ('\u{b4dc}', '\u{b4dc}', GC_LV), ('\u{b4dd}', '\u{b4f7}', GC_LVT),
911
        ('\u{b4f8}', '\u{b4f8}', GC_LV), ('\u{b4f9}', '\u{b513}', GC_LVT), ('\u{b514}', '\u{b514}',
912
        GC_LV), ('\u{b515}', '\u{b52f}', GC_LVT), ('\u{b530}', '\u{b530}', GC_LV), ('\u{b531}',
913
        '\u{b54b}', GC_LVT), ('\u{b54c}', '\u{b54c}', GC_LV), ('\u{b54d}', '\u{b567}', GC_LVT),
914
        ('\u{b568}', '\u{b568}', GC_LV), ('\u{b569}', '\u{b583}', GC_LVT), ('\u{b584}', '\u{b584}',
915
        GC_LV), ('\u{b585}', '\u{b59f}', GC_LVT), ('\u{b5a0}', '\u{b5a0}', GC_LV), ('\u{b5a1}',
916
        '\u{b5bb}', GC_LVT), ('\u{b5bc}', '\u{b5bc}', GC_LV), ('\u{b5bd}', '\u{b5d7}', GC_LVT),
917
        ('\u{b5d8}', '\u{b5d8}', GC_LV), ('\u{b5d9}', '\u{b5f3}', GC_LVT), ('\u{b5f4}', '\u{b5f4}',
918
        GC_LV), ('\u{b5f5}', '\u{b60f}', GC_LVT), ('\u{b610}', '\u{b610}', GC_LV), ('\u{b611}',
919
        '\u{b62b}', GC_LVT), ('\u{b62c}', '\u{b62c}', GC_LV), ('\u{b62d}', '\u{b647}', GC_LVT),
920
        ('\u{b648}', '\u{b648}', GC_LV), ('\u{b649}', '\u{b663}', GC_LVT), ('\u{b664}', '\u{b664}',
921
        GC_LV), ('\u{b665}', '\u{b67f}', GC_LVT), ('\u{b680}', '\u{b680}', GC_LV), ('\u{b681}',
922
        '\u{b69b}', GC_LVT), ('\u{b69c}', '\u{b69c}', GC_LV), ('\u{b69d}', '\u{b6b7}', GC_LVT),
923
        ('\u{b6b8}', '\u{b6b8}', GC_LV), ('\u{b6b9}', '\u{b6d3}', GC_LVT), ('\u{b6d4}', '\u{b6d4}',
924
        GC_LV), ('\u{b6d5}', '\u{b6ef}', GC_LVT), ('\u{b6f0}', '\u{b6f0}', GC_LV), ('\u{b6f1}',
925
        '\u{b70b}', GC_LVT), ('\u{b70c}', '\u{b70c}', GC_LV), ('\u{b70d}', '\u{b727}', GC_LVT),
926
        ('\u{b728}', '\u{b728}', GC_LV), ('\u{b729}', '\u{b743}', GC_LVT), ('\u{b744}', '\u{b744}',
927
        GC_LV), ('\u{b745}', '\u{b75f}', GC_LVT), ('\u{b760}', '\u{b760}', GC_LV), ('\u{b761}',
928
        '\u{b77b}', GC_LVT), ('\u{b77c}', '\u{b77c}', GC_LV), ('\u{b77d}', '\u{b797}', GC_LVT),
929
        ('\u{b798}', '\u{b798}', GC_LV), ('\u{b799}', '\u{b7b3}', GC_LVT), ('\u{b7b4}', '\u{b7b4}',
930
        GC_LV), ('\u{b7b5}', '\u{b7cf}', GC_LVT), ('\u{b7d0}', '\u{b7d0}', GC_LV), ('\u{b7d1}',
931
        '\u{b7eb}', GC_LVT), ('\u{b7ec}', '\u{b7ec}', GC_LV), ('\u{b7ed}', '\u{b807}', GC_LVT),
932
        ('\u{b808}', '\u{b808}', GC_LV), ('\u{b809}', '\u{b823}', GC_LVT), ('\u{b824}', '\u{b824}',
933
        GC_LV), ('\u{b825}', '\u{b83f}', GC_LVT), ('\u{b840}', '\u{b840}', GC_LV), ('\u{b841}',
934
        '\u{b85b}', GC_LVT), ('\u{b85c}', '\u{b85c}', GC_LV), ('\u{b85d}', '\u{b877}', GC_LVT),
935
        ('\u{b878}', '\u{b878}', GC_LV), ('\u{b879}', '\u{b893}', GC_LVT), ('\u{b894}', '\u{b894}',
936
        GC_LV), ('\u{b895}', '\u{b8af}', GC_LVT), ('\u{b8b0}', '\u{b8b0}', GC_LV), ('\u{b8b1}',
937
        '\u{b8cb}', GC_LVT), ('\u{b8cc}', '\u{b8cc}', GC_LV), ('\u{b8cd}', '\u{b8e7}', GC_LVT),
938
        ('\u{b8e8}', '\u{b8e8}', GC_LV), ('\u{b8e9}', '\u{b903}', GC_LVT), ('\u{b904}', '\u{b904}',
939
        GC_LV), ('\u{b905}', '\u{b91f}', GC_LVT), ('\u{b920}', '\u{b920}', GC_LV), ('\u{b921}',
940
        '\u{b93b}', GC_LVT), ('\u{b93c}', '\u{b93c}', GC_LV), ('\u{b93d}', '\u{b957}', GC_LVT),
941
        ('\u{b958}', '\u{b958}', GC_LV), ('\u{b959}', '\u{b973}', GC_LVT), ('\u{b974}', '\u{b974}',
942
        GC_LV), ('\u{b975}', '\u{b98f}', GC_LVT), ('\u{b990}', '\u{b990}', GC_LV), ('\u{b991}',
943
        '\u{b9ab}', GC_LVT), ('\u{b9ac}', '\u{b9ac}', GC_LV), ('\u{b9ad}', '\u{b9c7}', GC_LVT),
944
        ('\u{b9c8}', '\u{b9c8}', GC_LV), ('\u{b9c9}', '\u{b9e3}', GC_LVT), ('\u{b9e4}', '\u{b9e4}',
945
        GC_LV), ('\u{b9e5}', '\u{b9ff}', GC_LVT), ('\u{ba00}', '\u{ba00}', GC_LV), ('\u{ba01}',
946
        '\u{ba1b}', GC_LVT), ('\u{ba1c}', '\u{ba1c}', GC_LV), ('\u{ba1d}', '\u{ba37}', GC_LVT),
947
        ('\u{ba38}', '\u{ba38}', GC_LV), ('\u{ba39}', '\u{ba53}', GC_LVT), ('\u{ba54}', '\u{ba54}',
948
        GC_LV), ('\u{ba55}', '\u{ba6f}', GC_LVT), ('\u{ba70}', '\u{ba70}', GC_LV), ('\u{ba71}',
949
        '\u{ba8b}', GC_LVT), ('\u{ba8c}', '\u{ba8c}', GC_LV), ('\u{ba8d}', '\u{baa7}', GC_LVT),
950
        ('\u{baa8}', '\u{baa8}', GC_LV), ('\u{baa9}', '\u{bac3}', GC_LVT), ('\u{bac4}', '\u{bac4}',
951
        GC_LV), ('\u{bac5}', '\u{badf}', GC_LVT), ('\u{bae0}', '\u{bae0}', GC_LV), ('\u{bae1}',
952
        '\u{bafb}', GC_LVT), ('\u{bafc}', '\u{bafc}', GC_LV), ('\u{bafd}', '\u{bb17}', GC_LVT),
953
        ('\u{bb18}', '\u{bb18}', GC_LV), ('\u{bb19}', '\u{bb33}', GC_LVT), ('\u{bb34}', '\u{bb34}',
954
        GC_LV), ('\u{bb35}', '\u{bb4f}', GC_LVT), ('\u{bb50}', '\u{bb50}', GC_LV), ('\u{bb51}',
955
        '\u{bb6b}', GC_LVT), ('\u{bb6c}', '\u{bb6c}', GC_LV), ('\u{bb6d}', '\u{bb87}', GC_LVT),
956
        ('\u{bb88}', '\u{bb88}', GC_LV), ('\u{bb89}', '\u{bba3}', GC_LVT), ('\u{bba4}', '\u{bba4}',
957
        GC_LV), ('\u{bba5}', '\u{bbbf}', GC_LVT), ('\u{bbc0}', '\u{bbc0}', GC_LV), ('\u{bbc1}',
958
        '\u{bbdb}', GC_LVT), ('\u{bbdc}', '\u{bbdc}', GC_LV), ('\u{bbdd}', '\u{bbf7}', GC_LVT),
959
        ('\u{bbf8}', '\u{bbf8}', GC_LV), ('\u{bbf9}', '\u{bc13}', GC_LVT), ('\u{bc14}', '\u{bc14}',
960
        GC_LV), ('\u{bc15}', '\u{bc2f}', GC_LVT), ('\u{bc30}', '\u{bc30}', GC_LV), ('\u{bc31}',
961
        '\u{bc4b}', GC_LVT), ('\u{bc4c}', '\u{bc4c}', GC_LV), ('\u{bc4d}', '\u{bc67}', GC_LVT),
962
        ('\u{bc68}', '\u{bc68}', GC_LV), ('\u{bc69}', '\u{bc83}', GC_LVT), ('\u{bc84}', '\u{bc84}',
963
        GC_LV), ('\u{bc85}', '\u{bc9f}', GC_LVT), ('\u{bca0}', '\u{bca0}', GC_LV), ('\u{bca1}',
964
        '\u{bcbb}', GC_LVT), ('\u{bcbc}', '\u{bcbc}', GC_LV), ('\u{bcbd}', '\u{bcd7}', GC_LVT),
965
        ('\u{bcd8}', '\u{bcd8}', GC_LV), ('\u{bcd9}', '\u{bcf3}', GC_LVT), ('\u{bcf4}', '\u{bcf4}',
966
        GC_LV), ('\u{bcf5}', '\u{bd0f}', GC_LVT), ('\u{bd10}', '\u{bd10}', GC_LV), ('\u{bd11}',
967
        '\u{bd2b}', GC_LVT), ('\u{bd2c}', '\u{bd2c}', GC_LV), ('\u{bd2d}', '\u{bd47}', GC_LVT),
968
        ('\u{bd48}', '\u{bd48}', GC_LV), ('\u{bd49}', '\u{bd63}', GC_LVT), ('\u{bd64}', '\u{bd64}',
969
        GC_LV), ('\u{bd65}', '\u{bd7f}', GC_LVT), ('\u{bd80}', '\u{bd80}', GC_LV), ('\u{bd81}',
970
        '\u{bd9b}', GC_LVT), ('\u{bd9c}', '\u{bd9c}', GC_LV), ('\u{bd9d}', '\u{bdb7}', GC_LVT),
971
        ('\u{bdb8}', '\u{bdb8}', GC_LV), ('\u{bdb9}', '\u{bdd3}', GC_LVT), ('\u{bdd4}', '\u{bdd4}',
972
        GC_LV), ('\u{bdd5}', '\u{bdef}', GC_LVT), ('\u{bdf0}', '\u{bdf0}', GC_LV), ('\u{bdf1}',
973
        '\u{be0b}', GC_LVT), ('\u{be0c}', '\u{be0c}', GC_LV), ('\u{be0d}', '\u{be27}', GC_LVT),
974
        ('\u{be28}', '\u{be28}', GC_LV), ('\u{be29}', '\u{be43}', GC_LVT), ('\u{be44}', '\u{be44}',
975
        GC_LV), ('\u{be45}', '\u{be5f}', GC_LVT), ('\u{be60}', '\u{be60}', GC_LV), ('\u{be61}',
976
        '\u{be7b}', GC_LVT), ('\u{be7c}', '\u{be7c}', GC_LV), ('\u{be7d}', '\u{be97}', GC_LVT),
977
        ('\u{be98}', '\u{be98}', GC_LV), ('\u{be99}', '\u{beb3}', GC_LVT), ('\u{beb4}', '\u{beb4}',
978
        GC_LV), ('\u{beb5}', '\u{becf}', GC_LVT), ('\u{bed0}', '\u{bed0}', GC_LV), ('\u{bed1}',
979
        '\u{beeb}', GC_LVT), ('\u{beec}', '\u{beec}', GC_LV), ('\u{beed}', '\u{bf07}', GC_LVT),
980
        ('\u{bf08}', '\u{bf08}', GC_LV), ('\u{bf09}', '\u{bf23}', GC_LVT), ('\u{bf24}', '\u{bf24}',
981
        GC_LV), ('\u{bf25}', '\u{bf3f}', GC_LVT), ('\u{bf40}', '\u{bf40}', GC_LV), ('\u{bf41}',
982
        '\u{bf5b}', GC_LVT), ('\u{bf5c}', '\u{bf5c}', GC_LV), ('\u{bf5d}', '\u{bf77}', GC_LVT),
983
        ('\u{bf78}', '\u{bf78}', GC_LV), ('\u{bf79}', '\u{bf93}', GC_LVT), ('\u{bf94}', '\u{bf94}',
984
        GC_LV), ('\u{bf95}', '\u{bfaf}', GC_LVT), ('\u{bfb0}', '\u{bfb0}', GC_LV), ('\u{bfb1}',
985
        '\u{bfcb}', GC_LVT), ('\u{bfcc}', '\u{bfcc}', GC_LV), ('\u{bfcd}', '\u{bfe7}', GC_LVT),
986
        ('\u{bfe8}', '\u{bfe8}', GC_LV), ('\u{bfe9}', '\u{c003}', GC_LVT), ('\u{c004}', '\u{c004}',
987
        GC_LV), ('\u{c005}', '\u{c01f}', GC_LVT), ('\u{c020}', '\u{c020}', GC_LV), ('\u{c021}',
988
        '\u{c03b}', GC_LVT), ('\u{c03c}', '\u{c03c}', GC_LV), ('\u{c03d}', '\u{c057}', GC_LVT),
989
        ('\u{c058}', '\u{c058}', GC_LV), ('\u{c059}', '\u{c073}', GC_LVT), ('\u{c074}', '\u{c074}',
990
        GC_LV), ('\u{c075}', '\u{c08f}', GC_LVT), ('\u{c090}', '\u{c090}', GC_LV), ('\u{c091}',
991
        '\u{c0ab}', GC_LVT), ('\u{c0ac}', '\u{c0ac}', GC_LV), ('\u{c0ad}', '\u{c0c7}', GC_LVT),
992
        ('\u{c0c8}', '\u{c0c8}', GC_LV), ('\u{c0c9}', '\u{c0e3}', GC_LVT), ('\u{c0e4}', '\u{c0e4}',
993
        GC_LV), ('\u{c0e5}', '\u{c0ff}', GC_LVT), ('\u{c100}', '\u{c100}', GC_LV), ('\u{c101}',
994
        '\u{c11b}', GC_LVT), ('\u{c11c}', '\u{c11c}', GC_LV), ('\u{c11d}', '\u{c137}', GC_LVT),
995
        ('\u{c138}', '\u{c138}', GC_LV), ('\u{c139}', '\u{c153}', GC_LVT), ('\u{c154}', '\u{c154}',
996
        GC_LV), ('\u{c155}', '\u{c16f}', GC_LVT), ('\u{c170}', '\u{c170}', GC_LV), ('\u{c171}',
997
        '\u{c18b}', GC_LVT), ('\u{c18c}', '\u{c18c}', GC_LV), ('\u{c18d}', '\u{c1a7}', GC_LVT),
998
        ('\u{c1a8}', '\u{c1a8}', GC_LV), ('\u{c1a9}', '\u{c1c3}', GC_LVT), ('\u{c1c4}', '\u{c1c4}',
999
        GC_LV), ('\u{c1c5}', '\u{c1df}', GC_LVT), ('\u{c1e0}', '\u{c1e0}', GC_LV), ('\u{c1e1}',
1000
        '\u{c1fb}', GC_LVT), ('\u{c1fc}', '\u{c1fc}', GC_LV), ('\u{c1fd}', '\u{c217}', GC_LVT),
1001
        ('\u{c218}', '\u{c218}', GC_LV), ('\u{c219}', '\u{c233}', GC_LVT), ('\u{c234}', '\u{c234}',
1002
        GC_LV), ('\u{c235}', '\u{c24f}', GC_LVT), ('\u{c250}', '\u{c250}', GC_LV), ('\u{c251}',
1003
        '\u{c26b}', GC_LVT), ('\u{c26c}', '\u{c26c}', GC_LV), ('\u{c26d}', '\u{c287}', GC_LVT),
1004
        ('\u{c288}', '\u{c288}', GC_LV), ('\u{c289}', '\u{c2a3}', GC_LVT), ('\u{c2a4}', '\u{c2a4}',
1005
        GC_LV), ('\u{c2a5}', '\u{c2bf}', GC_LVT), ('\u{c2c0}', '\u{c2c0}', GC_LV), ('\u{c2c1}',
1006
        '\u{c2db}', GC_LVT), ('\u{c2dc}', '\u{c2dc}', GC_LV), ('\u{c2dd}', '\u{c2f7}', GC_LVT),
1007
        ('\u{c2f8}', '\u{c2f8}', GC_LV), ('\u{c2f9}', '\u{c313}', GC_LVT), ('\u{c314}', '\u{c314}',
1008
        GC_LV), ('\u{c315}', '\u{c32f}', GC_LVT), ('\u{c330}', '\u{c330}', GC_LV), ('\u{c331}',
1009
        '\u{c34b}', GC_LVT), ('\u{c34c}', '\u{c34c}', GC_LV), ('\u{c34d}', '\u{c367}', GC_LVT),
1010
        ('\u{c368}', '\u{c368}', GC_LV), ('\u{c369}', '\u{c383}', GC_LVT), ('\u{c384}', '\u{c384}',
1011
        GC_LV), ('\u{c385}', '\u{c39f}', GC_LVT), ('\u{c3a0}', '\u{c3a0}', GC_LV), ('\u{c3a1}',
1012
        '\u{c3bb}', GC_LVT), ('\u{c3bc}', '\u{c3bc}', GC_LV), ('\u{c3bd}', '\u{c3d7}', GC_LVT),
1013
        ('\u{c3d8}', '\u{c3d8}', GC_LV), ('\u{c3d9}', '\u{c3f3}', GC_LVT), ('\u{c3f4}', '\u{c3f4}',
1014
        GC_LV), ('\u{c3f5}', '\u{c40f}', GC_LVT), ('\u{c410}', '\u{c410}', GC_LV), ('\u{c411}',
1015
        '\u{c42b}', GC_LVT), ('\u{c42c}', '\u{c42c}', GC_LV), ('\u{c42d}', '\u{c447}', GC_LVT),
1016
        ('\u{c448}', '\u{c448}', GC_LV), ('\u{c449}', '\u{c463}', GC_LVT), ('\u{c464}', '\u{c464}',
1017
        GC_LV), ('\u{c465}', '\u{c47f}', GC_LVT), ('\u{c480}', '\u{c480}', GC_LV), ('\u{c481}',
1018
        '\u{c49b}', GC_LVT), ('\u{c49c}', '\u{c49c}', GC_LV), ('\u{c49d}', '\u{c4b7}', GC_LVT),
1019
        ('\u{c4b8}', '\u{c4b8}', GC_LV), ('\u{c4b9}', '\u{c4d3}', GC_LVT), ('\u{c4d4}', '\u{c4d4}',
1020
        GC_LV), ('\u{c4d5}', '\u{c4ef}', GC_LVT), ('\u{c4f0}', '\u{c4f0}', GC_LV), ('\u{c4f1}',
1021
        '\u{c50b}', GC_LVT), ('\u{c50c}', '\u{c50c}', GC_LV), ('\u{c50d}', '\u{c527}', GC_LVT),
1022
        ('\u{c528}', '\u{c528}', GC_LV), ('\u{c529}', '\u{c543}', GC_LVT), ('\u{c544}', '\u{c544}',
1023
        GC_LV), ('\u{c545}', '\u{c55f}', GC_LVT), ('\u{c560}', '\u{c560}', GC_LV), ('\u{c561}',
1024
        '\u{c57b}', GC_LVT), ('\u{c57c}', '\u{c57c}', GC_LV), ('\u{c57d}', '\u{c597}', GC_LVT),
1025
        ('\u{c598}', '\u{c598}', GC_LV), ('\u{c599}', '\u{c5b3}', GC_LVT), ('\u{c5b4}', '\u{c5b4}',
1026
        GC_LV), ('\u{c5b5}', '\u{c5cf}', GC_LVT), ('\u{c5d0}', '\u{c5d0}', GC_LV), ('\u{c5d1}',
1027
        '\u{c5eb}', GC_LVT), ('\u{c5ec}', '\u{c5ec}', GC_LV), ('\u{c5ed}', '\u{c607}', GC_LVT),
1028
        ('\u{c608}', '\u{c608}', GC_LV), ('\u{c609}', '\u{c623}', GC_LVT), ('\u{c624}', '\u{c624}',
1029
        GC_LV), ('\u{c625}', '\u{c63f}', GC_LVT), ('\u{c640}', '\u{c640}', GC_LV), ('\u{c641}',
1030
        '\u{c65b}', GC_LVT), ('\u{c65c}', '\u{c65c}', GC_LV), ('\u{c65d}', '\u{c677}', GC_LVT),
1031
        ('\u{c678}', '\u{c678}', GC_LV), ('\u{c679}', '\u{c693}', GC_LVT), ('\u{c694}', '\u{c694}',
1032
        GC_LV), ('\u{c695}', '\u{c6af}', GC_LVT), ('\u{c6b0}', '\u{c6b0}', GC_LV), ('\u{c6b1}',
1033
        '\u{c6cb}', GC_LVT), ('\u{c6cc}', '\u{c6cc}', GC_LV), ('\u{c6cd}', '\u{c6e7}', GC_LVT),
1034
        ('\u{c6e8}', '\u{c6e8}', GC_LV), ('\u{c6e9}', '\u{c703}', GC_LVT), ('\u{c704}', '\u{c704}',
1035
        GC_LV), ('\u{c705}', '\u{c71f}', GC_LVT), ('\u{c720}', '\u{c720}', GC_LV), ('\u{c721}',
1036
        '\u{c73b}', GC_LVT), ('\u{c73c}', '\u{c73c}', GC_LV), ('\u{c73d}', '\u{c757}', GC_LVT),
1037
        ('\u{c758}', '\u{c758}', GC_LV), ('\u{c759}', '\u{c773}', GC_LVT), ('\u{c774}', '\u{c774}',
1038
        GC_LV), ('\u{c775}', '\u{c78f}', GC_LVT), ('\u{c790}', '\u{c790}', GC_LV), ('\u{c791}',
1039
        '\u{c7ab}', GC_LVT), ('\u{c7ac}', '\u{c7ac}', GC_LV), ('\u{c7ad}', '\u{c7c7}', GC_LVT),
1040
        ('\u{c7c8}', '\u{c7c8}', GC_LV), ('\u{c7c9}', '\u{c7e3}', GC_LVT), ('\u{c7e4}', '\u{c7e4}',
1041
        GC_LV), ('\u{c7e5}', '\u{c7ff}', GC_LVT), ('\u{c800}', '\u{c800}', GC_LV), ('\u{c801}',
1042
        '\u{c81b}', GC_LVT), ('\u{c81c}', '\u{c81c}', GC_LV), ('\u{c81d}', '\u{c837}', GC_LVT),
1043
        ('\u{c838}', '\u{c838}', GC_LV), ('\u{c839}', '\u{c853}', GC_LVT), ('\u{c854}', '\u{c854}',
1044
        GC_LV), ('\u{c855}', '\u{c86f}', GC_LVT), ('\u{c870}', '\u{c870}', GC_LV), ('\u{c871}',
1045
        '\u{c88b}', GC_LVT), ('\u{c88c}', '\u{c88c}', GC_LV), ('\u{c88d}', '\u{c8a7}', GC_LVT),
1046
        ('\u{c8a8}', '\u{c8a8}', GC_LV), ('\u{c8a9}', '\u{c8c3}', GC_LVT), ('\u{c8c4}', '\u{c8c4}',
1047
        GC_LV), ('\u{c8c5}', '\u{c8df}', GC_LVT), ('\u{c8e0}', '\u{c8e0}', GC_LV), ('\u{c8e1}',
1048
        '\u{c8fb}', GC_LVT), ('\u{c8fc}', '\u{c8fc}', GC_LV), ('\u{c8fd}', '\u{c917}', GC_LVT),
1049
        ('\u{c918}', '\u{c918}', GC_LV), ('\u{c919}', '\u{c933}', GC_LVT), ('\u{c934}', '\u{c934}',
1050
        GC_LV), ('\u{c935}', '\u{c94f}', GC_LVT), ('\u{c950}', '\u{c950}', GC_LV), ('\u{c951}',
1051
        '\u{c96b}', GC_LVT), ('\u{c96c}', '\u{c96c}', GC_LV), ('\u{c96d}', '\u{c987}', GC_LVT),
1052
        ('\u{c988}', '\u{c988}', GC_LV), ('\u{c989}', '\u{c9a3}', GC_LVT), ('\u{c9a4}', '\u{c9a4}',
1053
        GC_LV), ('\u{c9a5}', '\u{c9bf}', GC_LVT), ('\u{c9c0}', '\u{c9c0}', GC_LV), ('\u{c9c1}',
1054
        '\u{c9db}', GC_LVT), ('\u{c9dc}', '\u{c9dc}', GC_LV), ('\u{c9dd}', '\u{c9f7}', GC_LVT),
1055
        ('\u{c9f8}', '\u{c9f8}', GC_LV), ('\u{c9f9}', '\u{ca13}', GC_LVT), ('\u{ca14}', '\u{ca14}',
1056
        GC_LV), ('\u{ca15}', '\u{ca2f}', GC_LVT), ('\u{ca30}', '\u{ca30}', GC_LV), ('\u{ca31}',
1057
        '\u{ca4b}', GC_LVT), ('\u{ca4c}', '\u{ca4c}', GC_LV), ('\u{ca4d}', '\u{ca67}', GC_LVT),
1058
        ('\u{ca68}', '\u{ca68}', GC_LV), ('\u{ca69}', '\u{ca83}', GC_LVT), ('\u{ca84}', '\u{ca84}',
1059
        GC_LV), ('\u{ca85}', '\u{ca9f}', GC_LVT), ('\u{caa0}', '\u{caa0}', GC_LV), ('\u{caa1}',
1060
        '\u{cabb}', GC_LVT), ('\u{cabc}', '\u{cabc}', GC_LV), ('\u{cabd}', '\u{cad7}', GC_LVT),
1061
        ('\u{cad8}', '\u{cad8}', GC_LV), ('\u{cad9}', '\u{caf3}', GC_LVT), ('\u{caf4}', '\u{caf4}',
1062
        GC_LV), ('\u{caf5}', '\u{cb0f}', GC_LVT), ('\u{cb10}', '\u{cb10}', GC_LV), ('\u{cb11}',
1063
        '\u{cb2b}', GC_LVT), ('\u{cb2c}', '\u{cb2c}', GC_LV), ('\u{cb2d}', '\u{cb47}', GC_LVT),
1064
        ('\u{cb48}', '\u{cb48}', GC_LV), ('\u{cb49}', '\u{cb63}', GC_LVT), ('\u{cb64}', '\u{cb64}',
1065
        GC_LV), ('\u{cb65}', '\u{cb7f}', GC_LVT), ('\u{cb80}', '\u{cb80}', GC_LV), ('\u{cb81}',
1066
        '\u{cb9b}', GC_LVT), ('\u{cb9c}', '\u{cb9c}', GC_LV), ('\u{cb9d}', '\u{cbb7}', GC_LVT),
1067
        ('\u{cbb8}', '\u{cbb8}', GC_LV), ('\u{cbb9}', '\u{cbd3}', GC_LVT), ('\u{cbd4}', '\u{cbd4}',
1068
        GC_LV), ('\u{cbd5}', '\u{cbef}', GC_LVT), ('\u{cbf0}', '\u{cbf0}', GC_LV), ('\u{cbf1}',
1069
        '\u{cc0b}', GC_LVT), ('\u{cc0c}', '\u{cc0c}', GC_LV), ('\u{cc0d}', '\u{cc27}', GC_LVT),
1070
        ('\u{cc28}', '\u{cc28}', GC_LV), ('\u{cc29}', '\u{cc43}', GC_LVT), ('\u{cc44}', '\u{cc44}',
1071
        GC_LV), ('\u{cc45}', '\u{cc5f}', GC_LVT), ('\u{cc60}', '\u{cc60}', GC_LV), ('\u{cc61}',
1072
        '\u{cc7b}', GC_LVT), ('\u{cc7c}', '\u{cc7c}', GC_LV), ('\u{cc7d}', '\u{cc97}', GC_LVT),
1073
        ('\u{cc98}', '\u{cc98}', GC_LV), ('\u{cc99}', '\u{ccb3}', GC_LVT), ('\u{ccb4}', '\u{ccb4}',
1074
        GC_LV), ('\u{ccb5}', '\u{cccf}', GC_LVT), ('\u{ccd0}', '\u{ccd0}', GC_LV), ('\u{ccd1}',
1075
        '\u{cceb}', GC_LVT), ('\u{ccec}', '\u{ccec}', GC_LV), ('\u{cced}', '\u{cd07}', GC_LVT),
1076
        ('\u{cd08}', '\u{cd08}', GC_LV), ('\u{cd09}', '\u{cd23}', GC_LVT), ('\u{cd24}', '\u{cd24}',
1077
        GC_LV), ('\u{cd25}', '\u{cd3f}', GC_LVT), ('\u{cd40}', '\u{cd40}', GC_LV), ('\u{cd41}',
1078
        '\u{cd5b}', GC_LVT), ('\u{cd5c}', '\u{cd5c}', GC_LV), ('\u{cd5d}', '\u{cd77}', GC_LVT),
1079
        ('\u{cd78}', '\u{cd78}', GC_LV), ('\u{cd79}', '\u{cd93}', GC_LVT), ('\u{cd94}', '\u{cd94}',
1080
        GC_LV), ('\u{cd95}', '\u{cdaf}', GC_LVT), ('\u{cdb0}', '\u{cdb0}', GC_LV), ('\u{cdb1}',
1081
        '\u{cdcb}', GC_LVT), ('\u{cdcc}', '\u{cdcc}', GC_LV), ('\u{cdcd}', '\u{cde7}', GC_LVT),
1082
        ('\u{cde8}', '\u{cde8}', GC_LV), ('\u{cde9}', '\u{ce03}', GC_LVT), ('\u{ce04}', '\u{ce04}',
1083
        GC_LV), ('\u{ce05}', '\u{ce1f}', GC_LVT), ('\u{ce20}', '\u{ce20}', GC_LV), ('\u{ce21}',
1084
        '\u{ce3b}', GC_LVT), ('\u{ce3c}', '\u{ce3c}', GC_LV), ('\u{ce3d}', '\u{ce57}', GC_LVT),
1085
        ('\u{ce58}', '\u{ce58}', GC_LV), ('\u{ce59}', '\u{ce73}', GC_LVT), ('\u{ce74}', '\u{ce74}',
1086
        GC_LV), ('\u{ce75}', '\u{ce8f}', GC_LVT), ('\u{ce90}', '\u{ce90}', GC_LV), ('\u{ce91}',
1087
        '\u{ceab}', GC_LVT), ('\u{ceac}', '\u{ceac}', GC_LV), ('\u{cead}', '\u{cec7}', GC_LVT),
1088
        ('\u{cec8}', '\u{cec8}', GC_LV), ('\u{cec9}', '\u{cee3}', GC_LVT), ('\u{cee4}', '\u{cee4}',
1089
        GC_LV), ('\u{cee5}', '\u{ceff}', GC_LVT), ('\u{cf00}', '\u{cf00}', GC_LV), ('\u{cf01}',
1090
        '\u{cf1b}', GC_LVT), ('\u{cf1c}', '\u{cf1c}', GC_LV), ('\u{cf1d}', '\u{cf37}', GC_LVT),
1091
        ('\u{cf38}', '\u{cf38}', GC_LV), ('\u{cf39}', '\u{cf53}', GC_LVT), ('\u{cf54}', '\u{cf54}',
1092
        GC_LV), ('\u{cf55}', '\u{cf6f}', GC_LVT), ('\u{cf70}', '\u{cf70}', GC_LV), ('\u{cf71}',
1093
        '\u{cf8b}', GC_LVT), ('\u{cf8c}', '\u{cf8c}', GC_LV), ('\u{cf8d}', '\u{cfa7}', GC_LVT),
1094
        ('\u{cfa8}', '\u{cfa8}', GC_LV), ('\u{cfa9}', '\u{cfc3}', GC_LVT), ('\u{cfc4}', '\u{cfc4}',
1095
        GC_LV), ('\u{cfc5}', '\u{cfdf}', GC_LVT), ('\u{cfe0}', '\u{cfe0}', GC_LV), ('\u{cfe1}',
1096
        '\u{cffb}', GC_LVT), ('\u{cffc}', '\u{cffc}', GC_LV), ('\u{cffd}', '\u{d017}', GC_LVT),
1097
        ('\u{d018}', '\u{d018}', GC_LV), ('\u{d019}', '\u{d033}', GC_LVT), ('\u{d034}', '\u{d034}',
1098
        GC_LV), ('\u{d035}', '\u{d04f}', GC_LVT), ('\u{d050}', '\u{d050}', GC_LV), ('\u{d051}',
1099
        '\u{d06b}', GC_LVT), ('\u{d06c}', '\u{d06c}', GC_LV), ('\u{d06d}', '\u{d087}', GC_LVT),
1100
        ('\u{d088}', '\u{d088}', GC_LV), ('\u{d089}', '\u{d0a3}', GC_LVT), ('\u{d0a4}', '\u{d0a4}',
1101
        GC_LV), ('\u{d0a5}', '\u{d0bf}', GC_LVT), ('\u{d0c0}', '\u{d0c0}', GC_LV), ('\u{d0c1}',
1102
        '\u{d0db}', GC_LVT), ('\u{d0dc}', '\u{d0dc}', GC_LV), ('\u{d0dd}', '\u{d0f7}', GC_LVT),
1103
        ('\u{d0f8}', '\u{d0f8}', GC_LV), ('\u{d0f9}', '\u{d113}', GC_LVT), ('\u{d114}', '\u{d114}',
1104
        GC_LV), ('\u{d115}', '\u{d12f}', GC_LVT), ('\u{d130}', '\u{d130}', GC_LV), ('\u{d131}',
1105
        '\u{d14b}', GC_LVT), ('\u{d14c}', '\u{d14c}', GC_LV), ('\u{d14d}', '\u{d167}', GC_LVT),
1106
        ('\u{d168}', '\u{d168}', GC_LV), ('\u{d169}', '\u{d183}', GC_LVT), ('\u{d184}', '\u{d184}',
1107
        GC_LV), ('\u{d185}', '\u{d19f}', GC_LVT), ('\u{d1a0}', '\u{d1a0}', GC_LV), ('\u{d1a1}',
1108
        '\u{d1bb}', GC_LVT), ('\u{d1bc}', '\u{d1bc}', GC_LV), ('\u{d1bd}', '\u{d1d7}', GC_LVT),
1109
        ('\u{d1d8}', '\u{d1d8}', GC_LV), ('\u{d1d9}', '\u{d1f3}', GC_LVT), ('\u{d1f4}', '\u{d1f4}',
1110
        GC_LV), ('\u{d1f5}', '\u{d20f}', GC_LVT), ('\u{d210}', '\u{d210}', GC_LV), ('\u{d211}',
1111
        '\u{d22b}', GC_LVT), ('\u{d22c}', '\u{d22c}', GC_LV), ('\u{d22d}', '\u{d247}', GC_LVT),
1112
        ('\u{d248}', '\u{d248}', GC_LV), ('\u{d249}', '\u{d263}', GC_LVT), ('\u{d264}', '\u{d264}',
1113
        GC_LV), ('\u{d265}', '\u{d27f}', GC_LVT), ('\u{d280}', '\u{d280}', GC_LV), ('\u{d281}',
1114
        '\u{d29b}', GC_LVT), ('\u{d29c}', '\u{d29c}', GC_LV), ('\u{d29d}', '\u{d2b7}', GC_LVT),
1115
        ('\u{d2b8}', '\u{d2b8}', GC_LV), ('\u{d2b9}', '\u{d2d3}', GC_LVT), ('\u{d2d4}', '\u{d2d4}',
1116
        GC_LV), ('\u{d2d5}', '\u{d2ef}', GC_LVT), ('\u{d2f0}', '\u{d2f0}', GC_LV), ('\u{d2f1}',
1117
        '\u{d30b}', GC_LVT), ('\u{d30c}', '\u{d30c}', GC_LV), ('\u{d30d}', '\u{d327}', GC_LVT),
1118
        ('\u{d328}', '\u{d328}', GC_LV), ('\u{d329}', '\u{d343}', GC_LVT), ('\u{d344}', '\u{d344}',
1119
        GC_LV), ('\u{d345}', '\u{d35f}', GC_LVT), ('\u{d360}', '\u{d360}', GC_LV), ('\u{d361}',
1120
        '\u{d37b}', GC_LVT), ('\u{d37c}', '\u{d37c}', GC_LV), ('\u{d37d}', '\u{d397}', GC_LVT),
1121
        ('\u{d398}', '\u{d398}', GC_LV), ('\u{d399}', '\u{d3b3}', GC_LVT), ('\u{d3b4}', '\u{d3b4}',
1122
        GC_LV), ('\u{d3b5}', '\u{d3cf}', GC_LVT), ('\u{d3d0}', '\u{d3d0}', GC_LV), ('\u{d3d1}',
1123
        '\u{d3eb}', GC_LVT), ('\u{d3ec}', '\u{d3ec}', GC_LV), ('\u{d3ed}', '\u{d407}', GC_LVT),
1124
        ('\u{d408}', '\u{d408}', GC_LV), ('\u{d409}', '\u{d423}', GC_LVT), ('\u{d424}', '\u{d424}',
1125
        GC_LV), ('\u{d425}', '\u{d43f}', GC_LVT), ('\u{d440}', '\u{d440}', GC_LV), ('\u{d441}',
1126
        '\u{d45b}', GC_LVT), ('\u{d45c}', '\u{d45c}', GC_LV), ('\u{d45d}', '\u{d477}', GC_LVT),
1127
        ('\u{d478}', '\u{d478}', GC_LV), ('\u{d479}', '\u{d493}', GC_LVT), ('\u{d494}', '\u{d494}',
1128
        GC_LV), ('\u{d495}', '\u{d4af}', GC_LVT), ('\u{d4b0}', '\u{d4b0}', GC_LV), ('\u{d4b1}',
1129
        '\u{d4cb}', GC_LVT), ('\u{d4cc}', '\u{d4cc}', GC_LV), ('\u{d4cd}', '\u{d4e7}', GC_LVT),
1130
        ('\u{d4e8}', '\u{d4e8}', GC_LV), ('\u{d4e9}', '\u{d503}', GC_LVT), ('\u{d504}', '\u{d504}',
1131
        GC_LV), ('\u{d505}', '\u{d51f}', GC_LVT), ('\u{d520}', '\u{d520}', GC_LV), ('\u{d521}',
1132
        '\u{d53b}', GC_LVT), ('\u{d53c}', '\u{d53c}', GC_LV), ('\u{d53d}', '\u{d557}', GC_LVT),
1133
        ('\u{d558}', '\u{d558}', GC_LV), ('\u{d559}', '\u{d573}', GC_LVT), ('\u{d574}', '\u{d574}',
1134
        GC_LV), ('\u{d575}', '\u{d58f}', GC_LVT), ('\u{d590}', '\u{d590}', GC_LV), ('\u{d591}',
1135
        '\u{d5ab}', GC_LVT), ('\u{d5ac}', '\u{d5ac}', GC_LV), ('\u{d5ad}', '\u{d5c7}', GC_LVT),
1136
        ('\u{d5c8}', '\u{d5c8}', GC_LV), ('\u{d5c9}', '\u{d5e3}', GC_LVT), ('\u{d5e4}', '\u{d5e4}',
1137
        GC_LV), ('\u{d5e5}', '\u{d5ff}', GC_LVT), ('\u{d600}', '\u{d600}', GC_LV), ('\u{d601}',
1138
        '\u{d61b}', GC_LVT), ('\u{d61c}', '\u{d61c}', GC_LV), ('\u{d61d}', '\u{d637}', GC_LVT),
1139
        ('\u{d638}', '\u{d638}', GC_LV), ('\u{d639}', '\u{d653}', GC_LVT), ('\u{d654}', '\u{d654}',
1140
        GC_LV), ('\u{d655}', '\u{d66f}', GC_LVT), ('\u{d670}', '\u{d670}', GC_LV), ('\u{d671}',
1141
        '\u{d68b}', GC_LVT), ('\u{d68c}', '\u{d68c}', GC_LV), ('\u{d68d}', '\u{d6a7}', GC_LVT),
1142
        ('\u{d6a8}', '\u{d6a8}', GC_LV), ('\u{d6a9}', '\u{d6c3}', GC_LVT), ('\u{d6c4}', '\u{d6c4}',
1143
        GC_LV), ('\u{d6c5}', '\u{d6df}', GC_LVT), ('\u{d6e0}', '\u{d6e0}', GC_LV), ('\u{d6e1}',
1144
        '\u{d6fb}', GC_LVT), ('\u{d6fc}', '\u{d6fc}', GC_LV), ('\u{d6fd}', '\u{d717}', GC_LVT),
1145
        ('\u{d718}', '\u{d718}', GC_LV), ('\u{d719}', '\u{d733}', GC_LVT), ('\u{d734}', '\u{d734}',
1146
        GC_LV), ('\u{d735}', '\u{d74f}', GC_LVT), ('\u{d750}', '\u{d750}', GC_LV), ('\u{d751}',
1147
        '\u{d76b}', GC_LVT), ('\u{d76c}', '\u{d76c}', GC_LV), ('\u{d76d}', '\u{d787}', GC_LVT),
1148
        ('\u{d788}', '\u{d788}', GC_LV), ('\u{d789}', '\u{d7a3}', GC_LVT), ('\u{d7b0}', '\u{d7c6}',
1149
        GC_V), ('\u{d7cb}', '\u{d7fb}', GC_T), ('\u{fb1e}', '\u{fb1e}', GC_Extend), ('\u{fe00}',
1150
        '\u{fe0f}', GC_Extend), ('\u{fe20}', '\u{fe2f}', GC_Extend), ('\u{feff}', '\u{feff}',
1151
        GC_Control), ('\u{ff9e}', '\u{ff9f}', GC_Extend), ('\u{fff0}', '\u{fffb}', GC_Control),
1152
        ('\u{101fd}', '\u{101fd}', GC_Extend), ('\u{102e0}', '\u{102e0}', GC_Extend), ('\u{10376}',
1153
        '\u{1037a}', GC_Extend), ('\u{10a00}', '\u{10a00}', GC_InCB_Consonant), ('\u{10a01}',
1154
        '\u{10a03}', GC_Extend), ('\u{10a05}', '\u{10a06}', GC_Extend), ('\u{10a0c}', '\u{10a0f}',
1155
        GC_Extend), ('\u{10a10}', '\u{10a13}', GC_InCB_Consonant), ('\u{10a15}', '\u{10a17}',
1156
        GC_InCB_Consonant), ('\u{10a19}', '\u{10a35}', GC_InCB_Consonant), ('\u{10a38}',
1157
        '\u{10a3a}', GC_Extend), ('\u{10a3f}', '\u{10a3f}', GC_Extend), ('\u{10ae5}', '\u{10ae6}',
1158
        GC_Extend), ('\u{10d24}', '\u{10d27}', GC_Extend), ('\u{10d69}', '\u{10d6d}', GC_Extend),
1159
        ('\u{10eab}', '\u{10eac}', GC_Extend), ('\u{10efa}', '\u{10eff}', GC_Extend), ('\u{10f46}',
1160
        '\u{10f50}', GC_Extend), ('\u{10f82}', '\u{10f85}', GC_Extend), ('\u{11000}', '\u{11000}',
1161
        GC_SpacingMark), ('\u{11001}', '\u{11001}', GC_Extend), ('\u{11002}', '\u{11002}',
1162
        GC_SpacingMark), ('\u{11038}', '\u{11046}', GC_Extend), ('\u{11070}', '\u{11070}',
1163
        GC_Extend), ('\u{11073}', '\u{11074}', GC_Extend), ('\u{1107f}', '\u{11081}', GC_Extend),
1164
        ('\u{11082}', '\u{11082}', GC_SpacingMark), ('\u{110b0}', '\u{110b2}', GC_SpacingMark),
1165
        ('\u{110b3}', '\u{110b6}', GC_Extend), ('\u{110b7}', '\u{110b8}', GC_SpacingMark),
1166
        ('\u{110b9}', '\u{110ba}', GC_Extend), ('\u{110bd}', '\u{110bd}', GC_Prepend), ('\u{110c2}',
1167
        '\u{110c2}', GC_Extend), ('\u{110cd}', '\u{110cd}', GC_Prepend), ('\u{11100}', '\u{11102}',
1168
        GC_Extend), ('\u{11103}', '\u{11126}', GC_InCB_Consonant), ('\u{11127}', '\u{1112b}',
1169
        GC_Extend), ('\u{1112c}', '\u{1112c}', GC_SpacingMark), ('\u{1112d}', '\u{11134}',
1170
        GC_Extend), ('\u{11144}', '\u{11144}', GC_InCB_Consonant), ('\u{11145}', '\u{11146}',
1171
        GC_SpacingMark), ('\u{11147}', '\u{11147}', GC_InCB_Consonant), ('\u{11173}', '\u{11173}',
1172
        GC_Extend), ('\u{11180}', '\u{11181}', GC_Extend), ('\u{11182}', '\u{11182}',
1173
        GC_SpacingMark), ('\u{111b3}', '\u{111b5}', GC_SpacingMark), ('\u{111b6}', '\u{111be}',
1174
        GC_Extend), ('\u{111bf}', '\u{111bf}', GC_SpacingMark), ('\u{111c0}', '\u{111c0}',
1175
        GC_Extend), ('\u{111c2}', '\u{111c3}', GC_Prepend), ('\u{111c9}', '\u{111cc}', GC_Extend),
1176
        ('\u{111ce}', '\u{111ce}', GC_SpacingMark), ('\u{111cf}', '\u{111cf}', GC_Extend),
1177
        ('\u{1122c}', '\u{1122e}', GC_SpacingMark), ('\u{1122f}', '\u{11231}', GC_Extend),
1178
        ('\u{11232}', '\u{11233}', GC_SpacingMark), ('\u{11234}', '\u{11237}', GC_Extend),
1179
        ('\u{1123e}', '\u{1123e}', GC_Extend), ('\u{11241}', '\u{11241}', GC_Extend), ('\u{112df}',
1180
        '\u{112df}', GC_Extend), ('\u{112e0}', '\u{112e2}', GC_SpacingMark), ('\u{112e3}',
1181
        '\u{112ea}', GC_Extend), ('\u{11300}', '\u{11301}', GC_Extend), ('\u{11302}', '\u{11303}',
1182
        GC_SpacingMark), ('\u{1133b}', '\u{1133c}', GC_Extend), ('\u{1133e}', '\u{1133e}',
1183
        GC_Extend), ('\u{1133f}', '\u{1133f}', GC_SpacingMark), ('\u{11340}', '\u{11340}',
1184
        GC_Extend), ('\u{11341}', '\u{11344}', GC_SpacingMark), ('\u{11347}', '\u{11348}',
1185
        GC_SpacingMark), ('\u{1134b}', '\u{1134c}', GC_SpacingMark), ('\u{1134d}', '\u{1134d}',
1186
        GC_Extend), ('\u{11357}', '\u{11357}', GC_Extend), ('\u{11362}', '\u{11363}',
1187
        GC_SpacingMark), ('\u{11366}', '\u{1136c}', GC_Extend), ('\u{11370}', '\u{11374}',
1188
        GC_Extend), ('\u{11380}', '\u{11389}', GC_InCB_Consonant), ('\u{1138b}', '\u{1138b}',
1189
        GC_InCB_Consonant), ('\u{1138e}', '\u{1138e}', GC_InCB_Consonant), ('\u{11390}',
1190
        '\u{113b5}', GC_InCB_Consonant), ('\u{113b8}', '\u{113b8}', GC_Extend), ('\u{113b9}',
1191
        '\u{113ba}', GC_SpacingMark), ('\u{113bb}', '\u{113c0}', GC_Extend), ('\u{113c2}',
1192
        '\u{113c2}', GC_Extend), ('\u{113c5}', '\u{113c5}', GC_Extend), ('\u{113c7}', '\u{113c9}',
1193
        GC_Extend), ('\u{113ca}', '\u{113ca}', GC_SpacingMark), ('\u{113cc}', '\u{113cd}',
1194
        GC_SpacingMark), ('\u{113ce}', '\u{113d0}', GC_Extend), ('\u{113d1}', '\u{113d1}',
1195
        GC_Prepend), ('\u{113d2}', '\u{113d2}', GC_Extend), ('\u{113e1}', '\u{113e2}', GC_Extend),
1196
        ('\u{11435}', '\u{11437}', GC_SpacingMark), ('\u{11438}', '\u{1143f}', GC_Extend),
1197
        ('\u{11440}', '\u{11441}', GC_SpacingMark), ('\u{11442}', '\u{11444}', GC_Extend),
1198
        ('\u{11445}', '\u{11445}', GC_SpacingMark), ('\u{11446}', '\u{11446}', GC_Extend),
1199
        ('\u{1145e}', '\u{1145e}', GC_Extend), ('\u{114b0}', '\u{114b0}', GC_Extend), ('\u{114b1}',
1200
        '\u{114b2}', GC_SpacingMark), ('\u{114b3}', '\u{114b8}', GC_Extend), ('\u{114b9}',
1201
        '\u{114b9}', GC_SpacingMark), ('\u{114ba}', '\u{114ba}', GC_Extend), ('\u{114bb}',
1202
        '\u{114bc}', GC_SpacingMark), ('\u{114bd}', '\u{114bd}', GC_Extend), ('\u{114be}',
1203
        '\u{114be}', GC_SpacingMark), ('\u{114bf}', '\u{114c0}', GC_Extend), ('\u{114c1}',
1204
        '\u{114c1}', GC_SpacingMark), ('\u{114c2}', '\u{114c3}', GC_Extend), ('\u{115af}',
1205
        '\u{115af}', GC_Extend), ('\u{115b0}', '\u{115b1}', GC_SpacingMark), ('\u{115b2}',
1206
        '\u{115b5}', GC_Extend), ('\u{115b8}', '\u{115bb}', GC_SpacingMark), ('\u{115bc}',
1207
        '\u{115bd}', GC_Extend), ('\u{115be}', '\u{115be}', GC_SpacingMark), ('\u{115bf}',
1208
        '\u{115c0}', GC_Extend), ('\u{115dc}', '\u{115dd}', GC_Extend), ('\u{11630}', '\u{11632}',
1209
        GC_SpacingMark), ('\u{11633}', '\u{1163a}', GC_Extend), ('\u{1163b}', '\u{1163c}',
1210
        GC_SpacingMark), ('\u{1163d}', '\u{1163d}', GC_Extend), ('\u{1163e}', '\u{1163e}',
1211
        GC_SpacingMark), ('\u{1163f}', '\u{11640}', GC_Extend), ('\u{116ab}', '\u{116ab}',
1212
        GC_Extend), ('\u{116ac}', '\u{116ac}', GC_SpacingMark), ('\u{116ad}', '\u{116ad}',
1213
        GC_Extend), ('\u{116ae}', '\u{116af}', GC_SpacingMark), ('\u{116b0}', '\u{116b7}',
1214
        GC_Extend), ('\u{1171d}', '\u{1171d}', GC_Extend), ('\u{1171e}', '\u{1171e}',
1215
        GC_SpacingMark), ('\u{1171f}', '\u{1171f}', GC_Extend), ('\u{11722}', '\u{11725}',
1216
        GC_Extend), ('\u{11726}', '\u{11726}', GC_SpacingMark), ('\u{11727}', '\u{1172b}',
1217
        GC_Extend), ('\u{1182c}', '\u{1182e}', GC_SpacingMark), ('\u{1182f}', '\u{11837}',
1218
        GC_Extend), ('\u{11838}', '\u{11838}', GC_SpacingMark), ('\u{11839}', '\u{1183a}',
1219
        GC_Extend), ('\u{11900}', '\u{11906}', GC_InCB_Consonant), ('\u{11909}', '\u{11909}',
1220
        GC_InCB_Consonant), ('\u{1190c}', '\u{11913}', GC_InCB_Consonant), ('\u{11915}',
1221
        '\u{11916}', GC_InCB_Consonant), ('\u{11918}', '\u{1192f}', GC_InCB_Consonant),
1222
        ('\u{11930}', '\u{11930}', GC_Extend), ('\u{11931}', '\u{11935}', GC_SpacingMark),
1223
        ('\u{11937}', '\u{11938}', GC_SpacingMark), ('\u{1193b}', '\u{1193e}', GC_Extend),
1224
        ('\u{1193f}', '\u{1193f}', GC_Prepend), ('\u{11940}', '\u{11940}', GC_SpacingMark),
1225
        ('\u{11941}', '\u{11941}', GC_Prepend), ('\u{11942}', '\u{11942}', GC_SpacingMark),
1226
        ('\u{11943}', '\u{11943}', GC_Extend), ('\u{119d1}', '\u{119d3}', GC_SpacingMark),
1227
        ('\u{119d4}', '\u{119d7}', GC_Extend), ('\u{119da}', '\u{119db}', GC_Extend), ('\u{119dc}',
1228
        '\u{119df}', GC_SpacingMark), ('\u{119e0}', '\u{119e0}', GC_Extend), ('\u{119e4}',
1229
        '\u{119e4}', GC_SpacingMark), ('\u{11a00}', '\u{11a00}', GC_InCB_Consonant), ('\u{11a01}',
1230
        '\u{11a0a}', GC_Extend), ('\u{11a0b}', '\u{11a32}', GC_InCB_Consonant), ('\u{11a33}',
1231
        '\u{11a38}', GC_Extend), ('\u{11a39}', '\u{11a39}', GC_SpacingMark), ('\u{11a3b}',
1232
        '\u{11a3e}', GC_Extend), ('\u{11a47}', '\u{11a47}', GC_Extend), ('\u{11a50}', '\u{11a50}',
1233
        GC_InCB_Consonant), ('\u{11a51}', '\u{11a56}', GC_Extend), ('\u{11a57}', '\u{11a58}',
1234
        GC_SpacingMark), ('\u{11a59}', '\u{11a5b}', GC_Extend), ('\u{11a5c}', '\u{11a83}',
1235
        GC_InCB_Consonant), ('\u{11a84}', '\u{11a89}', GC_Prepend), ('\u{11a8a}', '\u{11a96}',
1236
        GC_Extend), ('\u{11a97}', '\u{11a97}', GC_SpacingMark), ('\u{11a98}', '\u{11a99}',
1237
        GC_Extend), ('\u{11b60}', '\u{11b60}', GC_Extend), ('\u{11b61}', '\u{11b61}',
1238
        GC_SpacingMark), ('\u{11b62}', '\u{11b64}', GC_Extend), ('\u{11b65}', '\u{11b65}',
1239
        GC_SpacingMark), ('\u{11b66}', '\u{11b66}', GC_Extend), ('\u{11b67}', '\u{11b67}',
1240
        GC_SpacingMark), ('\u{11c2f}', '\u{11c2f}', GC_SpacingMark), ('\u{11c30}', '\u{11c36}',
1241
        GC_Extend), ('\u{11c38}', '\u{11c3d}', GC_Extend), ('\u{11c3e}', '\u{11c3e}',
1242
        GC_SpacingMark), ('\u{11c3f}', '\u{11c3f}', GC_Extend), ('\u{11c92}', '\u{11ca7}',
1243
        GC_Extend), ('\u{11ca9}', '\u{11ca9}', GC_SpacingMark), ('\u{11caa}', '\u{11cb0}',
1244
        GC_Extend), ('\u{11cb1}', '\u{11cb1}', GC_SpacingMark), ('\u{11cb2}', '\u{11cb3}',
1245
        GC_Extend), ('\u{11cb4}', '\u{11cb4}', GC_SpacingMark), ('\u{11cb5}', '\u{11cb6}',
1246
        GC_Extend), ('\u{11d31}', '\u{11d36}', GC_Extend), ('\u{11d3a}', '\u{11d3a}', GC_Extend),
1247
        ('\u{11d3c}', '\u{11d3d}', GC_Extend), ('\u{11d3f}', '\u{11d45}', GC_Extend), ('\u{11d46}',
1248
        '\u{11d46}', GC_Prepend), ('\u{11d47}', '\u{11d47}', GC_Extend), ('\u{11d8a}', '\u{11d8e}',
1249
        GC_SpacingMark), ('\u{11d90}', '\u{11d91}', GC_Extend), ('\u{11d93}', '\u{11d94}',
1250
        GC_SpacingMark), ('\u{11d95}', '\u{11d95}', GC_Extend), ('\u{11d96}', '\u{11d96}',
1251
        GC_SpacingMark), ('\u{11d97}', '\u{11d97}', GC_Extend), ('\u{11ef3}', '\u{11ef4}',
1252
        GC_Extend), ('\u{11ef5}', '\u{11ef6}', GC_SpacingMark), ('\u{11f00}', '\u{11f01}',
1253
        GC_Extend), ('\u{11f02}', '\u{11f02}', GC_Prepend), ('\u{11f03}', '\u{11f03}',
1254
        GC_SpacingMark), ('\u{11f04}', '\u{11f10}', GC_InCB_Consonant), ('\u{11f12}', '\u{11f33}',
1255
        GC_InCB_Consonant), ('\u{11f34}', '\u{11f35}', GC_SpacingMark), ('\u{11f36}', '\u{11f3a}',
1256
        GC_Extend), ('\u{11f3e}', '\u{11f3f}', GC_SpacingMark), ('\u{11f40}', '\u{11f42}',
1257
        GC_Extend), ('\u{11f5a}', '\u{11f5a}', GC_Extend), ('\u{13430}', '\u{1343f}', GC_Control),
1258
        ('\u{13440}', '\u{13440}', GC_Extend), ('\u{13447}', '\u{13455}', GC_Extend), ('\u{1611e}',
1259
        '\u{16129}', GC_Extend), ('\u{1612a}', '\u{1612c}', GC_SpacingMark), ('\u{1612d}',
1260
        '\u{1612f}', GC_Extend), ('\u{16af0}', '\u{16af4}', GC_Extend), ('\u{16b30}', '\u{16b36}',
1261
        GC_Extend), ('\u{16d63}', '\u{16d63}', GC_V), ('\u{16d67}', '\u{16d6a}', GC_V),
1262
        ('\u{16f4f}', '\u{16f4f}', GC_Extend), ('\u{16f51}', '\u{16f87}', GC_SpacingMark),
1263
        ('\u{16f8f}', '\u{16f92}', GC_Extend), ('\u{16fe4}', '\u{16fe4}', GC_Extend), ('\u{16ff0}',
1264
        '\u{16ff1}', GC_Extend), ('\u{1bc9d}', '\u{1bc9e}', GC_Extend), ('\u{1bca0}', '\u{1bca3}',
1265
        GC_Control), ('\u{1cf00}', '\u{1cf2d}', GC_Extend), ('\u{1cf30}', '\u{1cf46}', GC_Extend),
1266
        ('\u{1d165}', '\u{1d169}', GC_Extend), ('\u{1d16d}', '\u{1d172}', GC_Extend), ('\u{1d173}',
1267
        '\u{1d17a}', GC_Control), ('\u{1d17b}', '\u{1d182}', GC_Extend), ('\u{1d185}', '\u{1d18b}',
1268
        GC_Extend), ('\u{1d1aa}', '\u{1d1ad}', GC_Extend), ('\u{1d242}', '\u{1d244}', GC_Extend),
1269
        ('\u{1da00}', '\u{1da36}', GC_Extend), ('\u{1da3b}', '\u{1da6c}', GC_Extend), ('\u{1da75}',
1270
        '\u{1da75}', GC_Extend), ('\u{1da84}', '\u{1da84}', GC_Extend), ('\u{1da9b}', '\u{1da9f}',
1271
        GC_Extend), ('\u{1daa1}', '\u{1daaf}', GC_Extend), ('\u{1e000}', '\u{1e006}', GC_Extend),
1272
        ('\u{1e008}', '\u{1e018}', GC_Extend), ('\u{1e01b}', '\u{1e021}', GC_Extend), ('\u{1e023}',
1273
        '\u{1e024}', GC_Extend), ('\u{1e026}', '\u{1e02a}', GC_Extend), ('\u{1e08f}', '\u{1e08f}',
1274
        GC_Extend), ('\u{1e130}', '\u{1e136}', GC_Extend), ('\u{1e2ae}', '\u{1e2ae}', GC_Extend),
1275
        ('\u{1e2ec}', '\u{1e2ef}', GC_Extend), ('\u{1e4ec}', '\u{1e4ef}', GC_Extend), ('\u{1e5ee}',
1276
        '\u{1e5ef}', GC_Extend), ('\u{1e6e3}', '\u{1e6e3}', GC_Extend), ('\u{1e6e6}', '\u{1e6e6}',
1277
        GC_Extend), ('\u{1e6ee}', '\u{1e6ef}', GC_Extend), ('\u{1e6f5}', '\u{1e6f5}', GC_Extend),
1278
        ('\u{1e8d0}', '\u{1e8d6}', GC_Extend), ('\u{1e944}', '\u{1e94a}', GC_Extend), ('\u{1f004}',
1279
        '\u{1f004}', GC_Extended_Pictographic), ('\u{1f02c}', '\u{1f02f}',
1280
        GC_Extended_Pictographic), ('\u{1f094}', '\u{1f09f}', GC_Extended_Pictographic),
1281
        ('\u{1f0af}', '\u{1f0b0}', GC_Extended_Pictographic), ('\u{1f0c0}', '\u{1f0c0}',
1282
        GC_Extended_Pictographic), ('\u{1f0cf}', '\u{1f0d0}', GC_Extended_Pictographic),
1283
        ('\u{1f0f6}', '\u{1f0ff}', GC_Extended_Pictographic), ('\u{1f170}', '\u{1f171}',
1284
        GC_Extended_Pictographic), ('\u{1f17e}', '\u{1f17f}', GC_Extended_Pictographic),
1285
        ('\u{1f18e}', '\u{1f18e}', GC_Extended_Pictographic), ('\u{1f191}', '\u{1f19a}',
1286
        GC_Extended_Pictographic), ('\u{1f1ae}', '\u{1f1e5}', GC_Extended_Pictographic),
1287
        ('\u{1f1e6}', '\u{1f1ff}', GC_Regional_Indicator), ('\u{1f201}', '\u{1f20f}',
1288
        GC_Extended_Pictographic), ('\u{1f21a}', '\u{1f21a}', GC_Extended_Pictographic),
1289
        ('\u{1f22f}', '\u{1f22f}', GC_Extended_Pictographic), ('\u{1f232}', '\u{1f23a}',
1290
        GC_Extended_Pictographic), ('\u{1f23c}', '\u{1f23f}', GC_Extended_Pictographic),
1291
        ('\u{1f249}', '\u{1f25f}', GC_Extended_Pictographic), ('\u{1f266}', '\u{1f321}',
1292
        GC_Extended_Pictographic), ('\u{1f324}', '\u{1f393}', GC_Extended_Pictographic),
1293
        ('\u{1f396}', '\u{1f397}', GC_Extended_Pictographic), ('\u{1f399}', '\u{1f39b}',
1294
        GC_Extended_Pictographic), ('\u{1f39e}', '\u{1f3f0}', GC_Extended_Pictographic),
1295
        ('\u{1f3f3}', '\u{1f3f5}', GC_Extended_Pictographic), ('\u{1f3f7}', '\u{1f3fa}',
1296
        GC_Extended_Pictographic), ('\u{1f3fb}', '\u{1f3ff}', GC_Extend), ('\u{1f400}', '\u{1f4fd}',
1297
        GC_Extended_Pictographic), ('\u{1f4ff}', '\u{1f53d}', GC_Extended_Pictographic),
1298
        ('\u{1f549}', '\u{1f54e}', GC_Extended_Pictographic), ('\u{1f550}', '\u{1f567}',
1299
        GC_Extended_Pictographic), ('\u{1f56f}', '\u{1f570}', GC_Extended_Pictographic),
1300
        ('\u{1f573}', '\u{1f57a}', GC_Extended_Pictographic), ('\u{1f587}', '\u{1f587}',
1301
        GC_Extended_Pictographic), ('\u{1f58a}', '\u{1f58d}', GC_Extended_Pictographic),
1302
        ('\u{1f590}', '\u{1f590}', GC_Extended_Pictographic), ('\u{1f595}', '\u{1f596}',
1303
        GC_Extended_Pictographic), ('\u{1f5a4}', '\u{1f5a5}', GC_Extended_Pictographic),
1304
        ('\u{1f5a8}', '\u{1f5a8}', GC_Extended_Pictographic), ('\u{1f5b1}', '\u{1f5b2}',
1305
        GC_Extended_Pictographic), ('\u{1f5bc}', '\u{1f5bc}', GC_Extended_Pictographic),
1306
        ('\u{1f5c2}', '\u{1f5c4}', GC_Extended_Pictographic), ('\u{1f5d1}', '\u{1f5d3}',
1307
        GC_Extended_Pictographic), ('\u{1f5dc}', '\u{1f5de}', GC_Extended_Pictographic),
1308
        ('\u{1f5e1}', '\u{1f5e1}', GC_Extended_Pictographic), ('\u{1f5e3}', '\u{1f5e3}',
1309
        GC_Extended_Pictographic), ('\u{1f5e8}', '\u{1f5e8}', GC_Extended_Pictographic),
1310
        ('\u{1f5ef}', '\u{1f5ef}', GC_Extended_Pictographic), ('\u{1f5f3}', '\u{1f5f3}',
1311
        GC_Extended_Pictographic), ('\u{1f5fa}', '\u{1f64f}', GC_Extended_Pictographic),
1312
        ('\u{1f680}', '\u{1f6c5}', GC_Extended_Pictographic), ('\u{1f6cb}', '\u{1f6d2}',
1313
        GC_Extended_Pictographic), ('\u{1f6d5}', '\u{1f6e5}', GC_Extended_Pictographic),
1314
        ('\u{1f6e9}', '\u{1f6e9}', GC_Extended_Pictographic), ('\u{1f6eb}', '\u{1f6f0}',
1315
        GC_Extended_Pictographic), ('\u{1f6f3}', '\u{1f6ff}', GC_Extended_Pictographic),
1316
        ('\u{1f7da}', '\u{1f7ff}', GC_Extended_Pictographic), ('\u{1f80c}', '\u{1f80f}',
1317
        GC_Extended_Pictographic), ('\u{1f848}', '\u{1f84f}', GC_Extended_Pictographic),
1318
        ('\u{1f85a}', '\u{1f85f}', GC_Extended_Pictographic), ('\u{1f888}', '\u{1f88f}',
1319
        GC_Extended_Pictographic), ('\u{1f8ae}', '\u{1f8af}', GC_Extended_Pictographic),
1320
        ('\u{1f8bc}', '\u{1f8bf}', GC_Extended_Pictographic), ('\u{1f8c2}', '\u{1f8cf}',
1321
        GC_Extended_Pictographic), ('\u{1f8d9}', '\u{1f8ff}', GC_Extended_Pictographic),
1322
        ('\u{1f90c}', '\u{1f93a}', GC_Extended_Pictographic), ('\u{1f93c}', '\u{1f945}',
1323
        GC_Extended_Pictographic), ('\u{1f947}', '\u{1f9ff}', GC_Extended_Pictographic),
1324
        ('\u{1fa58}', '\u{1fa5f}', GC_Extended_Pictographic), ('\u{1fa6e}', '\u{1faff}',
1325
        GC_Extended_Pictographic), ('\u{1fc00}', '\u{1fffd}', GC_Extended_Pictographic),
1326
        ('\u{e0000}', '\u{e001f}', GC_Control), ('\u{e0020}', '\u{e007f}', GC_Extend), ('\u{e0080}',
1327
        '\u{e00ff}', GC_Control), ('\u{e0100}', '\u{e01ef}', GC_Extend), ('\u{e01f0}', '\u{e0fff}',
1328
        GC_Control)
1329
    ];
1330
1331
}
1332
1333
pub mod word {
1334
    use core::result::Result::{Ok, Err};
1335
1336
    pub use self::WordCat::*;
1337
1338
    #[allow(non_camel_case_types)]
1339
    #[derive(Clone, Copy, PartialEq, Eq, Debug)]
1340
    pub enum WordCat {
1341
        WC_ALetter,
1342
        WC_Any,
1343
        WC_CR,
1344
        WC_Double_Quote,
1345
        WC_Extend,
1346
        WC_ExtendNumLet,
1347
        WC_Format,
1348
        WC_Hebrew_Letter,
1349
        WC_Katakana,
1350
        WC_LF,
1351
        WC_MidLetter,
1352
        WC_MidNum,
1353
        WC_MidNumLet,
1354
        WC_Newline,
1355
        WC_Numeric,
1356
        WC_Regional_Indicator,
1357
        WC_Single_Quote,
1358
        WC_WSegSpace,
1359
        WC_ZWJ,
1360
    }
1361
1362
83.1M
    fn bsearch_range_value_table(c: char, r: &[(char, char, WordCat)], default_lower: u32, default_upper: u32) -> (u32, u32, WordCat) {
1363
        use core::cmp::Ordering::{Equal, Less, Greater};
1364
415M
        match r.binary_search_by(|&(lo, hi, _)| {
1365
415M
            if lo <= c && c <= hi { Equal }
1366
283M
            else if hi < c { Less }
1367
201M
            else { Greater }
1368
415M
        }) {
1369
66.5M
            Ok(idx) => {
1370
66.5M
                let (lower, upper, cat) = r[idx];
1371
66.5M
                (lower as u32, upper as u32, cat)
1372
            }
1373
16.5M
            Err(idx) => {
1374
                (
1375
16.5M
                    if idx > 0 { r[idx-1].1 as u32 + 1 } else { default_lower },
1376
16.5M
                    r.get(idx).map(|c|c.0 as u32 - 1).unwrap_or(default_upper),
1377
16.5M
                    WC_Any,
1378
                )
1379
            }
1380
        }
1381
83.1M
    }
1382
1383
83.1M
    pub fn word_category(c: char) -> (u32, u32, WordCat) {
1384
        // Perform a quick O(1) lookup in a precomputed table to determine
1385
        // the slice of the range table to search in.
1386
83.1M
        let lookup_interval = 0x80;
1387
83.1M
        let idx = (c as u32 / lookup_interval) as usize;
1388
83.1M
        let range = word_cat_lookup.get(idx..(idx + 2)).map_or(
1389
          // If the `idx` is outside of the precomputed table - use the slice
1390
          // starting from the last covered index in the precomputed table and
1391
          // ending with the length of the range table.
1392
83.1M
          1097..1100,
1393
83.1M
          |r| (r[0] as usize)..((r[1] + 1) as usize)
1394
        );
1395
1396
        // Compute pessimistic default lower and upper bounds on the category.
1397
        // If character doesn't map to any range and there is no adjacent range
1398
        // in the table slice - these bounds has to apply.
1399
83.1M
        let lower = idx as u32 * lookup_interval;
1400
83.1M
        let upper = lower + lookup_interval - 1;
1401
83.1M
        bsearch_range_value_table(c, &word_cat_table[range], lower, upper)
1402
83.1M
    }
1403
1404
    const word_cat_lookup: &[u16] = &[
1405
        0, 14, 23, 23, 23, 23, 25, 31, 37, 37, 39, 44, 56, 67, 79, 83, 93, 104, 111, 121, 143, 162,
1406
        180, 198, 215, 231, 250, 266, 278, 282, 286, 295, 301, 308, 316, 316, 316, 321, 329, 333,
1407
        336, 336, 336, 336, 336, 338, 342, 351, 354, 359, 365, 369, 370, 375, 379, 385, 392, 398,
1408
        410, 410, 412, 412, 412, 421, 431, 450, 452, 465, 466, 466, 466, 466, 466, 466, 467, 467,
1409
        467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 471, 477, 487, 488,
1410
        488, 488, 488, 493, 497, 498, 501, 501, 502, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1411
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1412
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1413
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1414
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1415
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1416
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1417
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1418
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1419
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1420
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1421
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1422
        503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
1423
        503, 503, 505, 505, 505, 512, 516, 516, 517, 527, 536, 542, 549, 557, 566, 572, 576, 576,
1424
        576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
1425
        576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
1426
        576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
1427
        576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
1428
        576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 579, 579, 579, 579,
1429
        579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
1430
        579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
1431
        579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
1432
        579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 590, 591, 591, 591, 592,
1433
        595, 605, 607, 616, 624, 630, 631, 632, 633, 633, 636, 640, 644, 644, 648, 651, 659, 659,
1434
        659, 662, 665, 672, 675, 678, 680, 690, 694, 697, 698, 699, 701, 707, 708, 708, 713, 717,
1435
        721, 729, 737, 747, 756, 762, 770, 788, 802, 808, 813, 813, 818, 822, 827, 829, 829, 831,
1436
        833, 846, 853, 862, 866, 867, 869, 875, 878, 890, 898, 898, 900, 909, 910, 910, 910, 910,
1437
        910, 910, 910, 910, 911, 912, 912, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913,
1438
        913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 914, 914, 914, 914, 914, 914, 914, 914,
1439
        914, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919,
1440
        919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 920, 920, 920, 920,
1441
        920, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921,
1442
        921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921,
1443
        921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921, 921,
1444
        921, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
1445
        924, 927, 931, 936, 937, 937, 937, 939, 939, 940, 942, 945, 952, 952, 952, 952, 952, 952,
1446
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1447
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1448
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1449
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1450
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1451
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
1452
        952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 955, 956, 956, 959,
1453
        959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
1454
        959, 959, 959, 961, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965,
1455
        965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 965,
1456
        966, 966, 966, 966, 966, 968, 968, 968, 968, 971, 974, 975, 975, 975, 975, 976, 984, 993,
1457
        993, 993, 997, 1001, 1006, 1006, 1006, 1006, 1006, 1009, 1012, 1012, 1012, 1012, 1012, 1012,
1458
        1012, 1012, 1012, 1014, 1014, 1020, 1021, 1026, 1026, 1026, 1031, 1031, 1031, 1031, 1034,
1459
        1034, 1038, 1038, 1048, 1048, 1052, 1052, 1054, 1058, 1058, 1058, 1058, 1058, 1058, 1058,
1460
        1058, 1058, 1058, 1086, 1091, 1091, 1091, 1091, 1091, 1093, 1095, 1095, 1095, 1095, 1096,
1461
        1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
1462
        1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097
1463
    ];
1464
1465
    const word_cat_table: &[(char, char, WordCat)] = &[
1466
        ('\u{a}', '\u{a}', WC_LF), ('\u{b}', '\u{c}', WC_Newline), ('\u{d}', '\u{d}', WC_CR),
1467
        ('\u{20}', '\u{20}', WC_WSegSpace), ('\u{22}', '\u{22}', WC_Double_Quote), ('\u{27}',
1468
        '\u{27}', WC_Single_Quote), ('\u{2c}', '\u{2c}', WC_MidNum), ('\u{2e}', '\u{2e}',
1469
        WC_MidNumLet), ('\u{30}', '\u{39}', WC_Numeric), ('\u{3a}', '\u{3a}', WC_MidLetter),
1470
        ('\u{3b}', '\u{3b}', WC_MidNum), ('\u{41}', '\u{5a}', WC_ALetter), ('\u{5f}', '\u{5f}',
1471
        WC_ExtendNumLet), ('\u{61}', '\u{7a}', WC_ALetter), ('\u{85}', '\u{85}', WC_Newline),
1472
        ('\u{aa}', '\u{aa}', WC_ALetter), ('\u{ad}', '\u{ad}', WC_Format), ('\u{b5}', '\u{b5}',
1473
        WC_ALetter), ('\u{b7}', '\u{b7}', WC_MidLetter), ('\u{b8}', '\u{b8}', WC_ALetter),
1474
        ('\u{ba}', '\u{ba}', WC_ALetter), ('\u{c0}', '\u{d6}', WC_ALetter), ('\u{d8}', '\u{f6}',
1475
        WC_ALetter), ('\u{f8}', '\u{2d7}', WC_ALetter), ('\u{2de}', '\u{2ff}', WC_ALetter),
1476
        ('\u{300}', '\u{36f}', WC_Extend), ('\u{370}', '\u{374}', WC_ALetter), ('\u{376}',
1477
        '\u{377}', WC_ALetter), ('\u{37a}', '\u{37d}', WC_ALetter), ('\u{37e}', '\u{37e}',
1478
        WC_MidNum), ('\u{37f}', '\u{37f}', WC_ALetter), ('\u{386}', '\u{386}', WC_ALetter),
1479
        ('\u{387}', '\u{387}', WC_MidLetter), ('\u{388}', '\u{38a}', WC_ALetter), ('\u{38c}',
1480
        '\u{38c}', WC_ALetter), ('\u{38e}', '\u{3a1}', WC_ALetter), ('\u{3a3}', '\u{3f5}',
1481
        WC_ALetter), ('\u{3f7}', '\u{481}', WC_ALetter), ('\u{483}', '\u{489}', WC_Extend),
1482
        ('\u{48a}', '\u{52f}', WC_ALetter), ('\u{531}', '\u{556}', WC_ALetter), ('\u{559}',
1483
        '\u{55c}', WC_ALetter), ('\u{55e}', '\u{55e}', WC_ALetter), ('\u{55f}', '\u{55f}',
1484
        WC_MidLetter), ('\u{560}', '\u{588}', WC_ALetter), ('\u{589}', '\u{589}', WC_MidNum),
1485
        ('\u{58a}', '\u{58a}', WC_ALetter), ('\u{591}', '\u{5bd}', WC_Extend), ('\u{5bf}',
1486
        '\u{5bf}', WC_Extend), ('\u{5c1}', '\u{5c2}', WC_Extend), ('\u{5c4}', '\u{5c5}', WC_Extend),
1487
        ('\u{5c7}', '\u{5c7}', WC_Extend), ('\u{5d0}', '\u{5ea}', WC_Hebrew_Letter), ('\u{5ef}',
1488
        '\u{5f2}', WC_Hebrew_Letter), ('\u{5f3}', '\u{5f3}', WC_ALetter), ('\u{5f4}', '\u{5f4}',
1489
        WC_MidLetter), ('\u{600}', '\u{605}', WC_Numeric), ('\u{60c}', '\u{60d}', WC_MidNum),
1490
        ('\u{610}', '\u{61a}', WC_Extend), ('\u{61c}', '\u{61c}', WC_Format), ('\u{620}', '\u{64a}',
1491
        WC_ALetter), ('\u{64b}', '\u{65f}', WC_Extend), ('\u{660}', '\u{669}', WC_Numeric),
1492
        ('\u{66b}', '\u{66b}', WC_Numeric), ('\u{66c}', '\u{66c}', WC_MidNum), ('\u{66e}',
1493
        '\u{66f}', WC_ALetter), ('\u{670}', '\u{670}', WC_Extend), ('\u{671}', '\u{6d3}',
1494
        WC_ALetter), ('\u{6d5}', '\u{6d5}', WC_ALetter), ('\u{6d6}', '\u{6dc}', WC_Extend),
1495
        ('\u{6dd}', '\u{6dd}', WC_Numeric), ('\u{6df}', '\u{6e4}', WC_Extend), ('\u{6e5}',
1496
        '\u{6e6}', WC_ALetter), ('\u{6e7}', '\u{6e8}', WC_Extend), ('\u{6ea}', '\u{6ed}',
1497
        WC_Extend), ('\u{6ee}', '\u{6ef}', WC_ALetter), ('\u{6f0}', '\u{6f9}', WC_Numeric),
1498
        ('\u{6fa}', '\u{6fc}', WC_ALetter), ('\u{6ff}', '\u{6ff}', WC_ALetter), ('\u{70f}',
1499
        '\u{710}', WC_ALetter), ('\u{711}', '\u{711}', WC_Extend), ('\u{712}', '\u{72f}',
1500
        WC_ALetter), ('\u{730}', '\u{74a}', WC_Extend), ('\u{74d}', '\u{7a5}', WC_ALetter),
1501
        ('\u{7a6}', '\u{7b0}', WC_Extend), ('\u{7b1}', '\u{7b1}', WC_ALetter), ('\u{7c0}',
1502
        '\u{7c9}', WC_Numeric), ('\u{7ca}', '\u{7ea}', WC_ALetter), ('\u{7eb}', '\u{7f3}',
1503
        WC_Extend), ('\u{7f4}', '\u{7f5}', WC_ALetter), ('\u{7f8}', '\u{7f8}', WC_MidNum),
1504
        ('\u{7fa}', '\u{7fa}', WC_ALetter), ('\u{7fd}', '\u{7fd}', WC_Extend), ('\u{800}',
1505
        '\u{815}', WC_ALetter), ('\u{816}', '\u{819}', WC_Extend), ('\u{81a}', '\u{81a}',
1506
        WC_ALetter), ('\u{81b}', '\u{823}', WC_Extend), ('\u{824}', '\u{824}', WC_ALetter),
1507
        ('\u{825}', '\u{827}', WC_Extend), ('\u{828}', '\u{828}', WC_ALetter), ('\u{829}',
1508
        '\u{82d}', WC_Extend), ('\u{840}', '\u{858}', WC_ALetter), ('\u{859}', '\u{85b}',
1509
        WC_Extend), ('\u{860}', '\u{86a}', WC_ALetter), ('\u{870}', '\u{887}', WC_ALetter),
1510
        ('\u{889}', '\u{88f}', WC_ALetter), ('\u{890}', '\u{891}', WC_Numeric), ('\u{897}',
1511
        '\u{89f}', WC_Extend), ('\u{8a0}', '\u{8c9}', WC_ALetter), ('\u{8ca}', '\u{8e1}',
1512
        WC_Extend), ('\u{8e2}', '\u{8e2}', WC_Numeric), ('\u{8e3}', '\u{903}', WC_Extend),
1513
        ('\u{904}', '\u{939}', WC_ALetter), ('\u{93a}', '\u{93c}', WC_Extend), ('\u{93d}',
1514
        '\u{93d}', WC_ALetter), ('\u{93e}', '\u{94f}', WC_Extend), ('\u{950}', '\u{950}',
1515
        WC_ALetter), ('\u{951}', '\u{957}', WC_Extend), ('\u{958}', '\u{961}', WC_ALetter),
1516
        ('\u{962}', '\u{963}', WC_Extend), ('\u{966}', '\u{96f}', WC_Numeric), ('\u{971}',
1517
        '\u{980}', WC_ALetter), ('\u{981}', '\u{983}', WC_Extend), ('\u{985}', '\u{98c}',
1518
        WC_ALetter), ('\u{98f}', '\u{990}', WC_ALetter), ('\u{993}', '\u{9a8}', WC_ALetter),
1519
        ('\u{9aa}', '\u{9b0}', WC_ALetter), ('\u{9b2}', '\u{9b2}', WC_ALetter), ('\u{9b6}',
1520
        '\u{9b9}', WC_ALetter), ('\u{9bc}', '\u{9bc}', WC_Extend), ('\u{9bd}', '\u{9bd}',
1521
        WC_ALetter), ('\u{9be}', '\u{9c4}', WC_Extend), ('\u{9c7}', '\u{9c8}', WC_Extend),
1522
        ('\u{9cb}', '\u{9cd}', WC_Extend), ('\u{9ce}', '\u{9ce}', WC_ALetter), ('\u{9d7}',
1523
        '\u{9d7}', WC_Extend), ('\u{9dc}', '\u{9dd}', WC_ALetter), ('\u{9df}', '\u{9e1}',
1524
        WC_ALetter), ('\u{9e2}', '\u{9e3}', WC_Extend), ('\u{9e6}', '\u{9ef}', WC_Numeric),
1525
        ('\u{9f0}', '\u{9f1}', WC_ALetter), ('\u{9fc}', '\u{9fc}', WC_ALetter), ('\u{9fe}',
1526
        '\u{9fe}', WC_Extend), ('\u{a01}', '\u{a03}', WC_Extend), ('\u{a05}', '\u{a0a}',
1527
        WC_ALetter), ('\u{a0f}', '\u{a10}', WC_ALetter), ('\u{a13}', '\u{a28}', WC_ALetter),
1528
        ('\u{a2a}', '\u{a30}', WC_ALetter), ('\u{a32}', '\u{a33}', WC_ALetter), ('\u{a35}',
1529
        '\u{a36}', WC_ALetter), ('\u{a38}', '\u{a39}', WC_ALetter), ('\u{a3c}', '\u{a3c}',
1530
        WC_Extend), ('\u{a3e}', '\u{a42}', WC_Extend), ('\u{a47}', '\u{a48}', WC_Extend),
1531
        ('\u{a4b}', '\u{a4d}', WC_Extend), ('\u{a51}', '\u{a51}', WC_Extend), ('\u{a59}', '\u{a5c}',
1532
        WC_ALetter), ('\u{a5e}', '\u{a5e}', WC_ALetter), ('\u{a66}', '\u{a6f}', WC_Numeric),
1533
        ('\u{a70}', '\u{a71}', WC_Extend), ('\u{a72}', '\u{a74}', WC_ALetter), ('\u{a75}',
1534
        '\u{a75}', WC_Extend), ('\u{a81}', '\u{a83}', WC_Extend), ('\u{a85}', '\u{a8d}',
1535
        WC_ALetter), ('\u{a8f}', '\u{a91}', WC_ALetter), ('\u{a93}', '\u{aa8}', WC_ALetter),
1536
        ('\u{aaa}', '\u{ab0}', WC_ALetter), ('\u{ab2}', '\u{ab3}', WC_ALetter), ('\u{ab5}',
1537
        '\u{ab9}', WC_ALetter), ('\u{abc}', '\u{abc}', WC_Extend), ('\u{abd}', '\u{abd}',
1538
        WC_ALetter), ('\u{abe}', '\u{ac5}', WC_Extend), ('\u{ac7}', '\u{ac9}', WC_Extend),
1539
        ('\u{acb}', '\u{acd}', WC_Extend), ('\u{ad0}', '\u{ad0}', WC_ALetter), ('\u{ae0}',
1540
        '\u{ae1}', WC_ALetter), ('\u{ae2}', '\u{ae3}', WC_Extend), ('\u{ae6}', '\u{aef}',
1541
        WC_Numeric), ('\u{af9}', '\u{af9}', WC_ALetter), ('\u{afa}', '\u{aff}', WC_Extend),
1542
        ('\u{b01}', '\u{b03}', WC_Extend), ('\u{b05}', '\u{b0c}', WC_ALetter), ('\u{b0f}',
1543
        '\u{b10}', WC_ALetter), ('\u{b13}', '\u{b28}', WC_ALetter), ('\u{b2a}', '\u{b30}',
1544
        WC_ALetter), ('\u{b32}', '\u{b33}', WC_ALetter), ('\u{b35}', '\u{b39}', WC_ALetter),
1545
        ('\u{b3c}', '\u{b3c}', WC_Extend), ('\u{b3d}', '\u{b3d}', WC_ALetter), ('\u{b3e}',
1546
        '\u{b44}', WC_Extend), ('\u{b47}', '\u{b48}', WC_Extend), ('\u{b4b}', '\u{b4d}', WC_Extend),
1547
        ('\u{b55}', '\u{b57}', WC_Extend), ('\u{b5c}', '\u{b5d}', WC_ALetter), ('\u{b5f}',
1548
        '\u{b61}', WC_ALetter), ('\u{b62}', '\u{b63}', WC_Extend), ('\u{b66}', '\u{b6f}',
1549
        WC_Numeric), ('\u{b71}', '\u{b71}', WC_ALetter), ('\u{b82}', '\u{b82}', WC_Extend),
1550
        ('\u{b83}', '\u{b83}', WC_ALetter), ('\u{b85}', '\u{b8a}', WC_ALetter), ('\u{b8e}',
1551
        '\u{b90}', WC_ALetter), ('\u{b92}', '\u{b95}', WC_ALetter), ('\u{b99}', '\u{b9a}',
1552
        WC_ALetter), ('\u{b9c}', '\u{b9c}', WC_ALetter), ('\u{b9e}', '\u{b9f}', WC_ALetter),
1553
        ('\u{ba3}', '\u{ba4}', WC_ALetter), ('\u{ba8}', '\u{baa}', WC_ALetter), ('\u{bae}',
1554
        '\u{bb9}', WC_ALetter), ('\u{bbe}', '\u{bc2}', WC_Extend), ('\u{bc6}', '\u{bc8}',
1555
        WC_Extend), ('\u{bca}', '\u{bcd}', WC_Extend), ('\u{bd0}', '\u{bd0}', WC_ALetter),
1556
        ('\u{bd7}', '\u{bd7}', WC_Extend), ('\u{be6}', '\u{bef}', WC_Numeric), ('\u{c00}',
1557
        '\u{c04}', WC_Extend), ('\u{c05}', '\u{c0c}', WC_ALetter), ('\u{c0e}', '\u{c10}',
1558
        WC_ALetter), ('\u{c12}', '\u{c28}', WC_ALetter), ('\u{c2a}', '\u{c39}', WC_ALetter),
1559
        ('\u{c3c}', '\u{c3c}', WC_Extend), ('\u{c3d}', '\u{c3d}', WC_ALetter), ('\u{c3e}',
1560
        '\u{c44}', WC_Extend), ('\u{c46}', '\u{c48}', WC_Extend), ('\u{c4a}', '\u{c4d}', WC_Extend),
1561
        ('\u{c55}', '\u{c56}', WC_Extend), ('\u{c58}', '\u{c5a}', WC_ALetter), ('\u{c5c}',
1562
        '\u{c5d}', WC_ALetter), ('\u{c60}', '\u{c61}', WC_ALetter), ('\u{c62}', '\u{c63}',
1563
        WC_Extend), ('\u{c66}', '\u{c6f}', WC_Numeric), ('\u{c80}', '\u{c80}', WC_ALetter),
1564
        ('\u{c81}', '\u{c83}', WC_Extend), ('\u{c85}', '\u{c8c}', WC_ALetter), ('\u{c8e}',
1565
        '\u{c90}', WC_ALetter), ('\u{c92}', '\u{ca8}', WC_ALetter), ('\u{caa}', '\u{cb3}',
1566
        WC_ALetter), ('\u{cb5}', '\u{cb9}', WC_ALetter), ('\u{cbc}', '\u{cbc}', WC_Extend),
1567
        ('\u{cbd}', '\u{cbd}', WC_ALetter), ('\u{cbe}', '\u{cc4}', WC_Extend), ('\u{cc6}',
1568
        '\u{cc8}', WC_Extend), ('\u{cca}', '\u{ccd}', WC_Extend), ('\u{cd5}', '\u{cd6}', WC_Extend),
1569
        ('\u{cdc}', '\u{cde}', WC_ALetter), ('\u{ce0}', '\u{ce1}', WC_ALetter), ('\u{ce2}',
1570
        '\u{ce3}', WC_Extend), ('\u{ce6}', '\u{cef}', WC_Numeric), ('\u{cf1}', '\u{cf2}',
1571
        WC_ALetter), ('\u{cf3}', '\u{cf3}', WC_Extend), ('\u{d00}', '\u{d03}', WC_Extend),
1572
        ('\u{d04}', '\u{d0c}', WC_ALetter), ('\u{d0e}', '\u{d10}', WC_ALetter), ('\u{d12}',
1573
        '\u{d3a}', WC_ALetter), ('\u{d3b}', '\u{d3c}', WC_Extend), ('\u{d3d}', '\u{d3d}',
1574
        WC_ALetter), ('\u{d3e}', '\u{d44}', WC_Extend), ('\u{d46}', '\u{d48}', WC_Extend),
1575
        ('\u{d4a}', '\u{d4d}', WC_Extend), ('\u{d4e}', '\u{d4e}', WC_ALetter), ('\u{d54}',
1576
        '\u{d56}', WC_ALetter), ('\u{d57}', '\u{d57}', WC_Extend), ('\u{d5f}', '\u{d61}',
1577
        WC_ALetter), ('\u{d62}', '\u{d63}', WC_Extend), ('\u{d66}', '\u{d6f}', WC_Numeric),
1578
        ('\u{d7a}', '\u{d7f}', WC_ALetter), ('\u{d81}', '\u{d83}', WC_Extend), ('\u{d85}',
1579
        '\u{d96}', WC_ALetter), ('\u{d9a}', '\u{db1}', WC_ALetter), ('\u{db3}', '\u{dbb}',
1580
        WC_ALetter), ('\u{dbd}', '\u{dbd}', WC_ALetter), ('\u{dc0}', '\u{dc6}', WC_ALetter),
1581
        ('\u{dca}', '\u{dca}', WC_Extend), ('\u{dcf}', '\u{dd4}', WC_Extend), ('\u{dd6}', '\u{dd6}',
1582
        WC_Extend), ('\u{dd8}', '\u{ddf}', WC_Extend), ('\u{de6}', '\u{def}', WC_Numeric),
1583
        ('\u{df2}', '\u{df3}', WC_Extend), ('\u{e31}', '\u{e31}', WC_Extend), ('\u{e34}', '\u{e3a}',
1584
        WC_Extend), ('\u{e47}', '\u{e4e}', WC_Extend), ('\u{e50}', '\u{e59}', WC_Numeric),
1585
        ('\u{eb1}', '\u{eb1}', WC_Extend), ('\u{eb4}', '\u{ebc}', WC_Extend), ('\u{ec8}', '\u{ece}',
1586
        WC_Extend), ('\u{ed0}', '\u{ed9}', WC_Numeric), ('\u{f00}', '\u{f00}', WC_ALetter),
1587
        ('\u{f18}', '\u{f19}', WC_Extend), ('\u{f20}', '\u{f29}', WC_Numeric), ('\u{f35}',
1588
        '\u{f35}', WC_Extend), ('\u{f37}', '\u{f37}', WC_Extend), ('\u{f39}', '\u{f39}', WC_Extend),
1589
        ('\u{f3e}', '\u{f3f}', WC_Extend), ('\u{f40}', '\u{f47}', WC_ALetter), ('\u{f49}',
1590
        '\u{f6c}', WC_ALetter), ('\u{f71}', '\u{f84}', WC_Extend), ('\u{f86}', '\u{f87}',
1591
        WC_Extend), ('\u{f88}', '\u{f8c}', WC_ALetter), ('\u{f8d}', '\u{f97}', WC_Extend),
1592
        ('\u{f99}', '\u{fbc}', WC_Extend), ('\u{fc6}', '\u{fc6}', WC_Extend), ('\u{102b}',
1593
        '\u{103e}', WC_Extend), ('\u{1040}', '\u{1049}', WC_Numeric), ('\u{1056}', '\u{1059}',
1594
        WC_Extend), ('\u{105e}', '\u{1060}', WC_Extend), ('\u{1062}', '\u{1064}', WC_Extend),
1595
        ('\u{1067}', '\u{106d}', WC_Extend), ('\u{1071}', '\u{1074}', WC_Extend), ('\u{1082}',
1596
        '\u{108d}', WC_Extend), ('\u{108f}', '\u{108f}', WC_Extend), ('\u{1090}', '\u{1099}',
1597
        WC_Numeric), ('\u{109a}', '\u{109d}', WC_Extend), ('\u{10a0}', '\u{10c5}', WC_ALetter),
1598
        ('\u{10c7}', '\u{10c7}', WC_ALetter), ('\u{10cd}', '\u{10cd}', WC_ALetter), ('\u{10d0}',
1599
        '\u{10fa}', WC_ALetter), ('\u{10fc}', '\u{1248}', WC_ALetter), ('\u{124a}', '\u{124d}',
1600
        WC_ALetter), ('\u{1250}', '\u{1256}', WC_ALetter), ('\u{1258}', '\u{1258}', WC_ALetter),
1601
        ('\u{125a}', '\u{125d}', WC_ALetter), ('\u{1260}', '\u{1288}', WC_ALetter), ('\u{128a}',
1602
        '\u{128d}', WC_ALetter), ('\u{1290}', '\u{12b0}', WC_ALetter), ('\u{12b2}', '\u{12b5}',
1603
        WC_ALetter), ('\u{12b8}', '\u{12be}', WC_ALetter), ('\u{12c0}', '\u{12c0}', WC_ALetter),
1604
        ('\u{12c2}', '\u{12c5}', WC_ALetter), ('\u{12c8}', '\u{12d6}', WC_ALetter), ('\u{12d8}',
1605
        '\u{1310}', WC_ALetter), ('\u{1312}', '\u{1315}', WC_ALetter), ('\u{1318}', '\u{135a}',
1606
        WC_ALetter), ('\u{135d}', '\u{135f}', WC_Extend), ('\u{1380}', '\u{138f}', WC_ALetter),
1607
        ('\u{13a0}', '\u{13f5}', WC_ALetter), ('\u{13f8}', '\u{13fd}', WC_ALetter), ('\u{1401}',
1608
        '\u{166c}', WC_ALetter), ('\u{166f}', '\u{167f}', WC_ALetter), ('\u{1680}', '\u{1680}',
1609
        WC_WSegSpace), ('\u{1681}', '\u{169a}', WC_ALetter), ('\u{16a0}', '\u{16ea}', WC_ALetter),
1610
        ('\u{16ee}', '\u{16f8}', WC_ALetter), ('\u{1700}', '\u{1711}', WC_ALetter), ('\u{1712}',
1611
        '\u{1715}', WC_Extend), ('\u{171f}', '\u{1731}', WC_ALetter), ('\u{1732}', '\u{1734}',
1612
        WC_Extend), ('\u{1740}', '\u{1751}', WC_ALetter), ('\u{1752}', '\u{1753}', WC_Extend),
1613
        ('\u{1760}', '\u{176c}', WC_ALetter), ('\u{176e}', '\u{1770}', WC_ALetter), ('\u{1772}',
1614
        '\u{1773}', WC_Extend), ('\u{17b4}', '\u{17d3}', WC_Extend), ('\u{17dd}', '\u{17dd}',
1615
        WC_Extend), ('\u{17e0}', '\u{17e9}', WC_Numeric), ('\u{180b}', '\u{180d}', WC_Extend),
1616
        ('\u{180e}', '\u{180e}', WC_Format), ('\u{180f}', '\u{180f}', WC_Extend), ('\u{1810}',
1617
        '\u{1819}', WC_Numeric), ('\u{1820}', '\u{1878}', WC_ALetter), ('\u{1880}', '\u{1884}',
1618
        WC_ALetter), ('\u{1885}', '\u{1886}', WC_Extend), ('\u{1887}', '\u{18a8}', WC_ALetter),
1619
        ('\u{18a9}', '\u{18a9}', WC_Extend), ('\u{18aa}', '\u{18aa}', WC_ALetter), ('\u{18b0}',
1620
        '\u{18f5}', WC_ALetter), ('\u{1900}', '\u{191e}', WC_ALetter), ('\u{1920}', '\u{192b}',
1621
        WC_Extend), ('\u{1930}', '\u{193b}', WC_Extend), ('\u{1946}', '\u{194f}', WC_Numeric),
1622
        ('\u{19d0}', '\u{19da}', WC_Numeric), ('\u{1a00}', '\u{1a16}', WC_ALetter), ('\u{1a17}',
1623
        '\u{1a1b}', WC_Extend), ('\u{1a55}', '\u{1a5e}', WC_Extend), ('\u{1a60}', '\u{1a7c}',
1624
        WC_Extend), ('\u{1a7f}', '\u{1a7f}', WC_Extend), ('\u{1a80}', '\u{1a89}', WC_Numeric),
1625
        ('\u{1a90}', '\u{1a99}', WC_Numeric), ('\u{1ab0}', '\u{1add}', WC_Extend), ('\u{1ae0}',
1626
        '\u{1aeb}', WC_Extend), ('\u{1b00}', '\u{1b04}', WC_Extend), ('\u{1b05}', '\u{1b33}',
1627
        WC_ALetter), ('\u{1b34}', '\u{1b44}', WC_Extend), ('\u{1b45}', '\u{1b4c}', WC_ALetter),
1628
        ('\u{1b50}', '\u{1b59}', WC_Numeric), ('\u{1b6b}', '\u{1b73}', WC_Extend), ('\u{1b80}',
1629
        '\u{1b82}', WC_Extend), ('\u{1b83}', '\u{1ba0}', WC_ALetter), ('\u{1ba1}', '\u{1bad}',
1630
        WC_Extend), ('\u{1bae}', '\u{1baf}', WC_ALetter), ('\u{1bb0}', '\u{1bb9}', WC_Numeric),
1631
        ('\u{1bba}', '\u{1be5}', WC_ALetter), ('\u{1be6}', '\u{1bf3}', WC_Extend), ('\u{1c00}',
1632
        '\u{1c23}', WC_ALetter), ('\u{1c24}', '\u{1c37}', WC_Extend), ('\u{1c40}', '\u{1c49}',
1633
        WC_Numeric), ('\u{1c4d}', '\u{1c4f}', WC_ALetter), ('\u{1c50}', '\u{1c59}', WC_Numeric),
1634
        ('\u{1c5a}', '\u{1c7d}', WC_ALetter), ('\u{1c80}', '\u{1c8a}', WC_ALetter), ('\u{1c90}',
1635
        '\u{1cba}', WC_ALetter), ('\u{1cbd}', '\u{1cbf}', WC_ALetter), ('\u{1cd0}', '\u{1cd2}',
1636
        WC_Extend), ('\u{1cd4}', '\u{1ce8}', WC_Extend), ('\u{1ce9}', '\u{1cec}', WC_ALetter),
1637
        ('\u{1ced}', '\u{1ced}', WC_Extend), ('\u{1cee}', '\u{1cf3}', WC_ALetter), ('\u{1cf4}',
1638
        '\u{1cf4}', WC_Extend), ('\u{1cf5}', '\u{1cf6}', WC_ALetter), ('\u{1cf7}', '\u{1cf9}',
1639
        WC_Extend), ('\u{1cfa}', '\u{1cfa}', WC_ALetter), ('\u{1d00}', '\u{1dbf}', WC_ALetter),
1640
        ('\u{1dc0}', '\u{1dff}', WC_Extend), ('\u{1e00}', '\u{1f15}', WC_ALetter), ('\u{1f18}',
1641
        '\u{1f1d}', WC_ALetter), ('\u{1f20}', '\u{1f45}', WC_ALetter), ('\u{1f48}', '\u{1f4d}',
1642
        WC_ALetter), ('\u{1f50}', '\u{1f57}', WC_ALetter), ('\u{1f59}', '\u{1f59}', WC_ALetter),
1643
        ('\u{1f5b}', '\u{1f5b}', WC_ALetter), ('\u{1f5d}', '\u{1f5d}', WC_ALetter), ('\u{1f5f}',
1644
        '\u{1f7d}', WC_ALetter), ('\u{1f80}', '\u{1fb4}', WC_ALetter), ('\u{1fb6}', '\u{1fbc}',
1645
        WC_ALetter), ('\u{1fbe}', '\u{1fbe}', WC_ALetter), ('\u{1fc2}', '\u{1fc4}', WC_ALetter),
1646
        ('\u{1fc6}', '\u{1fcc}', WC_ALetter), ('\u{1fd0}', '\u{1fd3}', WC_ALetter), ('\u{1fd6}',
1647
        '\u{1fdb}', WC_ALetter), ('\u{1fe0}', '\u{1fec}', WC_ALetter), ('\u{1ff2}', '\u{1ff4}',
1648
        WC_ALetter), ('\u{1ff6}', '\u{1ffc}', WC_ALetter), ('\u{2000}', '\u{2006}', WC_WSegSpace),
1649
        ('\u{2008}', '\u{200a}', WC_WSegSpace), ('\u{200c}', '\u{200c}', WC_Extend), ('\u{200d}',
1650
        '\u{200d}', WC_ZWJ), ('\u{200e}', '\u{200f}', WC_Format), ('\u{2018}', '\u{2019}',
1651
        WC_MidNumLet), ('\u{2024}', '\u{2024}', WC_MidNumLet), ('\u{2027}', '\u{2027}',
1652
        WC_MidLetter), ('\u{2028}', '\u{2029}', WC_Newline), ('\u{202a}', '\u{202e}', WC_Format),
1653
        ('\u{202f}', '\u{202f}', WC_ExtendNumLet), ('\u{203f}', '\u{2040}', WC_ExtendNumLet),
1654
        ('\u{2044}', '\u{2044}', WC_MidNum), ('\u{2054}', '\u{2054}', WC_ExtendNumLet), ('\u{205f}',
1655
        '\u{205f}', WC_WSegSpace), ('\u{2060}', '\u{2064}', WC_Format), ('\u{2066}', '\u{206f}',
1656
        WC_Format), ('\u{2071}', '\u{2071}', WC_ALetter), ('\u{207f}', '\u{207f}', WC_ALetter),
1657
        ('\u{2090}', '\u{209c}', WC_ALetter), ('\u{20d0}', '\u{20f0}', WC_Extend), ('\u{2102}',
1658
        '\u{2102}', WC_ALetter), ('\u{2107}', '\u{2107}', WC_ALetter), ('\u{210a}', '\u{2113}',
1659
        WC_ALetter), ('\u{2115}', '\u{2115}', WC_ALetter), ('\u{2119}', '\u{211d}', WC_ALetter),
1660
        ('\u{2124}', '\u{2124}', WC_ALetter), ('\u{2126}', '\u{2126}', WC_ALetter), ('\u{2128}',
1661
        '\u{2128}', WC_ALetter), ('\u{212a}', '\u{212d}', WC_ALetter), ('\u{212f}', '\u{2139}',
1662
        WC_ALetter), ('\u{213c}', '\u{213f}', WC_ALetter), ('\u{2145}', '\u{2149}', WC_ALetter),
1663
        ('\u{214e}', '\u{214e}', WC_ALetter), ('\u{2160}', '\u{2188}', WC_ALetter), ('\u{24b6}',
1664
        '\u{24e9}', WC_ALetter), ('\u{2c00}', '\u{2ce4}', WC_ALetter), ('\u{2ceb}', '\u{2cee}',
1665
        WC_ALetter), ('\u{2cef}', '\u{2cf1}', WC_Extend), ('\u{2cf2}', '\u{2cf3}', WC_ALetter),
1666
        ('\u{2d00}', '\u{2d25}', WC_ALetter), ('\u{2d27}', '\u{2d27}', WC_ALetter), ('\u{2d2d}',
1667
        '\u{2d2d}', WC_ALetter), ('\u{2d30}', '\u{2d67}', WC_ALetter), ('\u{2d6f}', '\u{2d6f}',
1668
        WC_ALetter), ('\u{2d7f}', '\u{2d7f}', WC_Extend), ('\u{2d80}', '\u{2d96}', WC_ALetter),
1669
        ('\u{2da0}', '\u{2da6}', WC_ALetter), ('\u{2da8}', '\u{2dae}', WC_ALetter), ('\u{2db0}',
1670
        '\u{2db6}', WC_ALetter), ('\u{2db8}', '\u{2dbe}', WC_ALetter), ('\u{2dc0}', '\u{2dc6}',
1671
        WC_ALetter), ('\u{2dc8}', '\u{2dce}', WC_ALetter), ('\u{2dd0}', '\u{2dd6}', WC_ALetter),
1672
        ('\u{2dd8}', '\u{2dde}', WC_ALetter), ('\u{2de0}', '\u{2dff}', WC_Extend), ('\u{2e2f}',
1673
        '\u{2e2f}', WC_ALetter), ('\u{3000}', '\u{3000}', WC_WSegSpace), ('\u{3005}', '\u{3005}',
1674
        WC_ALetter), ('\u{302a}', '\u{302f}', WC_Extend), ('\u{3031}', '\u{3035}', WC_Katakana),
1675
        ('\u{303b}', '\u{303c}', WC_ALetter), ('\u{3099}', '\u{309a}', WC_Extend), ('\u{309b}',
1676
        '\u{309c}', WC_Katakana), ('\u{30a0}', '\u{30fa}', WC_Katakana), ('\u{30fc}', '\u{30ff}',
1677
        WC_Katakana), ('\u{3105}', '\u{312f}', WC_ALetter), ('\u{3131}', '\u{318e}', WC_ALetter),
1678
        ('\u{31a0}', '\u{31bf}', WC_ALetter), ('\u{31f0}', '\u{31ff}', WC_Katakana), ('\u{32d0}',
1679
        '\u{32fe}', WC_Katakana), ('\u{3300}', '\u{3357}', WC_Katakana), ('\u{a000}', '\u{a48c}',
1680
        WC_ALetter), ('\u{a4d0}', '\u{a4fd}', WC_ALetter), ('\u{a500}', '\u{a60c}', WC_ALetter),
1681
        ('\u{a610}', '\u{a61f}', WC_ALetter), ('\u{a620}', '\u{a629}', WC_Numeric), ('\u{a62a}',
1682
        '\u{a62b}', WC_ALetter), ('\u{a640}', '\u{a66e}', WC_ALetter), ('\u{a66f}', '\u{a672}',
1683
        WC_Extend), ('\u{a674}', '\u{a67d}', WC_Extend), ('\u{a67f}', '\u{a69d}', WC_ALetter),
1684
        ('\u{a69e}', '\u{a69f}', WC_Extend), ('\u{a6a0}', '\u{a6ef}', WC_ALetter), ('\u{a6f0}',
1685
        '\u{a6f1}', WC_Extend), ('\u{a708}', '\u{a7dc}', WC_ALetter), ('\u{a7f1}', '\u{a801}',
1686
        WC_ALetter), ('\u{a802}', '\u{a802}', WC_Extend), ('\u{a803}', '\u{a805}', WC_ALetter),
1687
        ('\u{a806}', '\u{a806}', WC_Extend), ('\u{a807}', '\u{a80a}', WC_ALetter), ('\u{a80b}',
1688
        '\u{a80b}', WC_Extend), ('\u{a80c}', '\u{a822}', WC_ALetter), ('\u{a823}', '\u{a827}',
1689
        WC_Extend), ('\u{a82c}', '\u{a82c}', WC_Extend), ('\u{a840}', '\u{a873}', WC_ALetter),
1690
        ('\u{a880}', '\u{a881}', WC_Extend), ('\u{a882}', '\u{a8b3}', WC_ALetter), ('\u{a8b4}',
1691
        '\u{a8c5}', WC_Extend), ('\u{a8d0}', '\u{a8d9}', WC_Numeric), ('\u{a8e0}', '\u{a8f1}',
1692
        WC_Extend), ('\u{a8f2}', '\u{a8f7}', WC_ALetter), ('\u{a8fb}', '\u{a8fb}', WC_ALetter),
1693
        ('\u{a8fd}', '\u{a8fe}', WC_ALetter), ('\u{a8ff}', '\u{a8ff}', WC_Extend), ('\u{a900}',
1694
        '\u{a909}', WC_Numeric), ('\u{a90a}', '\u{a925}', WC_ALetter), ('\u{a926}', '\u{a92d}',
1695
        WC_Extend), ('\u{a930}', '\u{a946}', WC_ALetter), ('\u{a947}', '\u{a953}', WC_Extend),
1696
        ('\u{a960}', '\u{a97c}', WC_ALetter), ('\u{a980}', '\u{a983}', WC_Extend), ('\u{a984}',
1697
        '\u{a9b2}', WC_ALetter), ('\u{a9b3}', '\u{a9c0}', WC_Extend), ('\u{a9cf}', '\u{a9cf}',
1698
        WC_ALetter), ('\u{a9d0}', '\u{a9d9}', WC_Numeric), ('\u{a9e5}', '\u{a9e5}', WC_Extend),
1699
        ('\u{a9f0}', '\u{a9f9}', WC_Numeric), ('\u{aa00}', '\u{aa28}', WC_ALetter), ('\u{aa29}',
1700
        '\u{aa36}', WC_Extend), ('\u{aa40}', '\u{aa42}', WC_ALetter), ('\u{aa43}', '\u{aa43}',
1701
        WC_Extend), ('\u{aa44}', '\u{aa4b}', WC_ALetter), ('\u{aa4c}', '\u{aa4d}', WC_Extend),
1702
        ('\u{aa50}', '\u{aa59}', WC_Numeric), ('\u{aa7b}', '\u{aa7d}', WC_Extend), ('\u{aab0}',
1703
        '\u{aab0}', WC_Extend), ('\u{aab2}', '\u{aab4}', WC_Extend), ('\u{aab7}', '\u{aab8}',
1704
        WC_Extend), ('\u{aabe}', '\u{aabf}', WC_Extend), ('\u{aac1}', '\u{aac1}', WC_Extend),
1705
        ('\u{aae0}', '\u{aaea}', WC_ALetter), ('\u{aaeb}', '\u{aaef}', WC_Extend), ('\u{aaf2}',
1706
        '\u{aaf4}', WC_ALetter), ('\u{aaf5}', '\u{aaf6}', WC_Extend), ('\u{ab01}', '\u{ab06}',
1707
        WC_ALetter), ('\u{ab09}', '\u{ab0e}', WC_ALetter), ('\u{ab11}', '\u{ab16}', WC_ALetter),
1708
        ('\u{ab20}', '\u{ab26}', WC_ALetter), ('\u{ab28}', '\u{ab2e}', WC_ALetter), ('\u{ab30}',
1709
        '\u{ab69}', WC_ALetter), ('\u{ab70}', '\u{abe2}', WC_ALetter), ('\u{abe3}', '\u{abea}',
1710
        WC_Extend), ('\u{abec}', '\u{abed}', WC_Extend), ('\u{abf0}', '\u{abf9}', WC_Numeric),
1711
        ('\u{ac00}', '\u{d7a3}', WC_ALetter), ('\u{d7b0}', '\u{d7c6}', WC_ALetter), ('\u{d7cb}',
1712
        '\u{d7fb}', WC_ALetter), ('\u{fb00}', '\u{fb06}', WC_ALetter), ('\u{fb13}', '\u{fb17}',
1713
        WC_ALetter), ('\u{fb1d}', '\u{fb1d}', WC_Hebrew_Letter), ('\u{fb1e}', '\u{fb1e}',
1714
        WC_Extend), ('\u{fb1f}', '\u{fb28}', WC_Hebrew_Letter), ('\u{fb2a}', '\u{fb36}',
1715
        WC_Hebrew_Letter), ('\u{fb38}', '\u{fb3c}', WC_Hebrew_Letter), ('\u{fb3e}', '\u{fb3e}',
1716
        WC_Hebrew_Letter), ('\u{fb40}', '\u{fb41}', WC_Hebrew_Letter), ('\u{fb43}', '\u{fb44}',
1717
        WC_Hebrew_Letter), ('\u{fb46}', '\u{fb4f}', WC_Hebrew_Letter), ('\u{fb50}', '\u{fbb1}',
1718
        WC_ALetter), ('\u{fbd3}', '\u{fd3d}', WC_ALetter), ('\u{fd50}', '\u{fd8f}', WC_ALetter),
1719
        ('\u{fd92}', '\u{fdc7}', WC_ALetter), ('\u{fdf0}', '\u{fdfb}', WC_ALetter), ('\u{fe00}',
1720
        '\u{fe0f}', WC_Extend), ('\u{fe13}', '\u{fe13}', WC_MidLetter), ('\u{fe20}', '\u{fe2f}',
1721
        WC_Extend), ('\u{fe33}', '\u{fe34}', WC_ExtendNumLet), ('\u{fe4d}', '\u{fe4f}',
1722
        WC_ExtendNumLet), ('\u{fe50}', '\u{fe50}', WC_MidNum), ('\u{fe52}', '\u{fe52}',
1723
        WC_MidNumLet), ('\u{fe54}', '\u{fe54}', WC_MidNum), ('\u{fe55}', '\u{fe55}', WC_MidLetter),
1724
        ('\u{fe70}', '\u{fe74}', WC_ALetter), ('\u{fe76}', '\u{fefc}', WC_ALetter), ('\u{feff}',
1725
        '\u{feff}', WC_Format), ('\u{ff07}', '\u{ff07}', WC_MidNumLet), ('\u{ff0c}', '\u{ff0c}',
1726
        WC_MidNum), ('\u{ff0e}', '\u{ff0e}', WC_MidNumLet), ('\u{ff10}', '\u{ff19}', WC_Numeric),
1727
        ('\u{ff1a}', '\u{ff1a}', WC_MidLetter), ('\u{ff1b}', '\u{ff1b}', WC_MidNum), ('\u{ff21}',
1728
        '\u{ff3a}', WC_ALetter), ('\u{ff3f}', '\u{ff3f}', WC_ExtendNumLet), ('\u{ff41}', '\u{ff5a}',
1729
        WC_ALetter), ('\u{ff66}', '\u{ff9d}', WC_Katakana), ('\u{ff9e}', '\u{ff9f}', WC_Extend),
1730
        ('\u{ffa0}', '\u{ffbe}', WC_ALetter), ('\u{ffc2}', '\u{ffc7}', WC_ALetter), ('\u{ffca}',
1731
        '\u{ffcf}', WC_ALetter), ('\u{ffd2}', '\u{ffd7}', WC_ALetter), ('\u{ffda}', '\u{ffdc}',
1732
        WC_ALetter), ('\u{fff9}', '\u{fffb}', WC_Format), ('\u{10000}', '\u{1000b}', WC_ALetter),
1733
        ('\u{1000d}', '\u{10026}', WC_ALetter), ('\u{10028}', '\u{1003a}', WC_ALetter),
1734
        ('\u{1003c}', '\u{1003d}', WC_ALetter), ('\u{1003f}', '\u{1004d}', WC_ALetter),
1735
        ('\u{10050}', '\u{1005d}', WC_ALetter), ('\u{10080}', '\u{100fa}', WC_ALetter),
1736
        ('\u{10140}', '\u{10174}', WC_ALetter), ('\u{101fd}', '\u{101fd}', WC_Extend), ('\u{10280}',
1737
        '\u{1029c}', WC_ALetter), ('\u{102a0}', '\u{102d0}', WC_ALetter), ('\u{102e0}', '\u{102e0}',
1738
        WC_Extend), ('\u{10300}', '\u{1031f}', WC_ALetter), ('\u{1032d}', '\u{1034a}', WC_ALetter),
1739
        ('\u{10350}', '\u{10375}', WC_ALetter), ('\u{10376}', '\u{1037a}', WC_Extend), ('\u{10380}',
1740
        '\u{1039d}', WC_ALetter), ('\u{103a0}', '\u{103c3}', WC_ALetter), ('\u{103c8}', '\u{103cf}',
1741
        WC_ALetter), ('\u{103d1}', '\u{103d5}', WC_ALetter), ('\u{10400}', '\u{1049d}', WC_ALetter),
1742
        ('\u{104a0}', '\u{104a9}', WC_Numeric), ('\u{104b0}', '\u{104d3}', WC_ALetter),
1743
        ('\u{104d8}', '\u{104fb}', WC_ALetter), ('\u{10500}', '\u{10527}', WC_ALetter),
1744
        ('\u{10530}', '\u{10563}', WC_ALetter), ('\u{10570}', '\u{1057a}', WC_ALetter),
1745
        ('\u{1057c}', '\u{1058a}', WC_ALetter), ('\u{1058c}', '\u{10592}', WC_ALetter),
1746
        ('\u{10594}', '\u{10595}', WC_ALetter), ('\u{10597}', '\u{105a1}', WC_ALetter),
1747
        ('\u{105a3}', '\u{105b1}', WC_ALetter), ('\u{105b3}', '\u{105b9}', WC_ALetter),
1748
        ('\u{105bb}', '\u{105bc}', WC_ALetter), ('\u{105c0}', '\u{105f3}', WC_ALetter),
1749
        ('\u{10600}', '\u{10736}', WC_ALetter), ('\u{10740}', '\u{10755}', WC_ALetter),
1750
        ('\u{10760}', '\u{10767}', WC_ALetter), ('\u{10780}', '\u{10785}', WC_ALetter),
1751
        ('\u{10787}', '\u{107b0}', WC_ALetter), ('\u{107b2}', '\u{107ba}', WC_ALetter),
1752
        ('\u{10800}', '\u{10805}', WC_ALetter), ('\u{10808}', '\u{10808}', WC_ALetter),
1753
        ('\u{1080a}', '\u{10835}', WC_ALetter), ('\u{10837}', '\u{10838}', WC_ALetter),
1754
        ('\u{1083c}', '\u{1083c}', WC_ALetter), ('\u{1083f}', '\u{10855}', WC_ALetter),
1755
        ('\u{10860}', '\u{10876}', WC_ALetter), ('\u{10880}', '\u{1089e}', WC_ALetter),
1756
        ('\u{108e0}', '\u{108f2}', WC_ALetter), ('\u{108f4}', '\u{108f5}', WC_ALetter),
1757
        ('\u{10900}', '\u{10915}', WC_ALetter), ('\u{10920}', '\u{10939}', WC_ALetter),
1758
        ('\u{10940}', '\u{10959}', WC_ALetter), ('\u{10980}', '\u{109b7}', WC_ALetter),
1759
        ('\u{109be}', '\u{109bf}', WC_ALetter), ('\u{10a00}', '\u{10a00}', WC_ALetter),
1760
        ('\u{10a01}', '\u{10a03}', WC_Extend), ('\u{10a05}', '\u{10a06}', WC_Extend), ('\u{10a0c}',
1761
        '\u{10a0f}', WC_Extend), ('\u{10a10}', '\u{10a13}', WC_ALetter), ('\u{10a15}', '\u{10a17}',
1762
        WC_ALetter), ('\u{10a19}', '\u{10a35}', WC_ALetter), ('\u{10a38}', '\u{10a3a}', WC_Extend),
1763
        ('\u{10a3f}', '\u{10a3f}', WC_Extend), ('\u{10a60}', '\u{10a7c}', WC_ALetter), ('\u{10a80}',
1764
        '\u{10a9c}', WC_ALetter), ('\u{10ac0}', '\u{10ac7}', WC_ALetter), ('\u{10ac9}', '\u{10ae4}',
1765
        WC_ALetter), ('\u{10ae5}', '\u{10ae6}', WC_Extend), ('\u{10b00}', '\u{10b35}', WC_ALetter),
1766
        ('\u{10b40}', '\u{10b55}', WC_ALetter), ('\u{10b60}', '\u{10b72}', WC_ALetter),
1767
        ('\u{10b80}', '\u{10b91}', WC_ALetter), ('\u{10c00}', '\u{10c48}', WC_ALetter),
1768
        ('\u{10c80}', '\u{10cb2}', WC_ALetter), ('\u{10cc0}', '\u{10cf2}', WC_ALetter),
1769
        ('\u{10d00}', '\u{10d23}', WC_ALetter), ('\u{10d24}', '\u{10d27}', WC_Extend), ('\u{10d30}',
1770
        '\u{10d39}', WC_Numeric), ('\u{10d40}', '\u{10d49}', WC_Numeric), ('\u{10d4a}', '\u{10d65}',
1771
        WC_ALetter), ('\u{10d69}', '\u{10d6d}', WC_Extend), ('\u{10d6f}', '\u{10d85}', WC_ALetter),
1772
        ('\u{10e80}', '\u{10ea9}', WC_ALetter), ('\u{10eab}', '\u{10eac}', WC_Extend), ('\u{10eb0}',
1773
        '\u{10eb1}', WC_ALetter), ('\u{10ec2}', '\u{10ec7}', WC_ALetter), ('\u{10efa}', '\u{10eff}',
1774
        WC_Extend), ('\u{10f00}', '\u{10f1c}', WC_ALetter), ('\u{10f27}', '\u{10f27}', WC_ALetter),
1775
        ('\u{10f30}', '\u{10f45}', WC_ALetter), ('\u{10f46}', '\u{10f50}', WC_Extend), ('\u{10f70}',
1776
        '\u{10f81}', WC_ALetter), ('\u{10f82}', '\u{10f85}', WC_Extend), ('\u{10fb0}', '\u{10fc4}',
1777
        WC_ALetter), ('\u{10fe0}', '\u{10ff6}', WC_ALetter), ('\u{11000}', '\u{11002}', WC_Extend),
1778
        ('\u{11003}', '\u{11037}', WC_ALetter), ('\u{11038}', '\u{11046}', WC_Extend), ('\u{11066}',
1779
        '\u{1106f}', WC_Numeric), ('\u{11070}', '\u{11070}', WC_Extend), ('\u{11071}', '\u{11072}',
1780
        WC_ALetter), ('\u{11073}', '\u{11074}', WC_Extend), ('\u{11075}', '\u{11075}', WC_ALetter),
1781
        ('\u{1107f}', '\u{11082}', WC_Extend), ('\u{11083}', '\u{110af}', WC_ALetter), ('\u{110b0}',
1782
        '\u{110ba}', WC_Extend), ('\u{110bd}', '\u{110bd}', WC_Numeric), ('\u{110c2}', '\u{110c2}',
1783
        WC_Extend), ('\u{110cd}', '\u{110cd}', WC_Numeric), ('\u{110d0}', '\u{110e8}', WC_ALetter),
1784
        ('\u{110f0}', '\u{110f9}', WC_Numeric), ('\u{11100}', '\u{11102}', WC_Extend), ('\u{11103}',
1785
        '\u{11126}', WC_ALetter), ('\u{11127}', '\u{11134}', WC_Extend), ('\u{11136}', '\u{1113f}',
1786
        WC_Numeric), ('\u{11144}', '\u{11144}', WC_ALetter), ('\u{11145}', '\u{11146}', WC_Extend),
1787
        ('\u{11147}', '\u{11147}', WC_ALetter), ('\u{11150}', '\u{11172}', WC_ALetter),
1788
        ('\u{11173}', '\u{11173}', WC_Extend), ('\u{11176}', '\u{11176}', WC_ALetter), ('\u{11180}',
1789
        '\u{11182}', WC_Extend), ('\u{11183}', '\u{111b2}', WC_ALetter), ('\u{111b3}', '\u{111c0}',
1790
        WC_Extend), ('\u{111c1}', '\u{111c4}', WC_ALetter), ('\u{111c9}', '\u{111cc}', WC_Extend),
1791
        ('\u{111ce}', '\u{111cf}', WC_Extend), ('\u{111d0}', '\u{111d9}', WC_Numeric), ('\u{111da}',
1792
        '\u{111da}', WC_ALetter), ('\u{111dc}', '\u{111dc}', WC_ALetter), ('\u{11200}', '\u{11211}',
1793
        WC_ALetter), ('\u{11213}', '\u{1122b}', WC_ALetter), ('\u{1122c}', '\u{11237}', WC_Extend),
1794
        ('\u{1123e}', '\u{1123e}', WC_Extend), ('\u{1123f}', '\u{11240}', WC_ALetter), ('\u{11241}',
1795
        '\u{11241}', WC_Extend), ('\u{11280}', '\u{11286}', WC_ALetter), ('\u{11288}', '\u{11288}',
1796
        WC_ALetter), ('\u{1128a}', '\u{1128d}', WC_ALetter), ('\u{1128f}', '\u{1129d}', WC_ALetter),
1797
        ('\u{1129f}', '\u{112a8}', WC_ALetter), ('\u{112b0}', '\u{112de}', WC_ALetter),
1798
        ('\u{112df}', '\u{112ea}', WC_Extend), ('\u{112f0}', '\u{112f9}', WC_Numeric), ('\u{11300}',
1799
        '\u{11303}', WC_Extend), ('\u{11305}', '\u{1130c}', WC_ALetter), ('\u{1130f}', '\u{11310}',
1800
        WC_ALetter), ('\u{11313}', '\u{11328}', WC_ALetter), ('\u{1132a}', '\u{11330}', WC_ALetter),
1801
        ('\u{11332}', '\u{11333}', WC_ALetter), ('\u{11335}', '\u{11339}', WC_ALetter),
1802
        ('\u{1133b}', '\u{1133c}', WC_Extend), ('\u{1133d}', '\u{1133d}', WC_ALetter), ('\u{1133e}',
1803
        '\u{11344}', WC_Extend), ('\u{11347}', '\u{11348}', WC_Extend), ('\u{1134b}', '\u{1134d}',
1804
        WC_Extend), ('\u{11350}', '\u{11350}', WC_ALetter), ('\u{11357}', '\u{11357}', WC_Extend),
1805
        ('\u{1135d}', '\u{11361}', WC_ALetter), ('\u{11362}', '\u{11363}', WC_Extend), ('\u{11366}',
1806
        '\u{1136c}', WC_Extend), ('\u{11370}', '\u{11374}', WC_Extend), ('\u{11380}', '\u{11389}',
1807
        WC_ALetter), ('\u{1138b}', '\u{1138b}', WC_ALetter), ('\u{1138e}', '\u{1138e}', WC_ALetter),
1808
        ('\u{11390}', '\u{113b5}', WC_ALetter), ('\u{113b7}', '\u{113b7}', WC_ALetter),
1809
        ('\u{113b8}', '\u{113c0}', WC_Extend), ('\u{113c2}', '\u{113c2}', WC_Extend), ('\u{113c5}',
1810
        '\u{113c5}', WC_Extend), ('\u{113c7}', '\u{113ca}', WC_Extend), ('\u{113cc}', '\u{113d0}',
1811
        WC_Extend), ('\u{113d1}', '\u{113d1}', WC_ALetter), ('\u{113d2}', '\u{113d2}', WC_Extend),
1812
        ('\u{113d3}', '\u{113d3}', WC_ALetter), ('\u{113e1}', '\u{113e2}', WC_Extend), ('\u{11400}',
1813
        '\u{11434}', WC_ALetter), ('\u{11435}', '\u{11446}', WC_Extend), ('\u{11447}', '\u{1144a}',
1814
        WC_ALetter), ('\u{11450}', '\u{11459}', WC_Numeric), ('\u{1145e}', '\u{1145e}', WC_Extend),
1815
        ('\u{1145f}', '\u{11461}', WC_ALetter), ('\u{11480}', '\u{114af}', WC_ALetter),
1816
        ('\u{114b0}', '\u{114c3}', WC_Extend), ('\u{114c4}', '\u{114c5}', WC_ALetter), ('\u{114c7}',
1817
        '\u{114c7}', WC_ALetter), ('\u{114d0}', '\u{114d9}', WC_Numeric), ('\u{11580}', '\u{115ae}',
1818
        WC_ALetter), ('\u{115af}', '\u{115b5}', WC_Extend), ('\u{115b8}', '\u{115c0}', WC_Extend),
1819
        ('\u{115d8}', '\u{115db}', WC_ALetter), ('\u{115dc}', '\u{115dd}', WC_Extend), ('\u{11600}',
1820
        '\u{1162f}', WC_ALetter), ('\u{11630}', '\u{11640}', WC_Extend), ('\u{11644}', '\u{11644}',
1821
        WC_ALetter), ('\u{11650}', '\u{11659}', WC_Numeric), ('\u{11680}', '\u{116aa}', WC_ALetter),
1822
        ('\u{116ab}', '\u{116b7}', WC_Extend), ('\u{116b8}', '\u{116b8}', WC_ALetter), ('\u{116c0}',
1823
        '\u{116c9}', WC_Numeric), ('\u{116d0}', '\u{116e3}', WC_Numeric), ('\u{1171d}', '\u{1172b}',
1824
        WC_Extend), ('\u{11730}', '\u{11739}', WC_Numeric), ('\u{11800}', '\u{1182b}', WC_ALetter),
1825
        ('\u{1182c}', '\u{1183a}', WC_Extend), ('\u{118a0}', '\u{118df}', WC_ALetter), ('\u{118e0}',
1826
        '\u{118e9}', WC_Numeric), ('\u{118ff}', '\u{11906}', WC_ALetter), ('\u{11909}', '\u{11909}',
1827
        WC_ALetter), ('\u{1190c}', '\u{11913}', WC_ALetter), ('\u{11915}', '\u{11916}', WC_ALetter),
1828
        ('\u{11918}', '\u{1192f}', WC_ALetter), ('\u{11930}', '\u{11935}', WC_Extend), ('\u{11937}',
1829
        '\u{11938}', WC_Extend), ('\u{1193b}', '\u{1193e}', WC_Extend), ('\u{1193f}', '\u{1193f}',
1830
        WC_ALetter), ('\u{11940}', '\u{11940}', WC_Extend), ('\u{11941}', '\u{11941}', WC_ALetter),
1831
        ('\u{11942}', '\u{11943}', WC_Extend), ('\u{11950}', '\u{11959}', WC_Numeric), ('\u{119a0}',
1832
        '\u{119a7}', WC_ALetter), ('\u{119aa}', '\u{119d0}', WC_ALetter), ('\u{119d1}', '\u{119d7}',
1833
        WC_Extend), ('\u{119da}', '\u{119e0}', WC_Extend), ('\u{119e1}', '\u{119e1}', WC_ALetter),
1834
        ('\u{119e3}', '\u{119e3}', WC_ALetter), ('\u{119e4}', '\u{119e4}', WC_Extend), ('\u{11a00}',
1835
        '\u{11a00}', WC_ALetter), ('\u{11a01}', '\u{11a0a}', WC_Extend), ('\u{11a0b}', '\u{11a32}',
1836
        WC_ALetter), ('\u{11a33}', '\u{11a39}', WC_Extend), ('\u{11a3a}', '\u{11a3a}', WC_ALetter),
1837
        ('\u{11a3b}', '\u{11a3e}', WC_Extend), ('\u{11a47}', '\u{11a47}', WC_Extend), ('\u{11a50}',
1838
        '\u{11a50}', WC_ALetter), ('\u{11a51}', '\u{11a5b}', WC_Extend), ('\u{11a5c}', '\u{11a89}',
1839
        WC_ALetter), ('\u{11a8a}', '\u{11a99}', WC_Extend), ('\u{11a9d}', '\u{11a9d}', WC_ALetter),
1840
        ('\u{11ab0}', '\u{11af8}', WC_ALetter), ('\u{11b60}', '\u{11b67}', WC_Extend), ('\u{11bc0}',
1841
        '\u{11be0}', WC_ALetter), ('\u{11bf0}', '\u{11bf9}', WC_Numeric), ('\u{11c00}', '\u{11c08}',
1842
        WC_ALetter), ('\u{11c0a}', '\u{11c2e}', WC_ALetter), ('\u{11c2f}', '\u{11c36}', WC_Extend),
1843
        ('\u{11c38}', '\u{11c3f}', WC_Extend), ('\u{11c40}', '\u{11c40}', WC_ALetter), ('\u{11c50}',
1844
        '\u{11c59}', WC_Numeric), ('\u{11c72}', '\u{11c8f}', WC_ALetter), ('\u{11c92}', '\u{11ca7}',
1845
        WC_Extend), ('\u{11ca9}', '\u{11cb6}', WC_Extend), ('\u{11d00}', '\u{11d06}', WC_ALetter),
1846
        ('\u{11d08}', '\u{11d09}', WC_ALetter), ('\u{11d0b}', '\u{11d30}', WC_ALetter),
1847
        ('\u{11d31}', '\u{11d36}', WC_Extend), ('\u{11d3a}', '\u{11d3a}', WC_Extend), ('\u{11d3c}',
1848
        '\u{11d3d}', WC_Extend), ('\u{11d3f}', '\u{11d45}', WC_Extend), ('\u{11d46}', '\u{11d46}',
1849
        WC_ALetter), ('\u{11d47}', '\u{11d47}', WC_Extend), ('\u{11d50}', '\u{11d59}', WC_Numeric),
1850
        ('\u{11d60}', '\u{11d65}', WC_ALetter), ('\u{11d67}', '\u{11d68}', WC_ALetter),
1851
        ('\u{11d6a}', '\u{11d89}', WC_ALetter), ('\u{11d8a}', '\u{11d8e}', WC_Extend), ('\u{11d90}',
1852
        '\u{11d91}', WC_Extend), ('\u{11d93}', '\u{11d97}', WC_Extend), ('\u{11d98}', '\u{11d98}',
1853
        WC_ALetter), ('\u{11da0}', '\u{11da9}', WC_Numeric), ('\u{11db0}', '\u{11ddb}', WC_ALetter),
1854
        ('\u{11de0}', '\u{11de9}', WC_Numeric), ('\u{11ee0}', '\u{11ef2}', WC_ALetter),
1855
        ('\u{11ef3}', '\u{11ef6}', WC_Extend), ('\u{11f00}', '\u{11f01}', WC_Extend), ('\u{11f02}',
1856
        '\u{11f02}', WC_ALetter), ('\u{11f03}', '\u{11f03}', WC_Extend), ('\u{11f04}', '\u{11f10}',
1857
        WC_ALetter), ('\u{11f12}', '\u{11f33}', WC_ALetter), ('\u{11f34}', '\u{11f3a}', WC_Extend),
1858
        ('\u{11f3e}', '\u{11f42}', WC_Extend), ('\u{11f50}', '\u{11f59}', WC_Numeric), ('\u{11f5a}',
1859
        '\u{11f5a}', WC_Extend), ('\u{11fb0}', '\u{11fb0}', WC_ALetter), ('\u{12000}', '\u{12399}',
1860
        WC_ALetter), ('\u{12400}', '\u{1246e}', WC_ALetter), ('\u{12480}', '\u{12543}', WC_ALetter),
1861
        ('\u{12f90}', '\u{12ff0}', WC_ALetter), ('\u{13000}', '\u{1342f}', WC_ALetter),
1862
        ('\u{13430}', '\u{1343f}', WC_Format), ('\u{13440}', '\u{13440}', WC_Extend), ('\u{13441}',
1863
        '\u{13446}', WC_ALetter), ('\u{13447}', '\u{13455}', WC_Extend), ('\u{13460}', '\u{143fa}',
1864
        WC_ALetter), ('\u{14400}', '\u{14646}', WC_ALetter), ('\u{16100}', '\u{1611d}', WC_ALetter),
1865
        ('\u{1611e}', '\u{1612f}', WC_Extend), ('\u{16130}', '\u{16139}', WC_Numeric), ('\u{16800}',
1866
        '\u{16a38}', WC_ALetter), ('\u{16a40}', '\u{16a5e}', WC_ALetter), ('\u{16a60}', '\u{16a69}',
1867
        WC_Numeric), ('\u{16a70}', '\u{16abe}', WC_ALetter), ('\u{16ac0}', '\u{16ac9}', WC_Numeric),
1868
        ('\u{16ad0}', '\u{16aed}', WC_ALetter), ('\u{16af0}', '\u{16af4}', WC_Extend), ('\u{16b00}',
1869
        '\u{16b2f}', WC_ALetter), ('\u{16b30}', '\u{16b36}', WC_Extend), ('\u{16b40}', '\u{16b43}',
1870
        WC_ALetter), ('\u{16b50}', '\u{16b59}', WC_Numeric), ('\u{16b63}', '\u{16b77}', WC_ALetter),
1871
        ('\u{16b7d}', '\u{16b8f}', WC_ALetter), ('\u{16d40}', '\u{16d6c}', WC_ALetter),
1872
        ('\u{16d70}', '\u{16d79}', WC_Numeric), ('\u{16e40}', '\u{16e7f}', WC_ALetter),
1873
        ('\u{16ea0}', '\u{16eb8}', WC_ALetter), ('\u{16ebb}', '\u{16ed3}', WC_ALetter),
1874
        ('\u{16f00}', '\u{16f4a}', WC_ALetter), ('\u{16f4f}', '\u{16f4f}', WC_Extend), ('\u{16f50}',
1875
        '\u{16f50}', WC_ALetter), ('\u{16f51}', '\u{16f87}', WC_Extend), ('\u{16f8f}', '\u{16f92}',
1876
        WC_Extend), ('\u{16f93}', '\u{16f9f}', WC_ALetter), ('\u{16fe0}', '\u{16fe1}', WC_ALetter),
1877
        ('\u{16fe3}', '\u{16fe3}', WC_ALetter), ('\u{16fe4}', '\u{16fe4}', WC_Extend), ('\u{16ff0}',
1878
        '\u{16ff1}', WC_Extend), ('\u{1aff0}', '\u{1aff3}', WC_Katakana), ('\u{1aff5}', '\u{1affb}',
1879
        WC_Katakana), ('\u{1affd}', '\u{1affe}', WC_Katakana), ('\u{1b000}', '\u{1b000}',
1880
        WC_Katakana), ('\u{1b120}', '\u{1b122}', WC_Katakana), ('\u{1b155}', '\u{1b155}',
1881
        WC_Katakana), ('\u{1b164}', '\u{1b167}', WC_Katakana), ('\u{1bc00}', '\u{1bc6a}',
1882
        WC_ALetter), ('\u{1bc70}', '\u{1bc7c}', WC_ALetter), ('\u{1bc80}', '\u{1bc88}', WC_ALetter),
1883
        ('\u{1bc90}', '\u{1bc99}', WC_ALetter), ('\u{1bc9d}', '\u{1bc9e}', WC_Extend), ('\u{1bca0}',
1884
        '\u{1bca3}', WC_Format), ('\u{1ccf0}', '\u{1ccf9}', WC_Numeric), ('\u{1cf00}', '\u{1cf2d}',
1885
        WC_Extend), ('\u{1cf30}', '\u{1cf46}', WC_Extend), ('\u{1d165}', '\u{1d169}', WC_Extend),
1886
        ('\u{1d16d}', '\u{1d172}', WC_Extend), ('\u{1d173}', '\u{1d17a}', WC_Format), ('\u{1d17b}',
1887
        '\u{1d182}', WC_Extend), ('\u{1d185}', '\u{1d18b}', WC_Extend), ('\u{1d1aa}', '\u{1d1ad}',
1888
        WC_Extend), ('\u{1d242}', '\u{1d244}', WC_Extend), ('\u{1d400}', '\u{1d454}', WC_ALetter),
1889
        ('\u{1d456}', '\u{1d49c}', WC_ALetter), ('\u{1d49e}', '\u{1d49f}', WC_ALetter),
1890
        ('\u{1d4a2}', '\u{1d4a2}', WC_ALetter), ('\u{1d4a5}', '\u{1d4a6}', WC_ALetter),
1891
        ('\u{1d4a9}', '\u{1d4ac}', WC_ALetter), ('\u{1d4ae}', '\u{1d4b9}', WC_ALetter),
1892
        ('\u{1d4bb}', '\u{1d4bb}', WC_ALetter), ('\u{1d4bd}', '\u{1d4c3}', WC_ALetter),
1893
        ('\u{1d4c5}', '\u{1d505}', WC_ALetter), ('\u{1d507}', '\u{1d50a}', WC_ALetter),
1894
        ('\u{1d50d}', '\u{1d514}', WC_ALetter), ('\u{1d516}', '\u{1d51c}', WC_ALetter),
1895
        ('\u{1d51e}', '\u{1d539}', WC_ALetter), ('\u{1d53b}', '\u{1d53e}', WC_ALetter),
1896
        ('\u{1d540}', '\u{1d544}', WC_ALetter), ('\u{1d546}', '\u{1d546}', WC_ALetter),
1897
        ('\u{1d54a}', '\u{1d550}', WC_ALetter), ('\u{1d552}', '\u{1d6a5}', WC_ALetter),
1898
        ('\u{1d6a8}', '\u{1d6c0}', WC_ALetter), ('\u{1d6c2}', '\u{1d6da}', WC_ALetter),
1899
        ('\u{1d6dc}', '\u{1d6fa}', WC_ALetter), ('\u{1d6fc}', '\u{1d714}', WC_ALetter),
1900
        ('\u{1d716}', '\u{1d734}', WC_ALetter), ('\u{1d736}', '\u{1d74e}', WC_ALetter),
1901
        ('\u{1d750}', '\u{1d76e}', WC_ALetter), ('\u{1d770}', '\u{1d788}', WC_ALetter),
1902
        ('\u{1d78a}', '\u{1d7a8}', WC_ALetter), ('\u{1d7aa}', '\u{1d7c2}', WC_ALetter),
1903
        ('\u{1d7c4}', '\u{1d7cb}', WC_ALetter), ('\u{1d7ce}', '\u{1d7ff}', WC_Numeric),
1904
        ('\u{1da00}', '\u{1da36}', WC_Extend), ('\u{1da3b}', '\u{1da6c}', WC_Extend), ('\u{1da75}',
1905
        '\u{1da75}', WC_Extend), ('\u{1da84}', '\u{1da84}', WC_Extend), ('\u{1da9b}', '\u{1da9f}',
1906
        WC_Extend), ('\u{1daa1}', '\u{1daaf}', WC_Extend), ('\u{1df00}', '\u{1df1e}', WC_ALetter),
1907
        ('\u{1df25}', '\u{1df2a}', WC_ALetter), ('\u{1e000}', '\u{1e006}', WC_Extend), ('\u{1e008}',
1908
        '\u{1e018}', WC_Extend), ('\u{1e01b}', '\u{1e021}', WC_Extend), ('\u{1e023}', '\u{1e024}',
1909
        WC_Extend), ('\u{1e026}', '\u{1e02a}', WC_Extend), ('\u{1e030}', '\u{1e06d}', WC_ALetter),
1910
        ('\u{1e08f}', '\u{1e08f}', WC_Extend), ('\u{1e100}', '\u{1e12c}', WC_ALetter), ('\u{1e130}',
1911
        '\u{1e136}', WC_Extend), ('\u{1e137}', '\u{1e13d}', WC_ALetter), ('\u{1e140}', '\u{1e149}',
1912
        WC_Numeric), ('\u{1e14e}', '\u{1e14e}', WC_ALetter), ('\u{1e290}', '\u{1e2ad}', WC_ALetter),
1913
        ('\u{1e2ae}', '\u{1e2ae}', WC_Extend), ('\u{1e2c0}', '\u{1e2eb}', WC_ALetter), ('\u{1e2ec}',
1914
        '\u{1e2ef}', WC_Extend), ('\u{1e2f0}', '\u{1e2f9}', WC_Numeric), ('\u{1e4d0}', '\u{1e4eb}',
1915
        WC_ALetter), ('\u{1e4ec}', '\u{1e4ef}', WC_Extend), ('\u{1e4f0}', '\u{1e4f9}', WC_Numeric),
1916
        ('\u{1e5d0}', '\u{1e5ed}', WC_ALetter), ('\u{1e5ee}', '\u{1e5ef}', WC_Extend), ('\u{1e5f0}',
1917
        '\u{1e5f0}', WC_ALetter), ('\u{1e5f1}', '\u{1e5fa}', WC_Numeric), ('\u{1e6c0}', '\u{1e6de}',
1918
        WC_ALetter), ('\u{1e6e0}', '\u{1e6e2}', WC_ALetter), ('\u{1e6e3}', '\u{1e6e3}', WC_Extend),
1919
        ('\u{1e6e4}', '\u{1e6e5}', WC_ALetter), ('\u{1e6e6}', '\u{1e6e6}', WC_Extend), ('\u{1e6e7}',
1920
        '\u{1e6ed}', WC_ALetter), ('\u{1e6ee}', '\u{1e6ef}', WC_Extend), ('\u{1e6f0}', '\u{1e6f4}',
1921
        WC_ALetter), ('\u{1e6f5}', '\u{1e6f5}', WC_Extend), ('\u{1e6fe}', '\u{1e6ff}', WC_ALetter),
1922
        ('\u{1e7e0}', '\u{1e7e6}', WC_ALetter), ('\u{1e7e8}', '\u{1e7eb}', WC_ALetter),
1923
        ('\u{1e7ed}', '\u{1e7ee}', WC_ALetter), ('\u{1e7f0}', '\u{1e7fe}', WC_ALetter),
1924
        ('\u{1e800}', '\u{1e8c4}', WC_ALetter), ('\u{1e8d0}', '\u{1e8d6}', WC_Extend), ('\u{1e900}',
1925
        '\u{1e943}', WC_ALetter), ('\u{1e944}', '\u{1e94a}', WC_Extend), ('\u{1e94b}', '\u{1e94b}',
1926
        WC_ALetter), ('\u{1e950}', '\u{1e959}', WC_Numeric), ('\u{1ee00}', '\u{1ee03}', WC_ALetter),
1927
        ('\u{1ee05}', '\u{1ee1f}', WC_ALetter), ('\u{1ee21}', '\u{1ee22}', WC_ALetter),
1928
        ('\u{1ee24}', '\u{1ee24}', WC_ALetter), ('\u{1ee27}', '\u{1ee27}', WC_ALetter),
1929
        ('\u{1ee29}', '\u{1ee32}', WC_ALetter), ('\u{1ee34}', '\u{1ee37}', WC_ALetter),
1930
        ('\u{1ee39}', '\u{1ee39}', WC_ALetter), ('\u{1ee3b}', '\u{1ee3b}', WC_ALetter),
1931
        ('\u{1ee42}', '\u{1ee42}', WC_ALetter), ('\u{1ee47}', '\u{1ee47}', WC_ALetter),
1932
        ('\u{1ee49}', '\u{1ee49}', WC_ALetter), ('\u{1ee4b}', '\u{1ee4b}', WC_ALetter),
1933
        ('\u{1ee4d}', '\u{1ee4f}', WC_ALetter), ('\u{1ee51}', '\u{1ee52}', WC_ALetter),
1934
        ('\u{1ee54}', '\u{1ee54}', WC_ALetter), ('\u{1ee57}', '\u{1ee57}', WC_ALetter),
1935
        ('\u{1ee59}', '\u{1ee59}', WC_ALetter), ('\u{1ee5b}', '\u{1ee5b}', WC_ALetter),
1936
        ('\u{1ee5d}', '\u{1ee5d}', WC_ALetter), ('\u{1ee5f}', '\u{1ee5f}', WC_ALetter),
1937
        ('\u{1ee61}', '\u{1ee62}', WC_ALetter), ('\u{1ee64}', '\u{1ee64}', WC_ALetter),
1938
        ('\u{1ee67}', '\u{1ee6a}', WC_ALetter), ('\u{1ee6c}', '\u{1ee72}', WC_ALetter),
1939
        ('\u{1ee74}', '\u{1ee77}', WC_ALetter), ('\u{1ee79}', '\u{1ee7c}', WC_ALetter),
1940
        ('\u{1ee7e}', '\u{1ee7e}', WC_ALetter), ('\u{1ee80}', '\u{1ee89}', WC_ALetter),
1941
        ('\u{1ee8b}', '\u{1ee9b}', WC_ALetter), ('\u{1eea1}', '\u{1eea3}', WC_ALetter),
1942
        ('\u{1eea5}', '\u{1eea9}', WC_ALetter), ('\u{1eeab}', '\u{1eebb}', WC_ALetter),
1943
        ('\u{1f130}', '\u{1f149}', WC_ALetter), ('\u{1f150}', '\u{1f169}', WC_ALetter),
1944
        ('\u{1f170}', '\u{1f189}', WC_ALetter), ('\u{1f1e6}', '\u{1f1ff}', WC_Regional_Indicator),
1945
        ('\u{1f3fb}', '\u{1f3ff}', WC_Extend), ('\u{1fbf0}', '\u{1fbf9}', WC_Numeric), ('\u{e0001}',
1946
        '\u{e0001}', WC_Format), ('\u{e0020}', '\u{e007f}', WC_Extend), ('\u{e0100}', '\u{e01ef}',
1947
        WC_Extend)
1948
    ];
1949
1950
}
1951
pub mod emoji {
1952
    use core::result::Result::{Ok, Err};
1953
1954
    pub use self::EmojiCat::*;
1955
1956
    #[allow(non_camel_case_types)]
1957
    #[derive(Clone, Copy, PartialEq, Eq, Debug)]
1958
    pub enum EmojiCat {
1959
        EC_Any,
1960
        EC_Extended_Pictographic,
1961
    }
1962
1963
63.1k
    fn bsearch_range_value_table(c: char, r: &[(char, char, EmojiCat)], default_lower: u32, default_upper: u32) -> (u32, u32, EmojiCat) {
1964
        use core::cmp::Ordering::{Equal, Less, Greater};
1965
147k
        match r.binary_search_by(|&(lo, hi, _)| {
1966
147k
            if lo <= c && c <= hi { Equal }
1967
67.2k
            else if hi < c { Less }
1968
65.5k
            else { Greater }
1969
147k
        }) {
1970
41.1k
            Ok(idx) => {
1971
41.1k
                let (lower, upper, cat) = r[idx];
1972
41.1k
                (lower as u32, upper as u32, cat)
1973
            }
1974
22.0k
            Err(idx) => {
1975
                (
1976
22.0k
                    if idx > 0 { r[idx-1].1 as u32 + 1 } else { default_lower },
1977
22.0k
                    r.get(idx).map(|c|c.0 as u32 - 1).unwrap_or(default_upper),
1978
22.0k
                    EC_Any,
1979
                )
1980
            }
1981
        }
1982
63.1k
    }
1983
1984
63.1k
    pub fn emoji_category(c: char) -> (u32, u32, EmojiCat) {
1985
        // Perform a quick O(1) lookup in a precomputed table to determine
1986
        // the slice of the range table to search in.
1987
63.1k
        let lookup_interval = 0x80;
1988
63.1k
        let idx = (c as u32 / lookup_interval) as usize;
1989
63.1k
        let range = emoji_cat_lookup.get(idx..(idx + 2)).map_or(
1990
          // If the `idx` is outside of the precomputed table - use the slice
1991
          // starting from the last covered index in the precomputed table and
1992
          // ending with the length of the range table.
1993
63.1k
          155..156,
1994
62.9k
          |r| (r[0] as usize)..((r[1] + 1) as usize)
1995
        );
1996
1997
        // Compute pessimistic default lower and upper bounds on the category.
1998
        // If character doesn't map to any range and there is no adjacent range
1999
        // in the table slice - these bounds has to apply.
2000
63.1k
        let lower = idx as u32 * lookup_interval;
2001
63.1k
        let upper = lower + lookup_interval - 1;
2002
63.1k
        bsearch_range_value_table(c, &emoji_cat_table[range], lower, upper)
2003
63.1k
    }
2004
2005
    const emoji_cat_lookup: &[u8] = &[
2006
        0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2007
        2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2008
        2, 2, 2, 4, 4, 6, 8, 8, 8, 10, 13, 13, 14, 14, 18, 39, 56, 74, 78, 78, 78, 79, 79, 79, 79,
2009
        83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 85, 85, 85, 85, 85, 87, 87, 87, 87, 87, 87, 87, 87,
2010
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2011
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2012
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2013
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2014
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2015
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2016
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2017
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2018
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2019
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2020
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2021
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2022
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2023
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2024
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2025
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2026
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2027
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2028
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2029
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2030
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2031
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2032
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2033
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2034
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2035
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2036
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2037
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2038
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2039
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2040
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2041
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2042
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2043
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2044
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2045
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2046
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2047
        87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
2048
        87, 87, 87, 87, 87, 87, 87, 87, 87, 89, 94, 96, 99, 105, 105, 106, 112, 112, 113, 118, 134,
2049
        135, 141, 141, 142, 145, 150, 152, 153, 154, 155, 155, 155, 155, 155, 155, 155, 155, 155,
2050
        155
2051
    ];
2052
2053
    const emoji_cat_table: &[(char, char, EmojiCat)] = &[
2054
        ('\u{a9}', '\u{a9}', EC_Extended_Pictographic), ('\u{ae}', '\u{ae}',
2055
        EC_Extended_Pictographic), ('\u{203c}', '\u{203c}', EC_Extended_Pictographic), ('\u{2049}',
2056
        '\u{2049}', EC_Extended_Pictographic), ('\u{2122}', '\u{2122}', EC_Extended_Pictographic),
2057
        ('\u{2139}', '\u{2139}', EC_Extended_Pictographic), ('\u{2194}', '\u{2199}',
2058
        EC_Extended_Pictographic), ('\u{21a9}', '\u{21aa}', EC_Extended_Pictographic), ('\u{231a}',
2059
        '\u{231b}', EC_Extended_Pictographic), ('\u{2328}', '\u{2328}', EC_Extended_Pictographic),
2060
        ('\u{23cf}', '\u{23cf}', EC_Extended_Pictographic), ('\u{23e9}', '\u{23f3}',
2061
        EC_Extended_Pictographic), ('\u{23f8}', '\u{23fa}', EC_Extended_Pictographic), ('\u{24c2}',
2062
        '\u{24c2}', EC_Extended_Pictographic), ('\u{25aa}', '\u{25ab}', EC_Extended_Pictographic),
2063
        ('\u{25b6}', '\u{25b6}', EC_Extended_Pictographic), ('\u{25c0}', '\u{25c0}',
2064
        EC_Extended_Pictographic), ('\u{25fb}', '\u{25fe}', EC_Extended_Pictographic), ('\u{2600}',
2065
        '\u{2604}', EC_Extended_Pictographic), ('\u{260e}', '\u{260e}', EC_Extended_Pictographic),
2066
        ('\u{2611}', '\u{2611}', EC_Extended_Pictographic), ('\u{2614}', '\u{2615}',
2067
        EC_Extended_Pictographic), ('\u{2618}', '\u{2618}', EC_Extended_Pictographic), ('\u{261d}',
2068
        '\u{261d}', EC_Extended_Pictographic), ('\u{2620}', '\u{2620}', EC_Extended_Pictographic),
2069
        ('\u{2622}', '\u{2623}', EC_Extended_Pictographic), ('\u{2626}', '\u{2626}',
2070
        EC_Extended_Pictographic), ('\u{262a}', '\u{262a}', EC_Extended_Pictographic), ('\u{262e}',
2071
        '\u{262f}', EC_Extended_Pictographic), ('\u{2638}', '\u{263a}', EC_Extended_Pictographic),
2072
        ('\u{2640}', '\u{2640}', EC_Extended_Pictographic), ('\u{2642}', '\u{2642}',
2073
        EC_Extended_Pictographic), ('\u{2648}', '\u{2653}', EC_Extended_Pictographic), ('\u{265f}',
2074
        '\u{2660}', EC_Extended_Pictographic), ('\u{2663}', '\u{2663}', EC_Extended_Pictographic),
2075
        ('\u{2665}', '\u{2666}', EC_Extended_Pictographic), ('\u{2668}', '\u{2668}',
2076
        EC_Extended_Pictographic), ('\u{267b}', '\u{267b}', EC_Extended_Pictographic), ('\u{267e}',
2077
        '\u{267f}', EC_Extended_Pictographic), ('\u{2692}', '\u{2697}', EC_Extended_Pictographic),
2078
        ('\u{2699}', '\u{2699}', EC_Extended_Pictographic), ('\u{269b}', '\u{269c}',
2079
        EC_Extended_Pictographic), ('\u{26a0}', '\u{26a1}', EC_Extended_Pictographic), ('\u{26a7}',
2080
        '\u{26a7}', EC_Extended_Pictographic), ('\u{26aa}', '\u{26ab}', EC_Extended_Pictographic),
2081
        ('\u{26b0}', '\u{26b1}', EC_Extended_Pictographic), ('\u{26bd}', '\u{26be}',
2082
        EC_Extended_Pictographic), ('\u{26c4}', '\u{26c5}', EC_Extended_Pictographic), ('\u{26c8}',
2083
        '\u{26c8}', EC_Extended_Pictographic), ('\u{26ce}', '\u{26cf}', EC_Extended_Pictographic),
2084
        ('\u{26d1}', '\u{26d1}', EC_Extended_Pictographic), ('\u{26d3}', '\u{26d4}',
2085
        EC_Extended_Pictographic), ('\u{26e9}', '\u{26ea}', EC_Extended_Pictographic), ('\u{26f0}',
2086
        '\u{26f5}', EC_Extended_Pictographic), ('\u{26f7}', '\u{26fa}', EC_Extended_Pictographic),
2087
        ('\u{26fd}', '\u{26fd}', EC_Extended_Pictographic), ('\u{2702}', '\u{2702}',
2088
        EC_Extended_Pictographic), ('\u{2705}', '\u{2705}', EC_Extended_Pictographic), ('\u{2708}',
2089
        '\u{270d}', EC_Extended_Pictographic), ('\u{270f}', '\u{270f}', EC_Extended_Pictographic),
2090
        ('\u{2712}', '\u{2712}', EC_Extended_Pictographic), ('\u{2714}', '\u{2714}',
2091
        EC_Extended_Pictographic), ('\u{2716}', '\u{2716}', EC_Extended_Pictographic), ('\u{271d}',
2092
        '\u{271d}', EC_Extended_Pictographic), ('\u{2721}', '\u{2721}', EC_Extended_Pictographic),
2093
        ('\u{2728}', '\u{2728}', EC_Extended_Pictographic), ('\u{2733}', '\u{2734}',
2094
        EC_Extended_Pictographic), ('\u{2744}', '\u{2744}', EC_Extended_Pictographic), ('\u{2747}',
2095
        '\u{2747}', EC_Extended_Pictographic), ('\u{274c}', '\u{274c}', EC_Extended_Pictographic),
2096
        ('\u{274e}', '\u{274e}', EC_Extended_Pictographic), ('\u{2753}', '\u{2755}',
2097
        EC_Extended_Pictographic), ('\u{2757}', '\u{2757}', EC_Extended_Pictographic), ('\u{2763}',
2098
        '\u{2764}', EC_Extended_Pictographic), ('\u{2795}', '\u{2797}', EC_Extended_Pictographic),
2099
        ('\u{27a1}', '\u{27a1}', EC_Extended_Pictographic), ('\u{27b0}', '\u{27b0}',
2100
        EC_Extended_Pictographic), ('\u{27bf}', '\u{27bf}', EC_Extended_Pictographic), ('\u{2934}',
2101
        '\u{2935}', EC_Extended_Pictographic), ('\u{2b05}', '\u{2b07}', EC_Extended_Pictographic),
2102
        ('\u{2b1b}', '\u{2b1c}', EC_Extended_Pictographic), ('\u{2b50}', '\u{2b50}',
2103
        EC_Extended_Pictographic), ('\u{2b55}', '\u{2b55}', EC_Extended_Pictographic), ('\u{3030}',
2104
        '\u{3030}', EC_Extended_Pictographic), ('\u{303d}', '\u{303d}', EC_Extended_Pictographic),
2105
        ('\u{3297}', '\u{3297}', EC_Extended_Pictographic), ('\u{3299}', '\u{3299}',
2106
        EC_Extended_Pictographic), ('\u{1f004}', '\u{1f004}', EC_Extended_Pictographic),
2107
        ('\u{1f02c}', '\u{1f02f}', EC_Extended_Pictographic), ('\u{1f094}', '\u{1f09f}',
2108
        EC_Extended_Pictographic), ('\u{1f0af}', '\u{1f0b0}', EC_Extended_Pictographic),
2109
        ('\u{1f0c0}', '\u{1f0c0}', EC_Extended_Pictographic), ('\u{1f0cf}', '\u{1f0d0}',
2110
        EC_Extended_Pictographic), ('\u{1f0f6}', '\u{1f0ff}', EC_Extended_Pictographic),
2111
        ('\u{1f170}', '\u{1f171}', EC_Extended_Pictographic), ('\u{1f17e}', '\u{1f17f}',
2112
        EC_Extended_Pictographic), ('\u{1f18e}', '\u{1f18e}', EC_Extended_Pictographic),
2113
        ('\u{1f191}', '\u{1f19a}', EC_Extended_Pictographic), ('\u{1f1ae}', '\u{1f1e5}',
2114
        EC_Extended_Pictographic), ('\u{1f201}', '\u{1f20f}', EC_Extended_Pictographic),
2115
        ('\u{1f21a}', '\u{1f21a}', EC_Extended_Pictographic), ('\u{1f22f}', '\u{1f22f}',
2116
        EC_Extended_Pictographic), ('\u{1f232}', '\u{1f23a}', EC_Extended_Pictographic),
2117
        ('\u{1f23c}', '\u{1f23f}', EC_Extended_Pictographic), ('\u{1f249}', '\u{1f25f}',
2118
        EC_Extended_Pictographic), ('\u{1f266}', '\u{1f321}', EC_Extended_Pictographic),
2119
        ('\u{1f324}', '\u{1f393}', EC_Extended_Pictographic), ('\u{1f396}', '\u{1f397}',
2120
        EC_Extended_Pictographic), ('\u{1f399}', '\u{1f39b}', EC_Extended_Pictographic),
2121
        ('\u{1f39e}', '\u{1f3f0}', EC_Extended_Pictographic), ('\u{1f3f3}', '\u{1f3f5}',
2122
        EC_Extended_Pictographic), ('\u{1f3f7}', '\u{1f3fa}', EC_Extended_Pictographic),
2123
        ('\u{1f400}', '\u{1f4fd}', EC_Extended_Pictographic), ('\u{1f4ff}', '\u{1f53d}',
2124
        EC_Extended_Pictographic), ('\u{1f549}', '\u{1f54e}', EC_Extended_Pictographic),
2125
        ('\u{1f550}', '\u{1f567}', EC_Extended_Pictographic), ('\u{1f56f}', '\u{1f570}',
2126
        EC_Extended_Pictographic), ('\u{1f573}', '\u{1f57a}', EC_Extended_Pictographic),
2127
        ('\u{1f587}', '\u{1f587}', EC_Extended_Pictographic), ('\u{1f58a}', '\u{1f58d}',
2128
        EC_Extended_Pictographic), ('\u{1f590}', '\u{1f590}', EC_Extended_Pictographic),
2129
        ('\u{1f595}', '\u{1f596}', EC_Extended_Pictographic), ('\u{1f5a4}', '\u{1f5a5}',
2130
        EC_Extended_Pictographic), ('\u{1f5a8}', '\u{1f5a8}', EC_Extended_Pictographic),
2131
        ('\u{1f5b1}', '\u{1f5b2}', EC_Extended_Pictographic), ('\u{1f5bc}', '\u{1f5bc}',
2132
        EC_Extended_Pictographic), ('\u{1f5c2}', '\u{1f5c4}', EC_Extended_Pictographic),
2133
        ('\u{1f5d1}', '\u{1f5d3}', EC_Extended_Pictographic), ('\u{1f5dc}', '\u{1f5de}',
2134
        EC_Extended_Pictographic), ('\u{1f5e1}', '\u{1f5e1}', EC_Extended_Pictographic),
2135
        ('\u{1f5e3}', '\u{1f5e3}', EC_Extended_Pictographic), ('\u{1f5e8}', '\u{1f5e8}',
2136
        EC_Extended_Pictographic), ('\u{1f5ef}', '\u{1f5ef}', EC_Extended_Pictographic),
2137
        ('\u{1f5f3}', '\u{1f5f3}', EC_Extended_Pictographic), ('\u{1f5fa}', '\u{1f64f}',
2138
        EC_Extended_Pictographic), ('\u{1f680}', '\u{1f6c5}', EC_Extended_Pictographic),
2139
        ('\u{1f6cb}', '\u{1f6d2}', EC_Extended_Pictographic), ('\u{1f6d5}', '\u{1f6e5}',
2140
        EC_Extended_Pictographic), ('\u{1f6e9}', '\u{1f6e9}', EC_Extended_Pictographic),
2141
        ('\u{1f6eb}', '\u{1f6f0}', EC_Extended_Pictographic), ('\u{1f6f3}', '\u{1f6ff}',
2142
        EC_Extended_Pictographic), ('\u{1f7da}', '\u{1f7ff}', EC_Extended_Pictographic),
2143
        ('\u{1f80c}', '\u{1f80f}', EC_Extended_Pictographic), ('\u{1f848}', '\u{1f84f}',
2144
        EC_Extended_Pictographic), ('\u{1f85a}', '\u{1f85f}', EC_Extended_Pictographic),
2145
        ('\u{1f888}', '\u{1f88f}', EC_Extended_Pictographic), ('\u{1f8ae}', '\u{1f8af}',
2146
        EC_Extended_Pictographic), ('\u{1f8bc}', '\u{1f8bf}', EC_Extended_Pictographic),
2147
        ('\u{1f8c2}', '\u{1f8cf}', EC_Extended_Pictographic), ('\u{1f8d9}', '\u{1f8ff}',
2148
        EC_Extended_Pictographic), ('\u{1f90c}', '\u{1f93a}', EC_Extended_Pictographic),
2149
        ('\u{1f93c}', '\u{1f945}', EC_Extended_Pictographic), ('\u{1f947}', '\u{1f9ff}',
2150
        EC_Extended_Pictographic), ('\u{1fa58}', '\u{1fa5f}', EC_Extended_Pictographic),
2151
        ('\u{1fa6e}', '\u{1faff}', EC_Extended_Pictographic), ('\u{1fc00}', '\u{1fffd}',
2152
        EC_Extended_Pictographic)
2153
    ];
2154
2155
}
2156
pub mod sentence {
2157
    use core::result::Result::{Ok, Err};
2158
2159
    pub use self::SentenceCat::*;
2160
2161
    #[allow(non_camel_case_types)]
2162
    #[derive(Clone, Copy, PartialEq, Eq, Debug)]
2163
    pub enum SentenceCat {
2164
        SC_ATerm,
2165
        SC_Any,
2166
        SC_CR,
2167
        SC_Close,
2168
        SC_Extend,
2169
        SC_Format,
2170
        SC_LF,
2171
        SC_Lower,
2172
        SC_Numeric,
2173
        SC_OLetter,
2174
        SC_SContinue,
2175
        SC_STerm,
2176
        SC_Sep,
2177
        SC_Sp,
2178
        SC_Upper,
2179
    }
2180
2181
    fn bsearch_range_value_table(c: char, r: &[(char, char, SentenceCat)], default_lower: u32, default_upper: u32) -> (u32, u32, SentenceCat) {
2182
        use core::cmp::Ordering::{Equal, Less, Greater};
2183
0
        match r.binary_search_by(|&(lo, hi, _)| {
2184
0
            if lo <= c && c <= hi { Equal }
2185
0
            else if hi < c { Less }
2186
0
            else { Greater }
2187
0
        }) {
2188
            Ok(idx) => {
2189
                let (lower, upper, cat) = r[idx];
2190
                (lower as u32, upper as u32, cat)
2191
            }
2192
            Err(idx) => {
2193
                (
2194
                    if idx > 0 { r[idx-1].1 as u32 + 1 } else { default_lower },
2195
0
                    r.get(idx).map(|c|c.0 as u32 - 1).unwrap_or(default_upper),
2196
                    SC_Any,
2197
                )
2198
            }
2199
        }
2200
    }
2201
2202
    pub fn sentence_category(c: char) -> (u32, u32, SentenceCat) {
2203
        // Perform a quick O(1) lookup in a precomputed table to determine
2204
        // the slice of the range table to search in.
2205
        let lookup_interval = 0x80;
2206
        let idx = (c as u32 / lookup_interval) as usize;
2207
        let range = sentence_cat_lookup.get(idx..(idx + 2)).map_or(
2208
          // If the `idx` is outside of the precomputed table - use the slice
2209
          // starting from the last covered index in the precomputed table and
2210
          // ending with the length of the range table.
2211
          2484..2495,
2212
0
          |r| (r[0] as usize)..((r[1] + 1) as usize)
2213
        );
2214
2215
        // Compute pessimistic default lower and upper bounds on the category.
2216
        // If character doesn't map to any range and there is no adjacent range
2217
        // in the table slice - these bounds has to apply.
2218
        let lower = idx as u32 * lookup_interval;
2219
        let upper = lower + lookup_interval - 1;
2220
        bsearch_range_value_table(c, &sentence_cat_table[range], lower, upper)
2221
    }
2222
2223
    const sentence_cat_lookup: &[u16] = &[
2224
        0, 19, 31, 154, 247, 314, 323, 334, 376, 410, 529, 580, 589, 600, 613, 619, 630, 644, 651,
2225
        662, 684, 703, 721, 739, 756, 772, 791, 807, 819, 826, 841, 851, 857, 872, 883, 883, 883,
2226
        888, 896, 902, 905, 905, 905, 905, 905, 908, 913, 923, 930, 939, 945, 952, 955, 961, 967,
2227
        977, 984, 992, 1006, 1006, 1008, 1136, 1255, 1273, 1294, 1314, 1317, 1342, 1346, 1346, 1346,
2228
        1348, 1348, 1348, 1350, 1350, 1350, 1350, 1350, 1352, 1354, 1354, 1354, 1354, 1357, 1357,
2229
        1357, 1357, 1357, 1375, 1483, 1489, 1499, 1508, 1508, 1508, 1508, 1519, 1524, 1525, 1528,
2230
        1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528,
2231
        1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528,
2232
        1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528,
2233
        1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1529, 1529, 1529, 1529, 1529,
2234
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2235
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2236
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2237
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2238
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2239
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2240
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2241
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2242
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2243
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2244
        1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
2245
        1529, 1529, 1529, 1529, 1532, 1532, 1532, 1587, 1620, 1703, 1785, 1796, 1806, 1813, 1824,
2246
        1835, 1852, 1859, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2247
        1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2248
        1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2249
        1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2250
        1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2251
        1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2252
        1865, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
2253
        1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
2254
        1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
2255
        1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
2256
        1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1869, 1870, 1880, 1881, 1881,
2257
        1881, 1883, 1886, 1904, 1906, 1923, 1931, 1937, 1938, 1939, 1940, 1940, 1943, 1947, 1951,
2258
        1953, 1957, 1960, 1968, 1968, 1968, 1971, 1976, 1983, 1986, 1989, 1991, 2002, 2006, 2009,
2259
        2010, 2011, 2013, 2021, 2022, 2022, 2027, 2032, 2037, 2046, 2055, 2066, 2078, 2086, 2095,
2260
        2113, 2128, 2135, 2140, 2140, 2147, 2152, 2157, 2162, 2162, 2164, 2167, 2182, 2189, 2199,
2261
        2204, 2205, 2207, 2214, 2217, 2229, 2237, 2237, 2240, 2250, 2251, 2251, 2251, 2251, 2251,
2262
        2251, 2251, 2251, 2252, 2253, 2253, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254,
2263
        2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2255, 2255, 2255,
2264
        2255, 2255, 2255, 2255, 2255, 2255, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260,
2265
        2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260, 2260,
2266
        2260, 2260, 2260, 2260, 2260, 2260, 2260, 2261, 2261, 2261, 2261, 2261, 2262, 2262, 2262,
2267
        2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
2268
        2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
2269
        2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262, 2262,
2270
        2262, 2262, 2262, 2262, 2262, 2262, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265,
2271
        2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2265, 2269, 2274, 2281, 2282, 2282, 2282,
2272
        2285, 2285, 2287, 2290, 2293, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301,
2273
        2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301,
2274
        2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301,
2275
        2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301,
2276
        2301, 2301, 2301, 2302, 2303, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304,
2277
        2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304,
2278
        2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304,
2279
        2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304,
2280
        2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2304, 2307, 2307,
2281
        2307, 2312, 2312, 2312, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
2282
        2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2315, 2320, 2320, 2320, 2320, 2320, 2320,
2283
        2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320,
2284
        2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2320, 2321, 2321, 2321, 2321,
2285
        2321, 2323, 2323, 2323, 2323, 2326, 2329, 2330, 2330, 2330, 2330, 2335, 2348, 2360, 2365,
2286
        2370, 2376, 2382, 2390, 2390, 2390, 2390, 2390, 2393, 2397, 2397, 2397, 2397, 2397, 2397,
2287
        2397, 2397, 2397, 2401, 2401, 2407, 2408, 2413, 2413, 2413, 2418, 2418, 2418, 2418, 2421,
2288
        2421, 2425, 2425, 2435, 2435, 2439, 2439, 2441, 2446, 2446, 2446, 2446, 2446, 2446, 2446,
2289
        2446, 2446, 2446, 2474, 2479, 2479, 2479, 2479, 2479, 2481, 2482, 2482, 2482, 2482, 2482,
2290
        2482, 2482, 2482, 2482, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483, 2483,
2291
        2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484
2292
    ];
2293
2294
    const sentence_cat_table: &[(char, char, SentenceCat)] = &[
2295
        ('\u{9}', '\u{9}', SC_Sp), ('\u{a}', '\u{a}', SC_LF), ('\u{b}', '\u{c}', SC_Sp), ('\u{d}',
2296
        '\u{d}', SC_CR), ('\u{20}', '\u{20}', SC_Sp), ('\u{21}', '\u{21}', SC_STerm), ('\u{22}',
2297
        '\u{22}', SC_Close), ('\u{27}', '\u{29}', SC_Close), ('\u{2c}', '\u{2d}', SC_SContinue),
2298
        ('\u{2e}', '\u{2e}', SC_ATerm), ('\u{30}', '\u{39}', SC_Numeric), ('\u{3a}', '\u{3b}',
2299
        SC_SContinue), ('\u{3f}', '\u{3f}', SC_STerm), ('\u{41}', '\u{5a}', SC_Upper), ('\u{5b}',
2300
        '\u{5b}', SC_Close), ('\u{5d}', '\u{5d}', SC_Close), ('\u{61}', '\u{7a}', SC_Lower),
2301
        ('\u{7b}', '\u{7b}', SC_Close), ('\u{7d}', '\u{7d}', SC_Close), ('\u{85}', '\u{85}',
2302
        SC_Sep), ('\u{a0}', '\u{a0}', SC_Sp), ('\u{aa}', '\u{aa}', SC_Lower), ('\u{ab}', '\u{ab}',
2303
        SC_Close), ('\u{ad}', '\u{ad}', SC_Format), ('\u{b5}', '\u{b5}', SC_Lower), ('\u{ba}',
2304
        '\u{ba}', SC_Lower), ('\u{bb}', '\u{bb}', SC_Close), ('\u{c0}', '\u{d6}', SC_Upper),
2305
        ('\u{d8}', '\u{de}', SC_Upper), ('\u{df}', '\u{f6}', SC_Lower), ('\u{f8}', '\u{ff}',
2306
        SC_Lower), ('\u{100}', '\u{100}', SC_Upper), ('\u{101}', '\u{101}', SC_Lower), ('\u{102}',
2307
        '\u{102}', SC_Upper), ('\u{103}', '\u{103}', SC_Lower), ('\u{104}', '\u{104}', SC_Upper),
2308
        ('\u{105}', '\u{105}', SC_Lower), ('\u{106}', '\u{106}', SC_Upper), ('\u{107}', '\u{107}',
2309
        SC_Lower), ('\u{108}', '\u{108}', SC_Upper), ('\u{109}', '\u{109}', SC_Lower), ('\u{10a}',
2310
        '\u{10a}', SC_Upper), ('\u{10b}', '\u{10b}', SC_Lower), ('\u{10c}', '\u{10c}', SC_Upper),
2311
        ('\u{10d}', '\u{10d}', SC_Lower), ('\u{10e}', '\u{10e}', SC_Upper), ('\u{10f}', '\u{10f}',
2312
        SC_Lower), ('\u{110}', '\u{110}', SC_Upper), ('\u{111}', '\u{111}', SC_Lower), ('\u{112}',
2313
        '\u{112}', SC_Upper), ('\u{113}', '\u{113}', SC_Lower), ('\u{114}', '\u{114}', SC_Upper),
2314
        ('\u{115}', '\u{115}', SC_Lower), ('\u{116}', '\u{116}', SC_Upper), ('\u{117}', '\u{117}',
2315
        SC_Lower), ('\u{118}', '\u{118}', SC_Upper), ('\u{119}', '\u{119}', SC_Lower), ('\u{11a}',
2316
        '\u{11a}', SC_Upper), ('\u{11b}', '\u{11b}', SC_Lower), ('\u{11c}', '\u{11c}', SC_Upper),
2317
        ('\u{11d}', '\u{11d}', SC_Lower), ('\u{11e}', '\u{11e}', SC_Upper), ('\u{11f}', '\u{11f}',
2318
        SC_Lower), ('\u{120}', '\u{120}', SC_Upper), ('\u{121}', '\u{121}', SC_Lower), ('\u{122}',
2319
        '\u{122}', SC_Upper), ('\u{123}', '\u{123}', SC_Lower), ('\u{124}', '\u{124}', SC_Upper),
2320
        ('\u{125}', '\u{125}', SC_Lower), ('\u{126}', '\u{126}', SC_Upper), ('\u{127}', '\u{127}',
2321
        SC_Lower), ('\u{128}', '\u{128}', SC_Upper), ('\u{129}', '\u{129}', SC_Lower), ('\u{12a}',
2322
        '\u{12a}', SC_Upper), ('\u{12b}', '\u{12b}', SC_Lower), ('\u{12c}', '\u{12c}', SC_Upper),
2323
        ('\u{12d}', '\u{12d}', SC_Lower), ('\u{12e}', '\u{12e}', SC_Upper), ('\u{12f}', '\u{12f}',
2324
        SC_Lower), ('\u{130}', '\u{130}', SC_Upper), ('\u{131}', '\u{131}', SC_Lower), ('\u{132}',
2325
        '\u{132}', SC_Upper), ('\u{133}', '\u{133}', SC_Lower), ('\u{134}', '\u{134}', SC_Upper),
2326
        ('\u{135}', '\u{135}', SC_Lower), ('\u{136}', '\u{136}', SC_Upper), ('\u{137}', '\u{138}',
2327
        SC_Lower), ('\u{139}', '\u{139}', SC_Upper), ('\u{13a}', '\u{13a}', SC_Lower), ('\u{13b}',
2328
        '\u{13b}', SC_Upper), ('\u{13c}', '\u{13c}', SC_Lower), ('\u{13d}', '\u{13d}', SC_Upper),
2329
        ('\u{13e}', '\u{13e}', SC_Lower), ('\u{13f}', '\u{13f}', SC_Upper), ('\u{140}', '\u{140}',
2330
        SC_Lower), ('\u{141}', '\u{141}', SC_Upper), ('\u{142}', '\u{142}', SC_Lower), ('\u{143}',
2331
        '\u{143}', SC_Upper), ('\u{144}', '\u{144}', SC_Lower), ('\u{145}', '\u{145}', SC_Upper),
2332
        ('\u{146}', '\u{146}', SC_Lower), ('\u{147}', '\u{147}', SC_Upper), ('\u{148}', '\u{149}',
2333
        SC_Lower), ('\u{14a}', '\u{14a}', SC_Upper), ('\u{14b}', '\u{14b}', SC_Lower), ('\u{14c}',
2334
        '\u{14c}', SC_Upper), ('\u{14d}', '\u{14d}', SC_Lower), ('\u{14e}', '\u{14e}', SC_Upper),
2335
        ('\u{14f}', '\u{14f}', SC_Lower), ('\u{150}', '\u{150}', SC_Upper), ('\u{151}', '\u{151}',
2336
        SC_Lower), ('\u{152}', '\u{152}', SC_Upper), ('\u{153}', '\u{153}', SC_Lower), ('\u{154}',
2337
        '\u{154}', SC_Upper), ('\u{155}', '\u{155}', SC_Lower), ('\u{156}', '\u{156}', SC_Upper),
2338
        ('\u{157}', '\u{157}', SC_Lower), ('\u{158}', '\u{158}', SC_Upper), ('\u{159}', '\u{159}',
2339
        SC_Lower), ('\u{15a}', '\u{15a}', SC_Upper), ('\u{15b}', '\u{15b}', SC_Lower), ('\u{15c}',
2340
        '\u{15c}', SC_Upper), ('\u{15d}', '\u{15d}', SC_Lower), ('\u{15e}', '\u{15e}', SC_Upper),
2341
        ('\u{15f}', '\u{15f}', SC_Lower), ('\u{160}', '\u{160}', SC_Upper), ('\u{161}', '\u{161}',
2342
        SC_Lower), ('\u{162}', '\u{162}', SC_Upper), ('\u{163}', '\u{163}', SC_Lower), ('\u{164}',
2343
        '\u{164}', SC_Upper), ('\u{165}', '\u{165}', SC_Lower), ('\u{166}', '\u{166}', SC_Upper),
2344
        ('\u{167}', '\u{167}', SC_Lower), ('\u{168}', '\u{168}', SC_Upper), ('\u{169}', '\u{169}',
2345
        SC_Lower), ('\u{16a}', '\u{16a}', SC_Upper), ('\u{16b}', '\u{16b}', SC_Lower), ('\u{16c}',
2346
        '\u{16c}', SC_Upper), ('\u{16d}', '\u{16d}', SC_Lower), ('\u{16e}', '\u{16e}', SC_Upper),
2347
        ('\u{16f}', '\u{16f}', SC_Lower), ('\u{170}', '\u{170}', SC_Upper), ('\u{171}', '\u{171}',
2348
        SC_Lower), ('\u{172}', '\u{172}', SC_Upper), ('\u{173}', '\u{173}', SC_Lower), ('\u{174}',
2349
        '\u{174}', SC_Upper), ('\u{175}', '\u{175}', SC_Lower), ('\u{176}', '\u{176}', SC_Upper),
2350
        ('\u{177}', '\u{177}', SC_Lower), ('\u{178}', '\u{179}', SC_Upper), ('\u{17a}', '\u{17a}',
2351
        SC_Lower), ('\u{17b}', '\u{17b}', SC_Upper), ('\u{17c}', '\u{17c}', SC_Lower), ('\u{17d}',
2352
        '\u{17d}', SC_Upper), ('\u{17e}', '\u{180}', SC_Lower), ('\u{181}', '\u{182}', SC_Upper),
2353
        ('\u{183}', '\u{183}', SC_Lower), ('\u{184}', '\u{184}', SC_Upper), ('\u{185}', '\u{185}',
2354
        SC_Lower), ('\u{186}', '\u{187}', SC_Upper), ('\u{188}', '\u{188}', SC_Lower), ('\u{189}',
2355
        '\u{18b}', SC_Upper), ('\u{18c}', '\u{18d}', SC_Lower), ('\u{18e}', '\u{191}', SC_Upper),
2356
        ('\u{192}', '\u{192}', SC_Lower), ('\u{193}', '\u{194}', SC_Upper), ('\u{195}', '\u{195}',
2357
        SC_Lower), ('\u{196}', '\u{198}', SC_Upper), ('\u{199}', '\u{19b}', SC_Lower), ('\u{19c}',
2358
        '\u{19d}', SC_Upper), ('\u{19e}', '\u{19e}', SC_Lower), ('\u{19f}', '\u{1a0}', SC_Upper),
2359
        ('\u{1a1}', '\u{1a1}', SC_Lower), ('\u{1a2}', '\u{1a2}', SC_Upper), ('\u{1a3}', '\u{1a3}',
2360
        SC_Lower), ('\u{1a4}', '\u{1a4}', SC_Upper), ('\u{1a5}', '\u{1a5}', SC_Lower), ('\u{1a6}',
2361
        '\u{1a7}', SC_Upper), ('\u{1a8}', '\u{1a8}', SC_Lower), ('\u{1a9}', '\u{1a9}', SC_Upper),
2362
        ('\u{1aa}', '\u{1ab}', SC_Lower), ('\u{1ac}', '\u{1ac}', SC_Upper), ('\u{1ad}', '\u{1ad}',
2363
        SC_Lower), ('\u{1ae}', '\u{1af}', SC_Upper), ('\u{1b0}', '\u{1b0}', SC_Lower), ('\u{1b1}',
2364
        '\u{1b3}', SC_Upper), ('\u{1b4}', '\u{1b4}', SC_Lower), ('\u{1b5}', '\u{1b5}', SC_Upper),
2365
        ('\u{1b6}', '\u{1b6}', SC_Lower), ('\u{1b7}', '\u{1b8}', SC_Upper), ('\u{1b9}', '\u{1ba}',
2366
        SC_Lower), ('\u{1bb}', '\u{1bb}', SC_OLetter), ('\u{1bc}', '\u{1bc}', SC_Upper), ('\u{1bd}',
2367
        '\u{1bf}', SC_Lower), ('\u{1c0}', '\u{1c3}', SC_OLetter), ('\u{1c4}', '\u{1c5}', SC_Upper),
2368
        ('\u{1c6}', '\u{1c6}', SC_Lower), ('\u{1c7}', '\u{1c8}', SC_Upper), ('\u{1c9}', '\u{1c9}',
2369
        SC_Lower), ('\u{1ca}', '\u{1cb}', SC_Upper), ('\u{1cc}', '\u{1cc}', SC_Lower), ('\u{1cd}',
2370
        '\u{1cd}', SC_Upper), ('\u{1ce}', '\u{1ce}', SC_Lower), ('\u{1cf}', '\u{1cf}', SC_Upper),
2371
        ('\u{1d0}', '\u{1d0}', SC_Lower), ('\u{1d1}', '\u{1d1}', SC_Upper), ('\u{1d2}', '\u{1d2}',
2372
        SC_Lower), ('\u{1d3}', '\u{1d3}', SC_Upper), ('\u{1d4}', '\u{1d4}', SC_Lower), ('\u{1d5}',
2373
        '\u{1d5}', SC_Upper), ('\u{1d6}', '\u{1d6}', SC_Lower), ('\u{1d7}', '\u{1d7}', SC_Upper),
2374
        ('\u{1d8}', '\u{1d8}', SC_Lower), ('\u{1d9}', '\u{1d9}', SC_Upper), ('\u{1da}', '\u{1da}',
2375
        SC_Lower), ('\u{1db}', '\u{1db}', SC_Upper), ('\u{1dc}', '\u{1dd}', SC_Lower), ('\u{1de}',
2376
        '\u{1de}', SC_Upper), ('\u{1df}', '\u{1df}', SC_Lower), ('\u{1e0}', '\u{1e0}', SC_Upper),
2377
        ('\u{1e1}', '\u{1e1}', SC_Lower), ('\u{1e2}', '\u{1e2}', SC_Upper), ('\u{1e3}', '\u{1e3}',
2378
        SC_Lower), ('\u{1e4}', '\u{1e4}', SC_Upper), ('\u{1e5}', '\u{1e5}', SC_Lower), ('\u{1e6}',
2379
        '\u{1e6}', SC_Upper), ('\u{1e7}', '\u{1e7}', SC_Lower), ('\u{1e8}', '\u{1e8}', SC_Upper),
2380
        ('\u{1e9}', '\u{1e9}', SC_Lower), ('\u{1ea}', '\u{1ea}', SC_Upper), ('\u{1eb}', '\u{1eb}',
2381
        SC_Lower), ('\u{1ec}', '\u{1ec}', SC_Upper), ('\u{1ed}', '\u{1ed}', SC_Lower), ('\u{1ee}',
2382
        '\u{1ee}', SC_Upper), ('\u{1ef}', '\u{1f0}', SC_Lower), ('\u{1f1}', '\u{1f2}', SC_Upper),
2383
        ('\u{1f3}', '\u{1f3}', SC_Lower), ('\u{1f4}', '\u{1f4}', SC_Upper), ('\u{1f5}', '\u{1f5}',
2384
        SC_Lower), ('\u{1f6}', '\u{1f8}', SC_Upper), ('\u{1f9}', '\u{1f9}', SC_Lower), ('\u{1fa}',
2385
        '\u{1fa}', SC_Upper), ('\u{1fb}', '\u{1fb}', SC_Lower), ('\u{1fc}', '\u{1fc}', SC_Upper),
2386
        ('\u{1fd}', '\u{1fd}', SC_Lower), ('\u{1fe}', '\u{1fe}', SC_Upper), ('\u{1ff}', '\u{1ff}',
2387
        SC_Lower), ('\u{200}', '\u{200}', SC_Upper), ('\u{201}', '\u{201}', SC_Lower), ('\u{202}',
2388
        '\u{202}', SC_Upper), ('\u{203}', '\u{203}', SC_Lower), ('\u{204}', '\u{204}', SC_Upper),
2389
        ('\u{205}', '\u{205}', SC_Lower), ('\u{206}', '\u{206}', SC_Upper), ('\u{207}', '\u{207}',
2390
        SC_Lower), ('\u{208}', '\u{208}', SC_Upper), ('\u{209}', '\u{209}', SC_Lower), ('\u{20a}',
2391
        '\u{20a}', SC_Upper), ('\u{20b}', '\u{20b}', SC_Lower), ('\u{20c}', '\u{20c}', SC_Upper),
2392
        ('\u{20d}', '\u{20d}', SC_Lower), ('\u{20e}', '\u{20e}', SC_Upper), ('\u{20f}', '\u{20f}',
2393
        SC_Lower), ('\u{210}', '\u{210}', SC_Upper), ('\u{211}', '\u{211}', SC_Lower), ('\u{212}',
2394
        '\u{212}', SC_Upper), ('\u{213}', '\u{213}', SC_Lower), ('\u{214}', '\u{214}', SC_Upper),
2395
        ('\u{215}', '\u{215}', SC_Lower), ('\u{216}', '\u{216}', SC_Upper), ('\u{217}', '\u{217}',
2396
        SC_Lower), ('\u{218}', '\u{218}', SC_Upper), ('\u{219}', '\u{219}', SC_Lower), ('\u{21a}',
2397
        '\u{21a}', SC_Upper), ('\u{21b}', '\u{21b}', SC_Lower), ('\u{21c}', '\u{21c}', SC_Upper),
2398
        ('\u{21d}', '\u{21d}', SC_Lower), ('\u{21e}', '\u{21e}', SC_Upper), ('\u{21f}', '\u{21f}',
2399
        SC_Lower), ('\u{220}', '\u{220}', SC_Upper), ('\u{221}', '\u{221}', SC_Lower), ('\u{222}',
2400
        '\u{222}', SC_Upper), ('\u{223}', '\u{223}', SC_Lower), ('\u{224}', '\u{224}', SC_Upper),
2401
        ('\u{225}', '\u{225}', SC_Lower), ('\u{226}', '\u{226}', SC_Upper), ('\u{227}', '\u{227}',
2402
        SC_Lower), ('\u{228}', '\u{228}', SC_Upper), ('\u{229}', '\u{229}', SC_Lower), ('\u{22a}',
2403
        '\u{22a}', SC_Upper), ('\u{22b}', '\u{22b}', SC_Lower), ('\u{22c}', '\u{22c}', SC_Upper),
2404
        ('\u{22d}', '\u{22d}', SC_Lower), ('\u{22e}', '\u{22e}', SC_Upper), ('\u{22f}', '\u{22f}',
2405
        SC_Lower), ('\u{230}', '\u{230}', SC_Upper), ('\u{231}', '\u{231}', SC_Lower), ('\u{232}',
2406
        '\u{232}', SC_Upper), ('\u{233}', '\u{239}', SC_Lower), ('\u{23a}', '\u{23b}', SC_Upper),
2407
        ('\u{23c}', '\u{23c}', SC_Lower), ('\u{23d}', '\u{23e}', SC_Upper), ('\u{23f}', '\u{240}',
2408
        SC_Lower), ('\u{241}', '\u{241}', SC_Upper), ('\u{242}', '\u{242}', SC_Lower), ('\u{243}',
2409
        '\u{246}', SC_Upper), ('\u{247}', '\u{247}', SC_Lower), ('\u{248}', '\u{248}', SC_Upper),
2410
        ('\u{249}', '\u{249}', SC_Lower), ('\u{24a}', '\u{24a}', SC_Upper), ('\u{24b}', '\u{24b}',
2411
        SC_Lower), ('\u{24c}', '\u{24c}', SC_Upper), ('\u{24d}', '\u{24d}', SC_Lower), ('\u{24e}',
2412
        '\u{24e}', SC_Upper), ('\u{24f}', '\u{293}', SC_Lower), ('\u{294}', '\u{295}', SC_OLetter),
2413
        ('\u{296}', '\u{2b8}', SC_Lower), ('\u{2b9}', '\u{2bf}', SC_OLetter), ('\u{2c0}', '\u{2c1}',
2414
        SC_Lower), ('\u{2c6}', '\u{2d1}', SC_OLetter), ('\u{2e0}', '\u{2e4}', SC_Lower), ('\u{2ec}',
2415
        '\u{2ec}', SC_OLetter), ('\u{2ee}', '\u{2ee}', SC_OLetter), ('\u{300}', '\u{36f}',
2416
        SC_Extend), ('\u{370}', '\u{370}', SC_Upper), ('\u{371}', '\u{371}', SC_Lower), ('\u{372}',
2417
        '\u{372}', SC_Upper), ('\u{373}', '\u{373}', SC_Lower), ('\u{374}', '\u{374}', SC_OLetter),
2418
        ('\u{376}', '\u{376}', SC_Upper), ('\u{377}', '\u{377}', SC_Lower), ('\u{37a}', '\u{37d}',
2419
        SC_Lower), ('\u{37e}', '\u{37e}', SC_SContinue), ('\u{37f}', '\u{37f}', SC_Upper),
2420
        ('\u{386}', '\u{386}', SC_Upper), ('\u{388}', '\u{38a}', SC_Upper), ('\u{38c}', '\u{38c}',
2421
        SC_Upper), ('\u{38e}', '\u{38f}', SC_Upper), ('\u{390}', '\u{390}', SC_Lower), ('\u{391}',
2422
        '\u{3a1}', SC_Upper), ('\u{3a3}', '\u{3ab}', SC_Upper), ('\u{3ac}', '\u{3ce}', SC_Lower),
2423
        ('\u{3cf}', '\u{3cf}', SC_Upper), ('\u{3d0}', '\u{3d1}', SC_Lower), ('\u{3d2}', '\u{3d4}',
2424
        SC_Upper), ('\u{3d5}', '\u{3d7}', SC_Lower), ('\u{3d8}', '\u{3d8}', SC_Upper), ('\u{3d9}',
2425
        '\u{3d9}', SC_Lower), ('\u{3da}', '\u{3da}', SC_Upper), ('\u{3db}', '\u{3db}', SC_Lower),
2426
        ('\u{3dc}', '\u{3dc}', SC_Upper), ('\u{3dd}', '\u{3dd}', SC_Lower), ('\u{3de}', '\u{3de}',
2427
        SC_Upper), ('\u{3df}', '\u{3df}', SC_Lower), ('\u{3e0}', '\u{3e0}', SC_Upper), ('\u{3e1}',
2428
        '\u{3e1}', SC_Lower), ('\u{3e2}', '\u{3e2}', SC_Upper), ('\u{3e3}', '\u{3e3}', SC_Lower),
2429
        ('\u{3e4}', '\u{3e4}', SC_Upper), ('\u{3e5}', '\u{3e5}', SC_Lower), ('\u{3e6}', '\u{3e6}',
2430
        SC_Upper), ('\u{3e7}', '\u{3e7}', SC_Lower), ('\u{3e8}', '\u{3e8}', SC_Upper), ('\u{3e9}',
2431
        '\u{3e9}', SC_Lower), ('\u{3ea}', '\u{3ea}', SC_Upper), ('\u{3eb}', '\u{3eb}', SC_Lower),
2432
        ('\u{3ec}', '\u{3ec}', SC_Upper), ('\u{3ed}', '\u{3ed}', SC_Lower), ('\u{3ee}', '\u{3ee}',
2433
        SC_Upper), ('\u{3ef}', '\u{3f3}', SC_Lower), ('\u{3f4}', '\u{3f4}', SC_Upper), ('\u{3f5}',
2434
        '\u{3f5}', SC_Lower), ('\u{3f7}', '\u{3f7}', SC_Upper), ('\u{3f8}', '\u{3f8}', SC_Lower),
2435
        ('\u{3f9}', '\u{3fa}', SC_Upper), ('\u{3fb}', '\u{3fc}', SC_Lower), ('\u{3fd}', '\u{42f}',
2436
        SC_Upper), ('\u{430}', '\u{45f}', SC_Lower), ('\u{460}', '\u{460}', SC_Upper), ('\u{461}',
2437
        '\u{461}', SC_Lower), ('\u{462}', '\u{462}', SC_Upper), ('\u{463}', '\u{463}', SC_Lower),
2438
        ('\u{464}', '\u{464}', SC_Upper), ('\u{465}', '\u{465}', SC_Lower), ('\u{466}', '\u{466}',
2439
        SC_Upper), ('\u{467}', '\u{467}', SC_Lower), ('\u{468}', '\u{468}', SC_Upper), ('\u{469}',
2440
        '\u{469}', SC_Lower), ('\u{46a}', '\u{46a}', SC_Upper), ('\u{46b}', '\u{46b}', SC_Lower),
2441
        ('\u{46c}', '\u{46c}', SC_Upper), ('\u{46d}', '\u{46d}', SC_Lower), ('\u{46e}', '\u{46e}',
2442
        SC_Upper), ('\u{46f}', '\u{46f}', SC_Lower), ('\u{470}', '\u{470}', SC_Upper), ('\u{471}',
2443
        '\u{471}', SC_Lower), ('\u{472}', '\u{472}', SC_Upper), ('\u{473}', '\u{473}', SC_Lower),
2444
        ('\u{474}', '\u{474}', SC_Upper), ('\u{475}', '\u{475}', SC_Lower), ('\u{476}', '\u{476}',
2445
        SC_Upper), ('\u{477}', '\u{477}', SC_Lower), ('\u{478}', '\u{478}', SC_Upper), ('\u{479}',
2446
        '\u{479}', SC_Lower), ('\u{47a}', '\u{47a}', SC_Upper), ('\u{47b}', '\u{47b}', SC_Lower),
2447
        ('\u{47c}', '\u{47c}', SC_Upper), ('\u{47d}', '\u{47d}', SC_Lower), ('\u{47e}', '\u{47e}',
2448
        SC_Upper), ('\u{47f}', '\u{47f}', SC_Lower), ('\u{480}', '\u{480}', SC_Upper), ('\u{481}',
2449
        '\u{481}', SC_Lower), ('\u{483}', '\u{489}', SC_Extend), ('\u{48a}', '\u{48a}', SC_Upper),
2450
        ('\u{48b}', '\u{48b}', SC_Lower), ('\u{48c}', '\u{48c}', SC_Upper), ('\u{48d}', '\u{48d}',
2451
        SC_Lower), ('\u{48e}', '\u{48e}', SC_Upper), ('\u{48f}', '\u{48f}', SC_Lower), ('\u{490}',
2452
        '\u{490}', SC_Upper), ('\u{491}', '\u{491}', SC_Lower), ('\u{492}', '\u{492}', SC_Upper),
2453
        ('\u{493}', '\u{493}', SC_Lower), ('\u{494}', '\u{494}', SC_Upper), ('\u{495}', '\u{495}',
2454
        SC_Lower), ('\u{496}', '\u{496}', SC_Upper), ('\u{497}', '\u{497}', SC_Lower), ('\u{498}',
2455
        '\u{498}', SC_Upper), ('\u{499}', '\u{499}', SC_Lower), ('\u{49a}', '\u{49a}', SC_Upper),
2456
        ('\u{49b}', '\u{49b}', SC_Lower), ('\u{49c}', '\u{49c}', SC_Upper), ('\u{49d}', '\u{49d}',
2457
        SC_Lower), ('\u{49e}', '\u{49e}', SC_Upper), ('\u{49f}', '\u{49f}', SC_Lower), ('\u{4a0}',
2458
        '\u{4a0}', SC_Upper), ('\u{4a1}', '\u{4a1}', SC_Lower), ('\u{4a2}', '\u{4a2}', SC_Upper),
2459
        ('\u{4a3}', '\u{4a3}', SC_Lower), ('\u{4a4}', '\u{4a4}', SC_Upper), ('\u{4a5}', '\u{4a5}',
2460
        SC_Lower), ('\u{4a6}', '\u{4a6}', SC_Upper), ('\u{4a7}', '\u{4a7}', SC_Lower), ('\u{4a8}',
2461
        '\u{4a8}', SC_Upper), ('\u{4a9}', '\u{4a9}', SC_Lower), ('\u{4aa}', '\u{4aa}', SC_Upper),
2462
        ('\u{4ab}', '\u{4ab}', SC_Lower), ('\u{4ac}', '\u{4ac}', SC_Upper), ('\u{4ad}', '\u{4ad}',
2463
        SC_Lower), ('\u{4ae}', '\u{4ae}', SC_Upper), ('\u{4af}', '\u{4af}', SC_Lower), ('\u{4b0}',
2464
        '\u{4b0}', SC_Upper), ('\u{4b1}', '\u{4b1}', SC_Lower), ('\u{4b2}', '\u{4b2}', SC_Upper),
2465
        ('\u{4b3}', '\u{4b3}', SC_Lower), ('\u{4b4}', '\u{4b4}', SC_Upper), ('\u{4b5}', '\u{4b5}',
2466
        SC_Lower), ('\u{4b6}', '\u{4b6}', SC_Upper), ('\u{4b7}', '\u{4b7}', SC_Lower), ('\u{4b8}',
2467
        '\u{4b8}', SC_Upper), ('\u{4b9}', '\u{4b9}', SC_Lower), ('\u{4ba}', '\u{4ba}', SC_Upper),
2468
        ('\u{4bb}', '\u{4bb}', SC_Lower), ('\u{4bc}', '\u{4bc}', SC_Upper), ('\u{4bd}', '\u{4bd}',
2469
        SC_Lower), ('\u{4be}', '\u{4be}', SC_Upper), ('\u{4bf}', '\u{4bf}', SC_Lower), ('\u{4c0}',
2470
        '\u{4c1}', SC_Upper), ('\u{4c2}', '\u{4c2}', SC_Lower), ('\u{4c3}', '\u{4c3}', SC_Upper),
2471
        ('\u{4c4}', '\u{4c4}', SC_Lower), ('\u{4c5}', '\u{4c5}', SC_Upper), ('\u{4c6}', '\u{4c6}',
2472
        SC_Lower), ('\u{4c7}', '\u{4c7}', SC_Upper), ('\u{4c8}', '\u{4c8}', SC_Lower), ('\u{4c9}',
2473
        '\u{4c9}', SC_Upper), ('\u{4ca}', '\u{4ca}', SC_Lower), ('\u{4cb}', '\u{4cb}', SC_Upper),
2474
        ('\u{4cc}', '\u{4cc}', SC_Lower), ('\u{4cd}', '\u{4cd}', SC_Upper), ('\u{4ce}', '\u{4cf}',
2475
        SC_Lower), ('\u{4d0}', '\u{4d0}', SC_Upper), ('\u{4d1}', '\u{4d1}', SC_Lower), ('\u{4d2}',
2476
        '\u{4d2}', SC_Upper), ('\u{4d3}', '\u{4d3}', SC_Lower), ('\u{4d4}', '\u{4d4}', SC_Upper),
2477
        ('\u{4d5}', '\u{4d5}', SC_Lower), ('\u{4d6}', '\u{4d6}', SC_Upper), ('\u{4d7}', '\u{4d7}',
2478
        SC_Lower), ('\u{4d8}', '\u{4d8}', SC_Upper), ('\u{4d9}', '\u{4d9}', SC_Lower), ('\u{4da}',
2479
        '\u{4da}', SC_Upper), ('\u{4db}', '\u{4db}', SC_Lower), ('\u{4dc}', '\u{4dc}', SC_Upper),
2480
        ('\u{4dd}', '\u{4dd}', SC_Lower), ('\u{4de}', '\u{4de}', SC_Upper), ('\u{4df}', '\u{4df}',
2481
        SC_Lower), ('\u{4e0}', '\u{4e0}', SC_Upper), ('\u{4e1}', '\u{4e1}', SC_Lower), ('\u{4e2}',
2482
        '\u{4e2}', SC_Upper), ('\u{4e3}', '\u{4e3}', SC_Lower), ('\u{4e4}', '\u{4e4}', SC_Upper),
2483
        ('\u{4e5}', '\u{4e5}', SC_Lower), ('\u{4e6}', '\u{4e6}', SC_Upper), ('\u{4e7}', '\u{4e7}',
2484
        SC_Lower), ('\u{4e8}', '\u{4e8}', SC_Upper), ('\u{4e9}', '\u{4e9}', SC_Lower), ('\u{4ea}',
2485
        '\u{4ea}', SC_Upper), ('\u{4eb}', '\u{4eb}', SC_Lower), ('\u{4ec}', '\u{4ec}', SC_Upper),
2486
        ('\u{4ed}', '\u{4ed}', SC_Lower), ('\u{4ee}', '\u{4ee}', SC_Upper), ('\u{4ef}', '\u{4ef}',
2487
        SC_Lower), ('\u{4f0}', '\u{4f0}', SC_Upper), ('\u{4f1}', '\u{4f1}', SC_Lower), ('\u{4f2}',
2488
        '\u{4f2}', SC_Upper), ('\u{4f3}', '\u{4f3}', SC_Lower), ('\u{4f4}', '\u{4f4}', SC_Upper),
2489
        ('\u{4f5}', '\u{4f5}', SC_Lower), ('\u{4f6}', '\u{4f6}', SC_Upper), ('\u{4f7}', '\u{4f7}',
2490
        SC_Lower), ('\u{4f8}', '\u{4f8}', SC_Upper), ('\u{4f9}', '\u{4f9}', SC_Lower), ('\u{4fa}',
2491
        '\u{4fa}', SC_Upper), ('\u{4fb}', '\u{4fb}', SC_Lower), ('\u{4fc}', '\u{4fc}', SC_Upper),
2492
        ('\u{4fd}', '\u{4fd}', SC_Lower), ('\u{4fe}', '\u{4fe}', SC_Upper), ('\u{4ff}', '\u{4ff}',
2493
        SC_Lower), ('\u{500}', '\u{500}', SC_Upper), ('\u{501}', '\u{501}', SC_Lower), ('\u{502}',
2494
        '\u{502}', SC_Upper), ('\u{503}', '\u{503}', SC_Lower), ('\u{504}', '\u{504}', SC_Upper),
2495
        ('\u{505}', '\u{505}', SC_Lower), ('\u{506}', '\u{506}', SC_Upper), ('\u{507}', '\u{507}',
2496
        SC_Lower), ('\u{508}', '\u{508}', SC_Upper), ('\u{509}', '\u{509}', SC_Lower), ('\u{50a}',
2497
        '\u{50a}', SC_Upper), ('\u{50b}', '\u{50b}', SC_Lower), ('\u{50c}', '\u{50c}', SC_Upper),
2498
        ('\u{50d}', '\u{50d}', SC_Lower), ('\u{50e}', '\u{50e}', SC_Upper), ('\u{50f}', '\u{50f}',
2499
        SC_Lower), ('\u{510}', '\u{510}', SC_Upper), ('\u{511}', '\u{511}', SC_Lower), ('\u{512}',
2500
        '\u{512}', SC_Upper), ('\u{513}', '\u{513}', SC_Lower), ('\u{514}', '\u{514}', SC_Upper),
2501
        ('\u{515}', '\u{515}', SC_Lower), ('\u{516}', '\u{516}', SC_Upper), ('\u{517}', '\u{517}',
2502
        SC_Lower), ('\u{518}', '\u{518}', SC_Upper), ('\u{519}', '\u{519}', SC_Lower), ('\u{51a}',
2503
        '\u{51a}', SC_Upper), ('\u{51b}', '\u{51b}', SC_Lower), ('\u{51c}', '\u{51c}', SC_Upper),
2504
        ('\u{51d}', '\u{51d}', SC_Lower), ('\u{51e}', '\u{51e}', SC_Upper), ('\u{51f}', '\u{51f}',
2505
        SC_Lower), ('\u{520}', '\u{520}', SC_Upper), ('\u{521}', '\u{521}', SC_Lower), ('\u{522}',
2506
        '\u{522}', SC_Upper), ('\u{523}', '\u{523}', SC_Lower), ('\u{524}', '\u{524}', SC_Upper),
2507
        ('\u{525}', '\u{525}', SC_Lower), ('\u{526}', '\u{526}', SC_Upper), ('\u{527}', '\u{527}',
2508
        SC_Lower), ('\u{528}', '\u{528}', SC_Upper), ('\u{529}', '\u{529}', SC_Lower), ('\u{52a}',
2509
        '\u{52a}', SC_Upper), ('\u{52b}', '\u{52b}', SC_Lower), ('\u{52c}', '\u{52c}', SC_Upper),
2510
        ('\u{52d}', '\u{52d}', SC_Lower), ('\u{52e}', '\u{52e}', SC_Upper), ('\u{52f}', '\u{52f}',
2511
        SC_Lower), ('\u{531}', '\u{556}', SC_Upper), ('\u{559}', '\u{559}', SC_OLetter), ('\u{55d}',
2512
        '\u{55d}', SC_SContinue), ('\u{560}', '\u{588}', SC_Lower), ('\u{589}', '\u{589}',
2513
        SC_STerm), ('\u{591}', '\u{5bd}', SC_Extend), ('\u{5bf}', '\u{5bf}', SC_Extend), ('\u{5c1}',
2514
        '\u{5c2}', SC_Extend), ('\u{5c4}', '\u{5c5}', SC_Extend), ('\u{5c7}', '\u{5c7}', SC_Extend),
2515
        ('\u{5d0}', '\u{5ea}', SC_OLetter), ('\u{5ef}', '\u{5f3}', SC_OLetter), ('\u{600}',
2516
        '\u{605}', SC_Numeric), ('\u{60c}', '\u{60d}', SC_SContinue), ('\u{610}', '\u{61a}',
2517
        SC_Extend), ('\u{61c}', '\u{61c}', SC_Format), ('\u{61d}', '\u{61f}', SC_STerm), ('\u{620}',
2518
        '\u{64a}', SC_OLetter), ('\u{64b}', '\u{65f}', SC_Extend), ('\u{660}', '\u{669}',
2519
        SC_Numeric), ('\u{66b}', '\u{66c}', SC_Numeric), ('\u{66e}', '\u{66f}', SC_OLetter),
2520
        ('\u{670}', '\u{670}', SC_Extend), ('\u{671}', '\u{6d3}', SC_OLetter), ('\u{6d4}',
2521
        '\u{6d4}', SC_STerm), ('\u{6d5}', '\u{6d5}', SC_OLetter), ('\u{6d6}', '\u{6dc}', SC_Extend),
2522
        ('\u{6dd}', '\u{6dd}', SC_Numeric), ('\u{6df}', '\u{6e4}', SC_Extend), ('\u{6e5}',
2523
        '\u{6e6}', SC_OLetter), ('\u{6e7}', '\u{6e8}', SC_Extend), ('\u{6ea}', '\u{6ed}',
2524
        SC_Extend), ('\u{6ee}', '\u{6ef}', SC_OLetter), ('\u{6f0}', '\u{6f9}', SC_Numeric),
2525
        ('\u{6fa}', '\u{6fc}', SC_OLetter), ('\u{6ff}', '\u{6ff}', SC_OLetter), ('\u{700}',
2526
        '\u{702}', SC_STerm), ('\u{70f}', '\u{70f}', SC_Format), ('\u{710}', '\u{710}', SC_OLetter),
2527
        ('\u{711}', '\u{711}', SC_Extend), ('\u{712}', '\u{72f}', SC_OLetter), ('\u{730}',
2528
        '\u{74a}', SC_Extend), ('\u{74d}', '\u{7a5}', SC_OLetter), ('\u{7a6}', '\u{7b0}',
2529
        SC_Extend), ('\u{7b1}', '\u{7b1}', SC_OLetter), ('\u{7c0}', '\u{7c9}', SC_Numeric),
2530
        ('\u{7ca}', '\u{7ea}', SC_OLetter), ('\u{7eb}', '\u{7f3}', SC_Extend), ('\u{7f4}',
2531
        '\u{7f5}', SC_OLetter), ('\u{7f8}', '\u{7f8}', SC_SContinue), ('\u{7f9}', '\u{7f9}',
2532
        SC_STerm), ('\u{7fa}', '\u{7fa}', SC_OLetter), ('\u{7fd}', '\u{7fd}', SC_Extend),
2533
        ('\u{800}', '\u{815}', SC_OLetter), ('\u{816}', '\u{819}', SC_Extend), ('\u{81a}',
2534
        '\u{81a}', SC_OLetter), ('\u{81b}', '\u{823}', SC_Extend), ('\u{824}', '\u{824}',
2535
        SC_OLetter), ('\u{825}', '\u{827}', SC_Extend), ('\u{828}', '\u{828}', SC_OLetter),
2536
        ('\u{829}', '\u{82d}', SC_Extend), ('\u{837}', '\u{837}', SC_STerm), ('\u{839}', '\u{839}',
2537
        SC_STerm), ('\u{83d}', '\u{83e}', SC_STerm), ('\u{840}', '\u{858}', SC_OLetter), ('\u{859}',
2538
        '\u{85b}', SC_Extend), ('\u{860}', '\u{86a}', SC_OLetter), ('\u{870}', '\u{887}',
2539
        SC_OLetter), ('\u{889}', '\u{88f}', SC_OLetter), ('\u{890}', '\u{891}', SC_Numeric),
2540
        ('\u{897}', '\u{89f}', SC_Extend), ('\u{8a0}', '\u{8c9}', SC_OLetter), ('\u{8ca}',
2541
        '\u{8e1}', SC_Extend), ('\u{8e2}', '\u{8e2}', SC_Numeric), ('\u{8e3}', '\u{903}',
2542
        SC_Extend), ('\u{904}', '\u{939}', SC_OLetter), ('\u{93a}', '\u{93c}', SC_Extend),
2543
        ('\u{93d}', '\u{93d}', SC_OLetter), ('\u{93e}', '\u{94f}', SC_Extend), ('\u{950}',
2544
        '\u{950}', SC_OLetter), ('\u{951}', '\u{957}', SC_Extend), ('\u{958}', '\u{961}',
2545
        SC_OLetter), ('\u{962}', '\u{963}', SC_Extend), ('\u{964}', '\u{965}', SC_STerm),
2546
        ('\u{966}', '\u{96f}', SC_Numeric), ('\u{971}', '\u{980}', SC_OLetter), ('\u{981}',
2547
        '\u{983}', SC_Extend), ('\u{985}', '\u{98c}', SC_OLetter), ('\u{98f}', '\u{990}',
2548
        SC_OLetter), ('\u{993}', '\u{9a8}', SC_OLetter), ('\u{9aa}', '\u{9b0}', SC_OLetter),
2549
        ('\u{9b2}', '\u{9b2}', SC_OLetter), ('\u{9b6}', '\u{9b9}', SC_OLetter), ('\u{9bc}',
2550
        '\u{9bc}', SC_Extend), ('\u{9bd}', '\u{9bd}', SC_OLetter), ('\u{9be}', '\u{9c4}',
2551
        SC_Extend), ('\u{9c7}', '\u{9c8}', SC_Extend), ('\u{9cb}', '\u{9cd}', SC_Extend),
2552
        ('\u{9ce}', '\u{9ce}', SC_OLetter), ('\u{9d7}', '\u{9d7}', SC_Extend), ('\u{9dc}',
2553
        '\u{9dd}', SC_OLetter), ('\u{9df}', '\u{9e1}', SC_OLetter), ('\u{9e2}', '\u{9e3}',
2554
        SC_Extend), ('\u{9e6}', '\u{9ef}', SC_Numeric), ('\u{9f0}', '\u{9f1}', SC_OLetter),
2555
        ('\u{9fc}', '\u{9fc}', SC_OLetter), ('\u{9fe}', '\u{9fe}', SC_Extend), ('\u{a01}',
2556
        '\u{a03}', SC_Extend), ('\u{a05}', '\u{a0a}', SC_OLetter), ('\u{a0f}', '\u{a10}',
2557
        SC_OLetter), ('\u{a13}', '\u{a28}', SC_OLetter), ('\u{a2a}', '\u{a30}', SC_OLetter),
2558
        ('\u{a32}', '\u{a33}', SC_OLetter), ('\u{a35}', '\u{a36}', SC_OLetter), ('\u{a38}',
2559
        '\u{a39}', SC_OLetter), ('\u{a3c}', '\u{a3c}', SC_Extend), ('\u{a3e}', '\u{a42}',
2560
        SC_Extend), ('\u{a47}', '\u{a48}', SC_Extend), ('\u{a4b}', '\u{a4d}', SC_Extend),
2561
        ('\u{a51}', '\u{a51}', SC_Extend), ('\u{a59}', '\u{a5c}', SC_OLetter), ('\u{a5e}',
2562
        '\u{a5e}', SC_OLetter), ('\u{a66}', '\u{a6f}', SC_Numeric), ('\u{a70}', '\u{a71}',
2563
        SC_Extend), ('\u{a72}', '\u{a74}', SC_OLetter), ('\u{a75}', '\u{a75}', SC_Extend),
2564
        ('\u{a81}', '\u{a83}', SC_Extend), ('\u{a85}', '\u{a8d}', SC_OLetter), ('\u{a8f}',
2565
        '\u{a91}', SC_OLetter), ('\u{a93}', '\u{aa8}', SC_OLetter), ('\u{aaa}', '\u{ab0}',
2566
        SC_OLetter), ('\u{ab2}', '\u{ab3}', SC_OLetter), ('\u{ab5}', '\u{ab9}', SC_OLetter),
2567
        ('\u{abc}', '\u{abc}', SC_Extend), ('\u{abd}', '\u{abd}', SC_OLetter), ('\u{abe}',
2568
        '\u{ac5}', SC_Extend), ('\u{ac7}', '\u{ac9}', SC_Extend), ('\u{acb}', '\u{acd}', SC_Extend),
2569
        ('\u{ad0}', '\u{ad0}', SC_OLetter), ('\u{ae0}', '\u{ae1}', SC_OLetter), ('\u{ae2}',
2570
        '\u{ae3}', SC_Extend), ('\u{ae6}', '\u{aef}', SC_Numeric), ('\u{af9}', '\u{af9}',
2571
        SC_OLetter), ('\u{afa}', '\u{aff}', SC_Extend), ('\u{b01}', '\u{b03}', SC_Extend),
2572
        ('\u{b05}', '\u{b0c}', SC_OLetter), ('\u{b0f}', '\u{b10}', SC_OLetter), ('\u{b13}',
2573
        '\u{b28}', SC_OLetter), ('\u{b2a}', '\u{b30}', SC_OLetter), ('\u{b32}', '\u{b33}',
2574
        SC_OLetter), ('\u{b35}', '\u{b39}', SC_OLetter), ('\u{b3c}', '\u{b3c}', SC_Extend),
2575
        ('\u{b3d}', '\u{b3d}', SC_OLetter), ('\u{b3e}', '\u{b44}', SC_Extend), ('\u{b47}',
2576
        '\u{b48}', SC_Extend), ('\u{b4b}', '\u{b4d}', SC_Extend), ('\u{b55}', '\u{b57}', SC_Extend),
2577
        ('\u{b5c}', '\u{b5d}', SC_OLetter), ('\u{b5f}', '\u{b61}', SC_OLetter), ('\u{b62}',
2578
        '\u{b63}', SC_Extend), ('\u{b66}', '\u{b6f}', SC_Numeric), ('\u{b71}', '\u{b71}',
2579
        SC_OLetter), ('\u{b82}', '\u{b82}', SC_Extend), ('\u{b83}', '\u{b83}', SC_OLetter),
2580
        ('\u{b85}', '\u{b8a}', SC_OLetter), ('\u{b8e}', '\u{b90}', SC_OLetter), ('\u{b92}',
2581
        '\u{b95}', SC_OLetter), ('\u{b99}', '\u{b9a}', SC_OLetter), ('\u{b9c}', '\u{b9c}',
2582
        SC_OLetter), ('\u{b9e}', '\u{b9f}', SC_OLetter), ('\u{ba3}', '\u{ba4}', SC_OLetter),
2583
        ('\u{ba8}', '\u{baa}', SC_OLetter), ('\u{bae}', '\u{bb9}', SC_OLetter), ('\u{bbe}',
2584
        '\u{bc2}', SC_Extend), ('\u{bc6}', '\u{bc8}', SC_Extend), ('\u{bca}', '\u{bcd}', SC_Extend),
2585
        ('\u{bd0}', '\u{bd0}', SC_OLetter), ('\u{bd7}', '\u{bd7}', SC_Extend), ('\u{be6}',
2586
        '\u{bef}', SC_Numeric), ('\u{c00}', '\u{c04}', SC_Extend), ('\u{c05}', '\u{c0c}',
2587
        SC_OLetter), ('\u{c0e}', '\u{c10}', SC_OLetter), ('\u{c12}', '\u{c28}', SC_OLetter),
2588
        ('\u{c2a}', '\u{c39}', SC_OLetter), ('\u{c3c}', '\u{c3c}', SC_Extend), ('\u{c3d}',
2589
        '\u{c3d}', SC_OLetter), ('\u{c3e}', '\u{c44}', SC_Extend), ('\u{c46}', '\u{c48}',
2590
        SC_Extend), ('\u{c4a}', '\u{c4d}', SC_Extend), ('\u{c55}', '\u{c56}', SC_Extend),
2591
        ('\u{c58}', '\u{c5a}', SC_OLetter), ('\u{c5c}', '\u{c5d}', SC_OLetter), ('\u{c60}',
2592
        '\u{c61}', SC_OLetter), ('\u{c62}', '\u{c63}', SC_Extend), ('\u{c66}', '\u{c6f}',
2593
        SC_Numeric), ('\u{c80}', '\u{c80}', SC_OLetter), ('\u{c81}', '\u{c83}', SC_Extend),
2594
        ('\u{c85}', '\u{c8c}', SC_OLetter), ('\u{c8e}', '\u{c90}', SC_OLetter), ('\u{c92}',
2595
        '\u{ca8}', SC_OLetter), ('\u{caa}', '\u{cb3}', SC_OLetter), ('\u{cb5}', '\u{cb9}',
2596
        SC_OLetter), ('\u{cbc}', '\u{cbc}', SC_Extend), ('\u{cbd}', '\u{cbd}', SC_OLetter),
2597
        ('\u{cbe}', '\u{cc4}', SC_Extend), ('\u{cc6}', '\u{cc8}', SC_Extend), ('\u{cca}', '\u{ccd}',
2598
        SC_Extend), ('\u{cd5}', '\u{cd6}', SC_Extend), ('\u{cdc}', '\u{cde}', SC_OLetter),
2599
        ('\u{ce0}', '\u{ce1}', SC_OLetter), ('\u{ce2}', '\u{ce3}', SC_Extend), ('\u{ce6}',
2600
        '\u{cef}', SC_Numeric), ('\u{cf1}', '\u{cf2}', SC_OLetter), ('\u{cf3}', '\u{cf3}',
2601
        SC_Extend), ('\u{d00}', '\u{d03}', SC_Extend), ('\u{d04}', '\u{d0c}', SC_OLetter),
2602
        ('\u{d0e}', '\u{d10}', SC_OLetter), ('\u{d12}', '\u{d3a}', SC_OLetter), ('\u{d3b}',
2603
        '\u{d3c}', SC_Extend), ('\u{d3d}', '\u{d3d}', SC_OLetter), ('\u{d3e}', '\u{d44}',
2604
        SC_Extend), ('\u{d46}', '\u{d48}', SC_Extend), ('\u{d4a}', '\u{d4d}', SC_Extend),
2605
        ('\u{d4e}', '\u{d4e}', SC_OLetter), ('\u{d54}', '\u{d56}', SC_OLetter), ('\u{d57}',
2606
        '\u{d57}', SC_Extend), ('\u{d5f}', '\u{d61}', SC_OLetter), ('\u{d62}', '\u{d63}',
2607
        SC_Extend), ('\u{d66}', '\u{d6f}', SC_Numeric), ('\u{d7a}', '\u{d7f}', SC_OLetter),
2608
        ('\u{d81}', '\u{d83}', SC_Extend), ('\u{d85}', '\u{d96}', SC_OLetter), ('\u{d9a}',
2609
        '\u{db1}', SC_OLetter), ('\u{db3}', '\u{dbb}', SC_OLetter), ('\u{dbd}', '\u{dbd}',
2610
        SC_OLetter), ('\u{dc0}', '\u{dc6}', SC_OLetter), ('\u{dca}', '\u{dca}', SC_Extend),
2611
        ('\u{dcf}', '\u{dd4}', SC_Extend), ('\u{dd6}', '\u{dd6}', SC_Extend), ('\u{dd8}', '\u{ddf}',
2612
        SC_Extend), ('\u{de6}', '\u{def}', SC_Numeric), ('\u{df2}', '\u{df3}', SC_Extend),
2613
        ('\u{e01}', '\u{e30}', SC_OLetter), ('\u{e31}', '\u{e31}', SC_Extend), ('\u{e32}',
2614
        '\u{e33}', SC_OLetter), ('\u{e34}', '\u{e3a}', SC_Extend), ('\u{e40}', '\u{e46}',
2615
        SC_OLetter), ('\u{e47}', '\u{e4e}', SC_Extend), ('\u{e50}', '\u{e59}', SC_Numeric),
2616
        ('\u{e81}', '\u{e82}', SC_OLetter), ('\u{e84}', '\u{e84}', SC_OLetter), ('\u{e86}',
2617
        '\u{e8a}', SC_OLetter), ('\u{e8c}', '\u{ea3}', SC_OLetter), ('\u{ea5}', '\u{ea5}',
2618
        SC_OLetter), ('\u{ea7}', '\u{eb0}', SC_OLetter), ('\u{eb1}', '\u{eb1}', SC_Extend),
2619
        ('\u{eb2}', '\u{eb3}', SC_OLetter), ('\u{eb4}', '\u{ebc}', SC_Extend), ('\u{ebd}',
2620
        '\u{ebd}', SC_OLetter), ('\u{ec0}', '\u{ec4}', SC_OLetter), ('\u{ec6}', '\u{ec6}',
2621
        SC_OLetter), ('\u{ec8}', '\u{ece}', SC_Extend), ('\u{ed0}', '\u{ed9}', SC_Numeric),
2622
        ('\u{edc}', '\u{edf}', SC_OLetter), ('\u{f00}', '\u{f00}', SC_OLetter), ('\u{f18}',
2623
        '\u{f19}', SC_Extend), ('\u{f20}', '\u{f29}', SC_Numeric), ('\u{f35}', '\u{f35}',
2624
        SC_Extend), ('\u{f37}', '\u{f37}', SC_Extend), ('\u{f39}', '\u{f39}', SC_Extend),
2625
        ('\u{f3a}', '\u{f3d}', SC_Close), ('\u{f3e}', '\u{f3f}', SC_Extend), ('\u{f40}', '\u{f47}',
2626
        SC_OLetter), ('\u{f49}', '\u{f6c}', SC_OLetter), ('\u{f71}', '\u{f84}', SC_Extend),
2627
        ('\u{f86}', '\u{f87}', SC_Extend), ('\u{f88}', '\u{f8c}', SC_OLetter), ('\u{f8d}',
2628
        '\u{f97}', SC_Extend), ('\u{f99}', '\u{fbc}', SC_Extend), ('\u{fc6}', '\u{fc6}', SC_Extend),
2629
        ('\u{1000}', '\u{102a}', SC_OLetter), ('\u{102b}', '\u{103e}', SC_Extend), ('\u{103f}',
2630
        '\u{103f}', SC_OLetter), ('\u{1040}', '\u{1049}', SC_Numeric), ('\u{104a}', '\u{104b}',
2631
        SC_STerm), ('\u{1050}', '\u{1055}', SC_OLetter), ('\u{1056}', '\u{1059}', SC_Extend),
2632
        ('\u{105a}', '\u{105d}', SC_OLetter), ('\u{105e}', '\u{1060}', SC_Extend), ('\u{1061}',
2633
        '\u{1061}', SC_OLetter), ('\u{1062}', '\u{1064}', SC_Extend), ('\u{1065}', '\u{1066}',
2634
        SC_OLetter), ('\u{1067}', '\u{106d}', SC_Extend), ('\u{106e}', '\u{1070}', SC_OLetter),
2635
        ('\u{1071}', '\u{1074}', SC_Extend), ('\u{1075}', '\u{1081}', SC_OLetter), ('\u{1082}',
2636
        '\u{108d}', SC_Extend), ('\u{108e}', '\u{108e}', SC_OLetter), ('\u{108f}', '\u{108f}',
2637
        SC_Extend), ('\u{1090}', '\u{1099}', SC_Numeric), ('\u{109a}', '\u{109d}', SC_Extend),
2638
        ('\u{10a0}', '\u{10c5}', SC_Upper), ('\u{10c7}', '\u{10c7}', SC_Upper), ('\u{10cd}',
2639
        '\u{10cd}', SC_Upper), ('\u{10d0}', '\u{10fa}', SC_OLetter), ('\u{10fc}', '\u{10fc}',
2640
        SC_Lower), ('\u{10fd}', '\u{1248}', SC_OLetter), ('\u{124a}', '\u{124d}', SC_OLetter),
2641
        ('\u{1250}', '\u{1256}', SC_OLetter), ('\u{1258}', '\u{1258}', SC_OLetter), ('\u{125a}',
2642
        '\u{125d}', SC_OLetter), ('\u{1260}', '\u{1288}', SC_OLetter), ('\u{128a}', '\u{128d}',
2643
        SC_OLetter), ('\u{1290}', '\u{12b0}', SC_OLetter), ('\u{12b2}', '\u{12b5}', SC_OLetter),
2644
        ('\u{12b8}', '\u{12be}', SC_OLetter), ('\u{12c0}', '\u{12c0}', SC_OLetter), ('\u{12c2}',
2645
        '\u{12c5}', SC_OLetter), ('\u{12c8}', '\u{12d6}', SC_OLetter), ('\u{12d8}', '\u{1310}',
2646
        SC_OLetter), ('\u{1312}', '\u{1315}', SC_OLetter), ('\u{1318}', '\u{135a}', SC_OLetter),
2647
        ('\u{135d}', '\u{135f}', SC_Extend), ('\u{1362}', '\u{1362}', SC_STerm), ('\u{1367}',
2648
        '\u{1368}', SC_STerm), ('\u{1380}', '\u{138f}', SC_OLetter), ('\u{13a0}', '\u{13f5}',
2649
        SC_Upper), ('\u{13f8}', '\u{13fd}', SC_Lower), ('\u{1401}', '\u{166c}', SC_OLetter),
2650
        ('\u{166e}', '\u{166e}', SC_STerm), ('\u{166f}', '\u{167f}', SC_OLetter), ('\u{1680}',
2651
        '\u{1680}', SC_Sp), ('\u{1681}', '\u{169a}', SC_OLetter), ('\u{169b}', '\u{169c}',
2652
        SC_Close), ('\u{16a0}', '\u{16ea}', SC_OLetter), ('\u{16ee}', '\u{16f8}', SC_OLetter),
2653
        ('\u{1700}', '\u{1711}', SC_OLetter), ('\u{1712}', '\u{1715}', SC_Extend), ('\u{171f}',
2654
        '\u{1731}', SC_OLetter), ('\u{1732}', '\u{1734}', SC_Extend), ('\u{1735}', '\u{1736}',
2655
        SC_STerm), ('\u{1740}', '\u{1751}', SC_OLetter), ('\u{1752}', '\u{1753}', SC_Extend),
2656
        ('\u{1760}', '\u{176c}', SC_OLetter), ('\u{176e}', '\u{1770}', SC_OLetter), ('\u{1772}',
2657
        '\u{1773}', SC_Extend), ('\u{1780}', '\u{17b3}', SC_OLetter), ('\u{17b4}', '\u{17d3}',
2658
        SC_Extend), ('\u{17d4}', '\u{17d5}', SC_STerm), ('\u{17d7}', '\u{17d7}', SC_OLetter),
2659
        ('\u{17dc}', '\u{17dc}', SC_OLetter), ('\u{17dd}', '\u{17dd}', SC_Extend), ('\u{17e0}',
2660
        '\u{17e9}', SC_Numeric), ('\u{1802}', '\u{1802}', SC_SContinue), ('\u{1803}', '\u{1803}',
2661
        SC_STerm), ('\u{1808}', '\u{1808}', SC_SContinue), ('\u{1809}', '\u{1809}', SC_STerm),
2662
        ('\u{180b}', '\u{180d}', SC_Extend), ('\u{180e}', '\u{180e}', SC_Format), ('\u{180f}',
2663
        '\u{180f}', SC_Extend), ('\u{1810}', '\u{1819}', SC_Numeric), ('\u{1820}', '\u{1878}',
2664
        SC_OLetter), ('\u{1880}', '\u{1884}', SC_OLetter), ('\u{1885}', '\u{1886}', SC_Extend),
2665
        ('\u{1887}', '\u{18a8}', SC_OLetter), ('\u{18a9}', '\u{18a9}', SC_Extend), ('\u{18aa}',
2666
        '\u{18aa}', SC_OLetter), ('\u{18b0}', '\u{18f5}', SC_OLetter), ('\u{1900}', '\u{191e}',
2667
        SC_OLetter), ('\u{1920}', '\u{192b}', SC_Extend), ('\u{1930}', '\u{193b}', SC_Extend),
2668
        ('\u{1944}', '\u{1945}', SC_STerm), ('\u{1946}', '\u{194f}', SC_Numeric), ('\u{1950}',
2669
        '\u{196d}', SC_OLetter), ('\u{1970}', '\u{1974}', SC_OLetter), ('\u{1980}', '\u{19ab}',
2670
        SC_OLetter), ('\u{19b0}', '\u{19c9}', SC_OLetter), ('\u{19d0}', '\u{19da}', SC_Numeric),
2671
        ('\u{1a00}', '\u{1a16}', SC_OLetter), ('\u{1a17}', '\u{1a1b}', SC_Extend), ('\u{1a20}',
2672
        '\u{1a54}', SC_OLetter), ('\u{1a55}', '\u{1a5e}', SC_Extend), ('\u{1a60}', '\u{1a7c}',
2673
        SC_Extend), ('\u{1a7f}', '\u{1a7f}', SC_Extend), ('\u{1a80}', '\u{1a89}', SC_Numeric),
2674
        ('\u{1a90}', '\u{1a99}', SC_Numeric), ('\u{1aa7}', '\u{1aa7}', SC_OLetter), ('\u{1aa8}',
2675
        '\u{1aab}', SC_STerm), ('\u{1ab0}', '\u{1add}', SC_Extend), ('\u{1ae0}', '\u{1aeb}',
2676
        SC_Extend), ('\u{1b00}', '\u{1b04}', SC_Extend), ('\u{1b05}', '\u{1b33}', SC_OLetter),
2677
        ('\u{1b34}', '\u{1b44}', SC_Extend), ('\u{1b45}', '\u{1b4c}', SC_OLetter), ('\u{1b4e}',
2678
        '\u{1b4f}', SC_STerm), ('\u{1b50}', '\u{1b59}', SC_Numeric), ('\u{1b5a}', '\u{1b5b}',
2679
        SC_STerm), ('\u{1b5e}', '\u{1b5f}', SC_STerm), ('\u{1b6b}', '\u{1b73}', SC_Extend),
2680
        ('\u{1b7d}', '\u{1b7f}', SC_STerm), ('\u{1b80}', '\u{1b82}', SC_Extend), ('\u{1b83}',
2681
        '\u{1ba0}', SC_OLetter), ('\u{1ba1}', '\u{1bad}', SC_Extend), ('\u{1bae}', '\u{1baf}',
2682
        SC_OLetter), ('\u{1bb0}', '\u{1bb9}', SC_Numeric), ('\u{1bba}', '\u{1be5}', SC_OLetter),
2683
        ('\u{1be6}', '\u{1bf3}', SC_Extend), ('\u{1c00}', '\u{1c23}', SC_OLetter), ('\u{1c24}',
2684
        '\u{1c37}', SC_Extend), ('\u{1c3b}', '\u{1c3c}', SC_STerm), ('\u{1c40}', '\u{1c49}',
2685
        SC_Numeric), ('\u{1c4d}', '\u{1c4f}', SC_OLetter), ('\u{1c50}', '\u{1c59}', SC_Numeric),
2686
        ('\u{1c5a}', '\u{1c7d}', SC_OLetter), ('\u{1c7e}', '\u{1c7f}', SC_STerm), ('\u{1c80}',
2687
        '\u{1c88}', SC_Lower), ('\u{1c89}', '\u{1c89}', SC_Upper), ('\u{1c8a}', '\u{1c8a}',
2688
        SC_Lower), ('\u{1c90}', '\u{1cba}', SC_OLetter), ('\u{1cbd}', '\u{1cbf}', SC_OLetter),
2689
        ('\u{1cd0}', '\u{1cd2}', SC_Extend), ('\u{1cd4}', '\u{1ce8}', SC_Extend), ('\u{1ce9}',
2690
        '\u{1cec}', SC_OLetter), ('\u{1ced}', '\u{1ced}', SC_Extend), ('\u{1cee}', '\u{1cf3}',
2691
        SC_OLetter), ('\u{1cf4}', '\u{1cf4}', SC_Extend), ('\u{1cf5}', '\u{1cf6}', SC_OLetter),
2692
        ('\u{1cf7}', '\u{1cf9}', SC_Extend), ('\u{1cfa}', '\u{1cfa}', SC_OLetter), ('\u{1d00}',
2693
        '\u{1dbf}', SC_Lower), ('\u{1dc0}', '\u{1dff}', SC_Extend), ('\u{1e00}', '\u{1e00}',
2694
        SC_Upper), ('\u{1e01}', '\u{1e01}', SC_Lower), ('\u{1e02}', '\u{1e02}', SC_Upper),
2695
        ('\u{1e03}', '\u{1e03}', SC_Lower), ('\u{1e04}', '\u{1e04}', SC_Upper), ('\u{1e05}',
2696
        '\u{1e05}', SC_Lower), ('\u{1e06}', '\u{1e06}', SC_Upper), ('\u{1e07}', '\u{1e07}',
2697
        SC_Lower), ('\u{1e08}', '\u{1e08}', SC_Upper), ('\u{1e09}', '\u{1e09}', SC_Lower),
2698
        ('\u{1e0a}', '\u{1e0a}', SC_Upper), ('\u{1e0b}', '\u{1e0b}', SC_Lower), ('\u{1e0c}',
2699
        '\u{1e0c}', SC_Upper), ('\u{1e0d}', '\u{1e0d}', SC_Lower), ('\u{1e0e}', '\u{1e0e}',
2700
        SC_Upper), ('\u{1e0f}', '\u{1e0f}', SC_Lower), ('\u{1e10}', '\u{1e10}', SC_Upper),
2701
        ('\u{1e11}', '\u{1e11}', SC_Lower), ('\u{1e12}', '\u{1e12}', SC_Upper), ('\u{1e13}',
2702
        '\u{1e13}', SC_Lower), ('\u{1e14}', '\u{1e14}', SC_Upper), ('\u{1e15}', '\u{1e15}',
2703
        SC_Lower), ('\u{1e16}', '\u{1e16}', SC_Upper), ('\u{1e17}', '\u{1e17}', SC_Lower),
2704
        ('\u{1e18}', '\u{1e18}', SC_Upper), ('\u{1e19}', '\u{1e19}', SC_Lower), ('\u{1e1a}',
2705
        '\u{1e1a}', SC_Upper), ('\u{1e1b}', '\u{1e1b}', SC_Lower), ('\u{1e1c}', '\u{1e1c}',
2706
        SC_Upper), ('\u{1e1d}', '\u{1e1d}', SC_Lower), ('\u{1e1e}', '\u{1e1e}', SC_Upper),
2707
        ('\u{1e1f}', '\u{1e1f}', SC_Lower), ('\u{1e20}', '\u{1e20}', SC_Upper), ('\u{1e21}',
2708
        '\u{1e21}', SC_Lower), ('\u{1e22}', '\u{1e22}', SC_Upper), ('\u{1e23}', '\u{1e23}',
2709
        SC_Lower), ('\u{1e24}', '\u{1e24}', SC_Upper), ('\u{1e25}', '\u{1e25}', SC_Lower),
2710
        ('\u{1e26}', '\u{1e26}', SC_Upper), ('\u{1e27}', '\u{1e27}', SC_Lower), ('\u{1e28}',
2711
        '\u{1e28}', SC_Upper), ('\u{1e29}', '\u{1e29}', SC_Lower), ('\u{1e2a}', '\u{1e2a}',
2712
        SC_Upper), ('\u{1e2b}', '\u{1e2b}', SC_Lower), ('\u{1e2c}', '\u{1e2c}', SC_Upper),
2713
        ('\u{1e2d}', '\u{1e2d}', SC_Lower), ('\u{1e2e}', '\u{1e2e}', SC_Upper), ('\u{1e2f}',
2714
        '\u{1e2f}', SC_Lower), ('\u{1e30}', '\u{1e30}', SC_Upper), ('\u{1e31}', '\u{1e31}',
2715
        SC_Lower), ('\u{1e32}', '\u{1e32}', SC_Upper), ('\u{1e33}', '\u{1e33}', SC_Lower),
2716
        ('\u{1e34}', '\u{1e34}', SC_Upper), ('\u{1e35}', '\u{1e35}', SC_Lower), ('\u{1e36}',
2717
        '\u{1e36}', SC_Upper), ('\u{1e37}', '\u{1e37}', SC_Lower), ('\u{1e38}', '\u{1e38}',
2718
        SC_Upper), ('\u{1e39}', '\u{1e39}', SC_Lower), ('\u{1e3a}', '\u{1e3a}', SC_Upper),
2719
        ('\u{1e3b}', '\u{1e3b}', SC_Lower), ('\u{1e3c}', '\u{1e3c}', SC_Upper), ('\u{1e3d}',
2720
        '\u{1e3d}', SC_Lower), ('\u{1e3e}', '\u{1e3e}', SC_Upper), ('\u{1e3f}', '\u{1e3f}',
2721
        SC_Lower), ('\u{1e40}', '\u{1e40}', SC_Upper), ('\u{1e41}', '\u{1e41}', SC_Lower),
2722
        ('\u{1e42}', '\u{1e42}', SC_Upper), ('\u{1e43}', '\u{1e43}', SC_Lower), ('\u{1e44}',
2723
        '\u{1e44}', SC_Upper), ('\u{1e45}', '\u{1e45}', SC_Lower), ('\u{1e46}', '\u{1e46}',
2724
        SC_Upper), ('\u{1e47}', '\u{1e47}', SC_Lower), ('\u{1e48}', '\u{1e48}', SC_Upper),
2725
        ('\u{1e49}', '\u{1e49}', SC_Lower), ('\u{1e4a}', '\u{1e4a}', SC_Upper), ('\u{1e4b}',
2726
        '\u{1e4b}', SC_Lower), ('\u{1e4c}', '\u{1e4c}', SC_Upper), ('\u{1e4d}', '\u{1e4d}',
2727
        SC_Lower), ('\u{1e4e}', '\u{1e4e}', SC_Upper), ('\u{1e4f}', '\u{1e4f}', SC_Lower),
2728
        ('\u{1e50}', '\u{1e50}', SC_Upper), ('\u{1e51}', '\u{1e51}', SC_Lower), ('\u{1e52}',
2729
        '\u{1e52}', SC_Upper), ('\u{1e53}', '\u{1e53}', SC_Lower), ('\u{1e54}', '\u{1e54}',
2730
        SC_Upper), ('\u{1e55}', '\u{1e55}', SC_Lower), ('\u{1e56}', '\u{1e56}', SC_Upper),
2731
        ('\u{1e57}', '\u{1e57}', SC_Lower), ('\u{1e58}', '\u{1e58}', SC_Upper), ('\u{1e59}',
2732
        '\u{1e59}', SC_Lower), ('\u{1e5a}', '\u{1e5a}', SC_Upper), ('\u{1e5b}', '\u{1e5b}',
2733
        SC_Lower), ('\u{1e5c}', '\u{1e5c}', SC_Upper), ('\u{1e5d}', '\u{1e5d}', SC_Lower),
2734
        ('\u{1e5e}', '\u{1e5e}', SC_Upper), ('\u{1e5f}', '\u{1e5f}', SC_Lower), ('\u{1e60}',
2735
        '\u{1e60}', SC_Upper), ('\u{1e61}', '\u{1e61}', SC_Lower), ('\u{1e62}', '\u{1e62}',
2736
        SC_Upper), ('\u{1e63}', '\u{1e63}', SC_Lower), ('\u{1e64}', '\u{1e64}', SC_Upper),
2737
        ('\u{1e65}', '\u{1e65}', SC_Lower), ('\u{1e66}', '\u{1e66}', SC_Upper), ('\u{1e67}',
2738
        '\u{1e67}', SC_Lower), ('\u{1e68}', '\u{1e68}', SC_Upper), ('\u{1e69}', '\u{1e69}',
2739
        SC_Lower), ('\u{1e6a}', '\u{1e6a}', SC_Upper), ('\u{1e6b}', '\u{1e6b}', SC_Lower),
2740
        ('\u{1e6c}', '\u{1e6c}', SC_Upper), ('\u{1e6d}', '\u{1e6d}', SC_Lower), ('\u{1e6e}',
2741
        '\u{1e6e}', SC_Upper), ('\u{1e6f}', '\u{1e6f}', SC_Lower), ('\u{1e70}', '\u{1e70}',
2742
        SC_Upper), ('\u{1e71}', '\u{1e71}', SC_Lower), ('\u{1e72}', '\u{1e72}', SC_Upper),
2743
        ('\u{1e73}', '\u{1e73}', SC_Lower), ('\u{1e74}', '\u{1e74}', SC_Upper), ('\u{1e75}',
2744
        '\u{1e75}', SC_Lower), ('\u{1e76}', '\u{1e76}', SC_Upper), ('\u{1e77}', '\u{1e77}',
2745
        SC_Lower), ('\u{1e78}', '\u{1e78}', SC_Upper), ('\u{1e79}', '\u{1e79}', SC_Lower),
2746
        ('\u{1e7a}', '\u{1e7a}', SC_Upper), ('\u{1e7b}', '\u{1e7b}', SC_Lower), ('\u{1e7c}',
2747
        '\u{1e7c}', SC_Upper), ('\u{1e7d}', '\u{1e7d}', SC_Lower), ('\u{1e7e}', '\u{1e7e}',
2748
        SC_Upper), ('\u{1e7f}', '\u{1e7f}', SC_Lower), ('\u{1e80}', '\u{1e80}', SC_Upper),
2749
        ('\u{1e81}', '\u{1e81}', SC_Lower), ('\u{1e82}', '\u{1e82}', SC_Upper), ('\u{1e83}',
2750
        '\u{1e83}', SC_Lower), ('\u{1e84}', '\u{1e84}', SC_Upper), ('\u{1e85}', '\u{1e85}',
2751
        SC_Lower), ('\u{1e86}', '\u{1e86}', SC_Upper), ('\u{1e87}', '\u{1e87}', SC_Lower),
2752
        ('\u{1e88}', '\u{1e88}', SC_Upper), ('\u{1e89}', '\u{1e89}', SC_Lower), ('\u{1e8a}',
2753
        '\u{1e8a}', SC_Upper), ('\u{1e8b}', '\u{1e8b}', SC_Lower), ('\u{1e8c}', '\u{1e8c}',
2754
        SC_Upper), ('\u{1e8d}', '\u{1e8d}', SC_Lower), ('\u{1e8e}', '\u{1e8e}', SC_Upper),
2755
        ('\u{1e8f}', '\u{1e8f}', SC_Lower), ('\u{1e90}', '\u{1e90}', SC_Upper), ('\u{1e91}',
2756
        '\u{1e91}', SC_Lower), ('\u{1e92}', '\u{1e92}', SC_Upper), ('\u{1e93}', '\u{1e93}',
2757
        SC_Lower), ('\u{1e94}', '\u{1e94}', SC_Upper), ('\u{1e95}', '\u{1e9d}', SC_Lower),
2758
        ('\u{1e9e}', '\u{1e9e}', SC_Upper), ('\u{1e9f}', '\u{1e9f}', SC_Lower), ('\u{1ea0}',
2759
        '\u{1ea0}', SC_Upper), ('\u{1ea1}', '\u{1ea1}', SC_Lower), ('\u{1ea2}', '\u{1ea2}',
2760
        SC_Upper), ('\u{1ea3}', '\u{1ea3}', SC_Lower), ('\u{1ea4}', '\u{1ea4}', SC_Upper),
2761
        ('\u{1ea5}', '\u{1ea5}', SC_Lower), ('\u{1ea6}', '\u{1ea6}', SC_Upper), ('\u{1ea7}',
2762
        '\u{1ea7}', SC_Lower), ('\u{1ea8}', '\u{1ea8}', SC_Upper), ('\u{1ea9}', '\u{1ea9}',
2763
        SC_Lower), ('\u{1eaa}', '\u{1eaa}', SC_Upper), ('\u{1eab}', '\u{1eab}', SC_Lower),
2764
        ('\u{1eac}', '\u{1eac}', SC_Upper), ('\u{1ead}', '\u{1ead}', SC_Lower), ('\u{1eae}',
2765
        '\u{1eae}', SC_Upper), ('\u{1eaf}', '\u{1eaf}', SC_Lower), ('\u{1eb0}', '\u{1eb0}',
2766
        SC_Upper), ('\u{1eb1}', '\u{1eb1}', SC_Lower), ('\u{1eb2}', '\u{1eb2}', SC_Upper),
2767
        ('\u{1eb3}', '\u{1eb3}', SC_Lower), ('\u{1eb4}', '\u{1eb4}', SC_Upper), ('\u{1eb5}',
2768
        '\u{1eb5}', SC_Lower), ('\u{1eb6}', '\u{1eb6}', SC_Upper), ('\u{1eb7}', '\u{1eb7}',
2769
        SC_Lower), ('\u{1eb8}', '\u{1eb8}', SC_Upper), ('\u{1eb9}', '\u{1eb9}', SC_Lower),
2770
        ('\u{1eba}', '\u{1eba}', SC_Upper), ('\u{1ebb}', '\u{1ebb}', SC_Lower), ('\u{1ebc}',
2771
        '\u{1ebc}', SC_Upper), ('\u{1ebd}', '\u{1ebd}', SC_Lower), ('\u{1ebe}', '\u{1ebe}',
2772
        SC_Upper), ('\u{1ebf}', '\u{1ebf}', SC_Lower), ('\u{1ec0}', '\u{1ec0}', SC_Upper),
2773
        ('\u{1ec1}', '\u{1ec1}', SC_Lower), ('\u{1ec2}', '\u{1ec2}', SC_Upper), ('\u{1ec3}',
2774
        '\u{1ec3}', SC_Lower), ('\u{1ec4}', '\u{1ec4}', SC_Upper), ('\u{1ec5}', '\u{1ec5}',
2775
        SC_Lower), ('\u{1ec6}', '\u{1ec6}', SC_Upper), ('\u{1ec7}', '\u{1ec7}', SC_Lower),
2776
        ('\u{1ec8}', '\u{1ec8}', SC_Upper), ('\u{1ec9}', '\u{1ec9}', SC_Lower), ('\u{1eca}',
2777
        '\u{1eca}', SC_Upper), ('\u{1ecb}', '\u{1ecb}', SC_Lower), ('\u{1ecc}', '\u{1ecc}',
2778
        SC_Upper), ('\u{1ecd}', '\u{1ecd}', SC_Lower), ('\u{1ece}', '\u{1ece}', SC_Upper),
2779
        ('\u{1ecf}', '\u{1ecf}', SC_Lower), ('\u{1ed0}', '\u{1ed0}', SC_Upper), ('\u{1ed1}',
2780
        '\u{1ed1}', SC_Lower), ('\u{1ed2}', '\u{1ed2}', SC_Upper), ('\u{1ed3}', '\u{1ed3}',
2781
        SC_Lower), ('\u{1ed4}', '\u{1ed4}', SC_Upper), ('\u{1ed5}', '\u{1ed5}', SC_Lower),
2782
        ('\u{1ed6}', '\u{1ed6}', SC_Upper), ('\u{1ed7}', '\u{1ed7}', SC_Lower), ('\u{1ed8}',
2783
        '\u{1ed8}', SC_Upper), ('\u{1ed9}', '\u{1ed9}', SC_Lower), ('\u{1eda}', '\u{1eda}',
2784
        SC_Upper), ('\u{1edb}', '\u{1edb}', SC_Lower), ('\u{1edc}', '\u{1edc}', SC_Upper),
2785
        ('\u{1edd}', '\u{1edd}', SC_Lower), ('\u{1ede}', '\u{1ede}', SC_Upper), ('\u{1edf}',
2786
        '\u{1edf}', SC_Lower), ('\u{1ee0}', '\u{1ee0}', SC_Upper), ('\u{1ee1}', '\u{1ee1}',
2787
        SC_Lower), ('\u{1ee2}', '\u{1ee2}', SC_Upper), ('\u{1ee3}', '\u{1ee3}', SC_Lower),
2788
        ('\u{1ee4}', '\u{1ee4}', SC_Upper), ('\u{1ee5}', '\u{1ee5}', SC_Lower), ('\u{1ee6}',
2789
        '\u{1ee6}', SC_Upper), ('\u{1ee7}', '\u{1ee7}', SC_Lower), ('\u{1ee8}', '\u{1ee8}',
2790
        SC_Upper), ('\u{1ee9}', '\u{1ee9}', SC_Lower), ('\u{1eea}', '\u{1eea}', SC_Upper),
2791
        ('\u{1eeb}', '\u{1eeb}', SC_Lower), ('\u{1eec}', '\u{1eec}', SC_Upper), ('\u{1eed}',
2792
        '\u{1eed}', SC_Lower), ('\u{1eee}', '\u{1eee}', SC_Upper), ('\u{1eef}', '\u{1eef}',
2793
        SC_Lower), ('\u{1ef0}', '\u{1ef0}', SC_Upper), ('\u{1ef1}', '\u{1ef1}', SC_Lower),
2794
        ('\u{1ef2}', '\u{1ef2}', SC_Upper), ('\u{1ef3}', '\u{1ef3}', SC_Lower), ('\u{1ef4}',
2795
        '\u{1ef4}', SC_Upper), ('\u{1ef5}', '\u{1ef5}', SC_Lower), ('\u{1ef6}', '\u{1ef6}',
2796
        SC_Upper), ('\u{1ef7}', '\u{1ef7}', SC_Lower), ('\u{1ef8}', '\u{1ef8}', SC_Upper),
2797
        ('\u{1ef9}', '\u{1ef9}', SC_Lower), ('\u{1efa}', '\u{1efa}', SC_Upper), ('\u{1efb}',
2798
        '\u{1efb}', SC_Lower), ('\u{1efc}', '\u{1efc}', SC_Upper), ('\u{1efd}', '\u{1efd}',
2799
        SC_Lower), ('\u{1efe}', '\u{1efe}', SC_Upper), ('\u{1eff}', '\u{1f07}', SC_Lower),
2800
        ('\u{1f08}', '\u{1f0f}', SC_Upper), ('\u{1f10}', '\u{1f15}', SC_Lower), ('\u{1f18}',
2801
        '\u{1f1d}', SC_Upper), ('\u{1f20}', '\u{1f27}', SC_Lower), ('\u{1f28}', '\u{1f2f}',
2802
        SC_Upper), ('\u{1f30}', '\u{1f37}', SC_Lower), ('\u{1f38}', '\u{1f3f}', SC_Upper),
2803
        ('\u{1f40}', '\u{1f45}', SC_Lower), ('\u{1f48}', '\u{1f4d}', SC_Upper), ('\u{1f50}',
2804
        '\u{1f57}', SC_Lower), ('\u{1f59}', '\u{1f59}', SC_Upper), ('\u{1f5b}', '\u{1f5b}',
2805
        SC_Upper), ('\u{1f5d}', '\u{1f5d}', SC_Upper), ('\u{1f5f}', '\u{1f5f}', SC_Upper),
2806
        ('\u{1f60}', '\u{1f67}', SC_Lower), ('\u{1f68}', '\u{1f6f}', SC_Upper), ('\u{1f70}',
2807
        '\u{1f7d}', SC_Lower), ('\u{1f80}', '\u{1f87}', SC_Lower), ('\u{1f88}', '\u{1f8f}',
2808
        SC_Upper), ('\u{1f90}', '\u{1f97}', SC_Lower), ('\u{1f98}', '\u{1f9f}', SC_Upper),
2809
        ('\u{1fa0}', '\u{1fa7}', SC_Lower), ('\u{1fa8}', '\u{1faf}', SC_Upper), ('\u{1fb0}',
2810
        '\u{1fb4}', SC_Lower), ('\u{1fb6}', '\u{1fb7}', SC_Lower), ('\u{1fb8}', '\u{1fbc}',
2811
        SC_Upper), ('\u{1fbe}', '\u{1fbe}', SC_Lower), ('\u{1fc2}', '\u{1fc4}', SC_Lower),
2812
        ('\u{1fc6}', '\u{1fc7}', SC_Lower), ('\u{1fc8}', '\u{1fcc}', SC_Upper), ('\u{1fd0}',
2813
        '\u{1fd3}', SC_Lower), ('\u{1fd6}', '\u{1fd7}', SC_Lower), ('\u{1fd8}', '\u{1fdb}',
2814
        SC_Upper), ('\u{1fe0}', '\u{1fe7}', SC_Lower), ('\u{1fe8}', '\u{1fec}', SC_Upper),
2815
        ('\u{1ff2}', '\u{1ff4}', SC_Lower), ('\u{1ff6}', '\u{1ff7}', SC_Lower), ('\u{1ff8}',
2816
        '\u{1ffc}', SC_Upper), ('\u{2000}', '\u{200a}', SC_Sp), ('\u{200b}', '\u{200b}', SC_Format),
2817
        ('\u{200c}', '\u{200d}', SC_Extend), ('\u{200e}', '\u{200f}', SC_Format), ('\u{2013}',
2818
        '\u{2014}', SC_SContinue), ('\u{2018}', '\u{201f}', SC_Close), ('\u{2024}', '\u{2024}',
2819
        SC_ATerm), ('\u{2028}', '\u{2029}', SC_Sep), ('\u{202a}', '\u{202e}', SC_Format),
2820
        ('\u{202f}', '\u{202f}', SC_Sp), ('\u{2039}', '\u{203a}', SC_Close), ('\u{203c}',
2821
        '\u{203d}', SC_STerm), ('\u{2045}', '\u{2046}', SC_Close), ('\u{2047}', '\u{2049}',
2822
        SC_STerm), ('\u{205f}', '\u{205f}', SC_Sp), ('\u{2060}', '\u{2064}', SC_Format),
2823
        ('\u{2066}', '\u{206f}', SC_Format), ('\u{2071}', '\u{2071}', SC_Lower), ('\u{207d}',
2824
        '\u{207e}', SC_Close), ('\u{207f}', '\u{207f}', SC_Lower), ('\u{208d}', '\u{208e}',
2825
        SC_Close), ('\u{2090}', '\u{209c}', SC_Lower), ('\u{20d0}', '\u{20f0}', SC_Extend),
2826
        ('\u{2102}', '\u{2102}', SC_Upper), ('\u{2107}', '\u{2107}', SC_Upper), ('\u{210a}',
2827
        '\u{210a}', SC_Lower), ('\u{210b}', '\u{210d}', SC_Upper), ('\u{210e}', '\u{210f}',
2828
        SC_Lower), ('\u{2110}', '\u{2112}', SC_Upper), ('\u{2113}', '\u{2113}', SC_Lower),
2829
        ('\u{2115}', '\u{2115}', SC_Upper), ('\u{2119}', '\u{211d}', SC_Upper), ('\u{2124}',
2830
        '\u{2124}', SC_Upper), ('\u{2126}', '\u{2126}', SC_Upper), ('\u{2128}', '\u{2128}',
2831
        SC_Upper), ('\u{212a}', '\u{212d}', SC_Upper), ('\u{212f}', '\u{212f}', SC_Lower),
2832
        ('\u{2130}', '\u{2133}', SC_Upper), ('\u{2134}', '\u{2134}', SC_Lower), ('\u{2135}',
2833
        '\u{2138}', SC_OLetter), ('\u{2139}', '\u{2139}', SC_Lower), ('\u{213c}', '\u{213d}',
2834
        SC_Lower), ('\u{213e}', '\u{213f}', SC_Upper), ('\u{2145}', '\u{2145}', SC_Upper),
2835
        ('\u{2146}', '\u{2149}', SC_Lower), ('\u{214e}', '\u{214e}', SC_Lower), ('\u{2160}',
2836
        '\u{216f}', SC_Upper), ('\u{2170}', '\u{217f}', SC_Lower), ('\u{2180}', '\u{2182}',
2837
        SC_OLetter), ('\u{2183}', '\u{2183}', SC_Upper), ('\u{2184}', '\u{2184}', SC_Lower),
2838
        ('\u{2185}', '\u{2188}', SC_OLetter), ('\u{2308}', '\u{230b}', SC_Close), ('\u{2329}',
2839
        '\u{232a}', SC_Close), ('\u{24b6}', '\u{24cf}', SC_Upper), ('\u{24d0}', '\u{24e9}',
2840
        SC_Lower), ('\u{275b}', '\u{2760}', SC_Close), ('\u{2768}', '\u{2775}', SC_Close),
2841
        ('\u{27c5}', '\u{27c6}', SC_Close), ('\u{27e6}', '\u{27ef}', SC_Close), ('\u{2983}',
2842
        '\u{2998}', SC_Close), ('\u{29d8}', '\u{29db}', SC_Close), ('\u{29fc}', '\u{29fd}',
2843
        SC_Close), ('\u{2c00}', '\u{2c2f}', SC_Upper), ('\u{2c30}', '\u{2c5f}', SC_Lower),
2844
        ('\u{2c60}', '\u{2c60}', SC_Upper), ('\u{2c61}', '\u{2c61}', SC_Lower), ('\u{2c62}',
2845
        '\u{2c64}', SC_Upper), ('\u{2c65}', '\u{2c66}', SC_Lower), ('\u{2c67}', '\u{2c67}',
2846
        SC_Upper), ('\u{2c68}', '\u{2c68}', SC_Lower), ('\u{2c69}', '\u{2c69}', SC_Upper),
2847
        ('\u{2c6a}', '\u{2c6a}', SC_Lower), ('\u{2c6b}', '\u{2c6b}', SC_Upper), ('\u{2c6c}',
2848
        '\u{2c6c}', SC_Lower), ('\u{2c6d}', '\u{2c70}', SC_Upper), ('\u{2c71}', '\u{2c71}',
2849
        SC_Lower), ('\u{2c72}', '\u{2c72}', SC_Upper), ('\u{2c73}', '\u{2c74}', SC_Lower),
2850
        ('\u{2c75}', '\u{2c75}', SC_Upper), ('\u{2c76}', '\u{2c7d}', SC_Lower), ('\u{2c7e}',
2851
        '\u{2c80}', SC_Upper), ('\u{2c81}', '\u{2c81}', SC_Lower), ('\u{2c82}', '\u{2c82}',
2852
        SC_Upper), ('\u{2c83}', '\u{2c83}', SC_Lower), ('\u{2c84}', '\u{2c84}', SC_Upper),
2853
        ('\u{2c85}', '\u{2c85}', SC_Lower), ('\u{2c86}', '\u{2c86}', SC_Upper), ('\u{2c87}',
2854
        '\u{2c87}', SC_Lower), ('\u{2c88}', '\u{2c88}', SC_Upper), ('\u{2c89}', '\u{2c89}',
2855
        SC_Lower), ('\u{2c8a}', '\u{2c8a}', SC_Upper), ('\u{2c8b}', '\u{2c8b}', SC_Lower),
2856
        ('\u{2c8c}', '\u{2c8c}', SC_Upper), ('\u{2c8d}', '\u{2c8d}', SC_Lower), ('\u{2c8e}',
2857
        '\u{2c8e}', SC_Upper), ('\u{2c8f}', '\u{2c8f}', SC_Lower), ('\u{2c90}', '\u{2c90}',
2858
        SC_Upper), ('\u{2c91}', '\u{2c91}', SC_Lower), ('\u{2c92}', '\u{2c92}', SC_Upper),
2859
        ('\u{2c93}', '\u{2c93}', SC_Lower), ('\u{2c94}', '\u{2c94}', SC_Upper), ('\u{2c95}',
2860
        '\u{2c95}', SC_Lower), ('\u{2c96}', '\u{2c96}', SC_Upper), ('\u{2c97}', '\u{2c97}',
2861
        SC_Lower), ('\u{2c98}', '\u{2c98}', SC_Upper), ('\u{2c99}', '\u{2c99}', SC_Lower),
2862
        ('\u{2c9a}', '\u{2c9a}', SC_Upper), ('\u{2c9b}', '\u{2c9b}', SC_Lower), ('\u{2c9c}',
2863
        '\u{2c9c}', SC_Upper), ('\u{2c9d}', '\u{2c9d}', SC_Lower), ('\u{2c9e}', '\u{2c9e}',
2864
        SC_Upper), ('\u{2c9f}', '\u{2c9f}', SC_Lower), ('\u{2ca0}', '\u{2ca0}', SC_Upper),
2865
        ('\u{2ca1}', '\u{2ca1}', SC_Lower), ('\u{2ca2}', '\u{2ca2}', SC_Upper), ('\u{2ca3}',
2866
        '\u{2ca3}', SC_Lower), ('\u{2ca4}', '\u{2ca4}', SC_Upper), ('\u{2ca5}', '\u{2ca5}',
2867
        SC_Lower), ('\u{2ca6}', '\u{2ca6}', SC_Upper), ('\u{2ca7}', '\u{2ca7}', SC_Lower),
2868
        ('\u{2ca8}', '\u{2ca8}', SC_Upper), ('\u{2ca9}', '\u{2ca9}', SC_Lower), ('\u{2caa}',
2869
        '\u{2caa}', SC_Upper), ('\u{2cab}', '\u{2cab}', SC_Lower), ('\u{2cac}', '\u{2cac}',
2870
        SC_Upper), ('\u{2cad}', '\u{2cad}', SC_Lower), ('\u{2cae}', '\u{2cae}', SC_Upper),
2871
        ('\u{2caf}', '\u{2caf}', SC_Lower), ('\u{2cb0}', '\u{2cb0}', SC_Upper), ('\u{2cb1}',
2872
        '\u{2cb1}', SC_Lower), ('\u{2cb2}', '\u{2cb2}', SC_Upper), ('\u{2cb3}', '\u{2cb3}',
2873
        SC_Lower), ('\u{2cb4}', '\u{2cb4}', SC_Upper), ('\u{2cb5}', '\u{2cb5}', SC_Lower),
2874
        ('\u{2cb6}', '\u{2cb6}', SC_Upper), ('\u{2cb7}', '\u{2cb7}', SC_Lower), ('\u{2cb8}',
2875
        '\u{2cb8}', SC_Upper), ('\u{2cb9}', '\u{2cb9}', SC_Lower), ('\u{2cba}', '\u{2cba}',
2876
        SC_Upper), ('\u{2cbb}', '\u{2cbb}', SC_Lower), ('\u{2cbc}', '\u{2cbc}', SC_Upper),
2877
        ('\u{2cbd}', '\u{2cbd}', SC_Lower), ('\u{2cbe}', '\u{2cbe}', SC_Upper), ('\u{2cbf}',
2878
        '\u{2cbf}', SC_Lower), ('\u{2cc0}', '\u{2cc0}', SC_Upper), ('\u{2cc1}', '\u{2cc1}',
2879
        SC_Lower), ('\u{2cc2}', '\u{2cc2}', SC_Upper), ('\u{2cc3}', '\u{2cc3}', SC_Lower),
2880
        ('\u{2cc4}', '\u{2cc4}', SC_Upper), ('\u{2cc5}', '\u{2cc5}', SC_Lower), ('\u{2cc6}',
2881
        '\u{2cc6}', SC_Upper), ('\u{2cc7}', '\u{2cc7}', SC_Lower), ('\u{2cc8}', '\u{2cc8}',
2882
        SC_Upper), ('\u{2cc9}', '\u{2cc9}', SC_Lower), ('\u{2cca}', '\u{2cca}', SC_Upper),
2883
        ('\u{2ccb}', '\u{2ccb}', SC_Lower), ('\u{2ccc}', '\u{2ccc}', SC_Upper), ('\u{2ccd}',
2884
        '\u{2ccd}', SC_Lower), ('\u{2cce}', '\u{2cce}', SC_Upper), ('\u{2ccf}', '\u{2ccf}',
2885
        SC_Lower), ('\u{2cd0}', '\u{2cd0}', SC_Upper), ('\u{2cd1}', '\u{2cd1}', SC_Lower),
2886
        ('\u{2cd2}', '\u{2cd2}', SC_Upper), ('\u{2cd3}', '\u{2cd3}', SC_Lower), ('\u{2cd4}',
2887
        '\u{2cd4}', SC_Upper), ('\u{2cd5}', '\u{2cd5}', SC_Lower), ('\u{2cd6}', '\u{2cd6}',
2888
        SC_Upper), ('\u{2cd7}', '\u{2cd7}', SC_Lower), ('\u{2cd8}', '\u{2cd8}', SC_Upper),
2889
        ('\u{2cd9}', '\u{2cd9}', SC_Lower), ('\u{2cda}', '\u{2cda}', SC_Upper), ('\u{2cdb}',
2890
        '\u{2cdb}', SC_Lower), ('\u{2cdc}', '\u{2cdc}', SC_Upper), ('\u{2cdd}', '\u{2cdd}',
2891
        SC_Lower), ('\u{2cde}', '\u{2cde}', SC_Upper), ('\u{2cdf}', '\u{2cdf}', SC_Lower),
2892
        ('\u{2ce0}', '\u{2ce0}', SC_Upper), ('\u{2ce1}', '\u{2ce1}', SC_Lower), ('\u{2ce2}',
2893
        '\u{2ce2}', SC_Upper), ('\u{2ce3}', '\u{2ce4}', SC_Lower), ('\u{2ceb}', '\u{2ceb}',
2894
        SC_Upper), ('\u{2cec}', '\u{2cec}', SC_Lower), ('\u{2ced}', '\u{2ced}', SC_Upper),
2895
        ('\u{2cee}', '\u{2cee}', SC_Lower), ('\u{2cef}', '\u{2cf1}', SC_Extend), ('\u{2cf2}',
2896
        '\u{2cf2}', SC_Upper), ('\u{2cf3}', '\u{2cf3}', SC_Lower), ('\u{2cf9}', '\u{2cfb}',
2897
        SC_STerm), ('\u{2d00}', '\u{2d25}', SC_Lower), ('\u{2d27}', '\u{2d27}', SC_Lower),
2898
        ('\u{2d2d}', '\u{2d2d}', SC_Lower), ('\u{2d30}', '\u{2d67}', SC_OLetter), ('\u{2d6f}',
2899
        '\u{2d6f}', SC_OLetter), ('\u{2d7f}', '\u{2d7f}', SC_Extend), ('\u{2d80}', '\u{2d96}',
2900
        SC_OLetter), ('\u{2da0}', '\u{2da6}', SC_OLetter), ('\u{2da8}', '\u{2dae}', SC_OLetter),
2901
        ('\u{2db0}', '\u{2db6}', SC_OLetter), ('\u{2db8}', '\u{2dbe}', SC_OLetter), ('\u{2dc0}',
2902
        '\u{2dc6}', SC_OLetter), ('\u{2dc8}', '\u{2dce}', SC_OLetter), ('\u{2dd0}', '\u{2dd6}',
2903
        SC_OLetter), ('\u{2dd8}', '\u{2dde}', SC_OLetter), ('\u{2de0}', '\u{2dff}', SC_Extend),
2904
        ('\u{2e00}', '\u{2e0d}', SC_Close), ('\u{2e1c}', '\u{2e1d}', SC_Close), ('\u{2e20}',
2905
        '\u{2e29}', SC_Close), ('\u{2e2e}', '\u{2e2e}', SC_STerm), ('\u{2e2f}', '\u{2e2f}',
2906
        SC_OLetter), ('\u{2e3c}', '\u{2e3c}', SC_STerm), ('\u{2e42}', '\u{2e42}', SC_Close),
2907
        ('\u{2e53}', '\u{2e54}', SC_STerm), ('\u{2e55}', '\u{2e5c}', SC_Close), ('\u{3000}',
2908
        '\u{3000}', SC_Sp), ('\u{3001}', '\u{3001}', SC_SContinue), ('\u{3002}', '\u{3002}',
2909
        SC_STerm), ('\u{3005}', '\u{3007}', SC_OLetter), ('\u{3008}', '\u{3011}', SC_Close),
2910
        ('\u{3014}', '\u{301b}', SC_Close), ('\u{301d}', '\u{301f}', SC_Close), ('\u{3021}',
2911
        '\u{3029}', SC_OLetter), ('\u{302a}', '\u{302f}', SC_Extend), ('\u{3031}', '\u{3035}',
2912
        SC_OLetter), ('\u{3038}', '\u{303c}', SC_OLetter), ('\u{3041}', '\u{3096}', SC_OLetter),
2913
        ('\u{3099}', '\u{309a}', SC_Extend), ('\u{309d}', '\u{309f}', SC_OLetter), ('\u{30a1}',
2914
        '\u{30fa}', SC_OLetter), ('\u{30fc}', '\u{30ff}', SC_OLetter), ('\u{3105}', '\u{312f}',
2915
        SC_OLetter), ('\u{3131}', '\u{318e}', SC_OLetter), ('\u{31a0}', '\u{31bf}', SC_OLetter),
2916
        ('\u{31f0}', '\u{31ff}', SC_OLetter), ('\u{3400}', '\u{4dbf}', SC_OLetter), ('\u{4e00}',
2917
        '\u{a48c}', SC_OLetter), ('\u{a4d0}', '\u{a4fd}', SC_OLetter), ('\u{a4ff}', '\u{a4ff}',
2918
        SC_STerm), ('\u{a500}', '\u{a60c}', SC_OLetter), ('\u{a60e}', '\u{a60f}', SC_STerm),
2919
        ('\u{a610}', '\u{a61f}', SC_OLetter), ('\u{a620}', '\u{a629}', SC_Numeric), ('\u{a62a}',
2920
        '\u{a62b}', SC_OLetter), ('\u{a640}', '\u{a640}', SC_Upper), ('\u{a641}', '\u{a641}',
2921
        SC_Lower), ('\u{a642}', '\u{a642}', SC_Upper), ('\u{a643}', '\u{a643}', SC_Lower),
2922
        ('\u{a644}', '\u{a644}', SC_Upper), ('\u{a645}', '\u{a645}', SC_Lower), ('\u{a646}',
2923
        '\u{a646}', SC_Upper), ('\u{a647}', '\u{a647}', SC_Lower), ('\u{a648}', '\u{a648}',
2924
        SC_Upper), ('\u{a649}', '\u{a649}', SC_Lower), ('\u{a64a}', '\u{a64a}', SC_Upper),
2925
        ('\u{a64b}', '\u{a64b}', SC_Lower), ('\u{a64c}', '\u{a64c}', SC_Upper), ('\u{a64d}',
2926
        '\u{a64d}', SC_Lower), ('\u{a64e}', '\u{a64e}', SC_Upper), ('\u{a64f}', '\u{a64f}',
2927
        SC_Lower), ('\u{a650}', '\u{a650}', SC_Upper), ('\u{a651}', '\u{a651}', SC_Lower),
2928
        ('\u{a652}', '\u{a652}', SC_Upper), ('\u{a653}', '\u{a653}', SC_Lower), ('\u{a654}',
2929
        '\u{a654}', SC_Upper), ('\u{a655}', '\u{a655}', SC_Lower), ('\u{a656}', '\u{a656}',
2930
        SC_Upper), ('\u{a657}', '\u{a657}', SC_Lower), ('\u{a658}', '\u{a658}', SC_Upper),
2931
        ('\u{a659}', '\u{a659}', SC_Lower), ('\u{a65a}', '\u{a65a}', SC_Upper), ('\u{a65b}',
2932
        '\u{a65b}', SC_Lower), ('\u{a65c}', '\u{a65c}', SC_Upper), ('\u{a65d}', '\u{a65d}',
2933
        SC_Lower), ('\u{a65e}', '\u{a65e}', SC_Upper), ('\u{a65f}', '\u{a65f}', SC_Lower),
2934
        ('\u{a660}', '\u{a660}', SC_Upper), ('\u{a661}', '\u{a661}', SC_Lower), ('\u{a662}',
2935
        '\u{a662}', SC_Upper), ('\u{a663}', '\u{a663}', SC_Lower), ('\u{a664}', '\u{a664}',
2936
        SC_Upper), ('\u{a665}', '\u{a665}', SC_Lower), ('\u{a666}', '\u{a666}', SC_Upper),
2937
        ('\u{a667}', '\u{a667}', SC_Lower), ('\u{a668}', '\u{a668}', SC_Upper), ('\u{a669}',
2938
        '\u{a669}', SC_Lower), ('\u{a66a}', '\u{a66a}', SC_Upper), ('\u{a66b}', '\u{a66b}',
2939
        SC_Lower), ('\u{a66c}', '\u{a66c}', SC_Upper), ('\u{a66d}', '\u{a66d}', SC_Lower),
2940
        ('\u{a66e}', '\u{a66e}', SC_OLetter), ('\u{a66f}', '\u{a672}', SC_Extend), ('\u{a674}',
2941
        '\u{a67d}', SC_Extend), ('\u{a67f}', '\u{a67f}', SC_OLetter), ('\u{a680}', '\u{a680}',
2942
        SC_Upper), ('\u{a681}', '\u{a681}', SC_Lower), ('\u{a682}', '\u{a682}', SC_Upper),
2943
        ('\u{a683}', '\u{a683}', SC_Lower), ('\u{a684}', '\u{a684}', SC_Upper), ('\u{a685}',
2944
        '\u{a685}', SC_Lower), ('\u{a686}', '\u{a686}', SC_Upper), ('\u{a687}', '\u{a687}',
2945
        SC_Lower), ('\u{a688}', '\u{a688}', SC_Upper), ('\u{a689}', '\u{a689}', SC_Lower),
2946
        ('\u{a68a}', '\u{a68a}', SC_Upper), ('\u{a68b}', '\u{a68b}', SC_Lower), ('\u{a68c}',
2947
        '\u{a68c}', SC_Upper), ('\u{a68d}', '\u{a68d}', SC_Lower), ('\u{a68e}', '\u{a68e}',
2948
        SC_Upper), ('\u{a68f}', '\u{a68f}', SC_Lower), ('\u{a690}', '\u{a690}', SC_Upper),
2949
        ('\u{a691}', '\u{a691}', SC_Lower), ('\u{a692}', '\u{a692}', SC_Upper), ('\u{a693}',
2950
        '\u{a693}', SC_Lower), ('\u{a694}', '\u{a694}', SC_Upper), ('\u{a695}', '\u{a695}',
2951
        SC_Lower), ('\u{a696}', '\u{a696}', SC_Upper), ('\u{a697}', '\u{a697}', SC_Lower),
2952
        ('\u{a698}', '\u{a698}', SC_Upper), ('\u{a699}', '\u{a699}', SC_Lower), ('\u{a69a}',
2953
        '\u{a69a}', SC_Upper), ('\u{a69b}', '\u{a69d}', SC_Lower), ('\u{a69e}', '\u{a69f}',
2954
        SC_Extend), ('\u{a6a0}', '\u{a6ef}', SC_OLetter), ('\u{a6f0}', '\u{a6f1}', SC_Extend),
2955
        ('\u{a6f3}', '\u{a6f3}', SC_STerm), ('\u{a6f7}', '\u{a6f7}', SC_STerm), ('\u{a717}',
2956
        '\u{a71f}', SC_OLetter), ('\u{a722}', '\u{a722}', SC_Upper), ('\u{a723}', '\u{a723}',
2957
        SC_Lower), ('\u{a724}', '\u{a724}', SC_Upper), ('\u{a725}', '\u{a725}', SC_Lower),
2958
        ('\u{a726}', '\u{a726}', SC_Upper), ('\u{a727}', '\u{a727}', SC_Lower), ('\u{a728}',
2959
        '\u{a728}', SC_Upper), ('\u{a729}', '\u{a729}', SC_Lower), ('\u{a72a}', '\u{a72a}',
2960
        SC_Upper), ('\u{a72b}', '\u{a72b}', SC_Lower), ('\u{a72c}', '\u{a72c}', SC_Upper),
2961
        ('\u{a72d}', '\u{a72d}', SC_Lower), ('\u{a72e}', '\u{a72e}', SC_Upper), ('\u{a72f}',
2962
        '\u{a731}', SC_Lower), ('\u{a732}', '\u{a732}', SC_Upper), ('\u{a733}', '\u{a733}',
2963
        SC_Lower), ('\u{a734}', '\u{a734}', SC_Upper), ('\u{a735}', '\u{a735}', SC_Lower),
2964
        ('\u{a736}', '\u{a736}', SC_Upper), ('\u{a737}', '\u{a737}', SC_Lower), ('\u{a738}',
2965
        '\u{a738}', SC_Upper), ('\u{a739}', '\u{a739}', SC_Lower), ('\u{a73a}', '\u{a73a}',
2966
        SC_Upper), ('\u{a73b}', '\u{a73b}', SC_Lower), ('\u{a73c}', '\u{a73c}', SC_Upper),
2967
        ('\u{a73d}', '\u{a73d}', SC_Lower), ('\u{a73e}', '\u{a73e}', SC_Upper), ('\u{a73f}',
2968
        '\u{a73f}', SC_Lower), ('\u{a740}', '\u{a740}', SC_Upper), ('\u{a741}', '\u{a741}',
2969
        SC_Lower), ('\u{a742}', '\u{a742}', SC_Upper), ('\u{a743}', '\u{a743}', SC_Lower),
2970
        ('\u{a744}', '\u{a744}', SC_Upper), ('\u{a745}', '\u{a745}', SC_Lower), ('\u{a746}',
2971
        '\u{a746}', SC_Upper), ('\u{a747}', '\u{a747}', SC_Lower), ('\u{a748}', '\u{a748}',
2972
        SC_Upper), ('\u{a749}', '\u{a749}', SC_Lower), ('\u{a74a}', '\u{a74a}', SC_Upper),
2973
        ('\u{a74b}', '\u{a74b}', SC_Lower), ('\u{a74c}', '\u{a74c}', SC_Upper), ('\u{a74d}',
2974
        '\u{a74d}', SC_Lower), ('\u{a74e}', '\u{a74e}', SC_Upper), ('\u{a74f}', '\u{a74f}',
2975
        SC_Lower), ('\u{a750}', '\u{a750}', SC_Upper), ('\u{a751}', '\u{a751}', SC_Lower),
2976
        ('\u{a752}', '\u{a752}', SC_Upper), ('\u{a753}', '\u{a753}', SC_Lower), ('\u{a754}',
2977
        '\u{a754}', SC_Upper), ('\u{a755}', '\u{a755}', SC_Lower), ('\u{a756}', '\u{a756}',
2978
        SC_Upper), ('\u{a757}', '\u{a757}', SC_Lower), ('\u{a758}', '\u{a758}', SC_Upper),
2979
        ('\u{a759}', '\u{a759}', SC_Lower), ('\u{a75a}', '\u{a75a}', SC_Upper), ('\u{a75b}',
2980
        '\u{a75b}', SC_Lower), ('\u{a75c}', '\u{a75c}', SC_Upper), ('\u{a75d}', '\u{a75d}',
2981
        SC_Lower), ('\u{a75e}', '\u{a75e}', SC_Upper), ('\u{a75f}', '\u{a75f}', SC_Lower),
2982
        ('\u{a760}', '\u{a760}', SC_Upper), ('\u{a761}', '\u{a761}', SC_Lower), ('\u{a762}',
2983
        '\u{a762}', SC_Upper), ('\u{a763}', '\u{a763}', SC_Lower), ('\u{a764}', '\u{a764}',
2984
        SC_Upper), ('\u{a765}', '\u{a765}', SC_Lower), ('\u{a766}', '\u{a766}', SC_Upper),
2985
        ('\u{a767}', '\u{a767}', SC_Lower), ('\u{a768}', '\u{a768}', SC_Upper), ('\u{a769}',
2986
        '\u{a769}', SC_Lower), ('\u{a76a}', '\u{a76a}', SC_Upper), ('\u{a76b}', '\u{a76b}',
2987
        SC_Lower), ('\u{a76c}', '\u{a76c}', SC_Upper), ('\u{a76d}', '\u{a76d}', SC_Lower),
2988
        ('\u{a76e}', '\u{a76e}', SC_Upper), ('\u{a76f}', '\u{a778}', SC_Lower), ('\u{a779}',
2989
        '\u{a779}', SC_Upper), ('\u{a77a}', '\u{a77a}', SC_Lower), ('\u{a77b}', '\u{a77b}',
2990
        SC_Upper), ('\u{a77c}', '\u{a77c}', SC_Lower), ('\u{a77d}', '\u{a77e}', SC_Upper),
2991
        ('\u{a77f}', '\u{a77f}', SC_Lower), ('\u{a780}', '\u{a780}', SC_Upper), ('\u{a781}',
2992
        '\u{a781}', SC_Lower), ('\u{a782}', '\u{a782}', SC_Upper), ('\u{a783}', '\u{a783}',
2993
        SC_Lower), ('\u{a784}', '\u{a784}', SC_Upper), ('\u{a785}', '\u{a785}', SC_Lower),
2994
        ('\u{a786}', '\u{a786}', SC_Upper), ('\u{a787}', '\u{a787}', SC_Lower), ('\u{a788}',
2995
        '\u{a788}', SC_OLetter), ('\u{a78b}', '\u{a78b}', SC_Upper), ('\u{a78c}', '\u{a78c}',
2996
        SC_Lower), ('\u{a78d}', '\u{a78d}', SC_Upper), ('\u{a78e}', '\u{a78e}', SC_Lower),
2997
        ('\u{a78f}', '\u{a78f}', SC_OLetter), ('\u{a790}', '\u{a790}', SC_Upper), ('\u{a791}',
2998
        '\u{a791}', SC_Lower), ('\u{a792}', '\u{a792}', SC_Upper), ('\u{a793}', '\u{a795}',
2999
        SC_Lower), ('\u{a796}', '\u{a796}', SC_Upper), ('\u{a797}', '\u{a797}', SC_Lower),
3000
        ('\u{a798}', '\u{a798}', SC_Upper), ('\u{a799}', '\u{a799}', SC_Lower), ('\u{a79a}',
3001
        '\u{a79a}', SC_Upper), ('\u{a79b}', '\u{a79b}', SC_Lower), ('\u{a79c}', '\u{a79c}',
3002
        SC_Upper), ('\u{a79d}', '\u{a79d}', SC_Lower), ('\u{a79e}', '\u{a79e}', SC_Upper),
3003
        ('\u{a79f}', '\u{a79f}', SC_Lower), ('\u{a7a0}', '\u{a7a0}', SC_Upper), ('\u{a7a1}',
3004
        '\u{a7a1}', SC_Lower), ('\u{a7a2}', '\u{a7a2}', SC_Upper), ('\u{a7a3}', '\u{a7a3}',
3005
        SC_Lower), ('\u{a7a4}', '\u{a7a4}', SC_Upper), ('\u{a7a5}', '\u{a7a5}', SC_Lower),
3006
        ('\u{a7a6}', '\u{a7a6}', SC_Upper), ('\u{a7a7}', '\u{a7a7}', SC_Lower), ('\u{a7a8}',
3007
        '\u{a7a8}', SC_Upper), ('\u{a7a9}', '\u{a7a9}', SC_Lower), ('\u{a7aa}', '\u{a7ae}',
3008
        SC_Upper), ('\u{a7af}', '\u{a7af}', SC_Lower), ('\u{a7b0}', '\u{a7b4}', SC_Upper),
3009
        ('\u{a7b5}', '\u{a7b5}', SC_Lower), ('\u{a7b6}', '\u{a7b6}', SC_Upper), ('\u{a7b7}',
3010
        '\u{a7b7}', SC_Lower), ('\u{a7b8}', '\u{a7b8}', SC_Upper), ('\u{a7b9}', '\u{a7b9}',
3011
        SC_Lower), ('\u{a7ba}', '\u{a7ba}', SC_Upper), ('\u{a7bb}', '\u{a7bb}', SC_Lower),
3012
        ('\u{a7bc}', '\u{a7bc}', SC_Upper), ('\u{a7bd}', '\u{a7bd}', SC_Lower), ('\u{a7be}',
3013
        '\u{a7be}', SC_Upper), ('\u{a7bf}', '\u{a7bf}', SC_Lower), ('\u{a7c0}', '\u{a7c0}',
3014
        SC_Upper), ('\u{a7c1}', '\u{a7c1}', SC_Lower), ('\u{a7c2}', '\u{a7c2}', SC_Upper),
3015
        ('\u{a7c3}', '\u{a7c3}', SC_Lower), ('\u{a7c4}', '\u{a7c7}', SC_Upper), ('\u{a7c8}',
3016
        '\u{a7c8}', SC_Lower), ('\u{a7c9}', '\u{a7c9}', SC_Upper), ('\u{a7ca}', '\u{a7ca}',
3017
        SC_Lower), ('\u{a7cb}', '\u{a7cc}', SC_Upper), ('\u{a7cd}', '\u{a7cd}', SC_Lower),
3018
        ('\u{a7ce}', '\u{a7ce}', SC_Upper), ('\u{a7cf}', '\u{a7cf}', SC_Lower), ('\u{a7d0}',
3019
        '\u{a7d0}', SC_Upper), ('\u{a7d1}', '\u{a7d1}', SC_Lower), ('\u{a7d2}', '\u{a7d2}',
3020
        SC_Upper), ('\u{a7d3}', '\u{a7d3}', SC_Lower), ('\u{a7d4}', '\u{a7d4}', SC_Upper),
3021
        ('\u{a7d5}', '\u{a7d5}', SC_Lower), ('\u{a7d6}', '\u{a7d6}', SC_Upper), ('\u{a7d7}',
3022
        '\u{a7d7}', SC_Lower), ('\u{a7d8}', '\u{a7d8}', SC_Upper), ('\u{a7d9}', '\u{a7d9}',
3023
        SC_Lower), ('\u{a7da}', '\u{a7da}', SC_Upper), ('\u{a7db}', '\u{a7db}', SC_Lower),
3024
        ('\u{a7dc}', '\u{a7dc}', SC_Upper), ('\u{a7f1}', '\u{a7f4}', SC_Lower), ('\u{a7f5}',
3025
        '\u{a7f5}', SC_Upper), ('\u{a7f6}', '\u{a7f6}', SC_Lower), ('\u{a7f7}', '\u{a7f7}',
3026
        SC_OLetter), ('\u{a7f8}', '\u{a7fa}', SC_Lower), ('\u{a7fb}', '\u{a801}', SC_OLetter),
3027
        ('\u{a802}', '\u{a802}', SC_Extend), ('\u{a803}', '\u{a805}', SC_OLetter), ('\u{a806}',
3028
        '\u{a806}', SC_Extend), ('\u{a807}', '\u{a80a}', SC_OLetter), ('\u{a80b}', '\u{a80b}',
3029
        SC_Extend), ('\u{a80c}', '\u{a822}', SC_OLetter), ('\u{a823}', '\u{a827}', SC_Extend),
3030
        ('\u{a82c}', '\u{a82c}', SC_Extend), ('\u{a840}', '\u{a873}', SC_OLetter), ('\u{a876}',
3031
        '\u{a877}', SC_STerm), ('\u{a880}', '\u{a881}', SC_Extend), ('\u{a882}', '\u{a8b3}',
3032
        SC_OLetter), ('\u{a8b4}', '\u{a8c5}', SC_Extend), ('\u{a8ce}', '\u{a8cf}', SC_STerm),
3033
        ('\u{a8d0}', '\u{a8d9}', SC_Numeric), ('\u{a8e0}', '\u{a8f1}', SC_Extend), ('\u{a8f2}',
3034
        '\u{a8f7}', SC_OLetter), ('\u{a8fb}', '\u{a8fb}', SC_OLetter), ('\u{a8fd}', '\u{a8fe}',
3035
        SC_OLetter), ('\u{a8ff}', '\u{a8ff}', SC_Extend), ('\u{a900}', '\u{a909}', SC_Numeric),
3036
        ('\u{a90a}', '\u{a925}', SC_OLetter), ('\u{a926}', '\u{a92d}', SC_Extend), ('\u{a92f}',
3037
        '\u{a92f}', SC_STerm), ('\u{a930}', '\u{a946}', SC_OLetter), ('\u{a947}', '\u{a953}',
3038
        SC_Extend), ('\u{a960}', '\u{a97c}', SC_OLetter), ('\u{a980}', '\u{a983}', SC_Extend),
3039
        ('\u{a984}', '\u{a9b2}', SC_OLetter), ('\u{a9b3}', '\u{a9c0}', SC_Extend), ('\u{a9c8}',
3040
        '\u{a9c9}', SC_STerm), ('\u{a9cf}', '\u{a9cf}', SC_OLetter), ('\u{a9d0}', '\u{a9d9}',
3041
        SC_Numeric), ('\u{a9e0}', '\u{a9e4}', SC_OLetter), ('\u{a9e5}', '\u{a9e5}', SC_Extend),
3042
        ('\u{a9e6}', '\u{a9ef}', SC_OLetter), ('\u{a9f0}', '\u{a9f9}', SC_Numeric), ('\u{a9fa}',
3043
        '\u{a9fe}', SC_OLetter), ('\u{aa00}', '\u{aa28}', SC_OLetter), ('\u{aa29}', '\u{aa36}',
3044
        SC_Extend), ('\u{aa40}', '\u{aa42}', SC_OLetter), ('\u{aa43}', '\u{aa43}', SC_Extend),
3045
        ('\u{aa44}', '\u{aa4b}', SC_OLetter), ('\u{aa4c}', '\u{aa4d}', SC_Extend), ('\u{aa50}',
3046
        '\u{aa59}', SC_Numeric), ('\u{aa5d}', '\u{aa5f}', SC_STerm), ('\u{aa60}', '\u{aa76}',
3047
        SC_OLetter), ('\u{aa7a}', '\u{aa7a}', SC_OLetter), ('\u{aa7b}', '\u{aa7d}', SC_Extend),
3048
        ('\u{aa7e}', '\u{aaaf}', SC_OLetter), ('\u{aab0}', '\u{aab0}', SC_Extend), ('\u{aab1}',
3049
        '\u{aab1}', SC_OLetter), ('\u{aab2}', '\u{aab4}', SC_Extend), ('\u{aab5}', '\u{aab6}',
3050
        SC_OLetter), ('\u{aab7}', '\u{aab8}', SC_Extend), ('\u{aab9}', '\u{aabd}', SC_OLetter),
3051
        ('\u{aabe}', '\u{aabf}', SC_Extend), ('\u{aac0}', '\u{aac0}', SC_OLetter), ('\u{aac1}',
3052
        '\u{aac1}', SC_Extend), ('\u{aac2}', '\u{aac2}', SC_OLetter), ('\u{aadb}', '\u{aadd}',
3053
        SC_OLetter), ('\u{aae0}', '\u{aaea}', SC_OLetter), ('\u{aaeb}', '\u{aaef}', SC_Extend),
3054
        ('\u{aaf0}', '\u{aaf1}', SC_STerm), ('\u{aaf2}', '\u{aaf4}', SC_OLetter), ('\u{aaf5}',
3055
        '\u{aaf6}', SC_Extend), ('\u{ab01}', '\u{ab06}', SC_OLetter), ('\u{ab09}', '\u{ab0e}',
3056
        SC_OLetter), ('\u{ab11}', '\u{ab16}', SC_OLetter), ('\u{ab20}', '\u{ab26}', SC_OLetter),
3057
        ('\u{ab28}', '\u{ab2e}', SC_OLetter), ('\u{ab30}', '\u{ab5a}', SC_Lower), ('\u{ab5c}',
3058
        '\u{ab69}', SC_Lower), ('\u{ab70}', '\u{abbf}', SC_Lower), ('\u{abc0}', '\u{abe2}',
3059
        SC_OLetter), ('\u{abe3}', '\u{abea}', SC_Extend), ('\u{abeb}', '\u{abeb}', SC_STerm),
3060
        ('\u{abec}', '\u{abed}', SC_Extend), ('\u{abf0}', '\u{abf9}', SC_Numeric), ('\u{ac00}',
3061
        '\u{d7a3}', SC_OLetter), ('\u{d7b0}', '\u{d7c6}', SC_OLetter), ('\u{d7cb}', '\u{d7fb}',
3062
        SC_OLetter), ('\u{f900}', '\u{fa6d}', SC_OLetter), ('\u{fa70}', '\u{fad9}', SC_OLetter),
3063
        ('\u{fb00}', '\u{fb06}', SC_Lower), ('\u{fb13}', '\u{fb17}', SC_Lower), ('\u{fb1d}',
3064
        '\u{fb1d}', SC_OLetter), ('\u{fb1e}', '\u{fb1e}', SC_Extend), ('\u{fb1f}', '\u{fb28}',
3065
        SC_OLetter), ('\u{fb2a}', '\u{fb36}', SC_OLetter), ('\u{fb38}', '\u{fb3c}', SC_OLetter),
3066
        ('\u{fb3e}', '\u{fb3e}', SC_OLetter), ('\u{fb40}', '\u{fb41}', SC_OLetter), ('\u{fb43}',
3067
        '\u{fb44}', SC_OLetter), ('\u{fb46}', '\u{fbb1}', SC_OLetter), ('\u{fbd3}', '\u{fd3d}',
3068
        SC_OLetter), ('\u{fd3e}', '\u{fd3f}', SC_Close), ('\u{fd50}', '\u{fd8f}', SC_OLetter),
3069
        ('\u{fd92}', '\u{fdc7}', SC_OLetter), ('\u{fdf0}', '\u{fdfb}', SC_OLetter), ('\u{fe00}',
3070
        '\u{fe0f}', SC_Extend), ('\u{fe10}', '\u{fe11}', SC_SContinue), ('\u{fe12}', '\u{fe12}',
3071
        SC_STerm), ('\u{fe13}', '\u{fe14}', SC_SContinue), ('\u{fe15}', '\u{fe16}', SC_STerm),
3072
        ('\u{fe17}', '\u{fe18}', SC_Close), ('\u{fe20}', '\u{fe2f}', SC_Extend), ('\u{fe31}',
3073
        '\u{fe32}', SC_SContinue), ('\u{fe35}', '\u{fe44}', SC_Close), ('\u{fe47}', '\u{fe48}',
3074
        SC_Close), ('\u{fe50}', '\u{fe51}', SC_SContinue), ('\u{fe52}', '\u{fe52}', SC_ATerm),
3075
        ('\u{fe54}', '\u{fe55}', SC_SContinue), ('\u{fe56}', '\u{fe57}', SC_STerm), ('\u{fe58}',
3076
        '\u{fe58}', SC_SContinue), ('\u{fe59}', '\u{fe5e}', SC_Close), ('\u{fe63}', '\u{fe63}',
3077
        SC_SContinue), ('\u{fe70}', '\u{fe74}', SC_OLetter), ('\u{fe76}', '\u{fefc}', SC_OLetter),
3078
        ('\u{feff}', '\u{feff}', SC_Format), ('\u{ff01}', '\u{ff01}', SC_STerm), ('\u{ff08}',
3079
        '\u{ff09}', SC_Close), ('\u{ff0c}', '\u{ff0d}', SC_SContinue), ('\u{ff0e}', '\u{ff0e}',
3080
        SC_ATerm), ('\u{ff10}', '\u{ff19}', SC_Numeric), ('\u{ff1a}', '\u{ff1b}', SC_SContinue),
3081
        ('\u{ff1f}', '\u{ff1f}', SC_STerm), ('\u{ff21}', '\u{ff3a}', SC_Upper), ('\u{ff3b}',
3082
        '\u{ff3b}', SC_Close), ('\u{ff3d}', '\u{ff3d}', SC_Close), ('\u{ff41}', '\u{ff5a}',
3083
        SC_Lower), ('\u{ff5b}', '\u{ff5b}', SC_Close), ('\u{ff5d}', '\u{ff5d}', SC_Close),
3084
        ('\u{ff5f}', '\u{ff60}', SC_Close), ('\u{ff61}', '\u{ff61}', SC_STerm), ('\u{ff62}',
3085
        '\u{ff63}', SC_Close), ('\u{ff64}', '\u{ff64}', SC_SContinue), ('\u{ff66}', '\u{ff9d}',
3086
        SC_OLetter), ('\u{ff9e}', '\u{ff9f}', SC_Extend), ('\u{ffa0}', '\u{ffbe}', SC_OLetter),
3087
        ('\u{ffc2}', '\u{ffc7}', SC_OLetter), ('\u{ffca}', '\u{ffcf}', SC_OLetter), ('\u{ffd2}',
3088
        '\u{ffd7}', SC_OLetter), ('\u{ffda}', '\u{ffdc}', SC_OLetter), ('\u{fff9}', '\u{fffb}',
3089
        SC_Format), ('\u{10000}', '\u{1000b}', SC_OLetter), ('\u{1000d}', '\u{10026}', SC_OLetter),
3090
        ('\u{10028}', '\u{1003a}', SC_OLetter), ('\u{1003c}', '\u{1003d}', SC_OLetter),
3091
        ('\u{1003f}', '\u{1004d}', SC_OLetter), ('\u{10050}', '\u{1005d}', SC_OLetter),
3092
        ('\u{10080}', '\u{100fa}', SC_OLetter), ('\u{10140}', '\u{10174}', SC_OLetter),
3093
        ('\u{101fd}', '\u{101fd}', SC_Extend), ('\u{10280}', '\u{1029c}', SC_OLetter), ('\u{102a0}',
3094
        '\u{102d0}', SC_OLetter), ('\u{102e0}', '\u{102e0}', SC_Extend), ('\u{10300}', '\u{1031f}',
3095
        SC_OLetter), ('\u{1032d}', '\u{1034a}', SC_OLetter), ('\u{10350}', '\u{10375}', SC_OLetter),
3096
        ('\u{10376}', '\u{1037a}', SC_Extend), ('\u{10380}', '\u{1039d}', SC_OLetter), ('\u{103a0}',
3097
        '\u{103c3}', SC_OLetter), ('\u{103c8}', '\u{103cf}', SC_OLetter), ('\u{103d1}', '\u{103d5}',
3098
        SC_OLetter), ('\u{10400}', '\u{10427}', SC_Upper), ('\u{10428}', '\u{1044f}', SC_Lower),
3099
        ('\u{10450}', '\u{1049d}', SC_OLetter), ('\u{104a0}', '\u{104a9}', SC_Numeric),
3100
        ('\u{104b0}', '\u{104d3}', SC_Upper), ('\u{104d8}', '\u{104fb}', SC_Lower), ('\u{10500}',
3101
        '\u{10527}', SC_OLetter), ('\u{10530}', '\u{10563}', SC_OLetter), ('\u{10570}', '\u{1057a}',
3102
        SC_Upper), ('\u{1057c}', '\u{1058a}', SC_Upper), ('\u{1058c}', '\u{10592}', SC_Upper),
3103
        ('\u{10594}', '\u{10595}', SC_Upper), ('\u{10597}', '\u{105a1}', SC_Lower), ('\u{105a3}',
3104
        '\u{105b1}', SC_Lower), ('\u{105b3}', '\u{105b9}', SC_Lower), ('\u{105bb}', '\u{105bc}',
3105
        SC_Lower), ('\u{105c0}', '\u{105f3}', SC_OLetter), ('\u{10600}', '\u{10736}', SC_OLetter),
3106
        ('\u{10740}', '\u{10755}', SC_OLetter), ('\u{10760}', '\u{10767}', SC_OLetter),
3107
        ('\u{10780}', '\u{10780}', SC_Lower), ('\u{10781}', '\u{10782}', SC_OLetter), ('\u{10783}',
3108
        '\u{10785}', SC_Lower), ('\u{10787}', '\u{107b0}', SC_Lower), ('\u{107b2}', '\u{107ba}',
3109
        SC_Lower), ('\u{10800}', '\u{10805}', SC_OLetter), ('\u{10808}', '\u{10808}', SC_OLetter),
3110
        ('\u{1080a}', '\u{10835}', SC_OLetter), ('\u{10837}', '\u{10838}', SC_OLetter),
3111
        ('\u{1083c}', '\u{1083c}', SC_OLetter), ('\u{1083f}', '\u{10855}', SC_OLetter),
3112
        ('\u{10860}', '\u{10876}', SC_OLetter), ('\u{10880}', '\u{1089e}', SC_OLetter),
3113
        ('\u{108e0}', '\u{108f2}', SC_OLetter), ('\u{108f4}', '\u{108f5}', SC_OLetter),
3114
        ('\u{10900}', '\u{10915}', SC_OLetter), ('\u{10920}', '\u{10939}', SC_OLetter),
3115
        ('\u{10940}', '\u{10959}', SC_OLetter), ('\u{10980}', '\u{109b7}', SC_OLetter),
3116
        ('\u{109be}', '\u{109bf}', SC_OLetter), ('\u{10a00}', '\u{10a00}', SC_OLetter),
3117
        ('\u{10a01}', '\u{10a03}', SC_Extend), ('\u{10a05}', '\u{10a06}', SC_Extend), ('\u{10a0c}',
3118
        '\u{10a0f}', SC_Extend), ('\u{10a10}', '\u{10a13}', SC_OLetter), ('\u{10a15}', '\u{10a17}',
3119
        SC_OLetter), ('\u{10a19}', '\u{10a35}', SC_OLetter), ('\u{10a38}', '\u{10a3a}', SC_Extend),
3120
        ('\u{10a3f}', '\u{10a3f}', SC_Extend), ('\u{10a56}', '\u{10a57}', SC_STerm), ('\u{10a60}',
3121
        '\u{10a7c}', SC_OLetter), ('\u{10a80}', '\u{10a9c}', SC_OLetter), ('\u{10ac0}', '\u{10ac7}',
3122
        SC_OLetter), ('\u{10ac9}', '\u{10ae4}', SC_OLetter), ('\u{10ae5}', '\u{10ae6}', SC_Extend),
3123
        ('\u{10b00}', '\u{10b35}', SC_OLetter), ('\u{10b40}', '\u{10b55}', SC_OLetter),
3124
        ('\u{10b60}', '\u{10b72}', SC_OLetter), ('\u{10b80}', '\u{10b91}', SC_OLetter),
3125
        ('\u{10c00}', '\u{10c48}', SC_OLetter), ('\u{10c80}', '\u{10cb2}', SC_Upper), ('\u{10cc0}',
3126
        '\u{10cf2}', SC_Lower), ('\u{10d00}', '\u{10d23}', SC_OLetter), ('\u{10d24}', '\u{10d27}',
3127
        SC_Extend), ('\u{10d30}', '\u{10d39}', SC_Numeric), ('\u{10d40}', '\u{10d49}', SC_Numeric),
3128
        ('\u{10d4a}', '\u{10d4f}', SC_OLetter), ('\u{10d50}', '\u{10d65}', SC_Upper), ('\u{10d69}',
3129
        '\u{10d6d}', SC_Extend), ('\u{10d6f}', '\u{10d6f}', SC_OLetter), ('\u{10d70}', '\u{10d85}',
3130
        SC_Lower), ('\u{10e80}', '\u{10ea9}', SC_OLetter), ('\u{10eab}', '\u{10eac}', SC_Extend),
3131
        ('\u{10eb0}', '\u{10eb1}', SC_OLetter), ('\u{10ec2}', '\u{10ec7}', SC_OLetter),
3132
        ('\u{10efa}', '\u{10eff}', SC_Extend), ('\u{10f00}', '\u{10f1c}', SC_OLetter), ('\u{10f27}',
3133
        '\u{10f27}', SC_OLetter), ('\u{10f30}', '\u{10f45}', SC_OLetter), ('\u{10f46}', '\u{10f50}',
3134
        SC_Extend), ('\u{10f55}', '\u{10f59}', SC_STerm), ('\u{10f70}', '\u{10f81}', SC_OLetter),
3135
        ('\u{10f82}', '\u{10f85}', SC_Extend), ('\u{10f86}', '\u{10f89}', SC_STerm), ('\u{10fb0}',
3136
        '\u{10fc4}', SC_OLetter), ('\u{10fe0}', '\u{10ff6}', SC_OLetter), ('\u{11000}', '\u{11002}',
3137
        SC_Extend), ('\u{11003}', '\u{11037}', SC_OLetter), ('\u{11038}', '\u{11046}', SC_Extend),
3138
        ('\u{11047}', '\u{11048}', SC_STerm), ('\u{11066}', '\u{1106f}', SC_Numeric), ('\u{11070}',
3139
        '\u{11070}', SC_Extend), ('\u{11071}', '\u{11072}', SC_OLetter), ('\u{11073}', '\u{11074}',
3140
        SC_Extend), ('\u{11075}', '\u{11075}', SC_OLetter), ('\u{1107f}', '\u{11082}', SC_Extend),
3141
        ('\u{11083}', '\u{110af}', SC_OLetter), ('\u{110b0}', '\u{110ba}', SC_Extend), ('\u{110bd}',
3142
        '\u{110bd}', SC_Numeric), ('\u{110be}', '\u{110c1}', SC_STerm), ('\u{110c2}', '\u{110c2}',
3143
        SC_Extend), ('\u{110cd}', '\u{110cd}', SC_Numeric), ('\u{110d0}', '\u{110e8}', SC_OLetter),
3144
        ('\u{110f0}', '\u{110f9}', SC_Numeric), ('\u{11100}', '\u{11102}', SC_Extend), ('\u{11103}',
3145
        '\u{11126}', SC_OLetter), ('\u{11127}', '\u{11134}', SC_Extend), ('\u{11136}', '\u{1113f}',
3146
        SC_Numeric), ('\u{11141}', '\u{11143}', SC_STerm), ('\u{11144}', '\u{11144}', SC_OLetter),
3147
        ('\u{11145}', '\u{11146}', SC_Extend), ('\u{11147}', '\u{11147}', SC_OLetter), ('\u{11150}',
3148
        '\u{11172}', SC_OLetter), ('\u{11173}', '\u{11173}', SC_Extend), ('\u{11176}', '\u{11176}',
3149
        SC_OLetter), ('\u{11180}', '\u{11182}', SC_Extend), ('\u{11183}', '\u{111b2}', SC_OLetter),
3150
        ('\u{111b3}', '\u{111c0}', SC_Extend), ('\u{111c1}', '\u{111c4}', SC_OLetter), ('\u{111c5}',
3151
        '\u{111c6}', SC_STerm), ('\u{111c9}', '\u{111cc}', SC_Extend), ('\u{111cd}', '\u{111cd}',
3152
        SC_STerm), ('\u{111ce}', '\u{111cf}', SC_Extend), ('\u{111d0}', '\u{111d9}', SC_Numeric),
3153
        ('\u{111da}', '\u{111da}', SC_OLetter), ('\u{111dc}', '\u{111dc}', SC_OLetter),
3154
        ('\u{111de}', '\u{111df}', SC_STerm), ('\u{11200}', '\u{11211}', SC_OLetter), ('\u{11213}',
3155
        '\u{1122b}', SC_OLetter), ('\u{1122c}', '\u{11237}', SC_Extend), ('\u{11238}', '\u{11239}',
3156
        SC_STerm), ('\u{1123b}', '\u{1123c}', SC_STerm), ('\u{1123e}', '\u{1123e}', SC_Extend),
3157
        ('\u{1123f}', '\u{11240}', SC_OLetter), ('\u{11241}', '\u{11241}', SC_Extend), ('\u{11280}',
3158
        '\u{11286}', SC_OLetter), ('\u{11288}', '\u{11288}', SC_OLetter), ('\u{1128a}', '\u{1128d}',
3159
        SC_OLetter), ('\u{1128f}', '\u{1129d}', SC_OLetter), ('\u{1129f}', '\u{112a8}', SC_OLetter),
3160
        ('\u{112a9}', '\u{112a9}', SC_STerm), ('\u{112b0}', '\u{112de}', SC_OLetter), ('\u{112df}',
3161
        '\u{112ea}', SC_Extend), ('\u{112f0}', '\u{112f9}', SC_Numeric), ('\u{11300}', '\u{11303}',
3162
        SC_Extend), ('\u{11305}', '\u{1130c}', SC_OLetter), ('\u{1130f}', '\u{11310}', SC_OLetter),
3163
        ('\u{11313}', '\u{11328}', SC_OLetter), ('\u{1132a}', '\u{11330}', SC_OLetter),
3164
        ('\u{11332}', '\u{11333}', SC_OLetter), ('\u{11335}', '\u{11339}', SC_OLetter),
3165
        ('\u{1133b}', '\u{1133c}', SC_Extend), ('\u{1133d}', '\u{1133d}', SC_OLetter), ('\u{1133e}',
3166
        '\u{11344}', SC_Extend), ('\u{11347}', '\u{11348}', SC_Extend), ('\u{1134b}', '\u{1134d}',
3167
        SC_Extend), ('\u{11350}', '\u{11350}', SC_OLetter), ('\u{11357}', '\u{11357}', SC_Extend),
3168
        ('\u{1135d}', '\u{11361}', SC_OLetter), ('\u{11362}', '\u{11363}', SC_Extend), ('\u{11366}',
3169
        '\u{1136c}', SC_Extend), ('\u{11370}', '\u{11374}', SC_Extend), ('\u{11380}', '\u{11389}',
3170
        SC_OLetter), ('\u{1138b}', '\u{1138b}', SC_OLetter), ('\u{1138e}', '\u{1138e}', SC_OLetter),
3171
        ('\u{11390}', '\u{113b5}', SC_OLetter), ('\u{113b7}', '\u{113b7}', SC_OLetter),
3172
        ('\u{113b8}', '\u{113c0}', SC_Extend), ('\u{113c2}', '\u{113c2}', SC_Extend), ('\u{113c5}',
3173
        '\u{113c5}', SC_Extend), ('\u{113c7}', '\u{113ca}', SC_Extend), ('\u{113cc}', '\u{113d0}',
3174
        SC_Extend), ('\u{113d1}', '\u{113d1}', SC_OLetter), ('\u{113d2}', '\u{113d2}', SC_Extend),
3175
        ('\u{113d3}', '\u{113d3}', SC_OLetter), ('\u{113d4}', '\u{113d5}', SC_STerm), ('\u{113e1}',
3176
        '\u{113e2}', SC_Extend), ('\u{11400}', '\u{11434}', SC_OLetter), ('\u{11435}', '\u{11446}',
3177
        SC_Extend), ('\u{11447}', '\u{1144a}', SC_OLetter), ('\u{1144b}', '\u{1144c}', SC_STerm),
3178
        ('\u{11450}', '\u{11459}', SC_Numeric), ('\u{1145e}', '\u{1145e}', SC_Extend), ('\u{1145f}',
3179
        '\u{11461}', SC_OLetter), ('\u{11480}', '\u{114af}', SC_OLetter), ('\u{114b0}', '\u{114c3}',
3180
        SC_Extend), ('\u{114c4}', '\u{114c5}', SC_OLetter), ('\u{114c7}', '\u{114c7}', SC_OLetter),
3181
        ('\u{114d0}', '\u{114d9}', SC_Numeric), ('\u{11580}', '\u{115ae}', SC_OLetter),
3182
        ('\u{115af}', '\u{115b5}', SC_Extend), ('\u{115b8}', '\u{115c0}', SC_Extend), ('\u{115c2}',
3183
        '\u{115c3}', SC_STerm), ('\u{115c9}', '\u{115d7}', SC_STerm), ('\u{115d8}', '\u{115db}',
3184
        SC_OLetter), ('\u{115dc}', '\u{115dd}', SC_Extend), ('\u{11600}', '\u{1162f}', SC_OLetter),
3185
        ('\u{11630}', '\u{11640}', SC_Extend), ('\u{11641}', '\u{11642}', SC_STerm), ('\u{11644}',
3186
        '\u{11644}', SC_OLetter), ('\u{11650}', '\u{11659}', SC_Numeric), ('\u{11680}', '\u{116aa}',
3187
        SC_OLetter), ('\u{116ab}', '\u{116b7}', SC_Extend), ('\u{116b8}', '\u{116b8}', SC_OLetter),
3188
        ('\u{116c0}', '\u{116c9}', SC_Numeric), ('\u{116d0}', '\u{116e3}', SC_Numeric),
3189
        ('\u{11700}', '\u{1171a}', SC_OLetter), ('\u{1171d}', '\u{1172b}', SC_Extend), ('\u{11730}',
3190
        '\u{11739}', SC_Numeric), ('\u{1173c}', '\u{1173e}', SC_STerm), ('\u{11740}', '\u{11746}',
3191
        SC_OLetter), ('\u{11800}', '\u{1182b}', SC_OLetter), ('\u{1182c}', '\u{1183a}', SC_Extend),
3192
        ('\u{118a0}', '\u{118bf}', SC_Upper), ('\u{118c0}', '\u{118df}', SC_Lower), ('\u{118e0}',
3193
        '\u{118e9}', SC_Numeric), ('\u{118ff}', '\u{11906}', SC_OLetter), ('\u{11909}', '\u{11909}',
3194
        SC_OLetter), ('\u{1190c}', '\u{11913}', SC_OLetter), ('\u{11915}', '\u{11916}', SC_OLetter),
3195
        ('\u{11918}', '\u{1192f}', SC_OLetter), ('\u{11930}', '\u{11935}', SC_Extend), ('\u{11937}',
3196
        '\u{11938}', SC_Extend), ('\u{1193b}', '\u{1193e}', SC_Extend), ('\u{1193f}', '\u{1193f}',
3197
        SC_OLetter), ('\u{11940}', '\u{11940}', SC_Extend), ('\u{11941}', '\u{11941}', SC_OLetter),
3198
        ('\u{11942}', '\u{11943}', SC_Extend), ('\u{11944}', '\u{11944}', SC_STerm), ('\u{11946}',
3199
        '\u{11946}', SC_STerm), ('\u{11950}', '\u{11959}', SC_Numeric), ('\u{119a0}', '\u{119a7}',
3200
        SC_OLetter), ('\u{119aa}', '\u{119d0}', SC_OLetter), ('\u{119d1}', '\u{119d7}', SC_Extend),
3201
        ('\u{119da}', '\u{119e0}', SC_Extend), ('\u{119e1}', '\u{119e1}', SC_OLetter), ('\u{119e3}',
3202
        '\u{119e3}', SC_OLetter), ('\u{119e4}', '\u{119e4}', SC_Extend), ('\u{11a00}', '\u{11a00}',
3203
        SC_OLetter), ('\u{11a01}', '\u{11a0a}', SC_Extend), ('\u{11a0b}', '\u{11a32}', SC_OLetter),
3204
        ('\u{11a33}', '\u{11a39}', SC_Extend), ('\u{11a3a}', '\u{11a3a}', SC_OLetter), ('\u{11a3b}',
3205
        '\u{11a3e}', SC_Extend), ('\u{11a42}', '\u{11a43}', SC_STerm), ('\u{11a47}', '\u{11a47}',
3206
        SC_Extend), ('\u{11a50}', '\u{11a50}', SC_OLetter), ('\u{11a51}', '\u{11a5b}', SC_Extend),
3207
        ('\u{11a5c}', '\u{11a89}', SC_OLetter), ('\u{11a8a}', '\u{11a99}', SC_Extend), ('\u{11a9b}',
3208
        '\u{11a9c}', SC_STerm), ('\u{11a9d}', '\u{11a9d}', SC_OLetter), ('\u{11ab0}', '\u{11af8}',
3209
        SC_OLetter), ('\u{11b60}', '\u{11b67}', SC_Extend), ('\u{11bc0}', '\u{11be0}', SC_OLetter),
3210
        ('\u{11bf0}', '\u{11bf9}', SC_Numeric), ('\u{11c00}', '\u{11c08}', SC_OLetter),
3211
        ('\u{11c0a}', '\u{11c2e}', SC_OLetter), ('\u{11c2f}', '\u{11c36}', SC_Extend), ('\u{11c38}',
3212
        '\u{11c3f}', SC_Extend), ('\u{11c40}', '\u{11c40}', SC_OLetter), ('\u{11c41}', '\u{11c42}',
3213
        SC_STerm), ('\u{11c50}', '\u{11c59}', SC_Numeric), ('\u{11c72}', '\u{11c8f}', SC_OLetter),
3214
        ('\u{11c92}', '\u{11ca7}', SC_Extend), ('\u{11ca9}', '\u{11cb6}', SC_Extend), ('\u{11d00}',
3215
        '\u{11d06}', SC_OLetter), ('\u{11d08}', '\u{11d09}', SC_OLetter), ('\u{11d0b}', '\u{11d30}',
3216
        SC_OLetter), ('\u{11d31}', '\u{11d36}', SC_Extend), ('\u{11d3a}', '\u{11d3a}', SC_Extend),
3217
        ('\u{11d3c}', '\u{11d3d}', SC_Extend), ('\u{11d3f}', '\u{11d45}', SC_Extend), ('\u{11d46}',
3218
        '\u{11d46}', SC_OLetter), ('\u{11d47}', '\u{11d47}', SC_Extend), ('\u{11d50}', '\u{11d59}',
3219
        SC_Numeric), ('\u{11d60}', '\u{11d65}', SC_OLetter), ('\u{11d67}', '\u{11d68}', SC_OLetter),
3220
        ('\u{11d6a}', '\u{11d89}', SC_OLetter), ('\u{11d8a}', '\u{11d8e}', SC_Extend), ('\u{11d90}',
3221
        '\u{11d91}', SC_Extend), ('\u{11d93}', '\u{11d97}', SC_Extend), ('\u{11d98}', '\u{11d98}',
3222
        SC_OLetter), ('\u{11da0}', '\u{11da9}', SC_Numeric), ('\u{11db0}', '\u{11ddb}', SC_OLetter),
3223
        ('\u{11de0}', '\u{11de9}', SC_Numeric), ('\u{11ee0}', '\u{11ef2}', SC_OLetter),
3224
        ('\u{11ef3}', '\u{11ef6}', SC_Extend), ('\u{11ef7}', '\u{11ef8}', SC_STerm), ('\u{11f00}',
3225
        '\u{11f01}', SC_Extend), ('\u{11f02}', '\u{11f02}', SC_OLetter), ('\u{11f03}', '\u{11f03}',
3226
        SC_Extend), ('\u{11f04}', '\u{11f10}', SC_OLetter), ('\u{11f12}', '\u{11f33}', SC_OLetter),
3227
        ('\u{11f34}', '\u{11f3a}', SC_Extend), ('\u{11f3e}', '\u{11f42}', SC_Extend), ('\u{11f43}',
3228
        '\u{11f44}', SC_STerm), ('\u{11f50}', '\u{11f59}', SC_Numeric), ('\u{11f5a}', '\u{11f5a}',
3229
        SC_Extend), ('\u{11fb0}', '\u{11fb0}', SC_OLetter), ('\u{12000}', '\u{12399}', SC_OLetter),
3230
        ('\u{12400}', '\u{1246e}', SC_OLetter), ('\u{12480}', '\u{12543}', SC_OLetter),
3231
        ('\u{12f90}', '\u{12ff0}', SC_OLetter), ('\u{13000}', '\u{1342f}', SC_OLetter),
3232
        ('\u{13430}', '\u{1343f}', SC_Format), ('\u{13440}', '\u{13440}', SC_Extend), ('\u{13441}',
3233
        '\u{13446}', SC_OLetter), ('\u{13447}', '\u{13455}', SC_Extend), ('\u{13460}', '\u{143fa}',
3234
        SC_OLetter), ('\u{14400}', '\u{14646}', SC_OLetter), ('\u{16100}', '\u{1611d}', SC_OLetter),
3235
        ('\u{1611e}', '\u{1612f}', SC_Extend), ('\u{16130}', '\u{16139}', SC_Numeric), ('\u{16800}',
3236
        '\u{16a38}', SC_OLetter), ('\u{16a40}', '\u{16a5e}', SC_OLetter), ('\u{16a60}', '\u{16a69}',
3237
        SC_Numeric), ('\u{16a6e}', '\u{16a6f}', SC_STerm), ('\u{16a70}', '\u{16abe}', SC_OLetter),
3238
        ('\u{16ac0}', '\u{16ac9}', SC_Numeric), ('\u{16ad0}', '\u{16aed}', SC_OLetter),
3239
        ('\u{16af0}', '\u{16af4}', SC_Extend), ('\u{16af5}', '\u{16af5}', SC_STerm), ('\u{16b00}',
3240
        '\u{16b2f}', SC_OLetter), ('\u{16b30}', '\u{16b36}', SC_Extend), ('\u{16b37}', '\u{16b38}',
3241
        SC_STerm), ('\u{16b40}', '\u{16b43}', SC_OLetter), ('\u{16b44}', '\u{16b44}', SC_STerm),
3242
        ('\u{16b50}', '\u{16b59}', SC_Numeric), ('\u{16b63}', '\u{16b77}', SC_OLetter),
3243
        ('\u{16b7d}', '\u{16b8f}', SC_OLetter), ('\u{16d40}', '\u{16d6c}', SC_OLetter),
3244
        ('\u{16d6e}', '\u{16d6f}', SC_STerm), ('\u{16d70}', '\u{16d79}', SC_Numeric), ('\u{16e40}',
3245
        '\u{16e5f}', SC_Upper), ('\u{16e60}', '\u{16e7f}', SC_Lower), ('\u{16e98}', '\u{16e98}',
3246
        SC_STerm), ('\u{16ea0}', '\u{16eb8}', SC_Upper), ('\u{16ebb}', '\u{16ed3}', SC_Lower),
3247
        ('\u{16f00}', '\u{16f4a}', SC_OLetter), ('\u{16f4f}', '\u{16f4f}', SC_Extend), ('\u{16f50}',
3248
        '\u{16f50}', SC_OLetter), ('\u{16f51}', '\u{16f87}', SC_Extend), ('\u{16f8f}', '\u{16f92}',
3249
        SC_Extend), ('\u{16f93}', '\u{16f9f}', SC_OLetter), ('\u{16fe0}', '\u{16fe1}', SC_OLetter),
3250
        ('\u{16fe3}', '\u{16fe3}', SC_OLetter), ('\u{16fe4}', '\u{16fe4}', SC_Extend), ('\u{16ff0}',
3251
        '\u{16ff1}', SC_Extend), ('\u{16ff2}', '\u{16ff6}', SC_OLetter), ('\u{17000}', '\u{18cd5}',
3252
        SC_OLetter), ('\u{18cff}', '\u{18d1e}', SC_OLetter), ('\u{18d80}', '\u{18df2}', SC_OLetter),
3253
        ('\u{1aff0}', '\u{1aff3}', SC_OLetter), ('\u{1aff5}', '\u{1affb}', SC_OLetter),
3254
        ('\u{1affd}', '\u{1affe}', SC_OLetter), ('\u{1b000}', '\u{1b122}', SC_OLetter),
3255
        ('\u{1b132}', '\u{1b132}', SC_OLetter), ('\u{1b150}', '\u{1b152}', SC_OLetter),
3256
        ('\u{1b155}', '\u{1b155}', SC_OLetter), ('\u{1b164}', '\u{1b167}', SC_OLetter),
3257
        ('\u{1b170}', '\u{1b2fb}', SC_OLetter), ('\u{1bc00}', '\u{1bc6a}', SC_OLetter),
3258
        ('\u{1bc70}', '\u{1bc7c}', SC_OLetter), ('\u{1bc80}', '\u{1bc88}', SC_OLetter),
3259
        ('\u{1bc90}', '\u{1bc99}', SC_OLetter), ('\u{1bc9d}', '\u{1bc9e}', SC_Extend), ('\u{1bc9f}',
3260
        '\u{1bc9f}', SC_STerm), ('\u{1bca0}', '\u{1bca3}', SC_Format), ('\u{1ccf0}', '\u{1ccf9}',
3261
        SC_Numeric), ('\u{1cf00}', '\u{1cf2d}', SC_Extend), ('\u{1cf30}', '\u{1cf46}', SC_Extend),
3262
        ('\u{1d165}', '\u{1d169}', SC_Extend), ('\u{1d16d}', '\u{1d172}', SC_Extend), ('\u{1d173}',
3263
        '\u{1d17a}', SC_Format), ('\u{1d17b}', '\u{1d182}', SC_Extend), ('\u{1d185}', '\u{1d18b}',
3264
        SC_Extend), ('\u{1d1aa}', '\u{1d1ad}', SC_Extend), ('\u{1d242}', '\u{1d244}', SC_Extend),
3265
        ('\u{1d400}', '\u{1d419}', SC_Upper), ('\u{1d41a}', '\u{1d433}', SC_Lower), ('\u{1d434}',
3266
        '\u{1d44d}', SC_Upper), ('\u{1d44e}', '\u{1d454}', SC_Lower), ('\u{1d456}', '\u{1d467}',
3267
        SC_Lower), ('\u{1d468}', '\u{1d481}', SC_Upper), ('\u{1d482}', '\u{1d49b}', SC_Lower),
3268
        ('\u{1d49c}', '\u{1d49c}', SC_Upper), ('\u{1d49e}', '\u{1d49f}', SC_Upper), ('\u{1d4a2}',
3269
        '\u{1d4a2}', SC_Upper), ('\u{1d4a5}', '\u{1d4a6}', SC_Upper), ('\u{1d4a9}', '\u{1d4ac}',
3270
        SC_Upper), ('\u{1d4ae}', '\u{1d4b5}', SC_Upper), ('\u{1d4b6}', '\u{1d4b9}', SC_Lower),
3271
        ('\u{1d4bb}', '\u{1d4bb}', SC_Lower), ('\u{1d4bd}', '\u{1d4c3}', SC_Lower), ('\u{1d4c5}',
3272
        '\u{1d4cf}', SC_Lower), ('\u{1d4d0}', '\u{1d4e9}', SC_Upper), ('\u{1d4ea}', '\u{1d503}',
3273
        SC_Lower), ('\u{1d504}', '\u{1d505}', SC_Upper), ('\u{1d507}', '\u{1d50a}', SC_Upper),
3274
        ('\u{1d50d}', '\u{1d514}', SC_Upper), ('\u{1d516}', '\u{1d51c}', SC_Upper), ('\u{1d51e}',
3275
        '\u{1d537}', SC_Lower), ('\u{1d538}', '\u{1d539}', SC_Upper), ('\u{1d53b}', '\u{1d53e}',
3276
        SC_Upper), ('\u{1d540}', '\u{1d544}', SC_Upper), ('\u{1d546}', '\u{1d546}', SC_Upper),
3277
        ('\u{1d54a}', '\u{1d550}', SC_Upper), ('\u{1d552}', '\u{1d56b}', SC_Lower), ('\u{1d56c}',
3278
        '\u{1d585}', SC_Upper), ('\u{1d586}', '\u{1d59f}', SC_Lower), ('\u{1d5a0}', '\u{1d5b9}',
3279
        SC_Upper), ('\u{1d5ba}', '\u{1d5d3}', SC_Lower), ('\u{1d5d4}', '\u{1d5ed}', SC_Upper),
3280
        ('\u{1d5ee}', '\u{1d607}', SC_Lower), ('\u{1d608}', '\u{1d621}', SC_Upper), ('\u{1d622}',
3281
        '\u{1d63b}', SC_Lower), ('\u{1d63c}', '\u{1d655}', SC_Upper), ('\u{1d656}', '\u{1d66f}',
3282
        SC_Lower), ('\u{1d670}', '\u{1d689}', SC_Upper), ('\u{1d68a}', '\u{1d6a5}', SC_Lower),
3283
        ('\u{1d6a8}', '\u{1d6c0}', SC_Upper), ('\u{1d6c2}', '\u{1d6da}', SC_Lower), ('\u{1d6dc}',
3284
        '\u{1d6e1}', SC_Lower), ('\u{1d6e2}', '\u{1d6fa}', SC_Upper), ('\u{1d6fc}', '\u{1d714}',
3285
        SC_Lower), ('\u{1d716}', '\u{1d71b}', SC_Lower), ('\u{1d71c}', '\u{1d734}', SC_Upper),
3286
        ('\u{1d736}', '\u{1d74e}', SC_Lower), ('\u{1d750}', '\u{1d755}', SC_Lower), ('\u{1d756}',
3287
        '\u{1d76e}', SC_Upper), ('\u{1d770}', '\u{1d788}', SC_Lower), ('\u{1d78a}', '\u{1d78f}',
3288
        SC_Lower), ('\u{1d790}', '\u{1d7a8}', SC_Upper), ('\u{1d7aa}', '\u{1d7c2}', SC_Lower),
3289
        ('\u{1d7c4}', '\u{1d7c9}', SC_Lower), ('\u{1d7ca}', '\u{1d7ca}', SC_Upper), ('\u{1d7cb}',
3290
        '\u{1d7cb}', SC_Lower), ('\u{1d7ce}', '\u{1d7ff}', SC_Numeric), ('\u{1da00}', '\u{1da36}',
3291
        SC_Extend), ('\u{1da3b}', '\u{1da6c}', SC_Extend), ('\u{1da75}', '\u{1da75}', SC_Extend),
3292
        ('\u{1da84}', '\u{1da84}', SC_Extend), ('\u{1da88}', '\u{1da88}', SC_STerm), ('\u{1da9b}',
3293
        '\u{1da9f}', SC_Extend), ('\u{1daa1}', '\u{1daaf}', SC_Extend), ('\u{1df00}', '\u{1df09}',
3294
        SC_Lower), ('\u{1df0a}', '\u{1df0a}', SC_OLetter), ('\u{1df0b}', '\u{1df1e}', SC_Lower),
3295
        ('\u{1df25}', '\u{1df2a}', SC_Lower), ('\u{1e000}', '\u{1e006}', SC_Extend), ('\u{1e008}',
3296
        '\u{1e018}', SC_Extend), ('\u{1e01b}', '\u{1e021}', SC_Extend), ('\u{1e023}', '\u{1e024}',
3297
        SC_Extend), ('\u{1e026}', '\u{1e02a}', SC_Extend), ('\u{1e030}', '\u{1e06d}', SC_Lower),
3298
        ('\u{1e08f}', '\u{1e08f}', SC_Extend), ('\u{1e100}', '\u{1e12c}', SC_OLetter), ('\u{1e130}',
3299
        '\u{1e136}', SC_Extend), ('\u{1e137}', '\u{1e13d}', SC_OLetter), ('\u{1e140}', '\u{1e149}',
3300
        SC_Numeric), ('\u{1e14e}', '\u{1e14e}', SC_OLetter), ('\u{1e290}', '\u{1e2ad}', SC_OLetter),
3301
        ('\u{1e2ae}', '\u{1e2ae}', SC_Extend), ('\u{1e2c0}', '\u{1e2eb}', SC_OLetter), ('\u{1e2ec}',
3302
        '\u{1e2ef}', SC_Extend), ('\u{1e2f0}', '\u{1e2f9}', SC_Numeric), ('\u{1e4d0}', '\u{1e4eb}',
3303
        SC_OLetter), ('\u{1e4ec}', '\u{1e4ef}', SC_Extend), ('\u{1e4f0}', '\u{1e4f9}', SC_Numeric),
3304
        ('\u{1e5d0}', '\u{1e5ed}', SC_OLetter), ('\u{1e5ee}', '\u{1e5ef}', SC_Extend), ('\u{1e5f0}',
3305
        '\u{1e5f0}', SC_OLetter), ('\u{1e5f1}', '\u{1e5fa}', SC_Numeric), ('\u{1e6c0}', '\u{1e6de}',
3306
        SC_OLetter), ('\u{1e6e0}', '\u{1e6e2}', SC_OLetter), ('\u{1e6e3}', '\u{1e6e3}', SC_Extend),
3307
        ('\u{1e6e4}', '\u{1e6e5}', SC_OLetter), ('\u{1e6e6}', '\u{1e6e6}', SC_Extend), ('\u{1e6e7}',
3308
        '\u{1e6ed}', SC_OLetter), ('\u{1e6ee}', '\u{1e6ef}', SC_Extend), ('\u{1e6f0}', '\u{1e6f4}',
3309
        SC_OLetter), ('\u{1e6f5}', '\u{1e6f5}', SC_Extend), ('\u{1e6fe}', '\u{1e6ff}', SC_OLetter),
3310
        ('\u{1e7e0}', '\u{1e7e6}', SC_OLetter), ('\u{1e7e8}', '\u{1e7eb}', SC_OLetter),
3311
        ('\u{1e7ed}', '\u{1e7ee}', SC_OLetter), ('\u{1e7f0}', '\u{1e7fe}', SC_OLetter),
3312
        ('\u{1e800}', '\u{1e8c4}', SC_OLetter), ('\u{1e8d0}', '\u{1e8d6}', SC_Extend), ('\u{1e900}',
3313
        '\u{1e921}', SC_Upper), ('\u{1e922}', '\u{1e943}', SC_Lower), ('\u{1e944}', '\u{1e94a}',
3314
        SC_Extend), ('\u{1e94b}', '\u{1e94b}', SC_OLetter), ('\u{1e950}', '\u{1e959}', SC_Numeric),
3315
        ('\u{1ee00}', '\u{1ee03}', SC_OLetter), ('\u{1ee05}', '\u{1ee1f}', SC_OLetter),
3316
        ('\u{1ee21}', '\u{1ee22}', SC_OLetter), ('\u{1ee24}', '\u{1ee24}', SC_OLetter),
3317
        ('\u{1ee27}', '\u{1ee27}', SC_OLetter), ('\u{1ee29}', '\u{1ee32}', SC_OLetter),
3318
        ('\u{1ee34}', '\u{1ee37}', SC_OLetter), ('\u{1ee39}', '\u{1ee39}', SC_OLetter),
3319
        ('\u{1ee3b}', '\u{1ee3b}', SC_OLetter), ('\u{1ee42}', '\u{1ee42}', SC_OLetter),
3320
        ('\u{1ee47}', '\u{1ee47}', SC_OLetter), ('\u{1ee49}', '\u{1ee49}', SC_OLetter),
3321
        ('\u{1ee4b}', '\u{1ee4b}', SC_OLetter), ('\u{1ee4d}', '\u{1ee4f}', SC_OLetter),
3322
        ('\u{1ee51}', '\u{1ee52}', SC_OLetter), ('\u{1ee54}', '\u{1ee54}', SC_OLetter),
3323
        ('\u{1ee57}', '\u{1ee57}', SC_OLetter), ('\u{1ee59}', '\u{1ee59}', SC_OLetter),
3324
        ('\u{1ee5b}', '\u{1ee5b}', SC_OLetter), ('\u{1ee5d}', '\u{1ee5d}', SC_OLetter),
3325
        ('\u{1ee5f}', '\u{1ee5f}', SC_OLetter), ('\u{1ee61}', '\u{1ee62}', SC_OLetter),
3326
        ('\u{1ee64}', '\u{1ee64}', SC_OLetter), ('\u{1ee67}', '\u{1ee6a}', SC_OLetter),
3327
        ('\u{1ee6c}', '\u{1ee72}', SC_OLetter), ('\u{1ee74}', '\u{1ee77}', SC_OLetter),
3328
        ('\u{1ee79}', '\u{1ee7c}', SC_OLetter), ('\u{1ee7e}', '\u{1ee7e}', SC_OLetter),
3329
        ('\u{1ee80}', '\u{1ee89}', SC_OLetter), ('\u{1ee8b}', '\u{1ee9b}', SC_OLetter),
3330
        ('\u{1eea1}', '\u{1eea3}', SC_OLetter), ('\u{1eea5}', '\u{1eea9}', SC_OLetter),
3331
        ('\u{1eeab}', '\u{1eebb}', SC_OLetter), ('\u{1f130}', '\u{1f149}', SC_Upper), ('\u{1f150}',
3332
        '\u{1f169}', SC_Upper), ('\u{1f170}', '\u{1f189}', SC_Upper), ('\u{1f676}', '\u{1f678}',
3333
        SC_Close), ('\u{1fbf0}', '\u{1fbf9}', SC_Numeric), ('\u{20000}', '\u{2a6df}', SC_OLetter),
3334
        ('\u{2a700}', '\u{2b81d}', SC_OLetter), ('\u{2b820}', '\u{2cead}', SC_OLetter),
3335
        ('\u{2ceb0}', '\u{2ebe0}', SC_OLetter), ('\u{2ebf0}', '\u{2ee5d}', SC_OLetter),
3336
        ('\u{2f800}', '\u{2fa1d}', SC_OLetter), ('\u{30000}', '\u{3134a}', SC_OLetter),
3337
        ('\u{31350}', '\u{33479}', SC_OLetter), ('\u{e0001}', '\u{e0001}', SC_Format), ('\u{e0020}',
3338
        '\u{e007f}', SC_Extend), ('\u{e0100}', '\u{e01ef}', SC_Extend)
3339
    ];
3340
3341
}