lift single lib statement restriction
[m6w6/ext-psi] / src / parser_proc.c
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Skeleton implementation for Bison GLR parsers in C
4
5 Copyright (C) 2002-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C GLR parser skeleton written by Paul Hilfinger. */
34
35 /* Identify Bison output. */
36 #define YYBISON 1
37
38 /* Bison version. */
39 #define YYBISON_VERSION "3.0.4"
40
41 /* Skeleton name. */
42 #define YYSKELETON_NAME "glr.c"
43
44 /* Pure parsers. */
45 #define YYPURE 1
46
47
48 /* "%code top" blocks. */
49 #line 1 "src/parser_proc_grammar.y" /* glr.c:222 */
50
51 #include "php_psi_stdinc.h"
52
53 #line 54 "src/parser_proc.c" /* glr.c:222 */
54
55
56 /* Substitute the variable and function names. */
57 #define yyparse psi_parser_proc_parse
58 #define yylex psi_parser_proc_lex
59 #define yyerror psi_parser_proc_error
60 #define yydebug psi_parser_proc_debug
61
62
63 /* First part of user declarations. */
64
65 #line 66 "src/parser_proc.c" /* glr.c:240 */
66
67 # ifndef YY_NULLPTR
68 # if defined __cplusplus && 201103L <= __cplusplus
69 # define YY_NULLPTR nullptr
70 # else
71 # define YY_NULLPTR 0
72 # endif
73 # endif
74
75 #include "parser_proc.h"
76
77 /* Enabling verbose error messages. */
78 #ifdef YYERROR_VERBOSE
79 # undef YYERROR_VERBOSE
80 # define YYERROR_VERBOSE 1
81 #else
82 # define YYERROR_VERBOSE 1
83 #endif
84
85 /* Default (constant) value used for initialization for null
86 right-hand sides. Unlike the standard yacc.c template, here we set
87 the default value of $$ to a zeroed-out value. Since the default
88 value is undefined, this behavior is technically correct. */
89 static YYSTYPE yyval_default;
90
91 /* Copy the second part of user declarations. */
92
93 #line 94 "src/parser_proc.c" /* glr.c:263 */
94 /* Unqualified %code blocks. */
95 #line 5 "src/parser_proc_grammar.y" /* glr.c:264 */
96
97 #include <assert.h>
98 #include <stdarg.h>
99
100 #include "plist.h"
101 #include "parser.h"
102
103 #define YYDEBUG 1
104 #define PSI_PARSER_PROC_DEBUG 1
105
106 static int psi_parser_proc_lex(YYSTYPE *u, struct psi_parser *P, struct psi_plist *tokens, size_t *index);
107 static void psi_parser_proc_error(struct psi_parser *P, struct psi_plist *tokens, size_t *index, const char *msg);
108
109 static inline void psi_parser_proc_add_struct(struct psi_parser *P, struct psi_decl_struct *strct)
110 {
111 assert(strct);
112 if (!P->structs) {
113 P->structs = psi_plist_init((psi_plist_dtor) psi_decl_struct_free);
114 }
115 P->structs = psi_plist_add(P->structs, &strct);
116 }
117 static inline void psi_parser_proc_add_union(struct psi_parser *P, struct psi_decl_union *u)
118 {
119 assert(u);
120 if (!P->unions) {
121 P->unions = psi_plist_init((psi_plist_dtor) psi_decl_union_free);
122 }
123 P->unions = psi_plist_add(P->unions, &u);
124 }
125 static inline void psi_parser_proc_add_enum(struct psi_parser *P, struct psi_decl_enum *e)
126 {
127 assert(e);
128 if (!P->enums) {
129 P->enums = psi_plist_init((psi_plist_dtor) psi_decl_enum_free);
130 }
131 P->enums = psi_plist_add(P->enums, &e);
132 }
133 static inline void psi_parser_proc_deanon_typedef(struct psi_decl_arg *def)
134 {
135 switch (def->type->type) {
136 case PSI_T_STRUCT:
137 if (!psi_decl_type_is_anon(def->type->name, "struct")) {
138 return;
139 }
140 break;
141 case PSI_T_UNION:
142 if (!psi_decl_type_is_anon(def->type->name, "union")) {
143 return;
144 }
145 break;
146 case PSI_T_ENUM:
147 if (!psi_decl_type_is_anon(def->type->name, "enum")) {
148 return;
149 }
150 break;
151 default:
152 return;
153 }
154 free(def->type->name);
155 def->type->name = strdup(def->var->name);
156 }
157 static inline void psi_parser_proc_add_typedef(struct psi_parser *P, struct psi_decl_arg *def)
158 {
159 assert(def);
160 if (!P->types) {
161 P->types = psi_plist_init((psi_plist_dtor) psi_decl_arg_free);
162 }
163 //psi_parser_proc_deanon_typedef(def);
164 P->types = psi_plist_add(P->types, &def);
165 }
166 static inline void psi_parser_proc_add_const(struct psi_parser *P, struct psi_const *cnst) {
167 assert(cnst);
168 if (!P->consts) {
169 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
170 }
171 P->consts = psi_plist_add(P->consts, &cnst);
172
173 }
174 static inline void psi_parser_proc_add_decl(struct psi_parser *P, struct psi_decl *decl) {
175 assert(decl);
176
177 if (psi_decl_is_blacklisted(decl->func->var->name)) {
178 psi_decl_free(&decl);
179 return;
180 }
181
182 if (!P->decls) {
183 P->decls = psi_plist_init((psi_plist_dtor) psi_decl_free);
184 }
185 P->decls = psi_plist_add(P->decls, &decl);
186 }
187 static inline void psi_parser_proc_add_decl_extvars(struct psi_parser *P, struct psi_plist *list) {
188 assert(list);
189 if (!P->vars) {
190 P->vars = psi_plist_init((psi_plist_dtor) psi_decl_extvar_free);
191 }
192 P->vars = psi_plist_add_r(P->vars, psi_plist_count(list), psi_plist_eles(list));
193 free(list);
194 }
195 static inline void psi_parser_proc_add_impl(struct psi_parser *P, struct psi_impl *impl) {
196 assert(impl);
197 if (!P->impls) {
198 P->impls = psi_plist_init((psi_plist_dtor) psi_impl_free);
199 }
200 P->impls = psi_plist_add(P->impls, &impl);
201 }
202
203 /* end code */
204
205 #line 206 "src/parser_proc.c" /* glr.c:264 */
206
207 #include <stdio.h>
208 #include <stdlib.h>
209 #include <string.h>
210
211 #ifndef YY_
212 # if defined YYENABLE_NLS && YYENABLE_NLS
213 # if ENABLE_NLS
214 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
215 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
216 # endif
217 # endif
218 # ifndef YY_
219 # define YY_(Msgid) Msgid
220 # endif
221 #endif
222
223 #ifndef YYFREE
224 # define YYFREE free
225 #endif
226 #ifndef YYMALLOC
227 # define YYMALLOC malloc
228 #endif
229 #ifndef YYREALLOC
230 # define YYREALLOC realloc
231 #endif
232
233 #define YYSIZEMAX ((size_t) -1)
234
235 #ifdef __cplusplus
236 typedef bool yybool;
237 #else
238 typedef unsigned char yybool;
239 #endif
240 #define yytrue 1
241 #define yyfalse 0
242
243 #ifndef YYSETJMP
244 # include <setjmp.h>
245 # define YYJMP_BUF jmp_buf
246 # define YYSETJMP(Env) setjmp (Env)
247 /* Pacify clang. */
248 # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
249 #endif
250
251 #ifndef YY_ATTRIBUTE
252 # if (defined __GNUC__ \
253 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
254 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
255 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
256 # else
257 # define YY_ATTRIBUTE(Spec) /* empty */
258 # endif
259 #endif
260
261 #ifndef YY_ATTRIBUTE_PURE
262 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
263 #endif
264
265 #ifndef YY_ATTRIBUTE_UNUSED
266 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
267 #endif
268
269 #if !defined _Noreturn \
270 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
271 # if defined _MSC_VER && 1200 <= _MSC_VER
272 # define _Noreturn __declspec (noreturn)
273 # else
274 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
275 # endif
276 #endif
277
278 /* Suppress unused-variable warnings by "using" E. */
279 #if ! defined lint || defined __GNUC__
280 # define YYUSE(E) ((void) (E))
281 #else
282 # define YYUSE(E) /* empty */
283 #endif
284
285 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
286 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
287 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
288 _Pragma ("GCC diagnostic push") \
289 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
290 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
291 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
292 _Pragma ("GCC diagnostic pop")
293 #else
294 # define YY_INITIAL_VALUE(Value) Value
295 #endif
296 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
297 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
298 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
299 #endif
300 #ifndef YY_INITIAL_VALUE
301 # define YY_INITIAL_VALUE(Value) /* Nothing. */
302 #endif
303
304
305 #ifndef YYASSERT
306 # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
307 #endif
308
309 /* YYFINAL -- State number of the termination state. */
310 #define YYFINAL 160
311 /* YYLAST -- Last index in YYTABLE. */
312 #define YYLAST 7725
313
314 /* YYNTOKENS -- Number of terminals. */
315 #define YYNTOKENS 140
316 /* YYNNTS -- Number of nonterminals. */
317 #define YYNNTS 141
318 /* YYNRULES -- Number of rules. */
319 #define YYNRULES 627
320 /* YYNRULES -- Number of states. */
321 #define YYNSTATES 937
322 /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
323 #define YYMAXRHS 16
324 /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
325 accessed by $0, $-1, etc., in any rule. */
326 #define YYMAXLEFT 0
327
328 /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
329 #define YYUNDEFTOK 2
330 #define YYMAXUTOK 394
331
332 #define YYTRANSLATE(YYX) \
333 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
334
335 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
336 static const unsigned char yytranslate[] =
337 {
338 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
364 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
365 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
366 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
367 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
368 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
369 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
370 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
371 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
372 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
373 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
374 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
375 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
376 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
377 135, 136, 137, 138, 139
378 };
379
380 #if YYDEBUG
381 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
382 static const unsigned short int yyrline[] =
383 {
384 0, 433, 433, 433, 433, 433, 433, 433, 433, 433,
385 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
386 434, 434, 434, 434, 435, 435, 435, 435, 435, 435,
387 435, 435, 435, 435, 435, 435, 435, 435, 435, 435,
388 435, 435, 435, 436, 436, 436, 436, 436, 436, 436,
389 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
390 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
391 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
392 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
393 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
394 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
395 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
396 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
397 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
398 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
399 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
400 436, 437, 437, 437, 437, 437, 437, 437, 437, 437,
401 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
402 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
403 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
404 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
405 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
406 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
407 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
408 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
409 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
410 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
411 437, 437, 437, 437, 437, 437, 437, 441, 442, 445,
412 446, 449, 450, 451, 452, 458, 462, 465, 468, 471,
413 477, 480, 483, 486, 489, 495, 501, 504, 510, 533,
414 537, 541, 546, 550, 554, 558, 565, 566, 570, 571,
415 575, 576, 577, 581, 582, 586, 587, 591, 592, 593,
416 597, 598, 602, 607, 612, 617, 626, 629, 632, 633,
417 639, 644, 652, 655, 659, 663, 670, 674, 678, 682,
418 687, 698, 709, 714, 719, 723, 729, 739, 742, 746,
419 750, 756, 763, 767, 771, 778, 779, 780, 784, 798,
420 804, 807, 813, 816, 822, 823, 831, 842, 851, 863,
421 864, 868, 878, 887, 899, 900, 903, 909, 910, 914,
422 918, 922, 927, 932, 940, 941, 942, 945, 951, 954,
423 957, 963, 964, 968, 971, 974, 980, 983, 986, 994,
424 1006, 1009, 1012, 1015, 1022, 1025, 1035, 1038, 1041, 1044,
425 1045, 1046, 1050, 1053, 1056, 1067, 1074, 1084, 1087, 1093,
426 1096, 1103, 1133, 1136, 1142, 1145, 1151, 1154, 1157, 1160,
427 1166, 1170, 1171, 1175, 1176, 1180, 1181, 1188, 1189, 1193,
428 1200, 1211, 1218, 1226, 1250, 1278, 1285, 1296, 1342, 1383,
429 1398, 1401, 1404, 1410, 1413, 1419, 1434, 1437, 1466, 1474,
430 1502, 1507, 1515, 1525, 1535, 1538, 1542, 1548, 1562, 1579,
431 1582, 1588, 1595, 1605, 1612, 1615, 1621, 1626, 1634, 1638,
432 1642, 1646, 1650, 1654, 1661, 1665, 1669, 1673, 1677, 1681,
433 1687, 1691, 1698, 1701, 1713, 1717, 1721, 1728, 1741, 1754,
434 1767, 1770, 1777, 1778, 1782, 1785, 1788, 1791, 1797, 1801,
435 1808, 1811, 1814, 1829, 1830, 1831, 1832, 1836, 1839, 1845,
436 1846, 1852, 1855, 1861, 1862, 1866, 1867, 1877, 1880, 1887,
437 1892, 1897, 1907, 1910, 1916, 1919, 1925, 1932, 1939, 1946,
438 1947, 1951, 1952, 1953, 1954, 1958, 1959, 1960, 1961, 1962,
439 1966, 1969, 1975, 1978, 1981, 1984, 1987, 1993, 1997, 2005,
440 2006, 2010, 2017, 2020, 2023, 2026, 2030, 2033, 2039, 2043,
441 2051, 2058, 2063, 2071, 2079, 2080, 2081, 2082, 2083, 2084,
442 2085, 2086, 2087, 2088, 2092, 2095, 2101, 2104, 2110, 2111,
443 2115, 2118, 2124, 2127, 2133, 2140, 2144, 2151, 2154, 2157,
444 2163, 2170, 2173, 2176, 2183, 2188, 2196, 2197, 2198, 2199,
445 2200, 2201, 2202, 2203, 2207, 2210, 2216, 2219, 2225, 2232,
446 2233, 2237, 2244, 2247, 2253, 2261, 2264, 2270
447 };
448 #endif
449
450 #if YYDEBUG || YYERROR_VERBOSE || 1
451 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
452 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
453 static const char *const yytname[] =
454 {
455 "\"end of file\"", "error", "$undefined", "BOOL", "CHAR", "SHORT",
456 "INT", "SIGNED", "UNSIGNED", "LONG", "FLOAT", "DOUBLE", "STRING",
457 "MIXED", "ARRAY", "OBJECT", "CALLABLE", "VOID", "ZVAL", "NULL", "TRUE",
458 "FALSE", "NAME", "NSNAME", "DOLLAR_NAME", "NUMBER", "QUOTED_STRING",
459 "QUOTED_CHAR", "SIZEOF", "VOLATILE", "\"end of line\"", "\";\"", "\"(\"",
460 "\")\"", "\",\"", "\":\"", "\"{\"", "\"}\"", "\"[\"", "\"]\"", "\"=\"",
461 "\"#\"", "\"|\"", "\"^\"", "\"&\"", "\"<<\"", "\">>\"", "\"+\"", "\"-\"",
462 "\"*\"", "\"/\"", "\"%\"", "\"<\"", "\">\"", "\">=\"", "\"<=\"",
463 "\"||\"", "\"&&\"", "\"==\"", "\"!=\"", "\"~\"", "\"!\"", "\".\"",
464 "\"\\\\\"", "\"...\"", "\"?\"", "PRAGMA", "PRAGMA_ONCE", "LINE", "ERROR",
465 "WARNING", "IF", "IFDEF", "IFNDEF", "ELSE", "ELIF", "ENDIF", "DEFINE",
466 "DEFINED", "UNDEF", "IMPORT", "INCLUDE", "INCLUDE_NEXT", "TYPEDEF",
467 "STRUCT", "UNION", "ENUM", "CONST", "LIB", "STATIC", "CALLBACK",
468 "FUNCTION", "LET", "SET", "TEMP", "FREE", "RETURN", "AS", "PRE_ASSERT",
469 "POST_ASSERT", "BOOLVAL", "INTVAL", "STRVAL", "PATHVAL", "STRLEN",
470 "FLOATVAL", "ARRVAL", "OBJVAL", "COUNT", "CALLOC", "TO_BOOL", "TO_INT",
471 "TO_STRING", "TO_FLOAT", "TO_ARRAY", "TO_OBJECT", "COMMENT",
472 "WHITESPACE", "NO_WHITESPACE", "CPP_HEADER", "CPP_ATTRIBUTE",
473 "CPP_EXTENSION", "CPP_PASTE", "CPP_INLINE", "CPP_RESTRICT", "CPP_ASM",
474 "BSLASH", "LONG_DOUBLE", "INT8", "UINT8", "INT16", "UINT16", "INT32",
475 "UINT32", "INT64", "UINT64", "INT128", "UINT128", "BINARY", "UNARY",
476 "$accept", "binary_op_token", "unary_op_token", "name_token",
477 "any_noeol_token", "any_nobrace_token", "file", "blocks", "block", "lib",
478 "cpp", "cpp_exp", "cpp_ignored_token", "cpp_message_token",
479 "cpp_include_token", "cpp_header_token", "cpp_no_arg_token",
480 "cpp_name_arg_token", "cpp_exp_arg_token", "cpp_macro_decl",
481 "cpp_macro_sig", "cpp_macro_sig_args", "cpp_macro_decl_tokens",
482 "cpp_macro_decl_token_list", "cpp_macro_exp", "cpp_macro_call_args",
483 "cpp_macro_call_arg_list", "constant", "impl_def_val",
484 "impl_def_val_token", "decl_typedef", "typedef", "typedef_anon",
485 "typedef_decl", "typedef_anon_decl", "qualified_decl_type",
486 "decl_type_qualifier_token", "decl_type", "decl_type_complex",
487 "decl_type_simple", "decl_real_type", "int_signed", "int_width",
488 "decl_int_type", "int_signed_types", "signed_short_types",
489 "signed_long_types", "int_width_types", "decl_stmt", "decl_asm",
490 "quoted_strings", "decl_extvar_stmt", "decl_extvar_list", "decl_vars",
491 "ignored_decl", "ignored_decl_body", "ignored_decl_body_stmts",
492 "ignored_decl_body_stmt", "decl", "decl_body", "decl_func_body",
493 "decl_functor_body", "decl_anon_functor_body", "decl_functor",
494 "decl_anon_functor", "decl_func", "decl_args", "decl_arg_list",
495 "decl_anon_arg", "decl_arg", "decl_var", "decl_union", "decl_struct",
496 "decl_struct_args", "struct_args_block", "struct_args",
497 "struct_arg_var_list", "decl_vars_with_layout", "decl_enum",
498 "decl_enum_items", "decl_enum_item", "num_exp", "number", "sizeof",
499 "sizeof_body", "sizeof_body_notypes", "enum_name", "union_name",
500 "struct_name", "optional_name", "optional_comma", "decl_layout",
501 "align_and_size", "array_size", "array_qualifier_token", "indirection",
502 "pointers", "asterisks", "asterisk", "pointer_qualifier_token", "impl",
503 "impl_func", "impl_args", "impl_arg", "impl_var", "impl_type",
504 "impl_type_restricted", "impl_type_token", "impl_type_restricted_token",
505 "impl_type_extended_token", "impl_stmts", "impl_stmt", "let_stmt",
506 "let_exp", "let_exp_byref", "let_exp_assign", "let_calloc",
507 "let_callback", "let_func", "let_func_token", "let_func_exps",
508 "let_exps", "callback_rval", "callback_arg_list", "callback_args",
509 "return_stmt", "return_exp", "call_decl_vars", "set_stmt", "set_exp",
510 "set_func", "set_func_token", "set_func_exps", "set_exps", "assert_stmt",
511 "assert_stmt_token", "free_stmt", "free_exps", "free_exp", "reference",
512 "byref", YY_NULLPTR
513 };
514 #endif
515
516 #define YYPACT_NINF -717
517 #define YYTABLE_NINF -626
518
519 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
520 STATE-NUM. */
521 static const short int yypact[] =
522 {
523 713, -717, -717, -717, -717, -717, 54, -717, -717, -717,
524 501, -717, -717, -717, 741, 1409, 7459, 7459, 7459, 120,
525 26, 236, 23, -717, 5541, 1667, 71, 713, -717, -717,
526 -717, -717, -717, 6717, 597, -717, -717, -717, -717, 174,
527 162, -717, -717, -717, -717, -40, -717, -717, 84, 64,
528 87, -717, -717, -717, -717, 91, -717, 97, -717, -717,
529 -717, 7459, 7459, 7459, -717, 1667, -717, 79, -717, -717,
530 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
531 884, -717, -717, -717, -717, 123, 1010, 1010, 25, -717,
532 1010, 6491, 7459, 7459, 1780, 125, -717, -717, -717, 129,
533 7459, 141, 141, -717, -717, -717, 5474, -717, -717, -717,
534 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
535 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
536 -717, -717, -717, -717, -717, -717, -717, 131, -717, -717,
537 131, 128, -717, -717, -717, -717, -717, 158, -717, 155,
538 1667, 152, 161, -717, 171, -717, 1893, 1409, -40, 152,
539 -717, -717, 27, 164, -717, -717, 168, 7459, 4, -717,
540 -717, -717, 222, -717, 73, -717, -717, -717, 199, -717,
541 198, 207, 2006, 2006, 7459, 217, -717, -717, -717, 152,
542 6943, 232, -717, 1519, -717, -717, -717, -717, -717, -717,
543 -717, -717, 1632, -717, -717, -717, -717, 1745, 1858, -717,
544 -717, -717, 1971, -717, -717, -717, -717, -717, -717, -717,
545 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
546 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
547 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
548 -717, -717, -717, -717, -717, 2084, 2197, 2310, 2423, 2536,
549 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
550 -717, -717, -717, -717, -717, 2649, -717, 2762, 2875, 2988,
551 3101, 3214, 3327, -717, 3440, -717, -717, 3553, 3666, 3779,
552 3892, 4005, 4118, 4231, 4344, 4457, 4570, 4683, 4796, 4909,
553 5022, 5135, 5248, -717, -717, -717, -717, -717, -717, -717,
554 5361, 1010, -717, -717, -717, -717, -717, -717, -717, -717,
555 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
556 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
557 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
558 1010, -717, -717, -717, -717, -717, -717, -717, 80, 6491,
559 -717, -717, -717, -717, 7056, 6491, 201, 7588, -717, 139,
560 -717, 177, -717, -717, -717, -717, 241, 243, 243, 52,
561 52, 245, -717, 152, 1262, -717, 217, 251, 264, 283,
562 -717, -717, -717, -717, 1376, -717, 253, 164, -717, -717,
563 -717, -717, -717, 311, -717, -717, 292, -717, 202, 6717,
564 -717, 287, 216, 290, -717, -717, 218, 285, 294, -717,
565 6943, 6152, 6943, 7459, 6943, -717, -717, 43, -717, -717,
566 -717, -717, -717, 6378, -717, -717, 296, -717, 7459, -717,
567 -717, 299, 7588, 300, -717, -717, -717, -717, 567, 312,
568 -717, 6822, 7459, -717, -717, 6491, -717, -717, -717, -717,
569 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
570 -717, -717, -717, -717, 6491, 6491, 314, 1497, 6943, 6943,
571 -717, -717, -717, -717, 5700, -717, -717, -717, -717, -717,
572 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
573 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
574 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
575 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
576 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
577 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
578 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
579 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
580 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
581 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
582 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
583 -717, -717, -717, -717, 1136, -717, 56, 258, -717, -717,
584 -717, -717, -717, -717, -717, 5587, -717, -717, 6378, -717,
585 7564, -717, -717, 309, 7169, -717, -717, -717, 68, 317,
586 2006, 164, 291, 1667, 164, 297, 6378, 7459, 319, 318,
587 320, 7612, 324, 323, -717, 328, 341, 326, 335, 112,
588 -717, 338, 340, -717, -717, -717, 6705, 6943, 7228, -717,
589 253, 339, -717, -717, -717, 342, 7588, 345, 346, 7322,
590 -717, 348, 1780, 344, -717, -717, 6604, 408, 7459, 141,
591 141, -717, -717, 176, -717, -717, 350, -717, 300, 7612,
592 -717, -717, -717, -717, -717, -717, -717, -717, 349, 233,
593 -717, 23, -717, -717, -717, 44, 70, 76, 6924, -717,
594 -717, 6378, 6378, -717, 253, 249, -717, 253, 255, -717,
595 352, -717, -717, 353, 7612, -717, -717, 5813, -717, 6152,
596 -717, 6943, -717, 23, 6943, -717, 7459, 7341, -717, -717,
597 -717, -717, -717, 356, 357, -717, -717, -717, -717, 6491,
598 6491, 363, -717, 51, 365, -717, 344, 243, 243, -717,
599 284, 367, 284, 343, 6378, -717, 7540, -717, 7459, 2006,
600 -717, 6830, 164, 347, 164, 164, 192, 295, 237, 371,
601 7612, -717, -717, -717, -717, 374, 6265, -717, 375, 6943,
602 271, -717, 377, 296, 387, 1010, 7400, 7588, 7636, 397,
603 388, 392, 6943, 395, 365, 6943, 6943, -717, 284, -717,
604 23, 5700, -717, 6378, 396, 399, -717, -717, 400, -717,
605 -717, 371, -717, -717, -717, 7341, -717, 406, 6378, 23,
606 -717, 5926, 407, 411, -717, 331, -717, -717, -717, 410,
607 404, 419, 344, 414, -717, 418, -717, 40, -717, 7660,
608 425, 427, 164, 428, 23, 7160, 424, 435, -717, 436,
609 -717, -717, 104, -717, 439, 440, -717, 6943, -717, 451,
610 2006, 449, -717, 385, 453, 6378, 5813, 454, -717, 6152,
611 -717, -717, 456, 461, 464, 344, 458, 463, 2006, 459,
612 6039, 7047, 318, -717, -717, -717, 465, 6265, -717, -717,
613 466, 468, -717, 462, 469, 471, 481, 482, 480, -717,
614 -717, 5813, -717, 494, -717, 284, 489, 164, 23, 492,
615 6152, -717, 493, -717, 2006, -717, 490, -717, -717, -717,
616 495, 6039, 164, 499, -717, 500, -717
617 };
618
619 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
620 Performed when YYTABLE does not specify something else to do. Zero
621 means the default is an error. */
622 static const unsigned short int yydefact[] =
623 {
624 277, 396, 393, 397, 391, 392, 394, 388, 389, 387,
625 386, 378, 282, 281, 0, 0, 0, 0, 500, 377,
626 0, 0, 625, 283, 0, 0, 0, 278, 279, 285,
627 284, 286, 290, 517, 0, 374, 380, 379, 385, 400,
628 412, 384, 287, 288, 289, 417, 435, 437, 438, 0,
629 0, 449, 292, 291, 293, 0, 294, 0, 395, 390,
630 386, 0, 0, 0, 377, 0, 436, 422, 296, 307,
631 304, 306, 308, 309, 320, 317, 318, 315, 321, 316,
632 0, 319, 310, 311, 312, 0, 332, 332, 0, 300,
633 0, 0, 500, 500, 0, 0, 360, 365, 458, 364,
634 0, 508, 508, 33, 34, 613, 574, 24, 39, 38,
635 37, 35, 36, 32, 31, 25, 29, 28, 26, 27,
636 40, 582, 581, 579, 577, 578, 580, 576, 575, 583,
637 30, 611, 609, 608, 610, 607, 606, 381, 41, 42,
638 382, 383, 497, 541, 542, 543, 544, 0, 538, 0,
639 0, 0, 0, 627, 0, 626, 386, 0, 417, 0,
640 1, 280, 523, 510, 376, 459, 0, 518, 519, 521,
641 375, 402, 406, 404, 408, 401, 398, 413, 400, 399,
642 0, 0, 450, 450, 0, 0, 381, 382, 383, 0,
643 0, 0, 68, 43, 44, 45, 46, 47, 48, 49,
644 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
645 60, 61, 62, 63, 64, 65, 66, 67, 158, 159,
646 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
647 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
648 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
649 99, 100, 101, 102, 108, 106, 107, 105, 103, 104,
650 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
651 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
652 129, 130, 131, 132, 160, 133, 134, 135, 136, 137,
653 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
654 148, 149, 150, 151, 152, 156, 153, 154, 155, 157,
655 0, 332, 302, 297, 43, 52, 57, 58, 62, 106,
656 107, 105, 103, 104, 124, 126, 127, 128, 129, 130,
657 131, 160, 135, 136, 137, 138, 139, 140, 141, 142,
658 143, 144, 145, 146, 147, 148, 149, 150, 334, 305,
659 333, 298, 313, 314, 299, 301, 342, 343, 0, 0,
660 22, 23, 20, 21, 0, 0, 345, 303, 344, 381,
661 499, 382, 498, 361, 358, 366, 0, 0, 0, 0,
662 0, 0, 295, 0, 0, 426, 0, 0, 0, 0,
663 428, 526, 525, 524, 513, 461, 517, 510, 520, 522,
664 407, 403, 409, 410, 405, 414, 0, 415, 387, 517,
665 455, 0, 0, 452, 453, 456, 0, 476, 502, 474,
666 0, 625, 0, 0, 0, 619, 620, 0, 550, 553,
667 552, 554, 555, 0, 556, 429, 423, 424, 0, 421,
668 419, 0, 324, 325, 322, 335, 496, 495, 0, 0,
669 491, 0, 0, 340, 337, 347, 2, 3, 4, 5,
670 6, 7, 8, 9, 10, 11, 13, 12, 14, 15,
671 16, 17, 18, 19, 0, 0, 0, 0, 0, 0,
672 464, 463, 465, 462, 0, 427, 186, 161, 162, 163,
673 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
674 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
675 184, 185, 274, 275, 187, 188, 189, 190, 191, 192,
676 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
677 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
678 213, 214, 215, 216, 217, 218, 224, 222, 223, 221,
679 219, 220, 225, 226, 227, 228, 229, 230, 231, 232,
680 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
681 243, 244, 245, 246, 247, 248, 276, 249, 250, 251,
682 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
683 262, 263, 264, 265, 266, 267, 268, 272, 269, 270,
684 271, 273, 433, 434, 0, 431, 0, 0, 359, 416,
685 487, 485, 484, 486, 515, 0, 516, 514, 0, 488,
686 0, 478, 489, 0, 0, 518, 460, 411, 0, 457,
687 450, 510, 0, 0, 510, 0, 0, 503, 0, 0,
688 0, 602, 0, 0, 601, 42, 0, 0, 0, 0,
689 622, 0, 0, 596, 527, 551, 0, 0, 326, 420,
690 517, 0, 492, 494, 336, 0, 349, 0, 348, 0,
691 338, 0, 0, 504, 369, 362, 370, 0, 371, 508,
692 508, 368, 367, 487, 356, 357, 0, 352, 354, 353,
693 430, 432, 528, 546, 547, 548, 549, 545, 0, 0,
694 532, 625, 537, 539, 540, 613, 24, 0, 0, 482,
695 512, 0, 0, 511, 517, 0, 418, 517, 0, 441,
696 0, 454, 439, 0, 477, 475, 473, 0, 557, 625,
697 600, 0, 536, 625, 0, 621, 0, 597, 594, 618,
698 425, 327, 330, 0, 328, 493, 490, 341, 346, 0,
699 0, 0, 363, 0, 469, 466, 504, 0, 0, 351,
700 0, 0, 0, 534, 0, 480, 0, 481, 0, 450,
701 447, 0, 510, 0, 510, 510, 487, 0, 31, 30,
702 563, 568, 564, 566, 567, 41, 0, 603, 614, 0,
703 0, 623, 613, 599, 0, 332, 0, 350, 339, 0,
704 505, 0, 0, 0, 469, 373, 372, 529, 0, 533,
705 625, 0, 479, 0, 0, 0, 448, 445, 0, 442,
706 440, 0, 565, 588, 574, 597, 589, 0, 0, 625,
707 569, 625, 0, 0, 624, 0, 323, 329, 331, 0,
708 0, 0, 504, 470, 467, 0, 530, 0, 535, 483,
709 0, 0, 510, 0, 625, 0, 584, 0, 616, 615,
710 604, 558, 0, 509, 0, 0, 471, 0, 468, 0,
711 450, 0, 446, 0, 0, 0, 0, 0, 605, 625,
712 612, 595, 0, 0, 0, 504, 0, 0, 450, 0,
713 590, 0, 488, 586, 561, 559, 585, 0, 573, 617,
714 0, 0, 472, 0, 0, 0, 0, 0, 591, 592,
715 570, 0, 560, 0, 506, 0, 0, 510, 625, 0,
716 625, 587, 0, 531, 450, 443, 0, 571, 593, 507,
717 0, 590, 510, 0, 444, 0, 572
718 };
719
720 /* YYPGOTO[NTERM-NUM]. */
721 static const short int yypgoto[] =
722 {
723 -717, -334, -81, -2, -58, -717, -717, -717, 507, -717,
724 -717, -717, -717, -717, -717, -717, -717, -717, -717, -717,
725 -717, -717, -84, -717, -284, -717, -717, -717, -276, -717,
726 -717, 370, -141, 35, -135, -174, -22, -14, -717, -717,
727 -717, 502, -717, -717, 361, -717, -717, -717, -717, 382,
728 -261, -717, -717, -177, -717, -121, -717, -63, 520, 37,
729 3, 45, -717, -717, -717, -717, -179, -717, -88, -10,
730 -32, -717, -717, 166, -350, -717, -257, -717, 7, -717,
731 -89, -359, -717, -79, -717, 101, -717, -440, -438, 214,
732 -717, -708, -83, -374, -717, -367, -27, -717, 383, -717,
733 -717, 529, -717, -209, -670, -716, -717, -717, 535, -717,
734 169, -384, -717, -355, -686, 148, -208, -717, -717, -691,
735 -717, -717, -319, -352, -717, -717, -717, -245, -717, -396,
736 -407, -400, -717, -717, -717, -717, -717, -717, -155, -20,
737 -687
738 };
739
740 /* YYDEFGOTO[NTERM-NUM]. */
741 static const short int yydefgoto[] =
742 {
743 -1, 712, 618, 163, 348, 602, 26, 27, 28, 29,
744 30, 85, 86, 87, 88, 354, 89, 90, 91, 312,
745 743, 744, 349, 350, 367, 667, 668, 31, 686, 687,
746 32, 95, 673, 674, 675, 33, 34, 35, 36, 37,
747 38, 39, 40, 41, 176, 401, 404, 179, 42, 181,
748 688, 43, 191, 793, 44, 603, 604, 605, 45, 46,
749 47, 98, 410, 49, 411, 50, 412, 413, 414, 51,
750 619, 52, 53, 481, 482, 677, 803, 843, 100, 418,
751 419, 641, 621, 622, 661, 450, 55, 101, 102, 142,
752 638, 754, 377, 395, 623, 166, 438, 168, 169, 393,
753 56, 57, 699, 700, 642, 701, 147, 702, 703, 704,
754 427, 428, 429, 893, 894, 895, 782, 783, 784, 138,
755 877, 896, 827, 907, 908, 430, 652, 794, 431, 909,
756 644, 139, 832, 859, 432, 433, 434, 649, 650, 646,
757 155
758 };
759
760 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
761 positive, shift that token. If negative, reduce the rule whose
762 number is the opposite. If YYTABLE_NINF, syntax error. */
763 static const short int yytable[] =
764 {
765 67, 165, 154, 351, 416, 99, 167, 54, 409, 409,
766 365, 164, 368, 436, 137, 140, 141, 653, 97, 378,
767 170, 645, 311, 626, 645, 643, 442, 478, 479, 624,
768 385, 763, 355, 475, 54, 620, 785, 679, 390, 680,
769 786, 781, 629, 655, 807, 48, 810, 66, 804, 443,
770 96, 352, 149, 162, 379, 48, 391, 380, 151, 186,
771 187, 188, 159, 58, 732, 59, 48, 153, 435, 48,
772 48, 160, 48, -387, 656, 451, 800, -387, 310, 402,
773 654, 454, 403, 480, 99, 180, 801, 826, 477, 366,
774 369, 371, 846, 692, 659, 785, 182, 97, 375, -386,
775 830, 716, 189, -24, 869, 11, 446, 447, 475, 764,
776 48, -449, 448, 190, 392, -438, -458, 475, -458, 183,
777 475, 105, 880, 143, 449, 689, 144, 184, 398, 373,
778 145, -387, 146, 185, 866, 420, 421, 422, 423, 424,
779 763, 425, 426, 735, 353, 628, 736, 99, 420, 421,
780 422, 423, 424, 313, 425, 426, 374, -386, 437, 856,
781 97, -449, -508, 64, -501, 397, 376, -508, 177, 4,
782 5, 666, 415, 415, -381, -501, 376, 902, 171, 172,
783 173, 381, 417, 174, 874, 785, 382, 383, 384, 897,
784 669, 670, 96, 66, 387, 48, 175, 386, 826, 923,
785 396, 48, 394, 171, 172, 173, 785, -355, 174, -355,
786 -355, 912, -382, -501, 131, 132, 133, 134, 135, 136,
787 785, 175, 655, -487, 897, -487, -487, 444, 400, 365,
788 406, 368, 679, 455, 680, -387, -387, 679, 407, 680,
789 1, 2, 3, 4, 5, 6, 7, 8, 926, 631,
790 632, 634, 635, 9, 823, 824, 708, 719, 60, 709,
791 722, 143, 485, 439, 144, 11, 761, 762, 145, 825,
792 146, 693, 694, 695, 696, 697, 476, 724, 365, 477,
793 368, 769, 770, 607, 365, 484, 368, 143, 772, 773,
794 144, 698, 445, 745, 145, 608, 146, 693, 694, 695,
795 696, 697, 162, 676, 834, 657, 370, 372, 366, 420,
796 421, 422, 423, 424, 609, 425, 426, 627, 440, 630,
797 61, 62, 63, 64, 633, 636, 659, 22, 637, 645,
798 657, 658, 475, 787, 663, 475, 475, 121, 122, 123,
799 124, 125, 126, 127, 128, 129, 671, 768, 713, 717,
800 771, 728, 766, 767, 730, 720, 726, 366, 727, 150,
801 731, 723, 453, 366, 729, 732, 733, 734, 780, 625,
802 737, 738, 746, 751, 365, 747, 368, 165, 748, 753,
803 749, 759, 167, 811, 760, 774, 775, 164, 639, 795,
804 647, 796, 651, 365, 365, 368, 368, 799, 817, 802,
805 819, 820, 808, 828, 821, 812, 829, 805, 806, 831,
806 -598, 818, 1, 2, 3, 4, 5, 6, 7, 8,
807 835, 648, 839, 840, 841, 9, 844, 780, 862, 850,
808 60, 645, 851, 852, 660, 858, 397, 11, 854, 864,
809 860, 707, 861, 863, 865, 755, 681, 682, 867, 868,
810 665, 718, 689, 366, 849, 881, 409, 870, 876, 409,
811 871, 873, 882, 475, 475, 797, 798, 99, 878, 855,
812 879, 883, 366, 366, 884, 886, 823, 824, 872, 645,
813 97, 888, 889, 899, 678, 890, 900, 898, 731, 901,
814 645, 903, 92, 93, 18, 64, 904, 915, 676, 911,
815 913, 914, 916, 676, 917, 1, 2, 3, 4, 5,
816 6, 7, 8, 918, 920, 919, 891, 780, 9, 922,
817 645, 924, 931, 60, 928, 927, 929, 388, 932, 672,
818 11, 645, 935, 936, 161, 848, 756, 752, 780, 405,
819 389, 691, 178, 925, 158, 721, 483, 845, 725, 662,
820 152, 399, 780, 809, 148, 606, 921, 790, 934, 121,
821 122, 123, 124, 125, 126, 127, 128, 129, 640, 822,
822 906, 1, 2, 3, 4, 5, 6, 7, 8, 933,
823 853, 791, 0, 0, 9, 61, 62, 63, 64, 60,
824 815, 0, 0, 446, 447, 409, 757, 758, 0, 0,
825 0, 1, 2, 3, 4, 5, 6, 7, 8, 0,
826 0, 449, 0, 0, 9, 0, 0, 0, 0, 60,
827 415, 0, 715, 415, 65, 740, 0, 0, 0, 0,
828 0, 0, 0, 625, 0, 417, 0, 0, 0, 0,
829 0, 0, 0, 0, 165, 0, 0, 0, 0, 167,
830 0, 61, 62, 63, 164, 0, 742, 0, 0, 0,
831 0, 0, 99, 0, 0, 0, 0, 99, 365, 365,
832 368, 368, 0, 0, 0, 97, 375, 0, 0, 678,
833 97, 61, 62, 63, 678, 164, 0, 625, 0, 0,
834 625, 887, 0, 0, 0, 0, 409, 0, 0, 788,
835 0, 0, 437, 0, 0, 437, 0, 0, 0, 905,
836 0, 836, 0, 789, 409, 0, 0, 1, 2, 3,
837 4, 5, 6, 7, 8, 0, 0, 0, 0, 0,
838 9, 0, 0, 0, 648, 10, 0, 0, 0, 0,
839 0, 0, 11, 12, 13, 930, 0, 366, 366, 0,
840 409, 0, 0, 0, 14, 0, 0, 833, 0, 415,
841 0, 0, 0, 0, 0, 0, 814, 0, 0, 715,
842 842, 68, 0, 681, 682, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 847, 0, 0, 437, 838, 0, 15, 16, 17, 18,
845 19, 20, 21, 0, 22, 0, 0, 69, 70, 71,
846 72, 73, 74, 75, 76, 77, 78, 79, 80, 0,
847 81, 82, 83, 84, 0, 0, 0, 0, 0, 23,
848 0, 0, 0, 0, 24, 885, 25, 0, 0, 0,
849 0, 0, 0, 0, 892, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 415, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 415, 892,
853 0, 0, 0, 0, 192, 0, 0, 193, 194, 195,
854 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
855 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
856 216, 217, 218, 219, 415, 220, 221, 222, 223, 224,
857 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
858 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
859 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
860 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
861 265, 266, 267, 268, 0, 269, 0, 270, 271, 272,
862 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
863 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
864 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
865 303, 0, 0, 304, 0, 305, 306, 307, 308, 309,
866 192, 0, 0, 314, 194, 195, 196, 197, 198, 199,
867 200, 201, 315, 203, 204, 205, 206, 316, 317, 209,
868 210, 211, 318, 213, 214, 215, 216, 217, 218, 219,
869 0, 220, 221, 222, 223, 224, 225, 226, 227, 228,
870 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
871 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
872 249, 250, 251, 252, 253, 254, 319, 320, 321, 322,
873 323, 260, 261, 262, 263, 264, 265, 266, 267, 268,
874 0, 269, 0, 270, 271, 272, 273, 274, 324, 276,
875 325, 326, 327, 328, 329, 330, 283, 331, 285, 286,
876 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
877 342, 343, 344, 345, 346, 347, 303, 0, 0, 304,
878 0, 305, 306, 307, 308, 309, 486, 0, 0, 487,
879 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
880 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
881 508, 509, 510, 511, 512, 513, 0, 514, 515, 516,
882 517, 518, 384, 690, 519, 520, 521, 522, 523, 524,
883 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
884 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
885 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
886 555, 556, 557, 558, 559, 560, 0, 561, 0, 562,
887 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
888 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
889 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
890 593, 594, 595, 0, 0, 596, 0, 597, 598, 599,
891 600, 601, 486, 0, 0, 487, 488, 489, 490, 491,
892 492, 493, 494, 495, 496, 497, 498, 499, 500, 501,
893 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
894 512, 513, 0, 514, 515, 516, 517, 518, 384, 0,
895 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
896 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
897 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
898 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
899 559, 560, 0, 561, 0, 562, 563, 564, 565, 566,
900 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
901 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
902 587, 588, 589, 590, 591, 592, 593, 594, 595, 103,
903 0, 596, 0, 597, 598, 599, 600, 601, 104, 0,
904 0, 0, 0, 105, 106, 610, 0, 0, 107, 611,
905 0, 612, 0, 613, 358, 614, 0, 0, 615, 0,
906 0, 0, 0, 1, 2, 3, 4, 5, 6, 7,
907 8, 0, 0, 360, 361, 162, 9, 0, 0, 0,
908 0, 60, 0, 0, 0, 0, 362, 363, 11, 0,
909 0, 0, 108, 109, 110, 111, 112, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 616, 113, 0, 114, 115, 116, 117,
912 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
913 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
914 135, 136, 0, 92, 93, 18, 64, 0, 0, 0,
915 617, 1, 2, 3, 4, 5, 6, 7, 8, 0,
916 0, 0, 0, 0, 9, 0, 0, 0, 0, 60,
917 0, 0, -33, 0, 0, 0, 11, 0, 0, 0,
918 94, -33, 0, 0, 0, 0, -33, -33, 0, 0,
919 0, -33, 0, 0, -33, -33, -33, -33, 0, 0,
920 0, -33, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 0, 0, 0, 0, 0, -33, -33, 0, 0,
922 0, 0, 0, 0, 0, 0, 0, 0, 0, -33,
923 -33, 92, 93, 18, 64, -33, -33, -33, -33, -33,
924 0, 0, 0, 0, 0, 0, 0, -33, 0, 0,
925 0, 0, 0, 0, 0, 0, 0, -33, 0, -33,
926 -33, -33, -33, -33, -33, 0, -33, 0, 672, -33,
927 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
928 -33, -33, -33, -33, -33, -34, 0, -33, 0, 0,
929 0, 0, 0, 0, -34, 0, 0, 0, 0, -34,
930 -34, 0, 0, 0, -34, 0, 0, -34, -34, -34,
931 -34, 0, 0, 0, -34, 0, 0, 0, 0, 0,
932 0, 1, 2, 3, 4, 5, 6, 7, 8, -34,
933 -34, 0, 0, 0, 9, 0, 0, 0, 0, 60,
934 0, 0, -34, -34, 0, 0, 11, 0, -34, -34,
935 -34, -34, -34, 0, 0, 0, 0, 0, 0, 0,
936 -34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937 -34, 0, -34, -34, -34, -34, -34, -34, 0, -34,
938 0, 0, -34, -34, -34, -34, -34, -34, -34, -34,
939 -34, -34, -34, -34, -34, -34, -34, -34, -57, 0,
940 -34, 61, 62, 63, 64, 0, 0, -57, 0, 0,
941 0, 0, -57, -57, 0, 0, 0, -57, 0, 0,
942 -57, -57, -57, -57, 0, 0, 0, -57, 0, 0,
943 0, 0, 0, 0, 1, 2, 3, 4, 5, 6,
944 7, 8, -57, -57, 0, 0, 0, 9, 0, 0,
945 0, 0, 60, 0, 0, -57, -57, 0, 0, 11,
946 0, -57, -57, -57, -57, -57, 0, 0, 0, 0,
947 0, 0, 0, -57, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, -57, 0, -57, -57, -57, -57, -57,
949 -57, 0, -57, 0, 0, -57, -57, -57, -57, -57,
950 -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
951 -57, -58, 0, -613, 92, 93, 18, 64, 0, 0,
952 -58, 0, 0, 0, 0, -58, -58, 0, 0, 0,
953 -58, 0, 0, -58, -58, -58, -58, 0, 0, 0,
954 -58, 0, 0, 0, 0, 0, 0, 1, 2, 3,
955 4, 5, 6, 7, 8, -58, -58, 0, 0, 0,
956 9, 0, 0, 0, 0, 60, 0, 0, -58, -58,
957 0, 0, 11, 0, -58, -58, -58, -58, -58, 0,
958 0, 0, 0, 0, 0, 0, -58, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, -58, 0, -58, -58,
960 -58, -58, -58, -58, 0, -58, 0, 0, -58, -58,
961 -58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
962 -58, -58, -58, -58, -24, 0, -574, 61, 62, 63,
963 64, 0, 0, -24, 0, 0, 0, 0, -24, -24,
964 0, 0, 0, -24, 0, 0, -24, -24, -24, -24,
965 0, 0, 0, -24, 0, 0, 0, 0, 0, 0,
966 1, 2, 3, 4, 5, 6, 7, 8, -24, -24,
967 0, 0, 0, 408, 0, 0, 0, 0, 60, 0,
968 0, -24, -24, 0, 0, 11, 0, -24, -24, -24,
969 -24, -24, 0, 0, 0, 0, 0, 0, 0, -24,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, -24,
971 0, -24, -24, -24, -24, -24, -24, 0, -24, 0,
972 0, -24, -24, -24, -24, -24, -24, -24, -24, -24,
973 -24, -24, -24, -24, -24, -24, -24, -39, 0, -24,
974 61, 62, 63, 64, 0, 0, -39, 0, 0, 0,
975 0, -39, -39, 0, 0, 0, -39, 0, 0, -39,
976 -39, -39, -39, 0, 0, 0, -39, 0, 0, 0,
977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
978 0, -39, -39, 0, 0, 0, 0, 0, 0, 0,
979 0, 0, 0, 0, -39, -39, 0, 0, 0, 0,
980 -39, -39, -39, -39, -39, 0, 0, 0, 0, 0,
981 0, 0, -39, 0, 0, 0, 0, 0, 0, 0,
982 0, 0, -39, 0, -39, -39, -39, -39, -39, -39,
983 0, -39, 0, 0, -39, -39, -39, -39, -39, -39,
984 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
985 -38, 0, -39, 0, 0, 0, 0, 0, 0, -38,
986 0, 0, 0, 0, -38, -38, 0, 0, 0, -38,
987 0, 0, -38, -38, -38, -38, 0, 0, 0, -38,
988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, 0, -38, -38, 0, 0, 0, 0,
990 0, 0, 0, 0, 0, 0, 0, -38, -38, 0,
991 0, 0, 0, -38, -38, -38, -38, -38, 0, 0,
992 0, 0, 0, 0, 0, -38, 0, 0, 0, 0,
993 0, 0, 0, 0, 0, -38, 0, -38, -38, -38,
994 -38, -38, -38, 0, -38, 0, 0, -38, -38, -38,
995 -38, -38, -38, -38, -38, -38, -38, -38, -38, -38,
996 -38, -38, -38, -37, 0, -38, 0, 0, 0, 0,
997 0, 0, -37, 0, 0, 0, 0, -37, -37, 0,
998 0, 0, -37, 0, 0, -37, -37, -37, -37, 0,
999 0, 0, -37, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, 0, 0, 0, 0, 0, -37, -37, 0,
1001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1002 -37, -37, 0, 0, 0, 0, -37, -37, -37, -37,
1003 -37, 0, 0, 0, 0, 0, 0, 0, -37, 0,
1004 0, 0, 0, 0, 0, 0, 0, 0, -37, 0,
1005 -37, -37, -37, -37, -37, -37, 0, -37, 0, 0,
1006 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
1007 -37, -37, -37, -37, -37, -37, -35, 0, -37, 0,
1008 0, 0, 0, 0, 0, -35, 0, 0, 0, 0,
1009 -35, -35, 0, 0, 0, -35, 0, 0, -35, -35,
1010 -35, -35, 0, 0, 0, -35, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1012 -35, -35, 0, 0, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, -35, -35, 0, 0, 0, 0, -35,
1014 -35, -35, -35, -35, 0, 0, 0, 0, 0, 0,
1015 0, -35, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, -35, 0, -35, -35, -35, -35, -35, -35, 0,
1017 -35, 0, 0, -35, -35, -35, -35, -35, -35, -35,
1018 -35, -35, -35, -35, -35, -35, -35, -35, -35, -36,
1019 0, -35, 0, 0, 0, 0, 0, 0, -36, 0,
1020 0, 0, 0, -36, -36, 0, 0, 0, -36, 0,
1021 0, -36, -36, -36, -36, 0, 0, 0, -36, 0,
1022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1023 0, 0, 0, -36, -36, 0, 0, 0, 0, 0,
1024 0, 0, 0, 0, 0, 0, -36, -36, 0, 0,
1025 0, 0, -36, -36, -36, -36, -36, 0, 0, 0,
1026 0, 0, 0, 0, -36, 0, 0, 0, 0, 0,
1027 0, 0, 0, 0, -36, 0, -36, -36, -36, -36,
1028 -36, -36, 0, -36, 0, 0, -36, -36, -36, -36,
1029 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
1030 -36, -36, -32, 0, -36, 0, 0, 0, 0, 0,
1031 0, -32, 0, 0, 0, 0, -32, -32, 0, 0,
1032 0, -32, 0, 0, -32, -32, -32, -32, 0, 0,
1033 0, -32, 0, 0, 0, 0, 0, 0, 0, 0,
1034 0, 0, 0, 0, 0, 0, -32, -32, 0, 0,
1035 0, 0, 0, 0, 0, 0, 0, 0, 0, -32,
1036 -32, 0, 0, 0, 0, -32, -32, -32, -32, -32,
1037 0, 0, 0, 0, 0, 0, 0, -32, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, -32, 0, -32,
1039 -32, -32, -32, -32, -32, 0, -32, 0, 0, -32,
1040 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
1041 -32, -32, -32, -32, -32, -31, 0, -32, 0, 0,
1042 0, 0, 0, 0, -31, 0, 0, 0, 0, -31,
1043 -31, 0, 0, 0, -31, 0, 0, -31, -31, -31,
1044 -31, 0, 0, 0, -31, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0, 0, -31,
1046 -31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, -31, -31, 0, 0, 0, 0, -31, -31,
1048 -31, -31, -31, 0, 0, 0, 0, 0, 0, 0,
1049 -31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 -31, 0, -31, -31, -31, -31, -31, -31, 0, -31,
1051 0, 0, -31, -31, -31, -31, -31, -31, -31, -31,
1052 -31, -31, -31, -31, -31, -31, -31, -31, -25, 0,
1053 -31, 0, 0, 0, 0, 0, 0, -25, 0, 0,
1054 0, 0, -25, -25, 0, 0, 0, -25, 0, 0,
1055 -25, -25, -25, -25, 0, 0, 0, -25, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, -25, -25, 0, 0, 0, 0, 0, 0,
1058 0, 0, 0, 0, 0, -25, -25, 0, 0, 0,
1059 0, -25, -25, -25, -25, -25, 0, 0, 0, 0,
1060 0, 0, 0, -25, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, -25, 0, -25, -25, -25, -25, -25,
1062 -25, 0, -25, 0, 0, -25, -25, -25, -25, -25,
1063 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
1064 -25, -29, 0, -25, 0, 0, 0, 0, 0, 0,
1065 -29, 0, 0, 0, 0, -29, -29, 0, 0, 0,
1066 -29, 0, 0, -29, -29, -29, -29, 0, 0, 0,
1067 -29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, -29, -29, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, -29, -29,
1070 0, 0, 0, 0, -29, -29, -29, -29, -29, 0,
1071 0, 0, 0, 0, 0, 0, -29, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, -29, 0, -29, -29,
1073 -29, -29, -29, -29, 0, -29, 0, 0, -29, -29,
1074 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
1075 -29, -29, -29, -29, -28, 0, -29, 0, 0, 0,
1076 0, 0, 0, -28, 0, 0, 0, 0, -28, -28,
1077 0, 0, 0, -28, 0, 0, -28, -28, -28, -28,
1078 0, 0, 0, -28, 0, 0, 0, 0, 0, 0,
1079 0, 0, 0, 0, 0, 0, 0, 0, -28, -28,
1080 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1081 0, -28, -28, 0, 0, 0, 0, -28, -28, -28,
1082 -28, -28, 0, 0, 0, 0, 0, 0, 0, -28,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, -28,
1084 0, -28, -28, -28, -28, -28, -28, 0, -28, 0,
1085 0, -28, -28, -28, -28, -28, -28, -28, -28, -28,
1086 -28, -28, -28, -28, -28, -28, -28, -26, 0, -28,
1087 0, 0, 0, 0, 0, 0, -26, 0, 0, 0,
1088 0, -26, -26, 0, 0, 0, -26, 0, 0, -26,
1089 -26, -26, -26, 0, 0, 0, -26, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1091 0, -26, -26, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, -26, -26, 0, 0, 0, 0,
1093 -26, -26, -26, -26, -26, 0, 0, 0, 0, 0,
1094 0, 0, -26, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, -26, 0, -26, -26, -26, -26, -26, -26,
1096 0, -26, 0, 0, -26, -26, -26, -26, -26, -26,
1097 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
1098 -27, 0, -26, 0, 0, 0, 0, 0, 0, -27,
1099 0, 0, 0, 0, -27, -27, 0, 0, 0, -27,
1100 0, 0, -27, -27, -27, -27, 0, 0, 0, -27,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 0, -27, -27, 0, 0, 0, 0,
1103 0, 0, 0, 0, 0, 0, 0, -27, -27, 0,
1104 0, 0, 0, -27, -27, -27, -27, -27, 0, 0,
1105 0, 0, 0, 0, 0, -27, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, -27, 0, -27, -27, -27,
1107 -27, -27, -27, 0, -27, 0, 0, -27, -27, -27,
1108 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
1109 -27, -27, -27, -40, 0, -27, 0, 0, 0, 0,
1110 0, 0, -40, 0, 0, 0, 0, -40, -40, 0,
1111 0, 0, -40, 0, 0, -40, -40, -40, -40, 0,
1112 0, 0, -40, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, 0, 0, 0, 0, 0, -40, -40, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 -40, -40, 0, 0, 0, 0, -40, -40, -40, -40,
1116 -40, 0, 0, 0, 0, 0, 0, 0, -40, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, -40, 0,
1118 -40, -40, -40, -40, -40, -40, 0, -40, 0, 0,
1119 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1120 -40, -40, -40, -40, -40, -40, -135, 0, -40, 0,
1121 0, 0, 0, 0, 0, -135, 0, 0, 0, 0,
1122 -135, -135, 0, 0, 0, -135, 0, 0, -135, -135,
1123 -135, -135, 0, 0, 0, -135, 0, 0, 0, 0,
1124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1125 -135, -135, 0, 0, 0, 0, 0, 0, 0, 0,
1126 0, 0, 0, -135, -135, 0, 0, 0, 0, -135,
1127 -135, -135, -135, -135, 0, 0, 0, 0, 0, 0,
1128 0, -135, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, -135, 0, -135, -135, -135, -135, -135, -135, 0,
1130 -135, 0, 0, -135, -135, -135, -135, -135, -135, -135,
1131 -135, -135, -135, -135, -135, -135, -135, -135, -135, -136,
1132 0, -582, 0, 0, 0, 0, 0, 0, -136, 0,
1133 0, 0, 0, -136, -136, 0, 0, 0, -136, 0,
1134 0, -136, -136, -136, -136, 0, 0, 0, -136, 0,
1135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1136 0, 0, 0, -136, -136, 0, 0, 0, 0, 0,
1137 0, 0, 0, 0, 0, 0, -136, -136, 0, 0,
1138 0, 0, -136, -136, -136, -136, -136, 0, 0, 0,
1139 0, 0, 0, 0, -136, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, -136, 0, -136, -136, -136, -136,
1141 -136, -136, 0, -136, 0, 0, -136, -136, -136, -136,
1142 -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1143 -136, -136, -137, 0, -581, 0, 0, 0, 0, 0,
1144 0, -137, 0, 0, 0, 0, -137, -137, 0, 0,
1145 0, -137, 0, 0, -137, -137, -137, -137, 0, 0,
1146 0, -137, 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, -137, -137, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0, 0, -137,
1149 -137, 0, 0, 0, 0, -137, -137, -137, -137, -137,
1150 0, 0, 0, 0, 0, 0, 0, -137, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, -137, 0, -137,
1152 -137, -137, -137, -137, -137, 0, -137, 0, 0, -137,
1153 -137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1154 -137, -137, -137, -137, -137, -138, 0, -579, 0, 0,
1155 0, 0, 0, 0, -138, 0, 0, 0, 0, -138,
1156 -138, 0, 0, 0, -138, 0, 0, -138, -138, -138,
1157 -138, 0, 0, 0, -138, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, -138,
1159 -138, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, -138, -138, 0, 0, 0, 0, -138, -138,
1161 -138, -138, -138, 0, 0, 0, 0, 0, 0, 0,
1162 -138, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 -138, 0, -138, -138, -138, -138, -138, -138, 0, -138,
1164 0, 0, -138, -138, -138, -138, -138, -138, -138, -138,
1165 -138, -138, -138, -138, -138, -138, -138, -138, -139, 0,
1166 -577, 0, 0, 0, 0, 0, 0, -139, 0, 0,
1167 0, 0, -139, -139, 0, 0, 0, -139, 0, 0,
1168 -139, -139, -139, -139, 0, 0, 0, -139, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0, -139, -139, 0, 0, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, -139, -139, 0, 0, 0,
1172 0, -139, -139, -139, -139, -139, 0, 0, 0, 0,
1173 0, 0, 0, -139, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, -139, 0, -139, -139, -139, -139, -139,
1175 -139, 0, -139, 0, 0, -139, -139, -139, -139, -139,
1176 -139, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1177 -139, -140, 0, -578, 0, 0, 0, 0, 0, 0,
1178 -140, 0, 0, 0, 0, -140, -140, 0, 0, 0,
1179 -140, 0, 0, -140, -140, -140, -140, 0, 0, 0,
1180 -140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, -140, -140, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, -140, -140,
1183 0, 0, 0, 0, -140, -140, -140, -140, -140, 0,
1184 0, 0, 0, 0, 0, 0, -140, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, -140, 0, -140, -140,
1186 -140, -140, -140, -140, 0, -140, 0, 0, -140, -140,
1187 -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1188 -140, -140, -140, -140, -141, 0, -580, 0, 0, 0,
1189 0, 0, 0, -141, 0, 0, 0, 0, -141, -141,
1190 0, 0, 0, -141, 0, 0, -141, -141, -141, -141,
1191 0, 0, 0, -141, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0, -141, -141,
1193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, -141, -141, 0, 0, 0, 0, -141, -141, -141,
1195 -141, -141, 0, 0, 0, 0, 0, 0, 0, -141,
1196 0, 0, 0, 0, 0, 0, 0, 0, 0, -141,
1197 0, -141, -141, -141, -141, -141, -141, 0, -141, 0,
1198 0, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1199 -141, -141, -141, -141, -141, -141, -141, -142, 0, -576,
1200 0, 0, 0, 0, 0, 0, -142, 0, 0, 0,
1201 0, -142, -142, 0, 0, 0, -142, 0, 0, -142,
1202 -142, -142, -142, 0, 0, 0, -142, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, -142, -142, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 0, 0, -142, -142, 0, 0, 0, 0,
1206 -142, -142, -142, -142, -142, 0, 0, 0, 0, 0,
1207 0, 0, -142, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, -142, 0, -142, -142, -142, -142, -142, -142,
1209 0, -142, 0, 0, -142, -142, -142, -142, -142, -142,
1210 -142, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1211 -143, 0, -575, 0, 0, 0, 0, 0, 0, -143,
1212 0, 0, 0, 0, -143, -143, 0, 0, 0, -143,
1213 0, 0, -143, -143, -143, -143, 0, 0, 0, -143,
1214 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, -143, -143, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, -143, -143, 0,
1217 0, 0, 0, -143, -143, -143, -143, -143, 0, 0,
1218 0, 0, 0, 0, 0, -143, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, -143, 0, -143, -143, -143,
1220 -143, -143, -143, 0, -143, 0, 0, -143, -143, -143,
1221 -143, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1222 -143, -143, -143, -30, 0, -583, 0, 0, 0, 0,
1223 0, 0, -30, 0, 0, 0, 0, -30, -30, 0,
1224 0, 0, -30, 0, 0, -30, -30, -30, -30, 0,
1225 0, 0, -30, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, -30, -30, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1228 -30, -30, 0, 0, 0, 0, -30, -30, -30, -30,
1229 -30, 0, 0, 0, 0, 0, 0, 0, -30, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0, -30, 0,
1231 -30, -30, -30, -30, -30, -30, 0, -30, 0, 0,
1232 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
1233 -30, -30, -30, -30, -30, -30, -145, 0, -30, 0,
1234 0, 0, 0, 0, 0, -145, 0, 0, 0, 0,
1235 -145, -145, 0, 0, 0, -145, 0, 0, -145, -145,
1236 -145, -145, 0, 0, 0, -145, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1238 -145, -145, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, -145, -145, 0, 0, 0, 0, -145,
1240 -145, -145, -145, -145, 0, 0, 0, 0, 0, 0,
1241 0, -145, 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, -145, 0, -145, -145, -145, -145, -145, -145, 0,
1243 -145, 0, 0, -145, -145, -145, -145, -145, -145, -145,
1244 -145, -145, -145, -145, -145, -145, -145, -145, -145, -146,
1245 0, -611, 0, 0, 0, 0, 0, 0, -146, 0,
1246 0, 0, 0, -146, -146, 0, 0, 0, -146, 0,
1247 0, -146, -146, -146, -146, 0, 0, 0, -146, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, -146, -146, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, -146, -146, 0, 0,
1251 0, 0, -146, -146, -146, -146, -146, 0, 0, 0,
1252 0, 0, 0, 0, -146, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, -146, 0, -146, -146, -146, -146,
1254 -146, -146, 0, -146, 0, 0, -146, -146, -146, -146,
1255 -146, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1256 -146, -146, -147, 0, -609, 0, 0, 0, 0, 0,
1257 0, -147, 0, 0, 0, 0, -147, -147, 0, 0,
1258 0, -147, 0, 0, -147, -147, -147, -147, 0, 0,
1259 0, -147, 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, -147, -147, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0, 0, -147,
1262 -147, 0, 0, 0, 0, -147, -147, -147, -147, -147,
1263 0, 0, 0, 0, 0, 0, 0, -147, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, -147, 0, -147,
1265 -147, -147, -147, -147, -147, 0, -147, 0, 0, -147,
1266 -147, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1267 -147, -147, -147, -147, -147, -148, 0, -608, 0, 0,
1268 0, 0, 0, 0, -148, 0, 0, 0, 0, -148,
1269 -148, 0, 0, 0, -148, 0, 0, -148, -148, -148,
1270 -148, 0, 0, 0, -148, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 0, -148,
1272 -148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, -148, -148, 0, 0, 0, 0, -148, -148,
1274 -148, -148, -148, 0, 0, 0, 0, 0, 0, 0,
1275 -148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1276 -148, 0, -148, -148, -148, -148, -148, -148, 0, -148,
1277 0, 0, -148, -148, -148, -148, -148, -148, -148, -148,
1278 -148, -148, -148, -148, -148, -148, -148, -148, -149, 0,
1279 -610, 0, 0, 0, 0, 0, 0, -149, 0, 0,
1280 0, 0, -149, -149, 0, 0, 0, -149, 0, 0,
1281 -149, -149, -149, -149, 0, 0, 0, -149, 0, 0,
1282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1283 0, 0, -149, -149, 0, 0, 0, 0, 0, 0,
1284 0, 0, 0, 0, 0, -149, -149, 0, 0, 0,
1285 0, -149, -149, -149, -149, -149, 0, 0, 0, 0,
1286 0, 0, 0, -149, 0, 0, 0, 0, 0, 0,
1287 0, 0, 0, -149, 0, -149, -149, -149, -149, -149,
1288 -149, 0, -149, 0, 0, -149, -149, -149, -149, -149,
1289 -149, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1290 -149, -150, 0, -607, 0, 0, 0, 0, 0, 0,
1291 -150, 0, 0, 0, 0, -150, -150, 0, 0, 0,
1292 -150, 0, 0, -150, -150, -150, -150, 0, 0, 0,
1293 -150, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1294 0, 0, 0, 0, 0, -150, -150, 0, 0, 0,
1295 0, 0, 0, 0, 0, 0, 0, 0, -150, -150,
1296 0, 0, 0, 0, -150, -150, -150, -150, -150, 0,
1297 0, 0, 0, 0, 0, 0, -150, 0, 0, 0,
1298 0, 0, 0, 0, 0, 0, -150, 0, -150, -150,
1299 -150, -150, -150, -150, 0, -150, 0, 0, -150, -150,
1300 -150, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1301 -150, -150, -150, -150, 103, 0, -606, 0, 0, 0,
1302 0, 0, 0, 104, 0, 0, 0, 0, 105, 106,
1303 0, 0, 0, 107, 0, 0, 356, 440, 357, 358,
1304 0, 0, 0, 359, 0, 0, 0, 0, 0, 0,
1305 0, 0, 0, 0, 0, 0, 0, 0, 360, 361,
1306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1307 0, 362, 363, 0, 0, 0, 0, 108, 109, 110,
1308 111, 112, 0, 0, 0, 0, 0, 0, 0, 364,
1309 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
1310 0, 114, 115, 116, 117, 118, 119, 0, 120, 0,
1311 0, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1312 130, 131, 132, 133, 134, 135, 136, -574, 0, 441,
1313 0, 0, 0, 0, 0, 0, -574, 0, 0, 0,
1314 0, -574, -574, 0, 0, 0, -574, 0, 0, 0,
1315 0, 0, 0, -574, -574, -574, -574, -574, -574, -574,
1316 -574, -574, -574, -574, -574, 0, -574, -574, -574, -574,
1317 -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
1318 -574, -574, -574, -574, 0, 0, 0, 0, 0, -574,
1319 -574, -574, -574, -574, -574, 1, 2, 3, 4, 5,
1320 6, 7, 8, 0, 0, 0, 0, 0, 9, 0,
1321 0, -574, -574, 156, -574, -574, -574, -574, -574, -574,
1322 11, -574, 0, 0, -574, -574, -574, -574, -574, -574,
1323 -574, -574, -574, -574, -574, -574, -574, -574, -574, -574,
1324 103, 1, 2, 3, 4, 5, 6, 7, 8, 104,
1325 0, 0, 0, 0, 705, 106, 610, 0, 0, 706,
1326 611, 0, 612, 0, 613, 358, 11, 0, 0, 615,
1327 0, 0, 0, 0, 157, 61, 62, 63, 64, 0,
1328 0, 0, 0, 0, 360, 361, 162, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 362, 363, 0,
1330 0, 0, 0, 108, 109, 110, 111, 112, 0, 0,
1331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1332 0, 61, 62, 63, 64, 113, 0, 114, 115, 116,
1333 117, 118, 119, 0, 120, 0, 0, 121, 122, 123,
1334 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1335 134, 135, 136, 103, 0, 0, 0, 0, 0, 0,
1336 0, 0, 104, 0, 0, 0, 0, 105, 106, 683,
1337 684, 685, 107, 611, 0, 612, 440, 613, 358, 0,
1338 0, 0, 615, 0, 0, 0, 0, 0, 0, 0,
1339 0, 0, 0, 0, 0, 0, 0, 360, 361, 162,
1340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1341 362, 363, 0, 0, 0, 0, 108, 109, 110, 111,
1342 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
1344 114, 115, 116, 117, 118, 119, 0, 120, 0, 0,
1345 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1346 131, 132, 133, 134, 135, 136, 103, 0, 0, 0,
1347 0, 0, 0, 0, 0, 104, 0, 0, 0, 0,
1348 105, 106, 776, 0, 0, 107, 611, 0, 612, 0,
1349 613, 358, 0, 0, 0, 615, 0, 0, 0, 0,
1350 0, 0, 0, 0, 0, 0, 0, 153, 0, 0,
1351 360, 361, 162, 0, 0, 0, 0, 0, 0, 0,
1352 0, 0, 0, 362, 363, 0, 0, 0, 0, 108,
1353 109, 110, 111, 112, 0, 0, 0, 0, 0, 0,
1354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1355 0, 113, 777, 778, 115, 116, 117, 118, 119, 0,
1356 120, 0, 0, 121, 122, 123, 124, 125, 126, 127,
1357 128, 129, 779, 131, 132, 133, 134, 135, 136, 103,
1358 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1359 0, 0, 0, 105, 106, 610, 0, 0, 107, 611,
1360 0, 612, 0, 613, 358, 0, 0, 0, 615, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1362 153, 0, 0, 360, 361, 162, 0, 0, 0, 0,
1363 0, 0, 0, 0, 0, 0, 362, 363, 0, 0,
1364 857, 0, 108, 109, 110, 111, 112, 0, 0, 0,
1365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1366 0, 0, 0, 0, 113, 0, 114, 115, 116, 117,
1367 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
1368 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1369 135, 136, 103, 0, 0, 0, 0, 0, 0, 0,
1370 0, 104, 0, 0, 0, 0, 105, 106, 610, 0,
1371 0, 107, 611, -625, 612, 0, 613, 358, 0, 0,
1372 0, 615, 0, 0, 0, 0, 0, 0, 0, 0,
1373 0, 0, 0, 153, 0, 0, 360, 361, 162, 0,
1374 0, 0, 0, 0, 0, 0, 0, 0, 0, 362,
1375 363, 0, 0, 0, 0, 108, 109, 110, 111, 112,
1376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1377 0, 0, 0, 0, 0, 0, 0, 113, 0, 114,
1378 115, 116, 117, 118, 119, 0, 120, 0, 0, 121,
1379 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1380 132, 133, 134, 135, 136, 103, 0, 0, 0, 0,
1381 0, 0, 0, 0, 104, 0, 0, 0, 0, 105,
1382 106, 610, 0, 0, 107, 611, 0, 612, 0, 613,
1383 358, 0, 0, 0, 615, 0, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 153, 0, 0, 360,
1385 361, 162, 0, 0, 0, 0, 0, 0, 0, 0,
1386 0, 0, 362, 363, 0, 0, 0, 0, 108, 109,
1387 110, 111, 112, 0, 0, 0, 0, 0, 0, 0,
1388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1389 113, 0, 114, 115, 116, 117, 118, 119, 0, 120,
1390 0, 0, 121, 122, 123, 124, 125, 126, 127, 128,
1391 129, 130, 131, 132, 133, 134, 135, 136, 103, 0,
1392 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
1393 0, 0, 105, 106, 776, 0, 0, 107, 611, 0,
1394 612, 0, 613, 358, 0, 0, 0, 615, 0, 0,
1395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1396 0, 0, 360, 361, 162, 0, 0, 0, 0, 0,
1397 0, 0, 0, 0, 0, 362, 363, 0, 0, 0,
1398 0, 108, 109, 110, 111, 112, 0, 0, 0, 0,
1399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400 0, 0, 0, 113, 777, 778, 115, 116, 117, 118,
1401 119, 0, 120, 0, 0, 121, 122, 123, 124, 125,
1402 126, 127, 128, 129, 779, 131, 132, 133, 134, 135,
1403 136, 103, 0, 0, 0, 0, 0, 0, 0, 0,
1404 104, 0, 0, 0, 0, 105, 106, 610, 0, 0,
1405 107, 611, 0, 612, 0, 613, 358, 0, 0, 0,
1406 615, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407 0, 0, 0, 0, 0, 360, 361, 162, 0, 0,
1408 0, 0, 0, 0, 0, 0, 0, 0, 362, 363,
1409 0, 0, 0, 0, 108, 109, 110, 111, 112, 0,
1410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411 0, 0, 0, 0, 0, 0, 113, 0, 114, 115,
1412 116, 117, 118, 119, 0, 120, 0, 0, 121, 122,
1413 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1414 133, 134, 135, 136, 103, 0, 0, 0, 0, 0,
1415 0, 0, 0, 104, 0, 0, 0, 0, 105, 106,
1416 0, 0, 0, 107, 0, 0, 356, 0, 357, 358,
1417 0, 0, 0, 359, 0, 0, 0, 0, 0, 0,
1418 0, 0, 0, 0, 0, 0, 0, 0, 360, 361,
1419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1420 0, 362, 363, 0, 0, 0, 0, 108, 109, 110,
1421 111, 112, 0, 0, 0, 0, 0, 0, 0, 364,
1422 0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
1423 0, 114, 115, 116, 117, 118, 119, 0, 120, 0,
1424 0, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1425 130, 131, 132, 133, 134, 135, 136, 103, 0, 0,
1426 0, 0, 0, 0, 0, 0, 104, 0, 0, 0,
1427 0, 105, 106, 0, 0, 0, 107, 0, 0, 0,
1428 0, 0, 0, 11, 0, 0, -517, 0, 0, 0,
1429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430 0, 0, 0, 162, 0, 0, 0, 0, 0, 0,
1431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1432 108, 109, 110, 111, 112, 0, 0, 0, 0, 0,
1433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1434 0, 64, 113, 0, 114, 115, 116, 117, 118, 119,
1435 0, 120, 0, 0, 121, 122, 123, 124, 125, 126,
1436 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1437 103, 0, 0, 0, 0, 0, 0, 0, 0, 104,
1438 0, 0, 0, 0, 105, 106, 739, 0, 0, 107,
1439 0, 0, 0, 0, 0, 0, 11, 456, 457, 458,
1440 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
1441 469, 470, 471, 472, 473, 0, 162, 0, 0, 0,
1442 711, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1443 0, 0, 0, 108, 109, 110, 111, 112, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 64, 113, 0, 114, 115, 116,
1446 117, 118, 119, 0, 120, 0, 0, 121, 122, 123,
1447 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1448 134, 135, 136, 103, 0, 0, 0, 0, 0, 0,
1449 0, 0, 104, 0, 0, 0, 0, 105, 106, 0,
1450 0, 0, 107, 0, 0, 664, 0, 0, 0, 0,
1451 0, 0, 714, 816, 456, 457, 458, 459, 460, 461,
1452 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1453 472, 473, 0, 0, 0, 0, 0, 474, 0, 0,
1454 0, 0, 0, 0, 0, 0, 108, 109, 110, 111,
1455 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
1457 114, 115, 116, 117, 118, 119, 0, 120, 0, 0,
1458 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1459 131, 132, 133, 134, 135, 136, 103, 0, 0, 0,
1460 0, 0, 0, 0, 0, 104, 0, 765, 0, 0,
1461 105, 106, 0, 0, 0, 107, 456, 457, 458, 459,
1462 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
1463 470, 471, 472, 473, 0, 0, 0, 0, 0, 711,
1464 0, 0, 162, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
1466 109, 110, 111, 112, 0, 0, 0, 0, 0, 0,
1467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468 0, 113, 0, 114, 115, 116, 117, 118, 119, 0,
1469 120, 0, 0, 121, 122, 123, 124, 125, 126, 127,
1470 128, 129, 130, 131, 132, 133, 134, 135, 136, 103,
1471 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
1472 0, 0, 0, 105, 106, 0, 0, 0, 107, 0,
1473 910, 0, 0, 0, 0, 0, 0, 0, 452, 456,
1474 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
1475 467, 468, 469, 470, 471, 472, 473, 0, 0, 0,
1476 0, 0, 711, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 108, 109, 110, 111, 112, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479 0, 0, 0, 0, 113, 0, 114, 115, 116, 117,
1480 118, 119, 0, 120, 0, 0, 121, 122, 123, 124,
1481 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1482 135, 136, 103, 0, 0, 0, 0, 0, 0, 0,
1483 0, 104, 0, 0, 0, 0, 105, 106, 0, 0,
1484 0, 107, 0, 0, 875, 0, 0, 0, 0, 0,
1485 0, 714, 456, 457, 458, 459, 460, 461, 462, 463,
1486 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1487 0, 0, 0, 0, 0, 711, 0, 0, 0, 0,
1488 0, 103, 0, 0, 0, 108, 109, 110, 111, 112,
1489 104, 0, 0, 0, 0, 105, 106, 0, 0, 0,
1490 107, 0, 0, 0, 0, 0, 0, 113, 0, 114,
1491 115, 116, 117, 118, 119, 0, 120, 0, 0, 121,
1492 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1493 132, 133, 134, 135, 136, 0, 0, 0, 0, 0,
1494 0, 0, 741, 0, 108, 109, 110, 111, 112, 0,
1495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496 0, 0, 0, 0, 0, 0, 113, 0, 114, 115,
1497 116, 117, 118, 119, 0, 120, 0, 0, 121, 122,
1498 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1499 133, 134, 135, 136, 103, 0, 0, 0, 0, 0,
1500 0, 0, 0, 104, 0, 0, 0, 750, 792, 106,
1501 0, 0, 0, 107, 456, 457, 458, 459, 460, 461,
1502 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1503 472, 473, 0, 0, 0, 0, 0, 474, 0, 0,
1504 162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 103, 0, 0, 0, 108, 109, 110,
1506 111, 112, 104, 0, 0, 0, 0, 105, 106, 0,
1507 0, 0, 107, 0, 0, 0, 0, 0, 0, 113,
1508 0, 114, 115, 116, 117, 118, 119, 0, 120, 0,