[USP10] Sync with Wine Staging 1.9.16. CORE-11866
authorAmine Khaldi <amine.khaldi@reactos.org>
Thu, 18 Aug 2016 10:47:59 +0000 (10:47 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Thu, 18 Aug 2016 10:47:59 +0000 (10:47 +0000)
svn path=/trunk/; revision=72311

reactos/dll/win32/usp10/bracket.c
reactos/dll/win32/usp10/breaking.c
reactos/dll/win32/usp10/indicsyllable.c
reactos/dll/win32/usp10/linebreak.c
reactos/dll/win32/usp10/mirror.c
reactos/dll/win32/usp10/opentype.c
reactos/dll/win32/usp10/shape.c
reactos/dll/win32/usp10/shaping.c
reactos/dll/win32/usp10/usp10.c
reactos/media/doc/README.WINE

index 86e0b7d..16c8ac6 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode Bidirectional Bracket table */
-/* generated from http://www.unicode.org/Public/8.0.0/ucd/BidiBrackets.txt */
+/* generated from http://www.unicode.org/Public/9.0.0/ucd/BidiBrackets.txt */
 /* DO NOT EDIT!! */
 
 const unsigned short /* DECLSPEC_HIDDEN */ bidi_bracket_table[768] =
index 6b1a744..641dff4 100644 (file)
@@ -25,7 +25,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(uniscribe);
 
 extern const unsigned short wine_linebreak_table[] DECLSPEC_HIDDEN;
 
-enum breaking_types { b_BK=1, b_CR, b_LF, b_CM, b_SG, b_GL, b_CB, b_SP, b_ZW, b_NL, b_WJ, b_JL, b_JV, b_JT, b_H2, b_H3, b_XX, b_OP, b_CL, b_CP, b_QU, b_NS, b_EX, b_SY, b_IS, b_PR, b_PO, b_NU, b_AL, b_ID, b_IN, b_HY, b_BB, b_BA, b_SA, b_AI, b_B2, b_HL, b_CJ, b_RI};
+enum breaking_types {
+    b_BK=1, b_CR, b_LF, b_CM, b_SG, b_GL, b_CB, b_SP, b_ZW, b_NL, b_WJ, b_JL, b_JV, b_JT, b_H2, b_H3, b_XX, b_OP, b_CL,
+    b_CP, b_QU, b_NS, b_EX, b_SY, b_IS, b_PR, b_PO, b_NU, b_AL, b_ID, b_IN, b_HY, b_BB, b_BA, b_SA, b_AI, b_B2, b_HL,
+    b_CJ, b_RI, b_EB, b_EM, b_ZWJ
+};
 
 enum breaking_class {b_r=1, b_s, b_x};
 
index fa47bfd..0d7f2c9 100644 (file)
@@ -1,16 +1,16 @@
 /* Unicode Indic Syllabic Category */
-/* generated from http://www.unicode.org/Public/8.0.0/ucd/IndicSyllabicCategory.txt */
-/*       and from http://www.unicode.org/Public/8.0.0/ucd/IndicPositionalCategory.txt */
+/* generated from http://www.unicode.org/Public/9.0.0/ucd/IndicSyllabicCategory.txt */
+/*       and from http://www.unicode.org/Public/9.0.0/ucd/IndicPositionalCategory.txt */
 /* DO NOT EDIT!! */
 
-const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
+const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3296] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170, 0x0180,
     0x0190, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x01a0,
-    0x0110, 0x01b0, 0x01c0, 0x01d0, 0x01e0, 0x0110, 0x0110, 0x0110,
-    0x01f0, 0x0110, 0x0110, 0x0110, 0x0110, 0x0200, 0x0110, 0x0110,
+    0x0110, 0x01b0, 0x01c0, 0x01d0, 0x01e0, 0x01f0, 0x0110, 0x0110,
+    0x0200, 0x0110, 0x0110, 0x0110, 0x0110, 0x0210, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
@@ -27,7 +27,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
-    0x0210, 0x0220, 0x0230, 0x0240, 0x0110, 0x0110, 0x0110, 0x0110,
+    0x0220, 0x0230, 0x0240, 0x0250, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
@@ -39,48 +39,50 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110,
     /* level 2 offsets */
-    0x0250, 0x0260, 0x0270, 0x0280, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0290, 0x02a0, 0x0260, 0x02b0, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x02c0, 0x02d0, 0x02e0, 0x02f0, 0x0300, 0x0310, 0x0320, 0x0330,
-    0x0340, 0x0350, 0x0360, 0x0370, 0x0380, 0x0390, 0x0320, 0x03a0,
-    0x03b0, 0x0350, 0x0360, 0x03c0, 0x03d0, 0x03e0, 0x03f0, 0x0400,
-    0x0410, 0x0420, 0x0360, 0x0430, 0x0440, 0x0260, 0x0320, 0x0450,
-    0x0340, 0x0350, 0x0360, 0x0460, 0x0470, 0x0480, 0x0320, 0x0490,
-    0x04a0, 0x04b0, 0x04c0, 0x04d0, 0x04e0, 0x04f0, 0x03f0, 0x0260,
-    0x0500, 0x0510, 0x0360, 0x0520, 0x0530, 0x0540, 0x0320, 0x0260,
-    0x0550, 0x0510, 0x0360, 0x0560, 0x0570, 0x0580, 0x0320, 0x0590,
-    0x0550, 0x0510, 0x02e0, 0x05a0, 0x05b0, 0x05c0, 0x0320, 0x05d0,
-    0x05e0, 0x05f0, 0x02e0, 0x0600, 0x0610, 0x0620, 0x03f0, 0x0630,
-    0x0640, 0x02e0, 0x0650, 0x0660, 0x0670, 0x0280, 0x0260, 0x0260,
-    0x0680, 0x0690, 0x06a0, 0x06b0, 0x06c0, 0x06d0, 0x0260, 0x0260,
-    0x0260, 0x06e0, 0x06f0, 0x0700, 0x0710, 0x02e0, 0x0720, 0x0730,
-    0x0740, 0x0750, 0x0760, 0x0770, 0x0780, 0x0260, 0x0260, 0x0260,
-    0x02e0, 0x02e0, 0x0790, 0x07a0, 0x07b0, 0x07c0, 0x07d0, 0x07e0,
-    0x07f0, 0x0800, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0810, 0x0820, 0x0830, 0x0820, 0x0830, 0x0840, 0x0810, 0x0850,
-    0x02e0, 0x02e0, 0x0860, 0x0870, 0x0880, 0x0890, 0x0280, 0x0260,
-    0x08a0, 0x0650, 0x08b0, 0x08c0, 0x03f0, 0x02e0, 0x08d0, 0x08e0,
-    0x02e0, 0x02e0, 0x08f0, 0x0900, 0x0910, 0x0280, 0x0260, 0x0260,
-    0x02e0, 0x0920, 0x02e0, 0x02e0, 0x0930, 0x0940, 0x0950, 0x0960,
-    0x0280, 0x0280, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0970, 0x0830, 0x02e0, 0x0980, 0x0990, 0x0280, 0x09a0, 0x09b0,
-    0x09c0, 0x02e0, 0x09d0, 0x09e0, 0x02e0, 0x02e0, 0x09f0, 0x0a00,
-    0x02e0, 0x02e0, 0x0a10, 0x0a20, 0x0a30, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0a40, 0x0a50, 0x0a60,
-    0x0a70, 0x0a80, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0a90,
-    0x0aa0, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0ab0, 0x0260, 0x0260, 0x0260,
-    0x0ac0, 0x02e0, 0x0ad0, 0x0260, 0x02e0, 0x0ae0, 0x0af0, 0x0b00,
-    0x0b10, 0x0b20, 0x02e0, 0x0b30, 0x0b40, 0x0280, 0x0b50, 0x0b60,
-    0x0b70, 0x02e0, 0x0b80, 0x02e0, 0x0b90, 0x0ba0, 0x0260, 0x0260,
-    0x0bb0, 0x02e0, 0x02e0, 0x0bc0, 0x0bd0, 0x0280, 0x0be0, 0x0bf0,
-    0x0c00, 0x02e0, 0x0c10, 0x0c20, 0x0c30, 0x0280, 0x02e0, 0x0c40,
-    0x02e0, 0x02e0, 0x02e0, 0x0c50, 0x0c60, 0x0260, 0x0c70, 0x0c80,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260, 0x0260,
-    0x0260, 0x0260, 0x0260, 0x0260, 0x0c90, 0x0ca0, 0x0cb0, 0x0280,
+    0x0260, 0x0270, 0x0280, 0x0290, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x02a0, 0x02b0, 0x0270, 0x02c0, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x02d0, 0x02e0, 0x02f0, 0x0300, 0x0310, 0x0320, 0x0330, 0x0340,
+    0x0350, 0x0360, 0x0370, 0x0380, 0x0390, 0x03a0, 0x0330, 0x03b0,
+    0x03c0, 0x0360, 0x0370, 0x03d0, 0x03e0, 0x03f0, 0x0400, 0x0410,
+    0x0420, 0x0430, 0x0370, 0x0440, 0x0450, 0x0270, 0x0330, 0x0460,
+    0x0350, 0x0360, 0x0370, 0x0470, 0x0480, 0x0490, 0x0330, 0x04a0,
+    0x04b0, 0x04c0, 0x04d0, 0x04e0, 0x04f0, 0x0500, 0x0400, 0x0270,
+    0x0510, 0x0520, 0x0370, 0x0530, 0x0540, 0x0550, 0x0330, 0x0270,
+    0x0560, 0x0520, 0x0370, 0x0570, 0x0580, 0x0590, 0x0330, 0x05a0,
+    0x0560, 0x0520, 0x02f0, 0x05b0, 0x05c0, 0x05d0, 0x0330, 0x05e0,
+    0x05f0, 0x0600, 0x02f0, 0x0610, 0x0620, 0x0630, 0x0400, 0x0640,
+    0x0650, 0x02f0, 0x0660, 0x0670, 0x0680, 0x0290, 0x0270, 0x0270,
+    0x0690, 0x06a0, 0x06b0, 0x06c0, 0x06d0, 0x06e0, 0x0270, 0x0270,
+    0x0270, 0x06f0, 0x0700, 0x0710, 0x0720, 0x02f0, 0x0730, 0x0740,
+    0x0750, 0x0760, 0x0770, 0x0780, 0x0790, 0x0270, 0x0270, 0x0270,
+    0x02f0, 0x02f0, 0x07a0, 0x07b0, 0x07c0, 0x07d0, 0x07e0, 0x07f0,
+    0x0800, 0x0810, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0820, 0x0830, 0x0840, 0x0830, 0x0840, 0x0850, 0x0820, 0x0860,
+    0x02f0, 0x02f0, 0x0870, 0x0880, 0x0890, 0x08a0, 0x0290, 0x0270,
+    0x08b0, 0x0660, 0x08c0, 0x08d0, 0x0400, 0x02f0, 0x08e0, 0x08f0,
+    0x02f0, 0x02f0, 0x0900, 0x0910, 0x0920, 0x0290, 0x0270, 0x0270,
+    0x02f0, 0x0930, 0x02f0, 0x02f0, 0x0940, 0x0950, 0x0960, 0x0970,
+    0x0290, 0x0290, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0980, 0x0840, 0x02f0, 0x0990, 0x09a0, 0x0290, 0x09b0, 0x09c0,
+    0x09d0, 0x02f0, 0x09e0, 0x09f0, 0x02f0, 0x02f0, 0x0a00, 0x0a10,
+    0x02f0, 0x02f0, 0x0a20, 0x0a30, 0x0a40, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0a50, 0x0a60, 0x0a70,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0a80,
+    0x0a90, 0x0aa0, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0ab0,
+    0x0ac0, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0ad0, 0x0270, 0x0270, 0x0270,
+    0x0ae0, 0x02f0, 0x0af0, 0x0270, 0x02f0, 0x0b00, 0x0b10, 0x0b20,
+    0x0b30, 0x0b40, 0x02f0, 0x0b50, 0x0b60, 0x0290, 0x0b70, 0x0b80,
+    0x0b90, 0x02f0, 0x0ba0, 0x02f0, 0x0bb0, 0x0bc0, 0x0270, 0x0270,
+    0x0bd0, 0x02f0, 0x02f0, 0x0be0, 0x0bf0, 0x0290, 0x0c00, 0x0c10,
+    0x0c20, 0x02f0, 0x0c30, 0x0c40, 0x0c50, 0x0290, 0x02f0, 0x0c60,
+    0x02f0, 0x02f0, 0x02f0, 0x0c70, 0x0c80, 0x0270, 0x0c90, 0x0ca0,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270, 0x0270,
+    0x0270, 0x0270, 0x0270, 0x0270, 0x0cb0, 0x0cc0, 0x0cd0, 0x0290,
     /* values */
     0x5f00, 0x9c00, 0x9500, 0x9500, 0x8600, 0x8600, 0x8600, 0x8600,
     0x7e00, 0x6e00, 0x5d00, 0x5100, 0x4200, 0x2d00, 0x1700, 0x0a00,
