authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-05-31 13:59:16 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-05-31 13:59:16 -07:00
log5bb4c3e81adb098a4265631fc4ee82f270214fb7
tree728a95d4f4ba3a13c89f230e4843a94507a6bdbc
parent94e0afff42bb49163e9af6cfc3e796bdb5a9aa99

add ArabicShaping, fixes #1


5 files changed, 1063 insertions(+), 1 deletions(-)

generate.zig+1
...@@ -2,6 +2,7 @@ const std = @import("std");...@@ -2,6 +2,7 @@ const std = @import("std");
22
3const files = &[_]type{3const files = &[_]type{
4 @import("scripts/blocks.zig"),4 @import("scripts/blocks.zig"),
5 @import("./scripts/arabic_shaping.zig"),
5};6};
67
7pub fn main() !void {8pub fn main() !void {
scripts/arabic_shaping.zig created+156
...@@ -0,0 +1,156 @@
1const std = @import("std");
2const common = @import("./_common.zig");
3
4pub const default = common.Main(struct {
5 pub const source_url = "https://unicode.org/Public/UCD/latest/ucd/ArabicShaping.txt";
6
7 pub const dest_file = "src/arabic_shaping.zig";
8
9 pub const dest_header =
10 \\pub const Shaping = struct {
11 \\ codepoint: u21,
12 \\ schematic_name: []const u8,
13 \\ joining_type: Joining.Type,
14 \\ joining_group: Joining.Group,
15 \\};
16 \\
17 \\pub const Joining = struct {
18 \\ pub const Type = enum {
19 \\ U,
20 \\ D,
21 \\ R,
22 \\ C,
23 \\ T,
24 \\ L,
25 \\ };
26 \\
27 \\ pub const Group = enum {
28 \\ No_Joining_Group,
29 \\ YEH,
30 \\ ALEF,
31 \\ WAW,
32 \\ BEH,
33 \\ TEH_MARBUTA,
34 \\ HAH,
35 \\ DAL,
36 \\ REH,
37 \\ SEEN,
38 \\ SAD,
39 \\ TAH,
40 \\ AIN,
41 \\ GAF,
42 \\ FARSI_YEH,
43 \\ FEH,
44 \\ QAF,
45 \\ KAF,
46 \\ LAM,
47 \\ MEEM,
48 \\ NOON,
49 \\ HEH,
50 \\ SWASH_KAF,
51 \\ NYA,
52 \\ KNOTTED_HEH,
53 \\ HEH_GOAL,
54 \\ TEH_MARBUTA_GOAL,
55 \\ YEH_WITH_TAIL,
56 \\ YEH_BARREE,
57 \\ ALAPH,
58 \\ BETH,
59 \\ GAMAL,
60 \\ DALATH_RISH,
61 \\ HE,
62 \\ SYRIAC_WAW,
63 \\ ZAIN,
64 \\ HETH,
65 \\ TETH,
66 \\ YUDH,
67 \\ YUDH_HE,
68 \\ KAPH,
69 \\ LAMADH,
70 \\ MIM,
71 \\ NUN,
72 \\ SEMKATH,
73 \\ FINAL_SEMKATH,
74 \\ E,
75 \\ PE,
76 \\ REVERSED_PE,
77 \\ SADHE,
78 \\ QAPH,
79 \\ SHIN,
80 \\ TAW,
81 \\ ZHAIN,
82 \\ KHAPH,
83 \\ FE,
84 \\ BURUSHASKI_YEH_BARREE,
85 \\ MALAYALAM_NGA,
86 \\ MALAYALAM_JA,
87 \\ MALAYALAM_NYA,
88 \\ MALAYALAM_TTA,
89 \\ MALAYALAM_NNA,
90 \\ MALAYALAM_NNNA,
91 \\ MALAYALAM_BHA,
92 \\ MALAYALAM_RA,
93 \\ MALAYALAM_LLA,
94 \\ MALAYALAM_LLLA,
95 \\ MALAYALAM_SSA,
96 \\ ROHINGYA_YEH,
97 \\ STRAIGHT_WAW,
98 \\ AFRICAN_FEH,
99 \\ AFRICAN_QAF,
100 \\ AFRICAN_NOON,
101 \\ MANICHAEAN_ALEPH,
102 \\ MANICHAEAN_BETH,
103 \\ MANICHAEAN_GIMEL,
104 \\ MANICHAEAN_DALETH,
105 \\ MANICHAEAN_WAW,
106 \\ MANICHAEAN_ZAYIN,
107 \\ MANICHAEAN_HETH,
108 \\ MANICHAEAN_TETH,
109 \\ MANICHAEAN_YODH,
110 \\ MANICHAEAN_KAPH,
111 \\ MANICHAEAN_LAMEDH,
112 \\ MANICHAEAN_DHAMEDH,
113 \\ MANICHAEAN_THAMEDH,
114 \\ MANICHAEAN_MEM,
115 \\ MANICHAEAN_NUN,
116 \\ MANICHAEAN_SAMEKH,
117 \\ MANICHAEAN_AYIN,
118 \\ MANICHAEAN_PE,
119 \\ MANICHAEAN_SADHE,
120 \\ MANICHAEAN_QOPH,
121 \\ MANICHAEAN_RESH,
122 \\ MANICHAEAN_TAW,
123 \\ MANICHAEAN_ONE,
124 \\ MANICHAEAN_FIVE,
125 \\ MANICHAEAN_TEN,
126 \\ MANICHAEAN_TWENTY,
127 \\ MANICHAEAN_HUNDRED,
128 \\ HANIFI_ROHINGYA_PA,
129 \\ HANIFI_ROHINGYA_KINNA_YA,
130 \\ };
131 \\};
132 \\
133 \\pub const arabic_shaping = [_]Shaping{
134 \\
135 ;
136
137 pub const dest_footer =
138 \\};
139 \\
140 ;
141
142 pub fn exec(alloc: *std.mem.Allocator, line: []const u8, writer: anytype) !bool {
143 var it = std.mem.split(line, ";");
144 const c = std.mem.trim(u8, it.next().?, " ");
145 const n = std.mem.trim(u8, it.next().?, " ");
146 const t = std.mem.trim(u8, it.next().?, " ");
147 const g = std.mem.trim(u8, it.next().?, " ");
148 const g2 = try std.mem.replaceOwned(u8, alloc, g, " ", "_");
149
150 try common.stringToEnum(@import("../src/lib.zig").arabic_shaping.Joining.Type, t);
151 try common.stringToEnum(@import("../src/lib.zig").arabic_shaping.Joining.Group, g2);
152
153 try writer.print(" .{{ .codepoint = 0x{s}, .schematic_name = \"{s}\", .joining_type = .{s}, .joining_group = .{s} }},\n", .{ c, n, t, g2 });
154 return true;
155 }
156});
src/arabic_shaping.zig created+904
...@@ -0,0 +1,904 @@
1// This file is part of the Unicode Character Database
2// See http://www.unicode.org/reports/tr44/ for more information.
3//
4
5pub const Shaping = struct {
6 codepoint: u21,
7 schematic_name: []const u8,
8 joining_type: Joining.Type,
9 joining_group: Joining.Group,
10};
11
12pub const Joining = struct {
13 pub const Type = enum {
14 U,
15 D,
16 R,
17 C,
18 T,
19 L,
20 };
21
22 pub const Group = enum {
23 No_Joining_Group,
24 YEH,
25 ALEF,
26 WAW,
27 BEH,
28 TEH_MARBUTA,
29 HAH,
30 DAL,
31 REH,
32 SEEN,
33 SAD,
34 TAH,
35 AIN,
36 GAF,
37 FARSI_YEH,
38 FEH,
39 QAF,
40 KAF,
41 LAM,
42 MEEM,
43 NOON,
44 HEH,
45 SWASH_KAF,
46 NYA,
47 KNOTTED_HEH,
48 HEH_GOAL,
49 TEH_MARBUTA_GOAL,
50 YEH_WITH_TAIL,
51 YEH_BARREE,
52 ALAPH,
53 BETH,
54 GAMAL,
55 DALATH_RISH,
56 HE,
57 SYRIAC_WAW,
58 ZAIN,
59 HETH,
60 TETH,
61 YUDH,
62 YUDH_HE,
63 KAPH,
64 LAMADH,
65 MIM,
66 NUN,
67 SEMKATH,
68 FINAL_SEMKATH,
69 E,
70 PE,
71 REVERSED_PE,
72 SADHE,
73 QAPH,
74 SHIN,
75 TAW,
76 ZHAIN,
77 KHAPH,
78 FE,
79 BURUSHASKI_YEH_BARREE,
80 MALAYALAM_NGA,
81 MALAYALAM_JA,
82 MALAYALAM_NYA,
83 MALAYALAM_TTA,
84 MALAYALAM_NNA,
85 MALAYALAM_NNNA,
86 MALAYALAM_BHA,
87 MALAYALAM_RA,
88 MALAYALAM_LLA,
89 MALAYALAM_LLLA,
90 MALAYALAM_SSA,
91 ROHINGYA_YEH,
92 STRAIGHT_WAW,
93 AFRICAN_FEH,
94 AFRICAN_QAF,
95 AFRICAN_NOON,
96 MANICHAEAN_ALEPH,
97 MANICHAEAN_BETH,
98 MANICHAEAN_GIMEL,
99 MANICHAEAN_DALETH,
100 MANICHAEAN_WAW,
101 MANICHAEAN_ZAYIN,
102 MANICHAEAN_HETH,
103 MANICHAEAN_TETH,
104 MANICHAEAN_YODH,
105 MANICHAEAN_KAPH,
106 MANICHAEAN_LAMEDH,
107 MANICHAEAN_DHAMEDH,
108 MANICHAEAN_THAMEDH,
109 MANICHAEAN_MEM,
110 MANICHAEAN_NUN,
111 MANICHAEAN_SAMEKH,
112 MANICHAEAN_AYIN,
113 MANICHAEAN_PE,
114 MANICHAEAN_SADHE,
115 MANICHAEAN_QOPH,
116 MANICHAEAN_RESH,
117 MANICHAEAN_TAW,
118 MANICHAEAN_ONE,
119 MANICHAEAN_FIVE,
120 MANICHAEAN_TEN,
121 MANICHAEAN_TWENTY,
122 MANICHAEAN_HUNDRED,
123 HANIFI_ROHINGYA_PA,
124 HANIFI_ROHINGYA_KINNA_YA,
125 };
126};
127
128pub const arabic_shaping = [_]Shaping{
129 .{ .codepoint = 0x0600, .schematic_name = "ARABIC NUMBER SIGN", .joining_type = .U, .joining_group = .No_Joining_Group },
130 .{ .codepoint = 0x0601, .schematic_name = "ARABIC SIGN SANAH", .joining_type = .U, .joining_group = .No_Joining_Group },
131 .{ .codepoint = 0x0602, .schematic_name = "ARABIC FOOTNOTE MARKER", .joining_type = .U, .joining_group = .No_Joining_Group },
132 .{ .codepoint = 0x0603, .schematic_name = "ARABIC SIGN SAFHA", .joining_type = .U, .joining_group = .No_Joining_Group },
133 .{ .codepoint = 0x0604, .schematic_name = "ARABIC SIGN SAMVAT", .joining_type = .U, .joining_group = .No_Joining_Group },
134 .{ .codepoint = 0x0605, .schematic_name = "ARABIC NUMBER MARK ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group },
135 .{ .codepoint = 0x0608, .schematic_name = "ARABIC RAY", .joining_type = .U, .joining_group = .No_Joining_Group },
136 .{ .codepoint = 0x060B, .schematic_name = "AFGHANI SIGN", .joining_type = .U, .joining_group = .No_Joining_Group },
137 .{ .codepoint = 0x0620, .schematic_name = "DOTLESS YEH WITH SEPARATE RING BELOW", .joining_type = .D, .joining_group = .YEH },
138 .{ .codepoint = 0x0621, .schematic_name = "HAMZA", .joining_type = .U, .joining_group = .No_Joining_Group },
139 .{ .codepoint = 0x0622, .schematic_name = "ALEF WITH MADDA ABOVE", .joining_type = .R, .joining_group = .ALEF },
140 .{ .codepoint = 0x0623, .schematic_name = "ALEF WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .ALEF },
141 .{ .codepoint = 0x0624, .schematic_name = "WAW WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .WAW },
142 .{ .codepoint = 0x0625, .schematic_name = "ALEF WITH HAMZA BELOW", .joining_type = .R, .joining_group = .ALEF },
143 .{ .codepoint = 0x0626, .schematic_name = "DOTLESS YEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .YEH },
144 .{ .codepoint = 0x0627, .schematic_name = "ALEF", .joining_type = .R, .joining_group = .ALEF },
145 .{ .codepoint = 0x0628, .schematic_name = "BEH", .joining_type = .D, .joining_group = .BEH },
146 .{ .codepoint = 0x0629, .schematic_name = "TEH MARBUTA", .joining_type = .R, .joining_group = .TEH_MARBUTA },
147 .{ .codepoint = 0x062A, .schematic_name = "DOTLESS BEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
148 .{ .codepoint = 0x062B, .schematic_name = "DOTLESS BEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
149 .{ .codepoint = 0x062C, .schematic_name = "HAH WITH DOT BELOW", .joining_type = .D, .joining_group = .HAH },
150 .{ .codepoint = 0x062D, .schematic_name = "HAH", .joining_type = .D, .joining_group = .HAH },
151 .{ .codepoint = 0x062E, .schematic_name = "HAH WITH DOT ABOVE", .joining_type = .D, .joining_group = .HAH },
152 .{ .codepoint = 0x062F, .schematic_name = "DAL", .joining_type = .R, .joining_group = .DAL },
153 .{ .codepoint = 0x0630, .schematic_name = "DAL WITH DOT ABOVE", .joining_type = .R, .joining_group = .DAL },
154 .{ .codepoint = 0x0631, .schematic_name = "REH", .joining_type = .R, .joining_group = .REH },
155 .{ .codepoint = 0x0632, .schematic_name = "REH WITH DOT ABOVE", .joining_type = .R, .joining_group = .REH },
156 .{ .codepoint = 0x0633, .schematic_name = "SEEN", .joining_type = .D, .joining_group = .SEEN },
157 .{ .codepoint = 0x0634, .schematic_name = "SEEN WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN },
158 .{ .codepoint = 0x0635, .schematic_name = "SAD", .joining_type = .D, .joining_group = .SAD },
159 .{ .codepoint = 0x0636, .schematic_name = "SAD WITH DOT ABOVE", .joining_type = .D, .joining_group = .SAD },
160 .{ .codepoint = 0x0637, .schematic_name = "TAH", .joining_type = .D, .joining_group = .TAH },
161 .{ .codepoint = 0x0638, .schematic_name = "TAH WITH DOT ABOVE", .joining_type = .D, .joining_group = .TAH },
162 .{ .codepoint = 0x0639, .schematic_name = "AIN", .joining_type = .D, .joining_group = .AIN },
163 .{ .codepoint = 0x063A, .schematic_name = "AIN WITH DOT ABOVE", .joining_type = .D, .joining_group = .AIN },
164 .{ .codepoint = 0x063B, .schematic_name = "KEHEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF },
165 .{ .codepoint = 0x063C, .schematic_name = "KEHEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .GAF },
166 .{ .codepoint = 0x063D, .schematic_name = "FARSI YEH WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
167 .{ .codepoint = 0x063E, .schematic_name = "FARSI YEH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
168 .{ .codepoint = 0x063F, .schematic_name = "FARSI YEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
169 .{ .codepoint = 0x0640, .schematic_name = "TATWEEL", .joining_type = .C, .joining_group = .No_Joining_Group },
170 .{ .codepoint = 0x0641, .schematic_name = "FEH", .joining_type = .D, .joining_group = .FEH },
171 .{ .codepoint = 0x0642, .schematic_name = "QAF", .joining_type = .D, .joining_group = .QAF },
172 .{ .codepoint = 0x0643, .schematic_name = "KAF", .joining_type = .D, .joining_group = .KAF },
173 .{ .codepoint = 0x0644, .schematic_name = "LAM", .joining_type = .D, .joining_group = .LAM },
174 .{ .codepoint = 0x0645, .schematic_name = "MEEM", .joining_type = .D, .joining_group = .MEEM },
175 .{ .codepoint = 0x0646, .schematic_name = "NOON", .joining_type = .D, .joining_group = .NOON },
176 .{ .codepoint = 0x0647, .schematic_name = "HEH", .joining_type = .D, .joining_group = .HEH },
177 .{ .codepoint = 0x0648, .schematic_name = "WAW", .joining_type = .R, .joining_group = .WAW },
178 .{ .codepoint = 0x0649, .schematic_name = "DOTLESS YEH", .joining_type = .D, .joining_group = .YEH },
179 .{ .codepoint = 0x064A, .schematic_name = "YEH", .joining_type = .D, .joining_group = .YEH },
180 .{ .codepoint = 0x066E, .schematic_name = "DOTLESS BEH", .joining_type = .D, .joining_group = .BEH },
181 .{ .codepoint = 0x066F, .schematic_name = "DOTLESS QAF", .joining_type = .D, .joining_group = .QAF },
182 .{ .codepoint = 0x0671, .schematic_name = "ALEF WITH WASLA ABOVE", .joining_type = .R, .joining_group = .ALEF },
183 .{ .codepoint = 0x0672, .schematic_name = "ALEF WITH WAVY HAMZA ABOVE", .joining_type = .R, .joining_group = .ALEF },
184 .{ .codepoint = 0x0673, .schematic_name = "ALEF WITH WAVY HAMZA BELOW", .joining_type = .R, .joining_group = .ALEF },
185 .{ .codepoint = 0x0674, .schematic_name = "HIGH HAMZA", .joining_type = .U, .joining_group = .No_Joining_Group },
186 .{ .codepoint = 0x0675, .schematic_name = "HIGH HAMZA ALEF", .joining_type = .R, .joining_group = .ALEF },
187 .{ .codepoint = 0x0676, .schematic_name = "HIGH HAMZA WAW", .joining_type = .R, .joining_group = .WAW },
188 .{ .codepoint = 0x0677, .schematic_name = "HIGH HAMZA WAW WITH DAMMA ABOVE", .joining_type = .R, .joining_group = .WAW },
189 .{ .codepoint = 0x0678, .schematic_name = "HIGH HAMZA DOTLESS YEH", .joining_type = .D, .joining_group = .YEH },
190 .{ .codepoint = 0x0679, .schematic_name = "DOTLESS BEH WITH TAH ABOVE", .joining_type = .D, .joining_group = .BEH },
191 .{ .codepoint = 0x067A, .schematic_name = "DOTLESS BEH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
192 .{ .codepoint = 0x067B, .schematic_name = "DOTLESS BEH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .BEH },
193 .{ .codepoint = 0x067C, .schematic_name = "DOTLESS BEH WITH ATTACHED RING BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
194 .{ .codepoint = 0x067D, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
195 .{ .codepoint = 0x067E, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH },
196 .{ .codepoint = 0x067F, .schematic_name = "DOTLESS BEH WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
197 .{ .codepoint = 0x0680, .schematic_name = "DOTLESS BEH WITH 4 DOTS BELOW", .joining_type = .D, .joining_group = .BEH },
198 .{ .codepoint = 0x0681, .schematic_name = "HAH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .HAH },
199 .{ .codepoint = 0x0682, .schematic_name = "HAH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH },
200 .{ .codepoint = 0x0683, .schematic_name = "HAH WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
201 .{ .codepoint = 0x0684, .schematic_name = "HAH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
202 .{ .codepoint = 0x0685, .schematic_name = "HAH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH },
203 .{ .codepoint = 0x0686, .schematic_name = "HAH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
204 .{ .codepoint = 0x0687, .schematic_name = "HAH WITH 4 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
205 .{ .codepoint = 0x0688, .schematic_name = "DAL WITH TAH ABOVE", .joining_type = .R, .joining_group = .DAL },
206 .{ .codepoint = 0x0689, .schematic_name = "DAL WITH ATTACHED RING BELOW", .joining_type = .R, .joining_group = .DAL },
207 .{ .codepoint = 0x068A, .schematic_name = "DAL WITH DOT BELOW", .joining_type = .R, .joining_group = .DAL },
208 .{ .codepoint = 0x068B, .schematic_name = "DAL WITH DOT BELOW AND TAH ABOVE", .joining_type = .R, .joining_group = .DAL },
209 .{ .codepoint = 0x068C, .schematic_name = "DAL WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL },
210 .{ .codepoint = 0x068D, .schematic_name = "DAL WITH 2 DOTS BELOW", .joining_type = .R, .joining_group = .DAL },
211 .{ .codepoint = 0x068E, .schematic_name = "DAL WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL },
212 .{ .codepoint = 0x068F, .schematic_name = "DAL WITH INVERTED 3 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL },
213 .{ .codepoint = 0x0690, .schematic_name = "DAL WITH 4 DOTS ABOVE", .joining_type = .R, .joining_group = .DAL },
214 .{ .codepoint = 0x0691, .schematic_name = "REH WITH TAH ABOVE", .joining_type = .R, .joining_group = .REH },
215 .{ .codepoint = 0x0692, .schematic_name = "REH WITH V ABOVE", .joining_type = .R, .joining_group = .REH },
216 .{ .codepoint = 0x0693, .schematic_name = "REH WITH ATTACHED RING BELOW", .joining_type = .R, .joining_group = .REH },
217 .{ .codepoint = 0x0694, .schematic_name = "REH WITH DOT BELOW", .joining_type = .R, .joining_group = .REH },
218 .{ .codepoint = 0x0695, .schematic_name = "REH WITH V BELOW", .joining_type = .R, .joining_group = .REH },
219 .{ .codepoint = 0x0696, .schematic_name = "REH WITH DOT BELOW AND DOT WITHIN", .joining_type = .R, .joining_group = .REH },
220 .{ .codepoint = 0x0697, .schematic_name = "REH WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .REH },
221 .{ .codepoint = 0x0698, .schematic_name = "REH WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .REH },
222 .{ .codepoint = 0x0699, .schematic_name = "REH WITH 4 DOTS ABOVE", .joining_type = .R, .joining_group = .REH },
223 .{ .codepoint = 0x069A, .schematic_name = "SEEN WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .SEEN },
224 .{ .codepoint = 0x069B, .schematic_name = "SEEN WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .SEEN },
225 .{ .codepoint = 0x069C, .schematic_name = "SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN },
226 .{ .codepoint = 0x069D, .schematic_name = "SAD WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .SAD },
227 .{ .codepoint = 0x069E, .schematic_name = "SAD WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SAD },
228 .{ .codepoint = 0x069F, .schematic_name = "TAH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .TAH },
229 .{ .codepoint = 0x06A0, .schematic_name = "AIN WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN },
230 .{ .codepoint = 0x06A1, .schematic_name = "DOTLESS FEH", .joining_type = .D, .joining_group = .FEH },
231 .{ .codepoint = 0x06A2, .schematic_name = "DOTLESS FEH WITH DOT BELOW", .joining_type = .D, .joining_group = .FEH },
232 .{ .codepoint = 0x06A3, .schematic_name = "FEH WITH DOT BELOW", .joining_type = .D, .joining_group = .FEH },
233 .{ .codepoint = 0x06A4, .schematic_name = "DOTLESS FEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH },
234 .{ .codepoint = 0x06A5, .schematic_name = "DOTLESS FEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .FEH },
235 .{ .codepoint = 0x06A6, .schematic_name = "DOTLESS FEH WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH },
236 .{ .codepoint = 0x06A7, .schematic_name = "DOTLESS QAF WITH DOT ABOVE", .joining_type = .D, .joining_group = .QAF },
237 .{ .codepoint = 0x06A8, .schematic_name = "DOTLESS QAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .QAF },
238 .{ .codepoint = 0x06A9, .schematic_name = "KEHEH", .joining_type = .D, .joining_group = .GAF },
239 .{ .codepoint = 0x06AA, .schematic_name = "SWASH KAF", .joining_type = .D, .joining_group = .SWASH_KAF },
240 .{ .codepoint = 0x06AB, .schematic_name = "KEHEH WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .GAF },
241 .{ .codepoint = 0x06AC, .schematic_name = "KAF WITH DOT ABOVE", .joining_type = .D, .joining_group = .KAF },
242 .{ .codepoint = 0x06AD, .schematic_name = "KAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .KAF },
243 .{ .codepoint = 0x06AE, .schematic_name = "KAF WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .KAF },
244 .{ .codepoint = 0x06AF, .schematic_name = "GAF", .joining_type = .D, .joining_group = .GAF },
245 .{ .codepoint = 0x06B0, .schematic_name = "GAF WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .GAF },
246 .{ .codepoint = 0x06B1, .schematic_name = "GAF WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF },
247 .{ .codepoint = 0x06B2, .schematic_name = "GAF WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .GAF },
248 .{ .codepoint = 0x06B3, .schematic_name = "GAF WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .GAF },
249 .{ .codepoint = 0x06B4, .schematic_name = "GAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF },
250 .{ .codepoint = 0x06B5, .schematic_name = "LAM WITH V ABOVE", .joining_type = .D, .joining_group = .LAM },
251 .{ .codepoint = 0x06B6, .schematic_name = "LAM WITH DOT ABOVE", .joining_type = .D, .joining_group = .LAM },
252 .{ .codepoint = 0x06B7, .schematic_name = "LAM WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .LAM },
253 .{ .codepoint = 0x06B8, .schematic_name = "LAM WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .LAM },
254 .{ .codepoint = 0x06B9, .schematic_name = "NOON WITH DOT BELOW", .joining_type = .D, .joining_group = .NOON },
255 .{ .codepoint = 0x06BA, .schematic_name = "DOTLESS NOON", .joining_type = .D, .joining_group = .NOON },
256 .{ .codepoint = 0x06BB, .schematic_name = "DOTLESS NOON WITH TAH ABOVE", .joining_type = .D, .joining_group = .NOON },
257 .{ .codepoint = 0x06BC, .schematic_name = "NOON WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .NOON },
258 .{ .codepoint = 0x06BD, .schematic_name = "NYA", .joining_type = .D, .joining_group = .NYA },
259 .{ .codepoint = 0x06BE, .schematic_name = "KNOTTED HEH", .joining_type = .D, .joining_group = .KNOTTED_HEH },
260 .{ .codepoint = 0x06BF, .schematic_name = "HAH WITH 3 DOTS BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .HAH },
261 .{ .codepoint = 0x06C0, .schematic_name = "DOTLESS TEH MARBUTA WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .TEH_MARBUTA },
262 .{ .codepoint = 0x06C1, .schematic_name = "HEH GOAL", .joining_type = .D, .joining_group = .HEH_GOAL },
263 .{ .codepoint = 0x06C2, .schematic_name = "HEH GOAL WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .HEH_GOAL },
264 .{ .codepoint = 0x06C3, .schematic_name = "TEH MARBUTA GOAL", .joining_type = .R, .joining_group = .TEH_MARBUTA_GOAL },
265 .{ .codepoint = 0x06C4, .schematic_name = "WAW WITH ATTACHED RING WITHIN", .joining_type = .R, .joining_group = .WAW },
266 .{ .codepoint = 0x06C5, .schematic_name = "WAW WITH BAR", .joining_type = .R, .joining_group = .WAW },
267 .{ .codepoint = 0x06C6, .schematic_name = "WAW WITH V ABOVE", .joining_type = .R, .joining_group = .WAW },
268 .{ .codepoint = 0x06C7, .schematic_name = "WAW WITH DAMMA ABOVE", .joining_type = .R, .joining_group = .WAW },
269 .{ .codepoint = 0x06C8, .schematic_name = "WAW WITH ALEF ABOVE", .joining_type = .R, .joining_group = .WAW },
270 .{ .codepoint = 0x06C9, .schematic_name = "WAW WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .WAW },
271 .{ .codepoint = 0x06CA, .schematic_name = "WAW WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .WAW },
272 .{ .codepoint = 0x06CB, .schematic_name = "WAW WITH 3 DOTS ABOVE", .joining_type = .R, .joining_group = .WAW },
273 .{ .codepoint = 0x06CC, .schematic_name = "FARSI YEH", .joining_type = .D, .joining_group = .FARSI_YEH },
274 .{ .codepoint = 0x06CD, .schematic_name = "YEH WITH TAIL", .joining_type = .R, .joining_group = .YEH_WITH_TAIL },
275 .{ .codepoint = 0x06CE, .schematic_name = "FARSI YEH WITH V ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
276 .{ .codepoint = 0x06CF, .schematic_name = "WAW WITH DOT ABOVE", .joining_type = .R, .joining_group = .WAW },
277 .{ .codepoint = 0x06D0, .schematic_name = "DOTLESS YEH WITH VERTICAL 2 DOTS BELOW", .joining_type = .D, .joining_group = .YEH },
278 .{ .codepoint = 0x06D1, .schematic_name = "DOTLESS YEH WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .YEH },
279 .{ .codepoint = 0x06D2, .schematic_name = "YEH BARREE", .joining_type = .R, .joining_group = .YEH_BARREE },
280 .{ .codepoint = 0x06D3, .schematic_name = "YEH BARREE WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .YEH_BARREE },
281 .{ .codepoint = 0x06D5, .schematic_name = "DOTLESS TEH MARBUTA", .joining_type = .R, .joining_group = .TEH_MARBUTA },
282 .{ .codepoint = 0x06DD, .schematic_name = "ARABIC END OF AYAH", .joining_type = .U, .joining_group = .No_Joining_Group },
283 .{ .codepoint = 0x06EE, .schematic_name = "DAL WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .DAL },
284 .{ .codepoint = 0x06EF, .schematic_name = "REH WITH INVERTED V ABOVE", .joining_type = .R, .joining_group = .REH },
285 .{ .codepoint = 0x06FA, .schematic_name = "SEEN WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN },
286 .{ .codepoint = 0x06FB, .schematic_name = "SAD WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .SAD },
287 .{ .codepoint = 0x06FC, .schematic_name = "AIN WITH DOT BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .AIN },
288 .{ .codepoint = 0x06FF, .schematic_name = "KNOTTED HEH WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .KNOTTED_HEH },
289 .{ .codepoint = 0x070F, .schematic_name = "SYRIAC ABBREVIATION MARK", .joining_type = .T, .joining_group = .No_Joining_Group },
290 .{ .codepoint = 0x0710, .schematic_name = "ALAPH", .joining_type = .R, .joining_group = .ALAPH },
291 .{ .codepoint = 0x0712, .schematic_name = "BETH", .joining_type = .D, .joining_group = .BETH },
292 .{ .codepoint = 0x0713, .schematic_name = "GAMAL", .joining_type = .D, .joining_group = .GAMAL },
293 .{ .codepoint = 0x0714, .schematic_name = "GAMAL GARSHUNI", .joining_type = .D, .joining_group = .GAMAL },
294 .{ .codepoint = 0x0715, .schematic_name = "DALATH", .joining_type = .R, .joining_group = .DALATH_RISH },
295 .{ .codepoint = 0x0716, .schematic_name = "DOTLESS DALATH RISH", .joining_type = .R, .joining_group = .DALATH_RISH },
296 .{ .codepoint = 0x0717, .schematic_name = "HE", .joining_type = .R, .joining_group = .HE },
297 .{ .codepoint = 0x0718, .schematic_name = "WAW", .joining_type = .R, .joining_group = .SYRIAC_WAW },
298 .{ .codepoint = 0x0719, .schematic_name = "ZAIN", .joining_type = .R, .joining_group = .ZAIN },
299 .{ .codepoint = 0x071A, .schematic_name = "HETH", .joining_type = .D, .joining_group = .HETH },
300 .{ .codepoint = 0x071B, .schematic_name = "TETH", .joining_type = .D, .joining_group = .TETH },
301 .{ .codepoint = 0x071C, .schematic_name = "TETH GARSHUNI", .joining_type = .D, .joining_group = .TETH },
302 .{ .codepoint = 0x071D, .schematic_name = "YUDH", .joining_type = .D, .joining_group = .YUDH },
303 .{ .codepoint = 0x071E, .schematic_name = "YUDH HE", .joining_type = .R, .joining_group = .YUDH_HE },
304 .{ .codepoint = 0x071F, .schematic_name = "KAPH", .joining_type = .D, .joining_group = .KAPH },
305 .{ .codepoint = 0x0720, .schematic_name = "LAMADH", .joining_type = .D, .joining_group = .LAMADH },
306 .{ .codepoint = 0x0721, .schematic_name = "MIM", .joining_type = .D, .joining_group = .MIM },
307 .{ .codepoint = 0x0722, .schematic_name = "NUN", .joining_type = .D, .joining_group = .NUN },
308 .{ .codepoint = 0x0723, .schematic_name = "SEMKATH", .joining_type = .D, .joining_group = .SEMKATH },
309 .{ .codepoint = 0x0724, .schematic_name = "FINAL SEMKATH", .joining_type = .D, .joining_group = .FINAL_SEMKATH },
310 .{ .codepoint = 0x0725, .schematic_name = "E", .joining_type = .D, .joining_group = .E },
311 .{ .codepoint = 0x0726, .schematic_name = "PE", .joining_type = .D, .joining_group = .PE },
312 .{ .codepoint = 0x0727, .schematic_name = "REVERSED PE", .joining_type = .D, .joining_group = .REVERSED_PE },
313 .{ .codepoint = 0x0728, .schematic_name = "SADHE", .joining_type = .R, .joining_group = .SADHE },
314 .{ .codepoint = 0x0729, .schematic_name = "QAPH", .joining_type = .D, .joining_group = .QAPH },
315 .{ .codepoint = 0x072A, .schematic_name = "RISH", .joining_type = .R, .joining_group = .DALATH_RISH },
316 .{ .codepoint = 0x072B, .schematic_name = "SHIN", .joining_type = .D, .joining_group = .SHIN },
317 .{ .codepoint = 0x072C, .schematic_name = "TAW", .joining_type = .R, .joining_group = .TAW },
318 .{ .codepoint = 0x072D, .schematic_name = "PERSIAN BHETH", .joining_type = .D, .joining_group = .BETH },
319 .{ .codepoint = 0x072E, .schematic_name = "PERSIAN GHAMAL", .joining_type = .D, .joining_group = .GAMAL },
320 .{ .codepoint = 0x072F, .schematic_name = "PERSIAN DHALATH", .joining_type = .R, .joining_group = .DALATH_RISH },
321 .{ .codepoint = 0x074D, .schematic_name = "SOGDIAN ZHAIN", .joining_type = .R, .joining_group = .ZHAIN },
322 .{ .codepoint = 0x074E, .schematic_name = "SOGDIAN KHAPH", .joining_type = .D, .joining_group = .KHAPH },
323 .{ .codepoint = 0x074F, .schematic_name = "SOGDIAN FE", .joining_type = .D, .joining_group = .FE },
324 .{ .codepoint = 0x0750, .schematic_name = "DOTLESS BEH WITH HORIZONTAL 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH },
325 .{ .codepoint = 0x0751, .schematic_name = "BEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
326 .{ .codepoint = 0x0752, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .BEH },
327 .{ .codepoint = 0x0753, .schematic_name = "DOTLESS BEH WITH INVERTED 3 DOTS BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .BEH },
328 .{ .codepoint = 0x0754, .schematic_name = "DOTLESS BEH WITH 2 DOTS BELOW AND DOT ABOVE", .joining_type = .D, .joining_group = .BEH },
329 .{ .codepoint = 0x0755, .schematic_name = "DOTLESS BEH WITH INVERTED V BELOW", .joining_type = .D, .joining_group = .BEH },
330 .{ .codepoint = 0x0756, .schematic_name = "DOTLESS BEH WITH V ABOVE", .joining_type = .D, .joining_group = .BEH },
331 .{ .codepoint = 0x0757, .schematic_name = "HAH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH },
332 .{ .codepoint = 0x0758, .schematic_name = "HAH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
333 .{ .codepoint = 0x0759, .schematic_name = "DAL WITH VERTICAL 2 DOTS BELOW AND TAH ABOVE", .joining_type = .R, .joining_group = .DAL },
334 .{ .codepoint = 0x075A, .schematic_name = "DAL WITH INVERTED V BELOW", .joining_type = .R, .joining_group = .DAL },
335 .{ .codepoint = 0x075B, .schematic_name = "REH WITH BAR", .joining_type = .R, .joining_group = .REH },
336 .{ .codepoint = 0x075C, .schematic_name = "SEEN WITH 4 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN },
337 .{ .codepoint = 0x075D, .schematic_name = "AIN WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN },
338 .{ .codepoint = 0x075E, .schematic_name = "AIN WITH INVERTED 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN },
339 .{ .codepoint = 0x075F, .schematic_name = "AIN WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN },
340 .{ .codepoint = 0x0760, .schematic_name = "DOTLESS FEH WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .FEH },
341 .{ .codepoint = 0x0761, .schematic_name = "DOTLESS FEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .FEH },
342 .{ .codepoint = 0x0762, .schematic_name = "KEHEH WITH DOT ABOVE", .joining_type = .D, .joining_group = .GAF },
343 .{ .codepoint = 0x0763, .schematic_name = "KEHEH WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .GAF },
344 .{ .codepoint = 0x0764, .schematic_name = "KEHEH WITH INVERTED 3 DOTS BELOW", .joining_type = .D, .joining_group = .GAF },
345 .{ .codepoint = 0x0765, .schematic_name = "MEEM WITH DOT ABOVE", .joining_type = .D, .joining_group = .MEEM },
346 .{ .codepoint = 0x0766, .schematic_name = "MEEM WITH DOT BELOW", .joining_type = .D, .joining_group = .MEEM },
347 .{ .codepoint = 0x0767, .schematic_name = "NOON WITH 2 DOTS BELOW", .joining_type = .D, .joining_group = .NOON },
348 .{ .codepoint = 0x0768, .schematic_name = "NOON WITH TAH ABOVE", .joining_type = .D, .joining_group = .NOON },
349 .{ .codepoint = 0x0769, .schematic_name = "NOON WITH V ABOVE", .joining_type = .D, .joining_group = .NOON },
350 .{ .codepoint = 0x076A, .schematic_name = "LAM WITH BAR", .joining_type = .D, .joining_group = .LAM },
351 .{ .codepoint = 0x076B, .schematic_name = "REH WITH VERTICAL 2 DOTS ABOVE", .joining_type = .R, .joining_group = .REH },
352 .{ .codepoint = 0x076C, .schematic_name = "REH WITH HAMZA ABOVE", .joining_type = .R, .joining_group = .REH },
353 .{ .codepoint = 0x076D, .schematic_name = "SEEN WITH VERTICAL 2 DOTS ABOVE", .joining_type = .D, .joining_group = .SEEN },
354 .{ .codepoint = 0x076E, .schematic_name = "HAH WITH TAH BELOW", .joining_type = .D, .joining_group = .HAH },
355 .{ .codepoint = 0x076F, .schematic_name = "HAH WITH TAH AND 2 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
356 .{ .codepoint = 0x0770, .schematic_name = "SEEN WITH 2 DOTS AND TAH ABOVE", .joining_type = .D, .joining_group = .SEEN },
357 .{ .codepoint = 0x0771, .schematic_name = "REH WITH 2 DOTS AND TAH ABOVE", .joining_type = .R, .joining_group = .REH },
358 .{ .codepoint = 0x0772, .schematic_name = "HAH WITH TAH ABOVE", .joining_type = .D, .joining_group = .HAH },
359 .{ .codepoint = 0x0773, .schematic_name = "ALEF WITH DIGIT TWO ABOVE", .joining_type = .R, .joining_group = .ALEF },
360 .{ .codepoint = 0x0774, .schematic_name = "ALEF WITH DIGIT THREE ABOVE", .joining_type = .R, .joining_group = .ALEF },
361 .{ .codepoint = 0x0775, .schematic_name = "FARSI YEH WITH DIGIT TWO ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
362 .{ .codepoint = 0x0776, .schematic_name = "FARSI YEH WITH DIGIT THREE ABOVE", .joining_type = .D, .joining_group = .FARSI_YEH },
363 .{ .codepoint = 0x0777, .schematic_name = "DOTLESS YEH WITH DIGIT FOUR BELOW", .joining_type = .D, .joining_group = .YEH },
364 .{ .codepoint = 0x0778, .schematic_name = "WAW WITH DIGIT TWO ABOVE", .joining_type = .R, .joining_group = .WAW },
365 .{ .codepoint = 0x0779, .schematic_name = "WAW WITH DIGIT THREE ABOVE", .joining_type = .R, .joining_group = .WAW },
366 .{ .codepoint = 0x077A, .schematic_name = "BURUSHASKI YEH BARREE WITH DIGIT TWO ABOVE", .joining_type = .D, .joining_group = .BURUSHASKI_YEH_BARREE },
367 .{ .codepoint = 0x077B, .schematic_name = "BURUSHASKI YEH BARREE WITH DIGIT THREE ABOVE", .joining_type = .D, .joining_group = .BURUSHASKI_YEH_BARREE },
368 .{ .codepoint = 0x077C, .schematic_name = "HAH WITH DIGIT FOUR BELOW", .joining_type = .D, .joining_group = .HAH },
369 .{ .codepoint = 0x077D, .schematic_name = "SEEN WITH DIGIT FOUR ABOVE", .joining_type = .D, .joining_group = .SEEN },
370 .{ .codepoint = 0x077E, .schematic_name = "SEEN WITH INVERTED V ABOVE", .joining_type = .D, .joining_group = .SEEN },
371 .{ .codepoint = 0x077F, .schematic_name = "KAF WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .KAF },
372 .{ .codepoint = 0x07CA, .schematic_name = "NKO A", .joining_type = .D, .joining_group = .No_Joining_Group },
373 .{ .codepoint = 0x07CB, .schematic_name = "NKO EE", .joining_type = .D, .joining_group = .No_Joining_Group },
374 .{ .codepoint = 0x07CC, .schematic_name = "NKO I", .joining_type = .D, .joining_group = .No_Joining_Group },
375 .{ .codepoint = 0x07CD, .schematic_name = "NKO E", .joining_type = .D, .joining_group = .No_Joining_Group },
376 .{ .codepoint = 0x07CE, .schematic_name = "NKO U", .joining_type = .D, .joining_group = .No_Joining_Group },
377 .{ .codepoint = 0x07CF, .schematic_name = "NKO OO", .joining_type = .D, .joining_group = .No_Joining_Group },
378 .{ .codepoint = 0x07D0, .schematic_name = "NKO O", .joining_type = .D, .joining_group = .No_Joining_Group },
379 .{ .codepoint = 0x07D1, .schematic_name = "NKO DAGBASINNA", .joining_type = .D, .joining_group = .No_Joining_Group },
380 .{ .codepoint = 0x07D2, .schematic_name = "NKO N", .joining_type = .D, .joining_group = .No_Joining_Group },
381 .{ .codepoint = 0x07D3, .schematic_name = "NKO BA", .joining_type = .D, .joining_group = .No_Joining_Group },
382 .{ .codepoint = 0x07D4, .schematic_name = "NKO PA", .joining_type = .D, .joining_group = .No_Joining_Group },
383 .{ .codepoint = 0x07D5, .schematic_name = "NKO TA", .joining_type = .D, .joining_group = .No_Joining_Group },
384 .{ .codepoint = 0x07D6, .schematic_name = "NKO JA", .joining_type = .D, .joining_group = .No_Joining_Group },
385 .{ .codepoint = 0x07D7, .schematic_name = "NKO CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
386 .{ .codepoint = 0x07D8, .schematic_name = "NKO DA", .joining_type = .D, .joining_group = .No_Joining_Group },
387 .{ .codepoint = 0x07D9, .schematic_name = "NKO RA", .joining_type = .D, .joining_group = .No_Joining_Group },
388 .{ .codepoint = 0x07DA, .schematic_name = "NKO RRA", .joining_type = .D, .joining_group = .No_Joining_Group },
389 .{ .codepoint = 0x07DB, .schematic_name = "NKO SA", .joining_type = .D, .joining_group = .No_Joining_Group },
390 .{ .codepoint = 0x07DC, .schematic_name = "NKO GBA", .joining_type = .D, .joining_group = .No_Joining_Group },
391 .{ .codepoint = 0x07DD, .schematic_name = "NKO FA", .joining_type = .D, .joining_group = .No_Joining_Group },
392 .{ .codepoint = 0x07DE, .schematic_name = "NKO KA", .joining_type = .D, .joining_group = .No_Joining_Group },
393 .{ .codepoint = 0x07DF, .schematic_name = "NKO LA", .joining_type = .D, .joining_group = .No_Joining_Group },
394 .{ .codepoint = 0x07E0, .schematic_name = "NKO NA WOLOSO", .joining_type = .D, .joining_group = .No_Joining_Group },
395 .{ .codepoint = 0x07E1, .schematic_name = "NKO MA", .joining_type = .D, .joining_group = .No_Joining_Group },
396 .{ .codepoint = 0x07E2, .schematic_name = "NKO NYA", .joining_type = .D, .joining_group = .No_Joining_Group },
397 .{ .codepoint = 0x07E3, .schematic_name = "NKO NA", .joining_type = .D, .joining_group = .No_Joining_Group },
398 .{ .codepoint = 0x07E4, .schematic_name = "NKO HA", .joining_type = .D, .joining_group = .No_Joining_Group },
399 .{ .codepoint = 0x07E5, .schematic_name = "NKO WA", .joining_type = .D, .joining_group = .No_Joining_Group },
400 .{ .codepoint = 0x07E6, .schematic_name = "NKO YA", .joining_type = .D, .joining_group = .No_Joining_Group },
401 .{ .codepoint = 0x07E7, .schematic_name = "NKO NYA WOLOSO", .joining_type = .D, .joining_group = .No_Joining_Group },
402 .{ .codepoint = 0x07E8, .schematic_name = "NKO JONA JA", .joining_type = .D, .joining_group = .No_Joining_Group },
403 .{ .codepoint = 0x07E9, .schematic_name = "NKO JONA CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
404 .{ .codepoint = 0x07EA, .schematic_name = "NKO JONA RA", .joining_type = .D, .joining_group = .No_Joining_Group },
405 .{ .codepoint = 0x07FA, .schematic_name = "NKO LAJANYALAN", .joining_type = .C, .joining_group = .No_Joining_Group },
406 .{ .codepoint = 0x0840, .schematic_name = "MANDAIC HALQA", .joining_type = .R, .joining_group = .No_Joining_Group },
407 .{ .codepoint = 0x0841, .schematic_name = "MANDAIC AB", .joining_type = .D, .joining_group = .No_Joining_Group },
408 .{ .codepoint = 0x0842, .schematic_name = "MANDAIC AG", .joining_type = .D, .joining_group = .No_Joining_Group },
409 .{ .codepoint = 0x0843, .schematic_name = "MANDAIC AD", .joining_type = .D, .joining_group = .No_Joining_Group },
410 .{ .codepoint = 0x0844, .schematic_name = "MANDAIC AH", .joining_type = .D, .joining_group = .No_Joining_Group },
411 .{ .codepoint = 0x0845, .schematic_name = "MANDAIC USHENNA", .joining_type = .D, .joining_group = .No_Joining_Group },
412 .{ .codepoint = 0x0846, .schematic_name = "MANDAIC AZ", .joining_type = .R, .joining_group = .No_Joining_Group },
413 .{ .codepoint = 0x0847, .schematic_name = "MANDAIC IT", .joining_type = .R, .joining_group = .No_Joining_Group },
414 .{ .codepoint = 0x0848, .schematic_name = "MANDAIC ATT", .joining_type = .D, .joining_group = .No_Joining_Group },
415 .{ .codepoint = 0x0849, .schematic_name = "MANDAIC AKSA", .joining_type = .R, .joining_group = .No_Joining_Group },
416 .{ .codepoint = 0x084A, .schematic_name = "MANDAIC AK", .joining_type = .D, .joining_group = .No_Joining_Group },
417 .{ .codepoint = 0x084B, .schematic_name = "MANDAIC AL", .joining_type = .D, .joining_group = .No_Joining_Group },
418 .{ .codepoint = 0x084C, .schematic_name = "MANDAIC AM", .joining_type = .D, .joining_group = .No_Joining_Group },
419 .{ .codepoint = 0x084D, .schematic_name = "MANDAIC AN", .joining_type = .D, .joining_group = .No_Joining_Group },
420 .{ .codepoint = 0x084E, .schematic_name = "MANDAIC AS", .joining_type = .D, .joining_group = .No_Joining_Group },
421 .{ .codepoint = 0x084F, .schematic_name = "MANDAIC IN", .joining_type = .D, .joining_group = .No_Joining_Group },
422 .{ .codepoint = 0x0850, .schematic_name = "MANDAIC AP", .joining_type = .D, .joining_group = .No_Joining_Group },
423 .{ .codepoint = 0x0851, .schematic_name = "MANDAIC ASZ", .joining_type = .D, .joining_group = .No_Joining_Group },
424 .{ .codepoint = 0x0852, .schematic_name = "MANDAIC AQ", .joining_type = .D, .joining_group = .No_Joining_Group },
425 .{ .codepoint = 0x0853, .schematic_name = "MANDAIC AR", .joining_type = .D, .joining_group = .No_Joining_Group },
426 .{ .codepoint = 0x0854, .schematic_name = "MANDAIC ASH", .joining_type = .R, .joining_group = .No_Joining_Group },
427 .{ .codepoint = 0x0855, .schematic_name = "MANDAIC AT", .joining_type = .D, .joining_group = .No_Joining_Group },
428 .{ .codepoint = 0x0856, .schematic_name = "MANDAIC DUSHENNA", .joining_type = .R, .joining_group = .No_Joining_Group },
429 .{ .codepoint = 0x0857, .schematic_name = "MANDAIC KAD", .joining_type = .R, .joining_group = .No_Joining_Group },
430 .{ .codepoint = 0x0858, .schematic_name = "MANDAIC AIN", .joining_type = .R, .joining_group = .No_Joining_Group },
431 .{ .codepoint = 0x0860, .schematic_name = "MALAYALAM NGA", .joining_type = .D, .joining_group = .MALAYALAM_NGA },
432 .{ .codepoint = 0x0861, .schematic_name = "MALAYALAM JA", .joining_type = .U, .joining_group = .MALAYALAM_JA },
433 .{ .codepoint = 0x0862, .schematic_name = "MALAYALAM NYA", .joining_type = .D, .joining_group = .MALAYALAM_NYA },
434 .{ .codepoint = 0x0863, .schematic_name = "MALAYALAM TTA", .joining_type = .D, .joining_group = .MALAYALAM_TTA },
435 .{ .codepoint = 0x0864, .schematic_name = "MALAYALAM NNA", .joining_type = .D, .joining_group = .MALAYALAM_NNA },
436 .{ .codepoint = 0x0865, .schematic_name = "MALAYALAM NNNA", .joining_type = .D, .joining_group = .MALAYALAM_NNNA },
437 .{ .codepoint = 0x0866, .schematic_name = "MALAYALAM BHA", .joining_type = .U, .joining_group = .MALAYALAM_BHA },
438 .{ .codepoint = 0x0867, .schematic_name = "MALAYALAM RA", .joining_type = .R, .joining_group = .MALAYALAM_RA },
439 .{ .codepoint = 0x0868, .schematic_name = "MALAYALAM LLA", .joining_type = .D, .joining_group = .MALAYALAM_LLA },
440 .{ .codepoint = 0x0869, .schematic_name = "MALAYALAM LLLA", .joining_type = .R, .joining_group = .MALAYALAM_LLLA },
441 .{ .codepoint = 0x086A, .schematic_name = "MALAYALAM SSA", .joining_type = .R, .joining_group = .MALAYALAM_SSA },
442 .{ .codepoint = 0x08A0, .schematic_name = "DOTLESS BEH WITH V BELOW", .joining_type = .D, .joining_group = .BEH },
443 .{ .codepoint = 0x08A1, .schematic_name = "BEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .BEH },
444 .{ .codepoint = 0x08A2, .schematic_name = "HAH WITH DOT BELOW AND 2 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH },
445 .{ .codepoint = 0x08A3, .schematic_name = "TAH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .TAH },
446 .{ .codepoint = 0x08A4, .schematic_name = "DOTLESS FEH WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .FEH },
447 .{ .codepoint = 0x08A5, .schematic_name = "QAF WITH DOT BELOW", .joining_type = .D, .joining_group = .QAF },
448 .{ .codepoint = 0x08A6, .schematic_name = "LAM WITH DOUBLE BAR", .joining_type = .D, .joining_group = .LAM },
449 .{ .codepoint = 0x08A7, .schematic_name = "MEEM WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .MEEM },
450 .{ .codepoint = 0x08A8, .schematic_name = "YEH WITH HAMZA ABOVE", .joining_type = .D, .joining_group = .YEH },
451 .{ .codepoint = 0x08A9, .schematic_name = "YEH WITH DOT ABOVE", .joining_type = .D, .joining_group = .YEH },
452 .{ .codepoint = 0x08AA, .schematic_name = "REH WITH LOOP", .joining_type = .R, .joining_group = .REH },
453 .{ .codepoint = 0x08AB, .schematic_name = "WAW WITH DOT WITHIN", .joining_type = .R, .joining_group = .WAW },
454 .{ .codepoint = 0x08AC, .schematic_name = "ROHINGYA YEH", .joining_type = .R, .joining_group = .ROHINGYA_YEH },
455 .{ .codepoint = 0x08AD, .schematic_name = "LOW ALEF", .joining_type = .U, .joining_group = .No_Joining_Group },
456 .{ .codepoint = 0x08AE, .schematic_name = "DAL WITH 3 DOTS BELOW", .joining_type = .R, .joining_group = .DAL },
457 .{ .codepoint = 0x08AF, .schematic_name = "SAD WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .SAD },
458 .{ .codepoint = 0x08B0, .schematic_name = "KEHEH WITH STROKE BELOW", .joining_type = .D, .joining_group = .GAF },
459 .{ .codepoint = 0x08B1, .schematic_name = "STRAIGHT WAW", .joining_type = .R, .joining_group = .STRAIGHT_WAW },
460 .{ .codepoint = 0x08B2, .schematic_name = "REH WITH DOT AND INVERTED V ABOVE", .joining_type = .R, .joining_group = .REH },
461 .{ .codepoint = 0x08B3, .schematic_name = "AIN WITH 3 DOTS BELOW", .joining_type = .D, .joining_group = .AIN },
462 .{ .codepoint = 0x08B4, .schematic_name = "KAF WITH DOT BELOW", .joining_type = .D, .joining_group = .KAF },
463 .{ .codepoint = 0x08B6, .schematic_name = "BEH WITH MEEM ABOVE", .joining_type = .D, .joining_group = .BEH },
464 .{ .codepoint = 0x08B7, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW AND MEEM ABOVE", .joining_type = .D, .joining_group = .BEH },
465 .{ .codepoint = 0x08B8, .schematic_name = "DOTLESS BEH WITH TEH ABOVE", .joining_type = .D, .joining_group = .BEH },
466 .{ .codepoint = 0x08B9, .schematic_name = "REH WITH NOON ABOVE", .joining_type = .R, .joining_group = .REH },
467 .{ .codepoint = 0x08BA, .schematic_name = "YEH WITH NOON ABOVE", .joining_type = .D, .joining_group = .YEH },
468 .{ .codepoint = 0x08BB, .schematic_name = "AFRICAN FEH", .joining_type = .D, .joining_group = .AFRICAN_FEH },
469 .{ .codepoint = 0x08BC, .schematic_name = "AFRICAN QAF", .joining_type = .D, .joining_group = .AFRICAN_QAF },
470 .{ .codepoint = 0x08BD, .schematic_name = "AFRICAN NOON", .joining_type = .D, .joining_group = .AFRICAN_NOON },
471 .{ .codepoint = 0x08BE, .schematic_name = "DOTLESS BEH WITH 3 DOTS BELOW AND V ABOVE", .joining_type = .D, .joining_group = .BEH },
472 .{ .codepoint = 0x08BF, .schematic_name = "DOTLESS BEH WITH 2 DOTS AND V ABOVE", .joining_type = .D, .joining_group = .BEH },
473 .{ .codepoint = 0x08C0, .schematic_name = "DOTLESS BEH WITH TAH AND V ABOVE", .joining_type = .D, .joining_group = .BEH },
474 .{ .codepoint = 0x08C1, .schematic_name = "HAH WITH 3 DOTS BELOW AND V ABOVE", .joining_type = .D, .joining_group = .HAH },
475 .{ .codepoint = 0x08C2, .schematic_name = "KEHEH WITH V ABOVE", .joining_type = .D, .joining_group = .GAF },
476 .{ .codepoint = 0x08C3, .schematic_name = "AIN WITH DIAMOND 4 DOTS ABOVE", .joining_type = .D, .joining_group = .AIN },
477 .{ .codepoint = 0x08C4, .schematic_name = "AFRICAN QAF WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .AFRICAN_QAF },
478 .{ .codepoint = 0x08C5, .schematic_name = "HAH WITH DOT BELOW AND 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HAH },
479 .{ .codepoint = 0x08C6, .schematic_name = "HAH WITH DIAMOND 4 DOTS BELOW", .joining_type = .D, .joining_group = .HAH },
480 .{ .codepoint = 0x08C7, .schematic_name = "LAM WITH TAH ABOVE", .joining_type = .D, .joining_group = .LAM },
481 .{ .codepoint = 0x08E2, .schematic_name = "ARABIC DISPUTED END OF AYAH", .joining_type = .U, .joining_group = .No_Joining_Group },
482 .{ .codepoint = 0x1806, .schematic_name = "MONGOLIAN TODO SOFT HYPHEN", .joining_type = .U, .joining_group = .No_Joining_Group },
483 .{ .codepoint = 0x1807, .schematic_name = "MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER", .joining_type = .D, .joining_group = .No_Joining_Group },
484 .{ .codepoint = 0x180A, .schematic_name = "MONGOLIAN NIRUGU", .joining_type = .C, .joining_group = .No_Joining_Group },
485 .{ .codepoint = 0x180E, .schematic_name = "MONGOLIAN VOWEL SEPARATOR", .joining_type = .U, .joining_group = .No_Joining_Group },
486 .{ .codepoint = 0x1820, .schematic_name = "MONGOLIAN A", .joining_type = .D, .joining_group = .No_Joining_Group },
487 .{ .codepoint = 0x1821, .schematic_name = "MONGOLIAN E", .joining_type = .D, .joining_group = .No_Joining_Group },
488 .{ .codepoint = 0x1822, .schematic_name = "MONGOLIAN I", .joining_type = .D, .joining_group = .No_Joining_Group },
489 .{ .codepoint = 0x1823, .schematic_name = "MONGOLIAN O", .joining_type = .D, .joining_group = .No_Joining_Group },
490 .{ .codepoint = 0x1824, .schematic_name = "MONGOLIAN U", .joining_type = .D, .joining_group = .No_Joining_Group },
491 .{ .codepoint = 0x1825, .schematic_name = "MONGOLIAN OE", .joining_type = .D, .joining_group = .No_Joining_Group },
492 .{ .codepoint = 0x1826, .schematic_name = "MONGOLIAN UE", .joining_type = .D, .joining_group = .No_Joining_Group },
493 .{ .codepoint = 0x1827, .schematic_name = "MONGOLIAN EE", .joining_type = .D, .joining_group = .No_Joining_Group },
494 .{ .codepoint = 0x1828, .schematic_name = "MONGOLIAN NA", .joining_type = .D, .joining_group = .No_Joining_Group },
495 .{ .codepoint = 0x1829, .schematic_name = "MONGOLIAN ANG", .joining_type = .D, .joining_group = .No_Joining_Group },
496 .{ .codepoint = 0x182A, .schematic_name = "MONGOLIAN BA", .joining_type = .D, .joining_group = .No_Joining_Group },
497 .{ .codepoint = 0x182B, .schematic_name = "MONGOLIAN PA", .joining_type = .D, .joining_group = .No_Joining_Group },
498 .{ .codepoint = 0x182C, .schematic_name = "MONGOLIAN QA", .joining_type = .D, .joining_group = .No_Joining_Group },
499 .{ .codepoint = 0x182D, .schematic_name = "MONGOLIAN GA", .joining_type = .D, .joining_group = .No_Joining_Group },
500 .{ .codepoint = 0x182E, .schematic_name = "MONGOLIAN MA", .joining_type = .D, .joining_group = .No_Joining_Group },
501 .{ .codepoint = 0x182F, .schematic_name = "MONGOLIAN LA", .joining_type = .D, .joining_group = .No_Joining_Group },
502 .{ .codepoint = 0x1830, .schematic_name = "MONGOLIAN SA", .joining_type = .D, .joining_group = .No_Joining_Group },
503 .{ .codepoint = 0x1831, .schematic_name = "MONGOLIAN SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
504 .{ .codepoint = 0x1832, .schematic_name = "MONGOLIAN TA", .joining_type = .D, .joining_group = .No_Joining_Group },
505 .{ .codepoint = 0x1833, .schematic_name = "MONGOLIAN DA", .joining_type = .D, .joining_group = .No_Joining_Group },
506 .{ .codepoint = 0x1834, .schematic_name = "MONGOLIAN CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
507 .{ .codepoint = 0x1835, .schematic_name = "MONGOLIAN JA", .joining_type = .D, .joining_group = .No_Joining_Group },
508 .{ .codepoint = 0x1836, .schematic_name = "MONGOLIAN YA", .joining_type = .D, .joining_group = .No_Joining_Group },
509 .{ .codepoint = 0x1837, .schematic_name = "MONGOLIAN RA", .joining_type = .D, .joining_group = .No_Joining_Group },
510 .{ .codepoint = 0x1838, .schematic_name = "MONGOLIAN WA", .joining_type = .D, .joining_group = .No_Joining_Group },
511 .{ .codepoint = 0x1839, .schematic_name = "MONGOLIAN FA", .joining_type = .D, .joining_group = .No_Joining_Group },
512 .{ .codepoint = 0x183A, .schematic_name = "MONGOLIAN KA", .joining_type = .D, .joining_group = .No_Joining_Group },
513 .{ .codepoint = 0x183B, .schematic_name = "MONGOLIAN KHA", .joining_type = .D, .joining_group = .No_Joining_Group },
514 .{ .codepoint = 0x183C, .schematic_name = "MONGOLIAN TSA", .joining_type = .D, .joining_group = .No_Joining_Group },
515 .{ .codepoint = 0x183D, .schematic_name = "MONGOLIAN ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
516 .{ .codepoint = 0x183E, .schematic_name = "MONGOLIAN HAA", .joining_type = .D, .joining_group = .No_Joining_Group },
517 .{ .codepoint = 0x183F, .schematic_name = "MONGOLIAN ZRA", .joining_type = .D, .joining_group = .No_Joining_Group },
518 .{ .codepoint = 0x1840, .schematic_name = "MONGOLIAN LHA", .joining_type = .D, .joining_group = .No_Joining_Group },
519 .{ .codepoint = 0x1841, .schematic_name = "MONGOLIAN ZHI", .joining_type = .D, .joining_group = .No_Joining_Group },
520 .{ .codepoint = 0x1842, .schematic_name = "MONGOLIAN CHI", .joining_type = .D, .joining_group = .No_Joining_Group },
521 .{ .codepoint = 0x1843, .schematic_name = "MONGOLIAN TODO LONG VOWEL SIGN", .joining_type = .D, .joining_group = .No_Joining_Group },
522 .{ .codepoint = 0x1844, .schematic_name = "MONGOLIAN TODO E", .joining_type = .D, .joining_group = .No_Joining_Group },
523 .{ .codepoint = 0x1845, .schematic_name = "MONGOLIAN TODO I", .joining_type = .D, .joining_group = .No_Joining_Group },
524 .{ .codepoint = 0x1846, .schematic_name = "MONGOLIAN TODO O", .joining_type = .D, .joining_group = .No_Joining_Group },
525 .{ .codepoint = 0x1847, .schematic_name = "MONGOLIAN TODO U", .joining_type = .D, .joining_group = .No_Joining_Group },
526 .{ .codepoint = 0x1848, .schematic_name = "MONGOLIAN TODO OE", .joining_type = .D, .joining_group = .No_Joining_Group },
527 .{ .codepoint = 0x1849, .schematic_name = "MONGOLIAN TODO UE", .joining_type = .D, .joining_group = .No_Joining_Group },
528 .{ .codepoint = 0x184A, .schematic_name = "MONGOLIAN TODO ANG", .joining_type = .D, .joining_group = .No_Joining_Group },
529 .{ .codepoint = 0x184B, .schematic_name = "MONGOLIAN TODO BA", .joining_type = .D, .joining_group = .No_Joining_Group },
530 .{ .codepoint = 0x184C, .schematic_name = "MONGOLIAN TODO PA", .joining_type = .D, .joining_group = .No_Joining_Group },
531 .{ .codepoint = 0x184D, .schematic_name = "MONGOLIAN TODO QA", .joining_type = .D, .joining_group = .No_Joining_Group },
532 .{ .codepoint = 0x184E, .schematic_name = "MONGOLIAN TODO GA", .joining_type = .D, .joining_group = .No_Joining_Group },
533 .{ .codepoint = 0x184F, .schematic_name = "MONGOLIAN TODO MA", .joining_type = .D, .joining_group = .No_Joining_Group },
534 .{ .codepoint = 0x1850, .schematic_name = "MONGOLIAN TODO TA", .joining_type = .D, .joining_group = .No_Joining_Group },
535 .{ .codepoint = 0x1851, .schematic_name = "MONGOLIAN TODO DA", .joining_type = .D, .joining_group = .No_Joining_Group },
536 .{ .codepoint = 0x1852, .schematic_name = "MONGOLIAN TODO CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
537 .{ .codepoint = 0x1853, .schematic_name = "MONGOLIAN TODO JA", .joining_type = .D, .joining_group = .No_Joining_Group },
538 .{ .codepoint = 0x1854, .schematic_name = "MONGOLIAN TODO TSA", .joining_type = .D, .joining_group = .No_Joining_Group },
539 .{ .codepoint = 0x1855, .schematic_name = "MONGOLIAN TODO YA", .joining_type = .D, .joining_group = .No_Joining_Group },
540 .{ .codepoint = 0x1856, .schematic_name = "MONGOLIAN TODO WA", .joining_type = .D, .joining_group = .No_Joining_Group },
541 .{ .codepoint = 0x1857, .schematic_name = "MONGOLIAN TODO KA", .joining_type = .D, .joining_group = .No_Joining_Group },
542 .{ .codepoint = 0x1858, .schematic_name = "MONGOLIAN TODO GAA", .joining_type = .D, .joining_group = .No_Joining_Group },
543 .{ .codepoint = 0x1859, .schematic_name = "MONGOLIAN TODO HAA", .joining_type = .D, .joining_group = .No_Joining_Group },
544 .{ .codepoint = 0x185A, .schematic_name = "MONGOLIAN TODO JIA", .joining_type = .D, .joining_group = .No_Joining_Group },
545 .{ .codepoint = 0x185B, .schematic_name = "MONGOLIAN TODO NIA", .joining_type = .D, .joining_group = .No_Joining_Group },
546 .{ .codepoint = 0x185C, .schematic_name = "MONGOLIAN TODO DZA", .joining_type = .D, .joining_group = .No_Joining_Group },
547 .{ .codepoint = 0x185D, .schematic_name = "MONGOLIAN SIBE E", .joining_type = .D, .joining_group = .No_Joining_Group },
548 .{ .codepoint = 0x185E, .schematic_name = "MONGOLIAN SIBE I", .joining_type = .D, .joining_group = .No_Joining_Group },
549 .{ .codepoint = 0x185F, .schematic_name = "MONGOLIAN SIBE IY", .joining_type = .D, .joining_group = .No_Joining_Group },
550 .{ .codepoint = 0x1860, .schematic_name = "MONGOLIAN SIBE UE", .joining_type = .D, .joining_group = .No_Joining_Group },
551 .{ .codepoint = 0x1861, .schematic_name = "MONGOLIAN SIBE U", .joining_type = .D, .joining_group = .No_Joining_Group },
552 .{ .codepoint = 0x1862, .schematic_name = "MONGOLIAN SIBE ANG", .joining_type = .D, .joining_group = .No_Joining_Group },
553 .{ .codepoint = 0x1863, .schematic_name = "MONGOLIAN SIBE KA", .joining_type = .D, .joining_group = .No_Joining_Group },
554 .{ .codepoint = 0x1864, .schematic_name = "MONGOLIAN SIBE GA", .joining_type = .D, .joining_group = .No_Joining_Group },
555 .{ .codepoint = 0x1865, .schematic_name = "MONGOLIAN SIBE HA", .joining_type = .D, .joining_group = .No_Joining_Group },
556 .{ .codepoint = 0x1866, .schematic_name = "MONGOLIAN SIBE PA", .joining_type = .D, .joining_group = .No_Joining_Group },
557 .{ .codepoint = 0x1867, .schematic_name = "MONGOLIAN SIBE SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
558 .{ .codepoint = 0x1868, .schematic_name = "MONGOLIAN SIBE TA", .joining_type = .D, .joining_group = .No_Joining_Group },
559 .{ .codepoint = 0x1869, .schematic_name = "MONGOLIAN SIBE DA", .joining_type = .D, .joining_group = .No_Joining_Group },
560 .{ .codepoint = 0x186A, .schematic_name = "MONGOLIAN SIBE JA", .joining_type = .D, .joining_group = .No_Joining_Group },
561 .{ .codepoint = 0x186B, .schematic_name = "MONGOLIAN SIBE FA", .joining_type = .D, .joining_group = .No_Joining_Group },
562 .{ .codepoint = 0x186C, .schematic_name = "MONGOLIAN SIBE GAA", .joining_type = .D, .joining_group = .No_Joining_Group },
563 .{ .codepoint = 0x186D, .schematic_name = "MONGOLIAN SIBE HAA", .joining_type = .D, .joining_group = .No_Joining_Group },
564 .{ .codepoint = 0x186E, .schematic_name = "MONGOLIAN SIBE TSA", .joining_type = .D, .joining_group = .No_Joining_Group },
565 .{ .codepoint = 0x186F, .schematic_name = "MONGOLIAN SIBE ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
566 .{ .codepoint = 0x1870, .schematic_name = "MONGOLIAN SIBE RAA", .joining_type = .D, .joining_group = .No_Joining_Group },
567 .{ .codepoint = 0x1871, .schematic_name = "MONGOLIAN SIBE CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
568 .{ .codepoint = 0x1872, .schematic_name = "MONGOLIAN SIBE ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
569 .{ .codepoint = 0x1873, .schematic_name = "MONGOLIAN MANCHU I", .joining_type = .D, .joining_group = .No_Joining_Group },
570 .{ .codepoint = 0x1874, .schematic_name = "MONGOLIAN MANCHU KA", .joining_type = .D, .joining_group = .No_Joining_Group },
571 .{ .codepoint = 0x1875, .schematic_name = "MONGOLIAN MANCHU RA", .joining_type = .D, .joining_group = .No_Joining_Group },
572 .{ .codepoint = 0x1876, .schematic_name = "MONGOLIAN MANCHU FA", .joining_type = .D, .joining_group = .No_Joining_Group },
573 .{ .codepoint = 0x1877, .schematic_name = "MONGOLIAN MANCHU ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
574 .{ .codepoint = 0x1878, .schematic_name = "MONGOLIAN MANCHU CHA WITH 2 DOTS", .joining_type = .D, .joining_group = .No_Joining_Group },
575 .{ .codepoint = 0x1880, .schematic_name = "MONGOLIAN ALI GALI ANUSVARA ONE", .joining_type = .U, .joining_group = .No_Joining_Group },
576 .{ .codepoint = 0x1881, .schematic_name = "MONGOLIAN ALI GALI VISARGA ONE", .joining_type = .U, .joining_group = .No_Joining_Group },
577 .{ .codepoint = 0x1882, .schematic_name = "MONGOLIAN ALI GALI DAMARU", .joining_type = .U, .joining_group = .No_Joining_Group },
578 .{ .codepoint = 0x1883, .schematic_name = "MONGOLIAN ALI GALI UBADAMA", .joining_type = .U, .joining_group = .No_Joining_Group },
579 .{ .codepoint = 0x1884, .schematic_name = "MONGOLIAN ALI GALI INVERTED UBADAMA", .joining_type = .U, .joining_group = .No_Joining_Group },
580 .{ .codepoint = 0x1885, .schematic_name = "MONGOLIAN ALI GALI BALUDA", .joining_type = .T, .joining_group = .No_Joining_Group },
581 .{ .codepoint = 0x1886, .schematic_name = "MONGOLIAN ALI GALI THREE BALUDA", .joining_type = .T, .joining_group = .No_Joining_Group },
582 .{ .codepoint = 0x1887, .schematic_name = "MONGOLIAN ALI GALI A", .joining_type = .D, .joining_group = .No_Joining_Group },
583 .{ .codepoint = 0x1888, .schematic_name = "MONGOLIAN ALI GALI I", .joining_type = .D, .joining_group = .No_Joining_Group },
584 .{ .codepoint = 0x1889, .schematic_name = "MONGOLIAN ALI GALI KA", .joining_type = .D, .joining_group = .No_Joining_Group },
585 .{ .codepoint = 0x188A, .schematic_name = "MONGOLIAN ALI GALI NGA", .joining_type = .D, .joining_group = .No_Joining_Group },
586 .{ .codepoint = 0x188B, .schematic_name = "MONGOLIAN ALI GALI CA", .joining_type = .D, .joining_group = .No_Joining_Group },
587 .{ .codepoint = 0x188C, .schematic_name = "MONGOLIAN ALI GALI TTA", .joining_type = .D, .joining_group = .No_Joining_Group },
588 .{ .codepoint = 0x188D, .schematic_name = "MONGOLIAN ALI GALI TTHA", .joining_type = .D, .joining_group = .No_Joining_Group },
589 .{ .codepoint = 0x188E, .schematic_name = "MONGOLIAN ALI GALI DDA", .joining_type = .D, .joining_group = .No_Joining_Group },
590 .{ .codepoint = 0x188F, .schematic_name = "MONGOLIAN ALI GALI NNA", .joining_type = .D, .joining_group = .No_Joining_Group },
591 .{ .codepoint = 0x1890, .schematic_name = "MONGOLIAN ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group },
592 .{ .codepoint = 0x1891, .schematic_name = "MONGOLIAN ALI GALI DA", .joining_type = .D, .joining_group = .No_Joining_Group },
593 .{ .codepoint = 0x1892, .schematic_name = "MONGOLIAN ALI GALI PA", .joining_type = .D, .joining_group = .No_Joining_Group },
594 .{ .codepoint = 0x1893, .schematic_name = "MONGOLIAN ALI GALI PHA", .joining_type = .D, .joining_group = .No_Joining_Group },
595 .{ .codepoint = 0x1894, .schematic_name = "MONGOLIAN ALI GALI SSA", .joining_type = .D, .joining_group = .No_Joining_Group },
596 .{ .codepoint = 0x1895, .schematic_name = "MONGOLIAN ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
597 .{ .codepoint = 0x1896, .schematic_name = "MONGOLIAN ALI GALI ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
598 .{ .codepoint = 0x1897, .schematic_name = "MONGOLIAN ALI GALI AH", .joining_type = .D, .joining_group = .No_Joining_Group },
599 .{ .codepoint = 0x1898, .schematic_name = "MONGOLIAN TODO ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group },
600 .{ .codepoint = 0x1899, .schematic_name = "MONGOLIAN TODO ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
601 .{ .codepoint = 0x189A, .schematic_name = "MONGOLIAN MANCHU ALI GALI GHA", .joining_type = .D, .joining_group = .No_Joining_Group },
602 .{ .codepoint = 0x189B, .schematic_name = "MONGOLIAN MANCHU ALI GALI NGA", .joining_type = .D, .joining_group = .No_Joining_Group },
603 .{ .codepoint = 0x189C, .schematic_name = "MONGOLIAN MANCHU ALI GALI CA", .joining_type = .D, .joining_group = .No_Joining_Group },
604 .{ .codepoint = 0x189D, .schematic_name = "MONGOLIAN MANCHU ALI GALI JHA", .joining_type = .D, .joining_group = .No_Joining_Group },
605 .{ .codepoint = 0x189E, .schematic_name = "MONGOLIAN MANCHU ALI GALI TTA", .joining_type = .D, .joining_group = .No_Joining_Group },
606 .{ .codepoint = 0x189F, .schematic_name = "MONGOLIAN MANCHU ALI GALI DDHA", .joining_type = .D, .joining_group = .No_Joining_Group },
607 .{ .codepoint = 0x18A0, .schematic_name = "MONGOLIAN MANCHU ALI GALI TA", .joining_type = .D, .joining_group = .No_Joining_Group },
608 .{ .codepoint = 0x18A1, .schematic_name = "MONGOLIAN MANCHU ALI GALI DHA", .joining_type = .D, .joining_group = .No_Joining_Group },
609 .{ .codepoint = 0x18A2, .schematic_name = "MONGOLIAN MANCHU ALI GALI SSA", .joining_type = .D, .joining_group = .No_Joining_Group },
610 .{ .codepoint = 0x18A3, .schematic_name = "MONGOLIAN MANCHU ALI GALI CYA", .joining_type = .D, .joining_group = .No_Joining_Group },
611 .{ .codepoint = 0x18A4, .schematic_name = "MONGOLIAN MANCHU ALI GALI ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
612 .{ .codepoint = 0x18A5, .schematic_name = "MONGOLIAN MANCHU ALI GALI ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
613 .{ .codepoint = 0x18A6, .schematic_name = "MONGOLIAN ALI GALI HALF U", .joining_type = .D, .joining_group = .No_Joining_Group },
614 .{ .codepoint = 0x18A7, .schematic_name = "MONGOLIAN ALI GALI HALF YA", .joining_type = .D, .joining_group = .No_Joining_Group },
615 .{ .codepoint = 0x18A8, .schematic_name = "MONGOLIAN MANCHU ALI GALI BHA", .joining_type = .D, .joining_group = .No_Joining_Group },
616 .{ .codepoint = 0x18AA, .schematic_name = "MONGOLIAN MANCHU ALI GALI LHA", .joining_type = .D, .joining_group = .No_Joining_Group },
617 .{ .codepoint = 0x200C, .schematic_name = "ZERO WIDTH NON-JOINER", .joining_type = .U, .joining_group = .No_Joining_Group },
618 .{ .codepoint = 0x200D, .schematic_name = "ZERO WIDTH JOINER", .joining_type = .C, .joining_group = .No_Joining_Group },
619 .{ .codepoint = 0x202F, .schematic_name = "NARROW NO-BREAK SPACE", .joining_type = .U, .joining_group = .No_Joining_Group },
620 .{ .codepoint = 0x2066, .schematic_name = "LEFT-TO-RIGHT ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group },
621 .{ .codepoint = 0x2067, .schematic_name = "RIGHT-TO-LEFT ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group },
622 .{ .codepoint = 0x2068, .schematic_name = "FIRST STRONG ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group },
623 .{ .codepoint = 0x2069, .schematic_name = "POP DIRECTIONAL ISOLATE", .joining_type = .U, .joining_group = .No_Joining_Group },
624 .{ .codepoint = 0xA840, .schematic_name = "PHAGS-PA KA", .joining_type = .D, .joining_group = .No_Joining_Group },
625 .{ .codepoint = 0xA841, .schematic_name = "PHAGS-PA KHA", .joining_type = .D, .joining_group = .No_Joining_Group },
626 .{ .codepoint = 0xA842, .schematic_name = "PHAGS-PA GA", .joining_type = .D, .joining_group = .No_Joining_Group },
627 .{ .codepoint = 0xA843, .schematic_name = "PHAGS-PA NGA", .joining_type = .D, .joining_group = .No_Joining_Group },
628 .{ .codepoint = 0xA844, .schematic_name = "PHAGS-PA CA", .joining_type = .D, .joining_group = .No_Joining_Group },
629 .{ .codepoint = 0xA845, .schematic_name = "PHAGS-PA CHA", .joining_type = .D, .joining_group = .No_Joining_Group },
630 .{ .codepoint = 0xA846, .schematic_name = "PHAGS-PA JA", .joining_type = .D, .joining_group = .No_Joining_Group },
631 .{ .codepoint = 0xA847, .schematic_name = "PHAGS-PA NYA", .joining_type = .D, .joining_group = .No_Joining_Group },
632 .{ .codepoint = 0xA848, .schematic_name = "PHAGS-PA TA", .joining_type = .D, .joining_group = .No_Joining_Group },
633 .{ .codepoint = 0xA849, .schematic_name = "PHAGS-PA THA", .joining_type = .D, .joining_group = .No_Joining_Group },
634 .{ .codepoint = 0xA84A, .schematic_name = "PHAGS-PA DA", .joining_type = .D, .joining_group = .No_Joining_Group },
635 .{ .codepoint = 0xA84B, .schematic_name = "PHAGS-PA NA", .joining_type = .D, .joining_group = .No_Joining_Group },
636 .{ .codepoint = 0xA84C, .schematic_name = "PHAGS-PA PA", .joining_type = .D, .joining_group = .No_Joining_Group },
637 .{ .codepoint = 0xA84D, .schematic_name = "PHAGS-PA PHA", .joining_type = .D, .joining_group = .No_Joining_Group },
638 .{ .codepoint = 0xA84E, .schematic_name = "PHAGS-PA BA", .joining_type = .D, .joining_group = .No_Joining_Group },
639 .{ .codepoint = 0xA84F, .schematic_name = "PHAGS-PA MA", .joining_type = .D, .joining_group = .No_Joining_Group },
640 .{ .codepoint = 0xA850, .schematic_name = "PHAGS-PA TSA", .joining_type = .D, .joining_group = .No_Joining_Group },
641 .{ .codepoint = 0xA851, .schematic_name = "PHAGS-PA TSHA", .joining_type = .D, .joining_group = .No_Joining_Group },
642 .{ .codepoint = 0xA852, .schematic_name = "PHAGS-PA DZA", .joining_type = .D, .joining_group = .No_Joining_Group },
643 .{ .codepoint = 0xA853, .schematic_name = "PHAGS-PA WA", .joining_type = .D, .joining_group = .No_Joining_Group },
644 .{ .codepoint = 0xA854, .schematic_name = "PHAGS-PA ZHA", .joining_type = .D, .joining_group = .No_Joining_Group },
645 .{ .codepoint = 0xA855, .schematic_name = "PHAGS-PA ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
646 .{ .codepoint = 0xA856, .schematic_name = "PHAGS-PA SMALL A", .joining_type = .D, .joining_group = .No_Joining_Group },
647 .{ .codepoint = 0xA857, .schematic_name = "PHAGS-PA YA", .joining_type = .D, .joining_group = .No_Joining_Group },
648 .{ .codepoint = 0xA858, .schematic_name = "PHAGS-PA RA", .joining_type = .D, .joining_group = .No_Joining_Group },
649 .{ .codepoint = 0xA859, .schematic_name = "PHAGS-PA LA", .joining_type = .D, .joining_group = .No_Joining_Group },
650 .{ .codepoint = 0xA85A, .schematic_name = "PHAGS-PA SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
651 .{ .codepoint = 0xA85B, .schematic_name = "PHAGS-PA SA", .joining_type = .D, .joining_group = .No_Joining_Group },
652 .{ .codepoint = 0xA85C, .schematic_name = "PHAGS-PA HA", .joining_type = .D, .joining_group = .No_Joining_Group },
653 .{ .codepoint = 0xA85D, .schematic_name = "PHAGS-PA A", .joining_type = .D, .joining_group = .No_Joining_Group },
654 .{ .codepoint = 0xA85E, .schematic_name = "PHAGS-PA I", .joining_type = .D, .joining_group = .No_Joining_Group },
655 .{ .codepoint = 0xA85F, .schematic_name = "PHAGS-PA U", .joining_type = .D, .joining_group = .No_Joining_Group },
656 .{ .codepoint = 0xA860, .schematic_name = "PHAGS-PA E", .joining_type = .D, .joining_group = .No_Joining_Group },
657 .{ .codepoint = 0xA861, .schematic_name = "PHAGS-PA O", .joining_type = .D, .joining_group = .No_Joining_Group },
658 .{ .codepoint = 0xA862, .schematic_name = "PHAGS-PA QA", .joining_type = .D, .joining_group = .No_Joining_Group },
659 .{ .codepoint = 0xA863, .schematic_name = "PHAGS-PA XA", .joining_type = .D, .joining_group = .No_Joining_Group },
660 .{ .codepoint = 0xA864, .schematic_name = "PHAGS-PA FA", .joining_type = .D, .joining_group = .No_Joining_Group },
661 .{ .codepoint = 0xA865, .schematic_name = "PHAGS-PA GGA", .joining_type = .D, .joining_group = .No_Joining_Group },
662 .{ .codepoint = 0xA866, .schematic_name = "PHAGS-PA EE", .joining_type = .D, .joining_group = .No_Joining_Group },
663 .{ .codepoint = 0xA867, .schematic_name = "PHAGS-PA SUBJOINED WA", .joining_type = .D, .joining_group = .No_Joining_Group },
664 .{ .codepoint = 0xA868, .schematic_name = "PHAGS-PA SUBJOINED YA", .joining_type = .D, .joining_group = .No_Joining_Group },
665 .{ .codepoint = 0xA869, .schematic_name = "PHAGS-PA TTA", .joining_type = .D, .joining_group = .No_Joining_Group },
666 .{ .codepoint = 0xA86A, .schematic_name = "PHAGS-PA TTHA", .joining_type = .D, .joining_group = .No_Joining_Group },
667 .{ .codepoint = 0xA86B, .schematic_name = "PHAGS-PA DDA", .joining_type = .D, .joining_group = .No_Joining_Group },
668 .{ .codepoint = 0xA86C, .schematic_name = "PHAGS-PA NNA", .joining_type = .D, .joining_group = .No_Joining_Group },
669 .{ .codepoint = 0xA86D, .schematic_name = "PHAGS-PA ALTERNATE YA", .joining_type = .D, .joining_group = .No_Joining_Group },
670 .{ .codepoint = 0xA86E, .schematic_name = "PHAGS-PA VOICELESS SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
671 .{ .codepoint = 0xA86F, .schematic_name = "PHAGS-PA VOICED HA", .joining_type = .D, .joining_group = .No_Joining_Group },
672 .{ .codepoint = 0xA870, .schematic_name = "PHAGS-PA ASPIRATED FA", .joining_type = .D, .joining_group = .No_Joining_Group },
673 .{ .codepoint = 0xA871, .schematic_name = "PHAGS-PA SUBJOINED RA", .joining_type = .D, .joining_group = .No_Joining_Group },
674 .{ .codepoint = 0xA872, .schematic_name = "PHAGS-PA SUPERFIXED RA", .joining_type = .L, .joining_group = .No_Joining_Group },
675 .{ .codepoint = 0xA873, .schematic_name = "PHAGS-PA CANDRABINDU", .joining_type = .U, .joining_group = .No_Joining_Group },
676 .{ .codepoint = 0x10AC0, .schematic_name = "MANICHAEAN ALEPH", .joining_type = .D, .joining_group = .MANICHAEAN_ALEPH },
677 .{ .codepoint = 0x10AC1, .schematic_name = "MANICHAEAN BETH", .joining_type = .D, .joining_group = .MANICHAEAN_BETH },
678 .{ .codepoint = 0x10AC2, .schematic_name = "MANICHAEAN BETH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_BETH },
679 .{ .codepoint = 0x10AC3, .schematic_name = "MANICHAEAN GIMEL", .joining_type = .D, .joining_group = .MANICHAEAN_GIMEL },
680 .{ .codepoint = 0x10AC4, .schematic_name = "MANICHAEAN GIMEL WITH ATTACHED RING BELOW", .joining_type = .D, .joining_group = .MANICHAEAN_GIMEL },
681 .{ .codepoint = 0x10AC5, .schematic_name = "MANICHAEAN DALETH", .joining_type = .R, .joining_group = .MANICHAEAN_DALETH },
682 .{ .codepoint = 0x10AC6, .schematic_name = "MANICHAEAN HE", .joining_type = .U, .joining_group = .No_Joining_Group },
683 .{ .codepoint = 0x10AC7, .schematic_name = "MANICHAEAN WAW", .joining_type = .R, .joining_group = .MANICHAEAN_WAW },
684 .{ .codepoint = 0x10AC8, .schematic_name = "MANICHAEAN UD", .joining_type = .U, .joining_group = .No_Joining_Group },
685 .{ .codepoint = 0x10AC9, .schematic_name = "MANICHAEAN ZAYIN", .joining_type = .R, .joining_group = .MANICHAEAN_ZAYIN },
686 .{ .codepoint = 0x10ACA, .schematic_name = "MANICHAEAN ZAYIN WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_ZAYIN },
687 .{ .codepoint = 0x10ACB, .schematic_name = "MANICHAEAN JAYIN", .joining_type = .U, .joining_group = .No_Joining_Group },
688 .{ .codepoint = 0x10ACC, .schematic_name = "MANICHAEAN JAYIN WITH 2 DOTS ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group },
689 .{ .codepoint = 0x10ACD, .schematic_name = "MANICHAEAN HETH", .joining_type = .L, .joining_group = .MANICHAEAN_HETH },
690 .{ .codepoint = 0x10ACE, .schematic_name = "MANICHAEAN TETH", .joining_type = .R, .joining_group = .MANICHAEAN_TETH },
691 .{ .codepoint = 0x10ACF, .schematic_name = "MANICHAEAN YODH", .joining_type = .R, .joining_group = .MANICHAEAN_YODH },
692 .{ .codepoint = 0x10AD0, .schematic_name = "MANICHAEAN KAPH", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH },
693 .{ .codepoint = 0x10AD1, .schematic_name = "MANICHAEAN KAPH WITH DOT ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH },
694 .{ .codepoint = 0x10AD2, .schematic_name = "MANICHAEAN KAPH WITH 2 DOTS ABOVE", .joining_type = .R, .joining_group = .MANICHAEAN_KAPH },
695 .{ .codepoint = 0x10AD3, .schematic_name = "MANICHAEAN LAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_LAMEDH },
696 .{ .codepoint = 0x10AD4, .schematic_name = "MANICHAEAN DHAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_DHAMEDH },
697 .{ .codepoint = 0x10AD5, .schematic_name = "MANICHAEAN THAMEDH", .joining_type = .D, .joining_group = .MANICHAEAN_THAMEDH },
698 .{ .codepoint = 0x10AD6, .schematic_name = "MANICHAEAN MEM", .joining_type = .D, .joining_group = .MANICHAEAN_MEM },
699 .{ .codepoint = 0x10AD7, .schematic_name = "MANICHAEAN NUN", .joining_type = .L, .joining_group = .MANICHAEAN_NUN },
700 .{ .codepoint = 0x10AD8, .schematic_name = "MANICHAEAN SAMEKH", .joining_type = .D, .joining_group = .MANICHAEAN_SAMEKH },
701 .{ .codepoint = 0x10AD9, .schematic_name = "MANICHAEAN AYIN", .joining_type = .D, .joining_group = .MANICHAEAN_AYIN },
702 .{ .codepoint = 0x10ADA, .schematic_name = "MANICHAEAN AYIN WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_AYIN },
703 .{ .codepoint = 0x10ADB, .schematic_name = "MANICHAEAN PE", .joining_type = .D, .joining_group = .MANICHAEAN_PE },
704 .{ .codepoint = 0x10ADC, .schematic_name = "MANICHAEAN PE WITH DOT ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_PE },
705 .{ .codepoint = 0x10ADD, .schematic_name = "MANICHAEAN SADHE", .joining_type = .R, .joining_group = .MANICHAEAN_SADHE },
706 .{ .codepoint = 0x10ADE, .schematic_name = "MANICHAEAN QOPH", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH },
707 .{ .codepoint = 0x10ADF, .schematic_name = "MANICHAEAN QOPH WITH DOT ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH },
708 .{ .codepoint = 0x10AE0, .schematic_name = "MANICHAEAN QOPH WITH 2 DOTS ABOVE", .joining_type = .D, .joining_group = .MANICHAEAN_QOPH },
709 .{ .codepoint = 0x10AE1, .schematic_name = "MANICHAEAN RESH", .joining_type = .R, .joining_group = .MANICHAEAN_RESH },
710 .{ .codepoint = 0x10AE2, .schematic_name = "MANICHAEAN SHIN", .joining_type = .U, .joining_group = .No_Joining_Group },
711 .{ .codepoint = 0x10AE3, .schematic_name = "MANICHAEAN SHIN WITH 2 DOTS ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group },
712 .{ .codepoint = 0x10AE4, .schematic_name = "MANICHAEAN TAW", .joining_type = .R, .joining_group = .MANICHAEAN_TAW },
713 .{ .codepoint = 0x10AEB, .schematic_name = "MANICHAEAN ONE", .joining_type = .D, .joining_group = .MANICHAEAN_ONE },
714 .{ .codepoint = 0x10AEC, .schematic_name = "MANICHAEAN FIVE", .joining_type = .D, .joining_group = .MANICHAEAN_FIVE },
715 .{ .codepoint = 0x10AED, .schematic_name = "MANICHAEAN TEN", .joining_type = .D, .joining_group = .MANICHAEAN_TEN },
716 .{ .codepoint = 0x10AEE, .schematic_name = "MANICHAEAN TWENTY", .joining_type = .D, .joining_group = .MANICHAEAN_TWENTY },
717 .{ .codepoint = 0x10AEF, .schematic_name = "MANICHAEAN HUNDRED", .joining_type = .R, .joining_group = .MANICHAEAN_HUNDRED },
718 .{ .codepoint = 0x10B80, .schematic_name = "PSALTER PAHLAVI ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group },
719 .{ .codepoint = 0x10B81, .schematic_name = "PSALTER PAHLAVI BETH", .joining_type = .R, .joining_group = .No_Joining_Group },
720 .{ .codepoint = 0x10B82, .schematic_name = "PSALTER PAHLAVI GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group },
721 .{ .codepoint = 0x10B83, .schematic_name = "PSALTER PAHLAVI DALETH", .joining_type = .R, .joining_group = .No_Joining_Group },
722 .{ .codepoint = 0x10B84, .schematic_name = "PSALTER PAHLAVI HE", .joining_type = .R, .joining_group = .No_Joining_Group },
723 .{ .codepoint = 0x10B85, .schematic_name = "PSALTER PAHLAVI WAW-AYIN-RESH", .joining_type = .R, .joining_group = .No_Joining_Group },
724 .{ .codepoint = 0x10B86, .schematic_name = "PSALTER PAHLAVI ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group },
725 .{ .codepoint = 0x10B87, .schematic_name = "PSALTER PAHLAVI HETH", .joining_type = .D, .joining_group = .No_Joining_Group },
726 .{ .codepoint = 0x10B88, .schematic_name = "PSALTER PAHLAVI YODH", .joining_type = .D, .joining_group = .No_Joining_Group },
727 .{ .codepoint = 0x10B89, .schematic_name = "PSALTER PAHLAVI KAPH", .joining_type = .R, .joining_group = .No_Joining_Group },
728 .{ .codepoint = 0x10B8A, .schematic_name = "PSALTER PAHLAVI LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group },
729 .{ .codepoint = 0x10B8B, .schematic_name = "PSALTER PAHLAVI MEM-QOPH", .joining_type = .D, .joining_group = .No_Joining_Group },
730 .{ .codepoint = 0x10B8C, .schematic_name = "PSALTER PAHLAVI NUN", .joining_type = .R, .joining_group = .No_Joining_Group },
731 .{ .codepoint = 0x10B8D, .schematic_name = "PSALTER PAHLAVI SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group },
732 .{ .codepoint = 0x10B8E, .schematic_name = "PSALTER PAHLAVI PE", .joining_type = .R, .joining_group = .No_Joining_Group },
733 .{ .codepoint = 0x10B8F, .schematic_name = "PSALTER PAHLAVI SADHE", .joining_type = .R, .joining_group = .No_Joining_Group },
734 .{ .codepoint = 0x10B90, .schematic_name = "PSALTER PAHLAVI SHIN", .joining_type = .D, .joining_group = .No_Joining_Group },
735 .{ .codepoint = 0x10B91, .schematic_name = "PSALTER PAHLAVI TAW", .joining_type = .R, .joining_group = .No_Joining_Group },
736 .{ .codepoint = 0x10BA9, .schematic_name = "PSALTER PAHLAVI ONE", .joining_type = .R, .joining_group = .No_Joining_Group },
737 .{ .codepoint = 0x10BAA, .schematic_name = "PSALTER PAHLAVI TWO", .joining_type = .R, .joining_group = .No_Joining_Group },
738 .{ .codepoint = 0x10BAB, .schematic_name = "PSALTER PAHLAVI THREE", .joining_type = .R, .joining_group = .No_Joining_Group },
739 .{ .codepoint = 0x10BAC, .schematic_name = "PSALTER PAHLAVI FOUR", .joining_type = .R, .joining_group = .No_Joining_Group },
740 .{ .codepoint = 0x10BAD, .schematic_name = "PSALTER PAHLAVI TEN", .joining_type = .D, .joining_group = .No_Joining_Group },
741 .{ .codepoint = 0x10BAE, .schematic_name = "PSALTER PAHLAVI TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group },
742 .{ .codepoint = 0x10BAF, .schematic_name = "PSALTER PAHLAVI HUNDRED", .joining_type = .U, .joining_group = .No_Joining_Group },
743 .{ .codepoint = 0x10D00, .schematic_name = "HANIFI ROHINGYA A", .joining_type = .L, .joining_group = .No_Joining_Group },
744 .{ .codepoint = 0x10D01, .schematic_name = "HANIFI ROHINGYA BA", .joining_type = .D, .joining_group = .No_Joining_Group },
745 .{ .codepoint = 0x10D02, .schematic_name = "HANIFI ROHINGYA PA", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA },
746 .{ .codepoint = 0x10D03, .schematic_name = "HANIFI ROHINGYA TA", .joining_type = .D, .joining_group = .No_Joining_Group },
747 .{ .codepoint = 0x10D04, .schematic_name = "HANIFI ROHINGYA TTA", .joining_type = .D, .joining_group = .No_Joining_Group },
748 .{ .codepoint = 0x10D05, .schematic_name = "HANIFI ROHINGYA JA", .joining_type = .D, .joining_group = .No_Joining_Group },
749 .{ .codepoint = 0x10D06, .schematic_name = "HANIFI ROHINGYA CA", .joining_type = .D, .joining_group = .No_Joining_Group },
750 .{ .codepoint = 0x10D07, .schematic_name = "HANIFI ROHINGYA HA", .joining_type = .D, .joining_group = .No_Joining_Group },
751 .{ .codepoint = 0x10D08, .schematic_name = "HANIFI ROHINGYA KHA", .joining_type = .D, .joining_group = .No_Joining_Group },
752 .{ .codepoint = 0x10D09, .schematic_name = "HANIFI ROHINGYA PA WITH DOT ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA },
753 .{ .codepoint = 0x10D0A, .schematic_name = "HANIFI ROHINGYA DA", .joining_type = .D, .joining_group = .No_Joining_Group },
754 .{ .codepoint = 0x10D0B, .schematic_name = "HANIFI ROHINGYA DDA", .joining_type = .D, .joining_group = .No_Joining_Group },
755 .{ .codepoint = 0x10D0C, .schematic_name = "HANIFI ROHINGYA RA", .joining_type = .D, .joining_group = .No_Joining_Group },
756 .{ .codepoint = 0x10D0D, .schematic_name = "HANIFI ROHINGYA RRA", .joining_type = .D, .joining_group = .No_Joining_Group },
757 .{ .codepoint = 0x10D0E, .schematic_name = "HANIFI ROHINGYA ZA", .joining_type = .D, .joining_group = .No_Joining_Group },
758 .{ .codepoint = 0x10D0F, .schematic_name = "HANIFI ROHINGYA SA", .joining_type = .D, .joining_group = .No_Joining_Group },
759 .{ .codepoint = 0x10D10, .schematic_name = "HANIFI ROHINGYA SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
760 .{ .codepoint = 0x10D11, .schematic_name = "HANIFI ROHINGYA KA", .joining_type = .D, .joining_group = .No_Joining_Group },
761 .{ .codepoint = 0x10D12, .schematic_name = "HANIFI ROHINGYA GA", .joining_type = .D, .joining_group = .No_Joining_Group },
762 .{ .codepoint = 0x10D13, .schematic_name = "HANIFI ROHINGYA LA", .joining_type = .D, .joining_group = .No_Joining_Group },
763 .{ .codepoint = 0x10D14, .schematic_name = "HANIFI ROHINGYA MA", .joining_type = .D, .joining_group = .No_Joining_Group },
764 .{ .codepoint = 0x10D15, .schematic_name = "HANIFI ROHINGYA NA", .joining_type = .D, .joining_group = .No_Joining_Group },
765 .{ .codepoint = 0x10D16, .schematic_name = "HANIFI ROHINGYA WA", .joining_type = .D, .joining_group = .No_Joining_Group },
766 .{ .codepoint = 0x10D17, .schematic_name = "HANIFI ROHINGYA KINNA WA", .joining_type = .D, .joining_group = .No_Joining_Group },
767 .{ .codepoint = 0x10D18, .schematic_name = "HANIFI ROHINGYA YA", .joining_type = .D, .joining_group = .No_Joining_Group },
768 .{ .codepoint = 0x10D19, .schematic_name = "HANIFI ROHINGYA KINNA YA", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA },
769 .{ .codepoint = 0x10D1A, .schematic_name = "HANIFI ROHINGYA NGA", .joining_type = .D, .joining_group = .No_Joining_Group },
770 .{ .codepoint = 0x10D1B, .schematic_name = "HANIFI ROHINGYA NYA", .joining_type = .D, .joining_group = .No_Joining_Group },
771 .{ .codepoint = 0x10D1C, .schematic_name = "HANIFI ROHINGYA PA WITH 3 DOTS ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_PA },
772 .{ .codepoint = 0x10D1D, .schematic_name = "HANIFI ROHINGYA VOWEL A", .joining_type = .D, .joining_group = .No_Joining_Group },
773 .{ .codepoint = 0x10D1E, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH LEFT-FACING HOOK BELOW", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA },
774 .{ .codepoint = 0x10D1F, .schematic_name = "HANIFI ROHINGYA VOWEL U", .joining_type = .D, .joining_group = .No_Joining_Group },
775 .{ .codepoint = 0x10D20, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH RIGHT-FACING HOOK BELOW", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA },
776 .{ .codepoint = 0x10D21, .schematic_name = "HANIFI ROHINGYA VOWEL O", .joining_type = .D, .joining_group = .No_Joining_Group },
777 .{ .codepoint = 0x10D22, .schematic_name = "HANIFI ROHINGYA SAKIN", .joining_type = .R, .joining_group = .No_Joining_Group },
778 .{ .codepoint = 0x10D23, .schematic_name = "HANIFI ROHINGYA DOTLESS KINNA YA WITH DOT ABOVE", .joining_type = .D, .joining_group = .HANIFI_ROHINGYA_KINNA_YA },
779 .{ .codepoint = 0x10F30, .schematic_name = "SOGDIAN ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group },
780 .{ .codepoint = 0x10F31, .schematic_name = "SOGDIAN BETH", .joining_type = .D, .joining_group = .No_Joining_Group },
781 .{ .codepoint = 0x10F32, .schematic_name = "SOGDIAN GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group },
782 .{ .codepoint = 0x10F33, .schematic_name = "SOGDIAN HE", .joining_type = .R, .joining_group = .No_Joining_Group },
783 .{ .codepoint = 0x10F34, .schematic_name = "SOGDIAN WAW", .joining_type = .D, .joining_group = .No_Joining_Group },
784 .{ .codepoint = 0x10F35, .schematic_name = "SOGDIAN ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group },
785 .{ .codepoint = 0x10F36, .schematic_name = "SOGDIAN HETH", .joining_type = .D, .joining_group = .No_Joining_Group },
786 .{ .codepoint = 0x10F37, .schematic_name = "SOGDIAN YODH", .joining_type = .D, .joining_group = .No_Joining_Group },
787 .{ .codepoint = 0x10F38, .schematic_name = "SOGDIAN KAPH", .joining_type = .D, .joining_group = .No_Joining_Group },
788 .{ .codepoint = 0x10F39, .schematic_name = "SOGDIAN LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group },
789 .{ .codepoint = 0x10F3A, .schematic_name = "SOGDIAN MEM", .joining_type = .D, .joining_group = .No_Joining_Group },
790 .{ .codepoint = 0x10F3B, .schematic_name = "SOGDIAN NUN", .joining_type = .D, .joining_group = .No_Joining_Group },
791 .{ .codepoint = 0x10F3C, .schematic_name = "SOGDIAN SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group },
792 .{ .codepoint = 0x10F3D, .schematic_name = "SOGDIAN AYIN", .joining_type = .D, .joining_group = .No_Joining_Group },
793 .{ .codepoint = 0x10F3E, .schematic_name = "SOGDIAN PE", .joining_type = .D, .joining_group = .No_Joining_Group },
794 .{ .codepoint = 0x10F3F, .schematic_name = "SOGDIAN SADHE", .joining_type = .D, .joining_group = .No_Joining_Group },
795 .{ .codepoint = 0x10F40, .schematic_name = "SOGDIAN RESH-AYIN", .joining_type = .D, .joining_group = .No_Joining_Group },
796 .{ .codepoint = 0x10F41, .schematic_name = "SOGDIAN SHIN", .joining_type = .D, .joining_group = .No_Joining_Group },
797 .{ .codepoint = 0x10F42, .schematic_name = "SOGDIAN TAW", .joining_type = .D, .joining_group = .No_Joining_Group },
798 .{ .codepoint = 0x10F43, .schematic_name = "SOGDIAN FETH", .joining_type = .D, .joining_group = .No_Joining_Group },
799 .{ .codepoint = 0x10F44, .schematic_name = "SOGDIAN LESH", .joining_type = .D, .joining_group = .No_Joining_Group },
800 .{ .codepoint = 0x10F45, .schematic_name = "SOGDIAN INDEPENDENT SHIN", .joining_type = .U, .joining_group = .No_Joining_Group },
801 .{ .codepoint = 0x10F51, .schematic_name = "SOGDIAN ONE", .joining_type = .D, .joining_group = .No_Joining_Group },
802 .{ .codepoint = 0x10F52, .schematic_name = "SOGDIAN TEN", .joining_type = .D, .joining_group = .No_Joining_Group },
803 .{ .codepoint = 0x10F53, .schematic_name = "SOGDIAN TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group },
804 .{ .codepoint = 0x10F54, .schematic_name = "SOGDIAN ONE HUNDRED", .joining_type = .R, .joining_group = .No_Joining_Group },
805 .{ .codepoint = 0x10FB0, .schematic_name = "CHORASMIAN ALEPH", .joining_type = .D, .joining_group = .No_Joining_Group },
806 .{ .codepoint = 0x10FB1, .schematic_name = "CHORASMIAN SMALL ALEPH", .joining_type = .U, .joining_group = .No_Joining_Group },
807 .{ .codepoint = 0x10FB2, .schematic_name = "CHORASMIAN BETH", .joining_type = .D, .joining_group = .No_Joining_Group },
808 .{ .codepoint = 0x10FB3, .schematic_name = "CHORASMIAN GIMEL", .joining_type = .D, .joining_group = .No_Joining_Group },
809 .{ .codepoint = 0x10FB4, .schematic_name = "CHORASMIAN DALETH", .joining_type = .R, .joining_group = .No_Joining_Group },
810 .{ .codepoint = 0x10FB5, .schematic_name = "CHORASMIAN HE", .joining_type = .R, .joining_group = .No_Joining_Group },
811 .{ .codepoint = 0x10FB6, .schematic_name = "CHORASMIAN WAW", .joining_type = .R, .joining_group = .No_Joining_Group },
812 .{ .codepoint = 0x10FB7, .schematic_name = "CHORASMIAN CURLED WAW", .joining_type = .U, .joining_group = .No_Joining_Group },
813 .{ .codepoint = 0x10FB8, .schematic_name = "CHORASMIAN ZAYIN", .joining_type = .D, .joining_group = .No_Joining_Group },
814 .{ .codepoint = 0x10FB9, .schematic_name = "CHORASMIAN HETH", .joining_type = .R, .joining_group = .No_Joining_Group },
815 .{ .codepoint = 0x10FBA, .schematic_name = "CHORASMIAN YODH", .joining_type = .R, .joining_group = .No_Joining_Group },
816 .{ .codepoint = 0x10FBB, .schematic_name = "CHORASMIAN KAPH", .joining_type = .D, .joining_group = .No_Joining_Group },
817 .{ .codepoint = 0x10FBC, .schematic_name = "CHORASMIAN LAMEDH", .joining_type = .D, .joining_group = .No_Joining_Group },
818 .{ .codepoint = 0x10FBD, .schematic_name = "CHORASMIAN MEM", .joining_type = .R, .joining_group = .No_Joining_Group },
819 .{ .codepoint = 0x10FBE, .schematic_name = "CHORASMIAN NUN", .joining_type = .D, .joining_group = .No_Joining_Group },
820 .{ .codepoint = 0x10FBF, .schematic_name = "CHORASMIAN SAMEKH", .joining_type = .D, .joining_group = .No_Joining_Group },
821 .{ .codepoint = 0x10FC0, .schematic_name = "CHORASMIAN AYIN", .joining_type = .U, .joining_group = .No_Joining_Group },
822 .{ .codepoint = 0x10FC1, .schematic_name = "CHORASMIAN PE", .joining_type = .D, .joining_group = .No_Joining_Group },
823 .{ .codepoint = 0x10FC2, .schematic_name = "CHORASMIAN RESH", .joining_type = .R, .joining_group = .No_Joining_Group },
824 .{ .codepoint = 0x10FC3, .schematic_name = "CHORASMIAN SHIN", .joining_type = .R, .joining_group = .No_Joining_Group },
825 .{ .codepoint = 0x10FC4, .schematic_name = "CHORASMIAN TAW", .joining_type = .D, .joining_group = .No_Joining_Group },
826 .{ .codepoint = 0x10FC5, .schematic_name = "CHORASMIAN ONE", .joining_type = .U, .joining_group = .No_Joining_Group },
827 .{ .codepoint = 0x10FC6, .schematic_name = "CHORASMIAN TWO", .joining_type = .U, .joining_group = .No_Joining_Group },
828 .{ .codepoint = 0x10FC7, .schematic_name = "CHORASMIAN THREE", .joining_type = .U, .joining_group = .No_Joining_Group },
829 .{ .codepoint = 0x10FC8, .schematic_name = "CHORASMIAN FOUR", .joining_type = .U, .joining_group = .No_Joining_Group },
830 .{ .codepoint = 0x10FC9, .schematic_name = "CHORASMIAN TEN", .joining_type = .R, .joining_group = .No_Joining_Group },
831 .{ .codepoint = 0x10FCA, .schematic_name = "CHORASMIAN TWENTY", .joining_type = .D, .joining_group = .No_Joining_Group },
832 .{ .codepoint = 0x10FCB, .schematic_name = "CHORASMIAN ONE HUNDRED", .joining_type = .L, .joining_group = .No_Joining_Group },
833 .{ .codepoint = 0x110BD, .schematic_name = "KAITHI NUMBER SIGN", .joining_type = .U, .joining_group = .No_Joining_Group },
834 .{ .codepoint = 0x110CD, .schematic_name = "KAITHI NUMBER SIGN ABOVE", .joining_type = .U, .joining_group = .No_Joining_Group },
835 .{ .codepoint = 0x1E900, .schematic_name = "ADLAM CAPITAL ALIF", .joining_type = .D, .joining_group = .No_Joining_Group },
836 .{ .codepoint = 0x1E901, .schematic_name = "ADLAM CAPITAL DAALI", .joining_type = .D, .joining_group = .No_Joining_Group },
837 .{ .codepoint = 0x1E902, .schematic_name = "ADLAM CAPITAL LAAM", .joining_type = .D, .joining_group = .No_Joining_Group },
838 .{ .codepoint = 0x1E903, .schematic_name = "ADLAM CAPITAL MIIM", .joining_type = .D, .joining_group = .No_Joining_Group },
839 .{ .codepoint = 0x1E904, .schematic_name = "ADLAM CAPITAL BA", .joining_type = .D, .joining_group = .No_Joining_Group },
840 .{ .codepoint = 0x1E905, .schematic_name = "ADLAM CAPITAL SINNYIIYHE", .joining_type = .D, .joining_group = .No_Joining_Group },
841 .{ .codepoint = 0x1E906, .schematic_name = "ADLAM CAPITAL PE", .joining_type = .D, .joining_group = .No_Joining_Group },
842 .{ .codepoint = 0x1E907, .schematic_name = "ADLAM CAPITAL BHE", .joining_type = .D, .joining_group = .No_Joining_Group },
843 .{ .codepoint = 0x1E908, .schematic_name = "ADLAM CAPITAL RA", .joining_type = .D, .joining_group = .No_Joining_Group },
844 .{ .codepoint = 0x1E909, .schematic_name = "ADLAM CAPITAL E", .joining_type = .D, .joining_group = .No_Joining_Group },
845 .{ .codepoint = 0x1E90A, .schematic_name = "ADLAM CAPITAL FA", .joining_type = .D, .joining_group = .No_Joining_Group },
846 .{ .codepoint = 0x1E90B, .schematic_name = "ADLAM CAPITAL I", .joining_type = .D, .joining_group = .No_Joining_Group },
847 .{ .codepoint = 0x1E90C, .schematic_name = "ADLAM CAPITAL O", .joining_type = .D, .joining_group = .No_Joining_Group },
848 .{ .codepoint = 0x1E90D, .schematic_name = "ADLAM CAPITAL DHA", .joining_type = .D, .joining_group = .No_Joining_Group },
849 .{ .codepoint = 0x1E90E, .schematic_name = "ADLAM CAPITAL YHE", .joining_type = .D, .joining_group = .No_Joining_Group },
850 .{ .codepoint = 0x1E90F, .schematic_name = "ADLAM CAPITAL WAW", .joining_type = .D, .joining_group = .No_Joining_Group },
851 .{ .codepoint = 0x1E910, .schematic_name = "ADLAM CAPITAL NUN", .joining_type = .D, .joining_group = .No_Joining_Group },
852 .{ .codepoint = 0x1E911, .schematic_name = "ADLAM CAPITAL KAF", .joining_type = .D, .joining_group = .No_Joining_Group },
853 .{ .codepoint = 0x1E912, .schematic_name = "ADLAM CAPITAL YA", .joining_type = .D, .joining_group = .No_Joining_Group },
854 .{ .codepoint = 0x1E913, .schematic_name = "ADLAM CAPITAL U", .joining_type = .D, .joining_group = .No_Joining_Group },
855 .{ .codepoint = 0x1E914, .schematic_name = "ADLAM CAPITAL JIIM", .joining_type = .D, .joining_group = .No_Joining_Group },
856 .{ .codepoint = 0x1E915, .schematic_name = "ADLAM CAPITAL CHI", .joining_type = .D, .joining_group = .No_Joining_Group },
857 .{ .codepoint = 0x1E916, .schematic_name = "ADLAM CAPITAL HA", .joining_type = .D, .joining_group = .No_Joining_Group },
858 .{ .codepoint = 0x1E917, .schematic_name = "ADLAM CAPITAL QAAF", .joining_type = .D, .joining_group = .No_Joining_Group },
859 .{ .codepoint = 0x1E918, .schematic_name = "ADLAM CAPITAL GA", .joining_type = .D, .joining_group = .No_Joining_Group },
860 .{ .codepoint = 0x1E919, .schematic_name = "ADLAM CAPITAL NYA", .joining_type = .D, .joining_group = .No_Joining_Group },
861 .{ .codepoint = 0x1E91A, .schematic_name = "ADLAM CAPITAL TU", .joining_type = .D, .joining_group = .No_Joining_Group },
862 .{ .codepoint = 0x1E91B, .schematic_name = "ADLAM CAPITAL NHA", .joining_type = .D, .joining_group = .No_Joining_Group },
863 .{ .codepoint = 0x1E91C, .schematic_name = "ADLAM CAPITAL VA", .joining_type = .D, .joining_group = .No_Joining_Group },
864 .{ .codepoint = 0x1E91D, .schematic_name = "ADLAM CAPITAL KHA", .joining_type = .D, .joining_group = .No_Joining_Group },
865 .{ .codepoint = 0x1E91E, .schematic_name = "ADLAM CAPITAL GBE", .joining_type = .D, .joining_group = .No_Joining_Group },
866 .{ .codepoint = 0x1E91F, .schematic_name = "ADLAM CAPITAL ZAL", .joining_type = .D, .joining_group = .No_Joining_Group },
867 .{ .codepoint = 0x1E920, .schematic_name = "ADLAM CAPITAL KPO", .joining_type = .D, .joining_group = .No_Joining_Group },
868 .{ .codepoint = 0x1E921, .schematic_name = "ADLAM CAPITAL SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
869 .{ .codepoint = 0x1E922, .schematic_name = "ADLAM SMALL ALIF", .joining_type = .D, .joining_group = .No_Joining_Group },
870 .{ .codepoint = 0x1E923, .schematic_name = "ADLAM SMALL DAALI", .joining_type = .D, .joining_group = .No_Joining_Group },
871 .{ .codepoint = 0x1E924, .schematic_name = "ADLAM SMALL LAAM", .joining_type = .D, .joining_group = .No_Joining_Group },
872 .{ .codepoint = 0x1E925, .schematic_name = "ADLAM SMALL MIIM", .joining_type = .D, .joining_group = .No_Joining_Group },
873 .{ .codepoint = 0x1E926, .schematic_name = "ADLAM SMALL BA", .joining_type = .D, .joining_group = .No_Joining_Group },
874 .{ .codepoint = 0x1E927, .schematic_name = "ADLAM SMALL SINNYIIYHE", .joining_type = .D, .joining_group = .No_Joining_Group },
875 .{ .codepoint = 0x1E928, .schematic_name = "ADLAM SMALL PE", .joining_type = .D, .joining_group = .No_Joining_Group },
876 .{ .codepoint = 0x1E929, .schematic_name = "ADLAM SMALL BHE", .joining_type = .D, .joining_group = .No_Joining_Group },
877 .{ .codepoint = 0x1E92A, .schematic_name = "ADLAM SMALL RA", .joining_type = .D, .joining_group = .No_Joining_Group },
878 .{ .codepoint = 0x1E92B, .schematic_name = "ADLAM SMALL E", .joining_type = .D, .joining_group = .No_Joining_Group },
879 .{ .codepoint = 0x1E92C, .schematic_name = "ADLAM SMALL FA", .joining_type = .D, .joining_group = .No_Joining_Group },
880 .{ .codepoint = 0x1E92D, .schematic_name = "ADLAM SMALL I", .joining_type = .D, .joining_group = .No_Joining_Group },
881 .{ .codepoint = 0x1E92E, .schematic_name = "ADLAM SMALL O", .joining_type = .D, .joining_group = .No_Joining_Group },
882 .{ .codepoint = 0x1E92F, .schematic_name = "ADLAM SMALL DHA", .joining_type = .D, .joining_group = .No_Joining_Group },
883 .{ .codepoint = 0x1E930, .schematic_name = "ADLAM SMALL YHE", .joining_type = .D, .joining_group = .No_Joining_Group },
884 .{ .codepoint = 0x1E931, .schematic_name = "ADLAM SMALL WAW", .joining_type = .D, .joining_group = .No_Joining_Group },
885 .{ .codepoint = 0x1E932, .schematic_name = "ADLAM SMALL NUN", .joining_type = .D, .joining_group = .No_Joining_Group },
886 .{ .codepoint = 0x1E933, .schematic_name = "ADLAM SMALL KAF", .joining_type = .D, .joining_group = .No_Joining_Group },
887 .{ .codepoint = 0x1E934, .schematic_name = "ADLAM SMALL YA", .joining_type = .D, .joining_group = .No_Joining_Group },
888 .{ .codepoint = 0x1E935, .schematic_name = "ADLAM SMALL U", .joining_type = .D, .joining_group = .No_Joining_Group },
889 .{ .codepoint = 0x1E936, .schematic_name = "ADLAM SMALL JIIM", .joining_type = .D, .joining_group = .No_Joining_Group },
890 .{ .codepoint = 0x1E937, .schematic_name = "ADLAM SMALL CHI", .joining_type = .D, .joining_group = .No_Joining_Group },
891 .{ .codepoint = 0x1E938, .schematic_name = "ADLAM SMALL HA", .joining_type = .D, .joining_group = .No_Joining_Group },
892 .{ .codepoint = 0x1E939, .schematic_name = "ADLAM SMALL QAAF", .joining_type = .D, .joining_group = .No_Joining_Group },
893 .{ .codepoint = 0x1E93A, .schematic_name = "ADLAM SMALL GA", .joining_type = .D, .joining_group = .No_Joining_Group },
894 .{ .codepoint = 0x1E93B, .schematic_name = "ADLAM SMALL NYA", .joining_type = .D, .joining_group = .No_Joining_Group },
895 .{ .codepoint = 0x1E93C, .schematic_name = "ADLAM SMALL TU", .joining_type = .D, .joining_group = .No_Joining_Group },
896 .{ .codepoint = 0x1E93D, .schematic_name = "ADLAM SMALL NHA", .joining_type = .D, .joining_group = .No_Joining_Group },
897 .{ .codepoint = 0x1E93E, .schematic_name = "ADLAM SMALL VA", .joining_type = .D, .joining_group = .No_Joining_Group },
898 .{ .codepoint = 0x1E93F, .schematic_name = "ADLAM SMALL KHA", .joining_type = .D, .joining_group = .No_Joining_Group },
899 .{ .codepoint = 0x1E940, .schematic_name = "ADLAM SMALL GBE", .joining_type = .D, .joining_group = .No_Joining_Group },
900 .{ .codepoint = 0x1E941, .schematic_name = "ADLAM SMALL ZAL", .joining_type = .D, .joining_group = .No_Joining_Group },
901 .{ .codepoint = 0x1E942, .schematic_name = "ADLAM SMALL KPO", .joining_type = .D, .joining_group = .No_Joining_Group },
902 .{ .codepoint = 0x1E943, .schematic_name = "ADLAM SMALL SHA", .joining_type = .D, .joining_group = .No_Joining_Group },
903 .{ .codepoint = 0x1E94B, .schematic_name = "ADLAM NASALIZATION MARK", .joining_type = .T, .joining_group = .No_Joining_Group },
904};
src/lib.zig+1-1
...@@ -1,4 +1,4 @@...@@ -1,4 +1,4 @@
1//1pub const arabic_shaping = @import("./arabic_shaping.zig");
2//2//
3//3//
4//4//
src/main.zig+1
...@@ -7,6 +7,7 @@ pub fn main() !void {...@@ -7,6 +7,7 @@ pub fn main() !void {
77
8 const data = .{8 const data = .{
9 ucd.blocks.blocks,9 ucd.blocks.blocks,
10 ucd.arabic_shaping.arabic_shaping,
10 };11 };
1112
12 inline for (data) |b| {13 inline for (data) |b| {