source: icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

Last change on this file was 6192, checked in by cameron, 7 months ago

Updates for Unicode 11.0 plus Emoji properties

File size: 243.1 KB
Line 
1#ifndef DERIVEDCOREPROPERTIES_H
2#define DERIVEDCOREPROPERTIES_H
3/*
4 *  Copyright (c) 2018 International Characters, Inc.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 *  icgrep is a trademark of International Characters, Inc.
7 *
8 *  This file is generated by UCD_properties.py - manual edits may be lost.
9 */
10
11#include "PropertyAliases.h"
12#include "PropertyObjects.h"
13#include "PropertyValueAliases.h"
14#include "unicode_set.h"
15
16namespace UCD {
17    namespace ALPHA_ns {
18        /** Code Point Ranges for Alpha
19        [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5],
20        [00ba, 00ba], [00c0, 00d6], [00d8, 00f6], [00f8, 02c1],
21        [02c6, 02d1], [02e0, 02e4], [02ec, 02ec], [02ee, 02ee],
22        [0345, 0345], [0370, 0374], [0376, 0377], [037a, 037d],
23        [037f, 037f], [0386, 0386], [0388, 038a], [038c, 038c],
24        [038e, 03a1], [03a3, 03f5], [03f7, 0481], [048a, 052f],
25        [0531, 0556], [0559, 0559], [0560, 0588], [05b0, 05bd],
26        [05bf, 05bf], [05c1, 05c2], [05c4, 05c5], [05c7, 05c7],
27        [05d0, 05ea], [05ef, 05f2], [0610, 061a], [0620, 0657],
28        [0659, 065f], [066e, 06d3], [06d5, 06dc], [06e1, 06e8],
29        [06ed, 06ef], [06fa, 06fc], [06ff, 06ff], [0710, 073f],
30        [074d, 07b1], [07ca, 07ea], [07f4, 07f5], [07fa, 07fa],
31        [0800, 0817], [081a, 082c], [0840, 0858], [0860, 086a],
32        [08a0, 08b4], [08b6, 08bd], [08d4, 08df], [08e3, 08e9],
33        [08f0, 093b], [093d, 094c], [094e, 0950], [0955, 0963],
34        [0971, 0983], [0985, 098c], [098f, 0990], [0993, 09a8],
35        [09aa, 09b0], [09b2, 09b2], [09b6, 09b9], [09bd, 09c4],
36        [09c7, 09c8], [09cb, 09cc], [09ce, 09ce], [09d7, 09d7],
37        [09dc, 09dd], [09df, 09e3], [09f0, 09f1], [09fc, 09fc],
38        [0a01, 0a03], [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28],
39        [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39],
40        [0a3e, 0a42], [0a47, 0a48], [0a4b, 0a4c], [0a51, 0a51],
41        [0a59, 0a5c], [0a5e, 0a5e], [0a70, 0a75], [0a81, 0a83],
42        [0a85, 0a8d], [0a8f, 0a91], [0a93, 0aa8], [0aaa, 0ab0],
43        [0ab2, 0ab3], [0ab5, 0ab9], [0abd, 0ac5], [0ac7, 0ac9],
44        [0acb, 0acc], [0ad0, 0ad0], [0ae0, 0ae3], [0af9, 0afc],
45        [0b01, 0b03], [0b05, 0b0c], [0b0f, 0b10], [0b13, 0b28],
46        [0b2a, 0b30], [0b32, 0b33], [0b35, 0b39], [0b3d, 0b44],
47        [0b47, 0b48], [0b4b, 0b4c], [0b56, 0b57], [0b5c, 0b5d],
48        [0b5f, 0b63], [0b71, 0b71], [0b82, 0b83], [0b85, 0b8a],
49        [0b8e, 0b90], [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c],
50        [0b9e, 0b9f], [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9],
51        [0bbe, 0bc2], [0bc6, 0bc8], [0bca, 0bcc], [0bd0, 0bd0],
52        [0bd7, 0bd7], [0c00, 0c03], [0c05, 0c0c], [0c0e, 0c10],
53        [0c12, 0c28], [0c2a, 0c39], [0c3d, 0c44], [0c46, 0c48],
54        [0c4a, 0c4c], [0c55, 0c56], [0c58, 0c5a], [0c60, 0c63],
55        [0c80, 0c83], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
56        [0caa, 0cb3], [0cb5, 0cb9], [0cbd, 0cc4], [0cc6, 0cc8],
57        [0cca, 0ccc], [0cd5, 0cd6], [0cde, 0cde], [0ce0, 0ce3],
58        [0cf1, 0cf2], [0d00, 0d03], [0d05, 0d0c], [0d0e, 0d10],
59        [0d12, 0d3a], [0d3d, 0d44], [0d46, 0d48], [0d4a, 0d4c],
60        [0d4e, 0d4e], [0d54, 0d57], [0d5f, 0d63], [0d7a, 0d7f],
61        [0d82, 0d83], [0d85, 0d96], [0d9a, 0db1], [0db3, 0dbb],
62        [0dbd, 0dbd], [0dc0, 0dc6], [0dcf, 0dd4], [0dd6, 0dd6],
63        [0dd8, 0ddf], [0df2, 0df3], [0e01, 0e3a], [0e40, 0e46],
64        [0e4d, 0e4d], [0e81, 0e82], [0e84, 0e84], [0e87, 0e88],
65        [0e8a, 0e8a], [0e8d, 0e8d], [0e94, 0e97], [0e99, 0e9f],
66        [0ea1, 0ea3], [0ea5, 0ea5], [0ea7, 0ea7], [0eaa, 0eab],
67        [0ead, 0eb9], [0ebb, 0ebd], [0ec0, 0ec4], [0ec6, 0ec6],
68        [0ecd, 0ecd], [0edc, 0edf], [0f00, 0f00], [0f40, 0f47],
69        [0f49, 0f6c], [0f71, 0f81], [0f88, 0f97], [0f99, 0fbc],
70        [1000, 1036], [1038, 1038], [103b, 103f], [1050, 1062],
71        [1065, 1068], [106e, 1086], [108e, 108e], [109c, 109d],
72        [10a0, 10c5], [10c7, 10c7], [10cd, 10cd], [10d0, 10fa],
73        [10fc, 1248], [124a, 124d], [1250, 1256], [1258, 1258],
74        [125a, 125d], [1260, 1288], [128a, 128d], [1290, 12b0],
75        [12b2, 12b5], [12b8, 12be], [12c0, 12c0], [12c2, 12c5],
76        [12c8, 12d6], [12d8, 1310], [1312, 1315], [1318, 135a],
77        [135f, 135f], [1380, 138f], [13a0, 13f5], [13f8, 13fd],
78        [1401, 166c], [166f, 167f], [1681, 169a], [16a0, 16ea],
79        [16ee, 16f8], [1700, 170c], [170e, 1713], [1720, 1733],
80        [1740, 1753], [1760, 176c], [176e, 1770], [1772, 1773],
81        [1780, 17b3], [17b6, 17c8], [17d7, 17d7], [17dc, 17dc],
82        [1820, 1878], [1880, 18aa], [18b0, 18f5], [1900, 191e],
83        [1920, 192b], [1930, 1938], [1950, 196d], [1970, 1974],
84        [1980, 19ab], [19b0, 19c9], [1a00, 1a1b], [1a20, 1a5e],
85        [1a61, 1a74], [1aa7, 1aa7], [1b00, 1b33], [1b35, 1b43],
86        [1b45, 1b4b], [1b80, 1ba9], [1bac, 1baf], [1bba, 1be5],
87        [1be7, 1bf1], [1c00, 1c35], [1c4d, 1c4f], [1c5a, 1c7d],
88        [1c80, 1c88], [1c90, 1cba], [1cbd, 1cbf], [1ce9, 1cec],
89        [1cee, 1cf3], [1cf5, 1cf6], [1d00, 1dbf], [1de7, 1df4],
90        [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
91        [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
92        [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe],
93        [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb],
94        [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2071, 2071],
95        [207f, 207f], [2090, 209c], [2102, 2102], [2107, 2107],
96        [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124],
97        [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2139],
98        [213c, 213f], [2145, 2149], [214e, 214e], [2160, 2188],
99        [24b6, 24e9], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
100        [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25], [2d27, 2d27],
101        [2d2d, 2d2d], [2d30, 2d67], [2d6f, 2d6f], [2d80, 2d96],
102        [2da0, 2da6], [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe],
103        [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde],
104        [2de0, 2dff], [2e2f, 2e2f], [3005, 3007], [3021, 3029],
105        [3031, 3035], [3038, 303c], [3041, 3096], [309d, 309f],
106        [30a1, 30fa], [30fc, 30ff], [3105, 312f], [3131, 318e],
107        [31a0, 31ba], [31f0, 31ff], [3400, 4db5], [4e00, 9fef],
108        [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
109        [a62a, a62b], [a640, a66e], [a674, a67b], [a67f, a6ef],
110        [a717, a71f], [a722, a788], [a78b, a7b9], [a7f7, a801],
111        [a803, a805], [a807, a80a], [a80c, a827], [a840, a873],
112        [a880, a8c3], [a8c5, a8c5], [a8f2, a8f7], [a8fb, a8fb],
113        [a8fd, a8fe], [a90a, a92a], [a930, a952], [a960, a97c],
114        [a980, a9b2], [a9b4, a9bf], [a9cf, a9cf], [a9e0, a9e4],
115        [a9e6, a9ef], [a9fa, a9fe], [aa00, aa36], [aa40, aa4d],
116        [aa60, aa76], [aa7a, aa7a], [aa7e, aabe], [aac0, aac0],
117        [aac2, aac2], [aadb, aadd], [aae0, aaef], [aaf2, aaf5],
118        [ab01, ab06], [ab09, ab0e], [ab11, ab16], [ab20, ab26],
119        [ab28, ab2e], [ab30, ab5a], [ab5c, ab65], [ab70, abea],
120        [ac00, d7a3], [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d],
121        [fa70, fad9], [fb00, fb06], [fb13, fb17], [fb1d, fb28],
122        [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
123        [fb43, fb44], [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f],
124        [fd92, fdc7], [fdf0, fdfb], [fe70, fe74], [fe76, fefc],
125        [ff21, ff3a], [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7],
126        [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [10000, 1000b],
127        [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
128        [10050, 1005d], [10080, 100fa], [10140, 10174], [10280, 1029c],
129        [102a0, 102d0], [10300, 1031f], [1032d, 1034a], [10350, 1037a],
130        [10380, 1039d], [103a0, 103c3], [103c8, 103cf], [103d1, 103d5],
131        [10400, 1049d], [104b0, 104d3], [104d8, 104fb], [10500, 10527],
132        [10530, 10563], [10600, 10736], [10740, 10755], [10760, 10767],
133        [10800, 10805], [10808, 10808], [1080a, 10835], [10837, 10838],
134        [1083c, 1083c], [1083f, 10855], [10860, 10876], [10880, 1089e],
135        [108e0, 108f2], [108f4, 108f5], [10900, 10915], [10920, 10939],
136        [10980, 109b7], [109be, 109bf], [10a00, 10a03], [10a05, 10a06],
137        [10a0c, 10a13], [10a15, 10a17], [10a19, 10a35], [10a60, 10a7c],
138        [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae4], [10b00, 10b35],
139        [10b40, 10b55], [10b60, 10b72], [10b80, 10b91], [10c00, 10c48],
140        [10c80, 10cb2], [10cc0, 10cf2], [10d00, 10d27], [10f00, 10f1c],
141        [10f27, 10f27], [10f30, 10f45], [11000, 11045], [11082, 110b8],
142        [110d0, 110e8], [11100, 11132], [11144, 11146], [11150, 11172],
143        [11176, 11176], [11180, 111bf], [111c1, 111c4], [111da, 111da],
144        [111dc, 111dc], [11200, 11211], [11213, 11234], [11237, 11237],
145        [1123e, 1123e], [11280, 11286], [11288, 11288], [1128a, 1128d],
146        [1128f, 1129d], [1129f, 112a8], [112b0, 112e8], [11300, 11303],
147        [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
148        [11332, 11333], [11335, 11339], [1133d, 11344], [11347, 11348],
149        [1134b, 1134c], [11350, 11350], [11357, 11357], [1135d, 11363],
150        [11400, 11441], [11443, 11445], [11447, 1144a], [11480, 114c1],
151        [114c4, 114c5], [114c7, 114c7], [11580, 115b5], [115b8, 115be],
152        [115d8, 115dd], [11600, 1163e], [11640, 11640], [11644, 11644],
153        [11680, 116b5], [11700, 1171a], [1171d, 1172a], [11800, 11838],
154        [118a0, 118df], [118ff, 118ff], [11a00, 11a32], [11a35, 11a3e],
155        [11a50, 11a83], [11a86, 11a97], [11a9d, 11a9d], [11ac0, 11af8],
156        [11c00, 11c08], [11c0a, 11c36], [11c38, 11c3e], [11c40, 11c40],
157        [11c72, 11c8f], [11c92, 11ca7], [11ca9, 11cb6], [11d00, 11d06],
158        [11d08, 11d09], [11d0b, 11d36], [11d3a, 11d3a], [11d3c, 11d3d],
159        [11d3f, 11d41], [11d43, 11d43], [11d46, 11d47], [11d60, 11d65],
160        [11d67, 11d68], [11d6a, 11d8e], [11d90, 11d91], [11d93, 11d96],
161        [11d98, 11d98], [11ee0, 11ef6], [12000, 12399], [12400, 1246e],
162        [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
163        [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b36], [16b40, 16b43],
164        [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e7f], [16f00, 16f44],
165        [16f50, 16f7e], [16f93, 16f9f], [16fe0, 16fe1], [17000, 187f1],
166        [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a],
167        [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1bc9e, 1bc9e],
168        [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2],
169        [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb],
170        [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514],
171        [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544],
172        [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d6c0],
173        [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714], [1d716, 1d734],
174        [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788], [1d78a, 1d7a8],
175        [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e000, 1e006], [1e008, 1e018],
176        [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e800, 1e8c4],
177        [1e900, 1e943], [1e947, 1e947], [1ee00, 1ee03], [1ee05, 1ee1f],
178        [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27], [1ee29, 1ee32],
179        [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b], [1ee42, 1ee42],
180        [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b], [1ee4d, 1ee4f],
181        [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57], [1ee59, 1ee59],
182        [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f], [1ee61, 1ee62],
183        [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72], [1ee74, 1ee77],
184        [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89], [1ee8b, 1ee9b],
185        [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb], [1f130, 1f149],
186        [1f150, 1f169], [1f170, 1f189], [20000, 2a6d6], [2a700, 2b734],
187        [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
188
189
190        namespace {
191        const static UnicodeSet::run_t __codepoint_set_runs[] = {
192        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
193        {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
194        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 5},
195        {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
196        {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 3}, {Full, 1},
197        {Mixed, 22}, {Empty, 1}, {Mixed, 19}, {Empty, 1}, {Mixed, 3},
198        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
199        {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10},
200        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
201        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
202        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1},
203        {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1},
204        {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
205        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
206        {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
207        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
208        {Empty, 1}, {Mixed, 1}, {Full, 6}, {Empty, 1}, {Mixed, 1},
209        {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
210        {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
211        {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
212        {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
213        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 1},
214        {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
215        {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
216        {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2},
217        {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
218        {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3},
219        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
220        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 3},
221        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3}, {Mixed, 1},
222        {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
223        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
224        {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
225        {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3},
226        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
227        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
228        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
229        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
230        {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
231        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
232        {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
233        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
234        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
235        {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
236        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
237        {Empty, 14}, {Mixed, 3}, {Empty, 5}, {Full, 2}, {Mixed, 1},
238        {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2},
239        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
240        {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1},
241        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1},
242        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
243        {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 6},
244        {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1},
245        {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
246        {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6},
247        {Empty, 2}, {Mixed, 5}, {Empty, 10}, {Mixed, 1}, {Empty, 8},
248        {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
249        {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1},
250        {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17},
251        {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
252        {Empty, 21}, {Full, 2}, {Empty, 4}, {Full, 2}, {Mixed, 3},
253        {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23},
254        {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2},
255        {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3},
256        {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1},
257        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
258        {Empty, 65}, {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1},
259        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
260        {Empty, 19}, {Mixed, 4}, {Empty, 115}, {Full, 1334}, {Mixed, 1},
261        {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
262        {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
263        {Full, 16}, {Mixed, 1}, {Empty, 28719}};
264        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
265        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
266        0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
267        0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
268        0x000001ff, 0xbfff0000, 0xffff00b6, 0x000787ff, 0x07ff0000,
269        0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe, 0xffff0000,
270        0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff, 0xfcffffff,
271        0x00001fff, 0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfff00000,
272        0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f, 0xfff99fef,
273        0xe3c5fdff, 0xb080599f, 0x1003000f, 0xfff987ee, 0xc36dfdff,
274        0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff, 0x00011bbf,
275        0x1e00000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f, 0x0002000f,
276        0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef, 0xe3fffdff,
277        0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff, 0x40601ddf,
278        0x0006000f, 0xfffddfef, 0xe7ffffff, 0x80f05ddf, 0xfc00000f,
279        0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000, 0xfffffffe,
280        0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae, 0xf000205f,
281        0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03, 0x1fffffff,
282        0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f, 0xffff20bf,
283        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
284        0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
285        0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff, 0x000fffff,
286        0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff, 0x01ffffff,
287        0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff, 0xffff0000,
288        0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff, 0x7fffffff,
289        0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef, 0xfc00f3ff,
290        0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff, 0xffff01ff,
291        0xe7ffffff, 0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f,
292        0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000,
293        0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0, 0x000001ff,
294        0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
295        0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
296        0x00008000, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff,
297        0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffeffff, 0x00007fff,
298        0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff, 0x00001fff,
299        0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x8ff07fff,
300        0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x03ffffff,
301        0xff800000, 0xfffff7bb, 0x000000ff, 0x000fffff, 0x0000002f,
302        0x68fc0000, 0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff,
303        0xfff7ffff, 0x00008000, 0x7c00ffdf, 0x007fffff, 0x00003fff,
304        0xc47fffff, 0x7fffffff, 0x38000005, 0x003cffff, 0x007e7e7e,
305        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x000007ff, 0xffff000f,
306        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
307        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
308        0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000,
309        0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff,
310        0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff,
311        0x001fffff, 0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff,
312        0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000,
313        0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
314        0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
315        0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff,
316        0xc0ffffff, 0xfeeff06f, 0x003fffff, 0x1fffffff, 0x1fffffff,
317        0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff,
318        0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff, 0x000000ff,
319        0x1fffffff, 0xffff0080, 0x0000003f, 0x0000003f, 0xfffffffc,
320        0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff, 0xffff0070,
321        0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff, 0xbfffbd7f,
322        0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff, 0xe081199f,
323        0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff, 0x3f000000,
324        0x7fffffff, 0x00000011, 0x003fffff, 0xe7ffffff, 0x000007ff,
325        0x01ffffff, 0x80000000, 0x7fe7ffff, 0xffff0000, 0x20ffffcf,
326        0x01ffffff, 0xfffffdff, 0x7f7fffff, 0x00000001, 0xfffc0000,
327        0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff, 0x000000cb,
328        0xfffffdbf, 0x017b7fff, 0x007fffff, 0x03ffffff, 0x00007fff,
329        0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
330        0xffff0000, 0x00003fff, 0x007fffff, 0x0000000f, 0xe0fffff8,
331        0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000, 0x00000003,
332        0x0003ffff, 0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff,
333        0x1fff07ff, 0x43ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
334        0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
335        0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
336        0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0xf9ffff7f,
337        0x000007db, 0x0000001f, 0x0000008f, 0xffffffef, 0x0af7fe96,
338        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff0000,
339        0xffff03ff, 0xffff03ff, 0x000003ff, 0x007fffff, 0x001fffff,
340        0x3fffffff, 0xffff0003, 0x00000001, 0x3fffffff};
341        }
342
343        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 369, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 379, 0};
344
345        static BinaryPropertyObject property_object{Alpha, std::move(codepoint_set)};
346    }
347    namespace CI_ns {
348        /** Code Point Ranges for CI
349        [0027, 0027], [002e, 002e], [003a, 003a], [005e, 005e],
350        [0060, 0060], [00a8, 00a8], [00ad, 00ad], [00af, 00af],
351        [00b4, 00b4], [00b7, 00b8], [02b0, 036f], [0374, 0375],
352        [037a, 037a], [0384, 0385], [0387, 0387], [0483, 0489],
353        [0559, 0559], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
354        [05c4, 05c5], [05c7, 05c7], [05f4, 05f4], [0600, 0605],
355        [0610, 061a], [061c, 061c], [0640, 0640], [064b, 065f],
356        [0670, 0670], [06d6, 06dd], [06df, 06e8], [06ea, 06ed],
357        [070f, 070f], [0711, 0711], [0730, 074a], [07a6, 07b0],
358        [07eb, 07f5], [07fa, 07fa], [07fd, 07fd], [0816, 082d],
359        [0859, 085b], [08d3, 0902], [093a, 093a], [093c, 093c],
360        [0941, 0948], [094d, 094d], [0951, 0957], [0962, 0963],
361        [0971, 0971], [0981, 0981], [09bc, 09bc], [09c1, 09c4],
362        [09cd, 09cd], [09e2, 09e3], [09fe, 09fe], [0a01, 0a02],
363        [0a3c, 0a3c], [0a41, 0a42], [0a47, 0a48], [0a4b, 0a4d],
364        [0a51, 0a51], [0a70, 0a71], [0a75, 0a75], [0a81, 0a82],
365        [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8], [0acd, 0acd],
366        [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b01], [0b3c, 0b3c],
367        [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d], [0b56, 0b56],
368        [0b62, 0b63], [0b82, 0b82], [0bc0, 0bc0], [0bcd, 0bcd],
369        [0c00, 0c00], [0c04, 0c04], [0c3e, 0c40], [0c46, 0c48],
370        [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63], [0c81, 0c81],
371        [0cbc, 0cbc], [0cbf, 0cbf], [0cc6, 0cc6], [0ccc, 0ccd],
372        [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c], [0d41, 0d44],
373        [0d4d, 0d4d], [0d62, 0d63], [0dca, 0dca], [0dd2, 0dd4],
374        [0dd6, 0dd6], [0e31, 0e31], [0e34, 0e3a], [0e46, 0e4e],
375        [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc], [0ec6, 0ec6],
376        [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37],
377        [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87],
378        [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030],
379        [1032, 1037], [1039, 103a], [103d, 103e], [1058, 1059],
380        [105e, 1060], [1071, 1074], [1082, 1082], [1085, 1086],
381        [108d, 108d], [109d, 109d], [10fc, 10fc], [135d, 135f],
382        [1712, 1714], [1732, 1734], [1752, 1753], [1772, 1773],
383        [17b4, 17b5], [17b7, 17bd], [17c6, 17c6], [17c9, 17d3],
384        [17d7, 17d7], [17dd, 17dd], [180b, 180e], [1843, 1843],
385        [1885, 1886], [18a9, 18a9], [1920, 1922], [1927, 1928],
386        [1932, 1932], [1939, 193b], [1a17, 1a18], [1a1b, 1a1b],
387        [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62],
388        [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f], [1aa7, 1aa7],
389        [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a],
390        [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81],
391        [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6],
392        [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33],
393        [1c36, 1c37], [1c78, 1c7d], [1cd0, 1cd2], [1cd4, 1ce0],
394        [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9],
395        [1d2c, 1d6a], [1d78, 1d78], [1d9b, 1df9], [1dfb, 1dff],
396        [1fbd, 1fbd], [1fbf, 1fc1], [1fcd, 1fcf], [1fdd, 1fdf],
397        [1fed, 1fef], [1ffd, 1ffe], [200b, 200f], [2018, 2019],
398        [2024, 2024], [2027, 2027], [202a, 202e], [2060, 2064],
399        [2066, 206f], [2071, 2071], [207f, 207f], [2090, 209c],
400        [20d0, 20f0], [2c7c, 2c7d], [2cef, 2cf1], [2d6f, 2d6f],
401        [2d7f, 2d7f], [2de0, 2dff], [2e2f, 2e2f], [3005, 3005],
402        [302a, 302d], [3031, 3035], [303b, 303b], [3099, 309e],
403        [30fc, 30fe], [a015, a015], [a4f8, a4fd], [a60c, a60c],
404        [a66f, a672], [a674, a67d], [a67f, a67f], [a69c, a69f],
405        [a6f0, a6f1], [a700, a721], [a770, a770], [a788, a78a],
406        [a7f8, a7f9], [a802, a802], [a806, a806], [a80b, a80b],
407        [a825, a826], [a8c4, a8c5], [a8e0, a8f1], [a8ff, a8ff],
408        [a926, a92d], [a947, a951], [a980, a982], [a9b3, a9b3],
409        [a9b6, a9b9], [a9bc, a9bc], [a9cf, a9cf], [a9e5, a9e6],
410        [aa29, aa2e], [aa31, aa32], [aa35, aa36], [aa43, aa43],
411        [aa4c, aa4c], [aa70, aa70], [aa7c, aa7c], [aab0, aab0],
412        [aab2, aab4], [aab7, aab8], [aabe, aabf], [aac1, aac1],
413        [aadd, aadd], [aaec, aaed], [aaf3, aaf4], [aaf6, aaf6],
414        [ab5b, ab5f], [abe5, abe5], [abe8, abe8], [abed, abed],
415        [fb1e, fb1e], [fbb2, fbc1], [fe00, fe0f], [fe13, fe13],
416        [fe20, fe2f], [fe52, fe52], [fe55, fe55], [feff, feff],
417        [ff07, ff07], [ff0e, ff0e], [ff1a, ff1a], [ff3e, ff3e],
418        [ff40, ff40], [ff70, ff70], [ff9e, ff9f], [ffe3, ffe3],
419        [fff9, fffb], [101fd, 101fd], [102e0, 102e0], [10376, 1037a],
420        [10a01, 10a03], [10a05, 10a06], [10a0c, 10a0f], [10a38, 10a3a],
421        [10a3f, 10a3f], [10ae5, 10ae6], [10d24, 10d27], [10f46, 10f50],
422        [11001, 11001], [11038, 11046], [1107f, 11081], [110b3, 110b6],
423        [110b9, 110ba], [110bd, 110bd], [110cd, 110cd], [11100, 11102],
424        [11127, 1112b], [1112d, 11134], [11173, 11173], [11180, 11181],
425        [111b6, 111be], [111c9, 111cc], [1122f, 11231], [11234, 11234],
426        [11236, 11237], [1123e, 1123e], [112df, 112df], [112e3, 112ea],
427        [11300, 11301], [1133b, 1133c], [11340, 11340], [11366, 1136c],
428        [11370, 11374], [11438, 1143f], [11442, 11444], [11446, 11446],
429        [1145e, 1145e], [114b3, 114b8], [114ba, 114ba], [114bf, 114c0],
430        [114c2, 114c3], [115b2, 115b5], [115bc, 115bd], [115bf, 115c0],
431        [115dc, 115dd], [11633, 1163a], [1163d, 1163d], [1163f, 11640],
432        [116ab, 116ab], [116ad, 116ad], [116b0, 116b5], [116b7, 116b7],
433        [1171d, 1171f], [11722, 11725], [11727, 1172b], [1182f, 11837],
434        [11839, 1183a], [11a01, 11a0a], [11a33, 11a38], [11a3b, 11a3e],
435        [11a47, 11a47], [11a51, 11a56], [11a59, 11a5b], [11a8a, 11a96],
436        [11a98, 11a99], [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f],
437        [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
438        [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
439        [11d47, 11d47], [11d90, 11d91], [11d95, 11d95], [11d97, 11d97],
440        [11ef3, 11ef4], [16af0, 16af4], [16b30, 16b36], [16b40, 16b43],
441        [16f8f, 16f9f], [16fe0, 16fe1], [1bc9d, 1bc9e], [1bca0, 1bca3],
442        [1d167, 1d169], [1d173, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad],
443        [1d242, 1d244], [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75],
444        [1da84, 1da84], [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006],
445        [1e008, 1e018], [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a],
446        [1e8d0, 1e8d6], [1e944, 1e94a], [1f3fb, 1f3ff], [e0001, e0001],
447        [e0020, e007f], [e0100, e01ef]**/
448
449
450        namespace {
451        const static UnicodeSet::run_t __codepoint_set_runs[] = {
452        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
453        {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
454        {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
455        {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
456        {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
457        {Mixed, 21}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 12},
458        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
459        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
460        {Empty, 2}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 18},
461        {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
462        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
463        {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
464        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
465        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
466        {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
467        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
468        {Empty, 13}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
469        {Mixed, 2}, {Empty, 91}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
470        {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 1},
471        {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
472        {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1}, {Empty, 38},
473        {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
474        {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
475        {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
476        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
477        {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
478        {Empty, 4}, {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 4},
479        {Mixed, 2}, {Empty, 17}, {Mixed, 3}, {Empty, 4}, {Mixed, 6},
480        {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
481        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
482        {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
483        {Mixed, 1}, {Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 2},
484        {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4},
485        {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
486        {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
487        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
488        {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12},
489        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
490        {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607},
491        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
492        {Empty, 2}, {Mixed, 1}, {Empty, 612}, {Mixed, 2}, {Empty, 165},
493        {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61}, {Full, 1},
494        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2},
495        {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 84},
496        {Mixed, 1}, {Empty, 24672}, {Mixed, 1}, {Full, 3}, {Empty, 4},
497        {Full, 7}, {Mixed, 1}, {Empty, 6128}};
498        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
499        0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
500        0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
501        0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
502        0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
503        0x000007ff, 0x0001ffc0, 0x243ff800, 0xffc00000, 0x00003fff,
504        0x0e000000, 0xfff80000, 0x00000007, 0x14000000, 0x00fe21fe,
505        0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x4000000c,
506        0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
507        0x10000000, 0x000021be, 0xfc00000c, 0x00000002, 0x90000000,
508        0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000011,
509        0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
510        0x00003040, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e,
511        0x0000000c, 0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000,
512        0x00003f40, 0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df,
513        0x1fffffff, 0x00000040, 0x66fde000, 0xc3000000, 0x001e0001,
514        0x20002064, 0x10000000, 0xe0000000, 0x001c0000, 0x001c0000,
515        0x000c0000, 0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800,
516        0x00000008, 0x00000060, 0x00000200, 0x0e040187, 0x09800000,
517        0x7f400000, 0x9ff81fe5, 0x7fff0080, 0x0000000f, 0x17d00000,
518        0x00000004, 0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340,
519        0x00cff000, 0x3f000000, 0xfff70000, 0x031021fd, 0xfffff000,
520        0x010007ff, 0xf8000000, 0xfbffffff, 0xa0000000, 0xe000e003,
521        0x6000e000, 0x0300f800, 0x00007c90, 0x8002ffdf, 0x1fff0000,
522        0xffff0000, 0x0001ffff, 0x30000000, 0x00038000, 0x80008000,
523        0x00008000, 0x00000020, 0x083e3c00, 0x7e000000, 0x70000000,
524        0x00200000, 0x3f000000, 0x00001000, 0xbff78000, 0xf0000000,
525        0x00030000, 0x00000003, 0x00010000, 0x00000700, 0x03000000,
526        0x00000844, 0x00000060, 0x00000030, 0x8003ffff, 0x00003fc0,
527        0x0003ff80, 0x00000007, 0x13c80000, 0x00008000, 0x00000060,
528        0x00667e00, 0x00001008, 0x10010000, 0xc19d0000, 0x20000002,
529        0x00583000, 0xf8000000, 0x00002120, 0x40000000, 0xfffc0000,
530        0x00000003, 0x0008ffff, 0x0000ffff, 0x00240000, 0x80000000,
531        0x04004080, 0x40000000, 0x00000001, 0x00010000, 0xc0000000,
532        0x0e000008, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
533        0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000002,
534        0xff000000, 0x0000007f, 0x80000000, 0x00000003, 0x26780000,
535        0x00002000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
536        0x7fc00000, 0x00001e00, 0x40d38000, 0x80000000, 0x000007f8,
537        0x00000003, 0x18000000, 0x00000001, 0x001f1fc0, 0xff000000,
538        0x4000005c, 0x85f80000, 0x0000000d, 0xb03c0000, 0x30000001,
539        0xa7f80000, 0x00000001, 0x00bf2800, 0xe0000000, 0x00000fbc,
540        0x06ff8000, 0x000007fe, 0x79f80000, 0x0e7e0080, 0x037ffc00,
541        0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000, 0x000000bf,
542        0x00a30000, 0x00180000, 0x001f0000, 0x007f0000, 0x0000000f,
543        0xffff8000, 0x00000003, 0x60000000, 0x0000000f, 0xfff80380,
544        0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff,
545        0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000,
546        0x000007f0, 0xf8000000, 0x00000002, 0x0000ffff};
547        }
548
549        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 228, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 239, 0};
550
551        static BinaryPropertyObject property_object{CI, std::move(codepoint_set)};
552    }
553    namespace CWCF_ns {
554        /** Code Point Ranges for CWCF
555        [0041, 005a], [00b5, 00b5], [00c0, 00d6], [00d8, 00df],
556        [0100, 0100], [0102, 0102], [0104, 0104], [0106, 0106],
557        [0108, 0108], [010a, 010a], [010c, 010c], [010e, 010e],
558        [0110, 0110], [0112, 0112], [0114, 0114], [0116, 0116],
559        [0118, 0118], [011a, 011a], [011c, 011c], [011e, 011e],
560        [0120, 0120], [0122, 0122], [0124, 0124], [0126, 0126],
561        [0128, 0128], [012a, 012a], [012c, 012c], [012e, 012e],
562        [0130, 0130], [0132, 0132], [0134, 0134], [0136, 0136],
563        [0139, 0139], [013b, 013b], [013d, 013d], [013f, 013f],
564        [0141, 0141], [0143, 0143], [0145, 0145], [0147, 0147],
565        [0149, 014a], [014c, 014c], [014e, 014e], [0150, 0150],
566        [0152, 0152], [0154, 0154], [0156, 0156], [0158, 0158],
567        [015a, 015a], [015c, 015c], [015e, 015e], [0160, 0160],
568        [0162, 0162], [0164, 0164], [0166, 0166], [0168, 0168],
569        [016a, 016a], [016c, 016c], [016e, 016e], [0170, 0170],
570        [0172, 0172], [0174, 0174], [0176, 0176], [0178, 0179],
571        [017b, 017b], [017d, 017d], [017f, 017f], [0181, 0182],
572        [0184, 0184], [0186, 0187], [0189, 018b], [018e, 0191],
573        [0193, 0194], [0196, 0198], [019c, 019d], [019f, 01a0],
574        [01a2, 01a2], [01a4, 01a4], [01a6, 01a7], [01a9, 01a9],
575        [01ac, 01ac], [01ae, 01af], [01b1, 01b3], [01b5, 01b5],
576        [01b7, 01b8], [01bc, 01bc], [01c4, 01c5], [01c7, 01c8],
577        [01ca, 01cb], [01cd, 01cd], [01cf, 01cf], [01d1, 01d1],
578        [01d3, 01d3], [01d5, 01d5], [01d7, 01d7], [01d9, 01d9],
579        [01db, 01db], [01de, 01de], [01e0, 01e0], [01e2, 01e2],
580        [01e4, 01e4], [01e6, 01e6], [01e8, 01e8], [01ea, 01ea],
581        [01ec, 01ec], [01ee, 01ee], [01f1, 01f2], [01f4, 01f4],
582        [01f6, 01f8], [01fa, 01fa], [01fc, 01fc], [01fe, 01fe],
583        [0200, 0200], [0202, 0202], [0204, 0204], [0206, 0206],
584        [0208, 0208], [020a, 020a], [020c, 020c], [020e, 020e],
585        [0210, 0210], [0212, 0212], [0214, 0214], [0216, 0216],
586        [0218, 0218], [021a, 021a], [021c, 021c], [021e, 021e],
587        [0220, 0220], [0222, 0222], [0224, 0224], [0226, 0226],
588        [0228, 0228], [022a, 022a], [022c, 022c], [022e, 022e],
589        [0230, 0230], [0232, 0232], [023a, 023b], [023d, 023e],
590        [0241, 0241], [0243, 0246], [0248, 0248], [024a, 024a],
591        [024c, 024c], [024e, 024e], [0345, 0345], [0370, 0370],
592        [0372, 0372], [0376, 0376], [037f, 037f], [0386, 0386],
593        [0388, 038a], [038c, 038c], [038e, 038f], [0391, 03a1],
594        [03a3, 03ab], [03c2, 03c2], [03cf, 03d1], [03d5, 03d6],
595        [03d8, 03d8], [03da, 03da], [03dc, 03dc], [03de, 03de],
596        [03e0, 03e0], [03e2, 03e2], [03e4, 03e4], [03e6, 03e6],
597        [03e8, 03e8], [03ea, 03ea], [03ec, 03ec], [03ee, 03ee],
598        [03f0, 03f1], [03f4, 03f5], [03f7, 03f7], [03f9, 03fa],
599        [03fd, 042f], [0460, 0460], [0462, 0462], [0464, 0464],
600        [0466, 0466], [0468, 0468], [046a, 046a], [046c, 046c],
601        [046e, 046e], [0470, 0470], [0472, 0472], [0474, 0474],
602        [0476, 0476], [0478, 0478], [047a, 047a], [047c, 047c],
603        [047e, 047e], [0480, 0480], [048a, 048a], [048c, 048c],
604        [048e, 048e], [0490, 0490], [0492, 0492], [0494, 0494],
605        [0496, 0496], [0498, 0498], [049a, 049a], [049c, 049c],
606        [049e, 049e], [04a0, 04a0], [04a2, 04a2], [04a4, 04a4],
607        [04a6, 04a6], [04a8, 04a8], [04aa, 04aa], [04ac, 04ac],
608        [04ae, 04ae], [04b0, 04b0], [04b2, 04b2], [04b4, 04b4],
609        [04b6, 04b6], [04b8, 04b8], [04ba, 04ba], [04bc, 04bc],
610        [04be, 04be], [04c0, 04c1], [04c3, 04c3], [04c5, 04c5],
611        [04c7, 04c7], [04c9, 04c9], [04cb, 04cb], [04cd, 04cd],
612        [04d0, 04d0], [04d2, 04d2], [04d4, 04d4], [04d6, 04d6],
613        [04d8, 04d8], [04da, 04da], [04dc, 04dc], [04de, 04de],
614        [04e0, 04e0], [04e2, 04e2], [04e4, 04e4], [04e6, 04e6],
615        [04e8, 04e8], [04ea, 04ea], [04ec, 04ec], [04ee, 04ee],
616        [04f0, 04f0], [04f2, 04f2], [04f4, 04f4], [04f6, 04f6],
617        [04f8, 04f8], [04fa, 04fa], [04fc, 04fc], [04fe, 04fe],
618        [0500, 0500], [0502, 0502], [0504, 0504], [0506, 0506],
619        [0508, 0508], [050a, 050a], [050c, 050c], [050e, 050e],
620        [0510, 0510], [0512, 0512], [0514, 0514], [0516, 0516],
621        [0518, 0518], [051a, 051a], [051c, 051c], [051e, 051e],
622        [0520, 0520], [0522, 0522], [0524, 0524], [0526, 0526],
623        [0528, 0528], [052a, 052a], [052c, 052c], [052e, 052e],
624        [0531, 0556], [0587, 0587], [10a0, 10c5], [10c7, 10c7],
625        [10cd, 10cd], [13f8, 13fd], [1c80, 1c88], [1c90, 1cba],
626        [1cbd, 1cbf], [1e00, 1e00], [1e02, 1e02], [1e04, 1e04],
627        [1e06, 1e06], [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c],
628        [1e0e, 1e0e], [1e10, 1e10], [1e12, 1e12], [1e14, 1e14],
629        [1e16, 1e16], [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c],
630        [1e1e, 1e1e], [1e20, 1e20], [1e22, 1e22], [1e24, 1e24],
631        [1e26, 1e26], [1e28, 1e28], [1e2a, 1e2a], [1e2c, 1e2c],
632        [1e2e, 1e2e], [1e30, 1e30], [1e32, 1e32], [1e34, 1e34],
633        [1e36, 1e36], [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c],
634        [1e3e, 1e3e], [1e40, 1e40], [1e42, 1e42], [1e44, 1e44],
635        [1e46, 1e46], [1e48, 1e48], [1e4a, 1e4a], [1e4c, 1e4c],
636        [1e4e, 1e4e], [1e50, 1e50], [1e52, 1e52], [1e54, 1e54],
637        [1e56, 1e56], [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c],
638        [1e5e, 1e5e], [1e60, 1e60], [1e62, 1e62], [1e64, 1e64],
639        [1e66, 1e66], [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c],
640        [1e6e, 1e6e], [1e70, 1e70], [1e72, 1e72], [1e74, 1e74],
641        [1e76, 1e76], [1e78, 1e78], [1e7a, 1e7a], [1e7c, 1e7c],
642        [1e7e, 1e7e], [1e80, 1e80], [1e82, 1e82], [1e84, 1e84],
643        [1e86, 1e86], [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c],
644        [1e8e, 1e8e], [1e90, 1e90], [1e92, 1e92], [1e94, 1e94],
645        [1e9a, 1e9b], [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2],
646        [1ea4, 1ea4], [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa],
647        [1eac, 1eac], [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2],
648        [1eb4, 1eb4], [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba],
649        [1ebc, 1ebc], [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2],
650        [1ec4, 1ec4], [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca],
651        [1ecc, 1ecc], [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2],
652        [1ed4, 1ed4], [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda],
653        [1edc, 1edc], [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2],
654        [1ee4, 1ee4], [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea],
655        [1eec, 1eec], [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2],
656        [1ef4, 1ef4], [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa],
657        [1efc, 1efc], [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d],
658        [1f28, 1f2f], [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59],
659        [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f],
660        [1f80, 1faf], [1fb2, 1fb4], [1fb7, 1fbc], [1fc2, 1fc4],
661        [1fc7, 1fcc], [1fd8, 1fdb], [1fe8, 1fec], [1ff2, 1ff4],
662        [1ff7, 1ffc], [2126, 2126], [212a, 212b], [2132, 2132],
663        [2160, 216f], [2183, 2183], [24b6, 24cf], [2c00, 2c2e],
664        [2c60, 2c60], [2c62, 2c64], [2c67, 2c67], [2c69, 2c69],
665        [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
666        [2c7e, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86],
667        [2c88, 2c88], [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e],
668        [2c90, 2c90], [2c92, 2c92], [2c94, 2c94], [2c96, 2c96],
669        [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c], [2c9e, 2c9e],
670        [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
671        [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae],
672        [2cb0, 2cb0], [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6],
673        [2cb8, 2cb8], [2cba, 2cba], [2cbc, 2cbc], [2cbe, 2cbe],
674        [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4], [2cc6, 2cc6],
675        [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
676        [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6],
677        [2cd8, 2cd8], [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde],
678        [2ce0, 2ce0], [2ce2, 2ce2], [2ceb, 2ceb], [2ced, 2ced],
679        [2cf2, 2cf2], [a640, a640], [a642, a642], [a644, a644],
680        [a646, a646], [a648, a648], [a64a, a64a], [a64c, a64c],
681        [a64e, a64e], [a650, a650], [a652, a652], [a654, a654],
682        [a656, a656], [a658, a658], [a65a, a65a], [a65c, a65c],
683        [a65e, a65e], [a660, a660], [a662, a662], [a664, a664],
684        [a666, a666], [a668, a668], [a66a, a66a], [a66c, a66c],
685        [a680, a680], [a682, a682], [a684, a684], [a686, a686],
686        [a688, a688], [a68a, a68a], [a68c, a68c], [a68e, a68e],
687        [a690, a690], [a692, a692], [a694, a694], [a696, a696],
688        [a698, a698], [a69a, a69a], [a722, a722], [a724, a724],
689        [a726, a726], [a728, a728], [a72a, a72a], [a72c, a72c],
690        [a72e, a72e], [a732, a732], [a734, a734], [a736, a736],
691        [a738, a738], [a73a, a73a], [a73c, a73c], [a73e, a73e],
692        [a740, a740], [a742, a742], [a744, a744], [a746, a746],
693        [a748, a748], [a74a, a74a], [a74c, a74c], [a74e, a74e],
694        [a750, a750], [a752, a752], [a754, a754], [a756, a756],
695        [a758, a758], [a75a, a75a], [a75c, a75c], [a75e, a75e],
696        [a760, a760], [a762, a762], [a764, a764], [a766, a766],
697        [a768, a768], [a76a, a76a], [a76c, a76c], [a76e, a76e],
698        [a779, a779], [a77b, a77b], [a77d, a77e], [a780, a780],
699        [a782, a782], [a784, a784], [a786, a786], [a78b, a78b],
700        [a78d, a78d], [a790, a790], [a792, a792], [a796, a796],
701        [a798, a798], [a79a, a79a], [a79c, a79c], [a79e, a79e],
702        [a7a0, a7a0], [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6],
703        [a7a8, a7a8], [a7aa, a7ae], [a7b0, a7b4], [a7b6, a7b6],
704        [a7b8, a7b8], [ab70, abbf], [fb00, fb06], [fb13, fb17],
705        [ff21, ff3a], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
706        [118a0, 118bf], [16e40, 16e5f], [1e900, 1e921]**/
707
708
709        namespace {
710        const static UnicodeSet::run_t __codepoint_set_runs[] = {
711        {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
712        {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
713        {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
714        {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Empty, 68},
715        {Mixed, 2}, {Empty, 10}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
716        {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
717        {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
718        {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
719        {Empty, 29}, {Mixed, 1}, {Full, 2}, {Empty, 634}, {Mixed, 1},
720        {Empty, 32}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
721        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
722        {Empty, 95}, {Full, 1}, {Empty, 684}, {Full, 1}, {Empty, 981},
723        {Full, 1}, {Mixed, 1}, {Empty, 30902}};
724        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
725        0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
726        0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
727        0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
728        0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
729        0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
730        0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
731        0x000020bf, 0x3f000000, 0xffff01ff, 0xe7ffffff, 0x55555555,
732        0x55555555, 0x55555555, 0x55555555, 0x4c155555, 0x55555555,
733        0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
734        0x0000ff00, 0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40,
735        0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff,
736        0xc025ea9d, 0x55555555, 0x55555555, 0x55555555, 0x00042805,
737        0x55555555, 0x00001555, 0x05555555, 0x55545554, 0x55555555,
738        0x6a005555, 0x55452855, 0x015f7d55, 0xffff0000, 0x00f8007f,
739        0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff,
740        0x00000003};
741        }
742
743        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 63, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 76, 0};
744
745        static BinaryPropertyObject property_object{CWCF, std::move(codepoint_set)};
746    }
747    namespace CWCM_ns {
748        /** Code Point Ranges for CWCM
749        [0041, 005a], [0061, 007a], [00b5, 00b5], [00c0, 00d6],
750        [00d8, 00f6], [00f8, 0137], [0139, 018c], [018e, 019a],
751        [019c, 01a9], [01ac, 01b9], [01bc, 01bd], [01bf, 01bf],
752        [01c4, 0220], [0222, 0233], [023a, 0254], [0256, 0257],
753        [0259, 0259], [025b, 025c], [0260, 0261], [0263, 0263],
754        [0265, 0266], [0268, 026c], [026f, 026f], [0271, 0272],
755        [0275, 0275], [027d, 027d], [0280, 0280], [0283, 0283],
756        [0287, 028c], [0292, 0292], [029d, 029e], [0345, 0345],
757        [0370, 0373], [0376, 0377], [037b, 037d], [037f, 037f],
758        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 03a1],
759        [03a3, 03d1], [03d5, 03f5], [03f7, 03fb], [03fd, 0481],
760        [048a, 052f], [0531, 0556], [0561, 0587], [10a0, 10c5],
761        [10c7, 10c7], [10cd, 10cd], [10d0, 10fa], [10fd, 10ff],
762        [13a0, 13f5], [13f8, 13fd], [1c80, 1c88], [1c90, 1cba],
763        [1cbd, 1cbf], [1d79, 1d79], [1d7d, 1d7d], [1e00, 1e9b],
764        [1e9e, 1e9e], [1ea0, 1f15], [1f18, 1f1d], [1f20, 1f45],
765        [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
766        [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc],
767        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3],
768        [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc],
769        [2126, 2126], [212a, 212b], [2132, 2132], [214e, 214e],
770        [2160, 217f], [2183, 2184], [24b6, 24e9], [2c00, 2c2e],
771        [2c30, 2c5e], [2c60, 2c70], [2c72, 2c73], [2c75, 2c76],
772        [2c7e, 2ce3], [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25],
773        [2d27, 2d27], [2d2d, 2d2d], [a640, a66d], [a680, a69b],
774        [a722, a72f], [a732, a76f], [a779, a787], [a78b, a78d],
775        [a790, a793], [a796, a7ae], [a7b0, a7b9], [ab53, ab53],
776        [ab70, abbf], [fb00, fb06], [fb13, fb17], [ff21, ff3a],
777        [ff41, ff5a], [10400, 1044f], [104b0, 104d3], [104d8, 104fb],
778        [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df], [16e40, 16e7f],
779        [1e900, 1e943]**/
780
781
782        namespace {
783        const static UnicodeSet::run_t __codepoint_set_runs[] = {
784        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
785        {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
786        {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
787        {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 2}, {Empty, 21},
788        {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 2}, {Empty, 5},
789        {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
790        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
791        {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
792        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
793        {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
794        {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
795        {Full, 1}, {Mixed, 3}, {Empty, 28}, {Mixed, 2}, {Full, 2},
796        {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37},
797        {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 60},
798        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 93},
799        {Full, 2}, {Empty, 683}, {Full, 2}, {Empty, 980}, {Full, 2},
800        {Mixed, 1}, {Empty, 30901}};
801        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
802        0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
803        0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
804        0x1adfffff, 0x20269f6b, 0x60041f89, 0x00000020, 0xb8cf0000,
805        0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
806        0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0xffff20bf,
807        0xe7ffffff, 0x3f3fffff, 0xffff01ff, 0xe7ffffff, 0x22000000,
808        0x4fffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
809        0x0fcf1fdc, 0x1fdc1fff, 0x00040c40, 0x00004000, 0x00000018,
810        0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0xc06dffff,
811        0x000c780f, 0x000020bf, 0x00003fff, 0x0fffffff, 0xfffcfffc,
812        0xfe00ffff, 0xffcf38ff, 0x03ff7fff, 0x00080000, 0xffff0000,
813        0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffff0000,
814        0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff, 0x0000000f};
815        }
816
817        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 82, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 65, 0};
818
819        static BinaryPropertyObject property_object{CWCM, std::move(codepoint_set)};
820    }
821    namespace CWL_ns {
822        /** Code Point Ranges for CWL
823        [0041, 005a], [00c0, 00d6], [00d8, 00de], [0100, 0100],
824        [0102, 0102], [0104, 0104], [0106, 0106], [0108, 0108],
825        [010a, 010a], [010c, 010c], [010e, 010e], [0110, 0110],
826        [0112, 0112], [0114, 0114], [0116, 0116], [0118, 0118],
827        [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
828        [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128],
829        [012a, 012a], [012c, 012c], [012e, 012e], [0130, 0130],
830        [0132, 0132], [0134, 0134], [0136, 0136], [0139, 0139],
831        [013b, 013b], [013d, 013d], [013f, 013f], [0141, 0141],
832        [0143, 0143], [0145, 0145], [0147, 0147], [014a, 014a],
833        [014c, 014c], [014e, 014e], [0150, 0150], [0152, 0152],
834        [0154, 0154], [0156, 0156], [0158, 0158], [015a, 015a],
835        [015c, 015c], [015e, 015e], [0160, 0160], [0162, 0162],
836        [0164, 0164], [0166, 0166], [0168, 0168], [016a, 016a],
837        [016c, 016c], [016e, 016e], [0170, 0170], [0172, 0172],
838        [0174, 0174], [0176, 0176], [0178, 0179], [017b, 017b],
839        [017d, 017d], [0181, 0182], [0184, 0184], [0186, 0187],
840        [0189, 018b], [018e, 0191], [0193, 0194], [0196, 0198],
841        [019c, 019d], [019f, 01a0], [01a2, 01a2], [01a4, 01a4],
842        [01a6, 01a7], [01a9, 01a9], [01ac, 01ac], [01ae, 01af],
843        [01b1, 01b3], [01b5, 01b5], [01b7, 01b8], [01bc, 01bc],
844        [01c4, 01c5], [01c7, 01c8], [01ca, 01cb], [01cd, 01cd],
845        [01cf, 01cf], [01d1, 01d1], [01d3, 01d3], [01d5, 01d5],
846        [01d7, 01d7], [01d9, 01d9], [01db, 01db], [01de, 01de],
847        [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
848        [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee],
849        [01f1, 01f2], [01f4, 01f4], [01f6, 01f8], [01fa, 01fa],
850        [01fc, 01fc], [01fe, 01fe], [0200, 0200], [0202, 0202],
851        [0204, 0204], [0206, 0206], [0208, 0208], [020a, 020a],
852        [020c, 020c], [020e, 020e], [0210, 0210], [0212, 0212],
853        [0214, 0214], [0216, 0216], [0218, 0218], [021a, 021a],
854        [021c, 021c], [021e, 021e], [0220, 0220], [0222, 0222],
855        [0224, 0224], [0226, 0226], [0228, 0228], [022a, 022a],
856        [022c, 022c], [022e, 022e], [0230, 0230], [0232, 0232],
857        [023a, 023b], [023d, 023e], [0241, 0241], [0243, 0246],
858        [0248, 0248], [024a, 024a], [024c, 024c], [024e, 024e],
859        [0370, 0370], [0372, 0372], [0376, 0376], [037f, 037f],
860        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 038f],
861        [0391, 03a1], [03a3, 03ab], [03cf, 03cf], [03d8, 03d8],
862        [03da, 03da], [03dc, 03dc], [03de, 03de], [03e0, 03e0],
863        [03e2, 03e2], [03e4, 03e4], [03e6, 03e6], [03e8, 03e8],
864        [03ea, 03ea], [03ec, 03ec], [03ee, 03ee], [03f4, 03f4],
865        [03f7, 03f7], [03f9, 03fa], [03fd, 042f], [0460, 0460],
866        [0462, 0462], [0464, 0464], [0466, 0466], [0468, 0468],
867        [046a, 046a], [046c, 046c], [046e, 046e], [0470, 0470],
868        [0472, 0472], [0474, 0474], [0476, 0476], [0478, 0478],
869        [047a, 047a], [047c, 047c], [047e, 047e], [0480, 0480],
870        [048a, 048a], [048c, 048c], [048e, 048e], [0490, 0490],
871        [0492, 0492], [0494, 0494], [0496, 0496], [0498, 0498],
872        [049a, 049a], [049c, 049c], [049e, 049e], [04a0, 04a0],
873        [04a2, 04a2], [04a4, 04a4], [04a6, 04a6], [04a8, 04a8],
874        [04aa, 04aa], [04ac, 04ac], [04ae, 04ae], [04b0, 04b0],
875        [04b2, 04b2], [04b4, 04b4], [04b6, 04b6], [04b8, 04b8],
876        [04ba, 04ba], [04bc, 04bc], [04be, 04be], [04c0, 04c1],
877        [04c3, 04c3], [04c5, 04c5], [04c7, 04c7], [04c9, 04c9],
878        [04cb, 04cb], [04cd, 04cd], [04d0, 04d0], [04d2, 04d2],
879        [04d4, 04d4], [04d6, 04d6], [04d8, 04d8], [04da, 04da],
880        [04dc, 04dc], [04de, 04de], [04e0, 04e0], [04e2, 04e2],
881        [04e4, 04e4], [04e6, 04e6], [04e8, 04e8], [04ea, 04ea],
882        [04ec, 04ec], [04ee, 04ee], [04f0, 04f0], [04f2, 04f2],
883        [04f4, 04f4], [04f6, 04f6], [04f8, 04f8], [04fa, 04fa],
884        [04fc, 04fc], [04fe, 04fe], [0500, 0500], [0502, 0502],
885        [0504, 0504], [0506, 0506], [0508, 0508], [050a, 050a],
886        [050c, 050c], [050e, 050e], [0510, 0510], [0512, 0512],
887        [0514, 0514], [0516, 0516], [0518, 0518], [051a, 051a],
888        [051c, 051c], [051e, 051e], [0520, 0520], [0522, 0522],
889        [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a],
890        [052c, 052c], [052e, 052e], [0531, 0556], [10a0, 10c5],
891        [10c7, 10c7], [10cd, 10cd], [13a0, 13f5], [1c90, 1cba],
892        [1cbd, 1cbf], [1e00, 1e00], [1e02, 1e02], [1e04, 1e04],
893        [1e06, 1e06], [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c],
894        [1e0e, 1e0e], [1e10, 1e10], [1e12, 1e12], [1e14, 1e14],
895        [1e16, 1e16], [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c],
896        [1e1e, 1e1e], [1e20, 1e20], [1e22, 1e22], [1e24, 1e24],
897        [1e26, 1e26], [1e28, 1e28], [1e2a, 1e2a], [1e2c, 1e2c],
898        [1e2e, 1e2e], [1e30, 1e30], [1e32, 1e32], [1e34, 1e34],
899        [1e36, 1e36], [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c],
900        [1e3e, 1e3e], [1e40, 1e40], [1e42, 1e42], [1e44, 1e44],
901        [1e46, 1e46], [1e48, 1e48], [1e4a, 1e4a], [1e4c, 1e4c],
902        [1e4e, 1e4e], [1e50, 1e50], [1e52, 1e52], [1e54, 1e54],
903        [1e56, 1e56], [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c],
904        [1e5e, 1e5e], [1e60, 1e60], [1e62, 1e62], [1e64, 1e64],
905        [1e66, 1e66], [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c],
906        [1e6e, 1e6e], [1e70, 1e70], [1e72, 1e72], [1e74, 1e74],
907        [1e76, 1e76], [1e78, 1e78], [1e7a, 1e7a], [1e7c, 1e7c],
908        [1e7e, 1e7e], [1e80, 1e80], [1e82, 1e82], [1e84, 1e84],
909        [1e86, 1e86], [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c],
910        [1e8e, 1e8e], [1e90, 1e90], [1e92, 1e92], [1e94, 1e94],
911        [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2], [1ea4, 1ea4],
912        [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa], [1eac, 1eac],
913        [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4],
914        [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc],
915        [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4],
916        [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca], [1ecc, 1ecc],
917        [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2], [1ed4, 1ed4],
918        [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc],
919        [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4],
920        [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec],
921        [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2], [1ef4, 1ef4],
922        [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa], [1efc, 1efc],
923        [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f],
924        [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b],
925        [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f], [1f88, 1f8f],
926        [1f98, 1f9f], [1fa8, 1faf], [1fb8, 1fbc], [1fc8, 1fcc],
927        [1fd8, 1fdb], [1fe8, 1fec], [1ff8, 1ffc], [2126, 2126],
928        [212a, 212b], [2132, 2132], [2160, 216f], [2183, 2183],
929        [24b6, 24cf], [2c00, 2c2e], [2c60, 2c60], [2c62, 2c64],
930        [2c67, 2c67], [2c69, 2c69], [2c6b, 2c6b], [2c6d, 2c70],
931        [2c72, 2c72], [2c75, 2c75], [2c7e, 2c80], [2c82, 2c82],
932        [2c84, 2c84], [2c86, 2c86], [2c88, 2c88], [2c8a, 2c8a],
933        [2c8c, 2c8c], [2c8e, 2c8e], [2c90, 2c90], [2c92, 2c92],
934        [2c94, 2c94], [2c96, 2c96], [2c98, 2c98], [2c9a, 2c9a],
935        [2c9c, 2c9c], [2c9e, 2c9e], [2ca0, 2ca0], [2ca2, 2ca2],
936        [2ca4, 2ca4], [2ca6, 2ca6], [2ca8, 2ca8], [2caa, 2caa],
937        [2cac, 2cac], [2cae, 2cae], [2cb0, 2cb0], [2cb2, 2cb2],
938        [2cb4, 2cb4], [2cb6, 2cb6], [2cb8, 2cb8], [2cba, 2cba],
939        [2cbc, 2cbc], [2cbe, 2cbe], [2cc0, 2cc0], [2cc2, 2cc2],
940        [2cc4, 2cc4], [2cc6, 2cc6], [2cc8, 2cc8], [2cca, 2cca],
941        [2ccc, 2ccc], [2cce, 2cce], [2cd0, 2cd0], [2cd2, 2cd2],
942        [2cd4, 2cd4], [2cd6, 2cd6], [2cd8, 2cd8], [2cda, 2cda],
943        [2cdc, 2cdc], [2cde, 2cde], [2ce0, 2ce0], [2ce2, 2ce2],
944        [2ceb, 2ceb], [2ced, 2ced], [2cf2, 2cf2], [a640, a640],
945        [a642, a642], [a644, a644], [a646, a646], [a648, a648],
946        [a64a, a64a], [a64c, a64c], [a64e, a64e], [a650, a650],
947        [a652, a652], [a654, a654], [a656, a656], [a658, a658],
948        [a65a, a65a], [a65c, a65c], [a65e, a65e], [a660, a660],
949        [a662, a662], [a664, a664], [a666, a666], [a668, a668],
950        [a66a, a66a], [a66c, a66c], [a680, a680], [a682, a682],
951        [a684, a684], [a686, a686], [a688, a688], [a68a, a68a],
952        [a68c, a68c], [a68e, a68e], [a690, a690], [a692, a692],
953        [a694, a694], [a696, a696], [a698, a698], [a69a, a69a],
954        [a722, a722], [a724, a724], [a726, a726], [a728, a728],
955        [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
956        [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
957        [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
958        [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
959        [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
960        [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
961        [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
962        [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
963        [a76c, a76c], [a76e, a76e], [a779, a779], [a77b, a77b],
964        [a77d, a77e], [a780, a780], [a782, a782], [a784, a784],
965        [a786, a786], [a78b, a78b], [a78d, a78d], [a790, a790],
966        [a792, a792], [a796, a796], [a798, a798], [a79a, a79a],
967        [a79c, a79c], [a79e, a79e], [a7a0, a7a0], [a7a2, a7a2],
968        [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8], [a7aa, a7ae],
969        [a7b0, a7b4], [a7b6, a7b6], [a7b8, a7b8], [ff21, ff3a],
970        [10400, 10427], [104b0, 104d3], [10c80, 10cb2], [118a0, 118bf],
971        [16e40, 16e5f], [1e900, 1e921]**/
972
973
974        namespace {
975        const static UnicodeSet::run_t __codepoint_set_runs[] = {
976        {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
977        {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
978        {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
979        {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 2},
980        {Empty, 10}, {Mixed, 16}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
981        {Mixed, 2}, {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1},
982        {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
983        {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
984        {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61},
985        {Full, 1}, {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 684},
986        {Full, 1}, {Empty, 981}, {Full, 1}, {Mixed, 1}, {Empty, 30902}};
987        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
988        0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
989        0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
990        0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
991        0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
992        0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
993        0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0xffff0000,
994        0xe7ffffff, 0x55555555, 0x55555555, 0x55555555, 0x55555555,
995        0x40155555, 0x55555555, 0x55555555, 0x55555555, 0x3f00ff00,
996        0xff00ff00, 0xaa003f00, 0x0000ff00, 0xff00ff00, 0x1f00ff00,
997        0x0f001f00, 0x1f001f00, 0x00040c40, 0x0000ffff, 0x00000008,
998        0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555,
999        0x55555555, 0x55555555, 0x00042805, 0x55555555, 0x00001555,
1000        0x05555555, 0x55545554, 0x55555555, 0x6a005555, 0x55452855,
1001        0x015f7d55, 0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff,
1002        0x0007ffff, 0x00000003};
1003        }
1004
1005        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 55, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 72, 0};
1006
1007        static BinaryPropertyObject property_object{CWL, std::move(codepoint_set)};
1008    }
1009    namespace CWT_ns {
1010        /** Code Point Ranges for CWT
1011        [0061, 007a], [00b5, 00b5], [00df, 00f6], [00f8, 00ff],
1012        [0101, 0101], [0103, 0103], [0105, 0105], [0107, 0107],
1013        [0109, 0109], [010b, 010b], [010d, 010d], [010f, 010f],
1014        [0111, 0111], [0113, 0113], [0115, 0115], [0117, 0117],
1015        [0119, 0119], [011b, 011b], [011d, 011d], [011f, 011f],
1016        [0121, 0121], [0123, 0123], [0125, 0125], [0127, 0127],
1017        [0129, 0129], [012b, 012b], [012d, 012d], [012f, 012f],
1018        [0131, 0131], [0133, 0133], [0135, 0135], [0137, 0137],
1019        [013a, 013a], [013c, 013c], [013e, 013e], [0140, 0140],
1020        [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
1021        [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151],
1022        [0153, 0153], [0155, 0155], [0157, 0157], [0159, 0159],
1023        [015b, 015b], [015d, 015d], [015f, 015f], [0161, 0161],
1024        [0163, 0163], [0165, 0165], [0167, 0167], [0169, 0169],
1025        [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
1026        [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a],
1027        [017c, 017c], [017e, 0180], [0183, 0183], [0185, 0185],
1028        [0188, 0188], [018c, 018c], [0192, 0192], [0195, 0195],
1029        [0199, 019a], [019e, 019e], [01a1, 01a1], [01a3, 01a3],
1030        [01a5, 01a5], [01a8, 01a8], [01ad, 01ad], [01b0, 01b0],
1031        [01b4, 01b4], [01b6, 01b6], [01b9, 01b9], [01bd, 01bd],
1032        [01bf, 01bf], [01c4, 01c4], [01c6, 01c7], [01c9, 01ca],
1033        [01cc, 01cc], [01ce, 01ce], [01d0, 01d0], [01d2, 01d2],
1034        [01d4, 01d4], [01d6, 01d6], [01d8, 01d8], [01da, 01da],
1035        [01dc, 01dd], [01df, 01df], [01e1, 01e1], [01e3, 01e3],
1036        [01e5, 01e5], [01e7, 01e7], [01e9, 01e9], [01eb, 01eb],
1037        [01ed, 01ed], [01ef, 01f1], [01f3, 01f3], [01f5, 01f5],
1038        [01f9, 01f9], [01fb, 01fb], [01fd, 01fd], [01ff, 01ff],
1039        [0201, 0201], [0203, 0203], [0205, 0205], [0207, 0207],
1040        [0209, 0209], [020b, 020b], [020d, 020d], [020f, 020f],
1041        [0211, 0211], [0213, 0213], [0215, 0215], [0217, 0217],
1042        [0219, 0219], [021b, 021b], [021d, 021d], [021f, 021f],
1043        [0223, 0223], [0225, 0225], [0227, 0227], [0229, 0229],
1044        [022b, 022b], [022d, 022d], [022f, 022f], [0231, 0231],
1045        [0233, 0233], [023c, 023c], [023f, 0240], [0242, 0242],
1046        [0247, 0247], [0249, 0249], [024b, 024b], [024d, 024d],
1047        [024f, 0254], [0256, 0257], [0259, 0259], [025b, 025c],
1048        [0260, 0261], [0263, 0263], [0265, 0266], [0268, 026c],
1049        [026f, 026f], [0271, 0272], [0275, 0275], [027d, 027d],
1050        [0280, 0280], [0283, 0283], [0287, 028c], [0292, 0292],
1051        [029d, 029e], [0345, 0345], [0371, 0371], [0373, 0373],
1052        [0377, 0377], [037b, 037d], [0390, 0390], [03ac, 03ce],
1053        [03d0, 03d1], [03d5, 03d7], [03d9, 03d9], [03db, 03db],
1054        [03dd, 03dd], [03df, 03df], [03e1, 03e1], [03e3, 03e3],
1055        [03e5, 03e5], [03e7, 03e7], [03e9, 03e9], [03eb, 03eb],
1056        [03ed, 03ed], [03ef, 03f3], [03f5, 03f5], [03f8, 03f8],
1057        [03fb, 03fb], [0430, 045f], [0461, 0461], [0463, 0463],
1058        [0465, 0465], [0467, 0467], [0469, 0469], [046b, 046b],
1059        [046d, 046d], [046f, 046f], [0471, 0471], [0473, 0473],
1060        [0475, 0475], [0477, 0477], [0479, 0479], [047b, 047b],
1061        [047d, 047d], [047f, 047f], [0481, 0481], [048b, 048b],
1062        [048d, 048d], [048f, 048f], [0491, 0491], [0493, 0493],
1063        [0495, 0495], [0497, 0497], [0499, 0499], [049b, 049b],
1064        [049d, 049d], [049f, 049f], [04a1, 04a1], [04a3, 04a3],
1065        [04a5, 04a5], [04a7, 04a7], [04a9, 04a9], [04ab, 04ab],
1066        [04ad, 04ad], [04af, 04af], [04b1, 04b1], [04b3, 04b3],
1067        [04b5, 04b5], [04b7, 04b7], [04b9, 04b9], [04bb, 04bb],
1068        [04bd, 04bd], [04bf, 04bf], [04c2, 04c2], [04c4, 04c4],
1069        [04c6, 04c6], [04c8, 04c8], [04ca, 04ca], [04cc, 04cc],
1070        [04ce, 04cf], [04d1, 04d1], [04d3, 04d3], [04d5, 04d5],
1071        [04d7, 04d7], [04d9, 04d9], [04db, 04db], [04dd, 04dd],
1072        [04df, 04df], [04e1, 04e1], [04e3, 04e3], [04e5, 04e5],
1073        [04e7, 04e7], [04e9, 04e9], [04eb, 04eb], [04ed, 04ed],
1074        [04ef, 04ef], [04f1, 04f1], [04f3, 04f3], [04f5, 04f5],
1075        [04f7, 04f7], [04f9, 04f9], [04fb, 04fb], [04fd, 04fd],
1076        [04ff, 04ff], [0501, 0501], [0503, 0503], [0505, 0505],
1077        [0507, 0507], [0509, 0509], [050b, 050b], [050d, 050d],
1078        [050f, 050f], [0511, 0511], [0513, 0513], [0515, 0515],
1079        [0517, 0517], [0519, 0519], [051b, 051b], [051d, 051d],
1080        [051f, 051f], [0521, 0521], [0523, 0523], [0525, 0525],
1081        [0527, 0527], [0529, 0529], [052b, 052b], [052d, 052d],
1082        [052f, 052f], [0561, 0587], [13f8, 13fd], [1c80, 1c88],
1083        [1d79, 1d79], [1d7d, 1d7d], [1e01, 1e01], [1e03, 1e03],
1084        [1e05, 1e05], [1e07, 1e07], [1e09, 1e09], [1e0b, 1e0b],
1085        [1e0d, 1e0d], [1e0f, 1e0f], [1e11, 1e11], [1e13, 1e13],
1086        [1e15, 1e15], [1e17, 1e17], [1e19, 1e19], [1e1b, 1e1b],
1087        [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21], [1e23, 1e23],
1088        [1e25, 1e25], [1e27, 1e27], [1e29, 1e29], [1e2b, 1e2b],
1089        [1e2d, 1e2d], [1e2f, 1e2f], [1e31, 1e31], [1e33, 1e33],
1090        [1e35, 1e35], [1e37, 1e37], [1e39, 1e39], [1e3b, 1e3b],
1091        [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41], [1e43, 1e43],
1092        [1e45, 1e45], [1e47, 1e47], [1e49, 1e49], [1e4b, 1e4b],
1093        [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51], [1e53, 1e53],
1094        [1e55, 1e55], [1e57, 1e57], [1e59, 1e59], [1e5b, 1e5b],
1095        [1e5d, 1e5d], [1e5f, 1e5f], [1e61, 1e61], [1e63, 1e63],
1096        [1e65, 1e65], [1e67, 1e67], [1e69, 1e69], [1e6b, 1e6b],
1097        [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71], [1e73, 1e73],
1098        [1e75, 1e75], [1e77, 1e77], [1e79, 1e79], [1e7b, 1e7b],
1099        [1e7d, 1e7d], [1e7f, 1e7f], [1e81, 1e81], [1e83, 1e83],
1100        [1e85, 1e85], [1e87, 1e87], [1e89, 1e89], [1e8b, 1e8b],
1101        [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91], [1e93, 1e93],
1102        [1e95, 1e9b], [1ea1, 1ea1], [1ea3, 1ea3], [1ea5, 1ea5],
1103        [1ea7, 1ea7], [1ea9, 1ea9], [1eab, 1eab], [1ead, 1ead],
1104        [1eaf, 1eaf], [1eb1, 1eb1], [1eb3, 1eb3], [1eb5, 1eb5],
1105        [1eb7, 1eb7], [1eb9, 1eb9], [1ebb, 1ebb], [1ebd, 1ebd],
1106        [1ebf, 1ebf], [1ec1, 1ec1], [1ec3, 1ec3], [1ec5, 1ec5],
1107        [1ec7, 1ec7], [1ec9, 1ec9], [1ecb, 1ecb], [1ecd, 1ecd],
1108        [1ecf, 1ecf], [1ed1, 1ed1], [1ed3, 1ed3], [1ed5, 1ed5],
1109        [1ed7, 1ed7], [1ed9, 1ed9], [1edb, 1edb], [1edd, 1edd],
1110        [1edf, 1edf], [1ee1, 1ee1], [1ee3, 1ee3], [1ee5, 1ee5],
1111        [1ee7, 1ee7], [1ee9, 1ee9], [1eeb, 1eeb], [1eed, 1eed],
1112        [1eef, 1eef], [1ef1, 1ef1], [1ef3, 1ef3], [1ef5, 1ef5],
1113        [1ef7, 1ef7], [1ef9, 1ef9], [1efb, 1efb], [1efd, 1efd],
1114        [1eff, 1f07], [1f10, 1f15], [1f20, 1f27], [1f30, 1f37],
1115        [1f40, 1f45], [1f50, 1f57], [1f60, 1f67], [1f70, 1f7d],
1116        [1f80, 1f87], [1f90, 1f97], [1fa0, 1fa7], [1fb0, 1fb4],
1117        [1fb6, 1fb7], [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fc7],
1118        [1fd0, 1fd3], [1fd6, 1fd7], [1fe0, 1fe7], [1ff2, 1ff4],
1119        [1ff6, 1ff7], [214e, 214e], [2170, 217f], [2184, 2184],
1120        [24d0, 24e9], [2c30, 2c5e], [2c61, 2c61], [2c65, 2c66],
1121        [2c68, 2c68], [2c6a, 2c6a], [2c6c, 2c6c], [2c73, 2c73],
1122        [2c76, 2c76], [2c81, 2c81], [2c83, 2c83], [2c85, 2c85],
1123        [2c87, 2c87], [2c89, 2c89], [2c8b, 2c8b], [2c8d, 2c8d],
1124        [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93], [2c95, 2c95],
1125        [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d],
1126        [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5],
1127        [2ca7, 2ca7], [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad],
1128        [2caf, 2caf], [2cb1, 2cb1], [2cb3, 2cb3], [2cb5, 2cb5],
1129        [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb], [2cbd, 2cbd],
1130        [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5],
1131        [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd],
1132        [2ccf, 2ccf], [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5],
1133        [2cd7, 2cd7], [2cd9, 2cd9], [2cdb, 2cdb], [2cdd, 2cdd],
1134        [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2ce3], [2cec, 2cec],
1135        [2cee, 2cee], [2cf3, 2cf3], [2d00, 2d25], [2d27, 2d27],
1136        [2d2d, 2d2d], [a641, a641], [a643, a643], [a645, a645],
1137        [a647, a647], [a649, a649], [a64b, a64b], [a64d, a64d],
1138        [a64f, a64f], [a651, a651], [a653, a653], [a655, a655],
1139        [a657, a657], [a659, a659], [a65b, a65b], [a65d, a65d],
1140        [a65f, a65f], [a661, a661], [a663, a663], [a665, a665],
1141        [a667, a667], [a669, a669], [a66b, a66b], [a66d, a66d],
1142        [a681, a681], [a683, a683], [a685, a685], [a687, a687],
1143        [a689, a689], [a68b, a68b], [a68d, a68d], [a68f, a68f],
1144        [a691, a691], [a693, a693], [a695, a695], [a697, a697],
1145        [a699, a699], [a69b, a69b], [a723, a723], [a725, a725],
1146        [a727, a727], [a729, a729], [a72b, a72b], [a72d, a72d],
1147        [a72f, a72f], [a733, a733], [a735, a735], [a737, a737],
1148        [a739, a739], [a73b, a73b], [a73d, a73d], [a73f, a73f],
1149        [a741, a741], [a743, a743], [a745, a745], [a747, a747],
1150        [a749, a749], [a74b, a74b], [a74d, a74d], [a74f, a74f],
1151        [a751, a751], [a753, a753], [a755, a755], [a757, a757],
1152        [a759, a759], [a75b, a75b], [a75d, a75d], [a75f, a75f],
1153        [a761, a761], [a763, a763], [a765, a765], [a767, a767],
1154        [a769, a769], [a76b, a76b], [a76d, a76d], [a76f, a76f],
1155        [a77a, a77a], [a77c, a77c], [a77f, a77f], [a781, a781],
1156        [a783, a783], [a785, a785], [a787, a787], [a78c, a78c],
1157        [a791, a791], [a793, a793], [a797, a797], [a799, a799],
1158        [a79b, a79b], [a79d, a79d], [a79f, a79f], [a7a1, a7a1],
1159        [a7a3, a7a3], [a7a5, a7a5], [a7a7, a7a7], [a7a9, a7a9],
1160        [a7b5, a7b5], [a7b7, a7b7], [a7b9, a7b9], [ab53, ab53],
1161        [ab70, abbf], [fb00, fb06], [fb13, fb17], [ff41, ff5a],
1162        [10428, 1044f], [104d8, 104fb], [10cc0, 10cf2], [118c0, 118df],
1163        [16e60, 16e7f], [1e922, 1e943]**/
1164
1165
1166        namespace {
1167        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1168        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
1169        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
1170        {Empty, 1}, {Mixed, 2}, {Empty, 114}, {Mixed, 1}, {Empty, 68},
1171        {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 4}, {Mixed, 16},
1172        {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2}, {Empty, 57},
1173        {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3},
1174        {Empty, 4}, {Mixed, 5}, {Empty, 28}, {Mixed, 2}, {Full, 2},
1175        {Empty, 634}, {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38},
1176        {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 62}, {Full, 1},
1177        {Mixed, 1}, {Empty, 94}, {Full, 1}, {Empty, 684}, {Full, 1},
1178        {Empty, 981}, {Mixed, 2}, {Empty, 30901}};
1179        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
1180        0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
1181        0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
1182        0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
1183        0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
1184        0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
1185        0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
1186        0x0000aaaa, 0xfffffffe, 0x000000ff, 0x3f000000, 0x000001ff,
1187        0x22000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
1188        0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff,
1189        0x00ff00ff, 0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff,
1190        0x00cf00dc, 0x00dc00ff, 0x00004000, 0xffff0000, 0x00000010,
1191        0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff, 0x00481562,
1192        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a, 0x000020bf,
1193        0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa,
1194        0x9400aaaa, 0xaa8a10aa, 0x02a002aa, 0x00080000, 0xffff0000,
1195        0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000,
1196        0x0fffffff, 0x0007ffff, 0xfffffffc, 0x0000000f};
1197        }
1198
1199        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 53, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 84, 0};
1200
1201        static BinaryPropertyObject property_object{CWT, std::move(codepoint_set)};
1202    }
1203    namespace CWU_ns {
1204        /** Code Point Ranges for CWU
1205        [0061, 007a], [00b5, 00b5], [00df, 00f6], [00f8, 00ff],
1206        [0101, 0101], [0103, 0103], [0105, 0105], [0107, 0107],
1207        [0109, 0109], [010b, 010b], [010d, 010d], [010f, 010f],
1208        [0111, 0111], [0113, 0113], [0115, 0115], [0117, 0117],
1209        [0119, 0119], [011b, 011b], [011d, 011d], [011f, 011f],
1210        [0121, 0121], [0123, 0123], [0125, 0125], [0127, 0127],
1211        [0129, 0129], [012b, 012b], [012d, 012d], [012f, 012f],
1212        [0131, 0131], [0133, 0133], [0135, 0135], [0137, 0137],
1213        [013a, 013a], [013c, 013c], [013e, 013e], [0140, 0140],
1214        [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
1215        [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151],
1216        [0153, 0153], [0155, 0155], [0157, 0157], [0159, 0159],
1217        [015b, 015b], [015d, 015d], [015f, 015f], [0161, 0161],
1218        [0163, 0163], [0165, 0165], [0167, 0167], [0169, 0169],
1219        [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
1220        [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a],
1221        [017c, 017c], [017e, 0180], [0183, 0183], [0185, 0185],
1222        [0188, 0188], [018c, 018c], [0192, 0192], [0195, 0195],
1223        [0199, 019a], [019e, 019e], [01a1, 01a1], [01a3, 01a3],
1224        [01a5, 01a5], [01a8, 01a8], [01ad, 01ad], [01b0, 01b0],
1225        [01b4, 01b4], [01b6, 01b6], [01b9, 01b9], [01bd, 01bd],
1226        [01bf, 01bf], [01c5, 01c6], [01c8, 01c9], [01cb, 01cc],
1227        [01ce, 01ce], [01d0, 01d0], [01d2, 01d2], [01d4, 01d4],
1228        [01d6, 01d6], [01d8, 01d8], [01da, 01da], [01dc, 01dd],
1229        [01df, 01df], [01e1, 01e1], [01e3, 01e3], [01e5, 01e5],
1230        [01e7, 01e7], [01e9, 01e9], [01eb, 01eb], [01ed, 01ed],
1231        [01ef, 01f0], [01f2, 01f3], [01f5, 01f5], [01f9, 01f9],
1232        [01fb, 01fb], [01fd, 01fd], [01ff, 01ff], [0201, 0201],
1233        [0203, 0203], [0205, 0205], [0207, 0207], [0209, 0209],
1234        [020b, 020b], [020d, 020d], [020f, 020f], [0211, 0211],
1235        [0213, 0213], [0215, 0215], [0217, 0217], [0219, 0219],
1236        [021b, 021b], [021d, 021d], [021f, 021f], [0223, 0223],
1237        [0225, 0225], [0227, 0227], [0229, 0229], [022b, 022b],
1238        [022d, 022d], [022f, 022f], [0231, 0231], [0233, 0233],
1239        [023c, 023c], [023f, 0240], [0242, 0242], [0247, 0247],
1240        [0249, 0249], [024b, 024b], [024d, 024d], [024f, 0254],
1241        [0256, 0257], [0259, 0259], [025b, 025c], [0260, 0261],
1242        [0263, 0263], [0265, 0266], [0268, 026c], [026f, 026f],
1243        [0271, 0272], [0275, 0275], [027d, 027d], [0280, 0280],
1244        [0283, 0283], [0287, 028c], [0292, 0292], [029d, 029e],
1245        [0345, 0345], [0371, 0371], [0373, 0373], [0377, 0377],
1246        [037b, 037d], [0390, 0390], [03ac, 03ce], [03d0, 03d1],
1247        [03d5, 03d7], [03d9, 03d9], [03db, 03db], [03dd, 03dd],
1248        [03df, 03df], [03e1, 03e1], [03e3, 03e3], [03e5, 03e5],
1249        [03e7, 03e7], [03e9, 03e9], [03eb, 03eb], [03ed, 03ed],
1250        [03ef, 03f3], [03f5, 03f5], [03f8, 03f8], [03fb, 03fb],
1251        [0430, 045f], [0461, 0461], [0463, 0463], [0465, 0465],
1252        [0467, 0467], [0469, 0469], [046b, 046b], [046d, 046d],
1253        [046f, 046f], [0471, 0471], [0473, 0473], [0475, 0475],
1254        [0477, 0477], [0479, 0479], [047b, 047b], [047d, 047d],
1255        [047f, 047f], [0481, 0481], [048b, 048b], [048d, 048d],
1256        [048f, 048f], [0491, 0491], [0493, 0493], [0495, 0495],
1257        [0497, 0497], [0499, 0499], [049b, 049b], [049d, 049d],
1258        [049f, 049f], [04a1, 04a1], [04a3, 04a3], [04a5, 04a5],
1259        [04a7, 04a7], [04a9, 04a9], [04ab, 04ab], [04ad, 04ad],
1260        [04af, 04af], [04b1, 04b1], [04b3, 04b3], [04b5, 04b5],
1261        [04b7, 04b7], [04b9, 04b9], [04bb, 04bb], [04bd, 04bd],
1262        [04bf, 04bf], [04c2, 04c2], [04c4, 04c4], [04c6, 04c6],
1263        [04c8, 04c8], [04ca, 04ca], [04cc, 04cc], [04ce, 04cf],
1264        [04d1, 04d1], [04d3, 04d3], [04d5, 04d5], [04d7, 04d7],
1265        [04d9, 04d9], [04db, 04db], [04dd, 04dd], [04df, 04df],
1266        [04e1, 04e1], [04e3, 04e3], [04e5, 04e5], [04e7, 04e7],
1267        [04e9, 04e9], [04eb, 04eb], [04ed, 04ed], [04ef, 04ef],
1268        [04f1, 04f1], [04f3, 04f3], [04f5, 04f5], [04f7, 04f7],
1269        [04f9, 04f9], [04fb, 04fb], [04fd, 04fd], [04ff, 04ff],
1270        [0501, 0501], [0503, 0503], [0505, 0505], [0507, 0507],
1271        [0509, 0509], [050b, 050b], [050d, 050d], [050f, 050f],
1272        [0511, 0511], [0513, 0513], [0515, 0515], [0517, 0517],
1273        [0519, 0519], [051b, 051b], [051d, 051d], [051f, 051f],
1274        [0521, 0521], [0523, 0523], [0525, 0525], [0527, 0527],
1275        [0529, 0529], [052b, 052b], [052d, 052d], [052f, 052f],
1276        [0561, 0587], [10d0, 10fa], [10fd, 10ff], [13f8, 13fd],
1277        [1c80, 1c88], [1d79, 1d79], [1d7d, 1d7d], [1e01, 1e01],
1278        [1e03, 1e03], [1e05, 1e05], [1e07, 1e07], [1e09, 1e09],
1279        [1e0b, 1e0b], [1e0d, 1e0d], [1e0f, 1e0f], [1e11, 1e11],
1280        [1e13, 1e13], [1e15, 1e15], [1e17, 1e17], [1e19, 1e19],
1281        [1e1b, 1e1b], [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21],
1282        [1e23, 1e23], [1e25, 1e25], [1e27, 1e27], [1e29, 1e29],
1283        [1e2b, 1e2b], [1e2d, 1e2d], [1e2f, 1e2f], [1e31, 1e31],
1284        [1e33, 1e33], [1e35, 1e35], [1e37, 1e37], [1e39, 1e39],
1285        [1e3b, 1e3b], [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41],
1286        [1e43, 1e43], [1e45, 1e45], [1e47, 1e47], [1e49, 1e49],
1287        [1e4b, 1e4b], [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51],
1288        [1e53, 1e53], [1e55, 1e55], [1e57, 1e57], [1e59, 1e59],
1289        [1e5b, 1e5b], [1e5d, 1e5d], [1e5f, 1e5f], [1e61, 1e61],
1290        [1e63, 1e63], [1e65, 1e65], [1e67, 1e67], [1e69, 1e69],
1291        [1e6b, 1e6b], [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71],
1292        [1e73, 1e73], [1e75, 1e75], [1e77, 1e77], [1e79, 1e79],
1293        [1e7b, 1e7b], [1e7d, 1e7d], [1e7f, 1e7f], [1e81, 1e81],
1294        [1e83, 1e83], [1e85, 1e85], [1e87, 1e87], [1e89, 1e89],
1295        [1e8b, 1e8b], [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91],
1296        [1e93, 1e93], [1e95, 1e9b], [1ea1, 1ea1], [1ea3, 1ea3],
1297        [1ea5, 1ea5], [1ea7, 1ea7], [1ea9, 1ea9], [1eab, 1eab],
1298        [1ead, 1ead], [1eaf, 1eaf], [1eb1, 1eb1], [1eb3, 1eb3],
1299        [1eb5, 1eb5], [1eb7, 1eb7], [1eb9, 1eb9], [1ebb, 1ebb],
1300        [1ebd, 1ebd], [1ebf, 1ebf], [1ec1, 1ec1], [1ec3, 1ec3],
1301        [1ec5, 1ec5], [1ec7, 1ec7], [1ec9, 1ec9], [1ecb, 1ecb],
1302        [1ecd, 1ecd], [1ecf, 1ecf], [1ed1, 1ed1], [1ed3, 1ed3],
1303        [1ed5, 1ed5], [1ed7, 1ed7], [1ed9, 1ed9], [1edb, 1edb],
1304        [1edd, 1edd], [1edf, 1edf], [1ee1, 1ee1], [1ee3, 1ee3],
1305        [1ee5, 1ee5], [1ee7, 1ee7], [1ee9, 1ee9], [1eeb, 1eeb],
1306        [1eed, 1eed], [1eef, 1eef], [1ef1, 1ef1], [1ef3, 1ef3],
1307        [1ef5, 1ef5], [1ef7, 1ef7], [1ef9, 1ef9], [1efb, 1efb],
1308        [1efd, 1efd], [1eff, 1f07], [1f10, 1f15], [1f20, 1f27],
1309        [1f30, 1f37], [1f40, 1f45], [1f50, 1f57], [1f60, 1f67],
1310        [1f70, 1f7d], [1f80, 1fb4], [1fb6, 1fb7], [1fbc, 1fbc],
1311        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc],
1312        [1fd0, 1fd3], [1fd6, 1fd7], [1fe0, 1fe7], [1ff2, 1ff4],
1313        [1ff6, 1ff7], [1ffc, 1ffc], [214e, 214e], [2170, 217f],
1314        [2184, 2184], [24d0, 24e9], [2c30, 2c5e], [2c61, 2c61],
1315        [2c65, 2c66], [2c68, 2c68], [2c6a, 2c6a], [2c6c, 2c6c],
1316        [2c73, 2c73], [2c76, 2c76], [2c81, 2c81], [2c83, 2c83],
1317        [2c85, 2c85], [2c87, 2c87], [2c89, 2c89], [2c8b, 2c8b],
1318        [2c8d, 2c8d], [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93],
1319        [2c95, 2c95], [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b],
1320        [2c9d, 2c9d], [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3],
1321        [2ca5, 2ca5], [2ca7, 2ca7], [2ca9, 2ca9], [2cab, 2cab],
1322        [2cad, 2cad], [2caf, 2caf], [2cb1, 2cb1], [2cb3, 2cb3],
1323        [2cb5, 2cb5], [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb],
1324        [2cbd, 2cbd], [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3],
1325        [2cc5, 2cc5], [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb],
1326        [2ccd, 2ccd], [2ccf, 2ccf], [2cd1, 2cd1], [2cd3, 2cd3],
1327        [2cd5, 2cd5], [2cd7, 2cd7], [2cd9, 2cd9], [2cdb, 2cdb],
1328        [2cdd, 2cdd], [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2ce3],
1329        [2cec, 2cec], [2cee, 2cee], [2cf3, 2cf3], [2d00, 2d25],
1330        [2d27, 2d27], [2d2d, 2d2d], [a641, a641], [a643, a643],
1331        [a645, a645], [a647, a647], [a649, a649], [a64b, a64b],
1332        [a64d, a64d], [a64f, a64f], [a651, a651], [a653, a653],
1333        [a655, a655], [a657, a657], [a659, a659], [a65b, a65b],
1334        [a65d, a65d], [a65f, a65f], [a661, a661], [a663, a663],
1335        [a665, a665], [a667, a667], [a669, a669], [a66b, a66b],
1336        [a66d, a66d], [a681, a681], [a683, a683], [a685, a685],
1337        [a687, a687], [a689, a689], [a68b, a68b], [a68d, a68d],
1338        [a68f, a68f], [a691, a691], [a693, a693], [a695, a695],
1339        [a697, a697], [a699, a699], [a69b, a69b], [a723, a723],
1340        [a725, a725], [a727, a727], [a729, a729], [a72b, a72b],
1341        [a72d, a72d], [a72f, a72f], [a733, a733], [a735, a735],
1342        [a737, a737], [a739, a739], [a73b, a73b], [a73d, a73d],
1343        [a73f, a73f], [a741, a741], [a743, a743], [a745, a745],
1344        [a747, a747], [a749, a749], [a74b, a74b], [a74d, a74d],
1345        [a74f, a74f], [a751, a751], [a753, a753], [a755, a755],
1346        [a757, a757], [a759, a759], [a75b, a75b], [a75d, a75d],
1347        [a75f, a75f], [a761, a761], [a763, a763], [a765, a765],
1348        [a767, a767], [a769, a769], [a76b, a76b], [a76d, a76d],
1349        [a76f, a76f], [a77a, a77a], [a77c, a77c], [a77f, a77f],
1350        [a781, a781], [a783, a783], [a785, a785], [a787, a787],
1351        [a78c, a78c], [a791, a791], [a793, a793], [a797, a797],
1352        [a799, a799], [a79b, a79b], [a79d, a79d], [a79f, a79f],
1353        [a7a1, a7a1], [a7a3, a7a3], [a7a5, a7a5], [a7a7, a7a7],
1354        [a7a9, a7a9], [a7b5, a7b5], [a7b7, a7b7], [a7b9, a7b9],
1355        [ab53, ab53], [ab70, abbf], [fb00, fb06], [fb13, fb17],
1356        [ff41, ff5a], [10428, 1044f], [104d8, 104fb], [10cc0, 10cf2],
1357        [118c0, 118df], [16e60, 16e7f], [1e922, 1e943]**/
1358
1359
1360        namespace {
1361        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1362        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
1363        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
1364        {Empty, 1}, {Mixed, 2}, {Empty, 89}, {Mixed, 2}, {Empty, 23},
1365        {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
1366        {Empty, 4}, {Mixed, 12}, {Full, 1}, {Mixed, 3}, {Empty, 10},
1367        {Mixed, 3}, {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7},
1368        {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4},
1369        {Mixed, 5}, {Empty, 28}, {Mixed, 2}, {Full, 2}, {Empty, 634},
1370        {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38}, {Mixed, 2},
1371        {Empty, 3}, {Mixed, 2}, {Empty, 62}, {Full, 1}, {Mixed, 1},
1372        {Empty, 94}, {Full, 1}, {Empty, 684}, {Full, 1}, {Empty, 981},
1373        {Mixed, 2}, {Empty, 30901}};
1374        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
1375        0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
1376        0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
1377        0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
1378        0x20269f6b, 0x60041f89, 0x00000020, 0x388a0000, 0x00010000,
1379        0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
1380        0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
1381        0x0000aaaa, 0xfffffffe, 0x000000ff, 0xffff0000, 0xe7ffffff,
1382        0x3f000000, 0x000001ff, 0x22000000, 0xaaaaaaaa, 0xaaaaaaaa,
1383        0xaaaaaaaa, 0xaaaaaaaa, 0x0feaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
1384        0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f, 0x3fff00ff,
1385        0x50dfffff, 0x00cf10dc, 0x10dc00ff, 0x00004000, 0xffff0000,
1386        0x00000010, 0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff,
1387        0x00481562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008500a,
1388        0x000020bf, 0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaa8aaa8,
1389        0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa, 0x02a002aa, 0x00080000,
1390        0xffff0000, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff,
1391        0xff000000, 0x0fffffff, 0x0007ffff, 0xfffffffc, 0x0000000f};
1392        }
1393
1394        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 57, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 85, 0};
1395
1396        static BinaryPropertyObject property_object{CWU, std::move(codepoint_set)};
1397    }
1398    namespace CASED_ns {
1399        /** Code Point Ranges for Cased
1400        [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5],
1401        [00ba, 00ba], [00c0, 00d6], [00d8, 00f6], [00f8, 01ba],
1402        [01bc, 01bf], [01c4, 0293], [0295, 02b8], [02c0, 02c1],
1403        [02e0, 02e4], [0345, 0345], [0370, 0373], [0376, 0377],
1404        [037a, 037d], [037f, 037f], [0386, 0386], [0388, 038a],
1405        [038c, 038c], [038e, 03a1], [03a3, 03f5], [03f7, 0481],
1406        [048a, 052f], [0531, 0556], [0560, 0588], [10a0, 10c5],
1407        [10c7, 10c7], [10cd, 10cd], [10d0, 10fa], [10fd, 10ff],
1408        [13a0, 13f5], [13f8, 13fd], [1c80, 1c88], [1c90, 1cba],
1409        [1cbd, 1cbf], [1d00, 1dbf], [1e00, 1f15], [1f18, 1f1d],
1410        [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59],
1411        [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
1412        [1fb6, 1fbc], [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc],
1413        [1fd0, 1fd3], [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4],
1414        [1ff6, 1ffc], [2071, 2071], [207f, 207f], [2090, 209c],
1415        [2102, 2102], [2107, 2107], [210a, 2113], [2115, 2115],
1416        [2119, 211d], [2124, 2124], [2126, 2126], [2128, 2128],
1417        [212a, 212d], [212f, 2134], [2139, 2139], [213c, 213f],
1418        [2145, 2149], [214e, 214e], [2160, 217f], [2183, 2184],
1419        [24b6, 24e9], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
1420        [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25], [2d27, 2d27],
1421        [2d2d, 2d2d], [a640, a66d], [a680, a69d], [a722, a787],
1422        [a78b, a78e], [a790, a7b9], [a7f8, a7fa], [ab30, ab5a],
1423        [ab5c, ab65], [ab70, abbf], [fb00, fb06], [fb13, fb17],
1424        [ff21, ff3a], [ff41, ff5a], [10400, 1044f], [104b0, 104d3],
1425        [104d8, 104fb], [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df],
1426        [16e40, 16e7f], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
1427        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
1428        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
1429        [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
1430        [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
1431        [1d6a8, 1d6c0], [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714],
1432        [1d716, 1d734], [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788],
1433        [1d78a, 1d7a8], [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e900, 1e943],
1434        [1f130, 1f149], [1f150, 1f169], [1f170, 1f189]**/
1435
1436
1437        namespace {
1438        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1439        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
1440        {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
1441        {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2},
1442        {Full, 1}, {Mixed, 1}, {Empty, 88}, {Full, 1}, {Mixed, 2},
1443        {Empty, 21}, {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 2},
1444        {Empty, 2}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
1445        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
1446        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
1447        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
1448        {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1449        {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
1450        {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 25},
1451        {Mixed, 3}, {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 32},
1452        {Mixed, 2}, {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2},
1453        {Mixed, 3}, {Empty, 60}, {Full, 1}, {Mixed, 1}, {Full, 1},
1454        {Mixed, 1}, {Empty, 93}, {Full, 2}, {Empty, 683}, {Full, 2},
1455        {Empty, 812}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
1456        {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 137},
1457        {Full, 2}, {Mixed, 1}, {Empty, 62}, {Mixed, 4}, {Empty, 30835}};
1458        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
1459        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
1460        0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
1461        0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
1462        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0x000001ff,
1463        0xffff20bf, 0xe7ffffff, 0x3f3fffff, 0xffff01ff, 0xe7ffffff,
1464        0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
1465        0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf21fbd50,
1466        0x000043e0, 0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff,
1467        0x7fffffff, 0x000c781f, 0x000020bf, 0x00003fff, 0x3fffffff,
1468        0xfffffffc, 0xffff78ff, 0x03ffffff, 0x07000000, 0xffff0000,
1469        0xf7ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe, 0x07fffffe,
1470        0x0000ffff, 0xffff0000, 0xff0fffff, 0x0fffffff, 0x0007ffff,
1471        0x0007ffff, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
1472        0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd,
1473        0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff,
1474        0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000000f, 0xffff0000,
1475        0xffff03ff, 0xffff03ff, 0x000003ff};
1476        }
1477
1478        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 97, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 83, 0};
1479
1480        static BinaryPropertyObject property_object{Cased, std::move(codepoint_set)};
1481    }
1482    namespace DI_ns {
1483        /** Code Point Ranges for DI
1484        [00ad, 00ad], [034f, 034f], [061c, 061c], [115f, 1160],
1485        [17b4, 17b5], [180b, 180e], [200b, 200f], [202a, 202e],
1486        [2060, 206f], [3164, 3164], [fe00, fe0f], [feff, feff],
1487        [ffa0, ffa0], [fff0, fff8], [1bca0, 1bca3], [1d173, 1d17a],
1488        [e0000, e0fff]**/
1489
1490
1491        namespace {
1492        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1493        {Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
1494        {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
1495        {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
1496        {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636}, {Mixed, 1},
1497        {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
1498        {Mixed, 1}, {Empty, 1509}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
1499        {Empty, 24948}, {Full, 128}, {Empty, 6016}};
1500        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
1501        0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
1502        0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
1503        0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
1504        0x0000000f, 0x07f80000};
1505        }
1506
1507        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 33, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 17, 0};
1508
1509        static BinaryPropertyObject property_object{DI, std::move(codepoint_set)};
1510    }
1511    namespace GR_BASE_ns {
1512        /** Code Point Ranges for Gr_Base
1513        [0020, 007e], [00a0, 00ac], [00ae, 02ff], [0370, 0377],
1514        [037a, 037f], [0384, 038a], [038c, 038c], [038e, 03a1],
1515        [03a3, 0482], [048a, 052f], [0531, 0556], [0559, 058a],
1516        [058d, 058f], [05be, 05be], [05c0, 05c0], [05c3, 05c3],
1517        [05c6, 05c6], [05d0, 05ea], [05ef, 05f4], [0606, 060f],
1518        [061b, 061b], [061e, 064a], [0660, 066f], [0671, 06d5],
1519        [06de, 06de], [06e5, 06e6], [06e9, 06e9], [06ee, 070d],
1520        [0710, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1],
1521        [07c0, 07ea], [07f4, 07fa], [07fe, 0815], [081a, 081a],
1522        [0824, 0824], [0828, 0828], [0830, 083e], [0840, 0858],
1523        [085e, 085e], [0860, 086a], [08a0, 08b4], [08b6, 08bd],
1524        [0903, 0939], [093b, 093b], [093d, 0940], [0949, 094c],
1525        [094e, 0950], [0958, 0961], [0964, 0980], [0982, 0983],
1526        [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0],
1527        [09b2, 09b2], [09b6, 09b9], [09bd, 09bd], [09bf, 09c0],
1528        [09c7, 09c8], [09cb, 09cc], [09ce, 09ce], [09dc, 09dd],
1529        [09df, 09e1], [09e6, 09fd], [0a03, 0a03], [0a05, 0a0a],
1530        [0a0f, 0a10], [0a13, 0a28], [0a2a, 0a30], [0a32, 0a33],
1531        [0a35, 0a36], [0a38, 0a39], [0a3e, 0a40], [0a59, 0a5c],
1532        [0a5e, 0a5e], [0a66, 0a6f], [0a72, 0a74], [0a76, 0a76],
1533        [0a83, 0a83], [0a85, 0a8d], [0a8f, 0a91], [0a93, 0aa8],
1534        [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abd, 0ac0],
1535        [0ac9, 0ac9], [0acb, 0acc], [0ad0, 0ad0], [0ae0, 0ae1],
1536        [0ae6, 0af1], [0af9, 0af9], [0b02, 0b03], [0b05, 0b0c],
1537        [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33],
1538        [0b35, 0b39], [0b3d, 0b3d], [0b40, 0b40], [0b47, 0b48],
1539        [0b4b, 0b4c], [0b5c, 0b5d], [0b5f, 0b61], [0b66, 0b77],
1540        [0b83, 0b83], [0b85, 0b8a], [0b8e, 0b90], [0b92, 0b95],
1541        [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f], [0ba3, 0ba4],
1542        [0ba8, 0baa], [0bae, 0bb9], [0bbf, 0bbf], [0bc1, 0bc2],
1543        [0bc6, 0bc8], [0bca, 0bcc], [0bd0, 0bd0], [0be6, 0bfa],
1544        [0c01, 0c03], [0c05, 0c0c], [0c0e, 0c10], [0c12, 0c28],
1545        [0c2a, 0c39], [0c3d, 0c3d], [0c41, 0c44], [0c58, 0c5a],
1546        [0c60, 0c61], [0c66, 0c6f], [0c78, 0c80], [0c82, 0c8c],
1547        [0c8e, 0c90], [0c92, 0ca8], [0caa, 0cb3], [0cb5, 0cb9],
1548        [0cbd, 0cbe], [0cc0, 0cc1], [0cc3, 0cc4], [0cc7, 0cc8],
1549        [0cca, 0ccb], [0cde, 0cde], [0ce0, 0ce1], [0ce6, 0cef],
1550        [0cf1, 0cf2], [0d02, 0d03], [0d05, 0d0c], [0d0e, 0d10],
1551        [0d12, 0d3a], [0d3d, 0d3d], [0d3f, 0d40], [0d46, 0d48],
1552        [0d4a, 0d4c], [0d4e, 0d4f], [0d54, 0d56], [0d58, 0d61],
1553        [0d66, 0d7f], [0d82, 0d83], [0d85, 0d96], [0d9a, 0db1],
1554        [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0dd0, 0dd1],
1555        [0dd8, 0dde], [0de6, 0def], [0df2, 0df4], [0e01, 0e30],
1556        [0e32, 0e33], [0e3f, 0e46], [0e4f, 0e5b], [0e81, 0e82],
1557        [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d],
1558        [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
1559        [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb0], [0eb2, 0eb3],
1560        [0ebd, 0ebd], [0ec0, 0ec4], [0ec6, 0ec6], [0ed0, 0ed9],
1561        [0edc, 0edf], [0f00, 0f17], [0f1a, 0f34], [0f36, 0f36],
1562        [0f38, 0f38], [0f3a, 0f47], [0f49, 0f6c], [0f7f, 0f7f],
1563        [0f85, 0f85], [0f88, 0f8c], [0fbe, 0fc5], [0fc7, 0fcc],
1564        [0fce, 0fda], [1000, 102c], [1031, 1031], [1038, 1038],
1565        [103b, 103c], [103f, 1057], [105a, 105d], [1061, 1070],
1566        [1075, 1081], [1083, 1084], [1087, 108c], [108e, 109c],
1567        [109e, 10c5], [10c7, 10c7], [10cd, 10cd], [10d0, 1248],
1568        [124a, 124d], [1250, 1256], [1258, 1258], [125a, 125d],
1569        [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5],
1570        [12b8, 12be], [12c0, 12c0], [12c2, 12c5], [12c8, 12d6],
1571        [12d8, 1310], [1312, 1315], [1318, 135a], [1360, 137c],
1572        [1380, 1399], [13a0, 13f5], [13f8, 13fd], [1400, 169c],
1573        [16a0, 16f8], [1700, 170c], [170e, 1711], [1720, 1731],
1574        [1735, 1736], [1740, 1751], [1760, 176c], [176e, 1770],
1575        [1780, 17b3], [17b6, 17b6], [17be, 17c5], [17c7, 17c8],
1576        [17d4, 17dc], [17e0, 17e9], [17f0, 17f9], [1800, 180a],
1577        [1810, 1819], [1820, 1878], [1880, 1884], [1887, 18a8],
1578        [18aa, 18aa], [18b0, 18f5], [1900, 191e], [1923, 1926],
1579        [1929, 192b], [1930, 1931], [1933, 1938], [1940, 1940],
1580        [1944, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9],
1581        [19d0, 19da], [19de, 1a16], [1a19, 1a1a], [1a1e, 1a55],
1582        [1a57, 1a57], [1a61, 1a61], [1a63, 1a64], [1a6d, 1a72],
1583        [1a80, 1a89], [1a90, 1a99], [1aa0, 1aad], [1b04, 1b33],
1584        [1b35, 1b35], [1b3b, 1b3b], [1b3d, 1b41], [1b43, 1b4b],
1585        [1b50, 1b6a], [1b74, 1b7c], [1b82, 1ba1], [1ba6, 1ba7],
1586        [1baa, 1baa], [1bae, 1be5], [1be7, 1be7], [1bea, 1bec],
1587        [1bee, 1bee], [1bf2, 1bf3], [1bfc, 1c2b], [1c34, 1c35],
1588        [1c3b, 1c49], [1c4d, 1c88], [1c90, 1cba], [1cbd, 1cc7],
1589        [1cd3, 1cd3], [1ce1, 1ce1], [1ce9, 1cec], [1cee, 1cf3],
1590        [1cf5, 1cf7], [1d00, 1dbf], [1e00, 1f15], [1f18, 1f1d],
1591        [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59],
1592        [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
1593        [1fb6, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef],
1594        [1ff2, 1ff4], [1ff6, 1ffe], [2000, 200a], [2010, 2027],
1595        [202f, 205f], [2070, 2071], [2074, 208e], [2090, 209c],
1596        [20a0, 20bf], [2100, 218b], [2190, 2426], [2440, 244a],
1597        [2460, 2b73], [2b76, 2b95], [2b98, 2bc8], [2bca, 2bfe],
1598        [2c00, 2c2e], [2c30, 2c5e], [2c60, 2cee], [2cf2, 2cf3],
1599        [2cf9, 2d25], [2d27, 2d27], [2d2d, 2d2d], [2d30, 2d67],
1600        [2d6f, 2d70], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae],
1601        [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce],
1602        [2dd0, 2dd6], [2dd8, 2dde], [2e00, 2e4e], [2e80, 2e99],
1603        [2e9b, 2ef3], [2f00, 2fd5], [2ff0, 2ffb], [3000, 3029],
1604        [3030, 303f], [3041, 3096], [309b, 30ff], [3105, 312f],
1605        [3131, 318e], [3190, 31ba], [31c0, 31e3], [31f0, 321e],
1606        [3220, 32fe], [3300, 4db5], [4dc0, 9fef], [a000, a48c],
1607        [a490, a4c6], [a4d0, a62b], [a640, a66e], [a673, a673],
1608        [a67e, a69d], [a6a0, a6ef], [a6f2, a6f7], [a700, a7b9],
1609        [a7f7, a801], [a803, a805], [a807, a80a], [a80c, a824],
1610        [a827, a82b], [a830, a839], [a840, a877], [a880, a8c3],
1611        [a8ce, a8d9], [a8f2, a8fe], [a900, a925], [a92e, a946],
1612        [a952, a953], [a95f, a97c], [a983, a9b2], [a9b4, a9b5],
1613        [a9ba, a9bb], [a9bd, a9cd], [a9cf, a9d9], [a9de, a9e4],
1614        [a9e6, a9fe], [aa00, aa28], [aa2f, aa30], [aa33, aa34],
1615        [aa40, aa42], [aa44, aa4b], [aa4d, aa4d], [aa50, aa59],
1616        [aa5c, aa7b], [aa7d, aaaf], [aab1, aab1], [aab5, aab6],
1617        [aab9, aabd], [aac0, aac0], [aac2, aac2], [aadb, aaeb],
1618        [aaee, aaf5], [ab01, ab06], [ab09, ab0e], [ab11, ab16],
1619        [ab20, ab26], [ab28, ab2e], [ab30, ab65], [ab70, abe4],
1620        [abe6, abe7], [abe9, abec], [abf0, abf9], [ac00, d7a3],
1621        [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d], [fa70, fad9],
1622        [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb36],
1623        [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
1624        [fb46, fbc1], [fbd3, fd3f], [fd50, fd8f], [fd92, fdc7],
1625        [fdf0, fdfd], [fe10, fe19], [fe30, fe52], [fe54, fe66],
1626        [fe68, fe6b], [fe70, fe74], [fe76, fefc], [ff01, ff9d],
1627        [ffa0, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7],
1628        [ffda, ffdc], [ffe0, ffe6], [ffe8, ffee], [fffc, fffd],
1629        [10000, 1000b], [1000d, 10026], [10028, 1003a], [1003c, 1003d],
1630        [1003f, 1004d], [10050, 1005d], [10080, 100fa], [10100, 10102],
1631        [10107, 10133], [10137, 1018e], [10190, 1019b], [101a0, 101a0],
1632        [101d0, 101fc], [10280, 1029c], [102a0, 102d0], [102e1, 102fb],
1633        [10300, 10323], [1032d, 1034a], [10350, 10375], [10380, 1039d],
1634        [1039f, 103c3], [103c8, 103d5], [10400, 1049d], [104a0, 104a9],
1635        [104b0, 104d3], [104d8, 104fb], [10500, 10527], [10530, 10563],
1636        [1056f, 1056f], [10600, 10736], [10740, 10755], [10760, 10767],
1637        [10800, 10805], [10808, 10808], [1080a, 10835], [10837, 10838],
1638        [1083c, 1083c], [1083f, 10855], [10857, 1089e], [108a7, 108af],
1639        [108e0, 108f2], [108f4, 108f5], [108fb, 1091b], [1091f, 10939],
1640        [1093f, 1093f], [10980, 109b7], [109bc, 109cf], [109d2, 10a00],
1641        [10a10, 10a13], [10a15, 10a17], [10a19, 10a35], [10a40, 10a48],
1642        [10a50, 10a58], [10a60, 10a9f], [10ac0, 10ae4], [10aeb, 10af6],
1643        [10b00, 10b35], [10b39, 10b55], [10b58, 10b72], [10b78, 10b91],
1644        [10b99, 10b9c], [10ba9, 10baf], [10c00, 10c48], [10c80, 10cb2],
1645        [10cc0, 10cf2], [10cfa, 10d23], [10d30, 10d39], [10e60, 10e7e],
1646        [10f00, 10f27], [10f30, 10f45], [10f51, 10f59], [11000, 11000],
1647        [11002, 11037], [11047, 1104d], [11052, 1106f], [11082, 110b2],
1648        [110b7, 110b8], [110bb, 110bc], [110be, 110c1], [110d0, 110e8],
1649        [110f0, 110f9], [11103, 11126], [1112c, 1112c], [11136, 11146],
1650        [11150, 11172], [11174, 11176], [11182, 111b5], [111bf, 111c8],
1651        [111cd, 111cd], [111d0, 111df], [111e1, 111f4], [11200, 11211],
1652        [11213, 1122e], [11232, 11233], [11235, 11235], [11238, 1123d],
1653        [11280, 11286], [11288, 11288], [1128a, 1128d], [1128f, 1129d],
1654        [1129f, 112a9], [112b0, 112de], [112e0, 112e2], [112f0, 112f9],
1655        [11302, 11303], [11305, 1130c], [1130f, 11310], [11313, 11328],
1656        [1132a, 11330], [11332, 11333], [11335, 11339], [1133d, 1133d],
1657        [1133f, 1133f], [11341, 11344], [11347, 11348], [1134b, 1134d],
1658        [11350, 11350], [1135d, 11363], [11400, 11437], [11440, 11441],
1659        [11445, 11445], [11447, 11459], [1145b, 1145b], [1145d, 1145d],
1660        [11480, 114af], [114b1, 114b2], [114b9, 114b9], [114bb, 114bc],
1661        [114be, 114be], [114c1, 114c1], [114c4, 114c7], [114d0, 114d9],
1662        [11580, 115ae], [115b0, 115b1], [115b8, 115bb], [115be, 115be],
1663        [115c1, 115db], [11600, 11632], [1163b, 1163c], [1163e, 1163e],
1664        [11641, 11644], [11650, 11659], [11660, 1166c], [11680, 116aa],
1665        [116ac, 116ac], [116ae, 116af], [116b6, 116b6], [116c0, 116c9],
1666        [11700, 1171a], [11720, 11721], [11726, 11726], [11730, 1173f],
1667        [11800, 1182e], [11838, 11838], [1183b, 1183b], [118a0, 118f2],
1668        [118ff, 118ff], [11a00, 11a00], [11a0b, 11a32], [11a39, 11a3a],
1669        [11a3f, 11a46], [11a50, 11a50], [11a57, 11a58], [11a5c, 11a83],
1670        [11a86, 11a89], [11a97, 11a97], [11a9a, 11aa2], [11ac0, 11af8],
1671        [11c00, 11c08], [11c0a, 11c2f], [11c3e, 11c3e], [11c40, 11c45],
1672        [11c50, 11c6c], [11c70, 11c8f], [11ca9, 11ca9], [11cb1, 11cb1],
1673        [11cb4, 11cb4], [11d00, 11d06], [11d08, 11d09], [11d0b, 11d30],
1674        [11d46, 11d46], [11d50, 11d59], [11d60, 11d65], [11d67, 11d68],
1675        [11d6a, 11d8e], [11d93, 11d94], [11d96, 11d96], [11d98, 11d98],
1676        [11da0, 11da9], [11ee0, 11ef2], [11ef5, 11ef8], [12000, 12399],
1677        [12400, 1246e], [12470, 12474], [12480, 12543], [13000, 1342e],
1678        [14400, 14646], [16800, 16a38], [16a40, 16a5e], [16a60, 16a69],
1679        [16a6e, 16a6f], [16ad0, 16aed], [16af5, 16af5], [16b00, 16b2f],
1680        [16b37, 16b45], [16b50, 16b59], [16b5b, 16b61], [16b63, 16b77],
1681        [16b7d, 16b8f], [16e40, 16e9a], [16f00, 16f44], [16f50, 16f7e],
1682        [16f93, 16f9f], [16fe0, 16fe1], [17000, 187f1], [18800, 18af2],
1683        [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a], [1bc70, 1bc7c],
1684        [1bc80, 1bc88], [1bc90, 1bc99], [1bc9c, 1bc9c], [1bc9f, 1bc9f],
1685        [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d164], [1d166, 1d166],
1686        [1d16a, 1d16d], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8],
1687        [1d200, 1d241], [1d245, 1d245], [1d2e0, 1d2f3], [1d300, 1d356],
1688        [1d360, 1d378], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
1689        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
1690        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
1691        [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
1692        [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
1693        [1d6a8, 1d7cb], [1d7ce, 1d9ff], [1da37, 1da3a], [1da6d, 1da74],
1694        [1da76, 1da83], [1da85, 1da8b], [1e800, 1e8c4], [1e8c7, 1e8cf],
1695        [1e900, 1e943], [1e950, 1e959], [1e95e, 1e95f], [1ec71, 1ecb4],
1696        [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
1697        [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
1698        [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
1699        [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
1700        [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
1701        [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
1702        [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
1703        [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
1704        [1eeab, 1eebb], [1eef0, 1eef1], [1f000, 1f02b], [1f030, 1f093],
1705        [1f0a0, 1f0ae], [1f0b1, 1f0bf], [1f0c1, 1f0cf], [1f0d1, 1f0f5],
1706        [1f100, 1f10c], [1f110, 1f16b], [1f170, 1f1ac], [1f1e6, 1f202],
1707        [1f210, 1f23b], [1f240, 1f248], [1f250, 1f251], [1f260, 1f265],
1708        [1f300, 1f6d4], [1f6e0, 1f6ec], [1f6f0, 1f6f9], [1f700, 1f773],
1709        [1f780, 1f7d8], [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859],
1710        [1f860, 1f887], [1f890, 1f8ad], [1f900, 1f90b], [1f910, 1f93e],
1711        [1f940, 1f970], [1f973, 1f976], [1f97a, 1f97a], [1f97c, 1f9a2],
1712        [1f9b0, 1f9b9], [1f9c0, 1f9c2], [1f9d0, 1f9ff], [1fa60, 1fa6d],
1713        [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1],
1714        [2ceb0, 2ebe0], [2f800, 2fa1d]**/
1715
1716
1717        namespace {
1718        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1719        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1720        {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
1721        {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
1722        {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
1723        {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1},
1724        {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1},
1725        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
1726        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
1727        {Full, 2}, {Mixed, 1}, {Full, 20}, {Mixed, 1}, {Full, 2},
1728        {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 3}, {Full, 1},
1729        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
1730        {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
1731        {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 6}, {Empty, 2},
1732        {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 5},
1733        {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2}, {Full, 4}, {Mixed, 1},
1734        {Full, 20}, {Mixed, 2}, {Full, 56}, {Mixed, 2}, {Full, 1},
1735        {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
1736        {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Full, 2},
1737        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
1738        {Full, 6}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
1739        {Full, 3}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
1740        {Full, 6}, {Mixed, 1}, {Full, 213}, {Mixed, 1}, {Full, 657},
1741        {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1742        {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
1743        {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1744        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7},
1745        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
1746        {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264},
1747        {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
1748        {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
1749        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3}, {Mixed, 2},
1750        {Full, 3}, {Mixed, 7}, {Empty, 1}, {Full, 3}, {Mixed, 3}, {Full, 2},
1751        {Mixed, 4}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1752        {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
1753        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1754        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 3},
1755        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
1756        {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
1757        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 2}, {Full, 2},
1758        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
1759        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1},
1760        {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 18},
1761        {Empty, 2}, {Mixed, 8}, {Empty, 4}, {Full, 1}, {Mixed, 2},
1762        {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1},
1763        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
1764        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Full, 1},
1765        {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 8},
1766        {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
1767        {Empty, 8}, {Mixed, 6}, {Empty, 2}, {Mixed, 6}, {Empty, 9},
1768        {Mixed, 1}, {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 3},
1769        {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
1770        {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
1771        {Empty, 269}, {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
1772        {Full, 1}, {Mixed, 4}, {Empty, 21}, {Full, 2}, {Mixed, 1},
1773        {Empty, 3}, {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
1774        {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296},
1775        {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11},
1776        {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 155},
1777        {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
1778        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 4},
1779        {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Empty, 4}, {Full, 2},
1780        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
1781        {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 17},
1782        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 107},
1783        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
1784        {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 10},
1785        {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 8}, {Full, 1},
1786        {Mixed, 1}, {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1},
1787        {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 4}, {Full, 30},
1788        {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
1789        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
1790        {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
1791        {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 3}, {Mixed, 1},
1792        {Empty, 44}, {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129},
1793        {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1},
1794        {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1},
1795        {Empty, 28719}};
1796        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
1797        0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
1798        0xfffffc07, 0xfffeffff, 0xfe7fffff, 0x0000e7ff, 0x40000000,
1799        0xffff0049, 0x001f87ff, 0xc800ffc0, 0x000007ff, 0xfffeffff,
1800        0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff, 0xffffe000,
1801        0x0002003f, 0xc7f007ff, 0x043fffff, 0x7fff0110, 0x41ffffff,
1802        0x000007ff, 0x3fdfffff, 0xfffffff8, 0xebffffff, 0xff01de01,
1803        0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981, 0x3fffffc3,
1804        0xfff987e8, 0xc36dfdff, 0x5e000001, 0x005cffc0, 0xfffbbfe8,
1805        0xe3edfdff, 0x00011a01, 0x0203ffc3, 0xfff99fec, 0x23edfdff,
1806        0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718, 0x00011dc6,
1807        0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0700001e, 0xff00ffc3,
1808        0xfffddffd, 0x63effdff, 0x40000d9b, 0x0006ffc3, 0xfffddfec,
1809        0xa7ffffff, 0xff70ddc1, 0xffffffc3, 0xfc7fffec, 0x2ffbffff,
1810        0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff, 0x0fff807f,
1811        0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff, 0xfd5fffff,
1812        0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000, 0x07ffdfbf,
1813        0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b, 0xffff20bf,
1814        0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
1815        0x07ffffff, 0x1fffffff, 0x03ffffff, 0x3f3fffff, 0x1fffffff,
1816        0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff, 0x0001dfff,
1817        0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff, 0x01ffffff,
1818        0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff, 0x01fb0e78,
1819        0xfffffff1, 0x001f3fff, 0xffff0fff, 0xc7ff03ff, 0xc67fffff,
1820        0x00bfffff, 0x0007e01a, 0x03ff03ff, 0x00003fff, 0xfffffff0,
1821        0xe82fffff, 0xffff0ffb, 0x1ff007ff, 0xfffffffc, 0xffffc4c3,
1822        0xf00c5cbf, 0xf8300fff, 0xffffe3ff, 0xffff01ff, 0xe7ffffff,
1823        0x000800ff, 0x00efde02, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
1824        0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0xffff07ff, 0xffff80ff,
1825        0xfff30000, 0x1fff7fff, 0xffff0fff, 0x0000007f, 0x000007ff,
1826        0xffcfffff, 0xff3fffff, 0xfffffdff, 0x7fffffff, 0xffff7fff,
1827        0x7fffffff, 0xfe0c7fff, 0xffff20bf, 0x000180ff, 0x007fffff,
1828        0x7f7f7f7f, 0x7f7f7f7f, 0x00007fff, 0xfbffffff, 0x000fffff,
1829        0x003fffff, 0x0fff0000, 0xffff03ff, 0xfffffffe, 0xf87fffff,
1830        0xffffffe0, 0xfffeffff, 0xffff7fff, 0x07ffffff, 0xffff000f,
1831        0x7fffffff, 0x7fffffff, 0x003fffff, 0x0000ffff, 0xffff1fff,
1832        0xffff007f, 0x00000fff, 0xc0087fff, 0x3fffffff, 0x00fcffff,
1833        0x03ffffff, 0xff800000, 0xfffff7bb, 0x03ff0f9f, 0x00ffffff,
1834        0x03ffc00f, 0x7ffc0000, 0xffffc03f, 0x800c007f, 0x1fffffff,
1835        0xfffffff8, 0xec37ffff, 0xc3ffbfff, 0x7fffffdf, 0x001981ff,
1836        0xf3ff2ff7, 0xefffffff, 0x3e62ffff, 0xf8000005, 0x003fcfff,
1837        0x007e7e7e, 0xffff7f7f, 0xffff003f, 0x03ff1edf, 0xffff000f,
1838        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f,
1839        0x5f7fffff, 0xffffffdb, 0xfff80003, 0xffff0000, 0xfffcffff,
1840        0x000000ff, 0x3fff0000, 0x03ff0000, 0xffff0000, 0xfff7ffff,
1841        0xffdf0f7f, 0x1fffffff, 0xfffffffe, 0x3fffffff, 0x7fffffff,
1842        0x1cfcfcfc, 0x30007f7f, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
1843        0x07ffffff, 0xffffff87, 0xff8fffff, 0x0fff7fff, 0x00000001,
1844        0xffff0000, 0x1fffffff, 0x1fffffff, 0x0001ffff, 0x0ffffffe,
1845        0xffffe00f, 0xffff07ff, 0x003fffff, 0xbfffffff, 0x003fff0f,
1846        0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff, 0xffff00ff,
1847        0x0000800f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f,
1848        0x91bfffff, 0xffbfffff, 0x7fffffff, 0x0000ff80, 0xf837ffff,
1849        0x8fffffff, 0x83ffffff, 0xf0ffffff, 0xfffcffff, 0xfeef0001,
1850        0x003fffff, 0x01ff01ff, 0x007ff81f, 0xfe3fffff, 0xff3fffff,
1851        0xff07ffff, 0x1e03ffff, 0x0000fe00, 0x000001ff, 0x0007ffff,
1852        0xfc07ffff, 0x03ff000f, 0x7fffffff, 0xffff00ff, 0x03fe003f,
1853        0xfffffffd, 0x00ffffff, 0xfffc3f80, 0x0000ffff, 0xfffffffc,
1854        0xd987ffff, 0xffff0003, 0x03ff01ff, 0xfffffff8, 0xffc0107f,
1855        0xffff007f, 0x0077ffff, 0xfffffffc, 0x803fffff, 0xffff21ff,
1856        0x001ffffe, 0xfffbffff, 0x3f2c7fff, 0xbfffbd7f, 0xffff03ff,
1857        0x7fffffff, 0x03ff0007, 0xfff99fec, 0xa3edfdff, 0xe001399e,
1858        0x0000000f, 0x00ffffff, 0x2bffffa3, 0x5a06ffff, 0x03ff00f2,
1859        0x4f037fff, 0x0ffffffe, 0x5807ffff, 0x03ff001e, 0x00001fff,
1860        0x0040d7ff, 0x000003ff, 0x07ffffff, 0xffff0043, 0x09007fff,
1861        0x8007ffff, 0xfffff801, 0x8607ffff, 0xf181007f, 0xfc8003cf,
1862        0x00000007, 0x01ffffff, 0xfffffdff, 0x4000ffff, 0xffff003f,
1863        0xffff1fff, 0x0000ffff, 0x00120200, 0xfffffb7f, 0x0001ffff,
1864        0x03ff0040, 0xfffffdbf, 0x01587fff, 0x000003ff, 0x01e7ffff,
1865        0x03ffffff, 0x001f7fff, 0x0000000f, 0x00007fff, 0x0000007f,
1866        0x01ffffff, 0x7fffffff, 0x0000c3ff, 0xffff0000, 0x00203fff,
1867        0xff80ffff, 0xfbff003f, 0xe0fffffb, 0x0000ffff, 0x07ffffff,
1868        0xffff001f, 0x7fffffff, 0xfff80000, 0x00000003, 0x0003ffff,
1869        0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff,
1870        0x93ff01ff, 0x003fffff, 0xfffffe7f, 0x00003c5f, 0xfffff018,
1871        0xffffc3ff, 0x000001ff, 0x00000023, 0x000fffff, 0x007fffff,
1872        0x01ffffff, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
1873        0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xffffcfff,
1874        0x07800000, 0xffdfe000, 0x00000fef, 0x0000ff9f, 0xc3ff000f,
1875        0xfffe0000, 0x001fffff, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
1876        0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000, 0xffff0fff,
1877        0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff, 0xffff1fff,
1878        0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0007, 0x0fffffff,
1879        0x000301ff, 0x0000003f, 0x001fffff, 0x03ff1fff, 0x000fffff,
1880        0x01ffffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
1881        0xffff0fff, 0x7fffffff, 0xf479ffff, 0x03ff0007, 0xffff0007,
1882        0x00003fff, 0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003,
1883        0x00000001, 0x3fffffff};
1884        }
1885
1886        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 401, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 432, 0};
1887
1888        static BinaryPropertyObject property_object{Gr_Base, std::move(codepoint_set)};
1889    }
1890    namespace GR_EXT_ns {
1891        /** Code Point Ranges for Gr_Ext
1892        [0300, 036f], [0483, 0489], [0591, 05bd], [05bf, 05bf],
1893        [05c1, 05c2], [05c4, 05c5], [05c7, 05c7], [0610, 061a],
1894        [064b, 065f], [0670, 0670], [06d6, 06dc], [06df, 06e4],
1895        [06e7, 06e8], [06ea, 06ed], [0711, 0711], [0730, 074a],
1896        [07a6, 07b0], [07eb, 07f3], [07fd, 07fd], [0816, 0819],
1897        [081b, 0823], [0825, 0827], [0829, 082d], [0859, 085b],
1898        [08d3, 08e1], [08e3, 0902], [093a, 093a], [093c, 093c],
1899        [0941, 0948], [094d, 094d], [0951, 0957], [0962, 0963],
1900        [0981, 0981], [09bc, 09bc], [09be, 09be], [09c1, 09c4],
1901        [09cd, 09cd], [09d7, 09d7], [09e2, 09e3], [09fe, 09fe],
1902        [0a01, 0a02], [0a3c, 0a3c], [0a41, 0a42], [0a47, 0a48],
1903        [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71], [0a75, 0a75],
1904        [0a81, 0a82], [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8],
1905        [0acd, 0acd], [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b01],
1906        [0b3c, 0b3c], [0b3e, 0b3f], [0b41, 0b44], [0b4d, 0b4d],
1907        [0b56, 0b57], [0b62, 0b63], [0b82, 0b82], [0bbe, 0bbe],
1908        [0bc0, 0bc0], [0bcd, 0bcd], [0bd7, 0bd7], [0c00, 0c00],
1909        [0c04, 0c04], [0c3e, 0c40], [0c46, 0c48], [0c4a, 0c4d],
1910        [0c55, 0c56], [0c62, 0c63], [0c81, 0c81], [0cbc, 0cbc],
1911        [0cbf, 0cbf], [0cc2, 0cc2], [0cc6, 0cc6], [0ccc, 0ccd],
1912        [0cd5, 0cd6], [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c],
1913        [0d3e, 0d3e], [0d41, 0d44], [0d4d, 0d4d], [0d57, 0d57],
1914        [0d62, 0d63], [0dca, 0dca], [0dcf, 0dcf], [0dd2, 0dd4],
1915        [0dd6, 0dd6], [0ddf, 0ddf], [0e31, 0e31], [0e34, 0e3a],
1916        [0e47, 0e4e], [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc],
1917        [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37],
1918        [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87],
1919        [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030],
1920        [1032, 1037], [1039, 103a], [103d, 103e], [1058, 1059],
1921        [105e, 1060], [1071, 1074], [1082, 1082], [1085, 1086],
1922        [108d, 108d], [109d, 109d], [135d, 135f], [1712, 1714],
1923        [1732, 1734], [1752, 1753], [1772, 1773], [17b4, 17b5],
1924        [17b7, 17bd], [17c6, 17c6], [17c9, 17d3], [17dd, 17dd],
1925        [180b, 180d], [1885, 1886], [18a9, 18a9], [1920, 1922],
1926        [1927, 1928], [1932, 1932], [1939, 193b], [1a17, 1a18],
1927        [1a1b, 1a1b], [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60],
1928        [1a62, 1a62], [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f],
1929        [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a],
1930        [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81],
1931        [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6],
1932        [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33],
1933        [1c36, 1c37], [1cd0, 1cd2], [1cd4, 1ce0], [1ce2, 1ce8],
1934        [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9], [1dc0, 1df9],
1935        [1dfb, 1dff], [200c, 200c], [20d0, 20f0], [2cef, 2cf1],
1936        [2d7f, 2d7f], [2de0, 2dff], [302a, 302f], [3099, 309a],
1937        [a66f, a672], [a674, a67d], [a69e, a69f], [a6f0, a6f1],
1938        [a802, a802], [a806, a806], [a80b, a80b], [a825, a826],
1939        [a8c4, a8c5], [a8e0, a8f1], [a8ff, a8ff], [a926, a92d],
1940        [a947, a951], [a980, a982], [a9b3, a9b3], [a9b6, a9b9],
1941        [a9bc, a9bc], [a9e5, a9e5], [aa29, aa2e], [aa31, aa32],
1942        [aa35, aa36], [aa43, aa43], [aa4c, aa4c], [aa7c, aa7c],
1943        [aab0, aab0], [aab2, aab4], [aab7, aab8], [aabe, aabf],
1944        [aac1, aac1], [aaec, aaed], [aaf6, aaf6], [abe5, abe5],
1945        [abe8, abe8], [abed, abed], [fb1e, fb1e], [fe00, fe0f],
1946        [fe20, fe2f], [ff9e, ff9f], [101fd, 101fd], [102e0, 102e0],
1947        [10376, 1037a], [10a01, 10a03], [10a05, 10a06], [10a0c, 10a0f],
1948        [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6], [10d24, 10d27],
1949        [10f46, 10f50], [11001, 11001], [11038, 11046], [1107f, 11081],
1950        [110b3, 110b6], [110b9, 110ba], [11100, 11102], [11127, 1112b],
1951        [1112d, 11134], [11173, 11173], [11180, 11181], [111b6, 111be],
1952        [111c9, 111cc], [1122f, 11231], [11234, 11234], [11236, 11237],
1953        [1123e, 1123e], [112df, 112df], [112e3, 112ea], [11300, 11301],
1954        [1133b, 1133c], [1133e, 1133e], [11340, 11340], [11357, 11357],
1955        [11366, 1136c], [11370, 11374], [11438, 1143f], [11442, 11444],
1956        [11446, 11446], [1145e, 1145e], [114b0, 114b0], [114b3, 114b8],
1957        [114ba, 114ba], [114bd, 114bd], [114bf, 114c0], [114c2, 114c3],
1958        [115af, 115af], [115b2, 115b5], [115bc, 115bd], [115bf, 115c0],
1959        [115dc, 115dd], [11633, 1163a], [1163d, 1163d], [1163f, 11640],
1960        [116ab, 116ab], [116ad, 116ad], [116b0, 116b5], [116b7, 116b7],
1961        [1171d, 1171f], [11722, 11725], [11727, 1172b], [1182f, 11837],
1962        [11839, 1183a], [11a01, 11a0a], [11a33, 11a38], [11a3b, 11a3e],
1963        [11a47, 11a47], [11a51, 11a56], [11a59, 11a5b], [11a8a, 11a96],
1964        [11a98, 11a99], [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f],
1965        [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
1966        [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
1967        [11d47, 11d47], [11d90, 11d91], [11d95, 11d95], [11d97, 11d97],
1968        [11ef3, 11ef4], [16af0, 16af4], [16b30, 16b36], [16f8f, 16f92],
1969        [1bc9d, 1bc9e], [1d165, 1d165], [1d167, 1d169], [1d16e, 1d172],
1970        [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
1971        [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
1972        [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
1973        [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
1974        [1e944, 1e94a], [e0020, e007f], [e0100, e01ef]**/
1975
1976
1977        namespace {
1978        const static UnicodeSet::run_t __codepoint_set_runs[] = {
1979        {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
1980        {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1981        {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
1982        {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
1983        {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
1984        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1985        {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
1986        {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1987        {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
1988        {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1989        {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
1990        {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
1991        {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
1992        {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1993        {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
1994        {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
1995        {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
1996        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
1997        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
1998        {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
1999        {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
2000        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
2001        {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
2002        {Mixed, 1}, {Empty, 5}, {Mixed, 6}, {Empty, 2}, {Mixed, 2},
2003        {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4},
2004        {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
2005        {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
2006        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
2007        {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12},
2008        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
2009        {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607},
2010        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
2011        {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
2012        {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1},
2013        {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1},
2014        {Empty, 3}, {Mixed, 1}, {Empty, 24758}, {Full, 3}, {Empty, 4},
2015        {Full, 7}, {Mixed, 1}, {Empty, 6128}};
2016        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
2017        0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
2018        0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
2019        0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x200ff800,
2020        0xfbc00000, 0x00003eef, 0x0e000000, 0xfff80000, 0xfffffffb,
2021        0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002,
2022        0x50000000, 0x0080201e, 0x4000000c, 0x00000006, 0x10000000,
2023        0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be,
2024        0xfc00000c, 0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c,
2025        0x00000004, 0x40000000, 0x00802001, 0x00000011, 0xc0000000,
2026        0x00603dc1, 0x0000000c, 0x00000002, 0x90000000, 0x00603044,
2027        0x0000000c, 0x00000003, 0x58000000, 0x0080201e, 0x0000000c,
2028        0x805c8400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00,
2029        0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
2030        0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
2031        0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000,
2032        0x3fb00000, 0x200ffe40, 0x00003800, 0x00000060, 0x00000200,
2033        0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5, 0x7fff0000,
2034        0x0000000f, 0x17d00000, 0x00000004, 0x000ff800, 0x00000003,
2035        0x00003b3c, 0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd,
2036        0xfbffffff, 0x00001000, 0xffff0000, 0x0001ffff, 0x00038000,
2037        0x80000000, 0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000,
2038        0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x8003ffff,
2039        0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020,
2040        0x00667e00, 0x00001008, 0x10000000, 0xc19d0000, 0x00000002,
2041        0x00403000, 0x00002120, 0x40000000, 0x0000ffff, 0x0000ffff,
2042        0xc0000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
2043        0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000002,
2044        0xff000000, 0x0000007f, 0x80000000, 0x00000003, 0x06780000,
2045        0x00000007, 0x001fef80, 0x00080000, 0x00000003, 0x7fc00000,
2046        0x00001e00, 0x40d38000, 0x80000000, 0x000007f8, 0x00000003,
2047        0x58000000, 0x00800001, 0x001f1fc0, 0xff000000, 0x4000005c,
2048        0xa5f90000, 0x0000000d, 0xb03c8000, 0x30000001, 0xa7f80000,
2049        0x00000001, 0x00bf2800, 0xe0000000, 0x00000fbc, 0x06ff8000,
2050        0x000007fe, 0x79f80000, 0x0e7e0080, 0x037ffc00, 0xbf7f0000,
2051        0xfffc0000, 0x006dfcff, 0xb47e0000, 0x000000bf, 0x00a30000,
2052        0x00180000, 0x001f0000, 0x007f0000, 0x00078000, 0x60000000,
2053        0xf807c3a0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff,
2054        0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
2055        0x007f0000, 0x000007f0, 0x0000ffff};
2056        }
2057
2058        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 183, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 193, 0};
2059
2060        static BinaryPropertyObject property_object{Gr_Ext, std::move(codepoint_set)};
2061    }
2062    namespace GR_LINK_ns {
2063        static ObsoletePropertyObject property_object(Gr_Link);
2064    }
2065    namespace IDC_ns {
2066        /** Code Point Ranges for IDC
2067        [0030, 0039], [0041, 005a], [005f, 005f], [0061, 007a],
2068        [00aa, 00aa], [00b5, 00b5], [00b7, 00b7], [00ba, 00ba],
2069        [00c0, 00d6], [00d8, 00f6], [00f8, 02c1], [02c6, 02d1],
2070        [02e0, 02e4], [02ec, 02ec], [02ee, 02ee], [0300, 0374],
2071        [0376, 0377], [037a, 037d], [037f, 037f], [0386, 038a],
2072        [038c, 038c], [038e, 03a1], [03a3, 03f5], [03f7, 0481],
2073        [0483, 0487], [048a, 052f], [0531, 0556], [0559, 0559],
2074        [0560, 0588], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
2075        [05c4, 05c5], [05c7, 05c7], [05d0, 05ea], [05ef, 05f2],
2076        [0610, 061a], [0620, 0669], [066e, 06d3], [06d5, 06dc],
2077        [06df, 06e8], [06ea, 06fc], [06ff, 06ff], [0710, 074a],
2078        [074d, 07b1], [07c0, 07f5], [07fa, 07fa], [07fd, 07fd],
2079        [0800, 082d], [0840, 085b], [0860, 086a], [08a0, 08b4],
2080        [08b6, 08bd], [08d3, 08e1], [08e3, 0963], [0966, 096f],
2081        [0971, 0983], [0985, 098c], [098f, 0990], [0993, 09a8],
2082        [09aa, 09b0], [09b2, 09b2], [09b6, 09b9], [09bc, 09c4],
2083        [09c7, 09c8], [09cb, 09ce], [09d7, 09d7], [09dc, 09dd],
2084        [09df, 09e3], [09e6, 09f1], [09fc, 09fc], [09fe, 09fe],
2085        [0a01, 0a03], [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28],
2086        [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39],
2087        [0a3c, 0a3c], [0a3e, 0a42], [0a47, 0a48], [0a4b, 0a4d],
2088        [0a51, 0a51], [0a59, 0a5c], [0a5e, 0a5e], [0a66, 0a75],
2089        [0a81, 0a83], [0a85, 0a8d], [0a8f, 0a91], [0a93, 0aa8],
2090        [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abc, 0ac5],
2091        [0ac7, 0ac9], [0acb, 0acd], [0ad0, 0ad0], [0ae0, 0ae3],
2092        [0ae6, 0aef], [0af9, 0aff], [0b01, 0b03], [0b05, 0b0c],
2093        [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33],
2094        [0b35, 0b39], [0b3c, 0b44], [0b47, 0b48], [0b4b, 0b4d],
2095        [0b56, 0b57], [0b5c, 0b5d], [0b5f, 0b63], [0b66, 0b6f],
2096        [0b71, 0b71], [0b82, 0b83], [0b85, 0b8a], [0b8e, 0b90],
2097        [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f],
2098        [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9], [0bbe, 0bc2],
2099        [0bc6, 0bc8], [0bca, 0bcd], [0bd0, 0bd0], [0bd7, 0bd7],
2100        [0be6, 0bef], [0c00, 0c0c], [0c0e, 0c10], [0c12, 0c28],
2101        [0c2a, 0c39], [0c3d, 0c44], [0c46, 0c48], [0c4a, 0c4d],
2102        [0c55, 0c56], [0c58, 0c5a], [0c60, 0c63], [0c66, 0c6f],
2103        [0c80, 0c83], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
2104        [0caa, 0cb3], [0cb5, 0cb9], [0cbc, 0cc4], [0cc6, 0cc8],
2105        [0cca, 0ccd], [0cd5, 0cd6], [0cde, 0cde], [0ce0, 0ce3],
2106        [0ce6, 0cef], [0cf1, 0cf2], [0d00, 0d03], [0d05, 0d0c],
2107        [0d0e, 0d10], [0d12, 0d44], [0d46, 0d48], [0d4a, 0d4e],
2108        [0d54, 0d57], [0d5f, 0d63], [0d66, 0d6f], [0d7a, 0d7f],
2109        [0d82, 0d83], [0d85, 0d96], [0d9a, 0db1], [0db3, 0dbb],
2110        [0dbd, 0dbd], [0dc0, 0dc6], [0dca, 0dca], [0dcf, 0dd4],
2111        [0dd6, 0dd6], [0dd8, 0ddf], [0de6, 0def], [0df2, 0df3],
2112        [0e01, 0e3a], [0e40, 0e4e], [0e50, 0e59], [0e81, 0e82],
2113        [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d],
2114        [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
2115        [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb9], [0ebb, 0ebd],
2116        [0ec0, 0ec4], [0ec6, 0ec6], [0ec8, 0ecd], [0ed0, 0ed9],
2117        [0edc, 0edf], [0f00, 0f00], [0f18, 0f19], [0f20, 0f29],
2118        [0f35, 0f35], [0f37, 0f37], [0f39, 0f39], [0f3e, 0f47],
2119        [0f49, 0f6c], [0f71, 0f84], [0f86, 0f97], [0f99, 0fbc],
2120        [0fc6, 0fc6], [1000, 1049], [1050, 109d], [10a0, 10c5],
2121        [10c7, 10c7], [10cd, 10cd], [10d0, 10fa], [10fc, 1248],
2122        [124a, 124d], [1250, 1256], [1258, 1258], [125a, 125d],
2123        [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5],
2124        [12b8, 12be], [12c0, 12c0], [12c2, 12c5], [12c8, 12d6],
2125        [12d8, 1310], [1312, 1315], [1318, 135a], [135d, 135f],
2126        [1369, 1371], [1380, 138f], [13a0, 13f5], [13f8, 13fd],
2127        [1401, 166c], [166f, 167f], [1681, 169a], [16a0, 16ea],
2128        [16ee, 16f8], [1700, 170c], [170e, 1714], [1720, 1734],
2129        [1740, 1753], [1760, 176c], [176e, 1770], [1772, 1773],
2130        [1780, 17d3], [17d7, 17d7], [17dc, 17dd], [17e0, 17e9],
2131        [180b, 180d], [1810, 1819], [1820, 1878], [1880, 18aa],
2132        [18b0, 18f5], [1900, 191e], [1920, 192b], [1930, 193b],
2133        [1946, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9],
2134        [19d0, 19da], [1a00, 1a1b], [1a20, 1a5e], [1a60, 1a7c],
2135        [1a7f, 1a89], [1a90, 1a99], [1aa7, 1aa7], [1ab0, 1abd],
2136        [1b00, 1b4b], [1b50, 1b59], [1b6b, 1b73], [1b80, 1bf3],
2137        [1c00, 1c37], [1c40, 1c49], [1c4d, 1c7d], [1c80, 1c88],
2138        [1c90, 1cba], [1cbd, 1cbf], [1cd0, 1cd2], [1cd4, 1cf9],
2139        [1d00, 1df9], [1dfb, 1f15], [1f18, 1f1d], [1f20, 1f45],
2140        [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
2141        [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc],
2142        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3],
2143        [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc],
2144        [203f, 2040], [2054, 2054], [2071, 2071], [207f, 207f],
2145        [2090, 209c], [20d0, 20dc], [20e1, 20e1], [20e5, 20f0],
2146        [2102, 2102], [2107, 2107], [210a, 2113], [2115, 2115],
2147        [2118, 211d], [2124, 2124], [2126, 2126], [2128, 2128],
2148        [212a, 2139], [213c, 213f], [2145, 2149], [214e, 214e],
2149        [2160, 2188], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
2150        [2ceb, 2cf3], [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d],
2151        [2d30, 2d67], [2d6f, 2d6f], [2d7f, 2d96], [2da0, 2da6],
2152        [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6],
2153        [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde], [2de0, 2dff],
2154        [3005, 3007], [3021, 302f], [3031, 3035], [3038, 303c],
2155        [3041, 3096], [3099, 309f], [30a1, 30fa], [30fc, 30ff],
2156        [3105, 312f], [3131, 318e], [31a0, 31ba], [31f0, 31ff],
2157        [3400, 4db5], [4e00, 9fef], [a000, a48c], [a4d0, a4fd],
2158        [a500, a60c], [a610, a62b], [a640, a66f], [a674, a67d],
2159        [a67f, a6f1], [a717, a71f], [a722, a788], [a78b, a7b9],
2160        [a7f7, a827], [a840, a873], [a880, a8c5], [a8d0, a8d9],
2161        [a8e0, a8f7], [a8fb, a8fb], [a8fd, a92d], [a930, a953],
2162        [a960, a97c], [a980, a9c0], [a9cf, a9d9], [a9e0, a9fe],
2163        [aa00, aa36], [aa40, aa4d], [aa50, aa59], [aa60, aa76],
2164        [aa7a, aac2], [aadb, aadd], [aae0, aaef], [aaf2, aaf6],
2165        [ab01, ab06], [ab09, ab0e], [ab11, ab16], [ab20, ab26],
2166        [ab28, ab2e], [ab30, ab5a], [ab5c, ab65], [ab70, abea],
2167        [abec, abed], [abf0, abf9], [ac00, d7a3], [d7b0, d7c6],
2168        [d7cb, d7fb], [f900, fa6d], [fa70, fad9], [fb00, fb06],
2169        [fb13, fb17], [fb1d, fb28], [fb2a, fb36], [fb38, fb3c],
2170        [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fbb1],
2171        [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfb],
2172        [fe00, fe0f], [fe20, fe2f], [fe33, fe34], [fe4d, fe4f],
2173        [fe70, fe74], [fe76, fefc], [ff10, ff19], [ff21, ff3a],
2174        [ff3f, ff3f], [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7],
2175        [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [10000, 1000b],
2176        [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
2177        [10050, 1005d], [10080, 100fa], [10140, 10174], [101fd, 101fd],
2178        [10280, 1029c], [102a0, 102d0], [102e0, 102e0], [10300, 1031f],
2179        [1032d, 1034a], [10350, 1037a], [10380, 1039d], [103a0, 103c3],
2180        [103c8, 103cf], [103d1, 103d5], [10400, 1049d], [104a0, 104a9],
2181        [104b0, 104d3], [104d8, 104fb], [10500, 10527], [10530, 10563],
2182        [10600, 10736], [10740, 10755], [10760, 10767], [10800, 10805],
2183        [10808, 10808], [1080a, 10835], [10837, 10838], [1083c, 1083c],
2184        [1083f, 10855], [10860, 10876], [10880, 1089e], [108e0, 108f2],
2185        [108f4, 108f5], [10900, 10915], [10920, 10939], [10980, 109b7],
2186        [109be, 109bf], [10a00, 10a03], [10a05, 10a06], [10a0c, 10a13],
2187        [10a15, 10a17], [10a19, 10a35], [10a38, 10a3a], [10a3f, 10a3f],
2188        [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae6],
2189        [10b00, 10b35], [10b40, 10b55], [10b60, 10b72], [10b80, 10b91],
2190        [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2], [10d00, 10d27],
2191        [10d30, 10d39], [10f00, 10f1c], [10f27, 10f27], [10f30, 10f50],
2192        [11000, 11046], [11066, 1106f], [1107f, 110ba], [110d0, 110e8],
2193        [110f0, 110f9], [11100, 11134], [11136, 1113f], [11144, 11146],
2194        [11150, 11173], [11176, 11176], [11180, 111c4], [111c9, 111cc],
2195        [111d0, 111da], [111dc, 111dc], [11200, 11211], [11213, 11237],
2196        [1123e, 1123e], [11280, 11286], [11288, 11288], [1128a, 1128d],
2197        [1128f, 1129d], [1129f, 112a8], [112b0, 112ea], [112f0, 112f9],
2198        [11300, 11303], [11305, 1130c], [1130f, 11310], [11313, 11328],
2199        [1132a, 11330], [11332, 11333], [11335, 11339], [1133b, 11344],
2200        [11347, 11348], [1134b, 1134d], [11350, 11350], [11357, 11357],
2201        [1135d, 11363], [11366, 1136c], [11370, 11374], [11400, 1144a],
2202        [11450, 11459], [1145e, 1145e], [11480, 114c5], [114c7, 114c7],
2203        [114d0, 114d9], [11580, 115b5], [115b8, 115c0], [115d8, 115dd],
2204        [11600, 11640], [11644, 11644], [11650, 11659], [11680, 116b7],
2205        [116c0, 116c9], [11700, 1171a], [1171d, 1172b], [11730, 11739],
2206        [11800, 1183a], [118a0, 118e9], [118ff, 118ff], [11a00, 11a3e],
2207        [11a47, 11a47], [11a50, 11a83], [11a86, 11a99], [11a9d, 11a9d],
2208        [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c36], [11c38, 11c40],
2209        [11c50, 11c59], [11c72, 11c8f], [11c92, 11ca7], [11ca9, 11cb6],
2210        [11d00, 11d06], [11d08, 11d09], [11d0b, 11d36], [11d3a, 11d3a],
2211        [11d3c, 11d3d], [11d3f, 11d47], [11d50, 11d59], [11d60, 11d65],
2212        [11d67, 11d68], [11d6a, 11d8e], [11d90, 11d91], [11d93, 11d98],
2213        [11da0, 11da9], [11ee0, 11ef6], [12000, 12399], [12400, 1246e],
2214        [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
2215        [16a40, 16a5e], [16a60, 16a69], [16ad0, 16aed], [16af0, 16af4],
2216        [16b00, 16b36], [16b40, 16b43], [16b50, 16b59], [16b63, 16b77],
2217        [16b7d, 16b8f], [16e40, 16e7f], [16f00, 16f44], [16f50, 16f7e],
2218        [16f8f, 16f9f], [16fe0, 16fe1], [17000, 187f1], [18800, 18af2],
2219        [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a], [1bc70, 1bc7c],
2220        [1bc80, 1bc88], [1bc90, 1bc99], [1bc9d, 1bc9e], [1d165, 1d169],
2221        [1d16d, 1d172], [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad],
2222        [1d242, 1d244], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
2223        [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
2224        [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
2225        [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
2226        [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
2227        [1d6a8, 1d6c0], [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714],
2228        [1d716, 1d734], [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788],
2229        [1d78a, 1d7a8], [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1d7ce, 1d7ff],
2230        [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
2231        [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
2232        [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e800, 1e8c4],
2233        [1e8d0, 1e8d6], [1e900, 1e94a], [1e950, 1e959], [1ee00, 1ee03],
2234        [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
2235        [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
2236        [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
2237        [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
2238        [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
2239        [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
2240        [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
2241        [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
2242        [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1],
2243        [2ceb0, 2ebe0], [2f800, 2fa1d], [e0100, e01ef]**/
2244
2245
2246        namespace {
2247        const static UnicodeSet::run_t __codepoint_set_runs[] = {
2248        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
2249        {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
2250        {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 2},
2251        {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
2252        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2253        {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 30}, {Full, 1},
2254        {Mixed, 9}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 7},
2255        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2256        {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2257        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2258        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
2259        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2260        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
2261        {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
2262        {Mixed, 1}, {Full, 1}, {Mixed, 7}, {Full, 7}, {Mixed, 1}, {Full, 8},
2263        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
2264        {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 5}, {Full, 1},
2265        {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
2266        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
2267        {Empty, 16}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
2268        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
2269        {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655},
2270        {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
2271        {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3},
2272        {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
2273        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
2274        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
2275        {Mixed, 6}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
2276        {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
2277        {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
2278        {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
2279        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
2280        {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
2281        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
2282        {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
2283        {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
2284        {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
2285        {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
2286        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
2287        {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
2288        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2289        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 3},
2290        {Empty, 5}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 1},
2291        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
2292        {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 4},
2293        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
2294        {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2},
2295        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
2296        {Mixed, 2}, {Empty, 6}, {Full, 1}, {Mixed, 1}, {Empty, 3},
2297        {Full, 2}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
2298        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
2299        {Mixed, 6}, {Empty, 2}, {Mixed, 6}, {Empty, 9}, {Mixed, 1},
2300        {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
2301        {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33},
2302        {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
2303        {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
2304        {Mixed, 4}, {Empty, 21}, {Full, 2}, {Empty, 4}, {Full, 2},
2305        {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1},
2306        {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1},
2307        {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72},
2308        {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
2309        {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1}, {Full, 1},
2310        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
2311        {Full, 1}, {Empty, 16}, {Full, 1}, {Mixed, 1}, {Full, 1},
2312        {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 62}, {Full, 6},
2313        {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37},
2314        {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
2315        {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
2316        {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
2317        {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
2318        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
2319        0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
2320        0xff7fffff, 0x0003ffc3, 0x0000501f, 0xbcdfffff, 0xffffd7c0,
2321        0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
2322        0xfffe01ff, 0xbfffffff, 0xffff00b6, 0x000787ff, 0x07ff0000,
2323        0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000, 0xffffe7ff,
2324        0x0003ffff, 0x243fffff, 0x00003fff, 0x0fffffff, 0x000007ff,
2325        0x3fdfffff, 0xfff80000, 0xfffffffb, 0xfffeffcf, 0xfff99fef,
2326        0xf3c5fdff, 0xb080799f, 0x5003ffcf, 0xfff987ee, 0xd36dfdff,
2327        0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf,
2328        0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf,
2329        0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfff,
2330        0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef, 0xf3effdff,
2331        0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf, 0xfc00ffcf,
2332        0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0, 0xfffffffe,
2333        0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae, 0xf3ff3f5f,
2334        0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff, 0xfeffffdf,
2335        0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff, 0xffff20bf,
2336        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
2337        0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff, 0x3f3fffff,
2338        0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x001fdfff,
2339        0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff, 0x000003ff,
2340        0x03ff3800, 0x01ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff,
2341        0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff, 0x07ff03ff,
2342        0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x3fff0080,
2343        0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff, 0xffffe3ff,
2344        0x3fffffff, 0xffff01ff, 0xe7ffffff, 0xfff70000, 0x03ffffff,
2345        0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
2346        0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
2347        0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
2348        0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
2349        0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
2350        0x000000e0, 0x1f3efffe, 0xfffffffe, 0xfe7fffff, 0xfffffffe,
2351        0xf7ffffff, 0xffffffe0, 0xfffeffff, 0x00007fff, 0x07ffffff,
2352        0xffff0000, 0x003fffff, 0x0000ffff, 0x00001fff, 0xffff0000,
2353        0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
2354        0xff800000, 0xfffffffc, 0xfffff9ff, 0x03ffffff, 0xff800000,
2355        0x000000ff, 0x000fffff, 0x03ff003f, 0xe8ffffff, 0xffff3fff,
2356        0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
2357        0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
2358        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
2359        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
2360        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
2361        0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0x0000ffff,
2362        0x0018ffff, 0x0000e000, 0xffdf0000, 0x1fffffff, 0x03ff0000,
2363        0x87fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
2364        0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
2365        0x20000000, 0x1fffffff, 0x0001ffff, 0x00000001, 0xffffe000,
2366        0xffff07ff, 0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
2367        0xffff03ff, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
2368        0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
2369        0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
2370        0x03ffffff, 0xc0ffffff, 0xfeeff06f, 0x873fffff, 0x1fffffff,
2371        0x1fffffff, 0xfffffeff, 0x0000007f, 0x003fffff, 0x003fffff,
2372        0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
2373        0x03ff00ff, 0x1fffffff, 0xffff0080, 0x0001ffff, 0x0000007f,
2374        0x8000ffc0, 0x07ffffff, 0xffff0000, 0x03ff01ff, 0xffdfffff,
2375        0xffff0070, 0x004fffff, 0x17ff1e1f, 0xfffbffff, 0x40ffffff,
2376        0xbfffbd7f, 0xffff01ff, 0x03ff07ff, 0xfff99fef, 0xfbedfdff,
2377        0xe081399f, 0x001f1fcf, 0x43ff07ff, 0x03ff00bf, 0xff3fffff,
2378        0x3f000001, 0x03ff0011, 0x00ffffff, 0x000003ff, 0xe7ffffff,
2379        0x03ff0fff, 0x07ffffff, 0x800003ff, 0x7fffffff, 0xffff0080,
2380        0x23ffffcf, 0x01ffffff, 0xfffffdff, 0xff7fffff, 0x03ff0001,
2381        0xfffc0000, 0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff,
2382        0x03ff00ff, 0xfffffdbf, 0x01fb7fff, 0x000003ff, 0x007fffff,
2383        0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
2384        0x01ffffff, 0x7fffffff, 0x000003ff, 0xffff0000, 0x001f3fff,
2385        0x007fffff, 0x03ff000f, 0xe0fffff8, 0x0000ffff, 0xffff001f,
2386        0x7fffffff, 0xffff8000, 0x00000003, 0x0003ffff, 0x0007ffff,
2387        0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff, 0x63ff01ff,
2388        0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xffdfffff,
2389        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
2390        0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff,
2391        0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
2392        0xffffcff7, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe,
2393        0xf9ffff7f, 0x000007db, 0x007f001f, 0x03ff07ff, 0xffffffef,
2394        0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
2395        0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
2396        0x3fffffff, 0x0000ffff};
2397        }
2398
2399        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 368, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 387, 0};
2400
2401        static BinaryPropertyObject property_object{IDC, std::move(codepoint_set)};
2402    }
2403    namespace IDS_ns {
2404        /** Code Point Ranges for IDS
2405        [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5],
2406        [00ba, 00ba], [00c0, 00d6], [00d8, 00f6], [00f8, 02c1],
2407        [02c6, 02d1], [02e0, 02e4], [02ec, 02ec], [02ee, 02ee],
2408        [0370, 0374], [0376, 0377], [037a, 037d], [037f, 037f],
2409        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 03a1],
2410        [03a3, 03f5], [03f7, 0481], [048a, 052f], [0531, 0556],
2411        [0559, 0559], [0560, 0588], [05d0, 05ea], [05ef, 05f2],
2412        [0620, 064a], [066e, 066f], [0671, 06d3], [06d5, 06d5],
2413        [06e5, 06e6], [06ee, 06ef], [06fa, 06fc], [06ff, 06ff],
2414        [0710, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1],
2415        [07ca, 07ea], [07f4, 07f5], [07fa, 07fa], [0800, 0815],
2416        [081a, 081a], [0824, 0824], [0828, 0828], [0840, 0858],
2417        [0860, 086a], [08a0, 08b4], [08b6, 08bd], [0904, 0939],
2418        [093d, 093d], [0950, 0950], [0958, 0961], [0971, 0980],
2419        [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0],
2420        [09b2, 09b2], [09b6, 09b9], [09bd, 09bd], [09ce, 09ce],
2421        [09dc, 09dd], [09df, 09e1], [09f0, 09f1], [09fc, 09fc],
2422        [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28], [0a2a, 0a30],
2423        [0a32, 0a33], [0a35, 0a36], [0a38, 0a39], [0a59, 0a5c],
2424        [0a5e, 0a5e], [0a72, 0a74], [0a85, 0a8d], [0a8f, 0a91],
2425        [0a93, 0aa8], [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9],
2426        [0abd, 0abd], [0ad0, 0ad0], [0ae0, 0ae1], [0af9, 0af9],
2427        [0b05, 0b0c], [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30],
2428        [0b32, 0b33], [0b35, 0b39], [0b3d, 0b3d], [0b5c, 0b5d],
2429        [0b5f, 0b61], [0b71, 0b71], [0b83, 0b83], [0b85, 0b8a],
2430        [0b8e, 0b90], [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c],
2431        [0b9e, 0b9f], [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9],
2432        [0bd0, 0bd0], [0c05, 0c0c], [0c0e, 0c10], [0c12, 0c28],
2433        [0c2a, 0c39], [0c3d, 0c3d], [0c58, 0c5a], [0c60, 0c61],
2434        [0c80, 0c80], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
2435        [0caa, 0cb3], [0cb5, 0cb9], [0cbd, 0cbd], [0cde, 0cde],
2436        [0ce0, 0ce1], [0cf1, 0cf2], [0d05, 0d0c], [0d0e, 0d10],
2437        [0d12, 0d3a], [0d3d, 0d3d], [0d4e, 0d4e], [0d54, 0d56],
2438        [0d5f, 0d61], [0d7a, 0d7f], [0d85, 0d96], [0d9a, 0db1],
2439        [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0e01, 0e30],
2440        [0e32, 0e33], [0e40, 0e46], [0e81, 0e82], [0e84, 0e84],
2441        [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d], [0e94, 0e97],
2442        [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5], [0ea7, 0ea7],
2443        [0eaa, 0eab], [0ead, 0eb0], [0eb2, 0eb3], [0ebd, 0ebd],
2444        [0ec0, 0ec4], [0ec6, 0ec6], [0edc, 0edf], [0f00, 0f00],
2445        [0f40, 0f47], [0f49, 0f6c], [0f88, 0f8c], [1000, 102a],
2446        [103f, 103f], [1050, 1055], [105a, 105d], [1061, 1061],
2447        [1065, 1066], [106e, 1070], [1075, 1081], [108e, 108e],
2448        [10a0, 10c5], [10c7, 10c7], [10cd, 10cd], [10d0, 10fa],
2449        [10fc, 1248], [124a, 124d], [1250, 1256], [1258, 1258],
2450        [125a, 125d], [1260, 1288], [128a, 128d], [1290, 12b0],
2451        [12b2, 12b5], [12b8, 12be], [12c0, 12c0], [12c2, 12c5],
2452        [12c8, 12d6], [12d8, 1310], [1312, 1315], [1318, 135a],
2453        [1380, 138f], [13a0, 13f5], [13f8, 13fd], [1401, 166c],
2454        [166f, 167f], [1681, 169a], [16a0, 16ea], [16ee, 16f8],
2455        [1700, 170c], [170e, 1711], [1720, 1731], [1740, 1751],
2456        [1760, 176c], [176e, 1770], [1780, 17b3], [17d7, 17d7],
2457        [17dc, 17dc], [1820, 1878], [1880, 18a8], [18aa, 18aa],
2458        [18b0, 18f5], [1900, 191e], [1950, 196d], [1970, 1974],
2459        [1980, 19ab], [19b0, 19c9], [1a00, 1a16], [1a20, 1a54],
2460        [1aa7, 1aa7], [1b05, 1b33], [1b45, 1b4b], [1b83, 1ba0],
2461        [1bae, 1baf], [1bba, 1be5], [1c00, 1c23], [1c4d, 1c4f],
2462        [1c5a, 1c7d], [1c80, 1c88], [1c90, 1cba], [1cbd, 1cbf],
2463        [1ce9, 1cec], [1cee, 1cf1], [1cf5, 1cf6], [1d00, 1dbf],
2464        [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
2465        [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
2466        [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe],
2467        [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb],
2468        [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2071, 2071],
2469        [207f, 207f], [2090, 209c], [2102, 2102], [2107, 2107],
2470        [210a, 2113], [2115, 2115], [2118, 211d], [2124, 2124],
2471        [2126, 2126], [2128, 2128], [212a, 2139], [213c, 213f],
2472        [2145, 2149], [214e, 214e], [2160, 2188], [2c00, 2c2e],
2473        [2c30, 2c5e], [2c60, 2ce4], [2ceb, 2cee], [2cf2, 2cf3],
2474        [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d], [2d30, 2d67],
2475        [2d6f, 2d6f], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae],
2476        [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce],
2477        [2dd0, 2dd6], [2dd8, 2dde], [3005, 3007], [3021, 3029],
2478        [3031, 3035], [3038, 303c], [3041, 3096], [309b, 309f],
2479        [30a1, 30fa], [30fc, 30ff], [3105, 312f], [3131, 318e],
2480        [31a0, 31ba], [31f0, 31ff], [3400, 4db5], [4e00, 9fef],
2481        [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
2482        [a62a, a62b], [a640, a66e], [a67f, a69d], [a6a0, a6ef],
2483        [a717, a71f], [a722, a788], [a78b, a7b9], [a7f7, a801],
2484        [a803, a805], [a807, a80a], [a80c, a822], [a840, a873],
2485        [a882, a8b3], [a8f2, a8f7], [a8fb, a8fb], [a8fd, a8fe],
2486        [a90a, a925], [a930, a946], [a960, a97c], [a984, a9b2],
2487        [a9cf, a9cf], [a9e0, a9e4], [a9e6, a9ef], [a9fa, a9fe],
2488        [aa00, aa28], [aa40, aa42], [aa44, aa4b], [aa60, aa76],
2489        [aa7a, aa7a], [aa7e, aaaf], [aab1, aab1], [aab5, aab6],
2490        [aab9, aabd], [aac0, aac0], [aac2, aac2], [aadb, aadd],
2491        [aae0, aaea], [aaf2, aaf4], [ab01, ab06], [ab09, ab0e],
2492        [ab11, ab16], [ab20, ab26], [ab28, ab2e], [ab30, ab5a],
2493        [ab5c, ab65], [ab70, abe2], [ac00, d7a3], [d7b0, d7c6],
2494        [d7cb, d7fb], [f900, fa6d], [fa70, fad9], [fb00, fb06],
2495        [fb13, fb17], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb36],
2496        [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
2497        [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
2498        [fdf0, fdfb], [fe70, fe74], [fe76, fefc], [ff21, ff3a],
2499        [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7], [ffca, ffcf],
2500        [ffd2, ffd7], [ffda, ffdc], [10000, 1000b], [1000d, 10026],
2501        [10028, 1003a], [1003c, 1003d], [1003f, 1004d], [10050, 1005d],
2502        [10080, 100fa], [10140, 10174], [10280, 1029c], [102a0, 102d0],
2503        [10300, 1031f], [1032d, 1034a], [10350, 10375], [10380, 1039d],
2504        [103a0, 103c3], [103c8, 103cf], [103d1, 103d5], [10400, 1049d],
2505        [104b0, 104d3], [104d8, 104fb], [10500, 10527], [10530, 10563],
2506        [10600, 10736], [10740, 10755], [10760, 10767], [10800, 10805],
2507        [10808, 10808], [1080a, 10835], [10837, 10838], [1083c, 1083c],
2508        [1083f, 10855], [10860, 10876], [10880, 1089e], [108e0, 108f2],
2509        [108f4, 108f5], [10900, 10915], [10920, 10939], [10980, 109b7],
2510        [109be, 109bf], [10a00, 10a00], [10a10, 10a13], [10a15, 10a17],
2511        [10a19, 10a35], [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7],
2512        [10ac9, 10ae4], [10b00, 10b35], [10b40, 10b55], [10b60, 10b72],
2513        [10b80, 10b91], [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2],
2514        [10d00, 10d23], [10f00, 10f1c], [10f27, 10f27], [10f30, 10f45],
2515        [11003, 11037], [11083, 110af], [110d0, 110e8], [11103, 11126],
2516        [11144, 11144], [11150, 11172], [11176, 11176], [11183, 111b2],
2517        [111c1, 111c4], [111da, 111da], [111dc, 111dc], [11200, 11211],
2518        [11213, 1122b], [11280, 11286], [11288, 11288], [1128a, 1128d],
2519        [1128f, 1129d], [1129f, 112a8], [112b0, 112de], [11305, 1130c],
2520        [1130f, 11310], [11313, 11328], [1132a, 11330], [11332, 11333],
2521        [11335, 11339], [1133d, 1133d], [11350, 11350], [1135d, 11361],
2522        [11400, 11434], [11447, 1144a], [11480, 114af], [114c4, 114c5],
2523        [114c7, 114c7], [11580, 115ae], [115d8, 115db], [11600, 1162f],
2524        [11644, 11644], [11680, 116aa], [11700, 1171a], [11800, 1182b],
2525        [118a0, 118df], [118ff, 118ff], [11a00, 11a00], [11a0b, 11a32],
2526        [11a3a, 11a3a], [11a50, 11a50], [11a5c, 11a83], [11a86, 11a89],
2527        [11a9d, 11a9d], [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c2e],
2528        [11c40, 11c40], [11c72, 11c8f], [11d00, 11d06], [11d08, 11d09],
2529        [11d0b, 11d30], [11d46, 11d46], [11d60, 11d65], [11d67, 11d68],
2530        [11d6a, 11d89], [11d98, 11d98], [11ee0, 11ef2], [12000, 12399],
2531        [12400, 1246e], [12480, 12543], [13000, 1342e], [14400, 14646],
2532        [16800, 16a38], [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b2f],
2533        [16b40, 16b43], [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e7f],
2534        [16f00, 16f44], [16f50, 16f50], [16f93, 16f9f], [16fe0, 16fe1],
2535        [17000, 187f1], [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb],
2536        [1bc00, 1bc6a], [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99],
2537        [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2],
2538        [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb],
2539        [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514],
2540        [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544],
2541        [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d6c0],
2542        [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714], [1d716, 1d734],
2543        [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788], [1d78a, 1d7a8],
2544        [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e800, 1e8c4], [1e900, 1e943],
2545        [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
2546        [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
2547        [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
2548        [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
2549        [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
2550        [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
2551        [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
2552        [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
2553        [1eeab, 1eebb], [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d],
2554        [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
2555
2556
2557        namespace {
2558        const static UnicodeSet::run_t __codepoint_set_runs[] = {
2559        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
2560        {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2561        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
2562        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
2563        {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1},
2564        {Mixed, 1}, {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15},
2565        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
2566        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1},
2567        {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
2568        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2569        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
2570        {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
2571        {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2572        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
2573        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
2574        {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
2575        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 1},
2576        {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
2577        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
2578        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
2579        {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2580        {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
2581        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2582        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
2583        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
2584        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
2585        {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2586        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
2587        {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
2588        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
2589        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
2590        {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
2591        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
2592        {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
2593        {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
2594        {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8},
2595        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
2596        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
2597        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2598        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
2599        {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
2600        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
2601        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
2602        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
2603        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 3},
2604        {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1},
2605        {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
2606        {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
2607        {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
2608        {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1},
2609        {Empty, 2}, {Mixed, 1}, {Empty, 7}, {Full, 1}, {Mixed, 1},
2610        {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 3},
2611        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
2612        {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 5}, {Empty, 10},
2613        {Mixed, 1}, {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 3},
2614        {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85},
2615        {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1},
2616        {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
2617        {Full, 1}, {Mixed, 4}, {Empty, 21}, {Full, 2}, {Empty, 4},
2618        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
2619        {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
2620        {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
2621        {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2},
2622        {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2623        {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 129},
2624        {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
2625        {Empty, 37}, {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1},
2626        {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
2627        {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
2628        {Full, 16}, {Mixed, 1}, {Empty, 28719}};
2629        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
2630        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
2631        0x0003ffc3, 0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
2632        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0x000001ff,
2633        0xffff0000, 0x000787ff, 0x000007ff, 0xfffec000, 0x002fffff,
2634        0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000, 0x0002003f,
2635        0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110, 0x01ffffff,
2636        0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000,
2637        0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003,
2638        0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
2639        0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0, 0x23edfdff,
2640        0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
2641        0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
2642        0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
2643        0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
2644        0xfffffffe, 0x000dffff, 0x0000007f, 0xfef02596, 0x200decae,
2645        0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
2646        0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
2647        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
2648        0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
2649        0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
2650        0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x01ffffff,
2651        0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
2652        0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff, 0x00000080,
2653        0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
2654        0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0xffff01ff,
2655        0xe7ffffff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
2656        0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
2657        0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
2658        0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
2659        0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
2660        0xf87fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffeffff,
2661        0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff,
2662        0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
2663        0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
2664        0xfffff9ff, 0x03ffffff, 0xff800000, 0xfffff7bb, 0x00000007,
2665        0x000fffff, 0xfffffffc, 0x000fffff, 0x68fc0000, 0xfffffc00,
2666        0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
2667        0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
2668        0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
2669        0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
2670        0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
2671        0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
2672        0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff,
2673        0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
2674        0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
2675        0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff, 0x003fffff,
2676        0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff,
2677        0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff,
2678        0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
2679        0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
2680        0xfeef0001, 0x003fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
2681        0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
2682        0x000001ff, 0x0007ffff, 0x0007ffff, 0x0000000f, 0x1fffffff,
2683        0xffff0080, 0x0000003f, 0xfffffff8, 0x00ffffff, 0xfffffff8,
2684        0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f,
2685        0xffff0010, 0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e,
2686        0xfffbffff, 0x00000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff,
2687        0xfff99fe0, 0x23edfdff, 0xe0010000, 0x00000003, 0x001fffff,
2688        0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff, 0x0f000000,
2689        0x0000ffff, 0x00000010, 0x000007ff, 0x07ffffff, 0x00000fff,
2690        0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000, 0x200003cf,
2691        0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000,
2692        0x0000ffff, 0xfffffb7f, 0x0001ffff, 0x00000040, 0xfffffdbf,
2693        0x010003ff, 0x0007ffff, 0x03ffffff, 0x00007fff, 0x0000000f,
2694        0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000,
2695        0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
2696        0x0001001f, 0xfff80000, 0x00000003, 0x0003ffff, 0x0007ffff,
2697        0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff, 0x03ff01ff,
2698        0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
2699        0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
2700        0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
2701        0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f, 0xffffffef,
2702        0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
2703        0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
2704        0x3fffffff};
2705        }
2706
2707        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 354, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 371, 0};
2708
2709        static BinaryPropertyObject property_object{IDS, std::move(codepoint_set)};
2710    }
2711    namespace LOWER_ns {
2712        /** Code Point Ranges for Lower
2713        [0061, 007a], [00aa, 00aa], [00b5, 00b5], [00ba, 00ba],
2714        [00df, 00f6], [00f8, 00ff], [0101, 0101], [0103, 0103],
2715        [0105, 0105], [0107, 0107], [0109, 0109], [010b, 010b],
2716        [010d, 010d], [010f, 010f], [0111, 0111], [0113, 0113],
2717        [0115, 0115], [0117, 0117], [0119, 0119], [011b, 011b],
2718        [011d, 011d], [011f, 011f], [0121, 0121], [0123, 0123],
2719        [0125, 0125], [0127, 0127], [0129, 0129], [012b, 012b],
2720        [012d, 012d], [012f, 012f], [0131, 0131], [0133, 0133],
2721        [0135, 0135], [0137, 0138], [013a, 013a], [013c, 013c],
2722        [013e, 013e], [0140, 0140], [0142, 0142], [0144, 0144],
2723        [0146, 0146], [0148, 0149], [014b, 014b], [014d, 014d],
2724        [014f, 014f], [0151, 0151], [0153, 0153], [0155, 0155],
2725        [0157, 0157], [0159, 0159], [015b, 015b], [015d, 015d],
2726        [015f, 015f], [0161, 0161], [0163, 0163], [0165, 0165],
2727        [0167, 0167], [0169, 0169], [016b, 016b], [016d, 016d],
2728        [016f, 016f], [0171, 0171], [0173, 0173], [0175, 0175],
2729        [0177, 0177], [017a, 017a], [017c, 017c], [017e, 0180],
2730        [0183, 0183], [0185, 0185], [0188, 0188], [018c, 018d],
2731        [0192, 0192], [0195, 0195], [0199, 019b], [019e, 019e],
2732        [01a1, 01a1], [01a3, 01a3], [01a5, 01a5], [01a8, 01a8],
2733        [01aa, 01ab], [01ad, 01ad], [01b0, 01b0], [01b4, 01b4],
2734        [01b6, 01b6], [01b9, 01ba], [01bd, 01bf], [01c6, 01c6],
2735        [01c9, 01c9], [01cc, 01cc], [01ce, 01ce], [01d0, 01d0],
2736        [01d2, 01d2], [01d4, 01d4], [01d6, 01d6], [01d8, 01d8],
2737        [01da, 01da], [01dc, 01dd], [01df, 01df], [01e1, 01e1],
2738        [01e3, 01e3], [01e5, 01e5], [01e7, 01e7], [01e9, 01e9],
2739        [01eb, 01eb], [01ed, 01ed], [01ef, 01f0], [01f3, 01f3],
2740        [01f5, 01f5], [01f9, 01f9], [01fb, 01fb], [01fd, 01fd],
2741        [01ff, 01ff], [0201, 0201], [0203, 0203], [0205, 0205],
2742        [0207, 0207], [0209, 0209], [020b, 020b], [020d, 020d],
2743        [020f, 020f], [0211, 0211], [0213, 0213], [0215, 0215],
2744        [0217, 0217], [0219, 0219], [021b, 021b], [021d, 021d],
2745        [021f, 021f], [0221, 0221], [0223, 0223], [0225, 0225],
2746        [0227, 0227], [0229, 0229], [022b, 022b], [022d, 022d],
2747        [022f, 022f], [0231, 0231], [0233, 0239], [023c, 023c],
2748        [023f, 0240], [0242, 0242], [0247, 0247], [0249, 0249],
2749        [024b, 024b], [024d, 024d], [024f, 0293], [0295, 02b8],
2750        [02c0, 02c1], [02e0, 02e4], [0345, 0345], [0371, 0371],
2751        [0373, 0373], [0377, 0377], [037a, 037d], [0390, 0390],
2752        [03ac, 03ce], [03d0, 03d1], [03d5, 03d7], [03d9, 03d9],
2753        [03db, 03db], [03dd, 03dd], [03df, 03df], [03e1, 03e1],
2754        [03e3, 03e3], [03e5, 03e5], [03e7, 03e7], [03e9, 03e9],
2755        [03eb, 03eb], [03ed, 03ed], [03ef, 03f3], [03f5, 03f5],
2756        [03f8, 03f8], [03fb, 03fc], [0430, 045f], [0461, 0461],
2757        [0463, 0463], [0465, 0465], [0467, 0467], [0469, 0469],
2758        [046b, 046b], [046d, 046d], [046f, 046f], [0471, 0471],
2759        [0473, 0473], [0475, 0475], [0477, 0477], [0479, 0479],
2760        [047b, 047b], [047d, 047d], [047f, 047f], [0481, 0481],
2761        [048b, 048b], [048d, 048d], [048f, 048f], [0491, 0491],
2762        [0493, 0493], [0495, 0495], [0497, 0497], [0499, 0499],
2763        [049b, 049b], [049d, 049d], [049f, 049f], [04a1, 04a1],
2764        [04a3, 04a3], [04a5, 04a5], [04a7, 04a7], [04a9, 04a9],
2765        [04ab, 04ab], [04ad, 04ad], [04af, 04af], [04b1, 04b1],
2766        [04b3, 04b3], [04b5, 04b5], [04b7, 04b7], [04b9, 04b9],
2767        [04bb, 04bb], [04bd, 04bd], [04bf, 04bf], [04c2, 04c2],
2768        [04c4, 04c4], [04c6, 04c6], [04c8, 04c8], [04ca, 04ca],
2769        [04cc, 04cc], [04ce, 04cf], [04d1, 04d1], [04d3, 04d3],
2770        [04d5, 04d5], [04d7, 04d7], [04d9, 04d9], [04db, 04db],
2771        [04dd, 04dd], [04df, 04df], [04e1, 04e1], [04e3, 04e3],
2772        [04e5, 04e5], [04e7, 04e7], [04e9, 04e9], [04eb, 04eb],
2773        [04ed, 04ed], [04ef, 04ef], [04f1, 04f1], [04f3, 04f3],
2774        [04f5, 04f5], [04f7, 04f7], [04f9, 04f9], [04fb, 04fb],
2775        [04fd, 04fd], [04ff, 04ff], [0501, 0501], [0503, 0503],
2776        [0505, 0505], [0507, 0507], [0509, 0509], [050b, 050b],
2777        [050d, 050d], [050f, 050f], [0511, 0511], [0513, 0513],
2778        [0515, 0515], [0517, 0517], [0519, 0519], [051b, 051b],
2779        [051d, 051d], [051f, 051f], [0521, 0521], [0523, 0523],
2780        [0525, 0525], [0527, 0527], [0529, 0529], [052b, 052b],
2781        [052d, 052d], [052f, 052f], [0560, 0588], [10d0, 10fa],
2782        [10fd, 10ff], [13f8, 13fd], [1c80, 1c88], [1d00, 1dbf],
2783        [1e01, 1e01], [1e03, 1e03], [1e05, 1e05], [1e07, 1e07],
2784        [1e09, 1e09], [1e0b, 1e0b], [1e0d, 1e0d], [1e0f, 1e0f],
2785        [1e11, 1e11], [1e13, 1e13], [1e15, 1e15], [1e17, 1e17],
2786        [1e19, 1e19], [1e1b, 1e1b], [1e1d, 1e1d], [1e1f, 1e1f],
2787        [1e21, 1e21], [1e23, 1e23], [1e25, 1e25], [1e27, 1e27],
2788        [1e29, 1e29], [1e2b, 1e2b], [1e2d, 1e2d], [1e2f, 1e2f],
2789        [1e31, 1e31], [1e33, 1e33], [1e35, 1e35], [1e37, 1e37],
2790        [1e39, 1e39], [1e3b, 1e3b], [1e3d, 1e3d], [1e3f, 1e3f],
2791        [1e41, 1e41], [1e43, 1e43], [1e45, 1e45], [1e47, 1e47],
2792        [1e49, 1e49], [1e4b, 1e4b], [1e4d, 1e4d], [1e4f, 1e4f],
2793        [1e51, 1e51], [1e53, 1e53], [1e55, 1e55], [1e57, 1e57],
2794        [1e59, 1e59], [1e5b, 1e5b], [1e5d, 1e5d], [1e5f, 1e5f],
2795        [1e61, 1e61], [1e63, 1e63], [1e65, 1e65], [1e67, 1e67],
2796        [1e69, 1e69], [1e6b, 1e6b], [1e6d, 1e6d], [1e6f, 1e6f],
2797        [1e71, 1e71], [1e73, 1e73], [1e75, 1e75], [1e77, 1e77],
2798        [1e79, 1e79], [1e7b, 1e7b], [1e7d, 1e7d], [1e7f, 1e7f],
2799        [1e81, 1e81], [1e83, 1e83], [1e85, 1e85], [1e87, 1e87],
2800        [1e89, 1e89], [1e8b, 1e8b], [1e8d, 1e8d], [1e8f, 1e8f],
2801        [1e91, 1e91], [1e93, 1e93], [1e95, 1e9d], [1e9f, 1e9f],
2802        [1ea1, 1ea1], [1ea3, 1ea3], [1ea5, 1ea5], [1ea7, 1ea7],
2803        [1ea9, 1ea9], [1eab, 1eab], [1ead, 1ead], [1eaf, 1eaf],
2804        [1eb1, 1eb1], [1eb3, 1eb3], [1eb5, 1eb5], [1eb7, 1eb7],
2805        [1eb9, 1eb9], [1ebb, 1ebb], [1ebd, 1ebd], [1ebf, 1ebf],
2806        [1ec1, 1ec1], [1ec3, 1ec3], [1ec5, 1ec5], [1ec7, 1ec7],
2807        [1ec9, 1ec9], [1ecb, 1ecb], [1ecd, 1ecd], [1ecf, 1ecf],
2808        [1ed1, 1ed1], [1ed3, 1ed3], [1ed5, 1ed5], [1ed7, 1ed7],
2809        [1ed9, 1ed9], [1edb, 1edb], [1edd, 1edd], [1edf, 1edf],
2810        [1ee1, 1ee1], [1ee3, 1ee3], [1ee5, 1ee5], [1ee7, 1ee7],
2811        [1ee9, 1ee9], [1eeb, 1eeb], [1eed, 1eed], [1eef, 1eef],
2812        [1ef1, 1ef1], [1ef3, 1ef3], [1ef5, 1ef5], [1ef7, 1ef7],
2813        [1ef9, 1ef9], [1efb, 1efb], [1efd, 1efd], [1eff, 1f07],
2814        [1f10, 1f15], [1f20, 1f27], [1f30, 1f37], [1f40, 1f45],
2815        [1f50, 1f57], [1f60, 1f67], [1f70, 1f7d], [1f80, 1f87],
2816        [1f90, 1f97], [1fa0, 1fa7], [1fb0, 1fb4], [1fb6, 1fb7],
2817        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fc7], [1fd0, 1fd3],
2818        [1fd6, 1fd7], [1fe0, 1fe7], [1ff2, 1ff4], [1ff6, 1ff7],
2819        [2071, 2071], [207f, 207f], [2090, 209c], [210a, 210a],
2820        [210e, 210f], [2113, 2113], [212f, 212f], [2134, 2134],
2821        [2139, 2139], [213c, 213d], [2146, 2149], [214e, 214e],
2822        [2170, 217f], [2184, 2184], [24d0, 24e9], [2c30, 2c5e],
2823        [2c61, 2c61], [2c65, 2c66], [2c68, 2c68], [2c6a, 2c6a],
2824        [2c6c, 2c6c], [2c71, 2c71], [2c73, 2c74], [2c76, 2c7d],
2825        [2c81, 2c81], [2c83, 2c83], [2c85, 2c85], [2c87, 2c87],
2826        [2c89, 2c89], [2c8b, 2c8b], [2c8d, 2c8d], [2c8f, 2c8f],
2827        [2c91, 2c91], [2c93, 2c93], [2c95, 2c95], [2c97, 2c97],
2828        [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d], [2c9f, 2c9f],
2829        [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5], [2ca7, 2ca7],
2830        [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad], [2caf, 2caf],
2831        [2cb1, 2cb1], [2cb3, 2cb3], [2cb5, 2cb5], [2cb7, 2cb7],
2832        [2cb9, 2cb9], [2cbb, 2cbb], [2cbd, 2cbd], [2cbf, 2cbf],
2833        [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5], [2cc7, 2cc7],
2834        [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd], [2ccf, 2ccf],
2835        [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5], [2cd7, 2cd7],
2836        [2cd9, 2cd9], [2cdb, 2cdb], [2cdd, 2cdd], [2cdf, 2cdf],
2837        [2ce1, 2ce1], [2ce3, 2ce4], [2cec, 2cec], [2cee, 2cee],
2838        [2cf3, 2cf3], [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d],
2839        [a641, a641], [a643, a643], [a645, a645], [a647, a647],
2840        [a649, a649], [a64b, a64b], [a64d, a64d], [a64f, a64f],
2841        [a651, a651], [a653, a653], [a655, a655], [a657, a657],
2842        [a659, a659], [a65b, a65b], [a65d, a65d], [a65f, a65f],
2843        [a661, a661], [a663, a663], [a665, a665], [a667, a667],
2844        [a669, a669], [a66b, a66b], [a66d, a66d], [a681, a681],
2845        [a683, a683], [a685, a685], [a687, a687], [a689, a689],
2846        [a68b, a68b], [a68d, a68d], [a68f, a68f], [a691, a691],
2847        [a693, a693], [a695, a695], [a697, a697], [a699, a699],
2848        [a69b, a69d], [a723, a723], [a725, a725], [a727, a727],
2849        [a729, a729], [a72b, a72b], [a72d, a72d], [a72f, a731],
2850        [a733, a733], [a735, a735], [a737, a737], [a739, a739],
2851        [a73b, a73b], [a73d, a73d], [a73f, a73f], [a741, a741],
2852        [a743, a743], [a745, a745], [a747, a747], [a749, a749],
2853        [a74b, a74b], [a74d, a74d], [a74f, a74f], [a751, a751],
2854        [a753, a753], [a755, a755], [a757, a757], [a759, a759],
2855        [a75b, a75b], [a75d, a75d], [a75f, a75f], [a761, a761],
2856        [a763, a763], [a765, a765], [a767, a767], [a769, a769],
2857        [a76b, a76b], [a76d, a76d], [a76f, a778], [a77a, a77a],
2858        [a77c, a77c], [a77f, a77f], [a781, a781], [a783, a783],
2859        [a785, a785], [a787, a787], [a78c, a78c], [a78e, a78e],
2860        [a791, a791], [a793, a795], [a797, a797], [a799, a799],
2861        [a79b, a79b], [a79d, a79d], [a79f, a79f], [a7a1, a7a1],
2862        [a7a3, a7a3], [a7a5, a7a5], [a7a7, a7a7], [a7a9, a7a9],
2863        [a7af, a7af], [a7b5, a7b5], [a7b7, a7b7], [a7b9, a7b9],
2864        [a7f8, a7fa], [ab30, ab5a], [ab5c, ab65], [ab70, abbf],
2865        [fb00, fb06], [fb13, fb17], [ff41, ff5a], [10428, 1044f],
2866        [104d8, 104fb], [10cc0, 10cf2], [118c0, 118df], [16e60, 16e7f],
2867        [1d41a, 1d433], [1d44e, 1d454], [1d456, 1d467], [1d482, 1d49b],
2868        [1d4b6, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d4cf],
2869        [1d4ea, 1d503], [1d51e, 1d537], [1d552, 1d56b], [1d586, 1d59f],
2870        [1d5ba, 1d5d3], [1d5ee, 1d607], [1d622, 1d63b], [1d656, 1d66f],
2871        [1d68a, 1d6a5], [1d6c2, 1d6da], [1d6dc, 1d6e1], [1d6fc, 1d714],
2872        [1d716, 1d71b], [1d736, 1d74e], [1d750, 1d755], [1d770, 1d788],
2873        [1d78a, 1d78f], [1d7aa, 1d7c2], [1d7c4, 1d7c9], [1d7cb, 1d7cb],
2874        [1e922, 1e943]**/
2875
2876
2877        namespace {
2878        const static UnicodeSet::run_t __codepoint_set_runs[] = {
2879        {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
2880        {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
2881        {Full, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1}, {Mixed, 1},
2882        {Empty, 89}, {Mixed, 2}, {Empty, 23}, {Mixed, 1}, {Empty, 68},
2883        {Mixed, 1}, {Empty, 3}, {Full, 6}, {Empty, 2}, {Mixed, 16},
2884        {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 5}, {Empty, 25},
2885        {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
2886        {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 1},
2887        {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Full, 2}, {Empty, 634},
2888        {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38}, {Mixed, 2},
2889        {Empty, 3}, {Mixed, 2}, {Empty, 62}, {Full, 1}, {Mixed, 1},
2890        {Empty, 94}, {Full, 1}, {Empty, 684}, {Full, 1}, {Empty, 812},
2891        {Mixed, 31}, {Empty, 138}, {Mixed, 2}, {Empty, 30901}};
2892        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
2893        0x07fffffe, 0x04200400, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
2894        0x55aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a,
2895        0xb5555240, 0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85,
2896        0xffefffff, 0x01ffffff, 0x00000003, 0x0000001f, 0x00000020,
2897        0x3c8a0000, 0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa,
2898        0xffff0000, 0xaaaaaaaa, 0xaaaaa802, 0xaaaaaaaa, 0xaaaad554,
2899        0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa, 0x000001ff, 0xffff0000,
2900        0xe7ffffff, 0x3f000000, 0x000001ff, 0xaaaaaaaa, 0xaaaaaaaa,
2901        0xaaaaaaaa, 0xaaaaaaaa, 0xbfeaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
2902        0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f, 0x3fff00ff,
2903        0x00ff00ff, 0x40df00ff, 0x00cf00dc, 0x00dc00ff, 0x80020000,
2904        0x1fff0000, 0x0008c400, 0x32108000, 0x000043c0, 0xffff0000,
2905        0x00000010, 0xffff0000, 0x000003ff, 0xffff0000, 0x7fffffff,
2906        0x3fda1562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008501a,
2907        0x000020bf, 0xaaaaaaaa, 0x00002aaa, 0x3aaaaaaa, 0xaaabaaa8,
2908        0xaaaaaaaa, 0x95ffaaaa, 0xaaba50aa, 0x02a082aa, 0x07000000,
2909        0xffff0000, 0xf7ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe,
2910        0xffffff00, 0x0000ffff, 0xff000000, 0x0fffffff, 0x0007ffff,
2911        0xfc000000, 0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc,
2912        0xebc00000, 0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff,
2913        0xfffc0000, 0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff,
2914        0xffffc000, 0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff,
2915        0xfffffc00, 0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff,
2916        0xffc00000, 0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00,
2917        0x00000bf7, 0xfffffffc, 0x0000000f};
2918        }
2919
2920        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 64, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 123, 0};
2921
2922        static BinaryPropertyObject property_object{Lower, std::move(codepoint_set)};
2923    }
2924    namespace MATH_ns {
2925        /** Code Point Ranges for Math
2926        [002b, 002b], [003c, 003e], [005e, 005e], [007c, 007c],
2927        [007e, 007e], [00ac, 00ac], [00b1, 00b1], [00d7, 00d7],
2928        [00f7, 00f7], [03d0, 03d2], [03d5, 03d5], [03f0, 03f1],
2929        [03f4, 03f6], [0606, 0608], [2016, 2016], [2032, 2034],
2930        [2040, 2040], [2044, 2044], [2052, 2052], [2061, 2064],
2931        [207a, 207e], [208a, 208e], [20d0, 20dc], [20e1, 20e1],
2932        [20e5, 20e6], [20eb, 20ef], [2102, 2102], [2107, 2107],
2933        [210a, 2113], [2115, 2115], [2118, 211d], [2124, 2124],
2934        [2128, 2129], [212c, 212d], [212f, 2131], [2133, 2138],
2935        [213c, 2149], [214b, 214b], [2190, 21a7], [21a9, 21ae],
2936        [21b0, 21b1], [21b6, 21b7], [21bc, 21db], [21dd, 21dd],
2937        [21e4, 21e5], [21f4, 22ff], [2308, 230b], [2320, 2321],
2938        [237c, 237c], [239b, 23b5], [23b7, 23b7], [23d0, 23d0],
2939        [23dc, 23e2], [25a0, 25a1], [25ae, 25b7], [25bc, 25c1],
2940        [25c6, 25c7], [25ca, 25cb], [25cf, 25d3], [25e2, 25e2],
2941        [25e4, 25e4], [25e7, 25ec], [25f8, 25ff], [2605, 2606],
2942        [2640, 2640], [2642, 2642], [2660, 2663], [266d, 266f],
2943        [27c0, 27ff], [2900, 2aff], [2b30, 2b44], [2b47, 2b4c],
2944        [fb29, fb29], [fe61, fe66], [fe68, fe68], [ff0b, ff0b],
2945        [ff1c, ff1e], [ff3c, ff3c], [ff3e, ff3e], [ff5c, ff5c],
2946        [ff5e, ff5e], [ffe2, ffe2], [ffe9, ffec], [1d400, 1d454],
2947        [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
2948        [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3],
2949        [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
2950        [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
2951        [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d7cb], [1d7ce, 1d7ff],
2952        [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
2953        [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
2954        [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
2955        [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
2956        [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
2957        [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
2958        [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
2959        [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
2960        [1eeab, 1eebb], [1eef0, 1eef1]**/
2961
2962
2963        namespace {
2964        const static UnicodeSet::run_t __codepoint_set_runs[] = {
2965        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
2966        {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 207}, {Mixed, 5},
2967        {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Full, 8},
2968        {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Empty, 13}, {Mixed, 4},
2969        {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Full, 2}, {Empty, 8},
2970        {Full, 16}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
2971        {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 4},
2972        {Mixed, 1}, {Empty, 1696}, {Full, 2}, {Mixed, 1}, {Full, 1},
2973        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
2974        {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
2975        {Empty, 1}, {Mixed, 1}, {Empty, 30856}};
2976        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
2977        0x70000800, 0x40000000, 0x50000000, 0x00021000, 0x00800000,
2978        0x00800000, 0x00270000, 0x00730000, 0x000001c0, 0x00400000,
2979        0x001c0000, 0x00040011, 0x7c00001e, 0x00007c00, 0x1fff0000,
2980        0x0000f862, 0x3f2ffc84, 0xf1fbb310, 0x00000bff, 0xffff0000,
2981        0xf0c37eff, 0x2fffffff, 0xfff00030, 0x00000f00, 0x00000003,
2982        0x10000000, 0xf8000000, 0x00bfffff, 0xf0010000, 0x00000007,
2983        0xf0ffc003, 0x000f8cc3, 0xff001f94, 0x00000060, 0x00000005,
2984        0x0000e00f, 0xffff0000, 0x00001f9f, 0x00000200, 0x0000017e,
2985        0x70000800, 0x50000000, 0x50000000, 0x00001e04, 0xffdfffff,
2986        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
2987        0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
2988        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000};
2989        }
2990
2991        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 53, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 60, 0};
2992
2993        static BinaryPropertyObject property_object{Math, std::move(codepoint_set)};
2994    }
2995    namespace UPPER_ns {
2996        /** Code Point Ranges for Upper
2997        [0041, 005a], [00c0, 00d6], [00d8, 00de], [0100, 0100],
2998        [0102, 0102], [0104, 0104], [0106, 0106], [0108, 0108],
2999        [010a, 010a], [010c, 010c], [010e, 010e], [0110, 0110],
3000        [0112, 0112], [0114, 0114], [0116, 0116], [0118, 0118],
3001        [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
3002        [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128],
3003        [012a, 012a], [012c, 012c], [012e, 012e], [0130, 0130],
3004        [0132, 0132], [0134, 0134], [0136, 0136], [0139, 0139],
3005        [013b, 013b], [013d, 013d], [013f, 013f], [0141, 0141],
3006        [0143, 0143], [0145, 0145], [0147, 0147], [014a, 014a],
3007        [014c, 014c], [014e, 014e], [0150, 0150], [0152, 0152],
3008        [0154, 0154], [0156, 0156], [0158, 0158], [015a, 015a],
3009        [015c, 015c], [015e, 015e], [0160, 0160], [0162, 0162],
3010        [0164, 0164], [0166, 0166], [0168, 0168], [016a, 016a],
3011        [016c, 016c], [016e, 016e], [0170, 0170], [0172, 0172],
3012        [0174, 0174], [0176, 0176], [0178, 0179], [017b, 017b],
3013        [017d, 017d], [0181, 0182], [0184, 0184], [0186, 0187],
3014        [0189, 018b], [018e, 0191], [0193, 0194], [0196, 0198],
3015        [019c, 019d], [019f, 01a0], [01a2, 01a2], [01a4, 01a4],
3016        [01a6, 01a7], [01a9, 01a9], [01ac, 01ac], [01ae, 01af],
3017        [01b1, 01b3], [01b5, 01b5], [01b7, 01b8], [01bc, 01bc],
3018        [01c4, 01c4], [01c7, 01c7], [01ca, 01ca], [01cd, 01cd],
3019        [01cf, 01cf], [01d1, 01d1], [01d3, 01d3], [01d5, 01d5],
3020        [01d7, 01d7], [01d9, 01d9], [01db, 01db], [01de, 01de],
3021        [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
3022        [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee],
3023        [01f1, 01f1], [01f4, 01f4], [01f6, 01f8], [01fa, 01fa],
3024        [01fc, 01fc], [01fe, 01fe], [0200, 0200], [0202, 0202],
3025        [0204, 0204], [0206, 0206], [0208, 0208], [020a, 020a],
3026        [020c, 020c], [020e, 020e], [0210, 0210], [0212, 0212],
3027        [0214, 0214], [0216, 0216], [0218, 0218], [021a, 021a],
3028        [021c, 021c], [021e, 021e], [0220, 0220], [0222, 0222],
3029        [0224, 0224], [0226, 0226], [0228, 0228], [022a, 022a],
3030        [022c, 022c], [022e, 022e], [0230, 0230], [0232, 0232],
3031        [023a, 023b], [023d, 023e], [0241, 0241], [0243, 0246],
3032        [0248, 0248], [024a, 024a], [024c, 024c], [024e, 024e],
3033        [0370, 0370], [0372, 0372], [0376, 0376], [037f, 037f],
3034        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 038f],
3035        [0391, 03a1], [03a3, 03ab], [03cf, 03cf], [03d2, 03d4],
3036        [03d8, 03d8], [03da, 03da], [03dc, 03dc], [03de, 03de],
3037        [03e0, 03e0], [03e2, 03e2], [03e4, 03e4], [03e6, 03e6],
3038        [03e8, 03e8], [03ea, 03ea], [03ec, 03ec], [03ee, 03ee],
3039        [03f4, 03f4], [03f7, 03f7], [03f9, 03fa], [03fd, 042f],
3040        [0460, 0460], [0462, 0462], [0464, 0464], [0466, 0466],
3041        [0468, 0468], [046a, 046a], [046c, 046c], [046e, 046e],
3042        [0470, 0470], [0472, 0472], [0474, 0474], [0476, 0476],
3043        [0478, 0478], [047a, 047a], [047c, 047c], [047e, 047e],
3044        [0480, 0480], [048a, 048a], [048c, 048c], [048e, 048e],
3045        [0490, 0490], [0492, 0492], [0494, 0494], [0496, 0496],
3046        [0498, 0498], [049a, 049a], [049c, 049c], [049e, 049e],
3047        [04a0, 04a0], [04a2, 04a2], [04a4, 04a4], [04a6, 04a6],
3048        [04a8, 04a8], [04aa, 04aa], [04ac, 04ac], [04ae, 04ae],
3049        [04b0, 04b0], [04b2, 04b2], [04b4, 04b4], [04b6, 04b6],
3050        [04b8, 04b8], [04ba, 04ba], [04bc, 04bc], [04be, 04be],
3051        [04c0, 04c1], [04c3, 04c3], [04c5, 04c5], [04c7, 04c7],
3052        [04c9, 04c9], [04cb, 04cb], [04cd, 04cd], [04d0, 04d0],
3053        [04d2, 04d2], [04d4, 04d4], [04d6, 04d6], [04d8, 04d8],
3054        [04da, 04da], [04dc, 04dc], [04de, 04de], [04e0, 04e0],
3055        [04e2, 04e2], [04e4, 04e4], [04e6, 04e6], [04e8, 04e8],
3056        [04ea, 04ea], [04ec, 04ec], [04ee, 04ee], [04f0, 04f0],
3057        [04f2, 04f2], [04f4, 04f4], [04f6, 04f6], [04f8, 04f8],
3058        [04fa, 04fa], [04fc, 04fc], [04fe, 04fe], [0500, 0500],
3059        [0502, 0502], [0504, 0504], [0506, 0506], [0508, 0508],
3060        [050a, 050a], [050c, 050c], [050e, 050e], [0510, 0510],
3061        [0512, 0512], [0514, 0514], [0516, 0516], [0518, 0518],
3062        [051a, 051a], [051c, 051c], [051e, 051e], [0520, 0520],
3063        [0522, 0522], [0524, 0524], [0526, 0526], [0528, 0528],
3064        [052a, 052a], [052c, 052c], [052e, 052e], [0531, 0556],
3065        [10a0, 10c5], [10c7, 10c7], [10cd, 10cd], [13a0, 13f5],
3066        [1c90, 1cba], [1cbd, 1cbf], [1e00, 1e00], [1e02, 1e02],
3067        [1e04, 1e04], [1e06, 1e06], [1e08, 1e08], [1e0a, 1e0a],
3068        [1e0c, 1e0c], [1e0e, 1e0e], [1e10, 1e10], [1e12, 1e12],
3069        [1e14, 1e14], [1e16, 1e16], [1e18, 1e18], [1e1a, 1e1a],
3070        [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20], [1e22, 1e22],
3071        [1e24, 1e24], [1e26, 1e26], [1e28, 1e28], [1e2a, 1e2a],
3072        [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30], [1e32, 1e32],
3073        [1e34, 1e34], [1e36, 1e36], [1e38, 1e38], [1e3a, 1e3a],
3074        [1e3c, 1e3c], [1e3e, 1e3e], [1e40, 1e40], [1e42, 1e42],
3075        [1e44, 1e44], [1e46, 1e46], [1e48, 1e48], [1e4a, 1e4a],
3076        [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50], [1e52, 1e52],
3077        [1e54, 1e54], [1e56, 1e56], [1e58, 1e58], [1e5a, 1e5a],
3078        [1e5c, 1e5c], [1e5e, 1e5e], [1e60, 1e60], [1e62, 1e62],
3079        [1e64, 1e64], [1e66, 1e66], [1e68, 1e68], [1e6a, 1e6a],
3080        [1e6c, 1e6c], [1e6e, 1e6e], [1e70, 1e70], [1e72, 1e72],
3081        [1e74, 1e74], [1e76, 1e76], [1e78, 1e78], [1e7a, 1e7a],
3082        [1e7c, 1e7c], [1e7e, 1e7e], [1e80, 1e80], [1e82, 1e82],
3083        [1e84, 1e84], [1e86, 1e86], [1e88, 1e88], [1e8a, 1e8a],
3084        [1e8c, 1e8c], [1e8e, 1e8e], [1e90, 1e90], [1e92, 1e92],
3085        [1e94, 1e94], [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2],
3086        [1ea4, 1ea4], [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa],
3087        [1eac, 1eac], [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2],
3088        [1eb4, 1eb4], [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba],
3089        [1ebc, 1ebc], [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2],
3090        [1ec4, 1ec4], [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca],
3091        [1ecc, 1ecc], [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2],
3092        [1ed4, 1ed4], [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda],
3093        [1edc, 1edc], [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2],
3094        [1ee4, 1ee4], [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea],
3095        [1eec, 1eec], [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2],
3096        [1ef4, 1ef4], [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa],
3097        [1efc, 1efc], [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d],
3098        [1f28, 1f2f], [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59],
3099        [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f],
3100        [1fb8, 1fbb], [1fc8, 1fcb], [1fd8, 1fdb], [1fe8, 1fec],
3101        [1ff8, 1ffb], [2102, 2102], [2107, 2107], [210b, 210d],
3102        [2110, 2112], [2115, 2115], [2119, 211d], [2124, 2124],
3103        [2126, 2126], [2128, 2128], [212a, 212d], [2130, 2133],
3104        [213e, 213f], [2145, 2145], [2160, 216f], [2183, 2183],
3105        [24b6, 24cf], [2c00, 2c2e], [2c60, 2c60], [2c62, 2c64],
3106        [2c67, 2c67], [2c69, 2c69], [2c6b, 2c6b], [2c6d, 2c70],
3107        [2c72, 2c72], [2c75, 2c75], [2c7e, 2c80], [2c82, 2c82],
3108        [2c84, 2c84], [2c86, 2c86], [2c88, 2c88], [2c8a, 2c8a],
3109        [2c8c, 2c8c], [2c8e, 2c8e], [2c90, 2c90], [2c92, 2c92],
3110        [2c94, 2c94], [2c96, 2c96], [2c98, 2c98], [2c9a, 2c9a],
3111        [2c9c, 2c9c], [2c9e, 2c9e], [2ca0, 2ca0], [2ca2, 2ca2],
3112        [2ca4, 2ca4], [2ca6, 2ca6], [2ca8, 2ca8], [2caa, 2caa],
3113        [2cac, 2cac], [2cae, 2cae], [2cb0, 2cb0], [2cb2, 2cb2],
3114        [2cb4, 2cb4], [2cb6, 2cb6], [2cb8, 2cb8], [2cba, 2cba],
3115        [2cbc, 2cbc], [2cbe, 2cbe], [2cc0, 2cc0], [2cc2, 2cc2],
3116        [2cc4, 2cc4], [2cc6, 2cc6], [2cc8, 2cc8], [2cca, 2cca],
3117        [2ccc, 2ccc], [2cce, 2cce], [2cd0, 2cd0], [2cd2, 2cd2],
3118        [2cd4, 2cd4], [2cd6, 2cd6], [2cd8, 2cd8], [2cda, 2cda],
3119        [2cdc, 2cdc], [2cde, 2cde], [2ce0, 2ce0], [2ce2, 2ce2],
3120        [2ceb, 2ceb], [2ced, 2ced], [2cf2, 2cf2], [a640, a640],
3121        [a642, a642], [a644, a644], [a646, a646], [a648, a648],
3122        [a64a, a64a], [a64c, a64c], [a64e, a64e], [a650, a650],
3123        [a652, a652], [a654, a654], [a656, a656], [a658, a658],
3124        [a65a, a65a], [a65c, a65c], [a65e, a65e], [a660, a660],
3125        [a662, a662], [a664, a664], [a666, a666], [a668, a668],
3126        [a66a, a66a], [a66c, a66c], [a680, a680], [a682, a682],
3127        [a684, a684], [a686, a686], [a688, a688], [a68a, a68a],
3128        [a68c, a68c], [a68e, a68e], [a690, a690], [a692, a692],
3129        [a694, a694], [a696, a696], [a698, a698], [a69a, a69a],
3130        [a722, a722], [a724, a724], [a726, a726], [a728, a728],
3131        [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
3132        [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
3133        [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
3134        [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
3135        [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
3136        [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
3137        [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
3138        [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
3139        [a76c, a76c], [a76e, a76e], [a779, a779], [a77b, a77b],
3140        [a77d, a77e], [a780, a780], [a782, a782], [a784, a784],
3141        [a786, a786], [a78b, a78b], [a78d, a78d], [a790, a790],
3142        [a792, a792], [a796, a796], [a798, a798], [a79a, a79a],
3143        [a79c, a79c], [a79e, a79e], [a7a0, a7a0], [a7a2, a7a2],
3144        [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8], [a7aa, a7ae],
3145        [a7b0, a7b4], [a7b6, a7b6], [a7b8, a7b8], [ff21, ff3a],
3146        [10400, 10427], [104b0, 104d3], [10c80, 10cb2], [118a0, 118bf],
3147        [16e40, 16e5f], [1d400, 1d419], [1d434, 1d44d], [1d468, 1d481],
3148        [1d49c, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
3149        [1d4a9, 1d4ac], [1d4ae, 1d4b5], [1d4d0, 1d4e9], [1d504, 1d505],
3150        [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c], [1d538, 1d539],
3151        [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550],
3152        [1d56c, 1d585], [1d5a0, 1d5b9], [1d5d4, 1d5ed], [1d608, 1d621],
3153        [1d63c, 1d655], [1d670, 1d689], [1d6a8, 1d6c0], [1d6e2, 1d6fa],
3154        [1d71c, 1d734], [1d756, 1d76e], [1d790, 1d7a8], [1d7ca, 1d7ca],
3155        [1e900, 1e921], [1f130, 1f149], [1f150, 1f169], [1f170, 1f189]**/
3156
3157
3158        namespace {
3159        const static UnicodeSet::run_t __codepoint_set_runs[] = {
3160        {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
3161        {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
3162        {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
3163        {Empty, 22}, {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 2},
3164        {Empty, 10}, {Mixed, 12}, {Empty, 1}, {Mixed, 3}, {Empty, 8},
3165        {Mixed, 5}, {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1},
3166        {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
3167        {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
3168        {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61},
3169        {Full, 1}, {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 684},
3170        {Full, 1}, {Empty, 813}, {Mixed, 31}, {Empty, 137}, {Full, 1},
3171        {Mixed, 1}, {Empty, 63}, {Mixed, 4}, {Empty, 30835}};
3172        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
3173        0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
3174        0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555,
3175        0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
3176        0x00000ffb, 0x551c8000, 0xe6905555, 0x0000ffff, 0x55555555,
3177        0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
3178        0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0xffff0000,
3179        0xe7ffffff, 0x55555555, 0x55555555, 0x55555555, 0x55555555,
3180        0x40155555, 0x55555555, 0x55555555, 0x55555555, 0x3f00ff00,
3181        0xff00ff00, 0xaa003f00, 0x0000ff00, 0x0f000000, 0x0f000f00,
3182        0x0f001f00, 0x3e273884, 0xc00f3d50, 0x00000020, 0x0000ffff,
3183        0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d,
3184        0x55555555, 0x55555555, 0x55555555, 0x00042805, 0x55555555,
3185        0x00001555, 0x05555555, 0x55545554, 0x55555555, 0x6a005555,
3186        0x55452855, 0x015f7d55, 0x07fffffe, 0x000000ff, 0xffff0000,
3187        0x000fffff, 0x0007ffff, 0x03ffffff, 0xfff00000, 0x00003fff,
3188        0xffffff00, 0xd0000003, 0x003fde64, 0xffff0000, 0x000003ff,
3189        0x1fdfe7b0, 0x7b000000, 0x0001fc5f, 0xfffff000, 0x0000003f,
3190        0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00, 0xf0000003,
3191        0x003fffff, 0xffff0000, 0x000003ff, 0xffffff00, 0x00000001,
3192        0x07fffffc, 0xf0000000, 0x001fffff, 0xffc00000, 0x00007fff,
3193        0xffff0000, 0x000001ff, 0x00000400, 0x00000003, 0xffff0000,
3194        0xffff03ff, 0xffff03ff, 0x000003ff};
3195        }
3196
3197        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 59, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 108, 0};
3198
3199        static BinaryPropertyObject property_object{Upper, std::move(codepoint_set)};
3200    }
3201    namespace XIDC_ns {
3202        /** Code Point Ranges for XIDC
3203        [0030, 0039], [0041, 005a], [005f, 005f], [0061, 007a],
3204        [00aa, 00aa], [00b5, 00b5], [00b7, 00b7], [00ba, 00ba],
3205        [00c0, 00d6], [00d8, 00f6], [00f8, 02c1], [02c6, 02d1],
3206        [02e0, 02e4], [02ec, 02ec], [02ee, 02ee], [0300, 0374],
3207        [0376, 0377], [037b, 037d], [037f, 037f], [0386, 038a],
3208        [038c, 038c], [038e, 03a1], [03a3, 03f5], [03f7, 0481],
3209        [0483, 0487], [048a, 052f], [0531, 0556], [0559, 0559],
3210        [0560, 0588], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
3211        [05c4, 05c5], [05c7, 05c7], [05d0, 05ea], [05ef, 05f2],
3212        [0610, 061a], [0620, 0669], [066e, 06d3], [06d5, 06dc],
3213        [06df, 06e8], [06ea, 06fc], [06ff, 06ff], [0710, 074a],
3214        [074d, 07b1], [07c0, 07f5], [07fa, 07fa], [07fd, 07fd],
3215        [0800, 082d], [0840, 085b], [0860, 086a], [08a0, 08b4],
3216        [08b6, 08bd], [08d3, 08e1], [08e3, 0963], [0966, 096f],
3217        [0971, 0983], [0985, 098c], [098f, 0990], [0993, 09a8],
3218        [09aa, 09b0], [09b2, 09b2], [09b6, 09b9], [09bc, 09c4],
3219        [09c7, 09c8], [09cb, 09ce], [09d7, 09d7], [09dc, 09dd],
3220        [09df, 09e3], [09e6, 09f1], [09fc, 09fc], [09fe, 09fe],
3221        [0a01, 0a03], [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28],
3222        [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39],
3223        [0a3c, 0a3c], [0a3e, 0a42], [0a47, 0a48], [0a4b, 0a4d],
3224        [0a51, 0a51], [0a59, 0a5c], [0a5e, 0a5e], [0a66, 0a75],
3225        [0a81, 0a83], [0a85, 0a8d], [0a8f, 0a91], [0a93, 0aa8],
3226        [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abc, 0ac5],
3227        [0ac7, 0ac9], [0acb, 0acd], [0ad0, 0ad0], [0ae0, 0ae3],
3228        [0ae6, 0aef], [0af9, 0aff], [0b01, 0b03], [0b05, 0b0c],
3229        [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33],
3230        [0b35, 0b39], [0b3c, 0b44], [0b47, 0b48], [0b4b, 0b4d],
3231        [0b56, 0b57], [0b5c, 0b5d], [0b5f, 0b63], [0b66, 0b6f],
3232        [0b71, 0b71], [0b82, 0b83], [0b85, 0b8a], [0b8e, 0b90],
3233        [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f],
3234        [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9], [0bbe, 0bc2],
3235        [0bc6, 0bc8], [0bca, 0bcd], [0bd0, 0bd0], [0bd7, 0bd7],
3236        [0be6, 0bef], [0c00, 0c0c], [0c0e, 0c10], [0c12, 0c28],
3237        [0c2a, 0c39], [0c3d, 0c44], [0c46, 0c48], [0c4a, 0c4d],
3238        [0c55, 0c56], [0c58, 0c5a], [0c60, 0c63], [0c66, 0c6f],
3239        [0c80, 0c83], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
3240        [0caa, 0cb3], [0cb5, 0cb9], [0cbc, 0cc4], [0cc6, 0cc8],
3241        [0cca, 0ccd], [0cd5, 0cd6], [0cde, 0cde], [0ce0, 0ce3],
3242        [0ce6, 0cef], [0cf1, 0cf2], [0d00, 0d03], [0d05, 0d0c],
3243        [0d0e, 0d10], [0d12, 0d44], [0d46, 0d48], [0d4a, 0d4e],
3244        [0d54, 0d57], [0d5f, 0d63], [0d66, 0d6f], [0d7a, 0d7f],
3245        [0d82, 0d83], [0d85, 0d96], [0d9a, 0db1], [0db3, 0dbb],
3246        [0dbd, 0dbd], [0dc0, 0dc6], [0dca, 0dca], [0dcf, 0dd4],
3247        [0dd6, 0dd6], [0dd8, 0ddf], [0de6, 0def], [0df2, 0df3],
3248        [0e01, 0e3a], [0e40, 0e4e], [0e50, 0e59], [0e81, 0e82],
3249        [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d],
3250        [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
3251        [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb9], [0ebb, 0ebd],
3252        [0ec0, 0ec4], [0ec6, 0ec6], [0ec8, 0ecd], [0ed0, 0ed9],
3253        [0edc, 0edf], [0f00, 0f00], [0f18, 0f19], [0f20, 0f29],
3254        [0f35, 0f35], [0f37, 0f37], [0f39, 0f39], [0f3e, 0f47],
3255        [0f49, 0f6c], [0f71, 0f84], [0f86, 0f97], [0f99, 0fbc],
3256        [0fc6, 0fc6], [1000, 1049], [1050, 109d], [10a0, 10c5],
3257        [10c7, 10c7], [10cd, 10cd], [10d0, 10fa], [10fc, 1248],
3258        [124a, 124d], [1250, 1256], [1258, 1258], [125a, 125d],
3259        [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5],
3260        [12b8, 12be], [12c0, 12c0], [12c2, 12c5], [12c8, 12d6],
3261        [12d8, 1310], [1312, 1315], [1318, 135a], [135d, 135f],
3262        [1369, 1371], [1380, 138f], [13a0, 13f5], [13f8, 13fd],
3263        [1401, 166c], [166f, 167f], [1681, 169a], [16a0, 16ea],
3264        [16ee, 16f8], [1700, 170c], [170e, 1714], [1720, 1734],
3265        [1740, 1753], [1760, 176c], [176e, 1770], [1772, 1773],
3266        [1780, 17d3], [17d7, 17d7], [17dc, 17dd], [17e0, 17e9],
3267        [180b, 180d], [1810, 1819], [1820, 1878], [1880, 18aa],
3268        [18b0, 18f5], [1900, 191e], [1920, 192b], [1930, 193b],
3269        [1946, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9],
3270        [19d0, 19da], [1a00, 1a1b], [1a20, 1a5e], [1a60, 1a7c],
3271        [1a7f, 1a89], [1a90, 1a99], [1aa7, 1aa7], [1ab0, 1abd],
3272        [1b00, 1b4b], [1b50, 1b59], [1b6b, 1b73], [1b80, 1bf3],
3273        [1c00, 1c37], [1c40, 1c49], [1c4d, 1c7d], [1c80, 1c88],
3274        [1c90, 1cba], [1cbd, 1cbf], [1cd0, 1cd2], [1cd4, 1cf9],
3275        [1d00, 1df9], [1dfb, 1f15], [1f18, 1f1d], [1f20, 1f45],
3276        [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
3277        [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc],
3278        [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3],
3279        [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc],
3280        [203f, 2040], [2054, 2054], [2071, 2071], [207f, 207f],
3281        [2090, 209c], [20d0, 20dc], [20e1, 20e1], [20e5, 20f0],
3282        [2102, 2102], [2107, 2107], [210a, 2113], [2115, 2115],
3283        [2118, 211d], [2124, 2124], [2126, 2126], [2128, 2128],
3284        [212a, 2139], [213c, 213f], [2145, 2149], [214e, 214e],
3285        [2160, 2188], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
3286        [2ceb, 2cf3], [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d],
3287        [2d30, 2d67], [2d6f, 2d6f], [2d7f, 2d96], [2da0, 2da6],
3288        [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6],
3289        [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde], [2de0, 2dff],
3290        [3005, 3007], [3021, 302f], [3031, 3035], [3038, 303c],
3291        [3041, 3096], [3099, 309a], [309d, 309f], [30a1, 30fa],
3292        [30fc, 30ff], [3105, 312f], [3131, 318e], [31a0, 31ba],
3293        [31f0, 31ff], [3400, 4db5], [4e00, 9fef], [a000, a48c],
3294        [a4d0, a4fd], [a500, a60c], [a610, a62b], [a640, a66f],
3295        [a674, a67d], [a67f, a6f1], [a717, a71f], [a722, a788],
3296        [a78b, a7b9], [a7f7, a827], [a840, a873], [a880, a8c5],
3297        [a8d0, a8d9], [a8e0, a8f7], [a8fb, a8fb], [a8fd, a92d],
3298        [a930, a953], [a960, a97c], [a980, a9c0], [a9cf, a9d9],
3299        [a9e0, a9fe], [aa00, aa36], [aa40, aa4d], [aa50, aa59],
3300        [aa60, aa76], [aa7a, aac2], [aadb, aadd], [aae0, aaef],
3301        [aaf2, aaf6], [ab01, ab06], [ab09, ab0e], [ab11, ab16],
3302        [ab20, ab26], [ab28, ab2e], [ab30, ab5a], [ab5c, ab65],
3303        [ab70, abea], [abec, abed], [abf0, abf9], [ac00, d7a3],
3304        [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d], [fa70, fad9],
3305        [fb00, fb06], [fb13, fb17], [fb1d, fb28], [fb2a, fb36],
3306        [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
3307        [fb46, fbb1], [fbd3, fc5d], [fc64, fd3d], [fd50, fd8f],
3308        [fd92, fdc7], [fdf0, fdf9], [fe00, fe0f], [fe20, fe2f],
3309        [fe33, fe34], [fe4d, fe4f], [fe71, fe71], [fe73, fe73],
3310        [fe77, fe77], [fe79, fe79], [fe7b, fe7b], [fe7d, fe7d],
3311        [fe7f, fefc], [ff10, ff19], [ff21, ff3a], [ff3f, ff3f],
3312        [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7], [ffca, ffcf],
3313        [ffd2, ffd7], [ffda, ffdc], [10000, 1000b], [1000d, 10026],
3314        [10028, 1003a], [1003c, 1003d], [1003f, 1004d], [10050, 1005d],
3315        [10080, 100fa], [10140, 10174], [101fd, 101fd], [10280, 1029c],
3316        [102a0, 102d0], [102e0, 102e0], [10300, 1031f], [1032d, 1034a],
3317        [10350, 1037a], [10380, 1039d], [103a0, 103c3], [103c8, 103cf],
3318        [103d1, 103d5], [10400, 1049d], [104a0, 104a9], [104b0, 104d3],
3319        [104d8, 104fb], [10500, 10527], [10530, 10563], [10600, 10736],
3320        [10740, 10755], [10760, 10767], [10800, 10805], [10808, 10808],
3321        [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 10855],
3322        [10860, 10876], [10880, 1089e], [108e0, 108f2], [108f4, 108f5],
3323        [10900, 10915], [10920, 10939], [10980, 109b7], [109be, 109bf],
3324        [10a00, 10a03], [10a05, 10a06], [10a0c, 10a13], [10a15, 10a17],
3325        [10a19, 10a35], [10a38, 10a3a], [10a3f, 10a3f], [10a60, 10a7c],
3326        [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae6], [10b00, 10b35],
3327        [10b40, 10b55], [10b60, 10b72], [10b80, 10b91], [10c00, 10c48],
3328        [10c80, 10cb2], [10cc0, 10cf2], [10d00, 10d27], [10d30, 10d39],
3329        [10f00, 10f1c], [10f27, 10f27], [10f30, 10f50], [11000, 11046],
3330        [11066, 1106f], [1107f, 110ba], [110d0, 110e8], [110f0, 110f9],
3331        [11100, 11134], [11136, 1113f], [11144, 11146], [11150, 11173],
3332        [11176, 11176], [11180, 111c4], [111c9, 111cc], [111d0, 111da],
3333        [111dc, 111dc], [11200, 11211], [11213, 11237], [1123e, 1123e],
3334        [11280, 11286], [11288, 11288], [1128a, 1128d], [1128f, 1129d],
3335        [1129f, 112a8], [112b0, 112ea], [112f0, 112f9], [11300, 11303],
3336        [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
3337        [11332, 11333], [11335, 11339], [1133b, 11344], [11347, 11348],
3338        [1134b, 1134d], [11350, 11350], [11357, 11357], [1135d, 11363],
3339        [11366, 1136c], [11370, 11374], [11400, 1144a], [11450, 11459],
3340        [1145e, 1145e], [11480, 114c5], [114c7, 114c7], [114d0, 114d9],
3341        [11580, 115b5], [115b8, 115c0], [115d8, 115dd], [11600, 11640],
3342        [11644, 11644], [11650, 11659], [11680, 116b7], [116c0, 116c9],
3343        [11700, 1171a], [1171d, 1172b], [11730, 11739], [11800, 1183a],
3344        [118a0, 118e9], [118ff, 118ff], [11a00, 11a3e], [11a47, 11a47],
3345        [11a50, 11a83], [11a86, 11a99], [11a9d, 11a9d], [11ac0, 11af8],
3346        [11c00, 11c08], [11c0a, 11c36], [11c38, 11c40], [11c50, 11c59],
3347        [11c72, 11c8f], [11c92, 11ca7], [11ca9, 11cb6], [11d00, 11d06],
3348        [11d08, 11d09], [11d0b, 11d36], [11d3a, 11d3a], [11d3c, 11d3d],
3349        [11d3f, 11d47], [11d50, 11d59], [11d60, 11d65], [11d67, 11d68],
3350        [11d6a, 11d8e], [11d90, 11d91], [11d93, 11d98], [11da0, 11da9],
3351        [11ee0, 11ef6], [12000, 12399], [12400, 1246e], [12480, 12543],
3352        [13000, 1342e], [14400, 14646], [16800, 16a38], [16a40, 16a5e],
3353        [16a60, 16a69], [16ad0, 16aed], [16af0, 16af4], [16b00, 16b36],
3354        [16b40, 16b43], [16b50, 16b59], [16b63, 16b77], [16b7d, 16b8f],
3355        [16e40, 16e7f], [16f00, 16f44], [16f50, 16f7e], [16f8f, 16f9f],
3356        [16fe0, 16fe1], [17000, 187f1], [18800, 18af2], [1b000, 1b11e],
3357        [1b170, 1b2fb], [1bc00, 1bc6a], [1bc70, 1bc7c], [1bc80, 1bc88],
3358        [1bc90, 1bc99], [1bc9d, 1bc9e], [1d165, 1d169], [1d16d, 1d172],
3359        [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
3360        [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2],
3361        [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb],
3362        [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514],
3363        [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544],
3364        [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d6c0],
3365        [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714], [1d716, 1d734],
3366        [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788], [1d78a, 1d7a8],
3367        [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1d7ce, 1d7ff], [1da00, 1da36],
3368        [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84], [1da9b, 1da9f],
3369        [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018], [1e01b, 1e021],
3370        [1e023, 1e024], [1e026, 1e02a], [1e800, 1e8c4], [1e8d0, 1e8d6],
3371        [1e900, 1e94a], [1e950, 1e959], [1ee00, 1ee03], [1ee05, 1ee1f],
3372        [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27], [1ee29, 1ee32],
3373        [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b], [1ee42, 1ee42],
3374        [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b], [1ee4d, 1ee4f],
3375        [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57], [1ee59, 1ee59],
3376        [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f], [1ee61, 1ee62],
3377        [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72], [1ee74, 1ee77],
3378        [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89], [1ee8b, 1ee9b],
3379        [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb], [20000, 2a6d6],
3380        [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1], [2ceb0, 2ebe0],
3381        [2f800, 2fa1d], [e0100, e01ef]**/
3382
3383
3384        namespace {
3385        const static UnicodeSet::run_t __codepoint_set_runs[] = {
3386        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
3387        {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
3388        {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 2},
3389        {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
3390        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
3391        {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 30}, {Full, 1},
3392        {Mixed, 9}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 7},
3393        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3394        {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
3395        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
3396        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
3397        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3398        {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
3399        {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
3400        {Mixed, 1}, {Full, 1}, {Mixed, 7}, {Full, 7}, {Mixed, 1}, {Full, 8},
3401        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
3402        {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 5}, {Full, 1},
3403        {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 2}, {Full, 4},
3404        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
3405        {Empty, 16}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
3406        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
3407        {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 655},
3408        {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
3409        {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3},
3410        {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
3411        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
3412        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
3413        {Mixed, 6}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
3414        {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
3415        {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 3},
3416        {Mixed, 2}, {Full, 5}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
3417        {Mixed, 6}, {Full, 3}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
3418        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
3419        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
3420        {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
3421        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
3422        {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3423        {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
3424        {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
3425        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
3426        {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2},
3427        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3428        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 3},
3429        {Empty, 5}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 1},
3430        {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
3431        {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 4},
3432        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
3433        {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2},
3434        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
3435        {Mixed, 2}, {Empty, 6}, {Full, 1}, {Mixed, 1}, {Empty, 3},
3436        {Full, 2}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
3437        {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
3438        {Mixed, 6}, {Empty, 2}, {Mixed, 6}, {Empty, 9}, {Mixed, 1},
3439        {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
3440        {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33},
3441        {Mixed, 1}, {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269},
3442        {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
3443        {Mixed, 4}, {Empty, 21}, {Full, 2}, {Empty, 4}, {Full, 2},
3444        {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1},
3445        {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1},
3446        {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72},
3447        {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
3448        {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1}, {Full, 1},
3449        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
3450        {Full, 1}, {Empty, 16}, {Full, 1}, {Mixed, 1}, {Full, 1},
3451        {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 62}, {Full, 6},
3452        {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37},
3453        {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
3454        {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180},
3455        {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96}, {Full, 16},
3456        {Mixed, 1}, {Empty, 22583}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
3457        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
3458        0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
3459        0xff7fffff, 0x0003ffc3, 0x0000501f, 0xb8dfffff, 0xffffd7c0,
3460        0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
3461        0xfffe01ff, 0xbfffffff, 0xffff00b6, 0x000787ff, 0x07ff0000,
3462        0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000, 0xffffe7ff,
3463        0x0003ffff, 0x243fffff, 0x00003fff, 0x0fffffff, 0x000007ff,
3464        0x3fdfffff, 0xfff80000, 0xfffffffb, 0xfffeffcf, 0xfff99fef,
3465        0xf3c5fdff, 0xb080799f, 0x5003ffcf, 0xfff987ee, 0xd36dfdff,
3466        0x5e023987, 0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf,
3467        0xfe00ffcf, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf,
3468        0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfff,
3469        0xe3fffdff, 0x07603ddf, 0x0000ffcf, 0xfffddfef, 0xf3effdff,
3470        0x40603ddf, 0x0006ffcf, 0xfffddfef, 0x80f07ddf, 0xfc00ffcf,
3471        0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0, 0xfffffffe,
3472        0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae, 0xf3ff3f5f,
3473        0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff, 0xfeffffdf,
3474        0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff, 0xffff20bf,
3475        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
3476        0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff, 0x3f3fffff,
3477        0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x001fdfff,
3478        0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff, 0x000003ff,
3479        0x03ff3800, 0x01ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff,
3480        0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff, 0x07ff03ff,
3481        0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x3fff0080,
3482        0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff, 0xffffe3ff,
3483        0x3fffffff, 0xffff01ff, 0xe7ffffff, 0xfff70000, 0x03ffffff,
3484        0xfbffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
3485        0x0fcf1fdc, 0x1fdc1fff, 0x80000000, 0x00100001, 0x80020000,
3486        0x1fff0000, 0x1fff0000, 0x0001ffe2, 0x3f2ffc84, 0xf3fffd50,
3487        0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000ff81f,
3488        0xffff20bf, 0x800080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
3489        0x000000e0, 0x1f3efffe, 0xfffffffe, 0xe67fffff, 0xfffffffe,
3490        0xf7ffffff, 0xffffffe0, 0xfffeffff, 0x00007fff, 0x07ffffff,
3491        0xffff0000, 0x003fffff, 0x0000ffff, 0x00001fff, 0xffff0000,
3492        0x3fffffff, 0xffff1fff, 0x00000fff, 0xbff0ffff, 0x0003ffff,
3493        0xff800000, 0xfffffffc, 0xfffff9ff, 0x03ffffff, 0xff800000,
3494        0x000000ff, 0x000fffff, 0x03ff003f, 0xe8ffffff, 0xffff3fff,
3495        0x000fffff, 0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff,
3496        0x03ff3fff, 0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e,
3497        0xffff7f7f, 0xf7ffffff, 0xffff003f, 0x03ff37ff, 0xffff000f,
3498        0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f,
3499        0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff,
3500        0xfffffff0, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
3501        0x03ff0000, 0x0000ffff, 0x0018ffff, 0x0000e000, 0xaa8a0000,
3502        0x1fffffff, 0x03ff0000, 0x87fffffe, 0x07fffffe, 0xffffffc0,
3503        0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
3504        0x07ffffff, 0x001fffff, 0x20000000, 0x1fffffff, 0x0001ffff,
3505        0x00000001, 0xffffe000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
3506        0x003eff0f, 0x3fffffff, 0xffff03ff, 0xff0fffff, 0x0fffffff,
3507        0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
3508        0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
3509        0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeeff06f,
3510        0x873fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000007f,
3511        0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
3512        0x0007ffff, 0x0007ffff, 0x03ff00ff, 0x1fffffff, 0xffff0080,
3513        0x0001ffff, 0x0000007f, 0x8000ffc0, 0x07ffffff, 0xffff0000,
3514        0x03ff01ff, 0xffdfffff, 0xffff0070, 0x004fffff, 0x17ff1e1f,
3515        0xfffbffff, 0x40ffffff, 0xbfffbd7f, 0xffff01ff, 0x03ff07ff,
3516        0xfff99fef, 0xfbedfdff, 0xe081399f, 0x001f1fcf, 0x43ff07ff,
3517        0x03ff00bf, 0xff3fffff, 0x3f000001, 0x03ff0011, 0x00ffffff,
3518        0x000003ff, 0xe7ffffff, 0x03ff0fff, 0x07ffffff, 0x800003ff,
3519        0x7fffffff, 0xffff0080, 0x23ffffcf, 0x01ffffff, 0xfffffdff,
3520        0xff7fffff, 0x03ff0001, 0xfffc0000, 0xfffcffff, 0x007ffeff,
3521        0xfffffb7f, 0xb47fffff, 0x03ff00ff, 0xfffffdbf, 0x01fb7fff,
3522        0x000003ff, 0x007fffff, 0x03ffffff, 0x00007fff, 0x0000000f,
3523        0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0x000003ff,
3524        0xffff0000, 0x001f3fff, 0x007fffff, 0x03ff000f, 0xe0fffff8,
3525        0x0000ffff, 0xffff001f, 0x7fffffff, 0xffff8000, 0x00000003,
3526        0x0003ffff, 0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff,
3527        0x1fff07ff, 0x63ff01ff, 0xf807e3e0, 0x00000fe7, 0x00003c00,
3528        0x0000001c, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
3529        0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd,
3530        0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff,
3531        0xfffffdff, 0xfffffdff, 0xffffcff7, 0xf87fffff, 0x00201fff,
3532        0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f001f,
3533        0x03ff07ff, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
3534        0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
3535        0xffff0003, 0x00000001, 0x3fffffff, 0x0000ffff};
3536        }
3537
3538        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 370, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 389, 0};
3539
3540        static BinaryPropertyObject property_object{XIDC, std::move(codepoint_set)};
3541    }
3542    namespace XIDS_ns {
3543        /** Code Point Ranges for XIDS
3544        [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5],
3545        [00ba, 00ba], [00c0, 00d6], [00d8, 00f6], [00f8, 02c1],
3546        [02c6, 02d1], [02e0, 02e4], [02ec, 02ec], [02ee, 02ee],
3547        [0370, 0374], [0376, 0377], [037b, 037d], [037f, 037f],
3548        [0386, 0386], [0388, 038a], [038c, 038c], [038e, 03a1],
3549        [03a3, 03f5], [03f7, 0481], [048a, 052f], [0531, 0556],
3550        [0559, 0559], [0560, 0588], [05d0, 05ea], [05ef, 05f2],
3551        [0620, 064a], [066e, 066f], [0671, 06d3], [06d5, 06d5],
3552        [06e5, 06e6], [06ee, 06ef], [06fa, 06fc], [06ff, 06ff],
3553        [0710, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1],
3554        [07ca, 07ea], [07f4, 07f5], [07fa, 07fa], [0800, 0815],
3555        [081a, 081a], [0824, 0824], [0828, 0828], [0840, 0858],
3556        [0860, 086a], [08a0, 08b4], [08b6, 08bd], [0904, 0939],
3557        [093d, 093d], [0950, 0950], [0958, 0961], [0971, 0980],
3558        [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0],
3559        [09b2, 09b2], [09b6, 09b9], [09bd, 09bd], [09ce, 09ce],
3560        [09dc, 09dd], [09df, 09e1], [09f0, 09f1], [09fc, 09fc],
3561        [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28], [0a2a, 0a30],
3562        [0a32, 0a33], [0a35, 0a36], [0a38, 0a39], [0a59, 0a5c],
3563        [0a5e, 0a5e], [0a72, 0a74], [0a85, 0a8d], [0a8f, 0a91],
3564        [0a93, 0aa8], [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9],
3565        [0abd, 0abd], [0ad0, 0ad0], [0ae0, 0ae1], [0af9, 0af9],
3566        [0b05, 0b0c], [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30],
3567        [0b32, 0b33], [0b35, 0b39], [0b3d, 0b3d], [0b5c, 0b5d],
3568        [0b5f, 0b61], [0b71, 0b71], [0b83, 0b83], [0b85, 0b8a],
3569        [0b8e, 0b90], [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c],
3570        [0b9e, 0b9f], [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9],
3571        [0bd0, 0bd0], [0c05, 0c0c], [0c0e, 0c10], [0c12, 0c28],
3572        [0c2a, 0c39], [0c3d, 0c3d], [0c58, 0c5a], [0c60, 0c61],
3573        [0c80, 0c80], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
3574        [0caa, 0cb3], [0cb5, 0cb9], [0cbd, 0cbd], [0cde, 0cde],
3575        [0ce0, 0ce1], [0cf1, 0cf2], [0d05, 0d0c], [0d0e, 0d10],
3576        [0d12, 0d3a], [0d3d, 0d3d], [0d4e, 0d4e], [0d54, 0d56],
3577        [0d5f, 0d61], [0d7a, 0d7f], [0d85, 0d96], [0d9a, 0db1],
3578        [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0e01, 0e30],
3579        [0e32, 0e32], [0e40, 0e46], [0e81, 0e82], [0e84, 0e84],
3580        [0e87, 0e88], [0e8a, 0e8a], [0e8d, 0e8d], [0e94, 0e97],
3581        [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5], [0ea7, 0ea7],
3582        [0eaa, 0eab], [0ead, 0eb0], [0eb2, 0eb2], [0ebd, 0ebd],
3583        [0ec0, 0ec4], [0ec6, 0ec6], [0edc, 0edf], [0f00, 0f00],
3584        [0f40, 0f47], [0f49, 0f6c], [0f88, 0f8c], [1000, 102a],
3585        [103f, 103f], [1050, 1055], [105a, 105d], [1061, 1061],
3586        [1065, 1066], [106e, 1070], [1075, 1081], [108e, 108e],
3587        [10a0, 10c5], [10c7, 10c7], [10cd, 10cd], [10d0, 10fa],
3588        [10fc, 1248], [124a, 124d], [1250, 1256], [1258, 1258],
3589        [125a, 125d], [1260, 1288], [128a, 128d], [1290, 12b0],
3590        [12b2, 12b5], [12b8, 12be], [12c0, 12c0], [12c2, 12c5],
3591        [12c8, 12d6], [12d8, 1310], [1312, 1315], [1318, 135a],
3592        [1380, 138f], [13a0, 13f5], [13f8, 13fd], [1401, 166c],
3593        [166f, 167f], [1681, 169a], [16a0, 16ea], [16ee, 16f8],
3594        [1700, 170c], [170e, 1711], [1720, 1731], [1740, 1751],
3595        [1760, 176c], [176e, 1770], [1780, 17b3], [17d7, 17d7],
3596        [17dc, 17dc], [1820, 1878], [1880, 18a8], [18aa, 18aa],
3597        [18b0, 18f5], [1900, 191e], [1950, 196d], [1970, 1974],
3598        [1980, 19ab], [19b0, 19c9], [1a00, 1a16], [1a20, 1a54],
3599        [1aa7, 1aa7], [1b05, 1b33], [1b45, 1b4b], [1b83, 1ba0],
3600        [1bae, 1baf], [1bba, 1be5], [1c00, 1c23], [1c4d, 1c4f],
3601        [1c5a, 1c7d], [1c80, 1c88], [1c90, 1cba], [1cbd, 1cbf],
3602        [1ce9, 1cec], [1cee, 1cf1], [1cf5, 1cf6], [1d00, 1dbf],
3603        [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
3604        [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
3605        [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe],
3606        [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb],
3607        [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2071, 2071],
3608        [207f, 207f], [2090, 209c], [2102, 2102], [2107, 2107],
3609        [210a, 2113], [2115, 2115], [2118, 211d], [2124, 2124],
3610        [2126, 2126], [2128, 2128], [212a, 2139], [213c, 213f],
3611        [2145, 2149], [214e, 214e], [2160, 2188], [2c00, 2c2e],
3612        [2c30, 2c5e], [2c60, 2ce4], [2ceb, 2cee], [2cf2, 2cf3],
3613        [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d], [2d30, 2d67],
3614        [2d6f, 2d6f], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae],
3615        [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce],
3616        [2dd0, 2dd6], [2dd8, 2dde], [3005, 3007], [3021, 3029],
3617        [3031, 3035], [3038, 303c], [3041, 3096], [309d, 309f],
3618        [30a1, 30fa], [30fc, 30ff], [3105, 312f], [3131, 318e],
3619        [31a0, 31ba], [31f0, 31ff], [3400, 4db5], [4e00, 9fef],
3620        [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
3621        [a62a, a62b], [a640, a66e], [a67f, a69d], [a6a0, a6ef],
3622        [a717, a71f], [a722, a788], [a78b, a7b9], [a7f7, a801],
3623        [a803, a805], [a807, a80a], [a80c, a822], [a840, a873],
3624        [a882, a8b3], [a8f2, a8f7], [a8fb, a8fb], [a8fd, a8fe],
3625        [a90a, a925], [a930, a946], [a960, a97c], [a984, a9b2],
3626        [a9cf, a9cf], [a9e0, a9e4], [a9e6, a9ef], [a9fa, a9fe],
3627        [aa00, aa28], [aa40, aa42], [aa44, aa4b], [aa60, aa76],
3628        [aa7a, aa7a], [aa7e, aaaf], [aab1, aab1], [aab5, aab6],
3629        [aab9, aabd], [aac0, aac0], [aac2, aac2], [aadb, aadd],
3630        [aae0, aaea], [aaf2, aaf4], [ab01, ab06], [ab09, ab0e],
3631        [ab11, ab16], [ab20, ab26], [ab28, ab2e], [ab30, ab5a],
3632        [ab5c, ab65], [ab70, abe2], [ac00, d7a3], [d7b0, d7c6],
3633        [d7cb, d7fb], [f900, fa6d], [fa70, fad9], [fb00, fb06],
3634        [fb13, fb17], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb36],
3635        [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
3636        [fb46, fbb1], [fbd3, fc5d], [fc64, fd3d], [fd50, fd8f],
3637        [fd92, fdc7], [fdf0, fdf9], [fe71, fe71], [fe73, fe73],
3638        [fe77, fe77], [fe79, fe79], [fe7b, fe7b], [fe7d, fe7d],
3639        [fe7f, fefc], [ff21, ff3a], [ff41, ff5a], [ff66, ff9d],
3640        [ffa0, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7],
3641        [ffda, ffdc], [10000, 1000b], [1000d, 10026], [10028, 1003a],
3642        [1003c, 1003d], [1003f, 1004d], [10050, 1005d], [10080, 100fa],
3643        [10140, 10174], [10280, 1029c], [102a0, 102d0], [10300, 1031f],
3644        [1032d, 1034a], [10350, 10375], [10380, 1039d], [103a0, 103c3],
3645        [103c8, 103cf], [103d1, 103d5], [10400, 1049d], [104b0, 104d3],
3646        [104d8, 104fb], [10500, 10527], [10530, 10563], [10600, 10736],
3647        [10740, 10755], [10760, 10767], [10800, 10805], [10808, 10808],
3648        [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 10855],
3649        [10860, 10876], [10880, 1089e], [108e0, 108f2], [108f4, 108f5],
3650        [10900, 10915], [10920, 10939], [10980, 109b7], [109be, 109bf],
3651        [10a00, 10a00], [10a10, 10a13], [10a15, 10a17], [10a19, 10a35],
3652        [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae4],
3653        [10b00, 10b35], [10b40, 10b55], [10b60, 10b72], [10b80, 10b91],
3654        [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2], [10d00, 10d23],
3655        [10f00, 10f1c], [10f27, 10f27], [10f30, 10f45], [11003, 11037],
3656        [11083, 110af], [110d0, 110e8], [11103, 11126], [11144, 11144],
3657        [11150, 11172], [11176, 11176], [11183, 111b2], [111c1, 111c4],
3658        [111da, 111da], [111dc, 111dc], [11200, 11211], [11213, 1122b],
3659        [11280, 11286], [11288, 11288], [1128a, 1128d], [1128f, 1129d],
3660        [1129f, 112a8], [112b0, 112de], [11305, 1130c], [1130f, 11310],
3661        [11313, 11328], [1132a, 11330], [11332, 11333], [11335, 11339],
3662        [1133d, 1133d], [11350, 11350], [1135d, 11361], [11400, 11434],
3663        [11447, 1144a], [11480, 114af], [114c4, 114c5], [114c7, 114c7],
3664        [11580, 115ae], [115d8, 115db], [11600, 1162f], [11644, 11644],
3665        [11680, 116aa], [11700, 1171a], [11800, 1182b], [118a0, 118df],
3666        [118ff, 118ff], [11a00, 11a00], [11a0b, 11a32], [11a3a, 11a3a],
3667        [11a50, 11a50], [11a5c, 11a83], [11a86, 11a89], [11a9d, 11a9d],
3668        [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c2e], [11c40, 11c40],
3669        [11c72, 11c8f], [11d00, 11d06], [11d08, 11d09], [11d0b, 11d30],
3670        [11d46, 11d46], [11d60, 11d65], [11d67, 11d68], [11d6a, 11d89],
3671        [11d98, 11d98], [11ee0, 11ef2], [12000, 12399], [12400, 1246e],
3672        [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
3673        [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b2f], [16b40, 16b43],
3674        [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e7f], [16f00, 16f44],
3675        [16f50, 16f50], [16f93, 16f9f], [16fe0, 16fe1], [17000, 187f1],
3676        [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a],
3677        [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1d400, 1d454],
3678        [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
3679        [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3],
3680        [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
3681        [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
3682        [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d6c0], [1d6c2, 1d6da],
3683        [1d6dc, 1d6fa], [1d6fc, 1d714], [1d716, 1d734], [1d736, 1d74e],
3684        [1d750, 1d76e], [1d770, 1d788], [1d78a, 1d7a8], [1d7aa, 1d7c2],
3685        [1d7c4, 1d7cb], [1e800, 1e8c4], [1e900, 1e943], [1ee00, 1ee03],
3686        [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
3687        [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
3688        [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
3689        [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
3690        [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
3691        [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
3692        [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
3693        [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
3694        [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1],
3695        [2ceb0, 2ebe0], [2f800, 2fa1d]**/
3696
3697
3698        namespace {
3699        const static UnicodeSet::run_t __codepoint_set_runs[] = {
3700        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
3701        {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
3702        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
3703        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
3704        {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1},
3705        {Mixed, 1}, {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15},
3706        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
3707        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1},
3708        {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
3709        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3710        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
3711        {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
3712        {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
3713        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
3714        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
3715        {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
3716        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 1},
3717        {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
3718        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
3719        {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
3720        {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3721        {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
3722        {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
3723        {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
3724        {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1},
3725        {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
3726        {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
3727        {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
3728        {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3},
3729        {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
3730        {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
3731        {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 5}, {Mixed, 2},
3732        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3},
3733        {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
3734        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
3735        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
3736        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
3737        {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
3738        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
3739        {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
3740        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
3741        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
3742        {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
3743        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
3744        {Empty, 14}, {Mixed, 3}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
3745        {Mixed, 11}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3},
3746        {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2},
3747        {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1},
3748        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
3749        {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 7},
3750        {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1},
3751        {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1},
3752        {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3},
3753        {Mixed, 5}, {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Full, 28},
3754        {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
3755        {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
3756        {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
3757        {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 21},
3758        {Full, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
3759        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1},
3760        {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1},
3761        {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72},
3762        {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1},
3763        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
3764        {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 1},
3765        {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 138},
3766        {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
3767        {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
3768        {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
3769        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
3770        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
3771        0x0003ffc3, 0x0000501f, 0xb8df0000, 0xffffd740, 0xfffffffb,
3772        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0x000001ff,
3773        0xffff0000, 0x000787ff, 0x000007ff, 0xfffec000, 0x002fffff,
3774        0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000, 0x0002003f,
3775        0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110, 0x01ffffff,
3776        0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000,
3777        0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003,
3778        0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
3779        0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0, 0x23edfdff,
3780        0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
3781        0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
3782        0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
3783        0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
3784        0xfffffffe, 0x0005ffff, 0x0000007f, 0xfef02596, 0x2005ecae,
3785        0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
3786        0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
3787        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
3788        0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
3789        0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
3790        0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x01ffffff,
3791        0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
3792        0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff, 0x00000080,
3793        0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
3794        0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0xffff01ff,
3795        0xe7ffffff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
3796        0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
3797        0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff, 0xffff7fff,
3798        0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
3799        0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3e03fe, 0xfffffffe,
3800        0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffeffff,
3801        0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff,
3802        0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00,
3803        0x80007fff, 0x3fffffff, 0x0000ffff, 0xff800000, 0xfffffffc,
3804        0xfffff9ff, 0x03ffffff, 0xff800000, 0xfffff7bb, 0x00000007,
3805        0x000fffff, 0xfffffffc, 0x000fffff, 0x68fc0000, 0xfffffc00,
3806        0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff,
3807        0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
3808        0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f,
3809        0xf7ffffff, 0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f,
3810        0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f, 0x5f7ffdff,
3811        0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xfffffff0,
3812        0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x03ff0000,
3813        0xaa8a0000, 0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0,
3814        0x3fffffff, 0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f,
3815        0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff,
3816        0xffffe000, 0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f,
3817        0x3fffffff, 0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff,
3818        0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f,