@@ -192,7 +194,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0003, 0x0107, 0x0107,
     0x0107, 0x0107, 0x0107, 0x0607, 0x0607, 0x0000, 0x0207, 0x0207,
     0x0207, 0x0000, 0x0407, 0x0407, 0x0407, 0x0505, 0x0015, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0107,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x000b, 0x000b, 0x000b, 0x0107,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b, 0x000b,
@@ -283,7 +285,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x0007, 0x0207, 0x0207, 0x0207, 0x0407, 0x0407, 0x0501, 0x0102,
     0x0107, 0x0514, 0x0514, 0x0521, 0x050c, 0x0522, 0x0521, 0x0521,
     0x0521, 0x0516, 0x0017, 0x0521, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x0500, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x0521, 0x0000, 0x0000,
     0x0009, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
     0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
     0x0507, 0x0507, 0x0607, 0x0107, 0x0107, 0x0807, 0x0807, 0x0507,
@@ -343,6 +345,8 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x0000, 0x0000, 0x0002, 0x0002, 0x0519, 0x0000, 0x0000, 0x0000,
     0x0019, 0x0019, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0521, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x001a, 0x001b, 0x0000, 0x0000,
     0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -368,7 +372,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a,
     0x000a, 0x000a, 0x000a, 0x000a, 0x010f, 0x0107, 0x0107, 0x0107,
     0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0107,
-    0x0107, 0x0107, 0x0107, 0x0107, 0x0605, 0x0000, 0x0000, 0x0000,
+    0x0107, 0x0107, 0x0107, 0x0107, 0x0605, 0x0501, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519,
     0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519, 0x0519,
@@ -400,7 +404,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ indic_syllabic_table[3264] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x000f, 0x000f, 0x000f, 0x050f, 0x000f, 0x000f, 0x000f, 0x000f,
     0x000f, 0x000f, 0x000f, 0x000f, 0x050f, 0x010f, 0x0000, 0x0000,
-    0x0000, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x000a, 0x000a, 0x000a, 0x0009, 0x0009, 0x0009, 0x0000,
     0x0000, 0x0000, 0x000a, 0x0113, 0x0513, 0x0113, 0x000a, 0x000a,
     0x0507, 0x0107, 0x0507, 0x0507, 0x0607, 0x0307, 0x0307, 0x0507,
     0x0507, 0x0007, 0x0107, 0x0307, 0x0307, 0x0107, 0x0507, 0x0513,
index f012341..a5f4fab 100644 (file)
@@ -1,8 +1,8 @@
 /* Unicode Line Break Properties */
-/* generated from http://www.unicode.org/Public/8.0.0/ucd/LineBreak.txt */
+/* generated from http://www.unicode.org/Public/9.0.0/ucd/LineBreak.txt */
 /* DO NOT EDIT!! */
 
-const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
+const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7264] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170,
@@ -55,131 +55,131 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x07c0, 0x07d0, 0x05b0, 0x0580, 0x07e0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x07f0, 0x0800, 0x07b0, 0x05b0, 0x0760, 0x0810,
     0x05b0, 0x0820, 0x0830, 0x0840, 0x05b0, 0x0850, 0x0860, 0x0860,
