1/* $Id: nameprepdata.c,v 1.1 2003/06/04 00:26:05 marka Exp $ */ 2/* $-Id: generate_nameprep_data.pl,v 1.9 2002/11/29 09:08:13 ishisone Exp -$ */ 3/* 4 * Do not edit this file! 5 * This file is generated from NAMEPREP specification. 6 */ 7 8#define MAP_BITS_0 9 9#define MAP_BITS_1 7 10#define MAP_BITS_2 5 11 12#define PROH_BITS_0 7 13#define PROH_BITS_1 7 14#define PROH_BITS_2 7 15 16#define UNAS_BITS_0 7 17#define UNAS_BITS_1 7 18#define UNAS_BITS_2 7 19 20#define BIDI_BITS_0 9 21#define BIDI_BITS_1 7 22#define BIDI_BITS_2 5 23 24static const unsigned short nameprep_rfc3491_map_imap[] = { 25 272, 400, 528, 656, 784, 784, 784, 784, 26 784, 784, 784, 784, 784, 784, 784, 912, 27 1040, 784, 784, 784, 784, 784, 784, 784, 28 784, 784, 784, 784, 784, 1168, 784, 784, 29 784, 784, 784, 784, 784, 784, 784, 784, 30 784, 784, 784, 784, 784, 784, 784, 784, 31 784, 784, 784, 784, 784, 784, 784, 784, 32 784, 784, 784, 784, 784, 784, 784, 784, 33 784, 784, 784, 784, 784, 784, 784, 784, 34 784, 784, 784, 784, 784, 784, 784, 784, 35 784, 784, 784, 784, 784, 784, 784, 784, 36 784, 784, 784, 784, 784, 784, 784, 784, 37 784, 784, 784, 784, 784, 784, 784, 784, 38 784, 784, 784, 784, 784, 784, 784, 784, 39 784, 784, 784, 784, 784, 784, 784, 784, 40 784, 784, 784, 784, 784, 784, 784, 784, 41 784, 784, 784, 784, 784, 784, 784, 784, 42 784, 784, 784, 784, 784, 784, 784, 784, 43 784, 784, 784, 784, 784, 784, 784, 784, 44 784, 784, 784, 784, 784, 784, 784, 784, 45 784, 784, 784, 784, 784, 784, 784, 784, 46 784, 784, 784, 784, 784, 784, 784, 784, 47 784, 784, 784, 784, 784, 784, 784, 784, 48 784, 784, 784, 784, 784, 784, 784, 784, 49 784, 784, 784, 784, 784, 784, 784, 784, 50 784, 784, 784, 784, 784, 784, 784, 784, 51 784, 784, 784, 784, 784, 784, 784, 784, 52 784, 784, 784, 784, 784, 784, 784, 784, 53 784, 784, 784, 784, 784, 784, 784, 784, 54 784, 784, 784, 784, 784, 784, 784, 784, 55 784, 784, 784, 784, 784, 784, 784, 784, 56 784, 784, 784, 784, 784, 784, 784, 784, 57 784, 784, 784, 784, 784, 784, 784, 784, 58 784, 784, 784, 784, 784, 784, 784, 784, 59 0, 0, 1, 0, 0, 2, 3, 0, 60 4, 5, 6, 7, 8, 9, 10, 11, 61 12, 13, 0, 0, 0, 0, 0, 0, 62 0, 0, 14, 15, 16, 17, 18, 19, 63 20, 21, 0, 22, 23, 24, 25, 26, 64 27, 28, 29, 0, 30, 0, 0, 0, 65 0, 0, 0, 0, 0, 0, 0, 0, 66 0, 0, 0, 0, 0, 0, 0, 0, 67 0, 0, 0, 0, 0, 0, 0, 0, 68 0, 0, 0, 0, 0, 0, 0, 0, 69 0, 0, 0, 0, 0, 0, 0, 0, 70 0, 0, 0, 0, 0, 0, 0, 0, 71 0, 0, 0, 0, 0, 0, 0, 0, 72 0, 0, 0, 0, 0, 0, 0, 0, 73 0, 0, 0, 0, 0, 0, 0, 0, 74 0, 0, 0, 0, 0, 0, 0, 0, 75 0, 0, 0, 0, 0, 0, 0, 0, 76 0, 0, 0, 0, 0, 0, 0, 0, 77 0, 0, 0, 0, 0, 0, 0, 0, 78 0, 0, 0, 0, 0, 0, 0, 0, 79 0, 0, 0, 0, 0, 0, 0, 0, 80 0, 0, 0, 0, 0, 0, 0, 0, 81 0, 0, 0, 0, 0, 0, 0, 0, 82 0, 0, 0, 0, 0, 0, 0, 0, 83 31, 0, 0, 0, 0, 0, 0, 0, 84 0, 0, 0, 0, 0, 0, 0, 0, 85 0, 0, 0, 0, 0, 0, 0, 0, 86 0, 0, 0, 0, 0, 0, 0, 0, 87 0, 0, 0, 0, 0, 0, 0, 0, 88 0, 0, 0, 0, 0, 0, 0, 0, 89 32, 33, 34, 35, 36, 37, 38, 39, 90 40, 41, 42, 43, 44, 45, 46, 47, 91 48, 0, 0, 49, 0, 50, 0, 0, 92 51, 52, 53, 54, 0, 0, 0, 0, 93 0, 0, 0, 0, 0, 0, 0, 0, 94 0, 0, 0, 0, 0, 0, 0, 0, 95 0, 0, 0, 0, 0, 55, 56, 0, 96 0, 0, 0, 0, 0, 0, 0, 0, 97 0, 0, 0, 0, 0, 0, 0, 0, 98 0, 0, 0, 0, 0, 0, 0, 0, 99 0, 0, 0, 0, 0, 0, 0, 0, 100 0, 0, 0, 0, 0, 0, 0, 0, 101 0, 0, 0, 0, 0, 0, 0, 0, 102 0, 0, 0, 0, 0, 0, 0, 0, 103 0, 0, 0, 0, 0, 0, 0, 0, 104 0, 0, 0, 0, 0, 0, 0, 0, 105 0, 0, 0, 0, 0, 0, 0, 0, 106 0, 0, 0, 0, 0, 0, 0, 0, 107 0, 0, 0, 0, 0, 0, 0, 0, 108 0, 0, 0, 0, 0, 0, 0, 0, 109 0, 0, 0, 0, 0, 0, 0, 0, 110 0, 0, 0, 57, 58, 59, 60, 0, 111 0, 0, 0, 0, 0, 0, 0, 0, 112 0, 0, 0, 0, 0, 0, 0, 0, 113 0, 0, 0, 0, 0, 0, 0, 0, 114 0, 0, 0, 0, 0, 0, 0, 0, 115 0, 0, 0, 0, 0, 0, 0, 0, 116 0, 0, 0, 0, 0, 0, 0, 0, 117 0, 0, 0, 0, 0, 0, 0, 0, 118 0, 0, 0, 0, 0, 0, 0, 0, 119 0, 0, 0, 0, 0, 0, 0, 0, 120 0, 0, 0, 0, 0, 0, 0, 0, 121 0, 0, 0, 0, 0, 0, 0, 0, 122 0, 0, 0, 0, 0, 0, 0, 0, 123 0, 0, 0, 0, 0, 0, 0, 0, 124 0, 0, 0, 0, 0, 0, 0, 0, 125 0, 0, 0, 0, 0, 0, 0, 0, 126 0, 0, 0, 0, 0, 0, 0, 0, 127 0, 0, 0, 0, 0, 0, 0, 0, 128 0, 0, 0, 0, 0, 0, 0, 0, 129 0, 0, 0, 0, 0, 0, 0, 0, 130 0, 0, 0, 0, 0, 0, 0, 0, 131 0, 0, 0, 0, 0, 0, 0, 0, 132 0, 0, 0, 0, 0, 0, 0, 0, 133 0, 0, 0, 0, 0, 0, 0, 0, 134 0, 0, 0, 0, 0, 0, 0, 0, 135 0, 0, 0, 0, 0, 0, 0, 0, 136 0, 0, 0, 0, 0, 0, 0, 0, 137 0, 0, 0, 0, 0, 0, 0, 0, 138 0, 0, 0, 0, 0, 0, 0, 0, 139 0, 0, 0, 0, 0, 0, 0, 0, 140 0, 0, 0, 0, 0, 0, 0, 0, 141 0, 0, 0, 0, 0, 0, 0, 0, 142 0, 0, 0, 0, 0, 0, 0, 0, 143 0, 0, 0, 0, 0, 0, 0, 0, 144 0, 0, 0, 0, 0, 0, 0, 0, 145 0, 0, 0, 0, 0, 0, 0, 0, 146 0, 0, 0, 0, 0, 0, 0, 0, 147 0, 0, 0, 0, 0, 0, 0, 0, 148 0, 0, 0, 0, 0, 0, 0, 0, 149 0, 0, 0, 0, 0, 0, 0, 0, 150 61, 0, 0, 0, 0, 0, 0, 0, 151 0, 0, 0, 0, 0, 0, 0, 0, 152 0, 0, 0, 0, 0, 0, 0, 0, 153 62, 0, 0, 0, 0, 0, 0, 63, 154 0, 64, 0, 0, 0, 0, 0, 0, 155 0, 0, 0, 0, 0, 0, 0, 0, 156 0, 0, 0, 0, 0, 0, 0, 0, 157 0, 0, 0, 0, 0, 0, 0, 0, 158 0, 0, 0, 0, 0, 0, 0, 0, 159 65, 66, 0, 0, 0, 0, 0, 0, 160 0, 0, 0, 0, 0, 0, 0, 0, 161 0, 0, 0, 0, 0, 0, 0, 0, 162 0, 0, 0, 0, 0, 0, 0, 0, 163 0, 0, 0, 0, 0, 0, 0, 0, 164 0, 0, 0, 0, 0, 0, 0, 0, 165 0, 0, 0, 0, 0, 0, 0, 0, 166 0, 0, 0, 0, 0, 0, 0, 0, 167 0, 0, 0, 0, 0, 0, 0, 0, 168 0, 0, 0, 0, 0, 0, 0, 0, 169 0, 0, 0, 0, 0, 0, 0, 0, 170 0, 0, 0, 0, 0, 0, 0, 0, 171 0, 0, 0, 0, 0, 0, 0, 0, 172 0, 0, 0, 0, 0, 0, 0, 0, 173 0, 0, 0, 0, 0, 0, 0, 0, 174 0, 0, 0, 0, 0, 0, 0, 0, 175 67, 68, 69, 70, 71, 72, 73, 74, 176 75, 76, 77, 78, 79, 67, 68, 69, 177 70, 80, 81, 73, 74, 82, 83, 84, 178 85, 86, 87, 88, 89, 90, 0, 0, 179 0, 0, 0, 0, 0, 0, 0, 0, 180 0, 0, 0, 0, 0, 0, 0, 0, 181 0, 0, 0, 0, 0, 0, 0, 0, 182 0, 0, 0, 0, 0, 0, 0, 0, 183 0, 0, 0, 0, 0, 0, 0, 0, 184 0, 0, 0, 0, 0, 0, 0, 0, 185 0, 0, 0, 0, 0, 0, 0, 0, 186 0, 0, 0, 0, 0, 0, 0, 0, 187}; 188 189static const struct { 190 unsigned short tbl[32]; 191} nameprep_rfc3491_map_table[] = { 192 {{ 193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196 }}, 197 {{ 198 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 199 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 200 44, 46, 48, 50, 52, 0, 0, 0, 0, 0, 201 }}, 202 {{ 203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 54, 205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206 }}, 207 {{ 208 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 209 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 210 101, 0, 103, 105, 107, 109, 111, 113, 115, 117, 211 }}, 212 {{ 213 123, 0, 126, 0, 129, 0, 132, 0, 135, 0, 138, 214 0, 141, 0, 144, 0, 147, 0, 150, 0, 153, 0, 215 156, 0, 159, 0, 162, 0, 165, 0, 168, 0, 216 }}, 217 {{ 218 171, 0, 174, 0, 177, 0, 180, 0, 183, 0, 186, 219 0, 189, 0, 192, 0, 195, 0, 202, 0, 205, 0, 220 208, 0, 0, 211, 0, 214, 0, 217, 0, 220, 221 }}, 222 {{ 223 0, 223, 0, 226, 0, 229, 0, 232, 0, 235, 241, 224 0, 244, 0, 247, 0, 250, 0, 253, 0, 256, 0, 225 259, 0, 262, 0, 265, 0, 268, 0, 271, 0, 226 }}, 227 {{ 228 274, 0, 277, 0, 280, 0, 283, 0, 286, 0, 289, 229 0, 292, 0, 295, 0, 298, 0, 301, 0, 304, 0, 230 307, 0, 310, 312, 0, 315, 0, 318, 0, 38, 231 }}, 232 {{ 233 0, 321, 324, 0, 327, 0, 330, 333, 0, 336, 339, 234 342, 0, 0, 345, 348, 351, 354, 0, 357, 360, 0, 235 363, 366, 369, 0, 0, 0, 372, 375, 0, 378, 236 }}, 237 {{ 238 381, 0, 384, 0, 387, 0, 390, 393, 0, 396, 0, 239 0, 399, 0, 402, 405, 0, 408, 411, 414, 0, 417, 240 0, 420, 423, 0, 0, 0, 426, 0, 0, 0, 241 }}, 242 {{ 243 0, 0, 0, 0, 429, 429, 0, 432, 432, 0, 435, 244 435, 0, 438, 0, 441, 0, 444, 0, 447, 0, 450, 245 0, 453, 0, 456, 0, 459, 0, 0, 462, 0, 246 }}, 247 {{ 248 465, 0, 468, 0, 471, 0, 474, 0, 477, 0, 480, 249 0, 483, 0, 486, 0, 489, 496, 496, 0, 499, 0, 250 502, 505, 508, 0, 511, 0, 514, 0, 517, 0, 251 }}, 252 {{ 253 520, 0, 523, 0, 526, 0, 529, 0, 532, 0, 535, 254 0, 538, 0, 541, 0, 544, 0, 547, 0, 550, 0, 255 553, 0, 556, 0, 559, 0, 562, 0, 565, 0, 256 }}, 257 {{ 258 568, 0, 571, 0, 574, 0, 577, 0, 580, 0, 583, 259 0, 586, 0, 589, 0, 592, 0, 595, 0, 0, 0, 260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 261 }}, 262 {{ 263 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 264 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266 }}, 267 {{ 268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 270 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, 271 }}, 272 {{ 273 0, 0, 0, 0, 0, 0, 608, 0, 611, 614, 617, 274 0, 620, 0, 623, 626, 629, 640, 643, 646, 649, 652, 275 655, 658, 661, 598, 664, 667, 54, 670, 673, 676, 276 }}, 277 {{ 278 679, 682, 0, 685, 688, 691, 694, 697, 700, 703, 706, 279 709, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281 }}, 282 {{ 283 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 284 0, 0, 0, 0, 0, 643, 661, 691, 623, 709, 694, 285 679, 0, 723, 0, 726, 0, 729, 0, 732, 0, 286 }}, 287 {{ 288 735, 0, 738, 0, 741, 0, 744, 0, 747, 0, 750, 289 0, 753, 0, 756, 0, 664, 682, 685, 0, 661, 652, 290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291 }}, 292 {{ 293 759, 762, 765, 768, 771, 774, 777, 780, 783, 786, 789, 294 792, 795, 798, 801, 804, 807, 810, 813, 816, 819, 822, 295 825, 828, 831, 834, 837, 840, 843, 846, 849, 852, 296 }}, 297 {{ 298 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, 885, 299 888, 891, 894, 897, 900, 0, 0, 0, 0, 0, 0, 300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301 }}, 302 {{ 303 903, 0, 906, 0, 909, 0, 912, 0, 915, 0, 918, 304 0, 921, 0, 924, 0, 927, 0, 930, 0, 933, 0, 305 936, 0, 939, 0, 942, 0, 945, 0, 948, 0, 306 }}, 307 {{ 308 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 954, 309 0, 957, 0, 960, 0, 963, 0, 966, 0, 969, 0, 310 972, 0, 975, 0, 978, 0, 981, 0, 984, 0, 311 }}, 312 {{ 313 987, 0, 990, 0, 993, 0, 996, 0, 999, 0, 1002, 314 0, 1005, 0, 1008, 0, 1011, 0, 1014, 0, 1017, 0, 315 1020, 0, 1023, 0, 1026, 0, 1029, 0, 1032, 0, 316 }}, 317 {{ 318 0, 1035, 0, 1038, 0, 1041, 0, 1044, 0, 1047, 0, 319 1050, 0, 1053, 0, 0, 1056, 0, 1059, 0, 1062, 0, 320 1065, 0, 1068, 0, 1071, 0, 1074, 0, 1077, 0, 321 }}, 322 {{ 323 1080, 0, 1083, 0, 1086, 0, 1089, 0, 1092, 0, 1095, 324 0, 1098, 0, 1101, 0, 1104, 0, 1107, 0, 1110, 0, 325 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 326 }}, 327 {{ 328 1116, 0, 1119, 0, 1122, 0, 1125, 0, 1128, 0, 1131, 329 0, 1134, 0, 1137, 0, 0, 0, 0, 0, 0, 0, 330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331 }}, 332 {{ 333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334 0, 0, 0, 0, 0, 0, 1140, 1143, 1146, 1149, 1152, 335 1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, 336 }}, 337 {{ 338 1185, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215, 339 1218, 1221, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, 340 1251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 341 }}, 342 {{ 343 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, 344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346 }}, 347 {{ 348 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 349 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351 }}, 352 {{ 353 1261, 0, 1264, 0, 1267, 0, 1270, 0, 1273, 0, 1276, 354 0, 1279, 0, 1282, 0, 1285, 0, 1288, 0, 1291, 0, 355 1294, 0, 1297, 0, 1300, 0, 1303, 0, 1306, 0, 356 }}, 357 {{ 358 1309, 0, 1312, 0, 1315, 0, 1318, 0, 1321, 0, 1324, 359 0, 1327, 0, 1330, 0, 1333, 0, 1336, 0, 1339, 0, 360 1342, 0, 1345, 0, 1348, 0, 1351, 0, 1354, 0, 361 }}, 362 {{ 363 1357, 0, 1360, 0, 1363, 0, 1366, 0, 1369, 0, 1372, 364 0, 1375, 0, 1378, 0, 1381, 0, 1384, 0, 1387, 0, 365 1390, 0, 1393, 0, 1396, 0, 1399, 0, 1402, 0, 366 }}, 367 {{ 368 1405, 0, 1408, 0, 1411, 0, 1414, 0, 1417, 0, 1420, 369 0, 1423, 0, 1426, 0, 1429, 0, 1432, 0, 1435, 0, 370 1438, 0, 1441, 0, 1444, 0, 1447, 0, 1450, 0, 371 }}, 372 {{ 373 1453, 0, 1456, 0, 1459, 0, 1462, 0, 1465, 0, 1468, 374 0, 1471, 0, 1474, 0, 1477, 0, 1480, 0, 1483, 0, 375 1486, 1493, 1500, 1507, 1514, 1405, 0, 0, 0, 0, 376 }}, 377 {{ 378 1521, 0, 1524, 0, 1527, 0, 1530, 0, 1533, 0, 1536, 379 0, 1539, 0, 1542, 0, 1545, 0, 1548, 0, 1551, 0, 380 1554, 0, 1557, 0, 1560, 0, 1563, 0, 1566, 0, 381 }}, 382 {{ 383 1569, 0, 1572, 0, 1575, 0, 1578, 0, 1581, 0, 1584, 384 0, 1587, 0, 1590, 0, 1593, 0, 1596, 0, 1599, 0, 385 1602, 0, 1605, 0, 1608, 0, 1611, 0, 1614, 0, 386 }}, 387 {{ 388 1617, 0, 1620, 0, 1623, 0, 1626, 0, 1629, 0, 1632, 389 0, 1635, 0, 1638, 0, 1641, 0, 1644, 0, 1647, 0, 390 1650, 0, 1653, 0, 0, 0, 0, 0, 0, 0, 391 }}, 392 {{ 393 0, 0, 0, 0, 0, 0, 0, 0, 1656, 1659, 1662, 394 1665, 1668, 1671, 1674, 1677, 0, 0, 0, 0, 0, 0, 395 0, 0, 1680, 1683, 1686, 1689, 1692, 1695, 0, 0, 396 }}, 397 {{ 398 0, 0, 0, 0, 0, 0, 0, 0, 1698, 1701, 1704, 399 1707, 1710, 1713, 1716, 1719, 0, 0, 0, 0, 0, 0, 400 0, 0, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, 401 }}, 402 {{ 403 0, 0, 0, 0, 0, 0, 0, 0, 1746, 1749, 1752, 404 1755, 1758, 1761, 0, 0, 1764, 0, 1771, 0, 1782, 0, 405 1793, 0, 0, 1804, 0, 1807, 0, 1810, 0, 1813, 406 }}, 407 {{ 408 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1819, 1822, 409 1825, 1828, 1831, 1834, 1837, 0, 0, 0, 0, 0, 0, 410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411 }}, 412 {{ 413 1840, 1847, 1854, 1861, 1868, 1875, 1882, 1889, 1840, 1847, 1854, 414 1861, 1868, 1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931, 415 1938, 1945, 1896, 1903, 1910, 1917, 1924, 1931, 1938, 1945, 416 }}, 417 {{ 418 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 1952, 1959, 1966, 419 1973, 1980, 1987, 1994, 2001, 0, 0, 2008, 2015, 2022, 0, 420 2029, 2036, 2047, 2050, 2053, 2056, 2015, 0, 598, 0, 421 }}, 422 {{ 423 0, 0, 2059, 2066, 2073, 0, 2080, 2087, 2098, 2101, 2104, 424 2107, 2066, 0, 0, 0, 0, 0, 2110, 629, 0, 0, 425 2121, 2128, 2139, 2142, 2145, 2148, 0, 0, 0, 0, 426 }}, 427 {{ 428 0, 0, 2151, 712, 2162, 0, 2169, 2176, 2187, 2190, 2193, 429 2196, 2199, 0, 0, 0, 0, 0, 2202, 2209, 2216, 0, 430 2223, 2230, 2241, 2244, 2247, 2250, 2209, 0, 0, 0, 431 }}, 432 {{ 433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 434 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436 }}, 437 {{ 438 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441 }}, 442 {{ 443 0, 0, 0, 0, 0, 0, 0, 0, 2253, 0, 0, 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 446 }}, 447 {{ 448 0, 0, 6, 2259, 0, 0, 0, 351, 0, 2265, 0, 449 16, 16, 16, 0, 0, 18, 18, 24, 0, 0, 28, 450 2271, 0, 0, 32, 34, 36, 36, 36, 0, 0, 451 }}, 452 {{ 453 2277, 2283, 2293, 0, 52, 0, 703, 0, 52, 0, 22, 454 67, 4, 6, 0, 0, 10, 12, 0, 26, 0, 0, 455 0, 0, 0, 0, 0, 0, 0, 0, 646, 679, 456 }}, 457 {{ 458 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 461 }}, 462 {{ 463 2299, 2302, 2305, 2308, 2311, 2314, 2317, 2320, 2323, 2326, 2329, 464 2332, 2335, 2338, 2341, 2344, 0, 0, 0, 0, 0, 0, 465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 466 }}, 467 {{ 468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470 2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374, 471 }}, 472 {{ 473 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, 474 2410, 2413, 2416, 2419, 2422, 0, 0, 0, 0, 0, 0, 475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476 }}, 477 {{ 478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479 0, 0, 0, 0, 0, 0, 2425, 0, 2435, 0, 2441, 480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481 }}, 482 {{ 483 2447, 2453, 2459, 2465, 2471, 2477, 2483, 2489, 0, 0, 2495, 484 2501, 2507, 0, 0, 0, 2513, 2519, 2529, 2539, 2549, 0, 485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486 }}, 487 {{ 488 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 2559, 489 2569, 2579, 0, 0, 0, 0, 0, 0, 0, 2589, 2595, 490 2601, 2607, 2613, 2607, 2619, 2625, 2631, 2637, 2643, 2637, 491 }}, 492 {{ 493 2649, 2656, 0, 2663, 0, 0, 2669, 2683, 2693, 2699, 0, 494 2705, 0, 2711, 2717, 0, 0, 0, 0, 0, 0, 0, 495 0, 2723, 0, 2729, 2739, 0, 2745, 2751, 0, 0, 496 }}, 497 {{ 498 2757, 2763, 2769, 2775, 2785, 2795, 2795, 0, 0, 0, 0, 499 0, 0, 0, 0, 0, 0, 0, 0, 2801, 2808, 2815, 500 2822, 2829, 0, 0, 0, 0, 0, 0, 0, 0, 501 }}, 502 {{ 503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 504 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 506 }}, 507 {{ 508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 510 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 511 }}, 512 {{ 513 0, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, 2863, 514 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, 515 2899, 2902, 2905, 2908, 2911, 0, 0, 0, 0, 0, 516 }}, 517 {{ 518 2914, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954, 519 2958, 2962, 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998, 520 3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034, 3038, 521 }}, 522 {{ 523 3042, 3046, 3050, 3054, 3058, 3062, 0, 0, 0, 0, 0, 524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 526 }}, 527 {{ 528 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 529 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 530 46, 48, 50, 52, 0, 0, 0, 0, 0, 0, 531 }}, 532 {{ 533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 534 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 535 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 536 }}, 537 {{ 538 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 539 48, 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 541 }}, 542 {{ 543 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6, 544 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 545 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 546 }}, 547 {{ 548 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 550 0, 0, 0, 0, 0, 0, 2, 0, 6, 8, 551 }}, 552 {{ 553 0, 0, 14, 0, 0, 20, 22, 0, 0, 28, 30, 554 32, 34, 0, 38, 40, 42, 44, 46, 48, 50, 52, 555 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556 }}, 557 {{ 558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 559 0, 0, 0, 0, 0, 2, 4, 6, 8, 10, 12, 560 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 561 }}, 562 {{ 563 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 0, 564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 566 }}, 567 {{ 568 0, 0, 0, 0, 2, 4, 0, 8, 10, 12, 14, 569 0, 0, 20, 22, 24, 26, 28, 30, 32, 34, 0, 570 38, 40, 42, 44, 46, 48, 50, 0, 0, 0, 571 }}, 572 {{ 573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 575 0, 0, 2, 4, 0, 8, 10, 12, 14, 0, 576 }}, 577 {{ 578 18, 20, 22, 24, 26, 0, 30, 0, 0, 0, 38, 579 40, 42, 44, 46, 48, 50, 0, 0, 0, 0, 0, 580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 581 }}, 582 {{ 583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 585 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 586 }}, 587 {{ 588 42, 44, 46, 48, 50, 52, 0, 0, 0, 0, 0, 589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 591 }}, 592 {{ 593 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 595 0, 0, 0, 0, 0, 0, 2, 4, 6, 8, 596 }}, 597 {{ 598 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 599 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 601 }}, 602 {{ 603 0, 0, 0, 0, 0, 0, 0, 0, 640, 643, 646, 604 649, 652, 655, 658, 661, 598, 664, 667, 54, 670, 673, 605 676, 679, 682, 661, 685, 688, 691, 694, 697, 700, 606 }}, 607 {{ 608 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 611 }}, 612 {{ 613 0, 0, 640, 643, 646, 649, 652, 655, 658, 661, 598, 614 664, 667, 54, 670, 673, 676, 679, 682, 661, 685, 688, 615 691, 694, 697, 700, 703, 0, 0, 0, 0, 0, 616 }}, 617 {{ 618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 620 0, 0, 0, 0, 0, 0, 640, 643, 646, 649, 621 }}, 622 {{ 623 652, 655, 658, 661, 598, 664, 667, 54, 670, 673, 676, 624 679, 682, 661, 685, 688, 691, 694, 697, 700, 703, 0, 625 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626 }}, 627 {{ 628 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, 629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 630 640, 643, 646, 649, 652, 655, 658, 661, 598, 664, 631 }}, 632 {{ 633 667, 54, 670, 673, 676, 679, 682, 661, 685, 688, 691, 634 694, 697, 700, 703, 0, 0, 0, 0, 0, 0, 0, 635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 636 }}, 637 {{ 638 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 639 0, 0, 0, 0, 0, 640, 643, 646, 649, 652, 655, 640 658, 661, 598, 664, 667, 54, 670, 673, 676, 679, 641 }}, 642 {{ 643 682, 661, 685, 688, 691, 694, 697, 700, 703, 0, 0, 644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 645 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, 646 }}, 647}; 648 649static const unsigned char nameprep_rfc3491_map_data[] = { 650 0, 0, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101, 651 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, 652 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, 653 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, 654 1, 120, 1, 121, 1, 122, 2, 188, 3, 1, 224, 1, 655 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, 656 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, 657 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, 658 243, 1, 244, 1, 245, 1, 246, 1, 248, 1, 249, 1, 659 250, 1, 251, 1, 252, 1, 253, 1, 254, 5, 115, 0, 660 0, 0, 115, 2, 1, 1, 2, 3, 1, 2, 5, 1, 661 2, 7, 1, 2, 9, 1, 2, 11, 1, 2, 13, 1, 662 2, 15, 1, 2, 17, 1, 2, 19, 1, 2, 21, 1, 663 2, 23, 1, 2, 25, 1, 2, 27, 1, 2, 29, 1, 664 2, 31, 1, 2, 33, 1, 2, 35, 1, 2, 37, 1, 665 2, 39, 1, 2, 41, 1, 2, 43, 1, 2, 45, 1, 666 2, 47, 1, 6, 105, 0, 0, 0, 7, 3, 2, 51, 667 1, 2, 53, 1, 2, 55, 1, 2, 58, 1, 2, 60, 668 1, 2, 62, 1, 2, 64, 1, 2, 66, 1, 2, 68, 669 1, 2, 70, 1, 2, 72, 1, 5, 188, 2, 0, 0, 670 110, 2, 75, 1, 2, 77, 1, 2, 79, 1, 2, 81, 671 1, 2, 83, 1, 2, 85, 1, 2, 87, 1, 2, 89, 672 1, 2, 91, 1, 2, 93, 1, 2, 95, 1, 2, 97, 673 1, 2, 99, 1, 2, 101, 1, 2, 103, 1, 2, 105, 674 1, 2, 107, 1, 2, 109, 1, 2, 111, 1, 2, 113, 675 1, 2, 115, 1, 2, 117, 1, 2, 119, 1, 1, 255, 676 2, 122, 1, 2, 124, 1, 2, 126, 1, 2, 83, 2, 677 2, 131, 1, 2, 133, 1, 2, 84, 2, 2, 136, 1, 678 2, 86, 2, 2, 87, 2, 2, 140, 1, 2, 221, 1, 679 2, 89, 2, 2, 91, 2, 2, 146, 1, 2, 96, 2, 680 2, 99, 2, 2, 105, 2, 2, 104, 2, 2, 153, 1, 681 2, 111, 2, 2, 114, 2, 2, 117, 2, 2, 161, 1, 682 2, 163, 1, 2, 165, 1, 2, 128, 2, 2, 168, 1, 683 2, 131, 2, 2, 173, 1, 2, 136, 2, 2, 176, 1, 684 2, 138, 2, 2, 139, 2, 2, 180, 1, 2, 182, 1, 685 2, 146, 2, 2, 185, 1, 2, 189, 1, 2, 198, 1, 686 2, 201, 1, 2, 204, 1, 2, 206, 1, 2, 208, 1, 687 2, 210, 1, 2, 212, 1, 2, 214, 1, 2, 216, 1, 688 2, 218, 1, 2, 220, 1, 2, 223, 1, 2, 225, 1, 689 2, 227, 1, 2, 229, 1, 2, 231, 1, 2, 233, 1, 690 2, 235, 1, 2, 237, 1, 2, 239, 1, 6, 106, 0, 691 0, 0, 12, 3, 2, 243, 1, 2, 245, 1, 2, 149, 692 1, 2, 191, 1, 2, 249, 1, 2, 251, 1, 2, 253, 693 1, 2, 255, 1, 2, 1, 2, 2, 3, 2, 2, 5, 694 2, 2, 7, 2, 2, 9, 2, 2, 11, 2, 2, 13, 695 2, 2, 15, 2, 2, 17, 2, 2, 19, 2, 2, 21, 696 2, 2, 23, 2, 2, 25, 2, 2, 27, 2, 2, 29, 697 2, 2, 31, 2, 2, 158, 1, 2, 35, 2, 2, 37, 698 2, 2, 39, 2, 2, 41, 2, 2, 43, 2, 2, 45, 699 2, 2, 47, 2, 2, 49, 2, 2, 51, 2, 2, 185, 700 3, 6, 32, 0, 0, 0, 185, 3, 2, 172, 3, 2, 701 173, 3, 2, 174, 3, 2, 175, 3, 2, 204, 3, 2, 702 205, 3, 2, 206, 3, 10, 185, 3, 0, 0, 8, 3, 703 0, 0, 1, 3, 2, 177, 3, 2, 178, 3, 2, 179, 704 3, 2, 180, 3, 2, 181, 3, 2, 182, 3, 2, 183, 705 3, 2, 184, 3, 2, 186, 3, 2, 187, 3, 2, 189, 706 3, 2, 190, 3, 2, 191, 3, 2, 192, 3, 2, 193, 707 3, 2, 195, 3, 2, 196, 3, 2, 197, 3, 2, 198, 708 3, 2, 199, 3, 2, 200, 3, 2, 201, 3, 2, 202, 709 3, 2, 203, 3, 10, 197, 3, 0, 0, 8, 3, 0, 710 0, 1, 3, 2, 217, 3, 2, 219, 3, 2, 221, 3, 711 2, 223, 3, 2, 225, 3, 2, 227, 3, 2, 229, 3, 712 2, 231, 3, 2, 233, 3, 2, 235, 3, 2, 237, 3, 713 2, 239, 3, 2, 80, 4, 2, 81, 4, 2, 82, 4, 714 2, 83, 4, 2, 84, 4, 2, 85, 4, 2, 86, 4, 715 2, 87, 4, 2, 88, 4, 2, 89, 4, 2, 90, 4, 716 2, 91, 4, 2, 92, 4, 2, 93, 4, 2, 94, 4, 717 2, 95, 4, 2, 48, 4, 2, 49, 4, 2, 50, 4, 718 2, 51, 4, 2, 52, 4, 2, 53, 4, 2, 54, 4, 719 2, 55, 4, 2, 56, 4, 2, 57, 4, 2, 58, 4, 720 2, 59, 4, 2, 60, 4, 2, 61, 4, 2, 62, 4, 721 2, 63, 4, 2, 64, 4, 2, 65, 4, 2, 66, 4, 722 2, 67, 4, 2, 68, 4, 2, 69, 4, 2, 70, 4, 723 2, 71, 4, 2, 72, 4, 2, 73, 4, 2, 74, 4, 724 2, 75, 4, 2, 76, 4, 2, 77, 4, 2, 78, 4, 725 2, 79, 4, 2, 97, 4, 2, 99, 4, 2, 101, 4, 726 2, 103, 4, 2, 105, 4, 2, 107, 4, 2, 109, 4, 727 2, 111, 4, 2, 113, 4, 2, 115, 4, 2, 117, 4, 728 2, 119, 4, 2, 121, 4, 2, 123, 4, 2, 125, 4, 729 2, 127, 4, 2, 129, 4, 2, 139, 4, 2, 141, 4, 730 2, 143, 4, 2, 145, 4, 2, 147, 4, 2, 149, 4, 731 2, 151, 4, 2, 153, 4, 2, 155, 4, 2, 157, 4, 732 2, 159, 4, 2, 161, 4, 2, 163, 4, 2, 165, 4, 733 2, 167, 4, 2, 169, 4, 2, 171, 4, 2, 173, 4, 734 2, 175, 4, 2, 177, 4, 2, 179, 4, 2, 181, 4, 735 2, 183, 4, 2, 185, 4, 2, 187, 4, 2, 189, 4, 736 2, 191, 4, 2, 194, 4, 2, 196, 4, 2, 198, 4, 737 2, 200, 4, 2, 202, 4, 2, 204, 4, 2, 206, 4, 738 2, 209, 4, 2, 211, 4, 2, 213, 4, 2, 215, 4, 739 2, 217, 4, 2, 219, 4, 2, 221, 4, 2, 223, 4, 740 2, 225, 4, 2, 227, 4, 2, 229, 4, 2, 231, 4, 741 2, 233, 4, 2, 235, 4, 2, 237, 4, 2, 239, 4, 742 2, 241, 4, 2, 243, 4, 2, 245, 4, 2, 249, 4, 743 2, 1, 5, 2, 3, 5, 2, 5, 5, 2, 7, 5, 744 2, 9, 5, 2, 11, 5, 2, 13, 5, 2, 15, 5, 745 2, 97, 5, 2, 98, 5, 2, 99, 5, 2, 100, 5, 746 2, 101, 5, 2, 102, 5, 2, 103, 5, 2, 104, 5, 747 2, 105, 5, 2, 106, 5, 2, 107, 5, 2, 108, 5, 748 2, 109, 5, 2, 110, 5, 2, 111, 5, 2, 112, 5, 749 2, 113, 5, 2, 114, 5, 2, 115, 5, 2, 116, 5, 750 2, 117, 5, 2, 118, 5, 2, 119, 5, 2, 120, 5, 751 2, 121, 5, 2, 122, 5, 2, 123, 5, 2, 124, 5, 752 2, 125, 5, 2, 126, 5, 2, 127, 5, 2, 128, 5, 753 2, 129, 5, 2, 130, 5, 2, 131, 5, 2, 132, 5, 754 2, 133, 5, 2, 134, 5, 6, 101, 5, 0, 0, 130, 755 5, 2, 1, 30, 2, 3, 30, 2, 5, 30, 2, 7, 756 30, 2, 9, 30, 2, 11, 30, 2, 13, 30, 2, 15, 757 30, 2, 17, 30, 2, 19, 30, 2, 21, 30, 2, 23, 758 30, 2, 25, 30, 2, 27, 30, 2, 29, 30, 2, 31, 759 30, 2, 33, 30, 2, 35, 30, 2, 37, 30, 2, 39, 760 30, 2, 41, 30, 2, 43, 30, 2, 45, 30, 2, 47, 761 30, 2, 49, 30, 2, 51, 30, 2, 53, 30, 2, 55, 762 30, 2, 57, 30, 2, 59, 30, 2, 61, 30, 2, 63, 763 30, 2, 65, 30, 2, 67, 30, 2, 69, 30, 2, 71, 764 30, 2, 73, 30, 2, 75, 30, 2, 77, 30, 2, 79, 765 30, 2, 81, 30, 2, 83, 30, 2, 85, 30, 2, 87, 766 30, 2, 89, 30, 2, 91, 30, 2, 93, 30, 2, 95, 767 30, 2, 97, 30, 2, 99, 30, 2, 101, 30, 2, 103, 768 30, 2, 105, 30, 2, 107, 30, 2, 109, 30, 2, 111, 769 30, 2, 113, 30, 2, 115, 30, 2, 117, 30, 2, 119, 770 30, 2, 121, 30, 2, 123, 30, 2, 125, 30, 2, 127, 771 30, 2, 129, 30, 2, 131, 30, 2, 133, 30, 2, 135, 772 30, 2, 137, 30, 2, 139, 30, 2, 141, 30, 2, 143, 773 30, 2, 145, 30, 2, 147, 30, 2, 149, 30, 6, 104, 774 0, 0, 0, 49, 3, 6, 116, 0, 0, 0, 8, 3, 775 6, 119, 0, 0, 0, 10, 3, 6, 121, 0, 0, 0, 776 10, 3, 6, 97, 0, 0, 0, 190, 2, 2, 161, 30, 777 2, 163, 30, 2, 165, 30, 2, 167, 30, 2, 169, 30, 778 2, 171, 30, 2, 173, 30, 2, 175, 30, 2, 177, 30, 779 2, 179, 30, 2, 181, 30, 2, 183, 30, 2, 185, 30, 780 2, 187, 30, 2, 189, 30, 2, 191, 30, 2, 193, 30, 781 2, 195, 30, 2, 197, 30, 2, 199, 30, 2, 201, 30, 782 2, 203, 30, 2, 205, 30, 2, 207, 30, 2, 209, 30, 783 2, 211, 30, 2, 213, 30, 2, 215, 30, 2, 217, 30, 784 2, 219, 30, 2, 221, 30, 2, 223, 30, 2, 225, 30, 785 2, 227, 30, 2, 229, 30, 2, 231, 30, 2, 233, 30, 786 2, 235, 30, 2, 237, 30, 2, 239, 30, 2, 241, 30, 787 2, 243, 30, 2, 245, 30, 2, 247, 30, 2, 249, 30, 788 2, 0, 31, 2, 1, 31, 2, 2, 31, 2, 3, 31, 789 2, 4, 31, 2, 5, 31, 2, 6, 31, 2, 7, 31, 790 2, 16, 31, 2, 17, 31, 2, 18, 31, 2, 19, 31, 791 2, 20, 31, 2, 21, 31, 2, 32, 31, 2, 33, 31, 792 2, 34, 31, 2, 35, 31, 2, 36, 31, 2, 37, 31, 793 2, 38, 31, 2, 39, 31, 2, 48, 31, 2, 49, 31, 794 2, 50, 31, 2, 51, 31, 2, 52, 31, 2, 53, 31, 795 2, 54, 31, 2, 55, 31, 2, 64, 31, 2, 65, 31, 796 2, 66, 31, 2, 67, 31, 2, 68, 31, 2, 69, 31, 797 6, 197, 3, 0, 0, 19, 3, 10, 197, 3, 0, 0, 798 19, 3, 0, 0, 0, 3, 10, 197, 3, 0, 0, 19, 799 3, 0, 0, 1, 3, 10, 197, 3, 0, 0, 19, 3, 800 0, 0, 66, 3, 2, 81, 31, 2, 83, 31, 2, 85, 801 31, 2, 87, 31, 2, 96, 31, 2, 97, 31, 2, 98, 802 31, 2, 99, 31, 2, 100, 31, 2, 101, 31, 2, 102, 803 31, 2, 103, 31, 6, 0, 31, 0, 0, 185, 3, 6, 804 1, 31, 0, 0, 185, 3, 6, 2, 31, 0, 0, 185, 805 3, 6, 3, 31, 0, 0, 185, 3, 6, 4, 31, 0, 806 0, 185, 3, 6, 5, 31, 0, 0, 185, 3, 6, 6, 807 31, 0, 0, 185, 3, 6, 7, 31, 0, 0, 185, 3, 808 6, 32, 31, 0, 0, 185, 3, 6, 33, 31, 0, 0, 809 185, 3, 6, 34, 31, 0, 0, 185, 3, 6, 35, 31, 810 0, 0, 185, 3, 6, 36, 31, 0, 0, 185, 3, 6, 811 37, 31, 0, 0, 185, 3, 6, 38, 31, 0, 0, 185, 812 3, 6, 39, 31, 0, 0, 185, 3, 6, 96, 31, 0, 813 0, 185, 3, 6, 97, 31, 0, 0, 185, 3, 6, 98, 814 31, 0, 0, 185, 3, 6, 99, 31, 0, 0, 185, 3, 815 6, 100, 31, 0, 0, 185, 3, 6, 101, 31, 0, 0, 816 185, 3, 6, 102, 31, 0, 0, 185, 3, 6, 103, 31, 817 0, 0, 185, 3, 6, 112, 31, 0, 0, 185, 3, 6, 818 177, 3, 0, 0, 185, 3, 6, 172, 3, 0, 0, 185, 819 3, 6, 177, 3, 0, 0, 66, 3, 10, 177, 3, 0, 820 0, 66, 3, 0, 0, 185, 3, 2, 176, 31, 2, 177, 821 31, 2, 112, 31, 2, 113, 31, 6, 116, 31, 0, 0, 822 185, 3, 6, 183, 3, 0, 0, 185, 3, 6, 174, 3, 823 0, 0, 185, 3, 6, 183, 3, 0, 0, 66, 3, 10, 824 183, 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 114, 825 31, 2, 115, 31, 2, 116, 31, 2, 117, 31, 10, 185, 826 3, 0, 0, 8, 3, 0, 0, 0, 3, 6, 185, 3, 827 0, 0, 66, 3, 10, 185, 3, 0, 0, 8, 3, 0, 828 0, 66, 3, 2, 208, 31, 2, 209, 31, 2, 118, 31, 829 2, 119, 31, 10, 197, 3, 0, 0, 8, 3, 0, 0, 830 0, 3, 6, 193, 3, 0, 0, 19, 3, 6, 197, 3, 831 0, 0, 66, 3, 10, 197, 3, 0, 0, 8, 3, 0, 832 0, 66, 3, 2, 224, 31, 2, 225, 31, 2, 122, 31, 833 2, 123, 31, 2, 229, 31, 6, 124, 31, 0, 0, 185, 834 3, 6, 201, 3, 0, 0, 185, 3, 6, 206, 3, 0, 835 0, 185, 3, 6, 201, 3, 0, 0, 66, 3, 10, 201, 836 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 120, 31, 837 2, 121, 31, 2, 124, 31, 2, 125, 31, 5, 114, 0, 838 0, 0, 115, 5, 176, 0, 0, 0, 99, 5, 176, 0, 839 0, 0, 102, 5, 110, 0, 0, 0, 111, 5, 115, 0, 840 0, 0, 109, 9, 116, 0, 0, 0, 101, 0, 0, 0, 841 108, 5, 116, 0, 0, 0, 109, 2, 112, 33, 2, 113, 842 33, 2, 114, 33, 2, 115, 33, 2, 116, 33, 2, 117, 843 33, 2, 118, 33, 2, 119, 33, 2, 120, 33, 2, 121, 844 33, 2, 122, 33, 2, 123, 33, 2, 124, 33, 2, 125, 845 33, 2, 126, 33, 2, 127, 33, 2, 208, 36, 2, 209, 846 36, 2, 210, 36, 2, 211, 36, 2, 212, 36, 2, 213, 847 36, 2, 214, 36, 2, 215, 36, 2, 216, 36, 2, 217, 848 36, 2, 218, 36, 2, 219, 36, 2, 220, 36, 2, 221, 849 36, 2, 222, 36, 2, 223, 36, 2, 224, 36, 2, 225, 850 36, 2, 226, 36, 2, 227, 36, 2, 228, 36, 2, 229, 851 36, 2, 230, 36, 2, 231, 36, 2, 232, 36, 2, 233, 852 36, 9, 104, 0, 0, 0, 112, 0, 0, 0, 97, 5, 853 97, 0, 0, 0, 117, 5, 111, 0, 0, 0, 118, 5, 854 112, 0, 0, 0, 97, 5, 110, 0, 0, 0, 97, 5, 855 188, 3, 0, 0, 97, 5, 109, 0, 0, 0, 97, 5, 856 107, 0, 0, 0, 97, 5, 107, 0, 0, 0, 98, 5, 857 109, 0, 0, 0, 98, 5, 103, 0, 0, 0, 98, 5, 858 112, 0, 0, 0, 102, 5, 110, 0, 0, 0, 102, 5, 859 188, 3, 0, 0, 102, 5, 104, 0, 0, 0, 122, 9, 860 107, 0, 0, 0, 104, 0, 0, 0, 122, 9, 109, 0, 861 0, 0, 104, 0, 0, 0, 122, 9, 103, 0, 0, 0, 862 104, 0, 0, 0, 122, 9, 116, 0, 0, 0, 104, 0, 863 0, 0, 122, 9, 107, 0, 0, 0, 112, 0, 0, 0, 864 97, 9, 109, 0, 0, 0, 112, 0, 0, 0, 97, 9, 865 103, 0, 0, 0, 112, 0, 0, 0, 97, 5, 112, 0, 866 0, 0, 118, 5, 110, 0, 0, 0, 118, 5, 188, 3, 867 0, 0, 118, 5, 109, 0, 0, 0, 118, 5, 107, 0, 868 0, 0, 118, 5, 112, 0, 0, 0, 119, 5, 110, 0, 869 0, 0, 119, 5, 188, 3, 0, 0, 119, 5, 109, 0, 870 0, 0, 119, 5, 107, 0, 0, 0, 119, 6, 107, 0, 871 0, 0, 201, 3, 6, 109, 0, 0, 0, 201, 3, 5, 872 98, 0, 0, 0, 113, 13, 99, 0, 0, 0, 21, 34, 873 0, 0, 107, 0, 0, 0, 103, 9, 99, 0, 0, 0, 874 111, 0, 0, 0, 46, 5, 100, 0, 0, 0, 98, 5, 875 103, 0, 0, 0, 121, 5, 104, 0, 0, 0, 112, 5, 876 107, 0, 0, 0, 107, 5, 107, 0, 0, 0, 109, 5, 877 112, 0, 0, 0, 104, 9, 112, 0, 0, 0, 112, 0, 878 0, 0, 109, 5, 112, 0, 0, 0, 114, 5, 115, 0, 879 0, 0, 118, 5, 119, 0, 0, 0, 98, 5, 102, 0, 880 0, 0, 102, 5, 102, 0, 0, 0, 105, 5, 102, 0, 881 0, 0, 108, 9, 102, 0, 0, 0, 102, 0, 0, 0, 882 105, 9, 102, 0, 0, 0, 102, 0, 0, 0, 108, 5, 883 115, 0, 0, 0, 116, 6, 116, 5, 0, 0, 118, 5, 884 6, 116, 5, 0, 0, 101, 5, 6, 116, 5, 0, 0, 885 107, 5, 6, 126, 5, 0, 0, 118, 5, 6, 116, 5, 886 0, 0, 109, 5, 2, 65, 255, 2, 66, 255, 2, 67, 887 255, 2, 68, 255, 2, 69, 255, 2, 70, 255, 2, 71, 888 255, 2, 72, 255, 2, 73, 255, 2, 74, 255, 2, 75, 889 255, 2, 76, 255, 2, 77, 255, 2, 78, 255, 2, 79, 890 255, 2, 80, 255, 2, 81, 255, 2, 82, 255, 2, 83, 891 255, 2, 84, 255, 2, 85, 255, 2, 86, 255, 2, 87, 892 255, 2, 88, 255, 2, 89, 255, 2, 90, 255, 3, 40, 893 4, 1, 3, 41, 4, 1, 3, 42, 4, 1, 3, 43, 894 4, 1, 3, 44, 4, 1, 3, 45, 4, 1, 3, 46, 895 4, 1, 3, 47, 4, 1, 3, 48, 4, 1, 3, 49, 896 4, 1, 3, 50, 4, 1, 3, 51, 4, 1, 3, 52, 897 4, 1, 3, 53, 4, 1, 3, 54, 4, 1, 3, 55, 898 4, 1, 3, 56, 4, 1, 3, 57, 4, 1, 3, 58, 899 4, 1, 3, 59, 4, 1, 3, 60, 4, 1, 3, 61, 900 4, 1, 3, 62, 4, 1, 3, 63, 4, 1, 3, 64, 901 4, 1, 3, 65, 4, 1, 3, 66, 4, 1, 3, 67, 902 4, 1, 3, 68, 4, 1, 3, 69, 4, 1, 3, 70, 903 4, 1, 3, 71, 4, 1, 3, 72, 4, 1, 3, 73, 904 4, 1, 3, 74, 4, 1, 3, 75, 4, 1, 3, 76, 905 4, 1, 3, 77, 4, 1, 906}; 907 908static const unsigned short nameprep_rfc3491_prohibited_imap[] = { 909 68, 196, 196, 324, 196, 196, 196, 452, 910 196, 196, 196, 580, 196, 196, 196, 580, 911 196, 196, 196, 580, 196, 196, 196, 580, 912 196, 196, 196, 580, 196, 196, 196, 580, 913 196, 196, 196, 580, 196, 196, 196, 580, 914 196, 196, 196, 580, 196, 196, 196, 580, 915 196, 196, 196, 580, 196, 196, 196, 580, 916 708, 196, 196, 580, 836, 836, 836, 836, 917 836, 836, 836, 836, 0, 1, 0, 0, 918 0, 0, 2, 0, 0, 0, 0, 0, 919 0, 3, 4, 0, 0, 0, 0, 0, 920 0, 0, 0, 0, 0, 0, 0, 0, 921 0, 0, 0, 0, 0, 0, 0, 0, 922 0, 0, 0, 0, 0, 0, 0, 0, 923 0, 5, 0, 0, 6, 0, 0, 0, 924 0, 0, 0, 0, 0, 0, 0, 0, 925 0, 0, 0, 0, 7, 0, 0, 0, 926 0, 0, 0, 0, 0, 0, 0, 0, 927 0, 0, 0, 0, 0, 0, 0, 0, 928 0, 0, 0, 0, 0, 0, 0, 0, 929 0, 0, 0, 8, 5, 0, 0, 0, 930 0, 0, 0, 0, 0, 0, 0, 0, 931 0, 0, 0, 0, 0, 0, 0, 0, 932 0, 0, 0, 0, 0, 0, 0, 0, 933 0, 0, 0, 0, 0, 0, 0, 0, 934 0, 0, 0, 0, 0, 0, 0, 0, 935 0, 0, 0, 0, 0, 0, 0, 0, 936 0, 0, 0, 0, 0, 0, 0, 0, 937 0, 0, 0, 0, 0, 0, 0, 0, 938 0, 0, 0, 0, 0, 0, 0, 0, 939 0, 0, 0, 0, 0, 0, 0, 0, 940 0, 0, 0, 0, 0, 0, 0, 0, 941 0, 0, 0, 0, 0, 0, 0, 0, 942 0, 0, 0, 0, 0, 0, 0, 0, 943 0, 0, 0, 0, 0, 0, 0, 0, 944 0, 0, 0, 0, 0, 0, 0, 0, 945 0, 0, 0, 0, 0, 0, 0, 0, 946 0, 0, 0, 0, 0, 0, 0, 0, 947 0, 0, 0, 0, 0, 0, 0, 0, 948 0, 0, 0, 0, 0, 0, 0, 0, 949 0, 0, 0, 0, 0, 0, 0, 0, 950 0, 0, 0, 0, 0, 0, 0, 0, 951 0, 0, 0, 0, 0, 0, 0, 0, 952 0, 0, 0, 0, 0, 0, 0, 0, 953 0, 0, 0, 0, 0, 0, 0, 0, 954 0, 0, 0, 0, 0, 0, 0, 0, 955 0, 0, 0, 0, 9, 9, 9, 9, 956 9, 9, 9, 9, 9, 9, 9, 9, 957 9, 9, 9, 9, 9, 9, 9, 9, 958 9, 9, 9, 9, 9, 9, 9, 9, 959 9, 9, 9, 9, 9, 9, 9, 9, 960 9, 9, 9, 9, 9, 9, 9, 9, 961 9, 9, 9, 9, 9, 9, 9, 9, 962 9, 9, 9, 9, 9, 9, 9, 9, 963 9, 9, 9, 9, 9, 9, 0, 0, 964 0, 0, 0, 0, 0, 0, 0, 10, 965 0, 0, 0, 11, 0, 0, 0, 0, 966 0, 0, 0, 0, 0, 0, 0, 0, 967 0, 0, 0, 0, 0, 0, 0, 0, 968 0, 0, 0, 0, 0, 0, 0, 0, 969 0, 0, 0, 0, 0, 0, 12, 0, 970 0, 0, 0, 0, 0, 0, 0, 0, 971 0, 0, 0, 0, 0, 0, 0, 0, 972 0, 0, 0, 0, 0, 0, 0, 0, 973 0, 0, 0, 0, 0, 0, 0, 0, 974 0, 0, 0, 0, 0, 0, 0, 0, 975 0, 0, 0, 0, 0, 0, 0, 0, 976 0, 0, 0, 0, 0, 0, 0, 0, 977 0, 0, 0, 0, 0, 0, 0, 0, 978 0, 0, 0, 0, 0, 0, 0, 0, 979 0, 0, 0, 0, 0, 0, 0, 0, 980 0, 0, 0, 0, 0, 0, 0, 0, 981 0, 0, 0, 13, 0, 0, 0, 0, 982 0, 0, 0, 0, 0, 0, 0, 0, 983 0, 0, 0, 0, 0, 0, 0, 0, 984 0, 0, 0, 0, 0, 0, 0, 0, 985 0, 0, 0, 0, 0, 0, 0, 0, 986 0, 0, 0, 0, 0, 0, 0, 0, 987 0, 0, 0, 0, 0, 0, 0, 0, 988 0, 0, 0, 0, 0, 0, 0, 0, 989 0, 0, 0, 0, 0, 0, 0, 0, 990 0, 0, 0, 0, 0, 0, 0, 0, 991 0, 0, 0, 0, 0, 0, 0, 0, 992 0, 0, 0, 0, 0, 0, 0, 0, 993 0, 0, 0, 0, 0, 0, 0, 0, 994 0, 0, 0, 0, 0, 0, 0, 0, 995 0, 0, 0, 0, 0, 0, 0, 0, 996 0, 0, 0, 0, 0, 0, 0, 0, 997 0, 0, 0, 13, 14, 0, 0, 0, 998 0, 0, 0, 0, 0, 0, 0, 0, 999 0, 0, 0, 0, 0, 0, 0, 0, 1000 0, 0, 0, 0, 0, 0, 0, 0, 1001 0, 0, 0, 0, 0, 0, 0, 0, 1002 0, 0, 0, 0, 0, 0, 0, 0, 1003 0, 0, 0, 0, 0, 0, 0, 0, 1004 0, 0, 0, 0, 0, 0, 0, 0, 1005 0, 0, 0, 0, 0, 0, 0, 0, 1006 0, 0, 0, 0, 0, 0, 0, 0, 1007 0, 0, 0, 0, 0, 0, 0, 0, 1008 0, 0, 0, 0, 0, 0, 0, 0, 1009 0, 0, 0, 0, 0, 0, 0, 0, 1010 0, 0, 0, 0, 0, 0, 0, 0, 1011 0, 0, 0, 0, 0, 0, 0, 0, 1012 0, 0, 0, 0, 0, 0, 0, 0, 1013 0, 0, 0, 0, 9, 9, 9, 9, 1014 9, 9, 9, 9, 9, 9, 9, 9, 1015 9, 9, 9, 9, 9, 9, 9, 9, 1016 9, 9, 9, 9, 9, 9, 9, 9, 1017 9, 9, 9, 9, 9, 9, 9, 9, 1018 9, 9, 9, 9, 9, 9, 9, 9, 1019 9, 9, 9, 9, 9, 9, 9, 9, 1020 9, 9, 9, 9, 9, 9, 9, 9, 1021 9, 9, 9, 9, 9, 9, 9, 9, 1022 9, 9, 9, 9, 9, 9, 9, 9, 1023 9, 9, 9, 9, 9, 9, 9, 9, 1024 9, 9, 9, 9, 9, 9, 9, 9, 1025 9, 9, 9, 9, 9, 9, 9, 9, 1026 9, 9, 9, 9, 9, 9, 9, 9, 1027 9, 9, 9, 9, 9, 9, 9, 9, 1028 9, 9, 9, 9, 9, 9, 9, 9, 1029 9, 9, 9, 9, 1030}; 1031 1032static const struct { 1033 unsigned char bm[16]; 1034} nameprep_rfc3491_prohibited_bitmap[] = { 1035 {{ 1036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1037 }}, 1038 {{ 1039 255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1040 }}, 1041 {{ 1042 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1043 }}, 1044 {{ 1045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 1046 }}, 1047 {{ 1048 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1049 }}, 1050 {{ 1051 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1052 }}, 1053 {{ 1054 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1055 }}, 1056 {{ 1057 255,199, 0, 0, 0,255, 0, 0, 0, 0, 0,128, 14,252, 0, 0, 1058 }}, 1059 {{ 1060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 15, 1061 }}, 1062 {{ 1063 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1064 }}, 1065 {{ 1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, 1067 }}, 1068 {{ 1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 1070 }}, 1071 {{ 1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 7, 1073 }}, 1074 {{ 1075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1076 }}, 1077 {{ 1078 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, 1079 }}, 1080}; 1081 1082static const unsigned short nameprep_rfc3491_unassigned_imap[] = { 1083 68, 196, 324, 452, 580, 708, 708, 836, 1084 964, 964, 1092, 1220, 708, 708, 708, 1348, 1085 708, 708, 708, 1348, 708, 708, 708, 1348, 1086 708, 708, 708, 1348, 708, 708, 708, 1348, 1087 708, 708, 708, 1348, 708, 708, 708, 1348, 1088 708, 708, 708, 1348, 708, 708, 708, 1348, 1089 708, 708, 708, 1348, 708, 708, 708, 1348, 1090 1476, 708, 708, 1348, 964, 964, 964, 964, 1091 964, 964, 964, 964, 0, 0, 0, 0, 1092 1, 2, 3, 4, 0, 5, 6, 7, 1093 8, 9, 10, 11, 12, 12, 13, 14, 1094 15, 16, 17, 18, 19, 20, 21, 22, 1095 23, 24, 25, 26, 27, 28, 29, 30, 1096 31, 32, 33, 34, 35, 0, 0, 0, 1097 36, 37, 38, 39, 40, 41, 12, 12, 1098 12, 12, 12, 12, 12, 12, 12, 12, 1099 0, 42, 43, 44, 45, 46, 47, 48, 1100 0, 0, 0, 49, 50, 51, 0, 0, 1101 52, 53, 54, 55, 0, 0, 0, 0, 1102 0, 0, 12, 12, 12, 12, 12, 12, 1103 12, 56, 0, 57, 58, 59, 60, 61, 1104 62, 63, 64, 65, 0, 0, 0, 0, 1105 0, 0, 0, 0, 0, 0, 0, 0, 1106 0, 0, 0, 0, 0, 0, 0, 0, 1107 0, 0, 0, 0, 0, 0, 0, 0, 1108 0, 0, 0, 0, 0, 0, 0, 0, 1109 0, 0, 0, 0, 0, 0, 0, 0, 1110 0, 0, 0, 0, 0, 0, 0, 66, 1111 0, 0, 0, 0, 0, 0, 0, 0, 1112 0, 0, 0, 0, 0, 0, 0, 0, 1113 0, 0, 0, 0, 0, 0, 0, 0, 1114 0, 0, 0, 0, 0, 0, 0, 0, 1115 0, 0, 0, 0, 0, 0, 0, 0, 1116 0, 0, 0, 0, 0, 0, 0, 0, 1117 0, 0, 0, 0, 0, 0, 0, 0, 1118 0, 0, 0, 0, 0, 0, 0, 0, 1119 0, 0, 0, 0, 0, 0, 0, 0, 1120 0, 0, 0, 0, 0, 0, 0, 0, 1121 0, 0, 0, 0, 0, 0, 0, 0, 1122 0, 0, 0, 0, 0, 0, 0, 0, 1123 0, 0, 0, 0, 0, 0, 0, 0, 1124 0, 0, 0, 0, 0, 0, 0, 0, 1125 0, 0, 0, 0, 0, 0, 0, 0, 1126 0, 0, 0, 0, 0, 0, 0, 0, 1127 0, 0, 0, 0, 0, 0, 0, 0, 1128 0, 0, 0, 0, 0, 0, 0, 0, 1129 0, 0, 0, 0, 0, 0, 0, 0, 1130 0, 0, 0, 0, 0, 0, 0, 0, 1131 0, 0, 0, 67, 0, 0, 0, 0, 1132 0, 0, 0, 0, 0, 68, 12, 12, 1133 12, 12, 12, 12, 12, 12, 12, 12, 1134 12, 12, 12, 12, 0, 0, 0, 0, 1135 0, 0, 0, 0, 0, 0, 0, 0, 1136 0, 0, 0, 0, 0, 0, 0, 0, 1137 0, 0, 0, 0, 0, 0, 0, 0, 1138 0, 0, 0, 0, 0, 0, 0, 0, 1139 0, 0, 0, 0, 0, 0, 0, 0, 1140 0, 0, 0, 0, 0, 0, 0, 0, 1141 0, 0, 0, 0, 0, 0, 0, 0, 1142 0, 0, 0, 0, 0, 0, 0, 0, 1143 0, 0, 0, 0, 0, 0, 0, 0, 1144 0, 0, 0, 0, 0, 0, 0, 0, 1145 0, 0, 0, 69, 0, 0, 0, 0, 1146 0, 0, 0, 0, 0, 0, 0, 0, 1147 0, 0, 0, 0, 0, 0, 0, 0, 1148 0, 0, 0, 0, 0, 0, 0, 0, 1149 0, 0, 0, 0, 0, 0, 0, 0, 1150 0, 0, 0, 0, 0, 0, 0, 0, 1151 0, 0, 0, 0, 0, 0, 0, 0, 1152 0, 0, 0, 0, 0, 0, 0, 0, 1153 0, 0, 0, 0, 0, 0, 0, 0, 1154 70, 12, 71, 72, 0, 0, 73, 74, 1155 75, 76, 35, 77, 12, 12, 12, 12, 1156 12, 12, 78, 12, 79, 12, 12, 12, 1157 12, 12, 12, 12, 12, 12, 12, 12, 1158 12, 12, 12, 12, 12, 12, 12, 12, 1159 12, 12, 12, 12, 12, 12, 12, 12, 1160 12, 12, 12, 12, 12, 12, 12, 12, 1161 12, 12, 12, 12, 12, 12, 12, 12, 1162 12, 12, 12, 12, 12, 12, 12, 12, 1163 12, 12, 12, 12, 12, 12, 12, 12, 1164 12, 12, 12, 12, 12, 12, 12, 12, 1165 12, 12, 12, 12, 12, 12, 12, 12, 1166 12, 12, 12, 12, 12, 12, 12, 12, 1167 12, 12, 12, 12, 12, 12, 12, 12, 1168 12, 12, 12, 12, 12, 12, 12, 12, 1169 12, 12, 12, 12, 12, 12, 12, 12, 1170 12, 12, 12, 12, 12, 12, 12, 12, 1171 12, 12, 12, 12, 12, 12, 12, 12, 1172 12, 12, 12, 12, 12, 12, 12, 12, 1173 12, 12, 12, 12, 12, 12, 12, 12, 1174 12, 12, 12, 12, 12, 12, 12, 12, 1175 12, 12, 12, 12, 12, 12, 12, 12, 1176 12, 12, 12, 12, 12, 12, 12, 12, 1177 12, 12, 12, 12, 12, 12, 12, 12, 1178 12, 12, 12, 12, 12, 12, 12, 12, 1179 12, 12, 12, 12, 12, 12, 12, 12, 1180 12, 12, 12, 12, 12, 12, 12, 12, 1181 12, 12, 12, 12, 12, 12, 12, 12, 1182 12, 12, 12, 12, 12, 12, 12, 12, 1183 12, 12, 12, 12, 12, 12, 12, 12, 1184 12, 12, 12, 12, 12, 12, 12, 12, 1185 12, 12, 12, 12, 12, 12, 12, 12, 1186 12, 12, 12, 12, 12, 12, 12, 12, 1187 12, 12, 12, 12, 12, 12, 12, 12, 1188 12, 12, 12, 12, 12, 12, 12, 12, 1189 12, 12, 12, 12, 12, 12, 12, 12, 1190 12, 12, 12, 12, 12, 12, 12, 12, 1191 12, 12, 12, 12, 0, 80, 81, 82, 1192 12, 12, 12, 12, 83, 84, 85, 0, 1193 0, 86, 0, 87, 12, 12, 12, 12, 1194 12, 12, 12, 12, 12, 12, 12, 12, 1195 12, 12, 12, 12, 12, 12, 12, 12, 1196 12, 12, 12, 12, 12, 12, 12, 12, 1197 12, 12, 12, 12, 12, 12, 12, 12, 1198 12, 12, 12, 12, 12, 12, 12, 12, 1199 12, 12, 12, 12, 12, 12, 12, 12, 1200 12, 12, 12, 12, 12, 12, 12, 12, 1201 12, 12, 12, 12, 12, 12, 12, 12, 1202 12, 12, 12, 12, 12, 12, 12, 12, 1203 12, 12, 12, 88, 0, 0, 0, 0, 1204 0, 0, 0, 0, 0, 0, 0, 0, 1205 0, 0, 0, 0, 0, 0, 0, 0, 1206 0, 0, 0, 0, 0, 0, 0, 0, 1207 0, 0, 0, 0, 0, 0, 0, 0, 1208 0, 0, 0, 0, 0, 0, 0, 0, 1209 0, 0, 0, 0, 0, 0, 0, 0, 1210 0, 0, 0, 0, 0, 0, 0, 0, 1211 0, 0, 0, 0, 0, 0, 0, 0, 1212 0, 0, 0, 0, 0, 0, 0, 0, 1213 0, 0, 0, 0, 0, 0, 0, 0, 1214 0, 0, 0, 0, 0, 0, 0, 0, 1215 0, 0, 0, 0, 0, 0, 0, 0, 1216 0, 0, 0, 0, 0, 0, 0, 0, 1217 0, 0, 0, 0, 0, 0, 0, 0, 1218 0, 0, 0, 0, 0, 0, 0, 0, 1219 0, 0, 0, 0, 0, 0, 0, 0, 1220 0, 0, 0, 0, 0, 0, 0, 0, 1221 0, 0, 0, 0, 0, 0, 0, 0, 1222 0, 0, 0, 0, 0, 0, 0, 0, 1223 0, 0, 0, 0, 0, 0, 0, 0, 1224 0, 0, 0, 0, 0, 0, 0, 0, 1225 0, 0, 0, 0, 0, 0, 0, 0, 1226 0, 0, 0, 0, 0, 0, 0, 0, 1227 0, 0, 0, 0, 0, 0, 0, 0, 1228 0, 0, 0, 0, 0, 0, 0, 0, 1229 0, 89, 12, 12, 12, 12, 12, 12, 1230 12, 12, 12, 12, 12, 12, 12, 12, 1231 12, 12, 12, 12, 12, 12, 12, 12, 1232 12, 12, 12, 12, 12, 12, 12, 12, 1233 12, 12, 12, 12, 12, 12, 12, 12, 1234 12, 12, 12, 12, 12, 12, 12, 12, 1235 12, 12, 12, 12, 12, 12, 12, 12, 1236 12, 12, 12, 12, 12, 12, 12, 12, 1237 12, 12, 12, 12, 12, 12, 12, 12, 1238 12, 12, 12, 12, 12, 12, 12, 12, 1239 12, 12, 12, 12, 12, 12, 12, 12, 1240 12, 12, 12, 12, 12, 12, 12, 12, 1241 12, 12, 12, 12, 12, 12, 12, 12, 1242 12, 12, 12, 12, 12, 12, 12, 12, 1243 12, 12, 12, 12, 12, 12, 12, 12, 1244 12, 12, 12, 12, 12, 12, 12, 12, 1245 12, 12, 12, 12, 12, 12, 12, 12, 1246 12, 12, 12, 12, 12, 12, 12, 12, 1247 12, 12, 12, 12, 12, 12, 12, 12, 1248 12, 12, 12, 12, 12, 12, 12, 12, 1249 12, 12, 12, 12, 0, 0, 0, 0, 1250 90, 12, 12, 12, 12, 12, 12, 12, 1251 12, 12, 12, 88, 12, 12, 12, 12, 1252 12, 12, 12, 12, 12, 12, 12, 12, 1253 12, 12, 12, 12, 12, 12, 12, 12, 1254 12, 12, 12, 12, 12, 12, 12, 12, 1255 12, 12, 12, 12, 12, 12, 12, 12, 1256 12, 12, 12, 12, 12, 12, 12, 12, 1257 12, 12, 12, 12, 12, 12, 12, 12, 1258 12, 12, 12, 12, 12, 12, 12, 12, 1259 12, 12, 12, 12, 12, 12, 12, 12, 1260 12, 12, 12, 12, 12, 12, 12, 12, 1261 12, 12, 12, 12, 12, 12, 12, 12, 1262 12, 12, 12, 12, 12, 12, 12, 12, 1263 12, 12, 12, 12, 12, 12, 12, 12, 1264 12, 12, 12, 12, 12, 12, 12, 12, 1265 12, 12, 12, 12, 12, 12, 12, 12, 1266 12, 12, 12, 12, 12, 12, 12, 12, 1267 12, 12, 12, 88, 91, 12, 12, 12, 1268 12, 12, 12, 12, 12, 12, 12, 12, 1269 12, 12, 12, 12, 12, 12, 12, 12, 1270 12, 12, 12, 12, 12, 12, 12, 12, 1271 12, 12, 12, 12, 12, 12, 12, 12, 1272 12, 12, 12, 12, 12, 12, 12, 12, 1273 12, 12, 12, 12, 12, 12, 12, 12, 1274 12, 12, 12, 12, 12, 12, 12, 12, 1275 12, 12, 12, 12, 12, 12, 12, 12, 1276 12, 12, 12, 12, 12, 12, 12, 12, 1277 12, 12, 12, 12, 12, 12, 12, 12, 1278 12, 12, 12, 12, 12, 12, 12, 12, 1279 12, 12, 12, 12, 12, 12, 12, 12, 1280 12, 12, 12, 12, 12, 12, 12, 12, 1281 12, 12, 12, 12, 12, 12, 12, 12, 1282 12, 12, 12, 12, 12, 12, 12, 12, 1283 12, 12, 12, 12, 1284}; 1285 1286static const struct { 1287 unsigned char bm[16]; 1288} nameprep_rfc3491_unassigned_bitmap[] = { 1289 {{ 1290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1291 }}, 1292 {{ 1293 0, 0, 0, 0, 2, 0,240,255,255,255, 0, 0, 0, 0, 0, 0, 1294 }}, 1295 {{ 1296 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128,255,255, 1297 }}, 1298 {{ 1299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0,207,187, 1300 }}, 1301 {{ 1302 15, 40, 0, 0, 4, 0, 0, 0, 0,128, 0, 0, 0, 0,128,255, 1303 }}, 1304 {{ 1305 128, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,192,252, 1306 }}, 1307 {{ 1308 0, 0,255,255,255,255, 1, 0, 0, 0,128, 1, 1, 0, 0, 0, 1309 }}, 1310 {{ 1311 0,249, 1, 0, 4, 0, 0, 4,224,255, 0, 0, 0,248,224,255, 1312 }}, 1313 {{ 1314 255,239,255,119, 1, 0, 0,248, 0, 0,192,255, 0, 0, 0, 0, 1315 }}, 1316 {{ 1317 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0,128, 1318 }}, 1319 {{ 1320 0, 64, 0, 0, 0,224, 0, 0, 0,248,255,255,255,255,255,255, 1321 }}, 1322 {{ 1323 0, 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255, 1324 }}, 1325 {{ 1326 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1327 }}, 1328 {{ 1329 17, 0, 0, 0, 0, 0, 0, 12, 0,192,224, 0, 0, 0,254,255, 1330 }}, 1331 {{ 1332 17, 96, 6, 0, 0, 2, 58, 44, 96,198,127, 79, 48, 0, 0,248, 1333 }}, 1334 {{ 1335 27,120, 6, 0, 0, 2,146, 44,120,198,255,161, 63, 0,224,255, 1336 }}, 1337 {{ 1338 17, 80, 4, 0, 0, 2, 18, 12, 64,196,254,255, 62, 0,255,255, 1339 }}, 1340 {{ 1341 17, 96, 6, 0, 0, 2, 50, 12,112,198, 63, 79, 60, 0,254,255, 1342 }}, 1343 {{ 1344 19, 56,194, 41,231, 56, 64, 60, 56,194,127,255,127, 0,248,255, 1345 }}, 1346 {{ 1347 17, 32, 2, 0, 0, 2, 16, 60, 32,194,159,255, 60, 0,255,255, 1348 }}, 1349 {{ 1350 19, 32, 2, 0, 0, 2, 16, 60, 32,194,159,191, 60, 0,255,255, 1351 }}, 1352 {{ 1353 19, 32, 2, 0, 0, 2, 0, 60, 48,194,127,255, 60, 0,255,255, 1354 }}, 1355 {{ 1356 19, 0,128, 3, 0, 0, 4,208,128,123,160, 0,255,255,227,255, 1357 }}, 1358 {{ 1359 1, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,240,255,255,255,255, 1360 }}, 1361 {{ 1362 105,218, 15, 1, 81, 19, 0,196,160,192, 0,204,255,255,255,255, 1363 }}, 1364 {{ 1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248, 1, 0, 1366 }}, 1367 {{ 1368 0,240, 0, 1, 0, 0, 0, 32, 0, 96,255,255,255,255,255,255, 1369 }}, 1370 {{ 1371 0, 0, 0, 0, 4, 9, 56,252, 0, 0, 0,252,255,255,255,255, 1372 }}, 1373 {{ 1374 255,255,255,255, 0, 0, 0, 0,192,255, 0, 0, 0, 0, 0,246, 1375 }}, 1376 {{ 1377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, 1378 }}, 1379 {{ 1380 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 1381 }}, 1382 {{ 1383 128, 0, 0, 0, 0, 0, 0, 0,128,194,128,194, 0, 0, 0, 0, 1384 }}, 1385 {{ 1386 128,194, 0, 0, 0,128,194,128,194,128,128, 0, 0,128, 0, 0, 1387 }}, 1388 {{ 1389 0,128,194,128, 0, 0, 0, 0,128, 0, 0,248, 1, 0, 0,224, 1390 }}, 1391 {{ 1392 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,255, 1393 }}, 1394 {{ 1395 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1396 }}, 1397 {{ 1398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, 1399 }}, 1400 {{ 1401 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 1402 }}, 1403 {{ 1404 0, 32,224,255, 0, 0,128,255, 0, 0,240,255, 0, 32,242,255, 1405 }}, 1406 {{ 1407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 0,252,255,255, 1408 }}, 1409 {{ 1410 0,128, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1411 }}, 1412 {{ 1413 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,255, 1414 }}, 1415 {{ 1416 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 1417 }}, 1418 {{ 1419 0, 0,192,192, 0, 0, 0, 0,192,192, 0, 85, 0, 0, 0,192, 1420 }}, 1421 {{ 1422 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 48, 16, 0, 0, 35,128, 1423 }}, 1424 {{ 1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,127,240, 3, 12, 0, 1426 }}, 1427 {{ 1428 0,128,255,255, 0, 0,252,255,255,255, 0, 0, 0,248,255,255, 1429 }}, 1430 {{ 1431 0, 0, 0, 0, 0, 0, 0, 24, 0,240, 7, 0, 0, 0, 0, 0, 1432 }}, 1433 {{ 1434 240,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435 }}, 1436 {{ 1437 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255, 1438 }}, 1439 {{ 1440 0, 0, 0, 0,128,255,255,255, 0,248,255,255, 0, 0, 0, 0, 1441 }}, 1442 {{ 1443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1444 }}, 1445 {{ 1446 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 1447 }}, 1448 {{ 1449 0,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 1450 }}, 1451 {{ 1452 33, 12, 0, 0, 0, 1, 0, 0, 0, 80,184,128, 1, 0, 0, 0, 1453 }}, 1454 {{ 1455 0, 0,224, 0, 0, 0, 1,128,255,255, 0, 0, 0,240, 0, 0, 1456 }}, 1457 {{ 1458 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, 1459 }}, 1460 {{ 1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255, 0,240, 1462 }}, 1463 {{ 1464 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1465 }}, 1466 {{ 1467 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1468 }}, 1469 {{ 1470 31, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1471 }}, 1472 {{ 1473 0,128, 0, 0, 0, 0, 0,255,255,255,255,255,255,255, 0, 0, 1474 }}, 1475 {{ 1476 0, 0, 0,224, 0, 0, 0, 0,240,255, 1, 0, 0, 0, 0,112, 1477 }}, 1478 {{ 1479 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0,128, 1480 }}, 1481 {{ 1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 1483 }}, 1484 {{ 1485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,128, 1486 }}, 1487 {{ 1488 0, 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255, 1489 }}, 1490 {{ 1491 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255, 1492 }}, 1493 {{ 1494 0,224, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255,255, 1495 }}, 1496 {{ 1497 0, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255, 1498 }}, 1499 {{ 1500 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,248,255,255, 1501 }}, 1502 {{ 1503 128,255, 7, 31, 0, 0,128,160, 36, 0, 0, 0, 0, 0, 0, 0, 1504 }}, 1505 {{ 1506 0, 0, 0, 0, 0, 0,252,255,255,255, 7, 0, 0, 0, 0, 0, 1507 }}, 1508 {{ 1509 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, 1510 }}, 1511 {{ 1512 0, 0, 3, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0,224, 1513 }}, 1514 {{ 1515 0, 0,255,255,240,255, 0, 0,128, 1, 8, 0,128,240, 32, 0, 1516 }}, 1517 {{ 1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1519 }}, 1520 {{ 1521 0, 0, 0, 0, 0, 0, 0,128, 3, 3, 3,227,128,128,255, 1, 1522 }}, 1523 {{ 1524 0, 0, 0,128,240,255, 0, 0, 0,248,255,255,255,255,255,255, 1525 }}, 1526 {{ 1527 0, 0, 0, 0,192, 0, 0, 0, 0,192,255,255,255,255,255,255, 1528 }}, 1529 {{ 1530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255, 1531 }}, 1532 {{ 1533 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1534 }}, 1535 {{ 1536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255,255, 1537 }}, 1538 {{ 1539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 1540 }}, 1541 {{ 1542 0, 0, 0, 32,155, 33, 0, 20, 18, 0, 0, 0, 0, 0, 0, 0, 1543 }}, 1544 {{ 1545 64, 24, 32, 32, 0, 0, 0,132,160, 3, 2, 0, 0, 0, 0, 0, 1546 }}, 1547 {{ 1548 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1549 }}, 1550 {{ 1551 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 1552 }}, 1553 {{ 1554 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 63, 1555 }}, 1556 {{ 1557 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255, 1558 }}, 1559 {{ 1560 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255,255, 1561 }}, 1562 {{ 1563 253,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1564 }}, 1565}; 1566 1567static const unsigned short nameprep_rfc3491_bidi_imap[] = { 1568 272, 400, 528, 656, 784, 912, 912, 912, 1569 912, 1040, 1168, 912, 912, 1296, 912, 1424, 1570 1552, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1571 1680, 1680, 1680, 1680, 1680, 1808, 1680, 1680, 1572 912, 912, 912, 912, 912, 912, 912, 912, 1573 912, 912, 1936, 1680, 1680, 1680, 1680, 2064, 1574 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1575 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1576 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1577 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1578 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1579 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1580 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1581 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1582 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1583 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1584 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1585 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1586 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1587 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1588 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1589 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1590 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1591 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1592 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1593 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1594 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1595 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1596 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1597 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1598 912, 912, 912, 912, 912, 912, 912, 912, 1599 912, 912, 912, 912, 912, 912, 912, 2192, 1600 912, 912, 912, 912, 912, 912, 912, 912, 1601 912, 912, 912, 912, 912, 912, 912, 2192, 1602 0, 0, 1, 1, 0, 2, 3, 3, 1603 4, 4, 4, 4, 4, 4, 4, 4, 1604 4, 5, 6, 4, 4, 7, 8, 9, 1605 0, 0, 0, 10, 11, 12, 13, 14, 1606 4, 4, 4, 4, 15, 4, 13, 16, 1607 17, 18, 19, 20, 21, 22, 23, 24, 1608 25, 26, 27, 28, 29, 29, 30, 31, 1609 32, 33, 0, 0, 29, 34, 0, 0, 1610 0, 0, 0, 0, 0, 0, 0, 0, 1611 35, 36, 37, 38, 39, 40, 41, 42, 1612 43, 44, 45, 46, 47, 48, 49, 50, 1613 39, 51, 41, 52, 53, 54, 55, 56, 1614 57, 58, 59, 60, 61, 62, 63, 60, 1615 61, 64, 65, 60, 66, 67, 68, 69, 1616 20, 70, 71, 0, 72, 73, 74, 0, 1617 75, 76, 77, 78, 79, 80, 81, 0, 1618 4, 82, 83, 0, 0, 4, 84, 85, 1619 4, 4, 86, 4, 4, 87, 4, 88, 1620 89, 4, 90, 4, 91, 92, 93, 13, 1621 92, 4, 94, 95, 0, 4, 4, 96, 1622 20, 4, 4, 4, 4, 4, 4, 4, 1623 4, 4, 4, 4, 4, 4, 4, 4, 1624 4, 4, 4, 97, 1, 4, 4, 98, 1625 99, 100, 101, 102, 4, 103, 104, 105, 1626 106, 4, 4, 83, 4, 107, 0, 0, 1627 0, 0, 0, 0, 0, 0, 0, 0, 1628 0, 0, 0, 0, 0, 0, 0, 0, 1629 0, 0, 0, 0, 0, 0, 0, 0, 1630 0, 0, 0, 0, 0, 0, 0, 0, 1631 0, 0, 0, 0, 0, 0, 0, 0, 1632 4, 4, 4, 4, 108, 4, 4, 88, 1633 109, 4, 110, 111, 4, 112, 113, 114, 1634 115, 0, 0, 116, 0, 0, 0, 0, 1635 117, 118, 119, 4, 120, 0, 0, 0, 1636 0, 0, 0, 0, 0, 0, 0, 0, 1637 0, 121, 4, 122, 123, 0, 0, 0, 1638 0, 0, 0, 0, 124, 4, 4, 105, 1639 0, 0, 0, 0, 0, 0, 0, 0, 1640 0, 0, 0, 0, 0, 0, 0, 0, 1641 0, 0, 0, 0, 0, 0, 0, 0, 1642 0, 0, 0, 0, 0, 0, 0, 0, 1643 0, 0, 0, 0, 0, 0, 0, 0, 1644 0, 0, 0, 0, 0, 0, 0, 0, 1645 0, 0, 0, 0, 0, 0, 0, 0, 1646 0, 0, 0, 0, 0, 0, 0, 0, 1647 0, 0, 0, 0, 0, 0, 0, 0, 1648 0, 0, 0, 0, 0, 0, 0, 0, 1649 0, 0, 0, 0, 0, 0, 0, 0, 1650 125, 126, 20, 4, 127, 20, 4, 128, 1651 129, 130, 4, 4, 13, 83, 0, 6, 1652 131, 4, 120, 132, 4, 98, 133, 134, 1653 4, 4, 4, 135, 4, 4, 111, 134, 1654 4, 4, 4, 4, 4, 4, 4, 4, 1655 4, 4, 4, 4, 4, 4, 4, 4, 1656 4, 4, 4, 4, 4, 4, 4, 4, 1657 4, 4, 4, 4, 4, 4, 4, 4, 1658 4, 4, 4, 4, 4, 4, 4, 4, 1659 4, 4, 4, 4, 4, 4, 4, 4, 1660 4, 4, 4, 4, 4, 4, 4, 4, 1661 4, 4, 4, 4, 4, 4, 4, 4, 1662 4, 4, 4, 4, 4, 4, 4, 4, 1663 4, 4, 4, 4, 4, 4, 4, 4, 1664 4, 4, 4, 4, 4, 4, 4, 4, 1665 4, 4, 4, 4, 4, 4, 4, 4, 1666 4, 4, 4, 4, 4, 4, 4, 4, 1667 4, 4, 4, 4, 4, 4, 4, 4, 1668 4, 4, 4, 4, 4, 4, 4, 4, 1669 4, 4, 4, 4, 4, 4, 4, 4, 1670 4, 4, 4, 4, 4, 4, 4, 4, 1671 4, 4, 4, 4, 4, 4, 4, 4, 1672 4, 4, 4, 4, 4, 4, 4, 4, 1673 4, 4, 4, 4, 4, 4, 4, 4, 1674 4, 4, 4, 4, 4, 4, 4, 4, 1675 4, 4, 4, 4, 4, 4, 4, 4, 1676 4, 4, 4, 4, 4, 4, 4, 4, 1677 4, 4, 4, 4, 4, 4, 4, 4, 1678 4, 4, 4, 4, 4, 4, 4, 4, 1679 4, 4, 4, 4, 4, 14, 0, 0, 1680 4, 4, 4, 4, 4, 4, 4, 4, 1681 4, 4, 4, 4, 4, 4, 4, 4, 1682 4, 4, 4, 4, 4, 4, 4, 4, 1683 4, 4, 4, 4, 4, 4, 4, 4, 1684 4, 4, 4, 4, 4, 4, 4, 4, 1685 4, 4, 4, 4, 4, 4, 4, 4, 1686 4, 4, 4, 4, 4, 4, 4, 4, 1687 4, 4, 4, 4, 4, 4, 4, 4, 1688 4, 4, 4, 4, 4, 4, 4, 4, 1689 4, 4, 4, 4, 4, 4, 4, 4, 1690 4, 4, 4, 4, 4, 4, 4, 4, 1691 4, 4, 4, 4, 4, 4, 4, 4, 1692 4, 4, 4, 4, 4, 4, 4, 4, 1693 4, 4, 4, 4, 4, 4, 4, 4, 1694 4, 4, 4, 4, 4, 4, 4, 4, 1695 4, 4, 4, 4, 4, 4, 4, 4, 1696 4, 4, 4, 4, 4, 4, 4, 4, 1697 4, 4, 4, 4, 4, 4, 4, 4, 1698 4, 4, 4, 4, 4, 4, 4, 4, 1699 4, 4, 4, 4, 4, 4, 4, 4, 1700 4, 4, 4, 4, 4, 4, 4, 4, 1701 4, 4, 4, 4, 4, 4, 4, 4, 1702 4, 4, 4, 4, 4, 4, 4, 4, 1703 4, 4, 4, 4, 4, 4, 4, 4, 1704 4, 4, 4, 4, 4, 4, 4, 4, 1705 4, 4, 4, 4, 4, 4, 4, 4, 1706 4, 4, 4, 4, 4, 4, 4, 4, 1707 4, 4, 4, 4, 4, 4, 4, 4, 1708 4, 4, 4, 4, 4, 4, 4, 4, 1709 4, 4, 4, 4, 4, 4, 4, 4, 1710 4, 4, 4, 4, 4, 4, 4, 4, 1711 4, 4, 4, 4, 4, 4, 4, 4, 1712 4, 4, 4, 4, 4, 4, 4, 4, 1713 4, 4, 4, 4, 4, 136, 0, 0, 1714 4, 4, 4, 4, 4, 4, 4, 4, 1715 4, 4, 4, 4, 4, 4, 4, 4, 1716 4, 4, 4, 4, 4, 4, 4, 4, 1717 4, 4, 4, 4, 4, 4, 4, 4, 1718 4, 4, 4, 4, 137, 0, 0, 0, 1719 0, 0, 0, 0, 0, 0, 0, 0, 1720 0, 0, 0, 0, 0, 0, 0, 0, 1721 0, 0, 0, 0, 0, 0, 0, 0, 1722 0, 0, 0, 0, 0, 0, 0, 0, 1723 0, 0, 0, 0, 0, 0, 0, 0, 1724 0, 0, 0, 0, 0, 0, 0, 0, 1725 0, 0, 0, 0, 0, 0, 0, 0, 1726 4, 4, 4, 4, 4, 4, 4, 4, 1727 4, 4, 4, 4, 4, 4, 4, 4, 1728 4, 4, 4, 4, 4, 4, 4, 4, 1729 4, 4, 4, 4, 4, 4, 4, 4, 1730 4, 4, 4, 4, 4, 4, 4, 4, 1731 4, 4, 4, 4, 4, 4, 4, 4, 1732 4, 4, 4, 4, 4, 4, 4, 4, 1733 4, 4, 4, 4, 4, 4, 4, 4, 1734 4, 4, 4, 4, 4, 4, 4, 4, 1735 4, 4, 4, 4, 4, 4, 4, 4, 1736 4, 4, 4, 4, 4, 4, 4, 4, 1737 4, 4, 4, 4, 4, 120, 0, 0, 1738 4, 4, 4, 4, 4, 4, 4, 4, 1739 4, 4, 4, 4, 4, 4, 4, 4, 1740 4, 4, 4, 4, 4, 4, 4, 4, 1741 4, 4, 4, 4, 4, 4, 4, 4, 1742 4, 4, 4, 4, 4, 4, 4, 4, 1743 4, 4, 4, 4, 4, 4, 4, 4, 1744 4, 4, 4, 4, 4, 4, 4, 4, 1745 4, 4, 4, 4, 4, 4, 4, 4, 1746 4, 4, 4, 4, 4, 4, 4, 4, 1747 4, 4, 4, 4, 4, 4, 4, 4, 1748 4, 4, 4, 4, 4, 4, 4, 4, 1749 4, 4, 4, 4, 4, 4, 4, 4, 1750 4, 4, 4, 4, 4, 4, 4, 4, 1751 4, 4, 4, 4, 4, 4, 4, 4, 1752 4, 4, 4, 4, 4, 4, 4, 4, 1753 4, 4, 4, 4, 4, 4, 4, 4, 1754 4, 4, 4, 4, 4, 4, 4, 4, 1755 4, 4, 4, 4, 4, 4, 4, 4, 1756 4, 138, 4, 139, 0, 0, 0, 0, 1757 140, 141, 142, 29, 29, 143, 144, 29, 1758 29, 29, 29, 29, 29, 29, 29, 29, 1759 29, 145, 146, 29, 147, 29, 148, 149, 1760 0, 0, 0, 150, 29, 29, 29, 151, 1761 0, 1, 1, 152, 4, 134, 153, 0, 1762 0, 0, 0, 0, 0, 0, 0, 0, 1763 0, 0, 0, 0, 0, 0, 0, 0, 1764 0, 0, 0, 0, 0, 0, 0, 0, 1765 134, 154, 139, 0, 0, 0, 0, 0, 1766 4, 155, 156, 0, 0, 0, 0, 0, 1767 0, 0, 0, 0, 0, 0, 0, 0, 1768 0, 0, 0, 0, 0, 0, 0, 0, 1769 0, 0, 0, 0, 0, 0, 0, 0, 1770 0, 0, 0, 0, 0, 0, 0, 0, 1771 0, 0, 0, 0, 0, 0, 0, 0, 1772 0, 0, 0, 0, 0, 0, 0, 0, 1773 0, 0, 0, 0, 0, 0, 0, 0, 1774 0, 0, 0, 0, 0, 0, 0, 0, 1775 0, 0, 0, 0, 0, 0, 0, 0, 1776 0, 0, 0, 0, 0, 0, 0, 0, 1777 0, 0, 0, 0, 0, 0, 0, 0, 1778 0, 0, 0, 0, 0, 0, 0, 0, 1779 0, 0, 0, 0, 0, 0, 0, 0, 1780 0, 0, 0, 0, 0, 0, 0, 0, 1781 0, 0, 0, 0, 0, 0, 0, 0, 1782 0, 0, 0, 0, 0, 0, 0, 0, 1783 0, 0, 0, 0, 0, 0, 0, 0, 1784 0, 0, 0, 0, 0, 0, 0, 0, 1785 0, 0, 0, 0, 0, 0, 0, 0, 1786 0, 0, 0, 0, 0, 0, 0, 0, 1787 0, 0, 0, 0, 0, 0, 0, 0, 1788 0, 0, 0, 0, 0, 0, 0, 0, 1789 0, 0, 0, 0, 0, 0, 0, 0, 1790 0, 0, 0, 0, 0, 0, 0, 0, 1791 0, 0, 0, 0, 0, 0, 0, 0, 1792 0, 0, 0, 0, 0, 0, 0, 0, 1793 0, 0, 0, 0, 0, 0, 0, 0, 1794 4, 4, 4, 4, 4, 4, 4, 14, 1795 4, 157, 4, 158, 159, 160, 111, 0, 1796 0, 0, 0, 0, 0, 0, 0, 0, 1797 0, 0, 0, 0, 0, 0, 0, 0, 1798 4, 4, 161, 4, 162, 163, 164, 4, 1799 165, 166, 167, 4, 4, 4, 4, 4, 1800 4, 4, 4, 4, 4, 168, 4, 4, 1801 4, 4, 4, 4, 4, 4, 105, 0, 1802 0, 0, 0, 0, 0, 0, 0, 0, 1803 0, 0, 0, 0, 0, 0, 0, 0, 1804 0, 0, 0, 0, 0, 0, 0, 0, 1805 0, 0, 0, 0, 0, 0, 0, 0, 1806 0, 0, 0, 0, 0, 0, 0, 0, 1807 0, 0, 0, 0, 0, 0, 0, 0, 1808 0, 0, 0, 0, 0, 0, 0, 0, 1809 0, 0, 0, 0, 0, 0, 0, 0, 1810 4, 4, 4, 4, 4, 4, 4, 4, 1811 4, 4, 4, 4, 4, 4, 4, 4, 1812 4, 4, 4, 4, 4, 4, 4, 4, 1813 4, 4, 4, 4, 4, 4, 4, 4, 1814 4, 4, 4, 4, 4, 4, 4, 4, 1815 4, 4, 4, 4, 4, 4, 4, 4, 1816 4, 4, 4, 4, 4, 4, 97, 0, 1817 0, 0, 0, 0, 0, 0, 0, 0, 1818 0, 0, 0, 0, 0, 0, 0, 0, 1819 0, 0, 0, 0, 0, 0, 0, 0, 1820 0, 0, 0, 0, 0, 0, 0, 0, 1821 0, 0, 0, 0, 0, 0, 0, 0, 1822 0, 0, 0, 0, 0, 0, 0, 0, 1823 0, 0, 0, 0, 0, 0, 0, 0, 1824 0, 0, 0, 0, 0, 0, 0, 0, 1825 0, 0, 0, 0, 0, 0, 0, 0, 1826 0, 0, 0, 0, 0, 0, 0, 0, 1827 0, 0, 0, 0, 0, 0, 0, 0, 1828 0, 0, 0, 0, 0, 0, 0, 0, 1829 0, 0, 0, 0, 0, 0, 0, 0, 1830 0, 0, 0, 0, 0, 0, 0, 0, 1831 0, 0, 0, 0, 0, 0, 0, 0, 1832 0, 0, 0, 0, 0, 0, 0, 0, 1833 0, 0, 0, 0, 0, 0, 0, 0, 1834 4, 4, 4, 4, 4, 4, 4, 4, 1835 4, 4, 4, 4, 4, 4, 4, 4, 1836 111, 0, 0, 0, 0, 0, 0, 0, 1837 0, 0, 0, 0, 0, 0, 0, 0, 1838 0, 0, 0, 0, 0, 0, 0, 0, 1839 0, 0, 0, 0, 0, 0, 0, 0, 1840 0, 0, 0, 0, 0, 0, 0, 0, 1841 0, 0, 0, 0, 0, 0, 0, 0, 1842 4, 4, 4, 4, 4, 4, 4, 4, 1843 4, 4, 4, 4, 4, 4, 4, 4, 1844 4, 4, 4, 4, 4, 4, 4, 4, 1845 4, 4, 4, 4, 4, 4, 4, 4, 1846 4, 4, 4, 4, 4, 4, 4, 4, 1847 4, 4, 4, 4, 4, 4, 4, 4, 1848 4, 4, 4, 4, 4, 4, 4, 4, 1849 4, 4, 4, 4, 4, 4, 4, 4, 1850 4, 4, 4, 4, 4, 4, 4, 4, 1851 4, 4, 4, 4, 4, 4, 4, 4, 1852 4, 4, 4, 4, 4, 4, 4, 4, 1853 4, 4, 4, 4, 4, 4, 4, 4, 1854 4, 4, 4, 4, 4, 4, 4, 4, 1855 4, 4, 4, 4, 4, 4, 4, 4, 1856 4, 4, 4, 4, 4, 4, 4, 4, 1857 4, 4, 4, 4, 4, 4, 4, 111, 1858}; 1859 1860static const struct { 1861 unsigned char tbl[32]; 1862} nameprep_rfc3491_bidi_table[] = { 1863 {{ 1864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1866 }}, 1867 {{ 1868 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1870 }}, 1871 {{ 1872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1873 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1874 }}, 1875 {{ 1876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1877 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1878 }}, 1879 {{ 1880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1882 }}, 1883 {{ 1884 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1885 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1886 }}, 1887 {{ 1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1890 }}, 1891 {{ 1892 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 1893 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 1894 }}, 1895 {{ 1896 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1897 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1898 }}, 1899 {{ 1900 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902 }}, 1903 {{ 1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1906 }}, 1907 {{ 1908 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, 2, 1909 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1910 }}, 1911 {{ 1912 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1914 }}, 1915 {{ 1916 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 1917 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1918 }}, 1919 {{ 1920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1921 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1922 }}, 1923 {{ 1924 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1926 }}, 1927 {{ 1928 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1929 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 1930 }}, 1931 {{ 1932 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1934 }}, 1935 {{ 1936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1938 }}, 1939 {{ 1940 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1941 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1942 }}, 1943 {{ 1944 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1945 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1946 }}, 1947 {{ 1948 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1950 }}, 1951 {{ 1952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1954 }}, 1955 {{ 1956 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1957 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1958 }}, 1959 {{ 1960 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1961 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1962 }}, 1963 {{ 1964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1966 }}, 1967 {{ 1968 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1970 }}, 1971 {{ 1972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1974 }}, 1975 {{ 1976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1978 }}, 1979 {{ 1980 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1981 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1982 }}, 1983 {{ 1984 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1985 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1986 }}, 1987 {{ 1988 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1990 }}, 1991 {{ 1992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1993 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1994 }}, 1995 {{ 1996 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1997 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1998 }}, 1999 {{ 2000 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2001 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2002 }}, 2003 {{ 2004 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2005 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2006 }}, 2007 {{ 2008 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2009 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2010 }}, 2011 {{ 2012 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2013 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2014 }}, 2015 {{ 2016 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2018 }}, 2019 {{ 2020 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2021 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2022 }}, 2023 {{ 2024 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2025 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2026 }}, 2027 {{ 2028 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 2029 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 2, 2030 }}, 2031 {{ 2032 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2033 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2034 }}, 2035 {{ 2036 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2037 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2038 }}, 2039 {{ 2040 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2041 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 2, 2042 }}, 2043 {{ 2044 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2045 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2046 }}, 2047 {{ 2048 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2049 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2050 }}, 2051 {{ 2052 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2053 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2054 }}, 2055 {{ 2056 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2057 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2058 }}, 2059 {{ 2060 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2, 2061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2062 }}, 2063 {{ 2064 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2066 }}, 2067 {{ 2068 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2069 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2070 }}, 2071 {{ 2072 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074 }}, 2075 {{ 2076 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2077 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, 2078 }}, 2079 {{ 2080 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2081 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2082 }}, 2083 {{ 2084 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2085 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2086 }}, 2087 {{ 2088 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2089 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2090 }}, 2091 {{ 2092 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2093 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2094 }}, 2095 {{ 2096 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2097 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2098 }}, 2099 {{ 2100 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2102 }}, 2103 {{ 2104 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2106 }}, 2107 {{ 2108 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2109 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2110 }}, 2111 {{ 2112 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2113 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, 2114 }}, 2115 {{ 2116 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 2117 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2118 }}, 2119 {{ 2120 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2121 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2122 }}, 2123 {{ 2124 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2125 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2126 }}, 2127 {{ 2128 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2129 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2130 }}, 2131 {{ 2132 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2133 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 2134 }}, 2135 {{ 2136 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2137 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2138 }}, 2139 {{ 2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142 }}, 2143 {{ 2144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2145 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2146 }}, 2147 {{ 2148 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2150 }}, 2151 {{ 2152 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, 2153 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2154 }}, 2155 {{ 2156 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2, 2, 2157 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2158 }}, 2159 {{ 2160 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2161 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 2162 }}, 2163 {{ 2164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2165 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2166 }}, 2167 {{ 2168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2169 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 2, 2170 }}, 2171 {{ 2172 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2174 }}, 2175 {{ 2176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2178 }}, 2179 {{ 2180 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2182 }}, 2183 {{ 2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2186 }}, 2187 {{ 2188 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2190 }}, 2191 {{ 2192 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, 2193 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2194 }}, 2195 {{ 2196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2197 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2198 }}, 2199 {{ 2200 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2202 }}, 2203 {{ 2204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2205 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 2206 }}, 2207 {{ 2208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2209 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2210 }}, 2211 {{ 2212 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2214 }}, 2215 {{ 2216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2217 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2218 }}, 2219 {{ 2220 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2222 }}, 2223 {{ 2224 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2225 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2226 }}, 2227 {{ 2228 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2230 }}, 2231 {{ 2232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2233 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2234 }}, 2235 {{ 2236 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2237 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2238 }}, 2239 {{ 2240 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2242 }}, 2243 {{ 2244 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2246 }}, 2247 {{ 2248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2249 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2250 }}, 2251 {{ 2252 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2253 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2254 }}, 2255 {{ 2256 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2258 }}, 2259 {{ 2260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2261 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2262 }}, 2263 {{ 2264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2265 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2266 }}, 2267 {{ 2268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2269 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2270 }}, 2271 {{ 2272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2274 }}, 2275 {{ 2276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2277 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2278 }}, 2279 {{ 2280 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2281 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2282 }}, 2283 {{ 2284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286 }}, 2287 {{ 2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2289 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2290 }}, 2291 {{ 2292 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2294 }}, 2295 {{ 2296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2298 }}, 2299 {{ 2300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2301 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2302 }}, 2303 {{ 2304 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2305 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, 2306 }}, 2307 {{ 2308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2310 }}, 2311 {{ 2312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2313 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2314 }}, 2315 {{ 2316 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2317 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2318 }}, 2319 {{ 2320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2321 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2322 }}, 2323 {{ 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 }}, 2327 {{ 2328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2329 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2330 }}, 2331 {{ 2332 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2333 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2334 }}, 2335 {{ 2336 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2337 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2338 }}, 2339 {{ 2340 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2342 }}, 2343 {{ 2344 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2346 }}, 2347 {{ 2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2349 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2350 }}, 2351 {{ 2352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2354 }}, 2355 {{ 2356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2358 }}, 2359 {{ 2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2362 }}, 2363 {{ 2364 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2366 }}, 2367 {{ 2368 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2369 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2370 }}, 2371 {{ 2372 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2373 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2374 }}, 2375 {{ 2376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2378 }}, 2379 {{ 2380 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2382 }}, 2383 {{ 2384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2386 }}, 2387 {{ 2388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2390 }}, 2391 {{ 2392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2394 }}, 2395 {{ 2396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2398 }}, 2399 {{ 2400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2402 }}, 2403 {{ 2404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2405 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2406 }}, 2407 {{ 2408 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410 }}, 2411 {{ 2412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2414 }}, 2415 {{ 2416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2418 }}, 2419 {{ 2420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2422 }}, 2423 {{ 2424 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2425 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 0, 1, 2426 }}, 2427 {{ 2428 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 2429 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 2430 }}, 2431 {{ 2432 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2434 }}, 2435 {{ 2436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2437 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2438 }}, 2439 {{ 2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2441 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2442 }}, 2443 {{ 2444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2446 }}, 2447 {{ 2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2450 }}, 2451 {{ 2452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2453 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2454 }}, 2455 {{ 2456 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2458 }}, 2459 {{ 2460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 2462 }}, 2463 {{ 2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2465 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2466 }}, 2467 {{ 2468 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2469 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 2470 }}, 2471 {{ 2472 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2474 }}, 2475 {{ 2476 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 2477 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, 2478 }}, 2479 {{ 2480 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2481 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2482 }}, 2483 {{ 2484 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2485 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2486 }}, 2487 {{ 2488 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2490 }}, 2491 {{ 2492 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2494 }}, 2495 {{ 2496 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2497 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2498 }}, 2499 {{ 2500 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2502 }}, 2503 {{ 2504 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2505 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2506 }}, 2507 {{ 2508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2509 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2510 }}, 2511 {{ 2512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2514 }}, 2515 {{ 2516 0, 0, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2517 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2518 }}, 2519 {{ 2520 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2522 }}, 2523 {{ 2524 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2525 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2526 }}, 2527 {{ 2528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2529 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 2530 }}, 2531 {{ 2532 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2533 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2534 }}, 2535 {{ 2536 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2538 }}, 2539}; 2540 2541static const unsigned char nameprep_rfc3491_bidi_data[] = { 2542 idn_biditype_others, 2543 idn_biditype_r_al, 2544 idn_biditype_l, 2545}; 2546 2547