Changeset 6192


Ignore:
Timestamp:
Nov 6, 2018, 9:01:48 AM (5 months ago)
Author:
cameron
Message:

Updates for Unicode 11.0 plus Emoji properties

Location:
icGREP/icgrep-devel
Files:
1 added
43 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/QA/proptest.xml

    r5686 r6192  
    11<greptest>
    2 <grepcase regexp="^\p{Cn}$" datafile="All_good" grepcount="837841"/>
    3 <grepcase regexp="^\P{Lu}$" datafile="All_good" grepcount="1110327"/>
    4 <grepcase regexp="^\p{Ll}$" datafile="All_good" grepcount="2063"/>
    5 <grepcase regexp="^\P{Lt}$" datafile="All_good" grepcount="1111998"/>
    6 <grepcase regexp="^\p{Lm}$" datafile="All_good" grepcount="250"/>
    7 <grepcase regexp="^\p{Lo}$" datafile="All_good" grepcount="121047"/>
    8 <grepcase regexp="^\P{Mn}$" datafile="All_good" grepcount="1110266"/>
    9 <grepcase regexp="^\p{Me}$" datafile="All_good" grepcount="13"/>
    10 <grepcase regexp="^\p{Mc}$" datafile="All_good" grepcount="401"/>
    11 <grepcase regexp="^\p{Nd}$" datafile="All_good" grepcount="590"/>
    12 <grepcase regexp="^\p{Nl}$" datafile="All_good" grepcount="236"/>
    13 <grepcase regexp="^\p{No}$" datafile="All_good" grepcount="676"/>
    14 <grepcase regexp="^\p{Zs}$" datafile="All_good" grepcount="17"/>
    15 <grepcase regexp="^\p{Zl}$" datafile="All_good" grepcount="0"/>
    16 <grepcase regexp="^\P{Zp}$" datafile="All_good" grepcount="1112029"/>
    17 <grepcase regexp="^\p{Cc}$" datafile="All_good" grepcount="32"/>
    18 <grepcase regexp="^\p{Cf}$" datafile="All_good" grepcount="151"/>
    19 <grepcase regexp="^\p{Co}$" datafile="All_good" grepcount="137468"/>
    20 <grepcase regexp="^\p{Cs}$" datafile="All_good" grepcount="0"/>
    21 <grepcase regexp="^\p{Pd}$" datafile="All_good" grepcount="24"/>
    22 <grepcase regexp="^\p{Ps}$" datafile="All_good" grepcount="75"/>
    23 <grepcase regexp="^\p{Pe}$" datafile="All_good" grepcount="73"/>
    24 <grepcase regexp="^\p{Pc}$" datafile="All_good" grepcount="10"/>
    25 <grepcase regexp="^\p{Po}$" datafile="All_good" grepcount="566"/>
    26 <grepcase regexp="^\p{Sm}$" datafile="All_good" grepcount="948"/>
    27 <grepcase regexp="^\p{Sc}$" datafile="All_good" grepcount="54"/>
    28 <grepcase regexp="^\p{Sk}$" datafile="All_good" grepcount="121"/>
    29 <grepcase regexp="^\p{So}$" datafile="All_good" grepcount="5855"/>
    30 <grepcase regexp="^\p{Pi}$" datafile="All_good" grepcount="12"/>
    31 <grepcase regexp="^\p{Pf}$" datafile="All_good" grepcount="10"/>
    32 <grepcase regexp="^\p{C}$" datafile="All_good" grepcount="975492"/>
    33 <grepcase regexp="^\p{L}$" datafile="All_good" grepcount="125093"/>
    34 <grepcase regexp="^\P{LC}$" datafile="All_good" grepcount="1108233"/>
    35 <grepcase regexp="^\p{M}$" datafile="All_good" grepcount="2177"/>
    36 <grepcase regexp="^\p{N}$" datafile="All_good" grepcount="1502"/>
    37 <grepcase regexp="^\p{P}$" datafile="All_good" grepcount="770"/>
    38 <grepcase regexp="^\p{S}$" datafile="All_good" grepcount="6978"/>
    39 <grepcase regexp="^\p{Z}$" datafile="All_good" grepcount="17"/>
    40 <grepcase regexp="^\p{Unknown}$" datafile="All_good" grepcount="975309"/>
    41 <grepcase regexp="^\p{Common}$" datafile="All_good" grepcount="7328"/>
    42 <grepcase regexp="^\p{Latin}$" datafile="All_good" grepcount="1350"/>
    43 <grepcase regexp="^\p{Greek}$" datafile="All_good" grepcount="518"/>
    44 <grepcase regexp="^\p{Cyrillic}$" datafile="All_good" grepcount="443"/>
    45 <grepcase regexp="^\p{Armenian}$" datafile="All_good" grepcount="93"/>
    46 <grepcase regexp="^\p{Hebrew}$" datafile="All_good" grepcount="133"/>
    47 <grepcase regexp="^\P{Arabic}$" datafile="All_good" grepcount="1110749"/>
    48 <grepcase regexp="^\p{Syriac}$" datafile="All_good" grepcount="88"/>
    49 <grepcase regexp="^\p{Thaana}$" datafile="All_good" grepcount="50"/>
    50 <grepcase regexp="^\p{Devanagari}$" datafile="All_good" grepcount="154"/>
    51 <grepcase regexp="^\p{Bengali}$" datafile="All_good" grepcount="95"/>
    52 <grepcase regexp="^\p{Gurmukhi}$" datafile="All_good" grepcount="79"/>
    53 <grepcase regexp="^\p{Gujarati}$" datafile="All_good" grepcount="91"/>
    54 <grepcase regexp="^\p{Oriya}$" datafile="All_good" grepcount="90"/>
    55 <grepcase regexp="^\p{Tamil}$" datafile="All_good" grepcount="72"/>
    56 <grepcase regexp="^\p{Telugu}$" datafile="All_good" grepcount="96"/>
    57 <grepcase regexp="^\p{Kannada}$" datafile="All_good" grepcount="88"/>
    58 <grepcase regexp="^\p{Malayalam}$" datafile="All_good" grepcount="117"/>
    59 <grepcase regexp="^\p{Sinhala}$" datafile="All_good" grepcount="110"/>
    60 <grepcase regexp="^\p{Thai}$" datafile="All_good" grepcount="86"/>
    61 <grepcase regexp="^\p{Lao}$" datafile="All_good" grepcount="67"/>
    62 <grepcase regexp="^\p{Tibetan}$" datafile="All_good" grepcount="207"/>
    63 <grepcase regexp="^\p{Myanmar}$" datafile="All_good" grepcount="223"/>
    64 <grepcase regexp="^\p{Georgian}$" datafile="All_good" grepcount="127"/>
    65 <grepcase regexp="^\p{Hangul}$" datafile="All_good" grepcount="11739"/>
    66 <grepcase regexp="^\p{Ethiopic}$" datafile="All_good" grepcount="495"/>
    67 <grepcase regexp="^\p{Cherokee}$" datafile="All_good" grepcount="172"/>
    68 <grepcase regexp="^\p{Canadian_Aboriginal}$" datafile="All_good" grepcount="710"/>
    69 <grepcase regexp="^\p{Ogham}$" datafile="All_good" grepcount="29"/>
    70 <grepcase regexp="^\p{Runic}$" datafile="All_good" grepcount="86"/>
    71 <grepcase regexp="^\p{Khmer}$" datafile="All_good" grepcount="146"/>
    72 <grepcase regexp="^\p{Mongolian}$" datafile="All_good" grepcount="166"/>
    73 <grepcase regexp="^\p{Hiragana}$" datafile="All_good" grepcount="376"/>
    74 <grepcase regexp="^\p{Katakana}$" datafile="All_good" grepcount="300"/>
    75 <grepcase regexp="^\p{Bopomofo}$" datafile="All_good" grepcount="71"/>
    76 <grepcase regexp="^\p{Han}$" datafile="All_good" grepcount="89228"/>
    77 <grepcase regexp="^\p{Yi}$" datafile="All_good" grepcount="1220"/>
    78 <grepcase regexp="^\p{Old_Italic}$" datafile="All_good" grepcount="39"/>
    79 <grepcase regexp="^\p{Gothic}$" datafile="All_good" grepcount="27"/>
    80 <grepcase regexp="^\p{Deseret}$" datafile="All_good" grepcount="80"/>
    81 <grepcase regexp="^\p{Inherited}$" datafile="All_good" grepcount="568"/>
    82 <grepcase regexp="^\p{Tagalog}$" datafile="All_good" grepcount="20"/>
    83 <grepcase regexp="^\P{Hanunoo}$" datafile="All_good" grepcount="1112008"/>
    84 <grepcase regexp="^\P{Buhid}$" datafile="All_good" grepcount="1112009"/>
    85 <grepcase regexp="^\p{Tagbanwa}$" datafile="All_good" grepcount="18"/>
    86 <grepcase regexp="^\p{Limbu}$" datafile="All_good" grepcount="68"/>
    87 <grepcase regexp="^\p{Tai_Le}$" datafile="All_good" grepcount="35"/>
    88 <grepcase regexp="^\p{Linear_B}$" datafile="All_good" grepcount="211"/>
    89 <grepcase regexp="^\p{Ugaritic}$" datafile="All_good" grepcount="31"/>
    90 <grepcase regexp="^\p{Shavian}$" datafile="All_good" grepcount="48"/>
    91 <grepcase regexp="^\p{Osmanya}$" datafile="All_good" grepcount="40"/>
    92 <grepcase regexp="^\p{Cypriot}$" datafile="All_good" grepcount="55"/>
    93 <grepcase regexp="^\p{Braille}$" datafile="All_good" grepcount="256"/>
    94 <grepcase regexp="^\P{Buginese}$" datafile="All_good" grepcount="1111999"/>
    95 <grepcase regexp="^\p{Coptic}$" datafile="All_good" grepcount="137"/>
    96 <grepcase regexp="^\p{New_Tai_Lue}$" datafile="All_good" grepcount="83"/>
    97 <grepcase regexp="^\p{Glagolitic}$" datafile="All_good" grepcount="132"/>
    98 <grepcase regexp="^\p{Tifinagh}$" datafile="All_good" grepcount="59"/>
    99 <grepcase regexp="^\p{Syloti_Nagri}$" datafile="All_good" grepcount="44"/>
    100 <grepcase regexp="^\p{Old_Persian}$" datafile="All_good" grepcount="50"/>
    101 <grepcase regexp="^\p{Kharoshthi}$" datafile="All_good" grepcount="65"/>
    102 <grepcase regexp="^\p{Balinese}$" datafile="All_good" grepcount="121"/>
    103 <grepcase regexp="^\p{Cuneiform}$" datafile="All_good" grepcount="1234"/>
    104 <grepcase regexp="^\p{Phoenician}$" datafile="All_good" grepcount="29"/>
    105 <grepcase regexp="^\p{Phags_Pa}$" datafile="All_good" grepcount="56"/>
    106 <grepcase regexp="^\p{Nko}$" datafile="All_good" grepcount="59"/>
    107 <grepcase regexp="^\p{Sundanese}$" datafile="All_good" grepcount="72"/>
    108 <grepcase regexp="^\p{Lepcha}$" datafile="All_good" grepcount="74"/>
    109 <grepcase regexp="^\p{Ol_Chiki}$" datafile="All_good" grepcount="48"/>
    110 <grepcase regexp="^\p{Vai}$" datafile="All_good" grepcount="300"/>
    111 <grepcase regexp="^\p{Saurashtra}$" datafile="All_good" grepcount="82"/>
    112 <grepcase regexp="^\p{Kayah_Li}$" datafile="All_good" grepcount="47"/>
    113 <grepcase regexp="^\p{Rejang}$" datafile="All_good" grepcount="37"/>
    114 <grepcase regexp="^\p{Lycian}$" datafile="All_good" grepcount="29"/>
    115 <grepcase regexp="^\p{Carian}$" datafile="All_good" grepcount="49"/>
    116 <grepcase regexp="^\P{Lydian}$" datafile="All_good" grepcount="1112002"/>
    117 <grepcase regexp="^\p{Cham}$" datafile="All_good" grepcount="83"/>
    118 <grepcase regexp="^\p{Tai_Tham}$" datafile="All_good" grepcount="127"/>
    119 <grepcase regexp="^\p{Tai_Viet}$" datafile="All_good" grepcount="72"/>
    120 <grepcase regexp="^\p{Avestan}$" datafile="All_good" grepcount="61"/>
    121 <grepcase regexp="^\p{Egyptian_Hieroglyphs}$" datafile="All_good" grepcount="1071"/>
    122 <grepcase regexp="^\p{Samaritan}$" datafile="All_good" grepcount="61"/>
    123 <grepcase regexp="^\p{Lisu}$" datafile="All_good" grepcount="48"/>
    124 <grepcase regexp="^\p{Bamum}$" datafile="All_good" grepcount="657"/>
    125 <grepcase regexp="^\p{Javanese}$" datafile="All_good" grepcount="90"/>
    126 <grepcase regexp="^\p{Meetei_Mayek}$" datafile="All_good" grepcount="79"/>
    127 <grepcase regexp="^\p{Imperial_Aramaic}$" datafile="All_good" grepcount="31"/>
    128 <grepcase regexp="^\p{Old_South_Arabian}$" datafile="All_good" grepcount="32"/>
    129 <grepcase regexp="^\p{Inscriptional_Parthian}$" datafile="All_good" grepcount="30"/>
    130 <grepcase regexp="^\p{Inscriptional_Pahlavi}$" datafile="All_good" grepcount="27"/>
    131 <grepcase regexp="^\p{Old_Turkic}$" datafile="All_good" grepcount="73"/>
    132 <grepcase regexp="^\p{Kaithi}$" datafile="All_good" grepcount="66"/>
    133 <grepcase regexp="^\p{Batak}$" datafile="All_good" grepcount="56"/>
    134 <grepcase regexp="^\P{Brahmi}$" datafile="All_good" grepcount="1111920"/>
    135 <grepcase regexp="^\p{Mandaic}$" datafile="All_good" grepcount="29"/>
    136 <grepcase regexp="^\p{Chakma}$" datafile="All_good" grepcount="67"/>
    137 <grepcase regexp="^\p{Meroitic_Cursive}$" datafile="All_good" grepcount="90"/>
    138 <grepcase regexp="^\p{Meroitic_Hieroglyphs}$" datafile="All_good" grepcount="32"/>
    139 <grepcase regexp="^\P{Miao}$" datafile="All_good" grepcount="1111896"/>
    140 <grepcase regexp="^\p{Sharada}$" datafile="All_good" grepcount="94"/>
    141 <grepcase regexp="^\p{Sora_Sompeng}$" datafile="All_good" grepcount="35"/>
    142 <grepcase regexp="^\P{Takri}$" datafile="All_good" grepcount="1111963"/>
    143 <grepcase regexp="^\P{Caucasian_Albanian}$" datafile="All_good" grepcount="1111976"/>
    144 <grepcase regexp="^\p{Bassa_Vah}$" datafile="All_good" grepcount="36"/>
    145 <grepcase regexp="^\p{Duployan}$" datafile="All_good" grepcount="143"/>
    146 <grepcase regexp="^\p{Elbasan}$" datafile="All_good" grepcount="40"/>
    147 <grepcase regexp="^\p{Grantha}$" datafile="All_good" grepcount="85"/>
    148 <grepcase regexp="^\p{Pahawh_Hmong}$" datafile="All_good" grepcount="127"/>
    149 <grepcase regexp="^\p{Khojki}$" datafile="All_good" grepcount="62"/>
    150 <grepcase regexp="^\p{Linear_A}$" datafile="All_good" grepcount="341"/>
    151 <grepcase regexp="^\p{Mahajani}$" datafile="All_good" grepcount="39"/>
    152 <grepcase regexp="^\p{Manichaean}$" datafile="All_good" grepcount="51"/>
    153 <grepcase regexp="^\p{Mende_Kikakui}$" datafile="All_good" grepcount="213"/>
    154 <grepcase regexp="^\p{Modi}$" datafile="All_good" grepcount="79"/>
    155 <grepcase regexp="^\p{Mro}$" datafile="All_good" grepcount="43"/>
    156 <grepcase regexp="^\p{Old_North_Arabian}$" datafile="All_good" grepcount="32"/>
    157 <grepcase regexp="^\p{Nabataean}$" datafile="All_good" grepcount="40"/>
    158 <grepcase regexp="^\p{Palmyrene}$" datafile="All_good" grepcount="32"/>
    159 <grepcase regexp="^\p{Pau_Cin_Hau}$" datafile="All_good" grepcount="57"/>
    160 <grepcase regexp="^\p{Old_Permic}$" datafile="All_good" grepcount="43"/>
    161 <grepcase regexp="^\p{Psalter_Pahlavi}$" datafile="All_good" grepcount="29"/>
    162 <grepcase regexp="^\p{Siddham}$" datafile="All_good" grepcount="92"/>
    163 <grepcase regexp="^\p{Khudawadi}$" datafile="All_good" grepcount="69"/>
    164 <grepcase regexp="^\p{Tirhuta}$" datafile="All_good" grepcount="82"/>
    165 <grepcase regexp="^\P{Warang_Citi}$" datafile="All_good" grepcount="1111945"/>
    166 <grepcase regexp="^\p{Ahom}$" datafile="All_good" grepcount="57"/>
    167 <grepcase regexp="^\p{Anatolian_Hieroglyphs}$" datafile="All_good" grepcount="583"/>
    168 <grepcase regexp="^\p{Hatran}$" datafile="All_good" grepcount="26"/>
    169 <grepcase regexp="^\p{Multani}$" datafile="All_good" grepcount="38"/>
    170 <grepcase regexp="^\p{Old_Hungarian}$" datafile="All_good" grepcount="108"/>
    171 <grepcase regexp="^\p{SignWriting}$" datafile="All_good" grepcount="672"/>
    172 <grepcase regexp="^\p{Adlam}$" datafile="All_good" grepcount="87"/>
    173 <grepcase regexp="^\p{Bhaiksuki}$" datafile="All_good" grepcount="97"/>
    174 <grepcase regexp="^\p{Marchen}$" datafile="All_good" grepcount="68"/>
    175 <grepcase regexp="^\p{Newa}$" datafile="All_good" grepcount="92"/>
    176 <grepcase regexp="^\p{Osage}$" datafile="All_good" grepcount="72"/>
    177 <grepcase regexp="^\p{Tangut}$" datafile="All_good" grepcount="6881"/>
    178 <grepcase regexp="^\p{Masaram_Gondi}$" datafile="All_good" grepcount="75"/>
    179 <grepcase regexp="^\p{Nushu}$" datafile="All_good" grepcount="397"/>
    180 <grepcase regexp="^\p{Soyombo}$" datafile="All_good" grepcount="80"/>
    181 <grepcase regexp="^\p{Zanabazar_Square}$" datafile="All_good" grepcount="72"/>
    182 <grepcase regexp="^\p{Katakana_Or_Hiragana}$" datafile="All_good" grepcount="0"/>
    183 <grepcase regexp="^\p{Cn}(?&lt;!\p{Palmyrene})$" datafile="All_good" grepcount="837841"/>
    184 <grepcase regexp="^\p{Lu}(?&lt;!\p{Siddham})$" datafile="All_good" grepcount="1702"/>
    185 <grepcase regexp="^\p{Ll}(?&lt;!\p{Elbasan})$" datafile="All_good" grepcount="2063"/>
    186 <grepcase regexp="^[\p{Lt}\p{Mro}]$" datafile="All_good" grepcount="74"/>
    187 <grepcase regexp="^[\p{Lm}\p{Khojki}]$" datafile="All_good" grepcount="312"/>
    188 <grepcase regexp="^\p{Lo}(?&lt;!\p{Takri})$" datafile="All_good" grepcount="121004"/>
    189 <grepcase regexp="^[\p{Mn}\p{Hangul}]$" datafile="All_good" grepcount="13502"/>
    190 <grepcase regexp="^[\p{Me}\p{Old_Persian}]$" datafile="All_good" grepcount="63"/>
    191 <grepcase regexp="^[\p{Mc}\p{Duployan}]$" datafile="All_good" grepcount="544"/>
    192 <grepcase regexp="^\p{Nd}(?&lt;!\p{Old_North_Arabian})$" datafile="All_good" grepcount="590"/>
    193 <grepcase regexp="^\p{Nl}(?&lt;=\p{Cuneiform})$" datafile="All_good" grepcount="111"/>
    194 <grepcase regexp="^\p{No}(?&lt;=\p{Phags_Pa})$" datafile="All_good" grepcount="0"/>
    195 <grepcase regexp="^\p{Zs}(?&lt;=\p{Newa})$" datafile="All_good" grepcount="0"/>
    196 <grepcase regexp="^\p{Zl}(?&lt;=\p{Ogham})$" datafile="All_good" grepcount="0"/>
    197 <grepcase regexp="^\p{Zp}(?&lt;!\p{Khudawadi})$" datafile="All_good" grepcount="0"/>
    198 <grepcase regexp="^[\p{Cc}\p{Linear_B}]$" datafile="All_good" grepcount="243"/>
    199 <grepcase regexp="^[\p{Cf}\p{Greek}]$" datafile="All_good" grepcount="669"/>
    200 <grepcase regexp="^\p{Co}(?&lt;=\p{Bassa_Vah})$" datafile="All_good" grepcount="0"/>
    201 <grepcase regexp="^\p{Cs}(?&lt;=\p{Tibetan})$" datafile="All_good" grepcount="0"/>
    202 <grepcase regexp="^\p{Pd}(?&lt;!\p{Ogham})$" datafile="All_good" grepcount="24"/>
    203 <grepcase regexp="^[\p{Ps}\p{Brahmi}]$" datafile="All_good" grepcount="184"/>
    204 <grepcase regexp="^\p{Pe}(?&lt;=\p{Bopomofo})$" datafile="All_good" grepcount="0"/>
    205 <grepcase regexp="^\p{Pc}(?&lt;!\p{Masaram_Gondi})$" datafile="All_good" grepcount="10"/>
    206 <grepcase regexp="^\p{Po}(?&lt;=\p{Chakma})$" datafile="All_good" grepcount="4"/>
    207 <grepcase regexp="^[\p{Sm}\p{Sinhala}]$" datafile="All_good" grepcount="1058"/>
    208 <grepcase regexp="^\p{Sc}(?&lt;!\p{Myanmar})$" datafile="All_good" grepcount="54"/>
    209 <grepcase regexp="^[\p{Sk}\p{Psalter_Pahlavi}]$" datafile="All_good" grepcount="150"/>
    210 <grepcase regexp="^[\p{So}\p{Rejang}]$" datafile="All_good" grepcount="5892"/>
    211 <grepcase regexp="^\p{Pi}(?&lt;=\p{Coptic})$" datafile="All_good" grepcount="0"/>
    212 <grepcase regexp="^[\p{Pf}\p{Modi}]$" datafile="All_good" grepcount="89"/>
    213 <grepcase regexp="^\p{C}(?&lt;=\p{Imperial_Aramaic})$" datafile="All_good" grepcount="0"/>
    214 <grepcase regexp="^[\p{L}\p{Khojki}]$" datafile="All_good" grepcount="125112"/>
    215 <grepcase regexp="^\p{LC}(?&lt;=\p{Linear_A})$" datafile="All_good" grepcount="0"/>
    216 <grepcase regexp="^\p{M}(?&lt;!\p{Bamum})$" datafile="All_good" grepcount="2175"/>
    217 <grepcase regexp="^\p{N}(?&lt;!\p{Chakma})$" datafile="All_good" grepcount="1492"/>
    218 <grepcase regexp="^[\p{P}\p{Hanunoo}]$" datafile="All_good" grepcount="791"/>
    219 <grepcase regexp="^\p{S}(?&lt;!\p{Linear_B})$" datafile="All_good" grepcount="6978"/>
    220 <grepcase regexp="^\p{Z}(?&lt;=\p{Pahawh_Hmong})$" datafile="All_good" grepcount="0"/>
    221 <grepcase regexp="^[\p{Unknown}\p{Mn}]$" datafile="All_good" grepcount="977072"/>
    222 <grepcase regexp="^[\p{Common}\p{P}]$" datafile="All_good" grepcount="7716"/>
    223 <grepcase regexp="^\p{Latin}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
    224 <grepcase regexp="^[\p{Greek}\p{Z}]$" datafile="All_good" grepcount="535"/>
    225 <grepcase regexp="^\p{Cyrillic}(?&lt;=\p{Pe})$" datafile="All_good" grepcount="0"/>
    226 <grepcase regexp="^\p{Armenian}(?&lt;!\p{Cf})$" datafile="All_good" grepcount="93"/>
    227 <grepcase regexp="^\p{Hebrew}(?&lt;!\p{Pf})$" datafile="All_good" grepcount="133"/>
    228 <grepcase regexp="^[\p{Arabic}\p{S}]$" datafile="All_good" grepcount="8228"/>
    229 <grepcase regexp="^\p{Syriac}(?&lt;!\p{Sc})$" datafile="All_good" grepcount="88"/>
    230 <grepcase regexp="^[\p{Thaana}\p{Lm}]$" datafile="All_good" grepcount="300"/>
    231 <grepcase regexp="^[\p{Devanagari}\p{Lt}]$" datafile="All_good" grepcount="185"/>
    232 <grepcase regexp="^\p{Bengali}(?&lt;=\p{Co})$" datafile="All_good" grepcount="0"/>
    233 <grepcase regexp="^[\p{Gurmukhi}\p{No}]$" datafile="All_good" grepcount="755"/>
    234 <grepcase regexp="^\p{Gujarati}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
    235 <grepcase regexp="^\p{Oriya}(?&lt;=\p{Nd})$" datafile="All_good" grepcount="10"/>
    236 <grepcase regexp="^\p{Tamil}(?&lt;=\p{Cn})$" datafile="All_good" grepcount="0"/>
    237 <grepcase regexp="^\p{Telugu}(?&lt;!\p{Mn})$" datafile="All_good" grepcount="81"/>
    238 <grepcase regexp="^[\p{Kannada}\p{C}]$" datafile="All_good" grepcount="975580"/>
    239 <grepcase regexp="^\p{Malayalam}(?&lt;=\p{Z})$" datafile="All_good" grepcount="0"/>
    240 <grepcase regexp="^\p{Sinhala}(?&lt;!\p{Co})$" datafile="All_good" grepcount="110"/>
    241 <grepcase regexp="^[\p{Thai}\p{L}]$" datafile="All_good" grepcount="125122"/>
    242 <grepcase regexp="^\p{Lao}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="67"/>
    243 <grepcase regexp="^\p{Tibetan}(?&lt;!\p{Sk})$" datafile="All_good" grepcount="207"/>
    244 <grepcase regexp="^\p{Myanmar}(?&lt;=\p{Ps})$" datafile="All_good" grepcount="0"/>
    245 <grepcase regexp="^[\p{Georgian}\p{Mc}]$" datafile="All_good" grepcount="528"/>
    246 <grepcase regexp="^\p{Hangul}(?&lt;!\p{S})$" datafile="All_good" grepcount="11677"/>
    247 <grepcase regexp="^\p{Ethiopic}(?&lt;!\p{Lo})$" datafile="All_good" grepcount="42"/>
    248 <grepcase regexp="^[\p{Cherokee}\p{Cn}]$" datafile="All_good" grepcount="838013"/>
    249 <grepcase regexp="^\p{Canadian_Aboriginal}(?&lt;!\p{Ll})$" datafile="All_good" grepcount="710"/>
    250 <grepcase regexp="^[\p{Ogham}\p{Ps}]$" datafile="All_good" grepcount="103"/>
    251 <grepcase regexp="^\p{Runic}(?&lt;!\p{S})$" datafile="All_good" grepcount="86"/>
    252 <grepcase regexp="^[\p{Khmer}\p{Z}]$" datafile="All_good" grepcount="163"/>
    253 <grepcase regexp="^[\p{Mongolian}\p{P}]$" datafile="All_good" grepcount="915"/>
    254 <grepcase regexp="^[\p{Hiragana}\p{Pf}]$" datafile="All_good" grepcount="386"/>
    255 <grepcase regexp="^\p{Katakana}(?&lt;!\p{So})$" datafile="All_good" grepcount="165"/>
    256 <grepcase regexp="^\p{Bopomofo}(?&lt;=\p{Cc})$" datafile="All_good" grepcount="0"/>
    257 <grepcase regexp="^[\p{Han}\p{M}]$" datafile="All_good" grepcount="91405"/>
    258 <grepcase regexp="^\p{Yi}(?&lt;!\p{Cs})$" datafile="All_good" grepcount="1220"/>
    259 <grepcase regexp="^\p{Old_Italic}(?&lt;=\p{No})$" datafile="All_good" grepcount="4"/>
    260 <grepcase regexp="^\p{Gothic}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="27"/>
    261 <grepcase regexp="^\p{Deseret}(?&lt;!\p{Zl})$" datafile="All_good" grepcount="80"/>
    262 <grepcase regexp="^[\p{Inherited}\p{L}]$" datafile="All_good" grepcount="125661"/>
    263 <grepcase regexp="^[\p{Tagalog}\p{Mc}]$" datafile="All_good" grepcount="421"/>
    264 <grepcase regexp="^[\p{Hanunoo}\p{Ps}]$" datafile="All_good" grepcount="96"/>
    265 <grepcase regexp="^\p{Buhid}(?&lt;!\p{P})$" datafile="All_good" grepcount="20"/>
    266 <grepcase regexp="^[\p{Tagbanwa}\p{Pf}]$" datafile="All_good" grepcount="28"/>
    267 <grepcase regexp="^\p{Limbu}(?&lt;=\p{N})$" datafile="All_good" grepcount="10"/>
    268 <grepcase regexp="^\p{Tai_Le}(?&lt;!\p{Pd})$" datafile="All_good" grepcount="35"/>
    269 <grepcase regexp="^\p{Linear_B}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
    270 <grepcase regexp="^\p{Ugaritic}(?&lt;=\p{Z})$" datafile="All_good" grepcount="0"/>
    271 <grepcase regexp="^\p{Shavian}(?&lt;=\p{Zs})$" datafile="All_good" grepcount="0"/>
    272 <grepcase regexp="^\p{Osmanya}(?&lt;!\p{Nl})$" datafile="All_good" grepcount="40"/>
    273 <grepcase regexp="^[\p{Cypriot}\p{Zs}]$" datafile="All_good" grepcount="72"/>
    274 <grepcase regexp="^\p{Braille}(?&lt;=\p{Sc})$" datafile="All_good" grepcount="0"/>
    275 <grepcase regexp="^\p{Buginese}(?&lt;=\p{Sm})$" datafile="All_good" grepcount="0"/>
    276 <grepcase regexp="^[\p{Coptic}\p{Nl}]$" datafile="All_good" grepcount="373"/>
    277 <grepcase regexp="^\p{New_Tai_Lue}(?&lt;!\p{Pd})$" datafile="All_good" grepcount="83"/>
    278 <grepcase regexp="^[\p{Glagolitic}\p{Ll}]$" datafile="All_good" grepcount="2148"/>
    279 <grepcase regexp="^\p{Tifinagh}(?&lt;!\p{LC})$" datafile="All_good" grepcount="59"/>
    280 <grepcase regexp="^\p{Syloti_Nagri}(?&lt;=\p{Lo})$" datafile="All_good" grepcount="32"/>
    281 <grepcase regexp="^\p{Old_Persian}(?&lt;!\p{Lo})$" datafile="All_good" grepcount="6"/>
    282 <grepcase regexp="^\p{Kharoshthi}(?&lt;!\p{Nd})$" datafile="All_good" grepcount="65"/>
    283 <grepcase regexp="^\p{Balinese}(?&lt;!\p{Ps})$" datafile="All_good" grepcount="121"/>
    284 <grepcase regexp="^\p{Cuneiform}(?&lt;!\p{N})$" datafile="All_good" grepcount="1123"/>
    285 <grepcase regexp="^[\p{Phoenician}\p{Lt}]$" datafile="All_good" grepcount="60"/>
    286 <grepcase regexp="^\p{Phags_Pa}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="56"/>
    287 <grepcase regexp="^\p{Nko}(?&lt;=\p{No})$" datafile="All_good" grepcount="0"/>
    288 <grepcase regexp="^[\p{Sundanese}\p{Zp}]$" datafile="All_good" grepcount="72"/>
    289 <grepcase regexp="^\p{Lepcha}(?&lt;!\p{Pi})$" datafile="All_good" grepcount="74"/>
    290 <grepcase regexp="^\p{Ol_Chiki}(?&lt;=\p{Cc})$" datafile="All_good" grepcount="0"/>
    291 <grepcase regexp="^[\p{Vai}\p{Ll}]$" datafile="All_good" grepcount="2363"/>
    292 <grepcase regexp="^\p{Saurashtra}(?&lt;=\p{No})$" datafile="All_good" grepcount="0"/>
    293 <grepcase regexp="^[\p{Kayah_Li}\p{No}]$" datafile="All_good" grepcount="723"/>
    294 <grepcase regexp="^[\p{Rejang}\p{Ll}]$" datafile="All_good" grepcount="2100"/>
    295 <grepcase regexp="^\p{Lycian}(?&lt;=\p{Lu})$" datafile="All_good" grepcount="0"/>
    296 <grepcase regexp="^\p{Carian}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
    297 <grepcase regexp="^\p{Lydian}(?&lt;=\p{Lu})$" datafile="All_good" grepcount="0"/>
    298 <grepcase regexp="^\p{Cham}(?&lt;!\p{Nl})$" datafile="All_good" grepcount="83"/>
    299 <grepcase regexp="^\p{Tai_Tham}(?&lt;=\p{Mc})$" datafile="All_good" grepcount="11"/>
    300 <grepcase regexp="^\p{Tai_Viet}(?&lt;!\p{S})$" datafile="All_good" grepcount="72"/>
    301 <grepcase regexp="^\p{Avestan}(?&lt;!\p{Nl})$" datafile="All_good" grepcount="61"/>
    302 <grepcase regexp="^[\p{Egyptian_Hieroglyphs}\p{Mn}]$" datafile="All_good" grepcount="2834"/>
    303 <grepcase regexp="^\p{Samaritan}(?&lt;!\p{No})$" datafile="All_good" grepcount="61"/>
    304 <grepcase regexp="^[\p{Lisu}\p{Cs}]$" datafile="All_good" grepcount="48"/>
    305 <grepcase regexp="^[\p{Bamum}\p{Cs}]$" datafile="All_good" grepcount="657"/>
    306 <grepcase regexp="^\p{Javanese}(?&lt;=\p{L})$" datafile="All_good" grepcount="47"/>
    307 <grepcase regexp="^\p{Meetei_Mayek}(?&lt;=\p{C})$" datafile="All_good" grepcount="0"/>
    308 <grepcase regexp="^\p{Imperial_Aramaic}(?&lt;=\p{Co})$" datafile="All_good" grepcount="0"/>
    309 <grepcase regexp="^[\p{Old_South_Arabian}\p{Sk}]$" datafile="All_good" grepcount="153"/>
    310 <grepcase regexp="^[\p{Inscriptional_Parthian}\p{Ps}]$" datafile="All_good" grepcount="105"/>
    311 <grepcase regexp="^\p{Inscriptional_Pahlavi}(?&lt;!\p{P})$" datafile="All_good" grepcount="27"/>
    312 <grepcase regexp="^[\p{Old_Turkic}\p{Cf}]$" datafile="All_good" grepcount="224"/>
    313 <grepcase regexp="^\p{Kaithi}(?&lt;=\p{Sk})$" datafile="All_good" grepcount="0"/>
    314 <grepcase regexp="^\p{Batak}(?&lt;!\p{LC})$" datafile="All_good" grepcount="56"/>
    315 <grepcase regexp="^[\p{Brahmi}\p{Cf}]$" datafile="All_good" grepcount="260"/>
    316 <grepcase regexp="^\p{Mandaic}(?&lt;=\p{Ps})$" datafile="All_good" grepcount="0"/>
    317 <grepcase regexp="^[\p{Chakma}\p{So}]$" datafile="All_good" grepcount="5922"/>
    318 <grepcase regexp="^[\p{Meroitic_Cursive}\p{No}]$" datafile="All_good" grepcount="702"/>
    319 <grepcase regexp="^\p{Meroitic_Hieroglyphs}(?&lt;=\p{Pd})$" datafile="All_good" grepcount="0"/>
    320 <grepcase regexp="^\p{Miao}(?&lt;!\p{S})$" datafile="All_good" grepcount="133"/>
    321 <grepcase regexp="^\p{Sharada}(?&lt;=\p{Cc})$" datafile="All_good" grepcount="0"/>
    322 <grepcase regexp="^\p{Sora_Sompeng}(?&lt;!\p{Me})$" datafile="All_good" grepcount="35"/>
    323 <grepcase regexp="^\p{Takri}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="66"/>
    324 <grepcase regexp="^[\p{Caucasian_Albanian}\p{Nl}]$" datafile="All_good" grepcount="289"/>
    325 <grepcase regexp="^[\p{Bassa_Vah}\p{Po}]$" datafile="All_good" grepcount="601"/>
    326 <grepcase regexp="^[\p{Duployan}\p{Po}]$" datafile="All_good" grepcount="708"/>
    327 <grepcase regexp="^\p{Elbasan}(?&lt;=\p{Ll})$" datafile="All_good" grepcount="0"/>
    328 <grepcase regexp="^[\p{Grantha}\p{Cf}]$" datafile="All_good" grepcount="236"/>
    329 <grepcase regexp="^\p{Pahawh_Hmong}(?&lt;!\p{Lt})$" datafile="All_good" grepcount="127"/>
    330 <grepcase regexp="^[\p{Khojki}\p{Ps}]$" datafile="All_good" grepcount="137"/>
    331 <grepcase regexp="^\p{Linear_A}(?&lt;!\p{Cn})$" datafile="All_good" grepcount="341"/>
    332 <grepcase regexp="^[\p{Mahajani}\p{Zl}]$" datafile="All_good" grepcount="39"/>
    333 <grepcase regexp="^[\p{Manichaean}\p{Mc}]$" datafile="All_good" grepcount="452"/>
    334 <grepcase regexp="^\p{Mende_Kikakui}(?&lt;=\p{Ll})$" datafile="All_good" grepcount="0"/>
    335 <grepcase regexp="^[\p{Modi}\p{Lm}]$" datafile="All_good" grepcount="329"/>
    336 <grepcase regexp="^\p{Mro}(?&lt;!\p{Lo})$" datafile="All_good" grepcount="12"/>
    337 <grepcase regexp="^\p{Old_North_Arabian}(?&lt;=\p{Pf})$" datafile="All_good" grepcount="0"/>
    338 <grepcase regexp="^[\p{Nabataean}\p{Cf}]$" datafile="All_good" grepcount="191"/>
    339 <grepcase regexp="^\p{Palmyrene}(?&lt;=\p{Me})$" datafile="All_good" grepcount="0"/>
    340 <grepcase regexp="^[\p{Pau_Cin_Hau}\p{Sc}]$" datafile="All_good" grepcount="111"/>
    341 <grepcase regexp="^\p{Old_Permic}(?&lt;!\p{Sc})$" datafile="All_good" grepcount="43"/>
    342 <grepcase regexp="^\p{Psalter_Pahlavi}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="29"/>
    343 <grepcase regexp="^\p{Siddham}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="92"/>
    344 <grepcase regexp="^\p{Khudawadi}(?&lt;!\p{Nl})$" datafile="All_good" grepcount="69"/>
    345 <grepcase regexp="^\p{Tirhuta}(?&lt;!\p{Sk})$" datafile="All_good" grepcount="82"/>
    346 <grepcase regexp="^\p{Warang_Citi}(?&lt;=\p{Lu})$" datafile="All_good" grepcount="32"/>
    347 <grepcase regexp="^\p{Ahom}(?&lt;=\p{Pf})$" datafile="All_good" grepcount="0"/>
    348 <grepcase regexp="^[\p{Anatolian_Hieroglyphs}\p{Mn}]$" datafile="All_good" grepcount="2346"/>
    349 <grepcase regexp="^\p{Hatran}(?&lt;=\p{Co})$" datafile="All_good" grepcount="0"/>
    350 <grepcase regexp="^\p{Multani}(?&lt;=\p{Zs})$" datafile="All_good" grepcount="0"/>
    351 <grepcase regexp="^\p{Old_Hungarian}(?&lt;!\p{Pd})$" datafile="All_good" grepcount="108"/>
    352 <grepcase regexp="^[\p{SignWriting}\p{Nl}]$" datafile="All_good" grepcount="908"/>
    353 <grepcase regexp="^\p{Adlam}(?&lt;=\p{Zs})$" datafile="All_good" grepcount="0"/>
    354 <grepcase regexp="^\p{Bhaiksuki}(?&lt;!\p{Ps})$" datafile="All_good" grepcount="97"/>
    355 <grepcase regexp="^\p{Marchen}(?&lt;=\p{Pi})$" datafile="All_good" grepcount="0"/>
    356 <grepcase regexp="^\p{Newa}(?&lt;=\p{Mc})$" datafile="All_good" grepcount="6"/>
    357 <grepcase regexp="^\p{Osage}(?&lt;!\p{Ps})$" datafile="All_good" grepcount="72"/>
    358 <grepcase regexp="^\p{Tangut}(?&lt;!\p{Pe})$" datafile="All_good" grepcount="6881"/>
    359 <grepcase regexp="^\p{Masaram_Gondi}(?&lt;=\p{Z})$" datafile="All_good" grepcount="0"/>
    360 <grepcase regexp="^\p{Nushu}(?&lt;!\p{Zp})$" datafile="All_good" grepcount="397"/>
    361 <grepcase regexp="^[\p{Soyombo}\p{Pd}]$" datafile="All_good" grepcount="104"/>
    362 <grepcase regexp="^\p{Zanabazar_Square}(?&lt;!\p{Nd})$" datafile="All_good" grepcount="72"/>
    363 <grepcase regexp="^\p{Katakana_Or_Hiragana}(?&lt;!\p{C})$" datafile="All_good" grepcount="0"/>
     2    <grepcase regexp="^\P{Cn}$" datafile="All_good" grepcount="274872"/>
     3    <grepcase regexp="^\P{Lu}$" datafile="All_good" grepcount="1110248"/>
     4    <grepcase regexp="^\p{Ll}$" datafile="All_good" grepcount="2145"/>
     5    <grepcase regexp="^\p{Lt}$" datafile="All_good" grepcount="31"/>
     6    <grepcase regexp="^\p{Lm}$" datafile="All_good" grepcount="250"/>
     7    <grepcase regexp="^\p{Lo}$" datafile="All_good" grepcount="121212"/>
     8    <grepcase regexp="^\p{Mn}$" datafile="All_good" grepcount="1805"/>
     9    <grepcase regexp="^\p{Me}$" datafile="All_good" grepcount="13"/>
     10    <grepcase regexp="^\p{Mc}$" datafile="All_good" grepcount="415"/>
     11    <grepcase regexp="^\p{Nd}$" datafile="All_good" grepcount="610"/>
     12    <grepcase regexp="^\p{Nl}$" datafile="All_good" grepcount="236"/>
     13    <grepcase regexp="^\p{No}$" datafile="All_good" grepcount="807"/>
     14    <grepcase regexp="^\P{Zs}$" datafile="All_good" grepcount="1112012"/>
     15    <grepcase regexp="^\P{Zl}$" datafile="All_good" grepcount="1112029"/>
     16    <grepcase regexp="^\p{Zp}$" datafile="All_good" grepcount="0"/>
     17    <grepcase regexp="^\p{Cc}$" datafile="All_good" grepcount="32"/>
     18    <grepcase regexp="^\p{Cf}$" datafile="All_good" grepcount="152"/>
     19    <grepcase regexp="^\p{Co}$" datafile="All_good" grepcount="137468"/>
     20    <grepcase regexp="^\p{Cs}$" datafile="All_good" grepcount="0"/>
     21    <grepcase regexp="^\P{Pd}$" datafile="All_good" grepcount="1112005"/>
     22    <grepcase regexp="^\p{Ps}$" datafile="All_good" grepcount="75"/>
     23    <grepcase regexp="^\p{Pe}$" datafile="All_good" grepcount="73"/>
     24    <grepcase regexp="^\p{Pc}$" datafile="All_good" grepcount="10"/>
     25    <grepcase regexp="^\P{Po}$" datafile="All_good" grepcount="1111445"/>
     26    <grepcase regexp="^\p{Sm}$" datafile="All_good" grepcount="948"/>
     27    <grepcase regexp="^\p{Sc}$" datafile="All_good" grepcount="57"/>
     28    <grepcase regexp="^\p{Sk}$" datafile="All_good" grepcount="121"/>
     29    <grepcase regexp="^\p{So}$" datafile="All_good" grepcount="5984"/>
     30    <grepcase regexp="^\p{Pi}$" datafile="All_good" grepcount="12"/>
     31    <grepcase regexp="^\p{Pf}$" datafile="All_good" grepcount="10"/>
     32    <grepcase regexp="^\p{C}$" datafile="All_good" grepcount="974809"/>
     33    <grepcase regexp="^\p{L}$" datafile="All_good" grepcount="125419"/>
     34    <grepcase regexp="^\p{LC}$" datafile="All_good" grepcount="3957"/>
     35    <grepcase regexp="^\p{M}$" datafile="All_good" grepcount="2233"/>
     36    <grepcase regexp="^\p{N}$" datafile="All_good" grepcount="1653"/>
     37    <grepcase regexp="^\p{P}$" datafile="All_good" grepcount="788"/>
     38    <grepcase regexp="^\p{S}$" datafile="All_good" grepcount="7110"/>
     39    <grepcase regexp="^\P{Z}$" datafile="All_good" grepcount="1112012"/>
     40    <grepcase regexp="^\p{Unknown}$" datafile="All_good" grepcount="974625"/>
     41    <grepcase regexp="^\p{Common}$" datafile="All_good" grepcount="7556"/>
     42    <grepcase regexp="^\p{Latin}$" datafile="All_good" grepcount="1353"/>
     43    <grepcase regexp="^\p{Greek}$" datafile="All_good" grepcount="518"/>
     44    <grepcase regexp="^\p{Cyrillic}$" datafile="All_good" grepcount="443"/>
     45    <grepcase regexp="^\p{Armenian}$" datafile="All_good" grepcount="95"/>
     46    <grepcase regexp="^\p{Hebrew}$" datafile="All_good" grepcount="134"/>
     47    <grepcase regexp="^\p{Arabic}$" datafile="All_good" grepcount="1281"/>
     48    <grepcase regexp="^\p{Syriac}$" datafile="All_good" grepcount="88"/>
     49    <grepcase regexp="^\p{Thaana}$" datafile="All_good" grepcount="50"/>
     50    <grepcase regexp="^\p{Devanagari}$" datafile="All_good" grepcount="156"/>
     51    <grepcase regexp="^\p{Bengali}$" datafile="All_good" grepcount="96"/>
     52    <grepcase regexp="^\P{Gurmukhi}$" datafile="All_good" grepcount="1111949"/>
     53    <grepcase regexp="^\p{Gujarati}$" datafile="All_good" grepcount="91"/>
     54    <grepcase regexp="^\p{Oriya}$" datafile="All_good" grepcount="90"/>
     55    <grepcase regexp="^\p{Tamil}$" datafile="All_good" grepcount="72"/>
     56    <grepcase regexp="^\p{Telugu}$" datafile="All_good" grepcount="97"/>
     57    <grepcase regexp="^\p{Kannada}$" datafile="All_good" grepcount="89"/>
     58    <grepcase regexp="^\p{Malayalam}$" datafile="All_good" grepcount="117"/>
     59    <grepcase regexp="^\p{Sinhala}$" datafile="All_good" grepcount="110"/>
     60    <grepcase regexp="^\p{Thai}$" datafile="All_good" grepcount="86"/>
     61    <grepcase regexp="^\p{Lao}$" datafile="All_good" grepcount="67"/>
     62    <grepcase regexp="^\p{Tibetan}$" datafile="All_good" grepcount="207"/>
     63    <grepcase regexp="^\p{Myanmar}$" datafile="All_good" grepcount="223"/>
     64    <grepcase regexp="^\p{Georgian}$" datafile="All_good" grepcount="173"/>
     65    <grepcase regexp="^\p{Hangul}$" datafile="All_good" grepcount="11739"/>
     66    <grepcase regexp="^\p{Ethiopic}$" datafile="All_good" grepcount="495"/>
     67    <grepcase regexp="^\p{Cherokee}$" datafile="All_good" grepcount="172"/>
     68    <grepcase regexp="^\p{Canadian_Aboriginal}$" datafile="All_good" grepcount="710"/>
     69    <grepcase regexp="^\p{Ogham}$" datafile="All_good" grepcount="29"/>
     70    <grepcase regexp="^\p{Runic}$" datafile="All_good" grepcount="86"/>
     71    <grepcase regexp="^\p{Khmer}$" datafile="All_good" grepcount="146"/>
     72    <grepcase regexp="^\p{Mongolian}$" datafile="All_good" grepcount="167"/>
     73    <grepcase regexp="^\p{Hiragana}$" datafile="All_good" grepcount="376"/>
     74    <grepcase regexp="^\p{Katakana}$" datafile="All_good" grepcount="300"/>
     75    <grepcase regexp="^\p{Bopomofo}$" datafile="All_good" grepcount="72"/>
     76    <grepcase regexp="^\p{Han}$" datafile="All_good" grepcount="89233"/>
     77    <grepcase regexp="^\p{Yi}$" datafile="All_good" grepcount="1220"/>
     78    <grepcase regexp="^\p{Old_Italic}$" datafile="All_good" grepcount="39"/>
     79    <grepcase regexp="^\p{Gothic}$" datafile="All_good" grepcount="27"/>
     80    <grepcase regexp="^\p{Deseret}$" datafile="All_good" grepcount="80"/>
     81    <grepcase regexp="^\p{Inherited}$" datafile="All_good" grepcount="569"/>
     82    <grepcase regexp="^\p{Tagalog}$" datafile="All_good" grepcount="20"/>
     83    <grepcase regexp="^\p{Hanunoo}$" datafile="All_good" grepcount="21"/>
     84    <grepcase regexp="^\p{Buhid}$" datafile="All_good" grepcount="20"/>
     85    <grepcase regexp="^\p{Tagbanwa}$" datafile="All_good" grepcount="18"/>
     86    <grepcase regexp="^\p{Limbu}$" datafile="All_good" grepcount="68"/>
     87    <grepcase regexp="^\p{Tai_Le}$" datafile="All_good" grepcount="35"/>
     88    <grepcase regexp="^\p{Linear_B}$" datafile="All_good" grepcount="211"/>
     89    <grepcase regexp="^\P{Ugaritic}$" datafile="All_good" grepcount="1111998"/>
     90    <grepcase regexp="^\p{Shavian}$" datafile="All_good" grepcount="48"/>
     91    <grepcase regexp="^\p{Osmanya}$" datafile="All_good" grepcount="40"/>
     92    <grepcase regexp="^\p{Cypriot}$" datafile="All_good" grepcount="55"/>
     93    <grepcase regexp="^\p{Braille}$" datafile="All_good" grepcount="256"/>
     94    <grepcase regexp="^\p{Buginese}$" datafile="All_good" grepcount="30"/>
     95    <grepcase regexp="^\p{Coptic}$" datafile="All_good" grepcount="137"/>
     96    <grepcase regexp="^\p{New_Tai_Lue}$" datafile="All_good" grepcount="83"/>
     97    <grepcase regexp="^\P{Glagolitic}$" datafile="All_good" grepcount="1111897"/>
     98    <grepcase regexp="^\p{Tifinagh}$" datafile="All_good" grepcount="59"/>
     99    <grepcase regexp="^\P{Syloti_Nagri}$" datafile="All_good" grepcount="1111985"/>
     100    <grepcase regexp="^\p{Old_Persian}$" datafile="All_good" grepcount="50"/>
     101    <grepcase regexp="^\p{Kharoshthi}$" datafile="All_good" grepcount="68"/>
     102    <grepcase regexp="^\p{Balinese}$" datafile="All_good" grepcount="121"/>
     103    <grepcase regexp="^\P{Cuneiform}$" datafile="All_good" grepcount="1110795"/>
     104    <grepcase regexp="^\p{Phoenician}$" datafile="All_good" grepcount="29"/>
     105    <grepcase regexp="^\p{Phags_Pa}$" datafile="All_good" grepcount="56"/>
     106    <grepcase regexp="^\p{Nko}$" datafile="All_good" grepcount="62"/>
     107    <grepcase regexp="^\p{Sundanese}$" datafile="All_good" grepcount="72"/>
     108    <grepcase regexp="^\p{Lepcha}$" datafile="All_good" grepcount="74"/>
     109    <grepcase regexp="^\p{Ol_Chiki}$" datafile="All_good" grepcount="48"/>
     110    <grepcase regexp="^\p{Vai}$" datafile="All_good" grepcount="300"/>
     111    <grepcase regexp="^\p{Saurashtra}$" datafile="All_good" grepcount="82"/>
     112    <grepcase regexp="^\p{Kayah_Li}$" datafile="All_good" grepcount="47"/>
     113    <grepcase regexp="^\p{Rejang}$" datafile="All_good" grepcount="37"/>
     114    <grepcase regexp="^\p{Lycian}$" datafile="All_good" grepcount="29"/>
     115    <grepcase regexp="^\p{Carian}$" datafile="All_good" grepcount="49"/>
     116    <grepcase regexp="^\P{Lydian}$" datafile="All_good" grepcount="1112002"/>
     117    <grepcase regexp="^\p{Cham}$" datafile="All_good" grepcount="83"/>
     118    <grepcase regexp="^\p{Tai_Tham}$" datafile="All_good" grepcount="127"/>
     119    <grepcase regexp="^\p{Tai_Viet}$" datafile="All_good" grepcount="72"/>
     120    <grepcase regexp="^\p{Avestan}$" datafile="All_good" grepcount="61"/>
     121    <grepcase regexp="^\p{Egyptian_Hieroglyphs}$" datafile="All_good" grepcount="1071"/>
     122    <grepcase regexp="^\P{Samaritan}$" datafile="All_good" grepcount="1111968"/>
     123    <grepcase regexp="^\p{Lisu}$" datafile="All_good" grepcount="48"/>
     124    <grepcase regexp="^\p{Bamum}$" datafile="All_good" grepcount="657"/>
     125    <grepcase regexp="^\p{Javanese}$" datafile="All_good" grepcount="90"/>
     126    <grepcase regexp="^\p{Meetei_Mayek}$" datafile="All_good" grepcount="79"/>
     127    <grepcase regexp="^\P{Imperial_Aramaic}$" datafile="All_good" grepcount="1111998"/>
     128    <grepcase regexp="^\p{Old_South_Arabian}$" datafile="All_good" grepcount="32"/>
     129    <grepcase regexp="^\p{Inscriptional_Parthian}$" datafile="All_good" grepcount="30"/>
     130    <grepcase regexp="^\p{Inscriptional_Pahlavi}$" datafile="All_good" grepcount="27"/>
     131    <grepcase regexp="^\p{Old_Turkic}$" datafile="All_good" grepcount="73"/>
     132    <grepcase regexp="^\p{Kaithi}$" datafile="All_good" grepcount="67"/>
     133    <grepcase regexp="^\p{Batak}$" datafile="All_good" grepcount="56"/>
     134    <grepcase regexp="^\P{Brahmi}$" datafile="All_good" grepcount="1111920"/>
     135    <grepcase regexp="^\p{Mandaic}$" datafile="All_good" grepcount="29"/>
     136    <grepcase regexp="^\P{Chakma}$" datafile="All_good" grepcount="1111959"/>
     137    <grepcase regexp="^\p{Meroitic_Cursive}$" datafile="All_good" grepcount="90"/>
     138    <grepcase regexp="^\p{Meroitic_Hieroglyphs}$" datafile="All_good" grepcount="32"/>
     139    <grepcase regexp="^\p{Miao}$" datafile="All_good" grepcount="133"/>
     140    <grepcase regexp="^\p{Sharada}$" datafile="All_good" grepcount="94"/>
     141    <grepcase regexp="^\P{Sora_Sompeng}$" datafile="All_good" grepcount="1111994"/>
     142    <grepcase regexp="^\p{Takri}$" datafile="All_good" grepcount="66"/>
     143    <grepcase regexp="^\p{Caucasian_Albanian}$" datafile="All_good" grepcount="53"/>
     144    <grepcase regexp="^\P{Bassa_Vah}$" datafile="All_good" grepcount="1111993"/>
     145    <grepcase regexp="^\p{Duployan}$" datafile="All_good" grepcount="143"/>
     146    <grepcase regexp="^\p{Elbasan}$" datafile="All_good" grepcount="40"/>
     147    <grepcase regexp="^\p{Grantha}$" datafile="All_good" grepcount="85"/>
     148    <grepcase regexp="^\p{Pahawh_Hmong}$" datafile="All_good" grepcount="127"/>
     149    <grepcase regexp="^\p{Khojki}$" datafile="All_good" grepcount="62"/>
     150    <grepcase regexp="^\p{Linear_A}$" datafile="All_good" grepcount="341"/>
     151    <grepcase regexp="^\p{Mahajani}$" datafile="All_good" grepcount="39"/>
     152    <grepcase regexp="^\p{Manichaean}$" datafile="All_good" grepcount="51"/>
     153    <grepcase regexp="^\p{Mende_Kikakui}$" datafile="All_good" grepcount="213"/>
     154    <grepcase regexp="^\p{Modi}$" datafile="All_good" grepcount="79"/>
     155    <grepcase regexp="^\p{Mro}$" datafile="All_good" grepcount="43"/>
     156    <grepcase regexp="^\p{Old_North_Arabian}$" datafile="All_good" grepcount="32"/>
     157    <grepcase regexp="^\p{Nabataean}$" datafile="All_good" grepcount="40"/>
     158    <grepcase regexp="^\p{Palmyrene}$" datafile="All_good" grepcount="32"/>
     159    <grepcase regexp="^\p{Pau_Cin_Hau}$" datafile="All_good" grepcount="57"/>
     160    <grepcase regexp="^\p{Old_Permic}$" datafile="All_good" grepcount="43"/>
     161    <grepcase regexp="^\p{Psalter_Pahlavi}$" datafile="All_good" grepcount="29"/>
     162    <grepcase regexp="^\p{Siddham}$" datafile="All_good" grepcount="92"/>
     163    <grepcase regexp="^\P{Khudawadi}$" datafile="All_good" grepcount="1111960"/>
     164    <grepcase regexp="^\p{Tirhuta}$" datafile="All_good" grepcount="82"/>
     165    <grepcase regexp="^\p{Warang_Citi}$" datafile="All_good" grepcount="84"/>
     166    <grepcase regexp="^\p{Ahom}$" datafile="All_good" grepcount="58"/>
     167    <grepcase regexp="^\p{Anatolian_Hieroglyphs}$" datafile="All_good" grepcount="583"/>
     168    <grepcase regexp="^\p{Hatran}$" datafile="All_good" grepcount="26"/>
     169    <grepcase regexp="^\p{Multani}$" datafile="All_good" grepcount="38"/>
     170    <grepcase regexp="^\p{Old_Hungarian}$" datafile="All_good" grepcount="108"/>
     171    <grepcase regexp="^\p{SignWriting}$" datafile="All_good" grepcount="672"/>
     172    <grepcase regexp="^\p{Adlam}$" datafile="All_good" grepcount="87"/>
     173    <grepcase regexp="^\P{Bhaiksuki}$" datafile="All_good" grepcount="1111932"/>
     174    <grepcase regexp="^\p{Marchen}$" datafile="All_good" grepcount="68"/>
     175    <grepcase regexp="^\p{Newa}$" datafile="All_good" grepcount="93"/>
     176    <grepcase regexp="^\p{Osage}$" datafile="All_good" grepcount="72"/>
     177    <grepcase regexp="^\p{Tangut}$" datafile="All_good" grepcount="6886"/>
     178    <grepcase regexp="^\p{Masaram_Gondi}$" datafile="All_good" grepcount="75"/>
     179    <grepcase regexp="^\p{Nushu}$" datafile="All_good" grepcount="397"/>
     180    <grepcase regexp="^\p{Soyombo}$" datafile="All_good" grepcount="81"/>
     181    <grepcase regexp="^\p{Zanabazar_Square}$" datafile="All_good" grepcount="72"/>
     182    <grepcase regexp="^\p{Dogra}$" datafile="All_good" grepcount="60"/>
     183    <grepcase regexp="^\p{Gunjala_Gondi}$" datafile="All_good" grepcount="63"/>
     184    <grepcase regexp="^\p{Makasar}$" datafile="All_good" grepcount="25"/>
     185    <grepcase regexp="^\p{Medefaidrin}$" datafile="All_good" grepcount="91"/>
     186    <grepcase regexp="^\p{Hanifi_Rohingya}$" datafile="All_good" grepcount="50"/>
     187    <grepcase regexp="^\p{Sogdian}$" datafile="All_good" grepcount="42"/>
     188    <grepcase regexp="^\p{Old_Sogdian}$" datafile="All_good" grepcount="40"/>
     189    <grepcase regexp="^\p{Katakana_Or_Hiragana}$" datafile="All_good" grepcount="0"/>
     190    <grepcase regexp="^\p{Cn}(?&lt;!\p{Inherited})$" datafile="All_good" grepcount="837157"/>
     191    <grepcase regexp="^\p{Lu}(?&lt;!\p{Kaithi})$" datafile="All_good" grepcount="1781"/>
     192    <grepcase regexp="^\p{Ll}(?&lt;!\p{Gurmukhi})$" datafile="All_good" grepcount="2145"/>
     193    <grepcase regexp="^\p{Lt}(?&lt;!\p{Khmer})$" datafile="All_good" grepcount="31"/>
     194    <grepcase regexp="^[\p{Lm}\p{Imperial_Aramaic}]$" datafile="All_good" grepcount="281"/>
     195    <grepcase regexp="^\p{Lo}(?&lt;=\p{Hanunoo})$" datafile="All_good" grepcount="18"/>
     196    <grepcase regexp="^\p{Mn}(?&lt;!\p{Kannada})$" datafile="All_good" grepcount="1797"/>
     197    <grepcase regexp="^[\p{Me}\p{Phoenician}]$" datafile="All_good" grepcount="42"/>
     198    <grepcase regexp="^\p{Mc}(?&lt;=\p{Ogham})$" datafile="All_good" grepcount="0"/>
     199    <grepcase regexp="^\p{Nd}(?&lt;=\p{Devanagari})$" datafile="All_good" grepcount="10"/>
     200    <grepcase regexp="^\p{Nl}(?&lt;!\p{Saurashtra})$" datafile="All_good" grepcount="236"/>
     201    <grepcase regexp="^\p{No}(?&lt;!\p{Hangul})$" datafile="All_good" grepcount="807"/>
     202    <grepcase regexp="^\p{Zs}(?&lt;!\p{Brahmi})$" datafile="All_good" grepcount="17"/>
     203    <grepcase regexp="^[\p{Zl}\p{Tagbanwa}]$" datafile="All_good" grepcount="18"/>
     204    <grepcase regexp="^\p{Zp}(?&lt;=\p{Yi})$" datafile="All_good" grepcount="0"/>
     205    <grepcase regexp="^\p{Cc}(?&lt;=\p{Glagolitic})$" datafile="All_good" grepcount="0"/>
     206    <grepcase regexp="^\p{Cf}(?&lt;=\p{Syloti_Nagri})$" datafile="All_good" grepcount="0"/>
     207    <grepcase regexp="^\p{Co}(?&lt;!\p{Cypriot})$" datafile="All_good" grepcount="137468"/>
     208    <grepcase regexp="^\p{Cs}(?&lt;=\p{Tifinagh})$" datafile="All_good" grepcount="0"/>
     209    <grepcase regexp="^[\p{Pd}\p{Linear_A}]$" datafile="All_good" grepcount="365"/>
     210    <grepcase regexp="^[\p{Ps}\p{Sinhala}]$" datafile="All_good" grepcount="185"/>
     211    <grepcase regexp="^\p{Pe}(?&lt;!\p{Anatolian_Hieroglyphs})$" datafile="All_good" grepcount="73"/>
     212    <grepcase regexp="^\p{Pc}(?&lt;=\p{Inherited})$" datafile="All_good" grepcount="0"/>
     213    <grepcase regexp="^[\p{Po}\p{Hanifi_Rohingya}]$" datafile="All_good" grepcount="634"/>
     214    <grepcase regexp="^\p{Sm}(?&lt;!\p{Old_Hungarian})$" datafile="All_good" grepcount="948"/>
     215    <grepcase regexp="^\p{Sc}(?&lt;!\p{Yi})$" datafile="All_good" grepcount="57"/>
     216    <grepcase regexp="^\p{Sk}(?&lt;!\p{Anatolian_Hieroglyphs})$" datafile="All_good" grepcount="121"/>
     217    <grepcase regexp="^\p{So}(?&lt;!\p{Bopomofo})$" datafile="All_good" grepcount="5984"/>
     218    <grepcase regexp="^[\p{Pi}\p{Duployan}]$" datafile="All_good" grepcount="155"/>
     219    <grepcase regexp="^\p{Pf}(?&lt;!\p{Carian})$" datafile="All_good" grepcount="10"/>
     220    <grepcase regexp="^\p{C}(?&lt;=\p{Masaram_Gondi})$" datafile="All_good" grepcount="0"/>
     221    <grepcase regexp="^[\p{L}\p{Ahom}]$" datafile="All_good" grepcount="125450"/>
     222    <grepcase regexp="^\p{LC}(?&lt;=\p{Cypriot})$" datafile="All_good" grepcount="0"/>
     223    <grepcase regexp="^\p{M}(?&lt;=\p{Tangut})$" datafile="All_good" grepcount="0"/>
     224    <grepcase regexp="^\p{N}(?&lt;=\p{Takri})$" datafile="All_good" grepcount="10"/>
     225    <grepcase regexp="^\p{P}(?&lt;!\p{Lao})$" datafile="All_good" grepcount="788"/>
     226    <grepcase regexp="^\p{S}(?&lt;=\p{Soyombo})$" datafile="All_good" grepcount="0"/>
     227    <grepcase regexp="^\p{Z}(?&lt;!\p{Old_North_Arabian})$" datafile="All_good" grepcount="17"/>
     228    <grepcase regexp="^\p{Unknown}(?&lt;!\p{P})$" datafile="All_good" grepcount="974625"/>
     229    <grepcase regexp="^\p{Common}(?&lt;=\p{Pe})$" datafile="All_good" grepcount="70"/>
     230    <grepcase regexp="^\p{Latin}(?&lt;!\p{So})$" datafile="All_good" grepcount="1353"/>
     231    <grepcase regexp="^\p{Greek}(?&lt;!\p{So})$" datafile="All_good" grepcount="430"/>
     232    <grepcase regexp="^[\p{Cyrillic}\p{Cc}]$" datafile="All_good" grepcount="475"/>
     233    <grepcase regexp="^\p{Armenian}(?&lt;!\p{Zl})$" datafile="All_good" grepcount="95"/>
     234    <grepcase regexp="^\p{Hebrew}(?&lt;!\p{Zp})$" datafile="All_good" grepcount="134"/>
     235    <grepcase regexp="^[\p{Arabic}\p{Zl}]$" datafile="All_good" grepcount="1281"/>
     236    <grepcase regexp="^\p{Syriac}(?&lt;!\p{No})$" datafile="All_good" grepcount="88"/>
     237    <grepcase regexp="^[\p{Thaana}\p{Nl}]$" datafile="All_good" grepcount="286"/>
     238    <grepcase regexp="^\p{Devanagari}(?&lt;=\p{Zl})$" datafile="All_good" grepcount="0"/>
     239    <grepcase regexp="^\p{Bengali}(?&lt;=\p{Lo})$" datafile="All_good" grepcount="55"/>
     240    <grepcase regexp="^\p{Gurmukhi}(?&lt;=\p{Lo})$" datafile="All_good" grepcount="51"/>
     241    <grepcase regexp="^\p{Gujarati}(?&lt;=\p{M})$" datafile="All_good" grepcount="26"/>
     242    <grepcase regexp="^[\p{Oriya}\p{Sk}]$" datafile="All_good" grepcount="211"/>
     243    <grepcase regexp="^\p{Tamil}(?&lt;=\p{Ll})$" datafile="All_good" grepcount="0"/>
     244    <grepcase regexp="^\p{Telugu}(?&lt;!\p{Zs})$" datafile="All_good" grepcount="97"/>
     245    <grepcase regexp="^[\p{Kannada}\p{Pd}]$" datafile="All_good" grepcount="113"/>
     246    <grepcase regexp="^\p{Malayalam}(?&lt;=\p{S})$" datafile="All_good" grepcount="2"/>
     247    <grepcase regexp="^[\p{Sinhala}\p{Co}]$" datafile="All_good" grepcount="137578"/>
     248    <grepcase regexp="^\p{Thai}(?&lt;=\p{N})$" datafile="All_good" grepcount="10"/>
     249    <grepcase regexp="^\p{Lao}(?&lt;=\p{Mn})$" datafile="All_good" grepcount="15"/>
     250    <grepcase regexp="^[\p{Tibetan}\p{Pc}]$" datafile="All_good" grepcount="217"/>
     251    <grepcase regexp="^\p{Myanmar}(?&lt;=\p{Pi})$" datafile="All_good" grepcount="0"/>
     252    <grepcase regexp="^\p{Georgian}(?&lt;!\p{Me})$" datafile="All_good" grepcount="173"/>
     253    <grepcase regexp="^\p{Hangul}(?&lt;!\p{Cf})$" datafile="All_good" grepcount="11739"/>
     254    <grepcase regexp="^\p{Ethiopic}(?&lt;!\p{S})$" datafile="All_good" grepcount="485"/>
     255    <grepcase regexp="^[\p{Cherokee}\p{Mn}]$" datafile="All_good" grepcount="1977"/>
     256    <grepcase regexp="^\p{Canadian_Aboriginal}(?&lt;=\p{Pd})$" datafile="All_good" grepcount="1"/>
     257    <grepcase regexp="^\p{Ogham}(?&lt;!\p{Ps})$" datafile="All_good" grepcount="28"/>
     258    <grepcase regexp="^\p{Runic}(?&lt;=\p{Zs})$" datafile="All_good" grepcount="0"/>
     259    <grepcase regexp="^[\p{Khmer}\p{Zp}]$" datafile="All_good" grepcount="146"/>
     260    <grepcase regexp="^\p{Mongolian}(?&lt;=\p{Ll})$" datafile="All_good" grepcount="0"/>
     261    <grepcase regexp="^\p{Hiragana}(?&lt;!\p{So})$" datafile="All_good" grepcount="375"/>
     262    <grepcase regexp="^\p{Katakana}(?&lt;!\p{Lo})$" datafile="All_good" grepcount="137"/>
     263    <grepcase regexp="^[\p{Bopomofo}\p{Cs}]$" datafile="All_good" grepcount="72"/>
     264    <grepcase regexp="^[\p{Han}\p{Lt}]$" datafile="All_good" grepcount="89264"/>
     265    <grepcase regexp="^\p{Yi}(?&lt;!\p{Cs})$" datafile="All_good" grepcount="1220"/>
     266    <grepcase regexp="^\p{Old_Italic}(?&lt;!\p{Cf})$" datafile="All_good" grepcount="39"/>
     267    <grepcase regexp="^[\p{Gothic}\p{N}]$" datafile="All_good" grepcount="1678"/>
     268    <grepcase regexp="^\p{Deseret}(?&lt;!\p{Zl})$" datafile="All_good" grepcount="80"/>
     269    <grepcase regexp="^\p{Inherited}(?&lt;=\p{Sm})$" datafile="All_good" grepcount="0"/>
     270    <grepcase regexp="^\p{Tagalog}(?&lt;!\p{Lm})$" datafile="All_good" grepcount="20"/>
     271    <grepcase regexp="^\p{Hanunoo}(?&lt;=\p{Z})$" datafile="All_good" grepcount="0"/>
     272    <grepcase regexp="^\p{Buhid}(?&lt;!\p{S})$" datafile="All_good" grepcount="20"/>
     273    <grepcase regexp="^\p{Tagbanwa}(?&lt;=\p{Cs})$" datafile="All_good" grepcount="0"/>
     274    <grepcase regexp="^\p{Limbu}(?&lt;=\p{Z})$" datafile="All_good" grepcount="0"/>
     275    <grepcase regexp="^\p{Tai_Le}(?&lt;=\p{Mc})$" datafile="All_good" grepcount="0"/>
     276    <grepcase regexp="^[\p{Linear_B}\p{Lu}]$" datafile="All_good" grepcount="1992"/>
     277    <grepcase regexp="^\p{Ugaritic}(?&lt;=\p{So})$" datafile="All_good" grepcount="0"/>
     278    <grepcase regexp="^[\p{Shavian}\p{No}]$" datafile="All_good" grepcount="855"/>
     279    <grepcase regexp="^[\p{Osmanya}\p{M}]$" datafile="All_good" grepcount="2273"/>
     280    <grepcase regexp="^\p{Cypriot}(?&lt;!\p{Zl})$" datafile="All_good" grepcount="55"/>
     281    <grepcase regexp="^\p{Braille}(?&lt;=\p{Nd})$" datafile="All_good" grepcount="0"/>
     282    <grepcase regexp="^\p{Buginese}(?&lt;!\p{LC})$" datafile="All_good" grepcount="30"/>
     283    <grepcase regexp="^\p{Coptic}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="137"/>
     284    <grepcase regexp="^[\p{New_Tai_Lue}\p{Pc}]$" datafile="All_good" grepcount="93"/>
     285    <grepcase regexp="^\p{Glagolitic}(?&lt;=\p{S})$" datafile="All_good" grepcount="0"/>
     286    <grepcase regexp="^\p{Tifinagh}(?&lt;!\p{L})$" datafile="All_good" grepcount="2"/>
     287    <grepcase regexp="^\p{Syloti_Nagri}(?&lt;=\p{M})$" datafile="All_good" grepcount="8"/>
     288    <grepcase regexp="^\p{Old_Persian}(?&lt;!\p{LC})$" datafile="All_good" grepcount="50"/>
     289    <grepcase regexp="^\p{Kharoshthi}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="68"/>
     290    <grepcase regexp="^\p{Balinese}(?&lt;!\p{No})$" datafile="All_good" grepcount="121"/>
     291    <grepcase regexp="^[\p{Cuneiform}\p{Sk}]$" datafile="All_good" grepcount="1355"/>
     292    <grepcase regexp="^\p{Phoenician}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
     293    <grepcase regexp="^\p{Phags_Pa}(?&lt;!\p{Pi})$" datafile="All_good" grepcount="56"/>
     294    <grepcase regexp="^\p{Nko}(?&lt;=\p{Lm})$" datafile="All_good" grepcount="3"/>
     295    <grepcase regexp="^\p{Sundanese}(?&lt;=\p{So})$" datafile="All_good" grepcount="0"/>
     296    <grepcase regexp="^\p{Lepcha}(?&lt;=\p{Po})$" datafile="All_good" grepcount="5"/>
     297    <grepcase regexp="^[\p{Ol_Chiki}\p{Zs}]$" datafile="All_good" grepcount="65"/>
     298    <grepcase regexp="^[\p{Vai}\p{LC}]$" datafile="All_good" grepcount="4257"/>
     299    <grepcase regexp="^[\p{Saurashtra}\p{Pe}]$" datafile="All_good" grepcount="155"/>
     300    <grepcase regexp="^\p{Kayah_Li}(?&lt;!\p{Co})$" datafile="All_good" grepcount="47"/>
     301    <grepcase regexp="^[\p{Rejang}\p{Po}]$" datafile="All_good" grepcount="620"/>
     302    <grepcase regexp="^\p{Lycian}(?&lt;!\p{N})$" datafile="All_good" grepcount="29"/>
     303    <grepcase regexp="^\p{Carian}(?&lt;=\p{Lm})$" datafile="All_good" grepcount="0"/>
     304    <grepcase regexp="^\p{Lydian}(?&lt;!\p{Pe})$" datafile="All_good" grepcount="27"/>
     305    <grepcase regexp="^\p{Cham}(?&lt;=\p{Pc})$" datafile="All_good" grepcount="0"/>
     306    <grepcase regexp="^[\p{Tai_Tham}\p{Ps}]$" datafile="All_good" grepcount="202"/>
     307    <grepcase regexp="^\p{Tai_Viet}(?&lt;=\p{M})$" datafile="All_good" grepcount="9"/>
     308    <grepcase regexp="^[\p{Avestan}\p{Cs}]$" datafile="All_good" grepcount="61"/>
     309    <grepcase regexp="^\p{Egyptian_Hieroglyphs}(?&lt;=\p{Pe})$" datafile="All_good" grepcount="0"/>
     310    <grepcase regexp="^[\p{Samaritan}\p{Me}]$" datafile="All_good" grepcount="74"/>
     311    <grepcase regexp="^\p{Lisu}(?&lt;!\p{Po})$" datafile="All_good" grepcount="46"/>
     312    <grepcase regexp="^[\p{Bamum}\p{Pd}]$" datafile="All_good" grepcount="681"/>
     313    <grepcase regexp="^\p{Javanese}(?&lt;=\p{Nl})$" datafile="All_good" grepcount="0"/>
     314    <grepcase regexp="^\p{Meetei_Mayek}(?&lt;=\p{Cf})$" datafile="All_good" grepcount="0"/>
     315    <grepcase regexp="^\p{Imperial_Aramaic}(?&lt;=\p{Sc})$" datafile="All_good" grepcount="0"/>
     316    <grepcase regexp="^\p{Old_South_Arabian}(?&lt;=\p{Lo})$" datafile="All_good" grepcount="29"/>
     317    <grepcase regexp="^\p{Inscriptional_Parthian}(?&lt;!\p{Lo})$" datafile="All_good" grepcount="8"/>
     318    <grepcase regexp="^\p{Inscriptional_Pahlavi}(?&lt;=\p{P})$" datafile="All_good" grepcount="0"/>
     319    <grepcase regexp="^[\p{Old_Turkic}\p{Cs}]$" datafile="All_good" grepcount="73"/>
     320    <grepcase regexp="^\p{Kaithi}(?&lt;!\p{Cs})$" datafile="All_good" grepcount="67"/>
     321    <grepcase regexp="^[\p{Batak}\p{Ll}]$" datafile="All_good" grepcount="2201"/>
     322    <grepcase regexp="^\p{Brahmi}(?&lt;=\p{Cc})$" datafile="All_good" grepcount="0"/>
     323    <grepcase regexp="^[\p{Mandaic}\p{LC}]$" datafile="All_good" grepcount="3986"/>
     324    <grepcase regexp="^[\p{Chakma}\p{Mn}]$" datafile="All_good" grepcount="1859"/>
     325    <grepcase regexp="^\p{Meroitic_Cursive}(?&lt;!\p{Pf})$" datafile="All_good" grepcount="90"/>
     326    <grepcase regexp="^\p{Meroitic_Hieroglyphs}(?&lt;=\p{Mn})$" datafile="All_good" grepcount="0"/>
     327    <grepcase regexp="^[\p{Miao}\p{Mn}]$" datafile="All_good" grepcount="1934"/>
     328    <grepcase regexp="^[\p{Sharada}\p{Ps}]$" datafile="All_good" grepcount="169"/>
     329    <grepcase regexp="^[\p{Sora_Sompeng}\p{Lt}]$" datafile="All_good" grepcount="66"/>
     330    <grepcase regexp="^\p{Takri}(?&lt;=\p{S})$" datafile="All_good" grepcount="0"/>
     331    <grepcase regexp="^\p{Caucasian_Albanian}(?&lt;=\p{Cs})$" datafile="All_good" grepcount="0"/>
     332    <grepcase regexp="^\p{Bassa_Vah}(?&lt;=\p{Cs})$" datafile="All_good" grepcount="0"/>
     333    <grepcase regexp="^[\p{Duployan}\p{So}]$" datafile="All_good" grepcount="6126"/>
     334    <grepcase regexp="^[\p{Elbasan}\p{Pc}]$" datafile="All_good" grepcount="50"/>
     335    <grepcase regexp="^\p{Grantha}(?&lt;!\p{S})$" datafile="All_good" grepcount="85"/>
     336    <grepcase regexp="^\p{Pahawh_Hmong}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="127"/>
     337    <grepcase regexp="^\p{Khojki}(?&lt;!\p{Co})$" datafile="All_good" grepcount="62"/>
     338    <grepcase regexp="^\p{Linear_A}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="341"/>
     339    <grepcase regexp="^\p{Mahajani}(?&lt;=\p{Cs})$" datafile="All_good" grepcount="0"/>
     340    <grepcase regexp="^\p{Manichaean}(?&lt;!\p{LC})$" datafile="All_good" grepcount="51"/>
     341    <grepcase regexp="^\p{Mende_Kikakui}(?&lt;!\p{Lt})$" datafile="All_good" grepcount="213"/>
     342    <grepcase regexp="^[\p{Modi}\p{Cs}]$" datafile="All_good" grepcount="79"/>
     343    <grepcase regexp="^\p{Mro}(?&lt;=\p{Lo})$" datafile="All_good" grepcount="31"/>
     344    <grepcase regexp="^\p{Old_North_Arabian}(?&lt;!\p{Nl})$" datafile="All_good" grepcount="32"/>
     345    <grepcase regexp="^[\p{Nabataean}\p{LC}]$" datafile="All_good" grepcount="3997"/>
     346    <grepcase regexp="^\p{Palmyrene}(?&lt;!\p{N})$" datafile="All_good" grepcount="25"/>
     347    <grepcase regexp="^\p{Pau_Cin_Hau}(?&lt;=\p{Pd})$" datafile="All_good" grepcount="0"/>
     348    <grepcase regexp="^\p{Old_Permic}(?&lt;!\p{Sm})$" datafile="All_good" grepcount="43"/>
     349    <grepcase regexp="^\p{Psalter_Pahlavi}(?&lt;=\p{Zp})$" datafile="All_good" grepcount="0"/>
     350    <grepcase regexp="^\p{Siddham}(?&lt;=\p{Zl})$" datafile="All_good" grepcount="0"/>
     351    <grepcase regexp="^\p{Khudawadi}(?&lt;=\p{S})$" datafile="All_good" grepcount="0"/>
     352    <grepcase regexp="^[\p{Tirhuta}\p{L}]$" datafile="All_good" grepcount="125450"/>
     353    <grepcase regexp="^[\p{Warang_Citi}\p{Ll}]$" datafile="All_good" grepcount="2197"/>
     354    <grepcase regexp="^\p{Ahom}(?&lt;!\p{Lm})$" datafile="All_good" grepcount="58"/>
     355    <grepcase regexp="^[\p{Anatolian_Hieroglyphs}\p{Pc}]$" datafile="All_good" grepcount="593"/>
     356    <grepcase regexp="^[\p{Hatran}\p{Ps}]$" datafile="All_good" grepcount="101"/>
     357    <grepcase regexp="^\p{Multani}(?&lt;!\p{Ps})$" datafile="All_good" grepcount="38"/>
     358    <grepcase regexp="^\p{Old_Hungarian}(?&lt;!\p{Nd})$" datafile="All_good" grepcount="108"/>
     359    <grepcase regexp="^\p{SignWriting}(?&lt;=\p{P})$" datafile="All_good" grepcount="5"/>
     360    <grepcase regexp="^[\p{Adlam}\p{Pi}]$" datafile="All_good" grepcount="99"/>
     361    <grepcase regexp="^\p{Bhaiksuki}(?&lt;=\p{Cn})$" datafile="All_good" grepcount="0"/>
     362    <grepcase regexp="^\p{Marchen}(?&lt;!\p{Ll})$" datafile="All_good" grepcount="68"/>
     363    <grepcase regexp="^\p{Newa}(?&lt;=\p{Lt})$" datafile="All_good" grepcount="0"/>
     364    <grepcase regexp="^\p{Osage}(?&lt;!\p{Cc})$" datafile="All_good" grepcount="72"/>
     365    <grepcase regexp="^\p{Tangut}(?&lt;!\p{Pc})$" datafile="All_good" grepcount="6886"/>
     366    <grepcase regexp="^\p{Masaram_Gondi}(?&lt;!\p{Ll})$" datafile="All_good" grepcount="75"/>
     367    <grepcase regexp="^[\p{Nushu}\p{Ps}]$" datafile="All_good" grepcount="472"/>
     368    <grepcase regexp="^[\p{Soyombo}\p{Cn}]$" datafile="All_good" grepcount="837238"/>
     369    <grepcase regexp="^[\p{Zanabazar_Square}\p{Nd}]$" datafile="All_good" grepcount="682"/>
     370    <grepcase regexp="^[\p{Dogra}\p{N}]$" datafile="All_good" grepcount="1713"/>
     371    <grepcase regexp="^[\p{Gunjala_Gondi}\p{P}]$" datafile="All_good" grepcount="851"/>
     372    <grepcase regexp="^[\p{Makasar}\p{Ps}]$" datafile="All_good" grepcount="100"/>
     373    <grepcase regexp="^[\p{Medefaidrin}\p{Sm}]$" datafile="All_good" grepcount="1039"/>
     374    <grepcase regexp="^\p{Hanifi_Rohingya}(?&lt;=\p{M})$" datafile="All_good" grepcount="4"/>
     375    <grepcase regexp="^\p{Sogdian}(?&lt;=\p{L})$" datafile="All_good" grepcount="22"/>
     376    <grepcase regexp="^[\p{Old_Sogdian}\p{Pd}]$" datafile="All_good" grepcount="64"/>
     377    <grepcase regexp="^[\p{Katakana_Or_Hiragana}\p{Mc}]$" datafile="All_good" grepcount="415"/>
    364378</greptest>
  • icGREP/icgrep-devel/UCD-scripts/README-generate-UCD.txt

    r5685 r6192  
    22
    331. Edit UCD_config.py - set UCD_src_dir, UCD_output_dir
     4   Make sure that emoji files have been placed in the emoji subdirectory of the UCD_src_dir
    45
    562. python3 UCD_properties.py
     73. python3 UCD_equivalence.py
    68
    79#  Needs to be updated,
    8 3. python3 generate_UCD_tests.py
     104. python3 generate_UCD_tests.py
    911    copy output to icgrep-devel/QA/proptest.xml
    1012
  • icGREP/icgrep-devel/UCD-scripts/UCD_config.py

    r5749 r6192  
    66#
    77#
    8 UCD_src_dir = "UCD-10.0"
     8UCD_src_dir = "UCD-11.0"
    99
    10 UCD_output_dir = "generated"
     10UCD_output_dir = "generated-11"
    1111
    1212version = "Unknown"
  • icGREP/icgrep-devel/UCD-scripts/UCD_parser.py

    r6179 r6192  
    4141# Section 2.3.3 of UAX $44
    4242Obsolete_Properties = ["na1", "Gr_Link", "Hyphen", "isc", "XO_NFC", "XO_NFD", "XO_NFKC", "XO_NFKD" ,"FC_NFKC"]
     43Emoji_Properties = ["Emoji", "Emoji_Presentation", "Emoji_Modifier", "Emoji_Modifier_Base", "Emoji_Component", "Extended_Pictographic"]
    4344
    4445def parse_PropertyAlias_txt():
     
    8081        prop_aliases = re.findall("[-A-Za-z_0-9]+", prop_extra)
    8182        property_object_map[property_code].setAliases(prop_aliases)
     83    for p in Emoji_Properties:
     84        prop_code = canonicalize(p)
     85        property_enum_name_list.append(prop_code)
     86        property_object_map[prop_code] = BinaryPropertyObject()
     87        property_object_map[prop_code].setID(prop_code, p)
     88        property_object_map[prop_code].setAliases([])
    8289    return (property_enum_name_list, property_object_map)
    8390
  • icGREP/icgrep-devel/UCD-scripts/UCD_properties.py

    r6134 r6192  
    525525        fold_data = parse_CaseFolding_txt(self.property_object_map)
    526526        cm = simple_CaseClosure_map(fold_data)
    527         f = cformat.open_header_file_for_write(basename, 'UCD_properties.py')
     527        f = cformat.open_header_file_for_write(basename)
    528528        cformat.write_imports(f, ['"PropertyAliases.h"', '"PropertyObjects.h"', '"PropertyValueAliases.h"', '"unicode_set.h"', '<vector>'])
    529529        f.write(foldDeclarations)
     
    639639    #
    640640    #
     641        # Binary properties from PropList.txt
     642    ucd.generate_multisection_properties_file('emoji/emoji-data')
     643   
    641644    #
    642645    ucd.generate_PropertyValueAliases_h()
  • icGREP/icgrep-devel/UCD-scripts/UCD_property_objects.py

    r6179 r6192  
    124124        self.property_value_full_name_map = {"N" : "No", "Y" : "Yes"}
    125125        self.name_list_order = ['N', 'Y']
    126         self.property_value_lookup_map = {"n" : "N", "N" : "N", "no" : "N", "f" : "N", "false" : "N",
     126        self.property_value_lookup_map = {"n" : "N", "N" : "N", "no" : "N", "f" : "N", "false" : "N", 
    127127        "y" : "Y", "Y" : "Y", "yes" : "Y", "t" : "Y", "true" : "Y"}
    128128        self.default_value = "N"
     
    137137            self.value_map['Y'] = uset_difference(self.value_map['Y'], range_uset(cp_lo, cp_hi))
    138138
    139 
     139    def setDefaultValue(self, default):
     140        dflt = canonicalize(default)
     141        if not dflt in self.property_value_lookup_map:
     142            raise Exception("Erroneous default value %s for property %s" % (default, self.full_name))
     143        dflt = self.property_value_lookup_map[dflt]
     144        if dflt != "N":
     145            raise Exception("Binary properties must have default value No")
    140146
    141147class NumericPropertyObject(PropertyObject):
  • icGREP/icgrep-devel/UCD-scripts/cformat.py

    r6179 r6192  
    1 import UCD_config, sys, time
     1import UCD_config, sys, time, re
    22from datetime import date
    33
     
    2727
    2828def open_header_file_for_write(filename):
    29    generator_name = sys.argv[0]
    30 
    31    f = open(UCD_config.UCD_output_dir + '/' + filename + '.h', 'w')
    32    hname = filename.upper() + '_H'
    33    f.write(header_template % (hname, hname, date.today().year, generator_name))
    34    return f
     29    generator_name = sys.argv[0]
     30    f = open(UCD_config.UCD_output_dir + '/' + filename + '.h', 'w')
     31    substitute_name_char_re = re.compile('[-\s]')
     32    hname = substitute_name_char_re.sub('_', filename.upper()) + '_H'
     33    f.write(header_template % (hname, hname, date.today().year, generator_name))
     34    return f
    3535
    3636def open_cpp_file_for_write(filename):
  • icGREP/icgrep-devel/icgrep/UCD/BidiBrackets.h

    r6134 r6192  
    22#define BIDIBRACKETS_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
  • icGREP/icgrep-devel/icgrep/UCD/BidiMirroring.h

    r6134 r6192  
    22#define BIDIMIRRORING_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    2121        [00ac, 00ba], [00bc, 0f39], [0f3e, 169a], [169d, 2038],
    2222        [203b, 2044], [2047, 207c], [207f, 208c], [208f, 2207],
    23         [220e, 2214], [2216, 223b], [223e, 2242], [2244, 2251],
     23        [220e, 2214], [2216, 221e], [2223, 2223], [2225, 223b],
     24        [223e, 2242], [2244, 2244], [2246, 224b], [224d, 2251],
    2425        [2256, 2263], [226c, 226d], [228c, 228e], [2293, 2297],
    2526        [2299, 22a1], [22a4, 22a5], [22a7, 22a7], [22aa, 22aa],
    26         [22ac, 22af], [22b8, 22c8], [22ce, 22cf], [22d2, 22d5],
     27        [22ac, 22af], [22b9, 22c8], [22ce, 22cf], [22d2, 22d5],
    2728        [22ee, 22ef], [22f5, 22f5], [22f8, 22f9], [22ff, 2307],
    2829        [230c, 2328], [232b, 2767], [2776, 27c2], [27c7, 27c7],
    29         [27ca, 27ca], [27cc, 27cc], [27ce, 27d4], [27d7, 27dc],
    30         [27df, 27e1], [27f0, 2982], [2999, 29b7], [29b9, 29bf],
     30        [27ca, 27ca], [27cc, 27cc], [27ce, 27d4], [27d7, 27db],
     31        [27df, 27e1], [27f0, 2982], [2999, 299a], [299c, 299f],
     32        [29a1, 29a2], [29a6, 29a7], [29b0, 29b7], [29b9, 29bf],
    3133        [29c2, 29c3], [29c6, 29ce], [29d3, 29d3], [29d6, 29d7],
    32         [29dc, 29f4], [29f6, 29f7], [29fa, 29fb], [29fe, 2a2a],
    33         [2a2f, 2a33], [2a36, 2a3b], [2a3e, 2a63], [2a66, 2a78],
    34         [2a7b, 2a7c], [2a85, 2a8a], [2a8d, 2a90], [2a9d, 2aa0],
    35         [2aa3, 2aa5], [2aae, 2aae], [2ab1, 2ab2], [2ab5, 2aba],
    36         [2ac7, 2acc], [2ad7, 2add], [2adf, 2ae2], [2ae6, 2aeb],
    37         [2aee, 2af6], [2afb, 2e01], [2e06, 2e08], [2e0b, 2e0b],
    38         [2e0e, 2e1b], [2e1e, 2e1f], [2e2a, 3007], [3012, 3013],
    39         [301c, fe58], [fe5f, fe63], [fe66, ff07], [ff0a, ff1b],
    40         [ff1d, ff1d], [ff1f, ff3a], [ff3c, ff3c], [ff3e, ff5a],
    41         [ff5c, ff5c], [ff5e, ff5e], [ff61, ff61], [ff64, 10ffff]**/
     34        [29dc, 29e7], [29ea, 29f4], [29f6, 29f7], [29fa, 29fb],
     35        [29fe, 2a2a], [2a2f, 2a33], [2a36, 2a3b], [2a3e, 2a63],
     36        [2a66, 2a78], [2aa3, 2aa5], [2aae, 2aae], [2ad7, 2add],
     37        [2adf, 2ae2], [2ae6, 2aeb], [2aef, 2af6], [2afb, 2bfd],
     38        [2bff, 2e01], [2e06, 2e08], [2e0b, 2e0b], [2e0e, 2e1b],
     39        [2e1e, 2e1f], [2e2a, 3007], [3012, 3013], [301c, fe58],
     40        [fe5f, fe63], [fe66, ff07], [ff0a, ff1b], [ff1d, ff1d],
     41        [ff1f, ff3a], [ff3c, ff3c], [ff3e, ff5a], [ff5c, ff5c],
     42        [ff5e, ff5e], [ff61, ff61], [ff64, 10ffff]**/
    4243       
    4344       
     
    4849        {Full, 11}, {Mixed, 10}, {Full, 33}, {Mixed, 1}, {Full, 2},
    4950        {Mixed, 2}, {Full, 12}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    50         {Full, 1}, {Mixed, 5}, {Full, 24}, {Mixed, 2}, {Full, 14},
    51         {Mixed, 1}, {Full, 1649}, {Mixed, 2}, {Full, 4}, {Mixed, 4},
    52         {Full, 32772}};
     51        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 7},
     52        {Mixed, 1}, {Full, 16}, {Mixed, 2}, {Full, 14}, {Mixed, 1},
     53        {Full, 1649}, {Mixed, 2}, {Full, 4}, {Mixed, 4}, {Full, 32772}};
    5354        const static UnicodeSet::bitquad_t  __null_codepoint_set_quads[] = {
    5455        0xaffffcff, 0xd7ffffff, 0xd7ffffff, 0xf7fff7ff, 0xc3ffffff,
    5556        0xe7ffffff, 0xf9ffffff, 0xffffff9f, 0x9fffffff, 0xffff9fff,
    56         0xffdfc0ff, 0xcfffffff, 0xffc3fff7, 0x0000300f, 0xfef87000,
    57         0xff00f4b3, 0x003cc1ff, 0x8320c000, 0xfffff0ff, 0xfffff9ff,
    58         0xffc000ff, 0x9f9fd487, 0xffff0003, 0xfe000007, 0xfeffffff,
    59         0xf0c87fcc, 0xccdfffff, 0xcfcf87ff, 0x19ffffcf, 0xe001e7e0,
    60         0x07e64039, 0xbf801f80, 0xf87fcfc7, 0xcfffc9c3, 0xfffffc00,
     57        0x7fdfc0ff, 0xcfffffe8, 0xffc3efd7, 0x0000300f, 0xfef87000,
     58        0xfe00f4b3, 0x003cc1ff, 0x8320c000, 0xfffff0ff, 0xfffff9ff,
     59        0xffc000ff, 0x8f9fd487, 0xffff0003, 0xf6000007, 0xfeff00c6,
     60        0xf0c87fcc, 0xccdffcff, 0xcfcf87ff, 0x01ffffcf, 0x00004038,
     61        0xbf800000, 0xf87f8fc7, 0xbfffffff, 0xcfffc9c3, 0xfffffc00,
    6162        0xf00c00ff, 0x81ffffff, 0xffffffcf, 0xaffffcff, 0xd7ffffff,
    6263        0x57ffffff, 0xfffffff2};
    6364        }
    6465
    65         const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 42, 0};
     66        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 35, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 42, 0};
    6667
    6768
     
    110111        1310, 1314, 1318, 1322, 1326, 1330, 1334, 1338, 1342, 1346, 1350,
    111112        1354, 1358, 1362, 1366, 1370, 1374, 1378, 1382, 1386, 1390, 1394,
    112         1398, 1402, 1406, 1410, 1414, 1418, 1422, 1426, 1430, 1434, 1438};
    113         const static char string_buffer LLVM_ALIGNAS(32) [1536] = u8R"__()
     113        1398, 1402, 1406, 1410, 1414, 1418, 1422, 1426, 1430, 1434, 1438,
     114        1442, 1446, 1450, 1454, 1458, 1462, 1466, 1470, 1474, 1478, 1482,
     115        1486, 1490, 1494, 1498, 1502, 1506, 1510, 1514, 1518, 1522, 1526,
     116        1530, 1534, 1538, 1542, 1546, 1550, 1554, 1558, 1562, 1566, 1570,
     117        1574, 1578, 1582, 1586, 1590, 1594, 1598, 1602, 1606, 1610, 1614,
     118        1618, 1622, 1626, 1630, 1634, 1638, 1642, 1646, 1650, 1654, 1658,
     119        1662};
     120        const static char string_buffer LLVM_ALIGNAS(32) [1792] = u8R"__()
    114121(
    115122>
     
    143150∊
    144151⧵
     152⯟
     153⊣
     154⩛
     155⊠
     156â«®
    145157∜
    146158∌
    147159⋍
     160≌
     161â‰
     162
    148163≓
    149164≒
     
    208223⊷
    209224⊶
     225⟜
    210226⋊
    211227⋉
     
    282298⟖
    283299⟕
     300⊾
    284301⟞
    285302⟝
     
    321338⊘
    322339⩗
     340∡
     341∢
     342∠
     343⊥
     344⊀
     345⊩
     346⊚
     347⊫
     348⊪
     349⊭
     350⊬
     351⊯
     352⊮
    323353⊘
    324354⧁
     
    337367⧛
    338368⧚
     369⧩
     370⧚
    339371∕
    340372⧹
     
    354386⩺
    355387⩹
     388â©Œ
     389â©»
    356390â©Ÿ
    357391⩜
     
    362396⪄
    363397⪃
     398⪆
     399âª
     400
     401⪈
     402⪇
     403⪊
     404⪉
    364405⪌
    365406⪋
     407⪎
     408⪍
     409⪐
     410⪏
    366411⪒
    367412⪑
     
    376421⪜
    377422⪛
     423⪞
     424⪝
     425⪠
     426⪟
    378427⪢
    379428⪡
     
    388437⪰
    389438⪯
     439⪲
     440⪱
    390441⪎
    391442⪳
     443⪶
     444⪵
     445⪞
     446⪷
     447⪺
     448⪹
    392449⪌
    393450⪻
     
    403460â«
    404461
     462⫈
     463⫇
     464⫊
     465⫉
     466⫌
     467⫋
    405468⫎
    406469⫍
     
    419482â«­
    420483⫬
     484∀
    421485â«ž
    422486â«·
    423487⫺
    424488⫹
     489∟
    425490➃
    426491⾂
     
    488553        0x00ab, 0x00bb, 0x0f3a, 0x0f3b, 0x0f3c, 0x0f3d, 0x169b, 0x169c,
    489554        0x2039, 0x203a, 0x2045, 0x2046, 0x207d, 0x207e, 0x208d, 0x208e,
    490         0x2208, 0x2209, 0x220a, 0x220b, 0x220c, 0x220d, 0x2215, 0x223c,
    491         0x223d, 0x2243, 0x2252, 0x2253, 0x2254, 0x2255, 0x2264, 0x2265,
    492         0x2266, 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226e, 0x226f,
    493         0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, 0x2277,
    494         0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x227d, 0x227e, 0x227f,
    495         0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285, 0x2286, 0x2287,
    496         0x2288, 0x2289, 0x228a, 0x228b, 0x228f, 0x2290, 0x2291, 0x2292,
    497         0x2298, 0x22a2, 0x22a3, 0x22a6, 0x22a8, 0x22a9, 0x22ab, 0x22b0,
    498         0x22b1, 0x22b2, 0x22b3, 0x22b4, 0x22b5, 0x22b6, 0x22b7, 0x22c9,
     555        0x2208, 0x2209, 0x220a, 0x220b, 0x220c, 0x220d, 0x2215, 0x221f,
     556        0x2220, 0x2221, 0x2222, 0x2224, 0x223c, 0x223d, 0x2243, 0x2245,
     557        0x224c, 0x2252, 0x2253, 0x2254, 0x2255, 0x2264, 0x2265, 0x2266,
     558        0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226e, 0x226f, 0x2270,
     559        0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, 0x2277, 0x2278,
     560        0x2279, 0x227a, 0x227b, 0x227c, 0x227d, 0x227e, 0x227f, 0x2280,
     561        0x2281, 0x2282, 0x2283, 0x2284, 0x2285, 0x2286, 0x2287, 0x2288,
     562        0x2289, 0x228a, 0x228b, 0x228f, 0x2290, 0x2291, 0x2292, 0x2298,
     563        0x22a2, 0x22a3, 0x22a6, 0x22a8, 0x22a9, 0x22ab, 0x22b0, 0x22b1,
     564        0x22b2, 0x22b3, 0x22b4, 0x22b5, 0x22b6, 0x22b7, 0x22b8, 0x22c9,
    499565        0x22ca, 0x22cb, 0x22cc, 0x22cd, 0x22d0, 0x22d1, 0x22d6, 0x22d7,
    500566        0x22d8, 0x22d9, 0x22da, 0x22db, 0x22dc, 0x22dd, 0x22de, 0x22df,
     
    506572        0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775, 0x27c3, 0x27c4,
    507573        0x27c5, 0x27c6, 0x27c8, 0x27c9, 0x27cb, 0x27cd, 0x27d5, 0x27d6,
    508         0x27dd, 0x27de, 0x27e2, 0x27e3, 0x27e4, 0x27e5, 0x27e6, 0x27e7,
    509         0x27e8, 0x27e9, 0x27ea, 0x27eb, 0x27ec, 0x27ed, 0x27ee, 0x27ef,
    510         0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988, 0x2989, 0x298a,
    511         0x298b, 0x298c, 0x298d, 0x298e, 0x298f, 0x2990, 0x2991, 0x2992,
    512         0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998, 0x29b8, 0x29c0,
    513         0x29c1, 0x29c4, 0x29c5, 0x29cf, 0x29d0, 0x29d1, 0x29d2, 0x29d4,
    514         0x29d5, 0x29d8, 0x29d9, 0x29da, 0x29db, 0x29f5, 0x29f8, 0x29f9,
     574        0x27dc, 0x27dd, 0x27de, 0x27e2, 0x27e3, 0x27e4, 0x27e5, 0x27e6,
     575        0x27e7, 0x27e8, 0x27e9, 0x27ea, 0x27eb, 0x27ec, 0x27ed, 0x27ee,
     576        0x27ef, 0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988, 0x2989,
     577        0x298a, 0x298b, 0x298c, 0x298d, 0x298e, 0x298f, 0x2990, 0x2991,
     578        0x2992, 0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998, 0x299b,
     579        0x29a0, 0x29a3, 0x29a4, 0x29a5, 0x29a8, 0x29a9, 0x29aa, 0x29ab,
     580        0x29ac, 0x29ad, 0x29ae, 0x29af, 0x29b8, 0x29c0, 0x29c1, 0x29c4,
     581        0x29c5, 0x29cf, 0x29d0, 0x29d1, 0x29d2, 0x29d4, 0x29d5, 0x29d8,
     582        0x29d9, 0x29da, 0x29db, 0x29e8, 0x29e9, 0x29f5, 0x29f8, 0x29f9,
    515583        0x29fc, 0x29fd, 0x2a2b, 0x2a2c, 0x2a2d, 0x2a2e, 0x2a34, 0x2a35,
    516         0x2a3c, 0x2a3d, 0x2a64, 0x2a65, 0x2a79, 0x2a7a, 0x2a7d, 0x2a7e,
    517         0x2a7f, 0x2a80, 0x2a81, 0x2a82, 0x2a83, 0x2a84, 0x2a8b, 0x2a8c,
    518         0x2a91, 0x2a92, 0x2a93, 0x2a94, 0x2a95, 0x2a96, 0x2a97, 0x2a98,
    519         0x2a99, 0x2a9a, 0x2a9b, 0x2a9c, 0x2aa1, 0x2aa2, 0x2aa6, 0x2aa7,
     584        0x2a3c, 0x2a3d, 0x2a64, 0x2a65, 0x2a79, 0x2a7a, 0x2a7b, 0x2a7c,
     585        0x2a7d, 0x2a7e, 0x2a7f, 0x2a80, 0x2a81, 0x2a82, 0x2a83, 0x2a84,
     586        0x2a85, 0x2a86, 0x2a87, 0x2a88, 0x2a89, 0x2a8a, 0x2a8b, 0x2a8c,
     587        0x2a8d, 0x2a8e, 0x2a8f, 0x2a90, 0x2a91, 0x2a92, 0x2a93, 0x2a94,
     588        0x2a95, 0x2a96, 0x2a97, 0x2a98, 0x2a99, 0x2a9a, 0x2a9b, 0x2a9c,
     589        0x2a9d, 0x2a9e, 0x2a9f, 0x2aa0, 0x2aa1, 0x2aa2, 0x2aa6, 0x2aa7,
    520590        0x2aa8, 0x2aa9, 0x2aaa, 0x2aab, 0x2aac, 0x2aad, 0x2aaf, 0x2ab0,
    521         0x2ab3, 0x2ab4, 0x2abb, 0x2abc, 0x2abd, 0x2abe, 0x2abf, 0x2ac0,
    522         0x2ac1, 0x2ac2, 0x2ac3, 0x2ac4, 0x2ac5, 0x2ac6, 0x2acd, 0x2ace,
    523         0x2acf, 0x2ad0, 0x2ad1, 0x2ad2, 0x2ad3, 0x2ad4, 0x2ad5, 0x2ad6,
    524         0x2ade, 0x2ae3, 0x2ae4, 0x2ae5, 0x2aec, 0x2aed, 0x2af7, 0x2af8,
    525         0x2af9, 0x2afa, 0x2e02, 0x2e03, 0x2e04, 0x2e05, 0x2e09, 0x2e0a,
     591        0x2ab1, 0x2ab2, 0x2ab3, 0x2ab4, 0x2ab5, 0x2ab6, 0x2ab7, 0x2ab8,
     592        0x2ab9, 0x2aba, 0x2abb, 0x2abc, 0x2abd, 0x2abe, 0x2abf, 0x2ac0,
     593        0x2ac1, 0x2ac2, 0x2ac3, 0x2ac4, 0x2ac5, 0x2ac6, 0x2ac7, 0x2ac8,
     594        0x2ac9, 0x2aca, 0x2acb, 0x2acc, 0x2acd, 0x2ace, 0x2acf, 0x2ad0,
     595        0x2ad1, 0x2ad2, 0x2ad3, 0x2ad4, 0x2ad5, 0x2ad6, 0x2ade, 0x2ae3,
     596        0x2ae4, 0x2ae5, 0x2aec, 0x2aed, 0x2aee, 0x2af7, 0x2af8, 0x2af9,
     597        0x2afa, 0x2bfe, 0x2e02, 0x2e03, 0x2e04, 0x2e05, 0x2e09, 0x2e0a,
    526598        0x2e0c, 0x2e0d, 0x2e1c, 0x2e1d, 0x2e20, 0x2e21, 0x2e22, 0x2e23,
    527599        0x2e24, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 0x3008, 0x3009,
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r5751 r6192  
    22#define BLOCKS_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1616namespace UCD {
    1717  namespace BLK_ns {
    18     const unsigned independent_prop_values = 281;
     18    const unsigned independent_prop_values = 292;
    1919    /** Code Point Ranges for NB
    20     [0870, 089f], [1c90, 1cbf], [2fe0, 2fef], [10200, 1027f],
    21     [103e0, 103ff], [10570, 105ff], [10780, 107ff], [108b0, 108df],
    22     [10940, 1097f], [10aa0, 10abf], [10bb0, 10bff], [10c50, 10c7f],
    23     [10d00, 10e5f], [10e80, 10fff], [11250, 1127f], [11380, 113ff],
    24     [114e0, 1157f], [116d0, 116ff], [11740, 1189f], [11900, 119ff],
    25     [11ab0, 11abf], [11b00, 11bff], [11cc0, 11cff], [11d60, 11fff],
    26     [12550, 12fff], [13430, 143ff], [14680, 167ff], [16a70, 16acf],
    27     [16b90, 16eff], [16fa0, 16fdf], [18b00, 1afff], [1b130, 1b16f],
    28     [1b300, 1bbff], [1bcb0, 1cfff], [1d250, 1d2ff], [1d380, 1d3ff],
    29     [1dab0, 1dfff], [1e030, 1e7ff], [1e8e0, 1e8ff], [1e960, 1edff],
    30     [1ef00, 1efff], [1fa00, 1ffff], [2a6e0, 2a6ff], [2ebf0, 2f7ff],
     20    [0870, 089f], [2fe0, 2fef], [10200, 1027f], [103e0, 103ff],
     21    [10570, 105ff], [10780, 107ff], [108b0, 108df], [10940, 1097f],
     22    [10aa0, 10abf], [10bb0, 10bff], [10c50, 10c7f], [10d40, 10e5f],
     23    [10e80, 10eff], [10f70, 10fff], [11250, 1127f], [11380, 113ff],
     24    [114e0, 1157f], [116d0, 116ff], [11740, 117ff], [11850, 1189f],
     25    [11900, 119ff], [11ab0, 11abf], [11b00, 11bff], [11cc0, 11cff],
     26    [11db0, 11edf], [11f00, 11fff], [12550, 12fff], [13430, 143ff],
     27    [14680, 167ff], [16a70, 16acf], [16b90, 16e3f], [16ea0, 16eff],
     28    [16fa0, 16fdf], [18b00, 1afff], [1b130, 1b16f], [1b300, 1bbff],
     29    [1bcb0, 1cfff], [1d250, 1d2df], [1d380, 1d3ff], [1dab0, 1dfff],
     30    [1e030, 1e7ff], [1e8e0, 1e8ff], [1e960, 1ec6f], [1ecc0, 1edff],
     31    [1ef00, 1efff], [1fa70, 1ffff], [2a6e0, 2a6ff], [2ebf0, 2f7ff],
    3132    [2fa20, dffff], [e0080, e00ff], [e01f0, effff]**/
    3233
     
    3435    namespace {
    3536    const static UnicodeSet::run_t __nb_Set_runs[] = {
    36     {Empty, 67}, {Mixed, 1}, {Full, 1}, {Empty, 159}, {Mixed, 1}, {Full, 1},
    37     {Empty, 153}, {Mixed, 1}, {Empty, 1680}, {Full, 4}, {Empty, 11},
    38     {Full, 1}, {Empty, 11}, {Mixed, 1}, {Full, 4}, {Empty, 12}, {Full, 4},
    39     {Empty, 5}, {Mixed, 1}, {Full, 1}, {Empty, 3}, {Full, 2}, {Empty, 9},
    40     {Full, 1}, {Empty, 7}, {Mixed, 1}, {Full, 2}, {Empty, 2}, {Mixed, 1},
    41     {Full, 1}, {Empty, 4}, {Full, 11}, {Empty, 1}, {Full, 12}, {Empty, 18},
    42     {Mixed, 1}, {Full, 1}, {Empty, 8}, {Full, 4}, {Empty, 7}, {Full, 5},
    43     {Empty, 10}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Full, 11}, {Empty, 3},
    44     {Full, 8}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Full, 8}, {Empty, 6},
    45     {Full, 2}, {Empty, 3}, {Full, 21}, {Empty, 42}, {Mixed, 1}, {Full, 85},
    46     {Empty, 33}, {Mixed, 1}, {Full, 126}, {Empty, 20}, {Full, 268},
    47     {Empty, 19}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    48     {Full, 27}, {Empty, 5}, {Full, 2}, {Empty, 217}, {Full, 296},
    49     {Empty, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 12}, {Full, 72},
    50     {Empty, 5}, {Mixed, 1}, {Full, 154}, {Empty, 18}, {Mixed, 1}, {Full, 5},
    51     {Empty, 4}, {Full, 4}, {Empty, 53}, {Mixed, 1}, {Full, 42}, {Empty, 1},
    52     {Mixed, 1}, {Full, 62}, {Empty, 7}, {Full, 1}, {Empty, 3}, {Full, 37},
    53     {Empty, 8}, {Full, 8}, {Empty, 80}, {Full, 48}, {Empty, 1335},
    54     {Full, 1}, {Empty, 551}, {Mixed, 1}, {Full, 96}, {Empty, 17},
    55     {Full, 22575}, {Empty, 4}, {Full, 4}, {Empty, 7}, {Mixed, 1},
    56     {Full, 2032}, {Empty, 4096}};
     37    {Empty, 67}, {Mixed, 1}, {Full, 1}, {Empty, 314}, {Mixed, 1},
     38    {Empty, 1680}, {Full, 4}, {Empty, 11}, {Full, 1}, {Empty, 11},
     39    {Mixed, 1}, {Full, 4}, {Empty, 12}, {Full, 4}, {Empty, 5}, {Mixed, 1},
     40    {Full, 1}, {Empty, 3}, {Full, 2}, {Empty, 9}, {Full, 1}, {Empty, 7},
     41    {Mixed, 1}, {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 6},
     42    {Full, 9}, {Empty, 1}, {Full, 4}, {Empty, 3}, {Mixed, 1}, {Full, 4},
     43    {Empty, 18}, {Mixed, 1}, {Full, 1}, {Empty, 8}, {Full, 4}, {Empty, 7},
     44    {Full, 5}, {Empty, 10}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Full, 6},
     45    {Empty, 2}, {Mixed, 1}, {Full, 2}, {Empty, 3}, {Full, 8}, {Empty, 5},
     46    {Mixed, 1}, {Empty, 2}, {Full, 8}, {Empty, 6}, {Full, 2}, {Empty, 5},
     47    {Mixed, 1}, {Full, 9}, {Empty, 1}, {Full, 8}, {Empty, 42}, {Mixed, 1},
     48    {Full, 85}, {Empty, 33}, {Mixed, 1}, {Full, 126}, {Empty, 20},
     49    {Full, 268}, {Empty, 19}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5},
     50    {Mixed, 1}, {Full, 21}, {Empty, 3}, {Full, 3}, {Empty, 5}, {Full, 2},
     51    {Empty, 217}, {Full, 296}, {Empty, 9}, {Mixed, 1}, {Full, 1},
     52    {Mixed, 1}, {Empty, 12}, {Full, 72}, {Empty, 5}, {Mixed, 1},
     53    {Full, 154}, {Empty, 18}, {Mixed, 1}, {Full, 4}, {Empty, 5}, {Full, 4},
     54    {Empty, 53}, {Mixed, 1}, {Full, 42}, {Empty, 1}, {Mixed, 1}, {Full, 62},
     55    {Empty, 7}, {Full, 1}, {Empty, 3}, {Full, 24}, {Mixed, 1}, {Empty, 2},
     56    {Full, 10}, {Empty, 8}, {Full, 8}, {Empty, 83}, {Mixed, 1}, {Full, 44},
     57    {Empty, 1335}, {Full, 1}, {Empty, 551}, {Mixed, 1}, {Full, 96},
     58    {Empty, 17}, {Full, 22575}, {Empty, 4}, {Full, 4}, {Empty, 7},
     59    {Mixed, 1}, {Full, 2032}, {Empty, 4096}};
    5760    const static UnicodeSet::bitquad_t  __nb_Set_quads[] = {
    58     0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000,
     61    0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
    5962    0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000,
    60     0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
    61     0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000};
    62     }
    63 
    64     const static UnicodeSet nb_Set{const_cast<UnicodeSet::run_t *>(__nb_Set_runs), 116, 0, const_cast<UnicodeSet::bitquad_t *>(__nb_Set_quads), 23, 0};
     63    0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000,
     64    0x0000ffff, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff,
     65    0xffff0000, 0xffff0000, 0xffff0000};
     66    }
     67
     68    const static UnicodeSet nb_Set{const_cast<UnicodeSet::run_t *>(__nb_Set_runs), 128, 0, const_cast<UnicodeSet::bitquad_t *>(__nb_Set_quads), 27, 0};
    6569
    6670    /** Code Point Ranges for ASCII
     
    840844    const static UnicodeSet cyrillic_ext_c_Set{const_cast<UnicodeSet::run_t *>(__cyrillic_ext_c_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cyrillic_ext_c_Set_quads), 1, 0};
    841845
     846    /** Code Point Ranges for Georgian_Ext
     847    [1c90, 1cbf]**/
     848
     849
     850    namespace {
     851    const static UnicodeSet::run_t __georgian_ext_Set_runs[] = {
     852    {Empty, 228}, {Mixed, 1}, {Full, 1}, {Empty, 34586}};
     853    const static UnicodeSet::bitquad_t  __georgian_ext_Set_quads[] = {
     854    0xffff0000};
     855    }
     856
     857    const static UnicodeSet georgian_ext_Set{const_cast<UnicodeSet::run_t *>(__georgian_ext_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__georgian_ext_Set_quads), 1, 0};
     858
    842859    /** Code Point Ranges for Sundanese_Sup
    843860    [1cc0, 1ccf]**/
     
    25642581    const static UnicodeSet old_hungarian_Set{const_cast<UnicodeSet::run_t *>(__old_hungarian_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__old_hungarian_Set_quads), 0, 0};
    25652582
     2583    /** Code Point Ranges for Hanifi_Rohingya
     2584    [10d00, 10d3f]**/
     2585
     2586
     2587    namespace {
     2588    const static UnicodeSet::run_t __hanifi_rohingya_Set_runs[] = {
     2589    {Empty, 2152}, {Full, 2}, {Empty, 32662}};
     2590    const static UnicodeSet::bitquad_t * const __hanifi_rohingya_Set_quads = nullptr;
     2591    }
     2592
     2593    const static UnicodeSet hanifi_rohingya_Set{const_cast<UnicodeSet::run_t *>(__hanifi_rohingya_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__hanifi_rohingya_Set_quads), 0, 0};
     2594
    25662595    /** Code Point Ranges for Rumi
    25672596    [10e60, 10e7f]**/
     
    25762605    const static UnicodeSet rumi_Set{const_cast<UnicodeSet::run_t *>(__rumi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__rumi_Set_quads), 0, 0};
    25772606
     2607    /** Code Point Ranges for Old_Sogdian
     2608    [10f00, 10f2f]**/
     2609
     2610
     2611    namespace {
     2612    const static UnicodeSet::run_t __old_sogdian_Set_runs[] = {
     2613    {Empty, 2168}, {Full, 1}, {Mixed, 1}, {Empty, 32646}};
     2614    const static UnicodeSet::bitquad_t  __old_sogdian_Set_quads[] = {
     2615    0x0000ffff};
     2616    }
     2617
     2618    const static UnicodeSet old_sogdian_Set{const_cast<UnicodeSet::run_t *>(__old_sogdian_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__old_sogdian_Set_quads), 1, 0};
     2619
     2620    /** Code Point Ranges for Sogdian
     2621    [10f30, 10f6f]**/
     2622
     2623
     2624    namespace {
     2625    const static UnicodeSet::run_t __sogdian_Set_runs[] = {
     2626    {Empty, 2169}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32644}};
     2627    const static UnicodeSet::bitquad_t  __sogdian_Set_quads[] = {
     2628    0xffff0000, 0x0000ffff};
     2629    }
     2630
     2631    const static UnicodeSet sogdian_Set{const_cast<UnicodeSet::run_t *>(__sogdian_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__sogdian_Set_quads), 2, 0};
     2632
    25782633    /** Code Point Ranges for Brahmi
    25792634    [11000, 1107f]**/
     
    27992854
    28002855    const static UnicodeSet ahom_Set{const_cast<UnicodeSet::run_t *>(__ahom_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ahom_Set_quads), 0, 0};
     2856
     2857    /** Code Point Ranges for Dogra
     2858    [11800, 1184f]**/
     2859
     2860
     2861    namespace {
     2862    const static UnicodeSet::run_t __dogra_Set_runs[] = {
     2863    {Empty, 2240}, {Full, 2}, {Mixed, 1}, {Empty, 32573}};
     2864    const static UnicodeSet::bitquad_t  __dogra_Set_quads[] = {
     2865    0x0000ffff};
     2866    }
     2867
     2868    const static UnicodeSet dogra_Set{const_cast<UnicodeSet::run_t *>(__dogra_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__dogra_Set_quads), 1, 0};
    28012869
    28022870    /** Code Point Ranges for Warang_Citi
     
    28882956    const static UnicodeSet masaram_gondi_Set{const_cast<UnicodeSet::run_t *>(__masaram_gondi_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__masaram_gondi_Set_quads), 0, 0};
    28892957
     2958    /** Code Point Ranges for Gunjala_Gondi
     2959    [11d60, 11daf]**/
     2960
     2961
     2962    namespace {
     2963    const static UnicodeSet::run_t __gunjala_gondi_Set_runs[] = {
     2964    {Empty, 2283}, {Full, 2}, {Mixed, 1}, {Empty, 32530}};
     2965    const static UnicodeSet::bitquad_t  __gunjala_gondi_Set_quads[] = {
     2966    0x0000ffff};
     2967    }
     2968
     2969    const static UnicodeSet gunjala_gondi_Set{const_cast<UnicodeSet::run_t *>(__gunjala_gondi_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__gunjala_gondi_Set_quads), 1, 0};
     2970
     2971    /** Code Point Ranges for Makasar
     2972    [11ee0, 11eff]**/
     2973
     2974
     2975    namespace {
     2976    const static UnicodeSet::run_t __makasar_Set_runs[] = {
     2977    {Empty, 2295}, {Full, 1}, {Empty, 32520}};
     2978    const static UnicodeSet::bitquad_t * const __makasar_Set_quads = nullptr;
     2979    }
     2980
     2981    const static UnicodeSet makasar_Set{const_cast<UnicodeSet::run_t *>(__makasar_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__makasar_Set_quads), 0, 0};
     2982
    28902983    /** Code Point Ranges for Cuneiform
    28912984    [12000, 123ff]**/
     
    30013094    const static UnicodeSet pahawh_hmong_Set{const_cast<UnicodeSet::run_t *>(__pahawh_hmong_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__pahawh_hmong_Set_quads), 1, 0};
    30023095
     3096    /** Code Point Ranges for Medefaidrin
     3097    [16e40, 16e9f]**/
     3098
     3099
     3100    namespace {
     3101    const static UnicodeSet::run_t __medefaidrin_Set_runs[] = {
     3102    {Empty, 2930}, {Full, 3}, {Empty, 31883}};
     3103    const static UnicodeSet::bitquad_t * const __medefaidrin_Set_quads = nullptr;
     3104    }
     3105
     3106    const static UnicodeSet medefaidrin_Set{const_cast<UnicodeSet::run_t *>(__medefaidrin_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__medefaidrin_Set_quads), 0, 0};
     3107
    30033108    /** Code Point Ranges for Miao
    30043109    [16f00, 16f9f]**/
     
    31493254    const static UnicodeSet ancient_greek_music_Set{const_cast<UnicodeSet::run_t *>(__ancient_greek_music_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__ancient_greek_music_Set_quads), 1, 0};
    31503255
     3256    /** Code Point Ranges for Mayan_Numerals
     3257    [1d2e0, 1d2ff]**/
     3258
     3259
     3260    namespace {
     3261    const static UnicodeSet::run_t __mayan_numerals_Set_runs[] = {
     3262    {Empty, 3735}, {Full, 1}, {Empty, 31080}};
     3263    const static UnicodeSet::bitquad_t * const __mayan_numerals_Set_quads = nullptr;
     3264    }
     3265
     3266    const static UnicodeSet mayan_numerals_Set{const_cast<UnicodeSet::run_t *>(__mayan_numerals_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__mayan_numerals_Set_quads), 0, 0};
     3267
    31513268    /** Code Point Ranges for Tai_Xuan_Jing
    31523269    [1d300, 1d35f]**/
     
    32353352    const static UnicodeSet adlam_Set{const_cast<UnicodeSet::run_t *>(__adlam_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__adlam_Set_quads), 0, 0};
    32363353
     3354    /** Code Point Ranges for Indic_Siyaq_Numbers
     3355    [1ec70, 1ecbf]**/
     3356
     3357
     3358    namespace {
     3359    const static UnicodeSet::run_t __indic_siyaq_numbers_Set_runs[] = {
     3360    {Empty, 3939}, {Mixed, 1}, {Full, 2}, {Empty, 30874}};
     3361    const static UnicodeSet::bitquad_t  __indic_siyaq_numbers_Set_quads[] = {
     3362    0xffff0000};
     3363    }
     3364
     3365    const static UnicodeSet indic_siyaq_numbers_Set{const_cast<UnicodeSet::run_t *>(__indic_siyaq_numbers_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__indic_siyaq_numbers_Set_quads), 1, 0};
     3366
    32373367    /** Code Point Ranges for Arabic_Math
    32383368    [1ee00, 1eeff]**/
     
    34063536
    34073537    const static UnicodeSet sup_symbols_and_pictographs_Set{const_cast<UnicodeSet::run_t *>(__sup_symbols_and_pictographs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sup_symbols_and_pictographs_Set_quads), 0, 0};
     3538
     3539    /** Code Point Ranges for Chess_Symbols
     3540    [1fa00, 1fa6f]**/
     3541
     3542
     3543    namespace {
     3544    const static UnicodeSet::run_t __chess_symbols_Set_runs[] = {
     3545    {Empty, 4048}, {Full, 3}, {Mixed, 1}, {Empty, 30764}};
     3546    const static UnicodeSet::bitquad_t  __chess_symbols_Set_quads[] = {
     3547    0x0000ffff};
     3548    }
     3549
     3550    const static UnicodeSet chess_symbols_Set{const_cast<UnicodeSet::run_t *>(__chess_symbols_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__chess_symbols_Set_quads), 1, 0};
    34083551
    34093552    /** Code Point Ranges for CJK_Ext_B
     
    35513694        &buginese_Set, &tai_tham_Set, &diacriticals_ext_Set, &balinese_Set,
    35523695        &sundanese_Set, &batak_Set, &lepcha_Set, &ol_chiki_Set,
    3553         &cyrillic_ext_c_Set, &sundanese_sup_Set, &vedic_ext_Set,
    3554         &phonetic_ext_Set, &phonetic_ext_sup_Set, &diacriticals_sup_Set,
    3555         &latin_ext_additional_Set, &greek_ext_Set, &punctuation_Set,
    3556         &super_and_sub_Set, &currency_symbols_Set,
     3696        &cyrillic_ext_c_Set, &georgian_ext_Set, &sundanese_sup_Set,
     3697        &vedic_ext_Set, &phonetic_ext_Set, &phonetic_ext_sup_Set,
     3698        &diacriticals_sup_Set, &latin_ext_additional_Set, &greek_ext_Set,
     3699        &punctuation_Set, &super_and_sub_Set, &currency_symbols_Set,
    35573700        &diacriticals_for_symbols_Set, &letterlike_symbols_Set,
    35583701        &number_forms_Set, &arrows_Set, &math_operators_Set,
     
    35943737        &avestan_Set, &inscriptional_parthian_Set,
    35953738        &inscriptional_pahlavi_Set, &psalter_pahlavi_Set, &old_turkic_Set,
    3596         &old_hungarian_Set, &rumi_Set, &brahmi_Set, &kaithi_Set,
     3739        &old_hungarian_Set, &hanifi_rohingya_Set, &rumi_Set,
     3740        &old_sogdian_Set, &sogdian_Set, &brahmi_Set, &kaithi_Set,
    35973741        &sora_sompeng_Set, &chakma_Set, &mahajani_Set, &sharada_Set,
    35983742        &sinhala_archaic_numbers_Set, &khojki_Set, &multani_Set,
    35993743        &khudawadi_Set, &grantha_Set, &newa_Set, &tirhuta_Set, &siddham_Set,
    3600         &modi_Set, &mongolian_sup_Set, &takri_Set, &ahom_Set,
     3744        &modi_Set, &mongolian_sup_Set, &takri_Set, &ahom_Set, &dogra_Set,
    36013745        &warang_citi_Set, &zanabazar_square_Set, &soyombo_Set,
    36023746        &pau_cin_hau_Set, &bhaiksuki_Set, &marchen_Set, &masaram_gondi_Set,
    3603         &cuneiform_Set, &cuneiform_numbers_Set,
    3604         &early_dynastic_cuneiform_Set, &egyptian_hieroglyphs_Set,
    3605         &anatolian_hieroglyphs_Set, &bamum_sup_Set, &mro_Set,
    3606         &bassa_vah_Set, &pahawh_hmong_Set, &miao_Set,
    3607         &ideographic_symbols_Set, &tangut_Set, &tangut_components_Set,
    3608         &kana_sup_Set, &kana_ext_a_Set, &nushu_Set, &duployan_Set,
    3609         &shorthand_format_controls_Set, &byzantine_music_Set, &music_Set,
    3610         &ancient_greek_music_Set, &tai_xuan_jing_Set, &counting_rod_Set,
    3611         &math_alphanum_Set, &sutton_signwriting_Set, &glagolitic_sup_Set,
    3612         &mende_kikakui_Set, &adlam_Set, &arabic_math_Set, &mahjong_Set,
    3613         &domino_Set, &playing_cards_Set, &enclosed_alphanum_sup_Set,
    3614         &enclosed_ideographic_sup_Set, &misc_pictographs_Set,
    3615         &emoticons_Set, &ornamental_dingbats_Set, &transport_and_map_Set,
    3616         &alchemical_Set, &geometric_shapes_ext_Set, &sup_arrows_c_Set,
    3617         &sup_symbols_and_pictographs_Set, &cjk_ext_b_Set, &cjk_ext_c_Set,
    3618         &cjk_ext_d_Set, &cjk_ext_e_Set, &cjk_ext_f_Set,
    3619         &cjk_compat_ideographs_sup_Set, &tags_Set, &vs_sup_Set,
    3620         &sup_pua_a_Set, &sup_pua_b_Set
     3747        &gunjala_gondi_Set, &makasar_Set, &cuneiform_Set,
     3748        &cuneiform_numbers_Set, &early_dynastic_cuneiform_Set,
     3749        &egyptian_hieroglyphs_Set, &anatolian_hieroglyphs_Set,
     3750        &bamum_sup_Set, &mro_Set, &bassa_vah_Set, &pahawh_hmong_Set,
     3751        &medefaidrin_Set, &miao_Set, &ideographic_symbols_Set, &tangut_Set,
     3752        &tangut_components_Set, &kana_sup_Set, &kana_ext_a_Set, &nushu_Set,
     3753        &duployan_Set, &shorthand_format_controls_Set, &byzantine_music_Set,
     3754        &music_Set, &ancient_greek_music_Set, &mayan_numerals_Set,
     3755        &tai_xuan_jing_Set, &counting_rod_Set, &math_alphanum_Set,
     3756        &sutton_signwriting_Set, &glagolitic_sup_Set, &mende_kikakui_Set,
     3757        &adlam_Set, &indic_siyaq_numbers_Set, &arabic_math_Set,
     3758        &mahjong_Set, &domino_Set, &playing_cards_Set,
     3759        &enclosed_alphanum_sup_Set, &enclosed_ideographic_sup_Set,
     3760        &misc_pictographs_Set, &emoticons_Set, &ornamental_dingbats_Set,
     3761        &transport_and_map_Set, &alchemical_Set, &geometric_shapes_ext_Set,
     3762        &sup_arrows_c_Set, &sup_symbols_and_pictographs_Set,
     3763        &chess_symbols_Set, &cjk_ext_b_Set, &cjk_ext_c_Set, &cjk_ext_d_Set,
     3764        &cjk_ext_e_Set, &cjk_ext_f_Set, &cjk_compat_ideographs_sup_Set,
     3765        &tags_Set, &vs_sup_Set, &sup_pua_a_Set, &sup_pua_b_Set
    36213766        }};
    36223767    }
  • icGREP/icgrep-devel/icgrep/UCD/CaseFolding.h

    r6134 r6192  
    22#define CASEFOLDING_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    2424
    2525
    26 const int foldTableSize = 246;
     26const int foldTableSize = 256;
    2727
    2828const FoldEntry foldTable[foldTableSize] = {
     
    174174  {0x10a0, 7264, {}},
    175175  {0x10c6, 0, {{0x10c7, 0x2d27}, {0x10cd, 0x2d2d}}},
     176  {0x10d0, 3008, {}},
     177  {0x10fb, 0, {}},
     178  {0x10fd, 3008, {}},
     179  {0x1100, 0, {}},
    176180  {0x13a0, 38864, {}},
    177181  {0x13f0, 8, {}},
     
    186190  {0x1c84, 1, {{0x1c85, 0x442}, {0x1c85, 0x422}}},
    187191  {0x1c86, 0, {{0x1c86, 0x44a}, {0x1c86, 0x42a}, {0x1c87, 0x463}, {0x1c87, 0x462},
    188     {0x1c88, 0xa64b}, {0x1c88, 0xa64a}, {0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
     192    {0x1c88, 0xa64b}, {0x1c88, 0xa64a}}},
     193  {0x1c90, -3008, {}},
     194  {0x1cbb, 0, {}},
     195  {0x1cbd, -3008, {}},
     196  {0x1cc0, 0, {{0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
    189197  {0x1e00, 1, {{0x1e60, 0x1e9b}, {0x1e61, 0x1e9b}}},
    190198  {0x1e96, 0, {{0x1e9b, 0x1e61}, {0x1e9b, 0x1e60}, {0x1e9e, 0xdf}}},
     
    279287    {0xa7b3, 0xab53}}},
    280288  {0xa7b4, 1, {}},
    281   {0xa7b8, 0, {{0xab53, 0xa7b3}}},
     289  {0xa7ba, 0, {{0xab53, 0xa7b3}}},
    282290  {0xab70, -38864, {}},
    283291  {0xabc0, 0, {}},
     
    298306  {0x118a0, 32, {}},
    299307  {0x118e0, 0, {}},
     308  {0x16e40, 32, {}},
     309  {0x16e80, 0, {}},
    300310  {0x1e900, 34, {}},
    301311  {0x1e944, 0, {}},
     
    388398        [0529, 0529], [052b, 052b], [052d, 052d], [052f, 0530],
    389399        [0557, 109f], [10c6, 10c6], [10c8, 10cc], [10ce, 13f7],
    390         [13fe, 1c7f], [1c89, 1dff], [1e01, 1e01], [1e03, 1e03],
    391         [1e05, 1e05], [1e07, 1e07], [1e09, 1e09], [1e0b, 1e0b],
    392         [1e0d, 1e0d], [1e0f, 1e0f], [1e11, 1e11], [1e13, 1e13],
    393         [1e15, 1e15], [1e17, 1e17], [1e19, 1e19], [1e1b, 1e1b],
    394         [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21], [1e23, 1e23],
    395         [1e25, 1e25], [1e27, 1e27], [1e29, 1e29], [1e2b, 1e2b],
    396         [1e2d, 1e2d], [1e2f, 1e2f], [1e31, 1e31], [1e33, 1e33],
    397         [1e35, 1e35], [1e37, 1e37], [1e39, 1e39], [1e3b, 1e3b],
    398         [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41], [1e43, 1e43],
    399         [1e45, 1e45], [1e47, 1e47], [1e49, 1e49], [1e4b, 1e4b],
    400         [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51], [1e53, 1e53],
    401         [1e55, 1e55], [1e57, 1e57], [1e59, 1e59], [1e5b, 1e5b],
    402         [1e5d, 1e5d], [1e5f, 1e5f], [1e61, 1e61], [1e63, 1e63],
    403         [1e65, 1e65], [1e67, 1e67], [1e69, 1e69], [1e6b, 1e6b],
    404         [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71], [1e73, 1e73],
    405         [1e75, 1e75], [1e77, 1e77], [1e79, 1e79], [1e7b, 1e7b],
    406         [1e7d, 1e7d], [1e7f, 1e7f], [1e81, 1e81], [1e83, 1e83],
    407         [1e85, 1e85], [1e87, 1e87], [1e89, 1e89], [1e8b, 1e8b],
    408         [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91], [1e93, 1e93],
    409         [1e95, 1e9a], [1e9c, 1e9d], [1e9f, 1e9f], [1ea1, 1ea1],
    410         [1ea3, 1ea3], [1ea5, 1ea5], [1ea7, 1ea7], [1ea9, 1ea9],
    411         [1eab, 1eab], [1ead, 1ead], [1eaf, 1eaf], [1eb1, 1eb1],
    412         [1eb3, 1eb3], [1eb5, 1eb5], [1eb7, 1eb7], [1eb9, 1eb9],
    413         [1ebb, 1ebb], [1ebd, 1ebd], [1ebf, 1ebf], [1ec1, 1ec1],
    414         [1ec3, 1ec3], [1ec5, 1ec5], [1ec7, 1ec7], [1ec9, 1ec9],
    415         [1ecb, 1ecb], [1ecd, 1ecd], [1ecf, 1ecf], [1ed1, 1ed1],
    416         [1ed3, 1ed3], [1ed5, 1ed5], [1ed7, 1ed7], [1ed9, 1ed9],
    417         [1edb, 1edb], [1edd, 1edd], [1edf, 1edf], [1ee1, 1ee1],
    418         [1ee3, 1ee3], [1ee5, 1ee5], [1ee7, 1ee7], [1ee9, 1ee9],
    419         [1eeb, 1eeb], [1eed, 1eed], [1eef, 1eef], [1ef1, 1ef1],
    420         [1ef3, 1ef3], [1ef5, 1ef5], [1ef7, 1ef7], [1ef9, 1ef9],
    421         [1efb, 1efb], [1efd, 1efd], [1eff, 1f07], [1f10, 1f17],
    422         [1f1e, 1f27], [1f30, 1f37], [1f40, 1f47], [1f4e, 1f58],
    423         [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e], [1f60, 1f67],
    424         [1f70, 1f87], [1f90, 1f97], [1fa0, 1fa7], [1fb0, 1fb7],
    425         [1fbd, 1fbd], [1fbf, 1fc7], [1fcd, 1fd7], [1fdc, 1fe7],
    426         [1fed, 1ff7], [1ffd, 2125], [2127, 2129], [212c, 2131],
    427         [2133, 215f], [2170, 2182], [2184, 24b5], [24d0, 2bff],
    428         [2c2f, 2c5f], [2c61, 2c61], [2c65, 2c66], [2c68, 2c68],
    429         [2c6a, 2c6a], [2c6c, 2c6c], [2c71, 2c71], [2c73, 2c74],
    430         [2c76, 2c7d], [2c81, 2c81], [2c83, 2c83], [2c85, 2c85],
    431         [2c87, 2c87], [2c89, 2c89], [2c8b, 2c8b], [2c8d, 2c8d],
    432         [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93], [2c95, 2c95],
    433         [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d],
    434         [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5],
    435         [2ca7, 2ca7], [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad],
    436         [2caf, 2caf], [2cb1, 2cb1], [2cb3, 2cb3], [2cb5, 2cb5],
    437         [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb], [2cbd, 2cbd],
    438         [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5],
    439         [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd],
    440         [2ccf, 2ccf], [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5],
    441         [2cd7, 2cd7], [2cd9, 2cd9], [2cdb, 2cdb], [2cdd, 2cdd],
    442         [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2cea], [2cec, 2cec],
    443         [2cee, 2cf1], [2cf3, a63f], [a641, a641], [a643, a643],
    444         [a645, a645], [a647, a647], [a649, a649], [a64b, a64b],
    445         [a64d, a64d], [a64f, a64f], [a651, a651], [a653, a653],
    446         [a655, a655], [a657, a657], [a659, a659], [a65b, a65b],
    447         [a65d, a65d], [a65f, a65f], [a661, a661], [a663, a663],
    448         [a665, a665], [a667, a667], [a669, a669], [a66b, a66b],
    449         [a66d, a67f], [a681, a681], [a683, a683], [a685, a685],
    450         [a687, a687], [a689, a689], [a68b, a68b], [a68d, a68d],
    451         [a68f, a68f], [a691, a691], [a693, a693], [a695, a695],
    452         [a697, a697], [a699, a699], [a69b, a721], [a723, a723],
    453         [a725, a725], [a727, a727], [a729, a729], [a72b, a72b],
    454         [a72d, a72d], [a72f, a731], [a733, a733], [a735, a735],
    455         [a737, a737], [a739, a739], [a73b, a73b], [a73d, a73d],
    456         [a73f, a73f], [a741, a741], [a743, a743], [a745, a745],
    457         [a747, a747], [a749, a749], [a74b, a74b], [a74d, a74d],
    458         [a74f, a74f], [a751, a751], [a753, a753], [a755, a755],
    459         [a757, a757], [a759, a759], [a75b, a75b], [a75d, a75d],
    460         [a75f, a75f], [a761, a761], [a763, a763], [a765, a765],
    461         [a767, a767], [a769, a769], [a76b, a76b], [a76d, a76d],
    462         [a76f, a778], [a77a, a77a], [a77c, a77c], [a77f, a77f],
    463         [a781, a781], [a783, a783], [a785, a785], [a787, a78a],
    464         [a78c, a78c], [a78e, a78f], [a791, a791], [a793, a795],
    465         [a797, a797], [a799, a799], [a79b, a79b], [a79d, a79d],
    466         [a79f, a79f], [a7a1, a7a1], [a7a3, a7a3], [a7a5, a7a5],
    467         [a7a7, a7a7], [a7a9, a7a9], [a7af, a7af], [a7b5, a7b5],
    468         [a7b7, ab6f], [abc0, ff20], [ff3b, 103ff], [10428, 104af],
    469         [104d4, 10c7f], [10cb3, 1189f], [118c0, 1e8ff], [1e922, 10ffff]**/
     400        [13fe, 1c7f], [1c89, 1c8f], [1cbb, 1cbc], [1cc0, 1dff],
     401        [1e01, 1e01], [1e03, 1e03], [1e05, 1e05], [1e07, 1e07],
     402        [1e09, 1e09], [1e0b, 1e0b], [1e0d, 1e0d], [1e0f, 1e0f],
     403        [1e11, 1e11], [1e13, 1e13], [1e15, 1e15], [1e17, 1e17],
     404        [1e19, 1e19], [1e1b, 1e1b], [1e1d, 1e1d], [1e1f, 1e1f],
     405        [1e21, 1e21], [1e23, 1e23], [1e25, 1e25], [1e27, 1e27],
     406        [1e29, 1e29], [1e2b, 1e2b], [1e2d, 1e2d], [1e2f, 1e2f],
     407        [1e31, 1e31], [1e33, 1e33], [1e35, 1e35], [1e37, 1e37],
     408        [1e39, 1e39], [1e3b, 1e3b], [1e3d, 1e3d], [1e3f, 1e3f],
     409        [1e41, 1e41], [1e43, 1e43], [1e45, 1e45], [1e47, 1e47],
     410        [1e49, 1e49], [1e4b, 1e4b], [1e4d, 1e4d], [1e4f, 1e4f],
     411        [1e51, 1e51], [1e53, 1e53], [1e55, 1e55], [1e57, 1e57],
     412        [1e59, 1e59], [1e5b, 1e5b], [1e5d, 1e5d], [1e5f, 1e5f],
     413        [1e61, 1e61], [1e63, 1e63], [1e65, 1e65], [1e67, 1e67],
     414        [1e69, 1e69], [1e6b, 1e6b], [1e6d, 1e6d], [1e6f, 1e6f],
     415        [1e71, 1e71], [1e73, 1e73], [1e75, 1e75], [1e77, 1e77],
     416        [1e79, 1e79], [1e7b, 1e7b], [1e7d, 1e7d], [1e7f, 1e7f],
     417        [1e81, 1e81], [1e83, 1e83], [1e85, 1e85], [1e87, 1e87],
     418        [1e89, 1e89], [1e8b, 1e8b], [1e8d, 1e8d], [1e8f, 1e8f],
     419        [1e91, 1e91], [1e93, 1e93], [1e95, 1e9a], [1e9c, 1e9d],
     420        [1e9f, 1e9f], [1ea1, 1ea1], [1ea3, 1ea3], [1ea5, 1ea5],
     421        [1ea7, 1ea7], [1ea9, 1ea9], [1eab, 1eab], [1ead, 1ead],
     422        [1eaf, 1eaf], [1eb1, 1eb1], [1eb3, 1eb3], [1eb5, 1eb5],
     423        [1eb7, 1eb7], [1eb9, 1eb9], [1ebb, 1ebb], [1ebd, 1ebd],
     424        [1ebf, 1ebf], [1ec1, 1ec1], [1ec3, 1ec3], [1ec5, 1ec5],
     425        [1ec7, 1ec7], [1ec9, 1ec9], [1ecb, 1ecb], [1ecd, 1ecd],
     426        [1ecf, 1ecf], [1ed1, 1ed1], [1ed3, 1ed3], [1ed5, 1ed5],
     427        [1ed7, 1ed7], [1ed9, 1ed9], [1edb, 1edb], [1edd, 1edd],
     428        [1edf, 1edf], [1ee1, 1ee1], [1ee3, 1ee3], [1ee5, 1ee5],
     429        [1ee7, 1ee7], [1ee9, 1ee9], [1eeb, 1eeb], [1eed, 1eed],
     430        [1eef, 1eef], [1ef1, 1ef1], [1ef3, 1ef3], [1ef5, 1ef5],
     431        [1ef7, 1ef7], [1ef9, 1ef9], [1efb, 1efb], [1efd, 1efd],
     432        [1eff, 1f07], [1f10, 1f17], [1f1e, 1f27], [1f30, 1f37],
     433        [1f40, 1f47], [1f4e, 1f58], [1f5a, 1f5a], [1f5c, 1f5c],
     434        [1f5e, 1f5e], [1f60, 1f67], [1f70, 1f87], [1f90, 1f97],
     435        [1fa0, 1fa7], [1fb0, 1fb7], [1fbd, 1fbd], [1fbf, 1fc7],
     436        [1fcd, 1fd7], [1fdc, 1fe7], [1fed, 1ff7], [1ffd, 2125],
     437        [2127, 2129], [212c, 2131], [2133, 215f], [2170, 2182],
     438        [2184, 24b5], [24d0, 2bff], [2c2f, 2c5f], [2c61, 2c61],
     439        [2c65, 2c66], [2c68, 2c68], [2c6a, 2c6a], [2c6c, 2c6c],
     440        [2c71, 2c71], [2c73, 2c74], [2c76, 2c7d], [2c81, 2c81],
     441        [2c83, 2c83], [2c85, 2c85], [2c87, 2c87], [2c89, 2c89],
     442        [2c8b, 2c8b], [2c8d, 2c8d], [2c8f, 2c8f], [2c91, 2c91],
     443        [2c93, 2c93], [2c95, 2c95], [2c97, 2c97], [2c99, 2c99],
     444        [2c9b, 2c9b], [2c9d, 2c9d], [2c9f, 2c9f], [2ca1, 2ca1],
     445        [2ca3, 2ca3], [2ca5, 2ca5], [2ca7, 2ca7], [2ca9, 2ca9],
     446        [2cab, 2cab], [2cad, 2cad], [2caf, 2caf], [2cb1, 2cb1],
     447        [2cb3, 2cb3], [2cb5, 2cb5], [2cb7, 2cb7], [2cb9, 2cb9],
     448        [2cbb, 2cbb], [2cbd, 2cbd], [2cbf, 2cbf], [2cc1, 2cc1],
     449        [2cc3, 2cc3], [2cc5, 2cc5], [2cc7, 2cc7], [2cc9, 2cc9],
     450        [2ccb, 2ccb], [2ccd, 2ccd], [2ccf, 2ccf], [2cd1, 2cd1],
     451        [2cd3, 2cd3], [2cd5, 2cd5], [2cd7, 2cd7], [2cd9, 2cd9],
     452        [2cdb, 2cdb], [2cdd, 2cdd], [2cdf, 2cdf], [2ce1, 2ce1],
     453        [2ce3, 2cea], [2cec, 2cec], [2cee, 2cf1], [2cf3, a63f],
     454        [a641, a641], [a643, a643], [a645, a645], [a647, a647],
     455        [a649, a649], [a64b, a64b], [a64d, a64d], [a64f, a64f],
     456        [a651, a651], [a653, a653], [a655, a655], [a657, a657],
     457        [a659, a659], [a65b, a65b], [a65d, a65d], [a65f, a65f],
     458        [a661, a661], [a663, a663], [a665, a665], [a667, a667],
     459        [a669, a669], [a66b, a66b], [a66d, a67f], [a681, a681],
     460        [a683, a683], [a685, a685], [a687, a687], [a689, a689],
     461        [a68b, a68b], [a68d, a68d], [a68f, a68f], [a691, a691],
     462        [a693, a693], [a695, a695], [a697, a697], [a699, a699],
     463        [a69b, a721], [a723, a723], [a725, a725], [a727, a727],
     464        [a729, a729], [a72b, a72b], [a72d, a72d], [a72f, a731],
     465        [a733, a733], [a735, a735], [a737, a737], [a739, a739],
     466        [a73b, a73b], [a73d, a73d], [a73f, a73f], [a741, a741],
     467        [a743, a743], [a745, a745], [a747, a747], [a749, a749],
     468        [a74b, a74b], [a74d, a74d], [a74f, a74f], [a751, a751],
     469        [a753, a753], [a755, a755], [a757, a757], [a759, a759],
     470        [a75b, a75b], [a75d, a75d], [a75f, a75f], [a761, a761],
     471        [a763, a763], [a765, a765], [a767, a767], [a769, a769],
     472        [a76b, a76b], [a76d, a76d], [a76f, a778], [a77a, a77a],
     473        [a77c, a77c], [a77f, a77f], [a781, a781], [a783, a783],
     474        [a785, a785], [a787, a78a], [a78c, a78c], [a78e, a78f],
     475        [a791, a791], [a793, a795], [a797, a797], [a799, a799],
     476        [a79b, a79b], [a79d, a79d], [a79f, a79f], [a7a1, a7a1],
     477        [a7a3, a7a3], [a7a5, a7a5], [a7a7, a7a7], [a7a9, a7a9],
     478        [a7af, a7af], [a7b5, a7b5], [a7b7, a7b7], [a7b9, ab6f],
     479        [abc0, ff20], [ff3b, 103ff], [10428, 104af], [104d4, 10c7f],
     480        [10cb3, 1189f], [118c0, 16e3f], [16e60, 1e8ff], [1e922, 10ffff]**/
    470481       
    471482       
     
    475486        {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
    476487        {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
    477         {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 1}, {Full, 11},
     488        {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 2}, {Full, 10},
    478489        {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    479490        {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
     
    482493        {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
    483494        {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
    484         {Empty, 1}, {Full, 1666}, {Empty, 1}, {Mixed, 1}, {Full, 30902}};
     495        {Empty, 1}, {Full, 684}, {Empty, 1}, {Full, 981}, {Empty, 1},
     496        {Mixed, 1}, {Full, 30902}};
    485497        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
    486498        0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
     
    490502        0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
    491503        0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
    492         0xc0ffffff, 0xfffffe00, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    493         0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
    494         0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff, 0x00ff00ff,
    495         0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf, 0xffff0000,
    496         0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000, 0x3fda1562,
    497         0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa, 0xaaaaaaaa,
    498         0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa, 0x95ffaaaa,
    499         0xaabad7aa, 0xffa082aa, 0x0000ffff, 0xf8000001, 0xffffff00,
    500         0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
     504        0xc0ffffff, 0x0000fe00, 0x18000000, 0xaaaaaaaa, 0xaaaaaaaa,
     505        0xaaaaaaaa, 0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
     506        0xaaaaaaaa, 0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff,
     507        0x00ff00ff, 0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf,
     508        0xffff0000, 0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000,
     509        0x3fda1562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa,
     510        0xaaaaaaaa, 0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa,
     511        0x95ffaaaa, 0xaabad7aa, 0xfea082aa, 0x0000ffff, 0xf8000001,
     512        0xffffff00, 0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
    501513        }
    502514
    503         const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 55, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 74, 0};
     515        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 57, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 75, 0};
    504516
    505517
     
    555567        1804, 1808, 1812, 1816, 1820, 1824, 1828, 1832, 1836, 1840, 1844,
    556568        1848, 1852, 1856, 1860, 1864, 1868, 1872, 1876, 1880, 1884, 1888,
    557         1892, 1896, 1900, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1931,
    558         1935, 1939, 1943, 1947, 1951, 1955, 1959, 1963, 1967, 1971, 1975,
    559         1979, 1983, 1987, 1991, 1995, 1999, 2003, 2007, 2011, 2015, 2019,
    560         2023, 2027, 2031, 2035, 2039, 2043, 2047, 2051, 2055, 2059, 2063,
    561         2067, 2071, 2075, 2079, 2083, 2087, 2091, 2095, 2099, 2103, 2107,
    562         2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, 2147, 2151,
     569        1892, 1896, 1900, 1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932,
     570        1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976,
     571        1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020,
     572        2024, 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064,
     573        2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2100, 2104, 2108,
     574        2112, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143, 2147, 2151,
    563575        2155, 2159, 2163, 2167, 2171, 2175, 2179, 2183, 2187, 2191, 2195,
    564576        2199, 2203, 2207, 2211, 2215, 2219, 2223, 2227, 2231, 2235, 2239,
     
    567579        2331, 2335, 2339, 2343, 2347, 2351, 2355, 2359, 2363, 2367, 2371,
    568580        2375, 2379, 2383, 2387, 2391, 2395, 2399, 2403, 2407, 2411, 2415,
    569         2419, 2423, 2427, 2431, 2434, 2438, 2442, 2446, 2450, 2454, 2458,
    570         2462, 2466, 2470, 2474, 2478, 2482, 2486, 2490, 2494, 2498, 2502,
    571         2506, 2510, 2513, 2515, 2518, 2522, 2526, 2530, 2534, 2538, 2542,
    572         2546, 2550, 2554, 2558, 2562, 2566, 2570, 2574, 2578, 2582, 2586,
    573         2590, 2594, 2598, 2602, 2606, 2610, 2614, 2618, 2622, 2626, 2630,
    574         2634, 2638, 2642, 2646, 2650, 2654, 2658, 2662, 2666, 2670, 2674,
    575         2678, 2682, 2686, 2690, 2694, 2698, 2702, 2706, 2710, 2714, 2718,
     581        2419, 2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459,
     582        2463, 2467, 2471, 2475, 2479, 2483, 2487, 2491, 2495, 2499, 2503,
     583        2507, 2511, 2515, 2519, 2523, 2527, 2531, 2535, 2539, 2543, 2547,
     584        2551, 2555, 2559, 2563, 2567, 2571, 2575, 2579, 2583, 2587, 2591,
     585        2595, 2599, 2603, 2607, 2611, 2615, 2618, 2622, 2626, 2630, 2634,
     586        2638, 2642, 2646, 2650, 2654, 2658, 2662, 2666, 2670, 2674, 2678,
     587        2682, 2686, 2690, 2694, 2697, 2699, 2702, 2706, 2710, 2714, 2718,
    576588        2722, 2726, 2730, 2734, 2738, 2742, 2746, 2750, 2754, 2758, 2762,
    577589        2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806,
    578590        2810, 2814, 2818, 2822, 2826, 2830, 2834, 2838, 2842, 2846, 2850,
    579         2854, 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2889, 2893,
    580         2896, 2900, 2904, 2908, 2911, 2914, 2917, 2920, 2924, 2928, 2931,
    581         2934, 2938, 2942, 2946, 2950, 2954, 2958, 2962, 2966, 2970, 2974,
    582         2978, 2982, 2986, 2990, 2994, 2998, 3002, 3006, 3010, 3014, 3018,
    583         3022, 3026, 3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062,
    584         3066, 3070, 3074, 3078, 3082, 3086, 3090, 3094, 3098, 3102, 3106,
    585         3110, 3114, 3118, 3122, 3126, 3130, 3134, 3138, 3142, 3146, 3150,
     591        2854, 2858, 2862, 2866, 2870, 2874, 2878, 2882, 2886, 2890, 2894,
     592        2898, 2902, 2906, 2910, 2914, 2918, 2922, 2926, 2930, 2934, 2938,
     593        2942, 2946, 2950, 2954, 2958, 2962, 2966, 2970, 2974, 2978, 2982,
     594        2986, 2990, 2994, 2998, 3002, 3006, 3010, 3014, 3018, 3022, 3026,
     595        3030, 3034, 3038, 3042, 3046, 3050, 3054, 3058, 3062, 3066, 3070,
     596        3073, 3077, 3080, 3084, 3088, 3092, 3095, 3098, 3101, 3104, 3108,
     597        3112, 3115, 3118, 3122, 3126, 3130, 3134, 3138, 3142, 3146, 3150,
    586598        3154, 3158, 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3190, 3194,
    587599        3198, 3202, 3206, 3210, 3214, 3218, 3222, 3226, 3230, 3234, 3238,
     
    591603        3374, 3378, 3382, 3386, 3390, 3394, 3398, 3402, 3406, 3410, 3414,
    592604        3418, 3422, 3426, 3430, 3434, 3438, 3442, 3446, 3450, 3454, 3458,
    593         3462, 3466, 3470, 3474, 3478, 3482, 3485, 3489, 3493, 3497, 3501,
    594         3505, 3509, 3513, 3517, 3521, 3525, 3529, 3533, 3536, 3539, 3542,
    595         3545, 3548, 3551, 3554, 3557, 3561, 3565, 3569, 3573, 3577, 3581,
    596         3585, 3589, 3593, 3597, 3601, 3605, 3609, 3613, 3617, 3621, 3625,
    597         3629, 3633, 3637, 3641, 3645, 3649, 3653, 3657, 3661, 3665, 3669,
    598         3673, 3677, 3681, 3685, 3689, 3693, 3697, 3701, 3705, 3709, 3713,
    599         3717, 3721, 3725, 3729, 3733, 3737, 3741, 3745, 3749, 3753, 3757,
     605        3462, 3466, 3470, 3474, 3478, 3482, 3486, 3490, 3494, 3498, 3502,
     606        3506, 3510, 3514, 3518, 3522, 3526, 3530, 3534, 3538, 3542, 3546,
     607        3550, 3554, 3558, 3562, 3566, 3570, 3574, 3578, 3582, 3586, 3590,
     608        3594, 3598, 3602, 3606, 3610, 3614, 3618, 3622, 3626, 3630, 3634,
     609        3638, 3642, 3646, 3650, 3654, 3658, 3662, 3666, 3669, 3673, 3677,
     610        3681, 3685, 3689, 3693, 3697, 3701, 3705, 3709, 3713, 3717, 3720,
     611        3723, 3726, 3729, 3732, 3735, 3738, 3741, 3745, 3749, 3753, 3757,
    600612        3761, 3765, 3769, 3773, 3777, 3781, 3785, 3789, 3793, 3797, 3801,
    601613        3805, 3809, 3813, 3817, 3821, 3825, 3829, 3833, 3837, 3841, 3845,
     
    603615        3893, 3897, 3901, 3905, 3909, 3913, 3917, 3921, 3925, 3929, 3933,
    604616        3937, 3941, 3945, 3949, 3953, 3957, 3961, 3965, 3969, 3973, 3977,
    605         3981, 3985, 3989, 3993, 3998, 4003, 4008, 4013, 4018, 4023, 4028,
    606         4033, 4038, 4043, 4048, 4053, 4058, 4063, 4068, 4073, 4078, 4083,
    607         4088, 4093, 4098, 4103, 4108, 4113, 4118, 4123, 4128, 4133, 4138,
    608         4143, 4148, 4153, 4158, 4163, 4168, 4173, 4178, 4183, 4188, 4193,
    609         4198, 4203, 4208, 4213, 4218, 4223, 4228, 4233, 4238, 4243, 4248,
    610         4253, 4258, 4263, 4268, 4273, 4278, 4283, 4288, 4293, 4298, 4303,
    611         4308, 4313, 4318, 4323, 4328, 4333, 4338, 4343, 4348, 4353, 4358,
    612         4363, 4368, 4373, 4378, 4383, 4388, 4393, 4398, 4403, 4408, 4413,
    613         4418, 4423, 4428, 4433, 4438, 4443, 4448, 4453, 4458, 4463, 4468,
    614         4473, 4478, 4483, 4488, 4493, 4498, 4503, 4508, 4513, 4518, 4523,
    615         4528, 4533, 4538, 4543, 4548, 4553, 4558, 4563, 4568, 4573, 4578,
    616         4583, 4588, 4593, 4598, 4603, 4608, 4613, 4618, 4623, 4628, 4633,
    617         4638, 4643, 4648, 4653, 4658, 4663, 4668, 4673, 4678, 4683, 4688,
    618         4693, 4698, 4703, 4708, 4713, 4718, 4723, 4728, 4733, 4738, 4743,
    619         4748, 4753, 4758, 4763, 4768, 4773, 4778, 4783, 4788, 4793, 4798,
    620         4803, 4808, 4813, 4818, 4823, 4828, 4833, 4838, 4843, 4848, 4853,
    621         4858, 4863, 4868, 4873, 4878, 4883, 4888, 4893, 4898, 4903, 4908,
    622         4913, 4918, 4923, 4928, 4933, 4938, 4943, 4948, 4953, 4958};
    623         const static char string_buffer LLVM_ALIGNAS(32) [5120] = u8R"__(a
     617        3981, 3985, 3989, 3993, 3997, 4001, 4005, 4009, 4013, 4017, 4021,
     618        4025, 4029, 4033, 4037, 4041, 4045, 4049, 4053, 4057, 4061, 4065,
     619        4069, 4073, 4077, 4081, 4085, 4089, 4093, 4097, 4101, 4105, 4109,
     620        4113, 4117, 4121, 4125, 4129, 4133, 4137, 4141, 4145, 4149, 4153,
     621        4157, 4161, 4165, 4169, 4173, 4177, 4181, 4186, 4191, 4196, 4201,
     622        4206, 4211, 4216, 4221, 4226, 4231, 4236, 4241, 4246, 4251, 4256,
     623        4261, 4266, 4271, 4276, 4281, 4286, 4291, 4296, 4301, 4306, 4311,
     624        4316, 4321, 4326, 4331, 4336, 4341, 4346, 4351, 4356, 4361, 4366,
     625        4371, 4376, 4381, 4386, 4391, 4396, 4401, 4406, 4411, 4416, 4421,
     626        4426, 4431, 4436, 4441, 4446, 4451, 4456, 4461, 4466, 4471, 4476,
     627        4481, 4486, 4491, 4496, 4501, 4506, 4511, 4516, 4521, 4526, 4531,
     628        4536, 4541, 4546, 4551, 4556, 4561, 4566, 4571, 4576, 4581, 4586,
     629        4591, 4596, 4601, 4606, 4611, 4616, 4621, 4626, 4631, 4636, 4641,
     630        4646, 4651, 4656, 4661, 4666, 4671, 4676, 4681, 4686, 4691, 4696,
     631        4701, 4706, 4711, 4716, 4721, 4726, 4731, 4736, 4741, 4746, 4751,
     632        4756, 4761, 4766, 4771, 4776, 4781, 4786, 4791, 4796, 4801, 4806,
     633        4811, 4816, 4821, 4826, 4831, 4836, 4841, 4846, 4851, 4856, 4861,
     634        4866, 4871, 4876, 4881, 4886, 4891, 4896, 4901, 4906, 4911, 4916,
     635        4921, 4926, 4931, 4936, 4941, 4946, 4951, 4956, 4961, 4966, 4971,
     636        4976, 4981, 4986, 4991, 4996, 5001, 5006, 5011, 5016, 5021, 5026,
     637        5031, 5036, 5041, 5046, 5051, 5056, 5061, 5066, 5071, 5076, 5081,
     638        5086, 5091, 5096, 5101, 5106, 5111, 5116, 5121, 5126, 5131, 5136,
     639        5141, 5146, 5151, 5156, 5161, 5166, 5171, 5176, 5181, 5186, 5191,
     640        5196, 5201, 5206, 5211, 5216, 5221, 5226, 5231, 5236, 5241, 5246,
     641        5251, 5256, 5261, 5266, 5271, 5276, 5281, 5286, 5291, 5296, 5301,
     642        5306};
     643        const static char string_buffer LLVM_ALIGNAS(32) [5376] = u8R"__(a
    624644b
    625645c
     
    11631183Ñ£
    11641184ꙋ
     1185ა
     1186ბ
     1187გ
     1188დ
     1189ე
     1190ვ
     1191ზ
     1192თ
     1193ი
     1194კ
     1195ლ
     1196მ
     1197ნ
     1198ო
     1199პ
     1200ჟ
     1201რ
     1202ს
     1203ტ
     1204უ
     1205Ⴠ
     1206ქ
     1207჊
     1208ყ
     1209ლ
     1210ჩ
     1211ც
     1212ძ
     1213წ
     1214ჭ
     1215ხ
     1216ჯ
     1217ჰ
     1218ჱ
     1219ჲ
     1220ჳ
     1221჎
     1222ჵ
     1223ჶ
     1224ჷ
     1225პ
     1226ჹ
     1227ჺ
     1228ნ
     1229ჟ
     1230ჿ
    11651231ខ
    11661232ឃ
     
    16861752ꞵ
    16871753ꞷ
     1754ꞹ
    16881755Ꭰ
    16891756Ꭱ
     
    19562023𑣞
    19572024𑣟
     2025𖹠
     2026𖹡
     2027𖹢
     2028𖹣
     2029ð–¹€
     2030𖹥
     2031𖹊
     2032𖹧
     2033𖹚
     2034𖹩
     2035𖹪
     2036𖹫
     2037𖹬
     2038𖹭
     2039𖹮
     2040𖹯
     2041𖹰
     2042𖹱
     2043𖹲
     2044𖹳
     2045𖹎
     2046𖹵
     2047𖹶
     2048𖹷
     2049𖹞
     2050𖹹
     2051𖹺
     2052𖹻
     2053𖹌
     2054𖹜
     2055𖹟
     2056𖹿
    19582057𞀢
    19592058𞀣
     
    20592158        0x10c1, 0x10c2, 0x10c3, 0x10c4, 0x10c5, 0x10c7, 0x10cd, 0x13f8,
    20602159        0x13f9, 0x13fa, 0x13fb, 0x13fc, 0x13fd, 0x1c80, 0x1c81, 0x1c82,
    2061         0x1c83, 0x1c84, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1e00, 0x1e02,
    2062         0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12,
    2063         0x1e14, 0x1e16, 0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22,
    2064         0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32,
    2065         0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42,
    2066         0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52,
    2067         0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62,
    2068         0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72,
    2069         0x1e74, 0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82,
    2070         0x1e84, 0x1e86, 0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92,
    2071         0x1e94, 0x1e9b, 0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8,
    2072         0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8,
    2073         0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8,
    2074         0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
    2075         0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8,
    2076         0x1eea, 0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8,
    2077         0x1efa, 0x1efc, 0x1efe, 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c,
    2078         0x1f0d, 0x1f0e, 0x1f0f, 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c,
    2079         0x1f1d, 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e,
    2080         0x1f2f, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e,
    2081         0x1f3f, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x1f59,
    2082         0x1f5b, 0x1f5d, 0x1f5f, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c,
    2083         0x1f6d, 0x1f6e, 0x1f6f, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c,
    2084         0x1f8d, 0x1f8e, 0x1f8f, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c,
    2085         0x1f9d, 0x1f9e, 0x1f9f, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac,
    2086         0x1fad, 0x1fae, 0x1faf, 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc,
    2087         0x1fbe, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fcc, 0x1fd8, 0x1fd9,
    2088         0x1fda, 0x1fdb, 0x1fe8, 0x1fe9, 0x1fea, 0x1feb, 0x1fec, 0x1ff8,
    2089         0x1ff9, 0x1ffa, 0x1ffb, 0x1ffc, 0x2126, 0x212a, 0x212b, 0x2132,
    2090         0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
    2091         0x2168, 0x2169, 0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f,
    2092         0x2183, 0x24b6, 0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc,
    2093         0x24bd, 0x24be, 0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4,
    2094         0x24c5, 0x24c6, 0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc,
    2095         0x24cd, 0x24ce, 0x24cf, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04,
    2096         0x2c05, 0x2c06, 0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c,
    2097         0x2c0d, 0x2c0e, 0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14,
    2098         0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c,
    2099         0x2c1d, 0x2c1e, 0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24,
    2100         0x2c25, 0x2c26, 0x2c27, 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c,
    2101         0x2c2d, 0x2c2e, 0x2c60, 0x2c62, 0x2c63, 0x2c64, 0x2c67, 0x2c69,
    2102         0x2c6b, 0x2c6d, 0x2c6e, 0x2c6f, 0x2c70, 0x2c72, 0x2c75, 0x2c7e,
    2103         0x2c7f, 0x2c80, 0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c,
    2104         0x2c8e, 0x2c90, 0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c,
    2105         0x2c9e, 0x2ca0, 0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac,
    2106         0x2cae, 0x2cb0, 0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc,
    2107         0x2cbe, 0x2cc0, 0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc,
    2108         0x2cce, 0x2cd0, 0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc,
    2109         0x2cde, 0x2ce0, 0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642,
    2110         0xa644, 0xa646, 0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652,
    2111         0xa654, 0xa656, 0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662,
    2112         0xa664, 0xa666, 0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684,
    2113         0xa686, 0xa688, 0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694,
    2114         0xa696, 0xa698, 0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a,
    2115         0xa72c, 0xa72e, 0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c,
    2116         0xa73e, 0xa740, 0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c,
    2117         0xa74e, 0xa750, 0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c,
    2118         0xa75e, 0xa760, 0xa762, 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c,
    2119         0xa76e, 0xa779, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa782, 0xa784,
    2120         0xa786, 0xa78b, 0xa78d, 0xa790, 0xa792, 0xa796, 0xa798, 0xa79a,
    2121         0xa79c, 0xa79e, 0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa,
    2122         0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3,
    2123         0xa7b4, 0xa7b6, 0xab70, 0xab71, 0xab72, 0xab73, 0xab74, 0xab75,
    2124         0xab76, 0xab77, 0xab78, 0xab79, 0xab7a, 0xab7b, 0xab7c, 0xab7d,
    2125         0xab7e, 0xab7f, 0xab80, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85,
    2126         0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, 0xab8d,
    2127         0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92, 0xab93, 0xab94, 0xab95,
    2128         0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d,
    2129         0xab9e, 0xab9f, 0xaba0, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5,
    2130         0xaba6, 0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad,
    2131         0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5,
    2132         0xabb6, 0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd,
    2133         0xabbe, 0xabbf, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26,
    2134         0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e,
    2135         0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36,
    2136         0xff37, 0xff38, 0xff39, 0xff3a, 0x10400, 0x10401, 0x10402, 0x10403,
    2137         0x10404, 0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040a,
    2138         0x1040b, 0x1040c, 0x1040d, 0x1040e, 0x1040f, 0x10410, 0x10411,
    2139         0x10412, 0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418,
    2140         0x10419, 0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f,
    2141         0x10420, 0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426,
    2142         0x10427, 0x104b0, 0x104b1, 0x104b2, 0x104b3, 0x104b4, 0x104b5,
    2143         0x104b6, 0x104b7, 0x104b8, 0x104b9, 0x104ba, 0x104bb, 0x104bc,
    2144         0x104bd, 0x104be, 0x104bf, 0x104c0, 0x104c1, 0x104c2, 0x104c3,
    2145         0x104c4, 0x104c5, 0x104c6, 0x104c7, 0x104c8, 0x104c9, 0x104ca,
    2146         0x104cb, 0x104cc, 0x104cd, 0x104ce, 0x104cf, 0x104d0, 0x104d1,
    2147         0x104d2, 0x104d3, 0x10c80, 0x10c81, 0x10c82, 0x10c83, 0x10c84,
    2148         0x10c85, 0x10c86, 0x10c87, 0x10c88, 0x10c89, 0x10c8a, 0x10c8b,
    2149         0x10c8c, 0x10c8d, 0x10c8e, 0x10c8f, 0x10c90, 0x10c91, 0x10c92,
    2150         0x10c93, 0x10c94, 0x10c95, 0x10c96, 0x10c97, 0x10c98, 0x10c99,
    2151         0x10c9a, 0x10c9b, 0x10c9c, 0x10c9d, 0x10c9e, 0x10c9f, 0x10ca0,
    2152         0x10ca1, 0x10ca2, 0x10ca3, 0x10ca4, 0x10ca5, 0x10ca6, 0x10ca7,
    2153         0x10ca8, 0x10ca9, 0x10caa, 0x10cab, 0x10cac, 0x10cad, 0x10cae,
    2154         0x10caf, 0x10cb0, 0x10cb1, 0x10cb2, 0x118a0, 0x118a1, 0x118a2,
    2155         0x118a3, 0x118a4, 0x118a5, 0x118a6, 0x118a7, 0x118a8, 0x118a9,
    2156         0x118aa, 0x118ab, 0x118ac, 0x118ad, 0x118ae, 0x118af, 0x118b0,
    2157         0x118b1, 0x118b2, 0x118b3, 0x118b4, 0x118b5, 0x118b6, 0x118b7,
    2158         0x118b8, 0x118b9, 0x118ba, 0x118bb, 0x118bc, 0x118bd, 0x118be,
    2159         0x118bf, 0x1e900, 0x1e901, 0x1e902, 0x1e903, 0x1e904, 0x1e905,
    2160         0x1e906, 0x1e907, 0x1e908, 0x1e909, 0x1e90a, 0x1e90b, 0x1e90c,
    2161         0x1e90d, 0x1e90e, 0x1e90f, 0x1e910, 0x1e911, 0x1e912, 0x1e913,
    2162         0x1e914, 0x1e915, 0x1e916, 0x1e917, 0x1e918, 0x1e919, 0x1e91a,
    2163         0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e, 0x1e91f, 0x1e920, 0x1e921};
     2160        0x1c83, 0x1c84, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1c90, 0x1c91,
     2161        0x1c92, 0x1c93, 0x1c94, 0x1c95, 0x1c96, 0x1c97, 0x1c98, 0x1c99,
     2162        0x1c9a, 0x1c9b, 0x1c9c, 0x1c9d, 0x1c9e, 0x1c9f, 0x1ca0, 0x1ca1,
     2163        0x1ca2, 0x1ca3, 0x1ca4, 0x1ca5, 0x1ca6, 0x1ca7, 0x1ca8, 0x1ca9,
     2164        0x1caa, 0x1cab, 0x1cac, 0x1cad, 0x1cae, 0x1caf, 0x1cb0, 0x1cb1,
     2165        0x1cb2, 0x1cb3, 0x1cb4, 0x1cb5, 0x1cb6, 0x1cb7, 0x1cb8, 0x1cb9,
     2166        0x1cba, 0x1cbd, 0x1cbe, 0x1cbf, 0x1e00, 0x1e02, 0x1e04, 0x1e06,
     2167        0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12, 0x1e14, 0x1e16,
     2168        0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22, 0x1e24, 0x1e26,
     2169        0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32, 0x1e34, 0x1e36,
     2170        0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42, 0x1e44, 0x1e46,
     2171        0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52, 0x1e54, 0x1e56,
     2172        0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62, 0x1e64, 0x1e66,
     2173        0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72, 0x1e74, 0x1e76,
     2174        0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82, 0x1e84, 0x1e86,
     2175        0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92, 0x1e94, 0x1e9b,
     2176        0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac,
     2177        0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8, 0x1eba, 0x1ebc,
     2178        0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8, 0x1eca, 0x1ecc,
     2179        0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1eda, 0x1edc,
     2180        0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8, 0x1eea, 0x1eec,
     2181        0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8, 0x1efa, 0x1efc,
     2182        0x1efe, 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e,
     2183        0x1f0f, 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0x1f28,
     2184        0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f, 0x1f38,
     2185        0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f, 0x1f48,
     2186        0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x1f59, 0x1f5b, 0x1f5d,
     2187        0x1f5f, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e,
     2188        0x1f6f, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e,
     2189        0x1f8f, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e,
     2190        0x1f9f, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae,
     2191        0x1faf, 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc, 0x1fbe, 0x1fc8,
     2192        0x1fc9, 0x1fca, 0x1fcb, 0x1fcc, 0x1fd8, 0x1fd9, 0x1fda, 0x1fdb,
     2193        0x1fe8, 0x1fe9, 0x1fea, 0x1feb, 0x1fec, 0x1ff8, 0x1ff9, 0x1ffa,
     2194        0x1ffb, 0x1ffc, 0x2126, 0x212a, 0x212b, 0x2132, 0x2160, 0x2161,
     2195        0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169,
     2196        0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f, 0x2183, 0x24b6,
     2197        0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc, 0x24bd, 0x24be,
     2198        0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4, 0x24c5, 0x24c6,
     2199        0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc, 0x24cd, 0x24ce,
     2200        0x24cf, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04, 0x2c05, 0x2c06,
     2201        0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c, 0x2c0d, 0x2c0e,
     2202        0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14, 0x2c15, 0x2c16,
     2203        0x2c17, 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c, 0x2c1d, 0x2c1e,
     2204        0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26,
     2205        0x2c27, 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e,
     2206        0x2c60, 0x2c62, 0x2c63, 0x2c64, 0x2c67, 0x2c69, 0x2c6b, 0x2c6d,
     2207        0x2c6e, 0x2c6f, 0x2c70, 0x2c72, 0x2c75, 0x2c7e, 0x2c7f, 0x2c80,
     2208        0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c, 0x2c8e, 0x2c90,
     2209        0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c, 0x2c9e, 0x2ca0,
     2210        0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac, 0x2cae, 0x2cb0,
     2211        0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc, 0x2cbe, 0x2cc0,
     2212        0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc, 0x2cce, 0x2cd0,
     2213        0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc, 0x2cde, 0x2ce0,
     2214        0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642, 0xa644, 0xa646,
     2215        0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652, 0xa654, 0xa656,
     2216        0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662, 0xa664, 0xa666,
     2217        0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684, 0xa686, 0xa688,
     2218        0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694, 0xa696, 0xa698,
     2219        0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a, 0xa72c, 0xa72e,
     2220        0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c, 0xa73e, 0xa740,
     2221        0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c, 0xa74e, 0xa750,
     2222        0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c, 0xa75e, 0xa760,
     2223        0xa762, 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c, 0xa76e, 0xa779,
     2224        0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa782, 0xa784, 0xa786, 0xa78b,
     2225        0xa78d, 0xa790, 0xa792, 0xa796, 0xa798, 0xa79a, 0xa79c, 0xa79e,
     2226        0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa, 0xa7ab, 0xa7ac,
     2227        0xa7ad, 0xa7ae, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b6,
     2228        0xa7b8, 0xab70, 0xab71, 0xab72, 0xab73, 0xab74, 0xab75, 0xab76,
     2229        0xab77, 0xab78, 0xab79, 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e,
     2230        0xab7f, 0xab80, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85, 0xab86,
     2231        0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xab8e,
     2232        0xab8f, 0xab90, 0xab91, 0xab92, 0xab93, 0xab94, 0xab95, 0xab96,
     2233        0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d, 0xab9e,
     2234        0xab9f, 0xaba0, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6,
     2235        0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae,
     2236        0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5, 0xabb6,
     2237        0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd, 0xabbe,
     2238        0xabbf, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27,
     2239        0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
     2240        0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
     2241        0xff38, 0xff39, 0xff3a, 0x10400, 0x10401, 0x10402, 0x10403, 0x10404,
     2242        0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040a, 0x1040b,
     2243        0x1040c, 0x1040d, 0x1040e, 0x1040f, 0x10410, 0x10411, 0x10412,
     2244        0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418, 0x10419,
     2245        0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f, 0x10420,
     2246        0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426, 0x10427,
     2247        0x104b0, 0x104b1, 0x104b2, 0x104b3, 0x104b4, 0x104b5, 0x104b6,
     2248        0x104b7, 0x104b8, 0x104b9, 0x104ba, 0x104bb, 0x104bc, 0x104bd,
     2249        0x104be, 0x104bf, 0x104c0, 0x104c1, 0x104c2, 0x104c3, 0x104c4,
     2250        0x104c5, 0x104c6, 0x104c7, 0x104c8, 0x104c9, 0x104ca, 0x104cb,
     2251        0x104cc, 0x104cd, 0x104ce, 0x104cf, 0x104d0, 0x104d1, 0x104d2,
     2252        0x104d3, 0x10c80, 0x10c81, 0x10c82, 0x10c83, 0x10c84, 0x10c85,
     2253        0x10c86, 0x10c87, 0x10c88, 0x10c89, 0x10c8a, 0x10c8b, 0x10c8c,
     2254        0x10c8d, 0x10c8e, 0x10c8f, 0x10c90, 0x10c91, 0x10c92, 0x10c93,
     2255        0x10c94, 0x10c95, 0x10c96, 0x10c97, 0x10c98, 0x10c99, 0x10c9a,
     2256        0x10c9b, 0x10c9c, 0x10c9d, 0x10c9e, 0x10c9f, 0x10ca0, 0x10ca1,
     2257        0x10ca2, 0x10ca3, 0x10ca4, 0x10ca5, 0x10ca6, 0x10ca7, 0x10ca8,
     2258        0x10ca9, 0x10caa, 0x10cab, 0x10cac, 0x10cad, 0x10cae, 0x10caf,
     2259        0x10cb0, 0x10cb1, 0x10cb2, 0x118a0, 0x118a1, 0x118a2, 0x118a3,
     2260        0x118a4, 0x118a5, 0x118a6, 0x118a7, 0x118a8, 0x118a9, 0x118aa,
     2261        0x118ab, 0x118ac, 0x118ad, 0x118ae, 0x118af, 0x118b0, 0x118b1,
     2262        0x118b2, 0x118b3, 0x118b4, 0x118b5, 0x118b6, 0x118b7, 0x118b8,
     2263        0x118b9, 0x118ba, 0x118bb, 0x118bc, 0x118bd, 0x118be, 0x118bf,
     2264        0x16e40, 0x16e41, 0x16e42, 0x16e43, 0x16e44, 0x16e45, 0x16e46,
     2265        0x16e47, 0x16e48, 0x16e49, 0x16e4a, 0x16e4b, 0x16e4c, 0x16e4d,
     2266        0x16e4e, 0x16e4f, 0x16e50, 0x16e51, 0x16e52, 0x16e53, 0x16e54,
     2267        0x16e55, 0x16e56, 0x16e57, 0x16e58, 0x16e59, 0x16e5a, 0x16e5b,
     2268        0x16e5c, 0x16e5d, 0x16e5e, 0x16e5f, 0x1e900, 0x1e901, 0x1e902,
     2269        0x1e903, 0x1e904, 0x1e905, 0x1e906, 0x1e907, 0x1e908, 0x1e909,
     2270        0x1e90a, 0x1e90b, 0x1e90c, 0x1e90d, 0x1e90e, 0x1e90f, 0x1e910,
     2271        0x1e911, 0x1e912, 0x1e913, 0x1e914, 0x1e915, 0x1e916, 0x1e917,
     2272        0x1e918, 0x1e919, 0x1e91a, 0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e,
     2273        0x1e91f, 0x1e920, 0x1e921};
    21642274        static StringPropertyObject property_object(scf,
    21652275                                                    std::move(null_codepoint_set),
  • icGREP/icgrep-devel/icgrep/UCD/CompositionExclusions.h

    r5748 r6192  
    22#define COMPOSITIONEXCLUSIONS_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
  • icGREP/icgrep-devel/icgrep/UCD/DerivedAge.h

    r5751 r6192  
    22#define DERIVEDAGE_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    1616namespace UCD {
    1717  namespace AGE_ns {
    18     const unsigned independent_prop_values = 20;
     18    const unsigned independent_prop_values = 21;
    1919    /** Code Point Ranges for Unassigned
    2020    [0378, 0379], [0380, 0383], [038b, 038b], [038d, 038d], [03a2, 03a2],
    21     [0530, 0530], [0557, 0558], [0560, 0560], [0588, 0588], [058b, 058c],
    22     [0590, 0590], [05c8, 05cf], [05eb, 05ef], [05f5, 05ff], [061d, 061d],
    23     [070e, 070e], [074b, 074c], [07b2, 07bf], [07fb, 07ff], [082e, 082f],
    24     [083f, 083f], [085c, 085d], [085f, 085f], [086b, 089f], [08b5, 08b5],
    25     [08be, 08d3], [0984, 0984], [098d, 098e], [0991, 0992], [09a9, 09a9],
    26     [09b1, 09b1], [09b3, 09b5], [09ba, 09bb], [09c5, 09c6], [09c9, 09ca],
    27     [09cf, 09d6], [09d8, 09db], [09de, 09de], [09e4, 09e5], [09fe, 0a00],
    28     [0a04, 0a04], [0a0b, 0a0e], [0a11, 0a12], [0a29, 0a29], [0a31, 0a31],
    29     [0a34, 0a34], [0a37, 0a37], [0a3a, 0a3b], [0a3d, 0a3d], [0a43, 0a46],
    30     [0a49, 0a4a], [0a4e, 0a50], [0a52, 0a58], [0a5d, 0a5d], [0a5f, 0a65],
    31     [0a76, 0a80], [0a84, 0a84], [0a8e, 0a8e], [0a92, 0a92], [0aa9, 0aa9],
    32     [0ab1, 0ab1], [0ab4, 0ab4], [0aba, 0abb], [0ac6, 0ac6], [0aca, 0aca],
    33     [0ace, 0acf], [0ad1, 0adf], [0ae4, 0ae5], [0af2, 0af8], [0b00, 0b00],
    34     [0b04, 0b04], [0b0d, 0b0e], [0b11, 0b12], [0b29, 0b29], [0b31, 0b31],
    35     [0b34, 0b34], [0b3a, 0b3b], [0b45, 0b46], [0b49, 0b4a], [0b4e, 0b55],
    36     [0b58, 0b5b], [0b5e, 0b5e], [0b64, 0b65], [0b78, 0b81], [0b84, 0b84],
    37     [0b8b, 0b8d], [0b91, 0b91], [0b96, 0b98], [0b9b, 0b9b], [0b9d, 0b9d],
    38     [0ba0, 0ba2], [0ba5, 0ba7], [0bab, 0bad], [0bba, 0bbd], [0bc3, 0bc5],
    39     [0bc9, 0bc9], [0bce, 0bcf], [0bd1, 0bd6], [0bd8, 0be5], [0bfb, 0bff],
    40     [0c04, 0c04], [0c0d, 0c0d], [0c11, 0c11], [0c29, 0c29], [0c3a, 0c3c],
    41     [0c45, 0c45], [0c49, 0c49], [0c4e, 0c54], [0c57, 0c57], [0c5b, 0c5f],
    42     [0c64, 0c65], [0c70, 0c77], [0c84, 0c84], [0c8d, 0c8d], [0c91, 0c91],
    43     [0ca9, 0ca9], [0cb4, 0cb4], [0cba, 0cbb], [0cc5, 0cc5], [0cc9, 0cc9],
    44     [0cce, 0cd4], [0cd7, 0cdd], [0cdf, 0cdf], [0ce4, 0ce5], [0cf0, 0cf0],
    45     [0cf3, 0cff], [0d04, 0d04], [0d0d, 0d0d], [0d11, 0d11], [0d45, 0d45],
    46     [0d49, 0d49], [0d50, 0d53], [0d64, 0d65], [0d80, 0d81], [0d84, 0d84],
    47     [0d97, 0d99], [0db2, 0db2], [0dbc, 0dbc], [0dbe, 0dbf], [0dc7, 0dc9],
    48     [0dcb, 0dce], [0dd5, 0dd5], [0dd7, 0dd7], [0de0, 0de5], [0df0, 0df1],
    49     [0df5, 0e00], [0e3b, 0e3e], [0e5c, 0e80], [0e83, 0e83], [0e85, 0e86],
    50     [0e89, 0e89], [0e8b, 0e8c], [0e8e, 0e93], [0e98, 0e98], [0ea0, 0ea0],
    51     [0ea4, 0ea4], [0ea6, 0ea6], [0ea8, 0ea9], [0eac, 0eac], [0eba, 0eba],
    52     [0ebe, 0ebf], [0ec5, 0ec5], [0ec7, 0ec7], [0ece, 0ecf], [0eda, 0edb],
    53     [0ee0, 0eff], [0f48, 0f48], [0f6d, 0f70], [0f98, 0f98], [0fbd, 0fbd],
    54     [0fcd, 0fcd], [0fdb, 0fff], [10c6, 10c6], [10c8, 10cc], [10ce, 10cf],
    55     [1249, 1249], [124e, 124f], [1257, 1257], [1259, 1259], [125e, 125f],
    56     [1289, 1289], [128e, 128f], [12b1, 12b1], [12b6, 12b7], [12bf, 12bf],
    57     [12c1, 12c1], [12c6, 12c7], [12d7, 12d7], [1311, 1311], [1316, 1317],
    58     [135b, 135c], [137d, 137f], [139a, 139f], [13f6, 13f7], [13fe, 13ff],
    59     [169d, 169f], [16f9, 16ff], [170d, 170d], [1715, 171f], [1737, 173f],
    60     [1754, 175f], [176d, 176d], [1771, 1771], [1774, 177f], [17de, 17df],
    61     [17ea, 17ef], [17fa, 17ff], [180f, 180f], [181a, 181f], [1878, 187f],
    62     [18ab, 18af], [18f6, 18ff], [191f, 191f], [192c, 192f], [193c, 193f],
    63     [1941, 1943], [196e, 196f], [1975, 197f], [19ac, 19af], [19ca, 19cf],
    64     [19db, 19dd], [1a1c, 1a1d], [1a5f, 1a5f], [1a7d, 1a7e], [1a8a, 1a8f],
    65     [1a9a, 1a9f], [1aae, 1aaf], [1abf, 1aff], [1b4c, 1b4f], [1b7d, 1b7f],
    66     [1bf4, 1bfb], [1c38, 1c3a], [1c4a, 1c4c], [1c89, 1cbf], [1cc8, 1ccf],
    67     [1cfa, 1cff], [1dfa, 1dfa], [1f16, 1f17], [1f1e, 1f1f], [1f46, 1f47],
    68     [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e],
    69     [1f7e, 1f7f], [1fb5, 1fb5], [1fc5, 1fc5], [1fd4, 1fd5], [1fdc, 1fdc],
    70     [1ff0, 1ff1], [1ff5, 1ff5], [1fff, 1fff], [2065, 2065], [2072, 2073],
    71     [208f, 208f], [209d, 209f], [20c0, 20cf], [20f1, 20ff], [218c, 218f],
    72     [2427, 243f], [244b, 245f], [2b74, 2b75], [2b96, 2b97], [2bba, 2bbc],
    73     [2bc9, 2bc9], [2bd3, 2beb], [2bf0, 2bff], [2c2f, 2c2f], [2c5f, 2c5f],
     21    [0530, 0530], [0557, 0558], [058b, 058c], [0590, 0590], [05c8, 05cf],
     22    [05eb, 05ee], [05f5, 05ff], [061d, 061d], [070e, 070e], [074b, 074c],
     23    [07b2, 07bf], [07fb, 07fc], [082e, 082f], [083f, 083f], [085c, 085d],
     24    [085f, 085f], [086b, 089f], [08b5, 08b5], [08be, 08d2], [0984, 0984],
     25    [098d, 098e], [0991, 0992], [09a9, 09a9], [09b1, 09b1], [09b3, 09b5],
     26    [09ba, 09bb], [09c5, 09c6], [09c9, 09ca], [09cf, 09d6], [09d8, 09db],
     27    [09de, 09de], [09e4, 09e5], [09ff, 0a00], [0a04, 0a04], [0a0b, 0a0e],
     28    [0a11, 0a12], [0a29, 0a29], [0a31, 0a31], [0a34, 0a34], [0a37, 0a37],
     29    [0a3a, 0a3b], [0a3d, 0a3d], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50],
     30    [0a52, 0a58], [0a5d, 0a5d], [0a5f, 0a65], [0a77, 0a80], [0a84, 0a84],
     31    [0a8e, 0a8e], [0a92, 0a92], [0aa9, 0aa9], [0ab1, 0ab1], [0ab4, 0ab4],
     32    [0aba, 0abb], [0ac6, 0ac6], [0aca, 0aca], [0ace, 0acf], [0ad1, 0adf],
     33    [0ae4, 0ae5], [0af2, 0af8], [0b00, 0b00], [0b04, 0b04], [0b0d, 0b0e],
     34    [0b11, 0b12], [0b29, 0b29], [0b31, 0b31], [0b34, 0b34], [0b3a, 0b3b],
     35    [0b45, 0b46], [0b49, 0b4a], [0b4e, 0b55], [0b58, 0b5b], [0b5e, 0b5e],
     36    [0b64, 0b65], [0b78, 0b81], [0b84, 0b84], [0b8b, 0b8d], [0b91, 0b91],
     37    [0b96, 0b98], [0b9b, 0b9b], [0b9d, 0b9d], [0ba0, 0ba2], [0ba5, 0ba7],
     38    [0bab, 0bad], [0bba, 0bbd], [0bc3, 0bc5], [0bc9, 0bc9], [0bce, 0bcf],
     39    [0bd1, 0bd6], [0bd8, 0be5], [0bfb, 0bff], [0c0d, 0c0d], [0c11, 0c11],
     40    [0c29, 0c29], [0c3a, 0c3c], [0c45, 0c45], [0c49, 0c49], [0c4e, 0c54],
     41    [0c57, 0c57], [0c5b, 0c5f], [0c64, 0c65], [0c70, 0c77], [0c8d, 0c8d],
     42    [0c91, 0c91], [0ca9, 0ca9], [0cb4, 0cb4], [0cba, 0cbb], [0cc5, 0cc5],
     43    [0cc9, 0cc9], [0cce, 0cd4], [0cd7, 0cdd], [0cdf, 0cdf], [0ce4, 0ce5],
     44    [0cf0, 0cf0], [0cf3, 0cff], [0d04, 0d04], [0d0d, 0d0d], [0d11, 0d11],
     45    [0d45, 0d45], [0d49, 0d49], [0d50, 0d53], [0d64, 0d65], [0d80, 0d81],
     46    [0d84, 0d84], [0d97, 0d99], [0db2, 0db2], [0dbc, 0dbc], [0dbe, 0dbf],
     47    [0dc7, 0dc9], [0dcb, 0dce], [0dd5, 0dd5], [0dd7, 0dd7], [0de0, 0de5],
     48    [0df0, 0df1], [0df5, 0e00], [0e3b, 0e3e], [0e5c, 0e80], [0e83, 0e83],
     49    [0e85, 0e86], [0e89, 0e89], [0e8b, 0e8c], [0e8e, 0e93], [0e98, 0e98],
     50    [0ea0, 0ea0], [0ea4, 0ea4], [0ea6, 0ea6], [0ea8, 0ea9], [0eac, 0eac],
     51    [0eba, 0eba], [0ebe, 0ebf], [0ec5, 0ec5], [0ec7, 0ec7], [0ece, 0ecf],
     52    [0eda, 0edb], [0ee0, 0eff], [0f48, 0f48], [0f6d, 0f70], [0f98, 0f98],
     53    [0fbd, 0fbd], [0fcd, 0fcd], [0fdb, 0fff], [10c6, 10c6], [10c8, 10cc],
     54    [10ce, 10cf], [1249, 1249], [124e, 124f], [1257, 1257], [1259, 1259],
     55    [125e, 125f], [1289, 1289], [128e, 128f], [12b1, 12b1], [12b6, 12b7],
     56    [12bf, 12bf], [12c1, 12c1], [12c6, 12c7], [12d7, 12d7], [1311, 1311],
     57    [1316, 1317], [135b, 135c], [137d, 137f], [139a, 139f], [13f6, 13f7],
     58    [13fe, 13ff], [169d, 169f], [16f9, 16ff], [170d, 170d], [1715, 171f],
     59    [1737, 173f], [1754, 175f], [176d, 176d], [1771, 1771], [1774, 177f],
     60    [17de, 17df], [17ea, 17ef], [17fa, 17ff], [180f, 180f], [181a, 181f],
     61    [1879, 187f], [18ab, 18af], [18f6, 18ff], [191f, 191f], [192c, 192f],
     62    [193c, 193f], [1941, 1943], [196e, 196f], [1975, 197f], [19ac, 19af],
     63    [19ca, 19cf], [19db, 19dd], [1a1c, 1a1d], [1a5f, 1a5f], [1a7d, 1a7e],
     64    [1a8a, 1a8f], [1a9a, 1a9f], [1aae, 1aaf], [1abf, 1aff], [1b4c, 1b4f],
     65    [1b7d, 1b7f], [1bf4, 1bfb], [1c38, 1c3a], [1c4a, 1c4c], [1c89, 1c8f],
     66    [1cbb, 1cbc], [1cc8, 1ccf], [1cfa, 1cff], [1dfa, 1dfa], [1f16, 1f17],
     67    [1f1e, 1f1f], [1f46, 1f47], [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a],
     68    [1f5c, 1f5c], [1f5e, 1f5e], [1f7e, 1f7f], [1fb5, 1fb5], [1fc5, 1fc5],
     69    [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1fff, 1fff],
     70    [2065, 2065], [2072, 2073], [208f, 208f], [209d, 209f], [20c0, 20cf],
     71    [20f1, 20ff], [218c, 218f], [2427, 243f], [244b, 245f], [2b74, 2b75],
     72    [2b96, 2b97], [2bc9, 2bc9], [2bff, 2bff], [2c2f, 2c2f], [2c5f, 2c5f],
    7473    [2cf4, 2cf8], [2d26, 2d26], [2d28, 2d2c], [2d2e, 2d2f], [2d68, 2d6e],
    7574    [2d71, 2d7e], [2d97, 2d9f], [2da7, 2da7], [2daf, 2daf], [2db7, 2db7],
    7675    [2dbf, 2dbf], [2dc7, 2dc7], [2dcf, 2dcf], [2dd7, 2dd7], [2ddf, 2ddf],
    77     [2e4a, 2e7f], [2e9a, 2e9a], [2ef4, 2eff], [2fd6, 2fef], [2ffc, 2fff],
    78     [3040, 3040], [3097, 3098], [3100, 3104], [312f, 3130], [318f, 318f],
     76    [2e4f, 2e7f], [2e9a, 2e9a], [2ef4, 2eff], [2fd6, 2fef], [2ffc, 2fff],
     77    [3040, 3040], [3097, 3098], [3100, 3104], [3130, 3130], [318f, 318f],
    7978    [31bb, 31bf], [31e4, 31ef], [321f, 321f], [32ff, 32ff], [4db6, 4dbf],
    80     [9feb, 9fff], [a48d, a48f], [a4c7, a4cf], [a62c, a63f], [a6f8, a6ff],
    81     [a7af, a7af], [a7b8, a7f6], [a82c, a82f], [a83a, a83f], [a878, a87f],
    82     [a8c6, a8cd], [a8da, a8df], [a8fe, a8ff], [a954, a95e], [a97d, a97f],
    83     [a9ce, a9ce], [a9da, a9dd], [a9ff, a9ff], [aa37, aa3f], [aa4e, aa4f],
    84     [aa5a, aa5b], [aac3, aada], [aaf7, ab00], [ab07, ab08], [ab0f, ab10],
    85     [ab17, ab1f], [ab27, ab27], [ab2f, ab2f], [ab66, ab6f], [abee, abef],
    86     [abfa, abff], [d7a4, d7af], [d7c7, d7ca], [d7fc, d7ff], [fa6e, fa6f],
    87     [fada, faff], [fb07, fb12], [fb18, fb1c], [fb37, fb37], [fb3d, fb3d],
    88     [fb3f, fb3f], [fb42, fb42], [fb45, fb45], [fbc2, fbd2], [fd40, fd4f],
    89     [fd90, fd91], [fdc8, fdcf], [fdfe, fdff], [fe1a, fe1f], [fe53, fe53],
    90     [fe67, fe67], [fe6c, fe6f], [fe75, fe75], [fefd, fefe], [ff00, ff00],
    91     [ffbf, ffc1], [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf],
    92     [ffe7, ffe7], [ffef, fff8], [1000c, 1000c], [10027, 10027],
    93     [1003b, 1003b], [1003e, 1003e], [1004e, 1004f], [1005e, 1007f],
    94     [100fb, 100ff], [10103, 10106], [10134, 10136], [1018f, 1018f],
    95     [1019c, 1019f], [101a1, 101cf], [101fe, 1027f], [1029d, 1029f],
    96     [102d1, 102df], [102fc, 102ff], [10324, 1032c], [1034b, 1034f],
    97     [1037b, 1037f], [1039e, 1039e], [103c4, 103c7], [103d6, 103ff],
    98     [1049e, 1049f], [104aa, 104af], [104d4, 104d7], [104fc, 104ff],
    99     [10528, 1052f], [10564, 1056e], [10570, 105ff], [10737, 1073f],
    100     [10756, 1075f], [10768, 107ff], [10806, 10807], [10809, 10809],
    101     [10836, 10836], [10839, 1083b], [1083d, 1083e], [10856, 10856],
    102     [1089f, 108a6], [108b0, 108df], [108f3, 108f3], [108f6, 108fa],
    103     [1091c, 1091e], [1093a, 1093e], [10940, 1097f], [109b8, 109bb],
    104     [109d0, 109d1], [10a04, 10a04], [10a07, 10a0b], [10a14, 10a14],
    105     [10a18, 10a18], [10a34, 10a37], [10a3b, 10a3e], [10a48, 10a4f],
    106     [10a59, 10a5f], [10aa0, 10abf], [10ae7, 10aea], [10af7, 10aff],
    107     [10b36, 10b38], [10b56, 10b57], [10b73, 10b77], [10b92, 10b98],
    108     [10b9d, 10ba8], [10bb0, 10bff], [10c49, 10c7f], [10cb3, 10cbf],
    109     [10cf3, 10cf9], [10d00, 10e5f], [10e7f, 10fff], [1104e, 11051],
    110     [11070, 1107e], [110c2, 110cf], [110e9, 110ef], [110fa, 110ff],
    111     [11135, 11135], [11144, 1114f], [11177, 1117f], [111ce, 111cf],
    112     [111e0, 111e0], [111f5, 111ff], [11212, 11212], [1123f, 1127f],
    113     [11287, 11287], [11289, 11289], [1128e, 1128e], [1129e, 1129e],
    114     [112aa, 112af], [112eb, 112ef], [112fa, 112ff], [11304, 11304],
    115     [1130d, 1130e], [11311, 11312], [11329, 11329], [11331, 11331],
    116     [11334, 11334], [1133a, 1133b], [11345, 11346], [11349, 1134a],
    117     [1134e, 1134f], [11351, 11356], [11358, 1135c], [11364, 11365],
    118     [1136d, 1136f], [11375, 113ff], [1145a, 1145a], [1145c, 1145c],
    119     [1145e, 1147f], [114c8, 114cf], [114da, 1157f], [115b6, 115b7],
    120     [115de, 115ff], [11645, 1164f], [1165a, 1165f], [1166d, 1167f],
    121     [116b8, 116bf], [116ca, 116ff], [1171a, 1171c], [1172c, 1172f],
    122     [11740, 1189f], [118f3, 118fe], [11900, 119ff], [11a48, 11a4f],
    123     [11a84, 11a85], [11a9d, 11a9d], [11aa3, 11abf], [11af9, 11bff],
    124     [11c09, 11c09], [11c37, 11c37], [11c46, 11c4f], [11c6d, 11c6f],
    125     [11c90, 11c91], [11ca8, 11ca8], [11cb7, 11cff], [11d07, 11d07],
    126     [11d0a, 11d0a], [11d37, 11d39], [11d3b, 11d3b], [11d3e, 11d3e],
    127     [11d48, 11d4f], [11d5a, 11fff], [1239a, 123ff], [1246f, 1246f],
    128     [12475, 1247f], [12544, 12fff], [1342f, 143ff], [14647, 167ff],
    129     [16a39, 16a3f], [16a5f, 16a5f], [16a6a, 16a6d], [16a70, 16acf],
    130     [16aee, 16aef], [16af6, 16aff], [16b46, 16b4f], [16b5a, 16b5a],
    131     [16b62, 16b62], [16b78, 16b7c], [16b90, 16eff], [16f45, 16f4f],
    132     [16f7f, 16f8e], [16fa0, 16fdf], [16fe2, 16fff], [187ed, 187ff],
    133     [18af3, 1afff], [1b11f, 1b16f], [1b2fc, 1bbff], [1bc6b, 1bc6f],
    134     [1bc7d, 1bc7f], [1bc89, 1bc8f], [1bc9a, 1bc9b], [1bca4, 1cfff],
    135     [1d0f6, 1d0ff], [1d127, 1d128], [1d1e9, 1d1ff], [1d246, 1d2ff],
    136     [1d357, 1d35f], [1d372, 1d3ff], [1d455, 1d455], [1d49d, 1d49d],
    137     [1d4a0, 1d4a1], [1d4a3, 1d4a4], [1d4a7, 1d4a8], [1d4ad, 1d4ad],
    138     [1d4ba, 1d4ba], [1d4bc, 1d4bc], [1d4c4, 1d4c4], [1d506, 1d506],
    139     [1d50b, 1d50c], [1d515, 1d515], [1d51d, 1d51d], [1d53a, 1d53a],
    140     [1d53f, 1d53f], [1d545, 1d545], [1d547, 1d549], [1d551, 1d551],
    141     [1d6a6, 1d6a7], [1d7cc, 1d7cd], [1da8c, 1da9a], [1daa0, 1daa0],
    142     [1dab0, 1dfff], [1e007, 1e007], [1e019, 1e01a], [1e022, 1e022],
    143     [1e025, 1e025], [1e02b, 1e7ff], [1e8c5, 1e8c6], [1e8d7, 1e8ff],
    144     [1e94b, 1e94f], [1e95a, 1e95d], [1e960, 1edff], [1ee04, 1ee04],
     79    [9ff0, 9fff], [a48d, a48f], [a4c7, a4cf], [a62c, a63f], [a6f8, a6ff],
     80    [a7ba, a7f6], [a82c, a82f], [a83a, a83f], [a878, a87f], [a8c6, a8cd],
     81    [a8da, a8df], [a954, a95e], [a97d, a97f], [a9ce, a9ce], [a9da, a9dd],
     82    [a9ff, a9ff], [aa37, aa3f], [aa4e, aa4f], [aa5a, aa5b], [aac3, aada],
     83    [aaf7, ab00], [ab07, ab08], [ab0f, ab10], [ab17, ab1f], [ab27, ab27],
     84    [ab2f, ab2f], [ab66, ab6f], [abee, abef], [abfa, abff], [d7a4, d7af],
     85    [d7c7, d7ca], [d7fc, d7ff], [fa6e, fa6f], [fada, faff], [fb07, fb12],
     86    [fb18, fb1c], [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42],
     87    [fb45, fb45], [fbc2, fbd2], [fd40, fd4f], [fd90, fd91], [fdc8, fdcf],
     88    [fdfe, fdff], [fe1a, fe1f], [fe53, fe53], [fe67, fe67], [fe6c, fe6f],
     89    [fe75, fe75], [fefd, fefe], [ff00, ff00], [ffbf, ffc1], [ffc8, ffc9],
     90    [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf], [ffe7, ffe7], [ffef, fff8],
     91    [1000c, 1000c], [10027, 10027], [1003b, 1003b], [1003e, 1003e],
     92    [1004e, 1004f], [1005e, 1007f], [100fb, 100ff], [10103, 10106],
     93    [10134, 10136], [1018f, 1018f], [1019c, 1019f], [101a1, 101cf],
     94    [101fe, 1027f], [1029d, 1029f], [102d1, 102df], [102fc, 102ff],
     95    [10324, 1032c], [1034b, 1034f], [1037b, 1037f], [1039e, 1039e],
     96    [103c4, 103c7], [103d6, 103ff], [1049e, 1049f], [104aa, 104af],
     97    [104d4, 104d7], [104fc, 104ff], [10528, 1052f], [10564, 1056e],
     98    [10570, 105ff], [10737, 1073f], [10756, 1075f], [10768, 107ff],
     99    [10806, 10807], [10809, 10809], [10836, 10836], [10839, 1083b],
     100    [1083d, 1083e], [10856, 10856], [1089f, 108a6], [108b0, 108df],
     101    [108f3, 108f3], [108f6, 108fa], [1091c, 1091e], [1093a, 1093e],
     102    [10940, 1097f], [109b8, 109bb], [109d0, 109d1], [10a04, 10a04],
     103    [10a07, 10a0b], [10a14, 10a14], [10a18, 10a18], [10a36, 10a37],
     104    [10a3b, 10a3e], [10a49, 10a4f], [10a59, 10a5f], [10aa0, 10abf],
     105    [10ae7, 10aea], [10af7, 10aff], [10b36, 10b38], [10b56, 10b57],
     106    [10b73, 10b77], [10b92, 10b98], [10b9d, 10ba8], [10bb0, 10bff],
     107    [10c49, 10c7f], [10cb3, 10cbf], [10cf3, 10cf9], [10d28, 10d2f],
     108    [10d3a, 10e5f], [10e7f, 10eff], [10f28, 10f2f], [10f5a, 10fff],
     109    [1104e, 11051], [11070, 1107e], [110c2, 110cc], [110ce, 110cf],
     110    [110e9, 110ef], [110fa, 110ff], [11135, 11135], [11147, 1114f],
     111    [11177, 1117f], [111ce, 111cf], [111e0, 111e0], [111f5, 111ff],
     112    [11212, 11212], [1123f, 1127f], [11287, 11287], [11289, 11289],
     113    [1128e, 1128e], [1129e, 1129e], [112aa, 112af], [112eb, 112ef],
     114    [112fa, 112ff], [11304, 11304], [1130d, 1130e], [11311, 11312],
     115    [11329, 11329], [11331, 11331], [11334, 11334], [1133a, 1133a],
     116    [11345, 11346], [11349, 1134a], [1134e, 1134f], [11351, 11356],
     117    [11358, 1135c], [11364, 11365], [1136d, 1136f], [11375, 113ff],
     118    [1145a, 1145a], [1145c, 1145c], [1145f, 1147f], [114c8, 114cf],
     119    [114da, 1157f], [115b6, 115b7], [115de, 115ff], [11645, 1164f],
     120    [1165a, 1165f], [1166d, 1167f], [116b8, 116bf], [116ca, 116ff],
     121    [1171b, 1171c], [1172c, 1172f], [11740, 117ff], [1183c, 1189f],
     122    [118f3, 118fe], [11900, 119ff], [11a48, 11a4f], [11a84, 11a85],
     123    [11aa3, 11abf], [11af9, 11bff], [11c09, 11c09], [11c37, 11c37],
     124    [11c46, 11c4f], [11c6d, 11c6f], [11c90, 11c91], [11ca8, 11ca8],
     125    [11cb7, 11cff], [11d07, 11d07], [11d0a, 11d0a], [11d37, 11d39],
     126    [11d3b, 11d3b], [11d3e, 11d3e], [11d48, 11d4f], [11d5a, 11d5f],
     127    [11d66, 11d66], [11d69, 11d69], [11d8f, 11d8f], [11d92, 11d92],
     128    [11d99, 11d9f], [11daa, 11edf], [11ef9, 11fff], [1239a, 123ff],
     129    [1246f, 1246f], [12475, 1247f], [12544, 12fff], [1342f, 143ff],
     130    [14647, 167ff], [16a39, 16a3f], [16a5f, 16a5f], [16a6a, 16a6d],
     131    [16a70, 16acf], [16aee, 16aef], [16af6, 16aff], [16b46, 16b4f],
     132    [16b5a, 16b5a], [16b62, 16b62], [16b78, 16b7c], [16b90, 16e3f],
     133    [16e9b, 16eff], [16f45, 16f4f], [16f7f, 16f8e], [16fa0, 16fdf],
     134    [16fe2, 16fff], [187f2, 187ff], [18af3, 1afff], [1b11f, 1b16f],
     135    [1b2fc, 1bbff], [1bc6b, 1bc6f], [1bc7d, 1bc7f], [1bc89, 1bc8f],
     136    [1bc9a, 1bc9b], [1bca4, 1cfff], [1d0f6, 1d0ff], [1d127, 1d128],
     137    [1d1e9, 1d1ff], [1d246, 1d2df], [1d2f4, 1d2ff], [1d357, 1d35f],
     138    [1d379, 1d3ff], [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1],
     139    [1d4a3, 1d4a4], [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba],
     140    [1d4bc, 1d4bc], [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c],
     141    [1d515, 1d515], [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f],
     142    [1d545, 1d545], [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7],
     143    [1d7cc, 1d7cd], [1da8c, 1da9a], [1daa0, 1daa0], [1dab0, 1dfff],
     144    [1e007, 1e007], [1e019, 1e01a], [1e022, 1e022], [1e025, 1e025],
     145    [1e02b, 1e7ff], [1e8c5, 1e8c6], [1e8d7, 1e8ff], [1e94b, 1e94f],
     146    [1e95a, 1e95d], [1e960, 1ec70], [1ecb5, 1edff], [1ee04, 1ee04],
    145147    [1ee20, 1ee20], [1ee23, 1ee23], [1ee25, 1ee26], [1ee28, 1ee28],
    146148    [1ee33, 1ee33], [1ee38, 1ee38], [1ee3a, 1ee3a], [1ee3c, 1ee41],
     
    153155    [1eef2, 1efff], [1f02c, 1f02f], [1f094, 1f09f], [1f0af, 1f0b0],
    154156    [1f0c0, 1f0c0], [1f0d0, 1f0d0], [1f0f6, 1f0ff], [1f10d, 1f10f],
    155     [1f12f, 1f12f], [1f16c, 1f16f], [1f1ad, 1f1e5], [1f203, 1f20f],
    156     [1f23c, 1f23f], [1f249, 1f24f], [1f252, 1f25f], [1f266, 1f2ff],
    157     [1f6d5, 1f6df], [1f6ed, 1f6ef], [1f6f9, 1f6ff], [1f774, 1f77f],
    158     [1f7d5, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f],
    159     [1f888, 1f88f], [1f8ae, 1f8ff], [1f90c, 1f90f], [1f93f, 1f93f],
    160     [1f94d, 1f94f], [1f96c, 1f97f], [1f998, 1f9bf], [1f9c1, 1f9cf],
    161     [1f9e7, 1fffd], [2a6d7, 2a6ff], [2b735, 2b73f], [2b81e, 2b81f],
    162     [2cea2, 2ceaf], [2ebe1, 2f7ff], [2fa1e, 2fffd], [30000, 3fffd],
    163     [40000, 4fffd], [50000, 5fffd], [60000, 6fffd], [70000, 7fffd],
    164     [80000, 8fffd], [90000, 9fffd], [a0000, afffd], [b0000, bfffd],
    165     [c0000, cfffd], [d0000, dfffd], [e0000, e0000], [e0002, e001f],
    166     [e0080, e00ff], [e01f0, efffd]**/
     157    [1f16c, 1f16f], [1f1ad, 1f1e5], [1f203, 1f20f], [1f23c, 1f23f],
     158    [1f249, 1f24f], [1f252, 1f25f], [1f266, 1f2ff], [1f6d5, 1f6df],
     159    [1f6ed, 1f6ef], [1f6fa, 1f6ff], [1f774, 1f77f], [1f7d9, 1f7ff],
     160    [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f], [1f888, 1f88f],
     161    [1f8ae, 1f8ff], [1f90c, 1f90f], [1f93f, 1f93f], [1f971, 1f972],
     162    [1f977, 1f979], [1f97b, 1f97b], [1f9a3, 1f9af], [1f9ba, 1f9bf],
     163    [1f9c3, 1f9cf], [1fa00, 1fa5f], [1fa6e, 1fffd], [2a6d7, 2a6ff],
     164    [2b735, 2b73f], [2b81e, 2b81f], [2cea2, 2ceaf], [2ebe1, 2f7ff],
     165    [2fa1e, 2fffd], [30000, 3fffd], [40000, 4fffd], [50000, 5fffd],
     166    [60000, 6fffd], [70000, 7fffd], [80000, 8fffd], [90000, 9fffd],
     167    [a0000, afffd], [b0000, bfffd], [c0000, cfffd], [d0000, dfffd],
     168    [e0000, e0000], [e0002, e001f], [e0080, e00ff], [e01f0, efffd]**/
    167169
    168170
    169171    namespace {
    170172    const static UnicodeSet::run_t __unassigned_Set_runs[] = {
    171     {Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
    172     {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    173     {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
    174     {Mixed, 2}, {Empty, 5}, {Mixed, 29}, {Empty, 1}, {Mixed, 9}, {Full, 1},
    175     {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5}, {Full, 1}, {Empty, 6},
    176     {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    177     {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 20},
    178     {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2},
    179     {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 1},
    180     {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 2},
    181     {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
    182     {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     173    {Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 2}, {Empty, 1},
     174    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1},
     175    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     176    {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 29}, {Empty, 1},
     177    {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5},
     178    {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1},
     179    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
     180    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
     181    {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     182    {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     183    {Mixed, 4}, {Full, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     184    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 7}, {Mixed, 1},
    183185    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    184186    {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    185     {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 5}, {Empty, 1},
    186     {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    187     {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
    188     {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
    189     {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    190     {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 213}, {Mixed, 1},
    191     {Empty, 657}, {Mixed, 1}, {Empty, 36}, {Mixed, 1}, {Empty, 1},
    192     {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5},
    193     {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    194     {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
    195     {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 4}, {Empty, 1},
    196     {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 349}, {Mixed, 3},
    197     {Empty, 275}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    198     {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    199     {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    200     {Empty, 4}, {Mixed, 6}, {Full, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2},
    201     {Mixed, 4}, {Full, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    202     {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Empty, 4}, {Mixed, 4},
    203     {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 4}, {Empty, 9},
    204     {Mixed, 3}, {Full, 4}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1},
    205     {Mixed, 3}, {Full, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    206     {Empty, 2}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5},
    207     {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1}, {Mixed, 1},
    208     {Empty, 1}, {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Full, 12}, {Empty, 2},
    209     {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
    210     {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 4},
    211     {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5},
    212     {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    213     {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 11}, {Empty, 2}, {Mixed, 1},
    214     {Full, 8}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
    215     {Mixed, 1}, {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 3}, {Full, 21},
    216     {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 6},
    217     {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1}, {Full, 126},
    218     {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17}, {Mixed, 3},
    219     {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 27}, {Empty, 2},
    220     {Mixed, 3}, {Full, 2}, {Mixed, 1}, {Empty, 191}, {Mixed, 1},
    221     {Empty, 23}, {Mixed, 1}, {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2},
    222     {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3},
    223     {Full, 154}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
    224     {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 2}, {Mixed, 2},
    225     {Full, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
    226     {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    227     {Empty, 21}, {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6},
    228     {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 37}, {Mixed, 6},
    229     {Full, 1}, {Mixed, 1}, {Full, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    230     {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1},
    231     {Mixed, 5}, {Full, 4}, {Empty, 30}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    232     {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    233     {Empty, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    234     {Full, 47}, {Mixed, 1}, {Empty, 1334}, {Mixed, 1}, {Full, 1},
    235     {Empty, 129}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 180},
    236     {Mixed, 1}, {Empty, 233}, {Mixed, 1}, {Full, 96}, {Empty, 16},
    237     {Mixed, 1}, {Full, 46}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
     187    {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 2}, {Empty, 1},
     188    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
     189    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
     190    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
     191    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
     192    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
     193    {Empty, 213}, {Mixed, 1}, {Empty, 657}, {Mixed, 1}, {Empty, 36},
     194    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 5},
     195    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     196    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
     197    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3},
     198    {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     199    {Empty, 349}, {Mixed, 3}, {Empty, 275}, {Mixed, 1}, {Empty, 2},
     200    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
     201    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     202    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 6}, {Full, 1},
     203    {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 4}, {Mixed, 1},
     204    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
     205    {Full, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     206    {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4}, {Mixed, 3},
     207    {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
     208    {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Empty, 1},
     209    {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Full, 2}, {Empty, 2}, {Mixed, 1},
     210    {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     211    {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 4}, {Empty, 1}, {Mixed, 2},
     212    {Full, 5}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     213    {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Empty, 1},
     214    {Mixed, 5}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2},
     215    {Mixed, 1}, {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
     216    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 6},
     217    {Empty, 1}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 1}, {Full, 8},
     218    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     219    {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 6}, {Full, 9}, {Mixed, 1},
     220    {Full, 8}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
     221    {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
     222    {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
     223    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 21},
     224    {Empty, 2}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 3}, {Full, 2},
     225    {Mixed, 1}, {Empty, 191}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
     226    {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 11},
     227    {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3}, {Full, 154}, {Empty, 7},
     228    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2},
     229    {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Full, 4},
     230    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
     231    {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 21},
     232    {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1},
     233    {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 24}, {Mixed, 1}, {Empty, 1},
     234    {Mixed, 1}, {Full, 10}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 8},
     235    {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
     236    {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 4}, {Empty, 30},
     237    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
     238    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 2},
     239    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     240    {Full, 3}, {Mixed, 1}, {Full, 43}, {Mixed, 1}, {Empty, 1334},
     241    {Mixed, 1}, {Full, 1}, {Empty, 129}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
     242    {Empty, 180}, {Mixed, 1}, {Empty, 233}, {Mixed, 1}, {Full, 96},
     243    {Empty, 16}, {Mixed, 1}, {Full, 46}, {Mixed, 1}, {Full, 2047},
     244    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
    238245    {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
    239246    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
    240247    {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
    241     {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 2},
    242     {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2031}, {Mixed, 1},
    243     {Empty, 4096}};
     248    {Mixed, 2}, {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1}, {Full, 2031},
     249    {Mixed, 1}, {Empty, 4096}};
    244250    const static UnicodeSet::bitquad_t  __unassigned_Set_quads[] = {
    245     0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000, 0x00000001,
    246     0x00011900, 0x0000ff00, 0xffe0f800, 0x20000000, 0x00004000, 0x00001800,
    247     0xfffc0000, 0xf8000000, 0x8000c000, 0xb0000000, 0xfffff800, 0xc0200000,
    248     0x000fffff, 0x00066010, 0x0c3a0200, 0x4f7f8660, 0xc0000030, 0x00067811,
    249     0x2c920200, 0xa1fdc678, 0xffc0003f, 0x00044011, 0x0c120200, 0xfffec440,
    250     0x01fc0030, 0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813,
    251     0x3c0038e7, 0xff7ec238, 0xf800003f, 0x00022010, 0x1c000200, 0xf89fc220,
    252     0x00ff0030, 0x00022010, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010,
    253     0x000f0220, 0x00000030, 0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f,
    254     0x00000001, 0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0,
    255     0x00000100, 0x0001e000, 0x01000000, 0x20000000, 0xf8002000, 0x0000df40,
    256     0xc280c200, 0x0000c200, 0x80c20000, 0x008000c2, 0x00c20000, 0x18000000,
    257     0xe0000000, 0xfc000000, 0xc0c00000, 0xe0000000, 0xfe000000, 0xffe02000,
    258     0xff800000, 0xfff00000, 0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000,
    259     0xff000000, 0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e,
    260     0xffe0c000, 0x0000f000, 0x3800fc00, 0x30000000, 0x80000000, 0x60000000,
    261     0xfc00fc00, 0x8000c000, 0x0000f000, 0xe0000000, 0x0ff00000, 0x07000000,
    262     0x00001c00, 0xfffffe00, 0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000,
     251    0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000, 0x00011800,
     252    0x0000ff00, 0xffe07800, 0x20000000, 0x00004000, 0x00001800, 0xfffc0000,
     253    0x18000000, 0x8000c000, 0xb0000000, 0xfffff800, 0xc0200000, 0x0007ffff,
     254    0x00066010, 0x0c3a0200, 0x4f7f8660, 0x80000030, 0x00067811, 0x2c920200,
     255    0xa1fdc678, 0xff80003f, 0x00044011, 0x0c120200, 0xfffec440, 0x01fc0030,
     256    0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813, 0x3c0038e7,
     257    0xff7ec238, 0xf800003f, 0x00022000, 0x1c000200, 0xf89fc220, 0x00ff0030,
     258    0x00022000, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010, 0x000f0220,
     259    0x00000030, 0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001,
     260    0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0, 0x00000100,
     261    0x0001e000, 0x01000000, 0x20000000, 0xf8002000, 0x0000df40, 0xc280c200,
     262    0x0000c200, 0x80c20000, 0x008000c2, 0x00c20000, 0x18000000, 0xe0000000,
     263    0xfc000000, 0xc0c00000, 0xe0000000, 0xfe000000, 0xffe02000, 0xff800000,
     264    0xfff00000, 0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000, 0xfe000000,
     265    0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e, 0xffe0c000,
     266    0x0000f000, 0x3800fc00, 0x30000000, 0x80000000, 0x60000000, 0xfc00fc00,
     267    0x8000c000, 0x0000f000, 0xe0000000, 0x0ff00000, 0x07000000, 0x00001c00,
     268    0x0000fe00, 0x18000000, 0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000,
    263269    0x5500c0c0, 0xc0000000, 0x00200000, 0x10300020, 0x80230000, 0x000c0020,
    264270    0xe0008000, 0x0000ffff, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800,
    265     0x00300000, 0x00c00000, 0x1c000000, 0xfff80200, 0xffff0fff, 0x00008000,
    266     0x80000000, 0x01f00000, 0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080,
    267     0x80808080, 0xfffffc00, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff,
    268     0x00000001, 0x01800000, 0x0000001f, 0x00018000, 0x00008000, 0xf8000000,
    269     0x0000fff0, 0x80000000, 0x80000000, 0xffc00000, 0xfffff800, 0x0000e000,
    270     0x0000ff80, 0xfffff000, 0xff000000, 0xff008000, 0x007fffff, 0xfc00f000,
    271     0xff000000, 0xfc003fc0, 0xc0000000, 0x7ff00000, 0xe0000000, 0x3c004000,
    272     0x80000000, 0xff800000, 0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181,
    273     0x00008080, 0x0000ffc0, 0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000,
    274     0x0000c000, 0xfc000000, 0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc,
    275     0x0000ffff, 0x00030000, 0x0000ff00, 0xc0000000, 0xfc000000, 0x00080000,
    276     0x0020f080, 0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0x01ff8080,
    277     0x00001000, 0x48000080, 0xc000c000, 0xf8000000, 0x00000078, 0x00700000,
    278     0xf0008000, 0xfffffffe, 0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000,
    279     0xf0000000, 0x00001ff0, 0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0,
    280     0xc0000000, 0x0000fc00, 0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0,
    281     0xff800000, 0xffc00000, 0xffffff00, 0x000002c0, 0x6e400000, 0x00400000,
    282     0x80000000, 0xffff007f, 0x07c80000, 0x70000000, 0x7c000000, 0x0f000000,
    283     0x00030000, 0x01100f90, 0x78f00000, 0xfe00ff00, 0xff800780, 0x01c00000,
    284     0x00c00000, 0x00f80000, 0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000,
    285     0x03f80000, 0x80000000, 0x0003c000, 0x7fff0000, 0x0000fffc, 0xfc00fe00,
    286     0x00200000, 0x0000fff0, 0xff800000, 0x0000c000, 0xffe00001, 0x00040000,
    287     0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800, 0x00066010, 0x0c120200,
    288     0x1f7ec660, 0xffe0e030, 0xd4000000, 0xfc00ff00, 0x00c00000, 0xc0000000,
    289     0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00, 0x1c000000, 0x0000f000,
    290     0x7ff80000, 0x0000ff00, 0x20000030, 0xfffffff8, 0xfe000000, 0x00000200,
    291     0x00800000, 0x0000ffc0, 0x0000e000, 0x00030000, 0xff800100, 0x00000480,
    292     0x4b800000, 0xfc00ff00, 0xfc000000, 0xffe08000, 0xfffffff0, 0xffff8000,
     271    0x00300000, 0x00c00000, 0x00000200, 0x80000000, 0x00008000, 0x80000000,
     272    0x01f00000, 0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080, 0x80808080,
     273    0xffff8000, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001,
     274    0x01800000, 0x0000001f, 0x00010000, 0x00008000, 0xf8000000, 0x0000fff0,
     275    0x80000000, 0x80000000, 0xffc00000, 0xffff0000, 0x0000e000, 0x0000ff80,
     276    0xfffff000, 0xff000000, 0xfc000000, 0x007fffff, 0xfc00f000, 0xff000000,
     277    0xfc003fc0, 0x7ff00000, 0xe0000000, 0x3c004000, 0x80000000, 0xff800000,
     278    0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181, 0x00008080, 0x0000ffc0,
     279    0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000, 0x0000c000, 0xfc000000,
     280    0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc, 0x0000ffff, 0x00030000,
     281    0x0000ff00, 0xc0000000, 0xfc000000, 0x00080000, 0x0020f080, 0x60000000,
     282    0x00000001, 0x80000000, 0xe3030303, 0x01ff8080, 0x00001000, 0x48000080,
     283    0xc000c000, 0xf8000000, 0x00000078, 0x00700000, 0xf0008000, 0xfffffffe,
     284    0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000, 0xf0000000, 0x00001ff0,
     285    0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0, 0xc0000000, 0x0000fc00,
     286    0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0, 0xff800000, 0xffc00000,
     287    0xffffff00, 0x000002c0, 0x6e400000, 0x00400000, 0x80000000, 0xffff007f,
     288    0x07c80000, 0x70000000, 0x7c000000, 0x0f000000, 0x00030000, 0x01100f90,
     289    0x78c00000, 0xfe00fe00, 0xff800780, 0x01c00000, 0x00c00000, 0x00f80000,
     290    0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000, 0x03f80000, 0xfc00ff00,
     291    0x80000000, 0x0000ff00, 0xfc000000, 0x0003c000, 0x7fff0000, 0x0000dffc,
     292    0xfc00fe00, 0x00200000, 0x0000ff80, 0xff800000, 0x0000c000, 0xffe00001,
     293    0x00040000, 0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800, 0x00066010,
     294    0x04120200, 0x1f7ec660, 0xffe0e030, 0x94000000, 0xfc00ff00, 0x00c00000,
     295    0xc0000000, 0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00, 0x18000000,
     296    0x0000f000, 0xf0000000, 0x7ff80000, 0x0000ff00, 0x00000030, 0xfffffff8,
     297    0xfe000000, 0x00000200, 0x00800000, 0x0000ffc0, 0x0000e000, 0x00030000,
     298    0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0x00000240, 0xfe048000,
     299    0xfffffc00, 0xfe000000, 0xfc000000, 0xffe08000, 0xfffffff0, 0xffff8000,
    293300    0xffffff80, 0xfe000000, 0x80000000, 0xffff3c00, 0x0000ffff, 0xffc0c000,
    294     0x0400ffc0, 0x1f000004, 0xffff0000, 0x0000ffe0, 0x80000000, 0x00007fff,
    295     0xfffffffc, 0xffffe000, 0xfff80000, 0x80000000, 0x0000ffff, 0xf0000000,
    296     0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000, 0x00000180, 0xfffffe00,
    297     0xffffffc0, 0xff800000, 0xfffc0000, 0x00200000, 0x20000000, 0x1400219b,
    298     0x00000010, 0x20201840, 0x84000000, 0x000203a0, 0x000000c0, 0x00003000,
    299     0x07fff000, 0xffff0001, 0x06000080, 0xfffff824, 0xff800060, 0x3c00f800,
    300     0x00000010, 0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411,
    301     0xfffcffff, 0x0000f000, 0xfff00000, 0x00018000, 0x00010001, 0xffc00000,
    302     0x0000e000, 0x00008000, 0x0000f000, 0xffffe000, 0x0000003f, 0x0000fff8,
    303     0xf0000000, 0xfffcfe00, 0xffffffc0, 0xffe00000, 0xfe00e000, 0xfff00000,
    304     0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0x0000f000,
    305     0x80000000, 0x0000e000, 0xfffff000, 0xff000000, 0x0000fffe, 0xffffff80,
    306     0x3fffffff, 0xff800000, 0xffe00000, 0xc0000000, 0x0000fffc, 0xfffffffe,
    307     0xc0000000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
     301    0x0400ffc0, 0x1f000004, 0xffff0000, 0xf8000000, 0x0000ffe0, 0x80000000,
     302    0x00007fff, 0xfffffffc, 0xfffc0000, 0xfff80000, 0x80000000, 0x0000ffff,
     303    0xf0000000, 0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000, 0x00000180,
     304    0xfffffe00, 0xffffffc0, 0xfff00000, 0xff800000, 0xfe000000, 0x00200000,
     305    0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000, 0x000203a0,
     306    0x000000c0, 0x00003000, 0x07fff000, 0xffff0001, 0x06000080, 0xfffff824,
     307    0xff800060, 0x3c00f800, 0x0001ffff, 0xffe00000, 0x00000010, 0xf5080169,
     308    0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0xfffcffff, 0x0000f000,
     309    0xfff00000, 0x00018000, 0x00010001, 0xffc00000, 0x0000e000, 0x0000f000,
     310    0xffffe000, 0x0000003f, 0x0000fff8, 0xf0000000, 0xfffcfe00, 0xffffffc0,
     311    0xffe00000, 0xfc00e000, 0xfff00000, 0xfe000000, 0x0000f000, 0xfc00ff00,
     312    0x0000ff00, 0xffffc000, 0x0000f000, 0x80000000, 0x0b860000, 0xfc00fff8,
     313    0x0000fff8, 0xffffc000, 0x3fffffff, 0xff800000, 0xffe00000, 0xc0000000,
     314    0x0000fffc, 0xfffffffe, 0xc0000000, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    308315    0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    309     0x3fffffff, 0xfffffffd, 0xffff0000, 0x3fffffff};
    310     }
    311 
    312     const static UnicodeSet unassigned_Set{const_cast<UnicodeSet::run_t *>(__unassigned_Set_runs), 416, 0, const_cast<UnicodeSet::bitquad_t *>(__unassigned_Set_quads), 388, 0};
     316    0x3fffffff, 0x3fffffff, 0x3fffffff, 0xfffffffd, 0xffff0000, 0x3fffffff};
     317    }
     318
     319    const static UnicodeSet unassigned_Set{const_cast<UnicodeSet::run_t *>(__unassigned_Set_runs), 441, 0, const_cast<UnicodeSet::bitquad_t *>(__unassigned_Set_quads), 396, 0};
    313320
    314321    /** Code Point Ranges for V1_1
     
    12401247    const static UnicodeSet v10_0_Set{const_cast<UnicodeSet::run_t *>(__v10_0_Set_runs), 56, 0, const_cast<UnicodeSet::bitquad_t *>(__v10_0_Set_quads), 38, 0};
    12411248
     1249    /** Code Point Ranges for V11_0
     1250    [0560, 0560], [0588, 0588], [05ef, 05ef], [07fd, 07ff], [08d3, 08d3],
     1251    [09fe, 09fe], [0a76, 0a76], [0c04, 0c04], [0c84, 0c84], [1878, 1878],
     1252    [1c90, 1cba], [1cbd, 1cbf], [2bba, 2bbc], [2bd3, 2beb], [2bf0, 2bfe],
     1253    [2e4a, 2e4e], [312f, 312f], [9feb, 9fef], [a7af, a7af], [a7b8, a7b9],
     1254    [a8fe, a8ff], [10a34, 10a35], [10a48, 10a48], [10d00, 10d27],
     1255    [10d30, 10d39], [10f00, 10f27], [10f30, 10f59], [110cd, 110cd],
     1256    [11144, 11146], [1133b, 1133b], [1145e, 1145e], [1171a, 1171a],
     1257    [11800, 1183b], [11a9d, 11a9d], [11d60, 11d65], [11d67, 11d68],
     1258    [11d6a, 11d8e], [11d90, 11d91], [11d93, 11d98], [11da0, 11da9],
     1259    [11ee0, 11ef8], [16e40, 16e9a], [187ed, 187f1], [1d2e0, 1d2f3],
     1260    [1d372, 1d378], [1ec71, 1ecb4], [1f12f, 1f12f], [1f6f9, 1f6f9],
     1261    [1f7d5, 1f7d8], [1f94d, 1f94f], [1f96c, 1f970], [1f973, 1f976],
     1262    [1f97a, 1f97a], [1f97c, 1f97f], [1f998, 1f9a2], [1f9b0, 1f9b9],
     1263    [1f9c1, 1f9c2], [1f9e7, 1f9ff], [1fa60, 1fa6d]**/
     1264
     1265
     1266    namespace {
     1267    const static UnicodeSet::run_t __v11_0_Set_runs[] = {
     1268    {Empty, 43}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 15},
     1269    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 3},
     1270    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
     1271    {Empty, 94}, {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 119},
     1272    {Mixed, 3}, {Empty, 18}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
     1273    {Empty, 885}, {Mixed, 1}, {Empty, 61}, {Mixed, 1}, {Empty, 9},
     1274    {Mixed, 1}, {Empty, 777}, {Mixed, 2}, {Empty, 21}, {Full, 1},
     1275    {Mixed, 1}, {Empty, 14}, {Full, 1}, {Mixed, 2}, {Empty, 11}, {Mixed, 1},
     1276    {Empty, 3}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     1277    {Empty, 21}, {Mixed, 1}, {Empty, 7}, {Full, 1}, {Mixed, 1}, {Empty, 18},
     1278    {Mixed, 1}, {Empty, 22}, {Mixed, 3}, {Empty, 9}, {Mixed, 1},
     1279    {Empty, 634}, {Full, 2}, {Mixed, 1}, {Empty, 202}, {Mixed, 1},
     1280    {Empty, 599}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 199},
     1281    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 45},
     1282    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 6}, {Empty, 3},
     1283    {Mixed, 1}, {Empty, 30764}};
     1284    const static UnicodeSet::bitquad_t  __v11_0_Set_quads[] = {
     1285    0x00000001, 0x00000100, 0x00008000, 0xe0000000, 0x00080000, 0x40000000,
     1286    0x00400000, 0x00000010, 0x00000010, 0x01000000, 0xffff0000, 0xe7ffffff,
     1287    0x1c000000, 0xfff80000, 0x7fff0fff, 0x00007c00, 0x00008000, 0x0000f800,
     1288    0x03008000, 0xc0000000, 0x00300000, 0x00000100, 0x03ff00ff, 0xffff00ff,
     1289    0x03ffffff, 0x00002000, 0x00000070, 0x08000000, 0x40000000, 0x04000000,
     1290    0x0fffffff, 0x20000000, 0xfffffdbf, 0x01fb7fff, 0x000003ff, 0x01ffffff,
     1291    0x07ffffff, 0x0003e000, 0x000fffff, 0x01fc0000, 0xfffe0000, 0x001fffff,
     1292    0x00008000, 0x02000000, 0x01e00000, 0x0000e000, 0xf479f000, 0xff000000,
     1293    0x03ff0007, 0x00000006, 0xffffff80, 0x00003fff};
     1294    }
     1295
     1296    const static UnicodeSet v11_0_Set{const_cast<UnicodeSet::run_t *>(__v11_0_Set_runs), 83, 0, const_cast<UnicodeSet::bitquad_t *>(__v11_0_Set_quads), 52, 0};
     1297
    12421298    static EnumeratedPropertyObject property_object
    12431299        {age,
     
    12491305        &v3_1_Set, &v3_2_Set, &v4_0_Set, &v4_1_Set, &v5_0_Set, &v5_1_Set,
    12501306        &v5_2_Set, &v6_0_Set, &v6_1_Set, &v6_2_Set, &v6_3_Set, &v7_0_Set,
    1251         &v8_0_Set, &v9_0_Set, &v10_0_Set
     1307        &v8_0_Set, &v9_0_Set, &v10_0_Set, &v11_0_Set
    12521308        }};
    12531309    }
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBidiClass.h

    r5751 r6192  
    22#define DERIVEDBIDICLASS_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    2424    [0903, 0939], [093b, 093b], [093d, 0940], [0949, 094c], [094e, 0950],
    2525    [0958, 0961], [0964, 0980], [0982, 09bb], [09bd, 09c0], [09c5, 09cc],
    26     [09ce, 09e1], [09e4, 09f1], [09f4, 09fa], [09fc, 0a00], [0a03, 0a3b],
    27     [0a3d, 0a40], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50], [0a52, 0a6f],
    28     [0a72, 0a74], [0a76, 0a80], [0a83, 0abb], [0abd, 0ac0], [0ac6, 0ac6],
    29     [0ac9, 0acc], [0ace, 0ae1], [0ae4, 0af0], [0af2, 0af9], [0b00, 0b00],
    30     [0b02, 0b3b], [0b3d, 0b3e], [0b40, 0b40], [0b45, 0b4c], [0b4e, 0b55],
    31     [0b57, 0b61], [0b64, 0b81], [0b83, 0bbf], [0bc1, 0bcc], [0bce, 0bf2],
    32     [0bfb, 0bff], [0c01, 0c3d], [0c41, 0c45], [0c49, 0c49], [0c4e, 0c54],
    33     [0c57, 0c61], [0c64, 0c77], [0c7f, 0c80], [0c82, 0cbb], [0cbd, 0ccb],
    34     [0cce, 0ce1], [0ce4, 0cff], [0d02, 0d3a], [0d3d, 0d40], [0d45, 0d4c],
    35     [0d4e, 0d61], [0d64, 0dc9], [0dcb, 0dd1], [0dd5, 0dd5], [0dd7, 0e30],
    36     [0e32, 0e33], [0e3b, 0e3e], [0e40, 0e46], [0e4f, 0eb0], [0eb2, 0eb3],
    37     [0eba, 0eba], [0ebd, 0ec7], [0ece, 0f17], [0f1a, 0f34], [0f36, 0f36],
    38     [0f38, 0f38], [0f3e, 0f70], [0f7f, 0f7f], [0f85, 0f85], [0f88, 0f8c],
    39     [0f98, 0f98], [0fbd, 0fc5], [0fc7, 102c], [1031, 1031], [1038, 1038],
    40     [103b, 103c], [103f, 1057], [105a, 105d], [1061, 1070], [1075, 1081],
    41     [1083, 1084], [1087, 108c], [108e, 109c], [109e, 135c], [1360, 138f],
    42     [139a, 13ff], [1401, 167f], [1681, 169a], [169d, 1711], [1715, 1731],
    43     [1735, 1751], [1754, 1771], [1774, 17b3], [17b6, 17b6], [17be, 17c5],
    44     [17c7, 17c8], [17d4, 17da], [17dc, 17dc], [17de, 17ef], [17fa, 17ff],
    45     [180f, 1884], [1887, 18a8], [18aa, 191f], [1923, 1926], [1929, 1931],
    46     [1933, 1938], [193c, 193f], [1941, 1943], [1946, 19dd], [1a00, 1a16],
    47     [1a19, 1a1a], [1a1c, 1a55], [1a57, 1a57], [1a5f, 1a5f], [1a61, 1a61],
    48     [1a63, 1a64], [1a6d, 1a72], [1a7d, 1a7e], [1a80, 1aaf], [1abf, 1aff],
    49     [1b04, 1b33], [1b35, 1b35], [1b3b, 1b3b], [1b3d, 1b41], [1b43, 1b6a],
    50     [1b74, 1b7f], [1b82, 1ba1], [1ba6, 1ba7], [1baa, 1baa], [1bae, 1be5],
    51     [1be7, 1be7], [1bea, 1bec], [1bee, 1bee], [1bf2, 1c2b], [1c34, 1c35],
    52     [1c38, 1ccf], [1cd3, 1cd3], [1ce1, 1ce1], [1ce9, 1cec], [1cee, 1cf3],
    53     [1cf5, 1cf7], [1cfa, 1dbf], [1dfa, 1dfa], [1e00, 1fbc], [1fbe, 1fbe],
    54     [1fc2, 1fcc], [1fd0, 1fdc], [1fe0, 1fec], [1ff0, 1ffc], [1fff, 1fff],
    55     [200e, 200e], [2071, 2073], [207f, 207f], [208f, 209f], [20f1, 20ff],
    56     [2102, 2102], [2107, 2107], [210a, 2113], [2115, 2115], [2119, 211d],
    57     [2124, 2124], [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2139],
    58     [213c, 213f], [2145, 2149], [214e, 214f], [2160, 2188], [218c, 218f],
    59     [2336, 237a], [2395, 2395], [2427, 243f], [244b, 245f], [249c, 24e9],
    60     [26ac, 26ac], [2800, 28ff], [2b74, 2b75], [2b96, 2b97], [2bba, 2bbc],
    61     [2bc9, 2bc9], [2bd3, 2beb], [2bf0, 2ce4], [2ceb, 2cee], [2cf2, 2cf8],
    62     [2d00, 2d7e], [2d80, 2ddf], [2e4a, 2e7f], [2e9a, 2e9a], [2ef4, 2eff],
     26    [09ce, 09e1], [09e4, 09f1], [09f4, 09fa], [09fc, 09fd], [09ff, 0a00],
     27    [0a03, 0a3b], [0a3d, 0a40], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50],
     28    [0a52, 0a6f], [0a72, 0a74], [0a76, 0a80], [0a83, 0abb], [0abd, 0ac0],
     29    [0ac6, 0ac6], [0ac9, 0acc], [0ace, 0ae1], [0ae4, 0af0], [0af2, 0af9],
     30    [0b00, 0b00], [0b02, 0b3b], [0b3d, 0b3e], [0b40, 0b40], [0b45, 0b4c],
     31    [0b4e, 0b55], [0b57, 0b61], [0b64, 0b81], [0b83, 0bbf], [0bc1, 0bcc],
     32    [0bce, 0bf2], [0bfb, 0bff], [0c01, 0c03], [0c05, 0c3d], [0c41, 0c45],
     33    [0c49, 0c49], [0c4e, 0c54], [0c57, 0c61], [0c64, 0c77], [0c7f, 0c80],
     34    [0c82, 0cbb], [0cbd, 0ccb], [0cce, 0ce1], [0ce4, 0cff], [0d02, 0d3a],
     35    [0d3d, 0d40], [0d45, 0d4c], [0d4e, 0d61], [0d64, 0dc9], [0dcb, 0dd1],
     36    [0dd5, 0dd5], [0dd7, 0e30], [0e32, 0e33], [0e3b, 0e3e], [0e40, 0e46],
     37    [0e4f, 0eb0], [0eb2, 0eb3], [0eba, 0eba], [0ebd, 0ec7], [0ece, 0f17],
     38    [0f1a, 0f34], [0f36, 0f36], [0f38, 0f38], [0f3e, 0f70], [0f7f, 0f7f],
     39    [0f85, 0f85], [0f88, 0f8c], [0f98, 0f98], [0fbd, 0fc5], [0fc7, 102c],
     40    [1031, 1031], [1038, 1038], [103b, 103c], [103f, 1057], [105a, 105d],
     41    [1061, 1070], [1075, 1081], [1083, 1084], [1087, 108c], [108e, 109c],
     42    [109e, 135c], [1360, 138f], [139a, 13ff], [1401, 167f], [1681, 169a],
     43    [169d, 1711], [1715, 1731], [1735, 1751], [1754, 1771], [1774, 17b3],
     44    [17b6, 17b6], [17be, 17c5], [17c7, 17c8], [17d4, 17da], [17dc, 17dc],
     45    [17de, 17ef], [17fa, 17ff], [180f, 1884], [1887, 18a8], [18aa, 191f],
     46    [1923, 1926], [1929, 1931], [1933, 1938], [193c, 193f], [1941, 1943],
     47    [1946, 19dd], [1a00, 1a16], [1a19, 1a1a], [1a1c, 1a55], [1a57, 1a57],
     48    [1a5f, 1a5f], [1a61, 1a61], [1a63, 1a64], [1a6d, 1a72], [1a7d, 1a7e],
     49    [1a80, 1aaf], [1abf, 1aff], [1b04, 1b33], [1b35, 1b35], [1b3b, 1b3b],
     50    [1b3d, 1b41], [1b43, 1b6a], [1b74, 1b7f], [1b82, 1ba1], [1ba6, 1ba7],
     51    [1baa, 1baa], [1bae, 1be5], [1be7, 1be7], [1bea, 1bec], [1bee, 1bee],
     52    [1bf2, 1c2b], [1c34, 1c35], [1c38, 1ccf], [1cd3, 1cd3], [1ce1, 1ce1],
     53    [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf7], [1cfa, 1dbf], [1dfa, 1dfa],
     54    [1e00, 1fbc], [1fbe, 1fbe], [1fc2, 1fcc], [1fd0, 1fdc], [1fe0, 1fec],
     55    [1ff0, 1ffc], [1fff, 1fff], [200e, 200e], [2071, 2073], [207f, 207f],
     56    [208f, 209f], [20f1, 20ff], [2102, 2102], [2107, 2107], [210a, 2113],
     57    [2115, 2115], [2119, 211d], [2124, 2124], [2126, 2126], [2128, 2128],
     58    [212a, 212d], [212f, 2139], [213c, 213f], [2145, 2149], [214e, 214f],
     59    [2160, 2188], [218c, 218f], [2336, 237a], [2395, 2395], [2427, 243f],
     60    [244b, 245f], [249c, 24e9], [26ac, 26ac], [2800, 28ff], [2b74, 2b75],
     61    [2b96, 2b97], [2bc9, 2bc9], [2bff, 2ce4], [2ceb, 2cee], [2cf2, 2cf8],
     62    [2d00, 2d7e], [2d80, 2ddf], [2e4f, 2e7f], [2e9a, 2e9a], [2ef4, 2eff],
    6363    [2fd6, 2fef], [2ffc, 2fff], [3005, 3007], [3021, 3029], [302e, 302f],
    6464    [3031, 3035], [3038, 303c], [3040, 3098], [309d, 309f], [30a1, 30fa],
     
    6868    [a6f2, a6ff], [a722, a787], [a789, a801], [a803, a805], [a807, a80a],
    6969    [a80c, a824], [a827, a827], [a82c, a837], [a83a, a873], [a878, a8c3],
    70     [a8c6, a8df], [a8f2, a925], [a92e, a946], [a952, a97f], [a983, a9b2],
    71     [a9b4, a9b5], [a9ba, a9bb], [a9bd, a9e4], [a9e6, aa28], [aa2f, aa30],
    72     [aa33, aa34], [aa37, aa42], [aa44, aa4b], [aa4d, aa7b], [aa7d, aaaf],
    73     [aab1, aab1], [aab5, aab6], [aab9, aabd], [aac0, aac0], [aac2, aaeb],
    74     [aaee, aaf5], [aaf7, abe4], [abe6, abe7], [abe9, abec], [abee, fb1c],
    75     [fe1a, fe1f], [fe53, fe53], [fe67, fe67], [fe6c, fe6f], [ff00, ff00],
    76     [ff21, ff3a], [ff41, ff5a], [ff66, ffdf], [ffe7, ffe7], [ffef, ffef],
    77     [10000, 10100], [10102, 1013f], [1018d, 1018f], [1019c, 1019f],
    78     [101a1, 101fc], [101fe, 102df], [102fc, 10375], [1037b, 107ff],
    79     [11000, 11000], [11002, 11037], [11047, 11051], [11066, 1107e],
    80     [11082, 110b2], [110b7, 110b8], [110bb, 110ff], [11103, 11126],
    81     [1112c, 1112c], [11135, 11172], [11174, 1117f], [11182, 111b5],
    82     [111bf, 111c9], [111cd, 1122e], [11232, 11233], [11235, 11235],
    83     [11238, 1123d], [1123f, 112de], [112e0, 112e2], [112eb, 112ff],
    84     [11302, 1133b], [1133d, 1133f], [11341, 11365], [1136d, 1136f],
    85     [11375, 11437], [11440, 11441], [11445, 11445], [11447, 114b2],
    86     [114b9, 114b9], [114bb, 114be], [114c1, 114c1], [114c4, 115b1],
    87     [115b6, 115bb], [115be, 115be], [115c1, 115db], [115de, 11632],
    88     [1163b, 1163c], [1163e, 1163e], [11641, 1165f], [1166d, 116aa],
    89     [116ac, 116ac], [116ae, 116af], [116b6, 116b6], [116b8, 1171c],
    90     [11720, 11721], [11726, 11726], [1172c, 11a00], [11a07, 11a08],
     70    [a8c6, a8df], [a8f2, a8fe], [a900, a925], [a92e, a946], [a952, a97f],
     71    [a983, a9b2], [a9b4, a9b5], [a9ba, a9bb], [a9bd, a9e4], [a9e6, aa28],
     72    [aa2f, aa30], [aa33, aa34], [aa37, aa42], [aa44, aa4b], [aa4d, aa7b],
     73    [aa7d, aaaf], [aab1, aab1], [aab5, aab6], [aab9, aabd], [aac0, aac0],
     74    [aac2, aaeb], [aaee, aaf5], [aaf7, abe4], [abe6, abe7], [abe9, abec],
     75    [abee, fb1c], [fe1a, fe1f], [fe53, fe53], [fe67, fe67], [fe6c, fe6f],
     76    [ff00, ff00], [ff21, ff3a], [ff41, ff5a], [ff66, ffdf], [ffe7, ffe7],
     77    [ffef, ffef], [10000, 10100], [10102, 1013f], [1018d, 1018f],
     78    [1019c, 1019f], [101a1, 101fc], [101fe, 102df], [102fc, 10375],
     79    [1037b, 107ff], [11000, 11000], [11002, 11037], [11047, 11051],
     80    [11066, 1107e], [11082, 110b2], [110b7, 110b8], [110bb, 110ff],
     81    [11103, 11126], [1112c, 1112c], [11135, 11172], [11174, 1117f],
     82    [11182, 111b5], [111bf, 111c8], [111cd, 1122e], [11232, 11233],
     83    [11235, 11235], [11238, 1123d], [1123f, 112de], [112e0, 112e2],
     84    [112eb, 112ff], [11302, 1133a], [1133d, 1133f], [11341, 11365],
     85    [1136d, 1136f], [11375, 11437], [11440, 11441], [11445, 11445],
     86    [11447, 1145d], [1145f, 114b2], [114b9, 114b9], [114bb, 114be],
     87    [114c1, 114c1], [114c4, 115b1], [115b6, 115bb], [115be, 115be],
     88    [115c1, 115db], [115de, 11632], [1163b, 1163c], [1163e, 1163e],
     89    [11641, 1165f], [1166d, 116aa], [116ac, 116ac], [116ae, 116af],
     90    [116b6, 116b6], [116b8, 1171c], [11720, 11721], [11726, 11726],
     91    [1172c, 1182e], [11838, 11838], [1183b, 11a00], [11a07, 11a08],
    9192    [11a0b, 11a32], [11a39, 11a3a], [11a3f, 11a46], [11a48, 11a50],
    9293    [11a57, 11a58], [11a5c, 11a89], [11a97, 11a97], [11a9a, 11c2f],
    9394    [11c37, 11c37], [11c3e, 11c91], [11ca8, 11ca9], [11cb1, 11cb1],
    9495    [11cb4, 11cb4], [11cb7, 11d30], [11d37, 11d39], [11d3b, 11d3b],
    95     [11d3e, 11d3e], [11d46, 11d46], [11d48, 16aef], [16af5, 16b2f],
     96    [11d3e, 11d3e], [11d46, 11d46], [11d48, 11d8f], [11d92, 11d94],
     97    [11d96, 11d96], [11d98, 11ef2], [11ef5, 16aef], [16af5, 16b2f],
    9698    [16b37, 16f8e], [16f93, 1bc9c], [1bc9f, 1bc9f], [1bca4, 1d166],
    9799    [1d16a, 1d172], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1ff],
     
    102104    [1e022, 1e022], [1e025, 1e025], [1e02b, 1e7ff], [1f02c, 1f02f],
    103105    [1f094, 1f09f], [1f0af, 1f0b0], [1f0c0, 1f0c0], [1f0d0, 1f0d0],
    104     [1f0f6, 1f0ff], [1f10d, 1f169], [1f16c, 1f25f], [1f266, 1f2ff],
    105     [1f6d5, 1f6df], [1f6ed, 1f6ef], [1f6f9, 1f6ff], [1f774, 1f77f],
    106     [1f7d5, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f],
    107     [1f888, 1f88f], [1f8ae, 1f8ff], [1f90c, 1f90f], [1f93f, 1f93f],
    108     [1f94d, 1f94f], [1f96c, 1f97f], [1f998, 1f9bf], [1f9c1, 1f9cf],
    109     [1f9e7, 1fffd], [20000, 2fffd], [30000, 3fffd], [40000, 4fffd],
     106    [1f0f6, 1f0ff], [1f10d, 1f12e], [1f130, 1f169], [1f16c, 1f25f],
     107    [1f266, 1f2ff], [1f6d5, 1f6df], [1f6ed, 1f6ef], [1f6fa, 1f6ff],
     108    [1f774, 1f77f], [1f7d9, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f],
     109    [1f85a, 1f85f], [1f888, 1f88f], [1f8ae, 1f8ff], [1f90c, 1f90f],
     110    [1f93f, 1f93f], [1f971, 1f972], [1f977, 1f979], [1f97b, 1f97b],
     111    [1f9a3, 1f9af], [1f9ba, 1f9bf], [1f9c3, 1f9cf], [1fa00, 1fa5f],
     112    [1fa6e, 1fffd], [20000, 2fffd], [30000, 3fffd], [40000, 4fffd],
    110113    [50000, 5fffd], [60000, 6fffd], [70000, 7fffd], [80000, 8fffd],
    111114    [90000, 9fffd], [a0000, afffd], [b0000, bfffd], [c0000, cfffd],
     
    129132    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 4},
    130133    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 13},
    131     {Mixed, 1}, {Empty, 10}, {Full, 8}, {Empty, 19}, {Mixed, 5}, {Full, 7},
    132     {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
    133     {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 6}, {Mixed, 4},
    134     {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 6}, {Empty, 1},
    135     {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 4},
    136     {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 206}, {Empty, 2}, {Full, 692},
    137     {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 2},
    138     {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    139     {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2},
    140     {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
    141     {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 7},
    142     {Mixed, 1}, {Full, 632}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
    143     {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 4}, {Full, 3}, {Mixed, 1},
    144     {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 2}, {Full, 1},
    145     {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 36},
    146     {Empty, 64}, {Mixed, 6}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
    147     {Full, 2}, {Mixed, 1}, {Full, 4}, {Mixed, 6}, {Full, 5}, {Mixed, 2},
    148     {Full, 2}, {Mixed, 2}, {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 3},
    149     {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 22}, {Mixed, 3},
    150     {Full, 1}, {Mixed, 1}, {Full, 12}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    151     {Full, 3}, {Mixed, 2}, {Full, 620}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    152     {Full, 34}, {Mixed, 1}, {Full, 615}, {Mixed, 2}, {Full, 165},
    153     {Mixed, 3}, {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 2},
    154     {Mixed, 1}, {Full, 27}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    155     {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
    156     {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 42},
    157     {Mixed, 2}, {Full, 62}, {Empty, 65}, {Mixed, 1}, {Empty, 2}, {Mixed, 5},
    158     {Full, 2}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 4}, {Empty, 30},
    159     {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
    160     {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 2},
    161     {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Full, 47}, {Mixed, 1}, {Full, 2047},
     134    {Mixed, 1}, {Empty, 10}, {Full, 8}, {Empty, 19}, {Mixed, 2}, {Empty, 1},
     135    {Mixed, 2}, {Full, 7}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3},
     136    {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     137    {Empty, 6}, {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     138    {Full, 6}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
     139    {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 206},
     140    {Empty, 2}, {Full, 692}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 9},
     141    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     142    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 2}, {Full, 1},
     143    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
     144    {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
     145    {Mixed, 3}, {Full, 7}, {Mixed, 1}, {Full, 632}, {Mixed, 1}, {Empty, 23},
     146    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 4}, {Full, 3},
     147    {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 2},
     148    {Full, 1}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
     149    {Full, 36}, {Empty, 64}, {Mixed, 6}, {Full, 2}, {Mixed, 2}, {Full, 1},
     150    {Mixed, 4}, {Full, 2}, {Mixed, 1}, {Full, 4}, {Mixed, 6}, {Full, 5},
     151    {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 6}, {Mixed, 2}, {Full, 2},
     152    {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 7},
     153    {Mixed, 1}, {Full, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 12},
     154    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 2}, {Full, 1},
     155    {Mixed, 1}, {Full, 10}, {Mixed, 1}, {Full, 607}, {Mixed, 1}, {Full, 1},
     156    {Mixed, 1}, {Full, 34}, {Mixed, 1}, {Full, 615}, {Mixed, 2},
     157    {Full, 165}, {Mixed, 3}, {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 5},
     158    {Empty, 2}, {Mixed, 1}, {Full, 27}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     159    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     160    {Empty, 1}, {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
     161    {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 65}, {Mixed, 1}, {Empty, 2},
     162    {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 7}, {Mixed, 1}, {Full, 4},
     163    {Empty, 30}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     164    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     165    {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     166    {Empty, 1}, {Full, 3}, {Mixed, 1}, {Full, 43}, {Mixed, 1}, {Full, 2047},
    162167    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
    163168    {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Full, 2047},
     
    170175    0x00030003, 0x0000401f, 0xbfcf0000, 0xffffff4f, 0xffbfffff, 0xfffffc07,
    171176    0x00001bff, 0xfffffff8, 0xebffffff, 0xff01de01, 0xfffffff3, 0xfffffffd,
    172     0xefffffff, 0xffffdfe1, 0xf7f3fff3, 0xfffffff9, 0xefffffff, 0xfffdc679,
     177    0xefffffff, 0xffffdfe1, 0xb7f3fff3, 0xfffffff9, 0xefffffff, 0xfffdc679,
    173178    0xffdcffff, 0xfffffff9, 0xefffffff, 0xffffde41, 0x03fdfff3, 0xfffffffd,
    174179    0x6fffffff, 0xffbfdfe1, 0xfffffff3, 0xfffffffb, 0xffffdffe, 0xf807ffff,
    175     0xfffffffe, 0x3fffffff, 0xff9fc23e, 0x80fffff3, 0xfffffffd, 0xefffffff,
     180    0xffffffee, 0x3fffffff, 0xff9fc23e, 0x80fffff3, 0xfffffffd, 0xefffffff,
    176181    0xffffcfff, 0xfffffff3, 0xfffffffc, 0xe7ffffff, 0xffffdfe1, 0xfffffff3,
    177182    0xffa3fbff, 0x780dffff, 0xffff807f, 0xe40dffff, 0xffffc0ff, 0xfcffffff,
     
    186191    0x3e2ffc84, 0xf3ffbd50, 0x0000c3e0, 0x0000f1ff, 0xffc00000, 0x07ffffff,
    187192    0x00200000, 0xffffff80, 0xfffff800, 0xf0000000, 0x000003ff, 0x00001000,
    188     0x00300000, 0x00c00000, 0x1c000000, 0xfff80200, 0xffff0fff, 0x01fc781f,
    189     0x7fffffff, 0xfffffc00, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff,
    190     0x000000e0, 0x1f3ec3fe, 0xe1ffffff, 0xfffffffe, 0xf7ffffff, 0xfffffff0,
    191     0x9fffffff, 0x0000ffff, 0x8fffffff, 0x0001ffff, 0xffff0fff, 0xf87fffff,
    192     0x3fffffff, 0x7fffffff, 0x0000ffff, 0xffffff80, 0xffff1fff, 0x00007fff,
    193     0x3fffffff, 0xfffcffff, 0xfffffffc, 0xfffffeff, 0xfffff7bb, 0xfcfff09f,
    194     0xff0fffff, 0xffffffcf, 0xfffc0000, 0xffffc03f, 0xfffc007f, 0xfffffff8,
    195     0xec37ffff, 0xffffffdf, 0xff9981ff, 0xffffeff7, 0xefffffff, 0x3e62ffff,
    196     0xfffffffd, 0xffbfcfff, 0xffffdedf, 0x1fffffff, 0xfc000000, 0x00080000,
    197     0x0000f080, 0x00000001, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x00008080,
    198     0xfffffffd, 0xf000e000, 0xfffffffe, 0xdfffffff, 0xf0000000, 0xf83fffff,
    199     0xfffffffd, 0x00ffffff, 0x0003ff80, 0x7fffffc0, 0xfffffffc, 0xf987ffff,
    200     0xfffffff8, 0xffe0107f, 0xfff7ffff, 0xfffffffc, 0x803fffff, 0xffffe3ff,
    201     0xbf2c7fff, 0x7fffffff, 0xfffff807, 0xfffffffc, 0xefffffff, 0xfffffffe,
    202     0xffe0e03f, 0x00ffffff, 0xffffffa3, 0x7a07ffff, 0xfffffff2, 0x4fc3ffff,
    203     0xcffffffe, 0x5807ffff, 0xfffffffe, 0xffffe000, 0xff40d7ff, 0x1fffffff,
    204     0xfffff043, 0xfffff981, 0x8607ffff, 0xf181ff7f, 0xfc8003ff, 0xc080ffff,
    205     0x0003ffff, 0xff920300, 0x4b81ffff, 0xffffff40, 0xffe0ffff, 0xff80ffff,
    206     0xfff87fff, 0x9fffffff, 0xfffffff0, 0x0007fc7f, 0xfffff018, 0xffffc3ff,
    207     0xffffffc0, 0xff800000, 0xf7ffffff, 0xffdfffff, 0xffff7fff, 0xfffffdff,
    208     0x00003ff7, 0x07800000, 0xffdfe000, 0x07ffffef, 0xffff0001, 0x06000080,
    209     0xfffff824, 0x0000f000, 0xfff00000, 0x00018000, 0x00010001, 0xffc00000,
    210     0xffffe000, 0xfffff3ff, 0xffffffc0, 0xffe00000, 0xfe00e000, 0xfff00000,
    211     0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0x0000f000,
    212     0x80000000, 0x0000e000, 0xfffff000, 0xff000000, 0x0000fffe, 0xffffff80,
     193    0x00300000, 0x00c00000, 0x00000200, 0x80000000, 0x01fc781f, 0x7fffffff,
     194    0xffff8000, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff, 0x000000e0,
     195    0x1f3ec3fe, 0xe1ffffff, 0xfffffffe, 0xf7ffffff, 0xfffffff0, 0x9fffffff,
     196    0x0000ffff, 0x8fffffff, 0x0001ffff, 0xffff0fff, 0xf87fffff, 0x3fffffff,
     197    0x7fffffff, 0x0000ffff, 0xffffff80, 0xffff1fff, 0x00007fff, 0x3fffffff,
     198    0xfffcffff, 0xfffffffc, 0xfffffeff, 0xfffff7bb, 0xfcfff09f, 0xff0fffff,
     199    0xffffffcf, 0x7ffc0000, 0xffffc03f, 0xfffc007f, 0xfffffff8, 0xec37ffff,
     200    0xffffffdf, 0xff9981ff, 0xffffeff7, 0xefffffff, 0x3e62ffff, 0xfffffffd,
     201    0xffbfcfff, 0xffffdedf, 0x1fffffff, 0xfc000000, 0x00080000, 0x0000f080,
     202    0x00000001, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x00008080, 0xfffffffd,
     203    0xf000e000, 0xfffffffe, 0xdfffffff, 0xf0000000, 0xf83fffff, 0xfffffffd,
     204    0x00ffffff, 0x0003ff80, 0x7fffffc0, 0xfffffffc, 0xf987ffff, 0xfffffff8,
     205    0xffe0107f, 0xfff7ffff, 0xfffffffc, 0x803fffff, 0xffffe1ff, 0xbf2c7fff,
     206    0x7fffffff, 0xfffff807, 0xfffffffc, 0xe7ffffff, 0xfffffffe, 0xffe0e03f,
     207    0x00ffffff, 0xbfffffa3, 0x7a07ffff, 0xfffffff2, 0x4fc3ffff, 0xcffffffe,
     208    0x5807ffff, 0xfffffffe, 0xffffe000, 0xff40d7ff, 0x1fffffff, 0xfffff043,
     209    0xf9007fff, 0xfffff981, 0x8607ffff, 0xf181ff7f, 0xfc8003ff, 0xc080ffff,
     210    0x0003ffff, 0xff920300, 0x4b81ffff, 0xffffff40, 0xff5cffff, 0xffe7ffff,
     211    0xffe0ffff, 0xff80ffff, 0xfff87fff, 0x9fffffff, 0xfffffff0, 0x0007fc7f,
     212    0xfffff018, 0xffffc3ff, 0xffffffc0, 0xff800000, 0xf7ffffff, 0xffdfffff,
     213    0xffff7fff, 0xfffffdff, 0x00003ff7, 0x07800000, 0xffdfe000, 0x07ffffef,
     214    0xffff0001, 0x06000080, 0xfffff824, 0x0000f000, 0xfff00000, 0x00018000,
     215    0x00010001, 0xffc00000, 0xffffe000, 0xffff7fff, 0xfffff3ff, 0xffffffc0,
     216    0xffe00000, 0xfc00e000, 0xfff00000, 0xfe000000, 0x0000f000, 0xfc00ff00,
     217    0x0000ff00, 0xffffc000, 0x0000f000, 0x80000000, 0x0b860000, 0xfc00fff8,
     218    0x0000fff8, 0xffffc000, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    213219    0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    214     0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    215     0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff};
    216     }
    217 
    218     const static UnicodeSet l_Set{const_cast<UnicodeSet::run_t *>(__l_Set_runs), 298, 0, const_cast<UnicodeSet::bitquad_t *>(__l_Set_quads), 280, 0};
     220    0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff};
     221    }
     222
     223    const static UnicodeSet l_Set{const_cast<UnicodeSet::run_t *>(__l_Set_runs), 311, 0, const_cast<UnicodeSet::bitquad_t *>(__l_Set_quads), 282, 0};
    219224
    220225    /** Code Point Ranges for R
    221226    [0590, 0590], [05be, 05be], [05c0, 05c0], [05c3, 05c3], [05c6, 05c6],
    222     [05c8, 05ff], [07c0, 07ea], [07f4, 07f5], [07fa, 0815], [081a, 081a],
    223     [0824, 0824], [0828, 0828], [082e, 0858], [085c, 085f], [0870, 089f],
    224     [200f, 200f], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb4f], [10800, 1091e],
    225     [10920, 10a00], [10a04, 10a04], [10a07, 10a0b], [10a10, 10a37],
    226     [10a3b, 10a3e], [10a40, 10ae4], [10ae7, 10b38], [10b40, 10e5f],
    227     [10e7f, 10fff], [1e800, 1e8cf], [1e8d7, 1e943], [1e94b, 1edff],
     227    [05c8, 05ff], [07c0, 07ea], [07f4, 07f5], [07fa, 07fc], [07fe, 0815],
     228    [081a, 081a], [0824, 0824], [0828, 0828], [082e, 0858], [085c, 085f],
     229    [0870, 089f], [200f, 200f], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb4f],
     230    [10800, 1091e], [10920, 10a00], [10a04, 10a04], [10a07, 10a0b],
     231    [10a10, 10a37], [10a3b, 10a3e], [10a40, 10ae4], [10ae7, 10b38],
     232    [10b40, 10cff], [10d40, 10e5f], [10e7f, 10f2f], [10f70, 10fff],
     233    [1e800, 1e8cf], [1e8d7, 1e943], [1e94b, 1ec6f], [1ecc0, 1edff],
    228234    [1ef00, 1efff]**/
    229235
     
    234240    {Full, 1}, {Empty, 187}, {Mixed, 1}, {Empty, 1751}, {Mixed, 3},
    235241    {Empty, 101}, {Full, 8}, {Mixed, 1}, {Full, 7}, {Mixed, 2}, {Full, 5},
    236     {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 25}, {Mixed, 1}, {Full, 12},
    237     {Empty, 1728}, {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 37},
    238     {Empty, 8}, {Full, 8}, {Empty, 30848}};
     242    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 14}, {Empty, 2}, {Full, 9},
     243    {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 4},
     244    {Empty, 1728}, {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 24},
     245    {Mixed, 1}, {Empty, 2}, {Full, 10}, {Empty, 8}, {Full, 8},
     246    {Empty, 30848}};
    239247    const static UnicodeSet::bitquad_t  __r_Set_quads[] = {
    240     0x00010000, 0x40000000, 0xffffff49, 0xfc3007ff, 0x043fffff, 0xffffc110,
     248    0x00010000, 0x40000000, 0xffffff49, 0xdc3007ff, 0x043fffff, 0xffffc110,
    241249    0xf1ffffff, 0xffff0000, 0x00008000, 0xa0000000, 0xfffffdff, 0x0000ffff,
    242250    0x7fffffff, 0xffff0f91, 0x78ffffff, 0xffffff9f, 0x01ffffff, 0x80000000,
    243     0xff80ffff, 0xfffff80f};
    244     }
    245 
    246     const static UnicodeSet r_Set{const_cast<UnicodeSet::run_t *>(__r_Set_runs), 32, 0, const_cast<UnicodeSet::bitquad_t *>(__r_Set_quads), 20, 0};
     251    0x0000ffff, 0xffff0000, 0xff80ffff, 0xfffff80f, 0x0000ffff};
     252    }
     253
     254    const static UnicodeSet r_Set{const_cast<UnicodeSet::run_t *>(__r_Set_runs), 41, 0, const_cast<UnicodeSet::bitquad_t *>(__r_Set_quads), 23, 0};
    247255
    248256    /** Code Point Ranges for EN
     
    310318    /** Code Point Ranges for AN
    311319    [0600, 0605], [0660, 0669], [066b, 066c], [06dd, 06dd], [08e2, 08e2],
    312     [10e60, 10e7e]**/
     320    [10d30, 10d39], [10e60, 10e7e]**/
    313321
    314322
     
    316324    const static UnicodeSet::run_t __an_Set_runs[] = {
    317325    {Empty, 48}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    318     {Empty, 16}, {Mixed, 1}, {Empty, 2091}, {Mixed, 1}, {Empty, 32652}};
     326    {Empty, 16}, {Mixed, 1}, {Empty, 2081}, {Mixed, 1}, {Empty, 9},
     327    {Mixed, 1}, {Empty, 32652}};
    319328    const static UnicodeSet::bitquad_t  __an_Set_quads[] = {
    320     0x0000003f, 0x00001bff, 0x20000000, 0x00000004, 0x7fffffff};
    321     }
    322 
    323     const static UnicodeSet an_Set{const_cast<UnicodeSet::run_t *>(__an_Set_runs), 11, 0, const_cast<UnicodeSet::bitquad_t *>(__an_Set_quads), 5, 0};
     329    0x0000003f, 0x00001bff, 0x20000000, 0x00000004, 0x03ff0000, 0x7fffffff};
     330    }
     331
     332    const static UnicodeSet an_Set{const_cast<UnicodeSet::run_t *>(__an_Set_runs), 13, 0, const_cast<UnicodeSet::bitquad_t *>(__an_Set_quads), 6, 0};
    324333
    325334    /** Code Point Ranges for CS
     
    400409    [214a, 214d], [2150, 215f], [2189, 218b], [2190, 2211], [2214, 2335],
    401410    [237b, 2394], [2396, 2426], [2440, 244a], [2460, 2487], [24ea, 26ab],
    402     [26ad, 27ff], [2900, 2b73], [2b76, 2b95], [2b98, 2bb9], [2bbd, 2bc8],
    403     [2bca, 2bd2], [2bec, 2bef], [2ce5, 2cea], [2cf9, 2cff], [2e00, 2e49],
    404     [2e80, 2e99], [2e9b, 2ef3], [2f00, 2fd5], [2ff0, 2ffb], [3001, 3004],
    405     [3008, 3020], [3030, 3030], [3036, 3037], [303d, 303f], [309b, 309c],
    406     [30a0, 30a0], [30fb, 30fb], [31c0, 31e3], [321d, 321e], [3250, 325f],
    407     [327c, 327e], [32b1, 32bf], [32cc, 32cf], [3377, 337a], [33de, 33df],
    408     [33ff, 33ff], [4dc0, 4dff], [a490, a4c6], [a60d, a60f], [a673, a673],
    409     [a67e, a67f], [a700, a721], [a788, a788], [a828, a82b], [a874, a877],
    410     [fd3e, fd3f], [fdfd, fdfd], [fe10, fe19], [fe30, fe4f], [fe51, fe51],
    411     [fe54, fe54], [fe56, fe5e], [fe60, fe61], [fe64, fe66], [fe68, fe68],
    412     [fe6b, fe6b], [ff01, ff02], [ff06, ff0a], [ff1b, ff20], [ff3b, ff40],
    413     [ff5b, ff65], [ffe2, ffe4], [ffe8, ffee], [fff9, fffd], [10101, 10101],
    414     [10140, 1018c], [10190, 1019b], [101a0, 101a0], [1091f, 1091f],
    415     [10b39, 10b3f], [11052, 11065], [11660, 1166c], [1d200, 1d241],
    416     [1d245, 1d245], [1d300, 1d356], [1d6db, 1d6db], [1d715, 1d715],
    417     [1d74f, 1d74f], [1d789, 1d789], [1d7c3, 1d7c3], [1eef0, 1eef1],
    418     [1f000, 1f02b], [1f030, 1f093], [1f0a0, 1f0ae], [1f0b1, 1f0bf],
    419     [1f0c1, 1f0cf], [1f0d1, 1f0f5], [1f10b, 1f10c], [1f16a, 1f16b],
    420     [1f260, 1f265], [1f300, 1f6d4], [1f6e0, 1f6ec], [1f6f0, 1f6f8],
    421     [1f700, 1f773], [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847],
     411    [26ad, 27ff], [2900, 2b73], [2b76, 2b95], [2b98, 2bc8], [2bca, 2bfe],
     412    [2ce5, 2cea], [2cf9, 2cff], [2e00, 2e4e], [2e80, 2e99], [2e9b, 2ef3],
     413    [2f00, 2fd5], [2ff0, 2ffb], [3001, 3004], [3008, 3020], [3030, 3030],
     414    [3036, 3037], [303d, 303f], [309b, 309c], [30a0, 30a0], [30fb, 30fb],
     415    [31c0, 31e3], [321d, 321e], [3250, 325f], [327c, 327e], [32b1, 32bf],
     416    [32cc, 32cf], [3377, 337a], [33de, 33df], [33ff, 33ff], [4dc0, 4dff],
     417    [a490, a4c6], [a60d, a60f], [a673, a673], [a67e, a67f], [a700, a721],
     418    [a788, a788], [a828, a82b], [a874, a877], [fd3e, fd3f], [fdfd, fdfd],
     419    [fe10, fe19], [fe30, fe4f], [fe51, fe51], [fe54, fe54], [fe56, fe5e],
     420    [fe60, fe61], [fe64, fe66], [fe68, fe68], [fe6b, fe6b], [ff01, ff02],
     421    [ff06, ff0a], [ff1b, ff20], [ff3b, ff40], [ff5b, ff65], [ffe2, ffe4],
     422    [ffe8, ffee], [fff9, fffd], [10101, 10101], [10140, 1018c],
     423    [10190, 1019b], [101a0, 101a0], [1091f, 1091f], [10b39, 10b3f],
     424    [11052, 11065], [11660, 1166c], [1d200, 1d241], [1d245, 1d245],
     425    [1d300, 1d356], [1d6db, 1d6db], [1d715, 1d715], [1d74f, 1d74f],
     426    [1d789, 1d789], [1d7c3, 1d7c3], [1eef0, 1eef1], [1f000, 1f02b],
     427    [1f030, 1f093], [1f0a0, 1f0ae], [1f0b1, 1f0bf], [1f0c1, 1f0cf],
     428    [1f0d1, 1f0f5], [1f10b, 1f10c], [1f12f, 1f12f], [1f16a, 1f16b],
     429    [1f260, 1f265], [1f300, 1f6d4], [1f6e0, 1f6ec], [1f6f0, 1f6f9],
     430    [1f700, 1f773], [1f780, 1f7d8], [1f800, 1f80b], [1f810, 1f847],
    422431    [1f850, 1f859], [1f860, 1f887], [1f890, 1f8ad], [1f900, 1f90b],
    423     [1f910, 1f93e], [1f940, 1f94c], [1f950, 1f96b], [1f980, 1f997],
    424     [1f9c0, 1f9c0], [1f9d0, 1f9e6]**/
     432    [1f910, 1f93e], [1f940, 1f970], [1f973, 1f976], [1f97a, 1f97a],
     433    [1f97c, 1f9a2], [1f9b0, 1f9b9], [1f9c0, 1f9c2], [1f9d0, 1f9ff],
     434    [1fa60, 1fa6d]**/
    425435
    426436
     
    437447    {Full, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 2},
    438448    {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 13}, {Mixed, 1},
    439     {Full, 10}, {Empty, 8}, {Full, 19}, {Mixed, 5}, {Empty, 7}, {Mixed, 1},
    440     {Empty, 8}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2},
    441     {Mixed, 1}, {Full, 6}, {Mixed, 4}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
    442     {Mixed, 1}, {Empty, 6}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    443     {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    444     {Empty, 206}, {Full, 2}, {Empty, 692}, {Mixed, 1}, {Full, 1},
    445     {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 4},
    446     {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
    447     {Empty, 1}, {Mixed, 1}, {Empty, 677}, {Mixed, 1}, {Empty, 5},
    448     {Mixed, 5}, {Empty, 4}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 8},
    449     {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 2}, {Empty, 58}, {Mixed, 1},
    450     {Empty, 16}, {Mixed, 1}, {Empty, 40}, {Mixed, 2}, {Empty, 47},
    451     {Mixed, 1}, {Empty, 1500}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 2},
    452     {Mixed, 1}, {Empty, 27}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
    453     {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    454     {Empty, 184}, {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 1}, {Full, 2},
    455     {Mixed, 5}, {Empty, 2}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 4},
    456     {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    457     {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    458     {Empty, 2}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 30768}};
     449    {Full, 10}, {Empty, 8}, {Full, 19}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
     450    {Empty, 7}, {Mixed, 1}, {Empty, 8}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     451    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 4}, {Empty, 2},
     452    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Full, 1}, {Mixed, 2},
     453    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
     454    {Empty, 2}, {Mixed, 2}, {Empty, 206}, {Full, 2}, {Empty, 692},
     455    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 2},
     456    {Mixed, 1}, {Empty, 4}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     457    {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 677},
     458    {Mixed, 1}, {Empty, 5}, {Mixed, 5}, {Empty, 4}, {Mixed, 4}, {Empty, 3},
     459    {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 2},
     460    {Empty, 58}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 40},
     461    {Mixed, 2}, {Empty, 47}, {Mixed, 1}, {Empty, 1500}, {Full, 2},
     462    {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 1}, {Empty, 27}, {Mixed, 1},
     463    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     464    {Empty, 1}, {Mixed, 1}, {Empty, 184}, {Mixed, 1}, {Empty, 8}, {Full, 1},
     465    {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 7},
     466    {Mixed, 1}, {Empty, 4}, {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1},
     467    {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     468    {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     469    {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 3}, {Mixed, 1},
     470    {Empty, 30764}};
    459471    const static UnicodeSet::bitquad_t  __on_Set_quads[] = {
    460472    0xf80007c6, 0xf8000001, 0x78000001, 0xf9d0dbc2, 0x00800000, 0x00800000,
     
    466478    0x0c0002af, 0xffff3c1f, 0xffff0e00, 0xfff3ffff, 0x003fffff, 0xf8000000,
    467479    0xffdfffff, 0x0000007f, 0x000007ff, 0x000000ff, 0xfffffc00, 0xffffefff,
    468     0xffcfffff, 0xff3fffff, 0xe3ffffff, 0x0007fdff, 0x0000f000, 0xfe0007e0,
    469     0x000003ff, 0xfbffffff, 0x000fffff, 0x003fffff, 0x0fff0000, 0xffffff1e,
    470     0xe0c10001, 0x18000000, 0x00000001, 0x08000000, 0x0000000f, 0x60000000,
    471     0xffff0000, 0x70000000, 0xfffe0000, 0x0000f000, 0x07800000, 0xc0000000,
    472     0x80000000, 0xffff0000, 0x0000007f, 0x0000e000, 0xc0080000, 0x00000003,
    473     0x00000100, 0x00000f00, 0x00f00000, 0xc0000000, 0x20000000, 0x03ff0000,
    474     0xffff0000, 0x7fd2ffff, 0x00000973, 0xf80007c6, 0xf8000001, 0xf8000001,
    475     0x0000003f, 0x3e007f1c, 0x00000002, 0x0fff1fff, 0x00000001, 0x80000000,
    476     0xfe000000, 0xfffc0000, 0x0000003f, 0x00001fff, 0x00000023, 0x007fffff,
    477     0x08000000, 0x00200000, 0x00008000, 0x00000200, 0x00000008, 0x00030000,
    478     0xffff0fff, 0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff, 0x00001800,
    479     0x00000c00, 0x0000003f, 0x001fffff, 0x01ff1fff, 0x000fffff, 0x001fffff,
     480    0xffcfffff, 0xff3fffff, 0xfffffdff, 0x7fffffff, 0xfe0007e0, 0x00007fff,
     481    0xfbffffff, 0x000fffff, 0x003fffff, 0x0fff0000, 0xffffff1e, 0xe0c10001,
     482    0x18000000, 0x00000001, 0x08000000, 0x0000000f, 0x60000000, 0xffff0000,
     483    0x70000000, 0xfffe0000, 0x0000f000, 0x07800000, 0xc0000000, 0x80000000,
     484    0xffff0000, 0x0000007f, 0x0000e000, 0xc0080000, 0x00000003, 0x00000100,
     485    0x00000f00, 0x00f00000, 0xc0000000, 0x20000000, 0x03ff0000, 0xffff0000,
     486    0x7fd2ffff, 0x00000973, 0xf80007c6, 0xf8000001, 0xf8000001, 0x0000003f,
     487    0x3e007f1c, 0x00000002, 0x0fff1fff, 0x00000001, 0x80000000, 0xfe000000,
     488    0xfffc0000, 0x0000003f, 0x00001fff, 0x00000023, 0x007fffff, 0x08000000,
     489    0x00200000, 0x00008000, 0x00000200, 0x00000008, 0x00030000, 0xffff0fff,
     490    0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff, 0x00001800, 0x00008000,
     491    0x00000c00, 0x0000003f, 0x001fffff, 0x03ff1fff, 0x000fffff, 0x01ffffff,
    480492    0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff, 0xffff0fff, 0x7fffffff,
    481     0xffff1fff, 0x00000fff, 0x00ffffff, 0xffff0001, 0x0000007f};
    482     }
    483 
    484     const static UnicodeSet on_Set{const_cast<UnicodeSet::run_t *>(__on_Set_runs), 172, 0, const_cast<UnicodeSet::bitquad_t *>(__on_Set_quads), 131, 0};
     493    0xf479ffff, 0x03ff0007, 0xffff0007, 0x00003fff};
     494    }
     495
     496    const static UnicodeSet on_Set{const_cast<UnicodeSet::run_t *>(__on_Set_runs), 179, 0, const_cast<UnicodeSet::bitquad_t *>(__on_Set_quads), 130, 0};
    485497
    486498    /** Code Point Ranges for BN
     
    522534    [05c4, 05c5], [05c7, 05c7], [0610, 061a], [064b, 065f], [0670, 0670],
    523535    [06d6, 06dc], [06df, 06e4], [06e7, 06e8], [06ea, 06ed], [0711, 0711],
    524     [0730, 074a], [07a6, 07b0], [07eb, 07f3], [0816, 0819], [081b, 0823],
    525     [0825, 0827], [0829, 082d], [0859, 085b], [08d4, 08e1], [08e3, 0902],
    526     [093a, 093a], [093c, 093c], [0941, 0948], [094d, 094d], [0951, 0957],
    527     [0962, 0963], [0981, 0981], [09bc, 09bc], [09c1, 09c4], [09cd, 09cd],
    528     [09e2, 09e3], [0a01, 0a02], [0a3c, 0a3c], [0a41, 0a42], [0a47, 0a48],
    529     [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71], [0a75, 0a75], [0a81, 0a82],
    530     [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8], [0acd, 0acd], [0ae2, 0ae3],
    531     [0afa, 0aff], [0b01, 0b01], [0b3c, 0b3c], [0b3f, 0b3f], [0b41, 0b44],
    532     [0b4d, 0b4d], [0b56, 0b56], [0b62, 0b63], [0b82, 0b82], [0bc0, 0bc0],
    533     [0bcd, 0bcd], [0c00, 0c00], [0c3e, 0c40], [0c46, 0c48], [0c4a, 0c4d],
    534     [0c55, 0c56], [0c62, 0c63], [0c81, 0c81], [0cbc, 0cbc], [0ccc, 0ccd],
    535     [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c], [0d41, 0d44], [0d4d, 0d4d],
    536     [0d62, 0d63], [0dca, 0dca], [0dd2, 0dd4], [0dd6, 0dd6], [0e31, 0e31],
    537     [0e34, 0e3a], [0e47, 0e4e], [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc],
    538     [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37], [0f39, 0f39],
    539     [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc],
    540     [0fc6, 0fc6], [102d, 1030], [1032, 1037], [1039, 103a], [103d, 103e],
    541     [1058, 1059], [105e, 1060], [1071, 1074], [1082, 1082], [1085, 1086],
    542     [108d, 108d], [109d, 109d], [135d, 135f], [1712, 1714], [1732, 1734],
    543     [1752, 1753], [1772, 1773], [17b4, 17b5], [17b7, 17bd], [17c6, 17c6],
    544     [17c9, 17d3], [17dd, 17dd], [180b, 180d], [1885, 1886], [18a9, 18a9],
    545     [1920, 1922], [1927, 1928], [1932, 1932], [1939, 193b], [1a17, 1a18],
    546     [1a1b, 1a1b], [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62],
    547     [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f], [1ab0, 1abe], [1b00, 1b03],
    548     [1b34, 1b34], [1b36, 1b3a], [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73],
    549     [1b80, 1b81], [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6],
    550     [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33], [1c36, 1c37],
    551     [1cd0, 1cd2], [1cd4, 1ce0], [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4],
    552     [1cf8, 1cf9], [1dc0, 1df9], [1dfb, 1dff], [20d0, 20f0], [2cef, 2cf1],
    553     [2d7f, 2d7f], [2de0, 2dff], [302a, 302d], [3099, 309a], [a66f, a672],
    554     [a674, a67d], [a69e, a69f], [a6f0, a6f1], [a802, a802], [a806, a806],
    555     [a80b, a80b], [a825, a826], [a8c4, a8c5], [a8e0, a8f1], [a926, a92d],
    556     [a947, a951], [a980, a982], [a9b3, a9b3], [a9b6, a9b9], [a9bc, a9bc],
    557     [a9e5, a9e5], [aa29, aa2e], [aa31, aa32], [aa35, aa36], [aa43, aa43],
    558     [aa4c, aa4c], [aa7c, aa7c], [aab0, aab0], [aab2, aab4], [aab7, aab8],
    559     [aabe, aabf], [aac1, aac1], [aaec, aaed], [aaf6, aaf6], [abe5, abe5],
    560     [abe8, abe8], [abed, abed], [fb1e, fb1e], [fe00, fe0f], [fe20, fe2f],
    561     [101fd, 101fd], [102e0, 102e0], [10376, 1037a], [10a01, 10a03],
    562     [10a05, 10a06], [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f],
    563     [10ae5, 10ae6], [11001, 11001], [11038, 11046], [1107f, 11081],
    564     [110b3, 110b6], [110b9, 110ba], [11100, 11102], [11127, 1112b],
    565     [1112d, 11134], [11173, 11173], [11180, 11181], [111b6, 111be],
    566     [111ca, 111cc], [1122f, 11231], [11234, 11234], [11236, 11237],
    567     [1123e, 1123e], [112df, 112df], [112e3, 112ea], [11300, 11301],
    568     [1133c, 1133c], [11340, 11340], [11366, 1136c], [11370, 11374],
    569     [11438, 1143f], [11442, 11444], [11446, 11446], [114b3, 114b8],
    570     [114ba, 114ba], [114bf, 114c0], [114c2, 114c3], [115b2, 115b5],
    571     [115bc, 115bd], [115bf, 115c0], [115dc, 115dd], [11633, 1163a],
    572     [1163d, 1163d], [1163f, 11640], [116ab, 116ab], [116ad, 116ad],
    573     [116b0, 116b5], [116b7, 116b7], [1171d, 1171f], [11722, 11725],
    574     [11727, 1172b], [11a01, 11a06], [11a09, 11a0a], [11a33, 11a38],
     536    [0730, 074a], [07a6, 07b0], [07eb, 07f3], [07fd, 07fd], [0816, 0819],
     537    [081b, 0823], [0825, 0827], [0829, 082d], [0859, 085b], [08d3, 08e1],
     538    [08e3, 0902], [093a, 093a], [093c, 093c], [0941, 0948], [094d, 094d],
     539    [0951, 0957], [0962, 0963], [0981, 0981], [09bc, 09bc], [09c1, 09c4],
     540    [09cd, 09cd], [09e2, 09e3], [09fe, 09fe], [0a01, 0a02], [0a3c, 0a3c],
     541    [0a41, 0a42], [0a47, 0a48], [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71],
     542    [0a75, 0a75], [0a81, 0a82], [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8],
     543    [0acd, 0acd], [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b01], [0b3c, 0b3c],
     544    [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d], [0b56, 0b56], [0b62, 0b63],
     545    [0b82, 0b82], [0bc0, 0bc0], [0bcd, 0bcd], [0c00, 0c00], [0c04, 0c04],
     546    [0c3e, 0c40], [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63],
     547    [0c81, 0c81], [0cbc, 0cbc], [0ccc, 0ccd], [0ce2, 0ce3], [0d00, 0d01],
     548    [0d3b, 0d3c], [0d41, 0d44], [0d4d, 0d4d], [0d62, 0d63], [0dca, 0dca],
     549    [0dd2, 0dd4], [0dd6, 0dd6], [0e31, 0e31], [0e34, 0e3a], [0e47, 0e4e],
     550    [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc], [0ec8, 0ecd], [0f18, 0f19],
     551    [0f35, 0f35], [0f37, 0f37], [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84],
     552    [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030],
     553    [1032, 1037], [1039, 103a], [103d, 103e], [1058, 1059], [105e, 1060],
     554    [1071, 1074], [1082, 1082], [1085, 1086], [108d, 108d], [109d, 109d],
     555    [135d, 135f], [1712, 1714], [1732, 1734], [1752, 1753], [1772, 1773],
     556    [17b4, 17b5], [17b7, 17bd], [17c6, 17c6], [17c9, 17d3], [17dd, 17dd],
     557    [180b, 180d], [1885, 1886], [18a9, 18a9], [1920, 1922], [1927, 1928],
     558    [1932, 1932], [1939, 193b], [1a17, 1a18], [1a1b, 1a1b], [1a56, 1a56],
     559    [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62], [1a65, 1a6c], [1a73, 1a7c],
     560    [1a7f, 1a7f], [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a],
     561    [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81], [1ba2, 1ba5],
     562    [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6], [1be8, 1be9], [1bed, 1bed],
     563    [1bef, 1bf1], [1c2c, 1c33], [1c36, 1c37], [1cd0, 1cd2], [1cd4, 1ce0],
     564    [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9], [1dc0, 1df9],
     565    [1dfb, 1dff], [20d0, 20f0], [2cef, 2cf1], [2d7f, 2d7f], [2de0, 2dff],
     566    [302a, 302d], [3099, 309a], [a66f, a672], [a674, a67d], [a69e, a69f],
     567    [a6f0, a6f1], [a802, a802], [a806, a806], [a80b, a80b], [a825, a826],
     568    [a8c4, a8c5], [a8e0, a8f1], [a8ff, a8ff], [a926, a92d], [a947, a951],
     569    [a980, a982], [a9b3, a9b3], [a9b6, a9b9], [a9bc, a9bc], [a9e5, a9e5],
     570    [aa29, aa2e], [aa31, aa32], [aa35, aa36], [aa43, aa43], [aa4c, aa4c],
     571    [aa7c, aa7c], [aab0, aab0], [aab2, aab4], [aab7, aab8], [aabe, aabf],
     572    [aac1, aac1], [aaec, aaed], [aaf6, aaf6], [abe5, abe5], [abe8, abe8],
     573    [abed, abed], [fb1e, fb1e], [fe00, fe0f], [fe20, fe2f], [101fd, 101fd],
     574    [102e0, 102e0], [10376, 1037a], [10a01, 10a03], [10a05, 10a06],
     575    [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6],
     576    [10d24, 10d27], [10f46, 10f50], [11001, 11001], [11038, 11046],
     577    [1107f, 11081], [110b3, 110b6], [110b9, 110ba], [11100, 11102],
     578    [11127, 1112b], [1112d, 11134], [11173, 11173], [11180, 11181],
     579    [111b6, 111be], [111c9, 111cc], [1122f, 11231], [11234, 11234],
     580    [11236, 11237], [1123e, 1123e], [112df, 112df], [112e3, 112ea],
     581    [11300, 11301], [1133b, 1133c], [11340, 11340], [11366, 1136c],
     582    [11370, 11374], [11438, 1143f], [11442, 11444], [11446, 11446],
     583    [1145e, 1145e], [114b3, 114b8], [114ba, 114ba], [114bf, 114c0],
     584    [114c2, 114c3], [115b2, 115b5], [115bc, 115bd], [115bf, 115c0],
     585    [115dc, 115dd], [11633, 1163a], [1163d, 1163d], [1163f, 11640],
     586    [116ab, 116ab], [116ad, 116ad], [116b0, 116b5], [116b7, 116b7],
     587    [1171d, 1171f], [11722, 11725], [11727, 1172b], [1182f, 11837],
     588    [11839, 1183a], [11a01, 11a06], [11a09, 11a0a], [11a33, 11a38],
    575589    [11a3b, 11a3e], [11a47, 11a47], [11a51, 11a56], [11a59, 11a5b],
    576590    [11a8a, 11a96], [11a98, 11a99], [11c30, 11c36], [11c38, 11c3d],
    577591    [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
    578592    [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
    579     [11d47, 11d47], [16af0, 16af4], [16b30, 16b36], [16f8f, 16f92],
     593    [11d47, 11d47], [11d90, 11d91], [11d95, 11d95], [11d97, 11d97],
     594    [11ef3, 11ef4], [16af0, 16af4], [16b30, 16b36], [16f8f, 16f92],
    580595    [1bc9d, 1bc9e], [1d167, 1d169], [1d17b, 1d182], [1d185, 1d18b],
    581596    [1d1aa, 1d1ad], [1d242, 1d244], [1da00, 1da36], [1da3b, 1da6c],
     
    606621    {Mixed, 1}, {Empty, 23}, {Mixed, 2}, {Empty, 29}, {Mixed, 1},
    607622    {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    608     {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2}, {Mixed, 2},
    609     {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6},
    610     {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2},
    611     {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    612     {Empty, 22}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12},
    613     {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
    614     {Empty, 620}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34},
    615     {Mixed, 1}, {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3},
    616     {Empty, 4}, {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1},
    617     {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1},
    618     {Empty, 3}, {Mixed, 1}, {Empty, 24765}, {Full, 7}, {Mixed, 1},
    619     {Empty, 6128}};
     623    {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
     624    {Mixed, 1}, {Empty, 5}, {Mixed, 6}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     625    {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5},
     626    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
     627    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
     628    {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
     629    {Empty, 12}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
     630    {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607},
     631    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
     632    {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
     633    {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     634    {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3},
     635    {Mixed, 1}, {Empty, 24765}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
    620636    const static UnicodeSet::bitquad_t  __nsm_Set_quads[] = {
    621637    0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6, 0x07ff0000,
    622638    0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f, 0x00020000, 0xffff0000,
    623     0x000007ff, 0x0001ffc0, 0x000ff800, 0xfbc00000, 0x00003eef, 0x0e000000,
    624     0xfff00000, 0xfffffffb, 0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c,
    625     0x00000002, 0x10000000, 0x0000201e, 0x0000000c, 0x00000006, 0x10000000,
     639    0x000007ff, 0x0001ffc0, 0x200ff800, 0xfbc00000, 0x00003eef, 0x0e000000,
     640    0xfff80000, 0xfffffffb, 0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c,
     641    0x00000002, 0x10000000, 0x0000201e, 0x4000000c, 0x00000006, 0x10000000,
    626642    0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be, 0xfc00000c,
    627643    0x00000002, 0x90000000, 0x0040201e, 0x0000000c, 0x00000004, 0x00002001,
    628     0x00000001, 0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x10000000,
     644    0x00000011, 0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x10000000,
    629645    0x00003000, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e, 0x0000000c,
    630646    0x005c0400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00, 0x03000000,
     
    636652    0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd, 0xfbffffff, 0xffff0000,
    637653    0x0001ffff, 0x00038000, 0x80000000, 0x00003c00, 0x06000000, 0x3ff78000,
    638     0xc0000000, 0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x0003ffff,
     654    0xc0000000, 0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x8003ffff,
    639655    0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020, 0x00667e00,
    640656    0x00001008, 0x10000000, 0xc19d0000, 0x00000002, 0x00403000, 0x00002120,
    641657    0x40000000, 0x0000ffff, 0x0000ffff, 0x20000000, 0x00000001, 0x07c00000,
    642     0x0000f06e, 0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
    643     0x80000000, 0x00000003, 0x06780000, 0x00000007, 0x001fef80, 0x00080000,
    644     0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000, 0x80000000, 0x000007f8,
    645     0x00000003, 0x10000000, 0x00000001, 0x001f1fc0, 0xff000000, 0x0000005c,
    646     0x85f80000, 0x0000000d, 0xb03c0000, 0x30000001, 0xa7f80000, 0x00000001,
    647     0x00bf2800, 0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
    648     0x037ffc00, 0x3f7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000, 0x000000bf,
    649     0x001f0000, 0x007f0000, 0x00078000, 0x60000000, 0xf8000380, 0x00000fe7,
    650     0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe,
    651     0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0, 0x0000ffff};
    652     }
    653 
    654     const static UnicodeSet nsm_Set{const_cast<UnicodeSet::run_t *>(__nsm_Set_runs), 169, 0, const_cast<UnicodeSet::bitquad_t *>(__nsm_Set_quads), 185, 0};
     658    0x0000f06e, 0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000002,
     659    0xff000000, 0x0000007f, 0x80000000, 0x00000003, 0x06780000, 0x00000007,
     660    0x001fef80, 0x00080000, 0x00000003, 0x7fc00000, 0x00001e00, 0x40d38000,
     661    0x80000000, 0x000007f8, 0x00000003, 0x18000000, 0x00000001, 0x001f1fc0,
     662    0xff000000, 0x4000005c, 0x85f80000, 0x0000000d, 0xb03c0000, 0x30000001,
     663    0xa7f80000, 0x00000001, 0x00bf2800, 0xe0000000, 0x00000fbc, 0x06ff8000,
     664    0x0000067e, 0x79f80000, 0x0e7e0080, 0x037ffc00, 0x3f7f0000, 0xfffc0000,
     665    0x006dfcff, 0xb47e0000, 0x000000bf, 0x00a30000, 0x00180000, 0x001f0000,
     666    0x007f0000, 0x00078000, 0x60000000, 0xf8000380, 0x00000fe7, 0x00003c00,
     667    0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f,
     668    0x000007db, 0x007f0000, 0x000007f0, 0x0000ffff};
     669    }
     670
     671    const static UnicodeSet nsm_Set{const_cast<UnicodeSet::run_t *>(__nsm_Set_runs), 179, 0, const_cast<UnicodeSet::bitquad_t *>(__nsm_Set_quads), 190, 0};
    655672
    656673    /** Code Point Ranges for AL
    657674    [0608, 0608], [060b, 060b], [060d, 060d], [061b, 064a], [066d, 066f],
    658675    [0671, 06d5], [06e5, 06e6], [06ee, 06ef], [06fa, 0710], [0712, 072f],
    659     [074b, 07a5], [07b1, 07bf], [0860, 086f], [08a0, 08d3], [fb50, fd3d],
    660     [fd40, fdcf], [fdf0, fdfc], [fdfe, fdff], [fe70, fefe], [1ee00, 1eeef],
    661     [1eef2, 1eeff]**/
     676    [074b, 07a5], [07b1, 07bf], [0860, 086f], [08a0, 08d2], [fb50, fd3d],
     677    [fd40, fdcf], [fdf0, fdfc], [fdfe, fdff], [fe70, fefe], [10d00, 10d23],
     678    [10d28, 10d2f], [10d3a, 10d3f], [10f30, 10f45], [10f51, 10f6f],
     679    [1ec70, 1ecbf], [1ee00, 1eeef], [1eef2, 1eeff]**/
    662680
    663681
     
    668686    {Mixed, 1}, {Empty, 1939}, {Mixed, 1}, {Full, 14}, {Mixed, 1},
    669687    {Full, 4}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    670     {Empty, 1912}, {Full, 7}, {Mixed, 1}, {Empty, 30856}};
     688    {Empty, 112}, {Full, 1}, {Mixed, 1}, {Empty, 15}, {Mixed, 3},
     689    {Empty, 1767}, {Mixed, 1}, {Full, 2}, {Empty, 10}, {Full, 7},
     690    {Mixed, 1}, {Empty, 30856}};
    671691    const static UnicodeSet::bitquad_t  __al_Set_quads[] = {
    672692    0xf8002900, 0x000007ff, 0xfffee000, 0x003fffff, 0xfc00c060, 0xfffdffff,
    673     0x0000ffff, 0xfffff800, 0xfffe003f, 0x0000ffff, 0x000fffff, 0xffff0000,
    674     0x3fffffff, 0x0000ffff, 0xdfff0000, 0xffff0000, 0x7fffffff, 0xfffcffff};
    675     }
    676 
    677     const static UnicodeSet al_Set{const_cast<UnicodeSet::run_t *>(__al_Set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__al_Set_quads), 18, 0};
     693    0x0000ffff, 0xfffff800, 0xfffe003f, 0x0000ffff, 0x0007ffff, 0xffff0000,
     694    0x3fffffff, 0x0000ffff, 0xdfff0000, 0xffff0000, 0x7fffffff, 0xfc00ff0f,
     695    0xffff0000, 0xfffe003f, 0x0000ffff, 0xffff0000, 0xfffcffff};
     696    }
     697
     698    const static UnicodeSet al_Set{const_cast<UnicodeSet::run_t *>(__al_Set_runs), 35, 0, const_cast<UnicodeSet::bitquad_t *>(__al_Set_quads), 23, 0};
    678699
    679700    /** Code Point Ranges for LRO
  • icGREP/icgrep-devel/icgrep/UCD/DerivedBinaryProperties.h

    r5748 r6192  
    22#define DERIVEDBINARYPROPERTIES_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    3030        [2768, 2775], [27c0, 27c0], [27c3, 27c6], [27c8, 27c9],
    3131        [27cb, 27cd], [27d3, 27d6], [27dc, 27de], [27e2, 27ef],
    32         [2983, 2998], [299b, 29af], [29b8, 29b8], [29c0, 29c5],
    33         [29c9, 29c9], [29ce, 29d2], [29d4, 29d5], [29d8, 29dc],
    34         [29e1, 29e1], [29e3, 29e5], [29e8, 29e9], [29f4, 29f9],
    35         [29fc, 29fd], [2a0a, 2a1c], [2a1e, 2a21], [2a24, 2a24],
    36         [2a26, 2a26], [2a29, 2a29], [2a2b, 2a2e], [2a34, 2a35],
    37         [2a3c, 2a3e], [2a57, 2a58], [2a64, 2a65], [2a6a, 2a6d],
    38         [2a6f, 2a70], [2a73, 2a74], [2a79, 2aa3], [2aa6, 2aad],
    39         [2aaf, 2ad6], [2adc, 2adc], [2ade, 2ade], [2ae2, 2ae6],
    40         [2aec, 2aee], [2af3, 2af3], [2af7, 2afb], [2afd, 2afd],
    41         [2e02, 2e05], [2e09, 2e0a], [2e0c, 2e0d], [2e1c, 2e1d],
    42         [2e20, 2e29], [3008, 3011], [3014, 301b], [fe59, fe5e],
    43         [fe64, fe65], [ff08, ff09], [ff1c, ff1c], [ff1e, ff1e],
    44         [ff3b, ff3b], [ff3d, ff3d], [ff5b, ff5b], [ff5d, ff5d],
    45         [ff5f, ff60], [ff62, ff63], [1d6db, 1d6db], [1d715, 1d715],
    46         [1d74f, 1d74f], [1d789, 1d789], [1d7c3, 1d7c3]**/
     32        [2983, 2998], [299b, 29a0], [29a2, 29af], [29b8, 29b8],
     33        [29c0, 29c5], [29c9, 29c9], [29ce, 29d2], [29d4, 29d5],
     34        [29d8, 29dc], [29e1, 29e1], [29e3, 29e5], [29e8, 29e9],
     35        [29f4, 29f9], [29fc, 29fd], [2a0a, 2a1c], [2a1e, 2a21],
     36        [2a24, 2a24], [2a26, 2a26], [2a29, 2a29], [2a2b, 2a2e],
     37        [2a34, 2a35], [2a3c, 2a3e], [2a57, 2a58], [2a64, 2a65],
     38        [2a6a, 2a6d], [2a6f, 2a70], [2a73, 2a74], [2a79, 2aa3],
     39        [2aa6, 2aad], [2aaf, 2ad6], [2adc, 2adc], [2ade, 2ade],
     40        [2ae2, 2ae6], [2aec, 2aee], [2af3, 2af3], [2af7, 2afb],
     41        [2afd, 2afd], [2bfe, 2bfe], [2e02, 2e05], [2e09, 2e0a],
     42        [2e0c, 2e0d], [2e1c, 2e1d], [2e20, 2e29], [3008, 3011],
     43        [3014, 301b], [fe59, fe5e], [fe64, fe65], [ff08, ff09],
     44        [ff1c, ff1c], [ff1e, ff1e], [ff3b, ff3b], [ff3d, ff3d],
     45        [ff5b, ff5b], [ff5d, ff5d], [ff5f, ff60], [ff62, ff63],
     46        [1d6db, 1d6db], [1d715, 1d715], [1d74f, 1d74f], [1d789, 1d789],
     47        [1d7c3, 1d7c3]**/
    4748
    4849
     
    5354        {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 10}, {Empty, 33},
    5455        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12}, {Mixed, 8},
    55         {Full, 1}, {Mixed, 3}, {Empty, 24}, {Mixed, 2}, {Empty, 14},
    56         {Mixed, 1}, {Empty, 1649}, {Mixed, 2}, {Empty, 4}, {Mixed, 4},
    57         {Empty, 1722}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     56        {Full, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 16},
     57        {Mixed, 2}, {Empty, 14}, {Mixed, 1}, {Empty, 1649}, {Mixed, 2},
     58        {Empty, 4}, {Mixed, 4}, {Empty, 1722}, {Mixed, 1}, {Empty, 1},
    5859        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    59         {Empty, 31041}};
     60        {Empty, 1}, {Mixed, 1}, {Empty, 31041}};
    6061        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
    6162        0x50000300, 0x28000000, 0x28000000, 0x08000800, 0x3c000000,
     
    6465        0x01079fff, 0xc1ffffcc, 0xffc33e00, 0xffff3fff, 0x00000f00,
    6566        0x00000603, 0x003fff00, 0x70783b79, 0x0000fffc, 0xf9fffff8,
    66         0x0100ffff, 0x1f37c23f, 0x33f0033a, 0xdffffc00, 0x70307a53,
     67        0x0100fffd, 0x1f37c23f, 0x33f0033a, 0xdffffc00, 0x70307a53,
    6768        0x01800000, 0xfe19bc30, 0xffffbfcf, 0x507fffff, 0x2f88707c,
    68         0x3000363c, 0x000003ff, 0x0ff3ff00, 0x7e000000, 0x00000030,
    69         0x50000300, 0x28000000, 0xa8000000, 0x0000000d, 0x08000000,
    70         0x00200000, 0x00008000, 0x00000200, 0x00000008};
     69        0x40000000, 0x3000363c, 0x000003ff, 0x0ff3ff00, 0x7e000000,
     70        0x00000030, 0x50000300, 0x28000000, 0xa8000000, 0x0000000d,
     71        0x08000000, 0x00200000, 0x00008000, 0x00000200, 0x00000008};
    7172        }
    7273
    73         const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 41, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 49, 0};
     74        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 43, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 50, 0};
    7475
    7576        static BinaryPropertyObject property_object{Bidi_M, std::move(codepoint_set)};
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCombiningClass.h

    r5751 r6192  
    22#define DERIVEDCOMBININGCLASS_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    2121    [05c0, 05c0], [05c3, 05c3], [05c6, 05c6], [05c8, 060f], [061b, 064a],
    2222    [0660, 066f], [0671, 06d5], [06dd, 06de], [06e5, 06e6], [06e9, 06e9],
    23     [06ee, 0710], [0712, 072f], [074b, 07ea], [07f4, 0815], [081a, 081a],
    24     [0824, 0824], [0828, 0828], [082e, 0858], [085c, 08d3], [08e2, 08e2],
    25     [0900, 093b], [093d, 094c], [094e, 0950], [0955, 09bb], [09bd, 09cc],
    26     [09ce, 0a3b], [0a3d, 0a4c], [0a4e, 0abb], [0abd, 0acc], [0ace, 0b3b],
    27     [0b3d, 0b4c], [0b4e, 0bcc], [0bce, 0c4c], [0c4e, 0c54], [0c57, 0cbb],
    28     [0cbd, 0ccc], [0cce, 0d3a], [0d3d, 0d4c], [0d4e, 0dc9], [0dcb, 0e37],
    29     [0e3b, 0e47], [0e4c, 0eb7], [0eba, 0ec7], [0ecc, 0f17], [0f1a, 0f34],
    30     [0f36, 0f36], [0f38, 0f38], [0f3a, 0f70], [0f73, 0f73], [0f75, 0f79],
    31     [0f7e, 0f7f], [0f81, 0f81], [0f85, 0f85], [0f88, 0fc5], [0fc7, 1036],
    32     [1038, 1038], [103b, 108c], [108e, 135c], [1360, 1713], [1715, 1733],
    33     [1735, 17d1], [17d3, 17dc], [17de, 18a8], [18aa, 1938], [193c, 1a16],
    34     [1a19, 1a5f], [1a61, 1a74], [1a7d, 1a7e], [1a80, 1aaf], [1abe, 1b33],
    35     [1b35, 1b43], [1b45, 1b6a], [1b74, 1ba9], [1bac, 1be5], [1be7, 1bf1],
    36     [1bf4, 1c36], [1c38, 1ccf], [1cd3, 1cd3], [1ce1, 1ce1], [1ce9, 1cec],
    37     [1cee, 1cf3], [1cf5, 1cf7], [1cfa, 1dbf], [1dfa, 1dfa], [1e00, 20cf],
    38     [20dd, 20e0], [20e2, 20e4], [20f1, 2cee], [2cf2, 2d7e], [2d80, 2ddf],
    39     [2e00, 3029], [3030, 3098], [309b, a66e], [a670, a673], [a67e, a69d],
    40     [a6a0, a6ef], [a6f2, a805], [a807, a8c3], [a8c5, a8df], [a8f2, a92a],
    41     [a92e, a952], [a954, a9b2], [a9b4, a9bf], [a9c1, aaaf], [aab1, aab1],
    42     [aab5, aab6], [aab9, aabd], [aac0, aac0], [aac2, aaf5], [aaf7, abec],
    43     [abee, fb1d], [fb1f, fe1f], [fe30, 101fc], [101fe, 102df],
    44     [102e1, 10375], [1037b, 10a0c], [10a0e, 10a0e], [10a10, 10a37],
    45     [10a3b, 10a3e], [10a40, 10ae4], [10ae7, 11045], [11047, 1107e],
    46     [11080, 110b8], [110bb, 110ff], [11103, 11132], [11135, 11172],
    47     [11174, 111bf], [111c1, 111c9], [111cb, 11234], [11237, 112e8],
    48     [112eb, 1133b], [1133d, 1134c], [1134e, 11365], [1136d, 1136f],
    49     [11375, 11441], [11443, 11445], [11447, 114c1], [114c4, 115be],
    50     [115c1, 1163e], [11640, 116b5], [116b8, 1172a], [1172c, 11a33],
    51     [11a35, 11a46], [11a48, 11a98], [11a9a, 11c3e], [11c40, 11d41],
    52     [11d43, 11d43], [11d46, 16aef], [16af5, 16b2f], [16b37, 1bc9d],
    53     [1bc9f, 1d164], [1d16a, 1d16c], [1d173, 1d17a], [1d183, 1d184],
    54     [1d18c, 1d1a9], [1d1ae, 1d241], [1d245, 1dfff], [1e007, 1e007],
    55     [1e019, 1e01a], [1e022, 1e022], [1e025, 1e025], [1e02b, 1e8cf],
    56     [1e8d7, 1e943], [1e94b, 10ffff]**/
     23    [06ee, 0710], [0712, 072f], [074b, 07ea], [07f4, 07fc], [07fe, 0815],
     24    [081a, 081a], [0824, 0824], [0828, 0828], [082e, 0858], [085c, 08d2],
     25    [08e2, 08e2], [0900, 093b], [093d, 094c], [094e, 0950], [0955, 09bb],
     26    [09bd, 09cc], [09ce, 09fd], [09ff, 0a3b], [0a3d, 0a4c], [0a4e, 0abb],
     27    [0abd, 0acc], [0ace, 0b3b], [0b3d, 0b4c], [0b4e, 0bcc], [0bce, 0c4c],
     28    [0c4e, 0c54], [0c57, 0cbb], [0cbd, 0ccc], [0cce, 0d3a], [0d3d, 0d4c],
     29    [0d4e, 0dc9], [0dcb, 0e37], [0e3b, 0e47], [0e4c, 0eb7], [0eba, 0ec7],
     30    [0ecc, 0f17], [0f1a, 0f34], [0f36, 0f36], [0f38, 0f38], [0f3a, 0f70],
     31    [0f73, 0f73], [0f75, 0f79], [0f7e, 0f7f], [0f81, 0f81], [0f85, 0f85],
     32    [0f88, 0fc5], [0fc7, 1036], [1038, 1038], [103b, 108c], [108e, 135c],
     33    [1360, 1713], [1715, 1733], [1735, 17d1], [17d3, 17dc], [17de, 18a8],
     34    [18aa, 1938], [193c, 1a16], [1a19, 1a5f], [1a61, 1a74], [1a7d, 1a7e],
     35    [1a80, 1aaf], [1abe, 1b33], [1b35, 1b43], [1b45, 1b6a], [1b74, 1ba9],
     36    [1bac, 1be5], [1be7, 1bf1], [1bf4, 1c36], [1c38, 1ccf], [1cd3, 1cd3],
     37    [1ce1, 1ce1], [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf7], [1cfa, 1dbf],
     38    [1dfa, 1dfa], [1e00, 20cf], [20dd, 20e0], [20e2, 20e4], [20f1, 2cee],
     39    [2cf2, 2d7e], [2d80, 2ddf], [2e00, 3029], [3030, 3098], [309b, a66e],
     40    [a670, a673], [a67e, a69d], [a6a0, a6ef], [a6f2, a805], [a807, a8c3],
     41    [a8c5, a8df], [a8f2, a92a], [a92e, a952], [a954, a9b2], [a9b4, a9bf],
     42    [a9c1, aaaf], [aab1, aab1], [aab5, aab6], [aab9, aabd], [aac0, aac0],
     43    [aac2, aaf5], [aaf7, abec], [abee, fb1d], [fb1f, fe1f], [fe30, 101fc],
     44    [101fe, 102df], [102e1, 10375], [1037b, 10a0c], [10a0e, 10a0e],
     45    [10a10, 10a37], [10a3b, 10a3e], [10a40, 10ae4], [10ae7, 10d23],
     46    [10d28, 10f45], [10f51, 11045], [11047, 1107e], [11080, 110b8],
     47    [110bb, 110ff], [11103, 11132], [11135, 11172], [11174, 111bf],
     48    [111c1, 111c9], [111cb, 11234], [11237, 112e8], [112eb, 1133a],
     49    [1133d, 1134c], [1134e, 11365], [1136d, 1136f], [11375, 11441],
     50    [11443, 11445], [11447, 1145d], [1145f, 114c1], [114c4, 115be],
     51    [115c1, 1163e], [11640, 116b5], [116b8, 1172a], [1172c, 11838],
     52    [1183b, 11a33], [11a35, 11a46], [11a48, 11a98], [11a9a, 11c3e],
     53    [11c40, 11d41], [11d43, 11d43], [11d46, 11d96], [11d98, 16aef],
     54    [16af5, 16b2f], [16b37, 1bc9d], [1bc9f, 1d164], [1d16a, 1d16c],
     55    [1d173, 1d17a], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d241],
     56    [1d245, 1dfff], [1e007, 1e007], [1e019, 1e01a], [1e022, 1e022],
     57    [1e025, 1e025], [1e02b, 1e8cf], [1e8d7, 1e943], [1e94b, 10ffff]**/
    5758
    5859
     
    6263    {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
    6364    {Mixed, 5}, {Full, 4}, {Mixed, 4}, {Full, 3}, {Mixed, 2}, {Full, 1},
    64     {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2},
     65    {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 2},
    6566    {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 3},
    6667    {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 3},
     
    7980    {Full, 632}, {Mixed, 1}, {Full, 24}, {Mixed, 1}, {Full, 29}, {Mixed, 1},
    8081    {Full, 7}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 52}, {Mixed, 2},
    81     {Full, 5}, {Mixed, 1}, {Full, 42}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
    82     {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    83     {Full, 2}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
    84     {Full, 6}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 2},
    85     {Full, 2}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    86     {Full, 23}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
    87     {Full, 8}, {Mixed, 1}, {Full, 620}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    88     {Full, 650}, {Mixed, 1}, {Full, 166}, {Mixed, 3}, {Full, 4}, {Mixed, 1},
    89     {Full, 109}, {Mixed, 2}, {Full, 68}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
    90     {Full, 30901}};
     82    {Full, 5}, {Mixed, 1}, {Full, 17}, {Mixed, 1}, {Full, 16}, {Mixed, 1},
     83    {Full, 7}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     84    {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
     85    {Full, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 6}, {Mixed, 1},
     86    {Full, 3}, {Mixed, 1}, {Full, 6}, {Mixed, 2}, {Full, 2}, {Mixed, 1},
     87    {Full, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 7}, {Mixed, 1},
     88    {Full, 15}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 12}, {Mixed, 1},
     89    {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 618}, {Mixed, 1},
     90    {Full, 1}, {Mixed, 1}, {Full, 650}, {Mixed, 1}, {Full, 166}, {Mixed, 3},
     91    {Full, 4}, {Mixed, 1}, {Full, 109}, {Mixed, 2}, {Full, 68}, {Mixed, 1},
     92    {Full, 3}, {Mixed, 1}, {Full, 30901}};
    9193    const static UnicodeSet::bitquad_t  __nr_Set_quads[] = {
    9294    0x00008000, 0xffff0000, 0xffffff07, 0x0001ffff, 0x40000000, 0xffffff49,
    9395    0xf800ffff, 0x000007ff, 0xfffeffff, 0x603fffff, 0xffffc260, 0xfffdffff,
    94     0x0000ffff, 0xfffff800, 0xfff007ff, 0x043fffff, 0xffffc110, 0xf1ffffff,
    95     0x000fffff, 0x00000004, 0xefffffff, 0xffe1dfff, 0xefffffff, 0xffffdfff,
    96     0xefffffff, 0xffffdfff, 0xefffffff, 0xffffdfff, 0xefffffff, 0xffffdfff,
    97     0xffffdfff, 0xff9fdfff, 0xefffffff, 0xffffdfff, 0xe7ffffff, 0xffffdfff,
    98     0xfffffbff, 0xf8ffffff, 0xfffff0ff, 0xfcffffff, 0xfffff0ff, 0xfcffffff,
    99     0xfd5fffff, 0xc3e9ffff, 0xffffff22, 0xffffffbf, 0xf97fffff, 0xffffdfff,
    100     0x1fffffff, 0xffefffff, 0xffefffff, 0xdffbffff, 0xfffffdff, 0xf1ffffff,
    101     0xfe7fffff, 0x601ffffe, 0xc000ffff, 0xffefffff, 0xffffffef, 0xfff007ff,
    102     0xfffff3ff, 0xfff3ffbf, 0xff7fffff, 0x0008ffff, 0xfcefde02, 0x04000000,
    103     0xe000ffff, 0xfffe001d, 0xfffc7fff, 0x7fffffff, 0xffff03ff, 0xf9ffffff,
    104     0xc00f7fff, 0x3fffffff, 0xfffcffff, 0xffffffbf, 0xffffffef, 0xfffc0000,
    105     0xffffc7ff, 0xfff7ffff, 0xfff7ffff, 0xfffffffe, 0x3e62ffff, 0xfffffffd,
    106     0xffbfffff, 0xffffdfff, 0xbfffffff, 0xffff0000, 0xdfffffff, 0xfffffffe,
    107     0xf83fffff, 0xffff5fff, 0x78ffffff, 0xffffff9f, 0xffffffbf, 0x7fffffff,
    108     0xf9ffffff, 0xfffffff8, 0xffe7ffff, 0xfff7ffff, 0xfffffbfe, 0xff9fffff,
    109     0xfffff9ff, 0xefffffff, 0xffffdfff, 0xffe0e03f, 0xffffffbb, 0xfffffff3,
    110     0x7fffffff, 0xfffffffe, 0x7fffffff, 0xff3fffff, 0xfffff7ff, 0xffefffff,
    111     0xffffff7f, 0xfdffffff, 0x7fffffff, 0xffffffcb, 0xffe0ffff, 0xff80ffff,
    112     0xbfffffff, 0x07f81c1f, 0xfffff018, 0xffffc3ff, 0xffffffe3, 0x06000080,
    113     0xfffff824, 0xff80ffff, 0xfffff80f};
    114     }
    115 
    116     const static UnicodeSet nr_Set{const_cast<UnicodeSet::run_t *>(__nr_Set_runs), 175, 0, const_cast<UnicodeSet::bitquad_t *>(__nr_Set_quads), 129, 0};
     96    0x0000ffff, 0xfffff800, 0xdff007ff, 0x043fffff, 0xffffc110, 0xf1ffffff,
     97    0x0007ffff, 0x00000004, 0xefffffff, 0xffe1dfff, 0xefffffff, 0xffffdfff,
     98    0xbfffffff, 0xefffffff, 0xffffdfff, 0xefffffff, 0xffffdfff, 0xefffffff,
     99    0xffffdfff, 0xffffdfff, 0xff9fdfff, 0xefffffff, 0xffffdfff, 0xe7ffffff,
     100    0xffffdfff, 0xfffffbff, 0xf8ffffff, 0xfffff0ff, 0xfcffffff, 0xfffff0ff,
     101    0xfcffffff, 0xfd5fffff, 0xc3e9ffff, 0xffffff22, 0xffffffbf, 0xf97fffff,
     102    0xffffdfff, 0x1fffffff, 0xffefffff, 0xffefffff, 0xdffbffff, 0xfffffdff,
     103    0xf1ffffff, 0xfe7fffff, 0x601ffffe, 0xc000ffff, 0xffefffff, 0xffffffef,
     104    0xfff007ff, 0xfffff3ff, 0xfff3ffbf, 0xff7fffff, 0x0008ffff, 0xfcefde02,
     105    0x04000000, 0xe000ffff, 0xfffe001d, 0xfffc7fff, 0x7fffffff, 0xffff03ff,
     106    0xf9ffffff, 0xc00f7fff, 0x3fffffff, 0xfffcffff, 0xffffffbf, 0xffffffef,
     107    0xfffc0000, 0xffffc7ff, 0xfff7ffff, 0xfff7ffff, 0xfffffffe, 0x3e62ffff,
     108    0xfffffffd, 0xffbfffff, 0xffffdfff, 0xbfffffff, 0xffff0000, 0xdfffffff,
     109    0xfffffffe, 0xf83fffff, 0xffff5fff, 0x78ffffff, 0xffffff9f, 0xffffff0f,
     110    0xfffe003f, 0xffffffbf, 0x7fffffff, 0xf9ffffff, 0xfffffff8, 0xffe7ffff,
     111    0xfff7ffff, 0xfffffbfe, 0xff9fffff, 0xfffff9ff, 0xe7ffffff, 0xffffdfff,
     112    0xffe0e03f, 0xbfffffbb, 0xfffffff3, 0x7fffffff, 0xfffffffe, 0x7fffffff,
     113    0xff3fffff, 0xfffff7ff, 0xf9ffffff, 0xffefffff, 0xffffff7f, 0xfdffffff,
     114    0x7fffffff, 0xffffffcb, 0xff7fffff, 0xffe0ffff, 0xff80ffff, 0xbfffffff,
     115    0x07f81c1f, 0xfffff018, 0xffffc3ff, 0xffffffe3, 0x06000080, 0xfffff824,
     116    0xff80ffff, 0xfffff80f};
     117    }
     118
     119    const static UnicodeSet nr_Set{const_cast<UnicodeSet::run_t *>(__nr_Set_runs), 183, 0, const_cast<UnicodeSet::bitquad_t *>(__nr_Set_quads), 134, 0};
    117120
    118121    /** Code Point Ranges for OV
     
    138141    [0cbc, 0cbc], [1037, 1037], [1b34, 1b34], [1be6, 1be6], [1c37, 1c37],
    139142    [a9b3, a9b3], [110ba, 110ba], [11173, 11173], [111ca, 111ca],
    140     [11236, 11236], [112e9, 112e9], [1133c, 1133c], [11446, 11446],
    141     [114c3, 114c3], [115c0, 115c0], [116b7, 116b7], [11d42, 11d42],
    142     [1e94a, 1e94a]**/
     143    [11236, 11236], [112e9, 112e9], [1133b, 1133c], [11446, 11446],
     144    [114c3, 114c3], [115c0, 115c0], [116b7, 116b7], [1183a, 1183a],
     145    [11d42, 11d42], [1e94a, 1e94a]**/
    143146
    144147
     
    152155    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
    153156    {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 7},
    154     {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 52}, {Mixed, 1},
    155     {Empty, 1631}, {Mixed, 1}, {Empty, 30901}};
     157    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
     158    {Empty, 40}, {Mixed, 1}, {Empty, 1631}, {Mixed, 1}, {Empty, 30901}};
    156159    const static UnicodeSet::bitquad_t  __nk_Set_quads[] = {
    157160    0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000,
    158161    0x00800000, 0x00100000, 0x00000040, 0x00800000, 0x00080000, 0x04000000,
    159     0x00080000, 0x00000400, 0x00400000, 0x00000200, 0x10000000, 0x00000040,
    160     0x00000008, 0x00000001, 0x00800000, 0x00000004, 0x00000400};
    161     }
    162 
    163     const static UnicodeSet nk_Set{const_cast<UnicodeSet::run_t *>(__nk_Set_runs), 47, 0, const_cast<UnicodeSet::bitquad_t *>(__nk_Set_quads), 23, 0};
     162    0x00080000, 0x00000400, 0x00400000, 0x00000200, 0x18000000, 0x00000040,
     163    0x00000008, 0x00000001, 0x00800000, 0x04000000, 0x00000004, 0x00000400};
     164    }
     165
     166    const static UnicodeSet nk_Set{const_cast<UnicodeSet::run_t *>(__nk_Set_runs), 49, 0, const_cast<UnicodeSet::bitquad_t *>(__nk_Set_quads), 24, 0};
    164167
    165168    /** Code Point Ranges for KV
     
    186189    [111c0, 111c0], [11235, 11235], [112ea, 112ea], [1134d, 1134d],
    187190    [11442, 11442], [114c2, 114c2], [115bf, 115bf], [1163f, 1163f],
    188     [116b6, 116b6], [1172b, 1172b], [11a34, 11a34], [11a47, 11a47],
    189     [11a99, 11a99], [11c3f, 11c3f], [11d44, 11d45]**/
     191    [116b6, 116b6], [1172b, 1172b], [11839, 11839], [11a34, 11a34],
     192    [11a47, 11a47], [11a99, 11a99], [11c3f, 11c3f], [11d44, 11d45],
     193    [11d97, 11d97]**/
    190194
    191195
     
    205209    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 7},
    206210    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 3},
    207     {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 23},
    208     {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 8},
    209     {Mixed, 1}, {Empty, 32533}};
     211    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 7},
     212    {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
     213    {Empty, 12}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     214    {Empty, 32531}};
    210215    const static UnicodeSet::bitquad_t  __vr_Set_quads[] = {
    211216    0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
     
    216221    0x80000000, 0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
    217222    0x00002000, 0x00000004, 0x00000004, 0x80000000, 0x80000000, 0x00400000,
    218     0x00000800, 0x00100000, 0x00000080, 0x02000000, 0x80000000, 0x00000030};
    219     }
    220 
    221     const static UnicodeSet vr_Set{const_cast<UnicodeSet::run_t *>(__vr_Set_runs), 89, 0, const_cast<UnicodeSet::bitquad_t *>(__vr_Set_quads), 48, 0};
     223    0x00000800, 0x02000000, 0x00100000, 0x00000080, 0x02000000, 0x80000000,
     224    0x00000030, 0x00800000};
     225    }
     226
     227    const static UnicodeSet vr_Set{const_cast<UnicodeSet::run_t *>(__vr_Set_runs), 93, 0, const_cast<UnicodeSet::bitquad_t *>(__vr_Set_quads), 50, 0};
    222228
    223229    /** Code Point Ranges for CCC10
     
    749755    [06ed, 06ed], [0731, 0731], [0734, 0734], [0737, 0739], [073b, 073c],
    750756    [073e, 073e], [0742, 0742], [0744, 0744], [0746, 0746], [0748, 0748],
    751     [07f2, 07f2], [0859, 085b], [08e3, 08e3], [08e6, 08e6], [08e9, 08e9],
    752     [08ed, 08ef], [08f6, 08f6], [08f9, 08fa], [0952, 0952], [0f18, 0f19],
    753     [0f35, 0f35], [0f37, 0f37], [0fc6, 0fc6], [108d, 108d], [193b, 193b],
    754     [1a18, 1a18], [1a7f, 1a7f], [1ab5, 1aba], [1abd, 1abd], [1b6c, 1b6c],
    755     [1cd5, 1cd9], [1cdc, 1cdf], [1ced, 1ced], [1dc2, 1dc2], [1dca, 1dca],
    756     [1dcf, 1dcf], [1df9, 1df9], [1dfd, 1dfd], [1dff, 1dff], [20e8, 20e8],
    757     [20ec, 20ef], [a92b, a92d], [aab4, aab4], [fe27, fe2d], [101fd, 101fd],
    758     [102e0, 102e0], [10a0d, 10a0d], [10a3a, 10a3a], [10ae6, 10ae6],
    759     [1d17b, 1d182], [1d18a, 1d18b], [1e8d0, 1e8d6]**/
     757    [07f2, 07f2], [07fd, 07fd], [0859, 085b], [08d3, 08d3], [08e3, 08e3],
     758    [08e6, 08e6], [08e9, 08e9], [08ed, 08ef], [08f6, 08f6], [08f9, 08fa],
     759    [0952, 0952], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37], [0fc6, 0fc6],
     760    [108d, 108d], [193b, 193b], [1a18, 1a18], [1a7f, 1a7f], [1ab5, 1aba],
     761    [1abd, 1abd], [1b6c, 1b6c], [1cd5, 1cd9], [1cdc, 1cdf], [1ced, 1ced],
     762    [1dc2, 1dc2], [1dca, 1dca], [1dcf, 1dcf], [1df9, 1df9], [1dfd, 1dfd],
     763    [1dff, 1dff], [20e8, 20e8], [20ec, 20ef], [a92b, a92d], [aab4, aab4],
     764    [fe27, fe2d], [101fd, 101fd], [102e0, 102e0], [10a0d, 10a0d],
     765    [10a3a, 10a3a], [10ae6, 10ae6], [10f46, 10f47], [10f4b, 10f4b],
     766    [10f4d, 10f50], [1d17b, 1d182], [1d18a, 1d18b], [1e8d0, 1e8d6]**/
    760767
    761768
     
    764771    {Empty, 24}, {Mixed, 3}, {Empty, 17}, {Mixed, 3}, {Empty, 3},
    765772    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4},
    766     {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 2},
     773    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
    767774    {Mixed, 1}, {Empty, 45}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 5},
    768775    {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2},
     
    771778    {Empty, 1089}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 667},
    772779    {Mixed, 1}, {Empty, 29}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    773     {Empty, 56}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 1587},
    774     {Mixed, 2}, {Empty, 185}, {Mixed, 1}, {Empty, 30905}};
     780    {Empty, 56}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 34},
     781    {Mixed, 1}, {Empty, 1552}, {Mixed, 2}, {Empty, 185}, {Mixed, 1},
     782    {Empty, 30905}};
    775783    const static UnicodeSet::bitquad_t  __b_Set_quads[] = {
    776784    0xf3c00000, 0x1e0ffe79, 0x06786380, 0x08420000, 0x000004fc, 0x00000020,
    777     0x90600000, 0x00002408, 0x5b920000, 0x00000154, 0x00040000, 0x0e000000,
    778     0x0640e248, 0x00040000, 0x03000000, 0x00a00000, 0x00000040, 0x00002000,
    779     0x08000000, 0x01000000, 0x80000000, 0x27e00000, 0x00001000, 0xf3e00000,
    780     0x00002000, 0x00008404, 0xa2000000, 0x0000f100, 0x00003800, 0x00100000,
    781     0x00003f80, 0x20000000, 0x00000001, 0x00002000, 0x04000000, 0x00000040,
    782     0xf8000000, 0x00000c07, 0x007f0000};
    783     }
    784 
    785     const static UnicodeSet b_Set{const_cast<UnicodeSet::run_t *>(__b_Set_runs), 59, 0, const_cast<UnicodeSet::bitquad_t *>(__b_Set_quads), 39, 0};
     785    0x90600000, 0x00002408, 0x5b920000, 0x00000154, 0x20040000, 0x0e000000,
     786    0x00080000, 0x0640e248, 0x00040000, 0x03000000, 0x00a00000, 0x00000040,
     787    0x00002000, 0x08000000, 0x01000000, 0x80000000, 0x27e00000, 0x00001000,
     788    0xf3e00000, 0x00002000, 0x00008404, 0xa2000000, 0x0000f100, 0x00003800,
     789    0x00100000, 0x00003f80, 0x20000000, 0x00000001, 0x00002000, 0x04000000,
     790    0x00000040, 0x0001e8c0, 0xf8000000, 0x00000c07, 0x007f0000};
     791    }
     792
     793    const static UnicodeSet b_Set{const_cast<UnicodeSet::run_t *>(__b_Set_runs), 61, 0, const_cast<UnicodeSet::bitquad_t *>(__b_Set_quads), 41, 0};
    786794
    787795    /** Code Point Ranges for BR
     
    850858    [0829, 082d], [08d4, 08e1], [08e4, 08e5], [08e7, 08e8], [08ea, 08ec],
    851859    [08f3, 08f5], [08f7, 08f8], [08fb, 08ff], [0951, 0951], [0953, 0954],
    852     [0f82, 0f83], [0f86, 0f87], [135d, 135f], [17dd, 17dd], [193a, 193a],
    853     [1a17, 1a17], [1a75, 1a7c], [1ab0, 1ab4], [1abb, 1abc], [1b6b, 1b6b],
    854     [1b6d, 1b73], [1cd0, 1cd2], [1cda, 1cdb], [1ce0, 1ce0], [1cf4, 1cf4],
    855     [1cf8, 1cf9], [1dc0, 1dc1], [1dc3, 1dc9], [1dcb, 1dcc], [1dd1, 1df5],
    856     [1dfb, 1dfb], [1dfe, 1dfe], [20d0, 20d1], [20d4, 20d7], [20db, 20dc],
    857     [20e1, 20e1], [20e7, 20e7], [20e9, 20e9], [20f0, 20f0], [2cef, 2cf1],
    858     [2de0, 2dff], [a66f, a66f], [a674, a67d], [a69e, a69f], [a6f0, a6f1],
    859     [a8e0, a8f1], [aab0, aab0], [aab2, aab3], [aab7, aab8], [aabe, aabf],
    860     [aac1, aac1], [fe20, fe26], [fe2e, fe2f], [10376, 1037a],
    861     [10a0f, 10a0f], [10a38, 10a38], [10ae5, 10ae5], [11100, 11102],
    862     [11366, 1136c], [11370, 11374], [16b30, 16b36], [1d185, 1d189],
     860    [09fe, 09fe], [0f82, 0f83], [0f86, 0f87], [135d, 135f], [17dd, 17dd],
     861    [193a, 193a], [1a17, 1a17], [1a75, 1a7c], [1ab0, 1ab4], [1abb, 1abc],
     862    [1b6b, 1b6b], [1b6d, 1b73], [1cd0, 1cd2], [1cda, 1cdb], [1ce0, 1ce0],
     863    [1cf4, 1cf4], [1cf8, 1cf9], [1dc0, 1dc1], [1dc3, 1dc9], [1dcb, 1dcc],
     864    [1dd1, 1df5], [1dfb, 1dfb], [1dfe, 1dfe], [20d0, 20d1], [20d4, 20d7],
     865    [20db, 20dc], [20e1, 20e1], [20e7, 20e7], [20e9, 20e9], [20f0, 20f0],
     866    [2cef, 2cf1], [2de0, 2dff], [a66f, a66f], [a674, a67d], [a69e, a69f],
     867    [a6f0, a6f1], [a8e0, a8f1], [aab0, aab0], [aab2, aab3], [aab7, aab8],
     868    [aabe, aabf], [aac1, aac1], [fe20, fe26], [fe2e, fe2f], [10376, 1037a],
     869    [10a0f, 10a0f], [10a38, 10a38], [10ae5, 10ae5], [10d24, 10d27],
     870    [10f48, 10f4a], [10f4c, 10f4c], [11100, 11102], [11366, 1136c],
     871    [11370, 11374], [1145e, 1145e], [16b30, 16b36], [1d185, 1d189],
    863872    [1d1aa, 1d1ad], [1d242, 1d244], [1e000, 1e006], [1e008, 1e018],
    864873    [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e944, 1e949]**/
     
    870879    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
    871880    {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Empty, 4}, {Mixed, 2},
    872     {Empty, 2}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 29},
    873     {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 10}, {Mixed, 1},
    874     {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    875     {Empty, 5}, {Mixed, 1}, {Empty, 10}, {Mixed, 2}, {Empty, 6}, {Mixed, 2},
    876     {Empty, 22}, {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 7}, {Full, 1},
    877     {Empty, 963}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 15},
    878     {Mixed, 1}, {Empty, 13}, {Mixed, 2}, {Empty, 666}, {Mixed, 1},
    879     {Empty, 41}, {Mixed, 1}, {Empty, 52}, {Mixed, 2}, {Empty, 5},
    880     {Mixed, 1}, {Empty, 48}, {Mixed, 1}, {Empty, 18}, {Mixed, 1},
    881     {Empty, 701}, {Mixed, 1}, {Empty, 818}, {Mixed, 2}, {Empty, 4},
    882     {Mixed, 1}, {Empty, 109}, {Mixed, 2}, {Empty, 72}, {Mixed, 1},
    883     {Empty, 30901}};
     881    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 44}, {Mixed, 1},
     882    {Empty, 29}, {Mixed, 1}, {Empty, 35}, {Mixed, 1}, {Empty, 10},
     883    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1},
     884    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 10}, {Mixed, 2}, {Empty, 6},
     885    {Mixed, 2}, {Empty, 22}, {Mixed, 2}, {Empty, 95}, {Mixed, 1},
     886    {Empty, 7}, {Full, 1}, {Empty, 963}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     887    {Empty, 15}, {Mixed, 1}, {Empty, 13}, {Mixed, 2}, {Empty, 666},
     888    {Mixed, 1}, {Empty, 41}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
     889    {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
     890    {Mixed, 1}, {Empty, 13}, {Mixed, 1}, {Empty, 18}, {Mixed, 1},
     891    {Empty, 6}, {Mixed, 1}, {Empty, 694}, {Mixed, 1}, {Empty, 818},
     892    {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 109}, {Mixed, 2},
     893    {Empty, 72}, {Mixed, 1}, {Empty, 30901}};
    884894    const static UnicodeSet::bitquad_t  __a_Set_quads[] = {
    885895    0x001fffff, 0xe0000000, 0x08871c5f, 0x0000fff8, 0x000000f8, 0xf3bc0000,
    886896    0x00009b03, 0x00000010, 0x00ff0000, 0x6f980000, 0x9fc00000, 0x00001997,
    887897    0xa46d0000, 0x000006ab, 0x000bf800, 0xfbc00000, 0x00003eef, 0xfff00000,
    888     0xf9b81db3, 0x001a0000, 0x000000cc, 0xe0000000, 0x20000000, 0x04000000,
    889     0x00800000, 0x1fe00000, 0x181f0000, 0x000fe800, 0x0c070000, 0x03100001,
    890     0xfffe1bfb, 0x483fffff, 0x18f30000, 0x00010282, 0x00038000, 0x3ff08000,
    891     0xc0000000, 0x00030000, 0x0003ffff, 0xc18d0000, 0x00000002, 0x0000c07f,
    892     0x07c00000, 0x00008000, 0x01000000, 0x00000020, 0x00000007, 0x001f1fc0,
    893     0x007f0000, 0x000003e0, 0x00003c00, 0x0000001c, 0xf9ffff7f, 0x000007db,
    894     0x000003f0};
    895     }
    896 
    897     const static UnicodeSet a_Set{const_cast<UnicodeSet::run_t *>(__a_Set_runs), 77, 0, const_cast<UnicodeSet::bitquad_t *>(__a_Set_quads), 55, 0};
     898    0xf9b81db3, 0x001a0000, 0x40000000, 0x000000cc, 0xe0000000, 0x20000000,
     899    0x04000000, 0x00800000, 0x1fe00000, 0x181f0000, 0x000fe800, 0x0c070000,
     900    0x03100001, 0xfffe1bfb, 0x483fffff, 0x18f30000, 0x00010282, 0x00038000,
     901    0x3ff08000, 0xc0000000, 0x00030000, 0x0003ffff, 0xc18d0000, 0x00000002,
     902    0x0000c07f, 0x07c00000, 0x00008000, 0x01000000, 0x00000020, 0x000000f0,
     903    0x00001700, 0x00000007, 0x001f1fc0, 0x40000000, 0x007f0000, 0x000003e0,
     904    0x00003c00, 0x0000001c, 0xf9ffff7f, 0x000007db, 0x000003f0};
     905    }
     906
     907    const static UnicodeSet a_Set{const_cast<UnicodeSet::run_t *>(__a_Set_runs), 85, 0, const_cast<UnicodeSet::bitquad_t *>(__a_Set_quads), 59, 0};
    898908
    899909    /** Code Point Ranges for AR
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5748 r6192  
    22#define DERIVEDCOREPROPERTIES_H
    33/*
    4  *  Copyright (c) 2017 International Characters, Inc.
     4 *  Copyright (c) 2018 International Characters, Inc.
    55 *  This software is licensed to the public under the Open Software License 3.0.
    66 *  icgrep is a trademark of International Characters, Inc.
     
    2323        [037f, 037f], [0386, 0386], [0388, 038a], [038c, 038c],
    2424        [038e, 03a1], [03a3, 03f5], [03f7, 0481], [048a, 052f],
    25         [0531, 0556], [0559, 0559], [0561, 0587], [05b0, 05bd],
     25        [0531, 0556], [0559, 0559], [0560, 0588], [05b0, 05bd],
    2626        [05bf, 05bf], [05c1, 05c2], [05c4, 05c5], [05c7, 05c7],
    27         [05d0, 05ea], [05f0, 05f2], [0610, 061a], [0620, 0657],
     27        [05d0, 05ea], [05ef, 05f2], [0610, 061a], [0620, 0657],
    2828        [0659, 065f], [066e, 06d3], [06d5, 06dc], [06e1, 06e8],
    2929        [06ed, 06ef], [06fa, 06fc], [06ff, 06ff], [0710, 073f],
     
    8080        [1740, 1753], [1760, 176c], [176e, 1770], [1772, 1773],
    8181        [1780, 17b3], [17b6, 17c8], [17d7, 17d7], [17dc, 17dc],
    82         [1820, 1877], [1880, 18aa], [18b0, 18f5], [1900, 191e],
     82        [1820, 1878], [1880, 18aa], [18b0, 18f5], [1900, 191e],
    8383        [1920, 192b], [1930, 1938], [1950, 196d], [1970, 1974],
    8484        [1980, 19ab], [19b0, 19c9], [1a00, 1a1b], [1a20, 1a5e],
     
    8686        [1b45, 1b4b], [1b80, 1ba9], [1bac, 1baf], [1bba, 1be5],
    8787        [1be7, 1bf1], [1c00, 1c35], [1c4d, 1c4f], [1c5a, 1c7d],
    88         [1c80, 1c88], [1ce9, 1cec], [1cee, 1cf3], [1cf5, 1cf6],
    89         [1d00, 1dbf], [1de7, 1df4], [1e00, 1f15], [1f18, 1f1d],
    90         [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59],
    91         [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
    92         [1fb6, 1fbc], [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc],
    93         [1fd0, 1fd3], [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4],
    94         [1ff6, 1ffc], [2071, 2071], [207f, 207f], [2090, 209c],
    95         [2102, 2102], [2107, 2107], [210a, 2113], [2115, 2115],
    96         [2119, 211d], [2124, 2124], [2126, 2126], [2128, 2128],
    97         [212a, 212d], [212f, 2139], [213c, 213f], [2145, 2149],
    98         [214e, 214e], [2160, 2188], [24b6, 24e9], [2c00, 2c2e],
    99         [2c30, 2c5e], [2c60, 2ce4], [2ceb, 2cee], [2cf2, 2cf3],
    100         [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d], [2d30, 2d67],
    101         [2d6f, 2d6f], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae],
    102         [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce],
    103         [2dd0, 2dd6], [2dd8, 2dde], [2de0, 2dff], [2e2f, 2e2f],
    104         [3005, 3007], [3021, 3029], [3031, 3035], [3038, 303c],
    105         [3041, 3096], [309d, 309f], [30a1, 30fa], [30fc, 30ff],
    106         [3105, 312e], [3131, 318e], [31a0, 31ba], [31f0, 31ff],
    107         [3400, 4db5], [4e00, 9fea], [a000, a48c], [a4d0, a4fd],
    108         [a500, a60c], [a610, a61f], [a62a, a62b], [a640, a66e],
    109         [a674, a67b], [a67f, a6ef], [a717, a71f], [a722, a788],
    110         [a78b, a7ae], [a7b0, a7b7], [a7f7, a801], [a803, a805],
    111         [a807, a80a], [a80c, a827], [a840, a873], [a880, a8c3],
    112         [a8c5, a8c5], [a8f2, a8f7], [a8fb, a8fb], [a8fd, a8fd],
    113         [a90a, a92a], [a930, a952], [a960, a97c], [a980, a9b2],
    114         [a9b4, a9bf], [a9cf, a9cf], [a9e0, a9e4], [a9e6, a9ef],
    115         [a9fa, a9fe], [aa00, aa36], [aa40, aa4d], [aa60, aa76],
    116         [aa7a, aa7a], [aa7e, aabe], [aac0, aac0], [aac2, aac2],
    117         [aadb, aadd], [aae0, aaef], [aaf2, aaf5], [ab01, ab06],
    118         [ab09, ab0e], [ab11, ab16], [ab20, ab26], [ab28, ab2e],
    119         [ab30, ab5a], [ab5c, ab65], [ab70, abea], [ac00, d7a3],
    120         [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d], [fa70, fad9],
    121         [fb00, fb06], [fb13, fb17], [fb1d, fb28], [fb2a, fb36],
    122         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    123         [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
    124         [fdf0, fdfb], [fe70, fe74], [fe76, fefc], [ff21, ff3a],
    125         [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7], [ffca, ffcf],
    126         [ffd2, ffd7], [ffda, ffdc], [10000, 1000b], [1000d, 10026],
    127         [10028, 1003a], [1003c, 1003d], [1003f, 1004d], [10050, 1005d],
    128         [10080, 100fa], [10140, 10174], [10280, 1029c], [102a0, 102d0],
    129         [10300, 1031f], [1032d, 1034a], [10350, 1037a], [10380, 1039d],
    130         [103a0, 103c3], [103c8, 103cf], [103d1, 103d5], [10400, 1049d],
    131         [104b0, 104d3], [104d8, 104fb], [10500, 10527], [10530, 10563],
    132         [10600, 10736], [10740, 10755], [10760, 10767], [10800, 10805],
    133         [10808, 10808], [1080a, 10835], [10837, 10838], [1083c, 1083c],
    134         [1083f, 10855], [10860, 10876], [10880, 1089e], [108e0, 108f2],
    135         [108f4, 108f5], [10900, 10915], [10920, 10939], [10980, 109b7],
    136         [109be, 109bf], [10a00, 10a03], [10a05, 10a06], [10a0c, 10a13],
    137         [10a15, 10a17], [10a19, 10a33], [10a60, 10a7c], [10a80, 10a9c],
    138         [10ac0, 10ac7], [10ac9, 10ae4], [10b00, 10b35], [10b40, 10b55],
    139         [10b60, 10b72], [10b80, 10b91], [10c00, 10c48], [10c80, 10cb2],
    140         [10cc0, 10cf2], [11000, 11045], [11082, 110b8], [110d0, 110e8],
    141         [11100, 11132], [11150, 11172], [11176, 11176], [11180, 111bf],
    142         [111c1, 111c4], [111da, 111da], [111dc, 111dc], [11200, 11211],
    143         [11213, 11234], [11237, 11237], [1123e, 1123e], [11280, 11286],
    144         [11288, 11288], [1128a, 1128d], [1128f, 1129d], [1129f, 112a8],
    145         [112b0, 112e8], [11300, 11303], [11305, 1130c], [1130f, 11310],
    146         [11313, 11328], [1132a, 11330], [11332, 11333], [11335, 11339],
    147         [1133d, 11344], [11347, 11348], [1134b, 1134c], [11350, 11350],
    148         [11357, 11357], [1135d, 11363], [11400, 11441], [11443, 11445],
    149         [11447, 1144a], [11480, 114c1], [114c4, 114c5], [114c7, 114c7],
    150         [11580, 115b5], [115b8, 115be], [115d8, 115dd], [11600, 1163e],
    151         [11640, 11640], [11644, 11644], [11680, 116b5], [11700, 11719],
    152         [1171d, 1172a], [118a0, 118df], [118ff, 118ff], [11a00, 11a32],
    153         [11a35, 11a3e], [11a50, 11a83], [11a86, 11a97], [11ac0, 11af8],
     88        [1c80, 1c88], [1c90, 1cba], [1cbd, 1cbf], [1ce9, 1cec],
     89        [1cee, 1cf3], [1cf5, 1cf6], [1d00, 1dbf], [1de7, 1df4],
     90        [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d],
     91        [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
     92        [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe],
     93        [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb],
     94        [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2071, 2071],
     95        [207f, 207f], [2090, 209c], [2102, 2102], [2107, 2107],
     96        [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124],
     97        [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2139],
     98        [213c, 213f], [2145, 2149], [214e, 214e], [2160, 2188],
     99        [24b6, 24e9], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2ce4],
     100        [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25], [2d27, 2d27],
     101        [2d2d, 2d2d], [2d30, 2d67], [2d6f, 2d6f], [2d80, 2d96],
     102        [2da0, 2da6], [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe],
     103        [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde],
     104        [2de0, 2dff], [2e2f, 2e2f], [3005, 3007], [3021, 3029],
     105        [3031, 3035], [3038, 303c], [3041, 3096], [309d, 309f],
     106        [30a1, 30fa], [30fc, 30ff], [3105, 312f], [3131, 318e],
     107        [31a0, 31ba], [31f0, 31ff], [3400, 4db5], [4e00, 9fef],
     108        [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
     109        [a62a, a62b], [a640, a66e], [a674, a67b], [a67f, a6ef],
     110        [a717, a71f], [a722, a788], [a78b, a7b9], [a7f7, a801],
     111        [a803, a805], [a807, a80a], [a80c, a827], [a840, a873],
     112        [a880, a8c3], [a8c5, a8c5], [a8f2, a8f7], [a8fb, a8fb],
     113        [a8fd, a8fe], [a90a, a92a], [a930, a952], [a960, a97c],
     114        [a980, a9b2], [a9b4, a9bf], [a9cf, a9cf], [a9e0, a9e4],
     115        [a9e6, a9ef], [a9fa, a9fe], [aa00, aa36], [aa40, aa4d],
     116        [aa60, aa76], [aa7a, aa7a], [aa7e, aabe], [aac0, aac0],
     117        [aac2, aac2], [aadb, aadd], [aae0, aaef], [aaf2, aaf5],
     118        [ab01, ab06], [ab09, ab0e], [ab11, ab16], [ab20, ab26],
     119        [ab28, ab2e], [ab30, ab5a], [ab5c, ab65], [ab70, abea],
     120        [ac00, d7a3], [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d],
     121        [fa70, fad9], [fb00, fb06], [fb13, fb17], [fb1d, fb28],
     122        [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
     123        [fb43, fb44], [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f],
     124        [fd92, fdc7], [fdf0, fdfb], [fe70, fe74], [fe76, fefc],
     125        [ff21, ff3a], [ff41, ff5a], [ff66, ffbe], [ffc2, ffc7],
     126        [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [10000, 1000b],
     127        [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
     128        [10050, 1005d], [10080, 100fa], [10140, 10174], [10280, 1029c],
     129        [102a0, 102d0], [10300, 1031f], [1032d, 1034a], [10350, 1037a],
     130        [10380, 1039d], [103a0, 103c3], [103c8, 103cf], [103d1, 103d5],
     131        [10400, 1049d], [104b0, 104d3], [104d8, 104fb], [10500, 10527],
     132        [10530, 10563], [10600, 10736], [10740, 10755], [10760, 10767],
     133        [10800, 10805], [10808, 10808], [1080a, 10835], [10837, 10838],
     134        [1083c, 1083c], [1083f, 10855], [10860, 10876], [10880, 1089e],
     135        [108e0, 108f2], [108f4, 108f5], [10900, 10915], [10920, 10939],
     136        [10980, 109b7], [109be, 109bf], [10a00, 10a03], [10a05, 10a06],
     137        [10a0c, 10a13], [10a15, 10a17], [10a19, 10a35], [10a60, 10a7c],
     138        [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae4], [10b00, 10b35],
     139        [10b40, 10b55], [10b60, 10b72], [10b80, 10b91], [10c00, 10c48],
     140        [10c80, 10cb2], [10cc0, 10cf2], [10d00, 10d27], [10f00, 10f1c],
     141        [10f27, 10f27], [10f30, 10f45], [11000, 11045], [11082, 110b8],
     142        [110d0, 110e8], [11100, 11132], [11144, 11146], [11150, 11172],
     143        [11176, 11176], [11180, 111bf], [111c1, 111c4], [111da, 111da],
     144        [111dc, 111dc], [11200, 11211], [11213, 11234], [11237, 11237],
     145        [1123e, 1123e], [11280, 11286], [11288, 11288], [1128a, 1128d],
     146        [1128f, 1129d], [1129f, 112a8], [112b0, 112e8], [11300, 11303],
     147        [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
     148        [11332, 11333], [11335, 11339], [1133d, 11344], [11347, 11348],
     149        [1134b, 1134c], [11350, 11350], [11357, 11357], [1135d, 11363],
     150        [11400, 11441], [11443, 11445], [11447, 1144a], [11480, 114c1],
     151        [114c4, 114c5], [114c7, 114c7], [11580, 115b5], [115b8, 115be],
     152        [115d8, 115dd], [11600, 1163e], [11640, 11640], [11644, 11644],
     153        [11680, 116b5], [11700, 1171a], [1171d, 1172a], [11800, 11838],
     154        [118a0, 118df], [118ff, 118ff], [11a00, 11a32], [11a35, 11a3e],
     155        [11a50, 11a83], [11a86, 11a97], [11a9d, 11a9d], [11ac0, 11af8],
    154156        [11c00, 11c08], [11c0a, 11c36], [11c38, 11c3e], [11c40, 11c40],
    155157        [11c72, 11c8f], [11c92, 11ca7], [11ca9, 11cb6], [11d00, 11d06],
    156158        [11d08, 11d09], [11d0b, 11d36], [11d3a, 11d3a], [11d3c, 11d3d],
    157         [11d3f, 11d41], [11d43, 11d43], [11d46, 11d47], [12000, 12399],
    158         [12400, 1246e], [12480, 12543], [13000, 1342e], [14400, 14646],
    159         [16800, 16a38], [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b36],
    160         [16b40, 16b43], [16b63, 16b77], [16b7d, 16b8f], [16f00, 16f44],
    161         [16f50, 16f7e], [16f93, 16f9f], [16fe0, 16fe1], [17000, 187ec],
     159        [11d3f, 11d41], [11d43, 11d43], [11d46, 11d47], [11d60, 11d65],
     160        [11d67, 11d68], [11d6a, 11d8e], [11d90, 11d91], [11d93, 11d96],
     161        [11d98, 11d98], [11ee0, 11ef6], [12000, 12399], [12400, 1246e],
     162        [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
     163        [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b36], [16b40, 16b43],
     164        [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e7f], [16f00, 16f44],
     165        [16f50, 16f7e], [16f93, 16f9f], [16fe0, 16fe1], [17000, 187f1],
    162166        [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a],
    163167        [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1bc9e, 1bc9e],
     
    188192        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
    189193        {Mixed, 2}, {Empty, 2}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    190         {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 8}, {Full, 1}, {Mixed, 2},
    191         {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 7},
    192         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 22}, {Empty, 1},
    193         {Mixed, 19}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
    194         {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Full, 1}, {Mixed, 4},
    195         {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1},
    196         {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    197         {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 18},
    198         {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
    199         {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    200         {Mixed, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
    201         {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
    202         {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    203         {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
    204         {Full, 6}, {Empty, 1}, {Mixed, 1}, {Full, 8}, {Mixed, 1}, {Full, 1},
    205         {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 2},
    206         {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 24},
    207         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 56}, {Full, 1},
    208         {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    209         {Mixed, 4}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 14},
    210         {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
    211         {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205},
    212         {Mixed, 1}, {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36},
    213         {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2},
    214         {Full, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
    215         {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 2},
    216         {Mixed, 6}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 1},
    217         {Mixed, 7}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
    218         {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
    219         {Empty, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10},
    220         {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
    221         {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 1},
    222         {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
    223         {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 2}, {Full, 1},
    224         {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    225         {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
    226         {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Full, 1},
    227         {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
    228         {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1},
    229         {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    230         {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 3},
    231         {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
    232         {Mixed, 1}, {Empty, 24}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    233         {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 1},
    234         {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Full, 1},
    235         {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1},
    236         {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1}, {Mixed, 2},
    237         {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
    238         {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 11}, {Full, 2},
    239         {Mixed, 1}, {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1},
    240         {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8},
    241         {Mixed, 6}, {Empty, 2}, {Mixed, 3}, {Empty, 21}, {Full, 28},
    242         {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1}, {Full, 6},
    243         {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
    244         {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
    245         {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 27},
    246         {Full, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Full, 191},
    247         {Mixed, 1}, {Full, 23}, {Mixed, 1}, {Empty, 296}, {Full, 8},
    248         {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11}, {Mixed, 1},
    249         {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
    250         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    251         {Full, 10}, {Mixed, 10}, {Empty, 65}, {Mixed, 2}, {Empty, 62},
    252         {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2}, {Mixed, 1},
    253         {Empty, 37}, {Mixed, 6}, {Empty, 19}, {Mixed, 4}, {Empty, 115},
    254         {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1},
    255         {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
    256         {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
     194        {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 5},
     195        {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
     196        {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     197        {Mixed, 22}, {Empty, 1}, {Mixed, 19}, {Empty, 1}, {Mixed, 3},
     198        {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
     199        {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 10},
     200        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
     201        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     202        {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1},
     203        {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 1}, {Full, 1},
     204        {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
     205        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     206        {Mixed, 1}, {Empty, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     207        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5},
     208        {Empty, 1}, {Mixed, 1}, {Full, 6}, {Empty, 1}, {Mixed, 1},
     209        {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     210        {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Full, 1},
     211        {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     212        {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1},
     213        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Empty, 1},
     214        {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
     215        {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1},
     216        {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1}, {Empty, 2},
     217        {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
     218        {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 3},
     219        {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
     220        {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 6}, {Full, 1}, {Mixed, 3},
     221        {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 7}, {Full, 3}, {Mixed, 1},
     222        {Full, 349}, {Mixed, 3}, {Empty, 264}, {Full, 11}, {Mixed, 1},
     223        {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 2},
     224        {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     225        {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3},
     226        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
     227        {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
     228        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     229        {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
     230        {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
     231        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9},
     232        {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 2}, {Mixed, 3},
     233        {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     234        {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
     235        {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
     236        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     237        {Empty, 14}, {Mixed, 3}, {Empty, 5}, {Full, 2}, {Mixed, 1},
     238        {Empty, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 3}, {Full, 2},
     239        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     240        {Full, 1}, {Mixed, 5}, {Empty, 4}, {Full, 2}, {Mixed, 1},
     241        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1},
     242        {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     243        {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 6},
     244        {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1},
     245        {Empty, 8}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
     246        {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 8}, {Mixed, 6},
     247        {Empty, 2}, {Mixed, 5}, {Empty, 10}, {Mixed, 1}, {Empty, 8},
     248        {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
     249        {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1},
     250        {Empty, 126}, {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17},
     251        {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
     252        {Empty, 21}, {Full, 2}, {Empty, 4}, {Full, 2}, {Mixed, 3},
     253        {Empty, 2}, {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23},
     254        {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2},
     255        {Mixed, 1}, {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3},
     256        {Mixed, 2}, {Empty, 187}, {Full, 2}, {Mixed, 1}, {Full, 1},
     257        {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
     258        {Empty, 65}, {Mixed, 2}, {Empty, 62}, {Full, 6}, {Mixed, 1},
     259        {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 37}, {Mixed, 6},
     260        {Empty, 19}, {Mixed, 4}, {Empty, 115}, {Full, 1334}, {Mixed, 1},
     261        {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
     262        {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
     263        {Full, 16}, {Mixed, 1}, {Empty, 28719}};
    257264        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
    258265        0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    259266        0x0003ffc3, 0x0000501f, 0x00000020, 0xbcdf0000, 0xffffd740,
    260267        0xfffffffb, 0xffbfffff, 0xfffffc03, 0xfffeffff, 0x027fffff,
    261         0xfffffffe, 0x000000ff, 0xbfff0000, 0xffff00b6, 0x000707ff,
    262         0x07ff0000, 0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe,
    263         0xffff0000, 0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff,
    264         0xfcffffff, 0x00001fff, 0x01ffffff, 0x000007ff, 0x3fdfffff,
    265         0xfff00000, 0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f,
    266         0xfff99fef, 0xe3c5fdff, 0xb080599f, 0x1003000f, 0xfff987ee,
    267         0xc36dfdff, 0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff,
    268         0x00011bbf, 0x1e00000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f,
    269         0x0002000f, 0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef,
    270         0xe3fffdff, 0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff,
    271         0x40601ddf, 0x0006000f, 0xfffddfef, 0xe7ffffff, 0x80f05ddf,
    272         0xfc00000f, 0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000,
    273         0xfffffffe, 0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae,
    274         0xf000205f, 0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03,
    275         0x1fffffff, 0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f,
    276         0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff,
    277         0xff7fff3d, 0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff,
    278         0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff,
    279         0x000fffff, 0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff,
    280         0x00ffffff, 0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff,
    281         0xffff0000, 0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff,
    282         0x7fffffff, 0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef,
    283         0xfc00f3ff, 0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff,
    284         0x000001ff, 0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f,
     268        0x000001ff, 0xbfff0000, 0xffff00b6, 0x000787ff, 0x07ff0000,
     269        0xfeffffff, 0xffffc000, 0x1fefffff, 0x9c00e1fe, 0xffff0000,
     270        0xffffe000, 0x0003ffff, 0xfffffc00, 0x043007ff, 0xfcffffff,
     271        0x00001fff, 0x01ffffff, 0x000007ff, 0x3fdfffff, 0xfff00000,
     272        0xffff03f8, 0xefffffff, 0xffe1dfff, 0xfffe000f, 0xfff99fef,
     273        0xe3c5fdff, 0xb080599f, 0x1003000f, 0xfff987ee, 0xc36dfdff,
     274        0x5e021987, 0x003f0000, 0xfffbbfee, 0xe3edfdff, 0x00011bbf,
     275        0x1e00000f, 0xfff99fee, 0xe3edfdff, 0xb0c0199f, 0x0002000f,
     276        0xd63dc7ec, 0xc3ffc718, 0x00811dc7, 0xfffddfef, 0xe3fffdff,
     277        0x07601ddf, 0x0000000f, 0xfffddfef, 0xe3effdff, 0x40601ddf,
     278        0x0006000f, 0xfffddfef, 0xe7ffffff, 0x80f05ddf, 0xfc00000f,
     279        0xfc7fffec, 0x2ffbffff, 0xff5f807f, 0x000c0000, 0xfffffffe,
     280        0x07ffffff, 0x0000207f, 0xfef02596, 0x3bffecae, 0xf000205f,
     281        0x00000001, 0xfffffeff, 0xfffe1fff, 0xfeffff03, 0x1fffffff,
     282        0xf97fffff, 0xffff0000, 0xffffc1e7, 0x3000407f, 0xffff20bf,
     283        0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
     284        0xff3dffff, 0x87ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe,
     285        0xffff9fff, 0x07fffffe, 0x01ffc7ff, 0x000fdfff, 0x000fffff,
     286        0x000fffff, 0x000ddfff, 0xffcfffff, 0x108001ff, 0x01ffffff,
     287        0xffff07ff, 0x003fffff, 0x7fffffff, 0x01ff0fff, 0xffff0000,
     288        0x001f3fff, 0xffff0fff, 0x000003ff, 0x0fffffff, 0x7fffffff,
     289        0x001ffffe, 0x00000080, 0xffefffff, 0x00000fef, 0xfc00f3ff,
     290        0x0003ffbf, 0x003fffff, 0xfc00e000, 0x3fffffff, 0xffff01ff,
     291        0xe7ffffff, 0x006fde00, 0x001fff80, 0x3f3fffff, 0xaaff3f3f,
    285292        0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000,
    286293        0x1fff0000, 0x3e2ffc84, 0xf3ffbd50, 0x000043e0, 0x000001ff,
     
    288295        0xffff20bf, 0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f,
    289296        0x00008000, 0x000000e0, 0x1f3e03fe, 0xfffffffe, 0xe07fffff,
    290         0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffe7fff, 0x00007fff,
    291         0x07ffffff, 0xffff0000, 0x003fffff, 0x000007ff, 0x00001fff,
     297        0xfffffffe, 0xf7ffffff, 0xffffffe0, 0xfffeffff, 0x00007fff,
     298        0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff, 0x00001fff,
    292299        0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x8ff07fff,
    293         0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x00ff7fff,
     300        0x0000ffff, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x03ffffff,
    294301        0xff800000, 0xfffff7bb, 0x000000ff, 0x000fffff, 0x0000002f,
    295         0x28fc0000, 0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff,
     302        0x68fc0000, 0xfffffc00, 0xffff07ff, 0x0007ffff, 0x1fffffff,
    296303        0xfff7ffff, 0x00008000, 0x7c00ffdf, 0x007fffff, 0x00003fff,
    297304        0xc47fffff, 0x7fffffff, 0x38000005, 0x003cffff, 0x007e7e7e,
     
    307314        0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
    308315        0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff,
    309         0xc0ffffff, 0xfeeff06f, 0x000fffff, 0x1fffffff, 0x1fffffff,
     316        0xc0ffffff, 0xfeeff06f, 0x003fffff, 0x1fffffff, 0x1fffffff,
    310317        0xfffffeff, 0x0000001f, 0x003fffff, 0x003fffff, 0x0007ffff,
    311         0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff, 0x0000003f,
    312         0xfffffffc, 0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff,
    313         0xffff0000, 0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff,
    314         0xbfffbd7f, 0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff,
    315         0xe081199f, 0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff,
    316         0x3f000000, 0x7fffffff, 0x00000011, 0x003fffff, 0xe3ffffff,
    317         0x000007ff, 0x80000000, 0x7fe7ffff, 0xffff0000, 0x00ffffcf,
     318        0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff, 0x000000ff,
     319        0x1fffffff, 0xffff0080, 0x0000003f, 0x0000003f, 0xfffffffc,
     320        0x01ffffff, 0xffff0000, 0x000001ff, 0x0007ffff, 0xffff0070,
     321        0x0047ffff, 0x1400001e, 0xfffbffff, 0x409fffff, 0xbfffbd7f,
     322        0xffff01ff, 0x000001ff, 0xfff99fef, 0xe3edfdff, 0xe081199f,
     323        0x0000000f, 0x000007bb, 0x000000b3, 0x7f3fffff, 0x3f000000,
     324        0x7fffffff, 0x00000011, 0x003fffff, 0xe7ffffff, 0x000007ff,
     325        0x01ffffff, 0x80000000, 0x7fe7ffff, 0xffff0000, 0x20ffffcf,
    318326        0x01ffffff, 0xfffffdff, 0x7f7fffff, 0x00000001, 0xfffc0000,
    319327        0xfffcffff, 0x007ffeff, 0xfffffb7f, 0xb47fffff, 0x000000cb,
    320         0x03ffffff, 0x00007fff, 0x0000000f, 0x00007fff, 0x0000007f,
    321         0x01ffffff, 0x7fffffff, 0xffff0000, 0x00003fff, 0x007fffff,
    322         0x0000000f, 0xe0fffff8, 0x0000ffff, 0xffff001f, 0x7fffffff,
    323         0xfff80000, 0x00000003, 0x00001fff, 0x0007ffff, 0x7fffffff,
    324         0xffff0000, 0x0fffffff, 0x1fff07ff, 0x43ff01ff, 0xffdfffff,
    325         0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    326         0xfffdfc5f, 0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff,
    327         0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
    328         0x00000ff7, 0xf9ffff7f, 0x000007db, 0x0000001f, 0x0000008f,
    329         0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    330         0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
    331         0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
    332         0x3fffffff};
     328        0xfffffdbf, 0x017b7fff, 0x007fffff, 0x03ffffff, 0x00007fff,
     329        0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
     330        0xffff0000, 0x00003fff, 0x007fffff, 0x0000000f, 0xe0fffff8,
     331        0x0000ffff, 0xffff001f, 0x7fffffff, 0xfff80000, 0x00000003,
     332        0x0003ffff, 0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff,
     333        0x1fff07ff, 0x43ff01ff, 0xffdfffff, 0xdfffffff, 0xebffde64,
     334        0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
     335        0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
     336        0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0xf9ffff7f,
     337        0x000007db, 0x0000001f, 0x0000008f, 0xffffffef, 0x0af7fe96,
     338        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0xffff0000,
     339        0xffff03ff, 0xffff03ff, 0x000003ff, 0x007fffff, 0x001fffff,
     340        0x3fffffff, 0xffff0003, 0x00000001, 0x3fffffff};
    333341        }
    334342
    335         const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 356, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 371, 0};
     343        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 369, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 379, 0};
    336344
    337345        static BinaryPropertyObject property_object{Alpha, std::move(codepoint_set)};
     
    348356        [0670, 0670], [06d6, 06dd], [06df, 06e8], [06ea, 06ed],
    349357        [070f, 070f], [0711, 0711], [0730, 074a], [07a6, 07b0],
    350         [07eb, 07f5], [07fa, 07fa], [0816, 082d], [0859, 085b],
    351         [08d4, 0902], [093a, 093a], [093c, 093c], [0941, 0948],
    352         [094d, 094d], [0951, 0957], [0962, 0963], [0971, 0971],
    353         [0981, 0981], [09bc, 09bc], [09c1, 09c4], [09cd, 09cd],
    354         [09e2, 09e3], [0a01, 0a02], [0a3c, 0a3c], [0a41, 0a42],
    355         [0a47, 0a48], [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71],
    356         [0a75, 0a75], [0a81, 0a82], [0abc, 0abc], [0ac1, 0ac5],
    357         [0ac7, 0ac8], [0acd, 0acd], [0ae2, 0ae3], [0afa, 0aff],
    358         [0b01, 0b01], [0b3c, 0b3c], [0b3f, 0b3f], [0b41, 0b44],
    359         [0b4d, 0b4d], [0b56, 0b56], [0b62, 0b63], [0b82, 0b82],
    360         [0bc0, 0bc0], [0bcd, 0bcd], [0c00, 0c00], [0c3e, 0c40],
    361         [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63],
    362         [0c81, 0c81], [0cbc, 0cbc], [0cbf, 0cbf], [0cc6, 0cc6],
    363         [0ccc, 0ccd], [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c],
    364         [0d41, 0d44], [0d4d, 0d4d], [0d62, 0d63], [0dca, 0dca],
    365         [0dd2, 0dd4], [0dd6, 0dd6], [0e31, 0e31], [0e34, 0e3a],
    366         [0e46, 0e4e], [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc],
    367         [0ec6, 0ec6], [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35],
    368         [0f37, 0f37], [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84],
    369         [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6],
    370         [102d, 1030], [1032, 1037], [1039, 103a], [103d, 103e],
    371         [1058, 1059], [105e, 1060], [1071, 1074], [1082, 1082],
    372         [1085, 1086], [108d, 108d], [109d, 109d], [10fc, 10fc],
    373         [135d, 135f], [1712, 1714], [1732, 1734], [1752, 1753],
    374         [1772, 1773], [17b4, 17b5], [17b7, 17bd], [17c6, 17c6],
    375         [17c9, 17d3], [17d7, 17d7], [17dd, 17dd], [180b, 180e],
    376         [1843, 1843], [1885, 1886], [18a9, 18a9], [1920, 1922],
    377         [1927, 1928], [1932, 1932], [1939, 193b], [1a17, 1a18],
    378         [1a1b, 1a1b], [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60],
    379         [1a62, 1a62], [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f],
    380         [1aa7, 1aa7], [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34],
    381         [1b36, 1b3a], [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73],
    382         [1b80, 1b81], [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad],
    383         [1be6, 1be6], [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1],
    384         [1c2c, 1c33], [1c36, 1c37], [1c78, 1c7d], [1cd0, 1cd2],
    385         [1cd4, 1ce0], [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4],
    386         [1cf8, 1cf9], [1d2c, 1d6a], [1d78, 1d78], [1d9b, 1df9],
    387         [1dfb, 1dff], [1fbd, 1fbd], [1fbf, 1fc1], [1fcd, 1fcf],
    388         [1fdd, 1fdf], [1fed, 1fef], [1ffd, 1ffe], [200b, 200f],
    389         [2018, 2019], [2024, 2024], [2027, 2027], [202a, 202e],
    390         [2060, 2064], [2066, 206f], [2071, 2071], [207f, 207f],
    391         [2090, 209c], [20d0, 20f0], [2c7c, 2c7d], [2cef, 2cf1],
    392         [2d6f, 2d6f], [2d7f, 2d7f], [2de0, 2dff], [2e2f, 2e2f],
    393         [3005, 3005], [302a, 302d], [3031, 3035], [303b, 303b],
    394         [3099, 309e], [30fc, 30fe], [a015, a015], [a4f8, a4fd],
    395         [a60c, a60c], [a66f, a672], [a674, a67d], [a67f, a67f],
    396         [a69c, a69f], [a6f0, a6f1], [a700, a721], [a770, a770],
    397         [a788, a78a], [a7f8, a7f9], [a802, a802], [a806, a806],
    398         [a80b, a80b], [a825, a826], [a8c4, a8c5], [a8e0, a8f1],
     358        [07eb, 07f5], [07fa, 07fa], [07fd, 07fd], [0816, 082d],
     359        [0859, 085b], [08d3, 0902], [093a, 093a], [093c, 093c],
     360        [0941, 0948], [094d, 094d], [0951, 0957], [0962, 0963],
     361        [0971, 0971], [0981, 0981], [09bc, 09bc], [09c1, 09c4],
     362        [09cd, 09cd], [09e2, 09e3], [09fe, 09fe], [0a01, 0a02],
     363        [0a3c, 0a3c], [0a41, 0a42], [0a47, 0a48], [0a4b, 0a4d],
     364        [0a51, 0a51], [0a70, 0a71], [0a75, 0a75], [0a81, 0a82],
     365        [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8], [0acd, 0acd],
     366        [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b01], [0b3c, 0b3c],
     367        [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d], [0b56, 0b56],
     368        [0b62, 0b63], [0b82, 0b82], [0bc0, 0bc0], [0bcd, 0bcd],
     369        [0c00, 0c00], [0c04, 0c04], [0c3e, 0c40], [0c46, 0c48],
     370        [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63], [0c81, 0c81],
     371        [0cbc, 0cbc], [0cbf, 0cbf], [0cc6, 0cc6], [0ccc, 0ccd],
     372        [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c], [0d41, 0d44],
     373        [0d4d, 0d4d], [0d62, 0d63], [0dca, 0dca], [0dd2, 0dd4],
     374        [0dd6, 0dd6], [0e31, 0e31], [0e34, 0e3a], [0e46, 0e4e],
     375        [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc], [0ec6, 0ec6],
     376        [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37],
     377        [0f39, 0f39], [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87],
     378        [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102d, 1030],
     379        [1032, 1037], [1039, 103a], [103d, 103e], [1058, 1059],
     380        [105e, 1060], [1071, 1074], [1082, 1082], [1085, 1086],
     381        [108d, 108d], [109d, 109d], [10fc, 10fc], [135d, 135f],
     382        [1712, 1714], [1732, 1734], [1752, 1753], [1772, 1773],
     383        [17b4, 17b5], [17b7, 17bd], [17c6, 17c6], [17c9, 17d3],
     384        [17d7, 17d7], [17dd, 17dd], [180b, 180e], [1843, 1843],
     385        [1885, 1886], [18a9, 18a9], [1920, 1922], [1927, 1928],
     386        [1932, 1932], [1939, 193b], [1a17, 1a18], [1a1b, 1a1b],
     387        [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62],
     388        [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f], [1aa7, 1aa7],
     389        [1ab0, 1abe], [1b00, 1b03], [1b34, 1b34], [1b36, 1b3a],
     390        [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73], [1b80, 1b81],
     391        [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6],
     392        [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33],
     393        [1c36, 1c37], [1c78, 1c7d], [1cd0, 1cd2], [1cd4, 1ce0],
     394        [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4], [1cf8, 1cf9],
     395        [1d2c, 1d6a], [1d78, 1d78], [1d9b, 1df9], [1dfb, 1dff],
     396        [1fbd, 1fbd], [1fbf, 1fc1], [1fcd, 1fcf], [1fdd, 1fdf],
     397        [1fed, 1fef], [1ffd, 1ffe], [200b, 200f], [2018, 2019],
     398        [2024, 2024], [2027, 2027], [202a, 202e], [2060, 2064],
     399        [2066, 206f], [2071, 2071], [207f, 207f], [2090, 209c],
     400        [20d0, 20f0], [2c7c, 2c7d], [2cef, 2cf1], [2d6f, 2d6f],
     401        [2d7f, 2d7f], [2de0, 2dff], [2e2f, 2e2f], [3005, 3005],
     402        [302a, 302d], [3031, 3035], [303b, 303b], [3099, 309e],
     403        [30fc, 30fe], [a015, a015], [a4f8, a4fd], [a60c, a60c],
     404        [a66f, a672], [a674, a67d], [a67f, a67f], [a69c, a69f],
     405        [a6f0, a6f1], [a700, a721], [a770, a770], [a788, a78a],
     406        [a7f8, a7f9], [a802, a802], [a806, a806], [a80b, a80b],
     407        [a825, a826], [a8c4, a8c5], [a8e0, a8f1], [a8ff, a8ff],
    399408        [a926, a92d], [a947, a951], [a980, a982], [a9b3, a9b3],
    400409        [a9b6, a9b9], [a9bc, a9bc], [a9cf, a9cf], [a9e5, a9e6],
     
    410419        [fff9, fffb], [101fd, 101fd], [102e0, 102e0], [10376, 1037a],
    411420        [10a01, 10a03], [10a05, 10a06], [10a0c, 10a0f], [10a38, 10a3a],
    412         [10a3f, 10a3f], [10ae5, 10ae6], [11001, 11001], [11038, 11046],
    413         [1107f, 11081], [110b3, 110b6], [110b9, 110ba], [110bd, 110bd],
    414         [11100, 11102], [11127, 1112b], [1112d, 11134], [11173, 11173],
    415         [11180, 11181], [111b6, 111be], [111ca, 111cc], [1122f, 11231],
    416         [11234, 11234], [11236, 11237], [1123e, 1123e], [112df, 112df],
    417         [112e3, 112ea], [11300, 11301], [1133c, 1133c], [11340, 11340],
    418         [11366, 1136c], [11370, 11374], [11438, 1143f], [11442, 11444],
    419         [11446, 11446], [114b3, 114b8], [114ba, 114ba], [114bf, 114c0],
     421        [10a3f, 10a3f], [10ae5, 10ae6], [10d24, 10d27], [10f46, 10f50],
     422        [11001, 11001], [11038, 11046], [1107f, 11081], [110b3, 110b6],
     423        [110b9, 110ba], [110bd, 110bd], [110cd, 110cd], [11100, 11102],
     424        [11127, 1112b], [1112d, 11134], [11173, 11173], [11180, 11181],
     425        [111b6, 111be], [111c9, 111cc], [1122f, 11231], [11234, 11234],
     426        [11236, 11237], [1123e, 1123e], [112df, 112df], [112e3, 112ea],
     427        [11300, 11301], [1133b, 1133c], [11340, 11340], [11366, 1136c],
     428        [11370, 11374], [11438, 1143f], [11442, 11444], [11446, 11446],
     429        [1145e, 1145e], [114b3, 114b8], [114ba, 114ba], [114bf, 114c0],
    420430        [114c2, 114c3], [115b2, 115b5], [115bc, 115bd], [115bf, 115c0],
    421431        [115dc, 115dd], [11633, 1163a], [1163d, 1163d], [1163f, 11640],
    422432        [116ab, 116ab], [116ad, 116ad], [116b0, 116b5], [116b7, 116b7],
    423         [1171d, 1171f], [11722, 11725], [11727, 1172b], [11a01, 11a06],
    424         [11a09, 11a0a], [11a33, 11a38], [11a3b, 11a3e], [11a47, 11a47],
    425         [11a51, 11a56], [11a59, 11a5b], [11a8a, 11a96], [11a98, 11a99],
    426         [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f], [11c92, 11ca7],
    427         [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6], [11d31, 11d36],
    428         [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45], [11d47, 11d47],
    429         [16af0, 16af4], [16b30, 16b36], [16b40, 16b43], [16f8f, 16f9f],
    430         [16fe0, 16fe1], [1bc9d, 1bc9e], [1bca0, 1bca3], [1d167, 1d169],
    431         [1d173, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
    432         [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
    433         [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
    434         [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
    435         [1e944, 1e94a], [1f3fb, 1f3ff], [e0001, e0001], [e0020, e007f],
    436         [e0100, e01ef]**/
     433        [1171d, 1171f], [11722, 11725], [11727, 1172b], [1182f, 11837],
     434        [11839, 1183a], [11a01, 11a0a], [11a33, 11a38], [11a3b, 11a3e],
     435        [11a47, 11a47], [11a51, 11a56], [11a59, 11a5b], [11a8a, 11a96],
     436        [11a98, 11a99], [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f],
     437        [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
     438        [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
     439        [11d47, 11d47], [11d90, 11d91], [11d95, 11d95], [11d97, 11d97],
     440        [11ef3, 11ef4], [16af0, 16af4], [16b30, 16b36], [16b40, 16b43],
     441        [16f8f, 16f9f], [16fe0, 16fe1], [1bc9d, 1bc9e], [1bca0, 1bca3],
     442        [1d167, 1d169], [1d173, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad],
     443        [1d242, 1d244], [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75],
     444        [1da84, 1da84], [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006],
     445        [1e008, 1e018], [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a],
     446        [1e8d0, 1e8d6], [1e944, 1e94a], [1f3fb, 1f3ff], [e0001, e0001],
     447        [e0020, e007f], [e0100, e01ef]**/
    437448
    438449
     
    469480        {Empty, 2}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
    470481        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
    471         {Empty, 5}, {Mixed, 1}, {Empty, 40}, {Mixed, 6}, {Empty, 2},
    472         {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1},
    473         {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
    474         {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
    475         {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 22},
    476         {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
    477         {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 620},
     482        {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
     483        {Mixed, 1}, {Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 2},
     484        {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4},
     485        {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     486        {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
     487        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     488        {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12},
     489        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
     490        {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607},
    478491        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
    479492        {Empty, 2}, {Mixed, 1}, {Empty, 612}, {Mixed, 2}, {Empty, 165},
     
    488501        0xbfffffff, 0x000000b6, 0x00100000, 0x17ff003f, 0xfffff801,
    489502        0x00010000, 0xbfc00000, 0x00003dff, 0x00028000, 0xffff0000,
    490         0x000007ff, 0x0001ffc0, 0x043ff800, 0xffc00000, 0x00003fff,
    491         0x0e000000, 0xfff00000, 0x00000007, 0x14000000, 0x00fe21fe,
    492         0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x0000000c,
     503        0x000007ff, 0x0001ffc0, 0x243ff800, 0xffc00000, 0x00003fff,
     504        0x0e000000, 0xfff80000, 0x00000007, 0x14000000, 0x00fe21fe,
     505        0x0002000c, 0x00000002, 0x10000000, 0x0000201e, 0x4000000c,
    493506        0x00000006, 0x10000000, 0x00023986, 0x00230000, 0x00000006,
    494507        0x10000000, 0x000021be, 0xfc00000c, 0x00000002, 0x90000000,
    495         0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000001,
     508        0x0040201e, 0x0000000c, 0x00000004, 0x00002001, 0x00000011,
    496509        0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
    497510        0x00003040, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e,
     
    511524        0x00200000, 0x3f000000, 0x00001000, 0xbff78000, 0xf0000000,
    512525        0x00030000, 0x00000003, 0x00010000, 0x00000700, 0x03000000,
    513         0x00000844, 0x00000060, 0x00000030, 0x0003ffff, 0x00003fc0,
     526        0x00000844, 0x00000060, 0x00000030, 0x8003ffff, 0x00003fc0,
    514527        0x0003ff80, 0x00000007, 0x13c80000, 0x00008000, 0x00000060,
    515528        0x00667e00, 0x00001008, 0x10010000, 0xc19d0000, 0x20000002,
     
    518531        0x04004080, 0x40000000, 0x00000001, 0x00010000, 0xc0000000,
    519532        0x0e000008, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
    520         0x87000000, 0x00000060, 0x00000002, 0xff000000, 0x0000007f,
    521         0x80000000, 0x00000003, 0x26780000, 0x00000007, 0x001fef80,
    522         0x00080000, 0x00000003, 0x7fc00000, 0x00001c00, 0x40d38000,
    523         0x80000000, 0x000007f8, 0x00000003, 0x10000000, 0x00000001,
    524         0x001f1fc0, 0xff000000, 0x0000005c, 0x85f80000, 0x0000000d,
    525         0xb03c0000, 0x30000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    526         0xe0000000, 0x00000fbc, 0x0000067e, 0x79f80000, 0x0e7e0080,
    527         0x037ffc00, 0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000,
    528         0x000000bf, 0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000,
    529         0x00000003, 0x60000000, 0x0000000f, 0xfff80380, 0x00000fe7,
    530         0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010,
    531         0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0,
    532         0xf8000000, 0x00000002, 0x0000ffff};
     533        0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000002,
     534        0xff000000, 0x0000007f, 0x80000000, 0x00000003, 0x26780000,
     535        0x00002000, 0x00000007, 0x001fef80, 0x00080000, 0x00000003,
     536        0x7fc00000, 0x00001e00, 0x40d38000, 0x80000000, 0x000007f8,
     537        0x00000003, 0x18000000, 0x00000001, 0x001f1fc0, 0xff000000,
     538        0x4000005c, 0x85f80000, 0x0000000d, 0xb03c0000, 0x30000001,
     539        0xa7f80000, 0x00000001, 0x00bf2800, 0xe0000000, 0x00000fbc,
     540        0x06ff8000, 0x000007fe, 0x79f80000, 0x0e7e0080, 0x037ffc00,
     541        0xbf7f0000, 0xfffc0000, 0x006dfcff, 0xb47e0000, 0x000000bf,
     542        0x00a30000, 0x00180000, 0x001f0000, 0x007f0000, 0x0000000f,
     543        0xffff8000, 0x00000003, 0x60000000, 0x0000000f, 0xfff80380,
     544        0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff,
     545        0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000,
     546        0x000007f0, 0xf8000000, 0x00000002, 0x0000ffff};
    533547        }
    534548
    535         const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 218, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 233, 0};
     549        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 228, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 239, 0};
    536550
    537551        static BinaryPropertyObject property_object{CI, std::move(codepoint_set)};
     
    609623        [0528, 0528], [052a, 052a], [052c, 052c], [052e, 052e],
    610624        [0531, 0556], [0587, 0587], [10a0, 10c5], [10c7, 10c7],
    611         [10cd, 10cd], [13f8, 13fd], [1c80, 1c88], [1e00, 1e00],
    612         [1e02, 1e02], [1e04, 1e04], [1e06, 1e06], [1e08, 1e08],
    613         [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e], [1e10, 1e10],
    614         [1e12, 1e12], [1e14, 1e14], [1e16, 1e16], [1e18, 1e18],
    615         [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20],
    616         [1e22, 1e22], [1e24, 1e24], [1e26, 1e26], [1e28, 1e28],
    617         [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30],
    618         [1e32, 1e32], [1e34, 1e34], [1e36, 1e36], [1e38, 1e38],
    619         [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e], [1e40, 1e40],
    620         [1e42, 1e42], [1e44, 1e44], [1e46, 1e46], [1e48, 1e48],
    621         [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50],
    622         [1e52, 1e52], [1e54, 1e54], [1e56, 1e56], [1e58, 1e58],
    623         [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e], [1e60, 1e60],
    624         [1e62, 1e62], [1e64, 1e64], [1e66, 1e66], [1e68, 1e68],
    625         [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e], [1e70, 1e70],
    626         [1e72, 1e72], [1e74, 1e74], [1e76, 1e76], [1e78, 1e78],
    627         [1e7a, 1e7a], [1e7c, 1e7c], [1e7e, 1e7e], [1e80, 1e80],
    628         [1e82, 1e82], [1e84, 1e84], [1e86, 1e86], [1e88, 1e88],
    629         [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e], [1e90, 1e90],
    630         [1e92, 1e92], [1e94, 1e94], [1e9a, 1e9b], [1e9e, 1e9e],
    631         [1ea0, 1ea0], [1ea2, 1ea2], [1ea4, 1ea4], [1ea6, 1ea6],
    632         [1ea8, 1ea8], [1eaa, 1eaa], [1eac, 1eac], [1eae, 1eae],
    633         [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4], [1eb6, 1eb6],
    634         [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc], [1ebe, 1ebe],
    635         [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4], [1ec6, 1ec6],
    636         [1ec8, 1ec8], [1eca, 1eca], [1ecc, 1ecc], [1ece, 1ece],
    637         [1ed0, 1ed0], [1ed2, 1ed2], [1ed4, 1ed4], [1ed6, 1ed6],
    638         [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc], [1ede, 1ede],
    639         [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4], [1ee6, 1ee6],
    640         [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec], [1eee, 1eee],
    641         [1ef0, 1ef0], [1ef2, 1ef2], [1ef4, 1ef4], [1ef6, 1ef6],
    642         [1ef8, 1ef8], [1efa, 1efa], [1efc, 1efc], [1efe, 1efe],
    643         [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f], [1f38, 1f3f],
    644         [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
    645         [1f5f, 1f5f], [1f68, 1f6f], [1f80, 1faf], [1fb2, 1fb4],
    646         [1fb7, 1fbc], [1fc2, 1fc4], [1fc7, 1fcc], [1fd8, 1fdb],
    647         [1fe8, 1fec], [1ff2, 1ff4], [1ff7, 1ffc], [2126, 2126],
    648         [212a, 212b], [2132, 2132], [2160, 216f], [2183, 2183],
    649         [24b6, 24cf], [2c00, 2c2e], [2c60, 2c60], [2c62, 2c64],
    650         [2c67, 2c67], [2c69, 2c69], [2c6b, 2c6b], [2c6d, 2c70],
    651         [2c72, 2c72], [2c75, 2c75], [2c7e, 2c80], [2c82, 2c82],
    652         [2c84, 2c84], [2c86, 2c86], [2c88, 2c88], [2c8a, 2c8a],
    653         [2c8c, 2c8c], [2c8e, 2c8e], [2c90, 2c90], [2c92, 2c92],
    654         [2c94, 2c94], [2c96, 2c96], [2c98, 2c98], [2c9a, 2c9a],
    655         [2c9c, 2c9c], [2c9e, 2c9e], [2ca0, 2ca0], [2ca2, 2ca2],
    656         [2ca4, 2ca4], [2ca6, 2ca6], [2ca8, 2ca8], [2caa, 2caa],
    657         [2cac, 2cac], [2cae, 2cae], [2cb0, 2cb0], [2cb2, 2cb2],
    658         [2cb4, 2cb4], [2cb6, 2cb6], [2cb8, 2cb8], [2cba, 2cba],
    659         [2cbc, 2cbc], [2cbe, 2cbe], [2cc0, 2cc0], [2cc2, 2cc2],
    660         [2cc4, 2cc4], [2cc6, 2cc6], [2cc8, 2cc8], [2cca, 2cca],
    661         [2ccc, 2ccc], [2cce, 2cce], [2cd0, 2cd0], [2cd2, 2cd2],
    662         [2cd4, 2cd4], [2cd6, 2cd6], [2cd8, 2cd8], [2cda, 2cda],
    663         [2cdc, 2cdc], [2cde, 2cde], [2ce0, 2ce0], [2ce2, 2ce2],
    664         [2ceb, 2ceb], [2ced, 2ced], [2cf2, 2cf2], [a640, a640],
    665         [a642, a642], [a644, a644], [a646, a646], [a648, a648],
    666         [a64a, a64a], [a64c, a64c], [a64e, a64e], [a650, a650],
    667         [a652, a652], [a654, a654], [a656, a656], [a658, a658],
    668         [a65a, a65a], [a65c, a65c], [a65e, a65e], [a660, a660],
    669         [a662, a662], [a664, a664], [a666, a666], [a668, a668],
    670         [a66a, a66a], [a66c, a66c], [a680, a680], [a682, a682],
    671         [a684, a684], [a686, a686], [a688, a688], [a68a, a68a],
    672         [a68c, a68c], [a68e, a68e], [a690, a690], [a692, a692],
    673         [a694, a694], [a696, a696], [a698, a698], [a69a, a69a],
    674         [a722, a722], [a724, a724], [a726, a726], [a728, a728],
    675         [a72a, a72a], [a72c, a72c], [a72e, a72e], [a732, a732],
    676         [a734, a734], [a736, a736], [a738, a738], [a73a, a73a],
    677         [a73c, a73c], [a73e, a73e], [a740, a740], [a742, a742],
    678         [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
    679         [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752],
    680         [a754, a754], [a756, a756], [a758, a758], [a75a, a75a],
    681         [a75c, a75c], [a75e, a75e], [a760, a760], [a762, a762],
    682         [a764, a764], [a766, a766], [a768, a768], [a76a, a76a],
    683         [a76c, a76c], [a76e, a76e], [a779, a779], [a77b, a77b],
    684         [a77d, a77e], [a780, a780], [a782, a782], [a784, a784],
    685         [a786, a786], [a78b, a78b], [a78d, a78d], [a790, a790],
    686         [a792, a792], [a796, a796], [a798, a798], [a79a, a79a],
    687         [a79c, a79c], [a79e, a79e], [a7a0, a7a0], [a7a2, a7a2],
    688         [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8], [a7aa, a7ae],
    689         [a7b0, a7b4], [a7b6, a7b6], [ab70, abbf], [fb00, fb06],
    690         [fb13, fb17], [ff21, ff3a], [10400, 10427], [104b0, 104d3],
    691         [10c80, 10cb2], [118a0, 118bf], [1e900, 1e921]**/
     625        [10cd, 10cd], [13f8, 13fd], [1c80, 1c88], [1c90, 1cba],
     626        [1cbd, 1cbf], [1e00, 1e00], [1e02, 1e02], [1e04, 1e04],
     627        [1e06, 1e06], [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c],
     628        [1e0e, 1e0e], [1e10, 1e10], [1e12, 1e12], [1e14, 1e14],
     629        [1e16, 1e16], [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c],
     630        [1e1e, 1e1e], [1e20, 1e20], [1e22, 1e22], [1e24, 1e24],
     631        [1e26, 1e26], [1e28, 1e28], [1e2a, 1e2a], [1e2c, 1e2c],
     632        [1e2e, 1e2e], [1e30, 1e30], [1e32, 1e32], [1e34, 1e34],
     633        [1e36, 1e36], [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c],
     634        [1e3e, 1e3e], [1e40, 1e40], [1e42, 1e42], [1e44, 1e44],
     635        [1e46, 1e46], [1e48, 1e48], [1e4a, 1e4a], [1e4c, 1e4c],
     636        [1e4e, 1e4e], [1e50, 1e50], [1e52, 1e52], [1e54, 1e54],
     637        [1e56, 1e56], [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c],
     638        [1e5e, 1e5e], [1e60, 1e60], [1e62, 1e62], [1e64, 1e64],
     639        [1e66, 1e66], [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c],
     640        [1e6e, 1e6e], [1e70, 1e70], [1e72, 1e72], [1e74, 1e74],
     641        [1e76, 1e76], [1e78, 1e78], [1e7a, 1e7a], [1e7c, 1e7c],
     642        [1e7e, 1e7e], [1e80, 1e80], [1e82, 1e82], [1e84, 1e84],
     643        [1e86, 1e86], [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c],
     644        [1e8e, 1e8e], [1e90, 1e90], [1e92, 1e92], [1e94, 1e94],
     645        [1e9a, 1e9b], [1e9e, 1e9e], [1ea0, 1ea0], [1ea2, 1ea2],
     646        [1ea4, 1ea4], [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa],
     647        [1eac, 1eac], [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2],
     648        [1eb4, 1eb4], [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba],
     649        [1ebc, 1ebc], [1ebe, 1ebe], [1ec0, 1ec0], [1ec2, 1ec2],
     650        [1ec4, 1ec4], [1ec6, 1ec6], [1ec8, 1ec8], [1eca, 1eca],
     651        [1ecc, 1ecc], [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2],
     652        [1ed4, 1ed4], [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda],
     653        [1edc, 1edc], [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2],
     654        [1ee4, 1ee4], [1ee6, 1ee6], [1ee8, 1ee8], [1eea, 1eea],
     655        [1eec, 1eec], [1eee, 1eee], [1ef0, 1ef0], [1ef2, 1ef2],
     656        [1ef4, 1ef4], [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa],
     657        [1efc, 1efc], [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d],
     658        [1f28, 1f2f], [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59],
     659        [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f5f], [1f68, 1f6f],
     660        [1f80, 1faf], [1fb2, 1fb4], [1fb7, 1fbc], [1fc2, 1fc4],
     661        [1fc7, 1fcc], [1fd8, 1fdb], [1fe8, 1fec], [1ff2, 1ff4],
     662        [1ff7, 1ffc], [2126, 2126], [212a, 212b], [2132, 2132],
     663        [2160, 216f], [2183, 2183], [24b6, 24cf], [2c00, 2c2e],
     664        [2c60, 2c60], [2c62, 2c64], [2c67, 2c67], [2c69, 2c69],
     665        [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
     666        [2c7e, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86],
     667        [2c88, 2c88], [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e],
     668        [2c90, 2c90], [2c92, 2c92], [2c94, 2c94], [2c96, 2c96],
     669        [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c], [2c9e, 2c9e],
     670        [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
     671        [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae],
     672        [2cb0, 2cb0], [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6],
     673        [2cb8, 2cb8], [2cba, 2cba], [2cbc, 2cbc], [2cbe, 2cbe],
     674        [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4], [2cc6, 2cc6],
     675        [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
     676        [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6],
     677        [2cd8, 2cd8], [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde],
     678        [2ce0, 2ce0], [2ce2, 2ce2], [2ceb, 2ceb], [2ced, 2ced],
     679        [2cf2, 2cf2], [a640, a640], [a642, a642], [a644, a644],
     680        [a646, a646], [a648, a648], [a64a, a64a], [a64c, a64c],
     681        [a64e, a64e], [a650, a650], [a652, a652], [a654, a654],
     682        [a656, a656], [a658, a658], [a65a, a65a], [a65c, a65c],
     683        [a65e, a65e], [a660, a660], [a662, a662], [a664, a664],
     684        [a666, a666], [a668, a668], [a66a, a66a], [a66c, a66c],
     685        [a680, a680], [a682, a682], [a684, a684], [a686, a686],
     686        [a688, a688], [a68a, a68a], [a68c, a68c], [a68e, a68e],
     687        [a690, a690], [a692, a692], [a694, a694], [a696, a696],
     688        [a698, a698], [a69a, a69a], [a722, a722], [a724, a724],
     689        [a726, a726], [a728, a728], [a72a, a72a], [a72c, a72c],
     690        [a72e, a72e], [a732, a732], [a734, a734], [a736, a736],
     691        [a738, a738], [a73a, a73a], [a73c, a73c], [a73e, a73e],
     692        [a740, a740], [a742, a742], [a744, a744], [a746, a746],
     693        [a748, a748], [a74a, a74a], [a74c, a74c], [a74e, a74e],
     694        [a750, a750], [a752, a752], [a754, a754], [a756, a756],
     695        [a758, a758], [a75a, a75a], [a75c, a75c], [a75e, a75e],
     696        [a760, a760], [a762, a762], [a764, a764], [a766, a766],
     697        [a768, a768], [a76a, a76a], [a76c, a76c], [a76e, a76e],
     698        [a779, a779], [a77b, a77b], [a77d, a77e], [a780, a780],
     699        [a782, a782], [a784, a784], [a786, a786], [a78b, a78b],
     700        [a78d, a78d], [a790, a790], [a792, a792], [a796, a796],
     701        [a798, a798], [a79a, a79a], [a79c, a79c], [a79e, a79e],
     702        [a7a0, a7a0], [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6],
     703        [a7a8, a7a8], [a7aa, a7ae], [a7b0, a7b4], [a7b6, a7b6],
     704        [a7b8, a7b8], [ab70, abbf], [fb00, fb06], [fb13, fb17],
     705        [ff21, ff3a], [10400, 10427], [104b0, 104d3], [10c80, 10cb2],
     706        [118a0, 118bf], [16e40, 16e5f], [1e900, 1e921]**/
    692707
    693708
     
    698713        {Empty, 1}, {Mixed, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 88},
    699714        {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Empty, 68},
    700         {Mixed, 1}, {Empty, 11}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
     715        {Mixed, 2}, {Empty, 10}, {Mixed, 12}, {Full, 1}, {Mixed, 3},
    701716        {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 24},
    702717        {Mixed, 2}, {Empty, 57}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     
    705720        {Empty, 32}, {Mixed, 1}, {Empty, 38}, {Full, 1}, {Mixed, 1},
    706721        {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1}, {Mixed, 1},
    707         {Empty, 95}, {Full, 1}, {Empty, 1666}, {Full, 1}, {Mixed, 1},
    708         {Empty, 30902}};
     722        {Empty, 95}, {Full, 1}, {Empty, 684}, {Full, 1}, {Empty, 981},
     723        {Full, 1}, {Mixed, 1}, {Empty, 30902}};
    709724        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
    710725        0x07fffffe, 0x00200000, 0xff7fffff, 0x55555555, 0xaa555555,
     
    714729        0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab,
    715730        0x55555555, 0x55555555, 0xfffe5555, 0x007fffff, 0x00000080,
    716         0x000020bf, 0x3f000000, 0x000001ff, 0x55555555, 0x55555555,
    717         0x55555555, 0x55555555, 0x4c155555, 0x55555555, 0x55555555,
    718         0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00, 0x0000ff00,
    719         0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40, 0x0000ffff,
    720         0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff, 0xc025ea9d,
    721         0x55555555, 0x55555555, 0x55555555, 0x00042805, 0x55555555,
    722         0x00001555, 0x05555555, 0x55545554, 0x55555555, 0x6a005555,
    723         0x55452855, 0x005f7d55, 0xffff0000, 0x00f8007f, 0x07fffffe,
    724         0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff, 0x00000003};
     731        0x000020bf, 0x3f000000, 0xffff01ff, 0xe7ffffff, 0x55555555,
     732        0x55555555, 0x55555555, 0x55555555, 0x4c155555, 0x55555555,
     733        0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
     734        0x0000ff00, 0x1f9cffff, 0x0f001f9c, 0x1f9c1f00, 0x00040c40,
     735        0x0000ffff, 0x00000008, 0xffc00000, 0x0000ffff, 0x00007fff,
     736        0xc025ea9d, 0x55555555, 0x55555555, 0x55555555, 0x00042805,
     737        0x55555555, 0x00001555, 0x05555555, 0x55545554, 0x55555555,
     738        0x6a005555, 0x55452855, 0x015f7d55, 0xffff0000, 0x00f8007f,
     739        0x07fffffe, 0x000000ff, 0xffff0000, 0x000fffff, 0x0007ffff,
     740        0x00000003};
    725741        }
    726742
    727         const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 61, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 75, 0};
     743        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 63, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 76, 0};
    728744
    729745        static BinaryPropertyObject property_object{CWCF, std::move(codepoint_set)};
     
    743759        [03a3, 03d1], [03d5, 03f5], [03f7, 03fb], [03fd, 0481],
    744760        [048a, 052f], [0531, 0556], [0561, 0587], [10a0, 10c5],
    745         [10c7, 10c7], [10cd, 10cd], [13a0, 13f5], [13f8, 13fd],
    746         [1c80, 1c88], [1d79, 1d79], [1d7d, 1d7d], [1e00, 1e9b],
     761        [10c7, 10c7], [10cd, 10cd], [10d0, 10fa], [10fd, 10ff],
     762        [13a0, 13f5], [13f8, 13fd], [1c80, 1c88], [1c90, 1cba],
     763        [1cbd, 1cbf], [1d79, 1d79], [1d7d, 1d7d], [1e00, 1e9b],
    747764        [1e9e, 1e9e], [1ea0, 1f15], [1f18, 1f1d], [1f20, 1f45],
    748765        [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
     
    756773        [2d27, 2d27], [2d2d, 2d2d], [a640, a66d], [a680, a69b],
    757774        [a722, a72f], [a732, a76f], [a779, a787], [a78b, a78d],
    758         [a790, a793], [a796, a7ae], [a7b0, a7b7], [ab53, ab53],
     775        [a790, a793], [a796, a7ae], [a7b0, a7b9], [ab53, ab53],
    759776        [ab70, abbf], [fb00, fb06], [fb13, fb17], [ff21, ff3a],
    760777        [ff41, ff5a], [10400, 1044f], [104b0, 104d3], [104d8, 104fb],
    761         [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df], [1e900, 1e943]**/
     778        [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df], [16e40, 16e7f],
     779        [1e900, 1e943]**/
    762780
    763781
     
    767785        {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
    768786        {Empty, 5}, {Mixed, 6}, {Full, 4}, {Mixed, 1}, {Full, 4},
    769         {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 22},
    770         {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 6},
     787        {Mixed, 4}, {Empty, 88}, {Full, 1}, {Mixed, 2}, {Empty, 21},
     788        {Full, 2}, {Mixed, 1}, {Empty, 68}, {Mixed, 2}, {Empty, 5},
    771789        {Mixed, 1}, {Empty, 4}, {Full, 4}, {Mixed, 1}, {Full, 3},
    772790        {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3},
     
    779797        {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 60},
    780798        {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 93},
    781         {Full, 2}, {Empty, 1665}, {Full, 2}, {Mixed, 1}, {Empty, 30901}};
     799        {Full, 2}, {Empty, 683}, {Full, 2}, {Empty, 980}, {Full, 2},
     800        {Mixed, 1}, {Empty, 30901}};
    782801        const static UnicodeSet::bitquad_t  __codepoint_set_quads[] = {
    783802        0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff,
     
    785804        0x1adfffff, 0x20269f6b, 0x60041f89, 0x00000020, 0xb8cf0000,
    786805        0xffffd740, 0xfffffffb, 0xffe3ffff, 0xefbfffff, 0xfffffc03,
    787         0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0x000020bf,
    788         0x3f3fffff, 0x000001ff, 0x22000000, 0x4fffffff, 0x3f3fffff,
    789         0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff,
    790         0x00040c40, 0x00004000, 0x00000018, 0xffc00000, 0x000003ff,
    791         0xffff7fff, 0x7fffffff, 0xc06dffff, 0x000c780f, 0x000020bf,
    792         0x00003fff, 0x0fffffff, 0xfffcfffc, 0xfe00ffff, 0xffcf38ff,
    793         0x00ff7fff, 0x00080000, 0xffff0000, 0x00f8007f, 0x07fffffe,
    794         0x07fffffe, 0x0000ffff, 0xffff0000, 0xff0fffff, 0x0fffffff,
    795         0x0007ffff, 0x0007ffff, 0x0000000f};
     806        0xfffeffff, 0x007fffff, 0xfffffffe, 0x000000ff, 0xffff20bf,
     807        0xe7ffffff, 0x3f3fffff, 0xffff01ff, 0xe7ffffff, 0x22000000,
     808        0x4fffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
     809        0x0fcf1fdc, 0x1fdc1fff, 0x00040c40, 0x00004000, 0x00000018,
     810        0xffc00000, 0x000003ff, 0xffff7fff, 0x7fffffff, 0xc06dffff,
     811        0x000c780f, 0x000020bf, 0x00003fff, 0x0fffffff, 0xfffcfffc,
     812        0xfe00ffff, 0xffcf38ff, 0x03ff7fff, 0x00080000, 0xffff0000,
     813        0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffff0000,
     814        0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff, 0x0000000f};
    796815        }
    797816
    798         const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 80, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 63, 0};
     817        const static UnicodeSet codepoint_set{const_cast<UnicodeSet::run_t *>(__codepoint_set_runs), 82, 0, const_cast<UnicodeSet::bitquad_t *>(__codepoint_set_quads), 65, 0};
    799818
    800819        static BinaryPropertyObject property_object{CWCM, std::move(codepoint_set)};
     
    870889        [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a],
    871890        [052c, 052c], [052e, 052e], [0531, 0556], [10a0, 10c5],
    872         [10c7, 10c7], [10cd, 10cd], [13a0, 13f5], [1e00, 1e00],
    873         [1e02, 1e02], [1e04, 1e04], [1e06, 1e06], [1e08, 1e08],
    874         [1e0a, 1e0a], [1e0c, 1e0c], [1e0e, 1e0e], [1e10, 1e10],
    875         [1e12, 1e12], [1e14, 1e14], [1e16, 1e16], [1e18, 1e18],
    876         [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20],
    877         [1e22, 1e22], [1e24, 1e24], [1e26, 1e26], [1e28, 1e28],
    878         [1e2a, 1e2a], [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30],
    879         [1e32, 1e32], [1e34, 1e34], [1e36, 1e36], [1e38, 1e38],
    880         [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e], [1e40, 1e40],
    881         [1e42, 1e42], [1e44, 1e44], [1e46, 1e46], [1e48, 1e48],
    882         [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50],
    883         [1e52, 1e52], [1e54, 1e54], [1e56, 1e56], [1e58, 1e58],
    884         [1e5a, 1e5a], [1e5c, 1e5c], [1e5e, 1e5e], [1e60, 1e60],
    885         [1e62, 1e6