-    0x0860, 0x0860, 0x05b0, 0x0870, 0x0860, 0x0860, 0x0880, 0x0580,
-    0x0890, 0x05b0, 0x05b0, 0x08a0, 0x0580, 0x08b0, 0x08c0, 0x05b0,
-    0x08d0, 0x08e0, 0x08f0, 0x0900, 0x0910, 0x0920, 0x0930, 0x0940,
-    0x0950, 0x08e0, 0x08f0, 0x0960, 0x0970, 0x0980, 0x0990, 0x09a0,
-    0x09b0, 0x0690, 0x08f0, 0x09c0, 0x09d0, 0x09e0, 0x0930, 0x09f0,
-    0x0a00, 0x08e0, 0x08f0, 0x09c0, 0x0a10, 0x0a20, 0x0930, 0x0a30,
-    0x0a40, 0x0a50, 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0990, 0x0aa0,
-    0x0ab0, 0x0ac0, 0x08f0, 0x0ad0, 0x0ae0, 0x0af0, 0x0930, 0x0b00,
-    0x0b10, 0x0ac0, 0x08f0, 0x0b20, 0x0ae0, 0x0b30, 0x0930, 0x0b40,
-    0x0b10, 0x0ac0, 0x05b0, 0x0b50, 0x0b60, 0x0b70, 0x0930, 0x0b80,
-    0x0b90, 0x0ba0, 0x05b0, 0x0bb0, 0x0bc0, 0x0bd0, 0x0990, 0x0be0,
-    0x0bf0, 0x0c00, 0x0c00, 0x0c10, 0x0c20, 0x0c30, 0x0860, 0x0860,
-    0x0c40, 0x0c50, 0x0c60, 0x0c70, 0x0c80, 0x0c90, 0x0860, 0x0860,
-    0x0ca0, 0x0cb0, 0x07b0, 0x0cc0, 0x0cd0, 0x05b0, 0x0ce0, 0x0cf0,
-    0x0d00, 0x0d10, 0x0580, 0x0d20, 0x0d30, 0x0d40, 0x0860, 0x0860,
-    0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0d50, 0x0c00, 0x0c00, 0x0c00,
-    0x0c00, 0x0d60, 0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0,
-    0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d80, 0x0d90, 0x0d90,
-    0x0d90, 0x0d90, 0x0da0, 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0db0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0dc0, 0x0dd0, 0x05b0, 0x05b0,
-    0x0dc0, 0x05b0, 0x05b0, 0x0de0, 0x0df0, 0x0e00, 0x05b0, 0x05b0,
-    0x05b0, 0x0df0, 0x05b0, 0x05b0, 0x05b0, 0x0e10, 0x0e20, 0x0ce0,
-    0x05b0, 0x0e30, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e40,
-    0x0e50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x0860, 0x0860, 0x05b0, 0x0870, 0x0860, 0x0880, 0x0890, 0x0580,
+    0x08a0, 0x05b0, 0x05b0, 0x08b0, 0x0580, 0x08c0, 0x08d0, 0x05b0,
+    0x08e0, 0x08f0, 0x0900, 0x0910, 0x0920, 0x0930, 0x0940, 0x0950,
+    0x0960, 0x08f0, 0x0900, 0x0970, 0x0980, 0x0990, 0x09a0, 0x09b0,
+    0x09c0, 0x0690, 0x0900, 0x09d0, 0x09e0, 0x09f0, 0x0940, 0x0a00,
+    0x0a10, 0x08f0, 0x0900, 0x09d0, 0x0a20, 0x0a30, 0x0940, 0x0a40,
+    0x0a50, 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0aa0, 0x09a0, 0x0ab0,
+    0x0ac0, 0x0ad0, 0x0900, 0x0ae0, 0x0af0, 0x0b00, 0x0940, 0x0b10,
+    0x0b20, 0x0ad0, 0x0900, 0x0b30, 0x0af0, 0x0b40, 0x0940, 0x0b50,
+    0x0b60, 0x0ad0, 0x05b0, 0x0b70, 0x0b80, 0x0b90, 0x0940, 0x0ba0,
+    0x0bb0, 0x0bc0, 0x05b0, 0x0bd0, 0x0be0, 0x0bf0, 0x09a0, 0x0c00,
+    0x0c10, 0x0c20, 0x0c20, 0x0c30, 0x0c40, 0x0c50, 0x0860, 0x0860,
+    0x0c60, 0x0c70, 0x0c80, 0x0c90, 0x0ca0, 0x0cb0, 0x0860, 0x0860,
+    0x0cc0, 0x0cd0, 0x07b0, 0x0ce0, 0x0cf0, 0x05b0, 0x0d00, 0x0d10,
+    0x0d20, 0x0d30, 0x0580, 0x0d40, 0x0d50, 0x0d60, 0x0860, 0x0860,
+    0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0d70, 0x0c20, 0x0c20, 0x0c20,
+    0x0c20, 0x0d80, 0x05b0, 0x05b0, 0x0d90, 0x05b0, 0x05b0, 0x05b0,
+    0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0db0, 0x0db0,
+    0x0db0, 0x0db0, 0x0dc0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0, 0x0dd0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0de0, 0x0df0, 0x05b0, 0x05b0,
+    0x0de0, 0x05b0, 0x05b0, 0x0e00, 0x0e10, 0x0e20, 0x05b0, 0x05b0,
+    0x05b0, 0x0e10, 0x05b0, 0x05b0, 0x05b0, 0x0e30, 0x0e40, 0x0d00,
+    0x05b0, 0x0e50, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e60,
+    0x0e70, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x0e50, 0x0e60, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e70, 0x0e80,
-    0x0e90, 0x0ea0, 0x05b0, 0x0eb0, 0x05b0, 0x0ec0, 0x0e90, 0x0ed0,
-    0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x0ee0, 0x0ef0, 0x0e30,
-    0x0f00, 0x0ef0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0a30,
-    0x05b0, 0x05b0, 0x0f10, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f20,
-    0x05b0, 0x0840, 0x0f30, 0x0f30, 0x0f40, 0x0c00, 0x0f50, 0x0f60,
-    0x0c00, 0x0c00, 0x0f70, 0x0c00, 0x0f80, 0x0f90, 0x05b0, 0x05b0,
-    0x05b0, 0x0fa0, 0x0c00, 0x0c00, 0x0c00, 0x0fb0, 0x0c00, 0x0fc0,
-    0x0ef0, 0x0ef0, 0x0f50, 0x0fd0, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x0fe0, 0x05b0, 0x05b0, 0x0ff0, 0x1000, 0x1010, 0x1020, 0x1030,
-    0x1040, 0x05b0, 0x1050, 0x07b0, 0x05b0, 0x05b0, 0x07f0, 0x1060,
-    0x05b0, 0x05b0, 0x0ff0, 0x1070, 0x1080, 0x07b0, 0x05b0, 0x1090,
-    0x0860, 0x0860, 0x0860, 0x0860, 0x0a30, 0x10a0, 0x10b0, 0x10c0,
+    0x0e70, 0x0e80, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0e90, 0x0ea0,
+    0x0eb0, 0x0ec0, 0x05b0, 0x0ed0, 0x05b0, 0x0ee0, 0x0eb0, 0x0ef0,
+    0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x0f00, 0x0f10, 0x0e50,
+    0x0f20, 0x0f10, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0a40,
+    0x0f30, 0x05b0, 0x0f40, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0f50,
+    0x05b0, 0x0840, 0x0f60, 0x0f60, 0x0f70, 0x0c20, 0x0f80, 0x0f90,
+    0x0c20, 0x0c20, 0x0fa0, 0x0c20, 0x0fb0, 0x0fc0, 0x05b0, 0x05b0,
+    0x05b0, 0x0fd0, 0x0c20, 0x0c20, 0x0c20, 0x0fe0, 0x0c20, 0x0ff0,
+    0x0f10, 0x0f10, 0x0f80, 0x1000, 0x0860, 0x0860, 0x0860, 0x0860,
+    0x1010, 0x05b0, 0x05b0, 0x1020, 0x1030, 0x1040, 0x1050, 0x1060,
+    0x1070, 0x05b0, 0x1080, 0x07b0, 0x05b0, 0x05b0, 0x07f0, 0x1090,
+    0x05b0, 0x05b0, 0x1020, 0x10a0, 0x10b0, 0x07b0, 0x05b0, 0x10c0,
+    0x0ea0, 0x0860, 0x0860, 0x0860, 0x0a40, 0x10d0, 0x10e0, 0x10f0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x0580, 0x10d0,
-    0x05b0, 0x0e40, 0x05b0, 0x05b0, 0x0e40, 0x10e0, 0x05b0, 0x10f0,
-    0x05b0, 0x05b0, 0x05b0, 0x1100, 0x1100, 0x1110, 0x05b0, 0x1120,
-    0x1130, 0x1140, 0x1150, 0x1160, 0x1170, 0x1180, 0x1190, 0x11a0,
-    0x11b0, 0x0ce0, 0x11c0, 0x11d0, 0x11e0, 0x0580, 0x0580, 0x11f0,
-    0x1200, 0x1210, 0x1220, 0x05b0, 0x05b0, 0x1230, 0x1240, 0x1250,
-    0x1260, 0x1250, 0x05b0, 0x05b0, 0x05b0, 0x1270, 0x05b0, 0x05b0,
-    0x1280, 0x1290, 0x12a0, 0x12b0, 0x12c0, 0x12d0, 0x12e0, 0x05b0,
-    0x12f0, 0x1300, 0x1310, 0x1320, 0x05b0, 0x05b0, 0x1330, 0x05b0,
-    0x1340, 0x1350, 0x1360, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1370,
-    0x05b0, 0x05b0, 0x1380, 0x0860, 0x1390, 0x0860, 0x13a0, 0x13a0,
-    0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x13b0,
-    0x13a0, 0x13a0, 0x13a0, 0x13a0, 0x1240, 0x13a0, 0x13a0, 0x13c0,
-    0x13a0, 0x13d0, 0x13e0, 0x13f0, 0x1400, 0x1410, 0x1420, 0x05b0,
-    0x1430, 0x1440, 0x05b0, 0x1450, 0x1460, 0x05b0, 0x1470, 0x1480,
-    0x05b0, 0x1490, 0x05b0, 0x14a0, 0x14b0, 0x14c0, 0x14d0, 0x14e0,
-    0x14f0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1500, 0x1510, 0x1520,
-    0x13a0, 0x1530, 0x05b0, 0x05b0, 0x1540, 0x05b0, 0x1550, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x0580, 0x0580, 0x0580, 0x1100,
+    0x05b0, 0x0e60, 0x05b0, 0x05b0, 0x0e60, 0x1110, 0x05b0, 0x1120,
+    0x05b0, 0x05b0, 0x05b0, 0x1130, 0x1130, 0x1140, 0x05b0, 0x1150,
+    0x1160, 0x1170, 0x1180, 0x1190, 0x11a0, 0x11b0, 0x11c0, 0x11d0,
+    0x11e0, 0x0d00, 0x11f0, 0x1200, 0x1210, 0x0580, 0x0580, 0x1220,
+    0x1230, 0x1240, 0x1250, 0x05b0, 0x05b0, 0x1260, 0x1270, 0x1280,
+    0x1290, 0x1280, 0x05b0, 0x05b0, 0x05b0, 0x12a0, 0x05b0, 0x05b0,
+    0x12b0, 0x12c0, 0x12d0, 0x12e0, 0x12f0, 0x1300, 0x1310, 0x05b0,
+    0x1320, 0x1330, 0x1340, 0x1350, 0x05b0, 0x05b0, 0x1360, 0x05b0,
+    0x1370, 0x1380, 0x1390, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x13a0,
+    0x05b0, 0x05b0, 0x13b0, 0x0860, 0x13c0, 0x0860, 0x13d0, 0x13d0,
+    0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13e0,
+    0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x1270, 0x13d0, 0x13d0, 0x13f0,
+    0x13d0, 0x1400, 0x1410, 0x1420, 0x1430, 0x1440, 0x1450, 0x05b0,
+    0x1460, 0x1470, 0x05b0, 0x1480, 0x1490, 0x05b0, 0x14a0, 0x14b0,
+    0x05b0, 0x14c0, 0x05b0, 0x14d0, 0x14e0, 0x14f0, 0x1500, 0x1510,
+    0x1520, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1530, 0x1540, 0x1550,
+    0x13d0, 0x1560, 0x05b0, 0x05b0, 0x1570, 0x05b0, 0x1580, 0x05b0,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x1560, 0x1570, 0x05b0, 0x05b0, 0x05b0, 0x1340, 0x05b0, 0x1580,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1590, 0x05b0, 0x15a0,
-    0x05b0, 0x15b0, 0x05b0, 0x15c0, 0x08f0, 0x15d0, 0x15e0, 0x0860,
+    0x1590, 0x15a0, 0x05b0, 0x05b0, 0x05b0, 0x1370, 0x05b0, 0x15b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15c0, 0x05b0, 0x15d0,
+    0x05b0, 0x15e0, 0x05b0, 0x15f0, 0x0900, 0x1600, 0x1610, 0x0860,
     0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0, 0x0840, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15f0, 0x1600,
