Ignore:
Timestamp:
Jul 2, 2015, 4:51:32 PM (4 years ago)
Author:
nmedfort
Message:

Fix for SCX and updated property objects.

Location:
icGREP/icgrep-devel/icgrep/UCD
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r4621 r4631  
    1414
    1515namespace UCD {
    16   namespace BLK_ns {
     16    namespace BLK_ns {
     17    /** Code Point Ranges for Aegean_Numbers
     18    [65792, 65855]**/
    1719    const UnicodeSet aegean_numbers_Set
    18       {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
    19        {}};
     20        {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
     21         {}};
     22    /** Code Point Ranges for Alchemical
     23    [128768, 128895]**/
    2024    const UnicodeSet alchemical_Set
    21       {{{Empty, 4024}, {Full, 4}, {Empty, 30788}},
    22        {}};
     25        {{{Empty, 4024}, {Full, 4}, {Empty, 30788}},
     26         {}};
     27    /** Code Point Ranges for Alphabetic_PF
     28    [64256, 64335]**/
    2329    const UnicodeSet alphabetic_pf_Set
    24       {{{Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}},
    25        {0x0000ffff}};
     30        {{{Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}},
     31         {0x0000ffff}};
     32    /** Code Point Ranges for Ancient_Greek_Music
     33    [119296, 119375]**/
    2634    const UnicodeSet ancient_greek_music_Set
    27       {{{Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}},
    28        {0x0000ffff}};
     35        {{{Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}},
     36         {0x0000ffff}};
     37    /** Code Point Ranges for Ancient_Greek_Numbers
     38    [65856, 65935]**/
    2939    const UnicodeSet ancient_greek_numbers_Set
    30       {{{Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}},
    31        {0x0000ffff}};
     40        {{{Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}},
     41         {0x0000ffff}};
     42    /** Code Point Ranges for Ancient_Symbols
     43    [65936, 65999]**/
    3244    const UnicodeSet ancient_symbols_Set
    33       {{{Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}},
    34        {0xffff0000, 0x0000ffff}};
     45        {{{Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}},
     46         {0xffff0000, 0x0000ffff}};
     47    /** Code Point Ranges for Arabic
     48    [1536, 1791]**/
    3549    const UnicodeSet arabic_Set
    36       {{{Empty, 48}, {Full, 8}, {Empty, 34760}},
    37        {}};
     50        {{{Empty, 48}, {Full, 8}, {Empty, 34760}},
     51         {}};
     52    /** Code Point Ranges for Arabic_Ext_A
     53    [2208, 2303]**/
    3854    const UnicodeSet arabic_ext_a_Set
    39       {{{Empty, 69}, {Full, 3}, {Empty, 34744}},
    40        {}};
     55        {{{Empty, 69}, {Full, 3}, {Empty, 34744}},
     56         {}};
     57    /** Code Point Ranges for Arabic_Math
     58    [126464, 126719]**/
    4159    const UnicodeSet arabic_math_Set
    42       {{{Empty, 3952}, {Full, 8}, {Empty, 30856}},
    43        {}};
     60        {{{Empty, 3952}, {Full, 8}, {Empty, 30856}},
     61         {}};
     62    /** Code Point Ranges for Arabic_PF_A
     63    [64336, 65023]**/
    4464    const UnicodeSet arabic_pf_a_Set
    45       {{{Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}},
    46        {0xffff0000}};
     65        {{{Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}},
     66         {0xffff0000}};
     67    /** Code Point Ranges for Arabic_PF_B
     68    [65136, 65279]**/
    4769    const UnicodeSet arabic_pf_b_Set
    48       {{{Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}},
    49        {0xffff0000}};
     70        {{{Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}},
     71         {0xffff0000}};
     72    /** Code Point Ranges for Arabic_Sup
     73    [1872, 1919]**/
    5074    const UnicodeSet arabic_sup_Set
    51       {{{Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}},
    52        {0xffff0000}};
     75        {{{Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}},
     76         {0xffff0000}};
     77    /** Code Point Ranges for Armenian
     78    [1328, 1423]**/
    5379    const UnicodeSet armenian_Set
    54       {{{Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}},
    55        {0xffff0000, 0x0000ffff}};
     80        {{{Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}},
     81         {0xffff0000, 0x0000ffff}};
     82    /** Code Point Ranges for Arrows
     83    [8592, 8703]**/
    5684    const UnicodeSet arrows_Set
    57       {{{Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}},
    58        {0xffff0000}};
     85        {{{Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}},
     86         {0xffff0000}};
     87    /** Code Point Ranges for ASCII
     88    [0, 127]**/
    5989    const UnicodeSet ascii_Set
    60       {{{Full, 4}, {Empty, 34812}},
    61        {}};
     90        {{{Full, 4}, {Empty, 34812}},
     91         {}};
     92    /** Code Point Ranges for Avestan
     93    [68352, 68415]**/
    6294    const UnicodeSet avestan_Set
    63       {{{Empty, 2136}, {Full, 2}, {Empty, 32678}},
    64        {}};
     95        {{{Empty, 2136}, {Full, 2}, {Empty, 32678}},
     96         {}};
     97    /** Code Point Ranges for Balinese
     98    [6912, 7039]**/
    6599    const UnicodeSet balinese_Set
    66       {{{Empty, 216}, {Full, 4}, {Empty, 34596}},
    67        {}};
     100        {{{Empty, 216}, {Full, 4}, {Empty, 34596}},
     101         {}};
     102    /** Code Point Ranges for Bamum
     103    [42656, 42751]**/
    68104    const UnicodeSet bamum_Set
    69       {{{Empty, 1333}, {Full, 3}, {Empty, 33480}},
    70        {}};
     105        {{{Empty, 1333}, {Full, 3}, {Empty, 33480}},
     106         {}};
     107    /** Code Point Ranges for Bamum_Sup
     108    [92160, 92735]**/
    71109    const UnicodeSet bamum_sup_Set
    72       {{{Empty, 2880}, {Full, 18}, {Empty, 31918}},
    73        {}};
     110        {{{Empty, 2880}, {Full, 18}, {Empty, 31918}},
     111         {}};
     112    /** Code Point Ranges for Bassa_Vah
     113    [92880, 92927]**/
    74114    const UnicodeSet bassa_vah_Set
    75       {{{Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}},
    76        {0xffff0000}};
     115        {{{Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}},
     116         {0xffff0000}};
     117    /** Code Point Ranges for Batak
     118    [7104, 7167]**/
    77119    const UnicodeSet batak_Set
    78       {{{Empty, 222}, {Full, 2}, {Empty, 34592}},
    79        {}};
     120        {{{Empty, 222}, {Full, 2}, {Empty, 34592}},
     121         {}};
     122    /** Code Point Ranges for Bengali
     123    [2432, 2559]**/
    80124    const UnicodeSet bengali_Set
    81       {{{Empty, 76}, {Full, 4}, {Empty, 34736}},
    82        {}};
     125        {{{Empty, 76}, {Full, 4}, {Empty, 34736}},
     126         {}};
     127    /** Code Point Ranges for Block_Elements
     128    [9600, 9631]**/
    83129    const UnicodeSet block_elements_Set
    84       {{{Empty, 300}, {Full, 1}, {Empty, 34515}},
    85        {}};
     130        {{{Empty, 300}, {Full, 1}, {Empty, 34515}},
     131         {}};
     132    /** Code Point Ranges for Bopomofo
     133    [12544, 12591]**/
    86134    const UnicodeSet bopomofo_Set
    87       {{{Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}},
    88        {0x0000ffff}};
     135        {{{Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}},
     136         {0x0000ffff}};
     137    /** Code Point Ranges for Bopomofo_Ext
     138    [12704, 12735]**/
    89139    const UnicodeSet bopomofo_ext_Set
    90       {{{Empty, 397}, {Full, 1}, {Empty, 34418}},
    91        {}};
     140        {{{Empty, 397}, {Full, 1}, {Empty, 34418}},
     141         {}};
     142    /** Code Point Ranges for Box_Drawing
     143    [9472, 9599]**/
    92144    const UnicodeSet box_drawing_Set
    93       {{{Empty, 296}, {Full, 4}, {Empty, 34516}},
    94        {}};
     145        {{{Empty, 296}, {Full, 4}, {Empty, 34516}},
     146         {}};
     147    /** Code Point Ranges for Brahmi
     148    [69632, 69759]**/
    95149    const UnicodeSet brahmi_Set
    96       {{{Empty, 2176}, {Full, 4}, {Empty, 32636}},
    97        {}};
     150        {{{Empty, 2176}, {Full, 4}, {Empty, 32636}},
     151         {}};
     152    /** Code Point Ranges for Braille
     153    [10240, 10495]**/
    98154    const UnicodeSet braille_Set
    99       {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    100        {}};
     155        {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
     156         {}};
     157    /** Code Point Ranges for Buginese
     158    [6656, 6687]**/
    101159    const UnicodeSet buginese_Set
    102       {{{Empty, 208}, {Full, 1}, {Empty, 34607}},
    103        {}};
     160        {{{Empty, 208}, {Full, 1}, {Empty, 34607}},
     161         {}};
     162    /** Code Point Ranges for Buhid
     163    [5952, 5983]**/
    104164    const UnicodeSet buhid_Set
    105       {{{Empty, 186}, {Full, 1}, {Empty, 34629}},
    106        {}};
     165        {{{Empty, 186}, {Full, 1}, {Empty, 34629}},
     166         {}};
     167    /** Code Point Ranges for Byzantine_Music
     168    [118784, 119039]**/
    107169    const UnicodeSet byzantine_music_Set
    108       {{{Empty, 3712}, {Full, 8}, {Empty, 31096}},
    109        {}};
     170        {{{Empty, 3712}, {Full, 8}, {Empty, 31096}},
     171         {}};
     172    /** Code Point Ranges for Carian
     173    [66208, 66271]**/
    110174    const UnicodeSet carian_Set
    111       {{{Empty, 2069}, {Full, 2}, {Empty, 32745}},
    112        {}};
     175        {{{Empty, 2069}, {Full, 2}, {Empty, 32745}},
     176         {}};
     177    /** Code Point Ranges for Caucasian_Albanian
     178    [66864, 66927]**/
    113179    const UnicodeSet caucasian_albanian_Set
    114       {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    115        {0xffff0000, 0x0000ffff}};
     180        {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
     181         {0xffff0000, 0x0000ffff}};
     182    /** Code Point Ranges for Chakma
     183    [69888, 69967]**/
    116184    const UnicodeSet chakma_Set
    117       {{{Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}},
    118        {0x0000ffff}};
     185        {{{Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}},
     186         {0x0000ffff}};
     187    /** Code Point Ranges for Cham
     188    [43520, 43615]**/
    119189    const UnicodeSet cham_Set
    120       {{{Empty, 1360}, {Full, 3}, {Empty, 33453}},
    121        {}};
     190        {{{Empty, 1360}, {Full, 3}, {Empty, 33453}},
     191         {}};
     192    /** Code Point Ranges for Cherokee
     193    [5024, 5119]**/
    122194    const UnicodeSet cherokee_Set
    123       {{{Empty, 157}, {Full, 3}, {Empty, 34656}},
    124        {}};
     195        {{{Empty, 157}, {Full, 3}, {Empty, 34656}},
     196         {}};
     197    /** Code Point Ranges for CJK
     198    [19968, 40959]**/
    125199    const UnicodeSet cjk_Set
    126       {{{Empty, 624}, {Full, 656}, {Empty, 33536}},
    127        {}};
     200        {{{Empty, 624}, {Full, 656}, {Empty, 33536}},
     201         {}};
     202    /** Code Point Ranges for CJK_Compat
     203    [13056, 13311]**/
    128204    const UnicodeSet cjk_compat_Set
    129       {{{Empty, 408}, {Full, 8}, {Empty, 34400}},
    130        {}};
     205        {{{Empty, 408}, {Full, 8}, {Empty, 34400}},
     206         {}};
     207    /** Code Point Ranges for CJK_Compat_Forms
     208    [65072, 65103]**/
    131209    const UnicodeSet cjk_compat_forms_Set
    132       {{{Empty, 2033}, {Mixed, 2}, {Empty, 32781}},
    133        {0xffff0000, 0x0000ffff}};
     210        {{{Empty, 2033}, {Mixed, 2}, {Empty, 32781}},
     211         {0xffff0000, 0x0000ffff}};
     212    /** Code Point Ranges for CJK_Compat_Ideographs
     213    [63744, 64255]**/
    134214    const UnicodeSet cjk_compat_ideographs_Set
    135       {{{Empty, 1992}, {Full, 16}, {Empty, 32808}},
    136        {}};
     215        {{{Empty, 1992}, {Full, 16}, {Empty, 32808}},
     216         {}};
     217    /** Code Point Ranges for CJK_Compat_Ideographs_Sup
     218    [194560, 195103]**/
    137219    const UnicodeSet cjk_compat_ideographs_sup_Set
    138       {{{Empty, 6080}, {Full, 17}, {Empty, 28719}},
    139        {}};
     220        {{{Empty, 6080}, {Full, 17}, {Empty, 28719}},
     221         {}};
     222    /** Code Point Ranges for CJK_Ext_A
     223    [13312, 19903]**/
    140224    const UnicodeSet cjk_ext_a_Set
    141       {{{Empty, 416}, {Full, 206}, {Empty, 34194}},
    142        {}};
     225        {{{Empty, 416}, {Full, 206}, {Empty, 34194}},
     226         {}};
     227    /** Code Point Ranges for CJK_Ext_B
     228    [131072, 173791]**/
    143229    const UnicodeSet cjk_ext_b_Set
    144       {{{Empty, 4096}, {Full, 1335}, {Empty, 29385}},
    145        {}};
     230        {{{Empty, 4096}, {Full, 1335}, {Empty, 29385}},
     231         {}};
     232    /** Code Point Ranges for CJK_Ext_C
     233    [173824, 177983]**/
    146234    const UnicodeSet cjk_ext_c_Set
    147       {{{Empty, 5432}, {Full, 130}, {Empty, 29254}},
    148        {}};
     235        {{{Empty, 5432}, {Full, 130}, {Empty, 29254}},
     236         {}};
     237    /** Code Point Ranges for CJK_Ext_D
     238    [177984, 178207]**/
    149239    const UnicodeSet cjk_ext_d_Set
    150       {{{Empty, 5562}, {Full, 7}, {Empty, 29247}},
    151        {}};
     240        {{{Empty, 5562}, {Full, 7}, {Empty, 29247}},
     241         {}};
     242    /** Code Point Ranges for CJK_Radicals_Sup
     243    [11904, 12031]**/
    152244    const UnicodeSet cjk_radicals_sup_Set
    153       {{{Empty, 372}, {Full, 4}, {Empty, 34440}},
    154        {}};
     245        {{{Empty, 372}, {Full, 4}, {Empty, 34440}},
     246         {}};
     247    /** Code Point Ranges for CJK_Strokes
     248    [12736, 12783]**/
    155249    const UnicodeSet cjk_strokes_Set
    156       {{{Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}},
    157        {0x0000ffff}};
     250        {{{Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}},
     251         {0x0000ffff}};
     252    /** Code Point Ranges for CJK_Symbols
     253    [12288, 12351]**/
    158254    const UnicodeSet cjk_symbols_Set
    159       {{{Empty, 384}, {Full, 2}, {Empty, 34430}},
    160        {}};
     255        {{{Empty, 384}, {Full, 2}, {Empty, 34430}},
     256         {}};
     257    /** Code Point Ranges for Compat_Jamo
     258    [12592, 12687]**/
    161259    const UnicodeSet compat_jamo_Set
    162       {{{Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}},
    163        {0xffff0000, 0x0000ffff}};
     260        {{{Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}},
     261         {0xffff0000, 0x0000ffff}};
     262    /** Code Point Ranges for Control_Pictures
     263    [9216, 9279]**/
    164264    const UnicodeSet control_pictures_Set
    165       {{{Empty, 288}, {Full, 2}, {Empty, 34526}},
    166        {}};
     265        {{{Empty, 288}, {Full, 2}, {Empty, 34526}},
     266         {}};
     267    /** Code Point Ranges for Coptic
     268    [11392, 11519]**/
    167269    const UnicodeSet coptic_Set
    168       {{{Empty, 356}, {Full, 4}, {Empty, 34456}},
    169        {}};
     270        {{{Empty, 356}, {Full, 4}, {Empty, 34456}},
     271         {}};
     272    /** Code Point Ranges for Coptic_Epact_Numbers
     273    [66272, 66303]**/
    170274    const UnicodeSet coptic_epact_numbers_Set
    171       {{{Empty, 2071}, {Full, 1}, {Empty, 32744}},
    172        {}};
     275        {{{Empty, 2071}, {Full, 1}, {Empty, 32744}},
     276         {}};
     277    /** Code Point Ranges for Counting_Rod
     278    [119648, 119679]**/
    173279    const UnicodeSet counting_rod_Set
    174       {{{Empty, 3739}, {Full, 1}, {Empty, 31076}},
    175        {}};
     280        {{{Empty, 3739}, {Full, 1}, {Empty, 31076}},
     281         {}};
     282    /** Code Point Ranges for Cuneiform
     283    [73728, 74751]**/
    176284    const UnicodeSet cuneiform_Set
    177       {{{Empty, 2304}, {Full, 32}, {Empty, 32480}},
    178        {}};
     285        {{{Empty, 2304}, {Full, 32}, {Empty, 32480}},
     286         {}};
     287    /** Code Point Ranges for Cuneiform_Numbers
     288    [74752, 74879]**/
    179289    const UnicodeSet cuneiform_numbers_Set
    180       {{{Empty, 2336}, {Full, 4}, {Empty, 32476}},
    181        {}};
     290        {{{Empty, 2336}, {Full, 4}, {Empty, 32476}},
     291         {}};
     292    /** Code Point Ranges for Currency_Symbols
     293    [8352, 8399]**/
    182294    const UnicodeSet currency_symbols_Set
    183       {{{Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}},
    184        {0x0000ffff}};
     295        {{{Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}},
     296         {0x0000ffff}};
     297    /** Code Point Ranges for Cypriot_Syllabary
     298    [67584, 67647]**/
    185299    const UnicodeSet cypriot_syllabary_Set
    186       {{{Empty, 2112}, {Full, 2}, {Empty, 32702}},
    187        {}};
     300        {{{Empty, 2112}, {Full, 2}, {Empty, 32702}},
     301         {}};
     302    /** Code Point Ranges for Cyrillic
     303    [1024, 1279]**/
    188304    const UnicodeSet cyrillic_Set
    189       {{{Empty, 32}, {Full, 8}, {Empty, 34776}},
    190        {}};
     305        {{{Empty, 32}, {Full, 8}, {Empty, 34776}},
     306         {}};
     307    /** Code Point Ranges for Cyrillic_Ext_A
     308    [11744, 11775]**/
    191309    const UnicodeSet cyrillic_ext_a_Set
    192       {{{Empty, 367}, {Full, 1}, {Empty, 34448}},
    193        {}};
     310        {{{Empty, 367}, {Full, 1}, {Empty, 34448}},
     311         {}};
     312    /** Code Point Ranges for Cyrillic_Ext_B
     313    [42560, 42655]**/
    194314    const UnicodeSet cyrillic_ext_b_Set
    195       {{{Empty, 1330}, {Full, 3}, {Empty, 33483}},
    196        {}};
     315        {{{Empty, 1330}, {Full, 3}, {Empty, 33483}},
     316         {}};
     317    /** Code Point Ranges for Cyrillic_Sup
     318    [1280, 1327]**/
    197319    const UnicodeSet cyrillic_sup_Set
    198       {{{Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}},
    199        {0x0000ffff}};
     320        {{{Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}},
     321         {0x0000ffff}};
     322    /** Code Point Ranges for Deseret
     323    [66560, 66639]**/
    200324    const UnicodeSet deseret_Set
    201       {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    202        {0x0000ffff}};
     325        {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
     326         {0x0000ffff}};
     327    /** Code Point Ranges for Devanagari
     328    [2304, 2431]**/
    203329    const UnicodeSet devanagari_Set
    204       {{{Empty, 72}, {Full, 4}, {Empty, 34740}},
    205        {}};
     330        {{{Empty, 72}, {Full, 4}, {Empty, 34740}},
     331         {}};
     332    /** Code Point Ranges for Devanagari_Ext
     333    [43232, 43263]**/
    206334    const UnicodeSet devanagari_ext_Set
    207       {{{Empty, 1351}, {Full, 1}, {Empty, 33464}},
    208        {}};
     335        {{{Empty, 1351}, {Full, 1}, {Empty, 33464}},
     336         {}};
     337    /** Code Point Ranges for Diacriticals
     338    [768, 879]**/
    209339    const UnicodeSet diacriticals_Set
    210       {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}},
    211        {0x0000ffff}};
     340        {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}},
     341         {0x0000ffff}};
     342    /** Code Point Ranges for Diacriticals_Ext
     343    [6832, 6911]**/
    212344    const UnicodeSet diacriticals_ext_Set
    213       {{{Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}},
    214        {0xffff0000}};
     345        {{{Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}},
     346         {0xffff0000}};
     347    /** Code Point Ranges for Diacriticals_For_Symbols
     348    [8400, 8447]**/
    215349    const UnicodeSet diacriticals_for_symbols_Set
    216       {{{Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}},
    217        {0xffff0000}};
     350        {{{Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}},
     351         {0xffff0000}};
     352    /** Code Point Ranges for Diacriticals_Sup
     353    [7616, 7679]**/
    218354    const UnicodeSet diacriticals_sup_Set
    219       {{{Empty, 238}, {Full, 2}, {Empty, 34576}},
    220        {}};
     355        {{{Empty, 238}, {Full, 2}, {Empty, 34576}},
     356         {}};
     357    /** Code Point Ranges for Dingbats
     358    [9984, 10175]**/
    221359    const UnicodeSet dingbats_Set
    222       {{{Empty, 312}, {Full, 6}, {Empty, 34498}},
    223        {}};
     360        {{{Empty, 312}, {Full, 6}, {Empty, 34498}},
     361         {}};
     362    /** Code Point Ranges for Domino
     363    [127024, 127135]**/
    224364    const UnicodeSet domino_Set
    225       {{{Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}},
    226        {0xffff0000}};
     365        {{{Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}},
     366         {0xffff0000}};
     367    /** Code Point Ranges for Duployan
     368    [113664, 113823]**/
    227369    const UnicodeSet duployan_Set
    228       {{{Empty, 3552}, {Full, 5}, {Empty, 31259}},
    229        {}};
     370        {{{Empty, 3552}, {Full, 5}, {Empty, 31259}},
     371         {}};
     372    /** Code Point Ranges for Egyptian_Hieroglyphs
     373    [77824, 78895]**/
    230374    const UnicodeSet egyptian_hieroglyphs_Set
    231       {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    232        {0x0000ffff}};
     375        {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
     376         {0x0000ffff}};
     377    /** Code Point Ranges for Elbasan
     378    [66816, 66863]**/
    233379    const UnicodeSet elbasan_Set
    234       {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    235        {0x0000ffff}};
     380        {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
     381         {0x0000ffff}};
     382    /** Code Point Ranges for Emoticons
     383    [128512, 128591]**/
    236384    const UnicodeSet emoticons_Set
    237       {{{Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}},
    238        {0x0000ffff}};
     385        {{{Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}},
     386         {0x0000ffff}};
     387    /** Code Point Ranges for Enclosed_Alphanum
     388    [9312, 9471]**/
    239389    const UnicodeSet enclosed_alphanum_Set
    240       {{{Empty, 291}, {Full, 5}, {Empty, 34520}},
    241        {}};
     390        {{{Empty, 291}, {Full, 5}, {Empty, 34520}},
     391         {}};
     392    /** Code Point Ranges for Enclosed_Alphanum_Sup
     393    [127232, 127487]**/
    242394    const UnicodeSet enclosed_alphanum_sup_Set
    243       {{{Empty, 3976}, {Full, 8}, {Empty, 30832}},
    244        {}};
     395        {{{Empty, 3976}, {Full, 8}, {Empty, 30832}},
     396         {}};
     397    /** Code Point Ranges for Enclosed_CJK
     398    [12800, 13055]**/
    245399    const UnicodeSet enclosed_cjk_Set
    246       {{{Empty, 400}, {Full, 8}, {Empty, 34408}},
    247        {}};
     400        {{{Empty, 400}, {Full, 8}, {Empty, 34408}},
     401         {}};
     402    /** Code Point Ranges for Enclosed_Ideographic_Sup
     403    [127488, 127743]**/
    248404    const UnicodeSet enclosed_ideographic_sup_Set
    249       {{{Empty, 3984}, {Full, 8}, {Empty, 30824}},
    250        {}};
     405        {{{Empty, 3984}, {Full, 8}, {Empty, 30824}},
     406         {}};
     407    /** Code Point Ranges for Ethiopic
     408    [4608, 4991]**/
    251409    const UnicodeSet ethiopic_Set
    252       {{{Empty, 144}, {Full, 12}, {Empty, 34660}},
    253        {}};
     410        {{{Empty, 144}, {Full, 12}, {Empty, 34660}},
     411         {}};
     412    /** Code Point Ranges for Ethiopic_Ext
     413    [11648, 11743]**/
    254414    const UnicodeSet ethiopic_ext_Set
    255       {{{Empty, 364}, {Full, 3}, {Empty, 34449}},
    256        {}};
     415        {{{Empty, 364}, {Full, 3}, {Empty, 34449}},
     416         {}};
     417    /** Code Point Ranges for Ethiopic_Ext_A
     418    [43776, 43823]**/
    257419    const UnicodeSet ethiopic_ext_a_Set
    258       {{{Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}},
    259        {0x0000ffff}};
     420        {{{Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}},
     421         {0x0000ffff}};
     422    /** Code Point Ranges for Ethiopic_Sup
     423    [4992, 5023]**/
    260424    const UnicodeSet ethiopic_sup_Set
    261       {{{Empty, 156}, {Full, 1}, {Empty, 34659}},
    262        {}};
     425        {{{Empty, 156}, {Full, 1}, {Empty, 34659}},
     426         {}};
     427    /** Code Point Ranges for Geometric_Shapes
     428    [9632, 9727]**/
    263429    const UnicodeSet geometric_shapes_Set
    264       {{{Empty, 301}, {Full, 3}, {Empty, 34512}},
    265        {}};
     430        {{{Empty, 301}, {Full, 3}, {Empty, 34512}},
     431         {}};
     432    /** Code Point Ranges for Geometric_Shapes_Ext
     433    [128896, 129023]**/
    266434    const UnicodeSet geometric_shapes_ext_Set
    267       {{{Empty, 4028}, {Full, 4}, {Empty, 30784}},
    268        {}};
     435        {{{Empty, 4028}, {Full, 4}, {Empty, 30784}},
     436         {}};
     437    /** Code Point Ranges for Georgian
     438    [4256, 4351]**/
    269439    const UnicodeSet georgian_Set
    270       {{{Empty, 133}, {Full, 3}, {Empty, 34680}},
    271        {}};
     440        {{{Empty, 133}, {Full, 3}, {Empty, 34680}},
     441         {}};
     442    /** Code Point Ranges for Georgian_Sup
     443    [11520, 11567]**/
    272444    const UnicodeSet georgian_sup_Set
    273       {{{Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
    274        {0x0000ffff}};
     445        {{{Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
     446         {0x0000ffff}};
     447    /** Code Point Ranges for Glagolitic
     448    [11264, 11359]**/
    275449    const UnicodeSet glagolitic_Set
    276       {{{Empty, 352}, {Full, 3}, {Empty, 34461}},
    277        {}};
     450        {{{Empty, 352}, {Full, 3}, {Empty, 34461}},
     451         {}};
     452    /** Code Point Ranges for Gothic
     453    [66352, 66383]**/
    278454    const UnicodeSet gothic_Set
    279       {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    280        {0xffff0000, 0x0000ffff}};
     455        {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
     456         {0xffff0000, 0x0000ffff}};
     457    /** Code Point Ranges for Grantha
     458    [70400, 70527]**/
    281459    const UnicodeSet grantha_Set
    282       {{{Empty, 2200}, {Full, 4}, {Empty, 32612}},
    283        {}};
     460        {{{Empty, 2200}, {Full, 4}, {Empty, 32612}},
     461         {}};
     462    /** Code Point Ranges for Greek
     463    [880, 1023]**/
    284464    const UnicodeSet greek_Set
    285       {{{Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}},
    286        {0xffff0000}};
     465        {{{Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}},
     466         {0xffff0000}};
     467    /** Code Point Ranges for Greek_Ext
     468    [7936, 8191]**/
    287469    const UnicodeSet greek_ext_Set
    288       {{{Empty, 248}, {Full, 8}, {Empty, 34560}},
    289        {}};
     470        {{{Empty, 248}, {Full, 8}, {Empty, 34560}},
     471         {}};
     472    /** Code Point Ranges for Gujarati
     473    [2688, 2815]**/
    290474    const UnicodeSet gujarati_Set
    291       {{{Empty, 84}, {Full, 4}, {Empty, 34728}},
    292        {}};
     475        {{{Empty, 84}, {Full, 4}, {Empty, 34728}},
     476         {}};
     477    /** Code Point Ranges for Gurmukhi
     478    [2560, 2687]**/
    293479    const UnicodeSet gurmukhi_Set
    294       {{{Empty, 80}, {Full, 4}, {Empty, 34732}},
    295        {}};
     480        {{{Empty, 80}, {Full, 4}, {Empty, 34732}},
     481         {}};
     482    /** Code Point Ranges for Half_And_Full_Forms
     483    [65280, 65519]**/
    296484    const UnicodeSet half_and_full_forms_Set
    297       {{{Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}},
    298        {0x0000ffff}};
     485        {{{Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}},
     486         {0x0000ffff}};
     487    /** Code Point Ranges for Half_Marks
     488    [65056, 65071]**/
    299489    const UnicodeSet half_marks_Set
    300       {{{Empty, 2033}, {Mixed, 1}, {Empty, 32782}},
    301        {0x0000ffff}};
     490        {{{Empty, 2033}, {Mixed, 1}, {Empty, 32782}},
     491         {0x0000ffff}};
     492    /** Code Point Ranges for Hangul
     493    [44032, 55215]**/
    302494    const UnicodeSet hangul_Set
    303       {{{Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}},
    304        {0x0000ffff}};
     495        {{{Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}},
     496         {0x0000ffff}};
     497    /** Code Point Ranges for Hanunoo
     498    [5920, 5951]**/
    305499    const UnicodeSet hanunoo_Set
    306       {{{Empty, 185}, {Full, 1}, {Empty, 34630}},
    307        {}};
     500        {{{Empty, 185}, {Full, 1}, {Empty, 34630}},
     501         {}};
     502    /** Code Point Ranges for Hebrew
     503    [1424, 1535]**/
    308504    const UnicodeSet hebrew_Set
    309       {{{Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}},
    310        {0xffff0000}};
     505        {{{Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}},
     506         {0xffff0000}};
     507    /** Code Point Ranges for High_PU_Surrogates
     508    [56192, 56319]**/
    311509    const UnicodeSet high_pu_surrogates_Set
    312       {{{Empty, 1756}, {Full, 4}, {Empty, 33056}},
    313        {}};
     510        {{{Empty, 1756}, {Full, 4}, {Empty, 33056}},
     511         {}};
     512    /** Code Point Ranges for High_Surrogates
     513    [55296, 56191]**/
    314514    const UnicodeSet high_surrogates_Set
    315       {{{Empty, 1728}, {Full, 28}, {Empty, 33060}},
    316        {}};
     515        {{{Empty, 1728}, {Full, 28}, {Empty, 33060}},
     516         {}};
     517    /** Code Point Ranges for Hiragana
     518    [12352, 12447]**/
    317519    const UnicodeSet hiragana_Set
    318       {{{Empty, 386}, {Full, 3}, {Empty, 34427}},
    319        {}};
     520        {{{Empty, 386}, {Full, 3}, {Empty, 34427}},
     521         {}};
     522    /** Code Point Ranges for IDC
     523    [12272, 12287]**/
    320524    const UnicodeSet idc_Set
    321       {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    322        {0xffff0000}};
     525        {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
     526         {0xffff0000}};
     527    /** Code Point Ranges for Imperial_Aramaic
     528    [67648, 67679]**/
    323529    const UnicodeSet imperial_aramaic_Set
    324       {{{Empty, 2114}, {Full, 1}, {Empty, 32701}},
    325        {}};
     530        {{{Empty, 2114}, {Full, 1}, {Empty, 32701}},
     531         {}};
     532    /** Code Point Ranges for Indic_Number_Forms
     533    [43056, 43071]**/
    326534    const UnicodeSet indic_number_forms_Set
    327       {{{Empty, 1345}, {Mixed, 1}, {Empty, 33470}},
    328        {0xffff0000}};
     535        {{{Empty, 1345}, {Mixed, 1}, {Empty, 33470}},
     536         {0xffff0000}};
     537    /** Code Point Ranges for Inscriptional_Pahlavi
     538    [68448, 68479]**/
    329539    const UnicodeSet inscriptional_pahlavi_Set
    330       {{{Empty, 2139}, {Full, 1}, {Empty, 32676}},
    331        {}};
     540        {{{Empty, 2139}, {Full, 1}, {Empty, 32676}},
     541         {}};
     542    /** Code Point Ranges for Inscriptional_Parthian
     543    [68416, 68447]**/
    332544    const UnicodeSet inscriptional_parthian_Set
    333       {{{Empty, 2138}, {Full, 1}, {Empty, 32677}},
    334        {}};
     545        {{{Empty, 2138}, {Full, 1}, {Empty, 32677}},
     546         {}};
     547    /** Code Point Ranges for IPA_Ext
     548    [592, 687]**/
    335549    const UnicodeSet ipa_ext_Set
    336       {{{Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}},
    337        {0xffff0000, 0x0000ffff}};
     550        {{{Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}},
     551         {0xffff0000, 0x0000ffff}};
     552    /** Code Point Ranges for Jamo
     553    [4352, 4607]**/
    338554    const UnicodeSet jamo_Set
    339       {{{Empty, 136}, {Full, 8}, {Empty, 34672}},
    340        {}};
     555        {{{Empty, 136}, {Full, 8}, {Empty, 34672}},
     556         {}};
     557    /** Code Point Ranges for Jamo_Ext_A
     558    [43360, 43391]**/
    341559    const UnicodeSet jamo_ext_a_Set
    342       {{{Empty, 1355}, {Full, 1}, {Empty, 33460}},
    343        {}};
     560        {{{Empty, 1355}, {Full, 1}, {Empty, 33460}},
     561         {}};
     562    /** Code Point Ranges for Jamo_Ext_B
     563    [55216, 55295]**/
    344564    const UnicodeSet jamo_ext_b_Set
    345       {{{Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}},
    346        {0xffff0000}};
     565        {{{Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}},
     566         {0xffff0000}};
     567    /** Code Point Ranges for Javanese
     568    [43392, 43487]**/
    347569    const UnicodeSet javanese_Set
    348       {{{Empty, 1356}, {Full, 3}, {Empty, 33457}},
    349        {}};
     570        {{{Empty, 1356}, {Full, 3}, {Empty, 33457}},
     571         {}};
     572    /** Code Point Ranges for Kaithi
     573    [69760, 69839]**/
    350574    const UnicodeSet kaithi_Set
    351       {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    352        {0x0000ffff}};
     575        {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
     576         {0x0000ffff}};
     577    /** Code Point Ranges for Kana_Sup
     578    [110592, 110847]**/
    353579    const UnicodeSet kana_sup_Set
    354       {{{Empty, 3456}, {Full, 8}, {Empty, 31352}},
    355        {}};
     580        {{{Empty, 3456}, {Full, 8}, {Empty, 31352}},
     581         {}};
     582    /** Code Point Ranges for Kanbun
     583    [12688, 12703]**/
    356584    const UnicodeSet kanbun_Set
    357       {{{Empty, 396}, {Mixed, 1}, {Empty, 34419}},
    358        {0xffff0000}};
     585        {{{Empty, 396}, {Mixed, 1}, {Empty, 34419}},
     586         {0xffff0000}};
     587    /** Code Point Ranges for Kangxi
     588    [12032, 12255]**/
    359589    const UnicodeSet kangxi_Set
    360       {{{Empty, 376}, {Full, 7}, {Empty, 34433}},
    361        {}};
     590        {{{Empty, 376}, {Full, 7}, {Empty, 34433}},
     591         {}};
     592    /** Code Point Ranges for Kannada
     593    [3200, 3327]**/
    362594    const UnicodeSet kannada_Set
    363       {{{Empty, 100}, {Full, 4}, {Empty, 34712}},
    364        {}};
     595        {{{Empty, 100}, {Full, 4}, {Empty, 34712}},
     596         {}};
     597    /** Code Point Ranges for Katakana
     598    [12448, 12543]**/
    365599    const UnicodeSet katakana_Set
    366       {{{Empty, 389}, {Full, 3}, {Empty, 34424}},
    367        {}};
     600        {{{Empty, 389}, {Full, 3}, {Empty, 34424}},
     601         {}};
     602    /** Code Point Ranges for Katakana_Ext
     603    [12784, 12799]**/
    368604    const UnicodeSet katakana_ext_Set
    369       {{{Empty, 399}, {Mixed, 1}, {Empty, 34416}},
    370        {0xffff0000}};
     605        {{{Empty, 399}, {Mixed, 1}, {Empty, 34416}},
     606         {0xffff0000}};
     607    /** Code Point Ranges for Kayah_Li
     608    [43264, 43311]**/
    371609    const UnicodeSet kayah_li_Set
    372       {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    373        {0x0000ffff}};
     610        {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
     611         {0x0000ffff}};
     612    /** Code Point Ranges for Kharoshthi
     613    [68096, 68191]**/
    374614    const UnicodeSet kharoshthi_Set
    375       {{{Empty, 2128}, {Full, 3}, {Empty, 32685}},
    376        {}};
     615        {{{Empty, 2128}, {Full, 3}, {Empty, 32685}},
     616         {}};
     617    /** Code Point Ranges for Khmer
     618    [6016, 6143]**/
    377619    const UnicodeSet khmer_Set
    378       {{{Empty, 188}, {Full, 4}, {Empty, 34624}},
    379        {}};
     620        {{{Empty, 188}, {Full, 4}, {Empty, 34624}},
     621         {}};
     622    /** Code Point Ranges for Khmer_Symbols
     623    [6624, 6655]**/
    380624    const UnicodeSet khmer_symbols_Set
    381       {{{Empty, 207}, {Full, 1}, {Empty, 34608}},
    382        {}};
     625        {{{Empty, 207}, {Full, 1}, {Empty, 34608}},
     626         {}};
     627    /** Code Point Ranges for Khojki
     628    [70144, 70223]**/
    383629    const UnicodeSet khojki_Set
    384       {{{Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}},
    385        {0x0000ffff}};
     630        {{{Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}},
     631         {0x0000ffff}};
     632    /** Code Point Ranges for Khudawadi
     633    [70320, 70399]**/
    386634    const UnicodeSet khudawadi_Set
    387       {{{Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}},
    388        {0xffff0000}};
     635        {{{Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}},
     636         {0xffff0000}};
     637    /** Code Point Ranges for Lao
     638    [3712, 3839]**/
    389639    const UnicodeSet lao_Set
    390       {{{Empty, 116}, {Full, 4}, {Empty, 34696}},
    391        {}};
     640        {{{Empty, 116}, {Full, 4}, {Empty, 34696}},
     641         {}};
     642    /** Code Point Ranges for Latin_1_Sup
     643    [128, 255]**/
    392644    const UnicodeSet latin_1_sup_Set
    393       {{{Empty, 4}, {Full, 4}, {Empty, 34808}},
    394        {}};
     645        {{{Empty, 4}, {Full, 4}, {Empty, 34808}},
     646         {}};
     647    /** Code Point Ranges for Latin_Ext_A
     648    [256, 383]**/
    395649    const UnicodeSet latin_ext_a_Set
    396       {{{Empty, 8}, {Full, 4}, {Empty, 34804}},
    397        {}};
     650        {{{Empty, 8}, {Full, 4}, {Empty, 34804}},
     651         {}};
     652    /** Code Point Ranges for Latin_Ext_Additional
     653    [7680, 7935]**/
    398654    const UnicodeSet latin_ext_additional_Set
    399       {{{Empty, 240}, {Full, 8}, {Empty, 34568}},
    400        {}};
     655        {{{Empty, 240}, {Full, 8}, {Empty, 34568}},
     656         {}};
     657    /** Code Point Ranges for Latin_Ext_B
     658    [384, 591]**/
    401659    const UnicodeSet latin_ext_b_Set
    402       {{{Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}},
    403        {0x0000ffff}};
     660        {{{Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}},
     661         {0x0000ffff}};
     662    /** Code Point Ranges for Latin_Ext_C
     663    [11360, 11391]**/
    404664    const UnicodeSet latin_ext_c_Set
    405       {{{Empty, 355}, {Full, 1}, {Empty, 34460}},
    406        {}};
     665        {{{Empty, 355}, {Full, 1}, {Empty, 34460}},
     666         {}};
     667    /** Code Point Ranges for Latin_Ext_D
     668    [42784, 43007]**/
    407669    const UnicodeSet latin_ext_d_Set
    408       {{{Empty, 1337}, {Full, 7}, {Empty, 33472}},
    409        {}};
     670        {{{Empty, 1337}, {Full, 7}, {Empty, 33472}},
     671         {}};
     672    /** Code Point Ranges for Latin_Ext_E
     673    [43824, 43887]**/
    410674    const UnicodeSet latin_ext_e_Set
    411       {{{Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}},
    412        {0xffff0000, 0x0000ffff}};
     675        {{{Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}},
     676         {0xffff0000, 0x0000ffff}};
     677    /** Code Point Ranges for Lepcha
     678    [7168, 7247]**/
    413679    const UnicodeSet lepcha_Set
    414       {{{Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}},
    415        {0x0000ffff}};
     680        {{{Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}},
     681         {0x0000ffff}};
     682    /** Code Point Ranges for Letterlike_Symbols
     683    [8448, 8527]**/
    416684    const UnicodeSet letterlike_symbols_Set
    417       {{{Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}},
    418        {0x0000ffff}};
     685        {{{Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}},
     686         {0x0000ffff}};
     687    /** Code Point Ranges for Limbu
     688    [6400, 6479]**/
    419689    const UnicodeSet limbu_Set
    420       {{{Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}},
    421        {0x0000ffff}};
     690        {{{Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}},
     691         {0x0000ffff}};
     692    /** Code Point Ranges for Linear_A
     693    [67072, 67455]**/
    422694    const UnicodeSet linear_a_Set
    423       {{{Empty, 2096}, {Full, 12}, {Empty, 32708}},
    424        {}};
     695        {{{Empty, 2096}, {Full, 12}, {Empty, 32708}},
     696         {}};
     697    /** Code Point Ranges for Linear_B_Ideograms
     698    [65664, 65791]**/
    425699    const UnicodeSet linear_b_ideograms_Set
    426       {{{Empty, 2052}, {Full, 4}, {Empty, 32760}},
    427        {}};
     700        {{{Empty, 2052}, {Full, 4}, {Empty, 32760}},
     701         {}};
     702    /** Code Point Ranges for Linear_B_Syllabary
     703    [65536, 65663]**/
    428704    const UnicodeSet linear_b_syllabary_Set
    429       {{{Empty, 2048}, {Full, 4}, {Empty, 32764}},
    430        {}};
     705        {{{Empty, 2048}, {Full, 4}, {Empty, 32764}},
     706         {}};
     707    /** Code Point Ranges for Lisu
     708    [42192, 42239]**/
    431709    const UnicodeSet lisu_Set
    432       {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    433        {0xffff0000}};
     710        {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
     711         {0xffff0000}};
     712    /** Code Point Ranges for Low_Surrogates
     713    [56320, 57343]**/
    434714    const UnicodeSet low_surrogates_Set
    435       {{{Empty, 1760}, {Full, 32}, {Empty, 33024}},
    436        {}};
     715        {{{Empty, 1760}, {Full, 32}, {Empty, 33024}},
     716         {}};
     717    /** Code Point Ranges for Lycian
     718    [66176, 66207]**/
    437719    const UnicodeSet lycian_Set
    438       {{{Empty, 2068}, {Full, 1}, {Empty, 32747}},
    439        {}};
     720        {{{Empty, 2068}, {Full, 1}, {Empty, 32747}},
     721         {}};
     722    /** Code Point Ranges for Lydian
     723    [67872, 67903]**/
    440724    const UnicodeSet lydian_Set
    441       {{{Empty, 2121}, {Full, 1}, {Empty, 32694}},
    442        {}};
     725        {{{Empty, 2121}, {Full, 1}, {Empty, 32694}},
     726         {}};
     727    /** Code Point Ranges for Mahajani
     728    [69968, 70015]**/
    443729    const UnicodeSet mahajani_Set
    444       {{{Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}},
    445        {0xffff0000}};
     730        {{{Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}},
     731         {0xffff0000}};
     732    /** Code Point Ranges for Mahjong
     733    [126976, 127023]**/
    446734    const UnicodeSet mahjong_Set
    447       {{{Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}},
    448        {0x0000ffff}};
     735        {{{Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}},
     736         {0x0000ffff}};
     737    /** Code Point Ranges for Malayalam
     738    [3328, 3455]**/
    449739    const UnicodeSet malayalam_Set
    450       {{{Empty, 104}, {Full, 4}, {Empty, 34708}},
    451        {}};
     740        {{{Empty, 104}, {Full, 4}, {Empty, 34708}},
     741         {}};
     742    /** Code Point Ranges for Mandaic
     743    [2112, 2143]**/
    452744    const UnicodeSet mandaic_Set
    453       {{{Empty, 66}, {Full, 1}, {Empty, 34749}},
    454        {}};
     745        {{{Empty, 66}, {Full, 1}, {Empty, 34749}},
     746         {}};
     747    /** Code Point Ranges for Manichaean
     748    [68288, 68351]**/
    455749    const UnicodeSet manichaean_Set
    456       {{{Empty, 2134}, {Full, 2}, {Empty, 32680}},
    457        {}};
     750        {{{Empty, 2134}, {Full, 2}, {Empty, 32680}},
     751         {}};
     752    /** Code Point Ranges for Math_Alphanum
     753    [119808, 120831]**/
    458754    const UnicodeSet math_alphanum_Set
    459       {{{Empty, 3744}, {Full, 32}, {Empty, 31040}},
    460        {}};
     755        {{{Empty, 3744}, {Full, 32}, {Empty, 31040}},
     756         {}};
     757    /** Code Point Ranges for Math_Operators
     758    [8704, 8959]**/
    461759    const UnicodeSet math_operators_Set
    462       {{{Empty, 272}, {Full, 8}, {Empty, 34536}},
    463        {}};
     760        {{{Empty, 272}, {Full, 8}, {Empty, 34536}},
     761         {}};
     762    /** Code Point Ranges for Meetei_Mayek
     763    [43968, 44031]**/
    464764    const UnicodeSet meetei_mayek_Set
    465       {{{Empty, 1374}, {Full, 2}, {Empty, 33440}},
    466        {}};
     765        {{{Empty, 1374}, {Full, 2}, {Empty, 33440}},
     766         {}};
     767    /** Code Point Ranges for Meetei_Mayek_Ext
     768    [43744, 43775]**/
    467769    const UnicodeSet meetei_mayek_ext_Set
    468       {{{Empty, 1367}, {Full, 1}, {Empty, 33448}},
    469        {}};
     770        {{{Empty, 1367}, {Full, 1}, {Empty, 33448}},
     771         {}};
     772    /** Code Point Ranges for Mende_Kikakui
     773    [124928, 125151]**/
    470774    const UnicodeSet mende_kikakui_Set
    471       {{{Empty, 3904}, {Full, 7}, {Empty, 30905}},
    472        {}};
     775        {{{Empty, 3904}, {Full, 7}, {Empty, 30905}},
     776         {}};
     777    /** Code Point Ranges for Meroitic_Cursive
     778    [68000, 68095]**/
    473779    const UnicodeSet meroitic_cursive_Set
    474       {{{Empty, 2125}, {Full, 3}, {Empty, 32688}},
    475        {}};
     780        {{{Empty, 2125}, {Full, 3}, {Empty, 32688}},
     781         {}};
     782    /** Code Point Ranges for Meroitic_Hieroglyphs
     783    [67968, 67999]**/
    476784    const UnicodeSet meroitic_hieroglyphs_Set
    477       {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    478        {}};
     785        {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
     786         {}};
     787    /** Code Point Ranges for Miao
     788    [93952, 94111]**/
    479789    const UnicodeSet miao_Set
    480       {{{Empty, 2936}, {Full, 5}, {Empty, 31875}},
    481        {}};
     790        {{{Empty, 2936}, {Full, 5}, {Empty, 31875}},
     791         {}};
     792    /** Code Point Ranges for Misc_Arrows
     793    [11008, 11263]**/
    482794    const UnicodeSet misc_arrows_Set
    483       {{{Empty, 344}, {Full, 8}, {Empty, 34464}},
    484        {}};
     795        {{{Empty, 344}, {Full, 8}, {Empty, 34464}},
     796         {}};
     797    /** Code Point Ranges for Misc_Math_Symbols_A
     798    [10176, 10223]**/
    485799    const UnicodeSet misc_math_symbols_a_Set
    486       {{{Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}},
    487        {0x0000ffff}};
     800        {{{Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}},
     801         {0x0000ffff}};
     802    /** Code Point Ranges for Misc_Math_Symbols_B
     803    [10624, 10751]**/
    488804    const UnicodeSet misc_math_symbols_b_Set
    489       {{{Empty, 332}, {Full, 4}, {Empty, 34480}},
    490        {}};
     805        {{{Empty, 332}, {Full, 4}, {Empty, 34480}},
     806         {}};
     807    /** Code Point Ranges for Misc_Pictographs
     808    [127744, 128511]**/
    491809    const UnicodeSet misc_pictographs_Set
    492       {{{Empty, 3992}, {Full, 24}, {Empty, 30800}},
    493        {}};
     810        {{{Empty, 3992}, {Full, 24}, {Empty, 30800}},
     811         {}};
     812    /** Code Point Ranges for Misc_Symbols
     813    [9728, 9983]**/
    494814    const UnicodeSet misc_symbols_Set
    495       {{{Empty, 304}, {Full, 8}, {Empty, 34504}},
    496        {}};
     815        {{{Empty, 304}, {Full, 8}, {Empty, 34504}},
     816         {}};
     817    /** Code Point Ranges for Misc_Technical
     818    [8960, 9215]**/
    497819    const UnicodeSet misc_technical_Set
    498       {{{Empty, 280}, {Full, 8}, {Empty, 34528}},
    499        {}};
     820        {{{Empty, 280}, {Full, 8}, {Empty, 34528}},
     821         {}};
     822    /** Code Point Ranges for Modi
     823    [71168, 71263]**/
    500824    const UnicodeSet modi_Set
    501       {{{Empty, 2224}, {Full, 3}, {Empty, 32589}},
    502        {}};
     825        {{{Empty, 2224}, {Full, 3}, {Empty, 32589}},
     826         {}};
     827    /** Code Point Ranges for Modifier_Letters
     828    [688, 767]**/
    503829    const UnicodeSet modifier_letters_Set
    504       {{{Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}},
    505        {0xffff0000}};
     830        {{{Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}},
     831         {0xffff0000}};
     832    /** Code Point Ranges for Modifier_Tone_Letters
     833    [42752, 42783]**/
    506834    const UnicodeSet modifier_tone_letters_Set
    507       {{{Empty, 1336}, {Full, 1}, {Empty, 33479}},
    508        {}};
     835        {{{Empty, 1336}, {Full, 1}, {Empty, 33479}},
     836         {}};
     837    /** Code Point Ranges for Mongolian
     838    [6144, 6319]**/
    509839    const UnicodeSet mongolian_Set
    510       {{{Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}},
    511        {0x0000ffff}};
     840        {{{Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}},
     841         {0x0000ffff}};
     842    /** Code Point Ranges for Mro
     843    [92736, 92783]**/
    512844    const UnicodeSet mro_Set
    513       {{{Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}},
    514        {0x0000ffff}};
     845        {{{Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}},
     846         {0x0000ffff}};
     847    /** Code Point Ranges for Music
     848    [119040, 119295]**/
    515849    const UnicodeSet music_Set
    516       {{{Empty, 3720}, {Full, 8}, {Empty, 31088}},
    517        {}};
     850        {{{Empty, 3720}, {Full, 8}, {Empty, 31088}},
     851         {}};
     852    /** Code Point Ranges for Myanmar
     853    [4096, 4255]**/
    518854    const UnicodeSet myanmar_Set
    519       {{{Empty, 128}, {Full, 5}, {Empty, 34683}},
    520        {}};
     855        {{{Empty, 128}, {Full, 5}, {Empty, 34683}},
     856         {}};
     857    /** Code Point Ranges for Myanmar_Ext_A
     858    [43616, 43647]**/
    521859    const UnicodeSet myanmar_ext_a_Set
    522       {{{Empty, 1363}, {Full, 1}, {Empty, 33452}},
    523        {}};
     860        {{{Empty, 1363}, {Full, 1}, {Empty, 33452}},
     861         {}};
     862    /** Code Point Ranges for Myanmar_Ext_B
     863    [43488, 43519]**/
    524864    const UnicodeSet myanmar_ext_b_Set
    525       {{{Empty, 1359}, {Full, 1}, {Empty, 33456}},
    526        {}};
     865        {{{Empty, 1359}, {Full, 1}, {Empty, 33456}},
     866         {}};
     867    /** Code Point Ranges for Nabataean
     868    [67712, 67759]**/
    527869    const UnicodeSet nabataean_Set
    528       {{{Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}},
    529        {0x0000ffff}};
     870        {{{Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}},
     871         {0x0000ffff}};
     872    /** Code Point Ranges for NB
     873    [2144, 2207], [7296, 7359], [12256, 12271], [43888, 43967],
     874    [66048, 66175], [66528, 66559], [66736, 66815], [66928, 67071],
     875    [67456, 67583], [67760, 67839], [67904, 67967], [68256, 68287],
     876    [68528, 68607], [68688, 69215], [69248, 69631], [70224, 70319],
     877    [70528, 70783], [70880, 71039], [71264, 71295], [71376, 71839],
     878    [71936, 72383], [72448, 73727], [74880, 77823], [78896, 92159],
     879    [92784, 92879], [93072, 93951], [94112, 110591], [110848, 113663],
     880    [113840, 118783], [119376, 119551], [119680, 119807], [120832, 124927],
     881    [125152, 126463], [126720, 126975], [129280, 131071], [173792, 173823],
     882    [178208, 194559], [195104, 917503], [917632, 917759], [918000, 983039]**/
    530883    const UnicodeSet nb_Set
    531       {{{Empty, 67}, {Full, 2}, {Empty, 159}, {Full, 2}, {Empty, 153},
    532         {Mixed, 1}, {Empty, 987}, {Mixed, 1}, {Full, 2}, {Empty, 690},
    533         {Full, 4}, {Empty, 11}, {Full, 1}, {Empty, 5}, {Mixed, 1},
    534         {Full, 2}, {Empty, 3}, {Mixed, 1}, {Full, 4}, {Empty, 12},
    535         {Full, 4}, {Empty, 5}, {Mixed, 1}, {Full, 2}, {Empty, 2}, {Full, 2},
    536         {Empty, 9}, {Full, 1}, {Empty, 7}, {Mixed, 1}, {Full, 2},
    537         {Empty, 2}, {Mixed, 1}, {Full, 16}, {Empty, 1}, {Full, 12},
    538         {Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 6},
    539         {Full, 8}, {Empty, 3}, {Full, 5}, {Empty, 7}, {Full, 1}, {Empty, 2},
    540         {Mixed, 1}, {Full, 14}, {Empty, 3}, {Full, 14}, {Empty, 2},
    541         {Full, 40}, {Empty, 36}, {Full, 92}, {Empty, 33}, {Mixed, 1},
    542         {Full, 414}, {Empty, 19}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    543         {Empty, 5}, {Mixed, 1}, {Full, 27}, {Empty, 5}, {Full, 515},
    544         {Empty, 8}, {Full, 88}, {Empty, 5}, {Mixed, 1}, {Full, 154},
    545         {Empty, 18}, {Mixed, 1}, {Full, 5}, {Empty, 4}, {Full, 4},
    546         {Empty, 32}, {Full, 128}, {Empty, 7}, {Full, 41}, {Empty, 8},
    547         {Full, 8}, {Empty, 72}, {Full, 56}, {Empty, 1335}, {Full, 1},
    548         {Empty, 137}, {Full, 511}, {Empty, 17}, {Full, 22575}, {Empty, 4},
    549         {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2032}, {Empty, 4096}},
    550        {0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
    551         0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
    552         0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000,
    553         0xffff0000, 0xffff0000}};
     884        {{{Empty, 67}, {Full, 2}, {Empty, 159}, {Full, 2}, {Empty, 153},
     885          {Mixed, 1}, {Empty, 987}, {Mixed, 1}, {Full, 2}, {Empty, 690},
     886          {Full, 4}, {Empty, 11}, {Full, 1}, {Empty, 5}, {Mixed, 1},
     887          {Full, 2}, {Empty, 3}, {Mixed, 1}, {Full, 4}, {Empty, 12},
     888          {Full, 4}, {Empty, 5}, {Mixed, 1}, {Full, 2}, {Empty, 2},
     889          {Full, 2}, {Empty, 9}, {Full, 1}, {Empty, 7}, {Mixed, 1},
     890          {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 16}, {Empty, 1},
     891          {Full, 12}, {Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     892          {Empty, 6}, {Full, 8}, {Empty, 3}, {Full, 5}, {Empty, 7},
     893          {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 14}, {Empty, 3},
     894          {Full, 14}, {Empty, 2}, {Full, 40}, {Empty, 36}, {Full, 92},
     895          {Empty, 33}, {Mixed, 1}, {Full, 414}, {Empty, 19}, {Mixed, 1},
     896          {Full, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 27},
     897          {Empty, 5}, {Full, 515}, {Empty, 8}, {Full, 88}, {Empty, 5},
     898          {Mixed, 1}, {Full, 154}, {Empty, 18}, {Mixed, 1}, {Full, 5},
     899          {Empty, 4}, {Full, 4}, {Empty, 32}, {Full, 128}, {Empty, 7},
     900          {Full, 41}, {Empty, 8}, {Full, 8}, {Empty, 72}, {Full, 56},
     901          {Empty, 1335}, {Full, 1}, {Empty, 137}, {Full, 511}, {Empty, 17},
     902          {Full, 22575}, {Empty, 4}, {Full, 4}, {Empty, 7}, {Mixed, 1},
     903          {Full, 2032}, {Empty, 4096}},
     904         {0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
     905          0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
     906          0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000,
     907          0xffff0000, 0xffff0000}};
     908    /** Code Point Ranges for New_Tai_Lue
     909    [6528, 6623]**/
    554910    const UnicodeSet new_tai_lue_Set
    555       {{{Empty, 204}, {Full, 3}, {Empty, 34609}},
    556        {}};
     911        {{{Empty, 204}, {Full, 3}, {Empty, 34609}},
     912         {}};
     913    /** Code Point Ranges for NKo
     914    [1984, 2047]**/
    557915    const UnicodeSet nko_Set
    558       {{{Empty, 62}, {Full, 2}, {Empty, 34752}},
    559        {}};
     916        {{{Empty, 62}, {Full, 2}, {Empty, 34752}},
     917         {}};
     918    /** Code Point Ranges for Number_Forms
     919    [8528, 8591]**/
    560920    const UnicodeSet number_forms_Set
    561       {{{Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}},
    562        {0xffff0000, 0x0000ffff}};
     921        {{{Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}},
     922         {0xffff0000, 0x0000ffff}};
     923    /** Code Point Ranges for OCR
     924    [9280, 9311]**/
    563925    const UnicodeSet ocr_Set
    564       {{{Empty, 290}, {Full, 1}, {Empty, 34525}},
    565        {}};
     926        {{{Empty, 290}, {Full, 1}, {Empty, 34525}},
     927         {}};
     928    /** Code Point Ranges for Ogham
     929    [5760, 5791]**/
    566930    const UnicodeSet ogham_Set
    567       {{{Empty, 180}, {Full, 1}, {Empty, 34635}},
    568        {}};
     931        {{{Empty, 180}, {Full, 1}, {Empty, 34635}},
     932         {}};
     933    /** Code Point Ranges for Ol_Chiki
     934    [7248, 7295]**/
    569935    const UnicodeSet ol_chiki_Set
    570       {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    571        {0xffff0000}};
     936        {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
     937         {0xffff0000}};
     938    /** Code Point Ranges for Old_Italic
     939    [66304, 66351]**/
    572940    const UnicodeSet old_italic_Set
    573       {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    574        {0x0000ffff}};
     941        {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
     942         {0x0000ffff}};
     943    /** Code Point Ranges for Old_North_Arabian
     944    [68224, 68255]**/
    575945    const UnicodeSet old_north_arabian_Set
    576       {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    577        {}};
     946        {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
     947         {}};
     948    /** Code Point Ranges for Old_Permic
     949    [66384, 66431]**/
    578950    const UnicodeSet old_permic_Set
    579       {{{Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}},
    580        {0xffff0000}};
     951        {{{Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}},
     952         {0xffff0000}};
     953    /** Code Point Ranges for Old_Persian
     954    [66464, 66527]**/
    581955    const UnicodeSet old_persian_Set
    582       {{{Empty, 2077}, {Full, 2}, {Empty, 32737}},
    583        {}};
     956        {{{Empty, 2077}, {Full, 2}, {Empty, 32737}},
     957         {}};
     958    /** Code Point Ranges for Old_South_Arabian
     959    [68192, 68223]**/
    584960    const UnicodeSet old_south_arabian_Set
    585       {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    586        {}};
     961        {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
     962         {}};
     963    /** Code Point Ranges for Old_Turkic
     964    [68608, 68687]**/
    587965    const UnicodeSet old_turkic_Set
    588       {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    589        {0x0000ffff}};
     966        {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
     967         {0x0000ffff}};
     968    /** Code Point Ranges for Oriya
     969    [2816, 2943]**/
    590970    const UnicodeSet oriya_Set
    591       {{{Empty, 88}, {Full, 4}, {Empty, 34724}},
    592        {}};
     971        {{{Empty, 88}, {Full, 4}, {Empty, 34724}},
     972         {}};
     973    /** Code Point Ranges for Ornamental_Dingbats
     974    [128592, 128639]**/
    593975    const UnicodeSet ornamental_dingbats_Set
    594       {{{Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}},
    595        {0xffff0000}};
     976        {{{Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}},
     977         {0xffff0000}};
     978    /** Code Point Ranges for Osmanya
     979    [66688, 66735]**/
    596980    const UnicodeSet osmanya_Set
    597       {{{Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}},
    598        {0x0000ffff}};
     981        {{{Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}},
     982         {0x0000ffff}};
     983    /** Code Point Ranges for Pahawh_Hmong
     984    [92928, 93071]**/
    599985    const UnicodeSet pahawh_hmong_Set
    600       {{{Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}},
    601        {0x0000ffff}};
     986        {{{Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}},
     987         {0x0000ffff}};
     988    /** Code Point Ranges for Palmyrene
     989    [67680, 67711]**/
    602990    const UnicodeSet palmyrene_Set
    603       {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    604        {}};
     991        {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
     992         {}};
     993    /** Code Point Ranges for Pau_Cin_Hau
     994    [72384, 72447]**/
    605995    const UnicodeSet pau_cin_hau_Set
    606       {{{Empty, 2262}, {Full, 2}, {Empty, 32552}},
    607        {}};
     996        {{{Empty, 2262}, {Full, 2}, {Empty, 32552}},
     997         {}};
     998    /** Code Point Ranges for Phags_Pa
     999    [43072, 43135]**/
    6081000    const UnicodeSet phags_pa_Set
    609       {{{Empty, 1346}, {Full, 2}, {Empty, 33468}},
    610        {}};
     1001        {{{Empty, 1346}, {Full, 2}, {Empty, 33468}},
     1002         {}};
     1003    /** Code Point Ranges for Phaistos
     1004    [66000, 66047]**/
    6111005    const UnicodeSet phaistos_Set
    612       {{{Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}},
    613        {0xffff0000}};
     1006        {{{Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}},
     1007         {0xffff0000}};
     1008    /** Code Point Ranges for Phoenician
     1009    [67840, 67871]**/
    6141010    const UnicodeSet phoenician_Set
    615       {{{Empty, 2120}, {Full, 1}, {Empty, 32695}},
    616        {}};
     1011        {{{Empty, 2120}, {Full, 1}, {Empty, 32695}},
     1012         {}};
     1013    /** Code Point Ranges for Phonetic_Ext
     1014    [7424, 7551]**/
    6171015    const UnicodeSet phonetic_ext_Set
    618       {{{Empty, 232}, {Full, 4}, {Empty, 34580}},
    619        {}};
     1016        {{{Empty, 232}, {Full, 4}, {Empty, 34580}},
     1017         {}};
     1018    /** Code Point Ranges for Phonetic_Ext_Sup
     1019    [7552, 7615]**/
    6201020    const UnicodeSet phonetic_ext_sup_Set
    621       {{{Empty, 236}, {Full, 2}, {Empty, 34578}},
    622        {}};
     1021        {{{Empty, 236}, {Full, 2}, {Empty, 34578}},
     1022         {}};
     1023    /** Code Point Ranges for Playing_Cards
     1024    [127136, 127231]**/
    6231025    const UnicodeSet playing_cards_Set
    624       {{{Empty, 3973}, {Full, 3}, {Empty, 30840}},
    625        {}};
     1026        {{{Empty, 3973}, {Full, 3}, {Empty, 30840}},
     1027         {}};
     1028    /** Code Point Ranges for Psalter_Pahlavi
     1029    [68480, 68527]**/
    6261030    const UnicodeSet psalter_pahlavi_Set
    627       {{{Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}},
    628        {0x0000ffff}};
     1031        {{{Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}},
     1032         {0x0000ffff}};
     1033    /** Code Point Ranges for PUA
     1034    [57344, 63743]**/
    6291035    const UnicodeSet pua_Set
    630       {{{Empty, 1792}, {Full, 200}, {Empty, 32824}},
    631        {}};
     1036        {{{Empty, 1792}, {Full, 200}, {Empty, 32824}},
     1037         {}};
     1038    /** Code Point Ranges for Punctuation
     1039    [8192, 8303]**/
    6321040    const UnicodeSet punctuation_Set
    633       {{{Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}},
    634        {0x0000ffff}};
     1041        {{{Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}},
     1042         {0x0000ffff}};
     1043    /** Code Point Ranges for Rejang
     1044    [43312, 43359]**/
    6351045    const UnicodeSet rejang_Set
    636       {{{Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}},
    637        {0xffff0000}};
     1046        {{{Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}},
     1047         {0xffff0000}};
     1048    /** Code Point Ranges for Rumi
     1049    [69216, 69247]**/
    6381050    const UnicodeSet rumi_Set
    639       {{{Empty, 2163}, {Full, 1}, {Empty, 32652}},
    640        {}};
     1051        {{{Empty, 2163}, {Full, 1}, {Empty, 32652}},
     1052         {}};
     1053    /** Code Point Ranges for Runic
     1054    [5792, 5887]**/
    6411055    const UnicodeSet runic_Set
    642       {{{Empty, 181}, {Full, 3}, {Empty, 34632}},
    643        {}};
     1056        {{{Empty, 181}, {Full, 3}, {Empty, 34632}},
     1057         {}};
     1058    /** Code Point Ranges for Samaritan
     1059    [2048, 2111]**/
    6441060    const UnicodeSet samaritan_Set
    645       {{{Empty, 64}, {Full, 2}, {Empty, 34750}},
    646        {}};
     1061        {{{Empty, 64}, {Full, 2}, {Empty, 34750}},
     1062         {}};
     1063    /** Code Point Ranges for Saurashtra
     1064    [43136, 43231]**/
    6471065    const UnicodeSet saurashtra_Set
    648       {{{Empty, 1348}, {Full, 3}, {Empty, 33465}},
    649        {}};
     1066        {{{Empty, 1348}, {Full, 3}, {Empty, 33465}},
     1067         {}};
     1068    /** Code Point Ranges for Sharada
     1069    [70016, 70111]**/
    6501070    const UnicodeSet sharada_Set
    651       {{{Empty, 2188}, {Full, 3}, {Empty, 32625}},
    652        {}};
     1071        {{{Empty, 2188}, {Full, 3}, {Empty, 32625}},
     1072         {}};
     1073    /** Code Point Ranges for Shavian
     1074    [66640, 66687]**/
    6531075    const UnicodeSet shavian_Set
    654       {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    655        {0xffff0000}};
     1076        {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
     1077         {0xffff0000}};
     1078    /** Code Point Ranges for Shorthand_Format_Controls
     1079    [113824, 113839]**/
    6561080    const UnicodeSet shorthand_format_controls_Set
    657       {{{Empty, 3557}, {Mixed, 1}, {Empty, 31258}},
    658        {0x0000ffff}};
     1081        {{{Empty, 3557}, {Mixed, 1}, {Empty, 31258}},
     1082         {0x0000ffff}};
     1083    /** Code Point Ranges for Siddham
     1084    [71040, 71167]**/
    6591085    const UnicodeSet siddham_Set
    660       {{{Empty, 2220}, {Full, 4}, {Empty, 32592}},
    661        {}};
     1086        {{{Empty, 2220}, {Full, 4}, {Empty, 32592}},
     1087         {}};
     1088    /** Code Point Ranges for Sinhala
     1089    [3456, 3583]**/
    6621090    const UnicodeSet sinhala_Set
    663       {{{Empty, 108}, {Full, 4}, {Empty, 34704}},
    664        {}};
     1091        {{{Empty, 108}, {Full, 4}, {Empty, 34704}},
     1092         {}};
     1093    /** Code Point Ranges for Sinhala_Archaic_Numbers
     1094    [70112, 70143]**/
    6651095    const UnicodeSet sinhala_archaic_numbers_Set
    666       {{{Empty, 2191}, {Full, 1}, {Empty, 32624}},
    667        {}};
     1096        {{{Empty, 2191}, {Full, 1}, {Empty, 32624}},
     1097         {}};
     1098    /** Code Point Ranges for Small_Forms
     1099    [65104, 65135]**/
    6681100    const UnicodeSet small_forms_Set
    669       {{{Empty, 2034}, {Mixed, 2}, {Empty, 32780}},
    670        {0xffff0000, 0x0000ffff}};
     1101        {{{Empty, 2034}, {Mixed, 2}, {Empty, 32780}},
     1102         {0xffff0000, 0x0000ffff}};
     1103    /** Code Point Ranges for Sora_Sompeng
     1104    [69840, 69887]**/
    6711105    const UnicodeSet sora_sompeng_Set
    672       {{{Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}},
    673        {0xffff0000}};
     1106        {{{Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}},
     1107         {0xffff0000}};
     1108    /** Code Point Ranges for Specials
     1109    [65520, 65535]**/
    6741110    const UnicodeSet specials_Set
    675       {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
    676        {0xffff0000}};
     1111        {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
     1112         {0xffff0000}};
     1113    /** Code Point Ranges for Sundanese
     1114    [7040, 7103]**/
    6771115    const UnicodeSet sundanese_Set
    678       {{{Empty, 220}, {Full, 2}, {Empty, 34594}},
    679        {}};
     1116        {{{Empty, 220}, {Full, 2}, {Empty, 34594}},
     1117         {}};
     1118    /** Code Point Ranges for Sundanese_Sup
     1119    [7360, 7375]**/
    6801120    const UnicodeSet sundanese_sup_Set
    681       {{{Empty, 230}, {Mixed, 1}, {Empty, 34585}},
    682        {0x0000ffff}};
     1121        {{{Empty, 230}, {Mixed, 1}, {Empty, 34585}},
     1122         {0x0000ffff}};
     1123    /** Code Point Ranges for Sup_Arrows_A
     1124    [10224, 10239]**/
    6831125    const UnicodeSet sup_arrows_a_Set
    684       {{{Empty, 319}, {Mixed, 1}, {Empty, 34496}},
    685        {0xffff0000}};
     1126        {{{Empty, 319}, {Mixed, 1}, {Empty, 34496}},
     1127         {0xffff0000}};
     1128    /** Code Point Ranges for Sup_Arrows_B
     1129    [10496, 10623]**/
    6861130    const UnicodeSet sup_arrows_b_Set
    687       {{{Empty, 328}, {Full, 4}, {Empty, 34484}},
    688        {}};
     1131        {{{Empty, 328}, {Full, 4}, {Empty, 34484}},
     1132         {}};
     1133    /** Code Point Ranges for Sup_Arrows_C
     1134    [129024, 129279]**/
    6891135    const UnicodeSet sup_arrows_c_Set
    690       {{{Empty, 4032}, {Full, 8}, {Empty, 30776}},
    691        {}};
     1136        {{{Empty, 4032}, {Full, 8}, {Empty, 30776}},
     1137         {}};
     1138    /** Code Point Ranges for Sup_Math_Operators
     1139    [10752, 11007]**/
    6921140    const UnicodeSet sup_math_operators_Set
    693       {{{Empty, 336}, {Full, 8}, {Empty, 34472}},
    694        {}};
     1141        {{{Empty, 336}, {Full, 8}, {Empty, 34472}},
     1142         {}};
     1143    /** Code Point Ranges for Sup_PUA_A
     1144    [983040, 1048575]**/
    6951145    const UnicodeSet sup_pua_a_Set
    696       {{{Empty, 30720}, {Full, 2048}, {Empty, 2048}},
    697        {}};
     1146        {{{Empty, 30720}, {Full, 2048}, {Empty, 2048}},
     1147         {}};
     1148    /** Code Point Ranges for Sup_PUA_B
     1149    [1048576, 1114111]**/
    6981150    const UnicodeSet sup_pua_b_Set
    699       {{{Empty, 32768}, {Full, 2048}},
    700        {}};
     1151        {{{Empty, 32768}, {Full, 2048}},
     1152         {}};
     1153    /** Code Point Ranges for Sup_Punctuation
     1154    [11776, 11903]**/
    7011155    const UnicodeSet sup_punctuation_Set
    702       {{{Empty, 368}, {Full, 4}, {Empty, 34444}},
    703        {}};
     1156        {{{Empty, 368}, {Full, 4}, {Empty, 34444}},
     1157         {}};
     1158    /** Code Point Ranges for Super_And_Sub
     1159    [8304, 8351]**/
    7041160    const UnicodeSet super_and_sub_Set
    705       {{{Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}},
    706        {0xffff0000}};
     1161        {{{Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}},
     1162         {0xffff0000}};
     1163    /** Code Point Ranges for Syloti_Nagri
     1164    [43008, 43055]**/
    7071165    const UnicodeSet syloti_nagri_Set
    708       {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    709        {0x0000ffff}};
     1166        {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
     1167         {0x0000ffff}};
     1168    /** Code Point Ranges for Syriac
     1169    [1792, 1871]**/
    7101170    const UnicodeSet syriac_Set
    711       {{{Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}},
    712        {0x0000ffff}};
     1171        {{{Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}},
     1172         {0x0000ffff}};
     1173    /** Code Point Ranges for Tagalog
     1174    [5888, 5919]**/
    7131175    const UnicodeSet tagalog_Set
    714       {{{Empty, 184}, {Full, 1}, {Empty, 34631}},
    715        {}};
     1176        {{{Empty, 184}, {Full, 1}, {Empty, 34631}},
     1177         {}};
     1178    /** Code Point Ranges for Tagbanwa
     1179    [5984, 6015]**/
    7161180    const UnicodeSet tagbanwa_Set
    717       {{{Empty, 187}, {Full, 1}, {Empty, 34628}},
    718        {}};
     1181        {{{Empty, 187}, {Full, 1}, {Empty, 34628}},
     1182         {}};
     1183    /** Code Point Ranges for Tags
     1184    [917504, 917631]**/
    7191185    const UnicodeSet tags_Set
    720       {{{Empty, 28672}, {Full, 4}, {Empty, 6140}},
    721        {}};
     1186        {{{Empty, 28672}, {Full, 4}, {Empty, 6140}},
     1187         {}};
     1188    /** Code Point Ranges for Tai_Le
     1189    [6480, 6527]**/
    7221190    const UnicodeSet tai_le_Set
    723       {{{Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}},
    724        {0xffff0000}};
     1191        {{{Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}},
     1192         {0xffff0000}};
     1193    /** Code Point Ranges for Tai_Tham
     1194    [6688, 6831]**/
    7251195    const UnicodeSet tai_tham_Set
    726       {{{Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}},
    727        {0x0000ffff}};
     1196        {{{Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}},
     1197         {0x0000ffff}};
     1198    /** Code Point Ranges for Tai_Viet
     1199    [43648, 43743]**/
    7281200    const UnicodeSet tai_viet_Set
    729       {{{Empty, 1364}, {Full, 3}, {Empty, 33449}},
    730        {}};
     1201        {{{Empty, 1364}, {Full, 3}, {Empty, 33449}},
     1202         {}};
     1203    /** Code Point Ranges for Tai_Xuan_Jing
     1204    [119552, 119647]**/
    7311205    const UnicodeSet tai_xuan_jing_Set
    732       {{{Empty, 3736}, {Full, 3}, {Empty, 31077}},
    733        {}};
     1206        {{{Empty, 3736}, {Full, 3}, {Empty, 31077}},
     1207         {}};
     1208    /** Code Point Ranges for Takri
     1209    [71296, 71375]**/
    7341210    const UnicodeSet takri_Set
    735       {{{Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}},
    736        {0x0000ffff}};
     1211        {{{Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}},
     1212         {0x0000ffff}};
     1213    /** Code Point Ranges for Tamil
     1214    [2944, 3071]**/
    7371215    const UnicodeSet tamil_Set
    738       {{{Empty, 92}, {Full, 4}, {Empty, 34720}},
    739        {}};
     1216        {{{Empty, 92}, {Full, 4}, {Empty, 34720}},
     1217         {}};
     1218    /** Code Point Ranges for Telugu
     1219    [3072, 3199]**/
    7401220    const UnicodeSet telugu_Set
    741       {{{Empty, 96}, {Full, 4}, {Empty, 34716}},
    742        {}};
     1221        {{{Empty, 96}, {Full, 4}, {Empty, 34716}},
     1222         {}};
     1223    /** Code Point Ranges for Thaana
     1224    [1920, 1983]**/
    7431225    const UnicodeSet thaana_Set
    744       {{{Empty, 60}, {Full, 2}, {Empty, 34754}},
    745        {}};
     1226        {{{Empty, 60}, {Full, 2}, {Empty, 34754}},
     1227         {}};
     1228    /** Code Point Ranges for Thai
     1229    [3584, 3711]**/
    7461230    const UnicodeSet thai_Set
    747       {{{Empty, 112}, {Full, 4}, {Empty, 34700}},
    748        {}};
     1231        {{{Empty, 112}, {Full, 4}, {Empty, 34700}},
     1232         {}};
     1233    /** Code Point Ranges for Tibetan
     1234    [3840, 4095]**/
    7491235    const UnicodeSet tibetan_Set
    750       {{{Empty, 120}, {Full, 8}, {Empty, 34688}},
    751        {}};
     1236        {{{Empty, 120}, {Full, 8}, {Empty, 34688}},
     1237         {}};
     1238    /** Code Point Ranges for Tifinagh
     1239    [11568, 11647]**/
    7521240    const UnicodeSet tifinagh_Set
    753       {{{Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}},
    754        {0xffff0000}};
     1241        {{{Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}},
     1242         {0xffff0000}};
     1243    /** Code Point Ranges for Tirhuta
     1244    [70784, 70879]**/
    7551245    const UnicodeSet tirhuta_Set
    756       {{{Empty, 2212}, {Full, 3}, {Empty, 32601}},
    757        {}};
     1246        {{{Empty, 2212}, {Full, 3}, {Empty, 32601}},
     1247         {}};
     1248    /** Code Point Ranges for Transport_And_Map
     1249    [128640, 128767]**/
    7581250    const UnicodeSet transport_and_map_Set
    759       {{{Empty, 4020}, {Full, 4}, {Empty, 30792}},
    760        {}};
     1251        {{{Empty, 4020}, {Full, 4}, {Empty, 30792}},
     1252         {}};
     1253    /** Code Point Ranges for UCAS
     1254    [5120, 5759]**/
    7611255    const UnicodeSet ucas_Set
    762       {{{Empty, 160}, {Full, 20}, {Empty, 34636}},
    763        {}};
     1256        {{{Empty, 160}, {Full, 20}, {Empty, 34636}},
     1257         {}};
     1258    /** Code Point Ranges for UCAS_Ext
     1259    [6320, 6399]**/
    7641260    const UnicodeSet ucas_ext_Set
    765       {{{Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}},
    766        {0xffff0000}};
     1261        {{{Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}},
     1262         {0xffff0000}};
     1263    /** Code Point Ranges for Ugaritic
     1264    [66432, 66463]**/
    7671265    const UnicodeSet ugaritic_Set
    768       {{{Empty, 2076}, {Full, 1}, {Empty, 32739}},
    769        {}};
     1266        {{{Empty, 2076}, {Full, 1}, {Empty, 32739}},
     1267         {}};
     1268    /** Code Point Ranges for Vai
     1269    [42240, 42559]**/
    7701270    const UnicodeSet vai_Set
    771       {{{Empty, 1320}, {Full, 10}, {Empty, 33486}},
    772        {}};
     1271        {{{Empty, 1320}, {Full, 10}, {Empty, 33486}},
     1272         {}};
     1273    /** Code Point Ranges for Vedic_Ext
     1274    [7376, 7423]**/
    7731275    const UnicodeSet vedic_ext_Set
    774       {{{Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}},
    775        {0xffff0000}};
     1276        {{{Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}},
     1277         {0xffff0000}};
     1278    /** Code Point Ranges for Vertical_Forms
     1279    [65040, 65055]**/
    7761280    const UnicodeSet vertical_forms_Set
    777       {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    778        {0xffff0000}};
     1281        {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
     1282         {0xffff0000}};
     1283    /** Code Point Ranges for VS
     1284    [65024, 65039]**/
    7791285    const UnicodeSet vs_Set
    780       {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    781        {0x0000ffff}};
     1286        {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
     1287         {0x0000ffff}};
     1288    /** Code Point Ranges for VS_Sup
     1289    [917760, 917999]**/
    7821290    const UnicodeSet vs_sup_Set
    783       {{{Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    784        {0x0000ffff}};
     1291        {{{Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
     1292         {0x0000ffff}};
     1293    /** Code Point Ranges for Warang_Citi
     1294    [71840, 71935]**/
    7851295    const UnicodeSet warang_citi_Set
    786       {{{Empty, 2245}, {Full, 3}, {Empty, 32568}},
    787        {}};
     1296        {{{Empty, 2245}, {Full, 3}, {Empty, 32568}},
     1297         {}};
     1298    /** Code Point Ranges for Yi_Radicals
     1299    [42128, 42191]**/
    7881300    const UnicodeSet yi_radicals_Set
    789       {{{Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}},
    790        {0xffff0000, 0x0000ffff}};
     1301        {{{Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}},
     1302         {0xffff0000, 0x0000ffff}};
     1303    /** Code Point Ranges for Yi_Syllables
     1304    [40960, 42127]**/
    7911305    const UnicodeSet yi_syllables_Set
    792       {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}},
    793        {0x0000ffff}};
     1306        {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}},
     1307         {0x0000ffff}};
     1308    /** Code Point Ranges for Yijing
     1309    [19904, 19967]**/
    7941310    const UnicodeSet yijing_Set
    795       {{{Empty, 622}, {Full, 2}, {Empty, 34192}},
    796        {}};
     1311        {{{Empty, 622}, {Full, 2}, {Empty, 34192}},
     1312         {}};
    7971313    static EnumeratedPropertyObject property_object
    798       {blk,
    799        BLK_ns::enum_names,
    800        BLK_ns::value_names,
    801        BLK_ns::aliases_only_map,
    802        {aegean_numbers_Set, alchemical_Set, alphabetic_pf_Set,
    803         ancient_greek_music_Set, ancient_greek_numbers_Set,
    804         ancient_symbols_Set, arabic_Set, arabic_ext_a_Set, arabic_math_Set,
    805         arabic_pf_a_Set, arabic_pf_b_Set, arabic_sup_Set, armenian_Set,
    806         arrows_Set, ascii_Set, avestan_Set, balinese_Set, bamum_Set,
    807         bamum_sup_Set, bassa_vah_Set, batak_Set, bengali_Set,
    808         block_elements_Set, bopomofo_Set, bopomofo_ext_Set, box_drawing_Set,
    809         brahmi_Set, braille_Set, buginese_Set, buhid_Set,
    810         byzantine_music_Set, carian_Set, caucasian_albanian_Set, chakma_Set,
    811         cham_Set, cherokee_Set, cjk_Set, cjk_compat_Set,
    812         cjk_compat_forms_Set, cjk_compat_ideographs_Set,
    813         cjk_compat_ideographs_sup_Set, cjk_ext_a_Set, cjk_ext_b_Set,
    814         cjk_ext_c_Set, cjk_ext_d_Set, cjk_radicals_sup_Set, cjk_strokes_Set,
    815         cjk_symbols_Set, compat_jamo_Set, control_pictures_Set, coptic_Set,
    816         coptic_epact_numbers_Set, counting_rod_Set, cuneiform_Set,
    817         cuneiform_numbers_Set, currency_symbols_Set, cypriot_syllabary_Set,
    818         cyrillic_Set, cyrillic_ext_a_Set, cyrillic_ext_b_Set,
    819         cyrillic_sup_Set, deseret_Set, devanagari_Set, devanagari_ext_Set,
    820         diacriticals_Set, diacriticals_ext_Set,
    821         diacriticals_for_symbols_Set, diacriticals_sup_Set, dingbats_Set,
    822         domino_Set, duployan_Set, egyptian_hieroglyphs_Set, elbasan_Set,
    823         emoticons_Set, enclosed_alphanum_Set, enclosed_alphanum_sup_Set,
    824         enclosed_cjk_Set, enclosed_ideographic_sup_Set, ethiopic_Set,
    825         ethiopic_ext_Set, ethiopic_ext_a_Set, ethiopic_sup_Set,
    826         geometric_shapes_Set, geometric_shapes_ext_Set, georgian_Set,
    827         georgian_sup_Set, glagolitic_Set, gothic_Set, grantha_Set,
    828         greek_Set, greek_ext_Set, gujarati_Set, gurmukhi_Set,
    829         half_and_full_forms_Set, half_marks_Set, hangul_Set, hanunoo_Set,
    830         hebrew_Set, high_pu_surrogates_Set, high_surrogates_Set,
    831         hiragana_Set, idc_Set, imperial_aramaic_Set, indic_number_forms_Set,
    832         inscriptional_pahlavi_Set, inscriptional_parthian_Set, ipa_ext_Set,
    833         jamo_Set, jamo_ext_a_Set, jamo_ext_b_Set, javanese_Set, kaithi_Set,
    834         kana_sup_Set, kanbun_Set, kangxi_Set, kannada_Set, katakana_Set,
    835         katakana_ext_Set, kayah_li_Set, kharoshthi_Set, khmer_Set,
    836         khmer_symbols_Set, khojki_Set, khudawadi_Set, lao_Set,
    837         latin_1_sup_Set, latin_ext_a_Set, latin_ext_additional_Set,
    838         latin_ext_b_Set, latin_ext_c_Set, latin_ext_d_Set, latin_ext_e_Set,
    839         lepcha_Set, letterlike_symbols_Set, limbu_Set, linear_a_Set,
    840         linear_b_ideograms_Set, linear_b_syllabary_Set, lisu_Set,
    841         low_surrogates_Set, lycian_Set, lydian_Set, mahajani_Set,
    842         mahjong_Set, malayalam_Set, mandaic_Set, manichaean_Set,
    843         math_alphanum_Set, math_operators_Set, meetei_mayek_Set,
    844         meetei_mayek_ext_Set, mende_kikakui_Set, meroitic_cursive_Set,
    845         meroitic_hieroglyphs_Set, miao_Set, misc_arrows_Set,
    846         misc_math_symbols_a_Set, misc_math_symbols_b_Set,
    847         misc_pictographs_Set, misc_symbols_Set, misc_technical_Set,
    848         modi_Set, modifier_letters_Set, modifier_tone_letters_Set,
    849         mongolian_Set, mro_Set, music_Set, myanmar_Set, myanmar_ext_a_Set,
    850         myanmar_ext_b_Set, nabataean_Set, nb_Set, new_tai_lue_Set, nko_Set,
    851         number_forms_Set, ocr_Set, ogham_Set, ol_chiki_Set, old_italic_Set,
    852         old_north_arabian_Set, old_permic_Set, old_persian_Set,
    853         old_south_arabian_Set, old_turkic_Set, oriya_Set,
    854         ornamental_dingbats_Set, osmanya_Set, pahawh_hmong_Set,
    855         palmyrene_Set, pau_cin_hau_Set, phags_pa_Set, phaistos_Set,
    856         phoenician_Set, phonetic_ext_Set, phonetic_ext_sup_Set,
    857         playing_cards_Set, psalter_pahlavi_Set, pua_Set, punctuation_Set,
    858         rejang_Set, rumi_Set, runic_Set, samaritan_Set, saurashtra_Set,
    859         sharada_Set, shavian_Set, shorthand_format_controls_Set,
    860         siddham_Set, sinhala_Set, sinhala_archaic_numbers_Set,
    861         small_forms_Set, sora_sompeng_Set, specials_Set, sundanese_Set,
    862         sundanese_sup_Set, sup_arrows_a_Set, sup_arrows_b_Set,
    863         sup_arrows_c_Set, sup_math_operators_Set, sup_pua_a_Set,
    864         sup_pua_b_Set, sup_punctuation_Set, super_and_sub_Set,
    865         syloti_nagri_Set, syriac_Set, tagalog_Set, tagbanwa_Set, tags_Set,
    866         tai_le_Set, tai_tham_Set, tai_viet_Set, tai_xuan_jing_Set,
    867         takri_Set, tamil_Set, telugu_Set, thaana_Set, thai_Set, tibetan_Set,
    868         tifinagh_Set, tirhuta_Set, transport_and_map_Set, ucas_Set,
    869         ucas_ext_Set, ugaritic_Set, vai_Set, vedic_ext_Set,
    870         vertical_forms_Set, vs_Set, vs_sup_Set, warang_citi_Set,
    871         yi_radicals_Set, yi_syllables_Set, yijing_Set
    872        }};
    873   }
     1314        {blk,
     1315         BLK_ns::enum_names,
     1316         BLK_ns::value_names,
     1317         BLK_ns::aliases_only_map,
     1318         {&aegean_numbers_Set, &alchemical_Set, &alphabetic_pf_Set,
     1319        &ancient_greek_music_Set, &ancient_greek_numbers_Set,
     1320        &ancient_symbols_Set, &arabic_Set, &arabic_ext_a_Set,
     1321        &arabic_math_Set, &arabic_pf_a_Set, &arabic_pf_b_Set,
     1322        &arabic_sup_Set, &armenian_Set, &arrows_Set, &ascii_Set,
     1323        &avestan_Set, &balinese_Set, &bamum_Set, &bamum_sup_Set,
     1324        &bassa_vah_Set, &batak_Set, &bengali_Set, &block_elements_Set,
     1325        &bopomofo_Set, &bopomofo_ext_Set, &box_drawing_Set, &brahmi_Set,
     1326        &braille_Set, &buginese_Set, &buhid_Set, &byzantine_music_Set,
     1327        &carian_Set, &caucasian_albanian_Set, &chakma_Set, &cham_Set,
     1328        &cherokee_Set, &cjk_Set, &cjk_compat_Set, &cjk_compat_forms_Set,
     1329        &cjk_compat_ideographs_Set, &cjk_compat_ideographs_sup_Set,
     1330        &cjk_ext_a_Set, &cjk_ext_b_Set, &cjk_ext_c_Set, &cjk_ext_d_Set,
     1331        &cjk_radicals_sup_Set, &cjk_strokes_Set, &cjk_symbols_Set,
     1332        &compat_jamo_Set, &control_pictures_Set, &coptic_Set,
     1333        &coptic_epact_numbers_Set, &counting_rod_Set, &cuneiform_Set,
     1334        &cuneiform_numbers_Set, &currency_symbols_Set,
     1335        &cypriot_syllabary_Set, &cyrillic_Set, &cyrillic_ext_a_Set,
     1336        &cyrillic_ext_b_Set, &cyrillic_sup_Set, &deseret_Set,
     1337        &devanagari_Set, &devanagari_ext_Set, &diacriticals_Set,
     1338        &diacriticals_ext_Set, &diacriticals_for_symbols_Set,
     1339        &diacriticals_sup_Set, &dingbats_Set, &domino_Set, &duployan_Set,
     1340        &egyptian_hieroglyphs_Set, &elbasan_Set, &emoticons_Set,
     1341        &enclosed_alphanum_Set, &enclosed_alphanum_sup_Set,
     1342        &enclosed_cjk_Set, &enclosed_ideographic_sup_Set, &ethiopic_Set,
     1343        &ethiopic_ext_Set, &ethiopic_ext_a_Set, &ethiopic_sup_Set,
     1344        &geometric_shapes_Set, &geometric_shapes_ext_Set, &georgian_Set,
     1345        &georgian_sup_Set, &glagolitic_Set, &gothic_Set, &grantha_Set,
     1346        &greek_Set, &greek_ext_Set, &gujarati_Set, &gurmukhi_Set,
     1347        &half_and_full_forms_Set, &half_marks_Set, &hangul_Set,
     1348        &hanunoo_Set, &hebrew_Set, &high_pu_surrogates_Set,
     1349        &high_surrogates_Set, &hiragana_Set, &idc_Set,
     1350        &imperial_aramaic_Set, &indic_number_forms_Set,
     1351        &inscriptional_pahlavi_Set, &inscriptional_parthian_Set,
     1352        &ipa_ext_Set, &jamo_Set, &jamo_ext_a_Set, &jamo_ext_b_Set,
     1353        &javanese_Set, &kaithi_Set, &kana_sup_Set, &kanbun_Set, &kangxi_Set,
     1354        &kannada_Set, &katakana_Set, &katakana_ext_Set, &kayah_li_Set,
     1355        &kharoshthi_Set, &khmer_Set, &khmer_symbols_Set, &khojki_Set,
     1356        &khudawadi_Set, &lao_Set, &latin_1_sup_Set, &latin_ext_a_Set,
     1357        &latin_ext_additional_Set, &latin_ext_b_Set, &latin_ext_c_Set,
     1358        &latin_ext_d_Set, &latin_ext_e_Set, &lepcha_Set,
     1359        &letterlike_symbols_Set, &limbu_Set, &linear_a_Set,
     1360        &linear_b_ideograms_Set, &linear_b_syllabary_Set, &lisu_Set,
     1361        &low_surrogates_Set, &lycian_Set, &lydian_Set, &mahajani_Set,
     1362        &mahjong_Set, &malayalam_Set, &mandaic_Set, &manichaean_Set,
     1363        &math_alphanum_Set, &math_operators_Set, &meetei_mayek_Set,
     1364        &meetei_mayek_ext_Set, &mende_kikakui_Set, &meroitic_cursive_Set,
     1365        &meroitic_hieroglyphs_Set, &miao_Set, &misc_arrows_Set,
     1366        &misc_math_symbols_a_Set, &misc_math_symbols_b_Set,
     1367        &misc_pictographs_Set, &misc_symbols_Set, &misc_technical_Set,
     1368        &modi_Set, &modifier_letters_Set, &modifier_tone_letters_Set,
     1369        &mongolian_Set, &mro_Set, &music_Set, &myanmar_Set,
     1370        &myanmar_ext_a_Set, &myanmar_ext_b_Set, &nabataean_Set, &nb_Set,
     1371        &new_tai_lue_Set, &nko_Set, &number_forms_Set, &ocr_Set, &ogham_Set,
     1372        &ol_chiki_Set, &old_italic_Set, &old_north_arabian_Set,
     1373        &old_permic_Set, &old_persian_Set, &old_south_arabian_Set,
     1374        &old_turkic_Set, &oriya_Set, &ornamental_dingbats_Set, &osmanya_Set,
     1375        &pahawh_hmong_Set, &palmyrene_Set, &pau_cin_hau_Set, &phags_pa_Set,
     1376        &phaistos_Set, &phoenician_Set, &phonetic_ext_Set,
     1377        &phonetic_ext_sup_Set, &playing_cards_Set, &psalter_pahlavi_Set,
     1378        &pua_Set, &punctuation_Set, &rejang_Set, &rumi_Set, &runic_Set,
     1379        &samaritan_Set, &saurashtra_Set, &sharada_Set, &shavian_Set,
     1380        &shorthand_format_controls_Set, &siddham_Set, &sinhala_Set,
     1381        &sinhala_archaic_numbers_Set, &small_forms_Set, &sora_sompeng_Set,
     1382        &specials_Set, &sundanese_Set, &sundanese_sup_Set,
     1383        &sup_arrows_a_Set, &sup_arrows_b_Set, &sup_arrows_c_Set,
     1384        &sup_math_operators_Set, &sup_pua_a_Set, &sup_pua_b_Set,
     1385        &sup_punctuation_Set, &super_and_sub_Set, &syloti_nagri_Set,
     1386        &syriac_Set, &tagalog_Set, &tagbanwa_Set, &tags_Set, &tai_le_Set,
     1387        &tai_tham_Set, &tai_viet_Set, &tai_xuan_jing_Set, &takri_Set,
     1388        &tamil_Set, &telugu_Set, &thaana_Set, &thai_Set, &tibetan_Set,
     1389        &tifinagh_Set, &tirhuta_Set, &transport_and_map_Set, &ucas_Set,
     1390        &ucas_ext_Set, &ugaritic_Set, &vai_Set, &vedic_ext_Set,
     1391        &vertical_forms_Set, &vs_Set, &vs_sup_Set, &warang_citi_Set,
     1392        &yi_radicals_Set, &yi_syllables_Set, &yijing_Set
     1393         }};
     1394    }
    8741395}
    8751396
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r4621 r4631  
    1414
    1515namespace UCD {
    16   namespace ALPHA_ns {
    17     const UnicodeSet codepoint_set
    18       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    19         {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    20         {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
    21         {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6},
    22         {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    23         {Mixed, 22}, {Empty, 1}, {Mixed, 19}, {Empty, 1}, {Mixed, 3},
    24         {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
    25         {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10},
    26         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
    27         {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    28         {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1},
    29         {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1},
    30         {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    31         {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    32         {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    33         {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    34         {Empty, 3}, {Mixed, 1}, {Full, 6}, {Empty, 1}, {Mixed, 1},
    35         {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    36         {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
    37         {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    38         {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
    39         {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 1},
    40         {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
    41         {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
    42         {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2},
    43         {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36}, {Mixed, 1},
    44         {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1},
    45         {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    46         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
    47         {Mixed, 6}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 1},
    48         {Mixed, 7}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349},
    49         {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2},
    50         {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    51         {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    52         {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    53         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    54         {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2},
    55         {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1},
    56         {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
    57         {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 1}, {Empty, 3},
    58         {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    59         {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 3}, {Mixed, 2},
    60         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    61         {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    62         {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 29},
    63         {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 1},
    64         {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    65         {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 8},
    66         {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 1},
    67         {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    68         {Mixed, 1}, {Empty, 15}, {Full, 2}, {Mixed, 1}, {Empty, 14},
    69         {Full, 1}, {Mixed, 1}, {Empty, 40}, {Full, 28}, {Mixed, 1},
    70         {Empty, 3}, {Full, 3}, {Mixed, 1}, {Empty, 92}, {Full, 33},
    71         {Mixed, 1}, {Empty, 414}, {Full, 17}, {Mixed, 2}, {Empty, 3},
    72         {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
    73         {Mixed, 3}, {Empty, 515}, {Mixed, 1}, {Empty, 95}, {Full, 3},
    74         {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1},
    75         {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
    76         {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 41}, {Mixed, 6},
    77         {Empty, 19}, {Mixed, 4}, {Empty, 115}, {Full, 1334}, {Mixed, 1},
    78         {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    79         {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    80        {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    81         0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
    82         0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
    83         0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
    84         0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
    85         0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
    86         0xfcffffff, 0x00001fff, 0x01ffffff, 0x0007ffff, 0xffff03f0,
    87         0xefffffff, 0xffe1dfff, 0xfffe000f, 0xfff99fef, 0xe3c5fdff,
    88         0xb080599f, 0x0003000f, 0xfff987ee, 0xc36dfdff, 0x5e021987,
    89         0x003f0000, 0xfffbbfee, 0xe3edfdff, 0x00011bbf, 0x0000000f,
    90         0xfff99fee, 0xe3edfdff, 0xb0c0199f, 0x0002000f, 0xd63dc7ec,
    91         0xc3ffc718, 0x00811dc7, 0xfffddfef, 0xe3fffdff, 0x03601ddf,
    92         0x0000000f, 0xfffddfee, 0xe3effdff, 0x40601ddf, 0x0006000f,
    93         0xfffddfee, 0xe7ffffff, 0x00805ddf, 0xfc00000f, 0xfc7fffec,
    94         0x2ffbffff, 0xff5f807f, 0x000c0000, 0xfffffffe, 0x07ffffff,
    95         0x0000207f, 0xfef02596, 0x3bffecae, 0xf000205f, 0x00000001,
    96         0xfffffeff, 0xfffe1fff, 0xfeffff03, 0x1fffffff, 0xf97fffff,
    97         0xffff0000, 0xffffc1e7, 0x3000407f, 0xffff20bf, 0xf7ffffff,
    98         0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
    99         0x87ffffff, 0x0000ffff, 0x001fffff, 0xfffffffe, 0xffff9fff,
    100         0x07fffffe, 0x01ffc7ff, 0x000fdfff, 0x000fffff, 0x000fffff,
    101         0x000ddfff, 0xffcfffff, 0x108001ff, 0x00ffffff, 0xffff07ff,
    102         0x003fffff, 0x7fffffff, 0x01ff0fff, 0xffff0000, 0x001f3fff,
    103         0xffff0fff, 0x000003ff, 0x0fffffff, 0x7fffffff, 0x001ffffe,
    104         0x00000080, 0xffefffff, 0x00000fef, 0xfc00f3ff, 0x0003ffbf,
    105         0x003fffff, 0xfc00e000, 0x3fffffff, 0x006fde00, 0x001fff80,
    106         0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
    107         0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf3ffbd50,
    108         0x000043e0, 0x000001ff, 0xffc00000, 0x000003ff, 0xffff7fff,
    109         0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
    110         0x7f7f7f7f, 0x7f7f7f7f, 0x00008000, 0x000000e0, 0x1f3e03fe,
    111         0xfffffffe, 0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0,
    112         0xfffe3fff, 0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff,
    113         0x00001fff, 0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff,
    114         0x00000c00, 0x8ff07fff, 0xbfffffff, 0x0000ffff, 0xff800000,
    115         0xfffffffc, 0xffff79ff, 0x00033fff, 0xff800000, 0xfffff7bb,
    116         0x000000ff, 0x000fffff, 0x0000000f, 0x08fc0000, 0xfffffc00,
    117         0xffff07ff, 0x0007ffff, 0x1fffffff, 0xfff7ffff, 0x00008000,
    118         0x7c00ffdf, 0x007fffff, 0x00003fff, 0xc47fffff, 0x7fffffff,
    119         0x38000005, 0x003cffff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff,
    120         0x00000030, 0x000007ff, 0xffff000f, 0xfffff87f, 0x0fffffff,
    121         0xffff3fff, 0x03ffffff, 0xe0f8007f, 0x5f7ffdff, 0xffffffdb,
    122         0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff,
    123         0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe,
    124         0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc, 0xffffefff,
    125         0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff,
    126         0x0001ffff, 0xffff0000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
    127         0x003eff0f, 0x3fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
    128         0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
    129         0x007fffff, 0x7fffffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
    130         0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
    131         0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
    132         0x000001ff, 0x0000003f, 0xfffffffc, 0x01ffffff, 0xffff0000,
    133         0x000001ff, 0x0007ffff, 0xffff0000, 0x0047ffff, 0x0400001e,
    134         0xfffbffff, 0x009fffff, 0xffff0000, 0x000001ff, 0xfff99fee,
    135         0xe3edfdff, 0xe080199f, 0x0000000f, 0x000000b3, 0x7f3fffff,
    136         0x7fffffff, 0x00000011, 0x003fffff, 0x80000000, 0x01ffffff,
    137         0x01ffffff, 0x00007fff, 0x00007fff, 0x01ffffff, 0x7fffffff,
    138         0xffff0000, 0x00003fff, 0x007fffff, 0x0000000f, 0xe0fffff8,
    139         0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000, 0x00000003,
    140         0x1fff07ff, 0x43ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
    141         0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
    142         0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
    143         0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f,
    144         0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    145         0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
    146         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}};
    147     static BinaryPropertyObject property_object{Alpha, codepoint_set};
    148   }
    149   namespace CI_ns {
    150     const UnicodeSet codepoint_set
    151       {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
    152         {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    153         {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
    154         {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
    155         {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Mixed, 22}, {Empty, 1},
    156         {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 1}, {Mixed, 2},
    157         {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
    158         {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
    159         {Empty, 2}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 18},
    160         {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
    161         {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    162         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
    163         {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    164         {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    165         {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    166         {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    167         {Empty, 13}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    168         {Mixed, 2}, {Empty, 91}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    169         {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 1},
    170         {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    171         {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1}, {Empty, 38},
    172         {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    173         {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    174         {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
    175         {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
    176         {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
    177         {Empty, 4}, {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 4},
    178         {Mixed, 2}, {Empty, 17}, {Mixed, 3}, {Empty, 4}, {Mixed, 6},
    179         {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
    180         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    181         {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
    182         {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1},
    183         {Empty, 4}, {Mixed, 6}, {Empty, 9}, {Mixed, 2}, {Empty, 6},
    184         {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    185         {Empty, 673}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33},
    186         {Mixed, 1}, {Empty, 615}, {Mixed, 2}, {Empty, 165}, {Mixed, 3},
    187         {Empty, 4}, {Mixed, 1}, {Empty, 179}, {Mixed, 1}, {Empty, 24761},
    188         {Mixed, 1}, {Full, 3}, {Empty, 4}, {Full, 7}, {Mixed, 1},
    189         {Empty, 6128}},
    190        {0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
    191         0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
    192         0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
    193         0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
    194         0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
    195         0x0e000000, 0xfffffff0, 0x00000007, 0x14000000, 0x00fe21fe,
    196         0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
    197         0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
    198         0x10000000, 0x000021be, 0x0000000c, 0x00000002, 0x90000000,
    199         0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
    200         0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
    201         0x00003040, 0x0000000c, 0x00000002, 0x0000201e, 0x0000000c,
    202         0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000, 0x00003f40,
    203         0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
    204         0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
    205         0x10000000, 0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000,
    206         0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800, 0x00000008,
    207         0x00000200, 0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5,
    208         0x7fff0080, 0x0000000f, 0x17d00000, 0x00000004, 0x000ff800,
    209         0x00000003, 0x00003b3c, 0x0003a340, 0x00cff000, 0x3f000000,
    210         0xfff70000, 0x031021fd, 0xfffff000, 0x010007ff, 0xf8000000,
    211         0xf03fffff, 0xa0000000, 0xe000e003, 0x6000e000, 0x0300f800,
    212         0x00007c90, 0x8002ffdf, 0x1fff0000, 0xffff0000, 0x0001ffff,
    213         0x30000000, 0x00038000, 0x80008000, 0x00008000, 0x00000020,
    214         0x083e3c00, 0x7e000000, 0x70000000, 0x00200000, 0x3f000000,
    215         0x00001000, 0xbff78000, 0xb0000000, 0x00030000, 0x00000003,
    216         0x00010000, 0x00000700, 0x03000000, 0x00000844, 0x00000060,
    217         0x00000010, 0x0003ffff, 0x00003fc0, 0x0003ff80, 0x00000007,
    218         0x13c80000, 0x00008000, 0x00000060, 0x00667e00, 0x00001008,
    219         0x10010000, 0xc19d0000, 0x20000002, 0x00583000, 0xf8000000,
    220         0x00002120, 0x40000000, 0xfffc0000, 0x00000003, 0x0008ffff,
    221         0x00003fff, 0x00240000, 0x80000000, 0x04004080, 0x40000000,
    222         0x00000001, 0x00010000, 0xc0000000, 0x0e000008, 0x20000000,
    223         0x00000001, 0x07c00000, 0x0000f06e, 0x87000000, 0x00000060,
    224         0x00000002, 0xff000000, 0x0000007f, 0x80000000, 0x00000003,
    225         0x26780000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
    226         0x7fc00000, 0x00d38000, 0x80000000, 0x000007f8, 0x00000002,
    227         0x10000000, 0x00000001, 0x001f1fc0, 0x85f80000, 0x0000000d,
    228         0xb03c0000, 0x00000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    229         0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000, 0x60000000,
    230         0x0000000f, 0xfff80380, 0x00000fe7, 0x00003c00, 0x0000001c,
    231         0x007f0000, 0x00000002, 0x0000ffff}};
    232     static BinaryPropertyObject property_object{CI, codepoint_set};
    233   }
    234   namespace CWCF_ns {
    235     const UnicodeSet codepoint_set
    236       {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    237         {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
    238         {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
    239         {Full, 1}, {Mixed, 1}, {Empty, 105}, {Mixed, 12}, {Full, 1},
    240         {Mixed, 3}, {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    241         {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1},
    242         {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4},
    243         {Mixed, 5}, {Empty, 666}, {Mixed, 1}, {Empty, 32}, {Mixed, 1},
    244         {Empty, 38}, {Full, 1}, {Mixed, 1}, {Empty, 163}, {Full, 1},
    245         {Empty, 32570}},
    246        {0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
    247         0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
    248         0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
    249         0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
    250         0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
    251         0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
    252         0x000020bf, 0x55555555, 0x55555555, 0x55555555, 0x55555555,
    253         0x4c155555, 0x55555555, 0x55555555, 0x55555555, 0x3f00ff00,
    254         0xff00ff00, 0xaa003f00, 0x0000ff00, 0x1f9cffff, 0x0f001f9c,
    255         0x1f9c1f00, 0x00040c40, 0x0000ffff, 0x00000008, 0xffc00000,
    256         0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
    257         0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
    258         0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x00033d55,
    259         0x00f8007f, 0x07fffffe, 0x000000ff}};
    260     static BinaryPropertyObject property_object{CWCF, codepoint_set};
    261   }
    262   namespace CWCM_ns {
    263     const UnicodeSet codepoint_set
    264       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    265         {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
    266         {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
    267         {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 100},
    268         {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
    269         {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
    270         {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    271         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
    272         {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    273         {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    274         {Full, 1}, {Mixed, 3}, {Empty, 666}, {Mixed, 1}, {Empty, 32},
    275         {Mixed, 2}, {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 162},
    276         {Full, 2}, {Empty, 32569}},
    277        {0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
    278         0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
    279         0x1adfffff, 0x20269b6b, 0x40041f89, 0x00000020, 0xb8cf0000,
    280         0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
    281         0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
    282         0x22000000, 0x4fffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    283         0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x00040c40, 0x00004000,
    284         0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
    285         0xc06dffff, 0x000c780f, 0x000020bf, 0x00003fff, 0x0fffffff,
    286         0xfffcfffc, 0xfe00ffff, 0xffcf38ff, 0x00033fff, 0x00f8007f,
    287         0x07fffffe, 0x07fffffe, 0x0000ffff}};
    288     static BinaryPropertyObject property_object{CWCM, codepoint_set};
    289   }
    290   namespace CWL_ns {
    291     const UnicodeSet codepoint_set
    292       {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    293         {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
    294         {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
    295         {Empty, 105}, {Mixed, 16}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
    296         {Mixed, 2}, {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1},
    297         {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
    298         {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
    299         {Full, 1}, {Mixed, 1}, {Empty, 163}, {Full, 1}, {Empty, 32570}},
    300        {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
    301         0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
    302         0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
    303         0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
    304         0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    305         0xfffe5555, 0x007fffff, 0x000020bf, 0x55555555, 0x55555555,
    306         0x55555555, 0x55555555, 0x40155555, 0x55555555, 0x55555555,
    307         0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
    308         0xff00ff00, 0x1f00ff00, 0x0f001f00, 0x1f001f00, 0x00040c40,
    309         0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff,
    310         0xc025ea9d, 0x55555555, 0x55555555, 0x55555555, 0x00042805,
    311         0x55555555, 0x00001555, 0x05555555, 0x55545554, 0x55555555,
    312         0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe, 0x000000ff}};
    313     static BinaryPropertyObject property_object{CWL, codepoint_set};
    314   }
    315   namespace CWT_ns {
    316     const UnicodeSet codepoint_set
    317       {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
    318         {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
    319         {Empty, 1}, {Mixed, 2}, {Empty, 190}, {Mixed, 1}, {Empty, 4},
    320         {Mixed, 16}, {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2},
    321         {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968},
    322         {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 666}, {Mixed, 1},
    323         {Empty, 33}, {Mixed, 1}, {Empty, 38}, {Mixed, 2}, {Empty, 163},
    324         {Full, 1}, {Empty, 32569}},
    325        {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    326         0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
    327         0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
    328         0x20269b6b, 0x40041f89, 0x00000020, 0x388a0000, 0x00010000,
    329         0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
    330         0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
    331         0x0000aaaa, 0xfffffffe, 0x000000ff, 0x22000000, 0xaaaaaaaa,
    332         0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0feaaaaa, 0xaaaaaaaa,
    333         0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f,
    334         0x3fff00ff, 0x00ff00ff, 0x40df00ff, 0x00cf00dc, 0x00dc00ff,
    335         0x00004000, 0xffff0000, 0x00000010, 0xffff0000, 0x000003ff,
    336         0xffff0000, 0x7fffffff, 0x00481562, 0xaaaaaaaa, 0xaaaaaaaa,
    337         0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa,
    338         0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa,
    339         0x000002aa, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}};
    340     static BinaryPropertyObject property_object{CWT, codepoint_set};
    341   }
    342   namespace CWU_ns {
    343     const UnicodeSet codepoint_set
    344       {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
    345         {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
    346         {Empty, 1}, {Mixed, 2}, {Empty, 190}, {Mixed, 1}, {Empty, 4},
    347         {Mixed, 12}, {Full, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 3},
    348         {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1},
    349         {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
    350         {Empty, 666}, {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38},
    351         {Mixed, 2}, {Empty, 163}, {Full, 1}, {Empty, 32569}},
    352        {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    353         0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
    354         0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
    355         0x20269b6b, 0x40041f89, 0x00000020, 0x388a0000, 0x00010000,
    356         0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
    357         0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
    358         0x0000aaaa, 0xfffffffe, 0x000000ff, 0x22000000, 0xaaaaaaaa,
    359         0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0feaaaaa, 0xaaaaaaaa,
    360         0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f,
    361         0x3fff00ff, 0x50dfffff, 0x00cf10dc, 0x10dc00ff, 0x00004000,
    362         0xffff0000, 0x00000010, 0xffff0000, 0x000003ff, 0xffff0000,
    363         0x7fffffff, 0x00481562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    364         0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa,
    365         0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa, 0x000002aa,
    366         0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}};
    367     static BinaryPropertyObject property_object{CWU, codepoint_set};
    368   }
    369   namespace CASED_ns {
    370     const UnicodeSet codepoint_set
    371       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
    372         {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
    373         {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4},
    374         {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 97}, {Full, 6},
    375         {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
    376         {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3},
    377         {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1},
    378         {Mixed, 1}, {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4},
    379         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Full, 1},
    380         {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    381         {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Empty, 636},
    382         {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37}, {Full, 2},
    383         {Mixed, 1}, {Empty, 162}, {Full, 2}, {Empty, 1497}, {Full, 2},
    384         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    385         {Full, 10}, {Mixed, 10}, {Empty, 202}, {Mixed, 4}, {Empty, 30835}},
    386        {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    387         0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
    388         0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
    389         0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
    390         0x000000ff, 0x000020bf, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    391         0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
    392         0x3e2ffc84, 0xf21fbd50, 0x000043e0, 0x00000018, 0xffc00000,
    393         0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f, 0x000020bf,
    394         0x00003fff, 0x3fffffff, 0xfffffffc, 0xffff78ff, 0x00033fff,
    395         0x07000000, 0xffff0000, 0xf7ffffff, 0x00000030, 0x00f8007f,
    396         0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffdfffff, 0xdfffffff,
    397         0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    398         0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    399         0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
    400         0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff}};
    401     static BinaryPropertyObject property_object{Cased, codepoint_set};
    402   }
    403   namespace DI_ns {
    404     const UnicodeSet codepoint_set
    405       {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
    406         {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
    407         {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
    408         {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636}, {Mixed, 1},
    409         {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
    410         {Mixed, 1}, {Empty, 1509}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
    411         {Empty, 24948}, {Full, 128}, {Empty, 6016}},
    412        {0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
    413         0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
    414         0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
    415         0x0000000f, 0x07f80000}};
    416     static BinaryPropertyObject property_object{DI, codepoint_set};
    417   }
    418   namespace GR_BASE_ns {
    419     const UnicodeSet codepoint_set
    420       {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    421         {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
    422         {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
    423         {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2},
    424         {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1}, {Mixed, 3},
    425         {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1}, {Mixed, 4},
    426         {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Full, 1},
    427         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2},
    428         {Mixed, 1}, {Full, 20}, {Mixed, 1}, {Full, 2}, {Mixed, 5},
    429         {Full, 1}, {Mixed, 4}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    430         {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    431         {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Full, 1},
    432         {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
    433         {Mixed, 2}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
    434         {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 3},
    435         {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 18}, {Mixed, 1},
    436         {Full, 1}, {Mixed, 2}, {Full, 56}, {Mixed, 4}, {Empty, 1},
    437         {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    438         {Full, 1}, {Mixed, 4}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    439         {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
    440         {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3},
    441         {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 6},
    442         {Mixed, 1}, {Full, 213}, {Mixed, 1}, {Full, 656}, {Mixed, 1},
    443         {Empty, 1}, {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    444         {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    445         {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    446         {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7},
    447         {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
    448         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    449         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    450         {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 11},
    451         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    452         {Mixed, 2}, {Full, 3}, {Mixed, 7}, {Empty, 1}, {Full, 3},
    453         {Mixed, 3}, {Full, 2}, {Mixed, 4}, {Empty, 4}, {Mixed, 1},
    454         {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    455         {Empty, 1}, {Full, 4}, {Mixed, 2}, {Empty, 2}, {Full, 1},
    456         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    457         {Mixed, 3}, {Empty, 4}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
    458         {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Full, 1}, {Mixed, 1},
    459         {Empty, 2}, {Mixed, 3}, {Full, 2}, {Empty, 1}, {Full, 1},
    460         {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 2}, {Full, 2},
    461         {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 12}, {Mixed, 18},
    462         {Empty, 3}, {Mixed, 7}, {Empty, 8}, {Full, 1}, {Mixed, 2},
    463         {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    464         {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 14},
    465         {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1},
    466         {Empty, 40}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
    467         {Mixed, 1}, {Empty, 92}, {Full, 33}, {Mixed, 1}, {Empty, 414},
    468         {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
    469         {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 515},
    470         {Mixed, 1}, {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 155},
    471         {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
    472         {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 2},
    473         {Mixed, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Full, 1},
    474         {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    475         {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 128}, {Full, 6},
    476         {Mixed, 1}, {Empty, 41}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    477         {Empty, 8}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1},
    478         {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Empty, 5}, {Full, 1},
    479         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
    480         {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 4},
    481         {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2},
    482         {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    483         {Full, 1}, {Mixed, 2}, {Empty, 58}, {Full, 1334}, {Mixed, 1},
    484         {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    485         {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    486        {0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
    487         0xfffffc07, 0xfffeffff, 0xfe7fffff, 0xfffffffe, 0x0000e6ff,
    488         0x40000000, 0xffff0049, 0x001f07ff, 0xc800ffc0, 0x000007ff,
    489         0xfffeffff, 0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff,
    490         0xffffe000, 0x0002003f, 0x07f007ff, 0x043fffff, 0x7fff0110,
    491         0x41ffffff, 0x0007ffff, 0xfffffff8, 0xebffffff, 0xff01de01,
    492         0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981, 0x0fffffc3,
    493         0xfff987e8, 0xc36dfdff, 0x5e000001, 0x001cffc0, 0xfffbbfe8,
    494         0xe3edfdff, 0x00011a01, 0x0003ffc3, 0xfff99fec, 0x23edfdff,
    495         0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718, 0x00011dc6,
    496         0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0300001e, 0xff00ffc3,
    497         0xfffddfec, 0x63effdff, 0x40000d9b, 0x0006ffc3, 0xfffddfec,
    498         0xa7ffffff, 0x00005dc1, 0xfe3fffc3, 0xfc7fffec, 0x2ffbffff,
    499         0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff, 0x0fff807f,
    500         0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff, 0xfd5fffff,
    501         0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000, 0x07ffdfbf,
    502         0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b, 0xffff20bf,
    503         0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
    504         0x07ffffff, 0x1fffffff, 0x03ffffff, 0x001fffff, 0x1fffffff,
    505         0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff, 0x0001dfff,
    506         0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff, 0x00ffffff,
    507         0xffff05ff, 0x003fffff, 0x7fffffff, 0x01fb0e78, 0xfffffff1,
    508         0x001f3fff, 0xffff0fff, 0xc7ff03ff, 0xc67fffff, 0x00bfffff,
    509         0x0007e01a, 0x03ff03ff, 0x00003fff, 0xfffffff0, 0xe82fffff,
    510         0xffff0ffb, 0x1ff007ff, 0xfffffffc, 0xffffc4c3, 0xf00c5cbf,
    511         0xf8300fff, 0xffffe3ff, 0x000800ff, 0x006fde02, 0x3f3fffff,
    512         0xaaff3f3f, 0x3fffffff, 0xffdfffff, 0xefcfffdf, 0x7fdcffff,
    513         0xffff07ff, 0xffff80ff, 0xfff30000, 0x1fff7fff, 0x3fffffff,
    514         0xffff03ff, 0x07ffffff, 0x0000007f, 0x000007ff, 0xffcfffff,
    515         0xff3fffff, 0xe3ffffff, 0x0003fdff, 0xffff7fff, 0x7fffffff,
    516         0xfe0c7fff, 0xffff20bf, 0x000180ff, 0x007fffff, 0x7f7f7f7f,
    517         0x7f7f7f7f, 0x00000007, 0xfbffffff, 0x000fffff, 0x003fffff,
    518         0x0fff0000, 0xffff03ff, 0xfffffffe, 0xf87fffff, 0xffffffe0,
    519         0xfffe3fff, 0xffff7fff, 0x07ffffff, 0xffff000f, 0x7fffffff,
    520         0x7fffffff, 0x003fffff, 0x00001fff, 0xffff1fff, 0xffff007f,
    521         0x00000fff, 0xc0087fff, 0x3fffffff, 0x00fcffff, 0xffff7fff,
    522         0x00033fff, 0xff800000, 0xfffff7bb, 0x03ff0f9f, 0x00ffffff,
    523         0x03ffc00f, 0x0ffc0000, 0xffffc03f, 0x800c007f, 0x1fffffff,
    524         0xfffffff8, 0xec37ffff, 0xc3ffbfff, 0x7fffffdf, 0x001981ff,
    525         0xf3ff2ff7, 0xefffffff, 0x3e62ffff, 0xf8000005, 0x003fcfff,
    526         0x007e7e7e, 0xffff7f7f, 0x00000030, 0x03ff1edf, 0xffff000f,
    527         0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f,
    528         0x5f7fffff, 0xffffffdb, 0xfff80003, 0xffff0000, 0xfffcffff,
    529         0x000000ff, 0x3fff0000, 0x03ff0000, 0xffff0000, 0xfff7ffff,
    530         0xffdf0f7f, 0x1fffffff, 0xfffffffe, 0x3fffffff, 0x7fffffff,
    531         0x1cfcfcfc, 0x30007f7f, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
    532         0x07ffffff, 0xffffff87, 0xff8fffff, 0x0fff1fff, 0x00000001,
    533         0xffff0000, 0x1fffffff, 0x1fffffff, 0x0001ffff, 0x0ffffffe,
    534         0xffff000f, 0xffff07ff, 0x003fffff, 0xbfffffff, 0x003fff0f,
    535         0x3fffffff, 0x000003ff, 0xffff00ff, 0x0000800f, 0x007fffff,
    536         0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0xffbfffff,
    537         0x7fffffff, 0x0000ff80, 0x8fffffff, 0x83ffffff, 0xc0ffffff,
    538         0xfeef0001, 0x000fffff, 0x01ff00ff, 0x007ff81f, 0xfe3fffff,
    539         0xff3fffff, 0xff07ffff, 0x1e03ffff, 0x0000fe00, 0x000001ff,
    540         0x7fffffff, 0xfffffffd, 0x00ffffff, 0xfffc3f80, 0x0000ffff,
    541         0xfffffffc, 0xd987ffff, 0xffff0003, 0x03ff01ff, 0xfffffff8,
    542         0xffc0107f, 0xffff000f, 0x0077ffff, 0xfffffffc, 0x803fffff,
    543         0x07ff21ff, 0x001ffffe, 0xfffbffff, 0x3f2c7fff, 0xffff0000,
    544         0x7fffffff, 0x03ff0007, 0xfff99fec, 0xa3edfdff, 0xe000399e,
    545         0x0000000f, 0x5a06ffff, 0x03ff00f2, 0x4f037fff, 0x000003fe,
    546         0x5807ffff, 0x03ff001e, 0x0040d7ff, 0x000003ff, 0x8007ffff,
    547         0x01ffffff, 0x01ffffff, 0x001f7fff, 0x00007fff, 0x01ffffff,
    548         0x7fffffff, 0x0000c3ff, 0xffff0000, 0x00203fff, 0xff80ffff,
    549         0xfbff003f, 0xe0fffffb, 0x0000ffff, 0xffff001f, 0x7fffffff,
    550         0xfff80000, 0x00000003, 0x1fff07ff, 0x93ff01ff, 0x003fffff,
    551         0xfffffe7f, 0x00003c5f, 0xfffff018, 0xffffc3ff, 0x3fffffff,
    552         0x00000023, 0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff,
    553         0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    554         0xffffff3f, 0xffffcfff, 0x0000ff9f, 0xffffffef, 0x0af7fe96,
    555         0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000,
    556         0xffff0fff, 0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff,
    557         0xffff1fff, 0xffff7fff, 0xffff0fff, 0x07ffffff, 0xffffffc0,
    558         0xffff0007, 0x07ffffff, 0x000301ff, 0xffff1fff, 0x3fffffff,
    559         0xfff07fff, 0x00ffffff, 0x7fffffff, 0xffff07ff, 0xfbffffff,
    560         0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff, 0x000fffff,
    561         0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
    562         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}};
    563     static BinaryPropertyObject property_object{Gr_Base, codepoint_set};
    564   }
    565   namespace GR_EXT_ns {
    566     const UnicodeSet codepoint_set
    567       {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    568         {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    569         {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
    570         {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Mixed, 24}, {Empty, 1},
    571         {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    572         {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    573         {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
    574         {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    575         {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    576         {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    577         {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    578         {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
    579         {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
    580         {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    581         {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
    582         {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    583         {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
    584         {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    585         {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
    586         {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
    587         {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
    588         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    589         {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
    590         {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1},
    591         {Empty, 4}, {Mixed, 6}, {Empty, 9}, {Mixed, 2}, {Empty, 6},
    592         {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    593         {Empty, 673}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34},
    594         {Mixed, 1}, {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3},
    595         {Empty, 4}, {Mixed, 1}, {Empty, 179}, {Mixed, 1}, {Empty, 24769},
    596         {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    597        {0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
    598         0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
    599         0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
    600         0xfbc00000, 0x00003eef, 0x0e000000, 0xfffffff0, 0x00000007,
    601         0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002, 0x50000000,
    602         0x0080201e, 0x0000000c, 0x00000006, 0x10000000, 0x00023986,
    603         0x00230000, 0x00000006, 0x10000000, 0x000021be, 0x0000000c,
    604         0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c, 0x00000004,
    605         0x40000000, 0x00802001, 0x00000001, 0xc0000000, 0x00603dc1,
    606         0x0000000c, 0x00000002, 0x90000000, 0x00603044, 0x0000000c,
    607         0x00000002, 0x40000000, 0x0080201e, 0x0000000c, 0x805c8400,
    608         0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00, 0x03000000,
    609         0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff, 0x00000040,
    610         0x66fde000, 0xc3000000, 0x001e0001, 0x20002064, 0xe0000000,
    611         0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000, 0x3fb00000,
    612         0x200ffe40, 0x00003800, 0x00000200, 0x0e040187, 0x09800000,
    613         0x7f400000, 0x9ff81fe5, 0x7fff0000, 0x0000000f, 0x17d00000,
    614         0x00000004, 0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340,
    615         0x00cff000, 0xfff70000, 0x031021fd, 0xf03fffff, 0x00003000,
    616         0xffff0000, 0x0001ffff, 0x00038000, 0x80000000, 0x0000fc00,
    617         0x06000000, 0x3ff78000, 0x80000000, 0x00030000, 0x00000844,
    618         0x00000060, 0x00000010, 0x0003ffff, 0x00003fc0, 0x0003ff80,
    619         0x00000007, 0x13c80000, 0x00000020, 0x00667e00, 0x00001008,
    620         0x10000000, 0xc19d0000, 0x00000002, 0x00403000, 0x00002120,
    621         0x40000000, 0x0000ffff, 0x00003fff, 0xc0000000, 0x20000000,
    622         0x00000001, 0x07c00000, 0x0000f06e, 0x87000000, 0x00000060,
    623         0x00000002, 0xff000000, 0x0000007f, 0x80000000, 0x00000003,
    624         0x06780000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
    625         0x7fc00000, 0x00d38000, 0x80000000, 0x000007f8, 0x00000002,
    626         0x50000000, 0x00800001, 0x001f1fc0, 0xa5f90000, 0x0000000d,
    627         0xb03c8000, 0x00000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    628         0x001f0000, 0x007f0000, 0x00078000, 0x60000000, 0xf807c3a0,
    629         0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x0000ffff}};
    630     static BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
    631   }
    632   namespace GR_LINK_ns {
    633     const UnicodeSet codepoint_set
    634       {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    635         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    636         {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    637         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    638         {Empty, 2}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 4},
    639         {Mixed, 1}, {Empty, 54}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    640         {Empty, 20}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2},
    641         {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 139}, {Mixed, 1},
    642         {Empty, 980}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
    643         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    644         {Empty, 7}, {Mixed, 1}, {Empty, 753}, {Mixed, 1}, {Empty, 48},
    645         {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    646         {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
    647         {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
    648         {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    649         {Mixed, 1}, {Empty, 32586}},
    650        {0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
    651         0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00000400,
    652         0x04000000, 0x00000010, 0x06000000, 0x00100000, 0x00100000,
    653         0x00040000, 0x00000001, 0x00000010, 0x00000c00, 0x000c0000,
    654         0x80000000, 0x00000040, 0x00000010, 0x00080000, 0x00000001,
    655         0x00400000, 0x00002000, 0x80000000, 0x00000040, 0x80000000,
    656         0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
    657         0x00002000, 0x00000004, 0x80000000, 0x80000000, 0x00400000}};
    658     static BinaryPropertyObject property_object{Gr_Link, codepoint_set};
    659   }
    660   namespace IDC_ns {
    661     const UnicodeSet codepoint_set
    662       {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    663         {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
    664         {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2}, {Mixed, 1}, {Full, 2},
    665         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    666         {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    667         {Empty, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 40}, {Empty, 1},
    668         {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 2},
    669         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    670         {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    671         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    672         {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
    673         {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    674         {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    675         {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    676         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    677         {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    678         {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
    679         {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1},
    680         {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    681         {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
    682         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    683         {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
    684         {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
    685         {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
    686         {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    687         {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    688         {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
    689         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 6},
    690         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    691         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    692         {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
    693         {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
    694         {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    695         {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
    696         {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    697         {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    698         {Empty, 1}, {Full, 4}, {Mixed, 2}, {Empty, 2}, {Full, 1},
    699         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    700         {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 3}, {Mixed, 2},
    701         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    702         {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    703         {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 29},
    704         {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    705         {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3},
    706         {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 8}, {Full, 2},
    707         {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
    708         {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2},
    709         {Empty, 14}, {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1},
    710         {Mixed, 1}, {Empty, 40}, {Full, 28}, {Mixed, 1}, {Empty, 3},
    711         {Full, 3}, {Mixed, 1}, {Empty, 92}, {Full, 33}, {Mixed, 1},
    712         {Empty, 414}, {Full, 17}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    713         {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3},
    714         {Empty, 515}, {Mixed, 1}, {Empty, 95}, {Full, 3}, {Mixed, 2},
    715         {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 13},
    716         {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    717         {Full, 10}, {Mixed, 10}, {Full, 1}, {Empty, 128}, {Full, 6},
    718         {Mixed, 1}, {Empty, 41}, {Mixed, 6}, {Empty, 138}, {Full, 1334},
    719         {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6},
    720         {Mixed, 1}, {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 22583},
    721         {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    722        {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
    723         0xff7fffff, 0x0003ffc3, 0x0000501f, 0xbcdfffff, 0xffffd7c0,
    724         0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
    725         0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
    726         0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
    727         0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
    728         0x0007ffff, 0xfffffff0, 0xfffeffcf, 0xfff99fef, 0xf3c5fdff,
    729         0xb080799f, 0x0003ffcf, 0xfff987ee, 0xd36dfdff, 0x5e023987,
    730         0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf, 0x0000ffcf,
    731         0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf, 0xd63dc7ec,
    732         0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfef, 0xe3fffdff,
    733         0x03603ddf, 0x0000ffcf, 0xfffddfee, 0xf3effdff, 0x40603ddf,
    734         0x0006ffcf, 0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfc00ffcf,
    735         0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0, 0xfffffffe,
    736         0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae, 0xf3ff3f5f,
    737         0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff, 0xfeffffdf,
    738         0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff, 0xffff20bf,
    739         0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    740         0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff, 0x001fffff,
    741         0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x001fdfff,
    742         0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff, 0x000003ff,
    743         0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff,
    744         0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff, 0x07ff03ff,
    745         0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x3fff0080,
    746         0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff, 0xffffe3ff,
    747         0x3fffffff, 0xfff70000, 0x037fffff, 0xf03fffff, 0x3f3fffff,
    748         0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    749         0x80000000, 0x00100001, 0x80020000, 0x1fff0000, 0x1fff0000,
    750         0x0001ffe2, 0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff,
    751         0xffff7fff, 0x7fffffff, 0x000ff81f, 0xffff20bf, 0x800080ff,
    752         0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3efffe,
    753         0xfffffffe, 0xfe7fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0,
    754         0xfffe3fff, 0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff,
    755         0x00001fff, 0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff,
    756         0x00000fff, 0xbff0ffff, 0xbfffffff, 0x0003ffff, 0xff800000,
    757         0xfffffffc, 0xffff79ff, 0x00033fff, 0xff800000, 0x000000ff,
    758         0x000fffff, 0x03ff001f, 0x08ffffff, 0xffff3fff, 0x000fffff,
    759         0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff, 0x03ff3fff,
    760         0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e, 0xffff7f7f,
    761         0xf7ffffff, 0x00000030, 0x03ff37ff, 0xffff000f, 0xfffff87f,
    762         0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f, 0x5f7ffdff,
    763         0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
    764         0xfffcffff, 0x000000ff, 0x0fff0000, 0x0000ffff, 0x00183fff,
    765         0x0000e000, 0xffdf0000, 0x1fffffff, 0x03ff0000, 0x87fffffe,
    766         0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc, 0xffffefff,
    767         0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff, 0x20000000,
    768         0x1fffffff, 0x0001ffff, 0x00000001, 0xffff0000, 0xffff07ff,
    769         0x07ffffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0x000003ff,
    770         0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff,
    771         0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff,
    772         0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeeff06f, 0x870fffff,
    773         0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000007f, 0x003fffff,
    774         0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff, 0x0000007f,
    775         0x8000ffc0, 0x07ffffff, 0xffff0000, 0x03ff01ff, 0xffdfffff,
    776         0xffff0000, 0x004fffff, 0x07ff001f, 0xfffbffff, 0x00ffffff,
    777         0xffff0000, 0x03ff07ff, 0xfff99fee, 0xf3edfdff, 0xe080399f,
    778         0x001f1fcf, 0x03ff00bf, 0xff3fffff, 0x00000001, 0x03ff0011,
    779         0x00ffffff, 0x000003ff, 0x800003ff, 0x01ffffff, 0x01ffffff,
    780         0x00007fff, 0x00007fff, 0x01ffffff, 0x7fffffff, 0x000003ff,
    781         0xffff0000, 0x001f3fff, 0x007fffff, 0x03ff000f, 0xe0fffff8,
    782         0x0000ffff, 0xffff001f, 0x7fffffff, 0xffff8000, 0x00000003,
    783         0x1fff07ff, 0x63ff01ff, 0xf807e3e0, 0x00000fe7, 0x00003c00,
    784         0x0000001c, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
    785         0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd,
    786         0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff,
    787         0xfffffdff, 0xfffffdff, 0xffffcff7, 0x007f001f, 0xffffffef,
    788         0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    789         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff, 0x0000ffff}};
    790     static BinaryPropertyObject property_object{IDC, codepoint_set};
    791   }
    792   namespace IDS_ns {
    793     const UnicodeSet codepoint_set
    794       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    795         {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    796         {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
    797         {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    798         {Mixed, 5}, {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 1},
    799         {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
    800         {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    801         {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
    802         {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
    803         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    804         {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
    805         {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    806         {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    807         {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
    808         {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    809         {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
    810         {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3},
    811         {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
    812         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
    813         {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
    814         {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    815         {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
    816         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    817         {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
    818         {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
    819         {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
    820         {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    821         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
    822         {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7},
    823         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    824         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    825         {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
    826         {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    827         {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
    828         {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    829         {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
    830         {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    831         {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    832         {Empty, 1}, {Full, 4}, {Mixed, 1}, {Empty, 3}, {Full, 1},
    833         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    834         {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 3}, {Mixed, 2},
    835         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    836         {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    837         {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 29},
    838         {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1}, {Mixed, 2},
    839         {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 8},
    840         {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 1},
    841         {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    842         {Mixed, 1}, {Empty, 15}, {Full, 2}, {Mixed, 1}, {Empty, 14},
    843         {Full, 1}, {Mixed, 1}, {Empty, 40}, {Full, 28}, {Mixed, 1},
    844         {Empty, 3}, {Full, 3}, {Mixed, 1}, {Empty, 92}, {Full, 33},
    845         {Mixed, 1}, {Empty, 414}, {Full, 17}, {Mixed, 2}, {Empty, 3},
    846         {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
    847         {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 515}, {Mixed, 1},
    848         {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
    849         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    850         {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1},
    851         {Empty, 41}, {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1},
    852         {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    853         {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    854        {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    855         0x0003ffc3, 0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
    856         0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
    857         0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
    858         0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
    859         0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
    860         0x01ffffff, 0x0007ffff, 0xfffffff0, 0x23ffffff, 0xff010000,
    861         0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x00030003,
    862         0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
    863         0x23edfdff, 0x00010000, 0x00000003, 0xfff99fe0, 0x23edfdff,
    864         0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
    865         0xfffddfe0, 0x23fffdff, 0x03000000, 0x00000003, 0xfffddfe0,
    866         0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
    867         0x00004000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
    868         0xfffffffe, 0x000dffff, 0x0000007f, 0xfef02596, 0x200decae,
    869         0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
    870         0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
    871         0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    872         0xff3dffff, 0x07ffffff, 0x0000ffff, 0x001fffff, 0xfffffffe,
    873         0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
    874         0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x00ffffff,
    875         0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
    876         0x00000fff, 0x000000fe, 0x007fffff, 0x001fffff, 0x00000080,
    877         0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
    878         0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0x0063de00,
    879         0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
    880         0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3f2ffc84, 0xf3fffd50,
    881         0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
    882         0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    883         0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xf87fffff, 0xfffffffe,
    884         0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff, 0x07ffffff,
    885         0xffff0000, 0x003fffff, 0x00001fff, 0x00001fff, 0xffff0000,
    886         0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff, 0x3fffffff,
    887         0x0000ffff, 0xff800000, 0xfffffffc, 0xffff79ff, 0x00033fff,
    888         0xff800000, 0xfffff7bb, 0x00000007, 0x000fffff, 0xfffffffc,
    889         0x000fffff, 0x08fc0000, 0xfffffc00, 0xffff003f, 0x0000007f,
    890         0x1fffffff, 0xfffffff0, 0x0007ffff, 0x00008000, 0x7c00ffdf,
    891         0x000001ff, 0x00000ff7, 0xc47fffff, 0x3e62ffff, 0x38000005,
    892         0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff, 0x00000030,
    893         0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff,
    894         0x03ffffff, 0xa0f8007f, 0x5f7ffdff, 0xffffffdb, 0x0003ffff,
    895         0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    896         0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe, 0x07fffffe,
    897         0xffffffc0, 0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f,
    898         0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff,
    899         0xffff0000, 0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f,
    900         0x3fffffff, 0xffff00ff, 0x0000000f, 0x007fffff, 0x003fffff,
    901         0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
    902         0x7fffffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeef0001,
    903         0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f,
    904         0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
    905         0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff, 0xffff0000,
    906         0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000, 0x0047ffff,
    907         0xfffffff8, 0x0007ffff, 0x0400001e, 0xfffbffff, 0x00000fff,
    908         0xffff0000, 0x7fffffff, 0xfff99fe0, 0x23edfdff, 0xe0000000,
    909         0x00000003, 0x0000ffff, 0x000000b0, 0x00007fff, 0x0000ffff,
    910         0x00000010, 0x000007ff, 0x80000000, 0x01ffffff, 0x01ffffff,
    911         0x00007fff, 0x00007fff, 0x01ffffff, 0x7fffffff, 0xffff0000,
    912         0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
    913         0x0001001f, 0xfff80000, 0x00000003, 0x1fff07ff, 0x03ff01ff,
    914         0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf,
    915         0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff,
    916         0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff,
    917         0xfffffdff, 0x00000ff7, 0x0000001f, 0xffffffef, 0x0af7fe96,
    918         0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff,
    919         0x001fffff, 0x3fffffff, 0x3fffffff}};
    920     static BinaryPropertyObject property_object{IDS, codepoint_set};
    921   }
    922   namespace LOWER_ns {
    923     const UnicodeSet codepoint_set
    924       {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
    925         {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    926         {Full, 1}, {Mixed, 7}, {Empty, 1}, {Mixed, 2}, {Empty, 187},
    927         {Full, 6}, {Empty, 2}, {Mixed, 16}, {Empty, 3}, {Mixed, 2},
    928         {Empty, 3}, {Mixed, 5}, {Empty, 25}, {Mixed, 2}, {Empty, 57},
    929         {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Mixed, 3},
    930         {Empty, 4}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 25},
    931         {Mixed, 3}, {Empty, 636}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
    932         {Empty, 38}, {Mixed, 2}, {Empty, 163}, {Full, 1}, {Empty, 1497},
    933         {Mixed, 31}, {Empty, 31041}},
    934        {0x07fffffe, 0x04200400, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
    935         0x55aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a,
    936         0xb5555240, 0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85,
    937         0xffefffff, 0x01ffffff, 0x00000003, 0x0000001f, 0x00000020,
    938         0x3c8a0000, 0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa,
    939         0xffff0000, 0xaaaaaaaa, 0xaaaaa802, 0xaaaaaaaa, 0xaaaad554,
    940         0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa, 0xfffffffe, 0x000000ff,
    941         0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xbfeaaaaa,
    942         0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff,
    943         0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff, 0x00cf00dc,
    944         0x00dc00ff, 0x80020000, 0x1fff0000, 0x0008c400, 0x32108000,
    945         0x000043c0, 0xffff0000, 0x00000010, 0xffff0000, 0x000003ff,
    946         0xffff0000, 0x7fffffff, 0x3fda1562, 0xaaaaaaaa, 0xaaaaaaaa,
    947         0xaaaaaaaa, 0x0008501a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa,
    948         0x3aaaaaaa, 0xaaabaaa8, 0xaaaaaaaa, 0x95ffaaaa, 0xaaba50aa,
    949         0x000002aa, 0x07000000, 0xffff0000, 0xf7ffffff, 0x00000030,
    950         0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xfc000000,
    951         0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc, 0xebc00000,
    952         0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff, 0xfffc0000,
    953         0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff, 0xffffc000,
    954         0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
    955         0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
    956         0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7}};
    957     static BinaryPropertyObject property_object{Lower, codepoint_set};
    958   }
    959   namespace MATH_ns {
    960     const UnicodeSet codepoint_set
    961       {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
    962         {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 207}, {Mixed, 5},
    963         {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 4}, {Full, 8},
    964         {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Empty, 13}, {Mixed, 4},
    965         {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Full, 2}, {Empty, 8},
    966         {Full, 16}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
    967         {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 4},
    968         {Mixed, 1}, {Empty, 1696}, {Full, 2}, {Mixed, 1}, {Full, 1},
    969         {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1},
    970         {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 176}, {Mixed, 6},
    971         {Empty, 1}, {Mixed, 1}, {Empty, 30856}},
    972        {0x70000800, 0x40000000, 0x50000000, 0x00021000, 0x00800000,
    973         0x00800000, 0x00270000, 0x00730000, 0x000001c0, 0x00400000,
    974         0x001c0000, 0x00040011, 0x7c00001e, 0x00007c00, 0x1fff0000,
    975         0x0000f862, 0x3f2ffc84, 0xf1fbb310, 0x00000bff, 0xffff0000,
    976         0xf0c37eff, 0x2fffffff, 0xfff00030, 0x00000f00, 0x00000003,
    977         0x10000000, 0xf8000000, 0x00bfffff, 0xf0010000, 0x00000007,
    978         0xf0ffc003, 0x000f8cc3, 0xff001f94, 0x00000060, 0x00000005,
    979         0x0000e00f, 0xffff0000, 0x00001f9f, 0x00000200, 0x0000017e,
    980         0x70000800, 0x50000000, 0x50000000, 0x00001e04, 0xffdfffff,
    981         0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    982         0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    983         0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000}};
    984     static BinaryPropertyObject property_object{Math, codepoint_set};
    985   }
    986   namespace UPPER_ns {
    987     const UnicodeSet codepoint_set
    988       {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    989         {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
    990         {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
    991         {Empty, 105}, {Mixed, 12}, {Empty, 1}, {Mixed, 3}, {Empty, 8},
    992         {Mixed, 5}, {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1},
    993         {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
    994         {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
    995         {Full, 1}, {Mixed, 1}, {Empty, 163}, {Full, 1}, {Empty, 1498},
    996         {Mixed, 31}, {Empty, 202}, {Mixed, 4}, {Empty, 30835}},
    997        {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
    998         0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555,
    999         0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
    1000         0x00000ffb, 0x551c8000, 0xe6905555, 0x0000ffff, 0x55555555,
    1001         0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
    1002         0xfffe5555, 0x007fffff, 0x000020bf, 0x55555555, 0x55555555,
    1003         0x55555555, 0x55555555, 0x40155555, 0x55555555, 0x55555555,
    1004         0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
    1005         0x0f000000, 0x0f000f00, 0x0f001f00, 0x3e273884, 0xc00f3d50,
    1006         0x00000020, 0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff,
    1007         0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555, 0x55555555,
    1008         0x00042805, 0x55555555, 0x00001555, 0x05555555, 0x55545554,
    1009         0x55555555, 0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe,
    1010         0x000000ff, 0x03ffffff, 0xfff00000, 0x00003fff, 0xffffff00,
    1011         0xd0000003, 0x003fde64, 0xffff0000, 0x000003ff, 0x1fdfe7b0,
    1012         0x7b000000, 0x0001fc5f, 0xfffff000, 0x0000003f, 0x03ffffff,
    1013         0xfff00000, 0x00003fff, 0xffffff00, 0xf0000003, 0x003fffff,
    1014         0xffff0000, 0x000003ff, 0xffffff00, 0x00000001, 0x07fffffc,
    1015         0xf0000000, 0x001fffff, 0xffc00000, 0x00007fff, 0xffff0000,
    1016         0x000001ff, 0x00000400, 0xffff0000, 0xffff03ff, 0xffff03ff,
    1017         0x000003ff}};
    1018     static BinaryPropertyObject property_object{Upper, codepoint_set};
    1019   }
    1020   namespace XIDC_ns {
    1021     const UnicodeSet codepoint_set
    1022       {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    1023         {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4},
    1024         {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2}, {Mixed, 1}, {Full, 2},
    1025         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    1026         {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    1027         {Empty, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 40}, {Empty, 1},
    1028         {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 2},
    1029         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    1030         {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    1031         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    1032         {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
    1033         {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1034         {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    1035         {Full, 1}, {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
    1036         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    1037         {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    1038         {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
    1039         {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83}, {Full, 1},
    1040         {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1041         {Mixed, 4}, {Full, 1}, {Empty, 16}, {Mixed, 3}, {Full, 1},
    1042         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    1043         {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
    1044         {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
    1045         {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
    1046         {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    1047         {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1048         {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
    1049         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 6},
    1050         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    1051         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    1052         {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 3},
    1053         {Mixed, 2}, {Full, 5}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1054         {Mixed, 6}, {Full, 3}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    1055         {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
    1056         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1057         {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
    1058         {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
    1059         {Mixed, 2}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1060         {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
    1061         {Mixed, 5}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Full, 1},
    1062         {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    1063         {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
    1064         {Full, 2}, {Mixed, 1}, {Empty, 29}, {Full, 2}, {Mixed, 2},
    1065         {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
    1066         {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 1},
    1067         {Mixed, 5}, {Empty, 8}, {Full, 2}, {Mixed, 1}, {Empty, 5},
    1068         {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    1069         {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 14}, {Full, 2},
    1070         {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1}, {Empty, 40},
    1071         {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
    1072         {Empty, 92}, {Full, 33}, {Mixed, 1}, {Empty, 414}, {Full, 17},
    1073         {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
    1074         {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 515}, {Mixed, 1},
    1075         {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 166}, {Mixed, 3},
    1076         {Empty, 4}, {Mixed, 1}, {Empty, 13}, {Full, 2}, {Mixed, 1},
    1077         {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
    1078         {Mixed, 10}, {Full, 1}, {Empty, 128}, {Full, 6}, {Mixed, 1},
    1079         {Empty, 41}, {Mixed, 6}, {Empty, 138}, {Full, 1334}, {Mixed, 1},
    1080         {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
    1081         {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 22583}, {Full, 7},
    1082         {Mixed, 1}, {Empty, 6128}},
    1083        {0x03ff0000, 0x87fffffe, 0x07fffffe, 0x04a00400, 0xff7fffff,
    1084         0xff7fffff, 0x0003ffc3, 0x0000501f, 0xb8dfffff, 0xffffd7c0,
    1085         0xfffffffb, 0xffbfffff, 0xfffffcfb, 0xfffeffff, 0x027fffff,
    1086         0xfffffffe, 0xfffe00ff, 0xbfffffff, 0xffff00b6, 0x000707ff,
    1087         0x07ff0000, 0xffffc3ff, 0x9fefffff, 0x9ffffdff, 0xffff0000,
    1088         0xffffe7ff, 0x0003ffff, 0x043fffff, 0x00003fff, 0x0fffffff,
    1089         0x0007ffff, 0xfffffff0, 0xfffeffcf, 0xfff99fef, 0xf3c5fdff,
    1090         0xb080799f, 0x0003ffcf, 0xfff987ee, 0xd36dfdff, 0x5e023987,
    1091         0x003fffc0, 0xfffbbfee, 0xf3edfdff, 0x00013bbf, 0x0000ffcf,
    1092         0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x0002ffcf, 0xd63dc7ec,
    1093         0xc3ffc718, 0x00813dc7, 0x0000ffc0, 0xfffddfef, 0xe3fffdff,
    1094         0x03603ddf, 0x0000ffcf, 0xfffddfee, 0xf3effdff, 0x40603ddf,
    1095         0x0006ffcf, 0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfc00ffcf,
    1096         0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x000cffc0, 0xfffffffe,
    1097         0x07ffffff, 0x03ff7fff, 0xfef02596, 0x3bffecae, 0xf3ff3f5f,
    1098         0x03000001, 0xc2a003ff, 0xfffffeff, 0xfffe1fff, 0xfeffffdf,
    1099         0x1fffffff, 0x00000040, 0xffff03ff, 0x3fffffff, 0xffff20bf,
    1100         0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    1101         0xff3dffff, 0xe7ffffff, 0x0003fe00, 0x0000ffff, 0x001fffff,
    1102         0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x001fdfff,
    1103         0x001fffff, 0x000fffff, 0x000ddfff, 0x308fffff, 0x000003ff,
    1104         0x03ff3800, 0x00ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff,
    1105         0x0fff0fff, 0xffffffc0, 0x001f3fff, 0xffff0fff, 0x07ff03ff,
    1106         0x0fffffff, 0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x3fff0080,
    1107         0x03ff0fff, 0x000ff800, 0x000fffff, 0x00ffffff, 0xffffe3ff,
    1108         0x3fffffff, 0xfff70000, 0x037fffff, 0xf03fffff, 0x3f3fffff,
    1109         0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    1110         0x80000000, 0x00100001, 0x80020000, 0x1fff0000, 0x1fff0000,
    1111         0x0001ffe2, 0x3f2ffc84, 0xf3fffd50, 0x000043e0, 0x000001ff,
    1112         0xffff7fff, 0x7fffffff, 0x000ff81f, 0xffff20bf, 0x800080ff,
    1113         0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x000000e0, 0x1f3efffe,
    1114         0xfffffffe, 0xe67fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0,
    1115         0xfffe3fff, 0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff,
    1116         0x00001fff, 0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff,
    1117         0x00000fff, 0xbff0ffff, 0xbfffffff, 0x0003ffff, 0xff800000,
    1118         0xfffffffc, 0xffff79ff, 0x00033fff, 0xff800000, 0x000000ff,
    1119         0x000fffff, 0x03ff001f, 0x08ffffff, 0xffff3fff, 0x000fffff,
    1120         0x1fffffff, 0x03ff8001, 0x7fffffff, 0x007fffff, 0x03ff3fff,
    1121         0xfc7fffff, 0x38000007, 0x007cffff, 0x007e7e7e, 0xffff7f7f,
    1122         0xf7ffffff, 0x00000030, 0x03ff37ff, 0xffff000f, 0xfffff87f,
    1123         0x0fffffff, 0xffff3fff, 0x03ffffff, 0xe0f8007f, 0x5f7ffdff,
    1124         0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xfffffff0,
    1125         0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x03ff0000,
    1126         0x0000ffff, 0x00183fff, 0x0000e000, 0xaa8a0000, 0x1fffffff,
    1127         0x03ff0000, 0x87fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff,
    1128         0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff,
    1129         0x001fffff, 0x20000000, 0x1fffffff, 0x0001ffff, 0x00000001,
    1130         0xffff0000, 0xffff07ff, 0x07ffffff, 0x3fffffff, 0x003eff0f,
    1131         0x3fffffff, 0x000003ff, 0xffff00ff, 0x0000000f, 0x007fffff,
    1132         0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
    1133         0x007fffff, 0x7fffffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
    1134         0xfeeff06f, 0x870fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
    1135         0x0000007f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
    1136         0x000001ff, 0x0000007f, 0x8000ffc0, 0x07ffffff, 0xffff0000,
    1137         0x03ff01ff, 0xffdfffff, 0xffff0000, 0x004fffff, 0x07ff001f,
    1138         0xfffbffff, 0x00ffffff, 0xffff0000, 0x03ff07ff, 0xfff99fee,
    1139         0xf3edfdff, 0xe080399f, 0x001f1fcf, 0x03ff00bf, 0xff3fffff,
    1140         0x00000001, 0x03ff0011, 0x00ffffff, 0x000003ff, 0x800003ff,
    1141         0x01ffffff, 0x01ffffff, 0x00007fff, 0x00007fff, 0x01ffffff,
    1142         0x7fffffff, 0x000003ff, 0xffff0000, 0x001f3fff, 0x007fffff,
    1143         0x03ff000f, 0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff,
    1144         0xffff8000, 0x00000003, 0x1fff07ff, 0x63ff01ff, 0xf807e3e0,
    1145         0x00000fe7, 0x00003c00, 0x0000001c, 0xffdfffff, 0xdfffffff,
    1146         0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    1147         0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    1148         0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0xffffcff7,
    1149         0x007f001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    1150         0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
    1151         0x3fffffff, 0x0000ffff}};
    1152     static BinaryPropertyObject property_object{XIDC, codepoint_set};
    1153   }
    1154   namespace XIDS_ns {
    1155     const UnicodeSet codepoint_set
    1156       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    1157         {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    1158         {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 1},
    1159         {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    1160         {Mixed, 5}, {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 1},
    1161         {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 1},
    1162         {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    1163         {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
    1164         {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
    1165         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    1166         {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
    1167         {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    1168         {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1169         {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
    1170         {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    1171         {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 2},
    1172         {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3},
    1173         {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
    1174         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
    1175         {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 83},
    1176         {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    1177         {Full, 1}, {Mixed, 4}, {Empty, 17}, {Mixed, 3}, {Full, 1},
    1178         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    1179         {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
    1180         {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
    1181         {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
    1182         {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    1183         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1},
    1184         {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7},
    1185         {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    1186         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    1187         {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 3},
    1188         {Mixed, 2}, {Full, 5}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1189         {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    1190         {Empty, 1}, {Mixed, 6}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    1191         {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1},
    1192         {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    1193         {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
    1194         {Mixed, 1}, {Empty, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
    1195         {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
    1196         {Mixed, 5}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Full, 1},
    1197         {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    1198         {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
    1199         {Full, 2}, {Mixed, 1}, {Empty, 29}, {Mixed, 2}, {Empty, 2},
    1200         {Mixed, 11}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    1201         {Empty, 1}, {Mixed, 4}, {Empty, 8}, {Full, 1}, {Mixed, 2},
    1202         {Empty, 5}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Full, 1},
    1203         {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 15},
    1204         {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1},
    1205         {Empty, 40}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
    1206         {Mixed, 1}, {Empty, 92}, {Full, 33}, {Mixed, 1}, {Empty, 414},
    1207         {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1},
    1208         {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    1209         {Mixed, 1}, {Empty, 515}, {Mixed, 1}, {Empty, 95}, {Full, 3},
    1210         {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1},
    1211         {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
    1212         {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 41}, {Mixed, 6},
    1213         {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129},
    1214         {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 511}, {Full, 16},
    1215         {Mixed, 1}, {Empty, 28719}},
    1216        {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    1217         0x0003ffc3, 0x0000501f, 0xb8df0000, 0xffffd740, 0xfffffffb,
    1218         0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
    1219         0x000000ff, 0xffff0000, 0x000707ff, 0x000007ff, 0xfffec000,
    1220         0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
    1221         0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110,
    1222         0x01ffffff, 0x0007ffff, 0xfffffff0, 0x23ffffff, 0xff010000,
    1223         0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x00030003,
    1224         0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
    1225         0x23edfdff, 0x00010000, 0x00000003, 0xfff99fe0, 0x23edfdff,
    1226         0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
    1227         0xfffddfe0, 0x23fffdff, 0x03000000, 0x00000003, 0xfffddfe0,
    1228         0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
    1229         0x00004000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
    1230         0xfffffffe, 0x0005ffff, 0x0000007f, 0xfef02596, 0x2005ecae,
    1231         0xf000005f, 0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00,
    1232         0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003, 0xffff20bf,
    1233         0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    1234         0xff3dffff, 0x07ffffff, 0x0000ffff, 0x001fffff, 0xfffffffe,
    1235         0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
    1236         0x0003ffff, 0x0001dfff, 0x000fffff, 0x10800000, 0x00ffffff,
    1237         0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000, 0x001f3fff,
    1238         0x00000fff, 0x000000fe, 0x007fffff, 0x001fffff, 0x00000080,
    1239         0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001,
    1240         0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0x0063de00,
    1241         0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
    1242         0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3f2ffc84, 0xf3fffd50,
    1243         0x000043e0, 0x000001ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
    1244         0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    1245         0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff, 0xfffffffe,
    1246         0xf7ffffff, 0xffffffe0, 0xfffe3fff, 0x00007fff, 0x07ffffff,
    1247         0xffff0000, 0x003fffff, 0x00001fff, 0x00001fff, 0xffff0000,
    1248         0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff, 0x3fffffff,
    1249         0x0000ffff, 0xff800000, 0xfffffffc, 0xffff79ff, 0x00033fff,
    1250         0xff800000, 0xfffff7bb, 0x00000007, 0x000fffff, 0xfffffffc,
    1251         0x000fffff, 0x08fc0000, 0xfffffc00, 0xffff003f, 0x0000007f,
    1252         0x1fffffff, 0xfffffff0, 0x0007ffff, 0x00008000, 0x7c00ffdf,
    1253         0x000001ff, 0x00000ff7, 0xc47fffff, 0x3e62ffff, 0x38000005,
    1254         0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff, 0x00000030,
    1255         0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff,
    1256         0x03ffffff, 0xa0f8007f, 0x5f7ffdff, 0xffffffdb, 0x0003ffff,
    1257         0xfff80000, 0x3fffffff, 0xfffffff0, 0x3fffffff, 0xffff0000,
    1258         0xfffcffff, 0x000000ff, 0x03ff0000, 0xaa8a0000, 0x1fffffff,
    1259         0x07fffffe, 0x07fffffe, 0xffffffc0, 0x3fffffff, 0x7fffffff,
    1260         0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff,
    1261         0x001fffff, 0x1fffffff, 0x0001ffff, 0xffff0000, 0xffff07ff,
    1262         0x003fffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff00ff,
    1263         0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f,
    1264         0x91bfffff, 0x003fffff, 0x007fffff, 0x7fffffff, 0x003fffff,
    1265         0x03ffffff, 0xc0ffffff, 0xfeef0001, 0x000fffff, 0x1fffffff,
    1266         0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff,
    1267         0x0007ffff, 0x0003ffff, 0x000001ff, 0xfffffff8, 0x00ffffff,
    1268         0xfffffff8, 0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8,
    1269         0x0000007f, 0xffff0000, 0x0047ffff, 0xfffffff8, 0x0007ffff,
    1270         0x0400001e, 0xfffbffff, 0x00000fff, 0xffff0000, 0x7fffffff,
    1271         0xfff99fe0, 0x23edfdff, 0xe0000000, 0x00000003, 0x0000ffff,
    1272         0x000000b0, 0x00007fff, 0x0000ffff, 0x00000010, 0x000007ff,
    1273         0x80000000, 0x01ffffff, 0x01ffffff, 0x00007fff, 0x00007fff,
    1274         0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff, 0x0000ffff,
    1275         0x0000000f, 0xe0fffff8, 0x0000ffff, 0x0001001f, 0xfff80000,
    1276         0x00000003, 0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff,
    1277         0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    1278         0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    1279         0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
    1280         0x0000001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    1281         0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
    1282         0x3fffffff}};
    1283     static BinaryPropertyObject property_object{XIDS, codepoint_set};
    1284   }
     16    namespace ALPHA_ns {
     17        /** Code Point Ranges for Alpha
     18        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
     19        [216, 246], [248, 705], [710, 721], [736, 740], [748, 748],
     20        [750, 750], [837, 837], [880, 884], [886, 887], [890, 893],
     21        [895, 895], [902, 902], [904, 906], [908, 908], [910, 929],
     22        [931, 1013], [1015, 1153], [1162, 1327], [1329, 1366], [1369, 1369],
     23        [1377, 1415], [1456, 1469], [1471, 1471], [1473, 1474],
     24        [1476, 1477], [1479, 1479], [1488, 1514], [1520, 1522],
     25        [1552, 1562], [1568, 1623], [1625, 1631], [1646, 1747],
     26        [1749, 1756], [1761, 1768], [1773, 1775], [1786, 1788],
     27        [1791, 1791], [1808, 1855], [1869, 1969], [1994, 2026],
     28        [2036, 2037], [2042, 2042], [2048, 2071], [2074, 2092],
     29        [2112, 2136], [2208, 2226], [2276, 2281], [2288, 2363],
     30        [2365, 2380], [2382, 2384], [2389, 2403], [2417, 2435],
     31        [2437, 2444], [2447, 2448], [2451, 2472], [2474, 2480],
     32        [2482, 2482], [2486, 2489], [2493, 2500], [2503, 2504],
     33        [2507, 2508], [2510, 2510], [2519, 2519], [2524, 2525],
     34        [2527, 2531], [2544, 2545], [2561, 2563], [2565, 2570],
     35        [2575, 2576], [2579, 2600], [2602, 2608], [2610, 2611],
     36        [2613, 2614], [2616, 2617], [2622, 2626], [2631, 2632],
     37        [2635, 2636], [2641, 2641], [2649, 2652], [2654, 2654],
     38        [2672, 2677], [2689, 2691], [2693, 2701], [2703, 2705],
     39        [2707, 2728], [2730, 2736], [2738, 2739], [2741, 2745],
     40        [2749, 2757], [2759, 2761], [2763, 2764], [2768, 2768],
     41        [2784, 2787], [2817, 2819], [2821, 2828], [2831, 2832],
     42        [2835, 2856], [2858, 2864], [2866, 2867], [2869, 2873],
     43        [2877, 2884], [2887, 2888], [2891, 2892], [2902, 2903],
     44        [2908, 2909], [2911, 2915], [2929, 2929], [2946, 2947],
     45        [2949, 2954], [2958, 2960], [2962, 2965], [2969, 2970],
     46        [2972, 2972], [2974, 2975], [2979, 2980], [2984, 2986],
     47        [2990, 3001], [3006, 3010], [3014, 3016], [3018, 3020],
     48        [3024, 3024], [3031, 3031], [3072, 3075], [3077, 3084],
     49        [3086, 3088], [3090, 3112], [3114, 3129], [3133, 3140],
     50        [3142, 3144], [3146, 3148], [3157, 3158], [3160, 3161],
     51        [3168, 3171], [3201, 3203], [3205, 3212], [3214, 3216],
     52        [3218, 3240], [3242, 3251], [3253, 3257], [3261, 3268],
     53        [3270, 3272], [3274, 3276], [3285, 3286], [3294, 3294],
     54        [3296, 3299], [3313, 3314], [3329, 3331], [3333, 3340],
     55        [3342, 3344], [3346, 3386], [3389, 3396], [3398, 3400],
     56        [3402, 3404], [3406, 3406], [3415, 3415], [3424, 3427],
     57        [3450, 3455], [3458, 3459], [3461, 3478], [3482, 3505],
     58        [3507, 3515], [3517, 3517], [3520, 3526], [3535, 3540],
     59        [3542, 3542], [3544, 3551], [3570, 3571], [3585, 3642],
     60        [3648, 3654], [3661, 3661], [3713, 3714], [3716, 3716],
     61        [3719, 3720], [3722, 3722], [3725, 3725], [3732, 3735],
     62        [3737, 3743], [3745, 3747], [3749, 3749], [3751, 3751],
     63        [3754, 3755], [3757, 3769], [3771, 3773], [3776, 3780],
     64        [3782, 3782], [3789, 3789], [3804, 3807], [3840, 3840],
     65        [3904, 3911], [3913, 3948], [3953, 3969], [3976, 3991],
     66        [3993, 4028], [4096, 4150], [4152, 4152], [4155, 4159],
     67        [4176, 4194], [4197, 4200], [4206, 4230], [4238, 4238],
     68        [4252, 4253], [4256, 4293], [4295, 4295], [4301, 4301],
     69        [4304, 4346], [4348, 4680], [4682, 4685], [4688, 4694],
     70        [4696, 4696], [4698, 4701], [4704, 4744], [4746, 4749],
     71        [4752, 4784], [4786, 4789], [4792, 4798], [4800, 4800],
     72        [4802, 4805], [4808, 4822], [4824, 4880], [4882, 4885],
     73        [4888, 4954], [4959, 4959], [4992, 5007], [5024, 5108],
     74        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
     75        [5870, 5880], [5888, 5900], [5902, 5907], [5920, 5939],
     76        [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
     77        [6016, 6067], [6070, 6088], [6103, 6103], [6108, 6108],
     78        [6176, 6263], [6272, 6314], [6320, 6389], [6400, 6430],
     79        [6432, 6443], [6448, 6456], [6480, 6509], [6512, 6516],
     80        [6528, 6571], [6576, 6601], [6656, 6683], [6688, 6750],
     81        [6753, 6772], [6823, 6823], [6912, 6963], [6965, 6979],
     82        [6981, 6987], [7040, 7081], [7084, 7087], [7098, 7141],
     83        [7143, 7153], [7168, 7221], [7245, 7247], [7258, 7293],
     84        [7401, 7404], [7406, 7411], [7413, 7414], [7424, 7615],
     85        [7655, 7668], [7680, 7957], [7960, 7965], [7968, 8005],
     86        [8008, 8013], [8016, 8023], [8025, 8025], [8027, 8027],
     87        [8029, 8029], [8031, 8061], [8064, 8116], [8118, 8124],
     88        [8126, 8126], [8130, 8132], [8134, 8140], [8144, 8147],
     89        [8150, 8155], [8160, 8172], [8178, 8180], [8182, 8188],
     90        [8305, 8305], [8319, 8319], [8336, 8348], [8450, 8450],
     91        [8455, 8455], [8458, 8467], [8469, 8469], [8473, 8477],
     92        [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8493],
     93        [8495, 8505], [8508, 8511], [8517, 8521], [8526, 8526],
     94        [8544, 8584], [9398, 9449], [11264, 11310], [11312, 11358],
     95        [11360, 11492], [11499, 11502], [11506, 11507], [11520, 11557],
     96        [11559, 11559], [11565, 11565], [11568, 11623], [11631, 11631],
     97        [11648, 11670], [11680, 11686], [11688, 11694], [11696, 11702],
     98        [11704, 11710], [11712, 11718], [11720, 11726], [11728, 11734],
     99        [11736, 11742], [11744, 11775], [11823, 11823], [12293, 12295],
     100        [12321, 12329], [12337, 12341], [12344, 12348], [12353, 12438],
     101        [12445, 12447], [12449, 12538], [12540, 12543], [12549, 12589],
     102        [12593, 12686], [12704, 12730], [12784, 12799], [13312, 19893],
     103        [19968, 40908], [40960, 42124], [42192, 42237], [42240, 42508],
     104        [42512, 42527], [42538, 42539], [42560, 42606], [42612, 42619],
     105        [42623, 42653], [42655, 42735], [42775, 42783], [42786, 42888],
     106        [42891, 42894], [42896, 42925], [42928, 42929], [42999, 43009],
     107        [43011, 43013], [43015, 43018], [43020, 43047], [43072, 43123],
     108        [43136, 43203], [43250, 43255], [43259, 43259], [43274, 43306],
     109        [43312, 43346], [43360, 43388], [43392, 43442], [43444, 43455],
     110        [43471, 43471], [43488, 43492], [43494, 43503], [43514, 43518],
     111        [43520, 43574], [43584, 43597], [43616, 43638], [43642, 43642],
     112        [43646, 43710], [43712, 43712], [43714, 43714], [43739, 43741],
     113        [43744, 43759], [43762, 43765], [43777, 43782], [43785, 43790],
     114        [43793, 43798], [43808, 43814], [43816, 43822], [43824, 43866],
     115        [43868, 43871], [43876, 43877], [43968, 44010], [44032, 55203],
     116        [55216, 55238], [55243, 55291], [63744, 64109], [64112, 64217],
     117        [64256, 64262], [64275, 64279], [64285, 64296], [64298, 64310],
     118        [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324],
     119        [64326, 64433], [64467, 64829], [64848, 64911], [64914, 64967],
     120        [65008, 65019], [65136, 65140], [65142, 65276], [65313, 65338],
     121        [65345, 65370], [65382, 65470], [65474, 65479], [65482, 65487],
     122        [65490, 65495], [65498, 65500], [65536, 65547], [65549, 65574],
     123        [65576, 65594], [65596, 65597], [65599, 65613], [65616, 65629],
     124        [65664, 65786], [65856, 65908], [66176, 66204], [66208, 66256],
     125        [66304, 66335], [66352, 66378], [66384, 66426], [66432, 66461],
     126        [66464, 66499], [66504, 66511], [66513, 66517], [66560, 66717],
     127        [66816, 66855], [66864, 66915], [67072, 67382], [67392, 67413],
     128        [67424, 67431], [67584, 67589], [67592, 67592], [67594, 67637],
     129        [67639, 67640], [67644, 67644], [67647, 67669], [67680, 67702],
     130        [67712, 67742], [67840, 67861], [67872, 67897], [67968, 68023],
     131        [68030, 68031], [68096, 68099], [68101, 68102], [68108, 68115],
     132        [68117, 68119], [68121, 68147], [68192, 68220], [68224, 68252],
     133        [68288, 68295], [68297, 68324], [68352, 68405], [68416, 68437],
     134        [68448, 68466], [68480, 68497], [68608, 68680], [69632, 69701],
     135        [69762, 69816], [69840, 69864], [69888, 69938], [69968, 70002],
     136        [70006, 70006], [70016, 70079], [70081, 70084], [70106, 70106],
     137        [70144, 70161], [70163, 70196], [70199, 70199], [70320, 70376],
     138        [70401, 70403], [70405, 70412], [70415, 70416], [70419, 70440],
     139        [70442, 70448], [70450, 70451], [70453, 70457], [70461, 70468],
     140        [70471, 70472], [70475, 70476], [70487, 70487], [70493, 70499],
     141        [70784, 70849], [70852, 70853], [70855, 70855], [71040, 71093],
     142        [71096, 71102], [71168, 71230], [71232, 71232], [71236, 71236],
     143        [71296, 71349], [71840, 71903], [71935, 71935], [72384, 72440],
     144        [73728, 74648], [74752, 74862], [77824, 78894], [92160, 92728],
     145        [92736, 92766], [92880, 92909], [92928, 92982], [92992, 92995],
     146        [93027, 93047], [93053, 93071], [93952, 94020], [94032, 94078],
     147        [94099, 94111], [110592, 110593], [113664, 113770],
     148        [113776, 113788], [113792, 113800], [113808, 113817],
     149        [113822, 113822], [119808, 119892], [119894, 119964],
     150        [119966, 119967], [119970, 119970], [119973, 119974],
     151        [119977, 119980], [119982, 119993], [119995, 119995],
     152        [119997, 120003], [120005, 120069], [120071, 120074],
     153        [120077, 120084], [120086, 120092], [120094, 120121],
     154        [120123, 120126], [120128, 120132], [120134, 120134],
     155        [120138, 120144], [120146, 120485], [120488, 120512],
     156        [120514, 120538], [120540, 120570], [120572, 120596],
     157        [120598, 120628], [120630, 120654], [120656, 120686],
     158        [120688, 120712], [120714, 120744], [120746, 120770],
     159        [120772, 120779], [124928, 125124], [126464, 126467],
     160        [126469, 126495], [126497, 126498], [126500, 126500],
     161        [126503, 126503], [126505, 126514], [126516, 126519],
     162        [126521, 126521], [126523, 126523], [126530, 126530],
     163        [126535, 126535], [126537, 126537], [126539, 126539],
     164        [126541, 126543], [126545, 126546], [126548, 126548],
     165        [126551, 126551], [126553, 126553], [126555, 126555],
     166        [126557, 126557], [126559, 126559], [126561, 126562],
     167        [126564, 126564], [126567, 126570], [126572, 126578],
     168        [126580, 126583], [126585, 126588], [126590, 126590],
     169        [126592, 126601], [126603, 126619], [126625, 126627],
     170        [126629, 126633], [126635, 126651], [127280, 127305],
     171        [127312, 127337], [127344, 127369], [131072, 173782],
     172        [173824, 177972], [177984, 178205], [194560, 195101]**/
     173        const UnicodeSet codepoint_set
     174            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     175              {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
     176              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1},
     177              {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     178              {Full, 2}, {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     179              {Mixed, 1}, {Full, 1}, {Mixed, 22}, {Empty, 1}, {Mixed, 19},
     180              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     181              {Mixed, 4}, {Empty, 2}, {Full, 1}, {Mixed, 4}, {Full, 1},
     182              {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     183              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     184              {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2},
     185              {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 2},
     186              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     187              {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     188              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     189              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1},
     190              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3},
     191              {Mixed, 1}, {Full, 6}, {Empty, 1}, {Mixed, 1}, {Full, 8},
     192              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     193              {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
     194              {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     195              {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
     196              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
     197              {Empty, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Full, 1},
     198              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     199              {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
     200              {Empty, 2}, {Full, 654}, {Mixed, 1}, {Empty, 1}, {Full, 36},
     201              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
     202              {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 2},
     203              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     204              {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 3}, {Full, 1},
     205              {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Empty, 2}, {Full, 1},
     206              {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11},
     207              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     208              {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
     209              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     210              {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     211              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
     212              {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8},
     213              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     214              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4},
     215              {Mixed, 1}, {Empty, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
     216              {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
     217              {Mixed, 5}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Full, 1},
     218              {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     219              {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
     220              {Full, 2}, {Mixed, 1}, {Empty, 29}, {Full, 2}, {Mixed, 1},
     221              {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2},
     222              {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     223              {Full, 1}, {Mixed, 5}, {Empty, 8}, {Full, 2}, {Mixed, 1},
     224              {Empty, 5}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Full, 1},
     225              {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 15},
     226              {Full, 2}, {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 1},
     227              {Empty, 40}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
     228              {Mixed, 1}, {Empty, 92}, {Full, 33}, {Mixed, 1}, {Empty, 414},
     229              {Full, 17}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1},
     230              {Mixed, 4}, {Empty, 27}, {Full, 2}, {Mixed, 3}, {Empty, 515},
     231              {Mixed, 1}, {Empty, 95}, {Full, 3}, {Mixed, 2}, {Empty, 187},
     232              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     233              {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6},
     234              {Mixed, 1}, {Empty, 41}, {Mixed, 6}, {Empty, 19}, {Mixed, 4},
     235              {Empty, 115}, {Full, 1334}, {Mixed, 1}, {Empty, 1},
     236              {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Empty, 511},
     237              {Full, 16}, {Mixed, 1}, {Empty, 28719}},
     238             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     239              0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
     240              0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
     241              0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
     242              0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
     243              0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
     244              0xfcffffff, 0x00001fff, 0x01ffffff, 0x0007ffff, 0xffff03f0,
     245              0xefffffff, 0xffe1dfff, 0xfffe000f, 0xfff99fef, 0xe3c5fdff,
     246              0xb080599f, 0x0003000f, 0xfff987ee, 0xc36dfdff, 0x5e021987,
     247              0x003f0000, 0xfffbbfee, 0xe3edfdff, 0x00011bbf, 0x0000000f,
     248              0xfff99fee, 0xe3edfdff, 0xb0c0199f, 0x0002000f, 0xd63dc7ec,
     249              0xc3ffc718, 0x00811dc7, 0xfffddfef, 0xe3fffdff, 0x03601ddf,
     250              0x0000000f, 0xfffddfee, 0xe3effdff, 0x40601ddf, 0x0006000f,
     251              0xfffddfee, 0xe7ffffff, 0x00805ddf, 0xfc00000f, 0xfc7fffec,
     252              0x2ffbffff, 0xff5f807f, 0x000c0000, 0xfffffffe, 0x07ffffff,
     253              0x0000207f, 0xfef02596, 0x3bffecae, 0xf000205f, 0x00000001,
     254              0xfffffeff, 0xfffe1fff, 0xfeffff03, 0x1fffffff, 0xf97fffff,
     255              0xffff0000, 0xffffc1e7, 0x3000407f, 0xffff20bf, 0xf7ffffff,
     256              0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
     257              0x87ffffff, 0x0000ffff, 0x001fffff, 0xfffffffe, 0xffff9fff,
     258              0x07fffffe, 0x01ffc7ff, 0x000fdfff, 0x000fffff, 0x000fffff,
     259              0x000ddfff, 0xffcfffff, 0x108001ff, 0x00ffffff, 0xffff07ff,
     260              0x003fffff, 0x7fffffff, 0x01ff0fff, 0xffff0000, 0x001f3fff,
     261              0xffff0fff, 0x000003ff, 0x0fffffff, 0x7fffffff, 0x001ffffe,
     262              0x00000080, 0xffefffff, 0x00000fef, 0xfc00f3ff, 0x0003ffbf,
     263              0x003fffff, 0xfc00e000, 0x3fffffff, 0x006fde00, 0x001fff80,
     264              0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
     265              0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf3ffbd50,
     266              0x000043e0, 0x000001ff, 0xffc00000, 0x000003ff, 0xffff7fff,
     267              0x7fffffff, 0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff,
     268              0x7f7f7f7f, 0x7f7f7f7f, 0x00008000, 0x000000e0, 0x1f3e03fe,
     269              0xfffffffe, 0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0,
     270              0xfffe3fff, 0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff,
     271              0x00001fff, 0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff,
     272              0x00000c00, 0x8ff07fff, 0xbfffffff, 0x0000ffff, 0xff800000,
     273              0xfffffffc, 0xffff79ff, 0x00033fff, 0xff800000, 0xfffff7bb,
     274              0x000000ff, 0x000fffff, 0x0000000f, 0x08fc0000, 0xfffffc00,
     275              0xffff07ff, 0x0007ffff, 0x1fffffff, 0xfff7ffff, 0x00008000,
     276              0x7c00ffdf, 0x007fffff, 0x00003fff, 0xc47fffff, 0x7fffffff,
     277              0x38000005, 0x003cffff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff,
     278              0x00000030, 0x000007ff, 0xffff000f, 0xfffff87f, 0x0fffffff,
     279              0xffff3fff, 0x03ffffff, 0xe0f8007f, 0x5f7ffdff, 0xffffffdb,
     280              0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff,
     281              0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe,
     282              0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc, 0xffffefff,
     283              0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff, 0x1fffffff,
     284              0x0001ffff, 0xffff0000, 0xffff07ff, 0x07ffffff, 0x3fffffff,
     285              0x003eff0f, 0x3fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
     286              0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
     287              0x007fffff, 0x7fffffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
     288              0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
     289              0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff,
     290              0x000001ff, 0x0000003f, 0xfffffffc, 0x01ffffff, 0xffff0000,
     291              0x000001ff, 0x0007ffff, 0xffff0000, 0x0047ffff, 0x0400001e,
     292              0xfffbffff, 0x009fffff, 0xffff0000, 0x000001ff, 0xfff99fee,
     293              0xe3edfdff, 0xe080199f, 0x0000000f, 0x000000b3, 0x7f3fffff,
     294              0x7fffffff, 0x00000011, 0x003fffff, 0x80000000, 0x01ffffff,
     295              0x01ffffff, 0x00007fff, 0x00007fff, 0x01ffffff, 0x7fffffff,
     296              0xffff0000, 0x00003fff, 0x007fffff, 0x0000000f, 0xe0fffff8,
     297              0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000, 0x00000003,
     298              0x1fff07ff, 0x43ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
     299              0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
     300              0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
     301              0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f,
     302              0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
     303              0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
     304              0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}};
     305        static BinaryPropertyObject property_object{Alpha, codepoint_set};
     306    }
     307    namespace CI_ns {
     308        /** Code Point Ranges for CI
     309        [39, 39], [46, 46], [58, 58], [94, 94], [96, 96], [168, 168],
     310        [173, 173], [175, 175], [180, 180], [183, 184], [688, 879],
     311        [884, 885], [890, 890], [900, 901], [903, 903], [1155, 1161],
     312        [1369, 1369], [1425, 1469], [1471, 1471], [1473, 1474],
     313        [1476, 1477], [1479, 1479], [1524, 1524], [1536, 1541],
     314        [1552, 1562], [1564, 1564], [1600, 1600], [1611, 1631],
     315        [1648, 1648], [1750, 1757], [1759, 1768], [1770, 1773],
     316        [1807, 1807], [1809, 1809], [1840, 1866], [1958, 1968],
     317        [2027, 2037], [2042, 2042], [2070, 2093], [2137, 2139],
     318        [2276, 2306], [2362, 2362], [2364, 2364], [2369, 2376],
     319        [2381, 2381], [2385, 2391], [2402, 2403], [2417, 2417],
     320        [2433, 2433], [2492, 2492], [2497, 2500], [2509, 2509],
     321        [2530, 2531], [2561, 2562], [2620, 2620], [2625, 2626],
     322        [2631, 2632], [2635, 2637], [2641, 2641], [2672, 2673],
     323        [2677, 2677], [2689, 2690], [2748, 2748], [2753, 2757],
     324        [2759, 2760], [2765, 2765], [2786, 2787], [2817, 2817],
     325        [2876, 2876], [2879, 2879], [2881, 2884], [2893, 2893],
     326        [2902, 2902], [2914, 2915], [2946, 2946], [3008, 3008],
     327        [3021, 3021], [3072, 3072], [3134, 3136], [3142, 3144],
     328        [3146, 3149], [3157, 3158], [3170, 3171], [3201, 3201],
     329        [3260, 3260], [3263, 3263], [3270, 3270], [3276, 3277],
     330        [3298, 3299], [3329, 3329], [3393, 3396], [3405, 3405],
     331        [3426, 3427], [3530, 3530], [3538, 3540], [3542, 3542],
     332        [3633, 3633], [3636, 3642], [3654, 3662], [3761, 3761],
     333        [3764, 3769], [3771, 3772], [3782, 3782], [3784, 3789],
     334        [3864, 3865], [3893, 3893], [3895, 3895], [3897, 3897],
     335        [3953, 3966], [3968, 3972], [3974, 3975], [3981, 3991],
     336        [3993, 4028], [4038, 4038], [4141, 4144], [4146, 4151],
     337        [4153, 4154], [4157, 4158], [4184, 4185], [4190, 4192],
     338        [4209, 4212], [4226, 4226], [4229, 4230], [4237, 4237],
     339        [4253, 4253], [4348, 4348], [4957, 4959], [5906, 5908],
     340        [5938, 5940], [5970, 5971], [6002, 6003], [6068, 6069],
     341        [6071, 6077], [6086, 6086], [6089, 6099], [6103, 6103],
     342        [6109, 6109], [6155, 6158], [6211, 6211], [6313, 6313],
     343        [6432, 6434], [6439, 6440], [6450, 6450], [6457, 6459],
     344        [6679, 6680], [6683, 6683], [6742, 6742], [6744, 6750],
     345        [6752, 6752], [6754, 6754], [6757, 6764], [6771, 6780],
     346        [6783, 6783], [6823, 6823], [6832, 6846], [6912, 6915],
     347        [6964, 6964], [6966, 6970], [6972, 6972], [6978, 6978],
     348        [7019, 7027], [7040, 7041], [7074, 7077], [7080, 7081],
     349        [7083, 7085], [7142, 7142], [7144, 7145], [7149, 7149],
     350        [7151, 7153], [7212, 7219], [7222, 7223], [7288, 7293],
     351        [7376, 7378], [7380, 7392], [7394, 7400], [7405, 7405],
     352        [7412, 7412], [7416, 7417], [7468, 7530], [7544, 7544],
     353        [7579, 7669], [7676, 7679], [8125, 8125], [8127, 8129],
     354        [8141, 8143], [8157, 8159], [8173, 8175], [8189, 8190],
     355        [8203, 8207], [8216, 8217], [8228, 8228], [8231, 8231],
     356        [8234, 8238], [8288, 8292], [8294, 8303], [8305, 8305],
     357        [8319, 8319], [8336, 8348], [8400, 8432], [11388, 11389],
     358        [11503, 11505], [11631, 11631], [11647, 11647], [11744, 11775],
     359        [11823, 11823], [12293, 12293], [12330, 12333], [12337, 12341],
     360        [12347, 12347], [12441, 12446], [12540, 12542], [40981, 40981],
     361        [42232, 42237], [42508, 42508], [42607, 42610], [42612, 42621],
     362        [42623, 42623], [42652, 42653], [42655, 42655], [42736, 42737],
     363        [42752, 42785], [42864, 42864], [42888, 42890], [43000, 43001],
     364        [43010, 43010], [43014, 43014], [43019, 43019], [43045, 43046],
     365        [43204, 43204], [43232, 43249], [43302, 43309], [43335, 43345],
     366        [43392, 43394], [43443, 43443], [43446, 43449], [43452, 43452],
     367        [43471, 43471], [43493, 43494], [43561, 43566], [43569, 43570],
     368        [43573, 43574], [43587, 43587], [43596, 43596], [43632, 43632],
     369        [43644, 43644], [43696, 43696], [43698, 43700], [43703, 43704],
     370        [43710, 43711], [43713, 43713], [43741, 43741], [43756, 43757],
     371        [43763, 43764], [43766, 43766], [43867, 43871], [44005, 44005],
     372        [44008, 44008], [44013, 44013], [64286, 64286], [64434, 64449],
     373        [65024, 65039], [65043, 65043], [65056, 65069], [65106, 65106],
     374        [65109, 65109], [65279, 65279], [65287, 65287], [65294, 65294],
     375        [65306, 65306], [65342, 65342], [65344, 65344], [65392, 65392],
     376        [65438, 65439], [65507, 65507], [65529, 65531], [66045, 66045],
     377        [66272, 66272], [66422, 66426], [68097, 68099], [68101, 68102],
     378        [68108, 68111], [68152, 68154], [68159, 68159], [68325, 68326],
     379        [69633, 69633], [69688, 69702], [69759, 69761], [69811, 69814],
     380        [69817, 69818], [69821, 69821], [69888, 69890], [69927, 69931],
     381        [69933, 69940], [70003, 70003], [70016, 70017], [70070, 70078],
     382        [70191, 70193], [70196, 70196], [70198, 70199], [70367, 70367],
     383        [70371, 70378], [70401, 70401], [70460, 70460], [70464, 70464],
     384        [70502, 70508], [70512, 70516], [70835, 70840], [70842, 70842],
     385        [70847, 70848], [70850, 70851], [71090, 71093], [71100, 71101],
     386        [71103, 71104], [71219, 71226], [71229, 71229], [71231, 71232],
     387        [71339, 71339], [71341, 71341], [71344, 71349], [71351, 71351],
     388        [92912, 92916], [92976, 92982], [92992, 92995], [94095, 94111],
     389        [113821, 113822], [113824, 113827], [119143, 119145],
     390        [119155, 119170], [119173, 119179], [119210, 119213],
     391        [119362, 119364], [125136, 125142], [917505, 917505],
     392        [917536, 917631], [917760, 917999]**/
     393        const UnicodeSet codepoint_set
     394            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     395              {Mixed, 1}, {Full, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     396              {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
     397              {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
     398              {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Mixed, 22}, {Empty, 1},
     399              {Mixed, 1}, {Empty, 1}, {Mixed, 9}, {Empty, 1}, {Mixed, 2},
     400              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
     401              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
     402              {Empty, 2}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 18},
     403              {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2},
     404              {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     405              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     406              {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     407              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     408              {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     409              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     410              {Empty, 13}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     411              {Mixed, 2}, {Empty, 91}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     412              {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 1},
     413              {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     414              {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1}, {Empty, 38},
     415              {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     416              {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     417              {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
     418              {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
     419              {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
     420              {Empty, 4}, {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 4},
     421              {Mixed, 2}, {Empty, 17}, {Mixed, 3}, {Empty, 4}, {Mixed, 6},
     422              {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
     423              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
     424              {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
     425              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1},
     426              {Empty, 4}, {Mixed, 6}, {Empty, 9}, {Mixed, 2}, {Empty, 6},
     427              {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     428              {Empty, 673}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33},
     429              {Mixed, 1}, {Empty, 615}, {Mixed, 2}, {Empty, 165},
     430              {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 179}, {Mixed, 1},
     431              {Empty, 24761}, {Mixed, 1}, {Full, 3}, {Empty, 4}, {Full, 7},
     432              {Mixed, 1}, {Empty, 6128}},
     433             {0x04004080, 0x40000000, 0x00000001, 0x0190a100, 0xffff0000,
     434              0x0430ffff, 0x000000b0, 0x000003f8, 0x02000000, 0xfffe0000,
     435              0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
     436              0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
     437              0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
     438              0x0e000000, 0xfffffff0, 0x00000007, 0x14000000, 0x00fe21fe,
     439              0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
     440              0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
     441              0x10000000, 0x000021be, 0x0000000c, 0x00000002, 0x90000000,
     442              0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
     443              0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
     444              0x00003040, 0x0000000c, 0x00000002, 0x0000201e, 0x0000000c,
     445              0x005c0400, 0x07f20000, 0x00007fc0, 0x1bf20000, 0x00003f40,
     446              0x03000000, 0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff,
     447              0x00000040, 0x66fde000, 0xc3000000, 0x001e0001, 0x20002064,
     448              0x10000000, 0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000,
     449              0x000c0000, 0x3fb00000, 0x208ffe40, 0x00007800, 0x00000008,
     450              0x00000200, 0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5,
     451              0x7fff0080, 0x0000000f, 0x17d00000, 0x00000004, 0x000ff800,
     452              0x00000003, 0x00003b3c, 0x0003a340, 0x00cff000, 0x3f000000,
     453              0xfff70000, 0x031021fd, 0xfffff000, 0x010007ff, 0xf8000000,
     454              0xf03fffff, 0xa0000000, 0xe000e003, 0x6000e000, 0x0300f800,
     455              0x00007c90, 0x8002ffdf, 0x1fff0000, 0xffff0000, 0x0001ffff,
     456              0x30000000, 0x00038000, 0x80008000, 0x00008000, 0x00000020,
     457              0x083e3c00, 0x7e000000, 0x70000000, 0x00200000, 0x3f000000,
     458              0x00001000, 0xbff78000, 0xb0000000, 0x00030000, 0x00000003,
     459              0x00010000, 0x00000700, 0x03000000, 0x00000844, 0x00000060,
     460              0x00000010, 0x0003ffff, 0x00003fc0, 0x0003ff80, 0x00000007,
     461              0x13c80000, 0x00008000, 0x00000060, 0x00667e00, 0x00001008,
     462              0x10010000, 0xc19d0000, 0x20000002, 0x00583000, 0xf8000000,
     463              0x00002120, 0x40000000, 0xfffc0000, 0x00000003, 0x0008ffff,
     464              0x00003fff, 0x00240000, 0x80000000, 0x04004080, 0x40000000,
     465              0x00000001, 0x00010000, 0xc0000000, 0x0e000008, 0x20000000,
     466              0x00000001, 0x07c00000, 0x0000f06e, 0x87000000, 0x00000060,
     467              0x00000002, 0xff000000, 0x0000007f, 0x80000000, 0x00000003,
     468              0x26780000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
     469              0x7fc00000, 0x00d38000, 0x80000000, 0x000007f8, 0x00000002,
     470              0x10000000, 0x00000001, 0x001f1fc0, 0x85f80000, 0x0000000d,
     471              0xb03c0000, 0x00000001, 0xa7f80000, 0x00000001, 0x00bf2800,
     472              0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000, 0x60000000,
     473              0x0000000f, 0xfff80380, 0x00000fe7, 0x00003c00, 0x0000001c,
     474              0x007f0000, 0x00000002, 0x0000ffff}};
     475        static BinaryPropertyObject property_object{CI, codepoint_set};
     476    }
     477    namespace CWCF_ns {
     478        /** Code Point Ranges for CWCF
     479        [65, 90], [181, 181], [192, 214], [216, 223], [256, 256],
     480        [258, 258], [260, 260], [262, 262], [264, 264], [266, 266],
     481        [268, 268], [270, 270], [272, 272], [274, 274], [276, 276],
     482        [278, 278], [280, 280], [282, 282], [284, 284], [286, 286],
     483        [288, 288], [290, 290], [292, 292], [294, 294], [296, 296],
     484        [298, 298], [300, 300], [302, 302], [304, 304], [306, 306],
     485        [308, 308], [310, 310], [313, 313], [315, 315], [317, 317],
     486        [319, 319], [321, 321], [323, 323], [325, 325], [327, 327],
     487        [329, 330], [332, 332], [334, 334], [336, 336], [338, 338],
     488        [340, 340], [342, 342], [344, 344], [346, 346], [348, 348],
     489        [350, 350], [352, 352], [354, 354], [356, 356], [358, 358],
     490        [360, 360], [362, 362], [364, 364], [366, 366], [368, 368],
     491        [370, 370], [372, 372], [374, 374], [376, 377], [379, 379],
     492        [381, 381], [383, 383], [385, 386], [388, 388], [390, 391],
     493        [393, 395], [398, 401], [403, 404], [406, 408], [412, 413],
     494        [415, 416], [418, 418], [420, 420], [422, 423], [425, 425],
     495        [428, 428], [430, 431], [433, 435], [437, 437], [439, 440],
     496        [444, 444], [452, 453], [455, 456], [458, 459], [461, 461],
     497        [463, 463], [465, 465], [467, 467], [469, 469], [471, 471],
     498        [473, 473], [475, 475], [478, 478], [480, 480], [482, 482],
     499        [484, 484], [486, 486], [488, 488], [490, 490], [492, 492],
     500        [494, 494], [497, 498], [500, 500], [502, 504], [506, 506],
     501        [508, 508], [510, 510], [512, 512], [514, 514], [516, 516],
     502        [518, 518], [520, 520], [522, 522], [524, 524], [526, 526],
     503        [528, 528], [530, 530], [532, 532], [534, 534], [536, 536],
     504        [538, 538], [540, 540], [542, 542], [544, 544], [546, 546],
     505        [548, 548], [550, 550], [552, 552], [554, 554], [556, 556],
     506        [558, 558], [560, 560], [562, 562], [570, 571], [573, 574],
     507        [577, 577], [579, 582], [584, 584], [586, 586], [588, 588],
     508        [590, 590], [837, 837], [880, 880], [882, 882], [886, 886],
     509        [895, 895], [902, 902], [904, 906], [908, 908], [910, 911],
     510        [913, 929], [931, 939], [962, 962], [975, 977], [981, 982],
     511        [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
     512        [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
     513        [1004, 1004], [1006, 1006], [1008, 1009], [1012, 1013],
     514        [1015, 1015], [1017, 1018], [1021, 1071], [1120, 1120],
     515        [1122, 1122], [1124, 1124], [1126, 1126], [1128, 1128],
     516        [1130, 1130], [1132, 1132], [1134, 1134], [1136, 1136],
     517        [1138, 1138], [1140, 1140], [1142, 1142], [1144, 1144],
     518        [1146, 1146], [1148, 1148], [1150, 1150], [1152, 1152],
     519        [1162, 1162], [1164, 1164], [1166, 1166], [1168, 1168],
     520        [1170, 1170], [1172, 1172], [1174, 1174], [1176, 1176],
     521        [1178, 1178], [1180, 1180], [1182, 1182], [1184, 1184],
     522        [1186, 1186], [1188, 1188], [1190, 1190], [1192, 1192],
     523        [1194, 1194], [1196, 1196], [1198, 1198], [1200, 1200],
     524        [1202, 1202], [1204, 1204], [1206, 1206], [1208, 1208],
     525        [1210, 1210], [1212, 1212], [1214, 1214], [1216, 1217],
     526        [1219, 1219], [1221, 1221], [1223, 1223], [1225, 1225],
     527        [1227, 1227], [1229, 1229], [1232, 1232], [1234, 1234],
     528        [1236, 1236], [1238, 1238], [1240, 1240], [1242, 1242],
     529        [1244, 1244], [1246, 1246], [1248, 1248], [1250, 1250],
     530        [1252, 1252], [1254, 1254], [1256, 1256], [1258, 1258],
     531        [1260, 1260], [1262, 1262], [1264, 1264], [1266, 1266],
     532        [1268, 1268], [1270, 1270], [1272, 1272], [1274, 1274],
     533        [1276, 1276], [1278, 1278], [1280, 1280], [1282, 1282],
     534        [1284, 1284], [1286, 1286], [1288, 1288], [1290, 1290],
     535        [1292, 1292], [1294, 1294], [1296, 1296], [1298, 1298],
     536        [1300, 1300], [1302, 1302], [1304, 1304], [1306, 1306],
     537        [1308, 1308], [1310, 1310], [1312, 1312], [1314, 1314],
     538        [1316, 1316], [1318, 1318], [1320, 1320], [1322, 1322],
     539        [1324, 1324], [1326, 1326], [1329, 1366], [1415, 1415],
     540        [4256, 4293], [4295, 4295], [4301, 4301], [7680, 7680],
     541        [7682, 7682], [7684, 7684], [7686, 7686], [7688, 7688],
     542        [7690, 7690], [7692, 7692], [7694, 7694], [7696, 7696],
     543        [7698, 7698], [7700, 7700], [7702, 7702], [7704, 7704],
     544        [7706, 7706], [7708, 7708], [7710, 7710], [7712, 7712],
     545        [7714, 7714], [7716, 7716], [7718, 7718], [7720, 7720],
     546        [7722, 7722], [7724, 7724], [7726, 7726], [7728, 7728],
     547        [7730, 7730], [7732, 7732], [7734, 7734], [7736, 7736],
     548        [7738, 7738], [7740, 7740], [7742, 7742], [7744, 7744],
     549        [7746, 7746], [7748, 7748], [7750, 7750], [7752, 7752],
     550        [7754, 7754], [7756, 7756], [7758, 7758], [7760, 7760],
     551        [7762, 7762], [7764, 7764], [7766, 7766], [7768, 7768],
     552        [7770, 7770], [7772, 7772], [7774, 7774], [7776, 7776],
     553        [7778, 7778], [7780, 7780], [7782, 7782], [7784, 7784],
     554        [7786, 7786], [7788, 7788], [7790, 7790], [7792, 7792],
     555        [7794, 7794], [7796, 7796], [7798, 7798], [7800, 7800],
     556        [7802, 7802], [7804, 7804], [7806, 7806], [7808, 7808],
     557        [7810, 7810], [7812, 7812], [7814, 7814], [7816, 7816],
     558        [7818, 7818], [7820, 7820], [7822, 7822], [7824, 7824],
     559        [7826, 7826], [7828, 7828], [7834, 7835], [7838, 7838],
     560        [7840, 7840], [7842, 7842], [7844, 7844], [7846, 7846],
     561        [7848, 7848], [7850, 7850], [7852, 7852], [7854, 7854],
     562        [7856, 7856], [7858, 7858], [7860, 7860], [7862, 7862],
     563        [7864, 7864], [7866, 7866], [7868, 7868], [7870, 7870],
     564        [7872, 7872], [7874, 7874], [7876, 7876], [7878, 7878],
     565        [7880, 7880], [7882, 7882], [7884, 7884], [7886, 7886],
     566        [7888, 7888], [7890, 7890], [7892, 7892], [7894, 7894],
     567        [7896, 7896], [7898, 7898], [7900, 7900], [7902, 7902],
     568        [7904, 7904], [7906, 7906], [7908, 7908], [7910, 7910],
     569        [7912, 7912], [7914, 7914], [7916, 7916], [7918, 7918],
     570        [7920, 7920], [7922, 7922], [7924, 7924], [7926, 7926],
     571        [7928, 7928], [7930, 7930], [7932, 7932], [7934, 7934],
     572        [7944, 7951], [7960, 7965], [7976, 7983], [7992, 7999],
     573        [8008, 8013], [8025, 8025], [8027, 8027], [8029, 8029],
     574        [8031, 8031], [8040, 8047], [8064, 8111], [8114, 8116],
     575        [8119, 8124], [8130, 8132], [8135, 8140], [8152, 8155],
     576        [8168, 8172], [8178, 8180], [8183, 8188], [8486, 8486],
     577        [8490, 8491], [8498, 8498], [8544, 8559], [8579, 8579],
     578        [9398, 9423], [11264, 11310], [11360, 11360], [11362, 11364],
     579        [11367, 11367], [11369, 11369], [11371, 11371], [11373, 11376],
     580        [11378, 11378], [11381, 11381], [11390, 11392], [11394, 11394],
     581        [11396, 11396], [11398, 11398], [11400, 11400], [11402, 11402],
     582        [11404, 11404], [11406, 11406], [11408, 11408], [11410, 11410],
     583        [11412, 11412], [11414, 11414], [11416, 11416], [11418, 11418],
     584        [11420, 11420], [11422, 11422], [11424, 11424], [11426, 11426],
     585        [11428, 11428], [11430, 11430], [11432, 11432], [11434, 11434],
     586        [11436, 11436], [11438, 11438], [11440, 11440], [11442, 11442],
     587        [11444, 11444], [11446, 11446], [11448, 11448], [11450, 11450],
     588        [11452, 11452], [11454, 11454], [11456, 11456], [11458, 11458],
     589        [11460, 11460], [11462, 11462], [11464, 11464], [11466, 11466],
     590        [11468, 11468], [11470, 11470], [11472, 11472], [11474, 11474],
     591        [11476, 11476], [11478, 11478], [11480, 11480], [11482, 11482],
     592        [11484, 11484], [11486, 11486], [11488, 11488], [11490, 11490],
     593        [11499, 11499], [11501, 11501], [11506, 11506], [42560, 42560],
     594        [42562, 42562], [42564, 42564], [42566, 42566], [42568, 42568],
     595        [42570, 42570], [42572, 42572], [42574, 42574], [42576, 42576],
     596        [42578, 42578], [42580, 42580], [42582, 42582], [42584, 42584],
     597        [42586, 42586], [42588, 42588], [42590, 42590], [42592, 42592],
     598        [42594, 42594], [42596, 42596], [42598, 42598], [42600, 42600],
     599        [42602, 42602], [42604, 42604], [42624, 42624], [42626, 42626],
     600        [42628, 42628], [42630, 42630], [42632, 42632], [42634, 42634],
     601        [42636, 42636], [42638, 42638], [42640, 42640], [42642, 42642],
     602        [42644, 42644], [42646, 42646], [42648, 42648], [42650, 42650],
     603        [42786, 42786], [42788, 42788], [42790, 42790], [42792, 42792],
     604        [42794, 42794], [42796, 42796], [42798, 42798], [42802, 42802],
     605        [42804, 42804], [42806, 42806], [42808, 42808], [42810, 42810],
     606        [42812, 42812], [42814, 42814], [42816, 42816], [42818, 42818],
     607        [42820, 42820], [42822, 42822], [42824, 42824], [42826, 42826],
     608        [42828, 42828], [42830, 42830], [42832, 42832], [42834, 42834],
     609        [42836, 42836], [42838, 42838], [42840, 42840], [42842, 42842],
     610        [42844, 42844], [42846, 42846], [42848, 42848], [42850, 42850],
     611        [42852, 42852], [42854, 42854], [42856, 42856], [42858, 42858],
     612        [42860, 42860], [42862, 42862], [42873, 42873], [42875, 42875],
     613        [42877, 42878], [42880, 42880], [42882, 42882], [42884, 42884],
     614        [42886, 42886], [42891, 42891], [42893, 42893], [42896, 42896],
     615        [42898, 42898], [42902, 42902], [42904, 42904], [42906, 42906],
     616        [42908, 42908], [42910, 42910], [42912, 42912], [42914, 42914],
     617        [42916, 42916], [42918, 42918], [42920, 42920], [42922, 42925],
     618        [42928, 42929], [64256, 64262], [64275, 64279], [65313, 65338],
     619        [66560, 66599], [71840, 71871]**/
     620        const UnicodeSet codepoint_set
     621            {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     622              {Mixed, 11}, {Empty, 7}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
     623              {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
     624              {Full, 1}, {Mixed, 1}, {Empty, 105}, {Mixed, 12}, {Full, 1},
     625              {Mixed, 3}, {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     626              {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1},
     627              {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3}, {Empty, 4},
     628              {Mixed, 5}, {Empty, 666}, {Mixed, 1}, {Empty, 32}, {Mixed, 1},
     629              {Empty, 38}, {Full, 1}, {Mixed, 1}, {Empty, 163}, {Full, 1},
     630              {Empty, 32570}},
     631             {0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
     632              0x555556aa, 0xab555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0,
     633              0x55d65555, 0x55555555, 0x6c055555, 0x0000557a, 0x00000020,
     634              0x80450000, 0xfffed740, 0x00000ffb, 0x55638004, 0xe6b35555,
     635              0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
     636              0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
     637              0x000020bf, 0x55555555, 0x55555555, 0x55555555, 0x55555555,
     638              0x4c155555, 0x55555555, 0x55555555, 0x55555555, 0x3f00ff00,
     639              0xff00ff00, 0xaa003f00, 0x0000ff00, 0x1f9cffff, 0x0f001f9c,
     640              0x1f9c1f00, 0x00040c40, 0x0000ffff, 0x00000008, 0xffc00000,
     641              0x0000ffff, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
     642              0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
     643              0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x00033d55,
     644              0x00f8007f, 0x07fffffe, 0x000000ff}};
     645        static BinaryPropertyObject property_object{CWCF, codepoint_set};
     646    }
     647    namespace CWCM_ns {
     648        /** Code Point Ranges for CWCM
     649        [65, 90], [97, 122], [181, 181], [192, 214], [216, 246], [248, 311],
     650        [313, 396], [398, 410], [412, 425], [428, 441], [444, 445],
     651        [447, 447], [452, 544], [546, 563], [570, 596], [598, 599],
     652        [601, 601], [603, 604], [608, 609], [611, 611], [613, 614],
     653        [616, 617], [619, 620], [623, 623], [625, 626], [629, 629],
     654        [637, 637], [640, 640], [643, 643], [647, 652], [658, 658],
     655        [670, 670], [837, 837], [880, 883], [886, 887], [891, 893],
     656        [895, 895], [902, 902], [904, 906], [908, 908], [910, 929],
     657        [931, 977], [981, 1013], [1015, 1019], [1021, 1153], [1162, 1327],
     658        [1329, 1366], [1377, 1415], [4256, 4293], [4295, 4295],
     659        [4301, 4301], [7545, 7545], [7549, 7549], [7680, 7835],
     660        [7838, 7838], [7840, 7957], [7960, 7965], [7968, 8005],
     661        [8008, 8013], [8016, 8023], [8025, 8025], [8027, 8027],
     662        [8029, 8029], [8031, 8061], [8064, 8116], [8118, 8124],
     663        [8126, 8126], [8130, 8132], [8134, 8140], [8144, 8147],
     664        [8150, 8155], [8160, 8172], [8178, 8180], [8182, 8188],
     665        [8486, 8486], [8490, 8491], [8498, 8498], [8526, 8526],
     666        [8544, 8575], [8579, 8580], [9398, 9449], [11264, 11310],
     667        [11312, 11358], [11360, 11376], [11378, 11379], [11381, 11382],
     668        [11390, 11491], [11499, 11502], [11506, 11507], [11520, 11557],
     669        [11559, 11559], [11565, 11565], [42560, 42605], [42624, 42651],
     670        [42786, 42799], [42802, 42863], [42873, 42887], [42891, 42893],
     671        [42896, 42899], [42902, 42925], [42928, 42929], [64256, 64262],
     672        [64275, 64279], [65313, 65338], [65345, 65370], [66560, 66639],
     673        [71840, 71903]**/
     674        const UnicodeSet codepoint_set
     675            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     676              {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
     677              {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
     678              {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 100},
     679              {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
     680              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     681              {Empty, 9}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 24},
     682              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
     683              {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     684              {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     685              {Full, 1}, {Mixed, 3}, {Empty, 666}, {Mixed, 1}, {Empty, 32},
     686              {Mixed, 2}, {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 162},
     687              {Full, 2}, {Empty, 32569}},
     688             {0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
     689              0xfeffffff, 0xf7ffdfff, 0xb3fff3ff, 0xfffffff0, 0xfc0ffffd,
     690              0x1adfffff, 0x20269b6b, 0x40041f89, 0x00000020, 0xb8cf0000,
     691              0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
     692              0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
     693              0x22000000, 0x4fffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     694              0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x00040c40, 0x00004000,
     695              0x00000018, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
     696              0xc06dffff, 0x000c780f, 0x000020bf, 0x00003fff, 0x0fffffff,
     697              0xfffcfffc, 0xfe00ffff, 0xffcf38ff, 0x00033fff, 0x00f8007f,
     698              0x07fffffe, 0x07fffffe, 0x0000ffff}};
     699        static BinaryPropertyObject property_object{CWCM, codepoint_set};
     700    }
     701    namespace CWL_ns {
     702        /** Code Point Ranges for CWL
     703        [65, 90], [192, 214], [216, 222], [256, 256], [258, 258],
     704        [260, 260], [262, 262], [264, 264], [266, 266], [268, 268],
     705        [270, 270], [272, 272], [274, 274], [276, 276], [278, 278],
     706        [280, 280], [282, 282], [284, 284], [286, 286], [288, 288],
     707        [290, 290], [292, 292], [294, 294], [296, 296], [298, 298],
     708        [300, 300], [302, 302], [304, 304], [306, 306], [308, 308],
     709        [310, 310], [313, 313], [315, 315], [317, 317], [319, 319],
     710        [321, 321], [323, 323], [325, 325], [327, 327], [330, 330],
     711        [332, 332], [334, 334], [336, 336], [338, 338], [340, 340],
     712        [342, 342], [344, 344], [346, 346], [348, 348], [350, 350],
     713        [352, 352], [354, 354], [356, 356], [358, 358], [360, 360],
     714        [362, 362], [364, 364], [366, 366], [368, 368], [370, 370],
     715        [372, 372], [374, 374], [376, 377], [379, 379], [381, 381],
     716        [385, 386], [388, 388], [390, 391], [393, 395], [398, 401],
     717        [403, 404], [406, 408], [412, 413], [415, 416], [418, 418],
     718        [420, 420], [422, 423], [425, 425], [428, 428], [430, 431],
     719        [433, 435], [437, 437], [439, 440], [444, 444], [452, 453],
     720        [455, 456], [458, 459], [461, 461], [463, 463], [465, 465],
     721        [467, 467], [469, 469], [471, 471], [473, 473], [475, 475],
     722        [478, 478], [480, 480], [482, 482], [484, 484], [486, 486],
     723        [488, 488], [490, 490], [492, 492], [494, 494], [497, 498],
     724        [500, 500], [502, 504], [506, 506], [508, 508], [510, 510],
     725        [512, 512], [514, 514], [516, 516], [518, 518], [520, 520],
     726        [522, 522], [524, 524], [526, 526], [528, 528], [530, 530],
     727        [532, 532], [534, 534], [536, 536], [538, 538], [540, 540],
     728        [542, 542], [544, 544], [546, 546], [548, 548], [550, 550],
     729        [552, 552], [554, 554], [556, 556], [558, 558], [560, 560],
     730        [562, 562], [570, 571], [573, 574], [577, 577], [579, 582],
     731        [584, 584], [586, 586], [588, 588], [590, 590], [880, 880],
     732        [882, 882], [886, 886], [895, 895], [902, 902], [904, 906],
     733        [908, 908], [910, 911], [913, 929], [931, 939], [975, 975],
     734        [984, 984], [986, 986], [988, 988], [990, 990], [992, 992],
     735        [994, 994], [996, 996], [998, 998], [1000, 1000], [1002, 1002],
     736        [1004, 1004], [1006, 1006], [1012, 1012], [1015, 1015],
     737        [1017, 1018], [1021, 1071], [1120, 1120], [1122, 1122],
     738        [1124, 1124], [1126, 1126], [1128, 1128], [1130, 1130],
     739        [1132, 1132], [1134, 1134], [1136, 1136], [1138, 1138],
     740        [1140, 1140], [1142, 1142], [1144, 1144], [1146, 1146],
     741        [1148, 1148], [1150, 1150], [1152, 1152], [1162, 1162],
     742        [1164, 1164], [1166, 1166], [1168, 1168], [1170, 1170],
     743        [1172, 1172], [1174, 1174], [1176, 1176], [1178, 1178],
     744        [1180, 1180], [1182, 1182], [1184, 1184], [1186, 1186],
     745        [1188, 1188], [1190, 1190], [1192, 1192], [1194, 1194],
     746        [1196, 1196], [1198, 1198], [1200, 1200], [1202, 1202],
     747        [1204, 1204], [1206, 1206], [1208, 1208], [1210, 1210],
     748        [1212, 1212], [1214, 1214], [1216, 1217], [1219, 1219],
     749        [1221, 1221], [1223, 1223], [1225, 1225], [1227, 1227],
     750        [1229, 1229], [1232, 1232], [1234, 1234], [1236, 1236],
     751        [1238, 1238], [1240, 1240], [1242, 1242], [1244, 1244],
     752        [1246, 1246], [1248, 1248], [1250, 1250], [1252, 1252],
     753        [1254, 1254], [1256, 1256], [1258, 1258], [1260, 1260],
     754        [1262, 1262], [1264, 1264], [1266, 1266], [1268, 1268],
     755        [1270, 1270], [1272, 1272], [1274, 1274], [1276, 1276],
     756        [1278, 1278], [1280, 1280], [1282, 1282], [1284, 1284],
     757        [1286, 1286], [1288, 1288], [1290, 1290], [1292, 1292],
     758        [1294, 1294], [1296, 1296], [1298, 1298], [1300, 1300],
     759        [1302, 1302], [1304, 1304], [1306, 1306], [1308, 1308],
     760        [1310, 1310], [1312, 1312], [1314, 1314], [1316, 1316],
     761        [1318, 1318], [1320, 1320], [1322, 1322], [1324, 1324],
     762        [1326, 1326], [1329, 1366], [4256, 4293], [4295, 4295],
     763        [4301, 4301], [7680, 7680], [7682, 7682], [7684, 7684],
     764        [7686, 7686], [7688, 7688], [7690, 7690], [7692, 7692],
     765        [7694, 7694], [7696, 7696], [7698, 7698], [7700, 7700],
     766        [7702, 7702], [7704, 7704], [7706, 7706], [7708, 7708],
     767        [7710, 7710], [7712, 7712], [7714, 7714], [7716, 7716],
     768        [7718, 7718], [7720, 7720], [7722, 7722], [7724, 7724],
     769        [7726, 7726], [7728, 7728], [7730, 7730], [7732, 7732],
     770        [7734, 7734], [7736, 7736], [7738, 7738], [7740, 7740],
     771        [7742, 7742], [7744, 7744], [7746, 7746], [7748, 7748],
     772        [7750, 7750], [7752, 7752], [7754, 7754], [7756, 7756],
     773        [7758, 7758], [7760, 7760], [7762, 7762], [7764, 7764],
     774        [7766, 7766], [7768, 7768], [7770, 7770], [7772, 7772],
     775        [7774, 7774], [7776, 7776], [7778, 7778], [7780, 7780],
     776        [7782, 7782], [7784, 7784], [7786, 7786], [7788, 7788],
     777        [7790, 7790], [7792, 7792], [7794, 7794], [7796, 7796],
     778        [7798, 7798], [7800, 7800], [7802, 7802], [7804, 7804],
     779        [7806, 7806], [7808, 7808], [7810, 7810], [7812, 7812],
     780        [7814, 7814], [7816, 7816], [7818, 7818], [7820, 7820],
     781        [7822, 7822], [7824, 7824], [7826, 7826], [7828, 7828],
     782        [7838, 7838], [7840, 7840], [7842, 7842], [7844, 7844],
     783        [7846, 7846], [7848, 7848], [7850, 7850], [7852, 7852],
     784        [7854, 7854], [7856, 7856], [7858, 7858], [7860, 7860],
     785        [7862, 7862], [7864, 7864], [7866, 7866], [7868, 7868],
     786        [7870, 7870], [7872, 7872], [7874, 7874], [7876, 7876],
     787        [7878, 7878], [7880, 7880], [7882, 7882], [7884, 7884],
     788        [7886, 7886], [7888, 7888], [7890, 7890], [7892, 7892],
     789        [7894, 7894], [7896, 7896], [7898, 7898], [7900, 7900],
     790        [7902, 7902], [7904, 7904], [7906, 7906], [7908, 7908],
     791        [7910, 7910], [7912, 7912], [7914, 7914], [7916, 7916],
     792        [7918, 7918], [7920, 7920], [7922, 7922], [7924, 7924],
     793        [7926, 7926], [7928, 7928], [7930, 7930], [7932, 7932],
     794        [7934, 7934], [7944, 7951], [7960, 7965], [7976, 7983],
     795        [7992, 7999], [8008, 8013], [8025, 8025], [8027, 8027],
     796        [8029, 8029], [8031, 8031], [8040, 8047], [8072, 8079],
     797        [8088, 8095], [8104, 8111], [8120, 8124], [8136, 8140],
     798        [8152, 8155], [8168, 8172], [8184, 8188], [8486, 8486],
     799        [8490, 8491], [8498, 8498], [8544, 8559], [8579, 8579],
     800        [9398, 9423], [11264, 11310], [11360, 11360], [11362, 11364],
     801        [11367, 11367], [11369, 11369], [11371, 11371], [11373, 11376],
     802        [11378, 11378], [11381, 11381], [11390, 11392], [11394, 11394],
     803        [11396, 11396], [11398, 11398], [11400, 11400], [11402, 11402],
     804        [11404, 11404], [11406, 11406], [11408, 11408], [11410, 11410],
     805        [11412, 11412], [11414, 11414], [11416, 11416], [11418, 11418],
     806        [11420, 11420], [11422, 11422], [11424, 11424], [11426, 11426],
     807        [11428, 11428], [11430, 11430], [11432, 11432], [11434, 11434],
     808        [11436, 11436], [11438, 11438], [11440, 11440], [11442, 11442],
     809        [11444, 11444], [11446, 11446], [11448, 11448], [11450, 11450],
     810        [11452, 11452], [11454, 11454], [11456, 11456], [11458, 11458],
     811        [11460, 11460], [11462, 11462], [11464, 11464], [11466, 11466],
     812        [11468, 11468], [11470, 11470], [11472, 11472], [11474, 11474],
     813        [11476, 11476], [11478, 11478], [11480, 11480], [11482, 11482],
     814        [11484, 11484], [11486, 11486], [11488, 11488], [11490, 11490],
     815        [11499, 11499], [11501, 11501], [11506, 11506], [42560, 42560],
     816        [42562, 42562], [42564, 42564], [42566, 42566], [42568, 42568],
     817        [42570, 42570], [42572, 42572], [42574, 42574], [42576, 42576],
     818        [42578, 42578], [42580, 42580], [42582, 42582], [42584, 42584],
     819        [42586, 42586], [42588, 42588], [42590, 42590], [42592, 42592],
     820        [42594, 42594], [42596, 42596], [42598, 42598], [42600, 42600],
     821        [42602, 42602], [42604, 42604], [42624, 42624], [42626, 42626],
     822        [42628, 42628], [42630, 42630], [42632, 42632], [42634, 42634],
     823        [42636, 42636], [42638, 42638], [42640, 42640], [42642, 42642],
     824        [42644, 42644], [42646, 42646], [42648, 42648], [42650, 42650],
     825        [42786, 42786], [42788, 42788], [42790, 42790], [42792, 42792],
     826        [42794, 42794], [42796, 42796], [42798, 42798], [42802, 42802],
     827        [42804, 42804], [42806, 42806], [42808, 42808], [42810, 42810],
     828        [42812, 42812], [42814, 42814], [42816, 42816], [42818, 42818],
     829        [42820, 42820], [42822, 42822], [42824, 42824], [42826, 42826],
     830        [42828, 42828], [42830, 42830], [42832, 42832], [42834, 42834],
     831        [42836, 42836], [42838, 42838], [42840, 42840], [42842, 42842],
     832        [42844, 42844], [42846, 42846], [42848, 42848], [42850, 42850],
     833        [42852, 42852], [42854, 42854], [42856, 42856], [42858, 42858],
     834        [42860, 42860], [42862, 42862], [42873, 42873], [42875, 42875],
     835        [42877, 42878], [42880, 42880], [42882, 42882], [42884, 42884],
     836        [42886, 42886], [42891, 42891], [42893, 42893], [42896, 42896],
     837        [42898, 42898], [42902, 42902], [42904, 42904], [42906, 42906],
     838        [42908, 42908], [42910, 42910], [42912, 42912], [42914, 42914],
     839        [42916, 42916], [42918, 42918], [42920, 42920], [42922, 42925],
     840        [42928, 42929], [65313, 65338], [66560, 66599], [71840, 71871]**/
     841        const UnicodeSet codepoint_set
     842            {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     843              {Mixed, 11}, {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     844              {Empty, 1}, {Mixed, 8}, {Empty, 90}, {Full, 1}, {Mixed, 1},
     845              {Empty, 105}, {Mixed, 16}, {Empty, 9}, {Mixed, 1}, {Empty, 1},
     846              {Mixed, 2}, {Empty, 24}, {Mixed, 2}, {Empty, 57}, {Full, 1},
     847              {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
     848              {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
     849              {Full, 1}, {Mixed, 1}, {Empty, 163}, {Full, 1},
     850              {Empty, 32570}},
     851             {0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa,
     852              0x2b555555, 0xb1dbced6, 0x11aed2d5, 0x4aaaadb0, 0x55d65555,
     853              0x55555555, 0x6c055555, 0x0000557a, 0x80450000, 0xfffed740,
     854              0x00000ffb, 0x55008000, 0xe6905555, 0x0000ffff, 0x55555555,
     855              0x55555401, 0x55555555, 0x55552aab, 0x55555555, 0x55555555,
     856              0xfffe5555, 0x007fffff, 0x000020bf, 0x55555555, 0x55555555,
     857              0x55555555, 0x55555555, 0x40155555, 0x55555555, 0x55555555,
     858              0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
     859              0xff00ff00, 0x1f00ff00, 0x0f001f00, 0x1f001f00, 0x00040c40,
     860              0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff,
     861              0xc025ea9d, 0x55555555, 0x55555555, 0x55555555, 0x00042805,
     862              0x55555555, 0x00001555, 0x05555555, 0x55545554, 0x55555555,
     863              0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe, 0x000000ff}};
     864        static BinaryPropertyObject property_object{CWL, codepoint_set};
     865    }
     866    namespace CWT_ns {
     867        /** Code Point Ranges for CWT
     868        [97, 122], [181, 181], [223, 246], [248, 255], [257, 257],
     869        [259, 259], [261, 261], [263, 263], [265, 265], [267, 267],
     870        [269, 269], [271, 271], [273, 273], [275, 275], [277, 277],
     871        [279, 279], [281, 281], [283, 283], [285, 285], [287, 287],
     872        [289, 289], [291, 291], [293, 293], [295, 295], [297, 297],
     873        [299, 299], [301, 301], [303, 303], [305, 305], [307, 307],
     874        [309, 309], [311, 311], [314, 314], [316, 316], [318, 318],
     875        [320, 320], [322, 322], [324, 324], [326, 326], [328, 329],
     876        [331, 331], [333, 333], [335, 335], [337, 337], [339, 339],
     877        [341, 341], [343, 343], [345, 345], [347, 347], [349, 349],
     878        [351, 351], [353, 353], [355, 355], [357, 357], [359, 359],
     879        [361, 361], [363, 363], [365, 365], [367, 367], [369, 369],
     880        [371, 371], [373, 373], [375, 375], [378, 378], [380, 380],
     881        [382, 384], [387, 387], [389, 389], [392, 392], [396, 396],
     882        [402, 402], [405, 405], [409, 410], [414, 414], [417, 417],
     883        [419, 419], [421, 421], [424, 424], [429, 429], [432, 432],
     884        [436, 436], [438, 438], [441, 441], [445, 445], [447, 447],
     885        [452, 452], [454, 455], [457, 458], [460, 460], [462, 462],
     886        [464, 464], [466, 466], [468, 468], [470, 470], [472, 472],
     887        [474, 474], [476, 477], [479, 479], [481, 481], [483, 483],
     888        [485, 485], [487, 487], [489, 489], [491, 491], [493, 493],
     889        [495, 497], [499, 499], [501, 501], [505, 505], [507, 507],
     890        [509, 509], [511, 511], [513, 513], [515, 515], [517, 517],
     891        [519, 519], [521, 521], [523, 523], [525, 525], [527, 527],
     892        [529, 529], [531, 531], [533, 533], [535, 535], [537, 537],
     893        [539, 539], [541, 541], [543, 543], [547, 547], [549, 549],
     894        [551, 551], [553, 553], [555, 555], [557, 557], [559, 559],
     895        [561, 561], [563, 563], [572, 572], [575, 576], [578, 578],
     896        [583, 583], [585, 585], [587, 587], [589, 589], [591, 596],
     897        [598, 599], [601, 601], [603, 604], [608, 609], [611, 611],
     898        [613, 614], [616, 617], [619, 620], [623, 623], [625, 626],
     899        [629, 629], [637, 637], [640, 640], [643, 643], [647, 652],
     900        [658, 658], [670, 670], [837, 837], [881, 881], [883, 883],
     901        [887, 887], [891, 893], [912, 912], [940, 974], [976, 977],
     902        [981, 983], [985, 985], [987, 987], [989, 989], [991, 991],
     903        [993, 993], [995, 995], [997, 997], [999, 999], [1001, 1001],
     904        [1003, 1003], [1005, 1005], [1007, 1011], [1013, 1013],
     905        [1016, 1016], [1019, 1019], [1072, 1119], [1121, 1121],
     906        [1123, 1123], [1125, 1125], [1127, 1127], [1129, 1129],
     907        [1131, 1131], [1133, 1133], [1135, 1135], [1137, 1137],
     908        [1139, 1139], [1141, 1141], [1143, 1143], [1145, 1145],
     909        [1147, 1147], [1149, 1149], [1151, 1151], [1153, 1153],
     910        [1163, 1163], [1165, 1165], [1167, 1167], [1169, 1169],
     911        [1171, 1171], [1173, 1173], [1175, 1175], [1177, 1177],
     912        [1179, 1179], [1181, 1181], [1183, 1183], [1185, 1185],
     913        [1187, 1187], [1189, 1189], [1191, 1191], [1193, 1193],
     914        [1195, 1195], [1197, 1197], [1199, 1199], [1201, 1201],
     915        [1203, 1203], [1205, 1205], [1207, 1207], [1209, 1209],
     916        [1211, 1211], [1213, 1213], [1215, 1215], [1218, 1218],
     917        [1220, 1220], [1222, 1222], [1224, 1224], [1226, 1226],
     918        [1228, 1228], [1230, 1231], [1233, 1233], [1235, 1235],
     919        [1237, 1237], [1239, 1239], [1241, 1241], [1243, 1243],
     920        [1245, 1245], [1247, 1247], [1249, 1249], [1251, 1251],
     921        [1253, 1253], [1255, 1255], [1257, 1257], [1259, 1259],
     922        [1261, 1261], [1263, 1263], [1265, 1265], [1267, 1267],
     923        [1269, 1269], [1271, 1271], [1273, 1273], [1275, 1275],
     924        [1277, 1277], [1279, 1279], [1281, 1281], [1283, 1283],
     925        [1285, 1285], [1287, 1287], [1289, 1289], [1291, 1291],
     926        [1293, 1293], [1295, 1295], [1297, 1297], [1299, 1299],
     927        [1301, 1301], [1303, 1303], [1305, 1305], [1307, 1307],
     928        [1309, 1309], [1311, 1311], [1313, 1313], [1315, 1315],
     929        [1317, 1317], [1319, 1319], [1321, 1321], [1323, 1323],
     930        [1325, 1325], [1327, 1327], [1377, 1415], [7545, 7545],
     931        [7549, 7549], [7681, 7681], [7683, 7683], [7685, 7685],
     932        [7687, 7687], [7689, 7689], [7691, 7691], [7693, 7693],
     933        [7695, 7695], [7697, 7697], [7699, 7699], [7701, 7701],
     934        [7703, 7703], [7705, 7705], [7707, 7707], [7709, 7709],
     935        [7711, 7711], [7713, 7713], [7715, 7715], [7717, 7717],
     936        [7719, 7719], [7721, 7721], [7723, 7723], [7725, 7725],
     937        [7727, 7727], [7729, 7729], [7731, 7731], [7733, 7733],
     938        [7735, 7735], [7737, 7737], [7739, 7739], [7741, 7741],
     939        [7743, 7743], [7745, 7745], [7747, 7747], [7749, 7749],
     940        [7751, 7751], [7753, 7753], [7755, 7755], [7757, 7757],
     941        [7759, 7759], [7761, 7761], [7763, 7763], [7765, 7765],
     942        [7767, 7767], [7769, 7769], [7771, 7771], [7773, 7773],
     943        [7775, 7775], [7777, 7777], [7779, 7779], [7781, 7781],
     944        [7783, 7783], [7785, 7785], [7787, 7787], [7789, 7789],
     945        [7791, 7791], [7793, 7793], [7795, 7795], [7797, 7797],
     946        [7799, 7799], [7801, 7801], [7803, 7803], [7805, 7805],
     947        [7807, 7807], [7809, 7809], [7811, 7811], [7813, 7813],
     948        [7815, 7815], [7817, 7817], [7819, 7819], [7821, 7821],
     949        [7823, 7823], [7825, 7825], [7827, 7827], [7829, 7835],
     950        [7841, 7841], [7843, 7843], [7845, 7845], [7847, 7847],
     951        [7849, 7849], [7851, 7851], [7853, 7853], [7855, 7855],
     952        [7857, 7857], [7859, 7859], [7861, 7861], [7863, 7863],
     953        [7865, 7865], [7867, 7867], [7869, 7869], [7871, 7871],
     954        [7873, 7873], [7875, 7875], [7877, 7877], [7879, 7879],
     955        [7881, 7881], [7883, 7883], [7885, 7885], [7887, 7887],
     956        [7889, 7889], [7891, 7891], [7893, 7893], [7895, 7895],
     957        [7897, 7897], [7899, 7899], [7901, 7901], [7903, 7903],
     958        [7905, 7905], [7907, 7907], [7909, 7909], [7911, 7911],
     959        [7913, 7913], [7915, 7915], [7917, 7917], [7919, 7919],
     960        [7921, 7921], [7923, 7923], [7925, 7925], [7927, 7927],
     961        [7929, 7929], [7931, 7931], [7933, 7933], [7935, 7943],
     962        [7952, 7957], [7968, 7975], [7984, 7991], [8000, 8005],
     963        [8016, 8023], [8032, 8039], [8048, 8061], [8064, 8071],
     964        [8080, 8087], [8096, 8103], [8112, 8116], [8118, 8119],
     965        [8126, 8126], [8130, 8132], [8134, 8135], [8144, 8147],
     966        [8150, 8151], [8160, 8167], [8178, 8180], [8182, 8183],
     967        [8526, 8526], [8560, 8575], [8580, 8580], [9424, 9449],
     968        [11312, 11358], [11361, 11361], [11365, 11366], [11368, 11368],
     969        [11370, 11370], [11372, 11372], [11379, 11379], [11382, 11382],
     970        [11393, 11393], [11395, 11395], [11397, 11397], [11399, 11399],
     971        [11401, 11401], [11403, 11403], [11405, 11405], [11407, 11407],
     972        [11409, 11409], [11411, 11411], [11413, 11413], [11415, 11415],
     973        [11417, 11417], [11419, 11419], [11421, 11421], [11423, 11423],
     974        [11425, 11425], [11427, 11427], [11429, 11429], [11431, 11431],
     975        [11433, 11433], [11435, 11435], [11437, 11437], [11439, 11439],
     976        [11441, 11441], [11443, 11443], [11445, 11445], [11447, 11447],
     977        [11449, 11449], [11451, 11451], [11453, 11453], [11455, 11455],
     978        [11457, 11457], [11459, 11459], [11461, 11461], [11463, 11463],
     979        [11465, 11465], [11467, 11467], [11469, 11469], [11471, 11471],
     980        [11473, 11473], [11475, 11475], [11477, 11477], [11479, 11479],
     981        [11481, 11481], [11483, 11483], [11485, 11485], [11487, 11487],
     982        [11489, 11489], [11491, 11491], [11500, 11500], [11502, 11502],
     983        [11507, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
     984        [42561, 42561], [42563, 42563], [42565, 42565], [42567, 42567],
     985        [42569, 42569], [42571, 42571], [42573, 42573], [42575, 42575],
     986        [42577, 42577], [42579, 42579], [42581, 42581], [42583, 42583],
     987        [42585, 42585], [42587, 42587], [42589, 42589], [42591, 42591],
     988        [42593, 42593], [42595, 42595], [42597, 42597], [42599, 42599],
     989        [42601, 42601], [42603, 42603], [42605, 42605], [42625, 42625],
     990        [42627, 42627], [42629, 42629], [42631, 42631], [42633, 42633],
     991        [42635, 42635], [42637, 42637], [42639, 42639], [42641, 42641],
     992        [42643, 42643], [42645, 42645], [42647, 42647], [42649, 42649],
     993        [42651, 42651], [42787, 42787], [42789, 42789], [42791, 42791],
     994        [42793, 42793], [42795, 42795], [42797, 42797], [42799, 42799],
     995        [42803, 42803], [42805, 42805], [42807, 42807], [42809, 42809],
     996        [42811, 42811], [42813, 42813], [42815, 42815], [42817, 42817],
     997        [42819, 42819], [42821, 42821], [42823, 42823], [42825, 42825],
     998        [42827, 42827], [42829, 42829], [42831, 42831], [42833, 42833],
     999        [42835, 42835], [42837, 42837], [42839, 42839], [42841, 42841],
     1000        [42843, 42843], [42845, 42845], [42847, 42847], [42849, 42849],
     1001        [42851, 42851], [42853, 42853], [42855, 42855], [42857, 42857],
     1002        [42859, 42859], [42861, 42861], [42863, 42863], [42874, 42874],
     1003        [42876, 42876], [42879, 42879], [42881, 42881], [42883, 42883],
     1004        [42885, 42885], [42887, 42887], [42892, 42892], [42897, 42897],
     1005        [42899, 42899], [42903, 42903], [42905, 42905], [42907, 42907],
     1006        [42909, 42909], [42911, 42911], [42913, 42913], [42915, 42915],
     1007        [42917, 42917], [42919, 42919], [42921, 42921], [64256, 64262],
     1008        [64275, 64279], [65345, 65370], [66600, 66639], [71872, 71903]**/
     1009        const UnicodeSet codepoint_set
     1010            {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     1011              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
     1012              {Empty, 1}, {Mixed, 2}, {Empty, 190}, {Mixed, 1}, {Empty, 4},
     1013              {Mixed, 16}, {Empty, 10}, {Mixed, 3}, {Empty, 25}, {Mixed, 2},
     1014              {Empty, 57}, {Mixed, 7}, {Full, 1}, {Mixed, 1}, {Empty, 968},
     1015              {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 666}, {Mixed, 1},
     1016              {Empty, 33}, {Mixed, 1}, {Empty, 38}, {Mixed, 2},
     1017              {Empty, 163}, {Full, 1}, {Empty, 32569}},
     1018             {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
     1019              0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
     1020              0xb55556d0, 0xaa2baaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
     1021              0x20269b6b, 0x40041f89, 0x00000020, 0x388a0000, 0x00010000,
     1022              0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
     1023              0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
     1024              0x0000aaaa, 0xfffffffe, 0x000000ff, 0x22000000, 0xaaaaaaaa,
     1025              0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0feaaaaa, 0xaaaaaaaa,
     1026              0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f,
     1027              0x3fff00ff, 0x00ff00ff, 0x40df00ff, 0x00cf00dc, 0x00dc00ff,
     1028              0x00004000, 0xffff0000, 0x00000010, 0xffff0000, 0x000003ff,
     1029              0xffff0000, 0x7fffffff, 0x00481562, 0xaaaaaaaa, 0xaaaaaaaa,
     1030              0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa,
     1031              0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa,
     1032              0x000002aa, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}};
     1033        static BinaryPropertyObject property_object{CWT, codepoint_set};
     1034    }
     1035    namespace CWU_ns {
     1036        /** Code Point Ranges for CWU
     1037        [97, 122], [181, 181], [223, 246], [248, 255], [257, 257],
     1038        [259, 259], [261, 261], [263, 263], [265, 265], [267, 267],
     1039        [269, 269], [271, 271], [273, 273], [275, 275], [277, 277],
     1040        [279, 279], [281, 281], [283, 283], [285, 285], [287, 287],
     1041        [289, 289], [291, 291], [293, 293], [295, 295], [297, 297],
     1042        [299, 299], [301, 301], [303, 303], [305, 305], [307, 307],
     1043        [309, 309], [311, 311], [314, 314], [316, 316], [318, 318],
     1044        [320, 320], [322, 322], [324, 324], [326, 326], [328, 329],
     1045        [331, 331], [333, 333], [335, 335], [337, 337], [339, 339],
     1046        [341, 341], [343, 343], [345, 345], [347, 347], [349, 349],
     1047        [351, 351], [353, 353], [355, 355], [357, 357], [359, 359],
     1048        [361, 361], [363, 363], [365, 365], [367, 367], [369, 369],
     1049        [371, 371], [373, 373], [375, 375], [378, 378], [380, 380],
     1050        [382, 384], [387, 387], [389, 389], [392, 392], [396, 396],
     1051        [402, 402], [405, 405], [409, 410], [414, 414], [417, 417],
     1052        [419, 419], [421, 421], [424, 424], [429, 429], [432, 432],
     1053        [436, 436], [438, 438], [441, 441], [445, 445], [447, 447],
     1054        [453, 454], [456, 457], [459, 460], [462, 462], [464, 464],
     1055        [466, 466], [468, 468], [470, 470], [472, 472], [474, 474],
     1056        [476, 477], [479, 479], [481, 481], [483, 483], [485, 485],
     1057        [487, 487], [489, 489], [491, 491], [493, 493], [495, 496],
     1058        [498, 499], [501, 501], [505, 505], [507, 507], [509, 509],
     1059        [511, 511], [513, 513], [515, 515], [517, 517], [519, 519],
     1060        [521, 521], [523, 523], [525, 525], [527, 527], [529, 529],
     1061        [531, 531], [533, 533], [535, 535], [537, 537], [539, 539],
     1062        [541, 541], [543, 543], [547, 547], [549, 549], [551, 551],
     1063        [553, 553], [555, 555], [557, 557], [559, 559], [561, 561],
     1064        [563, 563], [572, 572], [575, 576], [578, 578], [583, 583],
     1065        [585, 585], [587, 587], [589, 589], [591, 596], [598, 599],
     1066        [601, 601], [603, 604], [608, 609], [611, 611], [613, 614],
     1067        [616, 617], [619, 620], [623, 623], [625, 626], [629, 629],
     1068        [637, 637], [640, 640], [643, 643], [647, 652], [658, 658],
     1069        [670, 670], [837, 837], [881, 881], [883, 883], [887, 887],
     1070        [891, 893], [912, 912], [940, 974], [976, 977], [981, 983],
     1071        [985, 985], [987, 987], [989, 989], [991, 991], [993, 993],
     1072        [995, 995], [997, 997], [999, 999], [1001, 1001], [1003, 1003],
     1073        [1005, 1005], [1007, 1011], [1013, 1013], [1016, 1016],
     1074        [1019, 1019], [1072, 1119], [1121, 1121], [1123, 1123],
     1075        [1125, 1125], [1127, 1127], [1129, 1129], [1131, 1131],
     1076        [1133, 1133], [1135, 1135], [1137, 1137], [1139, 1139],
     1077        [1141, 1141], [1143, 1143], [1145, 1145], [1147, 1147],
     1078        [1149, 1149], [1151, 1151], [1153, 1153], [1163, 1163],
     1079        [1165, 1165], [1167, 1167], [1169, 1169], [1171, 1171],
     1080        [1173, 1173], [1175, 1175], [1177, 1177], [1179, 1179],
     1081        [1181, 1181], [1183, 1183], [1185, 1185], [1187, 1187],
     1082        [1189, 1189], [1191, 1191], [1193, 1193], [1195, 1195],
     1083        [1197, 1197], [1199, 1199], [1201, 1201], [1203, 1203],
     1084        [1205, 1205], [1207, 1207], [1209, 1209], [1211, 1211],
     1085        [1213, 1213], [1215, 1215], [1218, 1218], [1220, 1220],
     1086        [1222, 1222], [1224, 1224], [1226, 1226], [1228, 1228],
     1087        [1230, 1231], [1233, 1233], [1235, 1235], [1237, 1237],
     1088        [1239, 1239], [1241, 1241], [1243, 1243], [1245, 1245],
     1089        [1247, 1247], [1249, 1249], [1251, 1251], [1253, 1253],
     1090        [1255, 1255], [1257, 1257], [1259, 1259], [1261, 1261],
     1091        [1263, 1263], [1265, 1265], [1267, 1267], [1269, 1269],
     1092        [1271, 1271], [1273, 1273], [1275, 1275], [1277, 1277],
     1093        [1279, 1279], [1281, 1281], [1283, 1283], [1285, 1285],
     1094        [1287, 1287], [1289, 1289], [1291, 1291], [1293, 1293],
     1095        [1295, 1295], [1297, 1297], [1299, 1299], [1301, 1301],
     1096        [1303, 1303], [1305, 1305], [1307, 1307], [1309, 1309],
     1097        [1311, 1311], [1313, 1313], [1315, 1315], [1317, 1317],
     1098        [1319, 1319], [1321, 1321], [1323, 1323], [1325, 1325],
     1099        [1327, 1327], [1377, 1415], [7545, 7545], [7549, 7549],
     1100        [7681, 7681], [7683, 7683], [7685, 7685], [7687, 7687],
     1101        [7689, 7689], [7691, 7691], [7693, 7693], [7695, 7695],
     1102        [7697, 7697], [7699, 7699], [7701, 7701], [7703, 7703],
     1103        [7705, 7705], [7707, 7707], [7709, 7709], [7711, 7711],
     1104        [7713, 7713], [7715, 7715], [7717, 7717], [7719, 7719],
     1105        [7721, 7721], [7723, 7723], [7725, 7725], [7727, 7727],
     1106        [7729, 7729], [7731, 7731], [7733, 7733], [7735, 7735],
     1107        [7737, 7737], [7739, 7739], [7741, 7741], [7743, 7743],
     1108        [7745, 7745], [7747, 7747], [7749, 7749], [7751, 7751],
     1109        [7753, 7753], [7755, 7755], [7757, 7757], [7759, 7759],
     1110        [7761, 7761], [7763, 7763], [7765, 7765], [7767, 7767],
     1111        [7769, 7769], [7771, 7771], [7773, 7773], [7775, 7775],
     1112        [7777, 7777], [7779, 7779], [7781, 7781], [7783, 7783],
     1113        [7785, 7785], [7787, 7787], [7789, 7789], [7791, 7791],
     1114        [7793, 7793], [7795, 7795], [7797, 7797], [7799, 7799],
     1115        [7801, 7801], [7803, 7803], [7805, 7805], [7807, 7807],
     1116        [7809, 7809], [7811, 7811], [7813, 7813], [7815, 7815],
     1117        [7817, 7817], [7819, 7819], [7821, 7821], [7823, 7823],
     1118        [7825, 7825], [7827, 7827], [7829, 7835], [7841, 7841],
     1119        [7843, 7843], [7845, 7845], [7847, 7847], [7849, 7849],
     1120        [7851, 7851], [7853, 7853], [7855, 7855], [7857, 7857],
     1121        [7859, 7859], [7861, 7861], [7863, 7863], [7865, 7865],
     1122        [7867, 7867], [7869, 7869], [7871, 7871], [7873, 7873],
     1123        [7875, 7875], [7877, 7877], [7879, 7879], [7881, 7881],
     1124        [7883, 7883], [7885, 7885], [7887, 7887], [7889, 7889],
     1125        [7891, 7891], [7893, 7893], [7895, 7895], [7897, 7897],
     1126        [7899, 7899], [7901, 7901], [7903, 7903], [7905, 7905],
     1127        [7907, 7907], [7909, 7909], [7911, 7911], [7913, 7913],
     1128        [7915, 7915], [7917, 7917], [7919, 7919], [7921, 7921],
     1129        [7923, 7923], [7925, 7925], [7927, 7927], [7929, 7929],
     1130        [7931, 7931], [7933, 7933], [7935, 7943], [7952, 7957],
     1131        [7968, 7975], [7984, 7991], [8000, 8005], [8016, 8023],
     1132        [8032, 8039], [8048, 8061], [8064, 8116], [8118, 8119],
     1133        [8124, 8124], [8126, 8126], [8130, 8132], [8134, 8135],
     1134        [8140, 8140], [8144, 8147], [8150, 8151], [8160, 8167],
     1135        [8178, 8180], [8182, 8183], [8188, 8188], [8526, 8526],
     1136        [8560, 8575], [8580, 8580], [9424, 9449], [11312, 11358],
     1137        [11361, 11361], [11365, 11366], [11368, 11368], [11370, 11370],
     1138        [11372, 11372], [11379, 11379], [11382, 11382], [11393, 11393],
     1139        [11395, 11395], [11397, 11397], [11399, 11399], [11401, 11401],
     1140        [11403, 11403], [11405, 11405], [11407, 11407], [11409, 11409],
     1141        [11411, 11411], [11413, 11413], [11415, 11415], [11417, 11417],
     1142        [11419, 11419], [11421, 11421], [11423, 11423], [11425, 11425],
     1143        [11427, 11427], [11429, 11429], [11431, 11431], [11433, 11433],
     1144        [11435, 11435], [11437, 11437], [11439, 11439], [11441, 11441],
     1145        [11443, 11443], [11445, 11445], [11447, 11447], [11449, 11449],
     1146        [11451, 11451], [11453, 11453], [11455, 11455], [11457, 11457],
     1147        [11459, 11459], [11461, 11461], [11463, 11463], [11465, 11465],
     1148        [11467, 11467], [11469, 11469], [11471, 11471], [11473, 11473],
     1149        [11475, 11475], [11477, 11477], [11479, 11479], [11481, 11481],
     1150        [11483, 11483], [11485, 11485], [11487, 11487], [11489, 11489],
     1151        [11491, 11491], [11500, 11500], [11502, 11502], [11507, 11507],
     1152        [11520, 11557], [11559, 11559], [11565, 11565], [42561, 42561],
     1153        [42563, 42563], [42565, 42565], [42567, 42567], [42569, 42569],
     1154        [42571, 42571], [42573, 42573], [42575, 42575], [42577, 42577],
     1155        [42579, 42579], [42581, 42581], [42583, 42583], [42585, 42585],
     1156        [42587, 42587], [42589, 42589], [42591, 42591], [42593, 42593],
     1157        [42595, 42595], [42597, 42597], [42599, 42599], [42601, 42601],
     1158        [42603, 42603], [42605, 42605], [42625, 42625], [42627, 42627],
     1159        [42629, 42629], [42631, 42631], [42633, 42633], [42635, 42635],
     1160        [42637, 42637], [42639, 42639], [42641, 42641], [42643, 42643],
     1161        [42645, 42645], [42647, 42647], [42649, 42649], [42651, 42651],
     1162        [42787, 42787], [42789, 42789], [42791, 42791], [42793, 42793],
     1163        [42795, 42795], [42797, 42797], [42799, 42799], [42803, 42803],
     1164        [42805, 42805], [42807, 42807], [42809, 42809], [42811, 42811],
     1165        [42813, 42813], [42815, 42815], [42817, 42817], [42819, 42819],
     1166        [42821, 42821], [42823, 42823], [42825, 42825], [42827, 42827],
     1167        [42829, 42829], [42831, 42831], [42833, 42833], [42835, 42835],
     1168        [42837, 42837], [42839, 42839], [42841, 42841], [42843, 42843],
     1169        [42845, 42845], [42847, 42847], [42849, 42849], [42851, 42851],
     1170        [42853, 42853], [42855, 42855], [42857, 42857], [42859, 42859],
     1171        [42861, 42861], [42863, 42863], [42874, 42874], [42876, 42876],
     1172        [42879, 42879], [42881, 42881], [42883, 42883], [42885, 42885],
     1173        [42887, 42887], [42892, 42892], [42897, 42897], [42899, 42899],
     1174        [42903, 42903], [42905, 42905], [42907, 42907], [42909, 42909],
     1175        [42911, 42911], [42913, 42913], [42915, 42915], [42917, 42917],
     1176        [42919, 42919], [42921, 42921], [64256, 64262], [64275, 64279],
     1177        [65345, 65370], [66600, 66639], [71872, 71903]**/
     1178        const UnicodeSet codepoint_set
     1179            {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     1180              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
     1181              {Empty, 1}, {Mixed, 2}, {Empty, 190}, {Mixed, 1}, {Empty, 4},
     1182              {Mixed, 12}, {Full, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 3},
     1183              {Empty, 25}, {Mixed, 2}, {Empty, 57}, {Mixed, 7}, {Full, 1},
     1184              {Mixed, 1}, {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
     1185              {Empty, 666}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
     1186              {Empty, 38}, {Mixed, 2}, {Empty, 163}, {Full, 1},
     1187              {Empty, 32569}},
     1188             {0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa,
     1189              0x54aaaaaa, 0xaaaaab55, 0xd4aaaaaa, 0x46241129, 0xa251212a,
     1190              0xb5555b60, 0xaa2daaaa, 0xaaaaaaaa, 0x900aaaa8, 0x1adfaa85,
     1191              0x20269b6b, 0x40041f89, 0x00000020, 0x388a0000, 0x00010000,
     1192              0xfffff000, 0xaae37fff, 0x092faaaa, 0xffff0000, 0xaaaaaaaa,
     1193              0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa,
     1194              0x0000aaaa, 0xfffffffe, 0x000000ff, 0x22000000, 0xaaaaaaaa,
     1195              0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0feaaaaa, 0xaaaaaaaa,
     1196              0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff, 0x00ff003f,
     1197              0x3fff00ff, 0x50dfffff, 0x00cf10dc, 0x10dc00ff, 0x00004000,
     1198              0xffff0000, 0x00000010, 0xffff0000, 0x000003ff, 0xffff0000,
     1199              0x7fffffff, 0x00481562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     1200              0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa,
     1201              0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa, 0x000002aa,
     1202              0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}};
     1203        static BinaryPropertyObject property_object{CWU, codepoint_set};
     1204    }
     1205    namespace CASED_ns {
     1206        /** Code Point Ranges for Cased
     1207        [65, 90], [97, 122], [170, 170], [181, 181], [186, 186], [192, 214],
     1208        [216, 246], [248, 442], [444, 447], [452, 659], [661, 696],
     1209        [704, 705], [736, 740], [837, 837], [880, 883], [886, 887],
     1210        [890, 893], [895, 895], [902, 902], [904, 906], [908, 908],
     1211        [910, 929], [931, 1013], [1015, 1153], [1162, 1327], [1329, 1366],
     1212        [1377, 1415], [4256, 4293], [4295, 4295], [4301, 4301],
     1213        [7424, 7615], [7680, 7957], [7960, 7965], [7968, 8005],
     1214        [8008, 8013], [8016, 8023], [8025, 8025], [8027, 8027],
     1215        [8029, 8029], [8031, 8061], [8064, 8116], [8118, 8124],
     1216        [8126, 8126], [8130, 8132], [8134, 8140], [8144, 8147],
     1217        [8150, 8155], [8160, 8172], [8178, 8180], [8182, 8188],
     1218        [8305, 8305], [8319, 8319], [8336, 8348], [8450, 8450],
     1219        [8455, 8455], [8458, 8467], [8469, 8469], [8473, 8477],
     1220        [8484, 8484], [8486, 8486], [8488, 8488], [8490, 8493],
     1221        [8495, 8500], [8505, 8505], [8508, 8511], [8517, 8521],
     1222        [8526, 8526], [8544, 8575], [8579, 8580], [9398, 9449],
     1223        [11264, 11310], [11312, 11358], [11360, 11492], [11499, 11502],
     1224        [11506, 11507], [11520, 11557], [11559, 11559], [11565, 11565],
     1225        [42560, 42605], [42624, 42653], [42786, 42887], [42891, 42894],
     1226        [42896, 42925], [42928, 42929], [43000, 43002], [43824, 43866],
     1227        [43868, 43871], [43876, 43877], [64256, 64262], [64275, 64279],
     1228        [65313, 65338], [65345, 65370], [66560, 66639], [71840, 71903],
     1229        [119808, 119892], [119894, 119964], [119966, 119967],
     1230        [119970, 119970], [119973, 119974], [119977, 119980],
     1231        [119982, 119993], [119995, 119995], [119997, 120003],
     1232        [120005, 120069], [120071, 120074], [120077, 120084],
     1233        [120086, 120092], [120094, 120121], [120123, 120126],
     1234        [120128, 120132], [120134, 120134], [120138, 120144],
     1235        [120146, 120485], [120488, 120512], [120514, 120538],
     1236        [120540, 120570], [120572, 120596], [120598, 120628],
     1237        [120630, 120654], [120656, 120686], [120688, 120712],
     1238        [120714, 120744], [120746, 120770], [120772, 120779],
     1239        [127280, 127305], [127312, 127337], [127344, 127369]**/
     1240        const UnicodeSet codepoint_set
     1241            {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
     1242              {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
     1243              {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4},
     1244              {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 97},
     1245              {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
     1246              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
     1247              {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
     1248              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
     1249              {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1250              {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     1251              {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 25},
     1252              {Mixed, 3}, {Empty, 636}, {Mixed, 1}, {Empty, 32}, {Mixed, 2},
     1253              {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 162}, {Full, 2},
     1254              {Empty, 1497}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     1255              {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 202},
     1256              {Mixed, 4}, {Empty, 30835}},
     1257             {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     1258              0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
     1259              0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
     1260              0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
     1261              0x000000ff, 0x000020bf, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     1262              0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
     1263              0x3e2ffc84, 0xf21fbd50, 0x000043e0, 0x00000018, 0xffc00000,
     1264              0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f, 0x000020bf,
     1265              0x00003fff, 0x3fffffff, 0xfffffffc, 0xffff78ff, 0x00033fff,
     1266              0x07000000, 0xffff0000, 0xf7ffffff, 0x00000030, 0x00f8007f,
     1267              0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffdfffff, 0xdfffffff,
     1268              0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     1269              0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
     1270              0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
     1271              0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff}};
     1272        static BinaryPropertyObject property_object{Cased, codepoint_set};
     1273    }
     1274    namespace DI_ns {
     1275        /** Code Point Ranges for DI
     1276        [173, 173], [847, 847], [1564, 1564], [4447, 4448], [6068, 6069],
     1277        [6155, 6158], [8203, 8207], [8234, 8238], [8288, 8303],
     1278        [12644, 12644], [65024, 65039], [65279, 65279], [65440, 65440],
     1279        [65520, 65528], [113824, 113827], [119155, 119162],
     1280        [917504, 921599]**/
     1281        const UnicodeSet codepoint_set
     1282            {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
     1283              {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 49}, {Mixed, 1},
     1284              {Empty, 2}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
     1285              {Mixed, 1}, {Empty, 135}, {Mixed, 1}, {Empty, 1636},
     1286              {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     1287              {Empty, 1}, {Mixed, 1}, {Empty, 1509}, {Mixed, 1},
     1288              {Empty, 165}, {Mixed, 1}, {Empty, 24948}, {Full, 128},
     1289              {Empty, 6016}},
     1290             {0x00002000, 0x00008000, 0x10000000, 0x80000000, 0x00000001,
     1291              0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
     1292              0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
     1293              0x0000000f, 0x07f80000}};
     1294        static BinaryPropertyObject property_object{DI, codepoint_set};
     1295    }
     1296    namespace GR_BASE_ns {
     1297        /** Code Point Ranges for Gr_Base
     1298        [32, 126], [160, 172], [174, 767], [880, 887], [890, 895],
     1299        [900, 906], [908, 908], [910, 929], [931, 1154], [1162, 1327],
     1300        [1329, 1366], [1369, 1375], [1377, 1415], [1417, 1418],
     1301        [1421, 1423], [1470, 1470], [1472, 1472], [1475, 1475],
     1302        [1478, 1478], [1488, 1514], [1520, 1524], [1542, 1551],
     1303        [1563, 1563], [1566, 1610], [1632, 1647], [1649, 1749],
     1304        [1758, 1758], [1765, 1766], [1769, 1769], [1774, 1805],
     1305        [1808, 1808], [1810, 1839], [1869, 1957], [1969, 1969],
     1306        [1984, 2026], [2036, 2042], [2048, 2069], [2074, 2074],
     1307        [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136],
     1308        [2142, 2142], [2208, 2226], [2307, 2361], [2363, 2363],
     1309        [2365, 2368], [2377, 2380], [2382, 2384], [2392, 2401],
     1310        [2404, 2432], [2434, 2435], [2437, 2444], [2447, 2448],
     1311        [2451, 2472], [2474, 2480], [2482, 2482], [2486, 2489],
     1312        [2493, 2493], [2495, 2496], [2503, 2504], [2507, 2508],
     1313        [2510, 2510], [2524, 2525], [2527, 2529], [2534, 2555],
     1314        [2563, 2563], [2565, 2570], [2575, 2576], [2579, 2600],
     1315        [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
     1316        [2622, 2624], [2649, 2652], [2654, 2654], [2662, 2671],
     1317        [2674, 2676], [2691, 2691], [2693, 2701], [2703, 2705],
     1318        [2707, 2728], [2730, 2736], [2738, 2739], [2741, 2745],
     1319        [2749, 2752], [2761, 2761], [2763, 2764], [2768, 2768],
     1320        [2784, 2785], [2790, 2801], [2818, 2819], [2821, 2828],
     1321        [2831, 2832], [2835, 2856], [2858, 2864], [2866, 2867],
     1322        [2869, 2873], [2877, 2877], [2880, 2880], [2887, 2888],
     1323        [2891, 2892], [2908, 2909], [2911, 2913], [2918, 2935],
     1324        [2947, 2947], [2949, 2954], [2958, 2960], [2962, 2965],
     1325        [2969, 2970], [2972, 2972], [2974, 2975], [2979, 2980],
     1326        [2984, 2986], [2990, 3001], [3007, 3007], [3009, 3010],
     1327        [3014, 3016], [3018, 3020], [3024, 3024], [3046, 3066],
     1328        [3073, 3075], [3077, 3084], [3086, 3088], [3090, 3112],
     1329        [3114, 3129], [3133, 3133], [3137, 3140], [3160, 3161],
     1330        [3168, 3169], [3174, 3183], [3192, 3199], [3202, 3203],
     1331        [3205, 3212], [3214, 3216], [3218, 3240], [3242, 3251],
     1332        [3253, 3257], [3261, 3262], [3264, 3265], [3267, 3268],
     1333        [3271, 3272], [3274, 3275], [3294, 3294], [3296, 3297],
     1334        [3302, 3311], [3313, 3314], [3330, 3331], [3333, 3340],
     1335        [3342, 3344], [3346, 3386], [3389, 3389], [3391, 3392],
     1336        [3398, 3400], [3402, 3404], [3406, 3406], [3424, 3425],
     1337        [3430, 3445], [3449, 3455], [3458, 3459], [3461, 3478],
     1338        [3482, 3505], [3507, 3515], [3517, 3517], [3520, 3526],
     1339        [3536, 3537], [3544, 3550], [3558, 3567], [3570, 3572],
     1340        [3585, 3632], [3634, 3635], [3647, 3654], [3663, 3675],
     1341        [3713, 3714], [3716, 3716], [3719, 3720], [3722, 3722],
     1342        [3725, 3725], [3732, 3735], [3737, 3743], [3745, 3747],
     1343        [3749, 3749], [3751, 3751], [3754, 3755], [3757, 3760],
     1344        [3762, 3763], [3773, 3773], [3776, 3780], [3782, 3782],
     1345        [3792, 3801], [3804, 3807], [3840, 3863], [3866, 3892],
     1346        [3894, 3894], [3896, 3896], [3898, 3911], [3913, 3948],
     1347        [3967, 3967], [3973, 3973], [3976, 3980], [4030, 4037],
     1348        [4039, 4044], [4046, 4058], [4096, 4140], [4145, 4145],
     1349        [4152, 4152], [4155, 4156], [4159, 4183], [4186, 4189],
     1350        [4193, 4208], [4213, 4225], [4227, 4228], [4231, 4236],
     1351        [4238, 4252], [4254, 4293], [4295, 4295], [4301, 4301],
     1352        [4304, 4680], [4682, 4685], [4688, 4694], [4696, 4696],
     1353        [4698, 4701], [4704, 4744], [4746, 4749], [4752, 4784],
     1354        [4786, 4789], [4792, 4798], [4800, 4800], [4802, 4805],
     1355        [4808, 4822], [4824, 4880], [4882, 4885], [4888, 4954],
     1356        [4960, 4988], [4992, 5017], [5024, 5108], [5120, 5788],
     1357        [5792, 5880], [5888, 5900], [5902, 5905], [5920, 5937],
     1358        [5941, 5942], [5952, 5969], [5984, 5996], [5998, 6000],
     1359        [6016, 6067], [6070, 6070], [6078, 6085], [6087, 6088],
     1360        [6100, 6108], [6112, 6121], [6128, 6137], [6144, 6154],
     1361        [6160, 6169], [6176, 6263], [6272, 6312], [6314, 6314],
     1362        [6320, 6389], [6400, 6430], [6435, 6438], [6441, 6443],
     1363        [6448, 6449], [6451, 6456], [6464, 6464], [6468, 6509],
     1364        [6512, 6516], [6528, 6571], [6576, 6601], [6608, 6618],
     1365        [6622, 6678], [6681, 6682], [6686, 6741], [6743, 6743],
     1366        [6753, 6753], [6755, 6756], [6765, 6770], [6784, 6793],
     1367        [6800, 6809], [6816, 6829], [6916, 6963], [6965, 6965],
     1368        [6971, 6971], [6973, 6977], [6979, 6987], [6992, 7018],
     1369        [7028, 7036], [7042, 7073], [7078, 7079], [7082, 7082],
     1370        [7086, 7141], [7143, 7143], [7146, 7148], [7150, 7150],
     1371        [7154, 7155], [7164, 7211], [7220, 7221], [7227, 7241],
     1372        [7245, 7295], [7360, 7367], [7379, 7379], [7393, 7393],
     1373        [7401, 7404], [7406, 7411], [7413, 7414], [7424, 7615],
     1374        [7680, 7957], [7960, 7965], [7968, 8005], [8008, 8013],
     1375        [8016, 8023], [8025, 8025], [8027, 8027], [8029, 8029],
     1376        [8031, 8061], [8064, 8116], [8118, 8132], [8134, 8147],
     1377        [8150, 8155], [8157, 8175], [8178, 8180], [8182, 8190],
     1378        [8192, 8202], [8208, 8231], [8239, 8287], [8304, 8305],
     1379        [8308, 8334], [8336, 8348], [8352, 8381], [8448, 8585],
     1380        [8592, 9210], [9216, 9254], [9280, 9290], [9312, 11123],
     1381        [11126, 11157], [11160, 11193], [11197, 11208], [11210, 11217],
     1382        [11264, 11310], [11312, 11358], [11360, 11502], [11506, 11507],
     1383        [11513, 11557], [11559, 11559], [11565, 11565], [11568, 11623],
     1384        [11631, 11632], [11648, 11670], [11680, 11686], [11688, 11694],
     1385        [11696, 11702], [11704, 11710], [11712, 11718], [11720, 11726],
     1386        [11728, 11734], [11736, 11742], [11776, 11842], [11904, 11929],
     1387        [11931, 12019], [12032, 12245], [12272, 12283], [12288, 12329],
     1388        [12336, 12351], [12353, 12438], [12443, 12543], [12549, 12589],
     1389        [12593, 12686], [12688, 12730], [12736, 12771], [12784, 12830],
     1390        [12832, 13054], [13056, 19893], [19904, 40908], [40960, 42124],
     1391        [42128, 42182], [42192, 42539], [42560, 42606], [42611, 42611],
     1392        [42622, 42653], [42656, 42735], [42738, 42743], [42752, 42894],
     1393        [42896, 42925], [42928, 42929], [42999, 43009], [43011, 43013],
     1394        [43015, 43018], [43020, 43044], [43047, 43051], [43056, 43065],
     1395        [43072, 43127], [43136, 43203], [43214, 43225], [43250, 43259],
     1396        [43264, 43301], [43310, 43334], [43346, 43347], [43359, 43388],
     1397        [43395, 43442], [43444, 43445], [43450, 43451], [43453, 43469],
     1398        [43471, 43481], [43486, 43492], [43494, 43518], [43520, 43560],
     1399        [43567, 43568], [43571, 43572], [43584, 43586], [43588, 43595],
     1400        [43597, 43597], [43600, 43609], [43612, 43643], [43645, 43695],
     1401        [43697, 43697], [43701, 43702], [43705, 43709], [43712, 43712],
     1402        [43714, 43714], [43739, 43755], [43758, 43765], [43777, 43782],
     1403        [43785, 43790], [43793, 43798], [43808, 43814], [43816, 43822],
     1404        [43824, 43871], [43876, 43877], [43968, 44004], [44006, 44007],
     1405        [44009, 44012], [44016, 44025], [44032, 55203], [55216, 55238],
     1406        [55243, 55291], [63744, 64109], [64112, 64217], [64256, 64262],
     1407        [64275, 64279], [64285, 64285], [64287, 64310], [64312, 64316],
     1408        [64318, 64318], [64320, 64321], [64323, 64324], [64326, 64449],
     1409        [64467, 64831], [64848, 64911], [64914, 64967], [65008, 65021],
     1410        [65040, 65049], [65072, 65106], [65108, 65126], [65128, 65131],
     1411        [65136, 65140], [65142, 65276], [65281, 65437], [65440, 65470],
     1412        [65474, 65479], [65482, 65487], [65490, 65495], [65498, 65500],
     1413        [65504, 65510], [65512, 65518], [65532, 65533], [65536, 65547],
     1414        [65549, 65574], [65576, 65594], [65596, 65597], [65599, 65613],
     1415        [65616, 65629], [65664, 65786], [65792, 65794], [65799, 65843],
     1416        [65847, 65932], [65936, 65947], [65952, 65952], [66000, 66044],
     1417        [66176, 66204], [66208, 66256], [66273, 66299], [66304, 66339],
     1418        [66352, 66378], [66384, 66421], [66432, 66461], [66463, 66499],
     1419        [66504, 66517], [66560, 66717], [66720, 66729], [66816, 66855],
     1420        [66864, 66915], [66927, 66927], [67072, 67382], [67392, 67413],
     1421        [67424, 67431], [67584, 67589], [67592, 67592], [67594, 67637],
     1422        [67639, 67640], [67644, 67644], [67647, 67669], [67671, 67742],
     1423        [67751, 67759], [67840, 67867], [67871, 67897], [67903, 67903],
     1424        [67968, 68023], [68030, 68031], [68096, 68096], [68112, 68115],
     1425        [68117, 68119], [68121, 68147], [68160, 68167], [68176, 68184],
     1426        [68192, 68255], [68288, 68324], [68331, 68342], [68352, 68405],
     1427        [68409, 68437], [68440, 68466], [68472, 68497], [68505, 68508],
     1428        [68521, 68527], [68608, 68680], [69216, 69246], [69632, 69632],
     1429        [69634, 69687], [69703, 69709], [69714, 69743], [69762, 69810],
     1430        [69815, 69816], [69819, 69820], [69822, 69825], [69840, 69864],
     1431        [69872, 69881], [69891, 69926], [69932, 69932], [69942, 69955],
     1432        [69968, 70002], [70004, 70006], [70018, 70069], [70079, 70088],
     1433        [70093, 70093], [70096, 70106], [70113, 70132], [70144, 70161],
     1434        [70163, 70190], [70194, 70195], [70197, 70197], [70200, 70205],
     1435        [70320, 70366], [70368, 70370], [70384, 70393], [70402, 70403],
     1436        [70405, 70412], [70415, 70416], [70419, 70440], [70442, 70448],
     1437        [70450, 70451], [70453, 70457], [70461, 70461], [70463, 70463],
     1438        [70465, 70468], [70471, 70472], [70475, 70477], [70493, 70499],
     1439        [70784, 70831], [70833, 70834], [70841, 70841], [70843, 70844],
     1440        [70846, 70846], [70849, 70849], [70852, 70855], [70864, 70873],
     1441        [71040, 71086], [71088, 71089], [71096, 71099], [71102, 71102],
     1442        [71105, 71113], [71168, 71218], [71227, 71228], [71230, 71230],
     1443        [71233, 71236], [71248, 71257], [71296, 71338], [71340, 71340],
     1444        [71342, 71343], [71350, 71350], [71360, 71369], [71840, 71922],
     1445        [71935, 71935], [72384, 72440], [73728, 74648], [74752, 74862],
     1446        [74864, 74868], [77824, 78894], [92160, 92728], [92736, 92766],
     1447        [92768, 92777], [92782, 92783], [92880, 92909], [92917, 92917],
     1448        [92928, 92975], [92983, 92997], [93008, 93017], [93019, 93025],
     1449        [93027, 93047], [93053, 93071], [93952, 94020], [94032, 94078],
     1450        [94099, 94111], [110592, 110593], [113664, 113770],
     1451        [113776, 113788], [113792, 113800], [113808, 113817],
     1452        [113820, 113820], [113823, 113823], [118784, 119029],
     1453        [119040, 119078], [119081, 119140], [119142, 119142],
     1454        [119146, 119149], [119171, 119172], [119180, 119209],
     1455        [119214, 119261], [119296, 119361], [119365, 119365],
     1456        [119552, 119638], [119648, 119665], [119808, 119892],
     1457        [119894, 119964], [119966, 119967], [119970, 119970],
     1458        [119973, 119974], [119977, 119980], [119982, 119993],
     1459        [119995, 119995], [119997, 120003], [120005, 120069],
     1460        [120071, 120074], [120077, 120084], [120086, 120092],
     1461        [120094, 120121], [120123, 120126], [120128, 120132],
     1462        [120134, 120134], [120138, 120144], [120146, 120485],
     1463        [120488, 120779], [120782, 120831], [124928, 125124],
     1464        [125127, 125135], [126464, 126467], [126469, 126495],
     1465        [126497, 126498], [126500, 126500], [126503, 126503],
     1466        [126505, 126514], [126516, 126519], [126521, 126521],
     1467        [126523, 126523], [126530, 126530], [126535, 126535],
     1468        [126537, 126537], [126539, 126539], [126541, 126543],
     1469        [126545, 126546], [126548, 126548], [126551, 126551],
     1470        [126553, 126553], [126555, 126555], [126557, 126557],
     1471        [126559, 126559], [126561, 126562], [126564, 126564],
     1472        [126567, 126570], [126572, 126578], [126580, 126583],
     1473        [126585, 126588], [126590, 126590], [126592, 126601],
     1474        [126603, 126619], [126625, 126627], [126629, 126633],
     1475        [126635, 126651], [126704, 126705], [126976, 127019],
     1476        [127024, 127123], [127136, 127150], [127153, 127167],
     1477        [127169, 127183], [127185, 127221], [127232, 127244],
     1478        [127248, 127278], [127280, 127339], [127344, 127386],
     1479        [127462, 127490], [127504, 127546], [127552, 127560],
     1480        [127568, 127569], [127744, 127788], [127792, 127869],
     1481        [127872, 127950], [127956, 127991], [128000, 128254],
     1482        [128256, 128330], [128336, 128377], [128379, 128419],
     1483        [128421, 128578], [128581, 128719], [128736, 128748],
     1484        [128752, 128755], [128768, 128883], [128896, 128980],
     1485        [129024, 129035], [129040, 129095], [129104, 129113],
     1486        [129120, 129159], [129168, 129197], [131072, 173782],
     1487        [173824, 177972], [177984, 178205], [194560, 195101]**/
     1488        const UnicodeSet codepoint_set
     1489            {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1490              {Full, 18}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
     1491              {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2}, {Full, 2},
     1492              {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 4},
     1493              {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 43}, {Empty, 1},
     1494              {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1}, {Full, 1},
     1495              {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
     1496              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1497              {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 20}, {Mixed, 1},
     1498              {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Full, 2},
     1499              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
     1500              {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1501              {Mixed, 4}, {Empty, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
     1502              {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2}, {Mixed, 2},
     1503              {Full, 6}, {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1},
     1504              {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 3},
     1505              {Empty, 2}, {Full, 4}, {Mixed, 1}, {Full, 18}, {Mixed, 1},
     1506              {Full, 1}, {Mixed, 2}, {Full, 56}, {Mixed, 4}, {Empty, 1},
     1507              {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
     1508              {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Full, 2},
     1509              {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     1510              {Full, 6}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
     1511              {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
     1512              {Full, 1}, {Mixed, 2}, {Full, 6}, {Mixed, 1}, {Full, 213},
     1513              {Mixed, 1}, {Full, 656}, {Mixed, 1}, {Empty, 1}, {Full, 36},
     1514              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 10}, {Mixed, 1},
     1515              {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Full, 4},
     1516              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     1517              {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7}, {Full, 1},
     1518              {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1},
     1519              {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
     1520              {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     1521              {Empty, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 11},
     1522              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6},
     1523              {Full, 3}, {Mixed, 2}, {Full, 3}, {Mixed, 7}, {Empty, 1},
     1524              {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 4}, {Empty, 4},
     1525              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
     1526              {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 2},
     1527              {Empty, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     1528              {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 3},
     1529              {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
     1530              {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Full, 2},
     1531              {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
     1532              {Empty, 2}, {Full, 2}, {Mixed, 1}, {Empty, 16}, {Mixed, 1},
     1533              {Empty, 12}, {Mixed, 18}, {Empty, 3}, {Mixed, 7}, {Empty, 8},
     1534              {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2},
     1535              {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
     1536              {Mixed, 2}, {Empty, 14}, {Full, 2}, {Mixed, 1}, {Empty, 14},
     1537              {Full, 1}, {Mixed, 1}, {Empty, 40}, {Full, 28}, {Mixed, 1},
     1538              {Empty, 3}, {Full, 3}, {Mixed, 1}, {Empty, 92}, {Full, 33},
     1539              {Mixed, 1}, {Empty, 414}, {Full, 17}, {Mixed, 3}, {Empty, 2},
     1540              {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
     1541              {Mixed, 3}, {Empty, 515}, {Mixed, 1}, {Empty, 95}, {Full, 3},
     1542              {Mixed, 2}, {Empty, 155}, {Full, 7}, {Mixed, 1}, {Full, 1},
     1543              {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 1}, {Full, 2},
     1544              {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 2}, {Empty, 4},
     1545              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     1546              {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
     1547              {Full, 1}, {Empty, 128}, {Full, 6}, {Mixed, 1}, {Empty, 41},
     1548              {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 8}, {Full, 1},
     1549              {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 2},
     1550              {Empty, 2}, {Mixed, 4}, {Empty, 5}, {Full, 1}, {Mixed, 1},
     1551              {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
     1552              {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     1553              {Full, 4}, {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 3},
     1554              {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1555              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 58},
     1556              {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
     1557              {Full, 6}, {Mixed, 1}, {Empty, 511}, {Full, 16}, {Mixed, 1},
     1558              {Empty, 28719}},
     1559             {0x7fffffff, 0xffffdfff, 0xfcff0000, 0xffffd7f0, 0xfffffffb,
     1560              0xfffffc07, 0xfffeffff, 0xfe7fffff, 0xfffffffe, 0x0000e6ff,
     1561              0x40000000, 0xffff0049, 0x001f07ff, 0xc800ffc0, 0x000007ff,
     1562              0xfffeffff, 0x403fffff, 0xffffc260, 0xfffd3fff, 0x0000ffff,
     1563              0xffffe000, 0x0002003f, 0x07f007ff, 0x043fffff, 0x7fff0110,
     1564              0x41ffffff, 0x0007ffff, 0xfffffff8, 0xebffffff, 0xff01de01,
     1565              0xfffffff3, 0xfff99fed, 0xa3c5fdff, 0xb0005981, 0x0fffffc3,
     1566              0xfff987e8, 0xc36dfdff, 0x5e000001, 0x001cffc0, 0xfffbbfe8,
     1567              0xe3edfdff, 0x00011a01, 0x0003ffc3, 0xfff99fec, 0x23edfdff,
     1568              0xb0001981, 0x00ffffc3, 0xd63dc7e8, 0x83ffc718, 0x00011dc6,
     1569              0x07ffffc0, 0xfffddfee, 0x23fffdff, 0x0300001e, 0xff00ffc3,
     1570              0xfffddfec, 0x63effdff, 0x40000d9b, 0x0006ffc3, 0xfffddfec,
     1571              0xa7ffffff, 0x00005dc1, 0xfe3fffc3, 0xfc7fffec, 0x2ffbffff,
     1572              0x7f03007f, 0x001cffc0, 0xfffffffe, 0x800dffff, 0x0fff807f,
     1573              0xfef02596, 0x200decae, 0xf3ff005f, 0xfcffffff, 0xfd5fffff,
     1574              0xfffffeff, 0x80001fff, 0x00001f20, 0xc0000000, 0x07ffdfbf,
     1575              0x99021fff, 0x3cffffff, 0xffe1fffe, 0xdfffdf9b, 0xffff20bf,
     1576              0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
     1577              0x07ffffff, 0x1fffffff, 0x03ffffff, 0x001fffff, 0x1fffffff,
     1578              0x01ffffff, 0x0003dfff, 0x0063ffff, 0x0003ffff, 0x0001dfff,
     1579              0xc04fffff, 0x1ff001bf, 0x03ff03ff, 0x03ff07ff, 0x00ffffff,
     1580              0xffff05ff, 0x003fffff, 0x7fffffff, 0x01fb0e78, 0xfffffff1,
     1581              0x001f3fff, 0xffff0fff, 0xc7ff03ff, 0xc67fffff, 0x00bfffff,
     1582              0x0007e01a, 0x03ff03ff, 0x00003fff, 0xfffffff0, 0xe82fffff,
     1583              0xffff0ffb, 0x1ff007ff, 0xfffffffc, 0xffffc4c3, 0xf00c5cbf,
     1584              0xf8300fff, 0xffffe3ff, 0x000800ff, 0x006fde02, 0x3f3fffff,
     1585              0xaaff3f3f, 0x3fffffff, 0xffdfffff, 0xefcfffdf, 0x7fdcffff,
     1586              0xffff07ff, 0xffff80ff, 0xfff30000, 0x1fff7fff, 0x3fffffff,
     1587              0xffff03ff, 0x07ffffff, 0x0000007f, 0x000007ff, 0xffcfffff,
     1588              0xff3fffff, 0xe3ffffff, 0x0003fdff, 0xffff7fff, 0x7fffffff,
     1589              0xfe0c7fff, 0xffff20bf, 0x000180ff, 0x007fffff, 0x7f7f7f7f,
     1590              0x7f7f7f7f, 0x00000007, 0xfbffffff, 0x000fffff, 0x003fffff,
     1591              0x0fff0000, 0xffff03ff, 0xfffffffe, 0xf87fffff, 0xffffffe0,
     1592              0xfffe3fff, 0xffff7fff, 0x07ffffff, 0xffff000f, 0x7fffffff,
     1593              0x7fffffff, 0x003fffff, 0x00001fff, 0xffff1fff, 0xffff007f,
     1594              0x00000fff, 0xc0087fff, 0x3fffffff, 0x00fcffff, 0xffff7fff,
     1595              0x00033fff, 0xff800000, 0xfffff7bb, 0x03ff0f9f, 0x00ffffff,
     1596              0x03ffc00f, 0x0ffc0000, 0xffffc03f, 0x800c007f, 0x1fffffff,
     1597              0xfffffff8, 0xec37ffff, 0xc3ffbfff, 0x7fffffdf, 0x001981ff,
     1598              0xf3ff2ff7, 0xefffffff, 0x3e62ffff, 0xf8000005, 0x003fcfff,
     1599              0x007e7e7e, 0xffff7f7f, 0x00000030, 0x03ff1edf, 0xffff000f,
     1600              0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0f8007f,
     1601              0x5f7fffff, 0xffffffdb, 0xfff80003, 0xffff0000, 0xfffcffff,
     1602              0x000000ff, 0x3fff0000, 0x03ff0000, 0xffff0000, 0xfff7ffff,
     1603              0xffdf0f7f, 0x1fffffff, 0xfffffffe, 0x3fffffff, 0x7fffffff,
     1604              0x1cfcfcfc, 0x30007f7f, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
     1605              0x07ffffff, 0xffffff87, 0xff8fffff, 0x0fff1fff, 0x00000001,
     1606              0xffff0000, 0x1fffffff, 0x1fffffff, 0x0001ffff, 0x0ffffffe,
     1607              0xffff000f, 0xffff07ff, 0x003fffff, 0xbfffffff, 0x003fff0f,
     1608              0x3fffffff, 0x000003ff, 0xffff00ff, 0x0000800f, 0x007fffff,
     1609              0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0xffbfffff,
     1610              0x7fffffff, 0x0000ff80, 0x8fffffff, 0x83ffffff, 0xc0ffffff,
     1611              0xfeef0001, 0x000fffff, 0x01ff00ff, 0x007ff81f, 0xfe3fffff,
     1612              0xff3fffff, 0xff07ffff, 0x1e03ffff, 0x0000fe00, 0x000001ff,
     1613              0x7fffffff, 0xfffffffd, 0x00ffffff, 0xfffc3f80, 0x0000ffff,
     1614              0xfffffffc, 0xd987ffff, 0xffff0003, 0x03ff01ff, 0xfffffff8,
     1615              0xffc0107f, 0xffff000f, 0x0077ffff, 0xfffffffc, 0x803fffff,
     1616              0x07ff21ff, 0x001ffffe, 0xfffbffff, 0x3f2c7fff, 0xffff0000,
     1617              0x7fffffff, 0x03ff0007, 0xfff99fec, 0xa3edfdff, 0xe000399e,
     1618              0x0000000f, 0x5a06ffff, 0x03ff00f2, 0x4f037fff, 0x000003fe,
     1619              0x5807ffff, 0x03ff001e, 0x0040d7ff, 0x000003ff, 0x8007ffff,
     1620              0x01ffffff, 0x01ffffff, 0x001f7fff, 0x00007fff, 0x01ffffff,
     1621              0x7fffffff, 0x0000c3ff, 0xffff0000, 0x00203fff, 0xff80ffff,
     1622              0xfbff003f, 0xe0fffffb, 0x0000ffff, 0xffff001f, 0x7fffffff,
     1623              0xfff80000, 0x00000003, 0x1fff07ff, 0x93ff01ff, 0x003fffff,
     1624              0xfffffe7f, 0x00003c5f, 0xfffff018, 0xffffc3ff, 0x3fffffff,
     1625              0x00000023, 0x007fffff, 0x0003ffff, 0xffdfffff, 0xdfffffff,
     1626              0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     1627              0xffffff3f, 0xffffcfff, 0x0000ff9f, 0xffffffef, 0x0af7fe96,
     1628              0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000,
     1629              0xffff0fff, 0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff,
     1630              0xffff1fff, 0xffff7fff, 0xffff0fff, 0x07ffffff, 0xffffffc0,
     1631              0xffff0007, 0x07ffffff, 0x000301ff, 0xffff1fff, 0x3fffffff,
     1632              0xfff07fff, 0x00ffffff, 0x7fffffff, 0xffff07ff, 0xfbffffff,
     1633              0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff, 0x000fffff,
     1634              0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
     1635              0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}};
     1636        static BinaryPropertyObject property_object{Gr_Base, codepoint_set};
     1637    }
     1638    namespace GR_EXT_ns {
     1639        /** Code Point Ranges for Gr_Ext
     1640        [768, 879], [1155, 1161], [1425, 1469], [1471, 1471], [1473, 1474],
     1641        [1476, 1477], [1479, 1479], [1552, 1562], [1611, 1631],
     1642        [1648, 1648], [1750, 1756], [1759, 1764], [1767, 1768],
     1643        [1770, 1773], [1809, 1809], [1840, 1866], [1958, 1968],
     1644        [2027, 2035], [2070, 2073], [2075, 2083], [2085, 2087],
     1645        [2089, 2093], [2137, 2139], [2276, 2306], [2362, 2362],
     1646        [2364, 2364], [2369, 2376], [2381, 2381], [2385, 2391],
     1647        [2402, 2403], [2433, 2433], [2492, 2492], [2494, 2494],
     1648        [2497, 2500], [2509, 2509], [2519, 2519], [2530, 2531],
     1649        [2561, 2562], [2620, 2620], [2625, 2626], [2631, 2632],
     1650        [2635, 2637], [2641, 2641], [2672, 2673], [2677, 2677],
     1651        [2689, 2690], [2748, 2748], [2753, 2757], [2759, 2760],
     1652        [2765, 2765], [2786, 2787], [2817, 2817], [2876, 2876],
     1653        [2878, 2879], [2881, 2884], [2893, 2893], [2902, 2903],
     1654        [2914, 2915], [2946, 2946], [3006, 3006], [3008, 3008],
     1655        [3021, 3021], [3031, 3031], [3072, 3072], [3134, 3136],
     1656        [3142, 3144], [3146, 3149], [3157, 3158], [3170, 3171],
     1657        [3201, 3201], [3260, 3260], [3263, 3263], [3266, 3266],
     1658        [3270, 3270], [3276, 3277], [3285, 3286], [3298, 3299],
     1659        [3329, 3329], [3390, 3390], [3393, 3396], [3405, 3405],
     1660        [3415, 3415], [3426, 3427], [3530, 3530], [3535, 3535],
     1661        [3538, 3540], [3542, 3542], [3551, 3551], [3633, 3633],
     1662        [3636, 3642], [3655, 3662], [3761, 3761], [3764, 3769],
     1663        [3771, 3772], [3784, 3789], [3864, 3865], [3893, 3893],
     1664        [3895, 3895], [3897, 3897], [3953, 3966], [3968, 3972],
     1665        [3974, 3975], [3981, 3991], [3993, 4028], [4038, 4038],
     1666        [4141, 4144], [4146, 4151], [4153, 4154], [4157, 4158],
     1667        [4184, 4185], [4190, 4192], [4209, 4212], [4226, 4226],
     1668        [4229, 4230], [4237, 4237], [4253, 4253], [4957, 4959],
     1669        [5906, 5908], [5938, 5940], [5970, 5971], [6002, 6003],
     1670        [6068, 6069], [6071, 6077], [6086, 6086], [6089, 6099],
     1671        [6109, 6109], [6155, 6157], [6313, 6313], [6432, 6434],
     1672        [6439, 6440], [6450, 6450], [6457, 6459], [6679, 6680],
     1673        [6683, 6683], [6742, 6742], [6744, 6750], [6752, 6752],
     1674        [6754, 6754], [6757, 6764], [6771, 6780], [6783, 6783],
     1675        [6832, 6846], [6912, 6915], [6964, 6964], [6966, 6970],
     1676        [6972, 6972], [6978, 6978], [7019, 7027], [7040, 7041],
     1677        [7074, 7077], [7080, 7081], [7083, 7085], [7142, 7142],
     1678        [7144, 7145], [7149, 7149], [7151, 7153], [7212, 7219],
     1679        [7222, 7223], [7376, 7378], [7380, 7392], [7394, 7400],
     1680        [7405, 7405], [7412, 7412], [7416, 7417], [7616, 7669],
     1681        [7676, 7679], [8204, 8205], [8400, 8432], [11503, 11505],
     1682        [11647, 11647], [11744, 11775], [12330, 12335], [12441, 12442],
     1683        [42607, 42610], [42612, 42621], [42655, 42655], [42736, 42737],
     1684        [43010, 43010], [43014, 43014], [43019, 43019], [43045, 43046],
     1685        [43204, 43204], [43232, 43249], [43302, 43309], [43335, 43345],
     1686        [43392, 43394], [43443, 43443], [43446, 43449], [43452, 43452],
     1687        [43493, 43493], [43561, 43566], [43569, 43570], [43573, 43574],
     1688        [43587, 43587], [43596, 43596], [43644, 43644], [43696, 43696],
     1689        [43698, 43700], [43703, 43704], [43710, 43711], [43713, 43713],
     1690        [43756, 43757], [43766, 43766], [44005, 44005], [44008, 44008],
     1691        [44013, 44013], [64286, 64286], [65024, 65039], [65056, 65069],
     1692        [65438, 65439], [66045, 66045], [66272, 66272], [66422, 66426],
     1693        [68097, 68099], [68101, 68102], [68108, 68111], [68152, 68154],
     1694        [68159, 68159], [68325, 68326], [69633, 69633], [69688, 69702],
     1695        [69759, 69761], [69811, 69814], [69817, 69818], [69888, 69890],
     1696        [69927, 69931], [69933, 69940], [70003, 70003], [70016, 70017],
     1697        [70070, 70078], [70191, 70193], [70196, 70196], [70198, 70199],
     1698        [70367, 70367], [70371, 70378], [70401, 70401], [70460, 70460],
     1699        [70462, 70462], [70464, 70464], [70487, 70487], [70502, 70508],
     1700        [70512, 70516], [70832, 70832], [70835, 70840], [70842, 70842],
     1701        [70845, 70845], [70847, 70848], [70850, 70851], [71087, 71087],
     1702        [71090, 71093], [71100, 71101], [71103, 71104], [71219, 71226],
     1703        [71229, 71229], [71231, 71232], [71339, 71339], [71341, 71341],
     1704        [71344, 71349], [71351, 71351], [92912, 92916], [92976, 92982],
     1705        [94095, 94098], [113821, 113822], [119141, 119141],
     1706        [119143, 119145], [119150, 119154], [119163, 119170],
     1707        [119173, 119179], [119210, 119213], [119362, 119364],
     1708        [125136, 125142], [917760, 917999]**/
     1709        const UnicodeSet codepoint_set
     1710            {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     1711              {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     1712              {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
     1713              {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Mixed, 24}, {Empty, 1},
     1714              {Mixed, 12}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     1715              {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1716              {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
     1717              {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1718              {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1719              {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     1720              {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
     1721              {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
     1722              {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
     1723              {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1724              {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
     1725              {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     1726              {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
     1727              {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     1728              {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
     1729              {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
     1730              {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
     1731              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
     1732              {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
     1733              {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1},
     1734              {Empty, 4}, {Mixed, 6}, {Empty, 9}, {Mixed, 2}, {Empty, 6},
     1735              {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     1736              {Empty, 673}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34},
     1737              {Mixed, 1}, {Empty, 615}, {Mixed, 1}, {Empty, 166},
     1738              {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 179}, {Mixed, 1},
     1739              {Empty, 24769}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
     1740             {0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
     1741              0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
     1742              0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
     1743              0xfbc00000, 0x00003eef, 0x0e000000, 0xfffffff0, 0x00000007,
     1744              0x14000000, 0x00fe21fe, 0x0000000c, 0x00000002, 0x50000000,
     1745              0x0080201e, 0x0000000c, 0x00000006, 0x10000000, 0x00023986,
     1746              0x00230000, 0x00000006, 0x10000000, 0x000021be, 0x0000000c,
     1747              0x00000002, 0xd0000000, 0x00c0201e, 0x0000000c, 0x00000004,
     1748              0x40000000, 0x00802001, 0x00000001, 0xc0000000, 0x00603dc1,
     1749              0x0000000c, 0x00000002, 0x90000000, 0x00603044, 0x0000000c,
     1750              0x00000002, 0x40000000, 0x0080201e, 0x0000000c, 0x805c8400,
     1751              0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00, 0x03000000,
     1752              0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff, 0x00000040,
     1753              0x66fde000, 0xc3000000, 0x001e0001, 0x20002064, 0xe0000000,
     1754              0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000, 0x3fb00000,
     1755              0x200ffe40, 0x00003800, 0x00000200, 0x0e040187, 0x09800000,
     1756              0x7f400000, 0x9ff81fe5, 0x7fff0000, 0x0000000f, 0x17d00000,
     1757              0x00000004, 0x000ff800, 0x00000003, 0x00003b3c, 0x0003a340,
     1758              0x00cff000, 0xfff70000, 0x031021fd, 0xf03fffff, 0x00003000,
     1759              0xffff0000, 0x0001ffff, 0x00038000, 0x80000000, 0x0000fc00,
     1760              0x06000000, 0x3ff78000, 0x80000000, 0x00030000, 0x00000844,
     1761              0x00000060, 0x00000010, 0x0003ffff, 0x00003fc0, 0x0003ff80,
     1762              0x00000007, 0x13c80000, 0x00000020, 0x00667e00, 0x00001008,
     1763              0x10000000, 0xc19d0000, 0x00000002, 0x00403000, 0x00002120,
     1764              0x40000000, 0x0000ffff, 0x00003fff, 0xc0000000, 0x20000000,
     1765              0x00000001, 0x07c00000, 0x0000f06e, 0x87000000, 0x00000060,
     1766              0x00000002, 0xff000000, 0x0000007f, 0x80000000, 0x00000003,
     1767              0x06780000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
     1768              0x7fc00000, 0x00d38000, 0x80000000, 0x000007f8, 0x00000002,
     1769              0x50000000, 0x00800001, 0x001f1fc0, 0xa5f90000, 0x0000000d,
     1770              0xb03c8000, 0x00000001, 0xa7f80000, 0x00000001, 0x00bf2800,
     1771              0x001f0000, 0x007f0000, 0x00078000, 0x60000000, 0xf807c3a0,
     1772              0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x0000ffff}};
     1773        static BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
     1774    }
     1775    namespace GR_LINK_ns {
     1776        /** Code Point Ranges for Gr_Link
     1777        [2381, 2381], [2509, 2509], [2637, 2637], [2765, 2765],
     1778        [2893, 2893], [3021, 3021], [3149, 3149], [3277, 3277],
     1779        [3405, 3405], [3530, 3530], [3642, 3642], [3972, 3972],
     1780        [4153, 4154], [5908, 5908], [5940, 5940], [6098, 6098],
     1781        [6752, 6752], [6980, 6980], [7082, 7083], [7154, 7155],
     1782        [11647, 11647], [43014, 43014], [43204, 43204], [43347, 43347],
     1783        [43456, 43456], [43766, 43766], [44013, 44013], [68159, 68159],
     1784        [69702, 69702], [69759, 69759], [69817, 69817], [69939, 69940],
     1785        [70080, 70080], [70197, 70197], [70378, 70378], [70477, 70477],
     1786        [70850, 70850], [71103, 71103], [71231, 71231], [71350, 71350]**/
     1787        const UnicodeSet codepoint_set
     1788            {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     1789              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1790              {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     1791              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1792              {Empty, 2}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 4},
     1793              {Mixed, 1}, {Empty, 54}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     1794              {Empty, 20}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2},
     1795              {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 139}, {Mixed, 1},
     1796              {Empty, 980}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
     1797              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     1798              {Empty, 7}, {Mixed, 1}, {Empty, 753}, {Mixed, 1}, {Empty, 48},
     1799              {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1800              {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
     1801              {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
     1802              {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     1803              {Mixed, 1}, {Empty, 32586}},
     1804             {0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
     1805              0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00000400,
     1806              0x04000000, 0x00000010, 0x06000000, 0x00100000, 0x00100000,
     1807              0x00040000, 0x00000001, 0x00000010, 0x00000c00, 0x000c0000,
     1808              0x80000000, 0x00000040, 0x00000010, 0x00080000, 0x00000001,
     1809              0x00400000, 0x00002000, 0x80000000, 0x00000040, 0x80000000,
     1810              0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
     1811              0x00002000, 0x00000004, 0x80000000, 0x80000000, 0x00400000}};
     1812        static BinaryPropertyObject property_object{Gr_Link, codepoint_set};
     1813    }
     1814    namespace IDC_ns {
     1815        /** Code Point Ranges for IDC
     1816        [48, 57], [65, 90], [95, 95], [97, 122], [170, 170], [181, 181],
     1817        [183, 183], [186, 186], [192, 214], [216, 246], [248, 705],
     1818        [710, 721], [736, 740], [748, 748], [750, 750], [768, 884],
     1819        [886, 887], [890, 893], [895, 895], [902, 906], [908, 908],
     1820        [910, 929], [931, 1013], [1015, 1153], [1155, 1159], [1162, 1327],
     1821        [1329, 1366], [1369, 1369], [1377, 1415], [1425, 1469],
     1822        [1471, 1471], [1473, 1474], [1476, 1477], [1479, 1479],
     1823        [1488, 1514], [1520, 1522], [1552, 1562], [1568, 1641],
     1824        [1646, 1747], [1749, 1756], [1759, 1768], [1770, 1788],
     1825        [1791, 1791], [1808, 1866], [1869, 1969], [1984, 2037],
     1826        [2042, 2042], [2048, 2093], [2112, 2139], [2208, 2226],
     1827        [2276, 2403], [2406, 2415], [2417, 2435], [2437, 2444],
     1828        [2447, 2448], [2451, 2472], [2474, 2480], [2482, 2482],
     1829        [2486, 2489], [2492, 2500], [2503, 2504], [2507, 2510],
     1830        [2519, 2519], [2524, 2525], [2527, 2531], [2534, 2545],
     1831        [2561, 2563], [2565, 2570], [2575, 2576], [2579, 2600],
     1832        [2602, 2608], [2610, 2611], [2613, 2614], [2616, 2617],
     1833        [2620, 2620], [2622, 2626], [2631, 2632], [2635, 2637],
     1834        [2641, 2641], [2649, 2652], [2654, 2654], [2662, 2677],
     1835        [2689, 2691], [2693, 2701], [2703, 2705], [2707, 2728],
     1836        [2730, 2736], [2738, 2739], [2741, 2745], [2748, 2757],
     1837        [2759, 2761], [2763, 2765], [2768, 2768], [2784, 2787],
     1838        [2790, 2799], [2817, 2819], [2821, 2828], [2831, 2832],
     1839        [2835, 2856], [2858, 2864], [2866, 2867], [2869, 2873],
     1840        [2876, 2884], [2887, 2888], [2891, 2893], [2902, 2903],
     1841        [2908, 2909], [2911, 2915], [2918, 2927], [2929, 2929],
     1842        [2946, 2947], [2949, 2954], [2958, 2960], [2962, 2965],
     1843        [2969, 2970], [2972, 2972], [2974, 2975], [2979, 2980],
     1844        [2984, 2986], [2990, 3001], [3006, 3010], [3014, 3016],
     1845        [3018, 3021], [3024, 3024], [3031, 3031], [3046, 3055],
     1846        [3072, 3075], [3077, 3084], [3086, 3088], [3090, 3112],
     1847        [3114, 3129], [3133, 3140], [3142, 3144], [3146, 3149],
     1848        [3157, 3158], [3160, 3161], [3168, 3171], [3174, 3183],
     1849        [3201, 3203], [3205, 3212], [3214, 3216], [3218, 3240],
     1850        [3242, 3251], [3253, 3257], [3260, 3268], [3270, 3272],
     1851        [3274, 3277], [3285, 3286], [3294, 3294], [3296, 3299],
     1852        [3302, 3311], [3313, 3314], [3329, 3331], [3333, 3340],
     1853        [3342, 3344], [3346, 3386], [3389, 3396], [3398, 3400],
     1854        [3402, 3406], [3415, 3415], [3424, 3427], [3430, 3439],
     1855        [3450, 3455], [3458, 3459], [3461, 3478], [3482, 3505],
     1856        [3507, 3515], [3517, 3517], [3520, 3526], [3530, 3530],
     1857        [3535, 3540], [3542, 3542], [3544, 3551], [3558, 3567],
     1858        [3570, 3571], [3585, 3642], [3648, 3662], [3664, 3673],
     1859        [3713, 3714], [3716, 3716], [3719, 3720], [3722, 3722],
     1860        [3725, 3725], [3732, 3735], [3737, 3743], [3745, 3747],
     1861        [3749, 3749], [3751, 3751], [3754, 3755], [3757, 3769],
     1862        [3771, 3773], [3776, 3780], [3782, 3782], [3784, 3789],
     1863        [3792, 3801], [3804, 3807], [3840, 3840], [3864, 3865],
     1864        [3872, 3881], [3893, 3893], [3895, 3895], [3897, 3897],
     1865        [3902, 3911], [3913, 3948], [3953, 3972], [3974, 3991],
     1866        [3993, 4028], [4038, 4038], [4096, 4169], [4176, 4253],
     1867        [4256, 4293], [4295, 4295], [4301, 4301], [4304, 4346],
     1868        [4348, 4680], [4682, 4685], [4688, 4694], [4696, 4696],
     1869        [4698, 4701], [4704, 4744], [4746, 4749], [4752, 4784],
     1870        [4786, 4789], [4792, 4798], [4800, 4800], [4802, 4805],
     1871        [4808, 4822], [4824, 4880], [4882, 4885], [4888, 4954],
     1872        [4957, 4959], [4969, 4977], [4992, 5007], [5024, 5108],
     1873        [5121, 5740], [5743, 5759], [5761, 5786], [5792, 5866],
     1874        [5870, 5880], [5888, 5900], [5902, 5908], [5920, 5940],
     1875        [5952, 5971], [5984, 5996], [5998, 6000], [6002, 6003],
     1876        [6016, 6099], [6103, 6103], [6108, 6109], [6112, 6121],
     1877        [6155, 6157], [6160, 6169], [6176, 6263], [6272, 6314],
     1878        [6320, 6389], [6400, 6430], [6432, 6443], [6448, 6459],
     1879        [6470, 6509], [6512, 6516], [6528, 6571], [6576, 6601],
     1880        [6608, 6618], [6656, 6683], [6688, 6750], [6752, 6780],
     1881        [6783, 6793], [6800, 6809], [6823, 6823], [6832, 6845],
     1882        [6912, 6987], [6992, 7001], [7019, 7027], [7040, 7155],
     1883        [7168, 7223], [7232, 7241], [7245, 7293], [7376, 7378],
     1884        [7380, 7414], [7416, 7417], [7424, 7669], [7676, 7957],
     1885        [7960, 7965], [7968, 8005], [8008, 8013], [8016, 8023],
     1886        [8025, 8025], [8027, 8027], [8029, 8029], [8031, 8061],
     1887        [8064, 8116], [8118, 8124], [8126, 8126], [8130, 8132],
     1888        [8134, 8140], [8144, 8147], [8150, 8155], [8160, 8172],
     1889        [8178, 8180], [8182, 8188], [8255, 8256], [8276, 8276],
     1890        [8305, 8305], [8319, 8319], [8336, 8348], [8400, 8412],
     1891        [8417, 8417], [8421, 8432], [8450, 8450], [8455, 8455],
     1892        [8458, 8467], [8469, 8469], [8472, 8477], [8484, 8484],
     1893        [8486, 8486], [8488, 8488], [8490, 8505], [8508, 8511],
     1894        [8517, 8521], [8526, 8526], [8544, 8584], [11264, 11310],
     1895        [11312, 11358], [11360, 11492], [11499, 11507], [11520, 11557],
     1896        [11559, 11559], [11565, 11565], [11568, 11623], [11631, 11631],
     1897        [11647, 11670], [11680, 11686], [11688, 11694], [11696, 11702],
     1898        [11704, 11710], [11712, 11718], [11720, 11726], [11728, 11734],
     1899        [11736, 11742], [11744, 11775], [12293, 12295], [12321, 12335],
     1900        [12337, 12341], [12344, 12348], [12353, 12438], [12441, 12447],
     1901        [12449, 12538], [12540, 12543], [12549, 12589], [12593, 12686],
     1902        [12704, 12730], [12784, 12799], [13312, 19893], [19968, 40908],
     1903        [40960, 42124], [42192, 42237], [42240, 42508], [42512, 42539],
     1904        [42560, 42607], [42612, 42621], [42623, 42653], [42655, 42737],
     1905        [42775, 42783], [42786, 42888], [42891, 42894], [42896, 42925],
     1906        [42928, 42929], [42999, 43047], [43072, 43123], [43136, 43204],
     1907        [43216, 43225], [43232, 43255], [43259, 43259], [43264, 43309],
     1908        [43312, 43347], [43360, 43388], [43392, 43456], [43471, 43481],
     1909        [43488, 43518], [43520, 43574], [43584, 43597], [43600, 43609],
     1910        [43616, 43638], [43642, 43714], [43739, 43741], [43744, 43759],
     1911        [43762, 43766], [43777, 43782], [43785, 43790], [43793, 43798],
     1912        [43808, 43814], [43816, 43822], [43824, 43866], [43868, 43871],
     1913        [43876, 43877], [43968, 44010], [44012, 44013], [44016, 44025],
     1914        [44032, 55203], [55216, 55238], [55243, 55291], [63744, 64109],
     1915        [64112, 64217], [64256, 64262], [64275, 64279], [64285, 64296],
     1916        [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321],
     1917        [64323, 64324], [64326, 64433], [64467, 64829], [64848, 64911],
     1918        [64914, 64967], [65008, 65019], [65024, 65039], [65056, 65069],
     1919        [65075, 65076], [65101, 65103], [65136, 65140], [65142, 65276],
     1920        [65296, 65305], [65313, 65338], [65343, 65343], [65345, 65370],
     1921        [65382, 65470], [65474, 65479], [65482, 65487], [65490, 65495],
     1922        [65498, 65500], [65536, 65547], [65549, 65574], [65576, 65594],
     1923        [65596, 65597], [65599, 65613], [65616, 65629], [65664, 65786],
     1924        [65856, 65908], [66045, 66045], [66176, 66204], [66208, 66256],
     1925        [66272, 66272], [66304, 66335], [66352, 66378], [66384, 66426],
     1926        [66432, 66461], [66464, 66499], [66504, 66511], [66513, 66517],
     1927        [66560, 66717], [66720, 66729], [66816, 66855], [66864, 66915],
     1928        [67072, 67382], [67392, 67413], [67424, 67431], [67584, 67589],
     1929        [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644],
     1930        [67647, 67669], [67680, 67702], [67712, 67742], [67840, 67861],
     1931        [67872, 67897], [67968, 68023], [68030, 68031], [68096, 68099],
     1932        [68101, 68102], [68108, 68115], [68117, 68119], [68121, 68147],
     1933        [68152, 68154], [68159, 68159], [68192, 68220], [68224, 68252],
     1934        [68288, 68295], [68297, 68326], [68352, 68405], [68416, 68437],
     1935        [68448, 68466], [68480, 68497], [68608, 68680], [69632, 69702],
     1936        [69734, 69743], [69759, 69818], [69840, 69864], [69872, 69881],
     1937        [69888, 69940], [69942, 69951], [69968, 70003], [70006, 70006],
     1938        [70016, 70084], [70096, 70106], [70144, 70161], [70163, 70199],
     1939        [70320, 70378], [70384, 70393], [70401, 70403], [70405, 70412],
     1940        [70415, 70416], [70419, 70440], [70442, 70448], [70450, 70451],
     1941        [70453, 70457], [70460, 70468], [70471, 70472], [70475, 70477],
     1942        [70487, 70487], [70493, 70499], [70502, 70508], [70512, 70516],
     1943        [70784, 70853], [70855, 70855], [70864, 70873], [71040, 71093],
     1944        [71096, 71104], [71168, 71232], [71236, 71236], [71248, 71257],
     1945        [71296, 71351], [71360, 71369], [71840, 71913], [71935, 71935],
     1946        [72384, 72440], [73728, 74648], [74752, 74862], [77824, 78894],
     1947        [92160, 92728], [92736, 92766], [92768, 92777], [92880, 92909],
     1948        [92912, 92916], [92928, 92982], [92992, 92995], [93008, 93017],
     1949        [93027, 93047], [93053, 93071], [93952, 94020], [94032, 94078],
     1950        [94095, 94111], [110592, 110593], [113664, 113770],
     1951        [113776, 113788], [113792, 113800], [113808, 113817],
     1952        [113821, 113822], [119141, 119145], [119149, 119154],
     1953        [119163, 119170], [119173, 119179], [119210, 119213],
     1954        [119362, 119364], [119808, 119892], [119894, 119964],
     1955        [119966, 119967], [119970, 119970], [119973, 119974],
     1956        [119977, 119980], [119982, 119993], [119995, 119995],
     1957        [119997, 120003], [120005, 120069], [120071, 120074],
     1958        [120077, 120084], [120086, 120092], [120094, 120121],
     1959        [120123, 120126], [120128, 120132], [120134, 120134],
     1960        [120138, 120144], [120146, 120485], [120488, 120512],
     1961        [120514, 120538], [120540, 120570], [120572, 120596],
     1962        [120598, 120628], [120630, 120654], [120656, 120686],
     1963        [120688, 120712], [120714, 120744], [120746, 120770],
     1964        [120772, 120779], [120782, 120831], [124928, 125124],
     1965        [125136, 125142], [126464, 126467], [126469, 126495],
     1966        [126497, 126498], [126500, 126500], [126503, 126503],
     1967        [126505, 126514], [126516, 126519], [126521, 126521],
     1968        [126523, 126523], [126530, 126530], [126535, 126535],
     1969        [126537, 126537], [126539, 126539], [126541, 126543],
     1970        [126545, 126546], [126548, 126548], [126551, 126551],
     1971        [126553, 126553], [126555, 126555], [126557, 126557],
     1972        [126559, 126559], [126561, 126562], [126564, 126564],
     1973        [126567, 126570], [126572, 126578], [126580, 126583],
     1974        [126585, 126588], [126590, 126590], [126592, 126601],
     1975        [126603, 126619], [126625, 126627], [126629, 126633],
     1976        [126635, 126651], [131072, 173782], [173824, 177972],
     1977        [177984, 178205], [194560, 195101], [917760, 917999]**/
     1978        const UnicodeSet codepoint_set
     1979            {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     1980              {Mixed, 2}, {Full, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     1981              {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 2},
     1982              {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     1983              {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1984              {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     1985              {Full, 3}, {Mixed, 40}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     1986              {Mixed, 7}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
     1987              {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1},
     1988              {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
     1989              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2},
     1990              {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 3}, {Full, 2},
     1991              {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
     1992              {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
     1993              {Mixed, 4}, {Empty, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     1994              {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
     1995              {Full, 7}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
     1996              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
     1997              {Empty, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 83},
     1998              {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1},
     1999              {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 16},
     2000              {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     2001              {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16},
     2002              {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 654}, {Mixed, 1},
     2003              {Empty, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     2004              {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2},
     2005              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     2006              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2},
     2007              {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     2008              {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 6}, {Empty, 2},
     2009              {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264},
     2010              {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     2011              {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     2012              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6}, {Full, 3},
     2013              {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
     2014              {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
     2015              {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
     2016              {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Full, 1},
     2017              {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 2}, {Empty, 2},
     2018              {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4},