[ucd] Include scripts added in Unicode 10 or later
authorDavid Corbett <corbett.dav@husky.neu.edu>
Wed, 26 Jun 2019 01:08:14 +0000 (21:08 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Wed, 26 Jun 2019 01:52:40 +0000 (18:52 -0700)
src/gen-ucd-table.py
src/hb-ucd-table.hh

index f443ac1..1afde3b 100755 (executable)
@@ -66,7 +66,7 @@ for _ in ('Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu',
 
 sc_order = packTab.AutoMapping()
 sc_array = []
-sc_re = re.compile((HB_SCRIPT_[_A-Z]*).*HB_TAG [(]'(.)','(.)','(.)','(.)'[)]")
+sc_re = re.compile(r"\b(HB_SCRIPT_[_A-Z]*).*HB_TAG [(]'(.)','(.)','(.)','(.)'[)]")
 for line in open('hb-common.h'):
     m = sc_re.search (line)
     if not m: continue
index 4a5e30c..8b7d648 100644 (file)
@@ -13,7 +13,7 @@
 #include "hb.hh"
 
 static const hb_script_t
-_hb_ucd_sc_map[138] =
+_hb_ucd_sc_map[153] =
 {
                    HB_SCRIPT_COMMON,              HB_SCRIPT_INHERITED,
                   HB_SCRIPT_UNKNOWN,                 HB_SCRIPT_ARABIC,
@@ -84,6 +84,14 @@ _hb_ucd_sc_map[138] =
                     HB_SCRIPT_ADLAM,              HB_SCRIPT_BHAIKSUKI,
                   HB_SCRIPT_MARCHEN,                  HB_SCRIPT_OSAGE,
                    HB_SCRIPT_TANGUT,                   HB_SCRIPT_NEWA,
+            HB_SCRIPT_MASARAM_GONDI,                  HB_SCRIPT_NUSHU,
+                  HB_SCRIPT_SOYOMBO,       HB_SCRIPT_ZANABAZAR_SQUARE,
+                    HB_SCRIPT_DOGRA,          HB_SCRIPT_GUNJALA_GONDI,
+          HB_SCRIPT_HANIFI_ROHINGYA,                HB_SCRIPT_MAKASAR,
+              HB_SCRIPT_MEDEFAIDRIN,            HB_SCRIPT_OLD_SOGDIAN,
+                  HB_SCRIPT_SOGDIAN,                HB_SCRIPT_ELYMAIC,
+              HB_SCRIPT_NANDINAGARI, HB_SCRIPT_NYIAKENG_PUACHUE_HMONG,
+                   HB_SCRIPT_WANCHO,
 };
 static const uint16_t
 _hb_ucd_dm1_p0_map[825] =
@@ -1055,7 +1063,7 @@ _hb_ucd_dm2_u64_map[387] =
 #ifndef HB_OPTIMIZE_SIZE
 
 static const uint8_t
-_hb_ucd_u8[31814] =
+_hb_ucd_u8[32102] =
 {
     0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
    16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 26, 26, 26, 26, 26,
@@ -2666,11 +2674,17 @@ _hb_ucd_u8[31814] =
    89, 89, 89, 89, 89,  2,  2,  2,  2,  2,  2,  2,130,130,130,130,
   130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,130,130,130,  2,
-    2,  2,  2,  2,  2,  2,130,130,130,130,130,130,  0,  0,  0,  0,
-    0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
-    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  1,  1,  1,  1,
-    1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
-    3,  3,  3,  2,  2,  2,  2,  2,  2,  2,  2,  2, 94, 94, 94, 94,
+    2,  2,  2,  2,  2,  2,130,130,130,130,130,130,144,144,144,144,
+  144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,144,
+  144,144,144,144,  2,  2,  2,  2,  2,  2,  2,  2,144,144,144,144,
+  144,144,144,144,144,144,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
+    3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,147,147,147,147,
+  147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,
+  147,147,147,147,  2,  2,  2,  2,  2,  2,  2,  2,148,148,148,148,
+  148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,
+  148,148,148,148,148,148,  2,  2,  2,  2,  2,  2,149,149,149,149,
+  149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,
+  149,149,149,  2,  2,  2,  2,  2,  2,  2,  2,  2, 94, 94, 94, 94,
    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
    94, 94, 94, 94, 94, 94, 94, 94, 94, 94,  2,  2,  2,  2, 94, 94,
    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,  2,  2,  2,  2,
@@ -2723,14 +2737,17 @@ _hb_ucd_u8[31814] =
   102,102,102,102,102,102,  2,  2,  2,  2,  2,  2,126,126,126,126,
   126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,
   126,126,126,126,126,126,126,  2,  2,126,126,126,126,126,126,126,
-  126,126,126,126,126,126,126,126,  2,  2,  2,  2,  4,  4,  4,  4,
-    4,  4,  4,  4,  4,  4,  4,  4,  2,  2,  2,  2,125,125,125,125,
+  126,126,126,126,126,126,126,126,  2,  2,  2,  2,142,142,142,142,
+  142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,
+  142,142,142,142,142,142,142,142,  2,  2,  2,  2,125,125,125,125,
   125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,  2,
-    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,125,  5,  5,  5,  5,
-    5,  5,  5,  5,  2,  2,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
-    5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,  5,
-    5,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  6,  6,  6,  6,
-    6,  6,  6,  6,  2,  2,  2,  2,  2,  2,  2,  2,  7,  7,  7,  2,
+    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,125,150,150,150,150,
+  150,150,150,150,  2,  2,150,150,150,150,150,150,150,150,150,150,
+  150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,150,
+  150,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,141,141,141,141,
+  141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,141,
+  141,141,141,141,  2,  2,  2,  2,  2,  2,  2,  2,140,140,140,140,
+  140,140,140,140,140,140,140,140,140,140,140,140,140,140,140,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,121,121,121,121,
   121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,
   121,121,121,121,121,  2,  2,  2,  2,  2,  2,  2,133,133,133,133,
@@ -2742,16 +2759,19 @@ _hb_ucd_u8[31814] =
   134,134,134,134,134,134,134,134,134,134,134,134,  2,  2,134,134,
   134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,
   134,134,134,134,  2,134,134,134,134,134,134,134,134,134,134,134,
-  134,134,134,  2,  2,  2,  2,  2,  2,  2,  2,  2,  8,  8,  8,  8,
-    8,  8,  8,  2,  8,  8,  2,  8,  8,  8,  8,  8,  8,  8,  8,  8,
-    8,  8,  8,  2,  2,  2,  8,  2,  8,  8,  2,  8,  8,  8,  8,  8,
-    8,  8,  8,  8,  2,  2,  2,  2,  2,  2,  2,  2,  8,  8,  8,  8,
-    8,  8,  8,  8,  8,  8,  2,  2,  2,  2,  2,  2,  9,  9,  9,  9,
-    9,  9,  2,  9,  9,  2,  9,  9,  9,  9,  9,  9,  9,  9,  2,  9,
-    9,  9,  9,  9,  9,  2,  2,  2,  2,  2,  2,  2,  9,  9,  9,  9,
-    9,  9,  9,  9,  9,  9,  2,  2,  2,  2,  2,  2, 10, 10, 10, 10,
-   10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
-   10, 10, 10, 10, 10,  2,  2,  2,  2,  2,  2,  2, 22, 22, 22, 22,
+  134,134,134,  2,  2,  2,  2,  2,  2,  2,  2,  2,138,138,138,138,
+  138,138,138,  2,138,138,  2,138,138,138,138,138,138,138,138,138,
+  138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,138,
+  138,138,138,  2,  2,  2,138,  2,138,138,  2,138,138,138,138,138,
+  138,138,138,138,  2,  2,  2,  2,  2,  2,  2,  2,138,138,138,138,
+  138,138,138,138,138,138,  2,  2,  2,  2,  2,  2,143,143,143,143,
+  143,143,  2,143,143,  2,143,143,143,143,143,143,143,143,143,143,
+  143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+  143,143,143,143,143,143,143,143,143,143,143,  2,143,143,  2,143,
+  143,143,143,143,143,  2,  2,  2,  2,  2,  2,  2,143,143,143,143,
+  143,143,143,143,143,143,  2,  2,  2,  2,  2,  2,145,145,145,145,
+  145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,
+  145,145,145,145,145,  2,  2,  2,  2,  2,  2,  2, 22, 22, 22, 22,
    22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 22, 63, 63, 63, 63,
    63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
@@ -2775,12 +2795,12 @@ _hb_ucd_u8[31814] =
   119,119,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,119,119,119,119,
   119,119,119,119,119,119,  2,119,119,119,119,119,119,119,  2,119,
   119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,
-  119,119,119,119,  2,  2,  2,  2,  2,119,119,119, 11, 11, 11, 11,
-   11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-   11, 11, 11, 11, 11, 11, 11,  2,  2,  2,  2,  2, 99, 99, 99, 99,
+  119,119,119,119,  2,  2,  2,  2,  2,119,119,119,146,146,146,146,
+  146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,
+  146,146,146,146,146,146,146,  2,  2,  2,  2,  2, 99, 99, 99, 99,
    99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
    99, 99, 99, 99, 99, 99, 99,  2,  2,  2,  2, 99, 99, 99, 99, 99,
-   99, 99, 99, 99,  2,  2,  2,  2,  2,  2,  2, 99,136, 12,  0,  0,
+   99, 99, 99, 99,  2,  2,  2,  2,  2,  2,  2, 99,136,139,  0,  0,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,136,136,136,136,
   136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,136,
   136,136,136,136,  2,  2,  2,  2,  2,  2,  2,  2,136,136,136,  2,
@@ -2788,7 +2808,9 @@ _hb_ucd_u8[31814] =
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,  2, 15, 15, 15,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
-   17, 17, 17, 17,  2,  2,  2,  2,  2,  2,  2,  2,105,105,105,105,
+   17, 17, 17, 17,  2,  2,  2,  2,  2,  2,  2,  2,139,139,139,139,
+  139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,
+  139,139,139,139,139,139,139,139,  2,  2,  2,  2,105,105,105,105,
   105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,
   105,105,105,105,105,105,105,  2,  2,  2,  2,  2,105,105,105,105,
   105,105,105,105,105,105,105,105,105,  2,  2,  2,105,105,105,105,
@@ -2818,10 +2840,13 @@ _hb_ucd_u8[31814] =
   131,131,131,131,131,131,131,131,131,131,131,131, 56, 56, 56, 56,
    56, 56, 56,  2, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
    56, 56, 56, 56, 56,  2,  2, 56, 56, 56, 56, 56, 56, 56,  2, 56,
-   56,  2, 56, 56, 56, 56, 56,  2,  2,  2,  2,  2, 13, 13, 13, 13,
-   13, 13, 13, 13, 13, 13, 13, 13, 13,  2,  2,  2, 13, 13, 13, 13,
-   13, 13, 13, 13, 13, 13,  2,  2,  2,  2, 13, 13, 14, 14, 14, 14,
-   14, 14, 14, 14, 14, 14,  2,  2,  2,  2,  2, 14,113,113,113,113,
+   56,  2, 56, 56, 56, 56, 56,  2,  2,  2,  2,  2,151,151,151,151,
+  151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,151,
+  151,151,151,151,151,151,151,151,151,  2,  2,  2,151,151,151,151,
+  151,151,151,151,151,151,151,151,151,151,  2,  2,151,151,151,151,
+  151,151,151,151,151,151,  2,  2,  2,  2,151,151,152,152,152,152,
+  152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,
+  152,152,152,152,152,152,  2,  2,  2,  2,  2,152,113,113,113,113,
   113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,
   113,  2,  2,113,113,113,113,113,113,113,113,113,113,113,113,113,
   113,113,113,  2,  2,  2,  2,  2,  2,  2,  2,  2,132,132,132,132,
@@ -2844,6 +2869,7 @@ _hb_ucd_u8[31814] =
     2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,  0,  0,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  2,  2,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
+    0,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  2,  0,
     0,  0,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,
     2,  0,  0,  0,  0,  0,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,
@@ -3331,102 +3357,102 @@ _hb_ucd_u16[11168] =
    403, 404, 405, 406, 407, 407, 408, 408, 409, 409,  45,  45, 410, 410, 411, 412,
    413, 413, 413, 414, 415, 416, 417, 418, 419, 420, 421,  45,  45,  45,  45,  45,
    422, 422, 422, 422, 423,  45,  45,  45, 424, 424, 424, 425, 424, 424, 424, 426,
-     0,   0, 427, 285,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-    45,  45,  45,  45,  45,  45,  27, 428,  45,  45,  45,  45,  45,  45,  45,  45,
-     8,   8, 429,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  27, 430,
-   431, 431, 431, 431, 432, 433, 431, 434, 435, 435, 435, 435, 436, 437, 438, 439,
-   440, 440, 440, 441, 442, 443, 443, 444, 445, 445, 445, 445, 446, 445, 447, 448,
-   449, 450, 449, 451,  45,  45,  45,  45, 452, 453, 454, 455, 455, 455, 456, 457,
-   458, 459, 460, 461, 462, 463, 464, 465,  45,  45,  45,  45,  45,  45,  45,  45,
-   466, 466, 466, 466, 466, 467,  45,  45, 468, 468, 468, 468, 469, 470,  45,  45,
-    45,  45,  45,  45,  45,  45,  45,  45, 471, 471, 471, 472, 471, 473,  45,  45,
-   474, 474, 474, 474, 475, 476, 477,  45, 478, 478, 478, 479, 480,  45,  45,  45,
-   481, 482, 483, 481,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-    17,  17,  17, 484,  45,  45,  45,  45,  45,  45, 485, 485, 485, 485, 485, 486,
-    45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 487, 488, 488, 487, 489,  45,
-    14,  14,  14,  14, 490,  49,  49,  49,  49,  49, 491,  45, 492, 492, 492, 493,
+   427, 427, 428, 429,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+    45,  45,  45,  45,  45,  45,  27, 430,  45,  45,  45,  45,  45,  45,  45,  45,
+   431, 431, 432, 433, 433, 434,  45,  45,  45,  45,  45,  45,  45,  45, 435, 436,
+   437, 437, 437, 437, 438, 439, 437, 440, 441, 441, 441, 441, 442, 443, 444, 445,
+   446, 446, 446, 447, 448, 449, 449, 450, 451, 451, 451, 451, 452, 451, 453, 454,
+   455, 456, 455, 457,  45,  45,  45,  45, 458, 459, 460, 461, 461, 461, 462, 463,
+   464, 465, 466, 467, 468, 469, 470, 471,  45,  45,  45,  45,  45,  45,  45,  45,
+   472, 472, 472, 472, 472, 473,  45,  45, 474, 474, 474, 474, 475, 476,  45,  45,
+    45,  45,  45,  45,  45,  45,  45,  45, 477, 477, 477, 478, 477, 479,  45,  45,
+   480, 480, 480, 480, 481, 482, 483,  45, 484, 484, 484, 485, 486,  45,  45,  45,
+   487, 488, 489, 487,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   490, 490, 490, 491,  45,  45,  45,  45,  45,  45, 492, 492, 492, 492, 492, 493,
+    45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 494, 495, 495, 494, 496,  45,
+   497, 497, 497, 497, 498, 499, 499, 499, 499, 499, 500,  45, 501, 501, 501, 502,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   494, 495, 495, 496, 497, 495, 498, 499, 499, 500, 501, 502,  45,  45,  45,  45,
-   503, 139, 139, 504, 505, 506, 507,  11, 349, 508, 509,  45,  45,  45,  45,  45,
-    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 510, 511,
-    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 512, 512, 512, 513,
-   514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
-   514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
-   514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
-   514, 514, 514, 514, 514, 514, 514, 514, 514, 515,  45,  45,  45,  45,  45,  45,
-   514, 514, 514, 514, 514, 514, 516, 517, 514, 514, 514, 514, 514, 514, 514, 514,
-   514, 514, 514, 514, 518,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
-   519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
-   519, 519, 520, 521,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   503, 504, 504, 505, 506, 504, 507, 508, 508, 509, 510, 511,  45,  45,  45,  45,
+   512, 513, 513, 514, 515, 516, 517, 518, 519, 520, 521,  45,  45,  45,  45,  45,
+    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 522, 523,
+    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 524, 524, 524, 525,
+   526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+   526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+   526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+   526, 526, 526, 526, 526, 526, 526, 526, 526, 527,  45,  45,  45,  45,  45,  45,
+   526, 526, 526, 526, 526, 526, 528, 529, 526, 526, 526, 526, 526, 526, 526, 526,
+   526, 526, 526, 526, 530,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+   531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+   531, 531, 532, 533,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
-   522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
-   522, 522, 522, 522, 523,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+   534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+   534, 534, 534, 534, 535,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
    277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
    277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
-   277, 277, 277, 524, 525, 526, 527,  45,  45,  45,  45,  45,  45, 528, 529, 530,
-   531, 531, 531, 531, 532, 533, 534, 535, 531,  45,  45,  45,  45,  45,  45,  45,
-    45,  45,  45,  45, 536, 536, 536, 536, 536, 537,  45,  45,  45,  45,  45,  45,
-   538, 538, 538, 538, 539, 538, 538, 538, 540, 538,  45,  45,  45,  45, 541,  45,
-   542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
-   542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
-   542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542,
-   542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 543,
-   542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 544,
+   277, 277, 277, 536, 537, 538, 539,  45,  45,  45,  45,  45,  45, 540, 541, 542,
+   543, 543, 543, 543, 544, 545, 546, 547, 543,  45,  45,  45,  45,  45,  45,  45,
+    45,  45,  45,  45, 548, 548, 548, 548, 548, 549,  45,  45,  45,  45,  45,  45,
+   550, 550, 550, 550, 551, 550, 550, 550, 552, 550,  45,  45,  45,  45, 553,  45,
+   554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+   554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+   554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+   554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 555,
+   554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 556,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   545, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
-   257, 546,  45,  45,  45, 547, 548, 142, 142, 142, 142, 142, 142, 142, 142, 142,
-   142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 317,
+   557, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+   257, 558,  45,  45,  45, 559, 560, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+   561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 562,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   549, 549, 549, 549, 549, 549, 550, 551, 552, 553, 267,  45,  45,  45,  45,  45,
+   563, 563, 563, 563, 563, 563, 564, 565, 566, 567, 267,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 554,
-     0,   0, 555,   0,   0,   0, 556, 557, 558,   0, 559,   0,   0,   0, 560,  45,
-    11,  11,  11,  11, 561,  45,  45,  45,  45,  45,  45,  45,  45,  45,   0, 267,
-     0,   0,   0,   0,   0, 234,   0, 560,  45,  45,  45,  45,  45,  45,  45,  45,
-     0,   0,   0,   0,   0, 225,   0,   0,   0, 562, 563, 564, 565,   0,   0,   0,
-   566, 567,   0, 568, 569, 570,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 568,
+     0,   0, 569,   0,   0,   0, 570, 571, 572,   0, 573,   0,   0,   0, 574,  45,
+    11,  11,  11,  11, 575,  45,  45,  45,  45,  45,  45,  45,  45,  45,   0, 267,
+     0,   0,   0,   0,   0, 234,   0, 574,  45,  45,  45,  45,  45,  45,  45,  45,
+     0,   0,   0,   0,   0, 225,   0,   0,   0, 576, 577, 578, 579,   0,   0,   0,
+   580, 581,   0, 582, 583, 584,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 238,   0,   0,   0,   0,   0,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 571,   0,   0,   0,
-   572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
-   572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
-   572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 575,  45,  45,  45,  45,  45,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 585,   0,   0,   0,
+   586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+   586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
+   586, 586, 586, 586, 586, 586, 586, 586, 587, 588, 589,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   576, 577, 578,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   248, 248, 579, 318, 580,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  21,  21,  21, 581,
+   590, 591, 592,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   593, 593, 594, 595, 596,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+    45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45, 597, 597, 597, 598,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, 584,  45,  45,
-   585, 585, 585, 585, 586, 587,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-    45,  45,  45,  45,  45,  45,  45, 334,   0,   0,   0, 588,  45,  45,  45,  45,
-   334,   0,   0, 589,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   590,  27, 591, 592, 593, 594, 595, 596, 597, 598, 599, 598,  45,  45,  45, 324,
+   599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 600, 601,  45,  45,
+   602, 602, 602, 602, 603, 604,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+    45,  45,  45,  45,  45,  45,  45, 334,   0,   0,   0, 605,  45,  45,  45,  45,
+   334,   0,   0, 606,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+   607,  27, 608, 609, 610, 611, 612, 613, 614, 615, 616, 615,  45,  45,  45, 324,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-     0,   0, 252,   0,   0,   0,   0,   0,   0, 267, 227, 334, 334, 334,   0, 554,
-   600,   0,   0,   0,   0,   0, 600,   0,   0,   0, 600,  45,  45,  45, 601,   0,
-   602,   0,   0, 252, 560, 603, 554,  45,  45,  45,  45,  45,  45,  45,  45,  45,
+     0,   0, 252,   0,   0,   0,   0,   0,   0, 267, 227, 334, 334, 334,   0, 568,
+   617,   0,   0,   0,   0,   0, 617,   0,   0,   0, 617,  45,  45,  45, 618,   0,
+   619,   0,   0, 252, 574, 620, 568,  45,  45,  45,  45,  45,  45,  45,  45,  45,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 554, 600, 235,
-     0,   0,   0,   0,   0,   0,   0, 267,   0,   0,   0,   0,   0, 560, 252,  45,
-   252,   0,   0,   0, 427, 285,   0,   0, 427,   0, 589,  45,  45,  45,  45,  45,
-   604,   0,   0,   0,   0,   0,   0, 605,   0,   0, 606,   0, 607,   0,   0,   0,
-     0,   0,   0,   0,   0, 267, 589, 608, 609, 554,  45,  45,  45,  45,  45,  45,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 568, 617, 235,
+     0,   0,   0,   0,   0,   0,   0, 267,   0,   0,   0,   0,   0, 574, 252,  45,
+   252,   0,   0,   0, 621, 285,   0,   0, 621,   0, 606,  45,  45,  45,  45,  45,
+   622,   0,   0,   0,   0,   0,   0, 623,   0,   0, 624,   0, 625,   0,   0,   0,
+     0,   0,   0,   0,   0, 267, 606, 626, 627, 568,  45,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 610,  45,  45,
+   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 628,  45,  45,
    248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
    248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
-   248, 248, 248, 611, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+   248, 248, 248, 629, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
    248, 318, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
    248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
-   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 612, 248, 248, 248, 248, 248,
+   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 630, 248, 248, 248, 248, 248,
    248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
    248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
-   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 613,  45,
+   248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 631,  45,
    248, 318,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
     45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,  45,
-   614,  45,   0,   0,   0,   0,   0,   0,  45,  45,  45,  45,  45,  45,  45,  45,
+   632,  45,   0,   0,   0,   0,   0,   0,  45,  45,  45,  45,  45,  45,  45,  45,
      8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   8,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
@@ -3795,14 +3821,14 @@ _hb_ucd_sc (unsigned u)
 static inline uint_fast16_t
 _hb_ucd_dm (unsigned u)
 {
-  return u<195102u?_hb_ucd_u16[6048+(((_hb_ucd_u8[28764+(u>>6)])<<6)+((u)&63u))]:0;
+  return u<195102u?_hb_ucd_u16[6048+(((_hb_ucd_u8[29052+(u>>6)])<<6)+((u)&63u))]:0;
 }
 
 
 #elif !defined(HB_NO_UCD_UNASSIGNED)
 
 static const uint8_t
-_hb_ucd_u8[16998] =
+_hb_ucd_u8[17198] =
 {
     0,  1,  2,  3,  4,  5,  6,  7,  7,  8,  7,  7,  7,  7,  7,  7,
     7,  7,  7,  9, 10, 11,  7,  7,  7,  7, 12, 13, 14, 14, 14, 15,
@@ -4465,21 +4491,21 @@ _hb_ucd_u8[16998] =
    97, 97,172,173,174,175,176,176,176,176,176,176,176,176,176,176,
   176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,
   176,176,176,176,176,177,176,176,176,176,176,178, 97, 97, 97, 97,
-   97, 97, 97, 97, 97, 97,179,180,181, 32, 32,182, 97, 97, 97, 97,
-   97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,183,184,
-   97, 97, 97, 97, 97, 97, 59,185,186,187,188,189,190, 97,191,192,
-  193, 59, 59,194, 59,195,196,196,196,196,196,197, 97, 97, 97, 97,
-   97, 97, 97, 97, 97, 97,198, 97,199, 97, 97,200, 97, 97, 97, 97,
-   97, 97, 97, 97, 97, 97,201,202,203, 97, 97, 97, 97, 97,204,205,
-  206, 97,207,208, 97, 97,209,210,211,212,213, 97, 59, 59, 59, 59,
-   59, 59, 59,214,215,216,217,218,219,220,221,222, 97, 97, 97, 97,
+   97, 97, 97, 97, 97, 97,179,180,181,182,182,183, 97, 97, 97, 97,
+   97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,184,185,
+   97, 97, 97, 97, 97, 97, 59,186,187,188,189,190,191, 97,192,193,
+  194, 59, 59,195, 59,196,197,197,197,197,197,198, 97, 97, 97, 97,
+   97, 97, 97, 97, 97, 97,199, 97,200, 97, 97,201, 97, 97, 97, 97,
+   97, 97, 97, 97, 97, 97,202,203,204, 97, 97, 97, 97, 97,205,206,
+  207, 97,208,209, 97, 97,210,211,212,213,214, 97, 59, 59, 59, 59,
+   59, 59, 59,215,216,217,218,219,220,221,222,223, 97, 97, 97, 97,
    97, 97, 97, 97, 97, 97, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
-   70, 70, 70,223, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
-   70, 70, 70, 70,224, 70,225, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+   70, 70, 70,224, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+   70, 70, 70, 70,225, 70,226, 70, 70, 70, 70, 70, 70, 70, 70, 70,
    70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
-   70, 70, 70,226, 70, 70, 70, 70, 70, 70, 70, 70, 70,227, 97, 97,
-   97, 97, 97, 97, 97, 97, 70, 70, 70, 70,228, 97, 97, 97, 97, 97,
-   97, 97, 97, 97, 97, 97,229, 97,230,231,  0,  1,  2,  2,  0,  1,
+   70, 70, 70,227, 70, 70, 70, 70, 70, 70, 70, 70, 70,228, 97, 97,
+   97, 97, 97, 97, 97, 97, 70, 70, 70, 70,229, 97, 97, 97, 97, 97,
+   97, 97, 97, 97, 97, 97,230, 97,231,232,  0,  1,  2,  2,  0,  1,
     2,  2,  2,  3,  4,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0, 19,
    19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
    19,  0,  0,  0,  0,  0,  0,  0, 19,  0,  0,  0,  0,  0, 19, 19,
@@ -4709,49 +4735,58 @@ _hb_ucd_u8[16998] =
     2,  2,  2,  2,  2,  2,  2,122,122,122,122,  2,  2,  2,  2,122,
   122,122,122,122,122,122, 89, 89, 89, 89, 89, 89, 89, 89, 89,  2,
     2,  2,  2,  2,  2,  2,130,130,130,130,130,130,130,130,130,130,
-  130,  2,  2,  2,  2,  2,  2,  2,130,130,130,130,130,130,  3,  3,
-    3,  3,  3,  3,  3,  2, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
-   94, 94, 94, 94,  2,  2,  2,  2, 94, 94, 94, 94, 94, 94,  2,  2,
-    2,  2,  2,  2,  2, 94, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-    2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 85,  2,  2,101,101,
-  101,101,101,101,101,101,101,  2,  2,  2,  2,  2,  2,  2,101,101,
-    2,  2,  2,  2,  2,  2, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
-   96, 96, 96,  2, 96, 96, 96, 96, 96, 96, 96, 96, 96,  2,111,111,
-  111,111,111,111,111,111,111,111,111,111,111,111,111,  2,100,100,
-  100,100,100,100,100,100,100,100,100,100,100,100,  2,  2,  2, 36,
-   36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,  2,  2,  2,108,108,
-  108,108,108,108,108,108,108,108,  2,108,108,108,108,108,108,108,
-  108,108,108,108,108,  2,129,129,129,129,129,129,129,  2,129,  2,
-  129,129,129,129,  2,129,129,129,129,129,129,129,129,129,129,129,
-  129,129,129,129,  2,129,129,129,  2,  2,  2,  2,  2,  2,109,109,
-  109,109,109,109,109,109,109,109,109,  2,  2,  2,  2,  2,109,109,
-    2,  2,  2,  2,  2,  2,107,107,107,107,  2,107,107,107,107,107,
-  107,107,107,  2,  2,107,107,  2,  2,107,107,107,107,107,107,107,
-  107,107,107,107,107,107,107,  2,107,107,107,107,107,107,107,  2,
-  107,107,  2,107,107,107,107,107,  2,  1,107,107,107,107,107,  2,
-    2,107,107,107,  2,  2,107,  2,  2,  2,  2,  2,  2,107,  2,  2,
-    2,  2,  2,107,107,107,107,107,107,107,  2,  2,107,107,107,107,
-  107,107,107,  2,  2,  2,137,137,137,137,137,137,137,137,137,137,
-    2,137,  2,137,137,137,124,124,124,124,124,124,124,124,124,124,
-    2,  2,  2,  2,  2,  2,123,123,123,123,123,123,123,123,123,123,
-  123,123,123,123,  2,  2,114,114,114,114,114,114,114,114,114,114,
-  114,114,114,  2,  2,  2,114,114,  2,  2,  2,  2,  2,  2, 32, 32,
-   32, 32, 32,  2,  2,  2,102,102,102,102,102,102,102,102,102,  2,
-    2,  2,  2,  2,  2,  2,102,102,  2,  2,  2,  2,  2,  2,126,126,
-  126,126,126,126,126,126,126,126,126,  2,  2,126,126,126,126,126,
-  126,126,  2,  2,  2,  2,  4,  4,  4,  4,  2,  2,  2,  2,125,125,
+  130,  2,  2,  2,  2,  2,  2,  2,130,130,130,130,130,130,144,144,
+  144,144,144,144,144,144,144,144,  2,  2,  2,  2,  2,  2,  3,  3,
+    3,  3,  3,  3,  3,  2,147,147,147,147,147,147,147,147,148,148,
+  148,148,148,148,148,148,148,148,  2,  2,  2,  2,  2,  2,149,149,
+  149,149,149,149,149,149,149,149,149,149,149,149,149,  2, 94, 94,
+   94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,  2,  2,  2,  2,
+   94, 94, 94, 94, 94, 94,  2,  2,  2,  2,  2,  2,  2, 94, 85, 85,
+   85, 85, 85, 85, 85, 85, 85, 85,  2,  2,  2,  2,  2,  2,  2,  2,
+    2,  2,  2, 85,  2,  2,101,101,101,101,101,101,101,101,101,  2,
+    2,  2,  2,  2,  2,  2,101,101,  2,  2,  2,  2,  2,  2, 96, 96,
+   96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,  2, 96, 96, 96, 96,
+   96, 96, 96, 96, 96,  2,111,111,111,111,111,111,111,111,111,111,
+  111,111,111,111,111,  2,100,100,100,100,100,100,100,100,100,100,
+  100,100,100,100,  2,  2,  2, 36, 36, 36, 36, 36, 36, 36, 36, 36,
+   36, 36, 36,  2,  2,  2,108,108,108,108,108,108,108,108,108,108,
+    2,108,108,108,108,108,108,108,108,108,108,108,108,  2,129,129,
+  129,129,129,129,129,  2,129,  2,129,129,129,129,  2,129,129,129,
+  129,129,129,129,129,129,129,129,129,129,129,129,  2,129,129,129,
+    2,  2,  2,  2,  2,  2,109,109,109,109,109,109,109,109,109,109,
+  109,  2,  2,  2,  2,  2,109,109,  2,  2,  2,  2,  2,  2,107,107,
+  107,107,  2,107,107,107,107,107,107,107,107,  2,  2,107,107,  2,
+    2,107,107,107,107,107,107,107,107,107,107,107,107,107,107,  2,
+  107,107,107,107,107,107,107,  2,107,107,  2,107,107,107,107,107,
+    2,  1,107,107,107,107,107,  2,  2,107,107,107,  2,  2,107,  2,
+    2,  2,  2,  2,  2,107,  2,  2,  2,  2,  2,107,107,107,107,107,
+  107,107,  2,  2,107,107,107,107,107,107,107,  2,  2,  2,137,137,
+  137,137,137,137,137,137,137,137,  2,137,  2,137,137,137,124,124,
+  124,124,124,124,124,124,124,124,  2,  2,  2,  2,  2,  2,123,123,
+  123,123,123,123,123,123,123,123,123,123,123,123,  2,  2,114,114,
+  114,114,114,114,114,114,114,114,114,114,114,  2,  2,  2,114,114,
+    2,  2,  2,  2,  2,  2, 32, 32, 32, 32, 32,  2,  2,  2,102,102,
+  102,102,102,102,102,102,102,  2,  2,  2,  2,  2,  2,  2,102,102,
+    2,  2,  2,  2,  2,  2,126,126,126,126,126,126,126,126,126,126,
+  126,  2,  2,126,126,126,126,126,126,126,  2,  2,  2,  2,142,142,
+  142,142,142,142,142,142,142,142,142,142,  2,  2,  2,  2,125,125,
   125,125,125,125,125,125,125,125,125,  2,  2,  2,  2,  2,  2,  2,
-    2,  2,  2,  2,  2,125,  2,  2,  5,  5,  5,  5,  5,  5,  5,  5,
-    5,  5,  5,  2,  2,  2,  7,  7,  7,  2,  2,  2,  2,  2,121,121,
-  121,121,121,121,121,121,121,  2,  2,  2,  2,  2,  2,  2,133,133,
-  133,133,133,133,133,133,133,  2,133,133,133,133,133,133,133,133,
-  133,133,133,133,133,  2,133,133,133,133,133,133,  2,  2,133,133,
-  133,133,133,  2,  2,  2,134,134,134,134,134,134,134,134,  2,  2,
-  134,134,134,134,134,134,  2,134,134,134,134,134,134,134,134,134,
-  134,134,134,134,134,  2,  8,  8,  8,  8,  8,  8,  8,  2,  8,  8,
-    2,  8,  8,  8,  8,  8,  2,  2,  8,  2,  8,  8,  2,  8,  8,  8,
-    2,  2,  2,  2,  2,  2,  9,  9,  9,  9,  9,  9,  2,  9,  9,  2,
-    9,  9,  9,  9,  9,  9,  9,  9,  2,  2,  2,  2,  2,  2, 22, 22,
+    2,  2,  2,  2,  2,125,150,150,150,150,150,150,150,150,  2,  2,
+  150,150,150,150,150,150,150,150,150,150,150,  2,  2,  2,141,141,
+  141,141,141,141,141,141,140,140,140,140,140,140,140,140,140,140,
+  140,  2,  2,  2,  2,  2,121,121,121,121,121,121,121,121,121,  2,
+    2,  2,  2,  2,  2,  2,133,133,133,133,133,133,133,133,133,  2,
+  133,133,133,133,133,133,133,133,133,133,133,133,133,  2,133,133,
+  133,133,133,133,  2,  2,133,133,133,133,133,  2,  2,  2,134,134,
+  134,134,134,134,134,134,  2,  2,134,134,134,134,134,134,  2,134,
+  134,134,134,134,134,134,134,134,134,134,134,134,134,  2,138,138,
+  138,138,138,138,138,  2,138,138,  2,138,138,138,138,138,138,138,
+  138,138,138,138,138,138,  2,  2,138,  2,138,138,  2,138,138,138,
+    2,  2,  2,  2,  2,  2,143,143,143,143,143,143,  2,143,143,  2,
+  143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,143,
+  143,143,143,143,143,  2,143,143,  2,143,143,143,143,143,143,  2,
+    2,  2,  2,  2,  2,  2,143,143,  2,  2,  2,  2,  2,  2,145,145,
+  145,145,145,145,145,145,145,  2,  2,  2,  2,  2,  2,  2, 22, 22,
     2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2, 22, 63, 63,
    63, 63, 63, 63, 63, 63, 63, 63,  2,  2,  2,  2,  2,  2, 63, 63,
    63, 63, 63, 63, 63,  2, 63, 63, 63, 63, 63,  2,  2,  2, 63, 63,
@@ -4762,28 +4797,31 @@ _hb_ucd_u8[16998] =
   115,115,115,115,115,  2,115,115,  2,  2,  2,  2,115,115,103,103,
   103,103,103,103,103,103,103,103,103,103,103,103,  2,  2,119,119,
   119,119,119,119,119,119,119,119,119,119,119,119,  2,  2,119,119,
-    2,119,119,119,119,119,  2,  2,  2,  2,  2,119,119,119, 11, 11,
-   11,  2,  2,  2,  2,  2, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
-   99,  2,  2,  2,  2, 99,  2,  2,  2,  2,  2,  2,  2, 99,136, 12,
-    0,  0,  2,  2,  2,  2,136,136,136,136,136,136,136,136,136,136,
-  136,  2,  2,  2,  2,  2, 17, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-   15,  2,  2,  2,  2,  2,  2,  2,  2,  2, 17, 17, 17, 17,105,105,
-  105,105,105,105,105,105,105,105,105,  2,  2,  2,  2,  2,105,105,
-  105,105,105,  2,  2,  2,105,  2,  2,  2,  2,  2,  2,  2,105,105,
-    2,  2,105,105,105,105,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
-    1,  0,  0,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  0,  0,
-    1,  1,  1,  1,  0,  0,  0,  2,  2,  2,  2,  2,  2,  2,  2,  2,
-    0,  2,  2,  0,  0,  2,  2,  0,  0,  0,  0,  2,  0,  0,  0,  0,
-    2,  0,  2,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  2,  0,  0,  0,  0,  0,
-    2,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  2,  0,  2,  2,  2,
-    0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  0,  0,131,131,
-  131,131,131,131,131,131,131,131,131,131,  2,  2,  2,  2,  2,  2,
-    2,131,131,131,131,131,  2,131,131,131,131,131,131,131, 56,  2,
-    2, 56, 56, 56, 56, 56, 56, 56,  2, 56, 56,  2, 56, 56, 56, 56,
-   56,  2,  2,  2,  2,  2, 13, 13, 13, 13, 13,  2,  2,  2, 13, 13,
-    2,  2,  2,  2, 13, 13, 14, 14,  2,  2,  2,  2,  2, 14,113,113,
+    2,119,119,119,119,119,  2,  2,  2,  2,  2,119,119,119,146,146,
+  146,146,146,146,146,146,146,146,146,  2,  2,  2,  2,  2, 99, 99,
+   99, 99, 99, 99, 99, 99, 99, 99, 99,  2,  2,  2,  2, 99,  2,  2,
+    2,  2,  2,  2,  2, 99,136,139,  0,  0,  2,  2,  2,  2,136,136,
+  136,136,136,136,136,136,136,136,136,  2,  2,  2,  2,  2, 17, 15,
+   15, 15, 15, 15, 15, 15, 15, 15, 15,  2,  2,  2,  2,  2,  2,  2,
+    2,  2, 17, 17, 17, 17,139,139,139,139,139,139,139,139,139,139,
+  139,139,  2,  2,  2,  2,105,105,105,105,105,105,105,105,105,105,
+  105,  2,  2,  2,  2,  2,105,105,105,105,105,  2,  2,  2,105,  2,
+    2,  2,  2,  2,  2,  2,105,105,  2,  2,105,105,105,105,  0,  0,
+    0,  0,  0,  0,  0,  1,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  1,
+    1,  1,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  0,  0,  0,  2,
+    2,  2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  0,  0,  2,  2,  0,
+    0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  2,  0,  0,  0,  0,  0,
+    0,  0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  2,  0,  0,  0,
+    0,  2,  2,  0,  0,  0,  0,  0,  2,  0,  0,  0,  0,  2,  0,  0,
+    0,  0,  0,  2,  0,  2,  2,  2,  0,  0,  0,  0,  0,  0,  0,  2,
+    0,  0,  0,  0,  0,  0,131,131,131,131,131,131,131,131,131,131,
+  131,131,  2,  2,  2,  2,  2,  2,  2,131,131,131,131,131,  2,131,
+  131,131,131,131,131,131, 56,  2,  2, 56, 56, 56, 56, 56, 56, 56,
+    2, 56, 56,  2, 56, 56, 56, 56, 56,  2,  2,  2,  2,  2,151,151,
+  151,151,151,151,151,151,151,151,151,151,151,  2,  2,  2,151,151,
+  151,151,151,151,  2,  2,151,151,  2,  2,  2,  2,151,151,152,152,
+  152,152,152,152,152,152,152,152,  2,  2,  2,  2,  2,152,113,113,
   113,113,113,113,113,113,113,113,113,113,113,  2,  2,113,113,113,
   113,113,113,113,113,  2,132,132,132,132,132,132,132,132,132,132,
   132,132,  2,  2,  2,  2,132,132,  2,  2,  2,  2,132,132,  0,  0,
@@ -4795,32 +4833,31 @@ _hb_ucd_u8[16998] =
     2,  3,  3,  3,  3,  3,  3,  3,  3,  3,  2,  2,  2,  2,  2,  3,
     3,  3,  2,  3,  3,  3,  2,  2,  2,  2,  2,  2,  0,  0, 15,  0,
     0,  2,  2,  2,  2,  2,  0,  0,  0,  2,  2,  2,  0,  0, 13, 13,
-   13, 13, 13, 13, 13,  2, 13,  2,  2,  2,  2,  2,  2,  2,  2,  0,
-    2,  2,  2,  2,  2,  2, 16, 50, 84,118, 88, 89, 90, 85, 85, 85,
+   13, 13, 13, 13, 13,  2, 13, 13, 13, 13, 13,  2,  2,  2, 13,  2,
+    2,  2,  2,  2,  2,  2,  2,  0,  2,  2,  2,  2,  2,  2, 16, 50,
+   84,118, 88, 89, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 91, 85, 85,
+  220, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+   85, 85, 85, 85, 85, 85, 85, 85, 94, 85, 85, 85, 85, 85, 85, 85,
    85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 91, 85, 85,220, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   94, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 15,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,  0,  0,
-   13, 14, 15, 16, 17, 18, 19, 20, 21, 22,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 23,  0,  0, 24, 25, 26,
-   27, 28, 29, 30,  0,  0, 31, 32,  0, 33,  0, 34,  0, 35,  0,  0,
-    0,  0, 36, 37, 38, 39,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0,  0,  0,  0,
-    0,  0, 41, 42,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 15,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,  5,  6,
+    7,  8,  9, 10, 11, 12,  0,  0, 13, 14, 15, 16, 17, 18, 19, 20,
+   21, 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0, 23,  0,  0, 24, 25, 26, 27, 28, 29, 30,  0,  0, 31, 32,
+    0, 33,  0, 34,  0, 35,  0,  0,  0,  0, 36, 37, 38, 39,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   40,  0,  0,  0,  0,  0,  0,  0,  0,  0, 41, 42,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0, 43, 44,  0, 45,  0,  0,  0,  0,
-    0,  0, 46, 47,  0,  0,  0,  0,  0, 48,  0, 49,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 50, 51,  0,  0,  0, 52,
-    0,  0, 53,  0,  0,  0,  0,  0,  0,  0, 54,  0,  0,  0,  0,  0,
-    0,  0, 55,  0,  0,  0,  0,  0,  0,  0, 56,  0,  0,  0,  0,  0,
-    0,  0,  0, 57,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 58, 59, 60, 61, 62, 63,
-   64, 65,  0,  0,  0,  0,  0,  0, 66,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   43, 44,  0, 45,  0,  0,  0,  0,  0,  0, 46, 47,  0,  0,  0,  0,
+    0, 48,  0, 49,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0, 50, 51,  0,  0,  0, 52,  0,  0, 53,  0,  0,  0,  0,  0,
+    0,  0, 54,  0,  0,  0,  0,  0,  0,  0, 55,  0,  0,  0,  0,  0,
+    0,  0, 56,  0,  0,  0,  0,  0,  0,  0,  0, 57,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0, 58, 59, 60, 61, 62, 63, 64, 65,  0,  0,  0,  0,  0,  0,
+   66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -4829,47 +4866,48 @@ _hb_ucd_u8[16998] =
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0, 67, 68,  0, 69, 70,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67, 68,
+    0, 69, 70,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
-   81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
-   97, 98, 99,100,101,102,103,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,104,  0,  0,  0,  0,  0,  0,105,
-  106,  0,107,  0,  0,  0,108,  0,109,  0,110,  0,111,112,113,  0,
-  114,  0,  0,  0,115,  0,  0,  0,116,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71, 72,
+   73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+   89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+  104,  0,  0,  0,  0,  0,  0,105,106,  0,107,  0,  0,  0,108,  0,
+  109,  0,110,  0,111,112,113,  0,114,  0,  0,  0,115,  0,  0,  0,
+  116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,117,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,118,119,120,121,  0,122,
-  123,124,125,126,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,117,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,118,119,120,121,  0,122,123,124,125,126,  0,127,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,128,129,130,131,132,133,134,135,136,137,
-  138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,
-  154,155,156,157,  0,  0,  0,158,159,160,161,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,162,
-  163,  0,  0,  0,  0,  0,  0,  0,164,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,129,
+  130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,
+  146,147,148,149,150,151,152,153,154,155,156,157,  0,  0,  0,158,
+  159,160,161,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,162,163,  0,  0,  0,  0,  0,  0,  0,
+  164,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,166,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,167,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,165,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,166,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,167,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,169,  0,  0,  0,
-    0,170,171,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,172,173,174,175,176,177,178,179,180,181,
-  182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,
-  198,199,200,201,202,203,204,205,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,168,169,  0,  0,  0,  0,170,171,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  1,  2,  3,  4,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,172,173,
+  174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,
+  190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,
 };
 static const uint16_t
-_hb_ucd_u16[8928] =
+_hb_ucd_u16[8944] =
 {
      0,   0,   1,   2,   3,   4,   5,   6,   0,   0,   7,   8,   9,  10,  11,  12,
     13,  13,  13,  14,  15,  13,  13,  16,  17,  18,  19,  20,  21,  22,  13,  23,
@@ -5122,105 +5160,106 @@ _hb_ucd_u16[8928] =
    450, 450, 451, 452,  26, 453,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
    454, 454, 454, 454, 454, 454, 454, 454, 454, 455,  26,  26,  26,  26,  26,  26,
    456, 456, 456, 456, 456, 456, 457,  26, 456, 456, 456, 456, 456, 456, 457, 458,
-     0,   0,   0,   0,   0,  26,   0, 316,  26,  26,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  31,  31,  31, 459,
-     9,   9,   9,   9,   9,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  31,  31, 459,  26,
-   460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 462, 460, 460, 460,  26, 463,
-   464, 464, 464, 464, 464, 464, 464, 464, 465, 466, 467, 467, 467, 468, 467, 469,
-   470, 470, 470, 470, 470, 470, 471, 470, 472,  26, 473, 473, 473, 473, 474,  26,
-   475, 475, 475, 475, 475, 475, 475, 475, 475, 476, 475, 475, 477, 140, 478,  26,
-   479, 479, 480, 479, 479, 479, 479, 481,  26,  26,  26,  26,  26,  26,  26,  26,
-   482, 483, 484, 485, 484, 486, 487, 487, 487, 487, 487, 487, 487, 488, 487, 489,
-   490, 491, 492, 493, 493, 494, 495, 496, 491, 497, 498, 499, 500, 501, 501,  26,
-   502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, 503,  26,  26,  26,  26,
-   504, 504, 504, 504, 504, 504, 504, 504, 504,  26, 504, 505,  26,  26,  26,  26,
-   506, 506, 506, 506, 506, 506, 507, 506, 506, 506, 506, 507,  26,  26,  26,  26,
-   508, 508, 508, 508, 508, 508, 508, 508, 509,  26, 508, 510, 201, 511,  26,  26,
-   512, 512, 512, 512, 512, 512, 512, 513, 512, 514,  26,  26,  26,  26,  26,  26,
-   515, 515, 515, 516, 515, 517, 515, 515,  26,  26,  26,  26,  26,  26,  26,  26,
-    21,  21,  21,  21,  21,  21,  21, 518,  26,  26,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 520, 521,
-    26,  26,  26,  26,  60, 522,  60,  60,  60,  60,  60, 522, 523,  26,  26,  26,
-    18,  18,  18,  18,  18,  18,  18,  18,  18,  26,  54,  54,  54,  54,  54,  54,
-    54,  54,  54,  54, 524,  26,  26,  26, 525, 525, 525, 525, 525, 525, 525, 526,
-   527, 528, 527, 527, 527, 527, 529, 527, 530,  26, 527, 527, 527, 531, 532, 532,
-   532, 532, 533, 532, 532, 534, 535,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   536, 537, 167, 167, 167, 167, 536, 538, 167,  26, 167, 539, 540, 541,  14,  14,
-    14, 257,  15, 375,  14, 542,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  84,  84,  84,  89,
-    26,  26,  26,  26,  26,  26,  26,  26, 109, 109, 109, 109, 109, 109, 543, 544,
-   545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545,
-   545, 545, 545, 546,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 547, 548,  26,
-   545, 545, 545, 545, 545, 545, 545, 545, 549,  26,  26,  26,  26,  26,  26,  26,
-   550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
-   550, 550, 550, 550, 550, 551, 550, 552,  26,  26,  26,  26,  26,  26,  26,  26,
-   553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, 553,
-   553, 553, 553, 553, 553, 553, 553, 553, 554,  26,  26,  26,  26,  26,  26,  26,
+   459, 459, 459, 459, 459,  26, 459, 460,  26,  26,  26,  26,  26,  26,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  31,  31,  31, 461,
+   462, 462, 462, 462, 462,  26, 463, 463, 463, 463, 463, 464,  26,  26,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26, 465, 465, 466,  26,
+   467, 467, 467, 467, 467, 467, 467, 467, 467, 468, 469, 467, 467, 467,  26, 470,
+   471, 471, 471, 471, 471, 471, 471, 471, 472, 473, 474, 474, 474, 475, 474, 476,
+   477, 477, 477, 477, 477, 477, 478, 477, 479,  26, 480, 480, 480, 480, 481,  26,
+   482, 482, 482, 482, 482, 482, 482, 482, 482, 483, 482, 482, 484, 140, 485,  26,
+   486, 486, 487, 486, 486, 486, 486, 488,  26,  26,  26,  26,  26,  26,  26,  26,
+   489, 490, 491, 492, 491, 493, 494, 494, 494, 494, 494, 494, 494, 495, 494, 496,
+   497, 498, 499, 500, 500, 501, 502, 503, 498, 504, 505, 506, 507, 508, 508,  26,
+   509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 510,  26,  26,  26,  26,
+   511, 511, 511, 511, 511, 511, 511, 511, 511,  26, 511, 512,  26,  26,  26,  26,
+   513, 513, 513, 513, 513, 513, 514, 513, 513, 513, 513, 514,  26,  26,  26,  26,
+   515, 515, 515, 515, 515, 515, 515, 515, 516,  26, 515, 517, 201, 518,  26,  26,
+   519, 519, 519, 519, 519, 519, 519, 520, 519, 521,  26,  26,  26,  26,  26,  26,
+   522, 522, 522, 523, 522, 524, 522, 522,  26,  26,  26,  26,  26,  26,  26,  26,
+   525, 525, 525, 525, 525, 525, 525, 526,  26,  26,  26,  26,  26,  26,  26,  26,
+    26,  26,  26,  26, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 528, 529,
+    26,  26,  26,  26, 530, 531, 530, 530, 530, 530, 530, 531, 532,  26,  26,  26,
+   533, 533, 533, 533, 533, 533, 533, 533, 533,  26, 534, 534, 534, 534, 534, 534,
+   534, 534, 534, 534, 535,  26,  26,  26, 536, 536, 536, 536, 536, 536, 536, 537,
+   538, 539, 538, 538, 538, 538, 540, 538, 541,  26, 538, 538, 538, 542, 543, 543,
+   543, 543, 544, 543, 543, 545, 546,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   547, 548, 549, 549, 549, 549, 547, 550, 549,  26, 549, 551, 552, 553, 554, 554,
+   554, 555, 556, 557, 554, 558,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26, 559, 559, 559, 560,
+    26,  26,  26,  26,  26,  26,  26,  26, 109, 109, 109, 109, 109, 109, 561, 562,
+   563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+   563, 563, 563, 564,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, 565, 566,  26,
+   563, 563, 563, 563, 563, 563, 563, 563, 567,  26,  26,  26,  26,  26,  26,  26,
+   568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+   568, 568, 568, 568, 568, 569, 568, 570,  26,  26,  26,  26,  26,  26,  26,  26,
+   571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571,
+   571, 571, 571, 571, 571, 571, 571, 571, 572,  26,  26,  26,  26,  26,  26,  26,
    309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
-   309, 309, 309, 309, 309, 309, 309, 555, 556, 556, 556, 557, 556, 558,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  26,  26, 559, 559, 559, 560, 560,  26,
-   561, 561, 561, 561, 561, 561, 561, 561, 562,  26, 561, 563, 563, 561, 561, 564,
-   561, 561,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  72,  72,  72,  72,  72,  72,  72,  72,
-    72,  72,  72, 565,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 566, 566, 566, 566, 566, 566,
-   566, 568, 566, 566,  26,  26,  26,  26,  26,  26,  26,  26, 569,  26,  26,  26,
-   570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
-   570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,  26,
-   570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 571,  26,
-   572, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+   309, 309, 309, 309, 309, 309, 309, 573, 574, 574, 574, 575, 574, 576,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26,  26,  26, 577, 577, 577, 578, 578,  26,
+   579, 579, 579, 579, 579, 579, 579, 579, 580,  26, 579, 581, 581, 579, 579, 582,
+   579, 579,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26, 583, 583, 583, 583, 583, 583, 583, 583,
+   583, 583, 583, 584,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   585, 585, 585, 585, 585, 585, 585, 585, 585, 586, 585, 585, 585, 585, 585, 585,
+   585, 587, 585, 585,  26,  26,  26,  26,  26,  26,  26,  26, 588,  26,  26,  26,
+   589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+   589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,  26,
+   589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 590,  26,
+   591, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
    290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
-   290, 290, 290, 291,  26,  26,  26,  26,  26,  26, 573,  26, 574,  26, 171, 171,
-   171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 346,
-   575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 576, 575, 577,
-   575, 578, 575, 579, 284,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   290, 290, 290, 291,  26,  26,  26,  26,  26,  26, 592,  26, 593,  26, 594, 594,
+   594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
+   594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595,
+   596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 596, 598,
+   596, 599, 596, 600, 284,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 272,  26,
-     0,   0,   0,   0, 262, 361,   0,   0,   0,   0,   0,   0, 580, 581,   0, 582,
-   583, 584,   0,   0,   0, 585,   0,   0,   0,   0,   0,   0,   0, 586,  26,  26,
+     0,   0,   0,   0, 262, 361,   0,   0,   0,   0,   0,   0, 601, 602,   0, 603,
+   604, 605,   0,   0,   0, 606,   0,   0,   0,   0,   0,   0,   0, 607,  26,  26,
     14,  14,  14,  14,  14,  14,  14,  14, 251,  26,  26,  26,  26,  26,  26,  26,
     26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,   0,   0, 284,  26,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 262,  26,   0,   0,   0, 586,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 262,  26,   0,   0,   0, 607,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 259,   0,   0,   0,   0,   0,
-     0,   0,   0, 259, 587, 588,   0, 589, 590,   0,   0,   0,   0,   0,   0,   0,
-   591, 592, 259, 259,   0,   0,   0, 593, 594, 595, 596,   0,   0,   0,   0,   0,
+     0,   0,   0, 259, 608, 609,   0, 610, 611,   0,   0,   0,   0,   0,   0,   0,
+   612, 613, 259, 259,   0,   0,   0, 614, 615, 616, 617,   0,   0,   0,   0,   0,
      0,   0,   0,   0, 272,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0, 271,   0,   0,   0,   0,   0,   0,
-   597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597,
-   597, 598,  26, 599, 600, 597,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   274, 273, 273, 601, 602, 603,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   280, 280, 280, 280, 280, 604, 280, 283, 280, 605,  26,  26,  26,  26,  26,  26,
-    26,  26,  26,  26,  26,  26,  26,  26,  25,  25,  25,  25,  25,  25,  25, 606,
-   607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
-   607, 607, 607, 607, 607, 607, 607, 607, 608, 607, 609,  26,  26,  26,  26,  26,
-   610, 610, 610, 610, 610, 610, 610, 610, 610, 611, 610, 612,  26,  26,  26,  26,
+   618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618,
+   618, 619,  26, 620, 621, 618,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   274, 273, 273, 622, 623, 624,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+   625, 625, 625, 625, 625, 626, 625, 627, 625, 628,  26,  26,  26,  26,  26,  26,
+    26,  26,  26,  26,  26,  26,  26,  26, 629, 629, 629, 629, 629, 629, 629, 630,
+   631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631,
+   631, 631, 631, 631, 631, 631, 631, 631, 632, 631, 633,  26,  26,  26,  26,  26,
+   634, 634, 634, 634, 634, 634, 634, 634, 634, 635, 634, 636,  26,  26,  26,  26,
     26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26, 361,   0,
-     0,   0,   0,   0,   0,   0, 613,  26,  26,  26,  26,  26,  26,  26,  26,  26,
+     0,   0,   0,   0,   0,   0, 637,  26,  26,  26,  26,  26,  26,  26,  26,  26,
    361,   0,   0,   0,   0,   0,   0, 272,  26,  26,  26,  26,  26,  26,  26,  26,
-   614,  31,  31,  31, 615, 616, 617, 618, 619, 620, 615, 621, 615, 617, 617, 622,
-    31, 623,  31, 624, 625, 623,  31, 624,  26,  26,  26,  26,  26,  26, 355,  26,
+   638,  31,  31,  31, 639, 640, 641, 642, 643, 644, 639, 645, 639, 641, 641, 646,
+    31, 647,  31, 648, 649, 647,  31, 648,  26,  26,  26,  26,  26,  26, 355,  26,
      0,   0,   0,   0,   0, 284,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0, 284,  26,   0, 262, 361,   0, 361,   0, 361,   0,   0,   0, 272,  26,
-     0, 613,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 613,   0,   0,
-     0,   0,   0,   0,   0, 613,  26,  26,  26,  26,  26,  26, 626,   0,   0,   0,
-   627,  26,   0,   0,   0,   0,   0, 284,   0, 586, 316,  26, 272,  26,  26,  26,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 272,  26,   0, 613,   0, 269,
+     0, 637,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 637,   0,   0,
+     0,   0,   0,   0,   0, 637,  26,  26,  26,  26,  26,  26, 650,   0,   0,   0,
+   651,  26,   0,   0,   0,   0,   0, 284,   0, 607, 316,  26, 272,  26,  26,  26,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 272,  26,   0, 637,   0, 269,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 284,  26,
-     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 586,   0, 284,  26,  26,
+     0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 607,   0, 284,  26,  26,
      0, 284,   0,   0,   0,   0,   0,   0,   0,  26,   0, 316,   0,   0,   0,   0,
      0,  26,   0,   0,   0, 272,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-     0, 590,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 593, 595,
-     0,   0,   0,   0, 592, 628,   0,   0,   0, 592,   0,   0,   0,   0,   0,   0,
+     0, 611,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 614, 616,
+     0,   0,   0,   0, 613, 652,   0,   0,   0, 613,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 284,  26,   0, 272, 284, 269,
    269,  26, 272,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 629,  26,  26,  26,  26,  26,
-   280, 280, 280, 280, 280, 280, 604,  26, 280, 280, 280, 280, 280, 280, 280, 280,
+   280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 653,  26,  26,  26,  26,  26,
+   280, 280, 280, 280, 280, 280, 654,  26, 280, 280, 280, 280, 280, 280, 280, 280,
    280, 280, 280, 283, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
    280, 280, 280, 280, 348,  26, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
-   280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 630,  26,  26,  26,
+   280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 655,  26,  26,  26,
    280, 280, 280, 283,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,  26,
-   631,  26,  26,  26,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+   656,  26,  26,  26,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,
      9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   9,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
@@ -5476,14 +5515,14 @@ _hb_ucd_sc (unsigned u)
 static inline uint_fast16_t
 _hb_ucd_dm (unsigned u)
 {
-  return u<195102u?_hb_ucd_u16[5632+(((_hb_ucd_u8[15974+(((_hb_ucd_b4(15878+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
+  return u<195102u?_hb_ucd_u16[5648+(((_hb_ucd_u8[16174+(((_hb_ucd_b4(16078+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
 }
 
 
 #else
 
 static const uint8_t
-_hb_ucd_u8[12888] =
+_hb_ucd_u8[13072] =
 {
     0,  1,  2,  3,  4,  5,  5,  5,  5,  5,  6,  5,  5,  7,  8,  9,
    10, 11, 12, 13, 14, 15, 16,  5, 17, 15, 15, 18, 15, 19, 20, 21,
@@ -6014,26 +6053,26 @@ _hb_ucd_u8[12888] =
    32, 32, 32, 32, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
    87, 87, 87, 87, 87, 87, 62, 62, 62, 62, 88, 89, 89, 89, 90, 89,
    91, 92, 93, 94, 95, 95, 96, 97, 87, 98, 99,100,101,102,103, 87,
-  104,104,104, 87,105,106,107,108,109,110,111,112,113,114, 56, 87,
-   89, 87,115, 89,116,117,118,119,120,121,122, 87,123,124, 87,125,
-  126,127,128, 87,129,130, 87, 17,131,132, 87, 87,133,134,135, 51,
-   87, 19, 87, 21,136,136,136,136,136,136,136,136,136,136,136, 87,
-   87, 87, 87, 87,137,137,137,137,137,137,137,137,137, 87, 87, 87,
-   87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,138,138,138,138,
-  138, 87, 87, 87,139,139,139,139,140,141,142,142, 87, 87, 87, 87,
-   18, 18,143,144,145,145,145,145,145,145,145,145,145,145,145,145,
-  145,145,145,145,145,145,145,145,145,145, 87, 87, 87, 87, 87, 87,
-   87, 87, 87, 87,146,147,148, 32, 32, 32, 87, 87, 87, 87, 87, 87,
-   87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,149,150, 87, 87,
-   87, 87, 87, 87, 56, 56,151,152, 51, 56, 56, 87, 56, 56, 56, 56,
-   56, 56, 56, 56,153,153,153,153,153,153, 87, 87, 87, 87, 87, 87,
-   87, 87, 87, 87,154, 87, 62, 87, 87,155, 87, 87, 87, 87, 87, 87,
-   87, 87, 87, 87,156,156,157, 87, 87, 87, 87, 87, 56, 56, 56, 87,
-   89, 89, 87, 87, 56, 56, 56, 56,158, 87, 56, 56, 56, 56, 56, 56,
+  104,104,104, 87,105,106,107,108,109,110,111,112,113,114,115, 87,
+   89, 87,116,117,118,119,120,121,122,123,124, 87,125,126, 87,127,
+  128,129,130, 87,131,132, 87,133,134,135, 87, 87,136,137,138,139,
+   87,140, 87, 21,141,141,141,141,141,141,141,141,141,141,141, 87,
+   87, 87, 87, 87,142,142,142,142,142,142,142,142,142, 87, 87, 87,
+   87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,143,143,143,143,
+  143, 87, 87, 87,144,144,144,144,145,146,147,147, 87, 87, 87, 87,
+  148,148,149,150,151,151,151,151,151,151,151,151,151,151,151,151,
+  151,151,151,151,151,151,151,151,151,151, 87, 87, 87, 87, 87, 87,
+   87, 87, 87, 87,152,153,154,155,155,155, 87, 87, 87, 87, 87, 87,
+   87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,156,157, 87, 87,
+   87, 87, 87, 87, 56, 56,158,159, 51, 56, 56, 87, 56, 56, 56, 56,
+   56, 56, 56, 56,160,160,160,160,160,160, 87, 87, 87, 87, 87, 87,
+   87, 87, 87, 87,161, 87,162, 87, 87,163, 87, 87, 87, 87, 87, 87,
+   87, 87, 87, 87,164,164,165, 87, 87, 87, 87, 87, 56, 56, 56, 87,
+   89, 89, 87, 87, 56, 56, 56, 56,166, 87, 56, 56, 56, 56, 56, 56,
    56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 87, 87, 87, 87, 87, 87,
    87, 87, 87, 87, 62, 62, 62, 62, 62, 62, 62, 62, 87, 87, 87, 87,
    87, 87, 87, 87, 62, 62, 62, 62, 62, 87, 87, 87, 87, 87, 87, 87,
-   87, 87, 87, 87, 56, 87,159,159,  0,  1,  2,  2,  0,  1,  2,  2,
+   87, 87, 87, 87, 56, 87,167,167,  0,  1,  2,  2,  0,  1,  2,  2,
     2,  3,  4,  5,  0,  0,  0,  0,  1,  2,  1,  2,  0,  0,  3,  3,
     4,  5,  4,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  6,
     0,  0,  7,  0,  8,  8,  8,  8,  8,  8,  8,  9, 10, 11, 11, 11,
@@ -6091,29 +6130,33 @@ _hb_ucd_u8[12888] =
   159,159,159,159,160,160,161,161,161,161,161,161,162,162,162,162,
   162,162,163,163,164,164,164,164,165,165,165,165,166,166,166,166,
   167,167,168,168,169,169,169,169,169,169,169,169,170,170,170,170,
-  170,170,170,170,171,171,171,171,171,171,171,171,  8,  8,  8,129,
-  129,129,129,129,172,172,172,172,172,172,172,172,173,173,173,173,
-  173,174,174,174,175,175,175,175,175,176,176,176,177,177,177,177,
-  177,177,178, 44,179,179,179,179,179,179,179,179,180,180,180,181,
-  181,181,181,181,182,182,182,183,182,182,182,182,184,184,184,184,
-  184,184,184,184,185,185,185,185,185,185,185,185,186,186,186,186,
-  186,186,186,186,187,187,187,187,187,187, 67, 67,188,188,188,188,
-  188,188,188,188,189,189,189,189,189,189,189,189, 16, 16, 16, 16,
-   16, 16, 16, 16,190,190,190,190,190,190,190,190, 13, 13, 13, 13,
-   13, 33, 33, 33, 33, 33, 33, 33,191,191,191,191,192,192,192,192,
-  192,192,192,193,193,193,193,193,193,193,193,193, 51, 51, 51, 51,
-   51, 51, 11, 11,194,194,194,194,194,194,194,194,195,195,195,195,
-  195,195,195,195,196,196,196,196,196,196,196,196,113,113,113,113,
-  113,113,113,113,113,113,113,113,197,197,197,197,198,198,198,198,
-  198,198,198,198,199,199,199,199,199,199,199,199,200,200,200,200,
-  200,200,200,200,200,200,200,200,200,200,201,  0,202,202,202,202,
-  202,202,202,202,203,100,100,100,100,100,100,100,100,100,100,100,
-  100,100,100,100,100,100,100,100,100,100,204, 53,205,205,205,205,
-  205,205,205,205,205,205,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,206,207,208,  0,209,  0,  0,  0,  0,  0,210,210,210,210,
-  210,210,210,210, 92, 92, 92, 92, 92, 92, 92, 92, 19, 19, 19, 19,
-   19, 19, 19, 19,211,211,211,211,211,211,211,211,212,212,212,212,
-  212,212,212,212,213,  0,  0,  0,  0,  0,  0,  0,  8,  8,  8,  8,
+  170,170,170,170,171,171,171,171,171,171,171,171,172,172,172,172,
+  172,172,172,172,173,173,173,174,174,174,174,174,175,175,175,175,
+  175,175,175,175,176,176,176,176,176,176,176,176,177,177,177,177,
+  177,178,178,178,179,179,179,179,179,180,180,180,181,181,181,181,
+  181,181,182, 44,183,183,183,183,183,183,183,183,184,184,184,185,
+  185,185,185,185,186,186,186,187,186,186,186,186,188,188,188,188,
+  188,188,188,188,189,189,189,189,189,189,189,189,190,190,190,190,
+  190,190,190,190,191,191,191,191,191,191, 67, 67,192,192,192,192,
+  192,192,192,192,193,193,193,193,193,193,193,193,194,194,194,194,
+  194,194,194,194,195,195,195,195,195,195,195,195,196,196,196,196,
+  196,196,196,196,197,197,197,197,197,198,198,198,198,198,198,198,
+  199,199,199,199,200,200,200,200,200,200,200,201,201,201,201,201,
+  201,201,201,201,202,202,202,202,202,202,203,203,203,203,203,203,
+  203,203,203,203,204,204,204,204,204,204,204,204,205,205,205,205,
+  205,205,205,205,206,206,206,206,206,206,206,206,207,207,207,207,
+  207,207,207,207,113,113,113,113,113,113,113,113,113,113,113,113,
+  208,208,208,208,209,209,209,209,209,209,209,209,210,210,210,210,
+  210,210,210,210,211,211,211,211,211,211,211,211,212,212,212,212,
+  212,212,212,212,212,212,212,212,212,212,213,  0,214,214,214,214,
+  214,214,214,214,215,100,100,100,100,100,100,100,100,100,100,100,
+  100,100,100,100,100,100,100,100,100,100,216,217,217,217,217,217,
+  217,217,217,217,218,218,218,218,218,218,218,218,218,218,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,219,220,221,  0,222,  0,
+    0,  0,  0,  0,223,223,223,223,223,223,223,223, 92, 92, 92, 92,
+   92, 92, 92, 92,224,224,224,224,224,224,224,224,225,225,225,225,
+  225,225,225,225,226,226,226,226,226,226,226,226,227,227,227,227,
+  227,227,227,227,228,  0,  0,  0,  0,  0,  0,  0,  8,  8,  8,  8,
     8,  8,  8,  8,  0,  0,  0,  0,  1,  2,  2,  2,  2,  2,  3,  0,
     0,  0,  4,  0,  2,  2,  2,  2,  2,  3,  2,  2,  2,  2,  5,  0,
     2,  5,  6,  0,  7,  7,  7,  7,  8,  9,  8, 10,  8, 11,  8,  8,
@@ -6158,92 +6201,99 @@ _hb_ucd_u8[12888] =
   163,163,163,163,164,164,164,164,165,165,165,165,166,166,166,166,
   167,167,167,167,168,168,168,168,169,169,169,169,170,170,170,170,
   171,171,171,171,172,172,172,172,173,173,173,173,174,174,174,174,
-  175,175,175,175,176,176,176,176,177,177,177,177,178, 46, 46, 46,
-  179,179,179,179,180,180,180,180,181,181,181,181,182,182,182,182,
-  182,182,183,182,184,184,184,184,185,185,185,185,186,186,186,186,
-  187,187,187,187,188,188,188,188,189,189,189,189,190,190,190,190,
+  175,175,175,175,176,176,176,176,177,177,177,177,178,178,178,178,
+  179,179,179,179,180,180,180,180,181,181,181,181,182, 46, 46, 46,
+  183,183,183,183,184,184,184,184,185,185,185,185,186,186,186,186,
+  186,186,187,186,188,188,188,188,189,189,189,189,190,190,190,190,
   191,191,191,191,192,192,192,192,193,193,193,193,194,194,194,194,
   195,195,195,195,196,196,196,196,197,197,197,197,198,198,198,198,
-  199,199,199,199,200,200,200,200,201,  0,  0,  0,202,202,202,202,
-  203,107,107,107,107,110,110,110,204,204,204,204,  0,205, 87,  0,
-    0,  0,205,  7, 83,138,  7,  0,  0,  0,206, 87,207,207,207,207,
-  208,208,208,208,209,209,209,209,210,  0,  0,  0,  0,  0,  0,  0,
-    0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,  0,  0,  0, 19,  0,
-   19,  0,  0,  0,  0,  0, 26, 26,  1,  1,  1,  1,  9,  9,  9,  9,
-    0,  9,  9,  9,  9,  9,  0,  9,  9,  0,  9,  0,  9,  9, 55, 55,
-   55, 55, 55, 55,  6,  6,  6,  6,  6,  1,  1,  6,  6,  4,  4,  4,
-    4,  4,  4,  4,  4,  0,  4,  4,  4, 14, 14, 14, 14, 14, 14, 14,
-    3,  3,  3,  3,  3,  0,  3,  3,  0,  3,  3,  3,  3,  3,  3,  0,
-    3,  3,  3,  1,  1,  1,  3,  3,  1,  3,  3,  3, 37, 37, 37, 37,
-   38, 38, 38, 38, 64, 64, 64, 64, 90, 90, 90, 90, 95, 95, 95, 95,
-    3,  3,  0,  3,  7,  7,  7,  7,  7,  1,  1,  1,  1,  7,  7,  7,
-    0,  0,  7,  7,  5,  5,  5,  5, 11, 11, 11, 11, 10, 10, 10, 10,
-   21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 16, 16, 16, 16,
-   20, 20, 20, 20, 36, 36, 36, 36, 24, 24, 24, 24, 24, 24, 24,  0,
-   18, 18, 18, 18, 25, 25, 25, 25, 25,  0,  0,  0,  0, 25, 25, 25,
-   33, 33, 33, 33,  8,  8,  8,  8,  8,  8,  8,  0, 12, 12, 12, 12,
-   30, 30, 30, 30, 29, 29, 29, 29, 28, 28, 28, 28, 34, 34, 34, 34,
-   35, 35, 35, 35, 35, 35, 35,  0,  0,  0, 35, 35, 45, 45, 45, 45,
-   44, 44, 44, 44, 44,  0,  0,  0, 43, 43, 43, 43, 46, 46, 46, 46,
-   31, 31, 31, 31, 32, 32,  0,  0, 32,  0, 32, 32, 32, 32, 32, 32,
-   48, 48, 48, 48, 52, 52, 52, 52, 58, 58, 58, 58, 54, 54, 54, 54,
-   91, 91, 91, 91, 62, 62, 62, 62, 76, 76, 76, 76, 93, 93, 93, 93,
-   70, 70, 70, 70, 73, 73, 73, 73,  1,  1,  1,  0,  1,  0,  1,  1,
-    1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  0,  0, 19, 19,  9,  9,
-    9,  9,  9,  6, 19,  9,  9,  9,  9,  9, 19, 19,  9,  9,  9, 19,
-    6, 19, 19, 19, 19, 19, 19,  9,  0,  0,  0, 19,  0,  0,  9,  0,
-    0,  0, 19, 19, 27, 27, 27, 27, 56, 56, 56, 56, 61, 61, 61, 61,
-   13, 13, 13, 13,  0, 13,  0, 13,  0, 13, 13, 13, 13, 13,  1,  1,
-    1,  1, 12, 12,  0, 15, 15, 15, 15, 15, 15, 15, 15,  1,  1,  0,
-    0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,  0, 26, 26, 26, 26,
-   26, 12, 12, 12, 12, 12, 12,  0, 39, 39, 39, 39, 86, 86, 86, 86,
-   77, 77, 77, 77, 79, 79, 79, 79, 60, 60, 60, 60, 65, 65, 65, 65,
-   75, 75, 75, 75, 69, 69, 69, 69, 69, 69,  0, 69, 74, 74, 74, 74,
-   84, 84, 84, 84, 84, 84, 84,  0, 68, 68, 68, 68, 92, 92, 92, 92,
-   87, 87, 87, 87, 19,  9, 19, 19,  2,  2,  2,  2, 19, 19, 19,  4,
-    3,  3,  0,  0,  1,  1,  6,  6,  0,  0, 17, 17, 17, 17,  0,  0,
-   49, 49, 49, 49,  0,  1,  1,  1, 71, 71, 71, 71, 67, 67, 67, 67,
-   42, 42, 42, 42, 41, 41, 41, 41,118,118,118,118, 53, 53, 53, 53,
-   59, 59, 59, 59, 40, 40, 40, 40, 51, 51, 51, 51, 50, 50, 50, 50,
-  135,135,135,135,106,106,106,106,104,104,104,104,110,110,110,110,
-   47, 47, 47, 47, 81, 81, 81, 81,120,120,120,120,116,116,116,116,
-  128,128,128,128, 66, 66, 66, 66, 72, 72, 72, 72, 98, 98, 98, 98,
-   97, 97, 97, 97, 57, 57, 57, 57, 88, 88, 88, 88,117,117,117,117,
-  112,112,112,112, 78, 78, 78, 78, 83, 83, 83, 83, 82, 82, 82, 82,
-  122,122,122,122, 89, 89, 89, 89,130,130,130,130, 94, 94, 94, 94,
-   85, 85, 85, 85,101,101,101,101, 96, 96, 96, 96,111,111,111,111,
-  100,100,100,100,100, 36, 36, 36,108,108,108,108,129,129,129,129,
-  109,109,109,109,107,107,107,107,107,107,107,  1,137,137,137,137,
-  124,124,124,124,123,123,123,123,114,114,114,114,102,102,102,102,
-  126,126,126,126,125,125,125,125,121,121,121,121,133,133,133,133,
-  134,134,134,134, 63, 63, 63, 63, 80, 80, 80, 80,127,127,127,127,
-  115,115,115,115,103,103,103,103,119,119,119,119, 99, 99, 99, 99,
-  136, 12,  0,  0,136,136,136,136, 17, 15, 15, 15,105,105,105,105,
-    0,  0,  0,  1,  0,  0,  1,  1,131,131,131,131,113,113,113,113,
-  132,132,132,132, 15,  0,  0,  0, 16, 50, 84,118, 88, 89, 90, 85,
-   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 85, 85, 91, 85, 85,220, 85, 85, 85, 85, 85,
+  199,199,199,199,200,200,200,200,201,201,201,201,202,202,202,202,
+  203,203,203,203,204,204,204,204,205,205,205,205,206,206,206,206,
+  207,207,207,207,208,208,208,208,209,209,209,209,210,210,210,210,
+  211,211,211,211,212,212,212,212,213,  0,  0,  0,214,214,214,214,
+  215,107,107,107,107,110,110,110,216,216,216,216,217,217,217,217,
+    0,218, 87,  0,  0,  0,218,  7, 83,138,  7,  0,  0,  0,219, 87,
+  220,220,220,220,221,221,221,221,222,222,222,222,223,223,223,223,
+  224,224,224,224,225,  0,  0,  0,  0,  0,  0,  0,  0, 19, 19, 19,
+   19, 19, 19, 19, 19, 19, 19,  0,  0,  0, 19,  0, 19,  0,  0,  0,
+    0,  0, 26, 26,  1,  1,  1,  1,  9,  9,  9,  9,  0,  9,  9,  9,
+    9,  9,  0,  9,  9,  0,  9,  0,  9,  9, 55, 55, 55, 55, 55, 55,
+    6,  6,  6,  6,  6,  1,  1,  6,  6,  4,  4,  4,  4,  4,  4,  4,
+    4,  0,  4,  4,  4, 14, 14, 14, 14, 14, 14, 14,  3,  3,  3,  3,
+    3,  0,  3,  3,  0,  3,  3,  3,  3,  3,  3,  0,  3,  3,  3,  1,
+    1,  1,  3,  3,  1,  3,  3,  3, 37, 37, 37, 37, 38, 38, 38, 38,
+   64, 64, 64, 64, 90, 90, 90, 90, 95, 95, 95, 95,  3,  3,  0,  3,
+    7,  7,  7,  7,  7,  1,  1,  1,  1,  7,  7,  7,  0,  0,  7,  7,
+    5,  5,  5,  5, 11, 11, 11, 11, 10, 10, 10, 10, 21, 21, 21, 21,
+   22, 22, 22, 22, 23, 23, 23, 23, 16, 16, 16, 16, 20, 20, 20, 20,
+   36, 36, 36, 36, 24, 24, 24, 24, 24, 24, 24,  0, 18, 18, 18, 18,
+   25, 25, 25, 25, 25,  0,  0,  0,  0, 25, 25, 25, 33, 33, 33, 33,
+    8,  8,  8,  8,  8,  8,  8,  0, 12, 12, 12, 12, 30, 30, 30, 30,
+   29, 29, 29, 29, 28, 28, 28, 28, 34, 34, 34, 34, 35, 35, 35, 35,
+   35, 35, 35,  0,  0,  0, 35, 35, 45, 45, 45, 45, 44, 44, 44, 44,
+   44,  0,  0,  0, 43, 43, 43, 43, 46, 46, 46, 46, 31, 31, 31, 31,
+   32, 32,  0,  0, 32,  0, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
+   52, 52, 52, 52, 58, 58, 58, 58, 54, 54, 54, 54, 91, 91, 91, 91,
+   62, 62, 62, 62, 76, 76, 76, 76, 93, 93, 93, 93, 70, 70, 70, 70,
+   73, 73, 73, 73,  1,  1,  1,  0,  1,  0,  1,  1,  1,  0,  0,  0,
+    0,  1,  0,  0,  1,  1,  0,  0, 19, 19,  9,  9,  9,  9,  9,  6,
+   19,  9,  9,  9,  9,  9, 19, 19,  9,  9,  9, 19,  6, 19, 19, 19,
+   19, 19, 19,  9,  0,  0,  0, 19,  0,  0,  9,  0,  0,  0, 19, 19,
+   27, 27, 27, 27, 56, 56, 56, 56, 61, 61, 61, 61, 13, 13, 13, 13,
+    0, 13,  0, 13,  0, 13, 13, 13, 13, 13,  1,  1,  1,  1, 12, 12,
+    0, 15, 15, 15, 15, 15, 15, 15, 15,  1,  1,  0,  0, 17, 17, 17,
+   17, 17, 17, 17, 17, 17, 17,  0, 26, 26, 26, 26, 26, 12, 12, 12,
+   12, 12, 12,  0, 39, 39, 39, 39, 86, 86, 86, 86, 77, 77, 77, 77,
+   79, 79, 79, 79, 60, 60, 60, 60, 65, 65, 65, 65, 75, 75, 75, 75,
+   69, 69, 69, 69, 69, 69,  0, 69, 74, 74, 74, 74, 84, 84, 84, 84,
+   84, 84, 84,  0, 68, 68, 68, 68, 92, 92, 92, 92, 87, 87, 87, 87,
+   19,  9, 19, 19,  2,  2,  2,  2, 19, 19, 19,  4,  3,  3,  0,  0,
+    1,  1,  6,  6,  0,  0, 17, 17, 17, 17,  0,  0, 49, 49, 49, 49,
+    0,  1,  1,  1, 71, 71, 71, 71, 67, 67, 67, 67, 42, 42, 42, 42,
+   41, 41, 41, 41,118,118,118,118, 53, 53, 53, 53, 59, 59, 59, 59,
+   40, 40, 40, 40, 51, 51, 51, 51, 50, 50, 50, 50,135,135,135,135,
+  106,106,106,106,104,104,104,104,110,110,110,110, 47, 47, 47, 47,
+   81, 81, 81, 81,120,120,120,120,116,116,116,116,128,128,128,128,
+   66, 66, 66, 66, 72, 72, 72, 72, 98, 98, 98, 98, 97, 97, 97, 97,
+   57, 57, 57, 57, 88, 88, 88, 88,117,117,117,117,112,112,112,112,
+   78, 78, 78, 78, 83, 83, 83, 83, 82, 82, 82, 82,122,122,122,122,
+   89, 89, 89, 89,130,130,130,130,144,144,144,144,147,147,147,147,
+  148,148,148,148,149,149,149,149, 94, 94, 94, 94, 85, 85, 85, 85,
+  101,101,101,101, 96, 96, 96, 96,111,111,111,111,100,100,100,100,
+  100, 36, 36, 36,108,108,108,108,129,129,129,129,109,109,109,109,
+  107,107,107,107,107,107,107,  1,137,137,137,137,124,124,124,124,
+  123,123,123,123,114,114,114,114,102,102,102,102,126,126,126,126,
+  142,142,142,142,125,125,125,125,150,150,150,150,141,141,141,141,
+  140,140,140,140,121,121,121,121,133,133,133,133,134,134,134,134,
+  138,138,138,138,143,143,143,143,145,145,145,145, 63, 63, 63, 63,
+   80, 80, 80, 80,127,127,127,127,115,115,115,115,103,103,103,103,
+  119,119,119,119,146,146,146,146, 99, 99, 99, 99,136,139,  0,  0,
+  136,136,136,136, 17, 15, 15, 15,139,139,139,139,105,105,105,105,
+    0,  0,  0,  1,  0,  0,  1,  1,131,131,131,131,151,151,151,151,
+  152,152,152,152,113,113,113,113,132,132,132,132, 15,  0,  0,  0,
+   16, 50, 84,118, 88, 89, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 91,
+   85, 85,220, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
+   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 94, 85, 85, 85, 85, 85,
    85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 94, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
-   85, 85, 85, 85, 85, 85, 85, 15,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12,
-    0,  0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 23,  0,  0, 24,
-   25, 26, 27, 28, 29, 30,  0,  0, 31, 32,  0, 33,  0, 34,  0, 35,
-    0,  0,  0,  0, 36, 37, 38, 39,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 40,  0,  0,  0,  0,  0,
-    0,  0,  0,  0, 41, 42,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 15,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,
+    5,  6,  7,  8,  9, 10, 11, 12,  0,  0, 13, 14, 15, 16, 17, 18,
+   19, 20, 21, 22,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0, 23,  0,  0, 24, 25, 26, 27, 28, 29, 30,  0,  0,
+   31, 32,  0, 33,  0, 34,  0, 35,  0,  0,  0,  0, 36, 37, 38, 39,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0, 40,  0,  0,  0,  0,  0,  0,  0,  0,  0, 41, 42,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 43, 44,  0, 45,  0,  0,
-    0,  0,  0,  0, 46, 47,  0,  0,  0,  0,  0, 48,  0, 49,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 50, 51,  0,  0,
-    0, 52,  0,  0, 53,  0,  0,  0,  0,  0,  0,  0, 54,  0,  0,  0,
-    0,  0,  0,  0, 55,  0,  0,  0,  0,  0,  0,  0, 56,  0,  0,  0,
-    0,  0,  0,  0,  0, 57,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 58, 59, 60, 61,
-   62, 63, 64, 65,  0,  0,  0,  0,  0,  0, 66,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0, 43, 44,  0, 45,  0,  0,  0,  0,  0,  0, 46, 47,  0,  0,
+    0,  0,  0, 48,  0, 49,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0, 50, 51,  0,  0,  0, 52,  0,  0, 53,  0,  0,  0,
+    0,  0,  0,  0, 54,  0,  0,  0,  0,  0,  0,  0, 55,  0,  0,  0,
+    0,  0,  0,  0, 56,  0,  0,  0,  0,  0,  0,  0,  0, 57,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0, 58, 59, 60, 61, 62, 63, 64, 65,  0,  0,  0,  0,
+    0,  0, 66,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
@@ -6253,44 +6303,44 @@ _hb_ucd_u8[12888] =
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0, 67, 68,  0, 69, 70,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   67, 68,  0, 69, 70,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0, 71, 72, 73, 74, 75, 76, 77, 78,
-   79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
-   95, 96, 97, 98, 99,100,101,102,103,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,  0,  0,  0,  0,  0,
-    0,105,106,  0,107,  0,  0,  0,108,  0,109,  0,110,  0,111,112,
-  113,  0,114,  0,  0,  0,115,  0,  0,  0,116,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+   71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+   87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,
+  103,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,104,  0,  0,  0,  0,  0,  0,105,106,  0,107,  0,  0,  0,
+  108,  0,109,  0,110,  0,111,112,113,  0,114,  0,  0,  0,115,  0,
+    0,  0,116,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,117,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,117,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,118,119,120,121,
-    0,122,123,124,125,126,  0,127,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,118,119,120,121,  0,122,123,124,125,126,  0,127,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,128,129,130,131,132,133,134,135,
-  136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,
-  152,153,154,155,156,157,  0,  0,  0,158,159,160,161,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,162,163,  0,  0,  0,  0,  0,  0,  0,164,  0,  0,  0,  0,  0,
+  128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
+  144,145,146,147,148,149,150,151,152,153,154,155,156,157,  0,  0,
+    0,158,159,160,161,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,162,163,  0,  0,  0,  0,  0,
+    0,  0,164,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,165,  0,  0,  0,
+    0,  0,  0,  0,165,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,166,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,167,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,166,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,167,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,168,169,  0,
-    0,  0,  0,170,171,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,168,169,  0,  0,  0,  0,170,171,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  0,  0,  0,  0,172,173,174,175,176,177,178,179,
-  180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,
-  196,197,198,199,200,201,202,203,204,205,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    0,  0,  0,  0,  1,  2,  3,  4,
+  172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,
+  188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,
+  204,205,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
+    0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,
 };
 static const uint16_t
 _hb_ucd_u16[4800] =
@@ -6630,12 +6680,12 @@ _hb_ucd_bmg (unsigned u)
 static inline uint_fast8_t
 _hb_ucd_sc (unsigned u)
 {
-  return u<918016u?_hb_ucd_u8[10924+(((_hb_ucd_u8[10068+(((_hb_ucd_u8[8788+(((_hb_ucd_u8[8228+(((_hb_ucd_u8[7778+(u>>2>>2>>3>>4)])<<4)+((u>>2>>2>>3)&15u))])<<3)+((u>>2>>2)&7u))])<<2)+((u>>2)&3u))])<<2)+((u)&3u))]:2;
+  return u<918016u?_hb_ucd_u8[11048+(((_hb_ucd_u8[10132+(((_hb_ucd_u8[8788+(((_hb_ucd_u8[8228+(((_hb_ucd_u8[7778+(u>>2>>2>>3>>4)])<<4)+((u>>2>>2>>3)&15u))])<<3)+((u>>2>>2)&7u))])<<2)+((u>>2)&3u))])<<2)+((u)&3u))]:2;
 }
 static inline uint_fast16_t
 _hb_ucd_dm (unsigned u)
 {
-  return u<195102u?_hb_ucd_u16[1504+(((_hb_ucd_u8[11864+(((_hb_ucd_b4(11768+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
+  return u<195102u?_hb_ucd_u16[1504+(((_hb_ucd_u8[12048+(((_hb_ucd_b4(11952+_hb_ucd_u8,u>>4>>6))<<6)+((u>>4)&63u))])<<4)+((u)&15u))]:0;
 }
 
 #endif