-    0x05b0, 0x05b0, 0x0d70, 0x05b0, 0x05b0, 0x05b0, 0x1610, 0x1620,
-    0x05b0, 0x1380, 0x1630, 0x1630, 0x1630, 0x1630, 0x0580, 0x0580,
-    0x1640, 0x1650, 0x1660, 0x1670, 0x1680, 0x0860, 0x0860, 0x0860,
-    0x1690, 0x16a0, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x16b0,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x16c0, 0x0860, 0x16d0,
-    0x16e0, 0x16f0, 0x1700, 0x1710, 0x1720, 0x1690, 0x1730, 0x1690,
-    0x1740, 0x1750, 0x1760, 0x1690, 0x1730, 0x1690, 0x1740, 0x1770,
-    0x1780, 0x1690, 0x1790, 0x17a0, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x17b0, 0x1690, 0x1690, 0x17c0, 0x1690, 0x1690, 0x16b0, 0x17d0,
-    0x1690, 0x17b0, 0x1690, 0x1690, 0x17e0, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x17b0,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x1690, 0x17f0, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690, 0x1690,
-    0x1800, 0x1690, 0x1690, 0x1690, 0x1810, 0x05b0, 0x05b0, 0x1090,
-    0x1820, 0x05b0, 0x1830, 0x0860, 0x05b0, 0x05b0, 0x15f0, 0x1840,
-    0x05b0, 0x1850, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1860,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1620, 0x1630,
+    0x05b0, 0x05b0, 0x0d90, 0x05b0, 0x05b0, 0x05b0, 0x1640, 0x1650,
+    0x05b0, 0x13b0, 0x1660, 0x1660, 0x1660, 0x1660, 0x0580, 0x0580,
+    0x1670, 0x1680, 0x1690, 0x16a0, 0x16b0, 0x0860, 0x0860, 0x0860,
+    0x16c0, 0x16d0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16e0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16f0, 0x0860, 0x1700,
+    0x1710, 0x1720, 0x1730, 0x1740, 0x1750, 0x16c0, 0x1760, 0x16c0,
+    0x1770, 0x1780, 0x1790, 0x16c0, 0x1760, 0x16c0, 0x1770, 0x17a0,
+    0x17b0, 0x16c0, 0x17c0, 0x17d0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x17e0, 0x16c0, 0x16c0, 0x17f0, 0x16c0, 0x16c0, 0x16e0, 0x1800,
+    0x16c0, 0x17e0, 0x16c0, 0x16c0, 0x1810, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x17e0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
+    0x16c0, 0x1820, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0, 0x16c0,
+    0x1830, 0x16c0, 0x16c0, 0x16c0, 0x1840, 0x05b0, 0x05b0, 0x10c0,
+    0x1850, 0x05b0, 0x1860, 0x0860, 0x05b0, 0x05b0, 0x1620, 0x1870,
+    0x05b0, 0x1880, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1890,
     0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x10f0, 0x0a30, 0x0860, 0x0860, 0x0860, 0x1870,
-    0x1880, 0x05b0, 0x1890, 0x18a0, 0x05b0, 0x05b0, 0x05b0, 0x18b0,
-    0x18c0, 0x05b0, 0x05b0, 0x0ff0, 0x18d0, 0x0ef0, 0x0580, 0x18e0,
-    0x07b0, 0x05b0, 0x18f0, 0x05b0, 0x1900, 0x1910, 0x0d80, 0x1920,
-    0x0890, 0x05b0, 0x05b0, 0x1930, 0x1940, 0x1950, 0x0c00, 0x1960,
-    0x05b0, 0x05b0, 0x1970, 0x1980, 0x1990, 0x19a0, 0x0c00, 0x0c00,
-    0x0c00, 0x0c00, 0x0c00, 0x0c00, 0x19b0, 0x19c0, 0x0760, 0x19d0,
-    0x19e0, 0x19f0, 0x1630, 0x05b0, 0x05b0, 0x05b0, 0x0f20, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1a00, 0x0ef0,
-    0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10,
-    0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40,
-    0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30,
-    0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50,
-    0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30,
-    0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10,
-    0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40,
-    0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30,
-    0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50,
-    0x1a30, 0x1a10, 0x1a20, 0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30,
-    0x1a30, 0x1a40, 0x1a30, 0x1a50, 0x1a30, 0x1a10, 0x1a20, 0x1a30,
-    0x1a40, 0x1a30, 0x1a60, 0x0d90, 0x1a70, 0x0db0, 0x0db0, 0x1a80,
-    0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90,
-    0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90, 0x1a90,
+    0x05b0, 0x05b0, 0x0840, 0x0a40, 0x0860, 0x0860, 0x0860, 0x18a0,
+    0x18b0, 0x05b0, 0x18c0, 0x18d0, 0x05b0, 0x05b0, 0x05b0, 0x18e0,
+    0x18f0, 0x05b0, 0x05b0, 0x1020, 0x1900, 0x0f10, 0x0580, 0x1910,
+    0x07b0, 0x05b0, 0x1920, 0x05b0, 0x1930, 0x1940, 0x0da0, 0x1950,
+    0x08a0, 0x05b0, 0x05b0, 0x1960, 0x1970, 0x1980, 0x0c20, 0x1990,
+    0x05b0, 0x05b0, 0x19a0, 0x19b0, 0x19c0, 0x19d0, 0x0c20, 0x0c20,
+    0x0c20, 0x0c20, 0x0c20, 0x0c20, 0x19e0, 0x19f0, 0x0760, 0x1a00,
+    0x1a10, 0x1a20, 0x1660, 0x05b0, 0x05b0, 0x05b0, 0x0f50, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1a30, 0x0f10,
+    0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40,
+    0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50,
+    0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60,
+    0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70,
+    0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60,
+    0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80,
+    0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60,
+    0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40,
+    0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50,
+    0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60,
+    0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70,
+    0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60,
+    0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80,
+    0x1a60, 0x1a40, 0x1a50, 0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60,
+    0x1a60, 0x1a70, 0x1a60, 0x1a80, 0x1a60, 0x1a40, 0x1a50, 0x1a60,
+    0x1a70, 0x1a60, 0x1a90, 0x0db0, 0x1aa0, 0x0dd0, 0x0dd0, 0x1ab0,
+    0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0,
+    0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0, 0x1ac0,
     0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
     0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860, 0x0860,
