xref: /reactos/sdk/tools/unicode/c_1251.c (revision 1734f297)
1 /* code page 1251 (ANSI Cyrillic) */
2 /* generated from http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.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     0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021,
26     0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f,
27     0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
28     0x0098, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f,
29     0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7,
30     0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407,
31     0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7,
32     0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457,
33     0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
34     0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f,
35     0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
36     0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f,
37     0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
38     0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f,
39     0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
40     0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f
41 };
42 
43 static const unsigned char uni2cp_low[] =
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     0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
66     0xa0, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0xa6, 0xa7,
67     0x3f, 0xa9, 0x3f, 0xab, 0xac, 0xad, 0xae, 0x3f,
68     0xb0, 0xb1, 0x3f, 0x3f, 0x3f, 0xb5, 0xb6, 0xb7,
69     0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f,
70     0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x43,
71     0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49,
72     0x3f, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f,
73     0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f,
74     0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x3f, 0x63,
75     0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69,
76     0x3f, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f,
77     0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79,
78     /* 0x0100 .. 0x01ff */
79     0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63,
80     0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64,
81     0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65,
82     0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67,
83     0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68,
84     0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69,
85     0x49, 0x3f, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b,
86     0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f,
87     0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e,
88     0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f,
89     0x4f, 0x6f, 0x3f, 0x3f, 0x52, 0x72, 0x52, 0x72,
90     0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
91     0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74,
92     0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75,
93     0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79,
94     0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x3f,
95     0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
96     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
97     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49,
98     0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f,
99     0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
100     0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55,
101     0x75, 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, 0x41, 0x61, 0x49,
105     0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55,
106     0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61,
107     0x3f, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x47, 0x67,
108     0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f,
109     0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
110     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
111     /* 0x0401 .. 0x04ff */
112     0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, 0xa3,
113     0x8a, 0x8c, 0x8e, 0x8d, 0x3f, 0xa1, 0x8f, 0xc0,
114     0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
115     0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
116     0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8,
117     0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0,
118     0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8,
119     0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0,
120     0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,
121     0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x3f,
122     0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, 0xbc,
123     0x9a, 0x9c, 0x9e, 0x9d, 0x3f, 0xa2, 0x9f, 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, 0xa5,
130     0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
131     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
132     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
133     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
134     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
135     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
136     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
137     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
138     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
139     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
140     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
141     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
142     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
143     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
144     /* 0x2013 .. 0x20ff */
145     0x96, 0x97, 0x3f, 0x3f, 0x3f, 0x91, 0x92, 0x82,
146     0x3f, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95,
147     0x3f, 0x3f, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f,
148     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f,
149     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b,
150     0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
151     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
152     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
153     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
154     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
155     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
156     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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, 0x3f, 0x3f, 0x3f, 0x3f,
163     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
164     0x3f, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
165     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
166     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
167     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
168     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
169     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 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,
175     /* 0x2116 .. 0x21ff */
176     0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
177     0x3f, 0x3f, 0x3f, 0x3f, 0x99, 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     0x3f, 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, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0xa6,
192     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
193     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
194     0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
195     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
196     0x3f, 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,
206     /* 0x2219 .. 0x22ff */
207     0x95, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 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, 0x3f, 0x3f,
224     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
225     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
226     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
227     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
228     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
229     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
230     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
231     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
232     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
233     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
234     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
235     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
236     /* 0x2302 .. 0x23ff */
237     0xa6, 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, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
247     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
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     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
253     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
254     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
255     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
256     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
257     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
258     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
259     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
260     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
261     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
262     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
263     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
264     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
265     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
266     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
267     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
268     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
269     /* 0x2500 .. 0x25ff */
270     0x2d, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
271     0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f,
272     0xac, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f,
273     0x2d, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f,
274     0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f,
275     0x3f, 0x3f, 0x3f, 0x3f, 0x54, 0x3f, 0x3f, 0x3f,
276     0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f,
277     0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f,
278     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
279     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
280     0x3d, 0xa6, 0x2d, 0xe3, 0xe3, 0xac, 0xac, 0xac,
281     0x4c, 0x4c, 0x4c, 0x2d, 0x2d, 0x2d, 0xa6, 0xa6,
282     0xa6, 0xa6, 0xa6, 0xa6, 0x54, 0x54, 0x54, 0xa6,
283     0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f,
284     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
285     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
286     0x2d, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f,
287     0x2d, 0x3f, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f,
288     0xa6, 0x2d, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f,
289     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
290     0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
291     0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f,
292     0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
293     0x3f, 0x3f, 0x3e, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f,
294     0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3f, 0x3f, 0x3f,
295     0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f,
296     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
297     0x95, 0x30, 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     /* 0x2626 .. 0x26ff */
303     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
304     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
305     0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x30, 0x3f,
306     0x3f, 0x3f, 0x2b, 0x3f, 0x3e, 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, 0xa6, 0x3f, 0x3f, 0xa6, 0x3f, 0xa6,
311     0xa6, 0x3f, 0x3f, 0x3f, 0x64, 0x64, 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, 0x3f,
316     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
317     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
318     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
319     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
320     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
321     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
322     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
323     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
324     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
325     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
326     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
327     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
328     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
329     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
330     0x3f, 0x3f,
331     /* 0xff01 .. 0xffff */
332     0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
333     0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
334     0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
335     0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
336     0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
337     0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
338     0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
339     0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
340     0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
341     0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
342     0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
343     0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f,
344     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
345     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
346     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
347     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
348     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
349     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
350     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
351     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
352     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
353     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
354     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
355     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
356     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
357     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
358     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
359     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
360     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
361     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
362     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
363     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
364     /* defaults */
365     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
366     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
367     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
368     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
369     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
370     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
371     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
372     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
373     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
374     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
375     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
376     0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f
377 };
378 
379 static const unsigned short uni2cp_high[256] =
380 {
381     0x0000, 0x0100, 0x08f3, 0x08f3, 0x01ff, 0x08f3, 0x08f3, 0x08f3,
382     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
383     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
384     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
385     0x02ec, 0x03d6, 0x04bd, 0x05bb, 0x08f3, 0x06bb, 0x0795, 0x08f3,
386     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
387     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
388     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
389     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
390     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
391     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
392     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
393     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
394     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
395     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
396     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
397     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
398     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
399     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
400     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
401     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
402     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
403     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
404     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
405     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
406     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
407     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
408     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
409     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
410     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
411     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3,
412     0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x08f3, 0x0894
413 };
414 
415 const struct sbcs_table DECLSPEC_HIDDEN cptable_1251 =
416 {
417     { 1251, 1, 0x003f, 0x003f, "ANSI Cyrillic" },
418     cp2uni,
419     cp2uni,
420     uni2cp_low,
421     uni2cp_high
422 };
423