port of netbsd's tr
[minix.git] / commands / awk / ytabc.bak
blobcc8e84879f7cc51fc12e48bbdf0b1c2e49b84914
1 /* A Bison parser, made by GNU Bison 2.3.  */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software Foundation, Inc.
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
23 /* As a special exception, you may create a larger work that contains
24    part or all of the Bison parser skeleton and distribute that work
25    under terms of your choice, so long as that work isn't itself a
26    parser generator using the skeleton or a modified version thereof
27    as a parser skeleton.  Alternatively, if you modify or redistribute
28    the parser skeleton itself, you may (at your option) remove this
29    special exception, which will cause the skeleton and the resulting
30    Bison output files to be licensed under the GNU General Public
31    License without this special exception.
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37    simplifying the original so-called "semantic" parser.  */
39 /* All symbols defined below should begin with yy or YY, to avoid
40    infringing on user name space.  This should be done even for local
41    variables, as they might otherwise be expanded by user macros.
42    There are some unavoidable exceptions within include files to
43    define necessary library symbols; they are noted "INFRINGES ON
44    USER NAME SPACE" below.  */
46 /* Identify Bison output.  */
47 #define YYBISON 1
49 /* Bison version.  */
50 #define YYBISON_VERSION "2.3"
52 /* Skeleton name.  */
53 #define YYSKELETON_NAME "yacc.c"
55 /* Pure parsers.  */
56 #define YYPURE 0
58 /* Using locations.  */
59 #define YYLSP_NEEDED 0
63 /* Tokens.  */
64 #ifndef YYTOKENTYPE
65 # define YYTOKENTYPE
66    /* Put the tokens into the symbol table, so that GDB and other debuggers
67       know about them.  */
68    enum yytokentype {
69      FIRSTTOKEN = 258,
70      PROGRAM = 259,
71      PASTAT = 260,
72      PASTAT2 = 261,
73      XBEGIN = 262,
74      XEND = 263,
75      NL = 264,
76      ARRAY = 265,
77      MATCH = 266,
78      NOTMATCH = 267,
79      MATCHOP = 268,
80      FINAL = 269,
81      DOT = 270,
82      ALL = 271,
83      CCL = 272,
84      NCCL = 273,
85      CHAR = 274,
86      OR = 275,
87      STAR = 276,
88      QUEST = 277,
89      PLUS = 278,
90      EMPTYRE = 279,
91      AND = 280,
92      BOR = 281,
93      APPEND = 282,
94      EQ = 283,
95      GE = 284,
96      GT = 285,
97      LE = 286,
98      LT = 287,
99      NE = 288,
100      IN = 289,
101      ARG = 290,
102      BLTIN = 291,
103      BREAK = 292,
104      CLOSE = 293,
105      CONTINUE = 294,
106      DELETE = 295,
107      DO = 296,
108      EXIT = 297,
109      FOR = 298,
110      FUNC = 299,
111      SUB = 300,
112      GSUB = 301,
113      IF = 302,
114      INDEX = 303,
115      LSUBSTR = 304,
116      MATCHFCN = 305,
117      NEXT = 306,
118      NEXTFILE = 307,
119      ADD = 308,
120      MINUS = 309,
121      MULT = 310,
122      DIVIDE = 311,
123      MOD = 312,
124      ASSIGN = 313,
125      ASGNOP = 314,
126      ADDEQ = 315,
127      SUBEQ = 316,
128      MULTEQ = 317,
129      DIVEQ = 318,
130      MODEQ = 319,
131      POWEQ = 320,
132      PRINT = 321,
133      PRINTF = 322,
134      SPRINTF = 323,
135      ELSE = 324,
136      INTEST = 325,
137      CONDEXPR = 326,
138      POSTINCR = 327,
139      PREINCR = 328,
140      POSTDECR = 329,
141      PREDECR = 330,
142      VAR = 331,
143      IVAR = 332,
144      VARNF = 333,
145      CALL = 334,
146      NUMBER = 335,
147      STRING = 336,
148      REGEXPR = 337,
149      GETLINE = 338,
150      SUBSTR = 339,
151      SPLIT = 340,
152      RETURN = 341,
153      WHILE = 342,
154      CAT = 343,
155      UMINUS = 344,
156      NOT = 345,
157      POWER = 346,
158      INCR = 347,
159      DECR = 348,
160      INDIRECT = 349,
161      LASTTOKEN = 350
162    };
163 #endif
164 /* Tokens.  */
165 #define FIRSTTOKEN 258
166 #define PROGRAM 259
167 #define PASTAT 260
168 #define PASTAT2 261
169 #define XBEGIN 262
170 #define XEND 263
171 #define NL 264
172 #define ARRAY 265
173 #define MATCH 266
174 #define NOTMATCH 267
175 #define MATCHOP 268
176 #define FINAL 269
177 #define DOT 270
178 #define ALL 271
179 #define CCL 272
180 #define NCCL 273
181 #define CHAR 274
182 #define OR 275
183 #define STAR 276
184 #define QUEST 277
185 #define PLUS 278
186 #define EMPTYRE 279
187 #define AND 280
188 #define BOR 281
189 #define APPEND 282
190 #define EQ 283
191 #define GE 284
192 #define GT 285
193 #define LE 286
194 #define LT 287
195 #define NE 288
196 #define IN 289
197 #define ARG 290
198 #define BLTIN 291
199 #define BREAK 292
200 #define CLOSE 293
201 #define CONTINUE 294
202 #define DELETE 295
203 #define DO 296
204 #define EXIT 297
205 #define FOR 298
206 #define FUNC 299
207 #define SUB 300
208 #define GSUB 301
209 #define IF 302
210 #define INDEX 303
211 #define LSUBSTR 304
212 #define MATCHFCN 305
213 #define NEXT 306
214 #define NEXTFILE 307
215 #define ADD 308
216 #define MINUS 309
217 #define MULT 310
218 #define DIVIDE 311
219 #define MOD 312
220 #define ASSIGN 313
221 #define ASGNOP 314
222 #define ADDEQ 315
223 #define SUBEQ 316
224 #define MULTEQ 317
225 #define DIVEQ 318
226 #define MODEQ 319
227 #define POWEQ 320
228 #define PRINT 321
229 #define PRINTF 322
230 #define SPRINTF 323
231 #define ELSE 324
232 #define INTEST 325
233 #define CONDEXPR 326
234 #define POSTINCR 327
235 #define PREINCR 328
236 #define POSTDECR 329
237 #define PREDECR 330
238 #define VAR 331
239 #define IVAR 332
240 #define VARNF 333
241 #define CALL 334
242 #define NUMBER 335
243 #define STRING 336
244 #define REGEXPR 337
245 #define GETLINE 338
246 #define SUBSTR 339
247 #define SPLIT 340
248 #define RETURN 341
249 #define WHILE 342
250 #define CAT 343
251 #define UMINUS 344
252 #define NOT 345
253 #define POWER 346
254 #define INCR 347
255 #define DECR 348
256 #define INDIRECT 349
257 #define LASTTOKEN 350
262 /* Copy the first part of user declarations.  */
263 #line 25 "awkgram.y"
265 #include <stdio.h>
266 #include <string.h>
267 #include "awk.h"
269 void checkdup(Node *list, Cell *item);
270 int yywrap(void) { return(1); }
272 Node    *beginloc = 0;
273 Node    *endloc = 0;
274 int     infunc  = 0;    /* = 1 if in arglist or body of func */
275 int     inloop  = 0;    /* = 1 if in while, for, do */
276 char    *curfname = 0;  /* current function name */
277 Node    *arglist = 0;   /* list of args for current function */
280 /* Enabling traces.  */
281 #ifndef YYDEBUG
282 # define YYDEBUG 0
283 #endif
285 /* Enabling verbose error messages.  */
286 #ifdef YYERROR_VERBOSE
287 # undef YYERROR_VERBOSE
288 # define YYERROR_VERBOSE 1
289 #else
290 # define YYERROR_VERBOSE 0
291 #endif
293 /* Enabling the token table.  */
294 #ifndef YYTOKEN_TABLE
295 # define YYTOKEN_TABLE 0
296 #endif
298 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
299 typedef union YYSTYPE
300 #line 41 "awkgram.y"
302         Node    *p;
303         Cell    *cp;
304         int     i;
305         char    *s;
307 /* Line 193 of yacc.c.  */
308 #line 309 "y.tab.c"
309         YYSTYPE;
310 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
311 # define YYSTYPE_IS_DECLARED 1
312 # define YYSTYPE_IS_TRIVIAL 1
313 #endif
317 /* Copy the second part of user declarations.  */
320 /* Line 216 of yacc.c.  */
321 #line 322 "y.tab.c"
323 #ifdef short
324 # undef short
325 #endif
327 #ifdef YYTYPE_UINT8
328 typedef YYTYPE_UINT8 yytype_uint8;
329 #else
330 typedef unsigned char yytype_uint8;
331 #endif
333 #ifdef YYTYPE_INT8
334 typedef YYTYPE_INT8 yytype_int8;
335 #elif (defined __STDC__ || defined __C99__FUNC__ \
336      || defined __cplusplus || defined _MSC_VER)
337 typedef signed char yytype_int8;
338 #else
339 typedef short int yytype_int8;
340 #endif
342 #ifdef YYTYPE_UINT16
343 typedef YYTYPE_UINT16 yytype_uint16;
344 #else
345 typedef unsigned short int yytype_uint16;
346 #endif
348 #ifdef YYTYPE_INT16
349 typedef YYTYPE_INT16 yytype_int16;
350 #else
351 typedef short int yytype_int16;
352 #endif
354 #ifndef YYSIZE_T
355 # ifdef __SIZE_TYPE__
356 #  define YYSIZE_T __SIZE_TYPE__
357 # elif defined size_t
358 #  define YYSIZE_T size_t
359 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
360      || defined __cplusplus || defined _MSC_VER)
361 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
362 #  define YYSIZE_T size_t
363 # else
364 #  define YYSIZE_T unsigned int
365 # endif
366 #endif
368 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
370 #ifndef YY_
371 # if defined YYENABLE_NLS && YYENABLE_NLS
372 #  if ENABLE_NLS
373 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
374 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
375 #  endif
376 # endif
377 # ifndef YY_
378 #  define YY_(msgid) msgid
379 # endif
380 #endif
382 /* Suppress unused-variable warnings by "using" E.  */
383 #if ! defined lint || defined __GNUC__
384 # define YYUSE(e) ((void) (e))
385 #else
386 # define YYUSE(e) /* empty */
387 #endif
389 /* Identity function, used to suppress warnings about constant conditions.  */
390 #ifndef lint
391 # define YYID(n) (n)
392 #else
393 #if (defined __STDC__ || defined __C99__FUNC__ \
394      || defined __cplusplus || defined _MSC_VER)
395 static int
396 YYID (int i)
397 #else
398 static int
399 YYID (i)
400     int i;
401 #endif
403   return i;
405 #endif
407 #if ! defined yyoverflow || YYERROR_VERBOSE
409 /* The parser invokes alloca or malloc; define the necessary symbols.  */
411 # ifdef YYSTACK_USE_ALLOCA
412 #  if YYSTACK_USE_ALLOCA
413 #   ifdef __GNUC__
414 #    define YYSTACK_ALLOC __builtin_alloca
415 #   elif defined __BUILTIN_VA_ARG_INCR
416 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
417 #   elif defined _AIX
418 #    define YYSTACK_ALLOC __alloca
419 #   elif defined _MSC_VER
420 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
421 #    define alloca _alloca
422 #   else
423 #    define YYSTACK_ALLOC alloca
424 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
425      || defined __cplusplus || defined _MSC_VER)
426 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
427 #     ifndef _STDLIB_H
428 #      define _STDLIB_H 1
429 #     endif
430 #    endif
431 #   endif
432 #  endif
433 # endif
435 # ifdef YYSTACK_ALLOC
436    /* Pacify GCC's `empty if-body' warning.  */
437 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
438 #  ifndef YYSTACK_ALLOC_MAXIMUM
439     /* The OS might guarantee only one guard page at the bottom of the stack,
440        and a page size can be as small as 4096 bytes.  So we cannot safely
441        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
442        to allow for a few compiler-allocated temporary stack slots.  */
443 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
444 #  endif
445 # else
446 #  define YYSTACK_ALLOC YYMALLOC
447 #  define YYSTACK_FREE YYFREE
448 #  ifndef YYSTACK_ALLOC_MAXIMUM
449 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
450 #  endif
451 #  if (defined __cplusplus && ! defined _STDLIB_H \
452        && ! ((defined YYMALLOC || defined malloc) \
453              && (defined YYFREE || defined free)))
454 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
455 #   ifndef _STDLIB_H
456 #    define _STDLIB_H 1
457 #   endif
458 #  endif
459 #  ifndef YYMALLOC
460 #   define YYMALLOC malloc
461 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
462      || defined __cplusplus || defined _MSC_VER)
463 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
464 #   endif
465 #  endif
466 #  ifndef YYFREE
467 #   define YYFREE free
468 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
469      || defined __cplusplus || defined _MSC_VER)
470 void free (void *); /* INFRINGES ON USER NAME SPACE */
471 #   endif
472 #  endif
473 # endif
474 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
477 #if (! defined yyoverflow \
478      && (! defined __cplusplus \
479          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
481 /* A type that is properly aligned for any stack member.  */
482 union yyalloc
484   yytype_int16 yyss;
485   YYSTYPE yyvs;
486   };
488 /* The size of the maximum gap between one aligned stack and the next.  */
489 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
491 /* The size of an array large to enough to hold all stacks, each with
492    N elements.  */
493 # define YYSTACK_BYTES(N) \
494      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
495       + YYSTACK_GAP_MAXIMUM)
497 /* Copy COUNT objects from FROM to TO.  The source and destination do
498    not overlap.  */
499 # ifndef YYCOPY
500 #  if defined __GNUC__ && 1 < __GNUC__
501 #   define YYCOPY(To, From, Count) \
502       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
503 #  else
504 #   define YYCOPY(To, From, Count)              \
505       do                                        \
506         {                                       \
507           YYSIZE_T yyi;                         \
508           for (yyi = 0; yyi < (Count); yyi++)   \
509             (To)[yyi] = (From)[yyi];            \
510         }                                       \
511       while (YYID (0))
512 #  endif
513 # endif
515 /* Relocate STACK from its old location to the new one.  The
516    local variables YYSIZE and YYSTACKSIZE give the old and new number of
517    elements in the stack, and YYPTR gives the new location of the
518    stack.  Advance YYPTR to a properly aligned location for the next
519    stack.  */
520 # define YYSTACK_RELOCATE(Stack)                                        \
521     do                                                                  \
522       {                                                                 \
523         YYSIZE_T yynewbytes;                                            \
524         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
525         Stack = &yyptr->Stack;                                          \
526         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
527         yyptr += yynewbytes / sizeof (*yyptr);                          \
528       }                                                                 \
529     while (YYID (0))
531 #endif
533 /* YYFINAL -- State number of the termination state.  */
534 #define YYFINAL  8
535 /* YYLAST -- Last index in YYTABLE.  */
536 #define YYLAST   4600
538 /* YYNTOKENS -- Number of terminals.  */
539 #define YYNTOKENS  112
540 /* YYNNTS -- Number of nonterminals.  */
541 #define YYNNTS  49
542 /* YYNRULES -- Number of rules.  */
543 #define YYNRULES  185
544 /* YYNRULES -- Number of states.  */
545 #define YYNSTATES  367
547 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
548 #define YYUNDEFTOK  2
549 #define YYMAXUTOK   350
551 #define YYTRANSLATE(YYX)                                                \
552   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
554 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
555 static const yytype_uint8 yytranslate[] =
557        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,     2,     2,     2,     2,   104,     2,     2,
561       12,    16,   103,   101,     9,   102,     2,    15,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,    94,    14,
563        2,     2,     2,    93,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,    18,     2,    19,     2,     2,     2,     2,     2,     2,
567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
569        2,     2,     2,    11,    13,    17,     2,     2,     2,     2,
570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
582        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
583        5,     6,     7,     8,    10,    20,    21,    22,    23,    24,
584       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
585       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
586       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
587       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
588       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
589       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
590       85,    86,    87,    88,    89,    90,    91,    92,    95,    96,
591       97,    98,    99,   100,   105,   106,   107,   108,   109,   110,
592      111
595 #if YYDEBUG
596 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
597    YYRHS.  */
598 static const yytype_uint16 yyprhs[] =
600        0,     0,     3,     5,     7,     9,    12,    14,    17,    19,
601       22,    24,    27,    29,    32,    33,    46,    47,    58,    59,
602       68,    70,    72,    77,    79,    82,    84,    87,    88,    90,
603       91,    93,    94,    96,    98,   102,   104,   106,   111,   115,
604      122,   126,   131,   136,   137,   147,   149,   153,   155,   159,
605      163,   169,   173,   177,   181,   185,   189,   195,   198,   200,
606      202,   206,   212,   216,   220,   224,   228,   232,   236,   240,
607      244,   248,   252,   256,   262,   267,   271,   274,   276,   278,
608      282,   286,   288,   292,   293,   295,   299,   301,   303,   305,
609      307,   310,   313,   315,   318,   320,   323,   324,   329,   331,
610      334,   339,   344,   349,   352,   358,   361,   363,   365,   367,
611      370,   373,   376,   377,   378,   388,   392,   395,   397,   402,
612      405,   409,   412,   415,   419,   422,   425,   426,   430,   433,
613      435,   438,   440,   442,   447,   451,   455,   459,   463,   467,
614      471,   474,   477,   480,   484,   489,   491,   495,   500,   503,
615      506,   509,   512,   515,   520,   524,   527,   529,   536,   543,
616      547,   554,   561,   563,   572,   581,   588,   593,   595,   602,
617      609,   618,   627,   636,   643,   645,   647,   652,   654,   657,
618      658,   660,   664,   666,   668,   670
621 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
622 static const yytype_int16 yyrhs[] =
624      113,     0,    -1,   130,    -1,     1,    -1,    35,    -1,   114,
625       10,    -1,    36,    -1,   115,    10,    -1,     9,    -1,   116,
626       10,    -1,    51,    -1,   117,    10,    -1,    79,    -1,   118,
627       10,    -1,    -1,    53,    12,   129,    14,   127,   137,    14,
628      127,   129,   147,   120,   150,    -1,    -1,    53,    12,   129,
629       14,    14,   127,   129,   147,   121,   150,    -1,    -1,    53,
630       12,   159,    44,   159,   147,   122,   150,    -1,    86,    -1,
631       89,    -1,    57,    12,   137,   147,    -1,    11,    -1,   125,
632       10,    -1,    10,    -1,   126,    10,    -1,    -1,   126,    -1,
633       -1,   142,    -1,    -1,   148,    -1,   128,    -1,   128,   134,
634      128,    -1,   137,    -1,   131,    -1,   131,   125,   154,    17,
635       -1,   131,     9,   131,    -1,   131,     9,   131,   125,   154,
636       17,    -1,   125,   154,    17,    -1,     7,   125,   154,    17,
637       -1,     8,   125,   154,    17,    -1,    -1,    54,   123,    12,
638      158,   147,   133,   125,   154,    17,    -1,   132,    -1,   134,
639      128,   132,    -1,   137,    -1,   135,   116,   137,    -1,   157,
640       69,   136,    -1,   136,    93,   136,    94,   136,    -1,   136,
641      115,   136,    -1,   136,   114,   136,    -1,   136,    23,   145,
642       -1,   136,    23,   136,    -1,   136,    44,   159,    -1,    12,
643      138,    16,    44,   159,    -1,   136,   156,    -1,   144,    -1,
644      156,    -1,   157,    69,   137,    -1,   137,    93,   137,    94,
645      137,    -1,   137,   115,   137,    -1,   137,   114,   137,    -1,
646      137,    38,   137,    -1,   137,    39,   137,    -1,   137,    40,
647      137,    -1,   137,    41,   137,    -1,   137,    42,   137,    -1,
648      137,    43,   137,    -1,   137,    23,   145,    -1,   137,    23,
649      137,    -1,   137,    44,   159,    -1,    12,   138,    16,    44,
650      159,    -1,   137,    13,    95,   157,    -1,   137,    13,    95,
651       -1,   137,   156,    -1,   144,    -1,   156,    -1,   137,   116,
652      137,    -1,   138,   116,   137,    -1,   136,    -1,   139,   116,
653      136,    -1,    -1,   139,    -1,    12,   138,    16,    -1,    76,
654       -1,    77,    -1,    10,    -1,    14,    -1,   142,    10,    -1,
655      142,    14,    -1,    17,    -1,   143,    10,    -1,   145,    -1,
656      106,   144,    -1,    -1,    15,   146,    92,    15,    -1,    16,
657       -1,   147,    10,    -1,   141,   140,    13,   156,    -1,   141,
658      140,    37,   156,    -1,   141,   140,    40,   156,    -1,   141,
659      140,    -1,    50,   159,    18,   135,    19,    -1,    50,   159,
660       -1,   137,    -1,     1,    -1,   126,    -1,    14,   127,    -1,
661       47,   149,    -1,    49,   149,    -1,    -1,    -1,   117,   151,
662      150,   152,    99,    12,   137,    16,   149,    -1,    52,   137,
663      149,    -1,    52,   149,    -1,   119,    -1,   124,   150,   118,
664      150,    -1,   124,   150,    -1,   125,   154,   143,    -1,    61,
665      149,    -1,    62,   149,    -1,    98,   137,   149,    -1,    98,
666      149,    -1,   148,   149,    -1,    -1,   160,   153,   150,    -1,
667       14,   127,    -1,   150,    -1,   154,   150,    -1,    55,    -1,
668       56,    -1,   156,    15,    69,   156,    -1,   156,   101,   156,
669       -1,   156,   102,   156,    -1,   156,   103,   156,    -1,   156,
670       15,   156,    -1,   156,   104,   156,    -1,   156,   107,   156,
671       -1,   102,   156,    -1,   101,   156,    -1,   106,   156,    -1,
672       46,    12,    16,    -1,    46,    12,   135,    16,    -1,    46,
673       -1,    89,    12,    16,    -1,    89,    12,   135,    16,    -1,
674       48,   156,    -1,   109,   157,    -1,   108,   157,    -1,   157,
675      109,    -1,   157,   108,    -1,    95,   157,    42,   156,    -1,
676       95,    42,   156,    -1,    95,   157,    -1,    95,    -1,    58,
677       12,   137,   116,   137,    16,    -1,    58,    12,   137,   116,
678      145,    16,    -1,    12,   137,    16,    -1,    60,    12,   137,
679      116,   145,    16,    -1,    60,    12,   137,   116,   137,    16,
680       -1,    90,    -1,    97,    12,   137,   116,   159,   116,   137,
681       16,    -1,    97,    12,   137,   116,   159,   116,   145,    16,
682       -1,    97,    12,   137,   116,   159,    16,    -1,    78,    12,
683      135,    16,    -1,    91,    -1,   155,    12,   145,   116,   137,
684       16,    -1,   155,    12,   137,   116,   137,    16,    -1,   155,
685       12,   145,   116,   137,   116,   157,    16,    -1,   155,    12,
686      137,   116,   137,   116,   157,    16,    -1,    96,    12,   137,
687      116,   137,   116,   137,    16,    -1,    96,    12,   137,   116,
688      137,    16,    -1,   157,    -1,   159,    -1,   159,    18,   135,
689       19,    -1,    87,    -1,   110,   156,    -1,    -1,    86,    -1,
690      158,   116,    86,    -1,    86,    -1,    45,    -1,    88,    -1,
691       99,    12,   137,   147,    -1
694 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
695 static const yytype_uint16 yyrline[] =
697        0,    98,    98,   100,   104,   104,   108,   108,   112,   112,
698      116,   116,   120,   120,   124,   124,   126,   126,   128,   128,
699      133,   134,   138,   142,   142,   146,   146,   150,   151,   155,
700      156,   161,   162,   166,   167,   171,   175,   176,   177,   178,
701      179,   180,   182,   184,   184,   189,   190,   194,   195,   199,
702      200,   202,   204,   206,   207,   212,   213,   214,   215,   216,
703      220,   221,   223,   225,   227,   228,   229,   230,   231,   232,
704      233,   234,   239,   240,   241,   244,   247,   248,   249,   253,
705      254,   258,   259,   263,   264,   265,   269,   269,   273,   273,
706      273,   273,   277,   277,   281,   283,   287,   287,   291,   291,
707      295,   298,   301,   304,   305,   306,   307,   308,   312,   313,
708      317,   319,   321,   321,   321,   323,   324,   325,   326,   327,
709      328,   329,   332,   335,   336,   337,   338,   338,   339,   343,
710      344,   348,   348,   352,   353,   354,   355,   356,   357,   358,
711      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
712      369,   370,   371,   372,   373,   374,   375,   376,   378,   381,
713      382,   384,   389,   390,   392,   394,   396,   397,   398,   400,
714      405,   407,   412,   414,   416,   420,   421,   422,   423,   427,
715      428,   429,   435,   436,   437,   442
717 #endif
719 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
720 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
721    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
722 static const char *const yytname[] =
724   "$end", "error", "$undefined", "FIRSTTOKEN", "PROGRAM", "PASTAT",
725   "PASTAT2", "XBEGIN", "XEND", "','", "NL", "'{'", "'('", "'|'", "';'",
726   "'/'", "')'", "'}'", "'['", "']'", "ARRAY", "MATCH", "NOTMATCH",
727   "MATCHOP", "FINAL", "DOT", "ALL", "CCL", "NCCL", "CHAR", "OR", "STAR",
728   "QUEST", "PLUS", "EMPTYRE", "AND", "BOR", "APPEND", "EQ", "GE", "GT",
729   "LE", "LT", "NE", "IN", "ARG", "BLTIN", "BREAK", "CLOSE", "CONTINUE",
730   "DELETE", "DO", "EXIT", "FOR", "FUNC", "SUB", "GSUB", "IF", "INDEX",
731   "LSUBSTR", "MATCHFCN", "NEXT", "NEXTFILE", "ADD", "MINUS", "MULT",
732   "DIVIDE", "MOD", "ASSIGN", "ASGNOP", "ADDEQ", "SUBEQ", "MULTEQ", "DIVEQ",
733   "MODEQ", "POWEQ", "PRINT", "PRINTF", "SPRINTF", "ELSE", "INTEST",
734   "CONDEXPR", "POSTINCR", "PREINCR", "POSTDECR", "PREDECR", "VAR", "IVAR",
735   "VARNF", "CALL", "NUMBER", "STRING", "REGEXPR", "'?'", "':'", "GETLINE",
736   "SUBSTR", "SPLIT", "RETURN", "WHILE", "CAT", "'+'", "'-'", "'*'", "'%'",
737   "UMINUS", "NOT", "POWER", "INCR", "DECR", "INDIRECT", "LASTTOKEN",
738   "$accept", "program", "and", "bor", "comma", "do", "else", "for", "@1",
739   "@2", "@3", "funcname", "if", "lbrace", "nl", "opt_nl", "opt_pst",
740   "opt_simple_stmt", "pas", "pa_pat", "pa_stat", "@4", "pa_stats",
741   "patlist", "ppattern", "pattern", "plist", "pplist", "prarg", "print",
742   "pst", "rbrace", "re", "reg_expr", "@5", "rparen", "simple_stmt", "st",
743   "stmt", "@6", "@7", "@8", "stmtlist", "subop", "term", "var", "varlist",
744   "varname", "while", 0
746 #endif
748 # ifdef YYPRINT
749 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
750    token YYLEX-NUM.  */
751 static const yytype_uint16 yytoknum[] =
753        0,   256,   257,   258,   259,   260,   261,   262,   263,    44,
754      264,   123,    40,   124,    59,    47,    41,   125,    91,    93,
755      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
756      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
757      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
758      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
759      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
760      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
761      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
762      335,   336,   337,    63,    58,   338,   339,   340,   341,   342,
763      343,    43,    45,    42,    37,   344,   345,   346,   347,   348,
764      349,   350
766 # endif
768 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
769 static const yytype_uint8 yyr1[] =
771        0,   112,   113,   113,   114,   114,   115,   115,   116,   116,
772      117,   117,   118,   118,   120,   119,   121,   119,   122,   119,
773      123,   123,   124,   125,   125,   126,   126,   127,   127,   128,
774      128,   129,   129,   130,   130,   131,   132,   132,   132,   132,
775      132,   132,   132,   133,   132,   134,   134,   135,   135,   136,
776      136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
777      137,   137,   137,   137,   137,   137,   137,   137,   137,   137,
778      137,   137,   137,   137,   137,   137,   137,   137,   137,   138,
779      138,   139,   139,   140,   140,   140,   141,   141,   142,   142,
780      142,   142,   143,   143,   144,   144,   146,   145,   147,   147,
781      148,   148,   148,   148,   148,   148,   148,   148,   149,   149,
782      150,   150,   151,   152,   150,   150,   150,   150,   150,   150,
783      150,   150,   150,   150,   150,   150,   153,   150,   150,   154,
784      154,   155,   155,   156,   156,   156,   156,   156,   156,   156,
785      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
786      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
787      156,   156,   156,   156,   156,   156,   156,   156,   156,   156,
788      156,   156,   156,   156,   156,   157,   157,   157,   157,   158,
789      158,   158,   159,   159,   159,   160
792 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
793 static const yytype_uint8 yyr2[] =
795        0,     2,     1,     1,     1,     2,     1,     2,     1,     2,
796        1,     2,     1,     2,     0,    12,     0,    10,     0,     8,
797        1,     1,     4,     1,     2,     1,     2,     0,     1,     0,
798        1,     0,     1,     1,     3,     1,     1,     4,     3,     6,
799        3,     4,     4,     0,     9,     1,     3,     1,     3,     3,
800        5,     3,     3,     3,     3,     3,     5,     2,     1,     1,
801        3,     5,     3,     3,     3,     3,     3,     3,     3,     3,
802        3,     3,     3,     5,     4,     3,     2,     1,     1,     3,
803        3,     1,     3,     0,     1,     3,     1,     1,     1,     1,
804        2,     2,     1,     2,     1,     2,     0,     4,     1,     2,
805        4,     4,     4,     2,     5,     2,     1,     1,     1,     2,
806        2,     2,     0,     0,     9,     3,     2,     1,     4,     2,
807        3,     2,     2,     3,     2,     2,     0,     3,     2,     1,
808        2,     1,     1,     4,     3,     3,     3,     3,     3,     3,
809        2,     2,     2,     3,     4,     1,     3,     4,     2,     2,
810        2,     2,     2,     4,     3,     2,     1,     6,     6,     3,
811        6,     6,     1,     8,     8,     6,     4,     1,     6,     6,
812        8,     8,     8,     6,     1,     1,     4,     1,     2,     0,
813        1,     3,     1,     1,     1,     4
816 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
817    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
818    means the default is an error.  */
819 static const yytype_uint8 yydefact[] =
821        0,     3,    88,    89,     0,    33,     2,    30,     1,     0,
822        0,    23,     0,    96,   183,   145,     0,     0,   131,   132,
823        0,     0,     0,   182,   177,   184,     0,   162,   167,   156,
824        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,
825       45,    29,    35,    77,    94,     0,    78,   174,   175,    90,
826       91,     0,     0,     0,     0,     0,     0,     0,     0,   148,
827      174,    20,    21,     0,     0,     0,     0,     0,     0,   155,
828        0,     0,   141,   140,    95,   142,   150,   149,   178,   107,
829       24,    27,     0,     0,     0,    10,     0,     0,     0,     0,
830        0,    86,    87,     0,     0,   112,   117,     0,     0,   106,
831       83,     0,   129,     0,   126,     0,     0,    34,     0,     0,
832        4,     6,     0,     0,     0,     0,     0,     0,     0,     0,
833        0,     0,    76,     0,     0,     0,     0,     0,     0,     0,
834        0,   152,   151,     0,     0,     0,     8,   159,     0,     0,
835        0,     0,   143,     0,    47,     0,   179,     0,     0,     0,
836      146,     0,   154,     0,     0,     0,    25,    28,   128,    27,
837      108,   110,   111,   105,     0,   116,     0,     0,   121,   122,
838        0,   124,     0,    11,     0,   119,     0,     0,    81,    84,
839      103,    58,    59,   174,   125,    40,   130,     0,    38,     0,
840       46,    75,    71,    70,    64,    65,    66,    67,    68,    69,
841       72,     0,     5,    63,     7,    62,     0,    94,     0,   137,
842      134,   135,   136,   138,   139,    60,     0,    41,    42,     9,
843       79,     0,    80,    97,   144,     0,   180,     0,     0,     0,
844      166,   147,   153,     0,     0,    26,   109,     0,   115,     0,
845       32,   175,     0,   123,     0,   113,    12,     0,    92,   120,
846        0,     0,     0,     0,     0,     0,    57,     0,     0,     0,
847        0,     0,   127,     0,    37,    74,     0,     0,     0,   133,
848      176,    73,    48,    98,     0,    43,     0,    94,     0,    94,
849        0,     0,     0,    27,     0,    22,   185,     0,    13,   118,
850       93,    85,     0,    54,    53,    55,     0,    52,    51,    82,
851      100,   101,   102,    49,     0,    61,     0,     0,   181,    99,
852        0,   157,   158,   161,   160,   173,     0,   165,     0,   104,
853       27,     0,     0,     0,     0,     0,     0,    39,   169,     0,
854      168,     0,     0,     0,     0,    94,     0,     0,    18,     0,
855       56,     0,    50,     0,     0,     0,   172,   163,   164,     0,
856       27,     0,     0,   171,   170,    44,    16,     0,    19,     0,
857        0,     0,   114,    17,    14,     0,    15
860 /* YYDEFGOTO[NTERM-NUM].  */
861 static const yytype_int16 yydefgoto[] =
863       -1,     4,   120,   121,   225,    95,   247,    96,   365,   360,
864      351,    63,    97,    98,   160,   158,     5,   239,     6,    39,
865       40,   310,    41,   143,   178,    99,    54,   179,   180,   100,
866        7,   249,    43,    44,    55,   275,   101,   161,   102,   174,
867      287,   187,   103,    45,    46,    47,   227,    48,   104
870 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
871    STATE-NUM.  */
872 #define YYPACT_NINF -322
873 static const yytype_int16 yypact[] =
875      680,  -322,  -322,  -322,    25,  1583,  -322,    17,  -322,    34,
876       34,  -322,  4136,  -322,  -322,    39,  4490,    16,  -322,  -322,
877       44,    63,    74,  -322,  -322,  -322,    92,  -322,  -322,   255,
878      102,   133,  4490,  4490,  4195,   -40,   -40,  4490,   811,   113,
879     -322,    55,  3462,  -322,  -322,   143,    -4,   -35,    76,  -322,
880     -322,   811,   811,  1674,    62,   -12,  3959,  4136,  4490,    -4,
881       52,  -322,  -322,   160,  4136,  4136,  4136,  4018,  4490,    83,
882     4136,  4136,    66,    66,  -322,    66,  -322,  -322,  -322,  -322,
883     -322,   176,    82,    82,   -33,  -322,  2198,   188,   190,    82,
884       82,  -322,  -322,  2198,   199,   178,  -322,  1424,   811,  3462,
885     4254,    82,  -322,   879,  -322,  4136,   811,  1583,   117,  4136,
886     -322,  -322,  4136,  4136,  4136,  4136,  4136,  4136,   -33,  4136,
887     2257,  2316,    -4,  4136,  4313,  4490,  4490,  4490,  4490,  4490,
888     4136,  -322,  -322,  4136,   947,  1015,  -322,  -322,  2375,   173,
889     2375,   203,  -322,   124,  3462,  2643,   138,  2038,  2038,   140,
890     -322,   149,    -4,  4490,  2038,  2038,  -322,   217,  -322,   176,
891      217,  -322,  -322,   212,  2139,  -322,  1491,  4136,  -322,  -322,
892     2139,  -322,  4136,  -322,  1424,   152,  1083,  4136,  3841,   223,
893       22,  -322,    -4,    -2,  -322,  -322,  -322,  1424,    34,  1151,
894     -322,   -40,  3713,  -322,  3713,  3713,  3713,  3713,  3713,  3713,
895     -322,  2734,  -322,  3633,  -322,  3553,  2038,   223,  4490,    66,
896      169,   169,    66,    66,    66,  3462,    21,  -322,  -322,  -322,
897     3462,   -33,  3462,  -322,  -322,  2375,  -322,   154,  2375,  2375,
898     -322,  -322,    -4,  2375,    31,  -322,  -322,  4136,  -322,   219,
899     -322,   -11,  2825,  -322,  2825,  -322,  -322,  1220,  -322,   224,
900      155,  4372,   -33,  4372,  2434,  2493,    -4,  2552,  4490,  4490,
901     4490,  4372,  -322,   811,  -322,  -322,  4136,  2375,  2375,    -4,
902     -322,  -322,  3462,  -322,     4,   226,  2916,   230,  3007,   231,
903     1765,   189,    68,   106,   -33,   226,   226,   153,  -322,  -322,
904     -322,   204,  4136,  4431,  -322,  -322,  3772,  4077,  3900,  3841,
905       -4,    -4,    -4,  3841,  1288,  3462,  1856,  1947,  -322,  -322,
906       34,  -322,  -322,  -322,  -322,  -322,  2375,  -322,  2375,  -322,
907      176,  4136,   239,   245,   -33,   192,  4372,  -322,  -322,    56,
908     -322,    56,   811,  3098,  3189,   247,  1558,  3280,   226,  4136,
909     -322,   204,  3841,   250,   258,  1356,  -322,  -322,  -322,   239,
910      176,  1424,  3371,  -322,  -322,  -322,   226,  1558,  -322,    82,
911     1424,   239,  -322,  -322,   226,  1424,  -322
914 /* YYPGOTO[NTERM-NUM].  */
915 static const yytype_int16 yypgoto[] =
917     -322,  -322,  -146,   -83,   200,  -322,  -322,  -322,  -322,  -322,
918     -322,  -322,  -322,    19,   -80,  -153,   220,  -321,  -322,   174,
919      171,  -322,  -322,   -44,    14,   526,  -174,  -322,  -322,  -322,
920     -322,  -322,   -32,   -60,  -322,  -234,  -162,   -29,   -53,  -322,
921     -322,  -322,   -13,  -322,   269,   -16,  -322,   -75,  -322
924 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
925    positive, shift that token.  If negative, reduce the rule which
926    number is the opposite.  If zero, do what YYDEFACT says.
927    If YYTABLE_NINF, syntax error.  */
928 #define YYTABLE_NINF -32
929 static const yytype_int16 yytable[] =
931       60,   157,    74,   250,   240,    14,   236,   133,   285,   163,
932      286,   124,    14,    69,   219,   349,    60,    60,    60,    76,
933       77,    60,   149,   151,    38,     8,    60,    49,    51,    52,
934      136,    50,   254,   284,   130,   258,   361,    60,   134,   135,
935      270,   219,    60,   200,   175,    11,    23,    24,    25,   193,
936      186,    56,    60,    23,   162,    25,    64,   165,   106,   259,
937      168,   169,   260,   207,   171,     2,   219,   261,   181,     3,
938       37,   136,   184,   131,   132,    65,    14,   136,   139,   157,
939      141,   186,   186,    60,   183,   176,    66,   319,   338,   216,
940      308,   241,   156,   189,   133,   255,   159,   125,   126,   127,
941      128,    14,    61,   129,    67,    62,   131,   132,    60,    60,
942       60,    60,    60,    60,    70,   356,   156,    23,   325,    25,
943      320,   245,   105,   186,    11,   153,    38,   364,    60,    60,
944      321,    60,    60,   136,   262,   238,   186,    60,    60,    60,
945      224,   243,    23,    24,    25,    71,   271,   254,    60,   136,
946      254,   254,   254,   254,    60,   123,   230,   254,   136,   281,
947      131,   132,    60,   136,   136,   231,    37,   336,   277,   279,
948      273,   291,   146,   129,   240,   265,    60,   295,    60,    60,
949       60,    60,    60,    60,   124,    60,   156,    60,   173,    60,
950       60,   294,    60,   282,   289,   240,   254,   357,   136,    60,
951      166,   136,   167,   157,    60,   317,    60,   263,   341,   322,
952      255,   172,   191,   255,   255,   255,   255,   221,   223,   181,
953      255,   181,   181,   181,   226,   181,    60,   235,    60,   181,
954      237,   246,   136,   283,   290,   183,   309,   183,   183,   183,
955      157,   183,    60,    60,    60,   183,   312,   314,   324,   340,
956      304,   186,   323,   138,   140,   273,    60,   339,   335,   255,
957       60,   107,    60,   348,    60,   293,   353,   296,   297,   298,
958      157,   299,   127,   128,   354,   303,   129,    60,   190,   188,
959       60,    60,    60,    60,     0,    59,     0,    60,     0,    60,
960       60,    60,   186,     0,   181,     0,     0,    68,   358,     0,
961       14,    72,    73,    75,     0,     0,    78,   363,     0,     0,
962      183,   122,   366,   343,     0,   344,     0,    60,    60,   345,
963        0,    60,   122,     0,     0,     0,    60,    75,     0,   332,
964      362,     0,     0,     0,     0,     0,    60,   152,     0,     0,
965      342,    23,    24,    25,     0,     0,     0,   228,   229,     0,
966        0,     0,     0,     0,   233,   234,     0,     0,     0,     0,
967        0,     0,     0,     0,     0,    37,     0,     0,   122,   182,
968        0,     0,     0,     0,     0,     0,     0,     0,     0,   257,
969        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
970        0,     0,     0,   209,   210,   211,   212,   213,   214,     0,
971        0,     0,     0,     0,     0,     0,   267,   268,     0,     0,
972        0,     0,     0,   122,   122,     0,   122,   122,     0,     0,
973        0,     0,   232,   122,   122,     0,     0,   274,     0,     0,
974        0,     0,     0,   122,     0,     0,     0,     0,     0,   122,
975        0,     0,     0,     0,     0,     0,     0,   256,     0,     0,
976      140,     0,     0,     0,     0,     0,     0,     0,     0,     0,
977        0,   122,     0,   122,   122,   122,   122,   122,   122,     0,
978      122,     0,   122,     0,   122,   122,     0,   269,     0,     0,
979      316,   318,     0,     0,   122,     0,     0,     0,     0,   122,
980        0,   122,     0,     0,     0,     0,     0,     0,     0,     0,
981        0,     0,     0,     0,     0,     0,   329,   331,     0,     0,
982        0,   122,     0,   122,     0,     0,     0,     0,     0,     0,
983      182,     0,   182,   182,   182,   140,   182,   300,   301,   302,
984      182,    42,     0,     0,     0,     0,     0,     0,    53,     0,
985        0,   122,     0,     0,     0,   122,     0,   122,     0,   122,
986        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
987        0,     0,   256,     0,     0,   256,   256,   256,   256,     0,
988        0,     0,   256,     0,   122,   122,   122,     0,     0,     0,
989        0,     0,   144,   145,     0,     0,     0,     0,     0,     0,
990      147,   148,   144,   144,     0,   182,   154,   155,     0,     0,
991        0,     0,   122,   122,     0,     0,   122,     0,     0,     0,
992        0,   256,   164,     0,     0,     0,     0,     0,     0,   170,
993        0,   122,     0,     0,     0,     0,     0,     0,     0,     0,
994        0,    42,     0,    42,     0,   192,     0,     0,   194,   195,
995      196,   197,   198,   199,     0,   201,   203,   205,     0,   206,
996        0,     0,     0,     0,     0,     0,   215,     0,     0,   144,
997        0,     0,     0,     0,   220,     0,   222,     0,     0,     0,
998        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
999      -29,     1,     0,     0,     0,     0,     0,   -29,   -29,     0,
1000        2,   -29,   -29,   242,     3,   -29,     0,     0,   244,     0,
1001        0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
1002        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1003        0,     0,     0,     0,     0,   -29,   -29,     0,   -29,     0,
1004        0,     0,     0,     0,   -29,   -29,   -29,     0,   -29,     0,
1005      -29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1006        0,   272,     0,     0,   276,   278,     0,     0,   -29,   280,
1007        0,     0,     0,   144,     0,     0,   -29,   -29,   -29,   -29,
1008      -29,   -29,     0,     0,     0,   -29,   -29,   -29,     0,     0,
1009        0,   -29,   -29,     0,     0,     0,   -29,     0,   -29,   -29,
1010      -29,     0,   305,   306,   307,     0,     0,     0,     0,     0,
1011        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1012        0,     0,    79,     0,     0,     0,     0,     0,    53,     0,
1013        0,    80,    11,    12,     0,    81,    13,     0,     0,     0,
1014        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1015        0,     0,   333,     0,   334,     0,     0,   337,     0,     0,
1016        0,     0,     0,     0,     0,     0,    14,    15,    82,    16,
1017       83,    84,    85,    86,    87,   352,    18,    19,    88,    20,
1018        0,    21,    89,    90,     0,     0,     0,     0,     0,     0,
1019       79,     0,     0,     0,     0,     0,     0,    91,    92,    22,
1020       11,    12,     0,    81,    13,     0,   185,    23,    24,    25,
1021       26,    27,    28,     0,     0,     0,    29,    30,    31,    93,
1022       94,     0,    32,    33,     0,     0,     0,    34,     0,    35,
1023       36,    37,     0,     0,    14,    15,    82,    16,    83,    84,
1024       85,    86,    87,     0,    18,    19,    88,    20,     0,    21,
1025       89,    90,     0,     0,     0,     0,     0,     0,    79,     0,
1026        0,     0,     0,     0,     0,    91,    92,    22,    11,    12,
1027        0,    81,    13,     0,   217,    23,    24,    25,    26,    27,
1028       28,     0,     0,     0,    29,    30,    31,    93,    94,     0,
1029       32,    33,     0,     0,     0,    34,     0,    35,    36,    37,
1030        0,     0,    14,    15,    82,    16,    83,    84,    85,    86,
1031       87,     0,    18,    19,    88,    20,     0,    21,    89,    90,
1032        0,     0,     0,     0,     0,     0,    79,     0,     0,     0,
1033        0,     0,     0,    91,    92,    22,    11,    12,     0,    81,
1034       13,     0,   218,    23,    24,    25,    26,    27,    28,     0,
1035        0,     0,    29,    30,    31,    93,    94,     0,    32,    33,
1036        0,     0,     0,    34,     0,    35,    36,    37,     0,     0,
1037       14,    15,    82,    16,    83,    84,    85,    86,    87,     0,
1038       18,    19,    88,    20,     0,    21,    89,    90,     0,     0,
1039        0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
1040        0,    91,    92,    22,    11,    12,     0,    81,    13,     0,
1041      248,    23,    24,    25,    26,    27,    28,     0,     0,     0,
1042       29,    30,    31,    93,    94,     0,    32,    33,     0,     0,
1043        0,    34,     0,    35,    36,    37,     0,     0,    14,    15,
1044       82,    16,    83,    84,    85,    86,    87,     0,    18,    19,
1045       88,    20,     0,    21,    89,    90,     0,     0,     0,     0,
1046        0,     0,    79,     0,     0,     0,     0,     0,     0,    91,
1047       92,    22,    11,    12,     0,    81,    13,     0,   264,    23,
1048       24,    25,    26,    27,    28,     0,     0,     0,    29,    30,
1049       31,    93,    94,     0,    32,    33,     0,     0,     0,    34,
1050        0,    35,    36,    37,     0,     0,    14,    15,    82,    16,
1051       83,    84,    85,    86,    87,     0,    18,    19,    88,    20,
1052        0,    21,    89,    90,     0,     0,     0,     0,     0,     0,
1053        0,    79,     0,     0,     0,     0,     0,    91,    92,    22,
1054      288,    11,    12,     0,    81,    13,     0,    23,    24,    25,
1055       26,    27,    28,     0,     0,     0,    29,    30,    31,    93,
1056       94,     0,    32,    33,     0,     0,     0,    34,     0,    35,
1057       36,    37,     0,     0,     0,    14,    15,    82,    16,    83,
1058       84,    85,    86,    87,     0,    18,    19,    88,    20,     0,
1059       21,    89,    90,     0,     0,     0,     0,     0,     0,    79,
1060        0,     0,     0,     0,     0,     0,    91,    92,    22,    11,
1061       12,     0,    81,    13,     0,   327,    23,    24,    25,    26,
1062       27,    28,     0,     0,     0,    29,    30,    31,    93,    94,
1063        0,    32,    33,     0,     0,     0,    34,     0,    35,    36,
1064       37,     0,     0,    14,    15,    82,    16,    83,    84,    85,
1065       86,    87,     0,    18,    19,    88,    20,     0,    21,    89,
1066       90,     0,     0,     0,     0,     0,     0,    79,     0,     0,
1067        0,     0,     0,     0,    91,    92,    22,    11,    12,     0,
1068       81,    13,     0,   355,    23,    24,    25,    26,    27,    28,
1069        0,     0,     0,    29,    30,    31,    93,    94,     0,    32,
1070       33,     0,     0,     0,    34,     0,    35,    36,    37,     0,
1071        0,    14,    15,    82,    16,    83,    84,    85,    86,    87,
1072        0,    18,    19,    88,    20,     0,    21,    89,    90,     0,
1073        0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
1074        0,     0,    91,    92,    22,    11,    12,     0,    81,    13,
1075        0,     0,    23,    24,    25,    26,    27,    28,     0,     0,
1076        0,    29,    30,    31,    93,    94,     0,    32,    33,     0,
1077        0,     0,    34,     0,    35,    36,    37,     0,     0,    14,
1078       15,    82,    16,    83,    84,    85,    86,    87,     0,    18,
1079       19,    88,    20,     0,    21,    89,    90,     0,     0,     0,
1080        0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
1081       91,    92,    22,    12,     0,   -31,    13,     0,     0,     0,
1082       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1083       30,    31,    93,    94,     0,    32,    33,     0,     0,     0,
1084       34,     0,    35,    36,    37,     0,    14,    15,     0,    16,
1085        0,    84,     0,     0,     0,     0,    18,    19,     0,    20,
1086        0,    21,     0,     0,     0,     0,     0,     0,     0,    79,
1087        0,     0,     0,     0,     0,     0,     0,    91,    92,    22,
1088       12,     0,     0,    13,   -31,     0,     0,    23,    24,    25,
1089       26,    27,    28,     0,     0,     0,    29,    30,    31,     0,
1090        9,    10,    32,    33,    11,    12,     0,    34,    13,    35,
1091       36,    37,     0,    14,    15,     0,    16,     0,    84,     0,
1092        0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
1093        0,     0,     0,     0,     0,     0,     0,     0,    14,    15,
1094        0,    16,     0,     0,    91,    92,    22,    17,    18,    19,
1095        0,    20,     0,    21,    23,    24,    25,    26,    27,    28,
1096        0,     0,     0,    29,    30,    31,     0,     0,     0,    32,
1097       33,    22,     0,     0,    34,     0,    35,    36,    37,    23,
1098       24,    25,    26,    27,    28,     0,     0,     0,    29,    30,
1099       31,     0,     0,   136,    32,    33,    57,   108,     0,    34,
1100      137,    35,    36,    37,     0,     0,     0,   109,     0,     0,
1101        0,     0,     0,     0,     0,     0,     0,     0,     0,   110,
1102      111,     0,   112,   113,   114,   115,   116,   117,   118,    14,
1103       15,     0,    16,     0,     0,     0,     0,     0,     0,    18,
1104       19,     0,    20,     0,    21,     0,     0,     0,     0,     0,
1105        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1106        0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
1107       23,    24,    25,    26,    27,    28,     0,   119,     0,    29,
1108       30,    31,     0,     0,   136,    32,    33,    57,   108,     0,
1109       58,   315,    35,    36,    37,     0,     0,     0,   109,     0,
1110        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1111      110,   111,     0,   112,   113,   114,   115,   116,   117,   118,
1112       14,    15,     0,    16,     0,     0,     0,     0,     0,     0,
1113       18,    19,     0,    20,     0,    21,     0,     0,     0,     0,
1114        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1115        0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
1116        0,    23,    24,    25,    26,    27,    28,     0,   119,     0,
1117       29,    30,    31,     0,     0,   136,    32,    33,    57,   108,
1118        0,    58,   328,    35,    36,    37,     0,     0,     0,   109,
1119        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1120        0,   110,   111,     0,   112,   113,   114,   115,   116,   117,
1121      118,    14,    15,     0,    16,     0,     0,     0,     0,     0,
1122        0,    18,    19,     0,    20,     0,    21,     0,     0,     0,
1123        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1124        0,     0,     0,     0,    22,     0,     0,     0,     0,     0,
1125        0,     0,    23,    24,    25,    26,    27,    28,     0,   119,
1126        0,    29,    30,    31,     0,     0,   136,    32,    33,    57,
1127      108,     0,    58,   330,    35,    36,    37,     0,     0,     0,
1128      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1129        0,     0,   110,   111,     0,   112,   113,   114,   115,   116,
1130      117,   118,    14,    15,     0,    16,     0,     0,     0,     0,
1131        0,     0,    18,    19,     0,    20,     0,    21,     0,     0,
1132        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1133        0,     0,     0,     0,     0,    22,     0,     0,     0,     0,
1134        0,     0,     0,    23,    24,    25,    26,    27,    28,     0,
1135      119,     0,    29,    30,    31,     0,     0,   136,    32,    33,
1136       57,   108,     0,    58,     0,    35,    36,    37,     0,     0,
1137        0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
1138        0,     0,     0,   110,   111,     0,   112,   113,   114,   115,
1139      116,   117,   118,    14,    15,     0,    16,     0,     0,     0,
1140        0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
1141        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1142        0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
1143        0,     0,     0,     0,    23,    24,    25,    26,    27,    28,
1144        0,   119,     0,    29,    30,    31,     0,     0,     0,    32,
1145       33,     0,     0,     0,    58,     0,    35,    36,    37,   156,
1146        0,    57,   108,   159,     0,     0,     0,     0,     0,     0,
1147        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
1148        0,     0,     0,     0,   110,   111,     0,   112,   113,   114,
1149      115,   116,   117,   118,    14,    15,     0,    16,     0,     0,
1150        0,     0,     0,     0,    18,    19,     0,    20,     0,    21,
1151        0,     0,     0,     0,     0,     0,     0,     0,   156,     0,
1152       12,     0,   159,    13,     0,     0,     0,    22,     0,     0,
1153        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,
1154       28,     0,   119,     0,    29,    30,    31,     0,     0,     0,
1155       32,    33,     0,    14,    15,    58,    16,    35,    36,    37,
1156        0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
1157        0,     0,     0,     0,     0,     0,     0,   202,     0,    12,
1158        0,     0,    13,     0,     0,     0,    22,     0,     0,     0,
1159        0,     0,     0,     0,    23,    24,    25,    26,    27,    28,
1160        0,     0,     0,    29,    30,    31,     0,     0,     0,    32,
1161       33,     0,    14,    15,    34,    16,    35,    36,    37,     0,
1162        0,     0,    18,    19,     0,    20,     0,    21,     0,     0,
1163        0,     0,     0,     0,     0,     0,   204,     0,    12,     0,
1164        0,    13,     0,     0,     0,    22,     0,     0,     0,     0,
1165        0,     0,     0,    23,    24,    25,    26,    27,    28,     0,
1166        0,     0,    29,    30,    31,     0,     0,     0,    32,    33,
1167        0,    14,    15,    34,    16,    35,    36,    37,     0,     0,
1168        0,    18,    19,     0,    20,     0,    21,     0,     0,     0,
1169        0,     0,     0,     0,     0,   219,     0,    12,     0,     0,
1170       13,     0,     0,     0,    22,     0,     0,     0,     0,     0,
1171        0,     0,    23,    24,    25,    26,    27,    28,     0,     0,
1172        0,    29,    30,    31,     0,     0,     0,    32,    33,     0,
1173       14,    15,    34,    16,    35,    36,    37,     0,     0,     0,
1174       18,    19,     0,    20,     0,    21,     0,     0,     0,     0,
1175        0,     0,     0,     0,   202,     0,   292,     0,     0,    13,
1176        0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
1177        0,    23,    24,    25,    26,    27,    28,     0,     0,     0,
1178       29,    30,    31,     0,     0,     0,    32,    33,     0,    14,
1179       15,    34,    16,    35,    36,    37,     0,     0,     0,    18,
1180       19,     0,    20,     0,    21,     0,     0,     0,     0,     0,
1181        0,     0,     0,   204,     0,   292,     0,     0,    13,     0,
1182        0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
1183       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1184       30,    31,     0,     0,     0,    32,    33,     0,    14,    15,
1185       34,    16,    35,    36,    37,     0,     0,     0,    18,    19,
1186        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1187        0,     0,   219,     0,   292,     0,     0,    13,     0,     0,
1188        0,    22,     0,     0,     0,     0,     0,     0,     0,    23,
1189       24,    25,    26,    27,    28,     0,     0,     0,    29,    30,
1190       31,     0,     0,     0,    32,    33,     0,    14,    15,    34,
1191       16,    35,    36,    37,     0,     0,     0,    18,    19,     0,
1192       20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
1193        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1194       22,     0,     0,     0,     0,     0,     0,     0,    23,    24,
1195       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1196        0,     0,     0,    32,    33,    57,   108,     0,    34,   137,
1197       35,    36,    37,     0,     0,     0,   109,     0,     0,     0,
1198        0,     0,     0,     0,     0,     0,     0,     0,   110,   111,
1199        0,   112,   113,   114,   115,   116,   117,   118,    14,    15,
1200        0,    16,     0,     0,     0,     0,     0,     0,    18,    19,
1201        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1202        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1203        0,    22,     0,     0,     0,     0,     0,     0,     0,    23,
1204       24,    25,    26,    27,    28,     0,   119,     0,    29,    30,
1205       31,     0,     0,     0,    32,    33,    57,   108,     0,    58,
1206        0,    35,    36,    37,     0,     0,     0,   109,     0,     0,
1207        0,     0,     0,     0,     0,     0,     0,     0,     0,   110,
1208      111,     0,   112,   113,   114,   115,   116,   117,   118,    14,
1209       15,     0,    16,     0,     0,     0,     0,     0,     0,    18,
1210       19,     0,    20,     0,    21,     0,     0,     0,     0,     0,
1211        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1212        0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
1213       23,    24,    25,    26,    27,    28,     0,   119,   266,    29,
1214       30,    31,     0,     0,     0,    32,    33,    57,   108,     0,
1215       58,   273,    35,    36,    37,     0,     0,     0,   109,     0,
1216        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1217      110,   111,     0,   112,   113,   114,   115,   116,   117,   118,
1218       14,    15,     0,    16,     0,     0,     0,     0,     0,     0,
1219       18,    19,     0,    20,     0,    21,     0,     0,     0,     0,
1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221        0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
1222        0,    23,    24,    25,    26,    27,    28,     0,   119,     0,
1223       29,    30,    31,     0,     0,     0,    32,    33,    57,   108,
1224        0,    58,   311,    35,    36,    37,     0,     0,     0,   109,
1225        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1226        0,   110,   111,     0,   112,   113,   114,   115,   116,   117,
1227      118,    14,    15,     0,    16,     0,     0,     0,     0,     0,
1228        0,    18,    19,     0,    20,     0,    21,     0,     0,     0,
1229        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1230        0,     0,     0,     0,    22,     0,     0,     0,     0,     0,
1231        0,     0,    23,    24,    25,    26,    27,    28,     0,   119,
1232        0,    29,    30,    31,     0,     0,     0,    32,    33,    57,
1233      108,     0,    58,   313,    35,    36,    37,     0,     0,     0,
1234      109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1235        0,     0,   110,   111,     0,   112,   113,   114,   115,   116,
1236      117,   118,    14,    15,     0,    16,     0,     0,     0,     0,
1237        0,     0,    18,    19,     0,    20,     0,    21,     0,     0,
1238        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1239        0,     0,     0,     0,     0,    22,     0,     0,     0,     0,
1240        0,     0,     0,    23,    24,    25,    26,    27,    28,     0,
1241      119,     0,    29,    30,    31,     0,     0,     0,    32,    33,
1242       57,   108,     0,    58,   346,    35,    36,    37,     0,     0,
1243        0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
1244        0,     0,     0,   110,   111,     0,   112,   113,   114,   115,
1245      116,   117,   118,    14,    15,     0,    16,     0,     0,     0,
1246        0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
1247        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1248        0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
1249        0,     0,     0,     0,    23,    24,    25,    26,    27,    28,
1250        0,   119,     0,    29,    30,    31,     0,     0,     0,    32,
1251       33,    57,   108,     0,    58,   347,    35,    36,    37,     0,
1252        0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
1253        0,     0,     0,     0,   110,   111,     0,   112,   113,   114,
1254      115,   116,   117,   118,    14,    15,     0,    16,     0,     0,
1255        0,     0,     0,     0,    18,    19,     0,    20,     0,    21,
1256        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1257        0,     0,     0,     0,     0,     0,     0,    22,     0,     0,
1258        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,
1259       28,     0,   119,     0,    29,    30,    31,     0,     0,     0,
1260       32,    33,    57,   108,   350,    58,     0,    35,    36,    37,
1261        0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
1262        0,     0,     0,     0,     0,   110,   111,     0,   112,   113,
1263      114,   115,   116,   117,   118,    14,    15,     0,    16,     0,
1264        0,     0,     0,     0,     0,    18,    19,     0,    20,     0,
1265       21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1266        0,     0,     0,     0,     0,     0,     0,     0,    22,     0,
1267        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
1268       27,    28,     0,   119,     0,    29,    30,    31,     0,     0,
1269        0,    32,    33,    57,   108,     0,    58,   359,    35,    36,
1270       37,     0,     0,     0,   109,     0,     0,     0,     0,     0,
1271        0,     0,     0,     0,     0,     0,   110,   111,     0,   112,
1272      113,   114,   115,   116,   117,   118,    14,    15,     0,    16,
1273        0,     0,     0,     0,     0,     0,    18,    19,     0,    20,
1274        0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
1275        0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
1276        0,     0,     0,     0,     0,     0,     0,    23,    24,    25,
1277       26,    27,    28,     0,   119,     0,    29,    30,    31,     0,
1278        0,     0,    32,    33,    57,   108,     0,    58,     0,    35,
1279       36,    37,     0,     0,     0,   109,     0,     0,     0,     0,
1280        0,     0,     0,     0,     0,     0,     0,   110,   111,     0,
1281      112,   113,   114,   115,   116,   117,   118,    14,    15,     0,
1282       16,     0,     0,     0,     0,     0,     0,    18,    19,     0,
1283       20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
1284        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1285       22,     0,     0,     0,     0,     0,     0,     0,    23,    24,
1286       25,    26,    27,    28,     0,   119,     0,    29,    30,    31,
1287        0,     0,     0,    32,    33,    57,   108,     0,    58,     0,
1288       35,    36,    37,     0,     0,     0,   109,     0,     0,     0,
1289        0,     0,     0,     0,     0,     0,     0,     0,   110,     0,
1290        0,   112,   113,   114,   115,   116,   117,   118,    14,    15,
1291        0,    16,     0,     0,     0,     0,     0,     0,    18,    19,
1292        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1293        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1294        0,    22,     0,     0,     0,     0,     0,     0,     0,    23,
1295       24,    25,    26,    27,    28,    57,   108,     0,    29,    30,
1296       31,     0,     0,     0,    32,    33,   109,     0,     0,    58,
1297        0,    35,    36,    37,     0,     0,     0,     0,     0,     0,
1298        0,   112,   113,   114,   115,   116,   117,   118,    14,    15,
1299        0,    16,     0,     0,     0,     0,     0,     0,    18,    19,
1300        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1301        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1302        0,    22,     0,     0,     0,     0,     0,     0,     0,    23,
1303       24,    25,    26,    27,    28,    57,   -32,     0,    29,    30,
1304       31,     0,     0,     0,    32,    33,   -32,     0,     0,    58,
1305        0,    35,    36,    37,     0,     0,     0,     0,     0,     0,
1306        0,   -32,   -32,   -32,   -32,   -32,   -32,   -32,    14,    15,
1307        0,    16,     0,     0,     0,     0,     0,     0,    18,    19,
1308        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1309        0,     0,     0,     0,    57,     0,     0,     0,     0,     0,
1310        0,    22,     0,     0,     0,   251,     0,     0,     0,    23,
1311       24,    25,    26,    27,    28,     0,     0,   110,   111,    30,
1312       31,     0,     0,     0,    32,    33,   252,    14,    15,    58,
1313       16,    35,    36,    37,     0,     0,     0,    18,    19,     0,
1314       20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
1315        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1316       22,     0,     0,    57,     0,     0,     0,     0,    23,    24,
1317       25,    26,    27,    28,   251,   253,   326,    29,    30,    31,
1318        0,     0,     0,    32,    33,     0,   110,   111,    58,     0,
1319       35,    36,    37,     0,     0,   252,    14,    15,     0,    16,
1320        0,     0,     0,     0,     0,     0,    18,    19,     0,    20,
1321        0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
1322        0,     0,    57,     0,     0,     0,     0,     0,     0,    22,
1323        0,     0,     0,   251,     0,     0,     0,    23,    24,    25,
1324       26,    27,    28,     0,   253,   110,    29,    30,    31,     0,
1325        0,     0,    32,    33,   252,    14,    15,    58,    16,    35,
1326       36,    37,     0,     0,     0,    18,    19,     0,    20,     0,
1327       21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1328        0,    12,     0,     0,    13,   142,     0,     0,    22,     0,
1329        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
1330       27,    28,     0,     0,     0,    29,    30,    31,     0,     0,
1331        0,    32,    33,     0,    14,    15,    58,    16,    35,    36,
1332       37,     0,     0,     0,    18,    19,     0,    20,     0,    21,
1333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1334       12,     0,     0,    13,   150,     0,     0,    22,     0,     0,
1335        0,     0,     0,     0,     0,    23,    24,    25,    26,    27,
1336       28,     0,     0,     0,    29,    30,    31,     0,     0,     0,
1337       32,    33,     0,    14,    15,    34,    16,    35,    36,    37,
1338        0,     0,     0,    18,    19,     0,    20,     0,    21,     0,
1339        0,     0,     0,     0,     0,     0,     0,     0,     0,    57,
1340        0,     0,     0,     0,     0,     0,    22,     0,     0,     0,
1341      251,     0,     0,     0,    23,    24,    25,    26,    27,    28,
1342        0,     0,     0,    29,    30,    31,     0,     0,     0,    32,
1343       33,   252,    14,    15,    34,    16,    35,    36,    37,     0,
1344        0,     0,    18,    19,     0,    20,     0,    21,     0,     0,
1345        0,     0,     0,     0,     0,     0,     0,     0,    12,     0,
1346        0,    13,     0,     0,     0,    22,     0,     0,     0,     0,
1347        0,     0,     0,    23,    24,    25,    26,    27,    28,     0,
1348        0,     0,    29,    30,    31,     0,     0,     0,    32,    33,
1349        0,    14,    15,    58,    16,    35,    36,    37,     0,     0,
1350        0,    18,    19,     0,    20,     0,    21,     0,     0,     0,
1351        0,     0,     0,     0,     0,     0,     0,    57,     0,     0,
1352       13,     0,     0,     0,    22,     0,     0,     0,     0,     0,
1353        0,     0,    23,    24,    25,    26,    27,    28,     0,     0,
1354        0,    29,    30,    31,     0,     0,     0,    32,    33,     0,
1355       14,    15,    34,    16,    35,    36,    37,     0,     0,     0,
1356       18,    19,     0,    20,     0,    21,     0,     0,     0,     0,
1357        0,     0,     0,     0,     0,     0,   177,     0,     0,    13,
1358        0,     0,     0,    22,     0,     0,     0,     0,     0,     0,
1359        0,    23,    24,    25,    26,    27,    28,     0,     0,     0,
1360       29,    30,    31,     0,     0,     0,    32,    33,     0,    14,
1361       15,    34,    16,    35,    36,    37,     0,     0,     0,    18,
1362       19,     0,    20,     0,    21,     0,     0,     0,     0,     0,
1363        0,     0,     0,     0,     0,    57,     0,     0,     0,     0,
1364        0,     0,    22,     0,     0,     0,     0,     0,     0,     0,
1365       23,    24,    25,    26,    27,    28,     0,     0,     0,    29,
1366       30,    31,     0,     0,     0,    32,    33,     0,    14,    15,
1367       34,    16,    35,    36,    37,     0,     0,     0,    18,    19,
1368        0,    20,     0,    21,     0,     0,     0,     0,     0,     0,
1369        0,     0,   208,     0,   292,     0,     0,    13,     0,     0,
1370        0,    22,     0,     0,     0,     0,     0,     0,     0,    23,
1371       24,    25,    26,    27,    28,     0,     0,     0,    29,    30,
1372       31,     0,     0,     0,    32,    33,     0,    14,    15,    58,
1373       16,    35,    36,    37,     0,     0,     0,    18,    19,     0,
1374       20,     0,    21,     0,     0,     0,     0,     0,     0,     0,
1375        0,     0,     0,    57,     0,     0,     0,     0,     0,     0,
1376       22,     0,     0,     0,   -32,     0,     0,     0,    23,    24,
1377       25,    26,    27,    28,     0,     0,     0,    29,    30,    31,
1378        0,     0,     0,    32,    33,   -32,    14,    15,    34,    16,
1379       35,    36,    37,     0,     0,     0,    18,    19,     0,    20,
1380        0,    21,     0,     0,     0,     0,     0,     0,     0,     0,
1381        0,     0,    57,     0,     0,     0,     0,     0,     0,    22,
1382        0,     0,     0,     0,     0,     0,     0,    23,    24,    25,
1383       26,    27,    28,     0,     0,     0,     0,    30,    31,     0,
1384        0,     0,    32,    33,     0,    14,    15,    58,    16,    35,
1385       36,    37,     0,     0,     0,    18,    19,     0,    20,     0,
1386       21,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1387        0,     0,     0,     0,     0,     0,     0,     0,    22,     0,
1388        0,     0,     0,     0,     0,     0,    23,    24,    25,    26,
1389       27,    28,     0,     0,     0,    29,    30,    31,     0,     0,
1390        0,    32,    33,     0,     0,     0,    58,     0,    35,    36,
1391       37
1394 static const yytype_int16 yycheck[] =
1396       16,    81,    34,   177,   166,    45,   159,    18,   242,    84,
1397      244,    15,    45,    29,    10,   336,    32,    33,    34,    35,
1398       36,    37,    66,    67,     5,     0,    42,    10,     9,    10,
1399        9,    14,   178,    44,    69,    13,   357,    53,    51,    52,
1400       19,    10,    58,   118,    97,    11,    86,    87,    88,   109,
1401      103,    12,    68,    86,    83,    88,    12,    86,    39,    37,
1402       89,    90,    40,   123,    93,    10,    10,    69,   100,    14,
1403      110,     9,   101,   108,   109,    12,    45,     9,    16,   159,
1404       92,   134,   135,    99,   100,    98,    12,    19,   322,   133,
1405       86,   166,    10,   106,    18,   178,    14,   101,   102,   103,
1406      104,    45,    86,   107,    12,    89,   108,   109,   124,   125,
1407      126,   127,   128,   129,    12,   349,    10,    86,   292,    88,
1408       14,   174,     9,   176,    11,    42,   107,   361,   144,   145,
1409      283,   147,   148,     9,   187,   164,   189,   153,   154,   155,
1410       16,   170,    86,    87,    88,    12,   221,   293,   164,     9,
1411      296,   297,   298,   299,   170,    12,    16,   303,     9,   234,
1412      108,   109,   178,     9,     9,    16,   110,   320,   228,   229,
1413       16,    16,    12,   107,   336,   191,   192,   252,   194,   195,
1414      196,   197,   198,   199,    15,   201,    10,   203,    10,   205,
1415      206,   251,   208,   237,   247,   357,   342,   350,     9,   215,
1416       12,     9,    12,   283,   220,    16,   222,   188,    16,   284,
1417      293,    12,    95,   296,   297,   298,   299,    44,    15,   251,
1418      303,   253,   254,   255,    86,   257,   242,    10,   244,   261,
1419       18,    79,     9,    14,    10,   251,    10,   253,   254,   255,
1420      320,   257,   258,   259,   260,   261,    16,    16,    44,   324,
1421      263,   304,    99,    53,    54,    16,   272,    12,   318,   342,
1422      276,    41,   278,    16,   280,   251,    16,   253,   254,   255,
1423      350,   257,   103,   104,    16,   261,   107,   293,   107,   105,
1424      296,   297,   298,   299,    -1,    16,    -1,   303,    -1,   305,
1425      306,   307,   345,    -1,   326,    -1,    -1,    42,   351,    -1,
1426       45,    32,    33,    34,    -1,    -1,    37,   360,    -1,    -1,
1427      326,    42,   365,   329,    -1,   331,    -1,   333,   334,   332,
1428       -1,   337,    53,    -1,    -1,    -1,   342,    58,    -1,   310,
1429      359,    -1,    -1,    -1,    -1,    -1,   352,    68,    -1,    -1,
1430      326,    86,    87,    88,    -1,    -1,    -1,   147,   148,    -1,
1431       -1,    -1,    -1,    -1,   154,   155,    -1,    -1,    -1,    -1,
1432       -1,    -1,    -1,    -1,    -1,   110,    -1,    -1,    99,   100,
1433       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   179,
1434       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1435       -1,    -1,    -1,   124,   125,   126,   127,   128,   129,    -1,
1436       -1,    -1,    -1,    -1,    -1,    -1,   206,   207,    -1,    -1,
1437       -1,    -1,    -1,   144,   145,    -1,   147,   148,    -1,    -1,
1438       -1,    -1,   153,   154,   155,    -1,    -1,   227,    -1,    -1,
1439       -1,    -1,    -1,   164,    -1,    -1,    -1,    -1,    -1,   170,
1440       -1,    -1,    -1,    -1,    -1,    -1,    -1,   178,    -1,    -1,
1441      250,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1442       -1,   192,    -1,   194,   195,   196,   197,   198,   199,    -1,
1443      201,    -1,   203,    -1,   205,   206,    -1,   208,    -1,    -1,
1444      280,   281,    -1,    -1,   215,    -1,    -1,    -1,    -1,   220,
1445       -1,   222,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1446       -1,    -1,    -1,    -1,    -1,    -1,   306,   307,    -1,    -1,
1447       -1,   242,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
1448      251,    -1,   253,   254,   255,   325,   257,   258,   259,   260,
1449      261,     5,    -1,    -1,    -1,    -1,    -1,    -1,    12,    -1,
1450       -1,   272,    -1,    -1,    -1,   276,    -1,   278,    -1,   280,
1451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1452       -1,    -1,   293,    -1,    -1,   296,   297,   298,   299,    -1,
1453       -1,    -1,   303,    -1,   305,   306,   307,    -1,    -1,    -1,
1454       -1,    -1,    56,    57,    -1,    -1,    -1,    -1,    -1,    -1,
1455       64,    65,    66,    67,    -1,   326,    70,    71,    -1,    -1,
1456       -1,    -1,   333,   334,    -1,    -1,   337,    -1,    -1,    -1,
1457       -1,   342,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
1458       -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1459       -1,   105,    -1,   107,    -1,   109,    -1,    -1,   112,   113,
1460      114,   115,   116,   117,    -1,   119,   120,   121,    -1,   123,
1461       -1,    -1,    -1,    -1,    -1,    -1,   130,    -1,    -1,   133,
1462       -1,    -1,    -1,    -1,   138,    -1,   140,    -1,    -1,    -1,
1463       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1464        0,     1,    -1,    -1,    -1,    -1,    -1,     7,     8,    -1,
1465       10,    11,    12,   167,    14,    15,    -1,    -1,   172,    -1,
1466       -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
1467       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1468       -1,    -1,    -1,    -1,    -1,    45,    46,    -1,    48,    -1,
1469       -1,    -1,    -1,    -1,    54,    55,    56,    -1,    58,    -1,
1470       60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1471       -1,   225,    -1,    -1,   228,   229,    -1,    -1,    78,   233,
1472       -1,    -1,    -1,   237,    -1,    -1,    86,    87,    88,    89,
1473       90,    91,    -1,    -1,    -1,    95,    96,    97,    -1,    -1,
1474       -1,   101,   102,    -1,    -1,    -1,   106,    -1,   108,   109,
1475      110,    -1,   266,   267,   268,    -1,    -1,    -1,    -1,    -1,
1476       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1477       -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,   292,    -1,
1478       -1,    10,    11,    12,    -1,    14,    15,    -1,    -1,    -1,
1479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1480       -1,    -1,   316,    -1,   318,    -1,    -1,   321,    -1,    -1,
1481       -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,
1482       49,    50,    51,    52,    53,   339,    55,    56,    57,    58,
1483       -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
1484        1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
1485       11,    12,    -1,    14,    15,    -1,    17,    86,    87,    88,
1486       89,    90,    91,    -1,    -1,    -1,    95,    96,    97,    98,
1487       99,    -1,   101,   102,    -1,    -1,    -1,   106,    -1,   108,
1488      109,   110,    -1,    -1,    45,    46,    47,    48,    49,    50,
1489       51,    52,    53,    -1,    55,    56,    57,    58,    -1,    60,
1490       61,    62,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
1491       -1,    -1,    -1,    -1,    -1,    76,    77,    78,    11,    12,
1492       -1,    14,    15,    -1,    17,    86,    87,    88,    89,    90,
1493       91,    -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,
1494      101,   102,    -1,    -1,    -1,   106,    -1,   108,   109,   110,
1495       -1,    -1,    45,    46,    47,    48,    49,    50,    51,    52,
1496       53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
1497       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,
1498       -1,    -1,    -1,    76,    77,    78,    11,    12,    -1,    14,
1499       15,    -1,    17,    86,    87,    88,    89,    90,    91,    -1,
1500       -1,    -1,    95,    96,    97,    98,    99,    -1,   101,   102,
1501       -1,    -1,    -1,   106,    -1,   108,   109,   110,    -1,    -1,
1502       45,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
1503       55,    56,    57,    58,    -1,    60,    61,    62,    -1,    -1,
1504       -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
1505       -1,    76,    77,    78,    11,    12,    -1,    14,    15,    -1,
1506       17,    86,    87,    88,    89,    90,    91,    -1,    -1,    -1,
1507       95,    96,    97,    98,    99,    -1,   101,   102,    -1,    -1,
1508       -1,   106,    -1,   108,   109,   110,    -1,    -1,    45,    46,
1509       47,    48,    49,    50,    51,    52,    53,    -1,    55,    56,
1510       57,    58,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,
1511       -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    76,
1512       77,    78,    11,    12,    -1,    14,    15,    -1,    17,    86,
1513       87,    88,    89,    90,    91,    -1,    -1,    -1,    95,    96,
1514       97,    98,    99,    -1,   101,   102,    -1,    -1,    -1,   106,
1515       -1,   108,   109,   110,    -1,    -1,    45,    46,    47,    48,
1516       49,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
1517       -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
1518       -1,     1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
1519       10,    11,    12,    -1,    14,    15,    -1,    86,    87,    88,
1520       89,    90,    91,    -1,    -1,    -1,    95,    96,    97,    98,
1521       99,    -1,   101,   102,    -1,    -1,    -1,   106,    -1,   108,
1522      109,   110,    -1,    -1,    -1,    45,    46,    47,    48,    49,
1523       50,    51,    52,    53,    -1,    55,    56,    57,    58,    -1,
1524       60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,     1,
1525       -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    11,
1526       12,    -1,    14,    15,    -1,    17,    86,    87,    88,    89,
1527       90,    91,    -1,    -1,    -1,    95,    96,    97,    98,    99,
1528       -1,   101,   102,    -1,    -1,    -1,   106,    -1,   108,   109,
1529      110,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
1530       52,    53,    -1,    55,    56,    57,    58,    -1,    60,    61,
1531       62,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,
1532       -1,    -1,    -1,    -1,    76,    77,    78,    11,    12,    -1,
1533       14,    15,    -1,    17,    86,    87,    88,    89,    90,    91,
1534       -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,   101,
1535      102,    -1,    -1,    -1,   106,    -1,   108,   109,   110,    -1,
1536       -1,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1537       -1,    55,    56,    57,    58,    -1,    60,    61,    62,    -1,
1538       -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
1539       -1,    -1,    76,    77,    78,    11,    12,    -1,    14,    15,
1540       -1,    -1,    86,    87,    88,    89,    90,    91,    -1,    -1,
1541       -1,    95,    96,    97,    98,    99,    -1,   101,   102,    -1,
1542       -1,    -1,   106,    -1,   108,   109,   110,    -1,    -1,    45,
1543       46,    47,    48,    49,    50,    51,    52,    53,    -1,    55,
1544       56,    57,    58,    -1,    60,    61,    62,    -1,    -1,    -1,
1545       -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1546       76,    77,    78,    12,    -1,    14,    15,    -1,    -1,    -1,
1547       86,    87,    88,    89,    90,    91,    -1,    -1,    -1,    95,
1548       96,    97,    98,    99,    -1,   101,   102,    -1,    -1,    -1,
1549      106,    -1,   108,   109,   110,    -1,    45,    46,    -1,    48,
1550       -1,    50,    -1,    -1,    -1,    -1,    55,    56,    -1,    58,
1551       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
1552       -1,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
1553       12,    -1,    -1,    15,    16,    -1,    -1,    86,    87,    88,
1554       89,    90,    91,    -1,    -1,    -1,    95,    96,    97,    -1,
1555        7,     8,   101,   102,    11,    12,    -1,   106,    15,   108,
1556      109,   110,    -1,    45,    46,    -1,    48,    -1,    50,    -1,
1557       -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,
1558       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,
1559       -1,    48,    -1,    -1,    76,    77,    78,    54,    55,    56,
1560       -1,    58,    -1,    60,    86,    87,    88,    89,    90,    91,
1561       -1,    -1,    -1,    95,    96,    97,    -1,    -1,    -1,   101,
1562      102,    78,    -1,    -1,   106,    -1,   108,   109,   110,    86,
1563       87,    88,    89,    90,    91,    -1,    -1,    -1,    95,    96,
1564       97,    -1,    -1,     9,   101,   102,    12,    13,    -1,   106,
1565       16,   108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,
1566       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
1567       36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
1568       46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,
1569       56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1570       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1571       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1572       86,    87,    88,    89,    90,    91,    -1,    93,    -1,    95,
1573       96,    97,    -1,    -1,     9,   101,   102,    12,    13,    -1,
1574      106,    16,   108,   109,   110,    -1,    -1,    -1,    23,    -1,
1575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1576       35,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
1577       45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,
1578       55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
1579       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1580       -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
1581       -1,    86,    87,    88,    89,    90,    91,    -1,    93,    -1,
1582       95,    96,    97,    -1,    -1,     9,   101,   102,    12,    13,
1583       -1,   106,    16,   108,   109,   110,    -1,    -1,    -1,    23,
1584       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1585       -1,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
1586       44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
1587       -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,
1588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1589       -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,
1590       -1,    -1,    86,    87,    88,    89,    90,    91,    -1,    93,
1591       -1,    95,    96,    97,    -1,    -1,     9,   101,   102,    12,
1592       13,    -1,   106,    16,   108,   109,   110,    -1,    -1,    -1,
1593       23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1594       -1,    -1,    35,    36,    -1,    38,    39,    40,    41,    42,
1595       43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,
1596       -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,
1597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1598       -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
1599       -1,    -1,    -1,    86,    87,    88,    89,    90,    91,    -1,
1600       93,    -1,    95,    96,    97,    -1,    -1,     9,   101,   102,
1601       12,    13,    -1,   106,    -1,   108,   109,   110,    -1,    -1,
1602       -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1603       -1,    -1,    -1,    35,    36,    -1,    38,    39,    40,    41,
1604       42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
1605       -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,
1606       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1607       -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
1608       -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,    91,
1609       -1,    93,    -1,    95,    96,    97,    -1,    -1,    -1,   101,
1610      102,    -1,    -1,    -1,   106,    -1,   108,   109,   110,    10,
1611       -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
1612       -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1613       -1,    -1,    -1,    -1,    35,    36,    -1,    38,    39,    40,
1614       41,    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,
1615       -1,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,
1616       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    -1,
1617       12,    -1,    14,    15,    -1,    -1,    -1,    78,    -1,    -1,
1618       -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,
1619       91,    -1,    93,    -1,    95,    96,    97,    -1,    -1,    -1,
1620      101,   102,    -1,    45,    46,   106,    48,   108,   109,   110,
1621       -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,
1622       -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    -1,    12,
1623       -1,    -1,    15,    -1,    -1,    -1,    78,    -1,    -1,    -1,
1624       -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,    91,
1625       -1,    -1,    -1,    95,    96,    97,    -1,    -1,    -1,   101,
1626      102,    -1,    45,    46,   106,    48,   108,   109,   110,    -1,
1627       -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,
1628       -1,    -1,    -1,    -1,    -1,    -1,    10,    -1,    12,    -1,
1629       -1,    15,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
1630       -1,    -1,    -1,    86,    87,    88,    89,    90,    91,    -1,
1631       -1,    -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,
1632       -1,    45,    46,   106,    48,   108,   109,   110,    -1,    -1,
1633       -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,
1634       -1,    -1,    -1,    -1,    -1,    10,    -1,    12,    -1,    -1,
1635       15,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,
1636       -1,    -1,    86,    87,    88,    89,    90,    91,    -1,    -1,
1637       -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,    -1,
1638       45,    46,   106,    48,   108,   109,   110,    -1,    -1,    -1,
1639       55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
1640       -1,    -1,    -1,    -1,    10,    -1,    12,    -1,    -1,    15,
1641       -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
1642       -1,    86,    87,    88,    89,    90,    91,    -1,    -1,    -1,
1643       95,    96,    97,    -1,    -1,    -1,   101,   102,    -1,    45,
1644       46,   106,    48,   108,   109,   110,    -1,    -1,    -1,    55,
1645       56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1646       -1,    -1,    -1,    10,    -1,    12,    -1,    -1,    15,    -1,
1647       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1648       86,    87,    88,    89,    90,    91,    -1,    -1,    -1,    95,
1649       96,    97,    -1,    -1,    -1,   101,   102,    -1,    45,    46,
1650      106,    48,   108,   109,   110,    -1,    -1,    -1,    55,    56,
1651       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1652       -1,    -1,    10,    -1,    12,    -1,    -1,    15,    -1,    -1,
1653       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
1654       87,    88,    89,    90,    91,    -1,    -1,    -1,    95,    96,
1655       97,    -1,    -1,    -1,   101,   102,    -1,    45,    46,   106,
1656       48,   108,   109,   110,    -1,    -1,    -1,    55,    56,    -1,
1657       58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1658       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1659       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,    87,
1660       88,    89,    90,    91,    -1,    -1,    -1,    95,    96,    97,
1661       -1,    -1,    -1,   101,   102,    12,    13,    -1,   106,    16,
1662      108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,
1663       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,
1664       -1,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1665       -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,
1666       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1668       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
1669       87,    88,    89,    90,    91,    -1,    93,    -1,    95,    96,
1670       97,    -1,    -1,    -1,   101,   102,    12,    13,    -1,   106,
1671       -1,   108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,
1672       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
1673       36,    -1,    38,    39,    40,    41,    42,    43,    44,    45,
1674       46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,
1675       56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1677       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1678       86,    87,    88,    89,    90,    91,    -1,    93,    94,    95,
1679       96,    97,    -1,    -1,    -1,   101,   102,    12,    13,    -1,
1680      106,    16,   108,   109,   110,    -1,    -1,    -1,    23,    -1,
1681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1682       35,    36,    -1,    38,    39,    40,    41,    42,    43,    44,
1683       45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,
1684       55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
1685       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1686       -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
1687       -1,    86,    87,    88,    89,    90,    91,    -1,    93,    -1,
1688       95,    96,    97,    -1,    -1,    -1,   101,   102,    12,    13,
1689       -1,   106,    16,   108,   109,   110,    -1,    -1,    -1,    23,
1690       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1691       -1,    35,    36,    -1,    38,    39,    40,    41,    42,    43,
1692       44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
1693       -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,
1694       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1695       -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,
1696       -1,    -1,    86,    87,    88,    89,    90,    91,    -1,    93,
1697       -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,    12,
1698       13,    -1,   106,    16,   108,   109,   110,    -1,    -1,    -1,
1699       23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1700       -1,    -1,    35,    36,    -1,    38,    39,    40,    41,    42,
1701       43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,
1702       -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,
1703       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1704       -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
1705       -1,    -1,    -1,    86,    87,    88,    89,    90,    91,    -1,
1706       93,    -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,
1707       12,    13,    -1,   106,    16,   108,   109,   110,    -1,    -1,
1708       -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1709       -1,    -1,    -1,    35,    36,    -1,    38,    39,    40,    41,
1710       42,    43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,
1711       -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,
1712       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1713       -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
1714       -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,    91,
1715       -1,    93,    -1,    95,    96,    97,    -1,    -1,    -1,   101,
1716      102,    12,    13,    -1,   106,    16,   108,   109,   110,    -1,
1717       -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1718       -1,    -1,    -1,    -1,    35,    36,    -1,    38,    39,    40,
1719       41,    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,
1720       -1,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,
1721       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1722       -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,
1723       -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,
1724       91,    -1,    93,    -1,    95,    96,    97,    -1,    -1,    -1,
1725      101,   102,    12,    13,    14,   106,    -1,   108,   109,   110,
1726       -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,
1727       -1,    -1,    -1,    -1,    -1,    35,    36,    -1,    38,    39,
1728       40,    41,    42,    43,    44,    45,    46,    -1,    48,    -1,
1729       -1,    -1,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,
1730       60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
1732       -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,
1733       90,    91,    -1,    93,    -1,    95,    96,    97,    -1,    -1,
1734       -1,   101,   102,    12,    13,    -1,   106,    16,   108,   109,
1735      110,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,
1736       -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    -1,    38,
1737       39,    40,    41,    42,    43,    44,    45,    46,    -1,    48,
1738       -1,    -1,    -1,    -1,    -1,    -1,    55,    56,    -1,    58,
1739       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1740       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
1741       -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
1742       89,    90,    91,    -1,    93,    -1,    95,    96,    97,    -1,
1743       -1,    -1,   101,   102,    12,    13,    -1,   106,    -1,   108,
1744      109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,
1745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    36,    -1,
1746       38,    39,    40,    41,    42,    43,    44,    45,    46,    -1,
1747       48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,    -1,
1748       58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1749       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1750       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,    87,
1751       88,    89,    90,    91,    -1,    93,    -1,    95,    96,    97,
1752       -1,    -1,    -1,   101,   102,    12,    13,    -1,   106,    -1,
1753      108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,
1754       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,
1755       -1,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1756       -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,
1757       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1758       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1759       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
1760       87,    88,    89,    90,    91,    12,    13,    -1,    95,    96,
1761       97,    -1,    -1,    -1,   101,   102,    23,    -1,    -1,   106,
1762       -1,   108,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,
1763       -1,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1764       -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,
1765       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1766       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1767       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
1768       87,    88,    89,    90,    91,    12,    13,    -1,    95,    96,
1769       97,    -1,    -1,    -1,   101,   102,    23,    -1,    -1,   106,
1770       -1,   108,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,
1771       -1,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1772       -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    55,    56,
1773       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1774       -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,
1775       -1,    78,    -1,    -1,    -1,    23,    -1,    -1,    -1,    86,
1776       87,    88,    89,    90,    91,    -1,    -1,    35,    36,    96,
1777       97,    -1,    -1,    -1,   101,   102,    44,    45,    46,   106,
1778       48,   108,   109,   110,    -1,    -1,    -1,    55,    56,    -1,
1779       58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1780       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1781       78,    -1,    -1,    12,    -1,    -1,    -1,    -1,    86,    87,
1782       88,    89,    90,    91,    23,    93,    94,    95,    96,    97,
1783       -1,    -1,    -1,   101,   102,    -1,    35,    36,   106,    -1,
1784      108,   109,   110,    -1,    -1,    44,    45,    46,    -1,    48,
1785       -1,    -1,    -1,    -1,    -1,    -1,    55,    56,    -1,    58,
1786       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1787       -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    78,
1788       -1,    -1,    -1,    23,    -1,    -1,    -1,    86,    87,    88,
1789       89,    90,    91,    -1,    93,    35,    95,    96,    97,    -1,
1790       -1,    -1,   101,   102,    44,    45,    46,   106,    48,   108,
1791      109,   110,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,
1792       60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1793       -1,    12,    -1,    -1,    15,    16,    -1,    -1,    78,    -1,
1794       -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,
1795       90,    91,    -1,    -1,    -1,    95,    96,    97,    -1,    -1,
1796       -1,   101,   102,    -1,    45,    46,   106,    48,   108,   109,
1797      110,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,
1798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1799       12,    -1,    -1,    15,    16,    -1,    -1,    78,    -1,    -1,
1800       -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,    90,
1801       91,    -1,    -1,    -1,    95,    96,    97,    -1,    -1,    -1,
1802      101,   102,    -1,    45,    46,   106,    48,   108,   109,   110,
1803       -1,    -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,
1804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,
1805       -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,
1806       23,    -1,    -1,    -1,    86,    87,    88,    89,    90,    91,
1807       -1,    -1,    -1,    95,    96,    97,    -1,    -1,    -1,   101,
1808      102,    44,    45,    46,   106,    48,   108,   109,   110,    -1,
1809       -1,    -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,
1810       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,    -1,
1811       -1,    15,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
1812       -1,    -1,    -1,    86,    87,    88,    89,    90,    91,    -1,
1813       -1,    -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,
1814       -1,    45,    46,   106,    48,   108,   109,   110,    -1,    -1,
1815       -1,    55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,
1816       -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,    -1,    -1,
1817       15,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,
1818       -1,    -1,    86,    87,    88,    89,    90,    91,    -1,    -1,
1819       -1,    95,    96,    97,    -1,    -1,    -1,   101,   102,    -1,
1820       45,    46,   106,    48,   108,   109,   110,    -1,    -1,    -1,
1821       55,    56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,
1822       -1,    -1,    -1,    -1,    -1,    -1,    12,    -1,    -1,    15,
1823       -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
1824       -1,    86,    87,    88,    89,    90,    91,    -1,    -1,    -1,
1825       95,    96,    97,    -1,    -1,    -1,   101,   102,    -1,    45,
1826       46,   106,    48,   108,   109,   110,    -1,    -1,    -1,    55,
1827       56,    -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1828       -1,    -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,    -1,
1829       -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1830       86,    87,    88,    89,    90,    91,    -1,    -1,    -1,    95,
1831       96,    97,    -1,    -1,    -1,   101,   102,    -1,    45,    46,
1832      106,    48,   108,   109,   110,    -1,    -1,    -1,    55,    56,
1833       -1,    58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,
1834       -1,    -1,    69,    -1,    12,    -1,    -1,    15,    -1,    -1,
1835       -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,
1836       87,    88,    89,    90,    91,    -1,    -1,    -1,    95,    96,
1837       97,    -1,    -1,    -1,   101,   102,    -1,    45,    46,   106,
1838       48,   108,   109,   110,    -1,    -1,    -1,    55,    56,    -1,
1839       58,    -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1840       -1,    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,
1841       78,    -1,    -1,    -1,    23,    -1,    -1,    -1,    86,    87,
1842       88,    89,    90,    91,    -1,    -1,    -1,    95,    96,    97,
1843       -1,    -1,    -1,   101,   102,    44,    45,    46,   106,    48,
1844      108,   109,   110,    -1,    -1,    -1,    55,    56,    -1,    58,
1845       -1,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1846       -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    -1,    78,
1847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,
1848       89,    90,    91,    -1,    -1,    -1,    -1,    96,    97,    -1,
1849       -1,    -1,   101,   102,    -1,    45,    46,   106,    48,   108,
1850      109,   110,    -1,    -1,    -1,    55,    56,    -1,    58,    -1,
1851       60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
1853       -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    88,    89,
1854       90,    91,    -1,    -1,    -1,    95,    96,    97,    -1,    -1,
1855       -1,   101,   102,    -1,    -1,    -1,   106,    -1,   108,   109,
1856      110
1859 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1860    symbol of state STATE-NUM.  */
1861 static const yytype_uint8 yystos[] =
1863        0,     1,    10,    14,   113,   128,   130,   142,     0,     7,
1864        8,    11,    12,    15,    45,    46,    48,    54,    55,    56,
1865       58,    60,    78,    86,    87,    88,    89,    90,    91,    95,
1866       96,    97,   101,   102,   106,   108,   109,   110,   125,   131,
1867      132,   134,   137,   144,   145,   155,   156,   157,   159,    10,
1868       14,   125,   125,   137,   138,   146,    12,    12,   106,   156,
1869      157,    86,    89,   123,    12,    12,    12,    12,    42,   157,
1870       12,    12,   156,   156,   144,   156,   157,   157,   156,     1,
1871       10,    14,    47,    49,    50,    51,    52,    53,    57,    61,
1872       62,    76,    77,    98,    99,   117,   119,   124,   125,   137,
1873      141,   148,   150,   154,   160,     9,   125,   128,    13,    23,
1874       35,    36,    38,    39,    40,    41,    42,    43,    44,    93,
1875      114,   115,   156,    12,    15,   101,   102,   103,   104,   107,
1876       69,   108,   109,    18,   154,   154,     9,    16,   116,    16,
1877      116,    92,    16,   135,   137,   137,    12,   137,   137,   135,
1878       16,   135,   156,    42,   137,   137,    10,   126,   127,    14,
1879      126,   149,   149,   159,   137,   149,    12,    12,   149,   149,
1880      137,   149,    12,    10,   151,   150,   154,    12,   136,   139,
1881      140,   144,   156,   157,   149,    17,   150,   153,   131,   154,
1882      132,    95,   137,   145,   137,   137,   137,   137,   137,   137,
1883      159,   137,    10,   137,    10,   137,   137,   145,    69,   156,
1884      156,   156,   156,   156,   156,   137,   135,    17,    17,    10,
1885      137,    44,   137,    15,    16,   116,    86,   158,   116,   116,
1886       16,    16,   156,   116,   116,    10,   127,    18,   149,   129,
1887      148,   159,   137,   149,   137,   150,    79,   118,    17,   143,
1888      138,    23,    44,    93,   114,   115,   156,   116,    13,    37,
1889       40,    69,   150,   125,    17,   157,    94,   116,   116,   156,
1890       19,   159,   137,    16,   116,   147,   137,   145,   137,   145,
1891      137,   159,   135,    14,    44,   147,   147,   152,    10,   150,
1892       10,    16,    12,   136,   145,   159,   136,   136,   136,   136,
1893      156,   156,   156,   136,   154,   137,   137,   137,    86,    10,
1894      133,    16,    16,    16,    16,    16,   116,    16,   116,    19,
1895       14,   127,   159,    99,    44,   138,    94,    17,    16,   116,
1896       16,   116,   125,   137,   137,   145,   127,   137,   147,    12,
1897      159,    16,   136,   157,   157,   154,    16,    16,    16,   129,
1898       14,   122,   137,    16,    16,    17,   147,   127,   150,    16,
1899      121,   129,   149,   150,   147,   120,   150
1902 #define yyerrok         (yyerrstatus = 0)
1903 #define yyclearin       (yychar = YYEMPTY)
1904 #define YYEMPTY         (-2)
1905 #define YYEOF           0
1907 #define YYACCEPT        goto yyacceptlab
1908 #define YYABORT         goto yyabortlab
1909 #define YYERROR         goto yyerrorlab
1912 /* Like YYERROR except do call yyerror.  This remains here temporarily
1913    to ease the transition to the new meaning of YYERROR, for GCC.
1914    Once GCC version 2 has supplanted version 1, this can go.  */
1916 #define YYFAIL          goto yyerrlab
1918 #define YYRECOVERING()  (!!yyerrstatus)
1920 #define YYBACKUP(Token, Value)                                  \
1921 do                                                              \
1922   if (yychar == YYEMPTY && yylen == 1)                          \
1923     {                                                           \
1924       yychar = (Token);                                         \
1925       yylval = (Value);                                         \
1926       yytoken = YYTRANSLATE (yychar);                           \
1927       YYPOPSTACK (1);                                           \
1928       goto yybackup;                                            \
1929     }                                                           \
1930   else                                                          \
1931     {                                                           \
1932       yyerror (YY_("syntax error: cannot back up")); \
1933       YYERROR;                                                  \
1934     }                                                           \
1935 while (YYID (0))
1938 #define YYTERROR        1
1939 #define YYERRCODE       256
1942 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1943    If N is 0, then set CURRENT to the empty location which ends
1944    the previous symbol: RHS[0] (always defined).  */
1946 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1947 #ifndef YYLLOC_DEFAULT
1948 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
1949     do                                                                  \
1950       if (YYID (N))                                                    \
1951         {                                                               \
1952           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
1953           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
1954           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
1955           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
1956         }                                                               \
1957       else                                                              \
1958         {                                                               \
1959           (Current).first_line   = (Current).last_line   =              \
1960             YYRHSLOC (Rhs, 0).last_line;                                \
1961           (Current).first_column = (Current).last_column =              \
1962             YYRHSLOC (Rhs, 0).last_column;                              \
1963         }                                                               \
1964     while (YYID (0))
1965 #endif
1968 /* YY_LOCATION_PRINT -- Print the location on the stream.
1969    This macro was not mandated originally: define only if we know
1970    we won't break user code: when these are the locations we know.  */
1972 #ifndef YY_LOCATION_PRINT
1973 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1974 #  define YY_LOCATION_PRINT(File, Loc)                  \
1975      fprintf (File, "%d.%d-%d.%d",                      \
1976               (Loc).first_line, (Loc).first_column,     \
1977               (Loc).last_line,  (Loc).last_column)
1978 # else
1979 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1980 # endif
1981 #endif
1984 /* YYLEX -- calling `yylex' with the right arguments.  */
1986 #ifdef YYLEX_PARAM
1987 # define YYLEX yylex (YYLEX_PARAM)
1988 #else
1989 # define YYLEX yylex ()
1990 #endif
1992 /* Enable debugging if requested.  */
1993 #if YYDEBUG
1995 # ifndef YYFPRINTF
1996 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1997 #  define YYFPRINTF fprintf
1998 # endif
2000 # define YYDPRINTF(Args)                        \
2001 do {                                            \
2002   if (yydebug)                                  \
2003     YYFPRINTF Args;                             \
2004 } while (YYID (0))
2006 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2007 do {                                                                      \
2008   if (yydebug)                                                            \
2009     {                                                                     \
2010       YYFPRINTF (stderr, "%s ", Title);                                   \
2011       yy_symbol_print (stderr,                                            \
2012                   Type, Value); \
2013       YYFPRINTF (stderr, "\n");                                           \
2014     }                                                                     \
2015 } while (YYID (0))
2018 /*--------------------------------.
2019 | Print this symbol on YYOUTPUT.  |
2020 `--------------------------------*/
2022 /*ARGSUSED*/
2023 #if (defined __STDC__ || defined __C99__FUNC__ \
2024      || defined __cplusplus || defined _MSC_VER)
2025 static void
2026 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2027 #else
2028 static void
2029 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2030     FILE *yyoutput;
2031     int yytype;
2032     YYSTYPE const * const yyvaluep;
2033 #endif
2035   if (!yyvaluep)
2036     return;
2037 # ifdef YYPRINT
2038   if (yytype < YYNTOKENS)
2039     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2040 # else
2041   YYUSE (yyoutput);
2042 # endif
2043   switch (yytype)
2044     {
2045       default:
2046         break;
2047     }
2051 /*--------------------------------.
2052 | Print this symbol on YYOUTPUT.  |
2053 `--------------------------------*/
2055 #if (defined __STDC__ || defined __C99__FUNC__ \
2056      || defined __cplusplus || defined _MSC_VER)
2057 static void
2058 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2059 #else
2060 static void
2061 yy_symbol_print (yyoutput, yytype, yyvaluep)
2062     FILE *yyoutput;
2063     int yytype;
2064     YYSTYPE const * const yyvaluep;
2065 #endif
2067   if (yytype < YYNTOKENS)
2068     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2069   else
2070     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2072   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2073   YYFPRINTF (yyoutput, ")");
2076 /*------------------------------------------------------------------.
2077 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2078 | TOP (included).                                                   |
2079 `------------------------------------------------------------------*/
2081 #if (defined __STDC__ || defined __C99__FUNC__ \
2082      || defined __cplusplus || defined _MSC_VER)
2083 static void
2084 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
2085 #else
2086 static void
2087 yy_stack_print (bottom, top)
2088     yytype_int16 *bottom;
2089     yytype_int16 *top;
2090 #endif
2092   YYFPRINTF (stderr, "Stack now");
2093   for (; bottom <= top; ++bottom)
2094     YYFPRINTF (stderr, " %d", *bottom);
2095   YYFPRINTF (stderr, "\n");
2098 # define YY_STACK_PRINT(Bottom, Top)                            \
2099 do {                                                            \
2100   if (yydebug)                                                  \
2101     yy_stack_print ((Bottom), (Top));                           \
2102 } while (YYID (0))
2105 /*------------------------------------------------.
2106 | Report that the YYRULE is going to be reduced.  |
2107 `------------------------------------------------*/
2109 #if (defined __STDC__ || defined __C99__FUNC__ \
2110      || defined __cplusplus || defined _MSC_VER)
2111 static void
2112 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2113 #else
2114 static void
2115 yy_reduce_print (yyvsp, yyrule)
2116     YYSTYPE *yyvsp;
2117     int yyrule;
2118 #endif
2120   int yynrhs = yyr2[yyrule];
2121   int yyi;
2122   unsigned long int yylno = yyrline[yyrule];
2123   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2124              yyrule - 1, yylno);
2125   /* The symbols being reduced.  */
2126   for (yyi = 0; yyi < yynrhs; yyi++)
2127     {
2128       fprintf (stderr, "   $%d = ", yyi + 1);
2129       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2130                        &(yyvsp[(yyi + 1) - (yynrhs)])
2131                                        );
2132       fprintf (stderr, "\n");
2133     }
2136 # define YY_REDUCE_PRINT(Rule)          \
2137 do {                                    \
2138   if (yydebug)                          \
2139     yy_reduce_print (yyvsp, Rule); \
2140 } while (YYID (0))
2142 /* Nonzero means print parse trace.  It is left uninitialized so that
2143    multiple parsers can coexist.  */
2144 int yydebug;
2145 #else /* !YYDEBUG */
2146 # define YYDPRINTF(Args)
2147 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2148 # define YY_STACK_PRINT(Bottom, Top)
2149 # define YY_REDUCE_PRINT(Rule)
2150 #endif /* !YYDEBUG */
2153 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2154 #ifndef YYINITDEPTH
2155 # define YYINITDEPTH 200
2156 #endif
2158 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2159    if the built-in stack extension method is used).
2161    Do not make this value too large; the results are undefined if
2162    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2163    evaluated with infinite-precision integer arithmetic.  */
2165 #ifndef YYMAXDEPTH
2166 # define YYMAXDEPTH 10000
2167 #endif
2171 #if YYERROR_VERBOSE
2173 # ifndef yystrlen
2174 #  if defined __GLIBC__ && defined _STRING_H
2175 #   define yystrlen strlen
2176 #  else
2177 /* Return the length of YYSTR.  */
2178 #if (defined __STDC__ || defined __C99__FUNC__ \
2179      || defined __cplusplus || defined _MSC_VER)
2180 static YYSIZE_T
2181 yystrlen (const char *yystr)
2182 #else
2183 static YYSIZE_T
2184 yystrlen (yystr)
2185     const char *yystr;
2186 #endif
2188   YYSIZE_T yylen;
2189   for (yylen = 0; yystr[yylen]; yylen++)
2190     continue;
2191   return yylen;
2193 #  endif
2194 # endif
2196 # ifndef yystpcpy
2197 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2198 #   define yystpcpy stpcpy
2199 #  else
2200 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2201    YYDEST.  */
2202 #if (defined __STDC__ || defined __C99__FUNC__ \
2203      || defined __cplusplus || defined _MSC_VER)
2204 static char *
2205 yystpcpy (char *yydest, const char *yysrc)
2206 #else
2207 static char *
2208 yystpcpy (yydest, yysrc)
2209     char *yydest;
2210     const char *yysrc;
2211 #endif
2213   char *yyd = yydest;
2214   const char *yys = yysrc;
2216   while ((*yyd++ = *yys++) != '\0')
2217     continue;
2219   return yyd - 1;
2221 #  endif
2222 # endif
2224 # ifndef yytnamerr
2225 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2226    quotes and backslashes, so that it's suitable for yyerror.  The
2227    heuristic is that double-quoting is unnecessary unless the string
2228    contains an apostrophe, a comma, or backslash (other than
2229    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2230    null, do not copy; instead, return the length of what the result
2231    would have been.  */
2232 static YYSIZE_T
2233 yytnamerr (char *yyres, const char *yystr)
2235   if (*yystr == '"')
2236     {
2237       YYSIZE_T yyn = 0;
2238       char const *yyp = yystr;
2240       for (;;)
2241         switch (*++yyp)
2242           {
2243           case '\'':
2244           case ',':
2245             goto do_not_strip_quotes;
2247           case '\\':
2248             if (*++yyp != '\\')
2249               goto do_not_strip_quotes;
2250             /* Fall through.  */
2251           default:
2252             if (yyres)
2253               yyres[yyn] = *yyp;
2254             yyn++;
2255             break;
2257           case '"':
2258             if (yyres)
2259               yyres[yyn] = '\0';
2260             return yyn;
2261           }
2262     do_not_strip_quotes: ;
2263     }
2265   if (! yyres)
2266     return yystrlen (yystr);
2268   return yystpcpy (yyres, yystr) - yyres;
2270 # endif
2272 /* Copy into YYRESULT an error message about the unexpected token
2273    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2274    including the terminating null byte.  If YYRESULT is null, do not
2275    copy anything; just return the number of bytes that would be
2276    copied.  As a special case, return 0 if an ordinary "syntax error"
2277    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2278    size calculation.  */
2279 static YYSIZE_T
2280 yysyntax_error (char *yyresult, int yystate, int yychar)
2282   int yyn = yypact[yystate];
2284   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2285     return 0;
2286   else
2287     {
2288       int yytype = YYTRANSLATE (yychar);
2289       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2290       YYSIZE_T yysize = yysize0;
2291       YYSIZE_T yysize1;
2292       int yysize_overflow = 0;
2293       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2294       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2295       int yyx;
2297 # if 0
2298       /* This is so xgettext sees the translatable formats that are
2299          constructed on the fly.  */
2300       YY_("syntax error, unexpected %s");
2301       YY_("syntax error, unexpected %s, expecting %s");
2302       YY_("syntax error, unexpected %s, expecting %s or %s");
2303       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2304       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2305 # endif
2306       char *yyfmt;
2307       char const *yyf;
2308       static char const yyunexpected[] = "syntax error, unexpected %s";
2309       static char const yyexpecting[] = ", expecting %s";
2310       static char const yyor[] = " or %s";
2311       char yyformat[sizeof yyunexpected
2312                     + sizeof yyexpecting - 1
2313                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2314                        * (sizeof yyor - 1))];
2315       char const *yyprefix = yyexpecting;
2317       /* Start YYX at -YYN if negative to avoid negative indexes in
2318          YYCHECK.  */
2319       int yyxbegin = yyn < 0 ? -yyn : 0;
2321       /* Stay within bounds of both yycheck and yytname.  */
2322       int yychecklim = YYLAST - yyn + 1;
2323       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2324       int yycount = 1;
2326       yyarg[0] = yytname[yytype];
2327       yyfmt = yystpcpy (yyformat, yyunexpected);
2329       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2330         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2331           {
2332             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2333               {
2334                 yycount = 1;
2335                 yysize = yysize0;
2336                 yyformat[sizeof yyunexpected - 1] = '\0';
2337                 break;
2338               }
2339             yyarg[yycount++] = yytname[yyx];
2340             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2341             yysize_overflow |= (yysize1 < yysize);
2342             yysize = yysize1;
2343             yyfmt = yystpcpy (yyfmt, yyprefix);
2344             yyprefix = yyor;
2345           }
2347       yyf = YY_(yyformat);
2348       yysize1 = yysize + yystrlen (yyf);
2349       yysize_overflow |= (yysize1 < yysize);
2350       yysize = yysize1;
2352       if (yysize_overflow)
2353         return YYSIZE_MAXIMUM;
2355       if (yyresult)
2356         {
2357           /* Avoid sprintf, as that infringes on the user's name space.
2358              Don't have undefined behavior even if the translation
2359              produced a string with the wrong number of "%s"s.  */
2360           char *yyp = yyresult;
2361           int yyi = 0;
2362           while ((*yyp = *yyf) != '\0')
2363             {
2364               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2365                 {
2366                   yyp += yytnamerr (yyp, yyarg[yyi++]);
2367                   yyf += 2;
2368                 }
2369               else
2370                 {
2371                   yyp++;
2372                   yyf++;
2373                 }
2374             }
2375         }
2376       return yysize;
2377     }
2379 #endif /* YYERROR_VERBOSE */
2382 /*-----------------------------------------------.
2383 | Release the memory associated to this symbol.  |
2384 `-----------------------------------------------*/
2386 /*ARGSUSED*/
2387 #if (defined __STDC__ || defined __C99__FUNC__ \
2388      || defined __cplusplus || defined _MSC_VER)
2389 static void
2390 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2391 #else
2392 static void
2393 yydestruct (yymsg, yytype, yyvaluep)
2394     const char *yymsg;
2395     int yytype;
2396     YYSTYPE *yyvaluep;
2397 #endif
2399   YYUSE (yyvaluep);
2401   if (!yymsg)
2402     yymsg = "Deleting";
2403   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2405   switch (yytype)
2406     {
2408       default:
2409         break;
2410     }
2414 /* Prevent warnings from -Wmissing-prototypes.  */
2416 #ifdef YYPARSE_PARAM
2417 #if defined __STDC__ || defined __cplusplus
2418 int yyparse (void *YYPARSE_PARAM);
2419 #else
2420 int yyparse ();
2421 #endif
2422 #else /* ! YYPARSE_PARAM */
2423 #if defined __STDC__ || defined __cplusplus
2424 int yyparse (void);
2425 #else
2426 int yyparse ();
2427 #endif
2428 #endif /* ! YYPARSE_PARAM */
2432 /* The look-ahead symbol.  */
2433 int yychar;
2435 /* The semantic value of the look-ahead symbol.  */
2436 YYSTYPE yylval;
2438 /* Number of syntax errors so far.  */
2439 int yynerrs;
2443 /*----------.
2444 | yyparse.  |
2445 `----------*/
2447 #ifdef YYPARSE_PARAM
2448 #if (defined __STDC__ || defined __C99__FUNC__ \
2449      || defined __cplusplus || defined _MSC_VER)
2451 yyparse (void *YYPARSE_PARAM)
2452 #else
2454 yyparse (YYPARSE_PARAM)
2455     void *YYPARSE_PARAM;
2456 #endif
2457 #else /* ! YYPARSE_PARAM */
2458 #if (defined __STDC__ || defined __C99__FUNC__ \
2459      || defined __cplusplus || defined _MSC_VER)
2461 yyparse (void)
2462 #else
2464 yyparse ()
2466 #endif
2467 #endif
2469   
2470   int yystate;
2471   int yyn;
2472   int yyresult;
2473   /* Number of tokens to shift before error messages enabled.  */
2474   int yyerrstatus;
2475   /* Look-ahead token as an internal (translated) token number.  */
2476   int yytoken = 0;
2477 #if YYERROR_VERBOSE
2478   /* Buffer for error messages, and its allocated size.  */
2479   char yymsgbuf[128];
2480   char *yymsg = yymsgbuf;
2481   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2482 #endif
2484   /* Three stacks and their tools:
2485      `yyss': related to states,
2486      `yyvs': related to semantic values,
2487      `yyls': related to locations.
2489      Refer to the stacks thru separate pointers, to allow yyoverflow
2490      to reallocate them elsewhere.  */
2492   /* The state stack.  */
2493   yytype_int16 yyssa[YYINITDEPTH];
2494   yytype_int16 *yyss = yyssa;
2495   yytype_int16 *yyssp;
2497   /* The semantic value stack.  */
2498   YYSTYPE yyvsa[YYINITDEPTH];
2499   YYSTYPE *yyvs = yyvsa;
2500   YYSTYPE *yyvsp;
2504 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2506   YYSIZE_T yystacksize = YYINITDEPTH;
2508   /* The variables used to return semantic value and location from the
2509      action routines.  */
2510   YYSTYPE yyval;
2513   /* The number of symbols on the RHS of the reduced rule.
2514      Keep to zero when no symbol should be popped.  */
2515   int yylen = 0;
2517   YYDPRINTF ((stderr, "Starting parse\n"));
2519   yystate = 0;
2520   yyerrstatus = 0;
2521   yynerrs = 0;
2522   yychar = YYEMPTY;             /* Cause a token to be read.  */
2524   /* Initialize stack pointers.
2525      Waste one element of value and location stack
2526      so that they stay on the same level as the state stack.
2527      The wasted elements are never initialized.  */
2529   yyssp = yyss;
2530   yyvsp = yyvs;
2532   goto yysetstate;
2534 /*------------------------------------------------------------.
2535 | yynewstate -- Push a new state, which is found in yystate.  |
2536 `------------------------------------------------------------*/
2537  yynewstate:
2538   /* In all cases, when you get here, the value and location stacks
2539      have just been pushed.  So pushing a state here evens the stacks.  */
2540   yyssp++;
2542  yysetstate:
2543   *yyssp = yystate;
2545   if (yyss + yystacksize - 1 <= yyssp)
2546     {
2547       /* Get the current used size of the three stacks, in elements.  */
2548       YYSIZE_T yysize = yyssp - yyss + 1;
2550 #ifdef yyoverflow
2551       {
2552         /* Give user a chance to reallocate the stack.  Use copies of
2553            these so that the &'s don't force the real ones into
2554            memory.  */
2555         YYSTYPE *yyvs1 = yyvs;
2556         yytype_int16 *yyss1 = yyss;
2559         /* Each stack pointer address is followed by the size of the
2560            data in use in that stack, in bytes.  This used to be a
2561            conditional around just the two extra args, but that might
2562            be undefined if yyoverflow is a macro.  */
2563         yyoverflow (YY_("memory exhausted"),
2564                     &yyss1, yysize * sizeof (*yyssp),
2565                     &yyvs1, yysize * sizeof (*yyvsp),
2567                     &yystacksize);
2569         yyss = yyss1;
2570         yyvs = yyvs1;
2571       }
2572 #else /* no yyoverflow */
2573 # ifndef YYSTACK_RELOCATE
2574       goto yyexhaustedlab;
2575 # else
2576       /* Extend the stack our own way.  */
2577       if (YYMAXDEPTH <= yystacksize)
2578         goto yyexhaustedlab;
2579       yystacksize *= 2;
2580       if (YYMAXDEPTH < yystacksize)
2581         yystacksize = YYMAXDEPTH;
2583       {
2584         yytype_int16 *yyss1 = yyss;
2585         union yyalloc *yyptr =
2586           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2587         if (! yyptr)
2588           goto yyexhaustedlab;
2589         YYSTACK_RELOCATE (yyss);
2590         YYSTACK_RELOCATE (yyvs);
2592 #  undef YYSTACK_RELOCATE
2593         if (yyss1 != yyssa)
2594           YYSTACK_FREE (yyss1);
2595       }
2596 # endif
2597 #endif /* no yyoverflow */
2599       yyssp = yyss + yysize - 1;
2600       yyvsp = yyvs + yysize - 1;
2603       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2604                   (unsigned long int) yystacksize));
2606       if (yyss + yystacksize - 1 <= yyssp)
2607         YYABORT;
2608     }
2610   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2612   goto yybackup;
2614 /*-----------.
2615 | yybackup.  |
2616 `-----------*/
2617 yybackup:
2619   /* Do appropriate processing given the current state.  Read a
2620      look-ahead token if we need one and don't already have one.  */
2622   /* First try to decide what to do without reference to look-ahead token.  */
2623   yyn = yypact[yystate];
2624   if (yyn == YYPACT_NINF)
2625     goto yydefault;
2627   /* Not known => get a look-ahead token if don't already have one.  */
2629   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
2630   if (yychar == YYEMPTY)
2631     {
2632       YYDPRINTF ((stderr, "Reading a token: "));
2633       yychar = YYLEX;
2634     }
2636   if (yychar <= YYEOF)
2637     {
2638       yychar = yytoken = YYEOF;
2639       YYDPRINTF ((stderr, "Now at end of input.\n"));
2640     }
2641   else
2642     {
2643       yytoken = YYTRANSLATE (yychar);
2644       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2645     }
2647   /* If the proper action on seeing token YYTOKEN is to reduce or to
2648      detect an error, take that action.  */
2649   yyn += yytoken;
2650   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2651     goto yydefault;
2652   yyn = yytable[yyn];
2653   if (yyn <= 0)
2654     {
2655       if (yyn == 0 || yyn == YYTABLE_NINF)
2656         goto yyerrlab;
2657       yyn = -yyn;
2658       goto yyreduce;
2659     }
2661   if (yyn == YYFINAL)
2662     YYACCEPT;
2664   /* Count tokens shifted since error; after three, turn off error
2665      status.  */
2666   if (yyerrstatus)
2667     yyerrstatus--;
2669   /* Shift the look-ahead token.  */
2670   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2672   /* Discard the shifted token unless it is eof.  */
2673   if (yychar != YYEOF)
2674     yychar = YYEMPTY;
2676   yystate = yyn;
2677   *++yyvsp = yylval;
2679   goto yynewstate;
2682 /*-----------------------------------------------------------.
2683 | yydefault -- do the default action for the current state.  |
2684 `-----------------------------------------------------------*/
2685 yydefault:
2686   yyn = yydefact[yystate];
2687   if (yyn == 0)
2688     goto yyerrlab;
2689   goto yyreduce;
2692 /*-----------------------------.
2693 | yyreduce -- Do a reduction.  |
2694 `-----------------------------*/
2695 yyreduce:
2696   /* yyn is the number of a rule to reduce with.  */
2697   yylen = yyr2[yyn];
2699   /* If YYLEN is nonzero, implement the default value of the action:
2700      `$$ = $1'.
2702      Otherwise, the following line sets YYVAL to garbage.
2703      This behavior is undocumented and Bison
2704      users should not rely upon it.  Assigning to YYVAL
2705      unconditionally makes the parser a bit smaller, and it avoids a
2706      GCC warning that YYVAL may be used uninitialized.  */
2707   yyval = yyvsp[1-yylen];
2710   YY_REDUCE_PRINT (yyn);
2711   switch (yyn)
2712     {
2713         case 2:
2714 #line 98 "awkgram.y"
2715     { if (errorflag==0)
2716                         winner = (Node *)stat3(PROGRAM, beginloc, (yyvsp[(1) - (1)].p), endloc); }
2717     break;
2719   case 3:
2720 #line 100 "awkgram.y"
2721     { yyclearin; bracecheck(); SYNTAX("bailing out"); }
2722     break;
2724   case 14:
2725 #line 124 "awkgram.y"
2726     {inloop++;}
2727     break;
2729   case 15:
2730 #line 125 "awkgram.y"
2731     { --inloop; (yyval.p) = stat4(FOR, (yyvsp[(3) - (12)].p), notnull((yyvsp[(6) - (12)].p)), (yyvsp[(9) - (12)].p), (yyvsp[(12) - (12)].p)); }
2732     break;
2734   case 16:
2735 #line 126 "awkgram.y"
2736     {inloop++;}
2737     break;
2739   case 17:
2740 #line 127 "awkgram.y"
2741     { --inloop; (yyval.p) = stat4(FOR, (yyvsp[(3) - (10)].p), NIL, (yyvsp[(7) - (10)].p), (yyvsp[(10) - (10)].p)); }
2742     break;
2744   case 18:
2745 #line 128 "awkgram.y"
2746     {inloop++;}
2747     break;
2749   case 19:
2750 #line 129 "awkgram.y"
2751     { --inloop; (yyval.p) = stat3(IN, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (yyvsp[(8) - (8)].p)); }
2752     break;
2754   case 20:
2755 #line 133 "awkgram.y"
2756     { setfname((yyvsp[(1) - (1)].cp)); }
2757     break;
2759   case 21:
2760 #line 134 "awkgram.y"
2761     { setfname((yyvsp[(1) - (1)].cp)); }
2762     break;
2764   case 22:
2765 #line 138 "awkgram.y"
2766     { (yyval.p) = notnull((yyvsp[(3) - (4)].p)); }
2767     break;
2769   case 27:
2770 #line 150 "awkgram.y"
2771     { (yyval.i) = 0; }
2772     break;
2774   case 29:
2775 #line 155 "awkgram.y"
2776     { (yyval.i) = 0; }
2777     break;
2779   case 31:
2780 #line 161 "awkgram.y"
2781     { (yyval.p) = 0; }
2782     break;
2784   case 33:
2785 #line 166 "awkgram.y"
2786     { (yyval.p) = 0; }
2787     break;
2789   case 34:
2790 #line 167 "awkgram.y"
2791     { (yyval.p) = (yyvsp[(2) - (3)].p); }
2792     break;
2794   case 35:
2795 #line 171 "awkgram.y"
2796     { (yyval.p) = notnull((yyvsp[(1) - (1)].p)); }
2797     break;
2799   case 36:
2800 #line 175 "awkgram.y"
2801     { (yyval.p) = stat2(PASTAT, (yyvsp[(1) - (1)].p), stat2(PRINT, rectonode(), NIL)); }
2802     break;
2804   case 37:
2805 #line 176 "awkgram.y"
2806     { (yyval.p) = stat2(PASTAT, (yyvsp[(1) - (4)].p), (yyvsp[(3) - (4)].p)); }
2807     break;
2809   case 38:
2810 #line 177 "awkgram.y"
2811     { (yyval.p) = pa2stat((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p), stat2(PRINT, rectonode(), NIL)); }
2812     break;
2814   case 39:
2815 #line 178 "awkgram.y"
2816     { (yyval.p) = pa2stat((yyvsp[(1) - (6)].p), (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
2817     break;
2819   case 40:
2820 #line 179 "awkgram.y"
2821     { (yyval.p) = stat2(PASTAT, NIL, (yyvsp[(2) - (3)].p)); }
2822     break;
2824   case 41:
2825 #line 181 "awkgram.y"
2826     { beginloc = linkum(beginloc, (yyvsp[(3) - (4)].p)); (yyval.p) = 0; }
2827     break;
2829   case 42:
2830 #line 183 "awkgram.y"
2831     { endloc = linkum(endloc, (yyvsp[(3) - (4)].p)); (yyval.p) = 0; }
2832     break;
2834   case 43:
2835 #line 184 "awkgram.y"
2836     {infunc++;}
2837     break;
2839   case 44:
2840 #line 185 "awkgram.y"
2841     { infunc--; curfname=0; defn((Cell *)(yyvsp[(2) - (9)].p), (yyvsp[(4) - (9)].p), (yyvsp[(8) - (9)].p)); (yyval.p) = 0; }
2842     break;
2844   case 46:
2845 #line 190 "awkgram.y"
2846     { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2847     break;
2849   case 48:
2850 #line 195 "awkgram.y"
2851     { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2852     break;
2854   case 49:
2855 #line 199 "awkgram.y"
2856     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2857     break;
2859   case 50:
2860 #line 201 "awkgram.y"
2861     { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[(1) - (5)].p)), (yyvsp[(3) - (5)].p), (yyvsp[(5) - (5)].p)); }
2862     break;
2864   case 51:
2865 #line 203 "awkgram.y"
2866     { (yyval.p) = op2(BOR, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
2867     break;
2869   case 52:
2870 #line 205 "awkgram.y"
2871     { (yyval.p) = op2(AND, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
2872     break;
2874   case 53:
2875 #line 206 "awkgram.y"
2876     { (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa((yyvsp[(3) - (3)].s), 0)); }
2877     break;
2879   case 54:
2880 #line 208 "awkgram.y"
2881     { if (constnode((yyvsp[(3) - (3)].p)))
2882                         (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa(strnode((yyvsp[(3) - (3)].p)), 0));
2883                   else
2884                         (yyval.p) = op3((yyvsp[(2) - (3)].i), (Node *)1, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2885     break;
2887   case 55:
2888 #line 212 "awkgram.y"
2889     { (yyval.p) = op2(INTEST, (yyvsp[(1) - (3)].p), makearr((yyvsp[(3) - (3)].p))); }
2890     break;
2892   case 56:
2893 #line 213 "awkgram.y"
2894     { (yyval.p) = op2(INTEST, (yyvsp[(2) - (5)].p), makearr((yyvsp[(5) - (5)].p))); }
2895     break;
2897   case 57:
2898 #line 214 "awkgram.y"
2899     { (yyval.p) = op2(CAT, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
2900     break;
2902   case 60:
2903 #line 220 "awkgram.y"
2904     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2905     break;
2907   case 61:
2908 #line 222 "awkgram.y"
2909     { (yyval.p) = op3(CONDEXPR, notnull((yyvsp[(1) - (5)].p)), (yyvsp[(3) - (5)].p), (yyvsp[(5) - (5)].p)); }
2910     break;
2912   case 62:
2913 #line 224 "awkgram.y"
2914     { (yyval.p) = op2(BOR, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
2915     break;
2917   case 63:
2918 #line 226 "awkgram.y"
2919     { (yyval.p) = op2(AND, notnull((yyvsp[(1) - (3)].p)), notnull((yyvsp[(3) - (3)].p))); }
2920     break;
2922   case 64:
2923 #line 227 "awkgram.y"
2924     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2925     break;
2927   case 65:
2928 #line 228 "awkgram.y"
2929     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2930     break;
2932   case 66:
2933 #line 229 "awkgram.y"
2934     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2935     break;
2937   case 67:
2938 #line 230 "awkgram.y"
2939     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2940     break;
2942   case 68:
2943 #line 231 "awkgram.y"
2944     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2945     break;
2947   case 69:
2948 #line 232 "awkgram.y"
2949     { (yyval.p) = op2((yyvsp[(2) - (3)].i), (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2950     break;
2952   case 70:
2953 #line 233 "awkgram.y"
2954     { (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa((yyvsp[(3) - (3)].s), 0)); }
2955     break;
2957   case 71:
2958 #line 235 "awkgram.y"
2959     { if (constnode((yyvsp[(3) - (3)].p)))
2960                         (yyval.p) = op3((yyvsp[(2) - (3)].i), NIL, (yyvsp[(1) - (3)].p), (Node*)makedfa(strnode((yyvsp[(3) - (3)].p)), 0));
2961                   else
2962                         (yyval.p) = op3((yyvsp[(2) - (3)].i), (Node *)1, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2963     break;
2965   case 72:
2966 #line 239 "awkgram.y"
2967     { (yyval.p) = op2(INTEST, (yyvsp[(1) - (3)].p), makearr((yyvsp[(3) - (3)].p))); }
2968     break;
2970   case 73:
2971 #line 240 "awkgram.y"
2972     { (yyval.p) = op2(INTEST, (yyvsp[(2) - (5)].p), makearr((yyvsp[(5) - (5)].p))); }
2973     break;
2975   case 74:
2976 #line 241 "awkgram.y"
2977     { 
2978                         if (safe) SYNTAX("cmd | getline is unsafe");
2979                         else (yyval.p) = op3(GETLINE, (yyvsp[(4) - (4)].p), itonp((yyvsp[(2) - (4)].i)), (yyvsp[(1) - (4)].p)); }
2980     break;
2982   case 75:
2983 #line 244 "awkgram.y"
2984     { 
2985                         if (safe) SYNTAX("cmd | getline is unsafe");
2986                         else (yyval.p) = op3(GETLINE, (Node*)0, itonp((yyvsp[(2) - (3)].i)), (yyvsp[(1) - (3)].p)); }
2987     break;
2989   case 76:
2990 #line 247 "awkgram.y"
2991     { (yyval.p) = op2(CAT, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
2992     break;
2994   case 79:
2995 #line 253 "awkgram.y"
2996     { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
2997     break;
2999   case 80:
3000 #line 254 "awkgram.y"
3001     { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3002     break;
3004   case 82:
3005 #line 259 "awkgram.y"
3006     { (yyval.p) = linkum((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3007     break;
3009   case 83:
3010 #line 263 "awkgram.y"
3011     { (yyval.p) = rectonode(); }
3012     break;
3014   case 85:
3015 #line 265 "awkgram.y"
3016     { (yyval.p) = (yyvsp[(2) - (3)].p); }
3017     break;
3019   case 94:
3020 #line 282 "awkgram.y"
3021     { (yyval.p) = op3(MATCH, NIL, rectonode(), (Node*)makedfa((yyvsp[(1) - (1)].s), 0)); }
3022     break;
3024   case 95:
3025 #line 283 "awkgram.y"
3026     { (yyval.p) = op1(NOT, notnull((yyvsp[(2) - (2)].p))); }
3027     break;
3029   case 96:
3030 #line 287 "awkgram.y"
3031     {startreg();}
3032     break;
3034   case 97:
3035 #line 287 "awkgram.y"
3036     { (yyval.s) = (yyvsp[(3) - (4)].s); }
3037     break;
3039   case 100:
3040 #line 295 "awkgram.y"
3041     { 
3042                         if (safe) SYNTAX("print | is unsafe");
3043                         else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
3044     break;
3046   case 101:
3047 #line 298 "awkgram.y"
3048     {
3049                         if (safe) SYNTAX("print >> is unsafe");
3050                         else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
3051     break;
3053   case 102:
3054 #line 301 "awkgram.y"
3055     {
3056                         if (safe) SYNTAX("print > is unsafe");
3057                         else (yyval.p) = stat3((yyvsp[(1) - (4)].i), (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
3058     break;
3060   case 103:
3061 #line 304 "awkgram.y"
3062     { (yyval.p) = stat3((yyvsp[(1) - (2)].i), (yyvsp[(2) - (2)].p), NIL, NIL); }
3063     break;
3065   case 104:
3066 #line 305 "awkgram.y"
3067     { (yyval.p) = stat2(DELETE, makearr((yyvsp[(2) - (5)].p)), (yyvsp[(4) - (5)].p)); }
3068     break;
3070   case 105:
3071 #line 306 "awkgram.y"
3072     { (yyval.p) = stat2(DELETE, makearr((yyvsp[(2) - (2)].p)), 0); }
3073     break;
3075   case 106:
3076 #line 307 "awkgram.y"
3077     { (yyval.p) = exptostat((yyvsp[(1) - (1)].p)); }
3078     break;
3080   case 107:
3081 #line 308 "awkgram.y"
3082     { yyclearin; SYNTAX("illegal statement"); }
3083     break;
3085   case 110:
3086 #line 317 "awkgram.y"
3087     { if (!inloop) SYNTAX("break illegal outside of loops");
3088                                   (yyval.p) = stat1(BREAK, NIL); }
3089     break;
3091   case 111:
3092 #line 319 "awkgram.y"
3093     {  if (!inloop) SYNTAX("continue illegal outside of loops");
3094                                   (yyval.p) = stat1(CONTINUE, NIL); }
3095     break;
3097   case 112:
3098 #line 321 "awkgram.y"
3099     {inloop++;}
3100     break;
3102   case 113:
3103 #line 321 "awkgram.y"
3104     {--inloop;}
3105     break;
3107   case 114:
3108 #line 322 "awkgram.y"
3109     { (yyval.p) = stat2(DO, (yyvsp[(3) - (9)].p), notnull((yyvsp[(7) - (9)].p))); }
3110     break;
3112   case 115:
3113 #line 323 "awkgram.y"
3114     { (yyval.p) = stat1(EXIT, (yyvsp[(2) - (3)].p)); }
3115     break;
3117   case 116:
3118 #line 324 "awkgram.y"
3119     { (yyval.p) = stat1(EXIT, NIL); }
3120     break;
3122   case 118:
3123 #line 326 "awkgram.y"
3124     { (yyval.p) = stat3(IF, (yyvsp[(1) - (4)].p), (yyvsp[(2) - (4)].p), (yyvsp[(4) - (4)].p)); }
3125     break;
3127   case 119:
3128 #line 327 "awkgram.y"
3129     { (yyval.p) = stat3(IF, (yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p), NIL); }
3130     break;
3132   case 120:
3133 #line 328 "awkgram.y"
3134     { (yyval.p) = (yyvsp[(2) - (3)].p); }
3135     break;
3137   case 121:
3138 #line 329 "awkgram.y"
3139     { if (infunc)
3140                                 SYNTAX("next is illegal inside a function");
3141                           (yyval.p) = stat1(NEXT, NIL); }
3142     break;
3144   case 122:
3145 #line 332 "awkgram.y"
3146     { if (infunc)
3147                                 SYNTAX("nextfile is illegal inside a function");
3148                           (yyval.p) = stat1(NEXTFILE, NIL); }
3149     break;
3151   case 123:
3152 #line 335 "awkgram.y"
3153     { (yyval.p) = stat1(RETURN, (yyvsp[(2) - (3)].p)); }
3154     break;
3156   case 124:
3157 #line 336 "awkgram.y"
3158     { (yyval.p) = stat1(RETURN, NIL); }
3159     break;
3161   case 126:
3162 #line 338 "awkgram.y"
3163     {inloop++;}
3164     break;
3166   case 127:
3167 #line 338 "awkgram.y"
3168     { --inloop; (yyval.p) = stat2(WHILE, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3169     break;
3171   case 128:
3172 #line 339 "awkgram.y"
3173     { (yyval.p) = 0; }
3174     break;
3176   case 130:
3177 #line 344 "awkgram.y"
3178     { (yyval.p) = linkum((yyvsp[(1) - (2)].p), (yyvsp[(2) - (2)].p)); }
3179     break;
3181   case 133:
3182 #line 352 "awkgram.y"
3183     { (yyval.p) = op2(DIVEQ, (yyvsp[(1) - (4)].p), (yyvsp[(4) - (4)].p)); }
3184     break;
3186   case 134:
3187 #line 353 "awkgram.y"
3188     { (yyval.p) = op2(ADD, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3189     break;
3191   case 135:
3192 #line 354 "awkgram.y"
3193     { (yyval.p) = op2(MINUS, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3194     break;
3196   case 136:
3197 #line 355 "awkgram.y"
3198     { (yyval.p) = op2(MULT, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3199     break;
3201   case 137:
3202 #line 356 "awkgram.y"
3203     { (yyval.p) = op2(DIVIDE, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3204     break;
3206   case 138:
3207 #line 357 "awkgram.y"
3208     { (yyval.p) = op2(MOD, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3209     break;
3211   case 139:
3212 #line 358 "awkgram.y"
3213     { (yyval.p) = op2(POWER, (yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].p)); }
3214     break;
3216   case 140:
3217 #line 359 "awkgram.y"
3218     { (yyval.p) = op1(UMINUS, (yyvsp[(2) - (2)].p)); }
3219     break;
3221   case 141:
3222 #line 360 "awkgram.y"
3223     { (yyval.p) = (yyvsp[(2) - (2)].p); }
3224     break;
3226   case 142:
3227 #line 361 "awkgram.y"
3228     { (yyval.p) = op1(NOT, notnull((yyvsp[(2) - (2)].p))); }
3229     break;
3231   case 143:
3232 #line 362 "awkgram.y"
3233     { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (3)].i)), rectonode()); }
3234     break;
3236   case 144:
3237 #line 363 "awkgram.y"
3238     { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (4)].i)), (yyvsp[(3) - (4)].p)); }
3239     break;
3241   case 145:
3242 #line 364 "awkgram.y"
3243     { (yyval.p) = op2(BLTIN, itonp((yyvsp[(1) - (1)].i)), rectonode()); }
3244     break;
3246   case 146:
3247 #line 365 "awkgram.y"
3248     { (yyval.p) = op2(CALL, celltonode((yyvsp[(1) - (3)].cp),CVAR), NIL); }
3249     break;
3251   case 147:
3252 #line 366 "awkgram.y"
3253     { (yyval.p) = op2(CALL, celltonode((yyvsp[(1) - (4)].cp),CVAR), (yyvsp[(3) - (4)].p)); }
3254     break;
3256   case 148:
3257 #line 367 "awkgram.y"
3258     { (yyval.p) = op1(CLOSE, (yyvsp[(2) - (2)].p)); }
3259     break;
3261   case 149:
3262 #line 368 "awkgram.y"
3263     { (yyval.p) = op1(PREDECR, (yyvsp[(2) - (2)].p)); }
3264     break;
3266   case 150:
3267 #line 369 "awkgram.y"
3268     { (yyval.p) = op1(PREINCR, (yyvsp[(2) - (2)].p)); }
3269     break;
3271   case 151:
3272 #line 370 "awkgram.y"
3273     { (yyval.p) = op1(POSTDECR, (yyvsp[(1) - (2)].p)); }
3274     break;
3276   case 152:
3277 #line 371 "awkgram.y"
3278     { (yyval.p) = op1(POSTINCR, (yyvsp[(1) - (2)].p)); }
3279     break;
3281   case 153:
3282 #line 372 "awkgram.y"
3283     { (yyval.p) = op3(GETLINE, (yyvsp[(2) - (4)].p), itonp((yyvsp[(3) - (4)].i)), (yyvsp[(4) - (4)].p)); }
3284     break;
3286   case 154:
3287 #line 373 "awkgram.y"
3288     { (yyval.p) = op3(GETLINE, NIL, itonp((yyvsp[(2) - (3)].i)), (yyvsp[(3) - (3)].p)); }
3289     break;
3291   case 155:
3292 #line 374 "awkgram.y"
3293     { (yyval.p) = op3(GETLINE, (yyvsp[(2) - (2)].p), NIL, NIL); }
3294     break;
3296   case 156:
3297 #line 375 "awkgram.y"
3298     { (yyval.p) = op3(GETLINE, NIL, NIL, NIL); }
3299     break;
3301   case 157:
3302 #line 377 "awkgram.y"
3303     { (yyval.p) = op2(INDEX, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
3304     break;
3306   case 158:
3307 #line 379 "awkgram.y"
3308     { SYNTAX("index() doesn't permit regular expressions");
3309                   (yyval.p) = op2(INDEX, (yyvsp[(3) - (6)].p), (Node*)(yyvsp[(5) - (6)].s)); }
3310     break;
3312   case 159:
3313 #line 381 "awkgram.y"
3314     { (yyval.p) = (yyvsp[(2) - (3)].p); }
3315     break;
3317   case 160:
3318 #line 383 "awkgram.y"
3319     { (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[(3) - (6)].p), (Node*)makedfa((yyvsp[(5) - (6)].s), 1)); }
3320     break;
3322   case 161:
3323 #line 385 "awkgram.y"
3324     { if (constnode((yyvsp[(5) - (6)].p)))
3325                         (yyval.p) = op3(MATCHFCN, NIL, (yyvsp[(3) - (6)].p), (Node*)makedfa(strnode((yyvsp[(5) - (6)].p)), 1));
3326                   else
3327                         (yyval.p) = op3(MATCHFCN, (Node *)1, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p)); }
3328     break;
3330   case 162:
3331 #line 389 "awkgram.y"
3332     { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CCON); }
3333     break;
3335   case 163:
3336 #line 391 "awkgram.y"
3337     { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (yyvsp[(7) - (8)].p), (Node*)STRING); }
3338     break;
3340   case 164:
3341 #line 393 "awkgram.y"
3342     { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (8)].p), makearr((yyvsp[(5) - (8)].p)), (Node*)makedfa((yyvsp[(7) - (8)].s), 1), (Node *)REGEXPR); }
3343     break;
3345   case 165:
3346 #line 395 "awkgram.y"
3347     { (yyval.p) = op4(SPLIT, (yyvsp[(3) - (6)].p), makearr((yyvsp[(5) - (6)].p)), NIL, (Node*)STRING); }
3348     break;
3350   case 166:
3351 #line 396 "awkgram.y"
3352     { (yyval.p) = op1((yyvsp[(1) - (4)].i), (yyvsp[(3) - (4)].p)); }
3353     break;
3355   case 167:
3356 #line 397 "awkgram.y"
3357     { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CCON); }
3358     break;
3360   case 168:
3361 #line 399 "awkgram.y"
3362     { (yyval.p) = op4((yyvsp[(1) - (6)].i), NIL, (Node*)makedfa((yyvsp[(3) - (6)].s), 1), (yyvsp[(5) - (6)].p), rectonode()); }
3363     break;
3365   case 169:
3366 #line 401 "awkgram.y"
3367     { if (constnode((yyvsp[(3) - (6)].p)))
3368                         (yyval.p) = op4((yyvsp[(1) - (6)].i), NIL, (Node*)makedfa(strnode((yyvsp[(3) - (6)].p)), 1), (yyvsp[(5) - (6)].p), rectonode());
3369                   else
3370                         (yyval.p) = op4((yyvsp[(1) - (6)].i), (Node *)1, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p), rectonode()); }
3371     break;
3373   case 170:
3374 #line 406 "awkgram.y"
3375     { (yyval.p) = op4((yyvsp[(1) - (8)].i), NIL, (Node*)makedfa((yyvsp[(3) - (8)].s), 1), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
3376     break;
3378   case 171:
3379 #line 408 "awkgram.y"
3380     { if (constnode((yyvsp[(3) - (8)].p)))
3381                         (yyval.p) = op4((yyvsp[(1) - (8)].i), NIL, (Node*)makedfa(strnode((yyvsp[(3) - (8)].p)), 1), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p));
3382                   else
3383                         (yyval.p) = op4((yyvsp[(1) - (8)].i), (Node *)1, (yyvsp[(3) - (8)].p), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
3384     break;
3386   case 172:
3387 #line 413 "awkgram.y"
3388     { (yyval.p) = op3(SUBSTR, (yyvsp[(3) - (8)].p), (yyvsp[(5) - (8)].p), (yyvsp[(7) - (8)].p)); }
3389     break;
3391   case 173:
3392 #line 415 "awkgram.y"
3393     { (yyval.p) = op3(SUBSTR, (yyvsp[(3) - (6)].p), (yyvsp[(5) - (6)].p), NIL); }
3394     break;
3396   case 176:
3397 #line 421 "awkgram.y"
3398     { (yyval.p) = op2(ARRAY, makearr((yyvsp[(1) - (4)].p)), (yyvsp[(3) - (4)].p)); }
3399     break;
3401   case 177:
3402 #line 422 "awkgram.y"
3403     { (yyval.p) = op1(INDIRECT, celltonode((yyvsp[(1) - (1)].cp), CVAR)); }
3404     break;
3406   case 178:
3407 #line 423 "awkgram.y"
3408     { (yyval.p) = op1(INDIRECT, (yyvsp[(2) - (2)].p)); }
3409     break;
3411   case 179:
3412 #line 427 "awkgram.y"
3413     { arglist = (yyval.p) = 0; }
3414     break;
3416   case 180:
3417 #line 428 "awkgram.y"
3418     { arglist = (yyval.p) = celltonode((yyvsp[(1) - (1)].cp),CVAR); }
3419     break;
3421   case 181:
3422 #line 429 "awkgram.y"
3423     {
3424                         checkdup((yyvsp[(1) - (3)].p), (yyvsp[(3) - (3)].cp));
3425                         arglist = (yyval.p) = linkum((yyvsp[(1) - (3)].p),celltonode((yyvsp[(3) - (3)].cp),CVAR)); }
3426     break;
3428   case 182:
3429 #line 435 "awkgram.y"
3430     { (yyval.p) = celltonode((yyvsp[(1) - (1)].cp), CVAR); }
3431     break;
3433   case 183:
3434 #line 436 "awkgram.y"
3435     { (yyval.p) = op1(ARG, itonp((yyvsp[(1) - (1)].i))); }
3436     break;
3438   case 184:
3439 #line 437 "awkgram.y"
3440     { (yyval.p) = op1(VARNF, (Node *) (yyvsp[(1) - (1)].cp)); }
3441     break;
3443   case 185:
3444 #line 442 "awkgram.y"
3445     { (yyval.p) = notnull((yyvsp[(3) - (4)].p)); }
3446     break;
3449 /* Line 1267 of yacc.c.  */
3450 #line 3451 "y.tab.c"
3451       default: break;
3452     }
3453   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3455   YYPOPSTACK (yylen);
3456   yylen = 0;
3457   YY_STACK_PRINT (yyss, yyssp);
3459   *++yyvsp = yyval;
3462   /* Now `shift' the result of the reduction.  Determine what state
3463      that goes to, based on the state we popped back to and the rule
3464      number reduced by.  */
3466   yyn = yyr1[yyn];
3468   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3469   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3470     yystate = yytable[yystate];
3471   else
3472     yystate = yydefgoto[yyn - YYNTOKENS];
3474   goto yynewstate;
3477 /*------------------------------------.
3478 | yyerrlab -- here on detecting error |
3479 `------------------------------------*/
3480 yyerrlab:
3481   /* If not already recovering from an error, report this error.  */
3482   if (!yyerrstatus)
3483     {
3484       ++yynerrs;
3485 #if ! YYERROR_VERBOSE
3486       yyerror (YY_("syntax error"));
3487 #else
3488       {
3489         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
3490         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
3491           {
3492             YYSIZE_T yyalloc = 2 * yysize;
3493             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
3494               yyalloc = YYSTACK_ALLOC_MAXIMUM;
3495             if (yymsg != yymsgbuf)
3496               YYSTACK_FREE (yymsg);
3497             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
3498             if (yymsg)
3499               yymsg_alloc = yyalloc;
3500             else
3501               {
3502                 yymsg = yymsgbuf;
3503                 yymsg_alloc = sizeof yymsgbuf;
3504               }
3505           }
3507         if (0 < yysize && yysize <= yymsg_alloc)
3508           {
3509             (void) yysyntax_error (yymsg, yystate, yychar);
3510             yyerror (yymsg);
3511           }
3512         else
3513           {
3514             yyerror (YY_("syntax error"));
3515             if (yysize != 0)
3516               goto yyexhaustedlab;
3517           }
3518       }
3519 #endif
3520     }
3524   if (yyerrstatus == 3)
3525     {
3526       /* If just tried and failed to reuse look-ahead token after an
3527          error, discard it.  */
3529       if (yychar <= YYEOF)
3530         {
3531           /* Return failure if at end of input.  */
3532           if (yychar == YYEOF)
3533             YYABORT;
3534         }
3535       else
3536         {
3537           yydestruct ("Error: discarding",
3538                       yytoken, &yylval);
3539           yychar = YYEMPTY;
3540         }
3541     }
3543   /* Else will try to reuse look-ahead token after shifting the error
3544      token.  */
3545   goto yyerrlab1;
3548 /*---------------------------------------------------.
3549 | yyerrorlab -- error raised explicitly by YYERROR.  |
3550 `---------------------------------------------------*/
3551 yyerrorlab:
3553   /* Pacify compilers like GCC when the user code never invokes
3554      YYERROR and the label yyerrorlab therefore never appears in user
3555      code.  */
3556   if (/*CONSTCOND*/ 0)
3557      goto yyerrorlab;
3559   /* Do not reclaim the symbols of the rule which action triggered
3560      this YYERROR.  */
3561   YYPOPSTACK (yylen);
3562   yylen = 0;
3563   YY_STACK_PRINT (yyss, yyssp);
3564   yystate = *yyssp;
3565   goto yyerrlab1;
3568 /*-------------------------------------------------------------.
3569 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3570 `-------------------------------------------------------------*/
3571 yyerrlab1:
3572   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3574   for (;;)
3575     {
3576       yyn = yypact[yystate];
3577       if (yyn != YYPACT_NINF)
3578         {
3579           yyn += YYTERROR;
3580           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3581             {
3582               yyn = yytable[yyn];
3583               if (0 < yyn)
3584                 break;
3585             }
3586         }
3588       /* Pop the current state because it cannot handle the error token.  */
3589       if (yyssp == yyss)
3590         YYABORT;
3593       yydestruct ("Error: popping",
3594                   yystos[yystate], yyvsp);
3595       YYPOPSTACK (1);
3596       yystate = *yyssp;
3597       YY_STACK_PRINT (yyss, yyssp);
3598     }
3600   if (yyn == YYFINAL)
3601     YYACCEPT;
3603   *++yyvsp = yylval;
3606   /* Shift the error token.  */
3607   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3609   yystate = yyn;
3610   goto yynewstate;
3613 /*-------------------------------------.
3614 | yyacceptlab -- YYACCEPT comes here.  |
3615 `-------------------------------------*/
3616 yyacceptlab:
3617   yyresult = 0;
3618   goto yyreturn;
3620 /*-----------------------------------.
3621 | yyabortlab -- YYABORT comes here.  |
3622 `-----------------------------------*/
3623 yyabortlab:
3624   yyresult = 1;
3625   goto yyreturn;
3627 #ifndef yyoverflow
3628 /*-------------------------------------------------.
3629 | yyexhaustedlab -- memory exhaustion comes here.  |
3630 `-------------------------------------------------*/
3631 yyexhaustedlab:
3632   yyerror (YY_("memory exhausted"));
3633   yyresult = 2;
3634   /* Fall through.  */
3635 #endif
3637 yyreturn:
3638   if (yychar != YYEOF && yychar != YYEMPTY)
3639      yydestruct ("Cleanup: discarding lookahead",
3640                  yytoken, &yylval);
3641   /* Do not reclaim the symbols of the rule which action triggered
3642      this YYABORT or YYACCEPT.  */
3643   YYPOPSTACK (yylen);
3644   YY_STACK_PRINT (yyss, yyssp);
3645   while (yyssp != yyss)
3646     {
3647       yydestruct ("Cleanup: popping",
3648                   yystos[*yyssp], yyvsp);
3649       YYPOPSTACK (1);
3650     }
3651 #ifndef yyoverflow
3652   if (yyss != yyssa)
3653     YYSTACK_FREE (yyss);
3654 #endif
3655 #if YYERROR_VERBOSE
3656   if (yymsg != yymsgbuf)
3657     YYSTACK_FREE (yymsg);
3658 #endif
3659   /* Make sure YYID is used.  */
3660   return YYID (yyresult);
3664 #line 445 "awkgram.y"
3667 void setfname(Cell *p)
3669         if (isarr(p))
3670                 SYNTAX("%s is an array, not a function", p->nval);
3671         else if (isfcn(p))
3672                 SYNTAX("you can't define function %s more than once", p->nval);
3673         curfname = p->nval;
3676 int constnode(Node *p)
3678         return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
3681 char *strnode(Node *p)
3683         return ((Cell *)(p->narg[0]))->sval;
3686 Node *notnull(Node *n)
3688         switch (n->nobj) {
3689         case LE: case LT: case EQ: case NE: case GT: case GE:
3690         case BOR: case AND: case NOT:
3691                 return n;
3692         default:
3693                 return op2(NE, n, nullnode);
3694         }
3697 void checkdup(Node *vl, Cell *cp)       /* check if name already in list */
3699         char *s = cp->nval;
3700         for ( ; vl; vl = vl->nnext) {
3701                 if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
3702                         SYNTAX("duplicate argument %s", s);
3703                         break;
3704                 }
3705         }