-    0x1380, 0x1aa0, 0x1ab0, 0x1ac0, 0x1ad0, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x15d0, 0x1ae0, 0x05b0, 0x05b0,
-    0x05b0, 0x05b0, 0x05b0, 0x1af0, 0x0860, 0x05b0, 0x05b0, 0x05b0,
-    0x05b0, 0x1b00, 0x05b0, 0x05b0, 0x0a30, 0x0860, 0x0860, 0x1b10,
-    0x0580, 0x1b20, 0x0580, 0x1b30, 0x1b40, 0x1b50, 0x1b60, 0x1100,
-    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1b70,
-    0x1b80, 0x1b90, 0x1690, 0x1ba0, 0x1690, 0x1bb0, 0x1bc0, 0x1bd0,
-    0x05b0, 0x1be0, 0x05b0, 0x0840, 0x1bf0, 0x1c00, 0x1c10, 0x1c20,
+    0x13b0, 0x1ad0, 0x1ae0, 0x1af0, 0x1b00, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1600, 0x1b10, 0x05b0, 0x05b0,
+    0x05b0, 0x05b0, 0x05b0, 0x1b20, 0x0860, 0x05b0, 0x05b0, 0x05b0,
+    0x05b0, 0x1b30, 0x05b0, 0x05b0, 0x0a40, 0x0860, 0x0860, 0x1b40,
+    0x0580, 0x1b50, 0x0580, 0x1b60, 0x1b70, 0x1b80, 0x1b90, 0x1130,
+    0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x05b0, 0x1ba0,
+    0x1bb0, 0x1bc0, 0x16c0, 0x1bd0, 0x16c0, 0x1be0, 0x1bf0, 0x1c00,
+    0x16c0, 0x1c10, 0x16c0, 0x17e0, 0x1c20, 0x1c30, 0x1c40, 0x1c50,
     /* values */
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0022, 0x0003, 0x0001, 0x0001, 0x0002, 0x0004, 0x0004,
@@ -277,9 +277,11 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0004, 0x0004, 0x001d, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -361,7 +363,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0011, 0x0011, 0x0004, 0x001d, 0x0004, 0x0004,
@@ -369,14 +371,16 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x0011,
     0x0011, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0011, 0x0004, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x001d, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0004, 0x0004,
-    0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0004,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
-    0x0011, 0x001b, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0004, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d,
+    0x0011, 0x0011, 0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0004,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x001d, 0x001b, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0011, 0x0011, 0x0004, 0x0004, 0x0011, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
@@ -489,6 +493,8 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001c, 0x001c, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x0017, 0x0017, 0x0022, 0x0022, 0x0021, 0x001d,
     0x0017, 0x0017, 0x001d, 0x0004, 0x0004, 0x0004, 0x0006, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0004, 0x0004, 0x001d,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0004, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011,
@@ -546,7 +552,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001d, 0x001d, 0x0004, 0x0004, 0x0004, 0x001d, 0x001d, 0x0011,
     0x0004, 0x0004, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011,
-    0x0011, 0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0011, 0x0011, 0x0011, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0011, 0x001d, 0x0011, 0x001d, 0x0011, 0x001d, 0x0011, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -558,7 +564,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0011, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0021, 0x001d, 0x0011,
     0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0022, 0x0006,
-    0x0022, 0x0022, 0x0022, 0x0009, 0x0004, 0x0004, 0x0004, 0x0004,
+    0x0022, 0x0022, 0x0022, 0x0009, 0x0004, 0x002b, 0x0004, 0x0004,
     0x0022, 0x0006, 0x0022, 0x0022, 0x0025, 0x0024, 0x0024, 0x001d,
     0x0015, 0x0015, 0x0012, 0x0015, 0x0015, 0x0015, 0x0012, 0x0015,
     0x0024, 0x0024, 0x001d, 0x001d, 0x001f, 0x001f, 0x001f, 0x0022,
@@ -630,7 +636,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x0012, 0x0013, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -656,7 +662,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x0024, 0x0024, 0x001d,
     0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024, 0x0024,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001e, 0x001e, 0x0024, 0x0024,
-    0x001e, 0x001d, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001d, 0x001e, 0x001e, 0x001e, 0x0029, 0x001e, 0x001e,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0024, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
@@ -676,12 +682,12 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001e, 0x001e, 0x001d, 0x0024, 0x001d, 0x001d, 0x001d, 0x001d,
     0x0024, 0x0024, 0x001e, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
     0x0024, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0024, 0x001e,
-    0x001e, 0x001e, 0x001e, 0x0024, 0x0024, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x0029, 0x001e, 0x0024, 0x0024, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d, 0x001d,
-    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001d, 0x001d,
+    0x001e, 0x001e, 0x0029, 0x0029, 0x0029, 0x0029, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0024,
     0x001d, 0x001d, 0x001d, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015,
-    0x0015, 0x001d, 0x0017, 0x0017, 0x001d, 0x001d, 0x001d, 0x001d,
+    0x0015, 0x001d, 0x0017, 0x0017, 0x001e, 0x001d, 0x001d, 0x001d,
     0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013,
     0x0012, 0x0013, 0x0012, 0x0013, 0x0012, 0x0013, 0x0024, 0x0024,
     0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024,
@@ -727,7 +733,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x0012, 0x0013, 0x0022, 0x0022, 0x0022, 0x0022, 0x0017, 0x001d,
     0x0022, 0x0022, 0x001d, 0x0022, 0x0022, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x0025, 0x0025, 0x0022, 0x0022, 0x0022, 0x001d,
-    0x0022, 0x0022, 0x0012, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
+    0x0022, 0x0022, 0x0012, 0x0022, 0x0022, 0x0011, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
@@ -801,7 +807,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
     0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011, 0x0011,
+    0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0011, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0022, 0x0022,
     0x0004, 0x0004, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
     0x001d, 0x001d, 0x001d, 0x001d, 0x0021, 0x001d, 0x0011, 0x0011,
@@ -895,16 +901,16 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_linebreak_table[7216] =
     0x001e, 0x001e, 0x001e, 0x0012, 0x001e, 0x0013, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
     0x001e, 0x001e, 0x001e, 0x0012, 0x001e, 0x0013, 0x001e, 0x0012,
-    0x0013, 0x0013, 0x0012, 0x0013, 0x0013, 0x0016, 0x001d, 0x0027,
+    0x0013, 0x0013, 0x0012, 0x0013, 0x0013, 0x0016, 0x001e, 0x0027,
     0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027,
-    0x0027, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0016, 0x0016,
-    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d,
-    0x0011, 0x0011, 0x001d, 0x001d, 0x001d, 0x0011, 0x0011, 0x0011,
+    0x0027, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0016, 0x0016,
+    0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e,
+    0x0011, 0x0011, 0x001e, 0x001e, 0x001e, 0x0011, 0x0011, 0x0011,
     0x001b, 0x001a, 0x001e, 0x001e, 0x001e, 0x001a, 0x001a, 0x0011,
     0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x001d, 0x0011,
     0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011, 0x0011,
index 0c6be00..1c48df3 100644 (file)
@@ -1,5 +1,5 @@
 /* Unicode BiDi mirroring */
-/* generated from http://www.unicode.org/Public/8.0.0/ucd/BidiMirroring.txt */
+/* generated from http://www.unicode.org/Public/9.0.0/ucd/BidiMirroring.txt */
 /* DO NOT EDIT!! */
 
 #include <windef.h>
index ac3e818..83f0ffc 100644 (file)
@@ -1290,14 +1290,14 @@ static void apply_pair_value( const void *pos_table, WORD val_fmt1, WORD val_fmt
     if (val_fmt1)
     {
         GPOS_get_value_record_offsets( pos_table, &val_rec1, val_fmt1, ppem, adjust, advance );
-        TRACE( "Glyph 1 resulting cumulative offset is %i,%i design units\n", adjust[0].x, adjust[0].y );
-        TRACE( "Glyph 1 resulting cumulative advance is %i,%i design units\n", advance[0].x, advance[0].y );
+        TRACE( "Glyph 1 resulting cumulative offset is %s design units\n", wine_dbgstr_point(&adjust[0]) );
+        TRACE( "Glyph 1 resulting cumulative advance is %s design units\n", wine_dbgstr_point(&advance[0]) );
     }
     if (val_fmt2)
     {
         GPOS_get_value_record_offsets( pos_table, &val_rec2, val_fmt2, ppem, adjust + 1, advance + 1 );
-        TRACE( "Glyph 2 resulting cumulative offset is %i,%i design units\n", adjust[1].x, adjust[1].y );
-        TRACE( "Glyph 2 resulting cumulative advance is %i,%i design units\n", advance[1].x, advance[1].y );
+        TRACE( "Glyph 2 resulting cumulative offset is %s design units\n", wine_dbgstr_point(&adjust[1]) );
+        TRACE( "Glyph 2 resulting cumulative advance is %s design units\n", wine_dbgstr_point(&advance[1]) );
     }
 }
 
