xref: /reactos/sdk/tools/unicode/c_1256.c (revision f04935d8)
1 /* code page 1256 (ANSI Arabic) */
2 /* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt */
3 /* DO NOT EDIT!! */
4 
5 #include "wine/unicode.h"
6 
7 static const WCHAR cp2uni[256] =
8 {
9     0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
10     0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f,
11     0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
12     0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f,
13     0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
14     0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f,
15     0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
16     0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f,
17     0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
18     0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f,
19     0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
20     0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f,
21     0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
22     0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f,
23     0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
24     0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f,
25     0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021,
26     0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
27     0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
28     0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba,
29     0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7,
30     0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af,
31     0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
32     0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f,
33     0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
34     0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f,
35     0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7,
36     0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643,
37     0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7,
38     0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef,
39     0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7,
40     0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2
41 };
42 
43 static const unsigned char uni2cp_low[2318] =
44 {
45     /* 0x0000 .. 0x00ff */
46     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
47     0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
48     0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
49     0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
50     0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
51     0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
52     0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
53     0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
54     0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
55     0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
56     0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
57     0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
58     0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
59     0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
60     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
61     0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
62     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
63     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
64     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
65     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
66     0xa0, 0x3f, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
67     0xa8, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0xaf,
68     0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
69     0xb8, 0xb9, 0x3f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f,
70     0x41, 0x3f, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x43,
71     0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x49, 0x49,
72     0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0xd7,
73     0x3f, 0x55, 0x3f, 0x55, 0x55, 0x3f, 0x3f, 0x3f,
74     0xe0, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7,
75     0xe8, 0xe9, 0xea, 0xeb, 0x3f, 0x3f, 0xee, 0xef,
76     0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0x3f, 0x3f, 0xf7,
77     0x3f, 0xf9, 0x3f, 0xfb, 0xfc, 0x3f, 0x3f, 0x3f,
78     /* 0x0103 .. 0x01ff */
79     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
80     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
81     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
82     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
83     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
84     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
85     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
86     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
87     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
88     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8c,
89     0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
90     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
91     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
92     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
93     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
94     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
95     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
96     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x46, 0x83,
97     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
98     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
99     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
100     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
101     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
102     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
103     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
104     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
105     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
106     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
107     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
108     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
109     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
110     0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
111     /* 0x026d .. 0x02ff */
112     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
113     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
114     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
115     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
116     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
117     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
118     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
119     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
120     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
121     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
122     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
123     0x3f, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
124     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
125     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
126     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
127     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
128     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
129     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
130     0x3f, 0x3f, 0x3f,
131     /* 0x060c .. 0x06ff */
132     0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
133     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba,
134     0x3f, 0x3f, 0x3f, 0xbf, 0x3f, 0xc1, 0xc2, 0xc3,
135     0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb,
136     0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3,
137     0xd4, 0xd5, 0xd6, 0xd8, 0xd9, 0xda, 0xdb, 0x3f,
138     0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0xde, 0xdf,
139     0xe1, 0xe3, 0xe4, 0xe5, 0xe6, 0xec, 0xed, 0xf0,
140     0xf1, 0xf2, 0xf3, 0xf5, 0xf6, 0xf8, 0xfa, 0x3f,
141     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
142     0x3f, 0x3f, 0x3f, 0x3f, 0x30, 0x31, 0x32, 0x33,
143     0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f,
144     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
145     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x3f, 0x3f,
146     0x3f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
147     0x3f, 0x3f, 0x8d, 0x3f, 0x8f, 0x3f, 0x3f, 0x3f,
148     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x3f, 0x3f,
149     0x3f, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f,
150     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
151     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x3f,
152     0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f,
153     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9f, 0x3f,
154     0x3f, 0x3f, 0xaa, 0x3f, 0x3f, 0xc0, 0x3f, 0x3f,
155     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
156     0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x3f,
157     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
158     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
159     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
160     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
161     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
162     0x3f, 0x3f, 0x3f, 0x3f,
163     /* 0x200c .. 0x20ff */
164     0x9d, 0x9e, 0xfd, 0xfe, 0x3f, 0x3f, 0x3f, 0x96,
165     0x97, 0x3f, 0x3f, 0x3f, 0x91, 0x92, 0x82, 0x3f,
166     0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f,
167     0x3f, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
168     0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x3f,
169     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f,
170     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
171     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
172     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
173     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
174     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
175     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
176     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
177     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
178     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
179     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
180     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
181     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
182     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
183     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
184     0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
185     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
186     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
187     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
188     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
189     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
190     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
191     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
192     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
193     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
194     0x3f, 0x3f, 0x3f, 0x3f,
195     /* 0x2122 .. 0x21ff */
196     0x99, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
197     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
198     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
199     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
200     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
201     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
202     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
203     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
204     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
205     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
206     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
207     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
208     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
209     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
210     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
211     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
212     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
213     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
214     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
215     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
216     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
217     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
218     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
219     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
220     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
221     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
222     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
223     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
224     /* 0xfb56 .. 0xfbff */
225     0x81, 0x81, 0x81, 0x81, 0x3f, 0x3f, 0x3f, 0x3f,
226     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
227     0x8a, 0x8a, 0x8a, 0x8a, 0x3f, 0x3f, 0x3f, 0x3f,
228     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
229     0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x8d, 0x8d, 0x8d,
230     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
231     0x3f, 0x3f, 0x8f, 0x8f, 0x8e, 0x8e, 0x9a, 0x9a,
232     0x98, 0x98, 0x98, 0x98, 0x90, 0x90, 0x90, 0x90,
233     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
234     0x9f, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
235     0xc0, 0xc0, 0xc0, 0xc0, 0xaa, 0xaa, 0xaa, 0xaa,
236     0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
237     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
238     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
239     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
240     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
241     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
242     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
243     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
244     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
245     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
246     0x3f, 0x3f,
247     /* 0xfe50 .. 0xfeff */
248     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
249     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
250     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
251     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
252     0xf0, 0xf0, 0xf1, 0x3f, 0xf2, 0x3f, 0xf3, 0xf3,
253     0xf5, 0xf5, 0xf6, 0xf6, 0xf8, 0xf8, 0xfa, 0xfa,
254     0xc1, 0xc2, 0xc2, 0xc3, 0xc3, 0xc4, 0xc4, 0xc5,
255     0xc5, 0xc6, 0xc6, 0xc6, 0xc6, 0xc7, 0xc7, 0xc8,
256     0xc8, 0xc8, 0xc8, 0xc9, 0xc9, 0xca, 0xca, 0xca,
257     0xca, 0xcb, 0xcb, 0xcb, 0xcb, 0xcc, 0xcc, 0xcc,
258     0xcc, 0xcd, 0xcd, 0xcd, 0xcd, 0xce, 0xce, 0xce,
259     0xce, 0xcf, 0xcf, 0xd0, 0xd0, 0xd1, 0xd1, 0xd2,
260     0xd2, 0xd3, 0xd3, 0xd3, 0xd3, 0xd4, 0xd4, 0xd4,
261     0xd4, 0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0xd6, 0xd6,
262     0xd6, 0xd8, 0xd8, 0xd8, 0xd8, 0xd9, 0xd9, 0xd9,
263     0xd9, 0xda, 0xda, 0xda, 0xda, 0xdb, 0xdb, 0xdb,
264     0xdb, 0xdd, 0xdd, 0xdd, 0xdd, 0xde, 0xde, 0xde,
265     0xde, 0xdf, 0xdf, 0xdf, 0xdf, 0xe1, 0xe1, 0xe1,
266     0xe1, 0xe3, 0xe3, 0xe3, 0xe3, 0xe4, 0xe4, 0xe4,
267     0xe4, 0xe5, 0xe5, 0xe5, 0xe5, 0xe6, 0xe6, 0xec,
268     0xec, 0xed, 0xed, 0xed, 0xed, 0x3f, 0x3f, 0x3f,
269     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
270     /* 0xff01 .. 0xffff */
271     0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
272     0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
273     0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
274     0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
275     0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
276     0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
277     0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
278     0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
279     0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
280     0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
281     0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
282     0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f,
283     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
284     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
285     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
286     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
287     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
288     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
289     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
290     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
291     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
292     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
293     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
294     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
295     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
296     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
297     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
298     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
299     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
300     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
301     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
302     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
303     /* defaults */
304     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
305     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
306     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
307     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
308     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
309     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
310     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
311     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
312     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
313     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
314     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
315     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f
316 };
317 
318 static const unsigned short uni2cp_high[256] =
319 {
320     0x0000, 0x00fd, 0x0190, 0x070e, 0x070e, 0x070e, 0x0284, 0x070e,
321     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
322     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
323     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
324     0x0378, 0x0456, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
325     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
326     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
327     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
328     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
329     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
330     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
331     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
332     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
333     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
334     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
335     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
336     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
337     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
338     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
339     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
340     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
341     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
342     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
343     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
344     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
345     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
346     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
347     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
348     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
349     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
350     0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e, 0x070e,
351     0x070e, 0x070e, 0x070e, 0x0500, 0x070e, 0x070e, 0x05b0, 0x06af
352 };
353 
354 const struct sbcs_table DECLSPEC_HIDDEN cptable_1256 =
355 {
356     { 1256, 1, 0x003f, 0x003f, "ANSI Arabic" },
357     cp2uni,
358     cp2uni,
359     uni2cp_low,
360     uni2cp_high
361 };
362