Ignore:
Timestamp:
Nov 28, 2017, 1:45:19 AM (22 months ago)
Author:
nmedfort
Message:

Bug fix for segment pipeline parallel mode + memory management improvements.

File:
1 edited

Legend:

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

    r5686 r5748  
    183183    [1f920, 1f925], [1f927, 1f92f], [1f93a, 1f93c], [1f93f, 1f9d0],
    184184    [1f9de, e0000], [e0002, e001f], [e0080, e00ff], [e01f0, 10ffff]**/
    185     const UnicodeSet xx_Set
    186         {{{Mixed, 8}, {Empty, 14}, {Mixed, 2}, {Empty, 3}, {Mixed, 3},
    187           {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 4},
    188           {Mixed, 8}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
    189           {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
    190           {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
    191           {Empty, 4}, {Mixed, 30}, {Empty, 1}, {Mixed, 6}, {Full, 1},
    192           {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7},
    193           {Full, 2}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 10},
    194           {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    195           {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    196           {Mixed, 2}, {Empty, 18}, {Mixed, 2}, {Empty, 2}, {Mixed, 5},
    197           {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
    198           {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 3}, {Mixed, 1},
    199           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 2},
    200           {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    201           {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    202           {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    203           {Mixed, 8}, {Full, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 1},
    204           {Full, 24}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 8},
    205           {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    206           {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Full, 36},
    207           {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
    208           {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Full, 1},
    209           {Mixed, 1}, {Full, 14}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
    210           {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1},
    211           {Mixed, 1}, {Full, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    212           {Full, 869}, {Empty, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    213           {Empty, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
    214           {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    215           {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    216           {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
    217           {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Empty, 1},
    218           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 349}, {Mixed, 3},
    219           {Full, 280}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 10},
    220           {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
    221           {Empty, 3}, {Mixed, 5}, {Empty, 1}, {Mixed, 6}, {Full, 1},
    222           {Empty, 3}, {Mixed, 1}, {Full, 2}, {Empty, 1}, {Mixed, 1},
    223           {Full, 3}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 1},
    224           {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
    225           {Full, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
    226           {Empty, 1}, {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3},
    227           {Full, 4}, {Mixed, 5}, {Full, 2}, {Mixed, 3}, {Full, 2},
    228           {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
    229           {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
    230           {Full, 3}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1},
    231           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 24}, {Empty, 2},
    232           {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
    233           {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    234           {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 4}, {Empty, 2},
    235           {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5},
    236           {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2}, {Mixed, 1},
    237           {Full, 1}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
    238           {Full, 11}, {Empty, 2}, {Mixed, 1}, {Full, 8}, {Empty, 1},
    239           {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Empty, 1},
    240           {Mixed, 1}, {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 3},
    241           {Full, 21}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3},
    242           {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33},
    243           {Mixed, 1}, {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269},
    244           {Empty, 17}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
    245           {Mixed, 4}, {Full, 27}, {Empty, 2}, {Mixed, 3}, {Full, 2},
    246           {Mixed, 1}, {Full, 512}, {Mixed, 1}, {Full, 95}, {Empty, 3},
    247           {Mixed, 3}, {Full, 165}, {Mixed, 3}, {Full, 4}, {Mixed, 1},
    248           {Full, 13}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    249           {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 10}, {Empty, 1},
    250           {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
    251           {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1},
    252           {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 37}, {Mixed, 6},
    253           {Full, 19}, {Mixed, 4}, {Full, 2}, {Mixed, 1}, {Full, 8},
    254           {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 2}, {Mixed, 4},
    255           {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    256           {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    257           {Full, 17}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 24625},
    258           {Mixed, 1}, {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1},
    259           {Full, 6128}},
    260          {0xffffc3ff, 0xf000af7b, 0x78000001, 0xf8000001, 0xffffffdf,
    261           0xfb5fdbff, 0x00800000, 0x00800000, 0x3f000000, 0x00000fe0,
    262           0x03200000, 0x0000283f, 0x00000004, 0x00400000, 0x00000004,
    263           0x00010000, 0xfd800000, 0x00000001, 0x0001fd00, 0x40000000,
    264           0x0000ff49, 0xffe0f800, 0xe800cfc0, 0x00002400, 0x40100000,
    265           0x60000200, 0x00007fff, 0x00001800, 0xfffc0000, 0xfac00000,
    266           0xffffc000, 0xf0000000, 0xfffff800, 0xc0200000, 0x000fffff,
    267           0x00010030, 0x00066010, 0x0c3a0200, 0x4f7f8660, 0xeffc0030,
    268           0x00067811, 0x2c920200, 0xa1fdc678, 0xffc0003f, 0x00044011,
    269           0x0c120200, 0xfffec440, 0x01ff0030, 0x00066011, 0x0c120200,
    270           0x4f3fc660, 0xfffd0030, 0x29c23813, 0x3c0038e7, 0xff7ec238,
    271           0xffff003f, 0x00022010, 0x1c000200, 0xf89fc220, 0xffff0030,
    272           0x00022010, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010,
    273           0x7f0f8220, 0x03ff0030, 0x03800013, 0xd0040000, 0x00a07b80,
    274           0xfff3003f, 0xf80dffff, 0xfc00807f, 0xe40dffff, 0xfc00c0ff,
    275           0xfcfffffe, 0x3d5ffc00, 0x00000100, 0x0001e000, 0x01000020,
    276           0xe0000000, 0xffffffbf, 0x800007ff, 0x3c3ffc00, 0xffe1c062,
    277           0xc0004003, 0x0000df40, 0x08000000, 0xc280c200, 0x0000c200,
    278           0x80c20000, 0x008000c2, 0x00c20000, 0x18000000, 0xffff0000,
    279           0xc0c00000, 0x00000001, 0x00006000, 0xf8000001, 0xfe003800,
    280           0xffe02000, 0xffe00000, 0xfff00000, 0xfff22000, 0x000fffff,
    281           0xdff00000, 0xfffffc00, 0xfc0087ff, 0xff000000, 0x0000f800,
    282           0xffc00000, 0x80000000, 0xf000f000, 0xffff003f, 0xfc00ffff,
    283           0xf0000000, 0x801fffff, 0x60000000, 0xfc00fc00, 0x8000ffff,
    284           0xfc00f000, 0xfff007ff, 0xfff00000, 0xff000000, 0x00001c00,
    285           0xc0000000, 0xfffffe00, 0x0008ffff, 0xfc000000, 0x04000000,
    286           0xc0c00000, 0x5500c0c0, 0xc0000000, 0xa0200000, 0xf030e023,
    287           0xe023e000, 0xfcff0fff, 0x7fff006f, 0xffefffee, 0x7ffd0020,
    288           0xe000ffff, 0x0000ffff, 0xfffe0000, 0xc1d0037b, 0x0c0042af,
    289           0xffffbc1f, 0xfffffe00, 0x003fffff, 0xfffffc00, 0xdfffffff,
    290           0xfffffffa, 0xff9fffff, 0xfdffffff, 0xffffc2ff, 0xffffffef,
    291           0x00008000, 0x80000000, 0xfff007e0, 0x0000df40, 0x7fff7f00,
    292           0xff800000, 0x80808080, 0x80808080, 0xffff7fff, 0xffffffdf,
    293           0xe7c103ff, 0xe1ffffff, 0x08000000, 0x0000001f, 0x00018000,
    294           0xffff8000, 0xf8000000, 0x0000ffff, 0x0000ffff, 0x80000000,
    295           0xff000000, 0xffffe000, 0x0000ffff, 0xc0000000, 0x0000e000,
    296           0xfffff000, 0x40080000, 0xfffc0000, 0x007fffff, 0xff008000,
    297           0x007fffff, 0xffffff00, 0xfff00000, 0xfc00ffc0, 0xd7000000,
    298           0x0000c000, 0xfff00000, 0xe0000000, 0xfc007ffe, 0xfc00ffdf,
    299           0xff800000, 0xfc00c000, 0xc7ffffff, 0x3e62ffff, 0xfffffffd,
    300           0xff830000, 0xff818181, 0x00008080, 0x0000ffc0, 0xfc00c800,
    301           0x0000fff0, 0x00000780, 0xf0000000, 0x1f07ff80, 0xa0800200,
    302           0x00000024, 0xfffc0000, 0x0007ffff, 0xc0000000, 0x0000ffff,
    303           0x00030000, 0xffffff00, 0xf000ffff, 0xffe60000, 0xffe70000,
    304           0xffca1fff, 0x0020ffff, 0x60000000, 0xf3ffaf7f, 0x78000001,
    305           0xf8000001, 0x0000003f, 0x80000000, 0xe3030303, 0xf1ffffff,
    306           0x00001000, 0x48000080, 0xc000c000, 0xf8000000, 0xffe00000,
    307           0xdfffffff, 0xe0000000, 0xfffe0000, 0xfffffffe, 0x00001fff,
    308           0x0000f800, 0xf8000000, 0xc0000000, 0xffc100f0, 0xc0000000,
    309           0x0000fc00, 0x00f00000, 0xf0000000, 0x0000ff00, 0xfffffff0,
    310           0xff800000, 0xffc00000, 0xffffff00, 0x000002c0, 0x6e400000,
    311           0xffc00000, 0xff800000, 0x80000000, 0xffc80000, 0xffc00000,
    312           0xfc000000, 0x3f000000, 0x01100f90, 0x78f00000, 0xe0000000,
    313           0xe0000000, 0x00000100, 0xffffff80, 0xffc00000, 0xffc00000,
    314           0xfff80000, 0xfffc0000, 0xfffffe00, 0xfff80000, 0xfff80000,
    315           0xffffff80, 0x7fff003f, 0xd8000000, 0x0000ffff, 0xfc00fe00,
    316           0x00200000, 0x0000ffff, 0xffb00000, 0xe800e3e0, 0x00040000,
    317           0xbf000000, 0x40004280, 0x0000fe00, 0xfc00f800, 0x00066010,
    318           0x0c120200, 0x1f7ec660, 0xffe0e030, 0xfc00f800, 0xfc00ff40,
    319           0x00c00000, 0xc0fffffe, 0xfc00ffee, 0xff000000, 0xfffffc00,
    320           0x1fffffff, 0xfc00f000, 0x7ffffc00, 0x80000000, 0x0000ff7f,
    321           0xfc000030, 0xfe000000, 0x00000200, 0x00800000, 0xfc00fffe,
    322           0x0003ffff, 0x00030000, 0xff800100, 0x00000480, 0x4b800000,
    323           0xfc00ff00, 0xfc000000, 0xffff8000, 0xfffffff0, 0xffff8000,
    324           0xffffff80, 0xfe000000, 0x80000000, 0xfffffc00, 0x0000ffff,
    325           0xffe0c000, 0xff800000, 0xfc00fff0, 0x1f000007, 0xffff0000,
    326           0x0000ffe0, 0x80000000, 0x00007fff, 0xfffffffc, 0xfffffffe,
    327           0xe000f800, 0x9c00fe00, 0xfffffff0, 0x00001c1f, 0xfffff018,
    328           0xffffc3ff, 0xffffffe3, 0x00200000, 0x20000000, 0x1400219b,
    329           0x00000010, 0x20201840, 0x84000000, 0x000203a0, 0x000000c0,
    330           0x08000002, 0x08000000, 0x00200000, 0x00200000, 0x00008000,
    331           0x00008000, 0x00000200, 0x00000200, 0x00003008, 0x07800000,
    332           0xffdfe000, 0x07ffffef, 0xffff0001, 0x06000080, 0xfffff824,
    333           0xff80ffe0, 0xfc00f800, 0x00000010, 0xf5080169, 0x5569157b,
    334           0xa1080869, 0xf0000400, 0xf0000411, 0x0000ffff, 0x0000fc00,
    335           0x0000fc00, 0xfffffc00, 0x0000003f, 0xfffffeff, 0xbfffffff,
    336           0xfff7ffff, 0xfff7ffdf, 0xfffffeef, 0xffffe363, 0x07ffd7ff,
    337           0xfffe0033, 0xee00bc3f, 0xfffff711, 0xe7fffbff, 0xffffef7f,
    338           0xfbcfffff, 0xff9effff, 0xfffffeff, 0xffff071f, 0xfffbfffe,
    339           0xff8ffff7, 0xffffeffe, 0x20ffffff, 0x9c00ffbf, 0xc001ffff,
    340           0xfffffffd, 0xffff0000}};
     185
     186
     187    namespace {
     188    const static UnicodeSet::run_t __xx_Set_runs[] = {
     189    {Mixed, 8}, {Empty, 14}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Empty, 1},
     190    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 8}, {Empty, 2},
     191    {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     192    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     193    {Mixed, 2}, {Empty, 4}, {Mixed, 30}, {Empty, 1}, {Mixed, 6}, {Full, 1},
     194    {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 7}, {Full, 2},
     195    {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 1},
     196    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1},
     197    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 18}, {Mixed, 2}, {Empty, 2},
     198    {Mixed, 5}, {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     199    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 1},
     200    {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 2}, {Empty, 2}, {Mixed, 2},
     201    {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2},
     202    {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     203    {Empty, 1}, {Mixed, 8}, {Full, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 1},
     204    {Full, 24}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 1},
     205    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     206    {Full, 2}, {Mixed, 1}, {Full, 36}, {Empty, 1}, {Mixed, 2}, {Empty, 4},
     207    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
     208    {Full, 1}, {Mixed, 1}, {Full, 14}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     209    {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     210    {Full, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Full, 869}, {Empty, 36},
     211    {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
     212    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 1},
     213    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
     214    {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     215    {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
     216    {Mixed, 1}, {Empty, 349}, {Mixed, 3}, {Full, 280}, {Mixed, 3},
     217    {Empty, 2}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     218    {Empty, 1}, {Mixed, 6}, {Empty, 3}, {Mixed, 5}, {Empty, 1}, {Mixed, 6},
     219    {Full, 1}, {Empty, 3}, {Mixed, 1}, {Full, 2}, {Empty, 1}, {Mixed, 1},
     220    {Full, 3}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     221    {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Empty, 4},
     222    {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 4},
     223    {Empty, 9}, {Mixed, 3}, {Full, 4}, {Mixed, 5}, {Full, 2}, {Mixed, 3},
     224    {Full, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
     225    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Full, 3},
     226    {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     227    {Mixed, 1}, {Full, 24}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
     228    {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
     229    {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 4}, {Empty, 2},
     230    {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 1},
     231    {Mixed, 2}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1},
     232    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 11}, {Empty, 2}, {Mixed, 1},
     233    {Full, 8}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
     234    {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 3},
     235    {Full, 21}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
     236    {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
     237    {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
     238    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Full, 27},
     239    {Empty, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Full, 512}, {Mixed, 1},
     240    {Full, 95}, {Empty, 3}, {Mixed, 3}, {Full, 165}, {Mixed, 3}, {Full, 4},
     241    {Mixed, 1}, {Full, 13}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     242    {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 10}, {Empty, 1},
     243    {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 42},
     244    {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1}, {Full, 1}, {Empty, 2},
     245    {Mixed, 1}, {Full, 37}, {Mixed, 6}, {Full, 19}, {Mixed, 4}, {Full, 2},
     246    {Mixed, 1}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 2},
     247    {Mixed, 4}, {Full, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     248    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 17},
     249    {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 24625}, {Mixed, 1},
     250    {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 6128}};
     251    const static UnicodeSet::bitquad_t  __xx_Set_quads[] = {
     252    0xffffc3ff, 0xf000af7b, 0x78000001, 0xf8000001, 0xffffffdf, 0xfb5fdbff,
     253    0x00800000, 0x00800000, 0x3f000000, 0x00000fe0, 0x03200000, 0x0000283f,
     254    0x00000004, 0x00400000, 0x00000004, 0x00010000, 0xfd800000, 0x00000001,
     255    0x0001fd00, 0x40000000, 0x0000ff49, 0xffe0f800, 0xe800cfc0, 0x00002400,
     256    0x40100000, 0x60000200, 0x00007fff, 0x00001800, 0xfffc0000, 0xfac00000,
     257    0xffffc000, 0xf0000000, 0xfffff800, 0xc0200000, 0x000fffff, 0x00010030,
     258    0x00066010, 0x0c3a0200, 0x4f7f8660, 0xeffc0030, 0x00067811, 0x2c920200,
     259    0xa1fdc678, 0xffc0003f, 0x00044011, 0x0c120200, 0xfffec440, 0x01ff0030,
     260    0x00066011, 0x0c120200, 0x4f3fc660, 0xfffd0030, 0x29c23813, 0x3c0038e7,
     261    0xff7ec238, 0xffff003f, 0x00022010, 0x1c000200, 0xf89fc220, 0xffff0030,
     262    0x00022010, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010, 0x7f0f8220,
     263    0x03ff0030, 0x03800013, 0xd0040000, 0x00a07b80, 0xfff3003f, 0xf80dffff,
     264    0xfc00807f, 0xe40dffff, 0xfc00c0ff, 0xfcfffffe, 0x3d5ffc00, 0x00000100,
     265    0x0001e000, 0x01000020, 0xe0000000, 0xffffffbf, 0x800007ff, 0x3c3ffc00,
     266    0xffe1c062, 0xc0004003, 0x0000df40, 0x08000000, 0xc280c200, 0x0000c200,
     267    0x80c20000, 0x008000c2, 0x00c20000, 0x18000000, 0xffff0000, 0xc0c00000,
     268    0x00000001, 0x00006000, 0xf8000001, 0xfe003800, 0xffe02000, 0xffe00000,
     269    0xfff00000, 0xfff22000, 0x000fffff, 0xdff00000, 0xfffffc00, 0xfc0087ff,
     270    0xff000000, 0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0xffff003f,
     271    0xfc00ffff, 0xf0000000, 0x801fffff, 0x60000000, 0xfc00fc00, 0x8000ffff,
     272    0xfc00f000, 0xfff007ff, 0xfff00000, 0xff000000, 0x00001c00, 0xc0000000,
     273    0xfffffe00, 0x0008ffff, 0xfc000000, 0x04000000, 0xc0c00000, 0x5500c0c0,
     274    0xc0000000, 0xa0200000, 0xf030e023, 0xe023e000, 0xfcff0fff, 0x7fff006f,
     275    0xffefffee, 0x7ffd0020, 0xe000ffff, 0x0000ffff, 0xfffe0000, 0xc1d0037b,
     276    0x0c0042af, 0xffffbc1f, 0xfffffe00, 0x003fffff, 0xfffffc00, 0xdfffffff,
     277    0xfffffffa, 0xff9fffff, 0xfdffffff, 0xffffc2ff, 0xffffffef, 0x00008000,
     278    0x80000000, 0xfff007e0, 0x0000df40, 0x7fff7f00, 0xff800000, 0x80808080,
     279    0x80808080, 0xffff7fff, 0xffffffdf, 0xe7c103ff, 0xe1ffffff, 0x08000000,
     280    0x0000001f, 0x00018000, 0xffff8000, 0xf8000000, 0x0000ffff, 0x0000ffff,
     281    0x80000000, 0xff000000, 0xffffe000, 0x0000ffff, 0xc0000000, 0x0000e000,
     282    0xfffff000, 0x40080000, 0xfffc0000, 0x007fffff, 0xff008000, 0x007fffff,
     283    0xffffff00, 0xfff00000, 0xfc00ffc0, 0xd7000000, 0x0000c000, 0xfff00000,
     284    0xe0000000, 0xfc007ffe, 0xfc00ffdf, 0xff800000, 0xfc00c000, 0xc7ffffff,
     285    0x3e62ffff, 0xfffffffd, 0xff830000, 0xff818181, 0x00008080, 0x0000ffc0,
     286    0xfc00c800, 0x0000fff0, 0x00000780, 0xf0000000, 0x1f07ff80, 0xa0800200,
     287    0x00000024, 0xfffc0000, 0x0007ffff, 0xc0000000, 0x0000ffff, 0x00030000,
     288    0xffffff00, 0xf000ffff, 0xffe60000, 0xffe70000, 0xffca1fff, 0x0020ffff,
     289    0x60000000, 0xf3ffaf7f, 0x78000001, 0xf8000001, 0x0000003f, 0x80000000,
     290    0xe3030303, 0xf1ffffff, 0x00001000, 0x48000080, 0xc000c000, 0xf8000000,
     291    0xffe00000, 0xdfffffff, 0xe0000000, 0xfffe0000, 0xfffffffe, 0x00001fff,
     292    0x0000f800, 0xf8000000, 0xc0000000, 0xffc100f0, 0xc0000000, 0x0000fc00,
     293    0x00f00000, 0xf0000000, 0x0000ff00, 0xfffffff0, 0xff800000, 0xffc00000,
     294    0xffffff00, 0x000002c0, 0x6e400000, 0xffc00000, 0xff800000, 0x80000000,
     295    0xffc80000, 0xffc00000, 0xfc000000, 0x3f000000, 0x01100f90, 0x78f00000,
     296    0xe0000000, 0xe0000000, 0x00000100, 0xffffff80, 0xffc00000, 0xffc00000,
     297    0xfff80000, 0xfffc0000, 0xfffffe00, 0xfff80000, 0xfff80000, 0xffffff80,
     298    0x7fff003f, 0xd8000000, 0x0000ffff, 0xfc00fe00, 0x00200000, 0x0000ffff,
     299    0xffb00000, 0xe800e3e0, 0x00040000, 0xbf000000, 0x40004280, 0x0000fe00,
     300    0xfc00f800, 0x00066010, 0x0c120200, 0x1f7ec660, 0xffe0e030, 0xfc00f800,
     301    0xfc00ff40, 0x00c00000, 0xc0fffffe, 0xfc00ffee, 0xff000000, 0xfffffc00,
     302    0x1fffffff, 0xfc00f000, 0x7ffffc00, 0x80000000, 0x0000ff7f, 0xfc000030,
     303    0xfe000000, 0x00000200, 0x00800000, 0xfc00fffe, 0x0003ffff, 0x00030000,
     304    0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0xfc000000, 0xffff8000,
     305    0xfffffff0, 0xffff8000, 0xffffff80, 0xfe000000, 0x80000000, 0xfffffc00,
     306    0x0000ffff, 0xffe0c000, 0xff800000, 0xfc00fff0, 0x1f000007, 0xffff0000,
     307    0x0000ffe0, 0x80000000, 0x00007fff, 0xfffffffc, 0xfffffffe, 0xe000f800,
     308    0x9c00fe00, 0xfffffff0, 0x00001c1f, 0xfffff018, 0xffffc3ff, 0xffffffe3,
     309    0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
     310    0x000203a0, 0x000000c0, 0x08000002, 0x08000000, 0x00200000, 0x00200000,
     311    0x00008000, 0x00008000, 0x00000200, 0x00000200, 0x00003008, 0x07800000,
     312    0xffdfe000, 0x07ffffef, 0xffff0001, 0x06000080, 0xfffff824, 0xff80ffe0,
     313    0xfc00f800, 0x00000010, 0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400,
     314    0xf0000411, 0x0000ffff, 0x0000fc00, 0x0000fc00, 0xfffffc00, 0x0000003f,
     315    0xfffffeff, 0xbfffffff, 0xfff7ffff, 0xfff7ffdf, 0xfffffeef, 0xffffe363,
     316    0x07ffd7ff, 0xfffe0033, 0xee00bc3f, 0xfffff711, 0xe7fffbff, 0xffffef7f,
     317    0xfbcfffff, 0xff9effff, 0xfffffeff, 0xffff071f, 0xfffbfffe, 0xff8ffff7,
     318    0xffffeffe, 0x20ffffff, 0x9c00ffbf, 0xc001ffff, 0xfffffffd, 0xffff0000};
     319    }
     320
     321    const static UnicodeSet xx_Set{const_cast<UnicodeSet::run_t *>(__xx_Set_runs), 366, 0, const_cast<UnicodeSet::bitquad_t *>(__xx_Set_quads), 402, 0};
     322
    341323    /** Code Point Ranges for DQ
    342324    [0022, 0022]**/
    343     const UnicodeSet dq_Set
    344         {{{Empty, 1}, {Mixed, 1}, {Empty, 34814}},
    345          {0x00000004}};
     325
     326
     327    namespace {
     328    const static UnicodeSet::run_t __dq_Set_runs[] = {
     329    {Empty, 1}, {Mixed, 1}, {Empty, 34814}};
     330    const static UnicodeSet::bitquad_t  __dq_Set_quads[] = {
     331    0x00000004};
     332    }
     333
     334    const static UnicodeSet dq_Set{const_cast<UnicodeSet::run_t *>(__dq_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__dq_Set_quads), 1, 0};
     335
    346336    /** Code Point Ranges for SQ
    347337    [0027, 0027]**/
    348     const UnicodeSet sq_Set
    349         {{{Empty, 1}, {Mixed, 1}, {Empty, 34814}},
    350          {0x00000080}};
     338
     339
     340    namespace {
     341    const static UnicodeSet::run_t __sq_Set_runs[] = {
     342    {Empty, 1}, {Mixed, 1}, {Empty, 34814}};
     343    const static UnicodeSet::bitquad_t  __sq_Set_quads[] = {
     344    0x00000080};
     345    }
     346
     347    const static UnicodeSet sq_Set{const_cast<UnicodeSet::run_t *>(__sq_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sq_Set_quads), 1, 0};
     348
    351349    /** Code Point Ranges for HL
    352350    [05d0, 05ea], [05f0, 05f2], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb36],
    353351    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4f]**/
    354     const UnicodeSet hl_Set
    355         {{{Empty, 46}, {Mixed, 2}, {Empty, 1960}, {Mixed, 3},
    356           {Empty, 32805}},
    357          {0xffff0000, 0x000707ff, 0xa0000000, 0x5f7ffdff, 0x0000ffdb}};
     352
     353
     354    namespace {
     355    const static UnicodeSet::run_t __hl_Set_runs[] = {
     356    {Empty, 46}, {Mixed, 2}, {Empty, 1960}, {Mixed, 3}, {Empty, 32805}};
     357    const static UnicodeSet::bitquad_t  __hl_Set_quads[] = {
     358    0xffff0000, 0x000707ff, 0xa0000000, 0x5f7ffdff, 0x0000ffdb};
     359    }
     360
     361    const static UnicodeSet hl_Set{const_cast<UnicodeSet::run_t *>(__hl_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__hl_Set_quads), 5, 0};
     362
    358363    /** Code Point Ranges for CR
    359364    [000d, 000d]**/
    360     const UnicodeSet cr_Set
    361         {{{Mixed, 1}, {Empty, 34815}},
    362          {0x00002000}};
     365
     366
     367    namespace {
     368    const static UnicodeSet::run_t __cr_Set_runs[] = {
     369    {Mixed, 1}, {Empty, 34815}};
     370    const static UnicodeSet::bitquad_t  __cr_Set_quads[] = {
     371    0x00002000};
     372    }
     373
     374    const static UnicodeSet cr_Set{const_cast<UnicodeSet::run_t *>(__cr_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__cr_Set_quads), 1, 0};
     375
    363376    /** Code Point Ranges for LF
    364377    [000a, 000a]**/
    365     const UnicodeSet lf_Set
    366         {{{Mixed, 1}, {Empty, 34815}},
    367          {0x00000400}};
     378
     379
     380    namespace {
     381    const static UnicodeSet::run_t __lf_Set_runs[] = {
     382    {Mixed, 1}, {Empty, 34815}};
     383    const static UnicodeSet::bitquad_t  __lf_Set_quads[] = {
     384    0x00000400};
     385    }
     386
     387    const static UnicodeSet lf_Set{const_cast<UnicodeSet::run_t *>(__lf_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__lf_Set_quads), 1, 0};
     388
    368389    /** Code Point Ranges for NL
    369390    [000b, 000c], [0085, 0085], [2028, 2029]**/
    370     const UnicodeSet nl_Set
    371         {{{Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 252}, {Mixed, 1},
    372           {Empty, 34558}},
    373          {0x00001800, 0x00000020, 0x00000300}};
     391
     392
     393    namespace {
     394    const static UnicodeSet::run_t __nl_Set_runs[] = {
     395    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 252}, {Mixed, 1},
     396    {Empty, 34558}};
     397    const static UnicodeSet::bitquad_t  __nl_Set_quads[] = {
     398    0x00001800, 0x00000020, 0x00000300};
     399    }
     400
     401    const static UnicodeSet nl_Set{const_cast<UnicodeSet::run_t *>(__nl_Set_runs), 6, 0, const_cast<UnicodeSet::bitquad_t *>(__nl_Set_quads), 3, 0};
     402
    374403    /** Code Point Ranges for Extend
    375404    [0300, 036f], [0483, 0489], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
     
    431460    [1e026, 1e02a], [1e8d0, 1e8d6], [1e944, 1e94a], [e0020, e007f],
    432461    [e0100, e01ef]**/
    433     const UnicodeSet extend_Set
    434         {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    435           {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    436           {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
    437           {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
    438           {Mixed, 13}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    439           {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    440           {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
    441           {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    442           {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    443           {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    444           {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    445           {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6},
    446           {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
    447           {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    448           {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
    449           {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    450           {Empty, 8}, {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Empty, 1},
    451           {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 3},
    452           {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 632},
    453           {Mixed, 1}, {Empty, 23}, {Mixed, 2}, {Empty, 10}, {Mixed, 1},
    454           {Empty, 18}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 3},
    455           {Mixed, 1}, {Empty, 52}, {Mixed, 2}, {Empty, 5}, {Mixed, 1},
    456           {Empty, 40}, {Mixed, 6}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    457           {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6},
    458           {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6},
    459           {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
    460           {Empty, 2}, {Mixed, 2}, {Empty, 22}, {Mixed, 3}, {Empty, 1},
    461           {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    462           {Empty, 3}, {Mixed, 2}, {Empty, 620}, {Mixed, 1}, {Empty, 1},
    463           {Mixed, 1}, {Empty, 32}, {Mixed, 3}, {Empty, 615}, {Mixed, 1},
    464           {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61},
    465           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
    466           {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    467           {Empty, 24758}, {Full, 3}, {Empty, 4}, {Full, 7}, {Mixed, 1},
    468           {Empty, 6128}},
    469          {0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6,
    470           0x07ff0000, 0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f,
    471           0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0, 0x000ff800,
    472           0xfbc00000, 0x00003eef, 0x0e000000, 0xfff00000, 0xfffffffb,
    473           0x0000000f, 0xdc000000, 0x00feffff, 0x0000000c, 0x0000000e,
    474           0xd0000000, 0x0080399f, 0x0000000c, 0x0000000e, 0xd0000000,
    475           0x00023987, 0x00230000, 0x0000000e, 0xd0000000, 0x00003bbf,
    476           0xfc00000c, 0x0000000e, 0xd0000000, 0x00c0399f, 0x0000000c,
    477           0x00000004, 0xc0000000, 0x00803dc7, 0x0000000f, 0xc0000000,
    478           0x00603ddf, 0x0000000c, 0x0000000e, 0xd0000000, 0x00603ddf,
    479           0x0000000c, 0x0000000f, 0xd8000000, 0x00803ddf, 0x0000000c,
    480           0x0000000c, 0xff5f8400, 0x000c0000, 0x07f20000, 0x00007f80,
    481           0x1bf20000, 0x00003f00, 0x03000000, 0xc2a00000, 0xfffe0000,
    482           0xfeffe0df, 0x1fffffff, 0x00000040, 0x7ffff800, 0xc3c00000,
    483           0x001e3f9d, 0x3c00bffc, 0xe0000000, 0x001c0000, 0x001c0000,
    484           0x000c0000, 0x000c0000, 0xfff00000, 0x200fffff, 0x00003800,
    485           0x00000060, 0x00000200, 0x0fff0fff, 0x0f800000, 0x7fe00000,
    486           0x9fffffff, 0x7fff0000, 0x0000001f, 0xfff00000, 0x0000001f,
    487           0x000ff800, 0x00000007, 0x00003ffe, 0x000fffc0, 0x00fffff0,
    488           0xfff70000, 0x039c21ff, 0xfbffffff, 0x00001000, 0xffff0000,
    489           0x0001ffff, 0x00038000, 0x80000000, 0x0000fc00, 0x06000000,
    490           0x3ff78000, 0xc0000000, 0x00030000, 0x00000844, 0x000000f8,
    491           0x00000003, 0xfff00000, 0x0000003f, 0x0003ffff, 0x00003fc0,
    492           0x000fff80, 0x0000000f, 0xfff80000, 0x00000001, 0x00000020,
    493           0x007ffe00, 0x00003008, 0x38000000, 0xc19d0000, 0x00000002,
    494           0x0060f800, 0x000037f8, 0x40000000, 0x0000ffff, 0x0000ffff,
    495           0xc0000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
    496           0x87000000, 0x00000060, 0x00000007, 0xff000000, 0x0000007f,
    497           0x80000000, 0x00000007, 0x07ff0000, 0x00000007, 0x001fff80,
    498           0x00080000, 0x00000007, 0xfff80000, 0x00001c01, 0x40fff000,
    499           0x80000000, 0x000007ff, 0x0000000f, 0xd0000000, 0x0080399f,
    500           0x001f1fcc, 0xffe00000, 0x0000007f, 0xffff0000, 0x0000000f,
    501           0xff3f8000, 0x30000001, 0xffff0000, 0x00000001, 0x00fff800,
    502           0xe0000000, 0x00000fff, 0x000007fe, 0x7bf80000, 0x0ffe0080,
    503           0x03fffc00, 0xff7f8000, 0xfffc0000, 0x007ffeff, 0xb47e0000,
    504           0x000000bf, 0x001f0000, 0x007f0000, 0xfffe0000, 0x7fffffff,
    505           0x00078000, 0x60000000, 0xf807e3e0, 0x00000fe7, 0x00003c00,
    506           0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe,
    507           0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0, 0x0000ffff}};
     462
     463
     464    namespace {
     465    const static UnicodeSet::run_t __extend_Set_runs[] = {
     466    {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 7},
     467    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2},
     468    {Mixed, 5}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3},
     469    {Mixed, 25}, {Empty, 1}, {Mixed, 13}, {Empty, 1}, {Mixed, 2},
     470    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
     471    {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
     472    {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     473    {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     474    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 6},
     475    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2},
     476    {Empty, 6}, {Full, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5},
     477    {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     478    {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     479    {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 8},
     480    {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     481    {Mixed, 4}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 7},
     482    {Mixed, 1}, {Empty, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 2},
     483    {Empty, 10}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 7},
     484    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2}, {Empty, 5},
     485    {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     486    {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5},
     487    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
     488    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
     489    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 2},
     490    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620}, {Mixed, 1},
     491    {Empty, 1}, {Mixed, 1}, {Empty, 32}, {Mixed, 3}, {Empty, 615},
     492    {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
     493    {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
     494    {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     495    {Empty, 24758}, {Full, 3}, {Empty, 4}, {Full, 7}, {Mixed, 1},
     496    {Empty, 6128}};
     497    const static UnicodeSet::bitquad_t  __extend_Set_quads[] = {
     498    0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6, 0x07ff0000,
     499    0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f, 0x00020000, 0xffff0000,
     500    0x000007ff, 0x0001ffc0, 0x000ff800, 0xfbc00000, 0x00003eef, 0x0e000000,
     501    0xfff00000, 0xfffffffb, 0x0000000f, 0xdc000000, 0x00feffff, 0x0000000c,
     502    0x0000000e, 0xd0000000, 0x0080399f, 0x0000000c, 0x0000000e, 0xd0000000,
     503    0x00023987, 0x00230000, 0x0000000e, 0xd0000000, 0x00003bbf, 0xfc00000c,
     504    0x0000000e, 0xd0000000, 0x00c0399f, 0x0000000c, 0x00000004, 0xc0000000,
     505    0x00803dc7, 0x0000000f, 0xc0000000, 0x00603ddf, 0x0000000c, 0x0000000e,
     506    0xd0000000, 0x00603ddf, 0x0000000c, 0x0000000f, 0xd8000000, 0x00803ddf,
     507    0x0000000c, 0x0000000c, 0xff5f8400, 0x000c0000, 0x07f20000, 0x00007f80,
     508    0x1bf20000, 0x00003f00, 0x03000000, 0xc2a00000, 0xfffe0000, 0xfeffe0df,
     509    0x1fffffff, 0x00000040, 0x7ffff800, 0xc3c00000, 0x001e3f9d, 0x3c00bffc,
     510    0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000, 0xfff00000,
     511    0x200fffff, 0x00003800, 0x00000060, 0x00000200, 0x0fff0fff, 0x0f800000,
     512    0x7fe00000, 0x9fffffff, 0x7fff0000, 0x0000001f, 0xfff00000, 0x0000001f,
     513    0x000ff800, 0x00000007, 0x00003ffe, 0x000fffc0, 0x00fffff0, 0xfff70000,
     514    0x039c21ff, 0xfbffffff, 0x00001000, 0xffff0000, 0x0001ffff, 0x00038000,
     515    0x80000000, 0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000, 0x00030000,
     516    0x00000844, 0x000000f8, 0x00000003, 0xfff00000, 0x0000003f, 0x0003ffff,
     517    0x00003fc0, 0x000fff80, 0x0000000f, 0xfff80000, 0x00000001, 0x00000020,
     518    0x007ffe00, 0x00003008, 0x38000000, 0xc19d0000, 0x00000002, 0x0060f800,
     519    0x000037f8, 0x40000000, 0x0000ffff, 0x0000ffff, 0xc0000000, 0x20000000,
     520    0x00000001, 0x07c00000, 0x0000f06e, 0x87000000, 0x00000060, 0x00000007,
     521    0xff000000, 0x0000007f, 0x80000000, 0x00000007, 0x07ff0000, 0x00000007,
     522    0x001fff80, 0x00080000, 0x00000007, 0xfff80000, 0x00001c01, 0x40fff000,
     523    0x80000000, 0x000007ff, 0x0000000f, 0xd0000000, 0x0080399f, 0x001f1fcc,
     524    0xffe00000, 0x0000007f, 0xffff0000, 0x0000000f, 0xff3f8000, 0x30000001,
     525    0xffff0000, 0x00000001, 0x00fff800, 0xe0000000, 0x00000fff, 0x000007fe,
     526    0x7bf80000, 0x0ffe0080, 0x03fffc00, 0xff7f8000, 0xfffc0000, 0x007ffeff,
     527    0xb47e0000, 0x000000bf, 0x001f0000, 0x007f0000, 0xfffe0000, 0x7fffffff,
     528    0x00078000, 0x60000000, 0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c,
     529    0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db,
     530    0x007f0000, 0x000007f0, 0x0000ffff};
     531    }
     532
     533    const static UnicodeSet extend_Set{const_cast<UnicodeSet::run_t *>(__extend_Set_runs), 171, 0, const_cast<UnicodeSet::bitquad_t *>(__extend_Set_quads), 195, 0};
     534
    508535    /** Code Point Ranges for RI
    509536    [1f1e6, 1f1ff]**/
    510     const UnicodeSet ri_Set
    511         {{{Empty, 3983}, {Mixed, 1}, {Empty, 30832}},
    512          {0xffffffc0}};
     537
     538
     539    namespace {
     540    const static UnicodeSet::run_t __ri_Set_runs[] = {
     541    {Empty, 3983}, {Mixed, 1}, {Empty, 30832}};
     542    const static UnicodeSet::bitquad_t  __ri_Set_quads[] = {
     543    0xffffffc0};
     544    }
     545
     546    const static UnicodeSet ri_Set{const_cast<UnicodeSet::run_t *>(__ri_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ri_Set_quads), 1, 0};
     547
    513548    /** Code Point Ranges for FO
    514549    [00ad, 00ad], [0600, 0605], [061c, 061c], [06dd, 06dd], [070f, 070f],
     
    516551    [2066, 206f], [feff, feff], [fff9, fffb], [110bd, 110bd],
    517552    [1bca0, 1bca3], [1d173, 1d17a], [e0001, e0001]**/
    518     const UnicodeSet fo_Set
    519         {{{Empty, 5}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 5},
    520           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 1},
    521           {Empty, 120}, {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1},
    522           {Mixed, 1}, {Empty, 1779}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    523           {Empty, 133}, {Mixed, 1}, {Empty, 1375}, {Mixed, 1}, {Empty, 165},
    524           {Mixed, 1}, {Empty, 24948}, {Mixed, 1}, {Empty, 6143}},
    525          {0x00002000, 0x1000003f, 0x20000000, 0x00008000, 0x00000004,
    526           0x00004000, 0x0000c000, 0x00007c00, 0x0000ffdf, 0x80000000,
    527           0x0e000000, 0x20000000, 0x0000000f, 0x07f80000, 0x00000002}};
     553
     554
     555    namespace {
     556    const static UnicodeSet::run_t __fo_Set_runs[] = {
     557    {Empty, 5}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     558    {Empty, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 120},
     559    {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     560    {Empty, 1779}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 133},
     561    {Mixed, 1}, {Empty, 1375}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
     562    {Empty, 24948}, {Mixed, 1}, {Empty, 6143}};
     563    const static UnicodeSet::bitquad_t  __fo_Set_quads[] = {
     564    0x00002000, 0x1000003f, 0x20000000, 0x00008000, 0x00000004, 0x00004000,
     565    0x0000c000, 0x00007c00, 0x0000ffdf, 0x80000000, 0x0e000000, 0x20000000,
     566    0x0000000f, 0x07f80000, 0x00000002};
     567    }
     568
     569    const static UnicodeSet fo_Set{const_cast<UnicodeSet::run_t *>(__fo_Set_runs), 29, 0, const_cast<UnicodeSet::bitquad_t *>(__fo_Set_quads), 15, 0};
     570
    528571    /** Code Point Ranges for KA
    529572    [3031, 3035], [309b, 309c], [30a0, 30fa], [30fc, 30ff], [31f0, 31ff],
    530573    [32d0, 32fe], [3300, 3357], [ff66, ff9d], [1b000, 1b000]**/
    531     const UnicodeSet ka_Set
    532         {{{Empty, 385}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 2},
    533           {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 6}, {Mixed, 2},
    534           {Full, 2}, {Mixed, 1}, {Empty, 1632}, {Mixed, 2}, {Empty, 1411},
    535           {Mixed, 1}, {Empty, 31359}},
    536          {0x003e0000, 0x18000000, 0xf7ffffff, 0xffff0000, 0xffff0000,
    537           0x7fffffff, 0x00ffffff, 0xffffffc0, 0x3fffffff, 0x00000001}};
     574
     575
     576    namespace {
     577    const static UnicodeSet::run_t __ka_Set_runs[] = {
     578    {Empty, 385}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     579    {Empty, 7}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     580    {Empty, 1632}, {Mixed, 2}, {Empty, 1411}, {Mixed, 1}, {Empty, 31359}};
     581    const static UnicodeSet::bitquad_t  __ka_Set_quads[] = {
     582    0x003e0000, 0x18000000, 0xf7ffffff, 0xffff0000, 0xffff0000, 0x7fffffff,
     583    0x00ffffff, 0xffffffc0, 0x3fffffff, 0x00000001};
     584    }
     585
     586    const static UnicodeSet ka_Set{const_cast<UnicodeSet::run_t *>(__ka_Set_runs), 17, 0, const_cast<UnicodeSet::bitquad_t *>(__ka_Set_quads), 10, 0};
     587
    538588    /** Code Point Ranges for LE
    539589    [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5], [00ba, 00ba],
     
    649699    [1eea5, 1eea9], [1eeab, 1eebb], [1f130, 1f149], [1f150, 1f169],
    650700    [1f170, 1f189]**/
    651     const UnicodeSet le_Set
    652         {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    653           {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    654           {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Empty, 2},
    655           {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    656           {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 1},
    657           {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15}, {Empty, 9},
    658           {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 8}, {Full, 1},
    659           {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    660           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    661           {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2},
    662           {Full, 2}, {Mixed, 5}, {Empty, 5}, {Full, 2}, {Mixed, 3},
    663           {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 7},
    664           {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    665           {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Full, 6},
    666           {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    667           {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
    668           {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1},
    669           {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1}, {Mixed, 2},
    670           {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    671           {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 14}, {Mixed, 2},
    672           {Empty, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Empty, 882},
    673           {Full, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8},
    674           {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
    675           {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    676           {Mixed, 3}, {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Full, 1},
    677           {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
    678           {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 280},
    679           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    680           {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
    681           {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    682           {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    683           {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2},
    684           {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1},
    685           {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
    686           {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
    687           {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
    688           {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
    689           {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    690           {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    691           {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    692           {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    693           {Mixed, 2}, {Empty, 2}, {Mixed, 11}, {Empty, 1}, {Mixed, 2},
    694           {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 4},
    695           {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
    696           {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    697           {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 15},
    698           {Full, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 3}, {Full, 1},
    699           {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
    700           {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 21}, {Full, 28},
    701           {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
    702           {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
    703           {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
    704           {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
    705           {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    706           {Mixed, 1}, {Empty, 608}, {Full, 3}, {Mixed, 2}, {Empty, 187},
    707           {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
    708           {Mixed, 3}, {Full, 10}, {Mixed, 10}, {Empty, 129}, {Full, 6},
    709           {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37},
    710           {Mixed, 6}, {Empty, 19}, {Mixed, 4}, {Empty, 30835}},
    711          {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    712           0xc0ffffff, 0xfffff01f, 0xbcdf0000, 0xffffd740, 0xfffffffb,
    713           0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff, 0xfffffffe,
    714           0x000000ff, 0x00080000, 0x000007ff, 0xfffec000, 0x002fffff,
    715           0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000, 0x0002003f,
    716           0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110, 0x01ffffff,
    717           0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000,
    718           0xfffe0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003,
    719           0xfff987e0, 0x036dfdff, 0x5e000000, 0x001c0000, 0xfffbbfe0,
    720           0x23edfdff, 0x00010000, 0x02000003, 0xfff99fe0, 0x23edfdff,
    721           0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718, 0x00010000,
    722           0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
    723           0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff,
    724           0x80704000, 0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
    725           0x00000001, 0xfffffeff, 0x00001fff, 0x00001f00, 0xffff20bf,
    726           0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
    727           0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
    728           0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
    729           0x0003ffff, 0x0001dfff, 0x00ffffff, 0xffffff9f, 0xffff05ff,
    730           0x003fffff, 0x7fffffff, 0x007fffff, 0xffffffe0, 0x000fffff,
    731           0x00000fe0, 0xfffffff8, 0xfc00c001, 0x0000003f, 0x0000000f,
    732           0xfc00e000, 0x3fffffff, 0x000001ff, 0x0063de00, 0x3f3fffff,
    733           0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    734           0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0,
    735           0x000001ff, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff,
    736           0x000c781f, 0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f,
    737           0x7f7f7f7f, 0x00008000, 0x00000020, 0x18000000, 0xffffffe0,
    738           0xfffe7fff, 0x00007fff, 0x07ffffff, 0x00001fff, 0xffff0000,
    739           0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff, 0x3fffffff,
    740           0x0000ffff, 0xff800000, 0x00ff7fff, 0xff800000, 0xfffff7bb,
    741           0x00000007, 0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000,
    742           0xfffffc00, 0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0,
    743           0x0007ffff, 0x00008000, 0x000001ff, 0x00000ff7, 0x001c07ff,
    744           0x007e7e7e, 0xffff7f7f, 0xffff003f, 0x00000007, 0xffff000f,
    745           0xfffff87f, 0x0fffffff, 0x00f8007f, 0xffff0000, 0x0003ffff,
    746           0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
    747           0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe, 0x07fffffe,
    748           0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
    749           0x07ffffff, 0x001fffff, 0x1fffffff, 0x0001ffff, 0xffffe000,
    750           0xffff07ff, 0x003fffff, 0x3fffffff, 0x003eff0f, 0x3fffffff,
    751           0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f,
    752           0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
    753           0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff,
    754           0x03ffffff, 0xc0ffffff, 0xfeef0001, 0x000fffff, 0x1fffffff,
    755           0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff,
    756           0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
    757           0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff, 0xffff0000,
    758           0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000, 0x0047ffff,
    759           0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff, 0x00000fff,
    760           0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0, 0x23edfdff,
    761           0xe0010000, 0x00000003, 0x001fffff, 0x00000780, 0x0000ffff,
    762           0x000000b0, 0x00007fff, 0x0f000000, 0x0000ffff, 0x00000010,
    763           0x000007ff, 0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000,
    764           0x000003cf, 0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001,
    765           0xfffc0000, 0x0000ffff, 0xfffffb7f, 0x0001ffff, 0x00000040,
    766           0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
    767           0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff, 0x0000ffff,
    768           0x0000000f, 0xe0fffff8, 0x0000ffff, 0x0001001f, 0xfff80000,
    769           0x00000003, 0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff,
    770           0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    771           0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    772           0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
    773           0x0000001f, 0x0000000f, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
    774           0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff0000, 0xffff03ff,
    775           0xffff03ff, 0x000003ff}};
     701
     702
     703    namespace {
     704    const static UnicodeSet::run_t __le_Set_runs[] = {
     705    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14}, {Mixed, 2},
     706    {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
     707    {Full, 4}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     708    {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1},
     709    {Mixed, 1}, {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15},
     710    {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 8}, {Full, 1},
     711    {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     712    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
     713    {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Empty, 5},
     714    {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     715    {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     716    {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Full, 6}, {Empty, 2},
     717    {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     718    {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     719    {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
     720    {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
     721    {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 6},
     722    {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Empty, 882}, {Full, 36}, {Mixed, 1},
     723    {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     724    {Full, 2}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     725    {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Full, 1},
     726    {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 3},
     727    {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 280}, {Mixed, 1},
     728    {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2},
     729    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     730    {Full, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     731    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2},
     732    {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     733    {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     734    {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     735    {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2},
     736    {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     737    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
     738    {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
     739    {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 2}, {Empty, 2}, {Mixed, 11},
     740    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
     741    {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
     742    {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2},
     743    {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 15}, {Full, 2}, {Mixed, 1},
     744    {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
     745    {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 3}, {Empty, 21},
     746    {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
     747    {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
     748    {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
     749    {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27}, {Full, 2},
     750    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     751    {Empty, 608}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
     752    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
     753    {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2},
     754    {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 19}, {Mixed, 4},
     755    {Empty, 30835}};
     756    const static UnicodeSet::bitquad_t  __le_Set_quads[] = {
     757    0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff, 0xc0ffffff,
     758    0xfffff01f, 0xbcdf0000, 0xffffd740, 0xfffffffb, 0xffbfffff, 0xfffffc03,
     759    0xfffeffff, 0x027fffff, 0xfffffffe, 0x000000ff, 0x00080000, 0x000007ff,
     760    0xfffec000, 0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
     761    0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110, 0x01ffffff,
     762    0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000, 0xfffe0003,
     763    0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003, 0xfff987e0, 0x036dfdff,
     764    0x5e000000, 0x001c0000, 0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003,
     765    0xfff99fe0, 0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
     766    0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
     767    0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff, 0x80704000,
     768    0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f, 0x00000001, 0xfffffeff,
     769    0x00001fff, 0x00001f00, 0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff,
     770    0x7f3dffff, 0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff,
     771    0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
     772    0x0003ffff, 0x0001dfff, 0x00ffffff, 0xffffff9f, 0xffff05ff, 0x003fffff,
     773    0x7fffffff, 0x007fffff, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
     774    0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0x000001ff,
     775    0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
     776    0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0,
     777    0x000001ff, 0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f,
     778    0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x00008000,
     779    0x00000020, 0x18000000, 0xffffffe0, 0xfffe7fff, 0x00007fff, 0x07ffffff,
     780    0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff,
     781    0x3fffffff, 0x0000ffff, 0xff800000, 0x00ff7fff, 0xff800000, 0xfffff7bb,
     782    0x00000007, 0x000fffff, 0xfffffffc, 0x000fffff, 0x28fc0000, 0xfffffc00,
     783    0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0, 0x0007ffff, 0x00008000,
     784    0x000001ff, 0x00000ff7, 0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xffff003f,
     785    0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff, 0x00f8007f, 0xffff0000,
     786    0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff,
     787    0x0fff0000, 0xffdf0000, 0x1fffffff, 0x07fffffe, 0x07fffffe, 0x7fffffff,
     788    0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x001fffff,
     789    0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff07ff, 0x003fffff, 0x3fffffff,
     790    0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff,
     791    0x0000000f, 0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff,
     792    0x003fffff, 0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff,
     793    0xc0ffffff, 0xfeef0001, 0x000fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff,
     794    0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff,
     795    0x0007ffff, 0x0007ffff, 0xfffffff8, 0x00ffffff, 0xfffffff8, 0x0000ffff,
     796    0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0000, 0x0047ffff,
     797    0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff, 0x00000fff, 0xbfffbd7f,
     798    0xffff01ff, 0x7fffffff, 0xfff99fe0, 0x23edfdff, 0xe0010000, 0x00000003,
     799    0x001fffff, 0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff, 0x0f000000,
     800    0x0000ffff, 0x00000010, 0x000007ff, 0x80000000, 0xfffff801, 0x0407ffff,
     801    0xf0010000, 0x000003cf, 0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001,
     802    0xfffc0000, 0x0000ffff, 0xfffffb7f, 0x0001ffff, 0x00000040, 0x03ffffff,
     803    0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
     804    0xffff0000, 0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
     805    0x0001001f, 0xfff80000, 0x00000003, 0x1fff07ff, 0x03ff01ff, 0xffdfffff,
     806    0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     807    0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
     808    0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f,
     809    0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
     810    0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff};
     811    }
     812
     813    const static UnicodeSet le_Set{const_cast<UnicodeSet::run_t *>(__le_Set_runs), 294, 0, const_cast<UnicodeSet::bitquad_t *>(__le_Set_quads), 322, 0};
     814
    776815    /** Code Point Ranges for ML
    777816    [003a, 003a], [00b7, 00b7], [0387, 0387], [05f4, 05f4], [2027, 2027],
    778817    [fe13, fe13], [fe55, fe55], [ff1a, ff1a]**/
    779     const UnicodeSet ml_Set
    780         {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 22},
    781           {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 209}, {Mixed, 1},
    782           {Empty, 1774}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
    783           {Mixed, 1}, {Empty, 32775}},
    784          {0x04000000, 0x00800000, 0x00000080, 0x00100000, 0x00000080,
    785           0x00080000, 0x00200000, 0x04000000}};
     818
     819
     820    namespace {
     821    const static UnicodeSet::run_t __ml_Set_runs[] = {
     822    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
     823    {Empty, 18}, {Mixed, 1}, {Empty, 209}, {Mixed, 1}, {Empty, 1774},
     824    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     825    {Empty, 32775}};
     826    const static UnicodeSet::bitquad_t  __ml_Set_quads[] = {
     827    0x04000000, 0x00800000, 0x00000080, 0x00100000, 0x00000080, 0x00080000,
     828    0x00200000, 0x04000000};
     829    }
     830
     831    const static UnicodeSet ml_Set{const_cast<UnicodeSet::run_t *>(__ml_Set_runs), 17, 0, const_cast<UnicodeSet::bitquad_t *>(__ml_Set_quads), 8, 0};
     832
    786833    /** Code Point Ranges for MN
    787834    [002c, 002c], [003b, 003b], [037e, 037e], [0589, 0589], [060c, 060d],
    788835    [066c, 066c], [07f8, 07f8], [2044, 2044], [fe10, fe10], [fe14, fe14],
    789836    [fe50, fe50], [fe54, fe54], [ff0c, ff0c], [ff1b, ff1b]**/
    790     const UnicodeSet mn_Set
    791         {{{Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 16},
    792           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    793           {Empty, 11}, {Mixed, 1}, {Empty, 194}, {Mixed, 1}, {Empty, 1773},
    794           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    795           {Empty, 32775}},
    796          {0x08001000, 0x40000000, 0x00000200, 0x00003000, 0x00001000,
    797           0x01000000, 0x00000010, 0x00110000, 0x00110000, 0x08001000}};
     837
     838
     839    namespace {
     840    const static UnicodeSet::run_t __mn_Set_runs[] = {
     841    {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 16},
     842    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 11},
     843    {Mixed, 1}, {Empty, 194}, {Mixed, 1}, {Empty, 1773}, {Mixed, 1},
     844    {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 32775}};
     845    const static UnicodeSet::bitquad_t  __mn_Set_quads[] = {
     846    0x08001000, 0x40000000, 0x00000200, 0x00003000, 0x00001000, 0x01000000,
     847    0x00000010, 0x00110000, 0x00110000, 0x08001000};
     848    }
     849
     850    const static UnicodeSet mn_Set{const_cast<UnicodeSet::run_t *>(__mn_Set_runs), 21, 0, const_cast<UnicodeSet::bitquad_t *>(__mn_Set_quads), 10, 0};
     851
    798852    /** Code Point Ranges for MB
    799853    [002e, 002e], [2018, 2019], [2024, 2024], [fe52, fe52], [ff07, ff07],
    800854    [ff0e, ff0e]**/
    801     const UnicodeSet mb_Set
    802         {{{Empty, 1}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1776},
    803           {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 32775}},
    804          {0x00004000, 0x03000000, 0x00000010, 0x00040000, 0x00004080}};
     855
     856
     857    namespace {
     858    const static UnicodeSet::run_t __mb_Set_runs[] = {
     859    {Empty, 1}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1776},
     860    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 32775}};
     861    const static UnicodeSet::bitquad_t  __mb_Set_quads[] = {
     862    0x00004000, 0x03000000, 0x00000010, 0x00040000, 0x00004080};
     863    }
     864
     865    const static UnicodeSet mb_Set{const_cast<UnicodeSet::run_t *>(__mb_Set_runs), 9, 0, const_cast<UnicodeSet::bitquad_t *>(__mb_Set_quads), 5, 0};
     866
    805867    /** Code Point Ranges for NU
    806868    [0030, 0039], [0660, 0669], [066b, 066b], [06f0, 06f9], [07c0, 07c9],
     
    816878    [11730, 11739], [118e0, 118e9], [11c50, 11c59], [11d50, 11d59],
    817879    [16a60, 16a69], [16b50, 16b59], [1d7ce, 1d7ff], [1e950, 1e959]**/
    818     const UnicodeSet nu_Set
    819         {{{Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3},
    820           {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    821           {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    822           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    823           {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    824           {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    825           {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8},
    826           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 58}, {Mixed, 2},
    827           {Empty, 9}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 5},
    828           {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    829           {Empty, 4}, {Mixed, 1}, {Empty, 1102}, {Mixed, 1}, {Empty, 20},
    830           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 2},
    831           {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 709},
    832           {Mixed, 1}, {Empty, 93}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    833           {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 8},
    834           {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    835           {Empty, 11}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    836           {Mixed, 1}, {Empty, 13}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
    837           {Empty, 7}, {Mixed, 1}, {Empty, 616}, {Mixed, 1}, {Empty, 6},
    838           {Mixed, 1}, {Empty, 867}, {Mixed, 1}, {Full, 1}, {Empty, 138},
    839           {Mixed, 1}, {Empty, 30901}},
    840          {0x03ff0000, 0x00000bff, 0x03ff0000, 0x000003ff, 0x0000ffc0,
    841           0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0,
    842           0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x03ff0000,
    843           0x03ff0000, 0x000003ff, 0x000003ff, 0x03ff0000, 0x000003ff,
    844           0x03ff0000, 0x0000ffc0, 0x03ff0000, 0x03ff03ff, 0x03ff0000,
    845           0x03ff0000, 0x03ff03ff, 0x000003ff, 0x03ff0000, 0x000003ff,
    846           0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff,
    847           0x0000ffc0, 0x03ff0000, 0xffc00000, 0x03ff0000, 0x03ff0000,
    848           0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x03ff0000,
    849           0x000003ff, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x03ff0000,
    850           0xffffc000, 0x03ff0000}};
     880
     881
     882    namespace {
     883    const static UnicodeSet::run_t __nu_Set_runs[] = {
     884    {Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     885    {Empty, 6}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     886    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     887    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     888    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     889    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     890    {Empty, 1}, {Mixed, 1}, {Empty, 58}, {Mixed, 2}, {Empty, 9}, {Mixed, 1},
     891    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
     892    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1102},
     893    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
     894    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
     895    {Empty, 709}, {Mixed, 1}, {Empty, 93}, {Mixed, 1}, {Empty, 3},
     896    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 8},
     897    {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     898    {Empty, 11}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     899    {Empty, 13}, {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 7},
     900    {Mixed, 1}, {Empty, 616}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     901    {Empty, 867}, {Mixed, 1}, {Full, 1}, {Empty, 138}, {Mixed, 1},
     902    {Empty, 30901}};
     903    const static UnicodeSet::bitquad_t  __nu_Set_quads[] = {
     904    0x03ff0000, 0x00000bff, 0x03ff0000, 0x000003ff, 0x0000ffc0, 0x0000ffc0,
     905    0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0,
     906    0x0000ffc0, 0x0000ffc0, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff,
     907    0x03ff0000, 0x000003ff, 0x03ff0000, 0x0000ffc0, 0x03ff0000, 0x03ff03ff,
     908    0x03ff0000, 0x03ff0000, 0x03ff03ff, 0x000003ff, 0x03ff0000, 0x000003ff,
     909    0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x0000ffc0,
     910    0x03ff0000, 0xffc00000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000,
     911    0x03ff0000, 0x000003ff, 0x03ff0000, 0x000003ff, 0x03ff0000, 0x03ff0000,
     912    0x000003ff, 0x03ff0000, 0xffffc000, 0x03ff0000};
     913    }
     914
     915    const static UnicodeSet nu_Set{const_cast<UnicodeSet::run_t *>(__nu_Set_runs), 102, 0, const_cast<UnicodeSet::bitquad_t *>(__nu_Set_quads), 52, 0};
     916
    851917    /** Code Point Ranges for EX
    852918    [005f, 005f], [202f, 202f], [203f, 2040], [2054, 2054], [fe33, fe34],
    853919    [fe4d, fe4f], [ff3f, ff3f]**/
    854     const UnicodeSet ex_Set
    855         {{{Empty, 2}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1774},
    856           {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 32774}},
    857          {0x80000000, 0x80008000, 0x00100001, 0x00180000, 0x0000e000,
    858           0x80000000}};
     920
     921
     922    namespace {
     923    const static UnicodeSet::run_t __ex_Set_runs[] = {
     924    {Empty, 2}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1774},
     925    {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 32774}};
     926    const static UnicodeSet::bitquad_t  __ex_Set_quads[] = {
     927    0x80000000, 0x80008000, 0x00100001, 0x00180000, 0x0000e000, 0x80000000};
     928    }
     929
     930    const static UnicodeSet ex_Set{const_cast<UnicodeSet::run_t *>(__ex_Set_runs), 9, 0, const_cast<UnicodeSet::bitquad_t *>(__ex_Set_quads), 6, 0};
     931
    859932    /** Code Point Ranges for EB
    860933    [261d, 261d], [26f9, 26f9], [270a, 270d], [1f385, 1f385],
     
    866939    [1f6cc, 1f6cc], [1f918, 1f91c], [1f91e, 1f91f], [1f926, 1f926],
    867940    [1f930, 1f939], [1f93d, 1f93e], [1f9d1, 1f9dd]**/
    868     const UnicodeSet eb_Set
    869         {{{Empty, 304}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 3683},
    870           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 4},
    871           {Empty, 5}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 2},
    872           {Mixed, 2}, {Empty, 17}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    873           {Empty, 30769}},
    874          {0x20000000, 0x02000000, 0x00003c00, 0x00000020, 0x00001c9c,
    875           0x0001ffcc, 0x11ff4000, 0x000000ee, 0x00000400, 0x04300000,
    876           0x00610000, 0x0000f8e0, 0x00700008, 0x00001001, 0xdf000000,
    877           0x63ff0040, 0x3ffe0000}};
     941
     942
     943    namespace {
     944    const static UnicodeSet::run_t __eb_Set_runs[] = {
     945    {Empty, 304}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 3683},
     946    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 4}, {Empty, 5},
     947    {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 17},
     948    {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 30769}};
     949    const static UnicodeSet::bitquad_t  __eb_Set_quads[] = {
     950    0x20000000, 0x02000000, 0x00003c00, 0x00000020, 0x00001c9c, 0x0001ffcc,
     951    0x11ff4000, 0x000000ee, 0x00000400, 0x04300000, 0x00610000, 0x0000f8e0,
     952    0x00700008, 0x00001001, 0xdf000000, 0x63ff0040, 0x3ffe0000};
     953    }
     954
     955    const static UnicodeSet eb_Set{const_cast<UnicodeSet::run_t *>(__eb_Set_runs), 21, 0, const_cast<UnicodeSet::bitquad_t *>(__eb_Set_quads), 17, 0};
     956
    878957    /** Code Point Ranges for EM
    879958    [1f3fb, 1f3ff]**/
    880     const UnicodeSet em_Set
    881         {{{Empty, 3999}, {Mixed, 1}, {Empty, 30816}},
    882          {0xf8000000}};
     959
     960
     961    namespace {
     962    const static UnicodeSet::run_t __em_Set_runs[] = {
     963    {Empty, 3999}, {Mixed, 1}, {Empty, 30816}};
     964    const static UnicodeSet::bitquad_t  __em_Set_quads[] = {
     965    0xf8000000};
     966    }
     967
     968    const static UnicodeSet em_Set{const_cast<UnicodeSet::run_t *>(__em_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__em_Set_quads), 1, 0};
     969
    883970    /** Code Point Ranges for ZWJ
    884971    [200d, 200d]**/
    885     const UnicodeSet zwj_Set
    886         {{{Empty, 256}, {Mixed, 1}, {Empty, 34559}},
    887          {0x00002000}};
     972
     973
     974    namespace {
     975    const static UnicodeSet::run_t __zwj_Set_runs[] = {
     976    {Empty, 256}, {Mixed, 1}, {Empty, 34559}};
     977    const static UnicodeSet::bitquad_t  __zwj_Set_quads[] = {
     978    0x00002000};
     979    }
     980
     981    const static UnicodeSet zwj_Set{const_cast<UnicodeSet::run_t *>(__zwj_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__zwj_Set_quads), 1, 0};
     982
    888983    /** Code Point Ranges for GAZ
    889984    [2640, 2640], [2642, 2642], [2695, 2696], [2708, 2708], [2764, 2764],
     
    892987    [1f48b, 1f48b], [1f4bb, 1f4bc], [1f527, 1f527], [1f52c, 1f52c],
    893988    [1f5e8, 1f5e8], [1f680, 1f680], [1f692, 1f692]**/
    894     const UnicodeSet gaz_Set
    895         {{{Empty, 306}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
    896           {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3676}, {Mixed, 2},
    897           {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 4},
    898           {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    899           {Empty, 4}, {Mixed, 1}, {Empty, 30795}},
    900          {0x00000005, 0x00600000, 0x00000100, 0x00000010, 0x00000100,
    901           0x40000000, 0x00080000, 0x00080000, 0x00000110, 0x00002800,
    902           0x00000800, 0x18000000, 0x00001080, 0x00000100, 0x00040001}};
     989
     990
     991    namespace {
     992    const static UnicodeSet::run_t __gaz_Set_runs[] = {
     993    {Empty, 306}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
     994    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3676}, {Mixed, 2},
     995    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2},
     996    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
     997    {Empty, 30795}};
     998    const static UnicodeSet::bitquad_t  __gaz_Set_quads[] = {
     999    0x00000005, 0x00600000, 0x00000100, 0x00000010, 0x00000100, 0x40000000,
     1000    0x00080000, 0x00080000, 0x00000110, 0x00002800, 0x00000800, 0x18000000,
     1001    0x00001080, 0x00000100, 0x00040001};
     1002    }
     1003
     1004    const static UnicodeSet gaz_Set{const_cast<UnicodeSet::run_t *>(__gaz_Set_runs), 23, 0, const_cast<UnicodeSet::bitquad_t *>(__gaz_Set_quads), 15, 0};
     1005
    9031006    /** Code Point Ranges for EBG
    9041007    [1f466, 1f469]**/
    905     const UnicodeSet ebg_Set
    906         {{{Empty, 4003}, {Mixed, 1}, {Empty, 30812}},
    907          {0x000003c0}};
     1008
     1009
     1010    namespace {
     1011    const static UnicodeSet::run_t __ebg_Set_runs[] = {
     1012    {Empty, 4003}, {Mixed, 1}, {Empty, 30812}};
     1013    const static UnicodeSet::bitquad_t  __ebg_Set_quads[] = {
     1014    0x000003c0};
     1015    }
     1016
     1017    const static UnicodeSet ebg_Set{const_cast<UnicodeSet::run_t *>(__ebg_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ebg_Set_quads), 1, 0};
     1018
    9081019    static EnumeratedPropertyObject property_object
    9091020        {WB,
    9101021         WB_ns::independent_prop_values,
    911          WB_ns::enum_names,
    912          WB_ns::value_names,
    913          WB_ns::aliases_only_map,
    914          {&xx_Set, &dq_Set, &sq_Set, &hl_Set, &cr_Set, &lf_Set, &nl_Set,
     1022         std::move(WB_ns::enum_names),
     1023         std::move(WB_ns::value_names),
     1024         std::move(WB_ns::aliases_only_map),{
     1025&xx_Set, &dq_Set, &sq_Set, &hl_Set, &cr_Set, &lf_Set, &nl_Set,
    9151026        &extend_Set, &ri_Set, &fo_Set, &ka_Set, &le_Set, &ml_Set, &mn_Set,
    9161027        &mb_Set, &nu_Set, &ex_Set, &eb_Set, &em_Set, &zwj_Set, &gaz_Set,
Note: See TracChangeset for help on using the changeset viewer.