@@ -1414,7 +1414,7 @@ static VOID GPOS_apply_CursiveAttachment(const OT_LookupTable *look, const SCRIP
                     GPOS_get_anchor_values((const BYTE*)cpf1 + offset, &exit_pt, ppem);
                     offset = GET_BE_WORD(cpf1->EntryExitRecord[index_entry].EntryAnchor);
                     GPOS_get_anchor_values((const BYTE*)cpf1 + offset, &entry_pt, ppem);
-                    TRACE("Found linkage %x[%i,%i] %x[%i,%i]\n",glyphs[glyph_index], exit_pt.x,exit_pt.y, glyphs[glyph_index+write_dir], entry_pt.x, entry_pt.y);
+                    TRACE("Found linkage %x[%s] %x[%s]\n",glyphs[glyph_index], wine_dbgstr_point(&exit_pt), glyphs[glyph_index+write_dir], wine_dbgstr_point(&entry_pt));
                     pt->x = entry_pt.x - exit_pt.x;
                     pt->y = entry_pt.y - exit_pt.y;
                     return;
@@ -1495,11 +1495,11 @@ static int GPOS_apply_MarkToBase(ScriptCache *psc, const OT_LookupTable *look, c
                     GPOS_get_anchor_values((const BYTE*)ba + offset, &base_pt, ppem);
                     offset = GET_BE_WORD(mr->MarkAnchor);
                     GPOS_get_anchor_values((const BYTE*)ma + offset, &mark_pt, ppem);
-                    TRACE("Offset on base is %i,%i design units\n",base_pt.x,base_pt.y);
-                    TRACE("Offset on mark is %i,%i design units\n",mark_pt.x, mark_pt.y);
+                    TRACE("Offset on base is %s design units\n",wine_dbgstr_point(&base_pt));
+                    TRACE("Offset on mark is %s design units\n",wine_dbgstr_point(&mark_pt));
                     pt->x += base_pt.x - mark_pt.x;
                     pt->y += base_pt.y - mark_pt.y;
-                    TRACE("Resulting cumulative offset is %i,%i design units\n",pt->x,pt->y);
+                    TRACE("Resulting cumulative offset is %s design units\n",wine_dbgstr_point(pt));
                     rc = base_glyph;
                 }
             }
@@ -1587,11 +1587,11 @@ static VOID GPOS_apply_MarkToLigature(const OT_LookupTable *look, const SCRIPT_A
                     GPOS_get_anchor_values((const BYTE*)lt + offset, &ligature_pt, ppem);
                     offset = GET_BE_WORD(mr->MarkAnchor);
                     GPOS_get_anchor_values((const BYTE*)ma + offset, &mark_pt, ppem);
-                    TRACE("Offset on ligature is %i,%i design units\n",ligature_pt.x,ligature_pt.y);
-                    TRACE("Offset on mark is %i,%i design units\n",mark_pt.x, mark_pt.y);
+                    TRACE("Offset on ligature is %s design units\n",wine_dbgstr_point(&ligature_pt));
+                    TRACE("Offset on mark is %s design units\n",wine_dbgstr_point(&mark_pt));
                     pt->x += ligature_pt.x - mark_pt.x;
                     pt->y += ligature_pt.y - mark_pt.y;
-                    TRACE("Resulting cumulative offset is %i,%i design units\n",pt->x,pt->y);
+                    TRACE("Resulting cumulative offset is %s design units\n",wine_dbgstr_point(pt));
                 }
             }
         }
@@ -1652,11 +1652,11 @@ static BOOL GPOS_apply_MarkToMark(const OT_LookupTable *look, const SCRIPT_ANALY
                     GPOS_get_anchor_values((const BYTE*)m2a + offset, &mark2_pt, ppem);
                     offset = GET_BE_WORD(mr->MarkAnchor);
                     GPOS_get_anchor_values((const BYTE*)ma + offset, &mark_pt, ppem);
-                    TRACE("Offset on mark2 is %i,%i design units\n",mark2_pt.x,mark2_pt.y);
-                    TRACE("Offset on mark is %i,%i design units\n",mark_pt.x, mark_pt.y);
+                    TRACE("Offset on mark2 is %s design units\n",wine_dbgstr_point(&mark2_pt));
+                    TRACE("Offset on mark is %s design units\n",wine_dbgstr_point(&mark_pt));
                     pt->x += mark2_pt.x - mark_pt.x;
                     pt->y += mark2_pt.y - mark_pt.y;
-                    TRACE("Resulting cumulative offset is %i,%i design units\n",pt->x,pt->y);
+                    TRACE("Resulting cumulative offset is %s design units\n",wine_dbgstr_point(pt));
                     rc = TRUE;
                 }
             }
