Add walloon, update fclang.c to include recent language additions
[platform/upstream/fontconfig.git] / src / fclang.c
1 /*
2  * $XFree86: xc/lib/fontconfig/fc-lang/fclang.tmpl.c,v 1.1 2002/07/06 23:21:36 keithp Exp $
3  *
4  * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
5  *
6  * Permission to use, copy, modify, distribute, and sell this software and its
7  * documentation for any purpose is hereby granted without fee, provided that
8  * the above copyright notice appear in all copies and that both that
9  * copyright notice and this permission notice appear in supporting
10  * documentation, and that the name of Keith Packard not be used in
11  * advertising or publicity pertaining to distribution of the software without
12  * specific, written prior permission.  Keith Packard makes no
13  * representations about the suitability of this software for any purpose.  It
14  * is provided "as is" without express or implied warranty.
15  *
16  * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18  * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22  * PERFORMANCE OF THIS SOFTWARE.
23  */
24
25 #include "fcint.h"
26
27 typedef struct {
28     FcChar8     *lang;
29     FcCharSet   charset;
30 } FcLangCharSet;
31
32 /* total size: 496 unique leaves: 436 */
33
34 static const FcCharLeaf leaves[436] = {
35     { { /* 0 */
36     0x00000000, 0x00000000, 0x00000000, 0x00000000,
37     0x00000000, 0x08000800, 0x00000000, 0x00000000,
38     } },
39     { { /* 1 */
40     0xffff8002, 0xffffffff, 0x8002ffff, 0x00000000,
41     0xc0000000, 0xf0fc33c0, 0x03000000, 0x00000000,
42     } },
43     { { /* 2 */
44     0x88001000, 0x07fffffe, 0x0007ffff, 0x00000000,
45     0x00000000, 0x00000000, 0x00000000, 0x00000000,
46     } },
47     { { /* 3 */
48     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
49     0x00000000, 0x00000000, 0x10400090, 0x10400090,
50     } },
51     { { /* 4 */
52     0xc0000000, 0x00030000, 0xc0000000, 0x00000000,
53     0x00008000, 0x00000000, 0x00000000, 0x00000000,
54     } },
55     { { /* 5 */
56     0x00000000, 0x00000000, 0x02000000, 0x00000000,
57     0x00000000, 0x10000000, 0x00000000, 0x00000000,
58     } },
59     { { /* 6 */
60     0xffff0100, 0xffffffff, 0x0100ffff, 0x00000000,
61     0x300c0000, 0x0f00c000, 0x03000000, 0x00000300,
62     } },
63     { { /* 7 */
64     0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
65     0x030c0000, 0x0000cc0f, 0x03000000, 0x00000300,
66     } },
67     { { /* 8 */
68     0xffff4042, 0xffffffff, 0x4042ffff, 0x00000000,
69     0x00000000, 0x00000000, 0x00000000, 0x00000000,
70     } },
71     { { /* 9 */
72     0xffff0001, 0xffffd7ff, 0x2001d7ff, 0x00000c0c,
73     0x00000000, 0x00002000, 0x00000000, 0x00000000,
74     } },
75     { { /* 10 */
76     0x00000000, 0x00000000, 0x00000000, 0x00000000,
77     0xfff99fee, 0xd3c5fdff, 0xb080399f, 0x07ffffcf,
78     } },
79     { { /* 11 */
80     0xffffffff, 0xffffffff, 0xfffffeff, 0xfffe07ff,
81     0x00000000, 0x00000000, 0x00000000, 0x00000000,
82     } },
83     { { /* 12 */
84     0x00000000, 0x00000080, 0x07fffffe, 0x07fffffe,
85     0x00000000, 0x08000800, 0x12020404, 0x12020404,
86     } },
87     { { /* 13 */
88     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
89     0x00000000, 0x00800000, 0x140ca381, 0x140ca381,
90     } },
91     { { /* 14 */
92     0x00000000, 0x80000000, 0x00000001, 0x00000000,
93     0x00000000, 0x00000000, 0x00000000, 0x00000000,
94     } },
95     { { /* 15 */
96     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
97     0x00000000, 0x08000800, 0x0a12cf45, 0x8a12cf45,
98     } },
99     { { /* 16 */
100     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
101     0x00000000, 0x00000000, 0x34482212, 0x34482212,
102     } },
103     { { /* 17 */
104     0x0c00f000, 0x00000000, 0x03000180, 0x6000c033,
105     0x00000000, 0x00000000, 0x00000000, 0x00000000,
106     } },
107     { { /* 18 */
108     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
109     0x00000000, 0x08000800, 0x75592ff7, 0x75592ff7,
110     } },
111     { { /* 19 */
112     0x00000000, 0x00000000, 0x000c0000, 0x00000000,
113     0x00000000, 0x00000000, 0x00000000, 0xfc000000,
114     } },
115     { { /* 20 */
116     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
117     0x00000000, 0x08000800, 0x90400010, 0x10400010,
118     } },
119     { { /* 21 */
120     0x00000000, 0x00000000, 0x00000000, 0x44300000,
121     0xffffd7f0, 0xfffffffb, 0xfc807fff, 0x00000003,
122     } },
123     { { /* 22 */
124     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
125     0x00000000, 0x00000000, 0x8fd38f81, 0x00520000,
126     } },
127     { { /* 23 */
128     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
129     0x00000000, 0x00000000, 0x00000000, 0x00000000,
130     } },
131     { { /* 24 */
132     0x30000300, 0x00300030, 0x30000000, 0x00003000,
133     0x00000000, 0x00000000, 0x00000000, 0x00000000,
134     } },
135     { { /* 25 */
136     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
137     0x00000000, 0x80000002, 0x140a2202, 0x140a2202,
138     } },
139     { { /* 26 */
140     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
141     0x00000000, 0x00000000, 0x10600010, 0x10600010,
142     } },
143     { { /* 27 */
144     0x00000000, 0x00000000, 0x00000000, 0x60000003,
145     0x00000000, 0x00000000, 0x00000000, 0x00000000,
146     } },
147     { { /* 28 */
148     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
149     0x00000000, 0x00000000, 0x10020000, 0x10020000,
150     } },
151     { { /* 29 */
152     0x00000000, 0x00000000, 0x00300000, 0x00000000,
153     0x00000000, 0x00000000, 0x00000000, 0x00000000,
154     } },
155     { { /* 30 */
156     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
157     0x00000000, 0x08000000, 0x10600070, 0x10600070,
158     } },
159     { { /* 31 */
160     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
161     0x00000000, 0x00000000, 0x35492072, 0x35492072,
162     } },
163     { { /* 32 */
164     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
165     0x00000000, 0x00000000, 0x060c3383, 0x060c3383,
166     } },
167     { { /* 33 */
168     0x00000c00, 0x00000003, 0x00000000, 0x80000000,
169     0x00000000, 0x00000000, 0x00000000, 0x00000000,
170     } },
171     { { /* 34 */
172     0x00000000, 0x00000000, 0x00000000, 0x10000000,
173     0x00000000, 0x00000000, 0x00000000, 0x00000000,
174     } },
175     { { /* 35 */
176     0xc0000c0c, 0x00000000, 0x00c00003, 0x00000c03,
177     0x08000000, 0x00000000, 0x00000000, 0x00000000,
178     } },
179     { { /* 36 */
180     0x00000000, 0x00000000, 0x00000400, 0x00000000,
181     0x00000000, 0x00000000, 0x00000000, 0x00000000,
182     } },
183     { { /* 37 */
184     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
185     0x00000000, 0x00000000, 0x020c1381, 0x020c1381,
186     } },
187     { { /* 38 */
188     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
189     0x00000000, 0x88000802, 0x140a2202, 0x140a2202,
190     } },
191     { { /* 39 */
192     0x00000000, 0x00000000, 0x00000000, 0x00000000,
193     0xfffbafee, 0xf3edfdff, 0x00013bbf, 0x0000ffc1,
194     } },
195     { { /* 40 */
196     0x00000000, 0x00000000, 0x00000000, 0x00000000,
197     0x00000000, 0x00000000, 0xffff0000, 0x000007ff,
198     } },
199     { { /* 41 */
200     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
201     0x00000000, 0x00000000, 0x02041101, 0x02041101,
202     } },
203     { { /* 42 */
204     0x000330c0, 0x00000000, 0x00000000, 0x60000003,
205     0x00000000, 0x00000000, 0x00001ff0, 0x003e0000,
206     } },
207     { { /* 43 */
208     0x00ffffff, 0x00000000, 0x00000000, 0x00000000,
209     0x00000000, 0x00000000, 0x00000000, 0x00000000,
210     } },
211     { { /* 44 */
212     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
213     0x00000000, 0x00000000, 0x14482203, 0x14482203,
214     } },
215     { { /* 45 */
216     0x00000000, 0x00000000, 0x00030000, 0x00030000,
217     0x00000000, 0x00000000, 0x00000000, 0x00000000,
218     } },
219     { { /* 46 */
220     0x00000000, 0xfffe0000, 0xfc7fffff, 0xfffffffe,
221     0x0000067f, 0x00000000, 0x00000000, 0x00000000,
222     } },
223     { { /* 47 */
224     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
225     0x00000000, 0x00000000, 0x75092a72, 0x75092272,
226     } },
227     { { /* 48 */
228     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
229     0x00000000, 0x00000000, 0x060cb301, 0x060cb300,
230     } },
231     { { /* 49 */
232     0x000000e7, 0x00000000, 0xfffffffe, 0xffffffff,
233     0x780fffff, 0xfffffffe, 0xffffffff, 0x787fffff,
234     } },
235     { { /* 50 */
236     0x43f36f8b, 0x9b462442, 0xe3e0e82c, 0x400a0004,
237     0xdb365f65, 0x04497977, 0xe3f0ecd7, 0x08c56038,
238     } },
239     { { /* 51 */
240     0x3403e602, 0x35518000, 0x7eabe0c8, 0x98698200,
241     0x2942a948, 0x8060e803, 0xad93441c, 0x4568c03a,
242     } },
243     { { /* 52 */
244     0x8656aa60, 0x02403f7a, 0x14618388, 0x21741020,
245     0x07022021, 0x40bc3000, 0x4462a624, 0x0a2060a8,
246     } },
247     { { /* 53 */
248     0x85740217, 0x9c840402, 0x14157bfb, 0x11e27f24,
249     0x02efb665, 0x20ff1f75, 0x38403a70, 0x676326c3,
250     } },
251     { { /* 54 */
252     0x20924dd9, 0x0fc946b0, 0x4850bc98, 0xa03f8638,
253     0x88162388, 0x52323e09, 0xe3a422aa, 0xc72c00dd,
254     } },
255     { { /* 55 */
256     0x26e1a166, 0x8f0a840b, 0x559e27eb, 0x89bbc241,
257     0x85400014, 0x08496361, 0x8ad07f0c, 0x05cfff3e,
258     } },
259     { { /* 56 */
260     0xa803ff1a, 0x7b407a41, 0x80024745, 0x38eb0500,
261     0x0005d851, 0x710c9934, 0x01000397, 0x24046366,
262     } },
263     { { /* 57 */
264     0x005180d0, 0x430ac000, 0x30c89071, 0x58000008,
265     0xf7000e99, 0x00415f80, 0x941000b0, 0x62800018,
266     } },
267     { { /* 58 */
268     0x09d00240, 0x01568200, 0x08015004, 0x05101d10,
269     0x001084c1, 0x10504025, 0x4d8a410f, 0xa60d4009,
270     } },
271     { { /* 59 */
272     0x914cab19, 0x098121c0, 0x0003c485, 0x80000652,
273     0x00080b04, 0x0009041d, 0x905c4849, 0x16900009,
274     } },
275     { { /* 60 */
276     0x22200c65, 0x24338412, 0x47960c03, 0x42250a04,
277     0x90880028, 0x4f084900, 0xd3aa14a2, 0x3e87d830,
278     } },
279     { { /* 61 */
280     0x1f618604, 0x41867ea4, 0x05b3c390, 0x211857a5,
281     0x2a48241e, 0x4a041128, 0x161b0a40, 0x88400d60,
282     } },
283     { { /* 62 */
284     0x9502020a, 0x10608221, 0x04000243, 0x80001444,
285     0x0c040000, 0x70000000, 0x00c11a06, 0x0c00024a,
286     } },
287     { { /* 63 */
288     0x00401a00, 0x40451404, 0xbdb30029, 0x052b0a78,
289     0xbfa0bba9, 0x8379407c, 0xe81d12fc, 0xc5694bf6,
290     } },
291     { { /* 64 */
292     0x044aeff6, 0xff022115, 0x402bed63, 0x0242d033,
293     0x00131000, 0x59ca1b02, 0x020000a0, 0x2c41a703,
294     } },
295     { { /* 65 */
296     0x8ff24880, 0x00000204, 0x10055800, 0x00489200,
297     0x20011894, 0x34805004, 0x684c3200, 0x68be49ea,
298     } },
299     { { /* 66 */
300     0x2e42184c, 0x21c9a820, 0x80b050b9, 0xff7c001e,
301     0x14e0849a, 0x01e028c1, 0xac49870e, 0xdddb130f,
302     } },
303     { { /* 67 */
304     0x89fbbe1a, 0x51a2a2e0, 0x32ca5502, 0x928b3e46,
305     0x438f1dbf, 0x32186703, 0x33c03028, 0xa9230811,
306     } },
307     { { /* 68 */
308     0x3a65c000, 0x04028fe3, 0x86252c4e, 0x00a1bf3d,
309     0x8cd43a1a, 0x317c06c9, 0x950a00e0, 0x0edb018b,
310     } },
311     { { /* 69 */
312     0x8c20e34b, 0xf0101182, 0xa7287d94, 0x40fbc9ac,
313     0x06534484, 0x44445a90, 0x00013fc8, 0xf5d40048,
314     } },
315     { { /* 70 */
316     0xec577701, 0x891dc442, 0x49286b83, 0xd2424109,
317     0x59fe061d, 0x3a221800, 0x3b9fb7e4, 0xc0eaf003,
318     } },
319     { { /* 71 */
320     0x82021386, 0xe4008980, 0x10a1b200, 0x0cc44b80,
321     0x8944d309, 0x48341faf, 0x0c458259, 0x0450420a,
322     } },
323     { { /* 72 */
324     0x10c8a040, 0x44503140, 0x01004004, 0x05408280,
325     0x442c0108, 0x1a056a30, 0x051420a6, 0x645690cf,
326     } },
327     { { /* 73 */
328     0x31000021, 0xcbf09c18, 0x63e2a120, 0x01b5104c,
329     0x9a83538c, 0x3281b8b2, 0x0a84987a, 0x0c0233e7,
330     } },
331     { { /* 74 */
332     0x9018d4cc, 0x9070a1a1, 0xe0048a1e, 0x0451c3d4,
333     0x21c2439a, 0x53104844, 0x36400292, 0xf3bd0241,
334     } },
335     { { /* 75 */
336     0xe8f0ab09, 0xa5d27dc0, 0xd24bc242, 0xd0afa43f,
337     0x34a11aa0, 0x03d88247, 0x651bc452, 0xc83ad294,
338     } },
339     { { /* 76 */
340     0x40c8001c, 0x33140e06, 0xb21b614f, 0xc0d00088,
341     0xa898a02a, 0x166ba1c5, 0x85b42e50, 0x0604c08b,
342     } },
343     { { /* 77 */
344     0x1e04f933, 0xa251056e, 0x76380400, 0x73b8ec07,
345     0x18324406, 0xc8164081, 0x63097c8a, 0xaa042980,
346     } },
347     { { /* 78 */
348     0xca9c1c24, 0x27604e0e, 0x83000990, 0x81040046,
349     0x10816011, 0x0908540d, 0xcc0a000e, 0x0c000500,
350     } },
351     { { /* 79 */
352     0xa0440430, 0x6784008b, 0x8a195288, 0x8b18865e,
353     0x41602e59, 0x9cbe8c10, 0x891c6861, 0x00089800,
354     } },
355     { { /* 80 */
356     0x089a8100, 0x41900018, 0xe4a14007, 0x640d0505,
357     0x0e4d310e, 0xff0a4806, 0x2aa81632, 0x000b852e,
358     } },
359     { { /* 81 */
360     0xca841800, 0x696c0e20, 0x16000032, 0x03905658,
361     0x1a285120, 0x11248000, 0x432618e1, 0x0eaa5d52,
362     } },
363     { { /* 82 */
364     0xae280fa0, 0x4500fa7b, 0x89406408, 0xc044c880,
365     0xb1419005, 0x24c48424, 0x603a1a34, 0xc1949000,
366     } },
367     { { /* 83 */
368     0x003a8246, 0xc106180d, 0x99100022, 0x1511e050,
369     0x00824057, 0x020a041a, 0x8930004f, 0x444ad813,
370     } },
371     { { /* 84 */
372     0xed228a02, 0x400510c0, 0x01021000, 0x31018808,
373     0x02044600, 0x0708f000, 0xa2008900, 0x22020000,
374     } },
375     { { /* 85 */
376     0x16100200, 0x10400042, 0x02605200, 0x200052f4,
377     0x82308510, 0x42021100, 0x80b54308, 0x9a2070e1,
378     } },
379     { { /* 86 */
380     0x08012040, 0xfc653500, 0xab0419c1, 0x62140286,
381     0x00440087, 0x02449085, 0x0a85405c, 0x33803207,
382     } },
383     { { /* 87 */
384     0xb8c00400, 0xc0d0ce20, 0x0080c030, 0x0d250508,
385     0x00400a90, 0x080c0200, 0x40006505, 0x41026421,
386     } },
387     { { /* 88 */
388     0x00000268, 0x847c0024, 0xde200002, 0x40498619,
389     0x40000808, 0x20010084, 0x10108400, 0x01c742cd,
390     } },
391     { { /* 89 */
392     0xd52a7038, 0x1d8f1968, 0x3e12be50, 0x81d92ef5,
393     0x2412cec4, 0x732e0828, 0x4b3424ac, 0xd41d020c,
394     } },
395     { { /* 90 */
396     0x80002a02, 0x08110097, 0x114411c4, 0x7d451786,
397     0x064949d9, 0x87914000, 0xd8c4254c, 0x491444ba,
398     } },
399     { { /* 91 */
400     0xc8001b92, 0x15800271, 0x0c000081, 0xc200096a,
401     0x40024800, 0xba493021, 0x1c802080, 0x1008e2ac,
402     } },
403     { { /* 92 */
404     0x00341004, 0x841400e1, 0x20000020, 0x10149800,
405     0x04aa70c2, 0x54208688, 0x04130c62, 0x20109180,
406     } },
407     { { /* 93 */
408     0x02064082, 0x54001c40, 0xe4e90383, 0x84802125,
409     0x2000e433, 0xe60944c0, 0x81260a03, 0x080112da,
410     } },
411     { { /* 94 */
412     0x97906901, 0xf8864001, 0x0081e24d, 0xa6510a0e,
413     0x81ec011a, 0x8441c600, 0xb62cadb8, 0x8741a46f,
414     } },
415     { { /* 95 */
416     0x4b028d54, 0x02681161, 0x2057bb60, 0x043350a0,
417     0xb7b4a8c0, 0x01122402, 0x20009ad3, 0x00c82271,
418     } },
419     { { /* 96 */
420     0x809e2081, 0xe1800c8a, 0x8151b009, 0x40281031,
421     0x89a52a0e, 0x620e69b6, 0xd1444425, 0x4d548085,
422     } },
423     { { /* 97 */
424     0x1fb12c75, 0x862dd807, 0x4841d87c, 0x226e414e,
425     0x9e088200, 0xed37f80c, 0x75268c80, 0x08149313,
426     } },
427     { { /* 98 */
428     0xc8040e32, 0x6ea6484e, 0x66702c4a, 0xba0126c0,
429     0x185dd30c, 0x00000000, 0x00000000, 0x00000000,
430     } },
431     { { /* 99 */
432     0x00000000, 0x05400000, 0x81337020, 0x03a54f81,
433     0x641055ec, 0x2344c318, 0x00341462, 0x1a090a43,
434     } },
435     { { /* 100 */
436     0x13a5187b, 0xa8480102, 0xc5440440, 0xe2dd8106,
437     0x2d481af0, 0x0416b626, 0x6e405058, 0x31128032,
438     } },
439     { { /* 101 */
440     0x0c0007e4, 0x420a8208, 0x803b4840, 0x87134860,
441     0x3428850d, 0xe5290319, 0x870a2345, 0x5c1825a9,
442     } },
443     { { /* 102 */
444     0xd9c577a6, 0x03e85e00, 0xa7000081, 0x41c6cd54,
445     0xa2042800, 0x2b0ab860, 0xda9e0020, 0x0e1a08ea,
446     } },
447     { { /* 103 */
448     0x11c0427c, 0x03768908, 0x01058621, 0x18a80000,
449     0xc44846a0, 0x20220d05, 0x91485422, 0x28978a01,
450     } },
451     { { /* 104 */
452     0x00087898, 0x31221605, 0x08804240, 0x06a2fa4e,
453     0x92110814, 0x9b042002, 0x06432e52, 0x90105000,
454     } },
455     { { /* 105 */
456     0x85ba0041, 0x20203042, 0x05a04f0b, 0x40802708,
457     0x1a930591, 0x0600df50, 0x3021a202, 0x4e800630,
458     } },
459     { { /* 106 */
460     0x04c80cc4, 0x8001a004, 0xd4316000, 0x0a020880,
461     0x00281c00, 0x00418e18, 0xca106ad0, 0x4b00f210,
462     } },
463     { { /* 107 */
464     0x1506274d, 0x88900220, 0x82a85a00, 0x81504549,
465     0x80002004, 0x2c088804, 0x000508d1, 0x4ac48001,
466     } },
467     { { /* 108 */
468     0x0062e020, 0x0a42008e, 0x6a8c3055, 0xe0a5090e,
469     0x42c42906, 0x80b34814, 0xb330803e, 0x731c0102,
470     } },
471     { { /* 109 */
472     0x600d1494, 0x09400c20, 0xc040301a, 0xc094a451,
473     0x05c88dca, 0xa40c96c2, 0x34040001, 0x011000c8,
474     } },
475     { { /* 110 */
476     0xa9c9550d, 0x1c5a2428, 0x48370142, 0x100f7a4d,
477     0x452a32b4, 0x9205317b, 0x5c44b894, 0x458a68d7,
478     } },
479     { { /* 111 */
480     0x2ed15097, 0x42081943, 0x9d40d202, 0x20979840,
481     0x064d5409, 0x00000000, 0x00000000, 0x00000000,
482     } },
483     { { /* 112 */
484     0x00000000, 0x84800000, 0x04215542, 0x17001c06,
485     0x61107624, 0xb9ddff87, 0x5c0a659f, 0x3c00245d,
486     } },
487     { { /* 113 */
488     0x0059adb0, 0x00000000, 0x00000000, 0x009b28d0,
489     0x02000422, 0x44080108, 0xac409804, 0x90288d0a,
490     } },
491     { { /* 114 */
492     0xe0018700, 0x00310400, 0x82211794, 0x10540019,
493     0x021a2cb2, 0x40039c02, 0x88043d60, 0x7900080c,
494     } },
495     { { /* 115 */
496     0xba3c1628, 0xcb088640, 0x90807274, 0x0000001e,
497     0xd8000000, 0x9c87e188, 0x04124034, 0x2791ae64,
498     } },
499     { { /* 116 */
500     0xe6fbe86b, 0x5366408f, 0x537feea6, 0xb5e4e32b,
501     0x0002869f, 0x01228548, 0x08004402, 0x20a02116,
502     } },
503     { { /* 117 */
504     0x02040004, 0x00052000, 0x01547e00, 0x01ac162c,
505     0x10852a84, 0x05308c14, 0xb943fbc3, 0x906000ca,
506     } },
507     { { /* 118 */
508     0x40326000, 0x80901200, 0x4c810b30, 0x40020054,
509     0x1d6a0029, 0x02802000, 0x00048000, 0x150c2610,
510     } },
511     { { /* 119 */
512     0x07018040, 0x0c24d94d, 0x18502810, 0x50205001,
513     0x04d01000, 0x02017080, 0x21c30108, 0x00000132,
514     } },
515     { { /* 120 */
516     0x07190088, 0x05600802, 0x4c0e0012, 0xf0a10405,
517     0x00000002, 0x00000000, 0x00000000, 0x00000000,
518     } },
519     { { /* 121 */
520     0x00000000, 0x00000000, 0x00000000, 0x00800000,
521     0x035a8e8d, 0x5a0421bd, 0x11703488, 0x00000026,
522     } },
523     { { /* 122 */
524     0x10000000, 0x8804c502, 0xf801b815, 0x25ed147c,
525     0x1bb0ed60, 0x1bd70589, 0x1a627af3, 0x0ac50d0c,
526     } },
527     { { /* 123 */
528     0x524ae5d1, 0x63050490, 0x52440354, 0x16122b57,
529     0x1101a872, 0x00182949, 0x10080948, 0x886c6000,
530     } },
531     { { /* 124 */
532     0x058f916e, 0x39903012, 0x4930f840, 0x001b8880,
533     0x00000000, 0x00428500, 0x98000058, 0x7014ea04,
534     } },
535     { { /* 125 */
536     0x611d1628, 0x60005113, 0x00a71a24, 0x00000000,
537     0x03c00000, 0x10187120, 0xa9270172, 0x89066004,
538     } },
539     { { /* 126 */
540     0x020cc022, 0x40810900, 0x8ca0202d, 0x00000e34,
541     0x00000000, 0x11012100, 0xc11a8011, 0x0892ec4c,
542     } },
543     { { /* 127 */
544     0x85000040, 0x1806c7ac, 0x0512e03e, 0x00108000,
545     0x80ce4008, 0x02106d01, 0x08568641, 0x0027011e,
546     } },
547     { { /* 128 */
548     0x083d3750, 0x4e05e032, 0x048401c0, 0x01400081,
549     0x00000000, 0x00000000, 0x00000000, 0x00591aa0,
550     } },
551     { { /* 129 */
552     0x882443c8, 0xc8001d48, 0x72030152, 0x04049013,
553     0x04008280, 0x0d148a10, 0x02088056, 0x2704a040,
554     } },
555     { { /* 130 */
556     0x4c000000, 0x00000000, 0x00000000, 0xa3200000,
557     0xa0ae1902, 0xdf002660, 0x7b15f010, 0x3ad08121,
558     } },
559     { { /* 131 */
560     0x00284180, 0x48001003, 0x8014cc00, 0x00c414cf,
561     0x30202000, 0x00000001, 0x00000000, 0x00000000,
562     } },
563     { { /* 132 */
564     0x00000000, 0x00000000, 0x00000000, 0x00000000,
565     0x00000000, 0x00000000, 0x00000000, 0x00000020,
566     } },
567     { { /* 133 */
568     0x00000000, 0x00000000, 0x00000000, 0x00000000,
569     0x00000200, 0x00000000, 0x00000000, 0x00000000,
570     } },
571     { { /* 134 */
572     0x00000000, 0x00000000, 0x00000000, 0x00000000,
573     0x00000000, 0xffffffff, 0xffff003f, 0x09ffffff,
574     } },
575     { { /* 135 */
576     0xffff0042, 0xffffffff, 0x0042ffff, 0x00000000,
577     0x0c0c0000, 0x0c00000c, 0x03000000, 0x00000300,
578     } },
579     { { /* 136 */
580     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
581     0x00000000, 0x08000800, 0x0d10646e, 0x0d10646e,
582     } },
583     { { /* 137 */
584     0x00000000, 0x01000300, 0x00000000, 0x00000300,
585     0x00000000, 0x00000000, 0x00000000, 0x00000000,
586     } },
587     { { /* 138 */
588     0x00000000, 0x00000000, 0x00000000, 0x00000000,
589     0xffffffff, 0xffffffff, 0x1fffffff, 0x000003ff,
590     } },
591     { { /* 139 */
592     0x00000000, 0x00000000, 0x00000000, 0x00000000,
593     0xfffddfec, 0xc3effdff, 0x40603ddf, 0x0000ffc3,
594     } },
595     { { /* 140 */
596     0x00000007, 0x00000000, 0x00000000, 0x00000000,
597     0x00000000, 0x00000000, 0x00000000, 0x00000000,
598     } },
599     { { /* 141 */
600     0x00000000, 0xfffe0000, 0xffffffff, 0xffffffff,
601     0x00007fff, 0x00000000, 0x00000000, 0x00000000,
602     } },
603     { { /* 142 */
604     0x1fffffff, 0x00000000, 0x00000000, 0x8fffffff,
605     0x00000000, 0x00000000, 0x00000000, 0x00000000,
606     } },
607     { { /* 143 */
608     0x43722f8b, 0x0b042000, 0xe340e82c, 0x40c82800,
609     0x49375944, 0x04407976, 0xa3f02c93, 0x08c50038,
610     } },
611     { { /* 144 */
612     0x0003ee02, 0x35508000, 0x1e23e1c8, 0xc4498200,
613     0x2942ad5a, 0x8060c000, 0xa49a461c, 0x052ac003,
614     } },
615     { { /* 145 */
616     0xd6462a44, 0x08003dda, 0x14208388, 0x01700020,
617     0x03022021, 0x40ac3000, 0x44628620, 0x8a0020a0,
618     } },
619     { { /* 146 */
620     0x80040253, 0x14840402, 0x10047bfb, 0x11e27fa4,
621     0x00a42441, 0x20c01421, 0x70003a50, 0x27430002,
622     } },
623     { { /* 147 */
624     0x208245c9, 0x0fc14630, 0x28503c88, 0xa0248602,
625     0x88062388, 0x40000e19, 0xeb6422aa, 0xcd28001c,
626     } },
627     { { /* 148 */
628     0x02e1a120, 0x8200840b, 0x549e279b, 0xa0b38141,
629     0x85080010, 0x08002061, 0x08d02f08, 0x010fbe3e,
630     } },
631     { { /* 149 */
632     0xa803f718, 0x5b080a41, 0x00020504, 0x382a0500,
633     0x00015041, 0x21081910, 0x00000313, 0x04046122,
634     } },
635     { { /* 150 */
636     0x100140d0, 0x40228000, 0x40488050, 0x10000008,
637     0x370006d1, 0x00005e80, 0x941000a0, 0x60000018,
638     } },
639     { { /* 151 */
640     0x00900240, 0x00548000, 0x00080000, 0x00100900,
641     0x00000040, 0x10105020, 0x4c022400, 0x06010001,
642     } },
643     { { /* 152 */
644     0x814c2918, 0x08012100, 0x00036485, 0x10214452,
645     0x00080904, 0x0000000d, 0x80004988, 0x16910001,
646     } },
647     { { /* 153 */
648     0x40000765, 0x04338492, 0x45928c00, 0x52200016,
649     0xd0080228, 0x4c084300, 0xc32a40a2, 0x2e009810,
650     } },
651     { { /* 154 */
652     0x16708000, 0x40826e84, 0x04b3c390, 0x21187c85,
653     0x02c8041c, 0x4a001120, 0x361b0a48, 0x89005540,
654     } },
655     { { /* 155 */
656     0x9902000a, 0x10400221, 0x04000242, 0x00000044,
657     0x0c040000, 0x00000010, 0x00001216, 0x00000242,
658     } },
659     { { /* 156 */
660     0x00401a20, 0x00000400, 0xb5b30009, 0x15230a18,
661     0x1fe89ba0, 0x8379507c, 0xc09d10fd, 0x0560dbf6,
662     } },
663     { { /* 157 */
664     0x0242ef92, 0xdf020110, 0x08226961, 0x02029035,
665     0x00030000, 0x45aa1a02, 0x02000001, 0x28518101,
666     } },
667     { { /* 158 */
668     0x02d26080, 0x00000280, 0x00011800, 0x00009200,
669     0x20000880, 0x35000405, 0x60442000, 0x609e49e6,
670     } },
671     { { /* 159 */
672     0x2a42104c, 0xa1482820, 0x802010b1, 0x7b9c000e,
673     0x14a08490, 0x41e028c1, 0x8c490704, 0x0cc8100d,
674     } },
675     { { /* 160 */
676     0x89ba8412, 0x142202c0, 0x0ac05500, 0x92833ec4,
677     0x43871ca3, 0x22a04703, 0x03c03028, 0xa0200801,
678     } },
679     { { /* 161 */
680     0x30448000, 0x000085a3, 0x2225200e, 0x0001b73c,
681     0x8c503220, 0x315d0099, 0x940200a0, 0x0e4b0003,
682     } },
683     { { /* 162 */
684     0x8c20e342, 0xd0910080, 0xa3281d94, 0x60c1499c,
685     0x07134406, 0x44445a90, 0x00000f88, 0x95c40040,
686     } },
687     { { /* 163 */
688     0x84477581, 0xc0534402, 0x01082b83, 0x92424000,
689     0x09a60611, 0x32220800, 0x1bddb384, 0xc08af000,
690     } },
691     { { /* 164 */
692     0x00020282, 0x6c008800, 0x00219200, 0x8c844180,
693     0x09441308, 0x000007a7, 0x0c418051, 0x00d06002,
694     } },
695     { { /* 165 */
696     0x10d0a000, 0x44003004, 0x01000000, 0x07008201,
697     0x440e0100, 0x08056830, 0x051464b2, 0x441410e6,
698     } },
699     { { /* 166 */
700     0x21000011, 0xcbc09c08, 0x40c2e120, 0x41b4304c,
701     0x9a8310ac, 0x328198b2, 0x00849822, 0xbc123369,
702     } },
703     { { /* 167 */
704     0xc03bd6c0, 0x0c53a1a1, 0xea008a1e, 0x05d8cbf0,
705     0x21c34390, 0x4a1c4805, 0x324002d0, 0xd79d0041,
706     } },
707     { { /* 168 */
708     0xe8b02b09, 0x24527dc0, 0xd04bc240, 0xc8aba000,
709     0x34a98a80, 0x41c98000, 0x241f8010, 0x487b9200,
710     } },
711     { { /* 169 */
712     0x00cc0000, 0x33008406, 0x001b410f, 0x80402000,
713     0xa0988022, 0x006ba186, 0x85a42a30, 0x06044181,
714     } },
715     { { /* 170 */
716     0x00046021, 0xa0010080, 0x46b80400, 0x03a0e90f,
717     0x18200000, 0x081040a0, 0x0001380a, 0xa8000500,
718     } },
719     { { /* 171 */
720     0xc28a0404, 0x2720000a, 0x830c0910, 0x00000802,
721     0x10806211, 0x0808000c, 0x0c08000c, 0x08400000,
722     } },
723     { { /* 172 */
724     0x00441410, 0x6404000b, 0x800150c0, 0x8984047e,
725     0x41400658, 0x94a4c000, 0x09dca862, 0x00001800,
726     } },
727     { { /* 173 */
728     0x000a8100, 0x41900008, 0xe4a14007, 0x64452501,
729     0x0e7d11ee, 0xfb084800, 0x08a81616, 0x0009c92e,
730     } },
731     { { /* 174 */
732     0x4a821800, 0x6b6406a0, 0x16000002, 0x83905648,
733     0x002a73a0, 0x00248000, 0x470288f9, 0x0faa4d02,
734     } },
735     { { /* 175 */
736     0x8e800000, 0x7554b87b, 0xd9402418, 0x040cc880,
737     0xb0410000, 0x04428c24, 0x001a5a34, 0xc1108000,
738     } },
739     { { /* 176 */
740     0x00328046, 0x8106180d, 0xcd920002, 0x74016014,
741     0x00916112, 0x420ac098, 0x8420040f, 0x40029a13,
742     } },
743     { { /* 177 */
744     0xfd228a62, 0x40808188, 0x21031000, 0x31010808,
745     0x07044420, 0x0388b812, 0xa3008900, 0x22020000,
746     } },
747     { { /* 178 */
748     0x46001210, 0x00410042, 0x52415680, 0x200052f0,
749     0x82148610, 0x46021004, 0x8035430a, 0xd80060e0,
750     } },
751     { { /* 179 */
752     0x08010041, 0x6c653400, 0xab0411c1, 0x22040286,
753     0x00000003, 0x00009084, 0x02814015, 0x33000202,
754     } },
755     { { /* 180 */
756     0x38400400, 0xc0c00e20, 0x00850030, 0x0d250500,
757     0x81d04ad0, 0x020c2280, 0x6240b605, 0x62802679,
758     } },
759     { { /* 181 */
760     0x080802ea, 0x8579dd67, 0xdea0081b, 0x40008735,
761     0xd1000a8c, 0xa22505aa, 0x15108440, 0x0080404d,
762     } },
763     { { /* 182 */
764     0x8d220012, 0x058f1968, 0x3a1a9080, 0x85618464,
765     0x2002ccc0, 0x732e0820, 0x0b3420a4, 0x14150004,
766     } },
767     { { /* 183 */
768     0x82002001, 0x08000057, 0x00445004, 0x79051212,
769     0x000940d0, 0x84004000, 0xd844054c, 0x5114409a,
770     } },
771     { { /* 184 */
772     0x40000b12, 0x15800201, 0x08002001, 0xc200084a,
773     0x40020800, 0x98093020, 0x18800000, 0x0008e22c,
774     } },
775     { { /* 185 */
776     0x00040004, 0x001410e0, 0x20008020, 0x10009800,
777     0x00827082, 0x1c000288, 0x00014c22, 0x08209100,
778     } },
779     { { /* 186 */
780     0x00404002, 0x44001c00, 0x7cc10383, 0x84002121,
781     0x0002e002, 0xe20a44c0, 0x81260e03, 0x080002d0,
782     } },
783     { { /* 187 */
784     0x96902921, 0xb8c24001, 0x00806241, 0xa6510a06,
785     0x812c0112, 0x0400c600, 0xa2800cb0, 0x8640a429,
786     } },
787     { { /* 188 */
788     0x4a028000, 0x02003041, 0x0057ba40, 0x20205001,
789     0x24b08880, 0x01122002, 0x000402d3, 0x00000211,
790     } },
791     { { /* 189 */
792     0x40040080, 0xe0000c82, 0x00003008, 0x00081011,
793     0x81a40208, 0x420e40a0, 0xc0400400, 0x48000081,
794     } },
795     { { /* 190 */
796     0x0f912df5, 0x0629d807, 0x4001007c, 0x824e4546,
797     0x1008c000, 0xed363005, 0x65400c80, 0x0810930b,
798     } },
799     { { /* 191 */
800     0xe8200600, 0x6082c80a, 0x403400ca, 0x12012e02,
801     0x19489004, 0x00000000, 0x00000000, 0x00000000,
802     } },
803     { { /* 192 */
804     0x00000000, 0x05400000, 0x00311000, 0x02a54c00,
805     0x44105520, 0x23040310, 0x80345422, 0x12010a03,
806     } },
807     { { /* 193 */
808     0x01a1126b, 0xa0482000, 0x45400448, 0xe08d8000,
809     0x28401af0, 0x04168626, 0x4c005018, 0x21120032,
810     } },
811     { { /* 194 */
812     0x0d0005e4, 0x42008a08, 0x00334800, 0x87030860,
813     0x34008501, 0xe4280109, 0x81002045, 0x5c1825a8,
814     } },
815     { { /* 195 */
816     0xd80435a0, 0x02e01c02, 0x020000a1, 0x4146c050,
817     0xa6046800, 0xbb8af260, 0xc8b60000, 0x600200e2,
818     } },
819     { { /* 196 */
820     0x0080023e, 0x03728900, 0x00068681, 0x08880000,
821     0x41404600, 0x20000e04, 0x10481622, 0x22178a00,
822     } },
823     { { /* 197 */
824     0x00007418, 0x21021200, 0x08800200, 0x0420984a,
825     0x12110000, 0x99040002, 0x04022a55, 0x10105000,
826     } },
827     { { /* 198 */
828     0x459a0000, 0xa000b02a, 0x0208420a, 0x00002708,
829     0x08128090, 0x04018740, 0x3020e202, 0x8c800630,
830     } },
831     { { /* 199 */
832     0x04c004c4, 0x80002000, 0xd8314000, 0x02000080,
833     0x00081400, 0x00000218, 0x8a100880, 0x40002010,
834     } },
835     { { /* 200 */
836     0x1500010d, 0x00000000, 0x80a04000, 0x01500140,
837     0x80002004, 0x04080004, 0x00000010, 0x4a049001,
838     } },
839     { { /* 201 */
840     0x80000020, 0x0842000c, 0x2a8c3041, 0xc085090e,
841     0x40c42906, 0x00100800, 0xb2308006, 0x21380102,
842     } },
843     { { /* 202 */
844     0x030d0080, 0x09400420, 0x80000012, 0x80040410,
845     0x004888ca, 0x24040602, 0x00040001, 0x01100008,
846     } },
847     { { /* 203 */
848     0xa9c8550d, 0x0c522428, 0x48310000, 0x022f624d,
849     0x412830a0, 0xd205057b, 0x1844a894, 0x45c26cc2,
850     } },
851     { { /* 204 */
852     0x2ed14017, 0x02081901, 0x1500c202, 0x20919040,
853     0x044d0401, 0x00000000, 0x00000000, 0x00000000,
854     } },
855     { { /* 205 */
856     0x00000000, 0x80800000, 0x04201542, 0x06000c02,
857     0x60001404, 0xb9d99f87, 0x540a059f, 0x3810245d,
858     } },
859     { { /* 206 */
860     0x004825b0, 0x00000000, 0x00000000, 0x00990850,
861     0x02000420, 0x44080108, 0x28009840, 0x0008810a,
862     } },
863     { { /* 207 */
864     0x40018400, 0x00210400, 0x82000794, 0x00500001,
865     0x00002482, 0x00001c00, 0x80043c01, 0x49000800,
866     } },
867     { { /* 208 */
868     0xf83c0228, 0xcb0886c0, 0xa0006230, 0x00000004,
869     0x18000000, 0x0007a148, 0x00124024, 0x22852c40,
870     } },
871     { { /* 209 */
872     0xe6b3a96f, 0x5126400f, 0x723b6c86, 0xb5a4e20b,
873     0x0222859f, 0x0123854c, 0x40000402, 0x20202102,
874     } },
875     { { /* 210 */
876     0x02240004, 0x00042080, 0x00047e00, 0x01a01604,
877     0x10042a80, 0x0032d800, 0x3183fa81, 0x00200488,
878     } },
879     { { /* 211 */
880     0x40872000, 0x84100000, 0x48800221, 0x00000074,
881     0x114a0029, 0x02c80000, 0x00049000, 0x11000410,
882     } },
883     { { /* 212 */
884     0xc5010010, 0x0000c957, 0x08102d00, 0x50204000,
885     0x04501000, 0x00013088, 0x40020008, 0x00400012,
886     } },
887     { { /* 213 */
888     0x01000010, 0x01200820, 0x08060010, 0xa0000000,
889     0x00000000, 0x00000000, 0x00000000, 0x00000000,
890     } },
891     { { /* 214 */
892     0x00000000, 0x00000000, 0x00000000, 0x00800000,
893     0x011e8a09, 0x18022138, 0x10700480, 0x00000006,
894     } },
895     { { /* 215 */
896     0x10000000, 0x88044402, 0xf8013815, 0x21e9041c,
897     0x1b306c60, 0x08820588, 0x1a607af3, 0x0ac5870c,
898     } },
899     { { /* 216 */
900     0x524a00c1, 0x22050080, 0x50420114, 0x04902206,
901     0x0000a800, 0x00002901, 0x10080840, 0x88480000,
902     } },
903     { { /* 217 */
904     0x018f156f, 0x0b012000, 0x45107040, 0x000088a0,
905     0x00000000, 0x00028100, 0x98000090, 0x7010e006,
906     } },
907     { { /* 218 */
908     0x41091608, 0x00000101, 0x00963a20, 0x00000000,
909     0x22400000, 0x021a7120, 0xa2270002, 0x80022000,
910     } },
911     { { /* 219 */
912     0x0200c102, 0x00c10800, 0x8ca02029, 0x00000624,
913     0x00000000, 0x01000100, 0x01180000, 0x00004020,
914     } },
915     { { /* 220 */
916     0x04000000, 0x10020480, 0x0410803e, 0x00008000,
917     0x80024000, 0x00004800, 0x00400200, 0x00000110,
918     } },
919     { { /* 221 */
920     0x00252000, 0x08040020, 0x00800280, 0x00000000,
921     0x00000000, 0x00000000, 0x00000000, 0x005802a0,
922     } },
923     { { /* 222 */
924     0x08000200, 0x08000140, 0x20020000, 0x00041003,
925     0x00000000, 0x00108200, 0x00800010, 0x07040000,
926     } },
927     { { /* 223 */
928     0x44000000, 0x00000000, 0x00000000, 0xa2200000,
929     0xa08c0000, 0x48300020, 0x59126008, 0x00100100,
930     } },
931     { { /* 224 */
932     0x00084180, 0x08000001, 0x80044c00, 0x00801482,
933     0x10212000, 0x00000000, 0x00000000, 0x00000000,
934     } },
935     { { /* 225 */
936     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
937     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
938     } },
939     { { /* 226 */
940     0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
941     0xffffffff, 0x0000000f, 0x00000000, 0x00000000,
942     } },
943     { { /* 227 */
944     0x00000fff, 0x00000000, 0x00000000, 0x00000000,
945     0x00000000, 0x00000000, 0x00000000, 0x00000000,
946     } },
947     { { /* 228 */
948     0x00000000, 0x00000000, 0x00000000, 0x00000000,
949     0x00000000, 0x00000000, 0x00000000, 0x00000040,
950     } },
951     { { /* 229 */
952     0x000c0003, 0x00003c00, 0x0000f000, 0x00003c00,
953     0x00000000, 0x00000000, 0x00000000, 0x00000000,
954     } },
955     { { /* 230 */
956     0x00000000, 0x00000000, 0x00000000, 0x00000000,
957     0xfef02596, 0x3bffecae, 0x33ff3f5f, 0x00000000,
958     } },
959     { { /* 231 */
960     0x000033f0, 0x0000c000, 0x00000000, 0x600c0c03,
961     0x00000000, 0x00000000, 0x00000000, 0x00000000,
962     } },
963     { { /* 232 */
964     0x000c3003, 0x18c00c0c, 0x00c03060, 0x60000c03,
965     0x00000000, 0x00000000, 0x00000000, 0x00000000,
966     } },
967     { { /* 233 */
968     0xfdffb729, 0x000001ff, 0xb7290000, 0x00000000,
969     0x00000000, 0x00000000, 0x00000000, 0x00000000,
970     } },
971     { { /* 234 */
972     0xfffddfec, 0xc3fffdff, 0x00803dcf, 0x0000ffc3,
973     0x00000000, 0x00000000, 0x00000000, 0x00000000,
974     } },
975     { { /* 235 */
976     0x03ff07ff, 0xffffffff, 0xffffffff, 0x00ffffff,
977     0xffffffff, 0x000003ff, 0x00000000, 0x00000000,
978     } },
979     { { /* 236 */
980     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
981     0x00000000, 0x00000000, 0x00004004, 0x00004004,
982     } },
983     { { /* 237 */
984     0x0000000c, 0x00000000, 0x00000000, 0x00000000,
985     0x00000000, 0x00000000, 0x00000000, 0x00000000,
986     } },
987     { { /* 238 */
988     0x0f000000, 0x00000000, 0x00000000, 0x00000000,
989     0x00000000, 0x00000000, 0x00000000, 0x00000000,
990     } },
991     { { /* 239 */
992     0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
993     0x00000000, 0x00000000, 0x00000000, 0x00000000,
994     } },
995     { { /* 240 */
996     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
997     0x00000000, 0x00000000, 0x0e1c7707, 0x0e1c7707,
998     } },
999     { { /* 241 */
1000     0x00000c00, 0x000000c3, 0x00000000, 0x18000000,
1001     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1002     } },
1003     { { /* 242 */
1004     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1005     0x00000000, 0x10000000, 0x00000000, 0x00000000,
1006     } },
1007     { { /* 243 */
1008     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1009     0x00000000, 0x00000000, 0x10408810, 0x10408810,
1010     } },
1011     { { /* 244 */
1012     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1013     0x00000000, 0x08000800, 0x115c0ff7, 0x115c0ff7,
1014     } },
1015     { { /* 245 */
1016     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1017     0x00000000, 0x00000000, 0x000cab83, 0x0004ab83,
1018     } },
1019     { { /* 246 */
1020     0xfff99fee, 0xf3cdfdff, 0xb0c0398f, 0x0001ffc3,
1021     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1022     } },
1023     { { /* 247 */
1024     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1025     0x00000000, 0x00000000, 0x00080000, 0x00080000,
1026     } },
1027     { { /* 248 */
1028     0x030000f0, 0x00000000, 0x0c00001e, 0x1e000000,
1029     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1030     } },
1031     { { /* 249 */
1032     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1033     0x00000000, 0x08000000, 0x1438268f, 0x1438268f,
1034     } },
1035     { { /* 250 */
1036     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1037     0x00000000, 0x00000000, 0x02045301, 0x02045301,
1038     } },
1039     { { /* 251 */
1040     0xffff0042, 0xffffffff, 0x0042ffff, 0x003c000c,
1041     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1042     } },
1043     { { /* 252 */
1044     0xfdff8f04, 0xfdff01ff, 0x8f0401ff, 0x00000000,
1045     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1046     } },
1047     { { /* 253 */
1048     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1049     0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001c0000,
1050     } },
1051     { { /* 254 */
1052     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1053     0x00000000, 0x00000000, 0x34582212, 0x34582212,
1054     } },
1055     { { /* 255 */
1056     0x0000f000, 0x66000000, 0x00330180, 0x60030033,
1057     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1058     } },
1059     { { /* 256 */
1060     0x000330c0, 0x00000000, 0x00000000, 0x60000003,
1061     0x00000000, 0x00000000, 0x00001b60, 0x003c0000,
1062     } },
1063     { { /* 257 */
1064     0x00009e2c, 0x00000000, 0x9e2c0000, 0x00000000,
1065     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1066     } },
1067     { { /* 258 */
1068     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1069     0x00000000, 0x00000000, 0x00000880, 0x00000880,
1070     } },
1071     { { /* 259 */
1072     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1073     0x00000000, 0x08000000, 0x3fdfffff, 0x3f5fffff,
1074     } },
1075     { { /* 260 */
1076     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1077     0xd63dc7ec, 0xc3bfc718, 0x00803dc7, 0x0007ff80,
1078     } },
1079     { { /* 261 */
1080     0xfffddfee, 0xc3effdff, 0x00603ddf, 0x0000ffc3,
1081     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1082     } },
1083     { { /* 262 */
1084     0xfffffffe, 0x87ffffff, 0x0fffffff, 0x00000000,
1085     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1086     } },
1087     { { /* 263 */
1088     0x001fdfff, 0x00000000, 0x00000000, 0x00000000,
1089     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1090     } },
1091     { { /* 264 */
1092     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1093     0x00000000, 0x00800000, 0x18400004, 0x18400084,
1094     } },
1095     { { /* 265 */
1096     0xc0000000, 0x00000000, 0x00000000, 0x00000000,
1097     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1098     } },
1099     { { /* 266 */
1100     0xffff00d2, 0xffffffff, 0x00d2ffff, 0x00000000,
1101     0x00030000, 0x00000000, 0x00000000, 0x00000000,
1102     } },
1103     { { /* 267 */
1104     0x00000000, 0x00000000, 0x077dfffe, 0x077dfffe,
1105     0x00000000, 0x00000000, 0x10400010, 0x10400010,
1106     } },
1107     { { /* 268 */
1108     0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
1109     0x00000000, 0x00000000, 0x081047a4, 0x081047a4,
1110     } },
1111     { { /* 269 */
1112     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1113     0x00000000, 0x00000000, 0x00000280, 0x00000000,
1114     } },
1115     { { /* 270 */
1116     0x7f7b7f8b, 0xef553db4, 0xf35dfba8, 0x400b0243,
1117     0x8d3efb40, 0x8c2c7bf7, 0xe3fa6eff, 0xa8ed1d3a,
1118     } },
1119     { { /* 271 */
1120     0xcf83e602, 0x35558cf5, 0xffabe048, 0xd85992b9,
1121     0x2892ab18, 0x8020d7e9, 0xf583c438, 0x450ae74a,
1122     } },
1123     { { /* 272 */
1124     0x9714b000, 0x54007762, 0x1420d188, 0xc8c01020,
1125     0x00002121, 0x0c0413a8, 0x04408000, 0x082870c0,
1126     } },
1127     { { /* 273 */
1128     0x000408c0, 0x80000002, 0x14722b7b, 0x3bfb7924,
1129     0x1ae43327, 0x38ef9835, 0x28029ad1, 0xbf69a813,
1130     } },
1131     { { /* 274 */
1132     0x2fc665cf, 0xafc96b11, 0x5053340f, 0xa00486a2,
1133     0xe8090106, 0xc00e3f0f, 0x81450a88, 0xc6010010,
1134     } },
1135     { { /* 275 */
1136     0x26e1a161, 0xce00444b, 0xd4eec7aa, 0x85bbcadf,
1137     0xa5203a74, 0x8840436c, 0x8bd23f06, 0x3befff79,
1138     } },
1139     { { /* 276 */
1140     0xe8eff75a, 0x5b36fbcb, 0x1bfd0d49, 0x39ee0154,
1141     0x2e75d855, 0xa91abfd8, 0xf6bff3d7, 0xb40c67e0,
1142     } },
1143     { { /* 277 */
1144     0x081382c2, 0xd08bd49d, 0x1061065a, 0x59e074f2,
1145     0xb3128f9f, 0x6aaa0080, 0xb05e3230, 0x60ac9d7a,
1146     } },
1147     { { /* 278 */
1148     0xc900d303, 0x8a563098, 0x13907000, 0x18421f14,
1149     0x0008c060, 0x10808008, 0xec900400, 0xe6332817,
1150     } },
1151     { { /* 279 */
1152     0x90000758, 0x4e09f708, 0xfc83f485, 0x18c8af53,
1153     0x080c187c, 0x01146adf, 0xa734c80c, 0x2710a011,
1154     } },
1155     { { /* 280 */
1156     0x422228c5, 0x00210413, 0x41123010, 0x40001820,
1157     0xc60c022b, 0x10000300, 0x00220022, 0x02495810,
1158     } },
1159     { { /* 281 */
1160     0x9670a094, 0x1792eeb0, 0x05f2cb96, 0x23580025,
1161     0x42cc25de, 0x4a04cf38, 0x359f0c40, 0x8a001128,
1162     } },
1163     { { /* 282 */
1164     0x910a13fa, 0x10560229, 0x04200641, 0x84f00484,
1165     0x0c040000, 0x412c0400, 0x11541206, 0x00020a4b,
1166     } },
1167     { { /* 283 */
1168     0x00c00200, 0x00940000, 0xbfbb0001, 0x242b167c,
1169     0x7fa89bbb, 0xe3790c7f, 0xe00d10f4, 0x9f014132,
1170     } },
1171     { { /* 284 */
1172     0x35728652, 0xff1210b4, 0x4223cf27, 0x8602c06b,
1173     0x1fd33106, 0xa1aa3a0c, 0x02040812, 0x08012572,
1174     } },
1175     { { /* 285 */
1176     0x485040cc, 0x601062d0, 0x29001c80, 0x00109a00,
1177     0x22000004, 0x00800000, 0x68002020, 0x609ecbe6,
1178     } },
1179     { { /* 286 */
1180     0x3f73916e, 0x398260c0, 0x48301034, 0xbd5c0006,
1181     0xd6fb8cd1, 0x43e820e1, 0x084e0600, 0xc4d00500,
1182     } },
1183     { { /* 287 */
1184     0x89aa8d1f, 0x1602a6e1, 0x21ed0001, 0x1a8b3656,
1185     0x13a51fb7, 0x30a06502, 0x23c7b278, 0xe9226c93,
1186     } },
1187     { { /* 288 */
1188     0x3a74e47f, 0x98208fe3, 0x2625280e, 0xbf49bf9c,
1189     0xac543218, 0x1916b949, 0xb5220c60, 0x0659fbc1,
1190     } },
1191     { { /* 289 */
1192     0x8420e343, 0x800008d9, 0x20225500, 0x00a10184,
1193     0x20104800, 0x40801380, 0x00160d04, 0x80200040,
1194     } },
1195     { { /* 290 */
1196     0x8de7fd40, 0xe0985436, 0x091e7b8b, 0xd249fec8,
1197     0x8dee0611, 0xba221937, 0x9fdd77f4, 0xf0daf3ec,
1198     } },
1199     { { /* 291 */
1200     0xec424386, 0x26048d3f, 0xc021fa6c, 0x0cc2628e,
1201     0x0145d785, 0x559977ad, 0x4045e250, 0xa154260b,
1202     } },
1203     { { /* 292 */
1204     0x58199827, 0xa4103443, 0x411405f2, 0x07002280,
1205     0x426600b4, 0x15a17210, 0x41856025, 0x00000054,
1206     } },
1207     { { /* 293 */
1208     0x01040201, 0xcb70c820, 0x6a629320, 0x0095184c,
1209     0x9a8b1880, 0x3201aab2, 0x00c4d87a, 0x04c3f3e5,
1210     } },
1211     { { /* 294 */
1212     0xa238d44d, 0x5072a1a1, 0x84fc980a, 0x44d1c152,
1213     0x20c21094, 0x42104180, 0x3a000000, 0xd29d0240,
1214     } },
1215     { { /* 295 */
1216     0xa8b12f01, 0x2432bd40, 0xd04bd34d, 0xd0ada723,
1217     0x75a10a92, 0x01e9adac, 0x771f801a, 0xa01b9225,
1218     } },
1219     { { /* 296 */
1220     0x20cadfa1, 0x738c0602, 0x003b577f, 0x00d00bff,
1221     0x0088806a, 0x0029a1c4, 0x05242a05, 0x16234009,
1222     } },
1223     { { /* 297 */
1224     0x80056822, 0xa2112011, 0x64900004, 0x13824849,
1225     0x193023d5, 0x08922980, 0x88115402, 0xa0042001,
1226     } },
1227     { { /* 298 */
1228     0x81800400, 0x60228502, 0x0b010090, 0x12020022,
1229     0x00834011, 0x00001a01, 0x00000000, 0x00000000,
1230     } },
1231     { { /* 299 */
1232     0x00000000, 0x4684009f, 0x020012c8, 0x1a0004fc,
1233     0x0c4c2ede, 0x80b80402, 0x0afca826, 0x22288c02,
1234     } },
1235     { { /* 300 */
1236     0x8f7ba0e0, 0x2135c7d6, 0xf8b106c7, 0x62550713,
1237     0x8a19936e, 0xfb0e6efa, 0x48f91630, 0x7debcd2f,
1238     } },
1239     { { /* 301 */
1240     0x4e845892, 0x7a2e4ca0, 0x561eedea, 0x1190c649,
1241     0xe83a5324, 0x8124cfdb, 0x634218f1, 0x1a8a5853,
1242     } },
1243     { { /* 302 */
1244     0x24d37420, 0x0514aa3b, 0x89586018, 0xc0004800,
1245     0x91018268, 0x2cd684a4, 0xc4ba8886, 0x02100377,
1246     } },
1247     { { /* 303 */
1248     0x00388244, 0x404aae11, 0x510028c0, 0x15146044,
1249     0x10007310, 0x02480082, 0x40060205, 0x0000c003,
1250     } },
1251     { { /* 304 */
1252     0x0c020000, 0x02200008, 0x40009000, 0xd161b800,
1253     0x32744621, 0x3b8af800, 0x8b00050f, 0x2280bbd0,
1254     } },
1255     { { /* 305 */
1256     0x07690600, 0x00438040, 0x50005420, 0x250c41d0,
1257     0x83108410, 0x02281101, 0x00304008, 0x020040a1,
1258     } },
1259     { { /* 306 */
1260     0x20000040, 0xabe31500, 0xaa443180, 0xc624c2c6,
1261     0x8004ac13, 0x03d1b000, 0x4285611e, 0x1d9ff303,
1262     } },
1263     { { /* 307 */
1264     0x78e8440a, 0xc3925e26, 0x00852000, 0x4000b001,
1265     0x88424a90, 0x0c8dca04, 0x4203a705, 0x000422a1,
1266     } },
1267     { { /* 308 */
1268     0x0c018668, 0x10795564, 0xdea00002, 0x40c12000,
1269     0x5001488b, 0x04000380, 0x50040000, 0x80d0c05d,
1270     } },
1271     { { /* 309 */
1272     0x970aa010, 0x4dafbb20, 0x1e10d921, 0x83140460,
1273     0xa6d68848, 0x733fd83b, 0x497427bc, 0x92130ddc,
1274     } },
1275     { { /* 310 */
1276     0x8ba1142b, 0xd1392e75, 0x50503009, 0x69008808,
1277     0x024a49d4, 0x80164010, 0x89d7e564, 0x5316c020,
1278     } },
1279     { { /* 311 */
1280     0x86002b92, 0x15e0a345, 0x0c03008b, 0xe200196e,
1281     0x80067031, 0xa82916a5, 0x18802000, 0xe1487aac,
1282     } },
1283     { { /* 312 */
1284     0xb5d63207, 0x5f9132e8, 0x20e550a1, 0x10807c00,
1285     0x9d8a7280, 0x421f00aa, 0x02310e22, 0x04941100,
1286     } },
1287     { { /* 313 */
1288     0x40080022, 0x5c100010, 0xfcc80343, 0x0580a1a5,
1289     0x04008433, 0x6e080080, 0x81262a4b, 0x2901aad8,
1290     } },
1291     { { /* 314 */
1292     0x4490684d, 0xba880009, 0x00820040, 0x87d10000,
1293     0xb1e6215b, 0x80083161, 0xc2400800, 0xa600a069,
1294     } },
1295     { { /* 315 */
1296     0x4a328d58, 0x550a5d71, 0x2d579aa0, 0x4aa64005,
1297     0x30b12021, 0x01123fc6, 0x260a10c2, 0x50824462,
1298     } },
1299     { { /* 316 */
1300     0x80409880, 0x810004c0, 0x00002003, 0x38180000,
1301     0xf1a60200, 0x720e4434, 0x92e035a2, 0x09008101,
1302     } },
1303     { { /* 317 */
1304     0x00000400, 0x00008885, 0x00000000, 0x00804000,
1305     0x00000000, 0x00004040, 0x00000000, 0x00000000,
1306     } },
1307     { { /* 318 */
1308     0x00000000, 0x08000000, 0x00000082, 0x00000000,
1309     0x88000004, 0xe7efbfff, 0xffbfffff, 0xfdffefef,
1310     } },
1311     { { /* 319 */
1312     0xbffefbff, 0x057fffff, 0x85b30034, 0x42164706,
1313     0xe4105402, 0xb3058092, 0x81305422, 0x180b4263,
1314     } },
1315     { { /* 320 */
1316     0x13f5387b, 0xa9ea07e5, 0x05143c4c, 0x80020600,
1317     0xbd481ad9, 0xf496ee37, 0x7ec0705f, 0x355fbfb2,
1318     } },
1319     { { /* 321 */
1320     0x455fe644, 0x41469000, 0x063b1d40, 0xfe1362a1,
1321     0x39028505, 0x0c080548, 0x0000144f, 0x58183488,
1322     } },
1323     { { /* 322 */
1324     0xd8153077, 0x4bfbbd0e, 0x85008a90, 0xe61dc100,
1325     0xb386ed14, 0x639bff72, 0xd9befd92, 0x0a92887b,
1326     } },
1327     { { /* 323 */
1328     0x1cb2d3fe, 0x177ab980, 0xdc1782c9, 0x3980fffb,
1329     0x590c4260, 0x37df0f01, 0xb15094a3, 0x23070623,
1330     } },
1331     { { /* 324 */
1332     0x3102f85a, 0x310201f0, 0x1e820040, 0x056a3a0a,
1333     0x12805b84, 0xa7148002, 0xa04b2612, 0x90011069,
1334     } },
1335     { { /* 325 */
1336     0x848a1000, 0x3f801802, 0x42400708, 0x4e140110,
1337     0x180080b0, 0x0281c510, 0x10298202, 0x88000210,
1338     } },
1339     { { /* 326 */
1340     0x00420020, 0x11000280, 0x4413e000, 0xfe025804,
1341     0x30283c07, 0x04739798, 0xcb13ced1, 0x431f6210,
1342     } },
1343     { { /* 327 */
1344     0x55ac278d, 0xc892422e, 0x02885380, 0x78514039,
1345     0x8088292c, 0x2428b900, 0x080e0c41, 0x42004421,
1346     } },
1347     { { /* 328 */
1348     0x08680408, 0x12040006, 0x02903031, 0xe0855b3e,
1349     0x10442936, 0x10822814, 0x83344266, 0x531b013c,
1350     } },
1351     { { /* 329 */
1352     0x0e0d0404, 0x00510c22, 0xc0000012, 0x88000040,
1353     0x0000004a, 0x00000000, 0x5447dff6, 0x00088868,
1354     } },
1355     { { /* 330 */
1356     0x00000081, 0x40000000, 0x00000100, 0x02000000,
1357     0x00080600, 0x00000000, 0x00000000, 0x00000000,
1358     } },
1359     { { /* 331 */
1360     0x00000080, 0x00000040, 0x00000000, 0x00001040,
1361     0x00000000, 0xf7fdefff, 0xfffeff7f, 0xfffffbff,
1362     } },
1363     { { /* 332 */
1364     0xbffffdff, 0x00ffffff, 0x042012c2, 0x07080c06,
1365     0x01101624, 0x00000000, 0x00000000, 0x00000000,
1366     } },
1367     { { /* 333 */
1368     0xe0000000, 0xfffffffe, 0x7f79ffff, 0x00f928df,
1369     0x80120c32, 0xd53a0008, 0xecc2d858, 0x2fa89d18,
1370     } },
1371     { { /* 334 */
1372     0xe0109620, 0x2622d60c, 0x02060f97, 0x9055b240,
1373     0x501180a2, 0x04049800, 0x00004000, 0x00000000,
1374     } },
1375     { { /* 335 */
1376     0x00000000, 0x00000000, 0x00000000, 0xfffffbc0,
1377     0xdffbeffe, 0x62430b08, 0xfb3b41b6, 0x23896f74,
1378     } },
1379     { { /* 336 */
1380     0xecd7ae7f, 0x5960e047, 0x098fa096, 0xa030612c,
1381     0x2aaa090d, 0x4f7bd44e, 0x388bc4b2, 0x6110a9c6,
1382     } },
1383     { { /* 337 */
1384     0x42000014, 0x0202800c, 0x6485fe48, 0xe3f7d63e,
1385     0x0c073aa0, 0x0430e40c, 0x1002f680, 0x00000000,
1386     } },
1387     { { /* 338 */
1388     0x00000000, 0x00000000, 0x00000000, 0x00100000,
1389     0x00004000, 0x00004000, 0x00000100, 0x00000000,
1390     } },
1391     { { /* 339 */
1392     0x00000000, 0x40000000, 0x00000000, 0x00000400,
1393     0x00008000, 0x00000000, 0x00400400, 0x00000000,
1394     } },
1395     { { /* 340 */
1396     0x00000000, 0x40000000, 0x00000000, 0x00000800,
1397     0xfebdffe0, 0xffffffff, 0xfbe77f7f, 0xf7ffffbf,
1398     } },
1399     { { /* 341 */
1400     0xefffffff, 0xdff7ff7e, 0xfbdff6f7, 0x804fbffe,
1401     0x00000000, 0x00000000, 0x00000000, 0x7fffef00,
1402     } },
1403     { { /* 342 */
1404     0xb6f7ff7f, 0xb87e4406, 0x88313bf5, 0x00f41796,
1405     0x1391a960, 0x72490080, 0x0024f2f3, 0x42c88701,
1406     } },
1407     { { /* 343 */
1408     0x5048e3d3, 0x43052400, 0x4a4c0000, 0x10580227,
1409     0x01162820, 0x0014a809, 0x00000000, 0x00683ec0,
1410     } },
1411     { { /* 344 */
1412     0x00000000, 0x00000000, 0x00000000, 0xffe00000,
1413     0xfddbb7ff, 0x000000f7, 0xc72e4000, 0x00000180,
1414     } },
1415     { { /* 345 */
1416     0x00012000, 0x00004000, 0x00300000, 0xb4f7ffa8,
1417     0x03ffadf3, 0x00000120, 0x00000000, 0x00000000,
1418     } },
1419     { { /* 346 */
1420     0x00000000, 0x00000000, 0x00000000, 0xfffbf000,
1421     0xfdcf9df7, 0x15c301bf, 0x810a1827, 0x0a00a842,
1422     } },
1423     { { /* 347 */
1424     0x80088108, 0x18048008, 0x0012a3be, 0x00000000,
1425     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1426     } },
1427     { { /* 348 */
1428     0x00000000, 0x00000000, 0x00000000, 0x90000000,
1429     0xdc3769e6, 0x3dff6bff, 0xf3f9fcf8, 0x00000004,
1430     } },
1431     { { /* 349 */
1432     0x80000000, 0xe7eebf6f, 0x5da2dffe, 0xc00b3fd8,
1433     0xa00c0984, 0x69100040, 0xb912e210, 0x5a0086a5,
1434     } },
1435     { { /* 350 */
1436     0x02896800, 0x6a809005, 0x00030010, 0x80000000,
1437     0x8e001ff9, 0x00000001, 0x00000000, 0x00000000,
1438     } },
1439     { { /* 351 */
1440     0x0000002f, 0x000003fe, 0x00000000, 0x00000000,
1441     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1442     } },
1443     { { /* 352 */
1444     0xc373ff8b, 0x1b0f6840, 0xf34ce9ac, 0xc0080200,
1445     0xca3e795c, 0x06487976, 0xf7f02fdf, 0xa8ff033a,
1446     } },
1447     { { /* 353 */
1448     0x233fef37, 0xfd59b004, 0xfffff3ca, 0xfff9de9f,
1449     0x7df7abff, 0x8eecc000, 0xffdbeebf, 0x45fad003,
1450     } },
1451     { { /* 354 */
1452     0xdffefae1, 0x10abbfef, 0xfcaaffeb, 0x24fdef3f,
1453     0x7f7678ad, 0xedfff00c, 0x2cfacff6, 0xeb6bf7f9,
1454     } },
1455     { { /* 355 */
1456     0x95bf1ffd, 0xbfbf6677, 0xfeb43bfb, 0x11e27bae,
1457     0x41bea681, 0x72c31435, 0x71917d70, 0x276b0003,
1458     } },
1459     { { /* 356 */
1460     0x70cf57cb, 0x0def4732, 0xfc747eda, 0xbdb4fe06,
1461     0x8bca3f9f, 0x58007e49, 0xebec228f, 0xddbb8a5c,
1462     } },
1463     { { /* 357 */
1464     0xb6e7ef60, 0xf293a40f, 0x549e37bb, 0x9bafd04b,
1465     0xf7d4c414, 0x0a1430b0, 0x88d02f08, 0x192fff7e,
1466     } },
1467     { { /* 358 */
1468     0xfb07ffda, 0x7beb7ff1, 0x0010c5ef, 0xfdff99ff,
1469     0x056779d7, 0xfdcbffe7, 0x4040c3ff, 0xbd8e6ff7,
1470     } },
1471     { { /* 359 */
1472     0x0497dffa, 0x5bfff4c0, 0xd0e7ed7b, 0xf8e0047e,
1473     0xb73eff9f, 0x882e7dfe, 0xbe7ffffd, 0xf6c483fe,
1474     } },
1475     { { /* 360 */
1476     0xb8fdf357, 0xef7dd680, 0x47885767, 0xc3dfff7d,
1477     0x37a9f0ff, 0x70fc7de0, 0xec9a3f6f, 0x86814cb3,
1478     } },
1479     { { /* 361 */
1480     0xdd5c3f9e, 0x4819f70d, 0x0007fea3, 0x38ffaf56,
1481     0xefb8980d, 0xb760403d, 0x9035d8ce, 0x3fff72bf,
1482     } },
1483     { { /* 362 */
1484     0x7a117ff7, 0xabfff7bb, 0x6fbeff00, 0xfe72a93c,
1485     0xf11bcfef, 0xf40adb6b, 0xef7ec3e6, 0xf6109b9c,
1486     } },
1487     { { /* 363 */
1488     0x16f4f048, 0x5182feb5, 0x15bbc7b1, 0xfbdf6e87,
1489     0x63cde43f, 0x7e7ec1ff, 0x7d5ffdeb, 0xfcfe777b,
1490     } },
1491     { { /* 364 */
1492     0xdbea960b, 0x53e86229, 0xfdef37df, 0xbd8136f5,
1493     0xfcbddc18, 0xffffd2e4, 0xffe03fd7, 0xabf87f6f,
1494     } },
1495     { { /* 365 */
1496     0x6ed99bae, 0xf115f5fb, 0xbdfb79a9, 0xadaf5a3c,
1497     0x1facdbba, 0x837971fc, 0xc35f7cf7, 0x0567dfff,
1498     } },
1499     { { /* 366 */
1500     0x8467ff9a, 0xdf8b1534, 0x3373f9f3, 0x5e1af7bd,
1501     0xa03fbf40, 0x01ebffff, 0xcfdddfc0, 0xabd37500,
1502     } },
1503     { { /* 367 */
1504     0xeed6f8c3, 0xb7ff43fd, 0x42275eaf, 0xf6869bac,
1505     0xf6bc27d7, 0x35b7f787, 0xe176aacd, 0xe29f49e7,
1506     } },
1507     { { /* 368 */
1508     0xaff2545c, 0x61d82b3f, 0xbbb8fc3b, 0x7b7dffcf,
1509     0x1ce0bf95, 0x43ff7dfd, 0xfffe5ff6, 0xc4ced3ef,
1510     } },
1511     { { /* 369 */
1512     0xadbc8db6, 0x11eb63dc, 0x23d0df59, 0xf3dbbeb4,
1513     0xdbc71fe7, 0xfae4ff63, 0x63f7b22b, 0xadbaed3b,
1514     } },
1515     { { /* 370 */
1516     0x7efffe01, 0x02bcfff7, 0xef3932ff, 0x8005fffc,
1517     0xbcf577fb, 0xfff7010d, 0xbf3afffb, 0xdfff0057,
1518     } },
1519     { { /* 371 */
1520     0xbd7def7b, 0xc8d4db88, 0xed7cfff3, 0x56ff5dee,
1521     0xac5f7e0d, 0xd57fff96, 0xc1403fee, 0xffe76ff9,
1522     } },
1523     { { /* 372 */
1524     0x8e77779b, 0xe45d6ebf, 0x5f1f6fcf, 0xfedfe07f,
1525     0x01fed7db, 0xfb7bff00, 0x1fdfffd4, 0xfffff800,
1526     } },
1527     { { /* 373 */
1528     0x007bfb8f, 0x7f5cbf00, 0x07f3ffff, 0x3de7eba0,
1529     0xfbd7f7bf, 0x6003ffbf, 0xbfedfffd, 0x027fefbb,
1530     } },
1531     { { /* 374 */
1532     0xddfdfe40, 0xe2f9fdff, 0xfb1f680b, 0xaffdfbe3,
1533     0xf7ed9fa4, 0xf80f7a7d, 0x0fd5eebe, 0xfd9fbb5d,
1534     } },
1535     { { /* 375 */
1536     0x3bf9f2db, 0xebccfe7f, 0x73fa876a, 0x9ffc95fc,
1537     0xfaf7109f, 0xbbcdddb7, 0xeccdf87e, 0x3c3ff366,
1538     } },
1539     { { /* 376 */
1540     0xb03ffffd, 0x067ee9f7, 0xfe0696ae, 0x5fd7d576,
1541     0xa3f33fd1, 0x6fb7cf07, 0x7f449fd1, 0xd3dd7b59,
1542     } },
1543     { { /* 377 */
1544     0xa9bdaf3b, 0xff3a7dcf, 0xf6ebfbe0, 0xffffb401,
1545     0xb7bf7afa, 0x0ffdc000, 0xff1fff7f, 0x95fffefc,
1546     } },
1547     { { /* 378 */
1548     0xb5dc0000, 0x3f3eef63, 0x001bfb7f, 0xfbf6e800,
1549     0xb8df9eef, 0x003fff9f, 0xf5ff7bd0, 0x3fffdfdb,
1550     } },
1551     { { /* 379 */
1552     0x00bffdf0, 0xbbbd8420, 0xffdedf37, 0x0ff3ff6d,
1553     0x5efb604c, 0xfafbfffb, 0x0219fe5e, 0xf9de79f4,
1554     } },
1555     { { /* 380 */
1556     0xebfaa7f7, 0xff3401eb, 0xef73ebd3, 0xc040afd7,
1557     0xdcff72bb, 0x2fd8f17f, 0xfe0bb8ec, 0x1f0bdda3,
1558     } },
1559     { { /* 381 */
1560     0x47cf8f1d, 0xffdeb12b, 0xda737fee, 0xcbc424ff,
1561     0xcbf2f75d, 0xb4edecfd, 0x4dddbff9, 0xfb8d99dd,
1562     } },
1563     { { /* 382 */
1564     0xaf7bbb7f, 0xc959ddfb, 0xfab5fc4f, 0x6d5fafe3,
1565     0x3f7dffff, 0xffdb7800, 0x7effb6ff, 0x022ffbaf,
1566     } },
1567     { { /* 383 */
1568     0xefc7ff9b, 0xffffffa5, 0xc7000007, 0xfff1f7ff,
1569     0x01bf7ffd, 0xfdbcdc00, 0xffffbff5, 0x3effff7f,
1570     } },
1571     { { /* 384 */
1572     0xbe000029, 0xff7ff9ff, 0xfd7e6efb, 0x039ecbff,
1573     0xfbdde300, 0xf6dfccff, 0x117fffff, 0xfbf6f800,
1574     } },
1575     { { /* 385 */
1576     0xd73ce7ef, 0xdfeffeef, 0xedbfc00b, 0xfdcdfedf,
1577     0x40fd7bf5, 0xb75fffff, 0xf930ffdf, 0xdc97fbdf,
1578     } },
1579     { { /* 386 */
1580     0xbff2fef3, 0xdfbf8fdf, 0xede6177f, 0x35530f7f,
1581     0x877e447c, 0x45bbfa12, 0x779eede0, 0xbfd98017,
1582     } },
1583     { { /* 387 */
1584     0xde897e55, 0x0447c16f, 0xf75d7ade, 0x290557ff,
1585     0xfe9586f7, 0xf32f97b3, 0x9f75cfff, 0xfb1771f7,
1586     } },
1587     { { /* 388 */
1588     0xee1934ee, 0xef6137cc, 0xef4c9fd6, 0xfbddd68f,
1589     0x6def7b73, 0xa431d7fe, 0x97d75e7f, 0xffd80f5b,
1590     } },
1591     { { /* 389 */
1592     0x7bce9d83, 0xdcff22ec, 0xef87763d, 0xfdeddfe7,
1593     0xa0fc4fff, 0xdbfc3b77, 0x7fdc3ded, 0xf5706fa9,
1594     } },
1595     { { /* 390 */
1596     0x2c403ffb, 0x847fff7f, 0xdeb7ec57, 0xf22fe69c,
1597     0xd5b50feb, 0xede7afeb, 0xfff08c2f, 0xe8f0537f,
1598     } },
1599     { { /* 391 */
1600     0xb5ffb99d, 0xe78fff66, 0xbe10d981, 0xe3c19c7c,
1601     0x27339cd1, 0xff6d0cbc, 0xefb7fcb7, 0xffffa0df,
1602     } },
1603     { { /* 392 */
1604     0xfe7bbf0b, 0x353fa3ff, 0x97cd13cc, 0xfb277637,
1605     0x7e6ccfd6, 0xed31ec50, 0xfc1c677c, 0x5fbff6fa,
1606     } },
1607     { { /* 393 */
1608     0xae2f0fba, 0x7ffea3ad, 0xde74fcf0, 0xf200ffef,
1609     0xfea2fbbf, 0xbcff3daf, 0x5fb9f694, 0x3f8ff3ad,
1610     } },
1611     { { /* 394 */
1612     0xa01ff26c, 0x01bfffef, 0x70057728, 0xda03ff35,
1613     0xc7fad2f9, 0x5c1d3fbf, 0xec33ff3a, 0xfe9cb7af,
1614     } },
1615     { { /* 395 */
1616     0x7a9f5236, 0xe722bffa, 0xfcff9ff7, 0xb61d2fbb,
1617     0x1dfded06, 0xefdf7dd7, 0xf166eb23, 0x0dc07ed9,
1618     } },
1619     { { /* 396 */
1620     0xdfbf3d3d, 0xba83c945, 0x9dd07dd1, 0xcf737b87,
1621     0xc3f59ff3, 0xc5fedf0d, 0x83020cb3, 0xaec0e879,
1622     } },
1623     { { /* 397 */
1624     0x6f0fc773, 0x093ffd7d, 0x0157fff1, 0x01ff62fb,
1625     0x3bf3fdb4, 0x43b2b013, 0xff305ed3, 0xeb9f0fff,
1626     } },
1627     { { /* 398 */
1628     0xf203feef, 0xfb893fef, 0x9e9937a9, 0xa72cdef9,
1629     0xc1f63733, 0xfe3e812e, 0xf2f75d20, 0x69d7d585,
1630     } },
1631     { { /* 399 */
1632     0xffffffff, 0xff6fdb07, 0xd97fc4ff, 0xbe0fefce,
1633     0xf05ef17b, 0xffb7f6cf, 0xef845ef7, 0x0edfd7cb,
1634     } },
1635     { { /* 400 */
1636     0xfcffff08, 0xffffee3f, 0xd7ff13ff, 0x7ffdaf0f,
1637     0x1ffabdc7, 0x00000000, 0x00000000, 0x00000000,
1638     } },
1639     { { /* 401 */
1640     0x00000000, 0xe7400000, 0xf933bd38, 0xfeed7feb,
1641     0x7c767fe8, 0xffefb3f7, 0xd8b7feaf, 0xfbbfff6f,
1642     } },
1643     { { /* 402 */
1644     0xdbf7f8fb, 0xe2f91752, 0x754785c8, 0xe3ef9090,
1645     0x3f6d9ef4, 0x0536ee2e, 0x7ff3f7bc, 0x7f3fa07b,
1646     } },
1647     { { /* 403 */
1648     0xeb600567, 0x6601babe, 0x583ffcd8, 0x87dfcaf7,
1649     0xffa0bfcd, 0xfebf5bcd, 0xefa7b6fd, 0xdf9c77ef,
1650     } },
1651     { { /* 404 */
1652     0xf8773fb7, 0xb7fc9d27, 0xdfefcab5, 0xf1b6fb5a,
1653     0xef1fec39, 0x7ffbfbbf, 0xdafe000d, 0x4e7fbdfb,
1654     } },
1655     { { /* 405 */
1656     0x5ac033ff, 0x9ffebff5, 0x005fffbf, 0xfdf80000,
1657     0x6ffdffca, 0xa001cffd, 0xfbf2dfff, 0xff7fdfbf,
1658     } },
1659     { { /* 406 */
1660     0x080ffeda, 0xbfffba08, 0xeed77afd, 0x67f9fbeb,
1661     0xff93e044, 0x9f57df97, 0x08dffef7, 0xfedfdf80,
1662     } },
1663     { { /* 407 */
1664     0xf7feffc5, 0x6803fffb, 0x6bfa67fb, 0x5fe27fff,
1665     0xff73ffff, 0xe7fb87df, 0xf7a7ebfd, 0xefc7bf7e,
1666     } },
1667     { { /* 408 */
1668     0xdf821ef3, 0xdf7e76ff, 0xda7d79c9, 0x1e9befbe,
1669     0x77fb7ce0, 0xfffb87be, 0xffdb1bff, 0x4fe03f5c,
1670     } },
1671     { { /* 409 */
1672     0x5f0e7fff, 0xddbf77ff, 0xfffff04f, 0x0ff8ffff,
1673     0xfddfa3be, 0xfffdfc1c, 0xfb9e1f7d, 0xdedcbdff,
1674     } },
1675     { { /* 410 */
1676     0xbafb3f6f, 0xfbefdf7f, 0x2eec7d1b, 0xf2f7af8e,
1677     0xcfee7b0f, 0x77c61d96, 0xfff57e07, 0x7fdfd982,
1678     } },
1679     { { /* 411 */
1680     0xc7ff5ee6, 0x79effeee, 0xffcf9a56, 0xde5efe5f,
1681     0xf9e8896e, 0xe6c4f45e, 0xbe7c0001, 0xdddf3b7f,
1682     } },
1683     { { /* 412 */
1684     0xe9efd59d, 0xde5334ac, 0x4bf7f573, 0x9eff7b4f,
1685     0x476eb8fe, 0xff450dfb, 0xfbfeabfd, 0xddffe9d7,
1686     } },
1687     { { /* 413 */
1688     0x7fffedf7, 0x7eebddfd, 0xb7ffcfe7, 0xef91bde9,
1689     0xd77c5d75, 0x00000000, 0x00000000, 0x00000000,
1690     } },
1691     { { /* 414 */
1692     0x00000000, 0xfa800000, 0xb4f1ffee, 0x2fefbf76,
1693     0x77bfb677, 0xfffd9fbf, 0xf6ae95bf, 0x7f3b75ff,
1694     } },
1695     { { /* 415 */
1696     0x0af9a7f5, 0x00000000, 0x00000000, 0x2bddfbd0,
1697     0x9a7ff633, 0xd6fcfdab, 0xbfebf9e6, 0xf41fdfdf,
1698     } },
1699     { { /* 416 */
1700     0xffffa6fd, 0xf37b4aff, 0xfef97fb7, 0x1d5cb6ff,
1701     0xe5ff7ff6, 0x24041f7b, 0xf99ebe05, 0xdff2dbe3,
1702     } },
1703     { { /* 417 */
1704     0xfdff6fef, 0xcbfcd679, 0xefffebfd, 0x0000001f,
1705     0x98000000, 0x8017e148, 0x00fe6a74, 0xfdf16d7f,
1706     } },
1707     { { /* 418 */
1708     0xfef3b87f, 0xf176e01f, 0x7b3fee96, 0xfffdeb8d,
1709     0xcbb3adff, 0xe17f84ef, 0xbff04daa, 0xfe3fbf3f,
1710     } },
1711     { { /* 419 */
1712     0xffd7ebff, 0xcf7fffdf, 0x85edfffb, 0x07bcd73f,
1713     0xfe0faeff, 0x76bffdaf, 0x37bbfaef, 0xa3ba7fdc,
1714     } },
1715     { { /* 420 */
1716     0x56f7b6ff, 0xe7df60f8, 0x4cdfff61, 0xff45b0fb,
1717     0x3ffa7ded, 0x18fc1fff, 0xe3afffff, 0xdf83c7d3,
1718     } },
1719     { { /* 421 */
1720     0xef7dfb57, 0x1378efff, 0x5ff7fec0, 0x5ee334bb,
1721     0xeff6f70d, 0x00bfd7fe, 0xf7f7f59d, 0xffe051de,
1722     } },
1723     { { /* 422 */
1724     0x037ffec9, 0xbfef5f01, 0x60a79ff1, 0xf1ffef1d,
1725     0x0000000f, 0x00000000, 0x00000000, 0x00000000,
1726     } },
1727     { { /* 423 */
1728     0x00000000, 0x00000000, 0x00000000, 0x3c800000,
1729     0xd91ffb4d, 0xfee37b3a, 0xdc7f3fe9, 0x0000003f,
1730     } },
1731     { { /* 424 */
1732     0x50000000, 0xbe07f51f, 0xf91bfc1d, 0x71ffbc1e,
1733     0x5bbe6ff9, 0x9b1b5796, 0xfffc7fff, 0xafe7872e,
1734     } },
1735     { { /* 425 */
1736     0xf34febf5, 0xe725dffd, 0x5d440bdc, 0xfddd5747,
1737     0x7790ed3f, 0x8ac87d7f, 0xf3f9fafa, 0xef4b202a,
1738     } },
1739     { { /* 426 */
1740     0x79cff5ff, 0x0ba5abd3, 0xfb8ff77a, 0x001f8ebd,
1741     0x00000000, 0xfd4ef300, 0x88001a57, 0x7654aeac,
1742     } },
1743     { { /* 427 */
1744     0xcdff17ad, 0xf42fffb2, 0xdbff5baa, 0x00000002,
1745     0x73c00000, 0x2e3ff9ea, 0xbbfffa8e, 0xffd376bc,
1746     } },
1747     { { /* 428 */
1748     0x7e72eefe, 0xe7f77ebd, 0xcefdf77f, 0x00000ff5,
1749     0x00000000, 0xdb9ba900, 0x917fa4c7, 0x7ecef8ca,
1750     } },
1751     { { /* 429 */
1752     0xc7e77d7a, 0xdcaecbbd, 0x8f76fd7e, 0x7cf391d3,
1753     0x4c2f01e5, 0xa360ed77, 0x5ef807db, 0x21811df7,
1754     } },
1755     { { /* 430 */
1756     0x309c6be0, 0xfade3b3a, 0xc3f57f53, 0x07ba61cd,
1757     0x00000000, 0x00000000, 0x00000000, 0xbefe26e0,
1758     } },
1759     { { /* 431 */
1760     0xebb503f9, 0xe9cbe36d, 0xbfde9c2f, 0xabbf9f83,
1761     0xffd51ff7, 0xdffeb7df, 0xffeffdae, 0xeffdfb7e,
1762     } },
1763     { { /* 432 */
1764     0x6ebfaaff, 0x00000000, 0x00000000, 0xb6200000,
1765     0xbe9e7fcd, 0x58f162b3, 0xfd7bf10d, 0xbefde9f1,
1766     } },
1767     { { /* 433 */
1768     0x5f6dc6c3, 0x69ffff3d, 0xfbf4ffcf, 0x4ff7dcfb,
1769     0x11372000, 0x00000015, 0x00000000, 0x00000000,
1770     } },
1771     { { /* 434 */
1772     0x00003000, 0x00000000, 0x00000000, 0x00000000,
1773     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1774     } },
1775     { { /* 435 */
1776     0x00000000, 0x00000000, 0x00000000, 0x00000000,
1777     0x00000000, 0xffffffff, 0xffffffff, 0x001fffff,
1778     } },
1779 };
1780
1781 #define L(n) ((FcCharLeaf *) &leaves[n])
1782
1783 static const FcCharLeaf *leaves_ab[2] = {
1784     L(  0), L(  1),
1785 };
1786
1787 static const FcChar16 numbers_ab[2] = {
1788     0x0000, 0x0004,
1789 };
1790
1791 static const FcCharLeaf *leaves_ar[1] = {
1792     L(  2),
1793 };
1794
1795 static const FcChar16 numbers_ar[1] = {
1796     0x0006,
1797 };
1798
1799 static const FcCharLeaf *leaves_az[4] = {
1800     L(  3), L(  4), L(  5), L(  6),
1801 };
1802
1803 static const FcChar16 numbers_az[4] = {
1804     0x0000, 0x0001, 0x0002, 0x0004,
1805 };
1806
1807 static const FcCharLeaf *leaves_ba[2] = {
1808     L(  0), L(  7),
1809 };
1810
1811 static const FcChar16 numbers_ba[2] = {
1812     0x0000, 0x0004,
1813 };
1814
1815 static const FcCharLeaf *leaves_be[2] = {
1816     L(  0), L(  8),
1817 };
1818
1819 static const FcChar16 numbers_be[2] = {
1820     0x0000, 0x0004,
1821 };
1822
1823 static const FcCharLeaf *leaves_bg[1] = {
1824     L(  9),
1825 };
1826
1827 static const FcChar16 numbers_bg[1] = {
1828     0x0004,
1829 };
1830
1831 static const FcCharLeaf *leaves_bn[1] = {
1832     L( 10),
1833 };
1834
1835 static const FcChar16 numbers_bn[1] = {
1836     0x0009,
1837 };
1838
1839 static const FcCharLeaf *leaves_bo[1] = {
1840     L( 11),
1841 };
1842
1843 static const FcChar16 numbers_bo[1] = {
1844     0x000f,
1845 };
1846
1847 static const FcCharLeaf *leaves_br[1] = {
1848     L( 12),
1849 };
1850
1851 static const FcChar16 numbers_br[1] = {
1852     0x0000,
1853 };
1854
1855 static const FcCharLeaf *leaves_ca[2] = {
1856     L( 13), L( 14),
1857 };
1858
1859 static const FcChar16 numbers_ca[2] = {
1860     0x0000, 0x0001,
1861 };
1862
1863 static const FcCharLeaf *leaves_co[1] = {
1864     L( 15),
1865 };
1866
1867 static const FcChar16 numbers_co[1] = {
1868     0x0000,
1869 };
1870
1871 static const FcCharLeaf *leaves_cs[2] = {
1872     L( 16), L( 17),
1873 };
1874
1875 static const FcChar16 numbers_cs[2] = {
1876     0x0000, 0x0001,
1877 };
1878
1879 static const FcCharLeaf *leaves_da[2] = {
1880     L( 18), L( 19),
1881 };
1882
1883 static const FcChar16 numbers_da[2] = {
1884     0x0000, 0x0001,
1885 };
1886
1887 static const FcCharLeaf *leaves_de[1] = {
1888     L( 20),
1889 };
1890
1891 static const FcChar16 numbers_de[1] = {
1892     0x0000,
1893 };
1894
1895 static const FcCharLeaf *leaves_el[1] = {
1896     L( 21),
1897 };
1898
1899 static const FcChar16 numbers_el[1] = {
1900     0x0003,
1901 };
1902
1903 static const FcCharLeaf *leaves_en[1] = {
1904     L( 22),
1905 };
1906
1907 static const FcChar16 numbers_en[1] = {
1908     0x0000,
1909 };
1910
1911 static const FcCharLeaf *leaves_eo[2] = {
1912     L( 23), L( 24),
1913 };
1914
1915 static const FcChar16 numbers_eo[2] = {
1916     0x0000, 0x0001,
1917 };
1918
1919 static const FcCharLeaf *leaves_es[1] = {
1920     L( 25),
1921 };
1922
1923 static const FcChar16 numbers_es[1] = {
1924     0x0000,
1925 };
1926
1927 static const FcCharLeaf *leaves_et[2] = {
1928     L( 26), L( 27),
1929 };
1930
1931 static const FcChar16 numbers_et[2] = {
1932     0x0000, 0x0001,
1933 };
1934
1935 static const FcCharLeaf *leaves_eu[2] = {
1936     L( 28), L( 29),
1937 };
1938
1939 static const FcChar16 numbers_eu[2] = {
1940     0x0000, 0x0001,
1941 };
1942
1943 static const FcCharLeaf *leaves_fi[2] = {
1944     L( 30), L( 27),
1945 };
1946
1947 static const FcChar16 numbers_fi[2] = {
1948     0x0000, 0x0001,
1949 };
1950
1951 static const FcCharLeaf *leaves_fo[1] = {
1952     L( 31),
1953 };
1954
1955 static const FcChar16 numbers_fo[1] = {
1956     0x0000,
1957 };
1958
1959 static const FcCharLeaf *leaves_ga[5] = {
1960     L( 32), L( 33), L( 34), L( 35), L( 36),
1961 };
1962
1963 static const FcChar16 numbers_ga[5] = {
1964     0x0000, 0x0001, 0x0002, 0x001e, 0x0020,
1965 };
1966
1967 static const FcCharLeaf *leaves_gd[1] = {
1968     L( 37),
1969 };
1970
1971 static const FcChar16 numbers_gd[1] = {
1972     0x0000,
1973 };
1974
1975 static const FcCharLeaf *leaves_gl[1] = {
1976     L( 38),
1977 };
1978
1979 static const FcChar16 numbers_gl[1] = {
1980     0x0000,
1981 };
1982
1983 static const FcCharLeaf *leaves_gu[1] = {
1984     L( 39),
1985 };
1986
1987 static const FcChar16 numbers_gu[1] = {
1988     0x000a,
1989 };
1990
1991 static const FcCharLeaf *leaves_he[1] = {
1992     L( 40),
1993 };
1994
1995 static const FcChar16 numbers_he[1] = {
1996     0x0005,
1997 };
1998
1999 static const FcCharLeaf *leaves_hr[3] = {
2000     L( 41), L( 42), L( 43),
2001 };
2002
2003 static const FcChar16 numbers_hr[3] = {
2004     0x0000, 0x0001, 0x0002,
2005 };
2006
2007 static const FcCharLeaf *leaves_hu[2] = {
2008     L( 44), L( 45),
2009 };
2010
2011 static const FcChar16 numbers_hu[2] = {
2012     0x0000, 0x0001,
2013 };
2014
2015 static const FcCharLeaf *leaves_hy[1] = {
2016     L( 46),
2017 };
2018
2019 static const FcChar16 numbers_hy[1] = {
2020     0x0005,
2021 };
2022
2023 static const FcCharLeaf *leaves_is[1] = {
2024     L( 47),
2025 };
2026
2027 static const FcChar16 numbers_is[1] = {
2028     0x0000,
2029 };
2030
2031 static const FcCharLeaf *leaves_it[1] = {
2032     L( 48),
2033 };
2034
2035 static const FcChar16 numbers_it[1] = {
2036     0x0000,
2037 };
2038
2039 static const FcCharLeaf *leaves_ja[84] = {
2040     L( 49), L( 50), L( 51), L( 52), L( 53), L( 54), L( 55), L( 56),
2041     L( 57), L( 58), L( 59), L( 60), L( 61), L( 62), L( 63), L( 64),
2042     L( 65), L( 66), L( 67), L( 68), L( 69), L( 70), L( 71), L( 72),
2043     L( 73), L( 74), L( 75), L( 76), L( 77), L( 78), L( 79), L( 80),
2044     L( 81), L( 82), L( 83), L( 84), L( 85), L( 86), L( 87), L( 88),
2045     L( 89), L( 90), L( 91), L( 92), L( 93), L( 94), L( 95), L( 96),
2046     L( 97), L( 98), L( 99), L(100), L(101), L(102), L(103), L(104),
2047     L(105), L(106), L(107), L(108), L(109), L(110), L(111), L(112),
2048     L(113), L(114), L(115), L(116), L(117), L(118), L(119), L(120),
2049     L(121), L(122), L(123), L(124), L(125), L(126), L(127), L(128),
2050     L(129), L(130), L(131), L(132),
2051 };
2052
2053 static const FcChar16 numbers_ja[84] = {
2054     0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
2055     0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
2056     0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
2057     0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
2058     0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
2059     0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
2060     0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
2061     0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
2062     0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
2063     0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
2064     0x009d, 0x009e, 0x009f, 0x00ff,
2065 };
2066
2067 static const FcCharLeaf *leaves_ka[2] = {
2068     L(133), L(134),
2069 };
2070
2071 static const FcChar16 numbers_ka[2] = {
2072     0x0005, 0x0010,
2073 };
2074
2075 static const FcCharLeaf *leaves_kk[2] = {
2076     L(  0), L(135),
2077 };
2078
2079 static const FcChar16 numbers_kk[2] = {
2080     0x0000, 0x0004,
2081 };
2082
2083 static const FcCharLeaf *leaves_kl[2] = {
2084     L(136), L(137),
2085 };
2086
2087 static const FcChar16 numbers_kl[2] = {
2088     0x0000, 0x0001,
2089 };
2090
2091 static const FcCharLeaf *leaves_km[1] = {
2092     L(138),
2093 };
2094
2095 static const FcChar16 numbers_km[1] = {
2096     0x0017,
2097 };
2098
2099 static const FcCharLeaf *leaves_kn[1] = {
2100     L(139),
2101 };
2102
2103 static const FcChar16 numbers_kn[1] = {
2104     0x000c,
2105 };
2106
2107 static const FcCharLeaf *leaves_ko[132] = {
2108     L(140), L(141), L(142), L(143), L(144), L(145), L(146), L(147),
2109     L(148), L(149), L(150), L(151), L(152), L(153), L(154), L(155),
2110     L(156), L(157), L(158), L(159), L(160), L(161), L(162), L(163),
2111     L(164), L(165), L(166), L(167), L(168), L(169), L(170), L(171),
2112     L(172), L(173), L(174), L(175), L(176), L(177), L(178), L(179),
2113     L(180), L(181), L(182), L(183), L(184), L(185), L(186), L(187),
2114     L(188), L(189), L(190), L(191), L(192), L(193), L(194), L(195),
2115     L(196), L(197), L(198), L(199), L(200), L(201), L(202), L(203),
2116     L(204), L(205), L(206), L(207), L(208), L(209), L(210), L(211),
2117     L(212), L(213), L(214), L(215), L(216), L(217), L(218), L(219),
2118     L(220), L(221), L(222), L(223), L(224), L(225), L(225), L(225),
2119     L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
2120     L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
2121     L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
2122     L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
2123     L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
2124     L(226), L(225), L(227), L(228),
2125 };
2126
2127 static const FcChar16 numbers_ko[132] = {
2128     0x0030, 0x0031, 0x0032, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
2129     0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
2130     0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062,
2131     0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a,
2132     0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072,
2133     0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a,
2134     0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082,
2135     0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a,
2136     0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
2137     0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a,
2138     0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00ac, 0x00ad, 0x00ae,
2139     0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6,
2140     0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be,
2141     0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6,
2142     0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce,
2143     0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6,
2144     0x00d7, 0x00f9, 0x00fa, 0x00ff,
2145 };
2146
2147 static const FcCharLeaf *leaves_la[2] = {
2148     L( 23), L(229),
2149 };
2150
2151 static const FcChar16 numbers_la[2] = {
2152     0x0000, 0x0001,
2153 };
2154
2155 static const FcCharLeaf *leaves_lo[1] = {
2156     L(230),
2157 };
2158
2159 static const FcChar16 numbers_lo[1] = {
2160     0x000e,
2161 };
2162
2163 static const FcCharLeaf *leaves_lt[2] = {
2164     L( 23), L(231),
2165 };
2166
2167 static const FcChar16 numbers_lt[2] = {
2168     0x0000, 0x0001,
2169 };
2170
2171 static const FcCharLeaf *leaves_lv[2] = {
2172     L( 23), L(232),
2173 };
2174
2175 static const FcChar16 numbers_lv[2] = {
2176     0x0000, 0x0001,
2177 };
2178
2179 static const FcCharLeaf *leaves_mk[1] = {
2180     L(233),
2181 };
2182
2183 static const FcChar16 numbers_mk[1] = {
2184     0x0004,
2185 };
2186
2187 static const FcCharLeaf *leaves_ml[1] = {
2188     L(234),
2189 };
2190
2191 static const FcChar16 numbers_ml[1] = {
2192     0x000d,
2193 };
2194
2195 static const FcCharLeaf *leaves_mn[1] = {
2196     L(235),
2197 };
2198
2199 static const FcChar16 numbers_mn[1] = {
2200     0x0018,
2201 };
2202
2203 static const FcCharLeaf *leaves_mo[4] = {
2204     L(236), L(237), L(238), L(239),
2205 };
2206
2207 static const FcChar16 numbers_mo[4] = {
2208     0x0000, 0x0001, 0x0002, 0x0004,
2209 };
2210
2211 static const FcCharLeaf *leaves_mt[3] = {
2212     L(240), L(241), L(242),
2213 };
2214
2215 static const FcChar16 numbers_mt[3] = {
2216     0x0000, 0x0001, 0x0002,
2217 };
2218
2219 static const FcCharLeaf *leaves_nl[1] = {
2220     L(243),
2221 };
2222
2223 static const FcChar16 numbers_nl[1] = {
2224     0x0000,
2225 };
2226
2227 static const FcCharLeaf *leaves_no[1] = {
2228     L(244),
2229 };
2230
2231 static const FcChar16 numbers_no[1] = {
2232     0x0000,
2233 };
2234
2235 static const FcCharLeaf *leaves_oc[1] = {
2236     L(245),
2237 };
2238
2239 static const FcChar16 numbers_oc[1] = {
2240     0x0000,
2241 };
2242
2243 static const FcCharLeaf *leaves_or[1] = {
2244     L(246),
2245 };
2246
2247 static const FcChar16 numbers_or[1] = {
2248     0x000b,
2249 };
2250
2251 static const FcCharLeaf *leaves_pl[2] = {
2252     L(247), L(248),
2253 };
2254
2255 static const FcChar16 numbers_pl[2] = {
2256     0x0000, 0x0001,
2257 };
2258
2259 static const FcCharLeaf *leaves_pt[1] = {
2260     L(249),
2261 };
2262
2263 static const FcChar16 numbers_pt[1] = {
2264     0x0000,
2265 };
2266
2267 static const FcCharLeaf *leaves_rm[1] = {
2268     L(250),
2269 };
2270
2271 static const FcChar16 numbers_rm[1] = {
2272     0x0000,
2273 };
2274
2275 static const FcCharLeaf *leaves_ro[3] = {
2276     L(236), L(237), L(238),
2277 };
2278
2279 static const FcChar16 numbers_ro[3] = {
2280     0x0000, 0x0001, 0x0002,
2281 };
2282
2283 static const FcCharLeaf *leaves_ru[2] = {
2284     L(  0), L(251),
2285 };
2286
2287 static const FcChar16 numbers_ru[2] = {
2288     0x0000, 0x0004,
2289 };
2290
2291 static const FcCharLeaf *leaves_sh[1] = {
2292     L(252),
2293 };
2294
2295 static const FcChar16 numbers_sh[1] = {
2296     0x0004,
2297 };
2298
2299 static const FcCharLeaf *leaves_si[1] = {
2300     L(253),
2301 };
2302
2303 static const FcChar16 numbers_si[1] = {
2304     0x000d,
2305 };
2306
2307 static const FcCharLeaf *leaves_sk[2] = {
2308     L(254), L(255),
2309 };
2310
2311 static const FcChar16 numbers_sk[2] = {
2312     0x0000, 0x0001,
2313 };
2314
2315 static const FcCharLeaf *leaves_sl[3] = {
2316     L( 23), L(256), L(257),
2317 };
2318
2319 static const FcChar16 numbers_sl[3] = {
2320     0x0000, 0x0001, 0x0004,
2321 };
2322
2323 static const FcCharLeaf *leaves_sq[1] = {
2324     L(258),
2325 };
2326
2327 static const FcChar16 numbers_sq[1] = {
2328     0x0000,
2329 };
2330
2331 static const FcCharLeaf *leaves_sv[1] = {
2332     L(259),
2333 };
2334
2335 static const FcChar16 numbers_sv[1] = {
2336     0x0000,
2337 };
2338
2339 static const FcCharLeaf *leaves_ta[1] = {
2340     L(260),
2341 };
2342
2343 static const FcChar16 numbers_ta[1] = {
2344     0x000b,
2345 };
2346
2347 static const FcCharLeaf *leaves_te[1] = {
2348     L(261),
2349 };
2350
2351 static const FcChar16 numbers_te[1] = {
2352     0x000c,
2353 };
2354
2355 static const FcCharLeaf *leaves_th[1] = {
2356     L(262),
2357 };
2358
2359 static const FcChar16 numbers_th[1] = {
2360     0x000e,
2361 };
2362
2363 static const FcCharLeaf *leaves_tl[1] = {
2364     L(263),
2365 };
2366
2367 static const FcChar16 numbers_tl[1] = {
2368     0x0017,
2369 };
2370
2371 static const FcCharLeaf *leaves_tr[2] = {
2372     L(264), L(265),
2373 };
2374
2375 static const FcChar16 numbers_tr[2] = {
2376     0x0000, 0x0001,
2377 };
2378
2379 static const FcCharLeaf *leaves_uk[2] = {
2380     L(  0), L(266),
2381 };
2382
2383 static const FcChar16 numbers_uk[2] = {
2384     0x0000, 0x0004,
2385 };
2386
2387 static const FcCharLeaf *leaves_vo[1] = {
2388     L(267),
2389 };
2390
2391 static const FcChar16 numbers_vo[1] = {
2392     0x0000,
2393 };
2394
2395 static const FcCharLeaf *leaves_wa[1] = {
2396     L(268),
2397 };
2398
2399 static const FcChar16 numbers_wa[1] = {
2400     0x0000,
2401 };
2402
2403 static const FcCharLeaf *leaves_zh_cn[82] = {
2404     L(269), L(270), L(271), L(272), L(273), L(274), L(275), L(276),
2405     L(277), L(278), L(279), L(280), L(281), L(282), L(283), L(284),
2406     L(285), L(286), L(287), L(288), L(289), L(290), L(291), L(292),
2407     L(293), L(294), L(295), L(296), L(297), L(298), L(299), L(300),
2408     L(301), L(302), L(303), L(304), L(305), L(306), L(307), L(308),
2409     L(309), L(310), L(311), L(312), L(313), L(314), L(315), L(316),
2410     L(317), L(318), L(319), L(320), L(321), L(322), L(323), L(324),
2411     L(325), L(326), L(327), L(328), L(329), L(330), L(331), L(332),
2412     L(333), L(334), L(335), L(336), L(337), L(338), L(339), L(340),
2413     L(341), L(342), L(343), L(344), L(345), L(346), L(347), L(348),
2414     L(349), L(350),
2415 };
2416
2417 static const FcChar16 numbers_zh_cn[82] = {
2418     0x0002, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
2419     0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
2420     0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
2421     0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
2422     0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
2423     0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
2424     0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
2425     0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
2426     0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
2427     0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
2428     0x009e, 0x009f,
2429 };
2430
2431 static const FcCharLeaf *leaves_zh_tw[84] = {
2432     L(351), L(352), L(353), L(354), L(355), L(356), L(357), L(358),
2433     L(359), L(360), L(361), L(362), L(363), L(364), L(365), L(366),
2434     L(367), L(368), L(369), L(370), L(371), L(372), L(373), L(374),
2435     L(375), L(376), L(377), L(378), L(379), L(380), L(381), L(382),
2436     L(383), L(384), L(385), L(386), L(387), L(388), L(389), L(390),
2437     L(391), L(392), L(393), L(394), L(395), L(396), L(397), L(398),
2438     L(399), L(400), L(401), L(402), L(403), L(404), L(405), L(406),
2439     L(407), L(408), L(409), L(410), L(411), L(412), L(413), L(414),
2440     L(415), L(416), L(417), L(418), L(419), L(420), L(421), L(422),
2441     L(423), L(424), L(425), L(426), L(427), L(428), L(429), L(430),
2442     L(431), L(432), L(433), L(434),
2443 };
2444
2445 static const FcChar16 numbers_zh_tw[84] = {
2446     0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
2447     0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
2448     0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
2449     0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
2450     0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
2451     0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
2452     0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
2453     0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
2454     0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
2455     0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
2456     0x009d, 0x009e, 0x009f, 0x00fa,
2457 };
2458
2459 static const FcCharLeaf *leaves_chr[1] = {
2460     L(435),
2461 };
2462
2463 static const FcChar16 numbers_chr[1] = {
2464     0x0013,
2465 };
2466
2467 #undef L
2468
2469 static const FcLangCharSet  fcLangCharSets[] = {
2470     { (FcChar8 *) "ab",
2471       { 1, FcTrue, 2, (FcCharLeaf **) leaves_ab, (FcChar16 *) numbers_ab } },
2472     { (FcChar8 *) "ar",
2473       { 1, FcTrue, 1, (FcCharLeaf **) leaves_ar, (FcChar16 *) numbers_ar } },
2474     { (FcChar8 *) "az",
2475       { 1, FcTrue, 4, (FcCharLeaf **) leaves_az, (FcChar16 *) numbers_az } },
2476     { (FcChar8 *) "ba",
2477       { 1, FcTrue, 2, (FcCharLeaf **) leaves_ba, (FcChar16 *) numbers_ba } },
2478     { (FcChar8 *) "be",
2479       { 1, FcTrue, 2, (FcCharLeaf **) leaves_be, (FcChar16 *) numbers_be } },
2480     { (FcChar8 *) "bg",
2481       { 1, FcTrue, 1, (FcCharLeaf **) leaves_bg, (FcChar16 *) numbers_bg } },
2482     { (FcChar8 *) "bn",
2483       { 1, FcTrue, 1, (FcCharLeaf **) leaves_bn, (FcChar16 *) numbers_bn } },
2484     { (FcChar8 *) "bo",
2485       { 1, FcTrue, 1, (FcCharLeaf **) leaves_bo, (FcChar16 *) numbers_bo } },
2486     { (FcChar8 *) "br",
2487       { 1, FcTrue, 1, (FcCharLeaf **) leaves_br, (FcChar16 *) numbers_br } },
2488     { (FcChar8 *) "ca",
2489       { 1, FcTrue, 2, (FcCharLeaf **) leaves_ca, (FcChar16 *) numbers_ca } },
2490     { (FcChar8 *) "co",
2491       { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
2492     { (FcChar8 *) "cs",
2493       { 1, FcTrue, 2, (FcCharLeaf **) leaves_cs, (FcChar16 *) numbers_cs } },
2494     { (FcChar8 *) "da",
2495       { 1, FcTrue, 2, (FcCharLeaf **) leaves_da, (FcChar16 *) numbers_da } },
2496     { (FcChar8 *) "de",
2497       { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
2498     { (FcChar8 *) "el",
2499       { 1, FcTrue, 1, (FcCharLeaf **) leaves_el, (FcChar16 *) numbers_el } },
2500     { (FcChar8 *) "en",
2501       { 1, FcTrue, 1, (FcCharLeaf **) leaves_en, (FcChar16 *) numbers_en } },
2502     { (FcChar8 *) "eo",
2503       { 1, FcTrue, 2, (FcCharLeaf **) leaves_eo, (FcChar16 *) numbers_eo } },
2504     { (FcChar8 *) "es",
2505       { 1, FcTrue, 1, (FcCharLeaf **) leaves_es, (FcChar16 *) numbers_es } },
2506     { (FcChar8 *) "et",
2507       { 1, FcTrue, 2, (FcCharLeaf **) leaves_et, (FcChar16 *) numbers_et } },
2508     { (FcChar8 *) "eu",
2509       { 1, FcTrue, 2, (FcCharLeaf **) leaves_eu, (FcChar16 *) numbers_eu } },
2510     { (FcChar8 *) "fi",
2511       { 1, FcTrue, 2, (FcCharLeaf **) leaves_fi, (FcChar16 *) numbers_fi } },
2512     { (FcChar8 *) "fo",
2513       { 1, FcTrue, 1, (FcCharLeaf **) leaves_fo, (FcChar16 *) numbers_fo } },
2514     { (FcChar8 *) "fr",
2515       { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
2516     { (FcChar8 *) "fy",
2517       { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
2518     { (FcChar8 *) "ga",
2519       { 1, FcTrue, 5, (FcCharLeaf **) leaves_ga, (FcChar16 *) numbers_ga } },
2520     { (FcChar8 *) "gd",
2521       { 1, FcTrue, 1, (FcCharLeaf **) leaves_gd, (FcChar16 *) numbers_gd } },
2522     { (FcChar8 *) "gl",
2523       { 1, FcTrue, 1, (FcCharLeaf **) leaves_gl, (FcChar16 *) numbers_gl } },
2524     { (FcChar8 *) "gu",
2525       { 1, FcTrue, 1, (FcCharLeaf **) leaves_gu, (FcChar16 *) numbers_gu } },
2526     { (FcChar8 *) "he",
2527       { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
2528     { (FcChar8 *) "hr",
2529       { 1, FcTrue, 3, (FcCharLeaf **) leaves_hr, (FcChar16 *) numbers_hr } },
2530     { (FcChar8 *) "hu",
2531       { 1, FcTrue, 2, (FcCharLeaf **) leaves_hu, (FcChar16 *) numbers_hu } },
2532     { (FcChar8 *) "hy",
2533       { 1, FcTrue, 1, (FcCharLeaf **) leaves_hy, (FcChar16 *) numbers_hy } },
2534     { (FcChar8 *) "is",
2535       { 1, FcTrue, 1, (FcCharLeaf **) leaves_is, (FcChar16 *) numbers_is } },
2536     { (FcChar8 *) "it",
2537       { 1, FcTrue, 1, (FcCharLeaf **) leaves_it, (FcChar16 *) numbers_it } },
2538     { (FcChar8 *) "ja",
2539       { 1, FcTrue, 84, (FcCharLeaf **) leaves_ja, (FcChar16 *) numbers_ja } },
2540     { (FcChar8 *) "ka",
2541       { 1, FcTrue, 2, (FcCharLeaf **) leaves_ka, (FcChar16 *) numbers_ka } },
2542     { (FcChar8 *) "kk",
2543       { 1, FcTrue, 2, (FcCharLeaf **) leaves_kk, (FcChar16 *) numbers_kk } },
2544     { (FcChar8 *) "kl",
2545       { 1, FcTrue, 2, (FcCharLeaf **) leaves_kl, (FcChar16 *) numbers_kl } },
2546     { (FcChar8 *) "km",
2547       { 1, FcTrue, 1, (FcCharLeaf **) leaves_km, (FcChar16 *) numbers_km } },
2548     { (FcChar8 *) "kn",
2549       { 1, FcTrue, 1, (FcCharLeaf **) leaves_kn, (FcChar16 *) numbers_kn } },
2550     { (FcChar8 *) "ko",
2551       { 1, FcTrue, 132, (FcCharLeaf **) leaves_ko, (FcChar16 *) numbers_ko } },
2552     { (FcChar8 *) "la",
2553       { 1, FcTrue, 2, (FcCharLeaf **) leaves_la, (FcChar16 *) numbers_la } },
2554     { (FcChar8 *) "lo",
2555       { 1, FcTrue, 1, (FcCharLeaf **) leaves_lo, (FcChar16 *) numbers_lo } },
2556     { (FcChar8 *) "lt",
2557       { 1, FcTrue, 2, (FcCharLeaf **) leaves_lt, (FcChar16 *) numbers_lt } },
2558     { (FcChar8 *) "lv",
2559       { 1, FcTrue, 2, (FcCharLeaf **) leaves_lv, (FcChar16 *) numbers_lv } },
2560     { (FcChar8 *) "mk",
2561       { 1, FcTrue, 1, (FcCharLeaf **) leaves_mk, (FcChar16 *) numbers_mk } },
2562     { (FcChar8 *) "ml",
2563       { 1, FcTrue, 1, (FcCharLeaf **) leaves_ml, (FcChar16 *) numbers_ml } },
2564     { (FcChar8 *) "mn",
2565       { 1, FcTrue, 1, (FcCharLeaf **) leaves_mn, (FcChar16 *) numbers_mn } },
2566     { (FcChar8 *) "mo",
2567       { 1, FcTrue, 4, (FcCharLeaf **) leaves_mo, (FcChar16 *) numbers_mo } },
2568     { (FcChar8 *) "mt",
2569       { 1, FcTrue, 3, (FcCharLeaf **) leaves_mt, (FcChar16 *) numbers_mt } },
2570     { (FcChar8 *) "nl",
2571       { 1, FcTrue, 1, (FcCharLeaf **) leaves_nl, (FcChar16 *) numbers_nl } },
2572     { (FcChar8 *) "no",
2573       { 1, FcTrue, 1, (FcCharLeaf **) leaves_no, (FcChar16 *) numbers_no } },
2574     { (FcChar8 *) "oc",
2575       { 1, FcTrue, 1, (FcCharLeaf **) leaves_oc, (FcChar16 *) numbers_oc } },
2576     { (FcChar8 *) "or",
2577       { 1, FcTrue, 1, (FcCharLeaf **) leaves_or, (FcChar16 *) numbers_or } },
2578     { (FcChar8 *) "pl",
2579       { 1, FcTrue, 2, (FcCharLeaf **) leaves_pl, (FcChar16 *) numbers_pl } },
2580     { (FcChar8 *) "pt",
2581       { 1, FcTrue, 1, (FcCharLeaf **) leaves_pt, (FcChar16 *) numbers_pt } },
2582     { (FcChar8 *) "rm",
2583       { 1, FcTrue, 1, (FcCharLeaf **) leaves_rm, (FcChar16 *) numbers_rm } },
2584     { (FcChar8 *) "ro",
2585       { 1, FcTrue, 3, (FcCharLeaf **) leaves_ro, (FcChar16 *) numbers_ro } },
2586     { (FcChar8 *) "ru",
2587       { 1, FcTrue, 2, (FcCharLeaf **) leaves_ru, (FcChar16 *) numbers_ru } },
2588     { (FcChar8 *) "sh",
2589       { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
2590     { (FcChar8 *) "si",
2591       { 1, FcTrue, 1, (FcCharLeaf **) leaves_si, (FcChar16 *) numbers_si } },
2592     { (FcChar8 *) "sk",
2593       { 1, FcTrue, 2, (FcCharLeaf **) leaves_sk, (FcChar16 *) numbers_sk } },
2594     { (FcChar8 *) "sl",
2595       { 1, FcTrue, 3, (FcCharLeaf **) leaves_sl, (FcChar16 *) numbers_sl } },
2596     { (FcChar8 *) "sq",
2597       { 1, FcTrue, 1, (FcCharLeaf **) leaves_sq, (FcChar16 *) numbers_sq } },
2598     { (FcChar8 *) "sr",
2599       { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
2600     { (FcChar8 *) "sv",
2601       { 1, FcTrue, 1, (FcCharLeaf **) leaves_sv, (FcChar16 *) numbers_sv } },
2602     { (FcChar8 *) "ta",
2603       { 1, FcTrue, 1, (FcCharLeaf **) leaves_ta, (FcChar16 *) numbers_ta } },
2604     { (FcChar8 *) "te",
2605       { 1, FcTrue, 1, (FcCharLeaf **) leaves_te, (FcChar16 *) numbers_te } },
2606     { (FcChar8 *) "th",
2607       { 1, FcTrue, 1, (FcCharLeaf **) leaves_th, (FcChar16 *) numbers_th } },
2608     { (FcChar8 *) "tl",
2609       { 1, FcTrue, 1, (FcCharLeaf **) leaves_tl, (FcChar16 *) numbers_tl } },
2610     { (FcChar8 *) "tr",
2611       { 1, FcTrue, 2, (FcCharLeaf **) leaves_tr, (FcChar16 *) numbers_tr } },
2612     { (FcChar8 *) "uk",
2613       { 1, FcTrue, 2, (FcCharLeaf **) leaves_uk, (FcChar16 *) numbers_uk } },
2614     { (FcChar8 *) "vo",
2615       { 1, FcTrue, 1, (FcCharLeaf **) leaves_vo, (FcChar16 *) numbers_vo } },
2616     { (FcChar8 *) "wa",
2617       { 1, FcTrue, 1, (FcCharLeaf **) leaves_wa, (FcChar16 *) numbers_wa } },
2618     { (FcChar8 *) "yi",
2619       { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
2620     { (FcChar8 *) "zh-cn",
2621       { 1, FcTrue, 82, (FcCharLeaf **) leaves_zh_cn, (FcChar16 *) numbers_zh_cn } },
2622     { (FcChar8 *) "zh-tw",
2623       { 1, FcTrue, 84, (FcCharLeaf **) leaves_zh_tw, (FcChar16 *) numbers_zh_tw } },
2624     { (FcChar8 *) "chr",
2625       { 1, FcTrue, 1, (FcCharLeaf **) leaves_chr, (FcChar16 *) numbers_chr } },
2626 };
2627
2628
2629 #define NUM_LANG_CHAR_SET       (sizeof (fcLangCharSets) / sizeof (fcLangCharSets[0]))
2630                                                  
2631 FcBool
2632 FcFreeTypeSetLang (FcPattern *pattern, FcCharSet *charset)
2633 {
2634     int         i;
2635     FcChar32    missing;
2636
2637     for (i = 0; i < NUM_LANG_CHAR_SET; i++)
2638     {
2639         missing = FcCharSetSubtractCount (&fcLangCharSets[i].charset, charset);
2640         if (FcDebug() & FC_DBG_SCANV)
2641             printf ("%s(%d) ", fcLangCharSets[i].lang, missing);
2642         if (!missing && !FcFreeTypeHasLang (pattern, fcLangCharSets[i].lang))
2643             if (!FcPatternAddString (pattern, FC_LANG, fcLangCharSets[i].lang))
2644                 return FcFalse;
2645     }
2646     if (FcDebug() & FC_DBG_SCANV)
2647         printf ("\n");
2648     return FcTrue;
2649 }
2650
2651
2652 FcLangResult
2653 FcLangCompare (const FcChar8 *s1, const FcChar8 *s2)
2654 {
2655     const FcChar8   *orig_s1 = s1;
2656     FcChar8         c1, c2;
2657     FcLangResult    result;
2658     /*
2659      * Compare ISO 639 language codes
2660      */
2661     for (;;)
2662     {
2663         c1 = *s1++;
2664         c2 = *s2++;
2665         if (c1 == '\0' || c1 == '-')
2666             break;
2667         if (c2 == '\0' || c2 == '-')
2668             break;
2669         c1 = FcToLower (c1);
2670         c2 = FcToLower (c2);
2671         if (c1 != c2)
2672             return FcLangDifferentLang;     /* mismatching lang code */
2673     }
2674     if (!c1 && !c2)
2675         return FcLangEqual;
2676     /*
2677      * Make x-* mismatch as if the lang part didn't match
2678      */
2679     result = FcLangDifferentCountry;
2680     if (orig_s1[0] == 'x' && (orig_s1[1] == '\0' || orig_s1[1] == '-'))
2681         result = FcLangDifferentLang;
2682     
2683     if (c1 == '\0' || c2 == '\0')
2684         return result;
2685     /*
2686      * Compare ISO 3166 country codes
2687      */
2688     for (;;)
2689     {
2690         c1 = *s1++;
2691         c2 = *s2++;
2692         if (!c1 || !c2)
2693             break;
2694         c1 = FcToLower (c1);
2695         c2 = FcToLower (c2);
2696         if (c1 != c2)
2697             break;
2698     }
2699     if (c1 == c2)
2700         return FcLangEqual;
2701     else
2702         return result;
2703 }
2704
2705 const FcCharSet *
2706 FcCharSetForLang (const FcChar8 *lang)
2707 {
2708     int         i;
2709     int         country = -1;
2710     for (i = 0; i < NUM_LANG_CHAR_SET; i++)
2711     {
2712         switch (FcLangCompare (lang, fcLangCharSets[i].lang)) {
2713         case FcLangEqual:
2714             return &fcLangCharSets[i].charset;
2715         case FcLangDifferentCountry:
2716             if (country == -1)
2717                 country = i;
2718         default:
2719             break;
2720         }
2721     }
2722     if (country == -1)
2723         return 0;
2724     return &fcLangCharSets[i].charset;
2725 }