1 /* 2 * This file was generated automatically - don't edit it. 3 * File contains iconv CCS tables for win_1251 encoding. 4 */ 5 6 #include "ccsbi.h" 7 8 #if defined (ICONV_TO_UCS_CCS_WIN_1251) \ 9 || defined (ICONV_FROM_UCS_CCS_WIN_1251) 10 11 #include <_ansi.h> 12 #include <sys/types.h> 13 #include <sys/param.h> 14 #include "ccs.h" 15 #include "ccsnames.h" 16 17 #if (_BYTE_ORDER == _LITTLE_ENDIAN) 18 # define W(word) (word) & 0xFF, (word) >> 8 19 #elif (_BYTE_ORDER == _BIG_ENDIAN) 20 # define W(word) (word) >> 8, (word) & 0xFF 21 #else 22 # error "Unknown byte order." 23 #endif 24 25 /* 26 * 8-bit win_1251 -> UCS table (512 bytes). 27 * ====================================================================== 28 */ 29 #if defined (ICONV_TO_UCS_CCS_WIN_1251) 30 31 static const __uint16_t 32 to_ucs_speed_win_1251[] = 33 { 34 0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007, 35 0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F, 36 0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017, 37 0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F, 38 0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027, 39 0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F, 40 0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037, 41 0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F, 42 0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047, 43 0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F, 44 0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057, 45 0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F, 46 0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067, 47 0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F, 48 0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077, 49 0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F, 50 0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021, 51 0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F, 52 0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 53 INVALC,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F, 54 0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7, 55 0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407, 56 0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7, 57 0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457, 58 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, 59 0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F, 60 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, 61 0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F, 62 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, 63 0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F, 64 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, 65 0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F, 66 67 }; 68 69 #endif /* ICONV_TO_UCS_CCS_WIN_1251 */ 70 71 /* 72 * 8-bit UCS -> win_1251 speed-optimized table (1538 bytes). 73 * ====================================================================== 74 */ 75 76 #if defined (ICONV_FROM_UCS_CCS_WIN_1251) 77 78 static const unsigned char 79 from_ucs_speed_win_1251[] = 80 { 81 W(0x044F), /* Real 0xFF mapping. 0xFF is used to mark invalid codes */ 82 /* Heading Block */ 83 W(0x0202),W(INVBLK),W(INVBLK),W(INVBLK), 84 W(0x0302),W(INVBLK),W(INVBLK),W(INVBLK), 85 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 86 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 87 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 88 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 89 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 90 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 91 W(0x0402),W(0x0502),W(INVBLK),W(INVBLK), 92 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 93 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 94 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 95 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 96 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 97 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 98 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 99 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 100 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 101 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 102 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 103 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 104 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 105 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 106 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 107 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 108 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 109 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 110 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 111 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 112 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 113 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 114 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 115 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 116 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 117 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 118 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 119 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 120 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 121 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 122 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 123 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 124 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 125 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 126 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 127 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 128 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 129 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 130 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 131 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 132 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 133 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 134 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 135 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 136 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 137 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 138 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 139 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 140 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 141 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 142 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 143 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 144 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 145 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 146 W(INVBLK),W(INVBLK),W(INVBLK),W(INVBLK), 147 /* Block 1, Array index 0x0202 */ 148 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 149 0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F, 150 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, 151 0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F, 152 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 153 0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F, 154 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, 155 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F, 156 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, 157 0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F, 158 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, 159 0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F, 160 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, 161 0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F, 162 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, 163 0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F, 164 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 165 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 166 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 167 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 168 0xA0,0xFF,0xFF,0xFF,0xA4,0xFF,0xA6,0xA7, 169 0xFF,0xA9,0xFF,0xAB,0xAC,0xAD,0xAE,0xFF, 170 0xB0,0xB1,0xFF,0xFF,0xFF,0xB5,0xB6,0xB7, 171 0xFF,0xFF,0xFF,0xBB,0xFF,0xFF,0xFF,0xFF, 172 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 173 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 174 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 175 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 176 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 177 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 178 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 179 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 180 /* Block 5, Array index 0x0302 */ 181 0xFF,0xA8,0x80,0x81,0xAA,0xBD,0xB2,0xAF, 182 0xA3,0x8A,0x8C,0x8E,0x8D,0xFF,0xA1,0x8F, 183 0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7, 184 0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF, 185 0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7, 186 0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF, 187 0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7, 188 0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF, 189 0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7, 190 0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF, 191 0xFF,0xB8,0x90,0x83,0xBA,0xBE,0xB3,0xBF, 192 0xBC,0x9A,0x9C,0x9E,0x9D,0xFF,0xA2,0x9F, 193 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 194 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 195 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 196 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 197 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 198 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 199 0xA5,0xB4,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 200 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 201 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 202 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 203 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 204 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 205 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 206 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 207 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 208 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 209 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 210 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 211 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 212 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 213 /* Block 33, Array index 0x0402 */ 214 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 215 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 216 0xFF,0xFF,0xFF,0x96,0x97,0xFF,0xFF,0xFF, 217 0x91,0x92,0x82,0xFF,0x93,0x94,0x84,0xFF, 218 0x86,0x87,0x95,0xFF,0xFF,0xFF,0x85,0xFF, 219 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 220 0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 221 0xFF,0x8B,0x9B,0xFF,0xFF,0xFF,0xFF,0xFF, 222 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 223 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 224 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 225 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 226 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 227 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 228 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 229 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 230 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 231 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 232 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 233 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 234 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 235 0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xFF,0xFF, 236 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 237 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 238 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 239 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 240 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 241 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 242 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 243 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 244 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 245 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 246 /* Block 34, Array index 0x0502 */ 247 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 248 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 249 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB9,0xFF, 250 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 251 0xFF,0xFF,0x99,0xFF,0xFF,0xFF,0xFF,0xFF, 252 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 253 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 254 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 255 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 256 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 257 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 258 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 259 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 260 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 261 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 262 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 263 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 264 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 265 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 266 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 267 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 268 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 269 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 270 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 271 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 272 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 273 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 274 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 275 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 276 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 277 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 278 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 279 }; 280 281 #endif /* ICONV_FROM_UCS_CCS_WIN_1251 */ 282 283 /* 284 * win_1251 CCS description table. 285 * ====================================================================== 286 */ 287 const iconv_ccs_t 288 _iconv_ccs_win_1251 = 289 { 290 TABLE_VERSION_1, /* Table version */ 291 ICONV_CCS_WIN_1251, /* CCS name */ 292 TABLE_8BIT, /* Table bits */ 293 0, /* Not Used */ 294 #if defined (ICONV_FROM_UCS_CCS_WIN_1251) 295 (__uint16_t *)&from_ucs_speed_win_1251, /* UCS -> win_1251 table */ 296 #else 297 (__uint16_t *)NULL, 298 #endif 299 0, /* Not Used */ 300 #if defined (ICONV_TO_UCS_CCS_WIN_1251) 301 (__uint16_t *)&to_ucs_speed_win_1251 /* win_1251 -> UCS table */ 302 #else 303 (__uint16_t *)NULL, 304 #endif 305 }; 306 307 #endif /* ICONV_TO_UCS_CCS_WIN_1251) || ... */ 308 309