index 8b8195a..ab4d583 100644 (file)
@@ -1584,7 +1584,7 @@ static void ReplaceInsertChars(HDC hdc, INT cWalk, INT* pcChars, WCHAR *pwOutCha
     cWalk=cWalk+1;
 
     /* Insert */
-    for (i = 1; replacements[i] != 0x0000 && i < 3; i++)
+    for (i = 1; i < 3 && replacements[i] != 0x0000; i++)
     {
         int j;
         for (j = *pcChars; j > cWalk; j--)
index 541b180..a310d67 100644 (file)
@@ -1,8 +1,8 @@
 /* Unicode Arabic shaping */
-/* generated from http://www.unicode.org/Public/8.0.0/ucd/ArabicShaping.txt */
+/* generated from http://www.unicode.org/Public/9.0.0/ucd/ArabicShaping.txt */
 /* DO NOT EDIT!! */
 
-const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
+const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2864] =
 {
     /* level 1 offsets */
     0x0100, 0x0110, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160,
@@ -53,63 +53,63 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
     0x0490, 0x04a0, 0x04b0, 0x0360, 0x04c0, 0x04d0, 0x04e0, 0x04f0,
     0x0340, 0x0340, 0x0500, 0x0510, 0x0520, 0x0530, 0x0540, 0x0550,
     0x0340, 0x0560, 0x0570, 0x0340, 0x0580, 0x0590, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x05a0, 0x05b0, 0x0340, 0x0340, 0x05c0, 0x0360,
-    0x05d0, 0x0340, 0x0340, 0x05e0, 0x05f0, 0x0600, 0x0610, 0x0340,
-    0x0620, 0x0340, 0x0340, 0x0630, 0x0640, 0x0340, 0x0610, 0x0340,
-    0x0650, 0x0340, 0x0340, 0x0630, 0x0660, 0x0620, 0x0340, 0x0670,
-    0x0650, 0x0340, 0x0340, 0x0630, 0x0680, 0x0340, 0x0610, 0x0340,
-    0x0620, 0x0340, 0x0340, 0x0690, 0x0640, 0x06a0, 0x0610, 0x0340,
-    0x06b0, 0x0340, 0x0340, 0x0340, 0x06c0, 0x0340, 0x0340, 0x0340,
-    0x0510, 0x0340, 0x0340, 0x06d0, 0x06e0, 0x06f0, 0x0610, 0x0340,
-    0x0620, 0x0340, 0x0340, 0x0690, 0x0700, 0x0340, 0x0610, 0x0340,
-    0x0620, 0x0340, 0x0340, 0x0340, 0x0640, 0x0340, 0x0610, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0710, 0x0720, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0730, 0x0740, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0750, 0x0760, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0770, 0x0340, 0x0780, 0x0340, 0x0340, 0x0340, 0x0790,
-    0x07a0, 0x07b0, 0x0360, 0x07c0, 0x06a0, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x07d0, 0x07e0, 0x0340, 0x07f0, 0x0510, 0x0800,
-    0x0810, 0x0350, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x07d0, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x05a0, 0x05b0, 0x0340, 0x05c0, 0x05d0, 0x0360,
+    0x05e0, 0x0340, 0x0340, 0x05f0, 0x0600, 0x0610, 0x0620, 0x0340,
+    0x0630, 0x0340, 0x0340, 0x0640, 0x0650, 0x0340, 0x0620, 0x0340,
+    0x0660, 0x0340, 0x0340, 0x0640, 0x0670, 0x0630, 0x0340, 0x0680,
+    0x0660, 0x0340, 0x0340, 0x0640, 0x0690, 0x0340, 0x0620, 0x0340,
+    0x0630, 0x0340, 0x0340, 0x06a0, 0x0650, 0x06b0, 0x0620, 0x0340,
+    0x06c0, 0x0340, 0x0340, 0x0340, 0x06d0, 0x0340, 0x0340, 0x0340,
+    0x0510, 0x0340, 0x0340, 0x06e0, 0x06f0, 0x0700, 0x0620, 0x0340,
+    0x0630, 0x0340, 0x0340, 0x06a0, 0x0710, 0x0340, 0x0620, 0x0340,
+    0x0630, 0x0340, 0x0340, 0x0340, 0x0650, 0x0340, 0x0620, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0720, 0x0730, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0740, 0x0750, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0760, 0x0770, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0780, 0x0340, 0x0790, 0x0340, 0x0340, 0x0340, 0x07a0,
+    0x07b0, 0x07c0, 0x0360, 0x07d0, 0x06b0, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x07e0, 0x07f0, 0x0340, 0x0800, 0x0510, 0x0810,
+    0x0820, 0x0350, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x07e0, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0820, 0x0340, 0x0820, 0x0340, 0x0610, 0x0340, 0x0610,
-    0x0340, 0x0340, 0x0340, 0x0830, 0x0840, 0x0850, 0x0340, 0x0340,
-    0x0860, 0x0340, 0x0530, 0x0530, 0x0530, 0x0530, 0x0530, 0x0870,
-    0x0880, 0x0530, 0x0890, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x08a0, 0x08b0, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0830, 0x0340, 0x0830, 0x0340, 0x0620, 0x0340, 0x0620,
+    0x0340, 0x0340, 0x0340, 0x0840, 0x0850, 0x0860, 0x0340, 0x0340,
+    0x0870, 0x0340, 0x0530, 0x0530, 0x0530, 0x0530, 0x0530, 0x0880,
+    0x0890, 0x0530, 0x08a0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x08b0, 0x08c0, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x08c0, 0x0340, 0x0340, 0x0340, 0x08d0, 0x08e0, 0x08f0,
-    0x0340, 0x0340, 0x0340, 0x0900, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0910, 0x0340, 0x0340, 0x0920, 0x06b0, 0x0340, 0x0930, 0x0910,
-    0x0940, 0x0340, 0x0950, 0x0340, 0x0340, 0x0340, 0x0960, 0x0940,
-    0x0340, 0x0340, 0x0970, 0x0980, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0990, 0x09a0, 0x09b0,
+    0x0340, 0x08d0, 0x0340, 0x0340, 0x0340, 0x08e0, 0x08f0, 0x0900,
+    0x0340, 0x0340, 0x0340, 0x0910, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0920, 0x0340, 0x0340, 0x0930, 0x06c0, 0x0340, 0x0940, 0x0920,
+    0x0950, 0x0340, 0x0960, 0x0340, 0x0340, 0x0340, 0x0970, 0x0950,
+    0x0340, 0x0340, 0x0980, 0x0990, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x09a0, 0x09b0, 0x09c0,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0360, 0x09c0,
-    0x09d0, 0x0340, 0x09e0, 0x0340, 0x0340, 0x0340, 0x09f0, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0360, 0x09d0,
+    0x09e0, 0x0340, 0x09f0, 0x0340, 0x0340, 0x0340, 0x0a00, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360, 0x0510,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0940,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0950,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0360, 0x0360,
-    0x0340, 0x0340, 0x0a00, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0a10, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0a20,
-    0x0340, 0x06d0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0940,
-    0x0a30, 0x0340, 0x06f0, 0x0340, 0x0530, 0x0530, 0x0530, 0x0a40,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0a50, 0x0340, 0x0360, 0x0940,
-    0x0340, 0x0340, 0x0a60, 0x0340, 0x0a70, 0x0940, 0x0340, 0x0340,
-    0x05d0, 0x0340, 0x0340, 0x0a80, 0x0340, 0x0340, 0x0a90, 0x0340,
-    0x0340, 0x0340, 0x0aa0, 0x0ab0, 0x0ac0, 0x0340, 0x0340, 0x0630,
-    0x0340, 0x0340, 0x0340, 0x0ad0, 0x0620, 0x0340, 0x0ae0, 0x06a0,
+    0x0340, 0x0340, 0x0a10, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0a20, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490, 0x0a30,
+    0x0340, 0x06e0, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0950,
+    0x0a40, 0x0340, 0x0700, 0x0340, 0x0530, 0x0530, 0x0530, 0x0a50,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0a60, 0x0340, 0x0360, 0x0950,
+    0x0340, 0x0340, 0x0a70, 0x0340, 0x0a80, 0x0950, 0x0340, 0x0340,
+    0x05e0, 0x0340, 0x0340, 0x0a90, 0x0340, 0x0340, 0x0aa0, 0x0340,
+    0x0340, 0x0340, 0x0ab0, 0x0ac0, 0x0ad0, 0x0340, 0x0340, 0x0640,
+    0x0340, 0x0340, 0x0340, 0x0ae0, 0x0630, 0x0340, 0x0af0, 0x06b0,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0af0, 0x0340,
-    0x0340, 0x0b00, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0b00, 0x0340,
+    0x0340, 0x0b10, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0360, 0x0340, 0x0360, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0490,
     0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340,
-    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0b10,
+    0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0340, 0x0b20,
     /* values */
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -189,9 +189,11 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
     0x0000, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0404, 0x0404, 0x0604, 0x0b04, 0x0f04, 0x1004, 0x1204, 0x1304,
     0x0104, 0x0104, 0x0802, 0x0302, 0x3402, 0x0000, 0x0702, 0x0a04,
-    0x0d04, 0x3502, 0x0802, 0x0c04, 0x1104, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0d04, 0x3502, 0x0802, 0x0c04, 0x1104, 0x0000, 0x0404, 0x0404,
+    0x0404, 0x0802, 0x0104, 0x3604, 0x3604, 0x3604, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0001, 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -279,7 +281,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
     0x0000, 0x0000, 0x0005, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004,
     0x0004, 0x0001, 0x0004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -320,7 +322,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
     0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
     0x0001, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001,
+    0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0005, 0x0001, 0x0001,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
@@ -337,7 +339,7 @@ const unsigned short /* DECLSPEC_HIDDEN */ wine_shaping_table[2848] =
     0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0004, 0x0004, 0x0003, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000,
+    0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
     0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0001,
     0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0000, 0x0000,
index f68e838..9d3abe5 100644 (file)
@@ -319,7 +319,7 @@ const scriptData scriptInformation[] = {
      {LANG_ARABIC, 0, 1, 0, 0, ARABIC_CHARSET, 0, 0, 0, 0, 0, 0, 1, 1, 0},
      MS_MAKE_TAG('a','r','a','b'),
      {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0}},
-    {{Script_Arabic_Numeric, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}},
+    {{Script_Arabic_Numeric, 0, 1, 0, 0, 0, 0, { 2,0,0,0,0,0,0,0,0,0,0}},
      {LANG_ARABIC, 1, 1, 0, 0, ARABIC_CHARSET, 0, 0, 0, 0, 0, 0, 1, 0, 0},
      MS_MAKE_TAG('a','r','a','b'),
      {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0}},
@@ -331,10 +331,10 @@ const scriptData scriptInformation[] = {
      {LANG_SYRIAC, 0, 1, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, 1, 0, 0, 1, 0},
      MS_MAKE_TAG('s','y','r','c'),
      {'E','s','t','r','a','n','g','e','l','o',' ','E','d','e','s','s','a',0}},
-    {{Script_Persian, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}},
+    {{Script_Persian, 0, 1, 0, 0, 0, 0, { 2,0,0,0,0,0,0,0,0,0,0}},
      {LANG_PERSIAN, 1, 1, 0, 0, ARABIC_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0},
-     MS_MAKE_TAG('s','y','r','c'),
-     {'E','s','t','r','a','n','g','e','l','o',' ','E','d','e','s','s','a',0}},
+     MS_MAKE_TAG('a','r','a','b'),
+     {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0}},
     {{Script_Thaana, 1, 1, 0, 0, 0, 0, { 1,0,0,0,0,0,0,0,0,0,0}},
      {LANG_DIVEHI, 0, 1, 0, 1, DEFAULT_CHARSET, 0, 0, 0, 0, 0, 0, 0, 0, 0},
      MS_MAKE_TAG('t','h','a','a'),
@@ -880,7 +880,7 @@ static inline DWORD decode_surrogate_pair(LPCWSTR str, INT index, INT end)
 static WORD get_char_script( LPCWSTR str, INT index, INT end, INT *consumed)
 {
     static const WCHAR latin_punc[] = {'#','$','&','\'',',',';','<','>','?','@','\\','^','_','`','{','|','}','~', 0x00a0, 0};
-    WORD type = 0;
+    WORD type = 0, type2 = 0;
     DWORD ch;
     int i;
 
@@ -910,6 +910,7 @@ static WORD get_char_script( LPCWSTR str, INT index, INT end, INT *consumed)
     }
 
     GetStringTypeW(CT_CTYPE1, &str[index], 1, &type);
+    GetStringTypeW(CT_CTYPE2, &str[index], 1, &type2);
 
     if (type == 0)
         return SCRIPT_UNDEFINED;
@@ -931,7 +932,7 @@ static WORD get_char_script( LPCWSTR str, INT index, INT end, INT *consumed)
 
         if (ch >= scriptRanges[i].rangeFirst && ch <= scriptRanges[i].rangeLast)
         {
-            if (scriptRanges[i].numericScript && type & C1_DIGIT)
+            if (scriptRanges[i].numericScript && (type & C1_DIGIT || type2 == C2_ARABICNUMBER))
                 return scriptRanges[i].numericScript;
             if (scriptRanges[i].punctScript && type & C1_PUNCT)
                 return scriptRanges[i].punctScript;
@@ -1242,6 +1243,10 @@ static inline WORD base_indic(WORD script)
     };
 }
 
+static BOOL script_is_numeric(WORD script)
+{
+    return scriptInformation[script].props.fNumeric;
+}
 
 static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
                 int cMaxItems, const SCRIPT_CONTROL *psControl,
@@ -1250,6 +1255,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
 {
 
 #define Numeric_space 0x0020
+#define ZWSP 0x200B
 #define ZWNJ 0x200C
 #define ZWJ  0x200D
 
@@ -1440,12 +1446,12 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
             for (i = 0; i < cInChars; i++)
             {
                 if (i > 0 && i < cInChars-1 &&
-                    scripts[i-1] == Script_Numeric &&
+                    script_is_numeric(scripts[i-1]) &&
                     strchrW(math_punc, pwcInChars[i]))
                 {
-                    if (scripts[i+1] == Script_Numeric)
+                    if (script_is_numeric(scripts[i+1]))
                     {
-                        scripts[i] = Script_Numeric;
+                        scripts[i] = scripts[i+1];
                         levels[i] = levels[i-1];
                         strength[i] = strength[i-1];
                         i++;
@@ -1455,11 +1461,11 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
                         int j;
                         for (j = i+1; j < cInChars; j++)
                         {
-                            if (scripts[j] == Script_Numeric)
+                            if (script_is_numeric(scripts[j]))
                             {
                                 for(;i<j; i++)
                                 {
-                                    scripts[i] = Script_Numeric;
+                                    scripts[i] = scripts[j];
                                     levels[i] = levels[i-1];
                                     strength[i] = strength[i-1];
                                 }
@@ -1472,8 +1478,9 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
 
             for (i = 0; i < cInChars; i++)
             {
-                /* Script_Numeric at level 0 get bumped to level 2 */
-                if (!overrides[i] && (levels[i] == 0 || (odd(psState->uBidiLevel) && levels[i] == psState->uBidiLevel+1)) && scripts[i] == Script_Numeric)
+                /* Numerics at level 0 get bumped to level 2 */
+                if (!overrides[i] && (levels[i] == 0 || (odd(psState->uBidiLevel)
+                        && levels[i] == psState->uBidiLevel + 1)) && script_is_numeric(scripts[i]))
                 {
                     levels[i] = 2;
                 }
@@ -1565,8 +1572,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
         if (overrides)
             pItems[index].a.s.fOverrideDirection = (overrides[cnt] != 0);
         pItems[index].a.fRTL = odd(levels[cnt]);
-        if (pItems[index].a.eScript == Script_Numeric ||
-            pItems[index].a.eScript == Script_Numeric2)
+        if (script_is_numeric(pItems[index].a.eScript))
             pItems[index].a.fLayoutRTL = layoutRTL;
         else
             pItems[index].a.fLayoutRTL = pItems[index].a.fRTL;
@@ -1579,8 +1585,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
         layoutRTL = odd(baselayout);
         pItems[index].a.s.uBidiLevel = baselevel;
         pItems[index].a.fRTL = odd(baselevel);
-        if (pItems[index].a.eScript == Script_Numeric ||
-            pItems[index].a.eScript == Script_Numeric2)
+        if (script_is_numeric(pItems[index].a.eScript))
             pItems[index].a.fLayoutRTL = odd(baselayout);
         else
             pItems[index].a.fLayoutRTL = pItems[index].a.fRTL;
@@ -1635,8 +1640,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
         if (!new_run && strength && str == BIDI_STRONG)
         {
             layoutRTL = odd(layout_levels[cnt]);
-            if (pItems[index].a.eScript == Script_Numeric ||
-                pItems[index].a.eScript == Script_Numeric2)
+            if (script_is_numeric(pItems[index].a.eScript))
                 pItems[index].a.fLayoutRTL = layoutRTL;
         }
 
@@ -1666,8 +1670,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
                 else
                     layoutRTL = (layoutRTL || odd(layout_levels[cnt]));
                 pItems[index].a.fRTL = odd(levels[cnt]);
-                if (pItems[index].a.eScript == Script_Numeric ||
-                    pItems[index].a.eScript == Script_Numeric2)
+                if (script_is_numeric(pItems[index].a.eScript))
                     pItems[index].a.fLayoutRTL = layoutRTL;
                 else
                     pItems[index].a.fLayoutRTL = pItems[index].a.fRTL;
@@ -1679,8 +1682,7 @@ static HRESULT _ItemizeInternal(const WCHAR *pwcInChars, int cInChars,
                     pItems[index].a.s.fOverrideDirection = TRUE;
                 pItems[index].a.s.uBidiLevel = baselevel;
                 pItems[index].a.fRTL = odd(baselevel);
-                if (pItems[index].a.eScript == Script_Numeric||
-                    pItems[index].a.eScript == Script_Numeric2)
+                if (script_is_numeric(pItems[index].a.eScript))
                     pItems[index].a.fLayoutRTL = layoutRTL;
                 else
                     pItems[index].a.fLayoutRTL = pItems[index].a.fRTL;
@@ -2751,9 +2753,9 @@ static inline int get_cluster_advance(const int* piAdvance,
  *      ScriptXtoCP (USP10.@)
  *
  * Basic algorithm :
- *  use piAdvance to find the cluster we are looking at
- *  Find the character that is the first character of the cluster
- *  That is our base piCP
+ *  Use piAdvance to find the cluster we are looking at.
+ *  Find the character that is the first character of the cluster.
+ *  That is our base piCP.
  *  If the script snaps to cluster boundaries (Hebrew, Indic, Thai) then we
  *  are good. Otherwise if the cluster is larger than 1 glyph we need to
  *  determine how far through the cluster to advance the cursor.
@@ -3069,10 +3071,6 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc,
     ((ScriptCache *)*psc)->userScript = tagScript;
     ((ScriptCache *)*psc)->userLang = tagLangSys;
 
-    /* set fNoGlyphIndex non truetype/opentype fonts */
-    if (psa && !psa->fNoGlyphIndex && !((ScriptCache *)*psc)->sfnt)
-        psa->fNoGlyphIndex = TRUE;
-
     /* Initialize a SCRIPT_VISATTR and LogClust for each char in this run */
     for (i = 0; i < cChars; i++)
     {
@@ -3092,7 +3090,7 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc,
         pwLogClust[i] = idx;
     }
 
-    if (psa && !psa->fNoGlyphIndex)
+    if (psa && !psa->fNoGlyphIndex && ((ScriptCache *)*psc)->sfnt)
     {
         WCHAR *rChars;
         if ((hr = SHAPE_CheckFontForRequiredFeatures(hdc, (ScriptCache *)*psc, psa)) != S_OK) return hr;
@@ -3168,13 +3166,26 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc,
             if (rtl) idx = cChars - 1 - i;
             pwOutGlyphs[i] = pwcChars[idx];
 
+            if (!psa)
+                continue;
+
             /* overwrite some basic control glyphs to blank */
-            if (psa && psa->eScript == Script_Control &&
-                pwcChars[idx] < ((ScriptCache *)*psc)->tm.tmFirstChar)
+            if (psa->fNoGlyphIndex)
+            {
+                if (pwcChars[idx] == ZWSP || pwcChars[idx] == ZWNJ || pwcChars[idx] == ZWJ)
+                {
+                    pwOutGlyphs[i] = 0x20;
+                    pOutGlyphProps[i].sva.fZeroWidth = 1;
+                }
+            }
+            else if (psa->eScript == Script_Control)
             {
                 if (pwcChars[idx] == 0x0009 || pwcChars[idx] == 0x000A ||
                     pwcChars[idx] == 0x000D || pwcChars[idx] >= 0x001C)
+                {
                     pwOutGlyphs[i] = ((ScriptCache *)*psc)->sfp.wgBlank;
+                    pOutGlyphProps[i].sva.fZeroWidth = 1;
+                }
             }
         }
     }
index 8f3e88b..66481d2 100644 (file)
@@ -193,7 +193,7 @@ reactos/dll/win32/twain_32            # Synced to WineStaging-1.9.11
 reactos/dll/win32/updspapi            # Synced to WineStaging-1.9.11
 reactos/dll/win32/url                 # Synced to WineStaging-1.9.11
 reactos/dll/win32/urlmon              # Synced to WineStaging-1.9.16
-reactos/dll/win32/usp10               # Synced to WineStaging-1.9.11
+reactos/dll/win32/usp10               # Synced to WineStaging-1.9.16
 reactos/dll/win32/uxtheme             # Forked
 reactos/dll/win32/vbscript            # Synced to WineStaging-1.9.11
 reactos/dll/win32/version             # Synced to WineStaging-1.9.11