/rust/registry/src/index.crates.io-6f17d22bba15001f/unicase-2.6.0/src/unicode/map.rs
Line | Count | Source (jump to first uncovered line) |
1 | | // Generated by scripts/mapgen.py |
2 | | // 2019-08-31 |
3 | | |
4 | | use super::fold::Fold; |
5 | | |
6 | | use core::char; |
7 | 0 | pub fn lookup(orig: char) -> Fold { |
8 | 0 | // The code below is is intended to reduce the binary size from that of a simple 1:1 lookup table. |
9 | 0 | // It exploits two facts: |
10 | 0 | // 1. Many of the mappings form ranges mapped to other ranges. |
11 | 0 | // To benefit from this, we match on ranges instead of single numbers. |
12 | 0 | // Alone, this decreases the binary size but results in performance regression over the simple 1:1 lookup. |
13 | 0 | // 2. Most of the mappings are from relatively small chars (0 - 0x2CFF). |
14 | 0 | // To benefit from this, we use a jump table based on the high byte for this range. |
15 | 0 | // This more than recovers the performance regression from exploting fact #1, at least in the tested benchmark. |
16 | 0 | let from = orig as u32; |
17 | 0 | if from <= 0x2CFF { |
18 | 0 | let from = from as u16; |
19 | 0 | let high_byte = (from >> 8) as u8; |
20 | 0 | let low_byte = (from & 0xff) as u8; |
21 | 0 | let single_char: u16 = match high_byte { |
22 | | 0x00 => { |
23 | 0 | match low_byte { |
24 | 0 | x @ _ if 0x41 <= x && x <= 0x5a => from.wrapping_add(0x0020), |
25 | 0 | 0xb5 => 0x03bc, |
26 | 0 | x @ _ if 0xc0 <= x && x <= 0xd6 => from.wrapping_add(0x0020), |
27 | 0 | x @ _ if 0xd8 <= x && x <= 0xde => from.wrapping_add(0x0020), |
28 | 0 | 0xdf => return Fold::Two('\u{0073}', '\u{0073}',), |
29 | 0 | _ => from |
30 | | } |
31 | | } |
32 | | 0x01 => { |
33 | 0 | match low_byte { |
34 | 0 | x @ _ if x <= 0x2e => (from | 1), |
35 | 0 | 0x30 => return Fold::Two('\u{0069}', '\u{0307}',), |
36 | 0 | x @ _ if 0x32 <= x && x <= 0x36 => (from | 1), |
37 | 0 | x @ _ if 0x39 <= x && x <= 0x47 => ((from+1) & !1), |
38 | 0 | 0x49 => return Fold::Two('\u{02bc}', '\u{006e}',), |
39 | 0 | x @ _ if 0x4a <= x && x <= 0x76 => (from | 1), |
40 | 0 | 0x78 => 0x00ff, |
41 | 0 | x @ _ if 0x79 <= x && x <= 0x7d => ((from+1) & !1), |
42 | 0 | 0x7f => 0x0073, |
43 | 0 | 0x81 => 0x0253, |
44 | 0 | x @ _ if 0x82 <= x && x <= 0x84 => (from | 1), |
45 | 0 | 0x86 => 0x0254, |
46 | 0 | 0x87 => 0x0188, |
47 | 0 | x @ _ if 0x89 <= x && x <= 0x8a => from.wrapping_add(0x00cd), |
48 | 0 | 0x8b => 0x018c, |
49 | 0 | 0x8e => 0x01dd, |
50 | 0 | 0x8f => 0x0259, |
51 | 0 | 0x90 => 0x025b, |
52 | 0 | 0x91 => 0x0192, |
53 | 0 | 0x93 => 0x0260, |
54 | 0 | 0x94 => 0x0263, |
55 | 0 | 0x96 => 0x0269, |
56 | 0 | 0x97 => 0x0268, |
57 | 0 | 0x98 => 0x0199, |
58 | 0 | 0x9c => 0x026f, |
59 | 0 | 0x9d => 0x0272, |
60 | 0 | 0x9f => 0x0275, |
61 | 0 | x @ _ if 0xa0 <= x && x <= 0xa4 => (from | 1), |
62 | 0 | 0xa6 => 0x0280, |
63 | 0 | 0xa7 => 0x01a8, |
64 | 0 | 0xa9 => 0x0283, |
65 | 0 | 0xac => 0x01ad, |
66 | 0 | 0xae => 0x0288, |
67 | 0 | 0xaf => 0x01b0, |
68 | 0 | x @ _ if 0xb1 <= x && x <= 0xb2 => from.wrapping_add(0x00d9), |
69 | 0 | x @ _ if 0xb3 <= x && x <= 0xb5 => ((from+1) & !1), |
70 | 0 | 0xb7 => 0x0292, |
71 | 0 | 0xb8 => 0x01b9, |
72 | 0 | 0xbc => 0x01bd, |
73 | 0 | 0xc4 => 0x01c6, |
74 | 0 | 0xc5 => 0x01c6, |
75 | 0 | 0xc7 => 0x01c9, |
76 | 0 | 0xc8 => 0x01c9, |
77 | 0 | 0xca => 0x01cc, |
78 | 0 | x @ _ if 0xcb <= x && x <= 0xdb => ((from+1) & !1), |
79 | 0 | x @ _ if 0xde <= x && x <= 0xee => (from | 1), |
80 | 0 | 0xf0 => return Fold::Two('\u{006a}', '\u{030c}',), |
81 | 0 | 0xf1 => 0x01f3, |
82 | 0 | x @ _ if 0xf2 <= x && x <= 0xf4 => (from | 1), |
83 | 0 | 0xf6 => 0x0195, |
84 | 0 | 0xf7 => 0x01bf, |
85 | 0 | x @ _ if 0xf8 <= x => (from | 1), |
86 | 0 | _ => from |
87 | | } |
88 | | } |
89 | | 0x02 => { |
90 | 0 | match low_byte { |
91 | 0 | x @ _ if x <= 0x1e => (from | 1), |
92 | 0 | 0x20 => 0x019e, |
93 | 0 | x @ _ if 0x22 <= x && x <= 0x32 => (from | 1), |
94 | 0 | 0x3a => 0x2c65, |
95 | 0 | 0x3b => 0x023c, |
96 | 0 | 0x3d => 0x019a, |
97 | 0 | 0x3e => 0x2c66, |
98 | 0 | 0x41 => 0x0242, |
99 | 0 | 0x43 => 0x0180, |
100 | 0 | 0x44 => 0x0289, |
101 | 0 | 0x45 => 0x028c, |
102 | 0 | x @ _ if 0x46 <= x && x <= 0x4e => (from | 1), |
103 | 0 | _ => from |
104 | | } |
105 | | } |
106 | | 0x03 => { |
107 | 0 | match low_byte { |
108 | 0 | 0x45 => 0x03b9, |
109 | 0 | x @ _ if 0x70 <= x && x <= 0x72 => (from | 1), |
110 | 0 | 0x76 => 0x0377, |
111 | 0 | 0x7f => 0x03f3, |
112 | 0 | 0x86 => 0x03ac, |
113 | 0 | x @ _ if 0x88 <= x && x <= 0x8a => from.wrapping_add(0x0025), |
114 | 0 | 0x8c => 0x03cc, |
115 | 0 | x @ _ if 0x8e <= x && x <= 0x8f => from.wrapping_add(0x003f), |
116 | 0 | 0x90 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), |
117 | 0 | x @ _ if 0x91 <= x && x <= 0xa1 => from.wrapping_add(0x0020), |
118 | 0 | x @ _ if 0xa3 <= x && x <= 0xab => from.wrapping_add(0x0020), |
119 | 0 | 0xb0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), |
120 | 0 | 0xc2 => 0x03c3, |
121 | 0 | 0xcf => 0x03d7, |
122 | 0 | 0xd0 => 0x03b2, |
123 | 0 | 0xd1 => 0x03b8, |
124 | 0 | 0xd5 => 0x03c6, |
125 | 0 | 0xd6 => 0x03c0, |
126 | 0 | x @ _ if 0xd8 <= x && x <= 0xee => (from | 1), |
127 | 0 | 0xf0 => 0x03ba, |
128 | 0 | 0xf1 => 0x03c1, |
129 | 0 | 0xf4 => 0x03b8, |
130 | 0 | 0xf5 => 0x03b5, |
131 | 0 | 0xf7 => 0x03f8, |
132 | 0 | 0xf9 => 0x03f2, |
133 | 0 | 0xfa => 0x03fb, |
134 | 0 | x @ _ if 0xfd <= x => from.wrapping_sub(0x0082), |
135 | 0 | _ => from |
136 | | } |
137 | | } |
138 | | 0x04 => { |
139 | 0 | match low_byte { |
140 | 0 | x @ _ if x <= 0x0f => from.wrapping_add(0x0050), |
141 | 0 | x @ _ if 0x10 <= x && x <= 0x2f => from.wrapping_add(0x0020), |
142 | 0 | x @ _ if 0x60 <= x && x <= 0x80 => (from | 1), |
143 | 0 | x @ _ if 0x8a <= x && x <= 0xbe => (from | 1), |
144 | 0 | 0xc0 => 0x04cf, |
145 | 0 | x @ _ if 0xc1 <= x && x <= 0xcd => ((from+1) & !1), |
146 | 0 | x @ _ if 0xd0 <= x => (from | 1), |
147 | 0 | _ => from |
148 | | } |
149 | | } |
150 | | 0x05 => { |
151 | 0 | match low_byte { |
152 | 0 | x @ _ if x <= 0x2e => (from | 1), |
153 | 0 | x @ _ if 0x31 <= x && x <= 0x56 => from.wrapping_add(0x0030), |
154 | 0 | 0x87 => return Fold::Two('\u{0565}', '\u{0582}',), |
155 | 0 | _ => from |
156 | | } |
157 | | } |
158 | | 0x06 => { |
159 | 0 | from |
160 | | } |
161 | | 0x07 => { |
162 | 0 | from |
163 | | } |
164 | | 0x08 => { |
165 | 0 | from |
166 | | } |
167 | | 0x09 => { |
168 | 0 | from |
169 | | } |
170 | | 0x0a => { |
171 | 0 | from |
172 | | } |
173 | | 0x0b => { |
174 | 0 | from |
175 | | } |
176 | | 0x0c => { |
177 | 0 | from |
178 | | } |
179 | | 0x0d => { |
180 | 0 | from |
181 | | } |
182 | | 0x0e => { |
183 | 0 | from |
184 | | } |
185 | | 0x0f => { |
186 | 0 | from |
187 | | } |
188 | | 0x10 => { |
189 | 0 | match low_byte { |
190 | 0 | x @ _ if 0xa0 <= x && x <= 0xc5 => from.wrapping_add(0x1c60), |
191 | 0 | 0xc7 => 0x2d27, |
192 | 0 | 0xcd => 0x2d2d, |
193 | 0 | _ => from |
194 | | } |
195 | | } |
196 | | 0x11 => { |
197 | 0 | from |
198 | | } |
199 | | 0x12 => { |
200 | 0 | from |
201 | | } |
202 | | 0x13 => { |
203 | 0 | match low_byte { |
204 | 0 | x @ _ if 0xf8 <= x && x <= 0xfd => from.wrapping_sub(0x0008), |
205 | 0 | _ => from |
206 | | } |
207 | | } |
208 | | 0x14 => { |
209 | 0 | from |
210 | | } |
211 | | 0x15 => { |
212 | 0 | from |
213 | | } |
214 | | 0x16 => { |
215 | 0 | from |
216 | | } |
217 | | 0x17 => { |
218 | 0 | from |
219 | | } |
220 | | 0x18 => { |
221 | 0 | from |
222 | | } |
223 | | 0x19 => { |
224 | 0 | from |
225 | | } |
226 | | 0x1a => { |
227 | 0 | from |
228 | | } |
229 | | 0x1b => { |
230 | 0 | from |
231 | | } |
232 | | 0x1c => { |
233 | 0 | match low_byte { |
234 | 0 | 0x80 => 0x0432, |
235 | 0 | 0x81 => 0x0434, |
236 | 0 | 0x82 => 0x043e, |
237 | 0 | x @ _ if 0x83 <= x && x <= 0x84 => from.wrapping_sub(0x1842), |
238 | 0 | 0x85 => 0x0442, |
239 | 0 | 0x86 => 0x044a, |
240 | 0 | 0x87 => 0x0463, |
241 | 0 | 0x88 => 0xa64b, |
242 | 0 | x @ _ if 0x90 <= x && x <= 0xba => from.wrapping_sub(0x0bc0), |
243 | 0 | x @ _ if 0xbd <= x && x <= 0xbf => from.wrapping_sub(0x0bc0), |
244 | 0 | _ => from |
245 | | } |
246 | | } |
247 | | 0x1d => { |
248 | 0 | from |
249 | | } |
250 | | 0x1e => { |
251 | 0 | match low_byte { |
252 | 0 | x @ _ if x <= 0x94 => (from | 1), |
253 | 0 | 0x96 => return Fold::Two('\u{0068}', '\u{0331}',), |
254 | 0 | 0x97 => return Fold::Two('\u{0074}', '\u{0308}',), |
255 | 0 | 0x98 => return Fold::Two('\u{0077}', '\u{030a}',), |
256 | 0 | 0x99 => return Fold::Two('\u{0079}', '\u{030a}',), |
257 | 0 | 0x9a => return Fold::Two('\u{0061}', '\u{02be}',), |
258 | 0 | 0x9b => 0x1e61, |
259 | 0 | 0x9e => return Fold::Two('\u{0073}', '\u{0073}',), |
260 | 0 | x @ _ if 0xa0 <= x && x <= 0xfe => (from | 1), |
261 | 0 | _ => from |
262 | | } |
263 | | } |
264 | | 0x1f => { |
265 | 0 | match low_byte { |
266 | 0 | x @ _ if 0x08 <= x && x <= 0x0f => from.wrapping_sub(0x0008), |
267 | 0 | x @ _ if 0x18 <= x && x <= 0x1d => from.wrapping_sub(0x0008), |
268 | 0 | x @ _ if 0x28 <= x && x <= 0x2f => from.wrapping_sub(0x0008), |
269 | 0 | x @ _ if 0x38 <= x && x <= 0x3f => from.wrapping_sub(0x0008), |
270 | 0 | x @ _ if 0x48 <= x && x <= 0x4d => from.wrapping_sub(0x0008), |
271 | 0 | 0x50 => return Fold::Two('\u{03c5}', '\u{0313}',), |
272 | 0 | 0x52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}',), |
273 | 0 | 0x54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}',), |
274 | 0 | 0x56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}',), |
275 | 0 | x @ _ if 0x59 <= x && x <= 0x5f => if (from & 1) == 1 { from.wrapping_sub(0x0008) } else { from }, |
276 | 0 | x @ _ if 0x68 <= x && x <= 0x6f => from.wrapping_sub(0x0008), |
277 | 0 | 0x80 => return Fold::Two('\u{1f00}', '\u{03b9}',), |
278 | 0 | 0x81 => return Fold::Two('\u{1f01}', '\u{03b9}',), |
279 | 0 | 0x82 => return Fold::Two('\u{1f02}', '\u{03b9}',), |
280 | 0 | 0x83 => return Fold::Two('\u{1f03}', '\u{03b9}',), |
281 | 0 | 0x84 => return Fold::Two('\u{1f04}', '\u{03b9}',), |
282 | 0 | 0x85 => return Fold::Two('\u{1f05}', '\u{03b9}',), |
283 | 0 | 0x86 => return Fold::Two('\u{1f06}', '\u{03b9}',), |
284 | 0 | 0x87 => return Fold::Two('\u{1f07}', '\u{03b9}',), |
285 | 0 | 0x88 => return Fold::Two('\u{1f00}', '\u{03b9}',), |
286 | 0 | 0x89 => return Fold::Two('\u{1f01}', '\u{03b9}',), |
287 | 0 | 0x8a => return Fold::Two('\u{1f02}', '\u{03b9}',), |
288 | 0 | 0x8b => return Fold::Two('\u{1f03}', '\u{03b9}',), |
289 | 0 | 0x8c => return Fold::Two('\u{1f04}', '\u{03b9}',), |
290 | 0 | 0x8d => return Fold::Two('\u{1f05}', '\u{03b9}',), |
291 | 0 | 0x8e => return Fold::Two('\u{1f06}', '\u{03b9}',), |
292 | 0 | 0x8f => return Fold::Two('\u{1f07}', '\u{03b9}',), |
293 | 0 | 0x90 => return Fold::Two('\u{1f20}', '\u{03b9}',), |
294 | 0 | 0x91 => return Fold::Two('\u{1f21}', '\u{03b9}',), |
295 | 0 | 0x92 => return Fold::Two('\u{1f22}', '\u{03b9}',), |
296 | 0 | 0x93 => return Fold::Two('\u{1f23}', '\u{03b9}',), |
297 | 0 | 0x94 => return Fold::Two('\u{1f24}', '\u{03b9}',), |
298 | 0 | 0x95 => return Fold::Two('\u{1f25}', '\u{03b9}',), |
299 | 0 | 0x96 => return Fold::Two('\u{1f26}', '\u{03b9}',), |
300 | 0 | 0x97 => return Fold::Two('\u{1f27}', '\u{03b9}',), |
301 | 0 | 0x98 => return Fold::Two('\u{1f20}', '\u{03b9}',), |
302 | 0 | 0x99 => return Fold::Two('\u{1f21}', '\u{03b9}',), |
303 | 0 | 0x9a => return Fold::Two('\u{1f22}', '\u{03b9}',), |
304 | 0 | 0x9b => return Fold::Two('\u{1f23}', '\u{03b9}',), |
305 | 0 | 0x9c => return Fold::Two('\u{1f24}', '\u{03b9}',), |
306 | 0 | 0x9d => return Fold::Two('\u{1f25}', '\u{03b9}',), |
307 | 0 | 0x9e => return Fold::Two('\u{1f26}', '\u{03b9}',), |
308 | 0 | 0x9f => return Fold::Two('\u{1f27}', '\u{03b9}',), |
309 | 0 | 0xa0 => return Fold::Two('\u{1f60}', '\u{03b9}',), |
310 | 0 | 0xa1 => return Fold::Two('\u{1f61}', '\u{03b9}',), |
311 | 0 | 0xa2 => return Fold::Two('\u{1f62}', '\u{03b9}',), |
312 | 0 | 0xa3 => return Fold::Two('\u{1f63}', '\u{03b9}',), |
313 | 0 | 0xa4 => return Fold::Two('\u{1f64}', '\u{03b9}',), |
314 | 0 | 0xa5 => return Fold::Two('\u{1f65}', '\u{03b9}',), |
315 | 0 | 0xa6 => return Fold::Two('\u{1f66}', '\u{03b9}',), |
316 | 0 | 0xa7 => return Fold::Two('\u{1f67}', '\u{03b9}',), |
317 | 0 | 0xa8 => return Fold::Two('\u{1f60}', '\u{03b9}',), |
318 | 0 | 0xa9 => return Fold::Two('\u{1f61}', '\u{03b9}',), |
319 | 0 | 0xaa => return Fold::Two('\u{1f62}', '\u{03b9}',), |
320 | 0 | 0xab => return Fold::Two('\u{1f63}', '\u{03b9}',), |
321 | 0 | 0xac => return Fold::Two('\u{1f64}', '\u{03b9}',), |
322 | 0 | 0xad => return Fold::Two('\u{1f65}', '\u{03b9}',), |
323 | 0 | 0xae => return Fold::Two('\u{1f66}', '\u{03b9}',), |
324 | 0 | 0xaf => return Fold::Two('\u{1f67}', '\u{03b9}',), |
325 | 0 | 0xb2 => return Fold::Two('\u{1f70}', '\u{03b9}',), |
326 | 0 | 0xb3 => return Fold::Two('\u{03b1}', '\u{03b9}',), |
327 | 0 | 0xb4 => return Fold::Two('\u{03ac}', '\u{03b9}',), |
328 | 0 | 0xb6 => return Fold::Two('\u{03b1}', '\u{0342}',), |
329 | 0 | 0xb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}',), |
330 | 0 | x @ _ if 0xb8 <= x && x <= 0xb9 => from.wrapping_sub(0x0008), |
331 | 0 | x @ _ if 0xba <= x && x <= 0xbb => from.wrapping_sub(0x004a), |
332 | 0 | 0xbc => return Fold::Two('\u{03b1}', '\u{03b9}',), |
333 | 0 | 0xbe => 0x03b9, |
334 | 0 | 0xc2 => return Fold::Two('\u{1f74}', '\u{03b9}',), |
335 | 0 | 0xc3 => return Fold::Two('\u{03b7}', '\u{03b9}',), |
336 | 0 | 0xc4 => return Fold::Two('\u{03ae}', '\u{03b9}',), |
337 | 0 | 0xc6 => return Fold::Two('\u{03b7}', '\u{0342}',), |
338 | 0 | 0xc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}',), |
339 | 0 | x @ _ if 0xc8 <= x && x <= 0xcb => from.wrapping_sub(0x0056), |
340 | 0 | 0xcc => return Fold::Two('\u{03b7}', '\u{03b9}',), |
341 | 0 | 0xd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}',), |
342 | 0 | 0xd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), |
343 | 0 | 0xd6 => return Fold::Two('\u{03b9}', '\u{0342}',), |
344 | 0 | 0xd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}',), |
345 | 0 | x @ _ if 0xd8 <= x && x <= 0xd9 => from.wrapping_sub(0x0008), |
346 | 0 | x @ _ if 0xda <= x && x <= 0xdb => from.wrapping_sub(0x0064), |
347 | 0 | 0xe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}',), |
348 | 0 | 0xe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), |
349 | 0 | 0xe4 => return Fold::Two('\u{03c1}', '\u{0313}',), |
350 | 0 | 0xe6 => return Fold::Two('\u{03c5}', '\u{0342}',), |
351 | 0 | 0xe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}',), |
352 | 0 | x @ _ if 0xe8 <= x && x <= 0xe9 => from.wrapping_sub(0x0008), |
353 | 0 | x @ _ if 0xea <= x && x <= 0xeb => from.wrapping_sub(0x0070), |
354 | 0 | 0xec => 0x1fe5, |
355 | 0 | 0xf2 => return Fold::Two('\u{1f7c}', '\u{03b9}',), |
356 | 0 | 0xf3 => return Fold::Two('\u{03c9}', '\u{03b9}',), |
357 | 0 | 0xf4 => return Fold::Two('\u{03ce}', '\u{03b9}',), |
358 | 0 | 0xf6 => return Fold::Two('\u{03c9}', '\u{0342}',), |
359 | 0 | 0xf7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}',), |
360 | 0 | x @ _ if 0xf8 <= x && x <= 0xf9 => from.wrapping_sub(0x0080), |
361 | 0 | x @ _ if 0xfa <= x && x <= 0xfb => from.wrapping_sub(0x007e), |
362 | 0 | 0xfc => return Fold::Two('\u{03c9}', '\u{03b9}',), |
363 | 0 | _ => from |
364 | | } |
365 | | } |
366 | | 0x20 => { |
367 | 0 | from |
368 | | } |
369 | | 0x21 => { |
370 | 0 | match low_byte { |
371 | 0 | 0x26 => 0x03c9, |
372 | 0 | 0x2a => 0x006b, |
373 | 0 | 0x2b => 0x00e5, |
374 | 0 | 0x32 => 0x214e, |
375 | 0 | x @ _ if 0x60 <= x && x <= 0x6f => from.wrapping_add(0x0010), |
376 | 0 | 0x83 => 0x2184, |
377 | 0 | _ => from |
378 | | } |
379 | | } |
380 | | 0x22 => { |
381 | 0 | from |
382 | | } |
383 | | 0x23 => { |
384 | 0 | from |
385 | | } |
386 | | 0x24 => { |
387 | 0 | match low_byte { |
388 | 0 | x @ _ if 0xb6 <= x && x <= 0xcf => from.wrapping_add(0x001a), |
389 | 0 | _ => from |
390 | | } |
391 | | } |
392 | | 0x25 => { |
393 | 0 | from |
394 | | } |
395 | | 0x26 => { |
396 | 0 | from |
397 | | } |
398 | | 0x27 => { |
399 | 0 | from |
400 | | } |
401 | | 0x28 => { |
402 | 0 | from |
403 | | } |
404 | | 0x29 => { |
405 | 0 | from |
406 | | } |
407 | | 0x2a => { |
408 | 0 | from |
409 | | } |
410 | | 0x2b => { |
411 | 0 | from |
412 | | } |
413 | | 0x2c => { |
414 | 0 | match low_byte { |
415 | 0 | x @ _ if x <= 0x2e => from.wrapping_add(0x0030), |
416 | 0 | 0x60 => 0x2c61, |
417 | 0 | 0x62 => 0x026b, |
418 | 0 | 0x63 => 0x1d7d, |
419 | 0 | 0x64 => 0x027d, |
420 | 0 | x @ _ if 0x67 <= x && x <= 0x6b => ((from+1) & !1), |
421 | 0 | 0x6d => 0x0251, |
422 | 0 | 0x6e => 0x0271, |
423 | 0 | 0x6f => 0x0250, |
424 | 0 | 0x70 => 0x0252, |
425 | 0 | 0x72 => 0x2c73, |
426 | 0 | 0x75 => 0x2c76, |
427 | 0 | x @ _ if 0x7e <= x && x <= 0x7f => from.wrapping_sub(0x2a3f), |
428 | 0 | x @ _ if 0x80 <= x && x <= 0xe2 => (from | 1), |
429 | 0 | x @ _ if 0xeb <= x && x <= 0xed => ((from+1) & !1), |
430 | 0 | 0xf2 => 0x2cf3, |
431 | 0 | _ => from |
432 | | } |
433 | | } |
434 | 0 | _ => from |
435 | | }; |
436 | 0 | Fold::One( char::from_u32(single_char as u32).unwrap_or(orig) ) |
437 | | } else { |
438 | 0 | let single_char: u32 = match from { |
439 | 0 | x @ _ if 0xa640 <= x && x <= 0xa66c => (from | 1), |
440 | 0 | x @ _ if 0xa680 <= x && x <= 0xa69a => (from | 1), |
441 | 0 | x @ _ if 0xa722 <= x && x <= 0xa72e => (from | 1), |
442 | 0 | x @ _ if 0xa732 <= x && x <= 0xa76e => (from | 1), |
443 | 0 | x @ _ if 0xa779 <= x && x <= 0xa77b => ((from+1) & !1), |
444 | 0 | 0xa77d => 0x1d79, |
445 | 0 | x @ _ if 0xa77e <= x && x <= 0xa786 => (from | 1), |
446 | 0 | 0xa78b => 0xa78c, |
447 | 0 | 0xa78d => 0x0265, |
448 | 0 | x @ _ if 0xa790 <= x && x <= 0xa792 => (from | 1), |
449 | 0 | x @ _ if 0xa796 <= x && x <= 0xa7a8 => (from | 1), |
450 | 0 | 0xa7aa => 0x0266, |
451 | 0 | 0xa7ab => 0x025c, |
452 | 0 | 0xa7ac => 0x0261, |
453 | 0 | 0xa7ad => 0x026c, |
454 | 0 | 0xa7ae => 0x026a, |
455 | 0 | 0xa7b0 => 0x029e, |
456 | 0 | 0xa7b1 => 0x0287, |
457 | 0 | 0xa7b2 => 0x029d, |
458 | 0 | 0xa7b3 => 0xab53, |
459 | 0 | x @ _ if 0xa7b4 <= x && x <= 0xa7be => (from | 1), |
460 | 0 | 0xa7c2 => 0xa7c3, |
461 | 0 | 0xa7c4 => 0xa794, |
462 | 0 | 0xa7c5 => 0x0282, |
463 | 0 | 0xa7c6 => 0x1d8e, |
464 | 0 | x @ _ if 0xab70 <= x && x <= 0xabbf => from.wrapping_sub(0x97d0), |
465 | 0 | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}',), |
466 | 0 | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}',), |
467 | 0 | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}',), |
468 | 0 | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}',), |
469 | 0 | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}',), |
470 | 0 | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}',), |
471 | 0 | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}',), |
472 | 0 | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}',), |
473 | 0 | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}',), |
474 | 0 | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}',), |
475 | 0 | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}',), |
476 | 0 | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}',), |
477 | 0 | x @ _ if 0xff21 <= x && x <= 0xff3a => from.wrapping_add(0x0020), |
478 | 0 | x @ _ if 0x10400 <= x && x <= 0x10427 => from.wrapping_add(0x0028), |
479 | 0 | x @ _ if 0x104b0 <= x && x <= 0x104d3 => from.wrapping_add(0x0028), |
480 | 0 | x @ _ if 0x10c80 <= x && x <= 0x10cb2 => from.wrapping_add(0x0040), |
481 | 0 | x @ _ if 0x118a0 <= x && x <= 0x118bf => from.wrapping_add(0x0020), |
482 | 0 | x @ _ if 0x16e40 <= x && x <= 0x16e5f => from.wrapping_add(0x0020), |
483 | 0 | x @ _ if 0x1e900 <= x && x <= 0x1e921 => from.wrapping_add(0x0022), |
484 | 0 | _ => from |
485 | | }; |
486 | 0 | Fold::One( char::from_u32(single_char).unwrap_or(orig) ) |
487 | | } |
488 | 0 | } |
489 | | |
490 | | #[test] |
491 | | fn lookup_consistency() { |
492 | | fn lookup_naive(orig: char) -> Fold { |
493 | | let single_char = match orig as u32 { |
494 | | 0x0041 => 0x0061, |
495 | | 0x0042 => 0x0062, |
496 | | 0x0043 => 0x0063, |
497 | | 0x0044 => 0x0064, |
498 | | 0x0045 => 0x0065, |
499 | | 0x0046 => 0x0066, |
500 | | 0x0047 => 0x0067, |
501 | | 0x0048 => 0x0068, |
502 | | 0x0049 => 0x0069, |
503 | | 0x004a => 0x006a, |
504 | | 0x004b => 0x006b, |
505 | | 0x004c => 0x006c, |
506 | | 0x004d => 0x006d, |
507 | | 0x004e => 0x006e, |
508 | | 0x004f => 0x006f, |
509 | | 0x0050 => 0x0070, |
510 | | 0x0051 => 0x0071, |
511 | | 0x0052 => 0x0072, |
512 | | 0x0053 => 0x0073, |
513 | | 0x0054 => 0x0074, |
514 | | 0x0055 => 0x0075, |
515 | | 0x0056 => 0x0076, |
516 | | 0x0057 => 0x0077, |
517 | | 0x0058 => 0x0078, |
518 | | 0x0059 => 0x0079, |
519 | | 0x005a => 0x007a, |
520 | | 0x00b5 => 0x03bc, |
521 | | 0x00c0 => 0x00e0, |
522 | | 0x00c1 => 0x00e1, |
523 | | 0x00c2 => 0x00e2, |
524 | | 0x00c3 => 0x00e3, |
525 | | 0x00c4 => 0x00e4, |
526 | | 0x00c5 => 0x00e5, |
527 | | 0x00c6 => 0x00e6, |
528 | | 0x00c7 => 0x00e7, |
529 | | 0x00c8 => 0x00e8, |
530 | | 0x00c9 => 0x00e9, |
531 | | 0x00ca => 0x00ea, |
532 | | 0x00cb => 0x00eb, |
533 | | 0x00cc => 0x00ec, |
534 | | 0x00cd => 0x00ed, |
535 | | 0x00ce => 0x00ee, |
536 | | 0x00cf => 0x00ef, |
537 | | 0x00d0 => 0x00f0, |
538 | | 0x00d1 => 0x00f1, |
539 | | 0x00d2 => 0x00f2, |
540 | | 0x00d3 => 0x00f3, |
541 | | 0x00d4 => 0x00f4, |
542 | | 0x00d5 => 0x00f5, |
543 | | 0x00d6 => 0x00f6, |
544 | | 0x00d8 => 0x00f8, |
545 | | 0x00d9 => 0x00f9, |
546 | | 0x00da => 0x00fa, |
547 | | 0x00db => 0x00fb, |
548 | | 0x00dc => 0x00fc, |
549 | | 0x00dd => 0x00fd, |
550 | | 0x00de => 0x00fe, |
551 | | 0x00df => return Fold::Two('\u{0073}', '\u{0073}',), |
552 | | 0x0100 => 0x0101, |
553 | | 0x0102 => 0x0103, |
554 | | 0x0104 => 0x0105, |
555 | | 0x0106 => 0x0107, |
556 | | 0x0108 => 0x0109, |
557 | | 0x010a => 0x010b, |
558 | | 0x010c => 0x010d, |
559 | | 0x010e => 0x010f, |
560 | | 0x0110 => 0x0111, |
561 | | 0x0112 => 0x0113, |
562 | | 0x0114 => 0x0115, |
563 | | 0x0116 => 0x0117, |
564 | | 0x0118 => 0x0119, |
565 | | 0x011a => 0x011b, |
566 | | 0x011c => 0x011d, |
567 | | 0x011e => 0x011f, |
568 | | 0x0120 => 0x0121, |
569 | | 0x0122 => 0x0123, |
570 | | 0x0124 => 0x0125, |
571 | | 0x0126 => 0x0127, |
572 | | 0x0128 => 0x0129, |
573 | | 0x012a => 0x012b, |
574 | | 0x012c => 0x012d, |
575 | | 0x012e => 0x012f, |
576 | | 0x0130 => return Fold::Two('\u{0069}', '\u{0307}',), |
577 | | 0x0132 => 0x0133, |
578 | | 0x0134 => 0x0135, |
579 | | 0x0136 => 0x0137, |
580 | | 0x0139 => 0x013a, |
581 | | 0x013b => 0x013c, |
582 | | 0x013d => 0x013e, |
583 | | 0x013f => 0x0140, |
584 | | 0x0141 => 0x0142, |
585 | | 0x0143 => 0x0144, |
586 | | 0x0145 => 0x0146, |
587 | | 0x0147 => 0x0148, |
588 | | 0x0149 => return Fold::Two('\u{02bc}', '\u{006e}',), |
589 | | 0x014a => 0x014b, |
590 | | 0x014c => 0x014d, |
591 | | 0x014e => 0x014f, |
592 | | 0x0150 => 0x0151, |
593 | | 0x0152 => 0x0153, |
594 | | 0x0154 => 0x0155, |
595 | | 0x0156 => 0x0157, |
596 | | 0x0158 => 0x0159, |
597 | | 0x015a => 0x015b, |
598 | | 0x015c => 0x015d, |
599 | | 0x015e => 0x015f, |
600 | | 0x0160 => 0x0161, |
601 | | 0x0162 => 0x0163, |
602 | | 0x0164 => 0x0165, |
603 | | 0x0166 => 0x0167, |
604 | | 0x0168 => 0x0169, |
605 | | 0x016a => 0x016b, |
606 | | 0x016c => 0x016d, |
607 | | 0x016e => 0x016f, |
608 | | 0x0170 => 0x0171, |
609 | | 0x0172 => 0x0173, |
610 | | 0x0174 => 0x0175, |
611 | | 0x0176 => 0x0177, |
612 | | 0x0178 => 0x00ff, |
613 | | 0x0179 => 0x017a, |
614 | | 0x017b => 0x017c, |
615 | | 0x017d => 0x017e, |
616 | | 0x017f => 0x0073, |
617 | | 0x0181 => 0x0253, |
618 | | 0x0182 => 0x0183, |
619 | | 0x0184 => 0x0185, |
620 | | 0x0186 => 0x0254, |
621 | | 0x0187 => 0x0188, |
622 | | 0x0189 => 0x0256, |
623 | | 0x018a => 0x0257, |
624 | | 0x018b => 0x018c, |
625 | | 0x018e => 0x01dd, |
626 | | 0x018f => 0x0259, |
627 | | 0x0190 => 0x025b, |
628 | | 0x0191 => 0x0192, |
629 | | 0x0193 => 0x0260, |
630 | | 0x0194 => 0x0263, |
631 | | 0x0196 => 0x0269, |
632 | | 0x0197 => 0x0268, |
633 | | 0x0198 => 0x0199, |
634 | | 0x019c => 0x026f, |
635 | | 0x019d => 0x0272, |
636 | | 0x019f => 0x0275, |
637 | | 0x01a0 => 0x01a1, |
638 | | 0x01a2 => 0x01a3, |
639 | | 0x01a4 => 0x01a5, |
640 | | 0x01a6 => 0x0280, |
641 | | 0x01a7 => 0x01a8, |
642 | | 0x01a9 => 0x0283, |
643 | | 0x01ac => 0x01ad, |
644 | | 0x01ae => 0x0288, |
645 | | 0x01af => 0x01b0, |
646 | | 0x01b1 => 0x028a, |
647 | | 0x01b2 => 0x028b, |
648 | | 0x01b3 => 0x01b4, |
649 | | 0x01b5 => 0x01b6, |
650 | | 0x01b7 => 0x0292, |
651 | | 0x01b8 => 0x01b9, |
652 | | 0x01bc => 0x01bd, |
653 | | 0x01c4 => 0x01c6, |
654 | | 0x01c5 => 0x01c6, |
655 | | 0x01c7 => 0x01c9, |
656 | | 0x01c8 => 0x01c9, |
657 | | 0x01ca => 0x01cc, |
658 | | 0x01cb => 0x01cc, |
659 | | 0x01cd => 0x01ce, |
660 | | 0x01cf => 0x01d0, |
661 | | 0x01d1 => 0x01d2, |
662 | | 0x01d3 => 0x01d4, |
663 | | 0x01d5 => 0x01d6, |
664 | | 0x01d7 => 0x01d8, |
665 | | 0x01d9 => 0x01da, |
666 | | 0x01db => 0x01dc, |
667 | | 0x01de => 0x01df, |
668 | | 0x01e0 => 0x01e1, |
669 | | 0x01e2 => 0x01e3, |
670 | | 0x01e4 => 0x01e5, |
671 | | 0x01e6 => 0x01e7, |
672 | | 0x01e8 => 0x01e9, |
673 | | 0x01ea => 0x01eb, |
674 | | 0x01ec => 0x01ed, |
675 | | 0x01ee => 0x01ef, |
676 | | 0x01f0 => return Fold::Two('\u{006a}', '\u{030c}',), |
677 | | 0x01f1 => 0x01f3, |
678 | | 0x01f2 => 0x01f3, |
679 | | 0x01f4 => 0x01f5, |
680 | | 0x01f6 => 0x0195, |
681 | | 0x01f7 => 0x01bf, |
682 | | 0x01f8 => 0x01f9, |
683 | | 0x01fa => 0x01fb, |
684 | | 0x01fc => 0x01fd, |
685 | | 0x01fe => 0x01ff, |
686 | | 0x0200 => 0x0201, |
687 | | 0x0202 => 0x0203, |
688 | | 0x0204 => 0x0205, |
689 | | 0x0206 => 0x0207, |
690 | | 0x0208 => 0x0209, |
691 | | 0x020a => 0x020b, |
692 | | 0x020c => 0x020d, |
693 | | 0x020e => 0x020f, |
694 | | 0x0210 => 0x0211, |
695 | | 0x0212 => 0x0213, |
696 | | 0x0214 => 0x0215, |
697 | | 0x0216 => 0x0217, |
698 | | 0x0218 => 0x0219, |
699 | | 0x021a => 0x021b, |
700 | | 0x021c => 0x021d, |
701 | | 0x021e => 0x021f, |
702 | | 0x0220 => 0x019e, |
703 | | 0x0222 => 0x0223, |
704 | | 0x0224 => 0x0225, |
705 | | 0x0226 => 0x0227, |
706 | | 0x0228 => 0x0229, |
707 | | 0x022a => 0x022b, |
708 | | 0x022c => 0x022d, |
709 | | 0x022e => 0x022f, |
710 | | 0x0230 => 0x0231, |
711 | | 0x0232 => 0x0233, |
712 | | 0x023a => 0x2c65, |
713 | | 0x023b => 0x023c, |
714 | | 0x023d => 0x019a, |
715 | | 0x023e => 0x2c66, |
716 | | 0x0241 => 0x0242, |
717 | | 0x0243 => 0x0180, |
718 | | 0x0244 => 0x0289, |
719 | | 0x0245 => 0x028c, |
720 | | 0x0246 => 0x0247, |
721 | | 0x0248 => 0x0249, |
722 | | 0x024a => 0x024b, |
723 | | 0x024c => 0x024d, |
724 | | 0x024e => 0x024f, |
725 | | 0x0345 => 0x03b9, |
726 | | 0x0370 => 0x0371, |
727 | | 0x0372 => 0x0373, |
728 | | 0x0376 => 0x0377, |
729 | | 0x037f => 0x03f3, |
730 | | 0x0386 => 0x03ac, |
731 | | 0x0388 => 0x03ad, |
732 | | 0x0389 => 0x03ae, |
733 | | 0x038a => 0x03af, |
734 | | 0x038c => 0x03cc, |
735 | | 0x038e => 0x03cd, |
736 | | 0x038f => 0x03ce, |
737 | | 0x0390 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), |
738 | | 0x0391 => 0x03b1, |
739 | | 0x0392 => 0x03b2, |
740 | | 0x0393 => 0x03b3, |
741 | | 0x0394 => 0x03b4, |
742 | | 0x0395 => 0x03b5, |
743 | | 0x0396 => 0x03b6, |
744 | | 0x0397 => 0x03b7, |
745 | | 0x0398 => 0x03b8, |
746 | | 0x0399 => 0x03b9, |
747 | | 0x039a => 0x03ba, |
748 | | 0x039b => 0x03bb, |
749 | | 0x039c => 0x03bc, |
750 | | 0x039d => 0x03bd, |
751 | | 0x039e => 0x03be, |
752 | | 0x039f => 0x03bf, |
753 | | 0x03a0 => 0x03c0, |
754 | | 0x03a1 => 0x03c1, |
755 | | 0x03a3 => 0x03c3, |
756 | | 0x03a4 => 0x03c4, |
757 | | 0x03a5 => 0x03c5, |
758 | | 0x03a6 => 0x03c6, |
759 | | 0x03a7 => 0x03c7, |
760 | | 0x03a8 => 0x03c8, |
761 | | 0x03a9 => 0x03c9, |
762 | | 0x03aa => 0x03ca, |
763 | | 0x03ab => 0x03cb, |
764 | | 0x03b0 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), |
765 | | 0x03c2 => 0x03c3, |
766 | | 0x03cf => 0x03d7, |
767 | | 0x03d0 => 0x03b2, |
768 | | 0x03d1 => 0x03b8, |
769 | | 0x03d5 => 0x03c6, |
770 | | 0x03d6 => 0x03c0, |
771 | | 0x03d8 => 0x03d9, |
772 | | 0x03da => 0x03db, |
773 | | 0x03dc => 0x03dd, |
774 | | 0x03de => 0x03df, |
775 | | 0x03e0 => 0x03e1, |
776 | | 0x03e2 => 0x03e3, |
777 | | 0x03e4 => 0x03e5, |
778 | | 0x03e6 => 0x03e7, |
779 | | 0x03e8 => 0x03e9, |
780 | | 0x03ea => 0x03eb, |
781 | | 0x03ec => 0x03ed, |
782 | | 0x03ee => 0x03ef, |
783 | | 0x03f0 => 0x03ba, |
784 | | 0x03f1 => 0x03c1, |
785 | | 0x03f4 => 0x03b8, |
786 | | 0x03f5 => 0x03b5, |
787 | | 0x03f7 => 0x03f8, |
788 | | 0x03f9 => 0x03f2, |
789 | | 0x03fa => 0x03fb, |
790 | | 0x03fd => 0x037b, |
791 | | 0x03fe => 0x037c, |
792 | | 0x03ff => 0x037d, |
793 | | 0x0400 => 0x0450, |
794 | | 0x0401 => 0x0451, |
795 | | 0x0402 => 0x0452, |
796 | | 0x0403 => 0x0453, |
797 | | 0x0404 => 0x0454, |
798 | | 0x0405 => 0x0455, |
799 | | 0x0406 => 0x0456, |
800 | | 0x0407 => 0x0457, |
801 | | 0x0408 => 0x0458, |
802 | | 0x0409 => 0x0459, |
803 | | 0x040a => 0x045a, |
804 | | 0x040b => 0x045b, |
805 | | 0x040c => 0x045c, |
806 | | 0x040d => 0x045d, |
807 | | 0x040e => 0x045e, |
808 | | 0x040f => 0x045f, |
809 | | 0x0410 => 0x0430, |
810 | | 0x0411 => 0x0431, |
811 | | 0x0412 => 0x0432, |
812 | | 0x0413 => 0x0433, |
813 | | 0x0414 => 0x0434, |
814 | | 0x0415 => 0x0435, |
815 | | 0x0416 => 0x0436, |
816 | | 0x0417 => 0x0437, |
817 | | 0x0418 => 0x0438, |
818 | | 0x0419 => 0x0439, |
819 | | 0x041a => 0x043a, |
820 | | 0x041b => 0x043b, |
821 | | 0x041c => 0x043c, |
822 | | 0x041d => 0x043d, |
823 | | 0x041e => 0x043e, |
824 | | 0x041f => 0x043f, |
825 | | 0x0420 => 0x0440, |
826 | | 0x0421 => 0x0441, |
827 | | 0x0422 => 0x0442, |
828 | | 0x0423 => 0x0443, |
829 | | 0x0424 => 0x0444, |
830 | | 0x0425 => 0x0445, |
831 | | 0x0426 => 0x0446, |
832 | | 0x0427 => 0x0447, |
833 | | 0x0428 => 0x0448, |
834 | | 0x0429 => 0x0449, |
835 | | 0x042a => 0x044a, |
836 | | 0x042b => 0x044b, |
837 | | 0x042c => 0x044c, |
838 | | 0x042d => 0x044d, |
839 | | 0x042e => 0x044e, |
840 | | 0x042f => 0x044f, |
841 | | 0x0460 => 0x0461, |
842 | | 0x0462 => 0x0463, |
843 | | 0x0464 => 0x0465, |
844 | | 0x0466 => 0x0467, |
845 | | 0x0468 => 0x0469, |
846 | | 0x046a => 0x046b, |
847 | | 0x046c => 0x046d, |
848 | | 0x046e => 0x046f, |
849 | | 0x0470 => 0x0471, |
850 | | 0x0472 => 0x0473, |
851 | | 0x0474 => 0x0475, |
852 | | 0x0476 => 0x0477, |
853 | | 0x0478 => 0x0479, |
854 | | 0x047a => 0x047b, |
855 | | 0x047c => 0x047d, |
856 | | 0x047e => 0x047f, |
857 | | 0x0480 => 0x0481, |
858 | | 0x048a => 0x048b, |
859 | | 0x048c => 0x048d, |
860 | | 0x048e => 0x048f, |
861 | | 0x0490 => 0x0491, |
862 | | 0x0492 => 0x0493, |
863 | | 0x0494 => 0x0495, |
864 | | 0x0496 => 0x0497, |
865 | | 0x0498 => 0x0499, |
866 | | 0x049a => 0x049b, |
867 | | 0x049c => 0x049d, |
868 | | 0x049e => 0x049f, |
869 | | 0x04a0 => 0x04a1, |
870 | | 0x04a2 => 0x04a3, |
871 | | 0x04a4 => 0x04a5, |
872 | | 0x04a6 => 0x04a7, |
873 | | 0x04a8 => 0x04a9, |
874 | | 0x04aa => 0x04ab, |
875 | | 0x04ac => 0x04ad, |
876 | | 0x04ae => 0x04af, |
877 | | 0x04b0 => 0x04b1, |
878 | | 0x04b2 => 0x04b3, |
879 | | 0x04b4 => 0x04b5, |
880 | | 0x04b6 => 0x04b7, |
881 | | 0x04b8 => 0x04b9, |
882 | | 0x04ba => 0x04bb, |
883 | | 0x04bc => 0x04bd, |
884 | | 0x04be => 0x04bf, |
885 | | 0x04c0 => 0x04cf, |
886 | | 0x04c1 => 0x04c2, |
887 | | 0x04c3 => 0x04c4, |
888 | | 0x04c5 => 0x04c6, |
889 | | 0x04c7 => 0x04c8, |
890 | | 0x04c9 => 0x04ca, |
891 | | 0x04cb => 0x04cc, |
892 | | 0x04cd => 0x04ce, |
893 | | 0x04d0 => 0x04d1, |
894 | | 0x04d2 => 0x04d3, |
895 | | 0x04d4 => 0x04d5, |
896 | | 0x04d6 => 0x04d7, |
897 | | 0x04d8 => 0x04d9, |
898 | | 0x04da => 0x04db, |
899 | | 0x04dc => 0x04dd, |
900 | | 0x04de => 0x04df, |
901 | | 0x04e0 => 0x04e1, |
902 | | 0x04e2 => 0x04e3, |
903 | | 0x04e4 => 0x04e5, |
904 | | 0x04e6 => 0x04e7, |
905 | | 0x04e8 => 0x04e9, |
906 | | 0x04ea => 0x04eb, |
907 | | 0x04ec => 0x04ed, |
908 | | 0x04ee => 0x04ef, |
909 | | 0x04f0 => 0x04f1, |
910 | | 0x04f2 => 0x04f3, |
911 | | 0x04f4 => 0x04f5, |
912 | | 0x04f6 => 0x04f7, |
913 | | 0x04f8 => 0x04f9, |
914 | | 0x04fa => 0x04fb, |
915 | | 0x04fc => 0x04fd, |
916 | | 0x04fe => 0x04ff, |
917 | | 0x0500 => 0x0501, |
918 | | 0x0502 => 0x0503, |
919 | | 0x0504 => 0x0505, |
920 | | 0x0506 => 0x0507, |
921 | | 0x0508 => 0x0509, |
922 | | 0x050a => 0x050b, |
923 | | 0x050c => 0x050d, |
924 | | 0x050e => 0x050f, |
925 | | 0x0510 => 0x0511, |
926 | | 0x0512 => 0x0513, |
927 | | 0x0514 => 0x0515, |
928 | | 0x0516 => 0x0517, |
929 | | 0x0518 => 0x0519, |
930 | | 0x051a => 0x051b, |
931 | | 0x051c => 0x051d, |
932 | | 0x051e => 0x051f, |
933 | | 0x0520 => 0x0521, |
934 | | 0x0522 => 0x0523, |
935 | | 0x0524 => 0x0525, |
936 | | 0x0526 => 0x0527, |
937 | | 0x0528 => 0x0529, |
938 | | 0x052a => 0x052b, |
939 | | 0x052c => 0x052d, |
940 | | 0x052e => 0x052f, |
941 | | 0x0531 => 0x0561, |
942 | | 0x0532 => 0x0562, |
943 | | 0x0533 => 0x0563, |
944 | | 0x0534 => 0x0564, |
945 | | 0x0535 => 0x0565, |
946 | | 0x0536 => 0x0566, |
947 | | 0x0537 => 0x0567, |
948 | | 0x0538 => 0x0568, |
949 | | 0x0539 => 0x0569, |
950 | | 0x053a => 0x056a, |
951 | | 0x053b => 0x056b, |
952 | | 0x053c => 0x056c, |
953 | | 0x053d => 0x056d, |
954 | | 0x053e => 0x056e, |
955 | | 0x053f => 0x056f, |
956 | | 0x0540 => 0x0570, |
957 | | 0x0541 => 0x0571, |
958 | | 0x0542 => 0x0572, |
959 | | 0x0543 => 0x0573, |
960 | | 0x0544 => 0x0574, |
961 | | 0x0545 => 0x0575, |
962 | | 0x0546 => 0x0576, |
963 | | 0x0547 => 0x0577, |
964 | | 0x0548 => 0x0578, |
965 | | 0x0549 => 0x0579, |
966 | | 0x054a => 0x057a, |
967 | | 0x054b => 0x057b, |
968 | | 0x054c => 0x057c, |
969 | | 0x054d => 0x057d, |
970 | | 0x054e => 0x057e, |
971 | | 0x054f => 0x057f, |
972 | | 0x0550 => 0x0580, |
973 | | 0x0551 => 0x0581, |
974 | | 0x0552 => 0x0582, |
975 | | 0x0553 => 0x0583, |
976 | | 0x0554 => 0x0584, |
977 | | 0x0555 => 0x0585, |
978 | | 0x0556 => 0x0586, |
979 | | 0x0587 => return Fold::Two('\u{0565}', '\u{0582}',), |
980 | | 0x10a0 => 0x2d00, |
981 | | 0x10a1 => 0x2d01, |
982 | | 0x10a2 => 0x2d02, |
983 | | 0x10a3 => 0x2d03, |
984 | | 0x10a4 => 0x2d04, |
985 | | 0x10a5 => 0x2d05, |
986 | | 0x10a6 => 0x2d06, |
987 | | 0x10a7 => 0x2d07, |
988 | | 0x10a8 => 0x2d08, |
989 | | 0x10a9 => 0x2d09, |
990 | | 0x10aa => 0x2d0a, |
991 | | 0x10ab => 0x2d0b, |
992 | | 0x10ac => 0x2d0c, |
993 | | 0x10ad => 0x2d0d, |
994 | | 0x10ae => 0x2d0e, |
995 | | 0x10af => 0x2d0f, |
996 | | 0x10b0 => 0x2d10, |
997 | | 0x10b1 => 0x2d11, |
998 | | 0x10b2 => 0x2d12, |
999 | | 0x10b3 => 0x2d13, |
1000 | | 0x10b4 => 0x2d14, |
1001 | | 0x10b5 => 0x2d15, |
1002 | | 0x10b6 => 0x2d16, |
1003 | | 0x10b7 => 0x2d17, |
1004 | | 0x10b8 => 0x2d18, |
1005 | | 0x10b9 => 0x2d19, |
1006 | | 0x10ba => 0x2d1a, |
1007 | | 0x10bb => 0x2d1b, |
1008 | | 0x10bc => 0x2d1c, |
1009 | | 0x10bd => 0x2d1d, |
1010 | | 0x10be => 0x2d1e, |
1011 | | 0x10bf => 0x2d1f, |
1012 | | 0x10c0 => 0x2d20, |
1013 | | 0x10c1 => 0x2d21, |
1014 | | 0x10c2 => 0x2d22, |
1015 | | 0x10c3 => 0x2d23, |
1016 | | 0x10c4 => 0x2d24, |
1017 | | 0x10c5 => 0x2d25, |
1018 | | 0x10c7 => 0x2d27, |
1019 | | 0x10cd => 0x2d2d, |
1020 | | 0x13f8 => 0x13f0, |
1021 | | 0x13f9 => 0x13f1, |
1022 | | 0x13fa => 0x13f2, |
1023 | | 0x13fb => 0x13f3, |
1024 | | 0x13fc => 0x13f4, |
1025 | | 0x13fd => 0x13f5, |
1026 | | 0x1c80 => 0x0432, |
1027 | | 0x1c81 => 0x0434, |
1028 | | 0x1c82 => 0x043e, |
1029 | | 0x1c83 => 0x0441, |
1030 | | 0x1c84 => 0x0442, |
1031 | | 0x1c85 => 0x0442, |
1032 | | 0x1c86 => 0x044a, |
1033 | | 0x1c87 => 0x0463, |
1034 | | 0x1c88 => 0xa64b, |
1035 | | 0x1c90 => 0x10d0, |
1036 | | 0x1c91 => 0x10d1, |
1037 | | 0x1c92 => 0x10d2, |
1038 | | 0x1c93 => 0x10d3, |
1039 | | 0x1c94 => 0x10d4, |
1040 | | 0x1c95 => 0x10d5, |
1041 | | 0x1c96 => 0x10d6, |
1042 | | 0x1c97 => 0x10d7, |
1043 | | 0x1c98 => 0x10d8, |
1044 | | 0x1c99 => 0x10d9, |
1045 | | 0x1c9a => 0x10da, |
1046 | | 0x1c9b => 0x10db, |
1047 | | 0x1c9c => 0x10dc, |
1048 | | 0x1c9d => 0x10dd, |
1049 | | 0x1c9e => 0x10de, |
1050 | | 0x1c9f => 0x10df, |
1051 | | 0x1ca0 => 0x10e0, |
1052 | | 0x1ca1 => 0x10e1, |
1053 | | 0x1ca2 => 0x10e2, |
1054 | | 0x1ca3 => 0x10e3, |
1055 | | 0x1ca4 => 0x10e4, |
1056 | | 0x1ca5 => 0x10e5, |
1057 | | 0x1ca6 => 0x10e6, |
1058 | | 0x1ca7 => 0x10e7, |
1059 | | 0x1ca8 => 0x10e8, |
1060 | | 0x1ca9 => 0x10e9, |
1061 | | 0x1caa => 0x10ea, |
1062 | | 0x1cab => 0x10eb, |
1063 | | 0x1cac => 0x10ec, |
1064 | | 0x1cad => 0x10ed, |
1065 | | 0x1cae => 0x10ee, |
1066 | | 0x1caf => 0x10ef, |
1067 | | 0x1cb0 => 0x10f0, |
1068 | | 0x1cb1 => 0x10f1, |
1069 | | 0x1cb2 => 0x10f2, |
1070 | | 0x1cb3 => 0x10f3, |
1071 | | 0x1cb4 => 0x10f4, |
1072 | | 0x1cb5 => 0x10f5, |
1073 | | 0x1cb6 => 0x10f6, |
1074 | | 0x1cb7 => 0x10f7, |
1075 | | 0x1cb8 => 0x10f8, |
1076 | | 0x1cb9 => 0x10f9, |
1077 | | 0x1cba => 0x10fa, |
1078 | | 0x1cbd => 0x10fd, |
1079 | | 0x1cbe => 0x10fe, |
1080 | | 0x1cbf => 0x10ff, |
1081 | | 0x1e00 => 0x1e01, |
1082 | | 0x1e02 => 0x1e03, |
1083 | | 0x1e04 => 0x1e05, |
1084 | | 0x1e06 => 0x1e07, |
1085 | | 0x1e08 => 0x1e09, |
1086 | | 0x1e0a => 0x1e0b, |
1087 | | 0x1e0c => 0x1e0d, |
1088 | | 0x1e0e => 0x1e0f, |
1089 | | 0x1e10 => 0x1e11, |
1090 | | 0x1e12 => 0x1e13, |
1091 | | 0x1e14 => 0x1e15, |
1092 | | 0x1e16 => 0x1e17, |
1093 | | 0x1e18 => 0x1e19, |
1094 | | 0x1e1a => 0x1e1b, |
1095 | | 0x1e1c => 0x1e1d, |
1096 | | 0x1e1e => 0x1e1f, |
1097 | | 0x1e20 => 0x1e21, |
1098 | | 0x1e22 => 0x1e23, |
1099 | | 0x1e24 => 0x1e25, |
1100 | | 0x1e26 => 0x1e27, |
1101 | | 0x1e28 => 0x1e29, |
1102 | | 0x1e2a => 0x1e2b, |
1103 | | 0x1e2c => 0x1e2d, |
1104 | | 0x1e2e => 0x1e2f, |
1105 | | 0x1e30 => 0x1e31, |
1106 | | 0x1e32 => 0x1e33, |
1107 | | 0x1e34 => 0x1e35, |
1108 | | 0x1e36 => 0x1e37, |
1109 | | 0x1e38 => 0x1e39, |
1110 | | 0x1e3a => 0x1e3b, |
1111 | | 0x1e3c => 0x1e3d, |
1112 | | 0x1e3e => 0x1e3f, |
1113 | | 0x1e40 => 0x1e41, |
1114 | | 0x1e42 => 0x1e43, |
1115 | | 0x1e44 => 0x1e45, |
1116 | | 0x1e46 => 0x1e47, |
1117 | | 0x1e48 => 0x1e49, |
1118 | | 0x1e4a => 0x1e4b, |
1119 | | 0x1e4c => 0x1e4d, |
1120 | | 0x1e4e => 0x1e4f, |
1121 | | 0x1e50 => 0x1e51, |
1122 | | 0x1e52 => 0x1e53, |
1123 | | 0x1e54 => 0x1e55, |
1124 | | 0x1e56 => 0x1e57, |
1125 | | 0x1e58 => 0x1e59, |
1126 | | 0x1e5a => 0x1e5b, |
1127 | | 0x1e5c => 0x1e5d, |
1128 | | 0x1e5e => 0x1e5f, |
1129 | | 0x1e60 => 0x1e61, |
1130 | | 0x1e62 => 0x1e63, |
1131 | | 0x1e64 => 0x1e65, |
1132 | | 0x1e66 => 0x1e67, |
1133 | | 0x1e68 => 0x1e69, |
1134 | | 0x1e6a => 0x1e6b, |
1135 | | 0x1e6c => 0x1e6d, |
1136 | | 0x1e6e => 0x1e6f, |
1137 | | 0x1e70 => 0x1e71, |
1138 | | 0x1e72 => 0x1e73, |
1139 | | 0x1e74 => 0x1e75, |
1140 | | 0x1e76 => 0x1e77, |
1141 | | 0x1e78 => 0x1e79, |
1142 | | 0x1e7a => 0x1e7b, |
1143 | | 0x1e7c => 0x1e7d, |
1144 | | 0x1e7e => 0x1e7f, |
1145 | | 0x1e80 => 0x1e81, |
1146 | | 0x1e82 => 0x1e83, |
1147 | | 0x1e84 => 0x1e85, |
1148 | | 0x1e86 => 0x1e87, |
1149 | | 0x1e88 => 0x1e89, |
1150 | | 0x1e8a => 0x1e8b, |
1151 | | 0x1e8c => 0x1e8d, |
1152 | | 0x1e8e => 0x1e8f, |
1153 | | 0x1e90 => 0x1e91, |
1154 | | 0x1e92 => 0x1e93, |
1155 | | 0x1e94 => 0x1e95, |
1156 | | 0x1e96 => return Fold::Two('\u{0068}', '\u{0331}',), |
1157 | | 0x1e97 => return Fold::Two('\u{0074}', '\u{0308}',), |
1158 | | 0x1e98 => return Fold::Two('\u{0077}', '\u{030a}',), |
1159 | | 0x1e99 => return Fold::Two('\u{0079}', '\u{030a}',), |
1160 | | 0x1e9a => return Fold::Two('\u{0061}', '\u{02be}',), |
1161 | | 0x1e9b => 0x1e61, |
1162 | | 0x1e9e => return Fold::Two('\u{0073}', '\u{0073}',), |
1163 | | 0x1ea0 => 0x1ea1, |
1164 | | 0x1ea2 => 0x1ea3, |
1165 | | 0x1ea4 => 0x1ea5, |
1166 | | 0x1ea6 => 0x1ea7, |
1167 | | 0x1ea8 => 0x1ea9, |
1168 | | 0x1eaa => 0x1eab, |
1169 | | 0x1eac => 0x1ead, |
1170 | | 0x1eae => 0x1eaf, |
1171 | | 0x1eb0 => 0x1eb1, |
1172 | | 0x1eb2 => 0x1eb3, |
1173 | | 0x1eb4 => 0x1eb5, |
1174 | | 0x1eb6 => 0x1eb7, |
1175 | | 0x1eb8 => 0x1eb9, |
1176 | | 0x1eba => 0x1ebb, |
1177 | | 0x1ebc => 0x1ebd, |
1178 | | 0x1ebe => 0x1ebf, |
1179 | | 0x1ec0 => 0x1ec1, |
1180 | | 0x1ec2 => 0x1ec3, |
1181 | | 0x1ec4 => 0x1ec5, |
1182 | | 0x1ec6 => 0x1ec7, |
1183 | | 0x1ec8 => 0x1ec9, |
1184 | | 0x1eca => 0x1ecb, |
1185 | | 0x1ecc => 0x1ecd, |
1186 | | 0x1ece => 0x1ecf, |
1187 | | 0x1ed0 => 0x1ed1, |
1188 | | 0x1ed2 => 0x1ed3, |
1189 | | 0x1ed4 => 0x1ed5, |
1190 | | 0x1ed6 => 0x1ed7, |
1191 | | 0x1ed8 => 0x1ed9, |
1192 | | 0x1eda => 0x1edb, |
1193 | | 0x1edc => 0x1edd, |
1194 | | 0x1ede => 0x1edf, |
1195 | | 0x1ee0 => 0x1ee1, |
1196 | | 0x1ee2 => 0x1ee3, |
1197 | | 0x1ee4 => 0x1ee5, |
1198 | | 0x1ee6 => 0x1ee7, |
1199 | | 0x1ee8 => 0x1ee9, |
1200 | | 0x1eea => 0x1eeb, |
1201 | | 0x1eec => 0x1eed, |
1202 | | 0x1eee => 0x1eef, |
1203 | | 0x1ef0 => 0x1ef1, |
1204 | | 0x1ef2 => 0x1ef3, |
1205 | | 0x1ef4 => 0x1ef5, |
1206 | | 0x1ef6 => 0x1ef7, |
1207 | | 0x1ef8 => 0x1ef9, |
1208 | | 0x1efa => 0x1efb, |
1209 | | 0x1efc => 0x1efd, |
1210 | | 0x1efe => 0x1eff, |
1211 | | 0x1f08 => 0x1f00, |
1212 | | 0x1f09 => 0x1f01, |
1213 | | 0x1f0a => 0x1f02, |
1214 | | 0x1f0b => 0x1f03, |
1215 | | 0x1f0c => 0x1f04, |
1216 | | 0x1f0d => 0x1f05, |
1217 | | 0x1f0e => 0x1f06, |
1218 | | 0x1f0f => 0x1f07, |
1219 | | 0x1f18 => 0x1f10, |
1220 | | 0x1f19 => 0x1f11, |
1221 | | 0x1f1a => 0x1f12, |
1222 | | 0x1f1b => 0x1f13, |
1223 | | 0x1f1c => 0x1f14, |
1224 | | 0x1f1d => 0x1f15, |
1225 | | 0x1f28 => 0x1f20, |
1226 | | 0x1f29 => 0x1f21, |
1227 | | 0x1f2a => 0x1f22, |
1228 | | 0x1f2b => 0x1f23, |
1229 | | 0x1f2c => 0x1f24, |
1230 | | 0x1f2d => 0x1f25, |
1231 | | 0x1f2e => 0x1f26, |
1232 | | 0x1f2f => 0x1f27, |
1233 | | 0x1f38 => 0x1f30, |
1234 | | 0x1f39 => 0x1f31, |
1235 | | 0x1f3a => 0x1f32, |
1236 | | 0x1f3b => 0x1f33, |
1237 | | 0x1f3c => 0x1f34, |
1238 | | 0x1f3d => 0x1f35, |
1239 | | 0x1f3e => 0x1f36, |
1240 | | 0x1f3f => 0x1f37, |
1241 | | 0x1f48 => 0x1f40, |
1242 | | 0x1f49 => 0x1f41, |
1243 | | 0x1f4a => 0x1f42, |
1244 | | 0x1f4b => 0x1f43, |
1245 | | 0x1f4c => 0x1f44, |
1246 | | 0x1f4d => 0x1f45, |
1247 | | 0x1f50 => return Fold::Two('\u{03c5}', '\u{0313}',), |
1248 | | 0x1f52 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0300}',), |
1249 | | 0x1f54 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0301}',), |
1250 | | 0x1f56 => return Fold::Three('\u{03c5}', '\u{0313}', '\u{0342}',), |
1251 | | 0x1f59 => 0x1f51, |
1252 | | 0x1f5b => 0x1f53, |
1253 | | 0x1f5d => 0x1f55, |
1254 | | 0x1f5f => 0x1f57, |
1255 | | 0x1f68 => 0x1f60, |
1256 | | 0x1f69 => 0x1f61, |
1257 | | 0x1f6a => 0x1f62, |
1258 | | 0x1f6b => 0x1f63, |
1259 | | 0x1f6c => 0x1f64, |
1260 | | 0x1f6d => 0x1f65, |
1261 | | 0x1f6e => 0x1f66, |
1262 | | 0x1f6f => 0x1f67, |
1263 | | 0x1f80 => return Fold::Two('\u{1f00}', '\u{03b9}',), |
1264 | | 0x1f81 => return Fold::Two('\u{1f01}', '\u{03b9}',), |
1265 | | 0x1f82 => return Fold::Two('\u{1f02}', '\u{03b9}',), |
1266 | | 0x1f83 => return Fold::Two('\u{1f03}', '\u{03b9}',), |
1267 | | 0x1f84 => return Fold::Two('\u{1f04}', '\u{03b9}',), |
1268 | | 0x1f85 => return Fold::Two('\u{1f05}', '\u{03b9}',), |
1269 | | 0x1f86 => return Fold::Two('\u{1f06}', '\u{03b9}',), |
1270 | | 0x1f87 => return Fold::Two('\u{1f07}', '\u{03b9}',), |
1271 | | 0x1f88 => return Fold::Two('\u{1f00}', '\u{03b9}',), |
1272 | | 0x1f89 => return Fold::Two('\u{1f01}', '\u{03b9}',), |
1273 | | 0x1f8a => return Fold::Two('\u{1f02}', '\u{03b9}',), |
1274 | | 0x1f8b => return Fold::Two('\u{1f03}', '\u{03b9}',), |
1275 | | 0x1f8c => return Fold::Two('\u{1f04}', '\u{03b9}',), |
1276 | | 0x1f8d => return Fold::Two('\u{1f05}', '\u{03b9}',), |
1277 | | 0x1f8e => return Fold::Two('\u{1f06}', '\u{03b9}',), |
1278 | | 0x1f8f => return Fold::Two('\u{1f07}', '\u{03b9}',), |
1279 | | 0x1f90 => return Fold::Two('\u{1f20}', '\u{03b9}',), |
1280 | | 0x1f91 => return Fold::Two('\u{1f21}', '\u{03b9}',), |
1281 | | 0x1f92 => return Fold::Two('\u{1f22}', '\u{03b9}',), |
1282 | | 0x1f93 => return Fold::Two('\u{1f23}', '\u{03b9}',), |
1283 | | 0x1f94 => return Fold::Two('\u{1f24}', '\u{03b9}',), |
1284 | | 0x1f95 => return Fold::Two('\u{1f25}', '\u{03b9}',), |
1285 | | 0x1f96 => return Fold::Two('\u{1f26}', '\u{03b9}',), |
1286 | | 0x1f97 => return Fold::Two('\u{1f27}', '\u{03b9}',), |
1287 | | 0x1f98 => return Fold::Two('\u{1f20}', '\u{03b9}',), |
1288 | | 0x1f99 => return Fold::Two('\u{1f21}', '\u{03b9}',), |
1289 | | 0x1f9a => return Fold::Two('\u{1f22}', '\u{03b9}',), |
1290 | | 0x1f9b => return Fold::Two('\u{1f23}', '\u{03b9}',), |
1291 | | 0x1f9c => return Fold::Two('\u{1f24}', '\u{03b9}',), |
1292 | | 0x1f9d => return Fold::Two('\u{1f25}', '\u{03b9}',), |
1293 | | 0x1f9e => return Fold::Two('\u{1f26}', '\u{03b9}',), |
1294 | | 0x1f9f => return Fold::Two('\u{1f27}', '\u{03b9}',), |
1295 | | 0x1fa0 => return Fold::Two('\u{1f60}', '\u{03b9}',), |
1296 | | 0x1fa1 => return Fold::Two('\u{1f61}', '\u{03b9}',), |
1297 | | 0x1fa2 => return Fold::Two('\u{1f62}', '\u{03b9}',), |
1298 | | 0x1fa3 => return Fold::Two('\u{1f63}', '\u{03b9}',), |
1299 | | 0x1fa4 => return Fold::Two('\u{1f64}', '\u{03b9}',), |
1300 | | 0x1fa5 => return Fold::Two('\u{1f65}', '\u{03b9}',), |
1301 | | 0x1fa6 => return Fold::Two('\u{1f66}', '\u{03b9}',), |
1302 | | 0x1fa7 => return Fold::Two('\u{1f67}', '\u{03b9}',), |
1303 | | 0x1fa8 => return Fold::Two('\u{1f60}', '\u{03b9}',), |
1304 | | 0x1fa9 => return Fold::Two('\u{1f61}', '\u{03b9}',), |
1305 | | 0x1faa => return Fold::Two('\u{1f62}', '\u{03b9}',), |
1306 | | 0x1fab => return Fold::Two('\u{1f63}', '\u{03b9}',), |
1307 | | 0x1fac => return Fold::Two('\u{1f64}', '\u{03b9}',), |
1308 | | 0x1fad => return Fold::Two('\u{1f65}', '\u{03b9}',), |
1309 | | 0x1fae => return Fold::Two('\u{1f66}', '\u{03b9}',), |
1310 | | 0x1faf => return Fold::Two('\u{1f67}', '\u{03b9}',), |
1311 | | 0x1fb2 => return Fold::Two('\u{1f70}', '\u{03b9}',), |
1312 | | 0x1fb3 => return Fold::Two('\u{03b1}', '\u{03b9}',), |
1313 | | 0x1fb4 => return Fold::Two('\u{03ac}', '\u{03b9}',), |
1314 | | 0x1fb6 => return Fold::Two('\u{03b1}', '\u{0342}',), |
1315 | | 0x1fb7 => return Fold::Three('\u{03b1}', '\u{0342}', '\u{03b9}',), |
1316 | | 0x1fb8 => 0x1fb0, |
1317 | | 0x1fb9 => 0x1fb1, |
1318 | | 0x1fba => 0x1f70, |
1319 | | 0x1fbb => 0x1f71, |
1320 | | 0x1fbc => return Fold::Two('\u{03b1}', '\u{03b9}',), |
1321 | | 0x1fbe => 0x03b9, |
1322 | | 0x1fc2 => return Fold::Two('\u{1f74}', '\u{03b9}',), |
1323 | | 0x1fc3 => return Fold::Two('\u{03b7}', '\u{03b9}',), |
1324 | | 0x1fc4 => return Fold::Two('\u{03ae}', '\u{03b9}',), |
1325 | | 0x1fc6 => return Fold::Two('\u{03b7}', '\u{0342}',), |
1326 | | 0x1fc7 => return Fold::Three('\u{03b7}', '\u{0342}', '\u{03b9}',), |
1327 | | 0x1fc8 => 0x1f72, |
1328 | | 0x1fc9 => 0x1f73, |
1329 | | 0x1fca => 0x1f74, |
1330 | | 0x1fcb => 0x1f75, |
1331 | | 0x1fcc => return Fold::Two('\u{03b7}', '\u{03b9}',), |
1332 | | 0x1fd2 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0300}',), |
1333 | | 0x1fd3 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0301}',), |
1334 | | 0x1fd6 => return Fold::Two('\u{03b9}', '\u{0342}',), |
1335 | | 0x1fd7 => return Fold::Three('\u{03b9}', '\u{0308}', '\u{0342}',), |
1336 | | 0x1fd8 => 0x1fd0, |
1337 | | 0x1fd9 => 0x1fd1, |
1338 | | 0x1fda => 0x1f76, |
1339 | | 0x1fdb => 0x1f77, |
1340 | | 0x1fe2 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0300}',), |
1341 | | 0x1fe3 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0301}',), |
1342 | | 0x1fe4 => return Fold::Two('\u{03c1}', '\u{0313}',), |
1343 | | 0x1fe6 => return Fold::Two('\u{03c5}', '\u{0342}',), |
1344 | | 0x1fe7 => return Fold::Three('\u{03c5}', '\u{0308}', '\u{0342}',), |
1345 | | 0x1fe8 => 0x1fe0, |
1346 | | 0x1fe9 => 0x1fe1, |
1347 | | 0x1fea => 0x1f7a, |
1348 | | 0x1feb => 0x1f7b, |
1349 | | 0x1fec => 0x1fe5, |
1350 | | 0x1ff2 => return Fold::Two('\u{1f7c}', '\u{03b9}',), |
1351 | | 0x1ff3 => return Fold::Two('\u{03c9}', '\u{03b9}',), |
1352 | | 0x1ff4 => return Fold::Two('\u{03ce}', '\u{03b9}',), |
1353 | | 0x1ff6 => return Fold::Two('\u{03c9}', '\u{0342}',), |
1354 | | 0x1ff7 => return Fold::Three('\u{03c9}', '\u{0342}', '\u{03b9}',), |
1355 | | 0x1ff8 => 0x1f78, |
1356 | | 0x1ff9 => 0x1f79, |
1357 | | 0x1ffa => 0x1f7c, |
1358 | | 0x1ffb => 0x1f7d, |
1359 | | 0x1ffc => return Fold::Two('\u{03c9}', '\u{03b9}',), |
1360 | | 0x2126 => 0x03c9, |
1361 | | 0x212a => 0x006b, |
1362 | | 0x212b => 0x00e5, |
1363 | | 0x2132 => 0x214e, |
1364 | | 0x2160 => 0x2170, |
1365 | | 0x2161 => 0x2171, |
1366 | | 0x2162 => 0x2172, |
1367 | | 0x2163 => 0x2173, |
1368 | | 0x2164 => 0x2174, |
1369 | | 0x2165 => 0x2175, |
1370 | | 0x2166 => 0x2176, |
1371 | | 0x2167 => 0x2177, |
1372 | | 0x2168 => 0x2178, |
1373 | | 0x2169 => 0x2179, |
1374 | | 0x216a => 0x217a, |
1375 | | 0x216b => 0x217b, |
1376 | | 0x216c => 0x217c, |
1377 | | 0x216d => 0x217d, |
1378 | | 0x216e => 0x217e, |
1379 | | 0x216f => 0x217f, |
1380 | | 0x2183 => 0x2184, |
1381 | | 0x24b6 => 0x24d0, |
1382 | | 0x24b7 => 0x24d1, |
1383 | | 0x24b8 => 0x24d2, |
1384 | | 0x24b9 => 0x24d3, |
1385 | | 0x24ba => 0x24d4, |
1386 | | 0x24bb => 0x24d5, |
1387 | | 0x24bc => 0x24d6, |
1388 | | 0x24bd => 0x24d7, |
1389 | | 0x24be => 0x24d8, |
1390 | | 0x24bf => 0x24d9, |
1391 | | 0x24c0 => 0x24da, |
1392 | | 0x24c1 => 0x24db, |
1393 | | 0x24c2 => 0x24dc, |
1394 | | 0x24c3 => 0x24dd, |
1395 | | 0x24c4 => 0x24de, |
1396 | | 0x24c5 => 0x24df, |
1397 | | 0x24c6 => 0x24e0, |
1398 | | 0x24c7 => 0x24e1, |
1399 | | 0x24c8 => 0x24e2, |
1400 | | 0x24c9 => 0x24e3, |
1401 | | 0x24ca => 0x24e4, |
1402 | | 0x24cb => 0x24e5, |
1403 | | 0x24cc => 0x24e6, |
1404 | | 0x24cd => 0x24e7, |
1405 | | 0x24ce => 0x24e8, |
1406 | | 0x24cf => 0x24e9, |
1407 | | 0x2c00 => 0x2c30, |
1408 | | 0x2c01 => 0x2c31, |
1409 | | 0x2c02 => 0x2c32, |
1410 | | 0x2c03 => 0x2c33, |
1411 | | 0x2c04 => 0x2c34, |
1412 | | 0x2c05 => 0x2c35, |
1413 | | 0x2c06 => 0x2c36, |
1414 | | 0x2c07 => 0x2c37, |
1415 | | 0x2c08 => 0x2c38, |
1416 | | 0x2c09 => 0x2c39, |
1417 | | 0x2c0a => 0x2c3a, |
1418 | | 0x2c0b => 0x2c3b, |
1419 | | 0x2c0c => 0x2c3c, |
1420 | | 0x2c0d => 0x2c3d, |
1421 | | 0x2c0e => 0x2c3e, |
1422 | | 0x2c0f => 0x2c3f, |
1423 | | 0x2c10 => 0x2c40, |
1424 | | 0x2c11 => 0x2c41, |
1425 | | 0x2c12 => 0x2c42, |
1426 | | 0x2c13 => 0x2c43, |
1427 | | 0x2c14 => 0x2c44, |
1428 | | 0x2c15 => 0x2c45, |
1429 | | 0x2c16 => 0x2c46, |
1430 | | 0x2c17 => 0x2c47, |
1431 | | 0x2c18 => 0x2c48, |
1432 | | 0x2c19 => 0x2c49, |
1433 | | 0x2c1a => 0x2c4a, |
1434 | | 0x2c1b => 0x2c4b, |
1435 | | 0x2c1c => 0x2c4c, |
1436 | | 0x2c1d => 0x2c4d, |
1437 | | 0x2c1e => 0x2c4e, |
1438 | | 0x2c1f => 0x2c4f, |
1439 | | 0x2c20 => 0x2c50, |
1440 | | 0x2c21 => 0x2c51, |
1441 | | 0x2c22 => 0x2c52, |
1442 | | 0x2c23 => 0x2c53, |
1443 | | 0x2c24 => 0x2c54, |
1444 | | 0x2c25 => 0x2c55, |
1445 | | 0x2c26 => 0x2c56, |
1446 | | 0x2c27 => 0x2c57, |
1447 | | 0x2c28 => 0x2c58, |
1448 | | 0x2c29 => 0x2c59, |
1449 | | 0x2c2a => 0x2c5a, |
1450 | | 0x2c2b => 0x2c5b, |
1451 | | 0x2c2c => 0x2c5c, |
1452 | | 0x2c2d => 0x2c5d, |
1453 | | 0x2c2e => 0x2c5e, |
1454 | | 0x2c60 => 0x2c61, |
1455 | | 0x2c62 => 0x026b, |
1456 | | 0x2c63 => 0x1d7d, |
1457 | | 0x2c64 => 0x027d, |
1458 | | 0x2c67 => 0x2c68, |
1459 | | 0x2c69 => 0x2c6a, |
1460 | | 0x2c6b => 0x2c6c, |
1461 | | 0x2c6d => 0x0251, |
1462 | | 0x2c6e => 0x0271, |
1463 | | 0x2c6f => 0x0250, |
1464 | | 0x2c70 => 0x0252, |
1465 | | 0x2c72 => 0x2c73, |
1466 | | 0x2c75 => 0x2c76, |
1467 | | 0x2c7e => 0x023f, |
1468 | | 0x2c7f => 0x0240, |
1469 | | 0x2c80 => 0x2c81, |
1470 | | 0x2c82 => 0x2c83, |
1471 | | 0x2c84 => 0x2c85, |
1472 | | 0x2c86 => 0x2c87, |
1473 | | 0x2c88 => 0x2c89, |
1474 | | 0x2c8a => 0x2c8b, |
1475 | | 0x2c8c => 0x2c8d, |
1476 | | 0x2c8e => 0x2c8f, |
1477 | | 0x2c90 => 0x2c91, |
1478 | | 0x2c92 => 0x2c93, |
1479 | | 0x2c94 => 0x2c95, |
1480 | | 0x2c96 => 0x2c97, |
1481 | | 0x2c98 => 0x2c99, |
1482 | | 0x2c9a => 0x2c9b, |
1483 | | 0x2c9c => 0x2c9d, |
1484 | | 0x2c9e => 0x2c9f, |
1485 | | 0x2ca0 => 0x2ca1, |
1486 | | 0x2ca2 => 0x2ca3, |
1487 | | 0x2ca4 => 0x2ca5, |
1488 | | 0x2ca6 => 0x2ca7, |
1489 | | 0x2ca8 => 0x2ca9, |
1490 | | 0x2caa => 0x2cab, |
1491 | | 0x2cac => 0x2cad, |
1492 | | 0x2cae => 0x2caf, |
1493 | | 0x2cb0 => 0x2cb1, |
1494 | | 0x2cb2 => 0x2cb3, |
1495 | | 0x2cb4 => 0x2cb5, |
1496 | | 0x2cb6 => 0x2cb7, |
1497 | | 0x2cb8 => 0x2cb9, |
1498 | | 0x2cba => 0x2cbb, |
1499 | | 0x2cbc => 0x2cbd, |
1500 | | 0x2cbe => 0x2cbf, |
1501 | | 0x2cc0 => 0x2cc1, |
1502 | | 0x2cc2 => 0x2cc3, |
1503 | | 0x2cc4 => 0x2cc5, |
1504 | | 0x2cc6 => 0x2cc7, |
1505 | | 0x2cc8 => 0x2cc9, |
1506 | | 0x2cca => 0x2ccb, |
1507 | | 0x2ccc => 0x2ccd, |
1508 | | 0x2cce => 0x2ccf, |
1509 | | 0x2cd0 => 0x2cd1, |
1510 | | 0x2cd2 => 0x2cd3, |
1511 | | 0x2cd4 => 0x2cd5, |
1512 | | 0x2cd6 => 0x2cd7, |
1513 | | 0x2cd8 => 0x2cd9, |
1514 | | 0x2cda => 0x2cdb, |
1515 | | 0x2cdc => 0x2cdd, |
1516 | | 0x2cde => 0x2cdf, |
1517 | | 0x2ce0 => 0x2ce1, |
1518 | | 0x2ce2 => 0x2ce3, |
1519 | | 0x2ceb => 0x2cec, |
1520 | | 0x2ced => 0x2cee, |
1521 | | 0x2cf2 => 0x2cf3, |
1522 | | 0xa640 => 0xa641, |
1523 | | 0xa642 => 0xa643, |
1524 | | 0xa644 => 0xa645, |
1525 | | 0xa646 => 0xa647, |
1526 | | 0xa648 => 0xa649, |
1527 | | 0xa64a => 0xa64b, |
1528 | | 0xa64c => 0xa64d, |
1529 | | 0xa64e => 0xa64f, |
1530 | | 0xa650 => 0xa651, |
1531 | | 0xa652 => 0xa653, |
1532 | | 0xa654 => 0xa655, |
1533 | | 0xa656 => 0xa657, |
1534 | | 0xa658 => 0xa659, |
1535 | | 0xa65a => 0xa65b, |
1536 | | 0xa65c => 0xa65d, |
1537 | | 0xa65e => 0xa65f, |
1538 | | 0xa660 => 0xa661, |
1539 | | 0xa662 => 0xa663, |
1540 | | 0xa664 => 0xa665, |
1541 | | 0xa666 => 0xa667, |
1542 | | 0xa668 => 0xa669, |
1543 | | 0xa66a => 0xa66b, |
1544 | | 0xa66c => 0xa66d, |
1545 | | 0xa680 => 0xa681, |
1546 | | 0xa682 => 0xa683, |
1547 | | 0xa684 => 0xa685, |
1548 | | 0xa686 => 0xa687, |
1549 | | 0xa688 => 0xa689, |
1550 | | 0xa68a => 0xa68b, |
1551 | | 0xa68c => 0xa68d, |
1552 | | 0xa68e => 0xa68f, |
1553 | | 0xa690 => 0xa691, |
1554 | | 0xa692 => 0xa693, |
1555 | | 0xa694 => 0xa695, |
1556 | | 0xa696 => 0xa697, |
1557 | | 0xa698 => 0xa699, |
1558 | | 0xa69a => 0xa69b, |
1559 | | 0xa722 => 0xa723, |
1560 | | 0xa724 => 0xa725, |
1561 | | 0xa726 => 0xa727, |
1562 | | 0xa728 => 0xa729, |
1563 | | 0xa72a => 0xa72b, |
1564 | | 0xa72c => 0xa72d, |
1565 | | 0xa72e => 0xa72f, |
1566 | | 0xa732 => 0xa733, |
1567 | | 0xa734 => 0xa735, |
1568 | | 0xa736 => 0xa737, |
1569 | | 0xa738 => 0xa739, |
1570 | | 0xa73a => 0xa73b, |
1571 | | 0xa73c => 0xa73d, |
1572 | | 0xa73e => 0xa73f, |
1573 | | 0xa740 => 0xa741, |
1574 | | 0xa742 => 0xa743, |
1575 | | 0xa744 => 0xa745, |
1576 | | 0xa746 => 0xa747, |
1577 | | 0xa748 => 0xa749, |
1578 | | 0xa74a => 0xa74b, |
1579 | | 0xa74c => 0xa74d, |
1580 | | 0xa74e => 0xa74f, |
1581 | | 0xa750 => 0xa751, |
1582 | | 0xa752 => 0xa753, |
1583 | | 0xa754 => 0xa755, |
1584 | | 0xa756 => 0xa757, |
1585 | | 0xa758 => 0xa759, |
1586 | | 0xa75a => 0xa75b, |
1587 | | 0xa75c => 0xa75d, |
1588 | | 0xa75e => 0xa75f, |
1589 | | 0xa760 => 0xa761, |
1590 | | 0xa762 => 0xa763, |
1591 | | 0xa764 => 0xa765, |
1592 | | 0xa766 => 0xa767, |
1593 | | 0xa768 => 0xa769, |
1594 | | 0xa76a => 0xa76b, |
1595 | | 0xa76c => 0xa76d, |
1596 | | 0xa76e => 0xa76f, |
1597 | | 0xa779 => 0xa77a, |
1598 | | 0xa77b => 0xa77c, |
1599 | | 0xa77d => 0x1d79, |
1600 | | 0xa77e => 0xa77f, |
1601 | | 0xa780 => 0xa781, |
1602 | | 0xa782 => 0xa783, |
1603 | | 0xa784 => 0xa785, |
1604 | | 0xa786 => 0xa787, |
1605 | | 0xa78b => 0xa78c, |
1606 | | 0xa78d => 0x0265, |
1607 | | 0xa790 => 0xa791, |
1608 | | 0xa792 => 0xa793, |
1609 | | 0xa796 => 0xa797, |
1610 | | 0xa798 => 0xa799, |
1611 | | 0xa79a => 0xa79b, |
1612 | | 0xa79c => 0xa79d, |
1613 | | 0xa79e => 0xa79f, |
1614 | | 0xa7a0 => 0xa7a1, |
1615 | | 0xa7a2 => 0xa7a3, |
1616 | | 0xa7a4 => 0xa7a5, |
1617 | | 0xa7a6 => 0xa7a7, |
1618 | | 0xa7a8 => 0xa7a9, |
1619 | | 0xa7aa => 0x0266, |
1620 | | 0xa7ab => 0x025c, |
1621 | | 0xa7ac => 0x0261, |
1622 | | 0xa7ad => 0x026c, |
1623 | | 0xa7ae => 0x026a, |
1624 | | 0xa7b0 => 0x029e, |
1625 | | 0xa7b1 => 0x0287, |
1626 | | 0xa7b2 => 0x029d, |
1627 | | 0xa7b3 => 0xab53, |
1628 | | 0xa7b4 => 0xa7b5, |
1629 | | 0xa7b6 => 0xa7b7, |
1630 | | 0xa7b8 => 0xa7b9, |
1631 | | 0xa7ba => 0xa7bb, |
1632 | | 0xa7bc => 0xa7bd, |
1633 | | 0xa7be => 0xa7bf, |
1634 | | 0xa7c2 => 0xa7c3, |
1635 | | 0xa7c4 => 0xa794, |
1636 | | 0xa7c5 => 0x0282, |
1637 | | 0xa7c6 => 0x1d8e, |
1638 | | 0xab70 => 0x13a0, |
1639 | | 0xab71 => 0x13a1, |
1640 | | 0xab72 => 0x13a2, |
1641 | | 0xab73 => 0x13a3, |
1642 | | 0xab74 => 0x13a4, |
1643 | | 0xab75 => 0x13a5, |
1644 | | 0xab76 => 0x13a6, |
1645 | | 0xab77 => 0x13a7, |
1646 | | 0xab78 => 0x13a8, |
1647 | | 0xab79 => 0x13a9, |
1648 | | 0xab7a => 0x13aa, |
1649 | | 0xab7b => 0x13ab, |
1650 | | 0xab7c => 0x13ac, |
1651 | | 0xab7d => 0x13ad, |
1652 | | 0xab7e => 0x13ae, |
1653 | | 0xab7f => 0x13af, |
1654 | | 0xab80 => 0x13b0, |
1655 | | 0xab81 => 0x13b1, |
1656 | | 0xab82 => 0x13b2, |
1657 | | 0xab83 => 0x13b3, |
1658 | | 0xab84 => 0x13b4, |
1659 | | 0xab85 => 0x13b5, |
1660 | | 0xab86 => 0x13b6, |
1661 | | 0xab87 => 0x13b7, |
1662 | | 0xab88 => 0x13b8, |
1663 | | 0xab89 => 0x13b9, |
1664 | | 0xab8a => 0x13ba, |
1665 | | 0xab8b => 0x13bb, |
1666 | | 0xab8c => 0x13bc, |
1667 | | 0xab8d => 0x13bd, |
1668 | | 0xab8e => 0x13be, |
1669 | | 0xab8f => 0x13bf, |
1670 | | 0xab90 => 0x13c0, |
1671 | | 0xab91 => 0x13c1, |
1672 | | 0xab92 => 0x13c2, |
1673 | | 0xab93 => 0x13c3, |
1674 | | 0xab94 => 0x13c4, |
1675 | | 0xab95 => 0x13c5, |
1676 | | 0xab96 => 0x13c6, |
1677 | | 0xab97 => 0x13c7, |
1678 | | 0xab98 => 0x13c8, |
1679 | | 0xab99 => 0x13c9, |
1680 | | 0xab9a => 0x13ca, |
1681 | | 0xab9b => 0x13cb, |
1682 | | 0xab9c => 0x13cc, |
1683 | | 0xab9d => 0x13cd, |
1684 | | 0xab9e => 0x13ce, |
1685 | | 0xab9f => 0x13cf, |
1686 | | 0xaba0 => 0x13d0, |
1687 | | 0xaba1 => 0x13d1, |
1688 | | 0xaba2 => 0x13d2, |
1689 | | 0xaba3 => 0x13d3, |
1690 | | 0xaba4 => 0x13d4, |
1691 | | 0xaba5 => 0x13d5, |
1692 | | 0xaba6 => 0x13d6, |
1693 | | 0xaba7 => 0x13d7, |
1694 | | 0xaba8 => 0x13d8, |
1695 | | 0xaba9 => 0x13d9, |
1696 | | 0xabaa => 0x13da, |
1697 | | 0xabab => 0x13db, |
1698 | | 0xabac => 0x13dc, |
1699 | | 0xabad => 0x13dd, |
1700 | | 0xabae => 0x13de, |
1701 | | 0xabaf => 0x13df, |
1702 | | 0xabb0 => 0x13e0, |
1703 | | 0xabb1 => 0x13e1, |
1704 | | 0xabb2 => 0x13e2, |
1705 | | 0xabb3 => 0x13e3, |
1706 | | 0xabb4 => 0x13e4, |
1707 | | 0xabb5 => 0x13e5, |
1708 | | 0xabb6 => 0x13e6, |
1709 | | 0xabb7 => 0x13e7, |
1710 | | 0xabb8 => 0x13e8, |
1711 | | 0xabb9 => 0x13e9, |
1712 | | 0xabba => 0x13ea, |
1713 | | 0xabbb => 0x13eb, |
1714 | | 0xabbc => 0x13ec, |
1715 | | 0xabbd => 0x13ed, |
1716 | | 0xabbe => 0x13ee, |
1717 | | 0xabbf => 0x13ef, |
1718 | | 0xfb00 => return Fold::Two('\u{0066}', '\u{0066}',), |
1719 | | 0xfb01 => return Fold::Two('\u{0066}', '\u{0069}',), |
1720 | | 0xfb02 => return Fold::Two('\u{0066}', '\u{006c}',), |
1721 | | 0xfb03 => return Fold::Three('\u{0066}', '\u{0066}', '\u{0069}',), |
1722 | | 0xfb04 => return Fold::Three('\u{0066}', '\u{0066}', '\u{006c}',), |
1723 | | 0xfb05 => return Fold::Two('\u{0073}', '\u{0074}',), |
1724 | | 0xfb06 => return Fold::Two('\u{0073}', '\u{0074}',), |
1725 | | 0xfb13 => return Fold::Two('\u{0574}', '\u{0576}',), |
1726 | | 0xfb14 => return Fold::Two('\u{0574}', '\u{0565}',), |
1727 | | 0xfb15 => return Fold::Two('\u{0574}', '\u{056b}',), |
1728 | | 0xfb16 => return Fold::Two('\u{057e}', '\u{0576}',), |
1729 | | 0xfb17 => return Fold::Two('\u{0574}', '\u{056d}',), |
1730 | | 0xff21 => 0xff41, |
1731 | | 0xff22 => 0xff42, |
1732 | | 0xff23 => 0xff43, |
1733 | | 0xff24 => 0xff44, |
1734 | | 0xff25 => 0xff45, |
1735 | | 0xff26 => 0xff46, |
1736 | | 0xff27 => 0xff47, |
1737 | | 0xff28 => 0xff48, |
1738 | | 0xff29 => 0xff49, |
1739 | | 0xff2a => 0xff4a, |
1740 | | 0xff2b => 0xff4b, |
1741 | | 0xff2c => 0xff4c, |
1742 | | 0xff2d => 0xff4d, |
1743 | | 0xff2e => 0xff4e, |
1744 | | 0xff2f => 0xff4f, |
1745 | | 0xff30 => 0xff50, |
1746 | | 0xff31 => 0xff51, |
1747 | | 0xff32 => 0xff52, |
1748 | | 0xff33 => 0xff53, |
1749 | | 0xff34 => 0xff54, |
1750 | | 0xff35 => 0xff55, |
1751 | | 0xff36 => 0xff56, |
1752 | | 0xff37 => 0xff57, |
1753 | | 0xff38 => 0xff58, |
1754 | | 0xff39 => 0xff59, |
1755 | | 0xff3a => 0xff5a, |
1756 | | 0x10400 => 0x10428, |
1757 | | 0x10401 => 0x10429, |
1758 | | 0x10402 => 0x1042a, |
1759 | | 0x10403 => 0x1042b, |
1760 | | 0x10404 => 0x1042c, |
1761 | | 0x10405 => 0x1042d, |
1762 | | 0x10406 => 0x1042e, |
1763 | | 0x10407 => 0x1042f, |
1764 | | 0x10408 => 0x10430, |
1765 | | 0x10409 => 0x10431, |
1766 | | 0x1040a => 0x10432, |
1767 | | 0x1040b => 0x10433, |
1768 | | 0x1040c => 0x10434, |
1769 | | 0x1040d => 0x10435, |
1770 | | 0x1040e => 0x10436, |
1771 | | 0x1040f => 0x10437, |
1772 | | 0x10410 => 0x10438, |
1773 | | 0x10411 => 0x10439, |
1774 | | 0x10412 => 0x1043a, |
1775 | | 0x10413 => 0x1043b, |
1776 | | 0x10414 => 0x1043c, |
1777 | | 0x10415 => 0x1043d, |
1778 | | 0x10416 => 0x1043e, |
1779 | | 0x10417 => 0x1043f, |
1780 | | 0x10418 => 0x10440, |
1781 | | 0x10419 => 0x10441, |
1782 | | 0x1041a => 0x10442, |
1783 | | 0x1041b => 0x10443, |
1784 | | 0x1041c => 0x10444, |
1785 | | 0x1041d => 0x10445, |
1786 | | 0x1041e => 0x10446, |
1787 | | 0x1041f => 0x10447, |
1788 | | 0x10420 => 0x10448, |
1789 | | 0x10421 => 0x10449, |
1790 | | 0x10422 => 0x1044a, |
1791 | | 0x10423 => 0x1044b, |
1792 | | 0x10424 => 0x1044c, |
1793 | | 0x10425 => 0x1044d, |
1794 | | 0x10426 => 0x1044e, |
1795 | | 0x10427 => 0x1044f, |
1796 | | 0x104b0 => 0x104d8, |
1797 | | 0x104b1 => 0x104d9, |
1798 | | 0x104b2 => 0x104da, |
1799 | | 0x104b3 => 0x104db, |
1800 | | 0x104b4 => 0x104dc, |
1801 | | 0x104b5 => 0x104dd, |
1802 | | 0x104b6 => 0x104de, |
1803 | | 0x104b7 => 0x104df, |
1804 | | 0x104b8 => 0x104e0, |
1805 | | 0x104b9 => 0x104e1, |
1806 | | 0x104ba => 0x104e2, |
1807 | | 0x104bb => 0x104e3, |
1808 | | 0x104bc => 0x104e4, |
1809 | | 0x104bd => 0x104e5, |
1810 | | 0x104be => 0x104e6, |
1811 | | 0x104bf => 0x104e7, |
1812 | | 0x104c0 => 0x104e8, |
1813 | | 0x104c1 => 0x104e9, |
1814 | | 0x104c2 => 0x104ea, |
1815 | | 0x104c3 => 0x104eb, |
1816 | | 0x104c4 => 0x104ec, |
1817 | | 0x104c5 => 0x104ed, |
1818 | | 0x104c6 => 0x104ee, |
1819 | | 0x104c7 => 0x104ef, |
1820 | | 0x104c8 => 0x104f0, |
1821 | | 0x104c9 => 0x104f1, |
1822 | | 0x104ca => 0x104f2, |
1823 | | 0x104cb => 0x104f3, |
1824 | | 0x104cc => 0x104f4, |
1825 | | 0x104cd => 0x104f5, |
1826 | | 0x104ce => 0x104f6, |
1827 | | 0x104cf => 0x104f7, |
1828 | | 0x104d0 => 0x104f8, |
1829 | | 0x104d1 => 0x104f9, |
1830 | | 0x104d2 => 0x104fa, |
1831 | | 0x104d3 => 0x104fb, |
1832 | | 0x10c80 => 0x10cc0, |
1833 | | 0x10c81 => 0x10cc1, |
1834 | | 0x10c82 => 0x10cc2, |
1835 | | 0x10c83 => 0x10cc3, |
1836 | | 0x10c84 => 0x10cc4, |
1837 | | 0x10c85 => 0x10cc5, |
1838 | | 0x10c86 => 0x10cc6, |
1839 | | 0x10c87 => 0x10cc7, |
1840 | | 0x10c88 => 0x10cc8, |
1841 | | 0x10c89 => 0x10cc9, |
1842 | | 0x10c8a => 0x10cca, |
1843 | | 0x10c8b => 0x10ccb, |
1844 | | 0x10c8c => 0x10ccc, |
1845 | | 0x10c8d => 0x10ccd, |
1846 | | 0x10c8e => 0x10cce, |
1847 | | 0x10c8f => 0x10ccf, |
1848 | | 0x10c90 => 0x10cd0, |
1849 | | 0x10c91 => 0x10cd1, |
1850 | | 0x10c92 => 0x10cd2, |
1851 | | 0x10c93 => 0x10cd3, |
1852 | | 0x10c94 => 0x10cd4, |
1853 | | 0x10c95 => 0x10cd5, |
1854 | | 0x10c96 => 0x10cd6, |
1855 | | 0x10c97 => 0x10cd7, |
1856 | | 0x10c98 => 0x10cd8, |
1857 | | 0x10c99 => 0x10cd9, |
1858 | | 0x10c9a => 0x10cda, |
1859 | | 0x10c9b => 0x10cdb, |
1860 | | 0x10c9c => 0x10cdc, |
1861 | | 0x10c9d => 0x10cdd, |
1862 | | 0x10c9e => 0x10cde, |
1863 | | 0x10c9f => 0x10cdf, |
1864 | | 0x10ca0 => 0x10ce0, |
1865 | | 0x10ca1 => 0x10ce1, |
1866 | | 0x10ca2 => 0x10ce2, |
1867 | | 0x10ca3 => 0x10ce3, |
1868 | | 0x10ca4 => 0x10ce4, |
1869 | | 0x10ca5 => 0x10ce5, |
1870 | | 0x10ca6 => 0x10ce6, |
1871 | | 0x10ca7 => 0x10ce7, |
1872 | | 0x10ca8 => 0x10ce8, |
1873 | | 0x10ca9 => 0x10ce9, |
1874 | | 0x10caa => 0x10cea, |
1875 | | 0x10cab => 0x10ceb, |
1876 | | 0x10cac => 0x10cec, |
1877 | | 0x10cad => 0x10ced, |
1878 | | 0x10cae => 0x10cee, |
1879 | | 0x10caf => 0x10cef, |
1880 | | 0x10cb0 => 0x10cf0, |
1881 | | 0x10cb1 => 0x10cf1, |
1882 | | 0x10cb2 => 0x10cf2, |
1883 | | 0x118a0 => 0x118c0, |
1884 | | 0x118a1 => 0x118c1, |
1885 | | 0x118a2 => 0x118c2, |
1886 | | 0x118a3 => 0x118c3, |
1887 | | 0x118a4 => 0x118c4, |
1888 | | 0x118a5 => 0x118c5, |
1889 | | 0x118a6 => 0x118c6, |
1890 | | 0x118a7 => 0x118c7, |
1891 | | 0x118a8 => 0x118c8, |
1892 | | 0x118a9 => 0x118c9, |
1893 | | 0x118aa => 0x118ca, |
1894 | | 0x118ab => 0x118cb, |
1895 | | 0x118ac => 0x118cc, |
1896 | | 0x118ad => 0x118cd, |
1897 | | 0x118ae => 0x118ce, |
1898 | | 0x118af => 0x118cf, |
1899 | | 0x118b0 => 0x118d0, |
1900 | | 0x118b1 => 0x118d1, |
1901 | | 0x118b2 => 0x118d2, |
1902 | | 0x118b3 => 0x118d3, |
1903 | | 0x118b4 => 0x118d4, |
1904 | | 0x118b5 => 0x118d5, |
1905 | | 0x118b6 => 0x118d6, |
1906 | | 0x118b7 => 0x118d7, |
1907 | | 0x118b8 => 0x118d8, |
1908 | | 0x118b9 => 0x118d9, |
1909 | | 0x118ba => 0x118da, |
1910 | | 0x118bb => 0x118db, |
1911 | | 0x118bc => 0x118dc, |
1912 | | 0x118bd => 0x118dd, |
1913 | | 0x118be => 0x118de, |
1914 | | 0x118bf => 0x118df, |
1915 | | 0x16e40 => 0x16e60, |
1916 | | 0x16e41 => 0x16e61, |
1917 | | 0x16e42 => 0x16e62, |
1918 | | 0x16e43 => 0x16e63, |
1919 | | 0x16e44 => 0x16e64, |
1920 | | 0x16e45 => 0x16e65, |
1921 | | 0x16e46 => 0x16e66, |
1922 | | 0x16e47 => 0x16e67, |
1923 | | 0x16e48 => 0x16e68, |
1924 | | 0x16e49 => 0x16e69, |
1925 | | 0x16e4a => 0x16e6a, |
1926 | | 0x16e4b => 0x16e6b, |
1927 | | 0x16e4c => 0x16e6c, |
1928 | | 0x16e4d => 0x16e6d, |
1929 | | 0x16e4e => 0x16e6e, |
1930 | | 0x16e4f => 0x16e6f, |
1931 | | 0x16e50 => 0x16e70, |
1932 | | 0x16e51 => 0x16e71, |
1933 | | 0x16e52 => 0x16e72, |
1934 | | 0x16e53 => 0x16e73, |
1935 | | 0x16e54 => 0x16e74, |
1936 | | 0x16e55 => 0x16e75, |
1937 | | 0x16e56 => 0x16e76, |
1938 | | 0x16e57 => 0x16e77, |
1939 | | 0x16e58 => 0x16e78, |
1940 | | 0x16e59 => 0x16e79, |
1941 | | 0x16e5a => 0x16e7a, |
1942 | | 0x16e5b => 0x16e7b, |
1943 | | 0x16e5c => 0x16e7c, |
1944 | | 0x16e5d => 0x16e7d, |
1945 | | 0x16e5e => 0x16e7e, |
1946 | | 0x16e5f => 0x16e7f, |
1947 | | 0x1e900 => 0x1e922, |
1948 | | 0x1e901 => 0x1e923, |
1949 | | 0x1e902 => 0x1e924, |
1950 | | 0x1e903 => 0x1e925, |
1951 | | 0x1e904 => 0x1e926, |
1952 | | 0x1e905 => 0x1e927, |
1953 | | 0x1e906 => 0x1e928, |
1954 | | 0x1e907 => 0x1e929, |
1955 | | 0x1e908 => 0x1e92a, |
1956 | | 0x1e909 => 0x1e92b, |
1957 | | 0x1e90a => 0x1e92c, |
1958 | | 0x1e90b => 0x1e92d, |
1959 | | 0x1e90c => 0x1e92e, |
1960 | | 0x1e90d => 0x1e92f, |
1961 | | 0x1e90e => 0x1e930, |
1962 | | 0x1e90f => 0x1e931, |
1963 | | 0x1e910 => 0x1e932, |
1964 | | 0x1e911 => 0x1e933, |
1965 | | 0x1e912 => 0x1e934, |
1966 | | 0x1e913 => 0x1e935, |
1967 | | 0x1e914 => 0x1e936, |
1968 | | 0x1e915 => 0x1e937, |
1969 | | 0x1e916 => 0x1e938, |
1970 | | 0x1e917 => 0x1e939, |
1971 | | 0x1e918 => 0x1e93a, |
1972 | | 0x1e919 => 0x1e93b, |
1973 | | 0x1e91a => 0x1e93c, |
1974 | | 0x1e91b => 0x1e93d, |
1975 | | 0x1e91c => 0x1e93e, |
1976 | | 0x1e91d => 0x1e93f, |
1977 | | 0x1e91e => 0x1e940, |
1978 | | 0x1e91f => 0x1e941, |
1979 | | 0x1e920 => 0x1e942, |
1980 | | 0x1e921 => 0x1e943, |
1981 | | _ => orig as u32 |
1982 | | }; |
1983 | | Fold::One( char::from_u32(single_char).unwrap() ) |
1984 | | } |
1985 | | |
1986 | | for c_index in 0..126217 { |
1987 | | if let Some(c) = char::from_u32(c_index) { |
1988 | | let reference: Vec<char> = lookup_naive(c).collect(); |
1989 | | let actual: Vec<char> = lookup(c).collect(); |
1990 | | if actual != reference { |
1991 | | assert!(false, "case-folding {:?} (#0x{:04x}) failed: Expected {:?}, got {:?}", c, c_index, reference, actual); |
1992 | | } |
1993 | | } |
1994 | | } |
1995 | | } |