small bugfix in constant checking
[swftools.git] / lib / action / swf5compiler.tab.c
1 /* A Bison parser, made by GNU Bison 2.3.  */
2
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software Foundation, Inc.
7
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.
12
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.
17
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.  */
22
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.
32
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
35
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37    simplifying the original so-called "semantic" parser.  */
38
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.  */
45
46 /* Identify Bison output.  */
47 #define YYBISON 1
48
49 /* Bison version.  */
50 #define YYBISON_VERSION "2.3"
51
52 /* Skeleton name.  */
53 #define YYSKELETON_NAME "yacc.c"
54
55 /* Pure parsers.  */
56 #define YYPURE 0
57
58 /* Using locations.  */
59 #define YYLSP_NEEDED 0
60
61 /* Substitute the variable and function names.  */
62 #define yyparse swf5parse
63 #define yylex   swf5lex
64 #define yyerror swf5error
65 #define yylval  swf5lval
66 #define yychar  swf5char
67 #define yydebug swf5debug
68 #define yynerrs swf5nerrs
69
70
71 /* Tokens.  */
72 #ifndef YYTOKENTYPE
73 # define YYTOKENTYPE
74    /* Put the tokens into the symbol table, so that GDB and other debuggers
75       know about them.  */
76    enum yytokentype {
77      BREAK = 258,
78      CONTINUE = 259,
79      FUNCTION = 260,
80      ELSE = 261,
81      SWITCH = 262,
82      CASE = 263,
83      DEFAULT = 264,
84      FOR = 265,
85      IN = 266,
86      IF = 267,
87      WHILE = 268,
88      DO = 269,
89      VAR = 270,
90      NEW = 271,
91      DELETE = 272,
92      RETURN = 273,
93      END = 274,
94      WITH = 275,
95      ASM = 276,
96      EVAL = 277,
97      RANDOM = 278,
98      GETTIMER = 279,
99      LENGTH = 280,
100      CONCAT = 281,
101      SUBSTR = 282,
102      TRACE = 283,
103      INT = 284,
104      ORD = 285,
105      CHR = 286,
106      GETURL = 287,
107      GETURL1 = 288,
108      NEXTFRAME = 289,
109      PREVFRAME = 290,
110      PLAY = 291,
111      STOP = 292,
112      TOGGLEQUALITY = 293,
113      STOPSOUNDS = 294,
114      DUP = 295,
115      SWAP = 296,
116      POP = 297,
117      PUSH = 298,
118      SETREGISTER = 299,
119      CALLFUNCTION = 300,
120      CALLMETHOD = 301,
121      AND = 302,
122      OR = 303,
123      XOR = 304,
124      MODULO = 305,
125      ADD = 306,
126      LESSTHAN = 307,
127      EQUALS = 308,
128      INC = 309,
129      DEC = 310,
130      TYPEOF = 311,
131      INSTANCEOF = 312,
132      ENUMERATE = 313,
133      INITOBJECT = 314,
134      INITARRAY = 315,
135      GETMEMBER = 316,
136      SETMEMBER = 317,
137      SHIFTLEFT = 318,
138      SHIFTRIGHT = 319,
139      SHIFTRIGHT2 = 320,
140      VAREQUALS = 321,
141      OLDADD = 322,
142      SUBTRACT = 323,
143      MULTIPLY = 324,
144      DIVIDE = 325,
145      OLDEQUALS = 326,
146      OLDLESSTHAN = 327,
147      LOGICALAND = 328,
148      LOGICALOR = 329,
149      NOT = 330,
150      STRINGEQ = 331,
151      STRINGLENGTH = 332,
152      SUBSTRING = 333,
153      GETVARIABLE = 334,
154      SETVARIABLE = 335,
155      SETTARGETEXPRESSION = 336,
156      DUPLICATEMOVIECLIP = 337,
157      REMOVEMOVIECLIP = 338,
158      STRINGLESSTHAN = 339,
159      MBLENGTH = 340,
160      MBSUBSTRING = 341,
161      MBORD = 342,
162      MBCHR = 343,
163      BRANCHALWAYS = 344,
164      BRANCHIFTRUE = 345,
165      GETURL2 = 346,
166      POST = 347,
167      GET = 348,
168      LOADVARIABLES = 349,
169      LOADMOVIE = 350,
170      LOADVARIABLESNUM = 351,
171      LOADMOVIENUM = 352,
172      CALLFRAME = 353,
173      STARTDRAG = 354,
174      STOPDRAG = 355,
175      GOTOFRAME = 356,
176      SETTARGET = 357,
177      NULLVAL = 358,
178      INTEGER = 359,
179      DOUBLE = 360,
180      BOOLEAN = 361,
181      REGISTER = 362,
182      STRING = 363,
183      IDENTIFIER = 364,
184      EQ = 365,
185      LE = 366,
186      GE = 367,
187      NE = 368,
188      LAN = 369,
189      LOR = 370,
190      INCR = 371,
191      DECR = 372,
192      IEQ = 373,
193      DEQ = 374,
194      MEQ = 375,
195      SEQ = 376,
196      REQ = 377,
197      AEQ = 378,
198      OEQ = 379,
199      SHL = 380,
200      SHR = 381,
201      SHR2 = 382,
202      SHLEQ = 383,
203      SHREQ = 384,
204      SHR2EQ = 385,
205      NOELSE = 386,
206      UMINUS = 388,
207      POSTFIX = 389
208    };
209 #endif
210 /* Tokens.  */
211 #define BREAK 258
212 #define CONTINUE 259
213 #define FUNCTION 260
214 #define ELSE 261
215 #define SWITCH 262
216 #define CASE 263
217 #define DEFAULT 264
218 #define FOR 265
219 #define IN 266
220 #define IF 267
221 #define WHILE 268
222 #define DO 269
223 #define VAR 270
224 #define NEW 271
225 #define DELETE 272
226 #define RETURN 273
227 #define END 274
228 #define WITH 275
229 #define ASM 276
230 #define EVAL 277
231 #define RANDOM 278
232 #define GETTIMER 279
233 #define LENGTH 280
234 #define CONCAT 281
235 #define SUBSTR 282
236 #define TRACE 283
237 #define INT 284
238 #define ORD 285
239 #define CHR 286
240 #define GETURL 287
241 #define GETURL1 288
242 #define NEXTFRAME 289
243 #define PREVFRAME 290
244 #define PLAY 291
245 #define STOP 292
246 #define TOGGLEQUALITY 293
247 #define STOPSOUNDS 294
248 #define DUP 295
249 #define SWAP 296
250 #define POP 297
251 #define PUSH 298
252 #define SETREGISTER 299
253 #define CALLFUNCTION 300
254 #define CALLMETHOD 301
255 #define AND 302
256 #define OR 303
257 #define XOR 304
258 #define MODULO 305
259 #define ADD 306
260 #define LESSTHAN 307
261 #define EQUALS 308
262 #define INC 309
263 #define DEC 310
264 #define TYPEOF 311
265 #define INSTANCEOF 312
266 #define ENUMERATE 313
267 #define INITOBJECT 314
268 #define INITARRAY 315
269 #define GETMEMBER 316
270 #define SETMEMBER 317
271 #define SHIFTLEFT 318
272 #define SHIFTRIGHT 319
273 #define SHIFTRIGHT2 320
274 #define VAREQUALS 321
275 #define OLDADD 322
276 #define SUBTRACT 323
277 #define MULTIPLY 324
278 #define DIVIDE 325
279 #define OLDEQUALS 326
280 #define OLDLESSTHAN 327
281 #define LOGICALAND 328
282 #define LOGICALOR 329
283 #define NOT 330
284 #define STRINGEQ 331
285 #define STRINGLENGTH 332
286 #define SUBSTRING 333
287 #define GETVARIABLE 334
288 #define SETVARIABLE 335
289 #define SETTARGETEXPRESSION 336
290 #define DUPLICATEMOVIECLIP 337
291 #define REMOVEMOVIECLIP 338
292 #define STRINGLESSTHAN 339
293 #define MBLENGTH 340
294 #define MBSUBSTRING 341
295 #define MBORD 342
296 #define MBCHR 343
297 #define BRANCHALWAYS 344
298 #define BRANCHIFTRUE 345
299 #define GETURL2 346
300 #define POST 347
301 #define GET 348
302 #define LOADVARIABLES 349
303 #define LOADMOVIE 350
304 #define LOADVARIABLESNUM 351
305 #define LOADMOVIENUM 352
306 #define CALLFRAME 353
307 #define STARTDRAG 354
308 #define STOPDRAG 355
309 #define GOTOFRAME 356
310 #define SETTARGET 357
311 #define NULLVAL 358
312 #define INTEGER 359
313 #define DOUBLE 360
314 #define BOOLEAN 361
315 #define REGISTER 362
316 #define STRING 363
317 #define IDENTIFIER 364
318 #define EQ 365
319 #define LE 366
320 #define GE 367
321 #define NE 368
322 #define LAN 369
323 #define LOR 370
324 #define INCR 371
325 #define DECR 372
326 #define IEQ 373
327 #define DEQ 374
328 #define MEQ 375
329 #define SEQ 376
330 #define REQ 377
331 #define AEQ 378
332 #define OEQ 379
333 #define SHL 380
334 #define SHR 381
335 #define SHR2 382
336 #define SHLEQ 383
337 #define SHREQ 384
338 #define SHR2EQ 385
339 #define NOELSE 386
340 #define UMINUS 388
341 #define POSTFIX 389
342
343
344
345
346 /* Copy the first part of user declarations.  */
347 #line 5 "swf5compiler.y"
348
349
350 #include <time.h>
351 #include <string.h>
352 #include <stdlib.h>
353 #include "compile.h"
354 #include "action.h"
355 #include "assembler.h"
356
357 #define YYPARSE_PARAM buffer
358
359 Buffer bf, bc;
360
361
362
363 /* Enabling traces.  */
364 #ifndef YYDEBUG
365 # define YYDEBUG 0
366 #endif
367
368 /* Enabling verbose error messages.  */
369 #ifdef YYERROR_VERBOSE
370 # undef YYERROR_VERBOSE
371 # define YYERROR_VERBOSE 1
372 #else
373 # define YYERROR_VERBOSE 0
374 #endif
375
376 /* Enabling the token table.  */
377 #ifndef YYTOKEN_TABLE
378 # define YYTOKEN_TABLE 0
379 #endif
380
381 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
382 typedef union YYSTYPE
383 #line 21 "swf5compiler.y"
384 {
385   Buffer action;
386   char *str;
387   SWFGetUrl2Method getURLMethod;
388   int op;
389   int intVal;
390   int len;
391   double doubleVal;
392
393   struct
394   {
395     Buffer buffer;
396     int count;
397   } exprlist;
398   struct switchcase   switchcase;
399   struct switchcases switchcases;
400   struct
401   {
402         Buffer obj, ident, memexpr;
403   } lval;
404 }
405 /* Line 187 of yacc.c.  */
406 #line 407 "swf5compiler.tab.c"
407         YYSTYPE;
408 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
409 # define YYSTYPE_IS_DECLARED 1
410 # define YYSTYPE_IS_TRIVIAL 1
411 #endif
412
413
414
415 /* Copy the second part of user declarations.  */
416
417
418 /* Line 216 of yacc.c.  */
419 #line 420 "swf5compiler.tab.c"
420
421 #ifdef short
422 # undef short
423 #endif
424
425 #ifdef YYTYPE_UINT8
426 typedef YYTYPE_UINT8 yytype_uint8;
427 #else
428 typedef unsigned char yytype_uint8;
429 #endif
430
431 #ifdef YYTYPE_INT8
432 typedef YYTYPE_INT8 yytype_int8;
433 #elif (defined __STDC__ || defined __C99__FUNC__ \
434      || defined __cplusplus || defined _MSC_VER)
435 typedef signed char yytype_int8;
436 #else
437 typedef short int yytype_int8;
438 #endif
439
440 #ifdef YYTYPE_UINT16
441 typedef YYTYPE_UINT16 yytype_uint16;
442 #else
443 typedef unsigned short int yytype_uint16;
444 #endif
445
446 #ifdef YYTYPE_INT16
447 typedef YYTYPE_INT16 yytype_int16;
448 #else
449 typedef short int yytype_int16;
450 #endif
451
452 #ifndef YYSIZE_T
453 # ifdef __SIZE_TYPE__
454 #  define YYSIZE_T __SIZE_TYPE__
455 # elif defined size_t
456 #  define YYSIZE_T size_t
457 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
458      || defined __cplusplus || defined _MSC_VER)
459 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
460 #  define YYSIZE_T size_t
461 # else
462 #  define YYSIZE_T unsigned int
463 # endif
464 #endif
465
466 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
467
468 #ifndef YY_
469 # if YYENABLE_NLS
470 #  if ENABLE_NLS
471 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
472 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
473 #  endif
474 # endif
475 # ifndef YY_
476 #  define YY_(msgid) msgid
477 # endif
478 #endif
479
480 /* Suppress unused-variable warnings by "using" E.  */
481 #if ! defined lint || defined __GNUC__
482 # define YYUSE(e) ((void) (e))
483 #else
484 # define YYUSE(e) /* empty */
485 #endif
486
487 /* Identity function, used to suppress warnings about constant conditions.  */
488 #ifndef lint
489 # define YYID(n) (n)
490 #else
491 #if (defined __STDC__ || defined __C99__FUNC__ \
492      || defined __cplusplus || defined _MSC_VER)
493 static int
494 YYID (int i)
495 #else
496 static int
497 YYID (i)
498     int i;
499 #endif
500 {
501   return i;
502 }
503 #endif
504
505 #if ! defined yyoverflow || YYERROR_VERBOSE
506
507 /* The parser invokes alloca or malloc; define the necessary symbols.  */
508
509 # ifdef YYSTACK_USE_ALLOCA
510 #  if YYSTACK_USE_ALLOCA
511 #   ifdef __GNUC__
512 #    define YYSTACK_ALLOC __builtin_alloca
513 #   elif defined __BUILTIN_VA_ARG_INCR
514 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
515 #   elif defined _AIX
516 #    define YYSTACK_ALLOC __alloca
517 #   elif defined _MSC_VER
518 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
519 #    define alloca _alloca
520 #   else
521 #    define YYSTACK_ALLOC alloca
522 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
523      || defined __cplusplus || defined _MSC_VER)
524 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
525 #     ifndef _STDLIB_H
526 #      define _STDLIB_H 1
527 #     endif
528 #    endif
529 #   endif
530 #  endif
531 # endif
532
533 # ifdef YYSTACK_ALLOC
534    /* Pacify GCC's `empty if-body' warning.  */
535 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
536 #  ifndef YYSTACK_ALLOC_MAXIMUM
537     /* The OS might guarantee only one guard page at the bottom of the stack,
538        and a page size can be as small as 4096 bytes.  So we cannot safely
539        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
540        to allow for a few compiler-allocated temporary stack slots.  */
541 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
542 #  endif
543 # else
544 #  define YYSTACK_ALLOC YYMALLOC
545 #  define YYSTACK_FREE YYFREE
546 #  ifndef YYSTACK_ALLOC_MAXIMUM
547 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
548 #  endif
549 #  if (defined __cplusplus && ! defined _STDLIB_H \
550        && ! ((defined YYMALLOC || defined malloc) \
551              && (defined YYFREE || defined free)))
552 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
553 #   ifndef _STDLIB_H
554 #    define _STDLIB_H 1
555 #   endif
556 #  endif
557 #  ifndef YYMALLOC
558 #   define YYMALLOC malloc
559 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
560      || defined __cplusplus || defined _MSC_VER)
561 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
562 #   endif
563 #  endif
564 #  ifndef YYFREE
565 #   define YYFREE free
566 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
567      || defined __cplusplus || defined _MSC_VER)
568 void free (void *); /* INFRINGES ON USER NAME SPACE */
569 #   endif
570 #  endif
571 # endif
572 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
573
574
575 #if (! defined yyoverflow \
576      && (! defined __cplusplus \
577          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
578
579 /* A type that is properly aligned for any stack member.  */
580 union yyalloc
581 {
582   yytype_int16 yyss;
583   YYSTYPE yyvs;
584   };
585
586 /* The size of the maximum gap between one aligned stack and the next.  */
587 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
588
589 /* The size of an array large to enough to hold all stacks, each with
590    N elements.  */
591 # define YYSTACK_BYTES(N) \
592      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
593       + YYSTACK_GAP_MAXIMUM)
594
595 /* Copy COUNT objects from FROM to TO.  The source and destination do
596    not overlap.  */
597 # ifndef YYCOPY
598 #  if defined __GNUC__ && 1 < __GNUC__
599 #   define YYCOPY(To, From, Count) \
600       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
601 #  else
602 #   define YYCOPY(To, From, Count)              \
603       do                                        \
604         {                                       \
605           YYSIZE_T yyi;                         \
606           for (yyi = 0; yyi < (Count); yyi++)   \
607             (To)[yyi] = (From)[yyi];            \
608         }                                       \
609       while (YYID (0))
610 #  endif
611 # endif
612
613 /* Relocate STACK from its old location to the new one.  The
614    local variables YYSIZE and YYSTACKSIZE give the old and new number of
615    elements in the stack, and YYPTR gives the new location of the
616    stack.  Advance YYPTR to a properly aligned location for the next
617    stack.  */
618 # define YYSTACK_RELOCATE(Stack)                                        \
619     do                                                                  \
620       {                                                                 \
621         YYSIZE_T yynewbytes;                                            \
622         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
623         Stack = &yyptr->Stack;                                          \
624         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
625         yyptr += yynewbytes / sizeof (*yyptr);                          \
626       }                                                                 \
627     while (YYID (0))
628
629 #endif
630
631 /* YYFINAL -- State number of the termination state.  */
632 #define YYFINAL  3
633 /* YYLAST -- Last index in YYTABLE.  */
634 #define YYLAST   5253
635
636 /* YYNTOKENS -- Number of terminals.  */
637 #define YYNTOKENS  159
638 /* YYNNTS -- Number of nonterminals.  */
639 #define YYNNTS  57
640 /* YYNRULES -- Number of rules.  */
641 #define YYNRULES  348
642 /* YYNRULES -- Number of states.  */
643 #define YYNSTATES  616
644
645 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
646 #define YYUNDEFTOK  2
647 #define YYMAXUTOK   389
648
649 #define YYTRANSLATE(YYX)                                                \
650   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
651
652 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
653 static const yytype_uint8 yytranslate[] =
654 {
655        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
656        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
657        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
658        2,     2,     2,   147,     2,     2,     2,   146,   139,     2,
659      157,   158,   144,   142,   132,   143,   151,   145,     2,     2,
660        2,     2,     2,     2,     2,     2,     2,     2,   136,   156,
661      137,   133,   138,   135,     2,     2,     2,     2,     2,     2,
662        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
663        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
664        2,   152,     2,   153,   141,     2,     2,     2,     2,     2,
665        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
666        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
667        2,     2,     2,   154,   140,   155,   148,     2,     2,     2,
668        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
669        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
670        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
671        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
672        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
673        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
674        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
675        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
676        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
677        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
678        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
679        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
680        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
681        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
682       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
683       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
684       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
685       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
686       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
687       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
688       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
689       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
690       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
691      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
692      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
693      125,   126,   127,   128,   129,   130,   131,   134,   149,   150
694 };
695
696 #if YYDEBUG
697 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
698    YYRHS.  */
699 static const yytype_uint16 yyprhs[] =
700 {
701        0,     0,     3,     4,     7,     8,    10,    13,    15,    17,
702       19,    22,    25,    27,    31,    33,    36,    38,    40,    42,
703       44,    46,    48,    50,    58,    61,    65,    67,    71,    79,
704       85,    86,    88,    90,    98,    99,   102,   109,   114,   118,
705      120,   122,   124,   126,   128,   130,   132,   134,   136,   138,
706      140,   142,   144,   146,   148,   150,   152,   154,   156,   158,
707      160,   162,   164,   166,   168,   170,   172,   174,   176,   178,
708      180,   182,   184,   186,   188,   190,   192,   194,   196,   198,
709      200,   202,   204,   206,   208,   210,   212,   214,   216,   218,
710      220,   222,   224,   226,   228,   230,   232,   234,   236,   238,
711      240,   242,   244,   246,   248,   250,   252,   254,   256,   258,
712      260,   262,   264,   266,   268,   270,   272,   274,   275,   277,
713      281,   283,   290,   292,   296,   301,   303,   305,   307,   309,
714      310,   311,   317,   324,   335,   344,   354,   355,   357,   360,
715      363,   364,   367,   370,   373,   375,   377,   382,   385,   390,
716      396,   401,   409,   417,   425,   433,   441,   446,   453,   468,
717      472,   481,   486,   493,   497,   501,   505,   509,   513,   517,
718      522,   527,   532,   537,   542,   547,   552,   556,   561,   566,
719      571,   576,   581,   588,   597,   602,   603,   605,   609,   615,
720      622,   630,   634,   636,   640,   642,   644,   646,   648,   650,
721      652,   654,   656,   658,   660,   662,   664,   666,   668,   670,
722      672,   674,   678,   683,   685,   688,   691,   694,   698,   702,
723      706,   710,   714,   718,   722,   726,   730,   734,   738,   742,
724      746,   750,   754,   758,   762,   766,   770,   776,   780,   784,
725      786,   789,   795,   799,   801,   805,   807,   809,   811,   813,
726      816,   819,   823,   826,   828,   831,   833,   835,   837,   839,
727      841,   845,   849,   851,   852,   858,   861,   863,   865,   867,
728      870,   873,   877,   881,   883,   886,   887,   892,   894,   896,
729      898,   900,   902,   904,   906,   910,   911,   915,   917,   920,
730      922,   924,   926,   928,   930,   932,   934,   936,   938,   940,
731      942,   944,   946,   948,   950,   952,   954,   956,   958,   960,
732      962,   964,   966,   968,   970,   972,   974,   976,   978,   980,
733      982,   984,   986,   988,   990,   992,   994,   996,   998,  1000,
734     1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1018,  1020,
735     1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1039
736 };
737
738 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
739 static const yytype_int16 yyrhs[] =
740 {
741      160,     0,    -1,    -1,   161,   162,    -1,    -1,   163,    -1,
742      162,   163,    -1,   166,    -1,   179,    -1,   166,    -1,   164,
743      166,    -1,   154,   155,    -1,   165,    -1,   154,   164,   155,
744       -1,   156,    -1,   207,   156,    -1,   170,    -1,   185,    -1,
745      187,    -1,   188,    -1,   173,    -1,   168,    -1,   167,    -1,
746       20,   157,   202,   158,   154,   164,   155,    -1,    18,   156,
747       -1,    18,   203,   156,    -1,   207,    -1,   169,   132,   207,
748       -1,    12,   157,   202,   158,   166,     6,   166,    -1,    12,
749      157,   202,   158,   166,    -1,    -1,   202,    -1,     7,    -1,
750      172,   157,   202,   158,   154,   174,   155,    -1,    -1,   174,
751      175,    -1,     8,   202,   136,   164,     3,   156,    -1,     8,
752      202,   136,   164,    -1,     9,   136,   164,    -1,   109,    -1,
753       16,    -1,    17,    -1,    23,    -1,    24,    -1,    25,    -1,
754       26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
755       31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
756       36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
757       41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
758       46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
759       51,    -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,
760       56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
761       61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
762       66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
763       71,    -1,    72,    -1,    73,    -1,    74,    -1,    75,    -1,
764       76,    -1,    77,    -1,    78,    -1,    79,    -1,    80,    -1,
765       81,    -1,    82,    -1,    83,    -1,    99,    -1,   100,    -1,
766       84,    -1,    85,    -1,    86,    -1,    87,    -1,    88,    -1,
767       89,    -1,    90,    -1,    91,    -1,    92,    -1,    93,    -1,
768       94,    -1,    95,    -1,    -1,   176,    -1,   177,   132,   176,
769       -1,     5,    -1,   178,   176,   157,   177,   158,   166,    -1,
770      176,    -1,   202,   151,   176,    -1,   202,   152,   202,   153,
771       -1,   192,    -1,   195,    -1,    13,    -1,    14,    -1,    -1,
772       -1,   181,   157,   202,   158,   166,    -1,   182,   166,    13,
773      157,   202,   158,    -1,    10,   157,   186,   156,   171,   156,
774      186,   158,   183,   166,    -1,    10,   157,   176,    11,   180,
775      158,   184,   166,    -1,    10,   157,    15,   176,    11,   180,
776      158,   184,   166,    -1,    -1,   169,    -1,     4,   156,    -1,
777        3,   156,    -1,    -1,   132,    93,    -1,   132,    92,    -1,
778      132,   108,    -1,   104,    -1,   202,    -1,   109,   157,   193,
779      158,    -1,    17,   109,    -1,    17,   200,   151,   109,    -1,
780       17,   200,   152,   202,   153,    -1,    28,   157,   203,   158,
781       -1,    32,   157,   202,   132,   202,   189,   158,    -1,    94,
782      157,   202,   132,   202,   189,   158,    -1,    96,   157,   202,
783      132,   190,   189,   158,    -1,    95,   157,   202,   132,   202,
784      189,   158,    -1,    97,   157,   202,   132,   190,   189,   158,
785       -1,    98,   157,   202,   158,    -1,    99,   157,   202,   132,
786      202,   158,    -1,    99,   157,   202,   132,   202,   132,   202,
787      132,   202,   132,   202,   132,   202,   158,    -1,   100,   157,
788      158,    -1,    82,   157,   202,   132,   202,   132,   202,   158,
789       -1,    83,   157,   202,   158,    -1,    33,   157,   108,   132,
790      108,   158,    -1,    34,   157,   158,    -1,    35,   157,   158,
791       -1,    36,   157,   158,    -1,    37,   157,   158,    -1,    39,
792      157,   158,    -1,    38,   157,   158,    -1,   101,   157,   104,
793      158,    -1,   101,   157,   108,   158,    -1,   101,   157,   202,
794      158,    -1,   102,   157,   108,   158,    -1,   102,   157,   202,
795      158,    -1,   109,   157,   193,   158,    -1,    22,   157,   202,
796      158,    -1,    24,   157,   158,    -1,    23,   157,   202,   158,
797       -1,    25,   157,   203,   158,    -1,    29,   157,   202,   158,
798       -1,    30,   157,   202,   158,    -1,    31,   157,   202,   158,
799       -1,    26,   157,   202,   132,   202,   158,    -1,    78,   157,
800      202,   132,   202,   132,   202,   158,    -1,    56,   157,   203,
801      158,    -1,    -1,   203,    -1,   193,   132,   203,    -1,   178,
802      157,   177,   158,   166,    -1,   200,   151,   176,   157,   193,
803      158,    -1,   200,   152,   202,   153,   157,   193,   158,    -1,
804      176,   136,   203,    -1,   196,    -1,   197,   132,   196,    -1,
805      118,    -1,   121,    -1,   120,    -1,   119,    -1,   122,    -1,
806      123,    -1,   124,    -1,   134,    -1,   128,    -1,   129,    -1,
807      130,    -1,   116,    -1,   117,    -1,   201,    -1,   192,    -1,
808      195,    -1,   176,    -1,   200,   151,   176,    -1,   200,   152,
809      202,   153,    -1,   204,    -1,   143,   202,    -1,   148,   202,
810       -1,   147,   202,    -1,   202,   115,   202,    -1,   202,   114,
811      202,    -1,   202,   144,   202,    -1,   202,   145,   202,    -1,
812      202,   146,   202,    -1,   202,   142,   202,    -1,   202,   143,
813      202,    -1,   202,   139,   202,    -1,   202,   140,   202,    -1,
814      202,   141,   202,    -1,   202,   137,   202,    -1,   202,   138,
815      202,    -1,   202,   111,   202,    -1,   202,   112,   202,    -1,
816      202,   110,   202,    -1,   202,   113,   202,    -1,   202,   125,
817      202,    -1,   202,   126,   202,    -1,   202,   127,   202,    -1,
818      202,   135,   202,   136,   202,    -1,   201,   133,   203,    -1,
819      202,    57,   200,    -1,   202,    -1,    16,   176,    -1,    16,
820      176,   157,   193,   158,    -1,   152,   193,   153,    -1,   165,
821       -1,   154,   197,   155,    -1,   192,    -1,   194,    -1,   195,
822       -1,   200,    -1,   199,   201,    -1,   201,   199,    -1,   157,
823      202,   158,    -1,   143,   104,    -1,   104,    -1,   143,   105,
824       -1,   105,    -1,   106,    -1,   103,    -1,   108,    -1,   206,
825       -1,   205,   132,   206,    -1,   176,   133,   203,    -1,   176,
826       -1,    -1,    21,   154,   208,   209,   155,    -1,    15,   205,
827       -1,   191,    -1,   192,    -1,   195,    -1,   199,   201,    -1,
828      201,   199,    -1,   201,   133,   203,    -1,   201,   198,   202,
829       -1,   214,    -1,   209,   214,    -1,    -1,    20,   211,   209,
830       19,    -1,   108,    -1,   104,    -1,   105,    -1,   106,    -1,
831      103,    -1,   107,    -1,   212,    -1,   213,   132,   212,    -1,
832       -1,    43,   215,   213,    -1,   210,    -1,    44,   107,    -1,
833       45,    -1,    18,    -1,    46,    -1,    47,    -1,    48,    -1,
834       49,    -1,    50,    -1,    51,    -1,    52,    -1,    53,    -1,
835       54,    -1,    55,    -1,    56,    -1,    57,    -1,    58,    -1,
836       17,    -1,    16,    -1,    60,    -1,    59,    -1,    61,    -1,
837       62,    -1,    63,    -1,    64,    -1,    65,    -1,    15,    -1,
838       66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
839       71,    -1,    72,    -1,    73,    -1,    74,    -1,    75,    -1,
840       76,    -1,    77,    -1,    78,    -1,    29,    -1,    40,    -1,
841       41,    -1,    42,    -1,    79,    -1,    80,    -1,    81,    -1,
842       26,    -1,    82,    -1,    83,    -1,    28,    -1,    84,    -1,
843       23,    -1,    85,    -1,    30,    -1,    31,    -1,    24,    -1,
844       86,    -1,    87,    -1,    88,    -1,    89,   108,    -1,    90,
845      108,    -1
846 };
847
848 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
849 static const yytype_uint16 yyrline[] =
850 {
851        0,   152,   152,   152,   160,   164,   165,   169,   171,   176,
852      179,   185,   189,   190,   191,   192,   193,   194,   195,   196,
853      197,   198,   199,   203,   214,   224,   236,   237,   241,   252,
854      262,   263,   267,   272,   286,   289,   297,   302,   307,   317,
855      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
856      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
857      338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
858      348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
859      358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
860      368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
861      378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
862      388,   389,   390,   391,   392,   393,   394,   399,   402,   407,
863      414,   419,   433,   438,   444,   449,   451,   455,   460,   466,
864      471,   475,   488,   501,   536,   569,   603,   604,   610,   621,
865      634,   636,   638,   640,   647,   654,   662,   670,   676,   683,
866      690,   694,   701,   708,   715,   722,   729,   735,   742,   753,
867      758,   766,   770,   780,   784,   788,   792,   796,   800,   804,
868      810,   817,   823,   830,   839,   846,   850,   854,   858,   862,
869      866,   870,   874,   879,   885,   894,   897,   902,   911,   924,
870      932,   941,   948,   952,   958,   959,   960,   961,   962,   963,
871      964,   965,   966,   967,   968,   972,   973,   991,  1009,  1010,
872     1015,  1022,  1028,  1037,  1039,  1044,  1049,  1053,  1062,  1072,
873     1077,  1082,  1087,  1092,  1097,  1102,  1107,  1112,  1117,  1122,
874     1128,  1133,  1137,  1142,  1146,  1150,  1154,  1164,  1191,  1199,
875     1201,  1207,  1213,  1218,  1223,  1231,  1233,  1235,  1237,  1239,
876     1284,  1329,  1332,  1336,  1340,  1344,  1348,  1352,  1356,  1363,
877     1365,  1371,  1377,  1385,  1384,  1389,  1392,  1394,  1398,  1402,
878     1441,  1480,  1501,  1546,  1547,  1552,  1551,  1559,  1562,  1565,
879     1568,  1571,  1573,  1580,  1581,  1585,  1585,  1591,  1593,  1600,
880     1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
881     1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,
882     1642,  1644,  1646,  1648,  1650,  1654,  1655,  1656,  1657,  1658,
883     1659,  1660,  1661,  1662,  1663,  1664,  1665,  1666,  1667,  1668,
884     1669,  1670,  1671,  1672,  1673,  1674,  1675,  1676,  1677,  1678,
885     1679,  1680,  1681,  1682,  1683,  1684,  1685,  1688,  1692
886 };
887 #endif
888
889 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
890 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
891    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
892 static const char *const yytname[] =
893 {
894   "$end", "error", "$undefined", "BREAK", "CONTINUE", "FUNCTION", "ELSE",
895   "SWITCH", "CASE", "DEFAULT", "FOR", "IN", "IF", "WHILE", "DO", "VAR",
896   "NEW", "DELETE", "RETURN", "END", "WITH", "ASM", "EVAL", "RANDOM",
897   "GETTIMER", "LENGTH", "CONCAT", "SUBSTR", "TRACE", "INT", "ORD", "CHR",
898   "GETURL", "GETURL1", "NEXTFRAME", "PREVFRAME", "PLAY", "STOP",
899   "TOGGLEQUALITY", "STOPSOUNDS", "DUP", "SWAP", "POP", "PUSH",
900   "SETREGISTER", "CALLFUNCTION", "CALLMETHOD", "AND", "OR", "XOR",
901   "MODULO", "ADD", "LESSTHAN", "EQUALS", "INC", "DEC", "TYPEOF",
902   "INSTANCEOF", "ENUMERATE", "INITOBJECT", "INITARRAY", "GETMEMBER",
903   "SETMEMBER", "SHIFTLEFT", "SHIFTRIGHT", "SHIFTRIGHT2", "VAREQUALS",
904   "OLDADD", "SUBTRACT", "MULTIPLY", "DIVIDE", "OLDEQUALS", "OLDLESSTHAN",
905   "LOGICALAND", "LOGICALOR", "NOT", "STRINGEQ", "STRINGLENGTH",
906   "SUBSTRING", "GETVARIABLE", "SETVARIABLE", "SETTARGETEXPRESSION",
907   "DUPLICATEMOVIECLIP", "REMOVEMOVIECLIP", "STRINGLESSTHAN", "MBLENGTH",
908   "MBSUBSTRING", "MBORD", "MBCHR", "BRANCHALWAYS", "BRANCHIFTRUE",
909   "GETURL2", "POST", "GET", "LOADVARIABLES", "LOADMOVIE",
910   "LOADVARIABLESNUM", "LOADMOVIENUM", "CALLFRAME", "STARTDRAG", "STOPDRAG",
911   "GOTOFRAME", "SETTARGET", "NULLVAL", "INTEGER", "DOUBLE", "BOOLEAN",
912   "REGISTER", "STRING", "IDENTIFIER", "\"==\"", "\"<=\"", "\">=\"",
913   "\"!=\"", "\"&&\"", "\"||\"", "\"++\"", "\"--\"", "\"+=\"", "\"/=\"",
914   "\"*=\"", "\"-=\"", "\"%=\"", "\"&=\"", "\"|=\"", "\"<<\"", "\">>\"",
915   "\">>>\"", "\"<<=\"", "\">>=\"", "\">>>=\"", "NOELSE", "','", "'='",
916   "\"^=\"", "'?'", "':'", "'<'", "'>'", "'&'", "'|'", "'^'", "'+'", "'-'",
917   "'*'", "'/'", "'%'", "'!'", "'~'", "UMINUS", "POSTFIX", "'.'", "'['",
918   "']'", "'{'", "'}'", "';'", "'('", "')'", "$accept", "program", "@1",
919   "code", "anycode", "stmts", "emptybraces", "stmt", "with_stmt",
920   "return_stmt", "assign_stmts", "if_stmt", "expr_opt", "switch_init",
921   "switch_stmt", "switch_cases", "switch_case", "identifier",
922   "formals_list", "function_init", "function_decl", "obj_ref",
923   "while_init", "do_init", "for_init", "for_in_init", "iter_stmt",
924   "assign_stmts_opt", "cont_stmt", "break_stmt", "urlmethod", "level",
925   "void_function_call", "function_call", "expr_list", "anon_function_decl",
926   "method_call", "objexpr", "objexpr_list", "assignop", "incdecop",
927   "lvalue_expr", "lvalue", "expr", "expr_or_obj", "primary", "init_vars",
928   "init_var", "assign_stmt", "@2", "opcode_list", "with", "@3",
929   "push_item", "push_list", "opcode", "@4", 0
930 };
931 #endif
932
933 # ifdef YYPRINT
934 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
935    token YYLEX-NUM.  */
936 static const yytype_uint16 yytoknum[] =
937 {
938        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
939      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
940      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
941      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
942      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
943      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
944      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
945      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
946      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
947      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
948      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
949      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
950      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
951      385,   386,    44,    61,   387,    63,    58,    60,    62,    38,
952      124,    94,    43,    45,    42,    47,    37,    33,   126,   388,
953      389,    46,    91,    93,   123,   125,    59,    40,    41
954 };
955 # endif
956
957 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
958 static const yytype_uint8 yyr1[] =
959 {
960        0,   159,   161,   160,   160,   162,   162,   163,   163,   164,
961      164,   165,   166,   166,   166,   166,   166,   166,   166,   166,
962      166,   166,   166,   167,   168,   168,   169,   169,   170,   170,
963      171,   171,   172,   173,   174,   174,   175,   175,   175,   176,
964      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
965      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
966      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
967      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
968      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
969      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
970      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
971      176,   176,   176,   176,   176,   176,   176,   177,   177,   177,
972      178,   179,   180,   180,   180,   180,   180,   181,   182,   183,
973      184,   185,   185,   185,   185,   185,   186,   186,   187,   188,
974      189,   189,   189,   189,   190,   190,   191,   191,   191,   191,
975      191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
976      191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
977      191,   191,   191,   191,   192,   192,   192,   192,   192,   192,
978      192,   192,   192,   192,   192,   193,   193,   193,   194,   195,
979      195,   196,   197,   197,   198,   198,   198,   198,   198,   198,
980      198,   198,   198,   198,   198,   199,   199,   200,   200,   200,
981      201,   201,   201,   202,   202,   202,   202,   202,   202,   202,
982      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
983      202,   202,   202,   202,   202,   202,   202,   202,   202,   203,
984      203,   203,   203,   203,   203,   204,   204,   204,   204,   204,
985      204,   204,   204,   204,   204,   204,   204,   204,   204,   205,
986      205,   206,   206,   208,   207,   207,   207,   207,   207,   207,
987      207,   207,   207,   209,   209,   211,   210,   212,   212,   212,
988      212,   212,   212,   213,   213,   215,   214,   214,   214,   214,
989      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
990      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
991      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
992      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
993      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
994      214,   214,   214,   214,   214,   214,   214,   214,   214
995 };
996
997 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
998 static const yytype_uint8 yyr2[] =
999 {
1000        0,     2,     0,     2,     0,     1,     2,     1,     1,     1,
1001        2,     2,     1,     3,     1,     2,     1,     1,     1,     1,
1002        1,     1,     1,     7,     2,     3,     1,     3,     7,     5,
1003        0,     1,     1,     7,     0,     2,     6,     4,     3,     1,
1004        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1005        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1006        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1007        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1008        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1009        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1010        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1011        1,     1,     1,     1,     1,     1,     1,     0,     1,     3,
1012        1,     6,     1,     3,     4,     1,     1,     1,     1,     0,
1013        0,     5,     6,    10,     8,     9,     0,     1,     2,     2,
1014        0,     2,     2,     2,     1,     1,     4,     2,     4,     5,
1015        4,     7,     7,     7,     7,     7,     4,     6,    14,     3,
1016        8,     4,     6,     3,     3,     3,     3,     3,     3,     4,
1017        4,     4,     4,     4,     4,     4,     3,     4,     4,     4,
1018        4,     4,     6,     8,     4,     0,     1,     3,     5,     6,
1019        7,     3,     1,     3,     1,     1,     1,     1,     1,     1,
1020        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1021        1,     3,     4,     1,     2,     2,     2,     3,     3,     3,
1022        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
1023        3,     3,     3,     3,     3,     3,     5,     3,     3,     1,
1024        2,     5,     3,     1,     3,     1,     1,     1,     1,     2,
1025        2,     3,     2,     1,     2,     1,     1,     1,     1,     1,
1026        3,     3,     1,     0,     5,     2,     1,     1,     1,     2,
1027        2,     3,     3,     1,     2,     0,     4,     1,     1,     1,
1028        1,     1,     1,     1,     3,     0,     3,     1,     2,     1,
1029        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1030        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1031        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1032        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1033        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1034        1,     1,     1,     1,     1,     1,     1,     2,     2
1035 };
1036
1037 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1038    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1039    means the default is an error.  */
1040 static const yytype_uint16 yydefact[] =
1041 {
1042        2,     0,     0,     1,     0,     0,   120,    32,     0,     0,
1043      127,   128,     0,    40,    41,     0,     0,     0,     0,    42,
1044       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1045       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1046       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1047       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1048       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1049       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1050      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1051      115,   116,     0,     0,     0,   103,   104,     0,     0,    39,
1052      205,   206,     0,    14,     3,     5,    12,     7,    22,    21,
1053       16,     0,    20,   210,     0,     8,     0,     0,    17,    18,
1054       19,   266,   267,   268,     0,     0,   207,     0,   139,   138,
1055      136,     0,    41,    42,    43,    44,    45,    47,    48,    49,
1056       50,    51,    52,    53,    54,    55,    56,    57,    58,    75,
1057       97,   101,   102,   115,   116,   103,   104,    39,   262,   265,
1058      259,   147,   208,   209,     0,   207,    40,   257,   253,   255,
1059      256,   258,    39,     0,     0,     0,   185,     0,    24,     0,
1060      243,     0,   208,   246,   209,     0,   248,   207,   239,     0,
1061      213,     0,   263,     0,     0,     0,     0,     0,     0,     0,
1062        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1064        0,     0,     0,   185,    11,     0,     9,     6,     0,     0,
1065        0,     0,   269,     0,     0,   194,   197,   196,   195,   198,
1066      199,   200,   202,   203,   204,     0,   201,     0,   270,    15,
1067        0,   137,   210,     0,    26,     0,     0,     0,   185,     0,
1068        0,   240,   252,   254,   214,   216,   215,     0,   186,     0,
1069      192,     0,     0,   117,   249,     0,   250,     0,     0,     0,
1070        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1071        0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
1072        0,     0,     0,   176,     0,     0,     0,     0,     0,     0,
1073        0,     0,   163,   164,   165,   166,   168,   167,     0,     0,
1074        0,     0,     0,     0,     0,     0,     0,     0,   159,   253,
1075      258,     0,   258,     0,     0,    13,    10,     0,   117,     0,
1076        0,   211,     0,   271,   272,   262,     0,     0,    30,     0,
1077      261,   260,     0,    39,     0,   185,     0,   242,     0,     0,
1078      244,   251,   118,     0,   237,   238,   231,   229,   230,   232,
1079      218,   217,   233,   234,   235,     0,   227,   228,   224,   225,
1080      226,   222,   223,   219,   220,   221,     0,   313,   305,   304,
1081      290,   275,   339,   343,   334,   337,   327,   341,   342,   328,
1082      329,   330,   285,     0,   289,   291,   292,   293,   294,   295,
1083      296,   297,   298,   299,   300,   301,   302,   303,   307,   306,
1084      308,   309,   310,   311,   312,   314,   315,   316,   317,   318,
1085      319,   320,   321,   322,   323,   324,   325,   326,   331,   332,
1086      333,   335,   336,   338,   340,   344,   345,   346,     0,     0,
1087        0,   287,   273,   175,   177,   178,     0,   150,   179,   180,
1088      181,     0,     0,   184,     0,     0,   161,     0,     0,     0,
1089        0,   156,     0,   169,   170,   171,   172,   173,   146,     0,
1090        0,     0,     0,   185,   212,     0,    27,   210,     0,   208,
1091      209,     0,     0,    31,    29,   174,   149,     0,   187,   191,
1092      193,     0,     0,     0,     0,     0,     0,   288,   347,   348,
1093      264,   274,     0,   140,     0,     0,     0,   140,   140,   253,
1094      140,   145,   140,     0,    34,     0,   131,     0,     0,   185,
1095        0,   130,     0,     0,   136,     0,   241,   119,   188,   236,
1096        0,     0,   281,   278,   279,   280,   282,   277,   283,   286,
1097      182,     0,     0,   162,     0,     0,     0,     0,     0,     0,
1098        0,   157,     0,   121,   132,   189,     0,   130,     0,   123,
1099        0,     0,    28,    23,   276,     0,   142,   141,   143,   151,
1100        0,     0,   152,   154,   153,   155,     0,     0,     0,    33,
1101       35,   190,     0,   134,   124,   129,   284,   183,   160,     0,
1102        0,     0,   135,     0,     0,     0,    38,   133,     0,    37,
1103        0,     0,     0,   139,     0,   158
1104 };
1105
1106 /* YYDEFGOTO[NTERM-NUM].  */
1107 static const yytype_int16 yydefgoto[] =
1108 {
1109       -1,     1,     2,   104,   105,   225,   106,   226,   108,   109,
1110      251,   110,   492,   111,   112,   562,   590,   113,   363,   181,
1111      115,   488,   116,   117,   603,   568,   118,   253,   119,   120,
1112      552,   520,   121,   182,   267,   183,   184,   270,   271,   247,
1113      185,   186,   187,   188,   268,   190,   159,   160,   127,   300,
1114      450,   451,   505,   548,   549,   452,   506
1115 };
1116
1117 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1118    STATE-NUM.  */
1119 #define YYPACT_NINF -496
1120 static const yytype_int16 yypact[] =
1121 {
1122       17,    30,   908,  -496,  -136,  -123,  -496,  -496,  -126,  -105,
1123     -496,  -496,  4178,  -496,  4003,  1907,  -101,  -120,   -88,   -80,
1124      -75,   -72,   -65,  -496,   -62,   -50,   -43,   -40,   -38,   -31,
1125      -30,   -28,   -27,   -25,   -24,   -21,  -496,  -496,  -496,  -496,
1126     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1127     -496,  -496,   -20,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1128     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1129     -496,  -496,  -496,  -496,   -18,  -496,  -496,  -496,   -17,   -16,
1130     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1131      -15,   -11,    -8,    -5,     5,     6,     7,     8,     9,    22,
1132     -496,  -496,  1165,  -496,   908,  -496,  -496,  -496,  -496,  -496,
1133     -496,    23,  -496,  -496,  4178,  -496,    24,  1627,  -496,  -496,
1134     -496,  -496,  -125,   -97,  4091,   -78,   -58,   -57,  -496,  -496,
1135     3137,  2190,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1136     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1137     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,    49,   -96,
1138     -496,   -71,  -496,  -496,   -64,  -496,  4178,  -496,  -496,  -496,
1139     -496,  -496,    27,  2326,  2190,  2190,  2051,  3002,  -496,  2190,
1140     -496,    37,  -496,  -496,  -496,  4091,   -78,   -49,  4896,   -47,
1141     -496,  2190,  -496,  2190,  2190,    -3,  2051,  2190,  2051,  2190,
1142     2190,  2190,  2190,    45,    40,    42,    47,    48,    51,    52,
1143     2051,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,
1144       53,  2462,  2598,  2051,  -496,  1319,  -496,  -496,  2190,    39,
1145     2190,   143,   -54,  4178,  2190,  -496,  -496,  -496,  -496,  -496,
1146     -496,  -496,  -496,  -496,  -496,  2051,  -496,  2190,  -496,  -496,
1147     4178,    69,   174,    46,  -496,   331,  2051,  4178,  2051,  4265,
1148     2190,    50,  -496,  -496,   146,   146,   146,  -103,  -496,    76,
1149     -496,  -113,   576,  4178,   -54,  2051,  -496,  4091,  2190,  2190,
1150     2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,
1151     2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  -496,   750,
1152     5163,   962,   999,  -496,    55,   688,    56,  2850,  3280,  3317,
1153     4304,    86,  -496,  -496,  -496,  -496,  -496,  -496,    58,  4341,
1154     4378,  3354,  4415,  4452,  4489,  4526,  3391,  4563,  -496,    61,
1155       62,  3428,    64,  3465,  -119,  -496,  -496,  3502,  4178,  3539,
1156       68,    70,  3761,  -496,  4896,    -9,  3234,  2190,  2190,  1627,
1157     -496,  -496,  -118,  -121,  3798,  2051,  2051,  -496,  2051,  4178,
1158     -496,  -496,  -496,  -117,  -496,   -78,  4955,   192,   192,  4955,
1159     4933,  4933,    26,    26,    26,  4600,   192,   192,    32,    32,
1160       32,   -33,   -33,   146,   146,   146,    75,  -496,  -496,  -496,
1161     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1162     -496,  -496,  -496,   123,  -496,  -496,  -496,  -496,  -496,  -496,
1163     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1164     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1165     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1166     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,   124,   125,
1167     2869,  -496,  -496,  -496,  -496,  -496,  2190,  -496,  -496,  -496,
1168     -496,  2190,   127,  -496,  2190,  2190,  -496,  2190,  2190,  2734,
1169     2734,  -496,  2190,  -496,  -496,  -496,  -496,  -496,   -48,    77,
1170     -114,  1627,  2190,  2051,    80,  2190,  -496,    82,    83,    88,
1171       89,  3872,    94,  4896,   236,  -496,   -61,  -111,  -496,  -496,
1172     -496,  4178,  1627,  2190,  1627,  5163,    84,  -496,  -496,  -496,
1173     -496,  -496,  3576,  4637,    96,  4674,  4711,  4637,  4637,  -110,
1174      112,  4896,   112,   289,  -496,  1627,  -496,  3613,  -109,  2051,
1175       97,  -496,  4178,  2190,  3234,  1627,  -496,  -496,  -496,  4896,
1176     1473,  5087,  -496,  -496,  -496,  -496,  -496,  -496,  -496,   120,
1177     -496,   -14,    98,  -496,  2190,  2190,    99,   101,   102,   103,
1178     2190,  -496,    -4,  -496,  -496,  -496,  -107,  -496,  1627,  -496,
1179     3835,   104,  -496,  -496,  -496,    84,  -496,  -496,  -496,  -496,
1180     3650,  3687,  -496,  -496,  -496,  -496,  4748,  2190,   128,  -496,
1181     -496,  -496,  1627,  -496,  -496,  -496,  -496,  -496,  -496,  2190,
1182     4785,  1627,  -496,  1627,  4822,  1627,  1627,  -496,  2190,  1772,
1183     4859,   109,  2190,    -1,  3724,  -496
1184 };
1185
1186 /* YYPGOTO[NTERM-NUM].  */
1187 static const yytype_int16 yypgoto[] =
1188 {
1189     -496,  -496,  -496,  -496,   162,  -495,    28,    44,  -496,  -496,
1190     -496,  -496,  -496,  -496,  -496,  -496,  -496,    20,   -66,     4,
1191     -496,  -211,  -496,  -496,  -496,  -289,  -496,  -254,  -496,  -496,
1192     -397,  -189,  -496,    -2,  -220,  -496,    14,   -77,  -496,  -496,
1193      141,    43,    91,   562,    38,  -496,  -496,    31,  -129,  -496,
1194     -218,  -496,  -496,  -290,  -496,  -440,  -496
1195 };
1196
1197 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1198    positive, shift that token.  If negative, reduce the rule which
1199    number is the opposite.  If zero, do what YYDEFACT says.
1200    If YYTABLE_NINF, syntax error.  */
1201 #define YYTABLE_NINF -213
1202 static const yytype_int16 yytable[] =
1203 {
1204      122,   254,   485,   334,   587,   588,   114,   -36,   -36,   540,
1205      511,  -148,   162,   356,   356,   501,   123,    -4,   501,   359,
1206      128,   356,  -144,   356,   277,   356,  -208,  -208,   163,   356,
1207        3,   130,   158,   129,   192,  -148,   257,  -148,   352,   478,
1208      495,   502,   360,   180,   525,   125,   107,   536,  -144,   565,
1209      357,   591,   131,   189,  -209,  -209,   191,   164,   100,   101,
1210      235,   236,   237,   238,   239,   240,   241,   100,   101,   193,
1211      242,   243,   244,   233,   234,   245,   246,   194,   576,   577,
1212      -39,   -39,   195,   277,   275,   196,   258,   259,   260,   277,
1213     -212,  -212,   197,   126,   578,   198,   529,  -207,  -207,   249,
1214      122,   511,   122,  -174,  -174,   165,   606,   199,   114,   298,
1215      609,   295,   296,   297,   200,   122,   123,   201,   123,   202,
1216      556,   557,   162,   558,   256,   559,   203,   204,   122,   205,
1217      206,   123,   207,   208,   229,   497,   209,   210,   163,   211,
1218      212,   213,   214,   124,   123,   125,   215,   125,   107,   216,
1219      252,   589,   217,   311,   -36,   303,   340,   284,   285,   286,
1220      125,   231,   218,   219,   220,   221,   222,   125,   293,   294,
1221      295,   296,   297,   125,   293,   294,   295,   296,   297,   223,
1222      228,   230,   256,   162,   258,   347,   261,   542,   543,   544,
1223      545,   546,   547,   126,   273,   126,   338,   269,   312,   163,
1224      313,   346,   348,   277,   180,   314,   315,   355,   126,   316,
1225      317,   328,   358,   455,   457,   232,   463,   486,   462,   473,
1226      474,   126,   476,   122,   180,   482,   180,   483,   125,   504,
1227      507,   524,   508,   509,   304,   514,   306,   529,   180,   123,
1228     -122,   531,   535,   124,   551,   124,  -125,  -126,   318,   277,
1229      534,   180,   575,   341,   553,   567,   579,   582,   124,   583,
1230      584,   585,   595,   528,   601,   613,   227,   248,   125,   336,
1231      345,   124,   480,   180,   530,   162,   274,   158,   592,   341,
1232      571,   522,   500,   343,   180,   596,   180,   541,   351,     0,
1233        0,   163,     0,   362,   350,     0,     0,     0,     0,     0,
1234        0,     0,     0,   180,     0,     0,     0,     0,     0,   566,
1235        0,     0,     0,   364,     0,     0,   126,   284,   285,   286,
1236      365,     0,     0,     0,     0,     0,     0,     0,   276,     0,
1237        0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
1238        0,     0,     0,     0,   122,   489,   277,   122,     0,     0,
1239        0,     0,     0,     0,     0,     0,     0,     0,   362,     0,
1240      123,   490,     0,   123,     0,     0,   124,   487,   165,     0,
1241        0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1242        0,     0,     0,   180,   180,     0,   180,     0,   277,   125,
1243        0,     0,   125,   494,   498,     0,   499,     0,     0,   278,
1244      279,   280,   281,   282,   283,   254,     0,     0,     0,     0,
1245        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1246        0,   560,     0,     0,   287,     0,   288,   289,   290,   291,
1247      292,   293,   294,   295,   296,   297,     0,   126,     0,     0,
1248      126,   278,   279,   280,   281,   282,   283,   561,     0,     0,
1249        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1250        0,     0,     0,     0,     0,     0,   287,     0,   288,   289,
1251      290,   291,   292,   293,   294,   295,   296,   297,     0,   122,
1252        0,     0,     0,   489,     0,     0,     0,   124,     0,   349,
1253      124,     0,     0,     0,     0,   123,     0,     0,     0,   490,
1254      122,     0,   122,     0,     0,   487,     0,     0,     0,     0,
1255        0,   180,     0,     0,     0,     0,   123,     0,   123,     0,
1256        0,   537,     0,   122,   125,   526,     0,     0,     0,     0,
1257        0,     0,   122,   122,     0,     0,     0,     0,   122,   123,
1258        0,     0,     0,     0,     0,   125,   538,   125,   123,   123,
1259        0,     0,   569,     0,   123,     0,     0,   180,     0,     0,
1260        0,     0,     0,     0,     0,     0,   122,     0,   125,   563,
1261        0,     0,   126,     0,     0,     0,     0,   125,   125,   572,
1262        0,     0,   123,   125,   336,     0,     0,     0,     0,     0,
1263      122,     0,     0,   126,     0,   126,     0,     0,     0,   122,
1264        0,   122,     0,   122,   122,     0,   123,   122,     0,     0,
1265        0,   125,   593,     0,     0,   123,   126,   123,     0,   123,
1266      123,     0,   124,   123,     0,   126,   126,     0,     0,     0,
1267        0,   126,     0,   277,     0,   125,   602,     0,     0,     0,
1268        0,     0,     0,   124,   125,   124,   125,   607,   125,   125,
1269      336,     0,   125,   336,     0,     0,     0,     0,     0,   126,
1270        0,     0,     0,     0,     0,     0,   124,     0,     0,     0,
1271        0,     0,     0,     0,     0,   124,   124,     0,     0,     0,
1272        0,   124,     0,   126,     0,     0,   278,   279,   280,   281,
1273      282,   283,   126,   255,   126,     0,   126,   126,     0,     0,
1274      126,   284,   285,   286,     0,     0,     0,     0,     0,   124,
1275        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1276      295,   296,   297,     0,     0,     0,     0,     0,     0,     0,
1277        0,     0,     0,   124,   361,   264,   265,   266,     0,     0,
1278        0,   272,   124,     0,   124,   277,   124,   124,     0,     0,
1279      124,     0,     0,   299,     0,   301,   302,     0,     0,   305,
1280        0,   307,   308,   309,   310,     0,     0,     0,     0,     0,
1281        0,     0,     0,   319,   320,   321,   322,   323,   324,   325,
1282      326,   327,     0,   331,   333,     0,     0,     0,     0,     0,
1283      337,     0,   339,     0,     0,     0,   342,     0,   278,   279,
1284      280,   281,   282,   283,     0,     0,     0,   277,     0,   344,
1285        0,     0,     0,   284,   285,   286,     0,     0,     0,     0,
1286      456,     0,   354,   287,     0,   288,   289,   290,   291,   292,
1287      293,   294,   295,   296,   297,     0,     0,     0,     0,     0,
1288      366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
1289      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1290      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1291        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1292        0,     0,     0,     0,     0,   287,     0,   288,   289,   290,
1293      291,   292,   293,   294,   295,   296,   297,     0,     0,     0,
1294        0,     0,     0,     0,     0,     0,     0,     0,   386,   491,
1295      493,     4,     5,     6,     0,     7,     0,     0,     8,     0,
1296        9,    10,    11,    12,    13,    14,    15,     0,    16,    17,
1297       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1298       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1299       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1300       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1301       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1302       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1303       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1304       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1305       98,     0,     0,     0,     0,     0,     0,    99,   512,   277,
1306        0,     0,     0,   513,   100,   101,   515,   516,     0,   517,
1307      518,   521,   521,     0,   523,     0,     0,     0,     0,     0,
1308        0,     0,     0,     0,   527,     0,     0,   491,     0,     0,
1309        0,     0,     0,     0,     0,     0,   277,     0,     0,     0,
1310        0,     0,   102,     0,   103,   539,     0,     0,     0,     0,
1311        0,     0,   278,   279,   280,   281,   282,   283,     0,     0,
1312        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1313        0,     0,     0,     0,     0,   570,     0,   287,     0,   288,
1314      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1315      279,   280,   281,   282,   283,     0,   580,   581,     0,     0,
1316      453,     0,   586,     0,   284,   285,   286,     0,     0,     0,
1317        0,     0,     0,     0,   287,     0,   288,   289,   290,   291,
1318      292,   293,   294,   295,   296,   297,     0,     0,     0,   600,
1319        0,     0,     0,     0,     0,     0,     0,   454,     0,     0,
1320        0,   604,     0,     0,     0,     0,     0,     0,     4,     5,
1321      610,     0,     7,     0,   614,     8,     0,     9,    10,    11,
1322       12,    13,    14,    15,     0,    16,    17,    18,    19,    20,
1323       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1324       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1325       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1326       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1327       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1328       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1329       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1330       91,    92,    93,    94,    95,    96,    97,    98,     0,     0,
1331        0,     0,     0,     0,    99,     0,     0,     0,     0,     0,
1332        0,   100,   101,     0,     0,     0,     0,     0,     0,     0,
1333        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1334        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1335        0,     0,     0,     0,     0,     0,     0,     0,     0,   102,
1336      224,   103,     4,     5,     0,     0,     7,     0,     0,     8,
1337        0,     9,    10,    11,    12,    13,    14,    15,     0,    16,
1338       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1339       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1340       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1341       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1342       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1343       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1344       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1345       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1346       97,    98,     0,     0,     0,     0,     0,     0,    99,     0,
1347        0,     0,     0,     0,     0,   100,   101,     0,     0,     0,
1348        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1349        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1350        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1351        0,     0,     0,   102,   335,   103,     4,     5,     0,     0,
1352        7,     0,     0,     8,     0,     9,    10,    11,    12,    13,
1353       14,    15,     0,    16,    17,    18,    19,    20,    21,    22,
1354       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1355       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1356       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1357       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1358       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1359       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1360       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1361       93,    94,    95,    96,    97,    98,     0,     0,     0,     0,
1362        0,     0,    99,     0,     0,     0,     0,     0,     0,   100,
1363      101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1364        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1365        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1366        0,     0,     0,     0,     0,     0,     0,   102,   573,   103,
1367        4,     5,     0,     0,     7,     0,     0,     8,     0,     9,
1368       10,    11,    12,    13,    14,    15,     0,    16,    17,    18,
1369       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1370       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1371       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1372       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1373       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1374       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1375       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1376       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1377        0,     0,     0,     0,     0,     0,    99,     0,     0,     0,
1378        0,     0,     0,   100,   101,     0,     0,     0,     0,     0,
1379        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1381        0,     0,     0,     0,     0,   611,     5,     0,     0,     7,
1382        0,   102,     8,   103,     9,    10,    11,    12,    13,    14,
1383       15,     0,    16,    17,    18,    19,    20,    21,    22,    23,
1384       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1385       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1386       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1387       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1388       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1389       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1390       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1391       94,    95,    96,    97,    98,     0,     0,     0,     0,     0,
1392        0,    99,     0,     0,     0,     0,     0,     0,   100,   101,
1393        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1394        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1395        0,     0,     6,     0,     0,     0,     0,     0,     0,     0,
1396        0,     0,     0,   166,   132,     0,   102,     0,   103,    18,
1397       19,    20,    21,    22,    23,   137,    25,    26,    27,   141,
1398      142,   143,   144,   145,   146,   147,   148,    36,    37,    38,
1399       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1400       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1401       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1402       69,    70,    71,    72,    73,    74,    75,    76,    77,   151,
1403      152,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1404       89,   153,   154,     0,     0,     0,   155,   156,     0,     0,
1405      167,   168,   169,   170,     0,   171,   172,     0,     0,     0,
1406        0,     0,     0,   100,   101,     0,     0,     0,     0,     0,
1407        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1408        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1409      173,     0,     0,     0,   174,   175,     6,     0,     0,   176,
1410        0,   177,     0,   178,   179,     0,     0,   166,   132,     0,
1411        0,     0,     0,    18,    19,    20,    21,    22,    23,   137,
1412       25,    26,    27,   141,   142,   143,   144,   145,   146,   147,
1413      148,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1414       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1415       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1416       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1417       75,    76,    77,   151,   152,    80,    81,    82,    83,    84,
1418       85,    86,    87,    88,    89,   153,   154,     0,     0,     0,
1419      155,   156,     0,     0,   167,   168,   169,   170,     0,   171,
1420      172,     0,     0,     0,     0,     0,     0,   100,   101,     0,
1421        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1422        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1423        0,     0,     0,     0,   173,     6,     0,     0,   174,   175,
1424        0,     0,     0,   176,     0,   177,    13,   132,   179,     0,
1425        0,     0,    18,    19,    20,    21,    22,    23,   137,    25,
1426       26,    27,   141,   142,   143,   144,   145,   146,   147,   148,
1427       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1428       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1429       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1430       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1431       76,    77,   151,   152,    80,    81,    82,    83,    84,    85,
1432       86,    87,    88,    89,   153,   154,     0,     0,     0,   155,
1433      156,     0,     0,   167,   168,   169,   170,     0,   171,   172,
1434        0,     0,     0,     0,     0,     0,   100,   101,     0,     0,
1435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1437        0,     6,     0,   173,     0,     0,     0,   174,   175,     0,
1438        0,     0,    13,   132,     0,     0,     0,   179,    18,    19,
1439       20,    21,    22,    23,   137,    25,    26,    27,   141,   142,
1440      143,   144,   145,   146,   147,   148,    36,    37,    38,    39,
1441       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1442       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1443       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1444       70,    71,    72,    73,    74,    75,    76,    77,   151,   152,
1445       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1446      153,   154,     0,     0,     0,   155,   156,     0,     0,   167,
1447      262,   263,   170,     0,   171,   172,     0,     0,     0,     0,
1448        0,     0,   100,   101,     0,     0,     0,     0,     0,     0,
1449        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450        0,     0,     0,     0,     0,     0,     0,     6,     0,   173,
1451        0,     0,     0,   174,   175,     0,     0,     0,    13,   132,
1452        0,     0,     0,   179,    18,    19,    20,    21,    22,    23,
1453      137,    25,    26,    27,   141,   142,   143,   144,   145,   146,
1454      147,   148,    36,    37,    38,    39,    40,    41,    42,    43,
1455       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1456       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1457       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1458       74,    75,    76,    77,   151,   152,    80,    81,    82,    83,
1459       84,    85,    86,    87,    88,    89,   153,   154,     0,     0,
1460        0,   155,   156,     0,     0,   167,   329,   169,   170,     0,
1461      330,   172,     0,     0,     0,     0,     0,     0,   100,   101,
1462        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464        0,     0,     0,     6,     0,   173,     0,     0,     0,   174,
1465      175,     0,     0,     0,    13,   132,     0,     0,     0,   179,
1466       18,    19,    20,    21,    22,    23,   137,    25,    26,    27,
1467      141,   142,   143,   144,   145,   146,   147,   148,    36,    37,
1468       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1469       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1470       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1471       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1472      151,   152,    80,    81,    82,    83,    84,    85,    86,    87,
1473       88,    89,   153,   154,     0,     0,     0,   155,   156,     0,
1474        0,   167,   168,   169,   170,     0,   332,   172,     0,     0,
1475        0,     0,     0,     0,   100,   101,     0,     0,     0,     0,
1476        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477        0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
1478        0,   173,     0,     0,     0,   174,   175,     0,     0,     0,
1479       13,   132,     0,     0,     0,   179,    18,    19,    20,    21,
1480       22,    23,   137,    25,    26,    27,   141,   142,   143,   144,
1481      145,   146,   147,   148,    36,    37,    38,    39,    40,    41,
1482       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1483       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1484       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1485       72,    73,    74,    75,    76,    77,   151,   152,    80,    81,
1486       82,    83,    84,    85,    86,    87,    88,    89,   153,   154,
1487        0,     0,     0,   155,   156,     0,     0,   167,   519,   169,
1488      170,     0,   171,   172,     0,     0,     0,     0,     0,     0,
1489      100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1490        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1491        0,     0,     0,     0,     0,     0,     0,   173,     0,     0,
1492        0,   174,   175,     0,   387,   388,   389,   390,     0,   391,
1493        0,   179,   392,   393,     0,   394,     0,   395,   396,   397,
1494      398,     0,     0,     0,     0,     0,     0,   277,     0,   399,
1495      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1496      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1497      420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
1498      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
1499      440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
1500      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1501        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1502        0,     0,     0,     0,     0,   287,     0,   288,   289,   290,
1503      291,   292,   293,   294,   295,   296,   297,     0,     0,     0,
1504        0,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1505        0,     0,     0,     0,     0,     0,     0,     0,    13,   132,
1506        0,     0,     0,     0,   510,   133,   134,   135,   136,    23,
1507      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1508      147,   148,    36,    37,    38,    39,    40,    41,    42,    43,
1509       44,    45,    46,    47,    48,    49,    50,    51,   149,    53,
1510       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1511       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1512      150,    75,    76,    77,   151,   152,    80,    81,    82,    83,
1513       84,    85,    86,    87,    88,    89,   153,   154,     0,     0,
1514        0,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1515        0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
1516        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1517        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1518        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1519        0,     0,   250,    13,    14,     0,     0,   224,    17,    18,
1520       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1521       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1522       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1523       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1524       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1525       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1526       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1527       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1528        0,     0,     0,     0,     0,     0,    99,     0,     0,    12,
1529       13,    14,     0,   100,   101,    17,    18,    19,    20,    21,
1530       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1531       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1532       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1533       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1534       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1535       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1536       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1537       92,    93,    94,    95,    96,    97,    98,   277,     0,     0,
1538        0,     0,     0,    99,     0,     0,     0,     0,     0,     0,
1539      100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1541        0,     0,     0,     0,   277,     0,     0,     0,     0,     0,
1542        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1543      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1544        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1545        0,   277,     0,     0,     0,   287,     0,   288,   289,   290,
1546      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1547      281,   282,   283,     0,     0,     0,     0,     0,   459,     0,
1548        0,     0,   284,   285,   286,     0,     0,     0,   277,     0,
1549        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1550      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1551        0,     0,     0,     0,     0,   460,     0,     0,     0,   284,
1552      285,   286,     0,     0,     0,   277,     0,     0,     0,   287,
1553        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1554      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1555        0,     0,   466,     0,     0,     0,   284,   285,   286,     0,
1556        0,     0,   277,     0,     0,     0,   287,     0,   288,   289,
1557      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1558      280,   281,   282,   283,     0,     0,     0,     0,     0,   471,
1559        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1560        0,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1561      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1562      283,     0,     0,     0,     0,     0,   475,     0,     0,     0,
1563      284,   285,   286,     0,     0,     0,   277,     0,     0,     0,
1564      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1565      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1566        0,     0,     0,   477,     0,     0,     0,   284,   285,   286,
1567        0,     0,     0,   277,     0,     0,     0,   287,     0,   288,
1568      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1569      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1570      479,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1571      277,     0,     0,     0,   287,     0,   288,   289,   290,   291,
1572      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1573      282,   283,     0,     0,     0,     0,     0,   481,     0,     0,
1574        0,   284,   285,   286,     0,     0,     0,   277,     0,     0,
1575        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1576      295,   296,   297,   278,   279,   280,   281,   282,   283,     0,
1577        0,     0,     0,     0,   550,     0,     0,     0,   284,   285,
1578      286,     0,     0,     0,   277,     0,     0,     0,   287,     0,
1579      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1580      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1581        0,   564,     0,     0,     0,   284,   285,   286,     0,     0,
1582        0,   277,     0,     0,     0,   287,     0,   288,   289,   290,
1583      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1584      281,   282,   283,     0,     0,     0,     0,     0,   597,     0,
1585        0,     0,   284,   285,   286,     0,     0,     0,   277,     0,
1586        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1587      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1588        0,     0,     0,     0,     0,   598,     0,     0,     0,   284,
1589      285,   286,     0,     0,     0,   277,     0,     0,     0,   287,
1590        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1591      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1592        0,     0,   615,     0,     0,     0,   284,   285,   286,     0,
1593        0,     0,   277,     0,     0,     0,   287,     0,   288,   289,
1594      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1595      280,   281,   282,   283,   484,     0,     0,     0,     0,     0,
1596        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1597        0,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1598      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1599      283,   496,     0,     0,     0,     0,     0,     0,     0,     0,
1600      284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
1601      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1602      296,   297,   278,   279,   280,   281,   282,   283,   594,     0,
1603        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1604        0,     0,     0,     0,     0,     0,     0,   287,     0,   288,
1605      289,   290,   291,   292,   293,   294,   295,   296,   297,    13,
1606      132,     0,     0,   532,   533,    18,    19,    20,    21,    22,
1607       23,   137,    25,    26,    27,   141,   142,   143,   144,   145,
1608      146,   147,   148,    36,    37,    38,    39,    40,    41,    42,
1609       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1610       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1611       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1612       73,    74,    75,    76,    77,   151,   152,    80,    81,    82,
1613       83,    84,    85,    86,    87,    88,    89,   153,   154,     0,
1614        0,     0,   155,   156,     0,     0,     0,    13,   132,     0,
1615        0,     0,   161,    18,    19,    20,    21,    22,    23,   137,
1616       25,    26,    27,   141,   142,   143,   144,   145,   146,   147,
1617      148,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1618       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1619       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1620       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1621       75,    76,    77,   151,   152,    80,    81,    82,    83,    84,
1622       85,    86,    87,    88,    89,   153,   154,     0,     0,     0,
1623      155,   156,     0,     0,    13,   132,     0,     0,     0,     0,
1624      172,   133,   134,   135,   136,    23,   137,   138,   139,   140,
1625      141,   142,   143,   144,   145,   146,   147,   148,    36,    37,
1626       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1627       48,    49,    50,    51,   149,    53,    54,    55,    56,    57,
1628       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1629       68,    69,    70,    71,    72,    73,   150,    75,    76,    77,
1630      151,   152,    80,    81,    82,    83,    84,    85,    86,    87,
1631       88,    89,   153,   154,     0,     0,     0,   155,   156,     0,
1632        0,    13,   132,     0,     0,     0,     0,   157,   133,   134,
1633      135,   136,    23,   137,   138,   139,   140,   141,   142,   143,
1634      144,   145,   146,   147,   148,    36,    37,    38,    39,    40,
1635       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1636       51,   149,    53,    54,    55,    56,    57,    58,    59,    60,
1637       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1638       71,    72,    73,   150,    75,    76,    77,   151,   152,    80,
1639       81,    82,    83,    84,    85,    86,    87,    88,    89,   153,
1640      154,   277,     0,     0,   155,   156,     0,     0,     0,     0,
1641        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
1642        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1643        0,     0,     0,     0,     0,     0,     0,     0,   277,     0,
1644        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645        0,     0,     0,     0,   278,   279,   280,   281,   282,   283,
1646        0,     0,     0,     0,     0,     0,     0,     0,     0,   284,
1647      285,   286,     0,     0,     0,   277,   461,     0,     0,   287,
1648        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1649      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1650        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1651        0,     0,   277,   464,     0,     0,   287,     0,   288,   289,
1652      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1653      280,   281,   282,   283,     0,     0,     0,     0,     0,     0,
1654        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1655      465,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1656      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1657      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1658      284,   285,   286,     0,     0,     0,   277,   467,     0,     0,
1659      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1660      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1661        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1662        0,     0,     0,   277,   468,     0,     0,   287,     0,   288,
1663      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1664      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1665        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1666      277,   469,     0,     0,   287,     0,   288,   289,   290,   291,
1667      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1668      282,   283,     0,     0,     0,     0,     0,     0,     0,     0,
1669        0,   284,   285,   286,     0,     0,     0,   277,   470,     0,
1670        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1671      295,   296,   297,   278,   279,   280,   281,   282,   283,     0,
1672        0,     0,     0,     0,     0,     0,     0,     0,   284,   285,
1673      286,     0,     0,     0,   277,   472,     0,     0,   287,     0,
1674      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1675      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1676        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1677        0,   277,     0,     0,     0,   287,   503,   288,   289,   290,
1678      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1679      281,   282,   283,     0,     0,     0,     0,     0,     0,     0,
1680        0,     0,   284,   285,   286,     0,     0,     0,   277,   551,
1681        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1682      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1683        0,     0,     0,     0,     0,     0,     0,     0,     0,   284,
1684      285,   286,     0,     0,     0,   277,   554,     0,     0,   287,
1685        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1686      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1687        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1688        0,     0,   277,   555,     0,     0,   287,     0,   288,   289,
1689      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1690      280,   281,   282,   283,     0,     0,     0,     0,     0,     0,
1691        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1692      599,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1693      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1694      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1695      284,   285,   286,     0,     0,     0,   277,     0,     0,     0,
1696      287,   605,   288,   289,   290,   291,   292,   293,   294,   295,
1697      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1698        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1699        0,     0,     0,   277,   608,     0,     0,   287,     0,   288,
1700      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1701      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1702        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1703      277,   612,     0,     0,   287,     0,   288,   289,   290,   291,
1704      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1705      282,   283,   277,     0,     0,     0,     0,     0,     0,     0,
1706        0,   284,   285,   286,     0,     0,     0,     0,     0,     0,
1707        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1708      295,   296,   297,   278,   279,   280,   281,     0,     0,     0,
1709        0,     0,     0,     0,     0,     0,     0,     0,   284,   285,
1710      286,     0,     0,     0,     0,     0,   279,   280,     0,     0,
1711      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1712      284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
1713        0,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1714      296,   297,   387,   388,   389,   390,   574,   391,     0,     0,
1715      392,   393,     0,   394,     0,   395,   396,   397,   398,     0,
1716        0,     0,     0,     0,     0,     0,     0,   399,   400,   401,
1717      402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
1718      412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
1719      422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
1720      432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
1721      442,   443,   444,   445,   446,   447,   448,   449,   387,   388,
1722      389,   390,     0,   391,     0,     0,   392,   393,     0,   394,
1723        0,   395,   396,   397,   398,     0,     0,     0,     0,     0,
1724        0,     0,     0,   399,   400,   401,   402,   403,   404,   405,
1725      406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1726      416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
1727      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
1728      436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
1729      446,   447,   448,   449
1730 };
1731
1732 static const yytype_int16 yycheck[] =
1733 {
1734        2,   130,    11,   223,     8,     9,     2,     8,     9,   504,
1735      450,   132,    14,   132,   132,   132,     2,     0,   132,   132,
1736      156,   132,   132,   132,    57,   132,   151,   152,    14,   132,
1737        0,   157,    12,   156,   154,   156,   132,   158,   258,   158,
1738      158,   158,   155,    15,   158,     2,     2,   158,   158,   158,
1739      153,   158,   157,    15,   151,   152,   157,    14,   116,   117,
1740      118,   119,   120,   121,   122,   123,   124,   116,   117,   157,
1741      128,   129,   130,   151,   152,   133,   134,   157,    92,    93,
1742      151,   152,   157,    57,   133,   157,   157,   151,   152,    57,
1743      151,   152,   157,     2,   108,   157,   157,   151,   152,   156,
1744      102,   541,   104,   151,   152,    14,   601,   157,   104,   156,
1745      605,   144,   145,   146,   157,   117,   102,   157,   104,   157,
1746      517,   518,   124,   520,   133,   522,   157,   157,   130,   157,
1747      157,   117,   157,   157,   114,   355,   157,   157,   124,   157,
1748      157,   157,   157,     2,   130,   102,   157,   104,   104,   157,
1749      130,   155,   157,   108,   155,   158,    13,   125,   126,   127,
1750      117,   117,   157,   157,   157,   157,   157,   124,   142,   143,
1751      144,   145,   146,   130,   142,   143,   144,   145,   146,   157,
1752      157,   157,   133,   185,   157,    11,   166,   103,   104,   105,
1753      106,   107,   108,   102,   157,   104,   157,   177,   158,   185,
1754      158,   132,   156,    57,   176,   158,   158,   157,   117,   158,
1755      158,   158,   136,   158,   158,   124,   158,   346,   132,   158,
1756      158,   130,   158,   225,   196,   157,   198,   157,   185,   154,
1757      107,   154,   108,   108,   196,   108,   198,   157,   210,   225,
1758      158,   158,     6,   102,   132,   104,   158,   158,   210,    57,
1759      156,   223,   132,   233,   158,   158,   158,   158,   117,   158,
1760      158,   158,   158,   483,   136,   156,   104,   126,   225,   225,
1761      250,   130,   338,   245,   485,   277,   185,   257,   567,   259,
1762      534,   470,   359,   245,   256,   575,   258,   505,   257,    -1,
1763       -1,   277,    -1,   273,   256,    -1,    -1,    -1,    -1,    -1,
1764       -1,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,   529,
1765       -1,    -1,    -1,   275,    -1,    -1,   225,   125,   126,   127,
1766      277,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,    -1,
1767       -1,   139,   140,   141,   142,   143,   144,   145,   146,    -1,
1768       -1,    -1,    -1,    -1,   346,   347,    57,   349,    -1,    -1,
1769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,
1770      346,   347,    -1,   349,    -1,    -1,   225,   347,   277,    -1,
1771       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,
1772       -1,    -1,    -1,   355,   356,    -1,   358,    -1,    57,   346,
1773       -1,    -1,   349,   349,   356,    -1,   358,    -1,    -1,   110,
1774      111,   112,   113,   114,   115,   534,    -1,    -1,    -1,    -1,
1775       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
1776       -1,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
1777      141,   142,   143,   144,   145,   146,    -1,   346,    -1,    -1,
1778      349,   110,   111,   112,   113,   114,   115,   158,    -1,    -1,
1779       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
1780       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,
1781      139,   140,   141,   142,   143,   144,   145,   146,    -1,   481,
1782       -1,    -1,    -1,   485,    -1,    -1,    -1,   346,    -1,   158,
1783      349,    -1,    -1,    -1,    -1,   481,    -1,    -1,    -1,   485,
1784      502,    -1,   504,    -1,    -1,   485,    -1,    -1,    -1,    -1,
1785       -1,   483,    -1,    -1,    -1,    -1,   502,    -1,   504,    -1,
1786       -1,   501,    -1,   525,   481,   481,    -1,    -1,    -1,    -1,
1787       -1,    -1,   534,   535,    -1,    -1,    -1,    -1,   540,   525,
1788       -1,    -1,    -1,    -1,    -1,   502,   502,   504,   534,   535,
1789       -1,    -1,   532,    -1,   540,    -1,    -1,   529,    -1,    -1,
1790       -1,    -1,    -1,    -1,    -1,    -1,   568,    -1,   525,   525,
1791       -1,    -1,   481,    -1,    -1,    -1,    -1,   534,   535,   535,
1792       -1,    -1,   568,   540,   540,    -1,    -1,    -1,    -1,    -1,
1793      592,    -1,    -1,   502,    -1,   504,    -1,    -1,    -1,   601,
1794       -1,   603,    -1,   605,   606,    -1,   592,   609,    -1,    -1,
1795       -1,   568,   568,    -1,    -1,   601,   525,   603,    -1,   605,
1796      606,    -1,   481,   609,    -1,   534,   535,    -1,    -1,    -1,
1797       -1,   540,    -1,    57,    -1,   592,   592,    -1,    -1,    -1,
1798       -1,    -1,    -1,   502,   601,   504,   603,   603,   605,   606,
1799      606,    -1,   609,   609,    -1,    -1,    -1,    -1,    -1,   568,
1800       -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,    -1,    -1,
1801       -1,    -1,    -1,    -1,    -1,   534,   535,    -1,    -1,    -1,
1802       -1,   540,    -1,   592,    -1,    -1,   110,   111,   112,   113,
1803      114,   115,   601,   131,   603,    -1,   605,   606,    -1,    -1,
1804      609,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,   568,
1805       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
1806      144,   145,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1807       -1,    -1,    -1,   592,   158,   173,   174,   175,    -1,    -1,
1808       -1,   179,   601,    -1,   603,    57,   605,   606,    -1,    -1,
1809      609,    -1,    -1,   191,    -1,   193,   194,    -1,    -1,   197,
1810       -1,   199,   200,   201,   202,    -1,    -1,    -1,    -1,    -1,
1811       -1,    -1,    -1,   211,   212,   213,   214,   215,   216,   217,
1812      218,   219,    -1,   221,   222,    -1,    -1,    -1,    -1,    -1,
1813      228,    -1,   230,    -1,    -1,    -1,   234,    -1,   110,   111,
1814      112,   113,   114,   115,    -1,    -1,    -1,    57,    -1,   247,
1815       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    -1,
1816      132,    -1,   260,   135,    -1,   137,   138,   139,   140,   141,
1817      142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,    -1,
1818      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1819      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1820      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
1821       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
1822       -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
1823      140,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
1824       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,   347,
1825      348,     3,     4,     5,    -1,     7,    -1,    -1,    10,    -1,
1826       12,    13,    14,    15,    16,    17,    18,    -1,    20,    21,
1827       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1828       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1829       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1830       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1831       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1832       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1833       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1834       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1835      102,    -1,    -1,    -1,    -1,    -1,    -1,   109,   456,    57,
1836       -1,    -1,    -1,   461,   116,   117,   464,   465,    -1,   467,
1837      468,   469,   470,    -1,   472,    -1,    -1,    -1,    -1,    -1,
1838       -1,    -1,    -1,    -1,   482,    -1,    -1,   485,    -1,    -1,
1839       -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,
1840       -1,    -1,   154,    -1,   156,   503,    -1,    -1,    -1,    -1,
1841       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
1842       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
1843       -1,    -1,    -1,    -1,    -1,   533,    -1,   135,    -1,   137,
1844      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
1845      111,   112,   113,   114,   115,    -1,   554,   555,    -1,    -1,
1846      158,    -1,   560,    -1,   125,   126,   127,    -1,    -1,    -1,
1847       -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
1848      141,   142,   143,   144,   145,   146,    -1,    -1,    -1,   587,
1849       -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,
1850       -1,   599,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
1851      608,    -1,     7,    -1,   612,    10,    -1,    12,    13,    14,
1852       15,    16,    17,    18,    -1,    20,    21,    22,    23,    24,
1853       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1854       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1855       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1856       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1857       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1858       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1859       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1860       95,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
1861       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
1862       -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1863       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1864       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1865       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
1866      155,   156,     3,     4,    -1,    -1,     7,    -1,    -1,    10,
1867       -1,    12,    13,    14,    15,    16,    17,    18,    -1,    20,
1868       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1869       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1870       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1871       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1872       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1873       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1874       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1875       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1876      101,   102,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
1877       -1,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,    -1,
1878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1879       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1881       -1,    -1,    -1,   154,   155,   156,     3,     4,    -1,    -1,
1882        7,    -1,    -1,    10,    -1,    12,    13,    14,    15,    16,
1883       17,    18,    -1,    20,    21,    22,    23,    24,    25,    26,
1884       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1885       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1886       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1887       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1888       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1889       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1890       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1891       97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
1892       -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1893      117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1895       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1896       -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,   155,   156,
1897        3,     4,    -1,    -1,     7,    -1,    -1,    10,    -1,    12,
1898       13,    14,    15,    16,    17,    18,    -1,    20,    21,    22,
1899       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1900       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1901       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1902       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1903       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1904       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1905       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1906       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1907       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
1908       -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,
1909       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911       -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
1912       -1,   154,    10,   156,    12,    13,    14,    15,    16,    17,
1913       18,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
1914       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1915       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1916       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1917       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1918       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1919       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1920       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1921       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
1922       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
1923       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925       -1,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926       -1,    -1,    -1,    16,    17,    -1,   154,    -1,   156,    22,
1927       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1928       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1929       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1930       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1931       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1932       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1933       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1934       93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,    -1,
1935      103,   104,   105,   106,    -1,   108,   109,    -1,    -1,    -1,
1936       -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,
1937       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1938       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1939      143,    -1,    -1,    -1,   147,   148,     5,    -1,    -1,   152,
1940       -1,   154,    -1,   156,   157,    -1,    -1,    16,    17,    -1,
1941       -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    28,
1942       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1943       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1944       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1945       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1946       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1947       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1948       89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
1949       99,   100,    -1,    -1,   103,   104,   105,   106,    -1,   108,
1950      109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,    -1,
1951       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1952       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1953       -1,    -1,    -1,    -1,   143,     5,    -1,    -1,   147,   148,
1954       -1,    -1,    -1,   152,    -1,   154,    16,    17,   157,    -1,
1955       -1,    -1,    22,    23,    24,    25,    26,    27,    28,    29,
1956       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1957       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1958       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1959       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1960       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1961       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1962       90,    91,    92,    93,    94,    95,    -1,    -1,    -1,    99,
1963      100,    -1,    -1,   103,   104,   105,   106,    -1,   108,   109,
1964       -1,    -1,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,
1965       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1966       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1967       -1,     5,    -1,   143,    -1,    -1,    -1,   147,   148,    -1,
1968       -1,    -1,    16,    17,    -1,    -1,    -1,   157,    22,    23,
1969       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1970       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1971       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1972       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1973       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1974       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1975       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1976       94,    95,    -1,    -1,    -1,    99,   100,    -1,    -1,   103,
1977      104,   105,   106,    -1,   108,   109,    -1,    -1,    -1,    -1,
1978       -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,
1979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1980       -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,   143,
1981       -1,    -1,    -1,   147,   148,    -1,    -1,    -1,    16,    17,
1982       -1,    -1,    -1,   157,    22,    23,    24,    25,    26,    27,
1983       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1984       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1985       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1986       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1987       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1988       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1989       88,    89,    90,    91,    92,    93,    94,    95,    -1,    -1,
1990       -1,    99,   100,    -1,    -1,   103,   104,   105,   106,    -1,
1991      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
1992       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1993       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1994       -1,    -1,    -1,     5,    -1,   143,    -1,    -1,    -1,   147,
1995      148,    -1,    -1,    -1,    16,    17,    -1,    -1,    -1,   157,
1996       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1997       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1998       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1999       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2000       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2001       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2002       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2003       92,    93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,
2004       -1,   103,   104,   105,   106,    -1,   108,   109,    -1,    -1,
2005       -1,    -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,
2006       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2007       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
2008       -1,   143,    -1,    -1,    -1,   147,   148,    -1,    -1,    -1,
2009       16,    17,    -1,    -1,    -1,   157,    22,    23,    24,    25,
2010       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2011       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2012       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2013       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2014       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2015       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2016       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2017       -1,    -1,    -1,    99,   100,    -1,    -1,   103,   104,   105,
2018      106,    -1,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
2019      116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2020       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2021       -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,
2022       -1,   147,   148,    -1,    15,    16,    17,    18,    -1,    20,
2023       -1,   157,    23,    24,    -1,    26,    -1,    28,    29,    30,
2024       31,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    40,
2025       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2026       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2027       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2028       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2029       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2030      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
2031       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
2032       -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
2033      140,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
2034       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,
2035       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    16,    17,
2036       -1,    -1,    -1,    -1,   155,    23,    24,    25,    26,    27,
2037       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2038       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2039       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2040       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
2041       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
2042       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
2043       88,    89,    90,    91,    92,    93,    94,    95,    -1,    -1,
2044       -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2045       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2046       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2047       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2048       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2049       -1,    -1,    15,    16,    17,    -1,    -1,   155,    21,    22,
2050       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2051       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2052       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2053       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2054       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2055       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2056       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2057       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2058       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    15,
2059       16,    17,    -1,   116,   117,    21,    22,    23,    24,    25,
2060       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2061       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2062       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2063       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2064       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2065       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2066       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2067       96,    97,    98,    99,   100,   101,   102,    57,    -1,    -1,
2068       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
2069      116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2070       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2071       -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
2072       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2073      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
2074       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
2075       -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
2076      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
2077      113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,
2078       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,
2079       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
2080      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
2081       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,
2082      126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,
2083       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2084      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2085       -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,
2086       -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,
2087      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2088      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,
2089       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2090       -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2091      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2092      115,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,
2093      125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,
2094      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2095      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
2096       -1,    -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,
2097       -1,    -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,
2098      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
2099      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
2100      158,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
2101       57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
2102      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
2103      114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,
2104       -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,
2105       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2106      144,   145,   146,   110,   111,   112,   113,   114,   115,    -1,
2107       -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,   126,
2108      127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,    -1,
2109      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2110      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
2111       -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
2112       -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
2113      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
2114      113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,
2115       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,
2116       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
2117      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
2118       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,
2119      126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,
2120       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2121      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2122       -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,
2123       -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,
2124      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2125      112,   113,   114,   115,   153,    -1,    -1,    -1,    -1,    -1,
2126       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2127       -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2128      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2129      115,   153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2130      125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2131      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2132      145,   146,   110,   111,   112,   113,   114,   115,   153,    -1,
2133       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
2134       -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   137,
2135      138,   139,   140,   141,   142,   143,   144,   145,   146,    16,
2136       17,    -1,    -1,   151,   152,    22,    23,    24,    25,    26,
2137       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2138       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2139       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2140       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2141       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2142       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2143       87,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
2144       -1,    -1,    99,   100,    -1,    -1,    -1,    16,    17,    -1,
2145       -1,    -1,   109,    22,    23,    24,    25,    26,    27,    28,
2146       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2147       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2148       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2149       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2150       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2151       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2152       89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
2153       99,   100,    -1,    -1,    16,    17,    -1,    -1,    -1,    -1,
2154      109,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2155       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2156       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2157       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2158       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2159       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2160       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2161       92,    93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,
2162       -1,    16,    17,    -1,    -1,    -1,    -1,   109,    23,    24,
2163       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2164       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2165       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2166       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2167       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2168       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2169       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2170       95,    57,    -1,    -1,    99,   100,    -1,    -1,    -1,    -1,
2171       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2172       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2173       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
2174       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2175       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
2176       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,
2177      126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,
2178       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2179      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2180       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
2181       -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,   138,
2182      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2183      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
2184       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2185      132,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2186      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2187      115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2188      125,   126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,
2189      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2190      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
2191       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
2192       -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,
2193      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
2194      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
2195       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
2196       57,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
2197      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
2198      114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2199       -1,   125,   126,   127,    -1,    -1,    -1,    57,   132,    -1,
2200       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2201      144,   145,   146,   110,   111,   112,   113,   114,   115,    -1,
2202       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,
2203      127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,
2204      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2205      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
2206       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
2207       -1,    57,    -1,    -1,    -1,   135,   136,   137,   138,   139,
2208      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
2209      113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2210       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,   132,
2211       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
2212      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
2213       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,
2214      126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,
2215       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2216      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2217       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
2218       -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,   138,
2219      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2220      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
2221       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2222      132,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2223      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2224      115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2225      125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,
2226      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2227      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
2228       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
2229       -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,
2230      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
2231      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
2232       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
2233       57,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
2234      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
2235      114,   115,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2236       -1,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
2237       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2238      144,   145,   146,   110,   111,   112,   113,    -1,    -1,    -1,
2239       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,
2240      127,    -1,    -1,    -1,    -1,    -1,   111,   112,    -1,    -1,
2241      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2242      125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2243       -1,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2244      145,   146,    15,    16,    17,    18,    19,    20,    -1,    -1,
2245       23,    24,    -1,    26,    -1,    28,    29,    30,    31,    -1,
2246       -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
2247       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2248       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2249       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2250       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2251       83,    84,    85,    86,    87,    88,    89,    90,    15,    16,
2252       17,    18,    -1,    20,    -1,    -1,    23,    24,    -1,    26,
2253       -1,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
2254       -1,    -1,    -1,    40,    41,    42,    43,    44,    45,    46,
2255       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2256       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2257       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2258       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2259       87,    88,    89,    90
2260 };
2261
2262 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2263    symbol of state STATE-NUM.  */
2264 static const yytype_uint8 yystos[] =
2265 {
2266        0,   160,   161,     0,     3,     4,     5,     7,    10,    12,
2267       13,    14,    15,    16,    17,    18,    20,    21,    22,    23,
2268       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2269       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2270       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2271       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2272       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2273       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2274       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2275       94,    95,    96,    97,    98,    99,   100,   101,   102,   109,
2276      116,   117,   154,   156,   162,   163,   165,   166,   167,   168,
2277      170,   172,   173,   176,   178,   179,   181,   182,   185,   187,
2278      188,   191,   192,   195,   199,   200,   201,   207,   156,   156,
2279      157,   157,    17,    23,    24,    25,    26,    28,    29,    30,
2280       31,    32,    33,    34,    35,    36,    37,    38,    39,    56,
2281       78,    82,    83,    94,    95,    99,   100,   109,   176,   205,
2282      206,   109,   192,   195,   200,   201,    16,   103,   104,   105,
2283      106,   108,   109,   143,   147,   148,   152,   154,   156,   157,
2284      165,   178,   192,   194,   195,   199,   200,   201,   202,   203,
2285      204,   157,   154,   157,   157,   157,   157,   157,   157,   157,
2286      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
2287      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
2288      157,   157,   157,   157,   155,   164,   166,   163,   157,   176,
2289      157,   166,   201,   151,   152,   118,   119,   120,   121,   122,
2290      123,   124,   128,   129,   130,   133,   134,   198,   199,   156,
2291       15,   169,   176,   186,   207,   202,   133,   132,   157,   151,
2292      152,   176,   104,   105,   202,   202,   202,   193,   203,   176,
2293      196,   197,   202,   157,   201,   133,   199,    57,   110,   111,
2294      112,   113,   114,   115,   125,   126,   127,   135,   137,   138,
2295      139,   140,   141,   142,   143,   144,   145,   146,   156,   202,
2296      208,   202,   202,   158,   203,   202,   203,   202,   202,   202,
2297      202,   108,   158,   158,   158,   158,   158,   158,   203,   202,
2298      202,   202,   202,   202,   202,   202,   202,   202,   158,   104,
2299      108,   202,   108,   202,   193,   155,   166,   202,   157,   202,
2300       13,   176,   202,   203,   202,   176,   132,    11,   156,   158,
2301      203,   206,   193,   109,   202,   157,   132,   153,   136,   132,
2302      155,   158,   176,   177,   203,   200,   202,   202,   202,   202,
2303      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
2304      202,   202,   202,   202,   202,   202,   158,    15,    16,    17,
2305       18,    20,    23,    24,    26,    28,    29,    30,    31,    40,
2306       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2307       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2308       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2309       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2310       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2311      209,   210,   214,   158,   158,   158,   132,   158,   158,   158,
2312      158,   132,   132,   158,   132,   132,   158,   132,   132,   132,
2313      132,   158,   132,   158,   158,   158,   158,   158,   158,   158,
2314      177,   158,   157,   157,   153,    11,   207,   176,   180,   192,
2315      195,   202,   171,   202,   166,   158,   153,   193,   203,   203,
2316      196,   132,   158,   136,   154,   211,   215,   107,   108,   108,
2317      155,   214,   202,   202,   108,   202,   202,   202,   202,   104,
2318      190,   202,   190,   202,   154,   158,   166,   202,   193,   157,
2319      180,   158,   151,   152,   156,     6,   158,   176,   166,   202,
2320      164,   209,   103,   104,   105,   106,   107,   108,   212,   213,
2321      158,   132,   189,   158,   132,   132,   189,   189,   189,   189,
2322      132,   158,   174,   166,   158,   158,   193,   158,   184,   176,
2323      202,   186,   166,   155,    19,   132,    92,    93,   108,   158,
2324      202,   202,   158,   158,   158,   158,   202,     8,     9,   155,
2325      175,   158,   184,   166,   153,   158,   212,   158,   158,   132,
2326      202,   136,   166,   183,   202,   136,   164,   166,   132,   164,
2327      202,     3,   132,   156,   202,   158
2328 };
2329
2330 #define yyerrok         (yyerrstatus = 0)
2331 #define yyclearin       (yychar = YYEMPTY)
2332 #define YYEMPTY         (-2)
2333 #define YYEOF           0
2334
2335 #define YYACCEPT        goto yyacceptlab
2336 #define YYABORT         goto yyabortlab
2337 #define YYERROR         goto yyerrorlab
2338
2339
2340 /* Like YYERROR except do call yyerror.  This remains here temporarily
2341    to ease the transition to the new meaning of YYERROR, for GCC.
2342    Once GCC version 2 has supplanted version 1, this can go.  */
2343
2344 #define YYFAIL          goto yyerrlab
2345
2346 #define YYRECOVERING()  (!!yyerrstatus)
2347
2348 #define YYBACKUP(Token, Value)                                  \
2349 do                                                              \
2350   if (yychar == YYEMPTY && yylen == 1)                          \
2351     {                                                           \
2352       yychar = (Token);                                         \
2353       yylval = (Value);                                         \
2354       yytoken = YYTRANSLATE (yychar);                           \
2355       YYPOPSTACK (1);                                           \
2356       goto yybackup;                                            \
2357     }                                                           \
2358   else                                                          \
2359     {                                                           \
2360       yyerror (YY_("syntax error: cannot back up")); \
2361       YYERROR;                                                  \
2362     }                                                           \
2363 while (YYID (0))
2364
2365
2366 #define YYTERROR        1
2367 #define YYERRCODE       256
2368
2369
2370 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2371    If N is 0, then set CURRENT to the empty location which ends
2372    the previous symbol: RHS[0] (always defined).  */
2373
2374 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2375 #ifndef YYLLOC_DEFAULT
2376 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2377     do                                                                  \
2378       if (YYID (N))                                                    \
2379         {                                                               \
2380           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2381           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2382           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2383           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2384         }                                                               \
2385       else                                                              \
2386         {                                                               \
2387           (Current).first_line   = (Current).last_line   =              \
2388             YYRHSLOC (Rhs, 0).last_line;                                \
2389           (Current).first_column = (Current).last_column =              \
2390             YYRHSLOC (Rhs, 0).last_column;                              \
2391         }                                                               \
2392     while (YYID (0))
2393 #endif
2394
2395
2396 /* YY_LOCATION_PRINT -- Print the location on the stream.
2397    This macro was not mandated originally: define only if we know
2398    we won't break user code: when these are the locations we know.  */
2399
2400 #ifndef YY_LOCATION_PRINT
2401 # if YYLTYPE_IS_TRIVIAL
2402 #  define YY_LOCATION_PRINT(File, Loc)                  \
2403      fprintf (File, "%d.%d-%d.%d",                      \
2404               (Loc).first_line, (Loc).first_column,     \
2405               (Loc).last_line,  (Loc).last_column)
2406 # else
2407 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2408 # endif
2409 #endif
2410
2411
2412 /* YYLEX -- calling `yylex' with the right arguments.  */
2413
2414 #ifdef YYLEX_PARAM
2415 # define YYLEX yylex (YYLEX_PARAM)
2416 #else
2417 # define YYLEX yylex ()
2418 #endif
2419
2420 /* Enable debugging if requested.  */
2421 #if YYDEBUG
2422
2423 # ifndef YYFPRINTF
2424 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2425 #  define YYFPRINTF fprintf
2426 # endif
2427
2428 # define YYDPRINTF(Args)                        \
2429 do {                                            \
2430   if (yydebug)                                  \
2431     YYFPRINTF Args;                             \
2432 } while (YYID (0))
2433
2434 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2435 do {                                                                      \
2436   if (yydebug)                                                            \
2437     {                                                                     \
2438       YYFPRINTF (stderr, "%s ", Title);                                   \
2439       yy_symbol_print (stderr,                                            \
2440                   Type, Value); \
2441       YYFPRINTF (stderr, "\n");                                           \
2442     }                                                                     \
2443 } while (YYID (0))
2444
2445
2446 /*--------------------------------.
2447 | Print this symbol on YYOUTPUT.  |
2448 `--------------------------------*/
2449
2450 /*ARGSUSED*/
2451 #if (defined __STDC__ || defined __C99__FUNC__ \
2452      || defined __cplusplus || defined _MSC_VER)
2453 static void
2454 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2455 #else
2456 static void
2457 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2458     FILE *yyoutput;
2459     int yytype;
2460     YYSTYPE const * const yyvaluep;
2461 #endif
2462 {
2463   if (!yyvaluep)
2464     return;
2465 # ifdef YYPRINT
2466   if (yytype < YYNTOKENS)
2467     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2468 # else
2469   YYUSE (yyoutput);
2470 # endif
2471   switch (yytype)
2472     {
2473       default:
2474         break;
2475     }
2476 }
2477
2478
2479 /*--------------------------------.
2480 | Print this symbol on YYOUTPUT.  |
2481 `--------------------------------*/
2482
2483 #if (defined __STDC__ || defined __C99__FUNC__ \
2484      || defined __cplusplus || defined _MSC_VER)
2485 static void
2486 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2487 #else
2488 static void
2489 yy_symbol_print (yyoutput, yytype, yyvaluep)
2490     FILE *yyoutput;
2491     int yytype;
2492     YYSTYPE const * const yyvaluep;
2493 #endif
2494 {
2495   if (yytype < YYNTOKENS)
2496     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2497   else
2498     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2499
2500   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2501   YYFPRINTF (yyoutput, ")");
2502 }
2503
2504 /*------------------------------------------------------------------.
2505 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2506 | TOP (included).                                                   |
2507 `------------------------------------------------------------------*/
2508
2509 #if (defined __STDC__ || defined __C99__FUNC__ \
2510      || defined __cplusplus || defined _MSC_VER)
2511 static void
2512 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
2513 #else
2514 static void
2515 yy_stack_print (bottom, top)
2516     yytype_int16 *bottom;
2517     yytype_int16 *top;
2518 #endif
2519 {
2520   YYFPRINTF (stderr, "Stack now");
2521   for (; bottom <= top; ++bottom)
2522     YYFPRINTF (stderr, " %d", *bottom);
2523   YYFPRINTF (stderr, "\n");
2524 }
2525
2526 # define YY_STACK_PRINT(Bottom, Top)                            \
2527 do {                                                            \
2528   if (yydebug)                                                  \
2529     yy_stack_print ((Bottom), (Top));                           \
2530 } while (YYID (0))
2531
2532
2533 /*------------------------------------------------.
2534 | Report that the YYRULE is going to be reduced.  |
2535 `------------------------------------------------*/
2536
2537 #if (defined __STDC__ || defined __C99__FUNC__ \
2538      || defined __cplusplus || defined _MSC_VER)
2539 static void
2540 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2541 #else
2542 static void
2543 yy_reduce_print (yyvsp, yyrule)
2544     YYSTYPE *yyvsp;
2545     int yyrule;
2546 #endif
2547 {
2548   int yynrhs = yyr2[yyrule];
2549   int yyi;
2550   unsigned long int yylno = yyrline[yyrule];
2551   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2552              yyrule - 1, yylno);
2553   /* The symbols being reduced.  */
2554   for (yyi = 0; yyi < yynrhs; yyi++)
2555     {
2556       fprintf (stderr, "   $%d = ", yyi + 1);
2557       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2558                        &(yyvsp[(yyi + 1) - (yynrhs)])
2559                                        );
2560       fprintf (stderr, "\n");
2561     }
2562 }
2563
2564 # define YY_REDUCE_PRINT(Rule)          \
2565 do {                                    \
2566   if (yydebug)                          \
2567     yy_reduce_print (yyvsp, Rule); \
2568 } while (YYID (0))
2569
2570 /* Nonzero means print parse trace.  It is left uninitialized so that
2571    multiple parsers can coexist.  */
2572 int yydebug;
2573 #else /* !YYDEBUG */
2574 # define YYDPRINTF(Args)
2575 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2576 # define YY_STACK_PRINT(Bottom, Top)
2577 # define YY_REDUCE_PRINT(Rule)
2578 #endif /* !YYDEBUG */
2579
2580
2581 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2582 #ifndef YYINITDEPTH
2583 # define YYINITDEPTH 200
2584 #endif
2585
2586 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2587    if the built-in stack extension method is used).
2588
2589    Do not make this value too large; the results are undefined if
2590    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2591    evaluated with infinite-precision integer arithmetic.  */
2592
2593 #ifndef YYMAXDEPTH
2594 # define YYMAXDEPTH 10000
2595 #endif
2596
2597 \f
2598
2599 #if YYERROR_VERBOSE
2600
2601 # ifndef yystrlen
2602 #  if defined __GLIBC__ && defined _STRING_H
2603 #   define yystrlen strlen
2604 #  else
2605 /* Return the length of YYSTR.  */
2606 #if (defined __STDC__ || defined __C99__FUNC__ \
2607      || defined __cplusplus || defined _MSC_VER)
2608 static YYSIZE_T
2609 yystrlen (const char *yystr)
2610 #else
2611 static YYSIZE_T
2612 yystrlen (yystr)
2613     const char *yystr;
2614 #endif
2615 {
2616   YYSIZE_T yylen;
2617   for (yylen = 0; yystr[yylen]; yylen++)
2618     continue;
2619   return yylen;
2620 }
2621 #  endif
2622 # endif
2623
2624 # ifndef yystpcpy
2625 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2626 #   define yystpcpy stpcpy
2627 #  else
2628 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2629    YYDEST.  */
2630 #if (defined __STDC__ || defined __C99__FUNC__ \
2631      || defined __cplusplus || defined _MSC_VER)
2632 static char *
2633 yystpcpy (char *yydest, const char *yysrc)
2634 #else
2635 static char *
2636 yystpcpy (yydest, yysrc)
2637     char *yydest;
2638     const char *yysrc;
2639 #endif
2640 {
2641   char *yyd = yydest;
2642   const char *yys = yysrc;
2643
2644   while ((*yyd++ = *yys++) != '\0')
2645     continue;
2646
2647   return yyd - 1;
2648 }
2649 #  endif
2650 # endif
2651
2652 # ifndef yytnamerr
2653 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2654    quotes and backslashes, so that it's suitable for yyerror.  The
2655    heuristic is that double-quoting is unnecessary unless the string
2656    contains an apostrophe, a comma, or backslash (other than
2657    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2658    null, do not copy; instead, return the length of what the result
2659    would have been.  */
2660 static YYSIZE_T
2661 yytnamerr (char *yyres, const char *yystr)
2662 {
2663   if (*yystr == '"')
2664     {
2665       YYSIZE_T yyn = 0;
2666       char const *yyp = yystr;
2667
2668       for (;;)
2669         switch (*++yyp)
2670           {
2671           case '\'':
2672           case ',':
2673             goto do_not_strip_quotes;
2674
2675           case '\\':
2676             if (*++yyp != '\\')
2677               goto do_not_strip_quotes;
2678             /* Fall through.  */
2679           default:
2680             if (yyres)
2681               yyres[yyn] = *yyp;
2682             yyn++;
2683             break;
2684
2685           case '"':
2686             if (yyres)
2687               yyres[yyn] = '\0';
2688             return yyn;
2689           }
2690     do_not_strip_quotes: ;
2691     }
2692
2693   if (! yyres)
2694     return yystrlen (yystr);
2695
2696   return yystpcpy (yyres, yystr) - yyres;
2697 }
2698 # endif
2699
2700 /* Copy into YYRESULT an error message about the unexpected token
2701    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2702    including the terminating null byte.  If YYRESULT is null, do not
2703    copy anything; just return the number of bytes that would be
2704    copied.  As a special case, return 0 if an ordinary "syntax error"
2705    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2706    size calculation.  */
2707 static YYSIZE_T
2708 yysyntax_error (char *yyresult, int yystate, int yychar)
2709 {
2710   int yyn = yypact[yystate];
2711
2712   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2713     return 0;
2714   else
2715     {
2716       int yytype = YYTRANSLATE (yychar);
2717       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2718       YYSIZE_T yysize = yysize0;
2719       YYSIZE_T yysize1;
2720       int yysize_overflow = 0;
2721       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2722       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2723       int yyx;
2724
2725 # if 0
2726       /* This is so xgettext sees the translatable formats that are
2727          constructed on the fly.  */
2728       YY_("syntax error, unexpected %s");
2729       YY_("syntax error, unexpected %s, expecting %s");
2730       YY_("syntax error, unexpected %s, expecting %s or %s");
2731       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2732       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2733 # endif
2734       char *yyfmt;
2735       char const *yyf;
2736       static char const yyunexpected[] = "syntax error, unexpected %s";
2737       static char const yyexpecting[] = ", expecting %s";
2738       static char const yyor[] = " or %s";
2739       char yyformat[sizeof yyunexpected
2740                     + sizeof yyexpecting - 1
2741                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2742                        * (sizeof yyor - 1))];
2743       char const *yyprefix = yyexpecting;
2744
2745       /* Start YYX at -YYN if negative to avoid negative indexes in
2746          YYCHECK.  */
2747       int yyxbegin = yyn < 0 ? -yyn : 0;
2748
2749       /* Stay within bounds of both yycheck and yytname.  */
2750       int yychecklim = YYLAST - yyn + 1;
2751       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2752       int yycount = 1;
2753
2754       yyarg[0] = yytname[yytype];
2755       yyfmt = yystpcpy (yyformat, yyunexpected);
2756
2757       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2758         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2759           {
2760             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2761               {
2762                 yycount = 1;
2763                 yysize = yysize0;
2764                 yyformat[sizeof yyunexpected - 1] = '\0';
2765                 break;
2766               }
2767             yyarg[yycount++] = yytname[yyx];
2768             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2769             yysize_overflow |= (yysize1 < yysize);
2770             yysize = yysize1;
2771             yyfmt = yystpcpy (yyfmt, yyprefix);
2772             yyprefix = yyor;
2773           }
2774
2775       yyf = YY_(yyformat);
2776       yysize1 = yysize + yystrlen (yyf);
2777       yysize_overflow |= (yysize1 < yysize);
2778       yysize = yysize1;
2779
2780       if (yysize_overflow)
2781         return YYSIZE_MAXIMUM;
2782
2783       if (yyresult)
2784         {
2785           /* Avoid sprintf, as that infringes on the user's name space.
2786              Don't have undefined behavior even if the translation
2787              produced a string with the wrong number of "%s"s.  */
2788           char *yyp = yyresult;
2789           int yyi = 0;
2790           while ((*yyp = *yyf) != '\0')
2791             {
2792               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2793                 {
2794                   yyp += yytnamerr (yyp, yyarg[yyi++]);
2795                   yyf += 2;
2796                 }
2797               else
2798                 {
2799                   yyp++;
2800                   yyf++;
2801                 }
2802             }
2803         }
2804       return yysize;
2805     }
2806 }
2807 #endif /* YYERROR_VERBOSE */
2808 \f
2809
2810 /*-----------------------------------------------.
2811 | Release the memory associated to this symbol.  |
2812 `-----------------------------------------------*/
2813
2814 /*ARGSUSED*/
2815 #if (defined __STDC__ || defined __C99__FUNC__ \
2816      || defined __cplusplus || defined _MSC_VER)
2817 static void
2818 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2819 #else
2820 static void
2821 yydestruct (yymsg, yytype, yyvaluep)
2822     const char *yymsg;
2823     int yytype;
2824     YYSTYPE *yyvaluep;
2825 #endif
2826 {
2827   YYUSE (yyvaluep);
2828
2829   if (!yymsg)
2830     yymsg = "Deleting";
2831   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2832
2833   switch (yytype)
2834     {
2835
2836       default:
2837         break;
2838     }
2839 }
2840 \f
2841
2842 /* Prevent warnings from -Wmissing-prototypes.  */
2843
2844 #ifdef YYPARSE_PARAM
2845 #if defined __STDC__ || defined __cplusplus
2846 int yyparse (void *YYPARSE_PARAM);
2847 #else
2848 int yyparse ();
2849 #endif
2850 #else /* ! YYPARSE_PARAM */
2851 #if defined __STDC__ || defined __cplusplus
2852 int yyparse (void);
2853 #else
2854 int yyparse ();
2855 #endif
2856 #endif /* ! YYPARSE_PARAM */
2857
2858
2859
2860 /* The look-ahead symbol.  */
2861 int yychar;
2862
2863 /* The semantic value of the look-ahead symbol.  */
2864 YYSTYPE yylval;
2865
2866 /* Number of syntax errors so far.  */
2867 int yynerrs;
2868
2869
2870
2871 /*----------.
2872 | yyparse.  |
2873 `----------*/
2874
2875 #ifdef YYPARSE_PARAM
2876 #if (defined __STDC__ || defined __C99__FUNC__ \
2877      || defined __cplusplus || defined _MSC_VER)
2878 int
2879 yyparse (void *YYPARSE_PARAM)
2880 #else
2881 int
2882 yyparse (YYPARSE_PARAM)
2883     void *YYPARSE_PARAM;
2884 #endif
2885 #else /* ! YYPARSE_PARAM */
2886 #if (defined __STDC__ || defined __C99__FUNC__ \
2887      || defined __cplusplus || defined _MSC_VER)
2888 int
2889 yyparse (void)
2890 #else
2891 int
2892 yyparse ()
2893
2894 #endif
2895 #endif
2896 {
2897   
2898   int yystate;
2899   int yyn;
2900   int yyresult;
2901   /* Number of tokens to shift before error messages enabled.  */
2902   int yyerrstatus;
2903   /* Look-ahead token as an internal (translated) token number.  */
2904   int yytoken = 0;
2905 #if YYERROR_VERBOSE
2906   /* Buffer for error messages, and its allocated size.  */
2907   char yymsgbuf[128];
2908   char *yymsg = yymsgbuf;
2909   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2910 #endif
2911
2912   /* Three stacks and their tools:
2913      `yyss': related to states,
2914      `yyvs': related to semantic values,
2915      `yyls': related to locations.
2916
2917      Refer to the stacks thru separate pointers, to allow yyoverflow
2918      to reallocate them elsewhere.  */
2919
2920   /* The state stack.  */
2921   yytype_int16 yyssa[YYINITDEPTH];
2922   yytype_int16 *yyss = yyssa;
2923   yytype_int16 *yyssp;
2924
2925   /* The semantic value stack.  */
2926   YYSTYPE yyvsa[YYINITDEPTH];
2927   YYSTYPE *yyvs = yyvsa;
2928   YYSTYPE *yyvsp;
2929
2930
2931
2932 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2933
2934   YYSIZE_T yystacksize = YYINITDEPTH;
2935
2936   /* The variables used to return semantic value and location from the
2937      action routines.  */
2938   YYSTYPE yyval;
2939
2940
2941   /* The number of symbols on the RHS of the reduced rule.
2942      Keep to zero when no symbol should be popped.  */
2943   int yylen = 0;
2944
2945   YYDPRINTF ((stderr, "Starting parse\n"));
2946
2947   yystate = 0;
2948   yyerrstatus = 0;
2949   yynerrs = 0;
2950   yychar = YYEMPTY;             /* Cause a token to be read.  */
2951
2952   /* Initialize stack pointers.
2953      Waste one element of value and location stack
2954      so that they stay on the same level as the state stack.
2955      The wasted elements are never initialized.  */
2956
2957   yyssp = yyss;
2958   yyvsp = yyvs;
2959
2960   goto yysetstate;
2961
2962 /*------------------------------------------------------------.
2963 | yynewstate -- Push a new state, which is found in yystate.  |
2964 `------------------------------------------------------------*/
2965  yynewstate:
2966   /* In all cases, when you get here, the value and location stacks
2967      have just been pushed.  So pushing a state here evens the stacks.  */
2968   yyssp++;
2969
2970  yysetstate:
2971   *yyssp = yystate;
2972
2973   if (yyss + yystacksize - 1 <= yyssp)
2974     {
2975       /* Get the current used size of the three stacks, in elements.  */
2976       YYSIZE_T yysize = yyssp - yyss + 1;
2977
2978 #ifdef yyoverflow
2979       {
2980         /* Give user a chance to reallocate the stack.  Use copies of
2981            these so that the &'s don't force the real ones into
2982            memory.  */
2983         YYSTYPE *yyvs1 = yyvs;
2984         yytype_int16 *yyss1 = yyss;
2985
2986
2987         /* Each stack pointer address is followed by the size of the
2988            data in use in that stack, in bytes.  This used to be a
2989            conditional around just the two extra args, but that might
2990            be undefined if yyoverflow is a macro.  */
2991         yyoverflow (YY_("memory exhausted"),
2992                     &yyss1, yysize * sizeof (*yyssp),
2993                     &yyvs1, yysize * sizeof (*yyvsp),
2994
2995                     &yystacksize);
2996
2997         yyss = yyss1;
2998         yyvs = yyvs1;
2999       }
3000 #else /* no yyoverflow */
3001 # ifndef YYSTACK_RELOCATE
3002       goto yyexhaustedlab;
3003 # else
3004       /* Extend the stack our own way.  */
3005       if (YYMAXDEPTH <= yystacksize)
3006         goto yyexhaustedlab;
3007       yystacksize *= 2;
3008       if (YYMAXDEPTH < yystacksize)
3009         yystacksize = YYMAXDEPTH;
3010
3011       {
3012         yytype_int16 *yyss1 = yyss;
3013         union yyalloc *yyptr =
3014           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3015         if (! yyptr)
3016           goto yyexhaustedlab;
3017         YYSTACK_RELOCATE (yyss);
3018         YYSTACK_RELOCATE (yyvs);
3019
3020 #  undef YYSTACK_RELOCATE
3021         if (yyss1 != yyssa)
3022           YYSTACK_FREE (yyss1);
3023       }
3024 # endif
3025 #endif /* no yyoverflow */
3026
3027       yyssp = yyss + yysize - 1;
3028       yyvsp = yyvs + yysize - 1;
3029
3030
3031       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3032                   (unsigned long int) yystacksize));
3033
3034       if (yyss + yystacksize - 1 <= yyssp)
3035         YYABORT;
3036     }
3037
3038   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3039
3040   goto yybackup;
3041
3042 /*-----------.
3043 | yybackup.  |
3044 `-----------*/
3045 yybackup:
3046
3047   /* Do appropriate processing given the current state.  Read a
3048      look-ahead token if we need one and don't already have one.  */
3049
3050   /* First try to decide what to do without reference to look-ahead token.  */
3051   yyn = yypact[yystate];
3052   if (yyn == YYPACT_NINF)
3053     goto yydefault;
3054
3055   /* Not known => get a look-ahead token if don't already have one.  */
3056
3057   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
3058   if (yychar == YYEMPTY)
3059     {
3060       YYDPRINTF ((stderr, "Reading a token: "));
3061       yychar = YYLEX;
3062     }
3063
3064   if (yychar <= YYEOF)
3065     {
3066       yychar = yytoken = YYEOF;
3067       YYDPRINTF ((stderr, "Now at end of input.\n"));
3068     }
3069   else
3070     {
3071       yytoken = YYTRANSLATE (yychar);
3072       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3073     }
3074
3075   /* If the proper action on seeing token YYTOKEN is to reduce or to
3076      detect an error, take that action.  */
3077   yyn += yytoken;
3078   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3079     goto yydefault;
3080   yyn = yytable[yyn];
3081   if (yyn <= 0)
3082     {
3083       if (yyn == 0 || yyn == YYTABLE_NINF)
3084         goto yyerrlab;
3085       yyn = -yyn;
3086       goto yyreduce;
3087     }
3088
3089   if (yyn == YYFINAL)
3090     YYACCEPT;
3091
3092   /* Count tokens shifted since error; after three, turn off error
3093      status.  */
3094   if (yyerrstatus)
3095     yyerrstatus--;
3096
3097   /* Shift the look-ahead token.  */
3098   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3099
3100   /* Discard the shifted token unless it is eof.  */
3101   if (yychar != YYEOF)
3102     yychar = YYEMPTY;
3103
3104   yystate = yyn;
3105   *++yyvsp = yylval;
3106
3107   goto yynewstate;
3108
3109
3110 /*-----------------------------------------------------------.
3111 | yydefault -- do the default action for the current state.  |
3112 `-----------------------------------------------------------*/
3113 yydefault:
3114   yyn = yydefact[yystate];
3115   if (yyn == 0)
3116     goto yyerrlab;
3117   goto yyreduce;
3118
3119
3120 /*-----------------------------.
3121 | yyreduce -- Do a reduction.  |
3122 `-----------------------------*/
3123 yyreduce:
3124   /* yyn is the number of a rule to reduce with.  */
3125   yylen = yyr2[yyn];
3126
3127   /* If YYLEN is nonzero, implement the default value of the action:
3128      `$$ = $1'.
3129
3130      Otherwise, the following line sets YYVAL to garbage.
3131      This behavior is undocumented and Bison
3132      users should not rely upon it.  Assigning to YYVAL
3133      unconditionally makes the parser a bit smaller, and it avoids a
3134      GCC warning that YYVAL may be used uninitialized.  */
3135   yyval = yyvsp[1-yylen];
3136
3137
3138   YY_REDUCE_PRINT (yyn);
3139   switch (yyn)
3140     {
3141         case 2:
3142 #line 152 "swf5compiler.y"
3143     { bf = newBuffer();
3144                 bc = newBuffer();
3145         ;}
3146     break;
3147
3148   case 3:
3149 #line 155 "swf5compiler.y"
3150     { Buffer b = newBuffer();
3151                   bufferWriteConstants(b);
3152                   bufferConcat(b, bf);
3153                   bufferConcat(b, bc);
3154                   *((Buffer *)buffer) = b; ;}
3155     break;
3156
3157   case 4:
3158 #line 160 "swf5compiler.y"
3159     { Buffer b = newBuffer(); *((Buffer *)buffer) = b; ;}
3160     break;
3161
3162   case 7:
3163 #line 170 "swf5compiler.y"
3164     { bufferConcat(bc, (yyvsp[(1) - (1)].action)); ;}
3165     break;
3166
3167   case 8:
3168 #line 172 "swf5compiler.y"
3169     { bufferConcat(bf, (yyvsp[(1) - (1)].action)); ;}
3170     break;
3171
3172   case 9:
3173 #line 177 "swf5compiler.y"
3174     { (yyval.action) = (yyvsp[(1) - (1)].action); ;}
3175     break;
3176
3177   case 10:
3178 #line 180 "swf5compiler.y"
3179     { (yyval.action) = (yyvsp[(1) - (2)].action);
3180                   bufferConcat((yyval.action), (yyvsp[(2) - (2)].action)); ;}
3181     break;
3182
3183   case 11:
3184 #line 185 "swf5compiler.y"
3185     { ;}
3186     break;
3187
3188   case 12:
3189 #line 189 "swf5compiler.y"
3190     { (yyval.action) = NULL; ;}
3191     break;
3192
3193   case 13:
3194 #line 190 "swf5compiler.y"
3195     { (yyval.action) = (yyvsp[(2) - (3)].action); ;}
3196     break;
3197
3198   case 14:
3199 #line 191 "swf5compiler.y"
3200     { (yyval.action) = NULL; ;}
3201     break;
3202
3203   case 15:
3204 #line 192 "swf5compiler.y"
3205     { (yyval.action) = (yyvsp[(1) - (2)].action); ;}
3206     break;
3207
3208   case 23:
3209 #line 204 "swf5compiler.y"
3210     { (yyval.action) = (yyvsp[(3) - (7)].action);
3211                   bufferWriteOp((yyval.action), SWFACTION_WITH);
3212                   bufferWriteS16((yyval.action), 2);
3213                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(6) - (7)].action)));
3214                   bufferConcat((yyval.action), (yyvsp[(6) - (7)].action)); ;}
3215     break;
3216
3217   case 24:
3218 #line 215 "swf5compiler.y"
3219     { int tmp = chkctx(CTX_FUNCTION);
3220                   if(tmp < 0)
3221                         swf5error("return outside function");
3222                   (yyval.action) = newBuffer();
3223                   while(--tmp >= 0)
3224                         bufferWriteOp((yyval.action), SWFACTION_POP);
3225                   bufferWriteNull((yyval.action));
3226                   bufferWriteOp((yyval.action), SWFACTION_RETURN); ;}
3227     break;
3228
3229   case 25:
3230 #line 225 "swf5compiler.y"
3231     { int tmp = chkctx(CTX_FUNCTION);
3232                   if(tmp < 0)
3233                         swf5error("return outside function");
3234                   (yyval.action) = newBuffer();
3235                   while(--tmp >= 0)
3236                         bufferWriteOp((yyval.action), SWFACTION_POP);
3237                   bufferConcat((yyval.action), (yyvsp[(2) - (3)].action));
3238                   bufferWriteOp((yyval.action), SWFACTION_RETURN); ;}
3239     break;
3240
3241   case 27:
3242 #line 237 "swf5compiler.y"
3243     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action)); ;}
3244     break;
3245
3246   case 28:
3247 #line 242 "swf5compiler.y"
3248     { (yyval.action) = (yyvsp[(3) - (7)].action);
3249                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
3250                   bufferWriteS16((yyval.action), 2);
3251                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(7) - (7)].action))+5);
3252                   bufferConcat((yyval.action), (yyvsp[(7) - (7)].action));
3253                   bufferWriteOp((yyval.action), SWFACTION_BRANCHALWAYS);
3254                   bufferWriteS16((yyval.action), 2);
3255                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(5) - (7)].action)));
3256                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action)); ;}
3257     break;
3258
3259   case 29:
3260 #line 253 "swf5compiler.y"
3261     { (yyval.action) = (yyvsp[(3) - (5)].action);
3262                   bufferWriteOp((yyval.action), SWFACTION_LOGICALNOT);
3263                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
3264                   bufferWriteS16((yyval.action), 2);
3265                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(5) - (5)].action)));
3266                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action)); ;}
3267     break;
3268
3269   case 30:
3270 #line 262 "swf5compiler.y"
3271     { (yyval.action) = NULL; ;}
3272     break;
3273
3274   case 31:
3275 #line 263 "swf5compiler.y"
3276     { (yyval.action) = (yyvsp[(1) - (1)].action); ;}
3277     break;
3278
3279   case 32:
3280 #line 268 "swf5compiler.y"
3281     { addctx(CTX_SWITCH); ;}
3282     break;
3283
3284   case 33:
3285 #line 274 "swf5compiler.y"
3286     { (yyval.action) = (yyvsp[(3) - (7)].action);
3287                   bufferResolveSwitch((yyval.action), &(yyvsp[(6) - (7)].switchcases));
3288                   bufferResolveJumps((yyval.action));
3289                   bufferWriteOp((yyval.action), SWFACTION_POP);
3290                   delctx(CTX_SWITCH);
3291  /* FIXME: continue in switch continues surrounding loop, if any */
3292         ;}
3293     break;
3294
3295   case 34:
3296 #line 286 "swf5compiler.y"
3297     { (yyval.switchcases).count = 0;
3298                   (yyval.switchcases).list = 0; ;}
3299     break;
3300
3301   case 35:
3302 #line 290 "swf5compiler.y"
3303     { (yyval.switchcases) = (yyvsp[(1) - (2)].switchcases);
3304                   (yyval.switchcases).list = (struct switchcase*) realloc((yyval.switchcases).list, ((yyval.switchcases).count+1) * sizeof(struct switchcase));
3305                   (yyval.switchcases).list[(yyval.switchcases).count] = (yyvsp[(2) - (2)].switchcase);
3306                   (yyval.switchcases).count++; ;}
3307     break;
3308
3309   case 36:
3310 #line 298 "swf5compiler.y"
3311     { (yyval.switchcase).cond = (yyvsp[(2) - (6)].action);
3312                   (yyval.switchcase).action = (yyvsp[(4) - (6)].action);
3313                   (yyval.switchcase).isbreak = 1; ;}
3314     break;
3315
3316   case 37:
3317 #line 303 "swf5compiler.y"
3318     { (yyval.switchcase).cond = (yyvsp[(2) - (4)].action);
3319                   (yyval.switchcase).action = (yyvsp[(4) - (4)].action);
3320                   (yyval.switchcase).isbreak = 0; ;}
3321     break;
3322
3323   case 38:
3324 #line 308 "swf5compiler.y"
3325     { (yyval.switchcase).cond = NULL;
3326                   (yyval.switchcase).action = (yyvsp[(3) - (3)].action);
3327                   (yyval.switchcase).isbreak = 0; ;}
3328     break;
3329
3330   case 40:
3331 #line 318 "swf5compiler.y"
3332     { (yyval.str) = strdup("new"); ;}
3333     break;
3334
3335   case 41:
3336 #line 319 "swf5compiler.y"
3337     { (yyval.str) = strdup("delete"); ;}
3338     break;
3339
3340   case 42:
3341 #line 320 "swf5compiler.y"
3342     { (yyval.str) = strdup("random"); ;}
3343     break;
3344
3345   case 43:
3346 #line 321 "swf5compiler.y"
3347     { (yyval.str) = strdup("getTimer"); ;}
3348     break;
3349
3350   case 44:
3351 #line 322 "swf5compiler.y"
3352     { (yyval.str) = strdup("length"); ;}
3353     break;
3354
3355   case 45:
3356 #line 323 "swf5compiler.y"
3357     { (yyval.str) = strdup("concat"); ;}
3358     break;
3359
3360   case 46:
3361 #line 324 "swf5compiler.y"
3362     { (yyval.str) = strdup("substr"); ;}
3363     break;
3364
3365   case 47:
3366 #line 325 "swf5compiler.y"
3367     { (yyval.str) = strdup("trace"); ;}
3368     break;
3369
3370   case 48:
3371 #line 326 "swf5compiler.y"
3372     { (yyval.str) = strdup("int"); ;}
3373     break;
3374
3375   case 49:
3376 #line 327 "swf5compiler.y"
3377     { (yyval.str) = strdup("ord"); ;}
3378     break;
3379
3380   case 50:
3381 #line 328 "swf5compiler.y"
3382     { (yyval.str) = strdup("chr"); ;}
3383     break;
3384
3385   case 51:
3386 #line 329 "swf5compiler.y"
3387     { (yyval.str) = strdup("getURL"); ;}
3388     break;
3389
3390   case 52:
3391 #line 330 "swf5compiler.y"
3392     { (yyval.str) = strdup("getURL1"); ;}
3393     break;
3394
3395   case 53:
3396 #line 331 "swf5compiler.y"
3397     { (yyval.str) = strdup("nextFrame"); ;}
3398     break;
3399
3400   case 54:
3401 #line 332 "swf5compiler.y"
3402     { (yyval.str) = strdup("prevFrame"); ;}
3403     break;
3404
3405   case 55:
3406 #line 333 "swf5compiler.y"
3407     { (yyval.str) = strdup("play"); ;}
3408     break;
3409
3410   case 56:
3411 #line 334 "swf5compiler.y"
3412     { (yyval.str) = strdup("stop"); ;}
3413     break;
3414
3415   case 57:
3416 #line 335 "swf5compiler.y"
3417     { (yyval.str) = strdup("toggleQuality"); ;}
3418     break;
3419
3420   case 58:
3421 #line 336 "swf5compiler.y"
3422     { (yyval.str) = strdup("stopSounds"); ;}
3423     break;
3424
3425   case 59:
3426 #line 337 "swf5compiler.y"
3427     { (yyval.str) = strdup("dup"); ;}
3428     break;
3429
3430   case 60:
3431 #line 338 "swf5compiler.y"
3432     { (yyval.str) = strdup("swap"); ;}
3433     break;
3434
3435   case 61:
3436 #line 339 "swf5compiler.y"
3437     { (yyval.str) = strdup("pop"); ;}
3438     break;
3439
3440   case 62:
3441 #line 340 "swf5compiler.y"
3442     { (yyval.str) = strdup("push"); ;}
3443     break;
3444
3445   case 63:
3446 #line 341 "swf5compiler.y"
3447     { (yyval.str) = strdup("setRegister"); ;}
3448     break;
3449
3450   case 64:
3451 #line 342 "swf5compiler.y"
3452     { (yyval.str) = strdup("callFunction"); ;}
3453     break;
3454
3455   case 65:
3456 #line 343 "swf5compiler.y"
3457     { (yyval.str) = strdup("callMethod"); ;}
3458     break;
3459
3460   case 66:
3461 #line 344 "swf5compiler.y"
3462     { (yyval.str) = strdup("and"); ;}
3463     break;
3464
3465   case 67:
3466 #line 345 "swf5compiler.y"
3467     { (yyval.str) = strdup("or"); ;}
3468     break;
3469
3470   case 68:
3471 #line 346 "swf5compiler.y"
3472     { (yyval.str) = strdup("xor"); ;}
3473     break;
3474
3475   case 69:
3476 #line 347 "swf5compiler.y"
3477     { (yyval.str) = strdup("modulo"); ;}
3478     break;
3479
3480   case 70:
3481 #line 348 "swf5compiler.y"
3482     { (yyval.str) = strdup("add"); ;}
3483     break;
3484
3485   case 71:
3486 #line 349 "swf5compiler.y"
3487     { (yyval.str) = strdup("lessThan"); ;}
3488     break;
3489
3490   case 72:
3491 #line 350 "swf5compiler.y"
3492     { (yyval.str) = strdup("equals"); ;}
3493     break;
3494
3495   case 73:
3496 #line 351 "swf5compiler.y"
3497     { (yyval.str) = strdup("inc"); ;}
3498     break;
3499
3500   case 74:
3501 #line 352 "swf5compiler.y"
3502     { (yyval.str) = strdup("dec"); ;}
3503     break;
3504
3505   case 75:
3506 #line 353 "swf5compiler.y"
3507     { (yyval.str) = strdup("typeof"); ;}
3508     break;
3509
3510   case 76:
3511 #line 354 "swf5compiler.y"
3512     { (yyval.str) = strdup("instanceof"); ;}
3513     break;
3514
3515   case 77:
3516 #line 355 "swf5compiler.y"
3517     { (yyval.str) = strdup("enumerate"); ;}
3518     break;
3519
3520   case 78:
3521 #line 356 "swf5compiler.y"
3522     { (yyval.str) = strdup("initobject"); ;}
3523     break;
3524
3525   case 79:
3526 #line 357 "swf5compiler.y"
3527     { (yyval.str) = strdup("initarray"); ;}
3528     break;
3529
3530   case 80:
3531 #line 358 "swf5compiler.y"
3532     { (yyval.str) = strdup("getmember"); ;}
3533     break;
3534
3535   case 81:
3536 #line 359 "swf5compiler.y"
3537     { (yyval.str) = strdup("setmember"); ;}
3538     break;
3539
3540   case 82:
3541 #line 360 "swf5compiler.y"
3542     { (yyval.str) = strdup("shiftleft"); ;}
3543     break;
3544
3545   case 83:
3546 #line 361 "swf5compiler.y"
3547     { (yyval.str) = strdup("shiftright"); ;}
3548     break;
3549
3550   case 84:
3551 #line 362 "swf5compiler.y"
3552     { (yyval.str) = strdup("shiftright2"); ;}
3553     break;
3554
3555   case 85:
3556 #line 363 "swf5compiler.y"
3557     { (yyval.str) = strdup("varequals"); ;}
3558     break;
3559
3560   case 86:
3561 #line 364 "swf5compiler.y"
3562     { (yyval.str) = strdup("oldAdd"); ;}
3563     break;
3564
3565   case 87:
3566 #line 365 "swf5compiler.y"
3567     { (yyval.str) = strdup("subtract"); ;}
3568     break;
3569
3570   case 88:
3571 #line 366 "swf5compiler.y"
3572     { (yyval.str) = strdup("multiply"); ;}
3573     break;
3574
3575   case 89:
3576 #line 367 "swf5compiler.y"
3577     { (yyval.str) = strdup("divide"); ;}
3578     break;
3579
3580   case 90:
3581 #line 368 "swf5compiler.y"
3582     { (yyval.str) = strdup("oldequals"); ;}
3583     break;
3584
3585   case 91:
3586 #line 369 "swf5compiler.y"
3587     { (yyval.str) = strdup("oldlessthan"); ;}
3588     break;
3589
3590   case 92:
3591 #line 370 "swf5compiler.y"
3592     { (yyval.str) = strdup("logicaland"); ;}
3593     break;
3594
3595   case 93:
3596 #line 371 "swf5compiler.y"
3597     { (yyval.str) = strdup("logicalor"); ;}
3598     break;
3599
3600   case 94:
3601 #line 372 "swf5compiler.y"
3602     { (yyval.str) = strdup("not"); ;}
3603     break;
3604
3605   case 95:
3606 #line 373 "swf5compiler.y"
3607     { (yyval.str) = strdup("stringeq"); ;}
3608     break;
3609
3610   case 96:
3611 #line 374 "swf5compiler.y"
3612     { (yyval.str) = strdup("stringlength"); ;}
3613     break;
3614
3615   case 97:
3616 #line 375 "swf5compiler.y"
3617     { (yyval.str) = strdup("substring"); ;}
3618     break;
3619
3620   case 98:
3621 #line 376 "swf5compiler.y"
3622     { (yyval.str) = strdup("getvariable"); ;}
3623     break;
3624
3625   case 99:
3626 #line 377 "swf5compiler.y"
3627     { (yyval.str) = strdup("setvariable"); ;}
3628     break;
3629
3630   case 100:
3631 #line 378 "swf5compiler.y"
3632     { (yyval.str) = strdup("settargetexpression"); ;}
3633     break;
3634
3635   case 101:
3636 #line 379 "swf5compiler.y"
3637     { (yyval.str) = strdup("duplicatemovieclip"); ;}
3638     break;
3639
3640   case 102:
3641 #line 380 "swf5compiler.y"
3642     { (yyval.str) = strdup("removemovieclip"); ;}
3643     break;
3644
3645   case 103:
3646 #line 381 "swf5compiler.y"
3647     { (yyval.str) = strdup("startdrag"); ;}
3648     break;
3649
3650   case 104:
3651 #line 382 "swf5compiler.y"
3652     { (yyval.str) = strdup("stopdrag"); ;}
3653     break;
3654
3655   case 105:
3656 #line 383 "swf5compiler.y"
3657     { (yyval.str) = strdup("stringlessthan"); ;}
3658     break;
3659
3660   case 106:
3661 #line 384 "swf5compiler.y"
3662     { (yyval.str) = strdup("mblength"); ;}
3663     break;
3664
3665   case 107:
3666 #line 385 "swf5compiler.y"
3667     { (yyval.str) = strdup("mbsubstring"); ;}
3668     break;
3669
3670   case 108:
3671 #line 386 "swf5compiler.y"
3672     { (yyval.str) = strdup("mbord"); ;}
3673     break;
3674
3675   case 109:
3676 #line 387 "swf5compiler.y"
3677     { (yyval.str) = strdup("mbchr"); ;}
3678     break;
3679
3680   case 110:
3681 #line 388 "swf5compiler.y"
3682     { (yyval.str) = strdup("branchalways"); ;}
3683     break;
3684
3685   case 111:
3686 #line 389 "swf5compiler.y"
3687     { (yyval.str) = strdup("branchiftrue"); ;}
3688     break;
3689
3690   case 112:
3691 #line 390 "swf5compiler.y"
3692     { (yyval.str) = strdup("getURL2"); ;}
3693     break;
3694
3695   case 113:
3696 #line 391 "swf5compiler.y"
3697     { (yyval.str) = strdup("post"); ;}
3698     break;
3699
3700   case 114:
3701 #line 392 "swf5compiler.y"
3702     { (yyval.str) = strdup("get"); ;}
3703     break;
3704
3705   case 115:
3706 #line 393 "swf5compiler.y"
3707     { (yyval.str) = strdup("loadvariables"); ;}
3708     break;
3709
3710   case 116:
3711 #line 394 "swf5compiler.y"
3712     { (yyval.str) = strdup("loadMovie"); ;}
3713     break;
3714
3715   case 117:
3716 #line 399 "swf5compiler.y"
3717     { (yyval.exprlist).buffer = newBuffer();
3718                   (yyval.exprlist).count = 0; ;}
3719     break;
3720
3721   case 118:
3722 #line 403 "swf5compiler.y"
3723     { (yyval.exprlist).buffer = newBuffer();
3724                   bufferWriteHardString((yyval.exprlist).buffer, (byte*)(yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
3725                   (yyval.exprlist).count = 1; ;}
3726     break;
3727
3728   case 119:
3729 #line 408 "swf5compiler.y"
3730     { (yyval.exprlist) = (yyvsp[(1) - (3)].exprlist);
3731                   bufferWriteHardString((yyval.exprlist).buffer, (byte*)(yyvsp[(3) - (3)].str), strlen((yyvsp[(3) - (3)].str))+1);
3732                   ++(yyval.exprlist).count; ;}
3733     break;
3734
3735   case 120:
3736 #line 415 "swf5compiler.y"
3737     { addctx(CTX_FUNCTION); ;}
3738     break;
3739
3740   case 121:
3741 #line 420 "swf5compiler.y"
3742     { (yyval.action) = newBuffer();
3743                   bufferWriteOp((yyval.action), SWFACTION_DEFINEFUNCTION);
3744                   bufferWriteS16((yyval.action), strlen((yyvsp[(2) - (6)].str)) +
3745                                      bufferLength((yyvsp[(4) - (6)].exprlist).buffer) + 5);
3746                   bufferWriteHardString((yyval.action), (byte*) (yyvsp[(2) - (6)].str), strlen((yyvsp[(2) - (6)].str))+1);
3747                   bufferWriteS16((yyval.action), (yyvsp[(4) - (6)].exprlist).count);
3748                   bufferConcat((yyval.action), (yyvsp[(4) - (6)].exprlist).buffer);
3749                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(6) - (6)].action)));
3750                   bufferConcat((yyval.action), (yyvsp[(6) - (6)].action));
3751                   delctx(CTX_FUNCTION); ;}
3752     break;
3753
3754   case 122:
3755 #line 434 "swf5compiler.y"
3756     { (yyval.action) = newBuffer();
3757                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
3758                   free((yyvsp[(1) - (1)].str)); ;}
3759     break;
3760
3761   case 123:
3762 #line 439 "swf5compiler.y"
3763     { (yyval.action) = (yyvsp[(1) - (3)].action);
3764                   bufferWriteString((yyval.action), (yyvsp[(3) - (3)].str), strlen((yyvsp[(3) - (3)].str))+1);
3765                   bufferWriteOp((yyval.action), SWFACTION_GETMEMBER);
3766                   free((yyvsp[(3) - (3)].str)); ;}
3767     break;
3768
3769   case 124:
3770 #line 445 "swf5compiler.y"
3771     { (yyval.action) = (yyvsp[(1) - (4)].action);
3772                   bufferConcat((yyval.action), (yyvsp[(3) - (4)].action));
3773                   bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); ;}
3774     break;
3775
3776   case 127:
3777 #line 456 "swf5compiler.y"
3778     { addctx(CTX_LOOP); ;}
3779     break;
3780
3781   case 128:
3782 #line 461 "swf5compiler.y"
3783     { addctx(CTX_LOOP); ;}
3784     break;
3785
3786   case 129:
3787 #line 466 "swf5compiler.y"
3788     { addctx(CTX_LOOP); ;}
3789     break;
3790
3791   case 130:
3792 #line 471 "swf5compiler.y"
3793     { addctx(CTX_FOR_IN); ;}
3794     break;
3795
3796   case 131:
3797 #line 476 "swf5compiler.y"
3798     { (yyval.action) = (yyvsp[(3) - (5)].action);
3799                   bufferWriteOp((yyval.action), SWFACTION_LOGICALNOT);
3800                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
3801                   bufferWriteS16((yyval.action), 2);
3802                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(5) - (5)].action))+5);
3803                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
3804                   bufferWriteOp((yyval.action), SWFACTION_BRANCHALWAYS);
3805                   bufferWriteS16((yyval.action), 2);
3806                   bufferWriteS16((yyval.action), -(bufferLength((yyval.action))+2));
3807                   bufferResolveJumps((yyval.action));
3808                   delctx(CTX_LOOP); ;}
3809     break;
3810
3811   case 132:
3812 #line 489 "swf5compiler.y"
3813     { if((yyvsp[(2) - (6)].action))
3814                         {       (yyval.action) = (yyvsp[(2) - (6)].action);
3815                                 bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
3816                         }
3817                         else
3818                                 (yyval.action) = (yyvsp[(5) - (6)].action);
3819                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
3820                   bufferWriteS16((yyval.action), 2);
3821                   bufferWriteS16((yyval.action), -(bufferLength((yyval.action))+2));
3822                   bufferResolveJumps((yyval.action));
3823                   delctx(CTX_LOOP); ;}
3824     break;
3825
3826   case 133:
3827 #line 502 "swf5compiler.y"
3828     {
3829                   if((yyvsp[(3) - (10)].action))
3830                     (yyval.action) = (yyvsp[(3) - (10)].action);
3831                   else
3832                     (yyval.action) = newBuffer();
3833
3834                   if((yyvsp[(7) - (10)].action))
3835                   {
3836                     bufferWriteOp((yyval.action), SWFACTION_BRANCHALWAYS);
3837                     bufferWriteS16((yyval.action), 2);
3838                     bufferWriteS16((yyval.action), bufferLength((yyvsp[(7) - (10)].action)));
3839                   }
3840                   else
3841                     (yyvsp[(7) - (10)].action) = newBuffer();
3842
3843                   if((yyvsp[(5) - (10)].action))
3844                   {
3845                     bufferConcat((yyvsp[(7) - (10)].action), (yyvsp[(5) - (10)].action));
3846                     bufferWriteOp((yyvsp[(7) - (10)].action), SWFACTION_LOGICALNOT);
3847                     bufferWriteOp((yyvsp[(7) - (10)].action), SWFACTION_BRANCHIFTRUE);
3848                     bufferWriteS16((yyvsp[(7) - (10)].action), 2);
3849                     bufferWriteS16((yyvsp[(7) - (10)].action), bufferLength((yyvsp[(10) - (10)].action))+5);
3850                   }
3851
3852                   bufferConcat((yyvsp[(7) - (10)].action), (yyvsp[(10) - (10)].action));
3853                   bufferWriteOp((yyvsp[(7) - (10)].action), SWFACTION_BRANCHALWAYS);
3854                   bufferWriteS16((yyvsp[(7) - (10)].action), 2);
3855                   bufferWriteS16((yyvsp[(7) - (10)].action), -(bufferLength((yyvsp[(7) - (10)].action))+2));
3856                   bufferResolveJumps((yyvsp[(7) - (10)].action));
3857
3858                   bufferConcat((yyval.action), (yyvsp[(7) - (10)].action));
3859                                   delctx(CTX_LOOP);
3860                 ;}
3861     break;
3862
3863   case 134:
3864 #line 537 "swf5compiler.y"
3865     { Buffer b2, b3;
3866                   int tmp;
3867
3868                   (yyval.action) = (yyvsp[(5) - (8)].action);
3869                   bufferWriteOp((yyval.action), SWFACTION_ENUMERATE);   
3870
3871                   b2 = newBuffer();
3872                   bufferWriteSetRegister(b2, 0);
3873                   bufferWriteOp(b2, SWFACTION_PUSHDATA);
3874                   bufferWriteS16(b2, 1);
3875                   bufferWriteU8(b2, 2);
3876                   bufferWriteOp(b2, SWFACTION_NEWEQUALS);
3877                   bufferWriteOp(b2, SWFACTION_BRANCHIFTRUE);
3878                   bufferWriteS16(b2, 2);
3879
3880                   b3 = newBuffer();
3881 /* basically a lvalue could be used here rather than an ident !!! */
3882 /* probably by using reg1 for the test rather than reg0 */
3883                   bufferWriteString(b3, (yyvsp[(3) - (8)].str), strlen((yyvsp[(3) - (8)].str))+1);
3884                   bufferWriteRegister(b3, 0);
3885                   bufferWriteOp(b3, SWFACTION_SETVARIABLE);
3886                   bufferConcat(b3, (yyvsp[(8) - (8)].action));
3887                   bufferWriteS16(b2, bufferLength(b3) + 5);
3888                   tmp = bufferLength(b2) + bufferLength(b3) + 5;
3889                   bufferConcat((yyval.action), b2);
3890                   bufferWriteOp(b3, SWFACTION_BRANCHALWAYS);
3891                   bufferWriteS16(b3, 2);
3892                   bufferWriteS16(b3, -tmp);
3893                   bufferResolveJumps(b3);
3894                   bufferConcat((yyval.action), b3);
3895                   delctx(CTX_FOR_IN); ;}
3896     break;
3897
3898   case 135:
3899 #line 570 "swf5compiler.y"
3900     { Buffer b2, b3;
3901                   int tmp;
3902
3903                   (yyval.action) = (yyvsp[(6) - (9)].action);
3904                   bufferWriteOp((yyval.action), SWFACTION_ENUMERATE);   
3905
3906                   b2 = newBuffer();
3907                   bufferWriteSetRegister(b2, 0);
3908                   bufferWriteOp(b2, SWFACTION_PUSHDATA);
3909                   bufferWriteS16(b2, 1);
3910                   bufferWriteU8(b2, 2);
3911                   bufferWriteOp(b2, SWFACTION_NEWEQUALS);
3912                   bufferWriteOp(b2, SWFACTION_BRANCHIFTRUE);
3913                   bufferWriteS16(b2, 2);
3914                   // add size later
3915
3916                   b3 = newBuffer();
3917                   bufferWriteString(b3, (yyvsp[(4) - (9)].str), strlen((yyvsp[(4) - (9)].str))+1);
3918                   bufferWriteRegister(b3, 0);
3919                   bufferWriteOp(b3, SWFACTION_VAREQUALS);
3920                   bufferConcat(b3, (yyvsp[(9) - (9)].action));
3921                   bufferWriteS16(b2, bufferLength(b3) + 5);
3922                   tmp = bufferLength(b2) + bufferLength(b3) + 5;
3923                   bufferConcat((yyval.action), b2);
3924                   bufferWriteOp(b3, SWFACTION_BRANCHALWAYS);
3925                   bufferWriteS16(b3, 2);
3926                   bufferWriteS16(b3, -tmp);
3927                   bufferResolveJumps(b3);
3928                   bufferConcat((yyval.action), b3);
3929                   delctx(CTX_FOR_IN); ;}
3930     break;
3931
3932   case 136:
3933 #line 603 "swf5compiler.y"
3934     { (yyval.action) = NULL; ;}
3935     break;
3936
3937   case 138:
3938 #line 611 "swf5compiler.y"
3939     { if(chkctx(CTX_CONTINUE) < 0)
3940                         swf5error("continue outside loop");
3941                   (yyval.action) = newBuffer();
3942                   bufferWriteOp((yyval.action), SWFACTION_BRANCHALWAYS);
3943                   bufferWriteS16((yyval.action), 2);
3944                   bufferWriteS16((yyval.action), MAGIC_CONTINUE_NUMBER); ;}
3945     break;
3946
3947   case 139:
3948 #line 622 "swf5compiler.y"
3949     { int tmp = chkctx(CTX_BREAK);
3950                   if(tmp < 0)
3951                         swf5error("break outside switch / loop");
3952                   (yyval.action) = newBuffer();
3953                   if(tmp)       /* break out of a for .. in */
3954                         bufferWriteOp((yyval.action), SWFACTION_POP);
3955                   bufferWriteOp((yyval.action), SWFACTION_BRANCHALWAYS);
3956                   bufferWriteS16((yyval.action), 2);
3957                   bufferWriteS16((yyval.action), MAGIC_BREAK_NUMBER); ;}
3958     break;
3959
3960   case 140:
3961 #line 634 "swf5compiler.y"
3962     { (yyval.getURLMethod) = GETURL_METHOD_NOSEND; ;}
3963     break;
3964
3965   case 141:
3966 #line 636 "swf5compiler.y"
3967     { (yyval.getURLMethod) = GETURL_METHOD_GET; ;}
3968     break;
3969
3970   case 142:
3971 #line 638 "swf5compiler.y"
3972     { (yyval.getURLMethod) = GETURL_METHOD_POST; ;}
3973     break;
3974
3975   case 143:
3976 #line 640 "swf5compiler.y"
3977     { if(strcmp((yyvsp[(2) - (2)].str), "GET") == 0)
3978                                     (yyval.getURLMethod) = GETURL_METHOD_GET;
3979                                   else if(strcmp((yyvsp[(2) - (2)].str), "POST") == 0)
3980                                     (yyval.getURLMethod) = GETURL_METHOD_POST; ;}
3981     break;
3982
3983   case 144:
3984 #line 648 "swf5compiler.y"
3985     { char *lvlstring = (char*) malloc(12*sizeof(char));
3986                   sprintf(lvlstring, "_level%d", (yyvsp[(1) - (1)].intVal));
3987                   (yyval.action) = newBuffer();
3988                   bufferWriteString((yyval.action), lvlstring, strlen(lvlstring)+1);
3989                   free(lvlstring); ;}
3990     break;
3991
3992   case 145:
3993 #line 655 "swf5compiler.y"
3994     { (yyval.action) = newBuffer();
3995                   bufferWriteString((yyval.action), "_level", 7);
3996                   bufferConcat((yyval.action), (yyvsp[(1) - (1)].action));
3997                   bufferWriteOp((yyval.action), SWFACTION_STRINGCONCAT); ;}
3998     break;
3999
4000   case 146:
4001 #line 663 "swf5compiler.y"
4002     { (yyval.action) = (yyvsp[(3) - (4)].exprlist).buffer;
4003                   bufferWriteInt((yyval.action), (yyvsp[(3) - (4)].exprlist).count);
4004                   bufferWriteString((yyval.action), (yyvsp[(1) - (4)].str), strlen((yyvsp[(1) - (4)].str))+1);
4005                   bufferWriteOp((yyval.action), SWFACTION_CALLFUNCTION);
4006                   bufferWriteOp((yyval.action), SWFACTION_POP);
4007                   free((yyvsp[(1) - (4)].str)); ;}
4008     break;
4009
4010   case 147:
4011 #line 671 "swf5compiler.y"
4012     { (yyval.action) = newBuffer();
4013                   bufferWriteString((yyval.action), (yyvsp[(2) - (2)].str), strlen((yyvsp[(2) - (2)].str))+1);
4014                   free((yyvsp[(2) - (2)].str));
4015                   bufferWriteOp((yyval.action), SWFACTION_DELETE); ;}
4016     break;
4017
4018   case 148:
4019 #line 677 "swf5compiler.y"
4020     { (yyval.action) = (yyvsp[(2) - (4)].action);
4021                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
4022                   bufferWriteString((yyval.action), (yyvsp[(4) - (4)].str), strlen((yyvsp[(4) - (4)].str))+1);
4023                   free((yyvsp[(4) - (4)].str));
4024                   bufferWriteOp((yyval.action), SWFACTION_DELETEVAR); ;}
4025     break;
4026
4027   case 149:
4028 #line 684 "swf5compiler.y"
4029     { (yyval.action) = (yyvsp[(2) - (5)].action);
4030                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
4031                   bufferConcat((yyval.action), (yyvsp[(4) - (5)].action));
4032                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
4033                   bufferWriteOp((yyval.action), SWFACTION_DELETEVAR); ;}
4034     break;
4035
4036   case 150:
4037 #line 691 "swf5compiler.y"
4038     { (yyval.action) = (yyvsp[(3) - (4)].action);
4039                   bufferWriteOp((yyval.action), SWFACTION_TRACE); ;}
4040     break;
4041
4042   case 151:
4043 #line 695 "swf5compiler.y"
4044     { (yyval.action) = (yyvsp[(3) - (7)].action);
4045                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action));
4046                   bufferWriteOp((yyval.action), SWFACTION_GETURL2);
4047                   bufferWriteS16((yyval.action), 1);
4048                   bufferWriteU8((yyval.action), (yyvsp[(6) - (7)].getURLMethod)); ;}
4049     break;
4050
4051   case 152:
4052 #line 702 "swf5compiler.y"
4053     { (yyval.action) = (yyvsp[(3) - (7)].action);
4054                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action));
4055                   bufferWriteOp((yyval.action), SWFACTION_GETURL2);
4056                   bufferWriteS16((yyval.action), 1);
4057                   bufferWriteU8((yyval.action), 0xc0+(yyvsp[(6) - (7)].getURLMethod)); ;}
4058     break;
4059
4060   case 153:
4061 #line 709 "swf5compiler.y"
4062     { (yyval.action) = (yyvsp[(3) - (7)].action);
4063                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action));
4064                   bufferWriteOp((yyval.action), SWFACTION_GETURL2);
4065                   bufferWriteS16((yyval.action), 1);
4066                   bufferWriteU8((yyval.action), 0x80+(yyvsp[(6) - (7)].getURLMethod)); ;}
4067     break;
4068
4069   case 154:
4070 #line 716 "swf5compiler.y"
4071     { (yyval.action) = (yyvsp[(3) - (7)].action);
4072                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action));
4073                   bufferWriteOp((yyval.action), SWFACTION_GETURL2);
4074                   bufferWriteS16((yyval.action), 1);
4075                   bufferWriteU8((yyval.action), 0x40+(yyvsp[(6) - (7)].getURLMethod)); ;}
4076     break;
4077
4078   case 155:
4079 #line 723 "swf5compiler.y"
4080     { (yyval.action) = (yyvsp[(3) - (7)].action);
4081                   bufferConcat((yyval.action), (yyvsp[(5) - (7)].action));
4082                   bufferWriteOp((yyval.action), SWFACTION_GETURL2);
4083                   bufferWriteS16((yyval.action), 1);
4084                   bufferWriteU8((yyval.action), (yyvsp[(6) - (7)].getURLMethod)); ;}
4085     break;
4086
4087   case 156:
4088 #line 730 "swf5compiler.y"
4089     { (yyval.action) = (yyvsp[(3) - (4)].action);
4090                   bufferWriteOp((yyval.action), SWFACTION_CALLFRAME);
4091                   bufferWriteS16((yyval.action), 0); ;}
4092     break;
4093
4094   case 157:
4095 #line 736 "swf5compiler.y"
4096     { (yyval.action) = newBuffer();
4097                   bufferWriteString((yyval.action), "0", 2); /* no constraint */
4098                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
4099                   bufferConcat((yyval.action), (yyvsp[(3) - (6)].action));
4100                   bufferWriteOp((yyval.action), SWFACTION_STARTDRAGMOVIE); ;}
4101     break;
4102
4103   case 158:
4104 #line 743 "swf5compiler.y"
4105     { (yyval.action) = newBuffer();
4106                   bufferConcat((yyval.action), (yyvsp[(7) - (14)].action));
4107                   bufferConcat((yyval.action), (yyvsp[(11) - (14)].action));
4108                   bufferConcat((yyval.action), (yyvsp[(9) - (14)].action));
4109                   bufferConcat((yyval.action), (yyvsp[(13) - (14)].action));
4110                   bufferWriteString((yyval.action), "1", 2); /* has constraint */
4111                   bufferConcat((yyval.action), (yyvsp[(5) - (14)].action));
4112                   bufferConcat((yyval.action), (yyvsp[(3) - (14)].action));
4113                   bufferWriteOp((yyval.action), SWFACTION_STARTDRAGMOVIE); ;}
4114     break;
4115
4116   case 159:
4117 #line 754 "swf5compiler.y"
4118     { (yyval.action) = newBuffer();
4119                   bufferWriteOp((yyval.action), SWFACTION_STOPDRAGMOVIE); ;}
4120     break;
4121
4122   case 160:
4123 #line 759 "swf5compiler.y"
4124     { (yyval.action) = (yyvsp[(3) - (8)].action);
4125                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
4126                   bufferConcat((yyval.action), (yyvsp[(7) - (8)].action));
4127                   bufferWriteInt((yyval.action), 16384); /* magic number */
4128                   bufferWriteOp((yyval.action), SWFACTION_ADD);
4129                   bufferWriteOp((yyval.action), SWFACTION_DUPLICATECLIP); ;}
4130     break;
4131
4132   case 161:
4133 #line 767 "swf5compiler.y"
4134     { (yyval.action) = (yyvsp[(3) - (4)].action);
4135                   bufferWriteOp((yyval.action), SWFACTION_REMOVECLIP); ;}
4136     break;
4137
4138   case 162:
4139 #line 771 "swf5compiler.y"
4140     { (yyval.action) = newBuffer();
4141                   bufferWriteOp((yyval.action), SWFACTION_GETURL);
4142                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (6)].str)) + strlen((yyvsp[(5) - (6)].str)) + 2);
4143                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (6)].str), strlen((yyvsp[(3) - (6)].str)));
4144                   bufferWriteU8((yyval.action), 0);
4145                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(5) - (6)].str), strlen((yyvsp[(5) - (6)].str)));
4146                   bufferWriteU8((yyval.action), 0); ;}
4147     break;
4148
4149   case 163:
4150 #line 781 "swf5compiler.y"
4151     { (yyval.action) = newBuffer();
4152                   bufferWriteOp((yyval.action), SWFACTION_NEXTFRAME); ;}
4153     break;
4154
4155   case 164:
4156 #line 785 "swf5compiler.y"
4157     { (yyval.action) = newBuffer();
4158                   bufferWriteOp((yyval.action), SWFACTION_PREVFRAME); ;}
4159     break;
4160
4161   case 165:
4162 #line 789 "swf5compiler.y"
4163     { (yyval.action) = newBuffer();
4164                   bufferWriteOp((yyval.action), SWFACTION_PLAY); ;}
4165     break;
4166
4167   case 166:
4168 #line 793 "swf5compiler.y"
4169     { (yyval.action) = newBuffer();
4170                   bufferWriteOp((yyval.action), SWFACTION_STOP); ;}
4171     break;
4172
4173   case 167:
4174 #line 797 "swf5compiler.y"
4175     { (yyval.action) = newBuffer();
4176                   bufferWriteOp((yyval.action), SWFACTION_STOPSOUNDS); ;}
4177     break;
4178
4179   case 168:
4180 #line 801 "swf5compiler.y"
4181     { (yyval.action) = newBuffer();
4182                   bufferWriteOp((yyval.action), SWFACTION_TOGGLEQUALITY); ;}
4183     break;
4184
4185   case 169:
4186 #line 805 "swf5compiler.y"
4187     { (yyval.action) = newBuffer();
4188                   bufferWriteOp((yyval.action), SWFACTION_GOTOFRAME);
4189                   bufferWriteS16((yyval.action), 2);
4190                   bufferWriteS16((yyval.action), (yyvsp[(3) - (4)].intVal)); ;}
4191     break;
4192
4193   case 170:
4194 #line 811 "swf5compiler.y"
4195     { (yyval.action) = newBuffer();
4196                   bufferWriteOp((yyval.action), SWFACTION_GOTOLABEL);
4197                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (4)].str))+1);
4198                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
4199                   free((yyvsp[(3) - (4)].str)); ;}
4200     break;
4201
4202   case 171:
4203 #line 818 "swf5compiler.y"
4204     { (yyval.action) = (yyvsp[(3) - (4)].action);
4205                   bufferWriteOp((yyval.action), SWFACTION_GOTOEXPRESSION);
4206                   bufferWriteS16((yyval.action), 1);
4207                   bufferWriteU8((yyval.action), 0); ;}
4208     break;
4209
4210   case 172:
4211 #line 824 "swf5compiler.y"
4212     { (yyval.action) = newBuffer();
4213                   bufferWriteOp((yyval.action), SWFACTION_SETTARGET);
4214                   bufferWriteS16((yyval.action), strlen((yyvsp[(3) - (4)].str))+1);
4215                   bufferWriteHardString((yyval.action), (byte*)(yyvsp[(3) - (4)].str), strlen((yyvsp[(3) - (4)].str))+1);
4216                   free((yyvsp[(3) - (4)].str)); ;}
4217     break;
4218
4219   case 173:
4220 #line 831 "swf5compiler.y"
4221     { (yyval.action) = (yyvsp[(3) - (4)].action);
4222                   bufferWriteOp((yyval.action), SWFACTION_SETTARGETEXPRESSION); ;}
4223     break;
4224
4225   case 174:
4226 #line 840 "swf5compiler.y"
4227     { (yyval.action) = (yyvsp[(3) - (4)].exprlist).buffer;
4228                   bufferWriteInt((yyval.action), (yyvsp[(3) - (4)].exprlist).count);
4229                   bufferWriteString((yyval.action), (yyvsp[(1) - (4)].str), strlen((yyvsp[(1) - (4)].str))+1);
4230                   bufferWriteOp((yyval.action), SWFACTION_CALLFUNCTION);
4231                   free((yyvsp[(1) - (4)].str)); ;}
4232     break;
4233
4234   case 175:
4235 #line 847 "swf5compiler.y"
4236     { (yyval.action) = (yyvsp[(3) - (4)].action);
4237                   bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE); ;}
4238     break;
4239
4240   case 176:
4241 #line 851 "swf5compiler.y"
4242     { (yyval.action) = newBuffer();
4243                   bufferWriteOp((yyval.action), SWFACTION_GETTIMER); ;}
4244     break;
4245
4246   case 177:
4247 #line 855 "swf5compiler.y"
4248     { (yyval.action) = (yyvsp[(3) - (4)].action);
4249                   bufferWriteOp((yyval.action), SWFACTION_RANDOM); ;}
4250     break;
4251
4252   case 178:
4253 #line 859 "swf5compiler.y"
4254     { (yyval.action) = (yyvsp[(3) - (4)].action);
4255                   bufferWriteOp((yyval.action), SWFACTION_STRINGLENGTH); ;}
4256     break;
4257
4258   case 179:
4259 #line 863 "swf5compiler.y"
4260     { (yyval.action) = (yyvsp[(3) - (4)].action);
4261                   bufferWriteOp((yyval.action), SWFACTION_INT); ;}
4262     break;
4263
4264   case 180:
4265 #line 867 "swf5compiler.y"
4266     { (yyval.action) = (yyvsp[(3) - (4)].action);
4267                   bufferWriteOp((yyval.action), SWFACTION_ORD); ;}
4268     break;
4269
4270   case 181:
4271 #line 871 "swf5compiler.y"
4272     { (yyval.action) = (yyvsp[(3) - (4)].action);
4273                   bufferWriteOp((yyval.action), SWFACTION_CHR); ;}
4274     break;
4275
4276   case 182:
4277 #line 875 "swf5compiler.y"
4278     { (yyval.action) = (yyvsp[(3) - (6)].action);
4279                   bufferConcat((yyval.action), (yyvsp[(5) - (6)].action));
4280                   bufferWriteOp((yyval.action), SWFACTION_STRINGCONCAT); ;}
4281     break;
4282
4283   case 183:
4284 #line 880 "swf5compiler.y"
4285     { (yyval.action) = (yyvsp[(3) - (8)].action);
4286                   bufferConcat((yyval.action), (yyvsp[(5) - (8)].action));
4287                   bufferConcat((yyval.action), (yyvsp[(7) - (8)].action));
4288                   bufferWriteOp((yyval.action), SWFACTION_SUBSTRING); ;}
4289     break;
4290
4291   case 184:
4292 #line 886 "swf5compiler.y"
4293     { (yyval.action) = (yyvsp[(3) - (4)].action);
4294                   bufferWriteOp((yyval.action), SWFACTION_TYPEOF); ;}
4295     break;
4296
4297   case 185:
4298 #line 894 "swf5compiler.y"
4299     { (yyval.exprlist).buffer = newBuffer();
4300                   (yyval.exprlist).count = 0; ;}
4301     break;
4302
4303   case 186:
4304 #line 898 "swf5compiler.y"
4305     { (yyval.exprlist).buffer = (yyvsp[(1) - (1)].action);
4306                   (yyval.exprlist).count = 1; ;}
4307     break;
4308
4309   case 187:
4310 #line 903 "swf5compiler.y"
4311     { Buffer tmp = newBuffer();
4312                   bufferConcat(tmp, (yyvsp[(3) - (3)].action));
4313                   bufferConcat(tmp, (yyval.exprlist).buffer);
4314                   (yyval.exprlist).buffer = tmp;
4315                   ++(yyval.exprlist).count;  ;}
4316     break;
4317
4318   case 188:
4319 #line 912 "swf5compiler.y"
4320     { (yyval.action) = newBuffer();
4321                   bufferWriteOp((yyval.action), SWFACTION_DEFINEFUNCTION);
4322                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(3) - (5)].exprlist).buffer) + 5);
4323                   bufferWriteU8((yyval.action), 0); /* empty function name */
4324                   bufferWriteS16((yyval.action), (yyvsp[(3) - (5)].exprlist).count);
4325                   bufferConcat((yyval.action), (yyvsp[(3) - (5)].exprlist).buffer);
4326                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(5) - (5)].action)));
4327                   bufferConcat((yyval.action), (yyvsp[(5) - (5)].action));
4328                   delctx(CTX_FUNCTION); ;}
4329     break;
4330
4331   case 189:
4332 #line 925 "swf5compiler.y"
4333     { (yyval.action) = (yyvsp[(5) - (6)].exprlist).buffer;
4334                   bufferWriteInt((yyval.action), (yyvsp[(5) - (6)].exprlist).count);
4335                   bufferConcat((yyval.action), (yyvsp[(1) - (6)].action));
4336                   bufferWriteString((yyval.action), (yyvsp[(3) - (6)].str), strlen((yyvsp[(3) - (6)].str))+1);
4337                   bufferWriteOp((yyval.action), SWFACTION_CALLMETHOD);
4338                   free((yyvsp[(3) - (6)].str)); ;}
4339     break;
4340
4341   case 190:
4342 #line 933 "swf5compiler.y"
4343     { (yyval.action) = (yyvsp[(6) - (7)].exprlist).buffer;
4344                   bufferWriteInt((yyval.action), (yyvsp[(6) - (7)].exprlist).count);
4345                   bufferConcat((yyval.action), (yyvsp[(1) - (7)].action));
4346                   bufferConcat((yyval.action), (yyvsp[(3) - (7)].action));
4347                   bufferWriteOp((yyval.action), SWFACTION_CALLMETHOD); ;}
4348     break;
4349
4350   case 191:
4351 #line 942 "swf5compiler.y"
4352     { (yyval.action) = newBuffer();
4353                   bufferWriteString((yyval.action), (yyvsp[(1) - (3)].str), strlen((yyvsp[(1) - (3)].str))+1);
4354                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action)); ;}
4355     break;
4356
4357   case 192:
4358 #line 949 "swf5compiler.y"
4359     { (yyval.exprlist).buffer = (yyvsp[(1) - (1)].action);
4360                   (yyval.exprlist).count = 1; ;}
4361     break;
4362
4363   case 193:
4364 #line 953 "swf5compiler.y"
4365     { bufferConcat((yyval.exprlist).buffer, (yyvsp[(3) - (3)].action));
4366                   ++(yyval.exprlist).count;  ;}
4367     break;
4368
4369   case 194:
4370 #line 958 "swf5compiler.y"
4371     { (yyval.op) = SWFACTION_NEWADD; ;}
4372     break;
4373
4374   case 195:
4375 #line 959 "swf5compiler.y"
4376     { (yyval.op) = SWFACTION_SUBTRACT; ;}
4377     break;
4378
4379   case 196:
4380 #line 960 "swf5compiler.y"
4381     { (yyval.op) = SWFACTION_MULTIPLY; ;}
4382     break;
4383
4384   case 197:
4385 #line 961 "swf5compiler.y"
4386     { (yyval.op) = SWFACTION_DIVIDE; ;}
4387     break;
4388
4389   case 198:
4390 #line 962 "swf5compiler.y"
4391     { (yyval.op) = SWFACTION_MODULO; ;}
4392     break;
4393
4394   case 199:
4395 #line 963 "swf5compiler.y"
4396     { (yyval.op) = SWFACTION_BITWISEAND; ;}
4397     break;
4398
4399   case 200:
4400 #line 964 "swf5compiler.y"
4401     { (yyval.op) = SWFACTION_BITWISEOR; ;}
4402     break;
4403
4404   case 201:
4405 #line 965 "swf5compiler.y"
4406     { (yyval.op) = SWFACTION_BITWISEXOR; ;}
4407     break;
4408
4409   case 202:
4410 #line 966 "swf5compiler.y"
4411     { (yyval.op) = SWFACTION_SHIFTLEFT; ;}
4412     break;
4413
4414   case 203:
4415 #line 967 "swf5compiler.y"
4416     { (yyval.op) = SWFACTION_SHIFTRIGHT; ;}
4417     break;
4418
4419   case 204:
4420 #line 968 "swf5compiler.y"
4421     { (yyval.op) = SWFACTION_SHIFTRIGHT2; ;}
4422     break;
4423
4424   case 205:
4425 #line 972 "swf5compiler.y"
4426     { (yyval.op) = SWFACTION_INCREMENT; ;}
4427     break;
4428
4429   case 206:
4430 #line 973 "swf5compiler.y"
4431     { (yyval.op) = SWFACTION_DECREMENT; ;}
4432     break;
4433
4434   case 207:
4435 #line 992 "swf5compiler.y"
4436     { if((yyvsp[(1) - (1)].lval).obj)
4437                   {
4438                     (yyval.action) = (yyvsp[(1) - (1)].lval).obj;
4439
4440                     if((yyvsp[(1) - (1)].lval).ident)
4441                       bufferConcat((yyval.action), (yyvsp[(1) - (1)].lval).ident);
4442                     else
4443                       bufferConcat((yyval.action), (yyvsp[(1) - (1)].lval).memexpr);
4444
4445                     bufferWriteOp((yyval.action), SWFACTION_GETMEMBER);
4446                   }
4447                   else
4448                   {
4449                     (yyval.action) = (yyvsp[(1) - (1)].lval).ident;
4450                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
4451                   }
4452                 ;}
4453     break;
4454
4455   case 210:
4456 #line 1016 "swf5compiler.y"
4457     { (yyval.lval).ident = newBuffer();
4458                   bufferWriteString((yyval.lval).ident, (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
4459                   free((yyvsp[(1) - (1)].str));
4460                   (yyval.lval).obj = 0;
4461                   (yyval.lval).memexpr = 0; ;}
4462     break;
4463
4464   case 211:
4465 #line 1023 "swf5compiler.y"
4466     { (yyval.lval).obj = (yyvsp[(1) - (3)].action);
4467                   (yyval.lval).ident = newBuffer();
4468                   bufferWriteString((yyval.lval).ident, (yyvsp[(3) - (3)].str), strlen((yyvsp[(3) - (3)].str))+1);
4469                   (yyval.lval).memexpr = 0; ;}
4470     break;
4471
4472   case 212:
4473 #line 1029 "swf5compiler.y"
4474     { (yyval.lval).obj = (yyvsp[(1) - (4)].action);
4475                   (yyval.lval).memexpr = (yyvsp[(3) - (4)].action);
4476                   (yyval.lval).ident = 0; ;}
4477     break;
4478
4479   case 214:
4480 #line 1040 "swf5compiler.y"
4481     { (yyval.action) = (yyvsp[(2) - (2)].action);
4482                   bufferWriteInt((yyvsp[(2) - (2)].action), -1);
4483                   bufferWriteOp((yyvsp[(2) - (2)].action), SWFACTION_MULTIPLY); ;}
4484     break;
4485
4486   case 215:
4487 #line 1045 "swf5compiler.y"
4488     { (yyval.action) = (yyvsp[(2) - (2)].action);
4489                   bufferWriteInt((yyvsp[(2) - (2)].action), 0xffffffff);
4490                   bufferWriteOp((yyvsp[(2) - (2)].action), SWFACTION_BITWISEXOR); ;}
4491     break;
4492
4493   case 216:
4494 #line 1050 "swf5compiler.y"
4495     { (yyval.action) = (yyvsp[(2) - (2)].action);
4496                   bufferWriteOp((yyvsp[(2) - (2)].action), SWFACTION_LOGICALNOT); ;}
4497     break;
4498
4499   case 217:
4500 #line 1054 "swf5compiler.y"
4501     { (yyval.action) = (yyvsp[(1) - (3)].action);
4502                   bufferWriteOp((yyval.action), SWFACTION_DUP);
4503                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
4504                   bufferWriteS16((yyval.action), 2);
4505                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(3) - (3)].action))+1);
4506                   bufferWriteOp((yyval.action), SWFACTION_POP);
4507                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action)); ;}
4508     break;
4509
4510   case 218:
4511 #line 1063 "swf5compiler.y"
4512     { (yyval.action) = (yyvsp[(1) - (3)].action);
4513                   bufferWriteOp((yyval.action), SWFACTION_DUP);
4514                   bufferWriteOp((yyval.action), SWFACTION_LOGICALNOT);
4515                   bufferWriteOp((yyval.action), SWFACTION_BRANCHIFTRUE);
4516                   bufferWriteS16((yyval.action), 2);
4517                   bufferWriteS16((yyval.action), bufferLength((yyvsp[(3) - (3)].action))+1);
4518                   bufferWriteOp((yyval.action), SWFACTION_POP);
4519                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action)); ;}
4520     break;
4521
4522   case 219:
4523 #line 1073 "swf5compiler.y"
4524     { (yyval.action) = (yyvsp[(1) - (3)].action);
4525                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4526                   bufferWriteOp((yyval.action), SWFACTION_MULTIPLY); ;}
4527     break;
4528
4529   case 220:
4530 #line 1078 "swf5compiler.y"
4531     { (yyval.action) = (yyvsp[(1) - (3)].action);
4532                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4533                   bufferWriteOp((yyval.action), SWFACTION_DIVIDE); ;}
4534     break;
4535
4536   case 221:
4537 #line 1083 "swf5compiler.y"
4538     { (yyval.action) = (yyvsp[(1) - (3)].action);
4539                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4540                   bufferWriteOp((yyval.action), SWFACTION_MODULO); ;}
4541     break;
4542
4543   case 222:
4544 #line 1088 "swf5compiler.y"
4545     { (yyval.action) = (yyvsp[(1) - (3)].action);
4546                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4547                   bufferWriteOp((yyval.action), SWFACTION_NEWADD); ;}
4548     break;
4549
4550   case 223:
4551 #line 1093 "swf5compiler.y"
4552     { (yyval.action) = (yyvsp[(1) - (3)].action);
4553                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4554                   bufferWriteOp((yyval.action), SWFACTION_SUBTRACT); ;}
4555     break;
4556
4557   case 224:
4558 #line 1098 "swf5compiler.y"
4559     { (yyval.action) = (yyvsp[(1) - (3)].action);
4560                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4561                   bufferWriteOp((yyval.action), SWFACTION_BITWISEAND); ;}
4562     break;
4563
4564   case 225:
4565 #line 1103 "swf5compiler.y"
4566     { (yyval.action) = (yyvsp[(1) - (3)].action);
4567                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4568                   bufferWriteOp((yyval.action), SWFACTION_BITWISEOR); ;}
4569     break;
4570
4571   case 226:
4572 #line 1108 "swf5compiler.y"
4573     { (yyval.action) = (yyvsp[(1) - (3)].action);
4574                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4575                   bufferWriteOp((yyval.action), SWFACTION_BITWISEXOR); ;}
4576     break;
4577
4578   case 227:
4579 #line 1113 "swf5compiler.y"
4580     { (yyval.action) = (yyvsp[(1) - (3)].action);
4581                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4582                   bufferWriteOp((yyval.action), SWFACTION_NEWLESSTHAN); ;}
4583     break;
4584
4585   case 228:
4586 #line 1118 "swf5compiler.y"
4587     { (yyval.action) = (yyvsp[(3) - (3)].action);
4588                   bufferConcat((yyval.action), (yyvsp[(1) - (3)].action));
4589                   bufferWriteOp((yyval.action), SWFACTION_NEWLESSTHAN); ;}
4590     break;
4591
4592   case 229:
4593 #line 1123 "swf5compiler.y"
4594     { (yyval.action) = (yyvsp[(3) - (3)].action);
4595                   bufferConcat((yyval.action), (yyvsp[(1) - (3)].action));
4596                   bufferWriteOp((yyval.action), SWFACTION_NEWLESSTHAN);
4597                   bufferWriteOp((yyval.action), SWFACTION_LOGICALNOT); ;}
4598     break;
4599
4600   case 230:
4601 #line 1129 "swf5compiler.y"
4602     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4603                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_NEWLESSTHAN);
4604                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_LOGICALNOT); ;}
4605     break;
4606
4607   case 231:
4608 #line 1134 "swf5compiler.y"
4609     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4610                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_NEWEQUALS); ;}
4611     break;
4612
4613   case 232:
4614 #line 1138 "swf5compiler.y"
4615     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4616                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_NEWEQUALS);
4617                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_LOGICALNOT); ;}
4618     break;
4619
4620   case 233:
4621 #line 1143 "swf5compiler.y"
4622     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4623                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_SHIFTLEFT); ;}
4624     break;
4625
4626   case 234:
4627 #line 1147 "swf5compiler.y"
4628     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4629                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_SHIFTRIGHT); ;}
4630     break;
4631
4632   case 235:
4633 #line 1151 "swf5compiler.y"
4634     { bufferConcat((yyvsp[(1) - (3)].action), (yyvsp[(3) - (3)].action));
4635                   bufferWriteOp((yyvsp[(1) - (3)].action), SWFACTION_SHIFTRIGHT2); ;}
4636     break;
4637
4638   case 236:
4639 #line 1155 "swf5compiler.y"
4640     { bufferWriteOp((yyvsp[(1) - (5)].action), SWFACTION_BRANCHIFTRUE);
4641                   bufferWriteS16((yyvsp[(1) - (5)].action), 2);
4642                   bufferWriteS16((yyvsp[(1) - (5)].action), bufferLength((yyvsp[(5) - (5)].action))+5);
4643                   bufferConcat((yyvsp[(1) - (5)].action), (yyvsp[(5) - (5)].action));
4644                   bufferWriteOp((yyvsp[(1) - (5)].action), SWFACTION_BRANCHALWAYS);
4645                   bufferWriteS16((yyvsp[(1) - (5)].action), 2);
4646                   bufferWriteS16((yyvsp[(1) - (5)].action), bufferLength((yyvsp[(3) - (5)].action)));
4647                   bufferConcat((yyvsp[(1) - (5)].action), (yyvsp[(3) - (5)].action)); ;}
4648     break;
4649
4650   case 237:
4651 #line 1165 "swf5compiler.y"
4652     { if((yyvsp[(1) - (3)].lval).obj) /* obj[memexpr] or obj.ident */
4653                   {
4654                     (yyval.action) = (yyvsp[(1) - (3)].lval).obj;
4655
4656                     if((yyvsp[(1) - (3)].lval).ident)
4657                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).ident);
4658                     else
4659                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).memexpr);
4660
4661                     bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4662                     bufferWriteSetRegister((yyval.action), 0);
4663                     bufferWriteOp((yyval.action), SWFACTION_SETMEMBER);
4664                     bufferWriteRegister((yyval.action), 0);
4665                   }
4666                   else /* just ident */
4667                   {
4668                     (yyval.action) = (yyvsp[(3) - (3)].action);
4669                     bufferWriteOp((yyval.action), SWFACTION_DUP);
4670                     bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).ident);
4671                     bufferWriteOp((yyval.action), SWFACTION_SWAP);
4672                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
4673                   }
4674 /* tricky case missing here: lvalue ASSIGN expr */
4675 /* like in x = y += z; */
4676                 ;}
4677     break;
4678
4679   case 238:
4680 #line 1192 "swf5compiler.y"
4681     { (yyval.action) = (yyvsp[(1) - (3)].action);
4682                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4683                   bufferWriteOp((yyval.action), SWFACTION_INSTANCEOF); ;}
4684     break;
4685
4686   case 240:
4687 #line 1202 "swf5compiler.y"
4688     { (yyval.action) = newBuffer();
4689                   bufferWriteInt((yyval.action), 0);
4690                   bufferWriteString((yyval.action), (yyvsp[(2) - (2)].str), strlen((yyvsp[(2) - (2)].str))+1);
4691                   bufferWriteOp((yyval.action), SWFACTION_NEW); ;}
4692     break;
4693
4694   case 241:
4695 #line 1208 "swf5compiler.y"
4696     { (yyval.action) = (yyvsp[(4) - (5)].exprlist).buffer;
4697                   bufferWriteInt((yyval.action), (yyvsp[(4) - (5)].exprlist).count);
4698                   bufferWriteString((yyval.action), (yyvsp[(2) - (5)].str), strlen((yyvsp[(2) - (5)].str))+1);
4699                   bufferWriteOp((yyval.action), SWFACTION_NEW); ;}
4700     break;
4701
4702   case 242:
4703 #line 1214 "swf5compiler.y"
4704     { (yyval.action) = (yyvsp[(2) - (3)].exprlist).buffer;
4705                   bufferWriteInt((yyval.action), (yyvsp[(2) - (3)].exprlist).count);
4706                   bufferWriteOp((yyval.action), SWFACTION_INITARRAY); ;}
4707     break;
4708
4709   case 243:
4710 #line 1219 "swf5compiler.y"
4711     { (yyval.action) = newBuffer();
4712                   bufferWriteInt((yyval.action), 0);
4713                   bufferWriteOp((yyval.action), SWFACTION_INITOBJECT); ;}
4714     break;
4715
4716   case 244:
4717 #line 1224 "swf5compiler.y"
4718     { (yyval.action) = (yyvsp[(2) - (3)].exprlist).buffer;
4719                   bufferWriteInt((yyval.action), (yyvsp[(2) - (3)].exprlist).count);
4720                   bufferWriteOp((yyval.action), SWFACTION_INITOBJECT); ;}
4721     break;
4722
4723   case 249:
4724 #line 1240 "swf5compiler.y"
4725     { if((yyvsp[(2) - (2)].lval).obj)
4726                   {
4727                     if((yyvsp[(2) - (2)].lval).ident)   // expr . identifier
4728                     {
4729                       (yyval.action) = (yyvsp[(2) - (2)].lval).obj;
4730                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, a */
4731                       bufferWriteBuffer((yyval.action), (yyvsp[(2) - (2)].lval).ident);        /* a, a, i */
4732                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a */
4733                       bufferConcat((yyval.action), (yyvsp[(2) - (2)].lval).ident);             /* a, i, a, i */
4734                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER);
4735                       bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));
4736                       bufferWriteSetRegister((yyval.action), 0);
4737                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4738                       bufferWriteRegister((yyval.action), 0);         /* a.i+1 */
4739                     }
4740                     else        // expr [ expr ]
4741                     {
4742                       (yyval.action) = (yyvsp[(2) - (2)].lval).memexpr;                       /* i */
4743                       bufferConcat((yyval.action), (yyvsp[(2) - (2)].lval).obj);                      /* i, a */
4744                       bufferWriteSetRegister((yyval.action), 0);        /* ($2.memexpr can use reg0) */
4745                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i */
4746                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, i, i */
4747                       bufferWriteRegister((yyval.action), 0);         /* a, i, i, a */
4748                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a, i */
4749                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, i, a[i] */
4750                       bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));                   /* a, i, a[i]+1 */
4751                       bufferWriteSetRegister((yyval.action), 0);
4752                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4753                       bufferWriteRegister((yyval.action), 0);         /* a[i]+1 */
4754                     }
4755                   }
4756                   else  // identifier
4757                   {
4758                     (yyval.action) = newBuffer();
4759                     bufferWriteBuffer((yyval.action), (yyvsp[(2) - (2)].lval).ident);
4760                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
4761                     bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));
4762                     bufferWriteOp((yyval.action), SWFACTION_DUP);
4763                     bufferConcat((yyval.action), (yyvsp[(2) - (2)].lval).ident);
4764                     bufferWriteOp((yyval.action), SWFACTION_SWAP);
4765                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
4766                   }
4767                 ;}
4768     break;
4769
4770   case 250:
4771 #line 1285 "swf5compiler.y"
4772     { if((yyvsp[(1) - (2)].lval).obj)
4773                   {
4774                     if((yyvsp[(1) - (2)].lval).ident)
4775                     {
4776                       (yyval.action) = (yyvsp[(1) - (2)].lval).obj;                           /* a */
4777                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, a */
4778                       bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].lval).ident);        /* a, a, i */
4779                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, a.i */
4780                       bufferWriteSetRegister((yyval.action), 0);
4781                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a.i, a */
4782                       bufferConcat((yyval.action), (yyvsp[(1) - (2)].lval).ident);             /* a.i, a, i */
4783                       bufferWriteRegister((yyval.action), 0);             /* a.i, a, i, a.i */
4784                       bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));                   /* a.i, a, i, a.i+1 */
4785                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER);
4786                     }
4787                     else
4788                     {
4789                       (yyval.action) = (yyvsp[(1) - (2)].lval).memexpr;
4790                       bufferConcat((yyval.action), (yyvsp[(1) - (2)].lval).obj);               /* i, a */
4791                       bufferWriteSetRegister((yyval.action), 0);
4792                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i */
4793                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, i, i */
4794                       bufferWriteRegister((yyval.action), 0);             /* a, i, i, a */
4795                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a, i */
4796                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, i, a[i] */
4797                       bufferWriteSetRegister((yyval.action), 0);
4798                       bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));                   /* a, i, a[i]+1 */
4799                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER);
4800                       bufferWriteRegister((yyval.action), 0);             /* a[i] */
4801                     }
4802                   }
4803                   else
4804                   {
4805                     (yyval.action) = newBuffer();
4806                     bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].lval).ident);
4807                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
4808                     bufferWriteOp((yyval.action), SWFACTION_DUP);
4809                     bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));
4810                     bufferConcat((yyval.action), (yyvsp[(1) - (2)].lval).ident);
4811                     bufferWriteOp((yyval.action), SWFACTION_SWAP);
4812                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
4813                   }
4814                 ;}
4815     break;
4816
4817   case 251:
4818 #line 1330 "swf5compiler.y"
4819     { (yyval.action) = (yyvsp[(2) - (3)].action); ;}
4820     break;
4821
4822   case 252:
4823 #line 1333 "swf5compiler.y"
4824     { (yyval.action) = newBuffer();
4825                   bufferWriteInt((yyval.action), -(yyvsp[(2) - (2)].intVal)); ;}
4826     break;
4827
4828   case 253:
4829 #line 1337 "swf5compiler.y"
4830     { (yyval.action) = newBuffer();
4831                   bufferWriteInt((yyval.action), (yyvsp[(1) - (1)].intVal)); ;}
4832     break;
4833
4834   case 254:
4835 #line 1341 "swf5compiler.y"
4836     { (yyval.action) = newBuffer();
4837                   bufferWriteDouble((yyval.action), -(yyvsp[(2) - (2)].doubleVal)); ;}
4838     break;
4839
4840   case 255:
4841 #line 1345 "swf5compiler.y"
4842     { (yyval.action) = newBuffer();
4843                   bufferWriteDouble((yyval.action), (yyvsp[(1) - (1)].doubleVal)); ;}
4844     break;
4845
4846   case 256:
4847 #line 1349 "swf5compiler.y"
4848     { (yyval.action) = newBuffer();
4849                   bufferWriteBoolean((yyval.action), (yyvsp[(1) - (1)].intVal)); ;}
4850     break;
4851
4852   case 257:
4853 #line 1353 "swf5compiler.y"
4854     { (yyval.action) = newBuffer();
4855                   bufferWriteNull((yyval.action)); ;}
4856     break;
4857
4858   case 258:
4859 #line 1357 "swf5compiler.y"
4860     { (yyval.action) = newBuffer();
4861                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
4862                   free((yyvsp[(1) - (1)].str)); ;}
4863     break;
4864
4865   case 260:
4866 #line 1366 "swf5compiler.y"
4867     { (yyval.action) = (yyvsp[(1) - (3)].action);
4868                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action)); ;}
4869     break;
4870
4871   case 261:
4872 #line 1372 "swf5compiler.y"
4873     { (yyval.action) = newBuffer();
4874                   bufferWriteString((yyval.action), (yyvsp[(1) - (3)].str), strlen((yyvsp[(1) - (3)].str))+1);
4875                   bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
4876                   bufferWriteOp((yyval.action), SWFACTION_VAREQUALS); ;}
4877     break;
4878
4879   case 262:
4880 #line 1378 "swf5compiler.y"
4881     { (yyval.action) = newBuffer();
4882                   bufferWriteString((yyval.action), (yyvsp[(1) - (1)].str), strlen((yyvsp[(1) - (1)].str))+1);
4883                   bufferWriteOp((yyval.action), SWFACTION_VAR); ;}
4884     break;
4885
4886   case 263:
4887 #line 1385 "swf5compiler.y"
4888     { asmBuffer = newBuffer(); ;}
4889     break;
4890
4891   case 264:
4892 #line 1387 "swf5compiler.y"
4893     { (yyval.action) = asmBuffer; ;}
4894     break;
4895
4896   case 265:
4897 #line 1390 "swf5compiler.y"
4898     { (yyval.action) = (yyvsp[(2) - (2)].action); ;}
4899     break;
4900
4901   case 267:
4902 #line 1395 "swf5compiler.y"
4903     { (yyval.action) = (yyvsp[(1) - (1)].action);
4904                   bufferWriteOp((yyval.action), SWFACTION_POP); ;}
4905     break;
4906
4907   case 268:
4908 #line 1399 "swf5compiler.y"
4909     { (yyval.action) = (yyvsp[(1) - (1)].action);
4910                   bufferWriteOp((yyval.action), SWFACTION_POP); ;}
4911     break;
4912
4913   case 269:
4914 #line 1403 "swf5compiler.y"
4915     { if((yyvsp[(2) - (2)].lval).obj)
4916                   {
4917                     if((yyvsp[(2) - (2)].lval).ident)
4918                     {
4919                       (yyval.action) = (yyvsp[(2) - (2)].lval).obj;                           /* a */
4920                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, a */
4921                       bufferWriteBuffer((yyval.action), (yyvsp[(2) - (2)].lval).ident);       /* a, a, i */
4922                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, a.i */
4923                       bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));                   /* a, a.i+1 */
4924                       bufferConcat((yyval.action), (yyvsp[(2) - (2)].lval).ident);            /* a, a.i+1, i */
4925                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a.i+1 */
4926                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4927                     }
4928                     else
4929                     {
4930                       /* weird contortions so that $2.memexpr can use reg 0 */
4931                       (yyval.action) = (yyvsp[(2) - (2)].lval).memexpr;                       /* i */
4932                       bufferConcat((yyval.action), (yyvsp[(2) - (2)].lval).obj);                      /* i, a */
4933                       bufferWriteSetRegister((yyval.action), 0);
4934                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i */
4935                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, i, i */
4936                       bufferWriteRegister((yyval.action), 0);         /* a, i, i, a */
4937                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a, i */
4938                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, i, a[i] */
4939                       bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));                   /* a, i, a[i]+1 */
4940                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4941                     }
4942                   }
4943                   else
4944                   {
4945                     (yyval.action) = (yyvsp[(2) - (2)].lval).ident;
4946                     bufferWriteOp((yyval.action), SWFACTION_DUP);
4947                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
4948                     bufferWriteOp((yyval.action), (yyvsp[(1) - (2)].op));
4949                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
4950                   }
4951                 ;}
4952     break;
4953
4954   case 270:
4955 #line 1442 "swf5compiler.y"
4956     { if((yyvsp[(1) - (2)].lval).obj)
4957                   {
4958                     if((yyvsp[(1) - (2)].lval).ident)
4959                     {
4960                       (yyval.action) = (yyvsp[(1) - (2)].lval).obj;                           /* a */
4961                       bufferWriteOp((yyval.action), SWFACTION_DUP);       /* a, a */
4962                       bufferWriteBuffer((yyval.action), (yyvsp[(1) - (2)].lval).ident);       /* a, a, i */
4963                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, a.i */
4964                       bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));                  /* a, a.i+1 */
4965                       bufferConcat((yyval.action), (yyvsp[(1) - (2)].lval).ident);             /* a, a.i+1, i */
4966                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a.i+1 */
4967                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4968                     }
4969                     else
4970                     {
4971                       /* weird contortions so that $1.memexpr can use reg 0 */
4972                       (yyval.action) = (yyvsp[(1) - (2)].lval).memexpr; /* i */
4973                       bufferConcat((yyval.action), (yyvsp[(1) - (2)].lval).obj);                      /* i, a */
4974                       bufferWriteSetRegister((yyval.action), 0);
4975                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i */
4976                       bufferWriteOp((yyval.action), SWFACTION_DUP);       /* a, i, i */
4977                       bufferWriteRegister((yyval.action), 0);             /* a, i, i, a */
4978                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a, i */
4979                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, i, a[i] */
4980                       bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));                  /* a, i, a[i]+1 */
4981                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4982                     }
4983                   }
4984                   else
4985                   {
4986                     (yyval.action) = (yyvsp[(1) - (2)].lval).ident;
4987                     bufferWriteOp((yyval.action), SWFACTION_DUP);       
4988                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
4989                     bufferWriteOp((yyval.action), (yyvsp[(2) - (2)].op));
4990                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
4991                   }
4992                 ;}
4993     break;
4994
4995   case 271:
4996 #line 1481 "swf5compiler.y"
4997     { if((yyvsp[(1) - (3)].lval).obj)
4998                   {
4999                     (yyval.action) = (yyvsp[(1) - (3)].lval).obj;
5000
5001                     if((yyvsp[(1) - (3)].lval).ident)
5002                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).ident);
5003                     else
5004                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).memexpr);
5005
5006                     bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
5007                     bufferWriteOp((yyval.action), SWFACTION_SETMEMBER);
5008                   }
5009                   else
5010                   {
5011                     (yyval.action) = (yyvsp[(1) - (3)].lval).ident;
5012                     bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
5013                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
5014                   }
5015                 ;}
5016     break;
5017
5018   case 272:
5019 #line 1502 "swf5compiler.y"
5020     { if((yyvsp[(1) - (3)].lval).obj)
5021                   {
5022                     if((yyvsp[(1) - (3)].lval).ident)
5023                     {
5024                       (yyval.action) = (yyvsp[(1) - (3)].lval).obj;                           /* a */
5025                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, a */
5026                       bufferWriteBuffer((yyval.action), (yyvsp[(1) - (3)].lval).ident);       /* a, a, i */
5027                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, a.i */
5028                       bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));                /* a, a.i, v */
5029                       bufferWriteOp((yyval.action), (yyvsp[(2) - (3)].op));                   /* a, a.i+v */
5030                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).ident);            /* a, a.i+v, i */
5031                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a.i+v */
5032                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a.i = a.i+v */
5033                     }
5034                     else
5035                     {
5036                       (yyval.action) = (yyvsp[(1) - (3)].lval).memexpr;                       /* i */
5037                       bufferConcat((yyval.action), (yyvsp[(1) - (3)].lval).obj);                      /* i, a */
5038                       bufferWriteSetRegister((yyval.action), 0);
5039                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i */
5040                       bufferWriteOp((yyval.action), SWFACTION_DUP);           /* a, i, i */
5041                       bufferWriteRegister((yyval.action), 0);         /* a, i, i, a */
5042                       bufferWriteOp((yyval.action), SWFACTION_SWAP);      /* a, i, a, i */
5043                       bufferWriteOp((yyval.action), SWFACTION_GETMEMBER); /* a, i, a[i] */
5044                       bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));                /* a, i, a[i], v */
5045                       bufferWriteOp((yyval.action), (yyvsp[(2) - (3)].op));                   /* a, i, a[i]+v */
5046                       bufferWriteOp((yyval.action), SWFACTION_SETMEMBER); /* a[i] = a[i]+v */
5047                     }
5048                   }
5049                   else
5050                   {
5051                     (yyval.action) = (yyvsp[(1) - (3)].lval).ident;
5052                     bufferWriteOp((yyval.action), SWFACTION_DUP);
5053                     bufferWriteOp((yyval.action), SWFACTION_GETVARIABLE);
5054                     bufferConcat((yyval.action), (yyvsp[(3) - (3)].action));
5055                     bufferWriteOp((yyval.action), (yyvsp[(2) - (3)].op));
5056                     bufferWriteOp((yyval.action), SWFACTION_SETVARIABLE);
5057                   }
5058                 ;}
5059     break;
5060
5061   case 274:
5062 #line 1547 "swf5compiler.y"
5063     { (yyval.len) = (yyvsp[(1) - (2)].len) + (yyvsp[(2) - (2)].len); ;}
5064     break;
5065
5066   case 275:
5067 #line 1552 "swf5compiler.y"
5068     { (yyval.len) = bufferWriteOp(asmBuffer,
5069                                                      SWFACTION_WITH); ;}
5070     break;
5071
5072   case 276:
5073 #line 1554 "swf5compiler.y"
5074     { (yyval.len) = (yyvsp[(2) - (4)].len) + (yyvsp[(3) - (4)].len);
5075                                   bufferPatchLength(asmBuffer, (yyvsp[(3) - (4)].len)); ;}
5076     break;
5077
5078   case 277:
5079 #line 1559 "swf5compiler.y"
5080     { (yyval.len) = bufferWriteConstantString(asmBuffer,(byte*) (yyvsp[(1) - (1)].str),
5081                                                                  strlen((yyvsp[(1) - (1)].str))+1); ;}
5082     break;
5083
5084   case 278:
5085 #line 1562 "swf5compiler.y"
5086     { bufferWriteU8(asmBuffer, PUSH_INT);
5087                                   (yyval.len) = bufferWriteInt(asmBuffer, (yyvsp[(1) - (1)].intVal))+1; ;}
5088     break;
5089
5090   case 279:
5091 #line 1565 "swf5compiler.y"
5092     { bufferWriteU8(asmBuffer, PUSH_DOUBLE);
5093                                   (yyval.len) = bufferWriteDouble(asmBuffer, (yyvsp[(1) - (1)].doubleVal))+1; ;}
5094     break;
5095
5096   case 280:
5097 #line 1568 "swf5compiler.y"
5098     { bufferWriteU8(asmBuffer, PUSH_BOOLEAN);
5099                                   (yyval.len) = bufferWriteU8(asmBuffer, (yyvsp[(1) - (1)].intVal))+1; ;}
5100     break;
5101
5102   case 281:
5103 #line 1571 "swf5compiler.y"
5104     { (yyval.len) = bufferWriteU8(asmBuffer, PUSH_NULL); ;}
5105     break;
5106
5107   case 282:
5108 #line 1573 "swf5compiler.y"
5109     { bufferWriteU8(asmBuffer, PUSH_REGISTER);
5110                                   (yyval.len) = bufferWriteU8(asmBuffer,
5111                                                      (char)atoi((yyvsp[(1) - (1)].str)))+1; ;}
5112     break;
5113
5114   case 283:
5115 #line 1580 "swf5compiler.y"
5116     { (yyval.len) = (yyvsp[(1) - (1)].len); ;}
5117     break;
5118
5119   case 284:
5120 #line 1581 "swf5compiler.y"
5121     { (yyval.len) += (yyvsp[(3) - (3)].len); ;}
5122     break;
5123
5124   case 285:
5125 #line 1585 "swf5compiler.y"
5126     { (yyval.len) = bufferWriteOp(asmBuffer,
5127                                                      SWFACTION_PUSHDATA);
5128                                   (yyval.len) += bufferWriteS16(asmBuffer, 0); ;}
5129     break;
5130
5131   case 286:
5132 #line 1588 "swf5compiler.y"
5133     { (yyval.len) = (yyvsp[(2) - (3)].len) + (yyvsp[(3) - (3)].len);
5134                                   bufferPatchLength(asmBuffer, (yyvsp[(3) - (3)].len)); ;}
5135     break;
5136
5137   case 288:
5138 #line 1594 "swf5compiler.y"
5139     { (yyval.len) = bufferWriteOp(asmBuffer, 
5140                                                      SWFACTION_SETREGISTER);
5141                                   (yyval.len) += bufferWriteS16(asmBuffer, 1);
5142                                   (yyval.len) += bufferWriteU8(asmBuffer,
5143                                                       (char)atoi((yyvsp[(2) - (2)].str))); ;}
5144     break;
5145
5146   case 289:
5147 #line 1600 "swf5compiler.y"
5148     { (yyval.len) = bufferWriteOp(asmBuffer,
5149                                                      SWFACTION_CALLFUNCTION); ;}
5150     break;
5151
5152   case 290:
5153 #line 1602 "swf5compiler.y"
5154     { (yyval.len) = bufferWriteOp(asmBuffer,
5155                                                      SWFACTION_RETURN); ;}
5156     break;
5157
5158   case 291:
5159 #line 1604 "swf5compiler.y"
5160     { (yyval.len) = bufferWriteOp(asmBuffer, 
5161                                                      SWFACTION_CALLMETHOD); ;}
5162     break;
5163
5164   case 292:
5165 #line 1606 "swf5compiler.y"
5166     { (yyval.len) = bufferWriteOp(asmBuffer, 
5167                                                      SWFACTION_BITWISEAND); ;}
5168     break;
5169
5170   case 293:
5171 #line 1608 "swf5compiler.y"
5172     { (yyval.len) = bufferWriteOp(asmBuffer, 
5173                                                      SWFACTION_BITWISEOR); ;}
5174     break;
5175
5176   case 294:
5177 #line 1610 "swf5compiler.y"
5178     { (yyval.len) = bufferWriteOp(asmBuffer, 
5179                                                      SWFACTION_BITWISEXOR); ;}
5180     break;
5181
5182   case 295:
5183 #line 1612 "swf5compiler.y"
5184     { (yyval.len) = bufferWriteOp(asmBuffer, 
5185                                                      SWFACTION_MODULO); ;}
5186     break;
5187
5188   case 296:
5189 #line 1614 "swf5compiler.y"
5190     { (yyval.len) = bufferWriteOp(asmBuffer, 
5191                                                      SWFACTION_NEWADD); ;}
5192     break;
5193
5194   case 297:
5195 #line 1616 "swf5compiler.y"
5196     { (yyval.len) = bufferWriteOp(asmBuffer, 
5197                                                      SWFACTION_NEWLESSTHAN); ;}
5198     break;
5199
5200   case 298:
5201 #line 1618 "swf5compiler.y"
5202     { (yyval.len) = bufferWriteOp(asmBuffer, 
5203                                                      SWFACTION_NEWEQUALS); ;}
5204     break;
5205
5206   case 299:
5207 #line 1620 "swf5compiler.y"
5208     { (yyval.len) = bufferWriteOp(asmBuffer, 
5209                                                      SWFACTION_INCREMENT); ;}
5210     break;
5211
5212   case 300:
5213 #line 1622 "swf5compiler.y"
5214     { (yyval.len) = bufferWriteOp(asmBuffer, 
5215                                                      SWFACTION_DECREMENT); ;}
5216     break;
5217
5218   case 301:
5219 #line 1624 "swf5compiler.y"
5220     { (yyval.len) = bufferWriteOp(asmBuffer, 
5221                                                      SWFACTION_TYPEOF); ;}
5222     break;
5223
5224   case 302:
5225 #line 1626 "swf5compiler.y"
5226     { (yyval.len) = bufferWriteOp(asmBuffer, 
5227                                                      SWFACTION_INSTANCEOF); ;}
5228     break;
5229
5230   case 303:
5231 #line 1628 "swf5compiler.y"
5232     { (yyval.len) = bufferWriteOp(asmBuffer, 
5233                                                      SWFACTION_ENUMERATE); ;}
5234     break;
5235
5236   case 304:
5237 #line 1630 "swf5compiler.y"
5238     { (yyval.len) = bufferWriteOp(asmBuffer, 
5239                                                      SWFACTION_DELETE); ;}
5240     break;
5241
5242   case 305:
5243 #line 1632 "swf5compiler.y"
5244     { (yyval.len) = bufferWriteOp(asmBuffer, 
5245                                                      SWFACTION_NEW); ;}
5246     break;
5247
5248   case 306:
5249 #line 1634 "swf5compiler.y"
5250     { (yyval.len) = bufferWriteOp(asmBuffer, 
5251                                                      SWFACTION_INITARRAY); ;}
5252     break;
5253
5254   case 307:
5255 #line 1636 "swf5compiler.y"
5256     { (yyval.len) = bufferWriteOp(asmBuffer, 
5257                                                      SWFACTION_INITOBJECT); ;}
5258     break;
5259
5260   case 308:
5261 #line 1638 "swf5compiler.y"
5262     { (yyval.len) = bufferWriteOp(asmBuffer, 
5263                                                      SWFACTION_GETMEMBER); ;}
5264     break;
5265
5266   case 309:
5267 #line 1640 "swf5compiler.y"
5268     { (yyval.len) = bufferWriteOp(asmBuffer, 
5269                                                      SWFACTION_SETMEMBER); ;}
5270     break;
5271
5272   case 310:
5273 #line 1642 "swf5compiler.y"
5274     { (yyval.len) = bufferWriteOp(asmBuffer, 
5275                                                      SWFACTION_SHIFTLEFT); ;}
5276     break;
5277
5278   case 311:
5279 #line 1644 "swf5compiler.y"
5280     { (yyval.len) = bufferWriteOp(asmBuffer, 
5281                                                      SWFACTION_SHIFTRIGHT); ;}
5282     break;
5283
5284   case 312:
5285 #line 1646 "swf5compiler.y"
5286     { (yyval.len) = bufferWriteOp(asmBuffer, 
5287                                                      SWFACTION_SHIFTRIGHT2); ;}
5288     break;
5289
5290   case 313:
5291 #line 1648 "swf5compiler.y"
5292     { (yyval.len) = bufferWriteOp(asmBuffer, 
5293                                                      SWFACTION_VAR); ;}
5294     break;
5295
5296   case 314:
5297 #line 1650 "swf5compiler.y"
5298     { (yyval.len) = bufferWriteOp(asmBuffer, 
5299                                                      SWFACTION_VAREQUALS); ;}
5300     break;
5301
5302   case 315:
5303 #line 1654 "swf5compiler.y"
5304     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_ADD); ;}
5305     break;
5306
5307   case 316:
5308 #line 1655 "swf5compiler.y"
5309     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_SUBTRACT); ;}
5310     break;
5311
5312   case 317:
5313 #line 1656 "swf5compiler.y"
5314     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_MULTIPLY); ;}
5315     break;
5316
5317   case 318:
5318 #line 1657 "swf5compiler.y"
5319     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_DIVIDE); ;}
5320     break;
5321
5322   case 319:
5323 #line 1658 "swf5compiler.y"
5324     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_EQUAL); ;}
5325     break;
5326
5327   case 320:
5328 #line 1659 "swf5compiler.y"
5329     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_LESSTHAN); ;}
5330     break;
5331
5332   case 321:
5333 #line 1660 "swf5compiler.y"
5334     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_LOGICALAND); ;}
5335     break;
5336
5337   case 322:
5338 #line 1661 "swf5compiler.y"
5339     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_LOGICALOR); ;}
5340     break;
5341
5342   case 323:
5343 #line 1662 "swf5compiler.y"
5344     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_LOGICALNOT); ;}
5345     break;
5346
5347   case 324:
5348 #line 1663 "swf5compiler.y"
5349     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_STRINGEQ); ;}
5350     break;
5351
5352   case 325:
5353 #line 1664 "swf5compiler.y"
5354     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_STRINGLENGTH); ;}
5355     break;
5356
5357   case 326:
5358 #line 1665 "swf5compiler.y"
5359     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_SUBSTRING); ;}
5360     break;
5361
5362   case 327:
5363 #line 1666 "swf5compiler.y"
5364     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_INT); ;}
5365     break;
5366
5367   case 328:
5368 #line 1667 "swf5compiler.y"
5369     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_DUP); ;}
5370     break;
5371
5372   case 329:
5373 #line 1668 "swf5compiler.y"
5374     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_SWAP); ;}
5375     break;
5376
5377   case 330:
5378 #line 1669 "swf5compiler.y"
5379     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_POP); ;}
5380     break;
5381
5382   case 331:
5383 #line 1670 "swf5compiler.y"
5384     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_GETVARIABLE); ;}
5385     break;
5386
5387   case 332:
5388 #line 1671 "swf5compiler.y"
5389     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_SETVARIABLE); ;}
5390     break;
5391
5392   case 333:
5393 #line 1672 "swf5compiler.y"
5394     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_SETTARGETEXPRESSION); ;}
5395     break;
5396
5397   case 334:
5398 #line 1673 "swf5compiler.y"
5399     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_STRINGCONCAT); ;}
5400     break;
5401
5402   case 335:
5403 #line 1674 "swf5compiler.y"
5404     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_DUPLICATECLIP); ;}
5405     break;
5406
5407   case 336:
5408 #line 1675 "swf5compiler.y"
5409     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_REMOVECLIP); ;}
5410     break;
5411
5412   case 337:
5413 #line 1676 "swf5compiler.y"
5414     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_TRACE); ;}
5415     break;
5416
5417   case 338:
5418 #line 1677 "swf5compiler.y"
5419     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_STRINGCOMPARE); ;}
5420     break;
5421
5422   case 339:
5423 #line 1678 "swf5compiler.y"
5424     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_RANDOM); ;}
5425     break;
5426
5427   case 340:
5428 #line 1679 "swf5compiler.y"
5429     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_MBLENGTH); ;}
5430     break;
5431
5432   case 341:
5433 #line 1680 "swf5compiler.y"
5434     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_ORD); ;}
5435     break;
5436
5437   case 342:
5438 #line 1681 "swf5compiler.y"
5439     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_CHR); ;}
5440     break;
5441
5442   case 343:
5443 #line 1682 "swf5compiler.y"
5444     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_GETTIMER); ;}
5445     break;
5446
5447   case 344:
5448 #line 1683 "swf5compiler.y"
5449     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_MBSUBSTRING); ;}
5450     break;
5451
5452   case 345:
5453 #line 1684 "swf5compiler.y"
5454     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_MBORD); ;}
5455     break;
5456
5457   case 346:
5458 #line 1685 "swf5compiler.y"
5459     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_MBCHR); ;}
5460     break;
5461
5462   case 347:
5463 #line 1688 "swf5compiler.y"
5464     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_BRANCHALWAYS);
5465                                   (yyval.len) += bufferWriteS16(asmBuffer, 2);
5466                                   (yyval.len) += bufferBranchTarget(asmBuffer, (yyvsp[(2) - (2)].str)); ;}
5467     break;
5468
5469   case 348:
5470 #line 1692 "swf5compiler.y"
5471     { (yyval.len) = bufferWriteOp(asmBuffer, SWFACTION_BRANCHIFTRUE);
5472                                   (yyval.len) += bufferWriteS16(asmBuffer, 2);
5473                                   (yyval.len) += bufferBranchTarget(asmBuffer, (yyvsp[(2) - (2)].str)); ;}
5474     break;
5475
5476
5477 /* Line 1267 of yacc.c.  */
5478 #line 5479 "swf5compiler.tab.c"
5479       default: break;
5480     }
5481   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
5482
5483   YYPOPSTACK (yylen);
5484   yylen = 0;
5485   YY_STACK_PRINT (yyss, yyssp);
5486
5487   *++yyvsp = yyval;
5488
5489
5490   /* Now `shift' the result of the reduction.  Determine what state
5491      that goes to, based on the state we popped back to and the rule
5492      number reduced by.  */
5493
5494   yyn = yyr1[yyn];
5495
5496   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5497   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5498     yystate = yytable[yystate];
5499   else
5500     yystate = yydefgoto[yyn - YYNTOKENS];
5501
5502   goto yynewstate;
5503
5504
5505 /*------------------------------------.
5506 | yyerrlab -- here on detecting error |
5507 `------------------------------------*/
5508 yyerrlab:
5509   /* If not already recovering from an error, report this error.  */
5510   if (!yyerrstatus)
5511     {
5512       ++yynerrs;
5513 #if ! YYERROR_VERBOSE
5514       yyerror (YY_("syntax error"));
5515 #else
5516       {
5517         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
5518         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
5519           {
5520             YYSIZE_T yyalloc = 2 * yysize;
5521             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
5522               yyalloc = YYSTACK_ALLOC_MAXIMUM;
5523             if (yymsg != yymsgbuf)
5524               YYSTACK_FREE (yymsg);
5525             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
5526             if (yymsg)
5527               yymsg_alloc = yyalloc;
5528             else
5529               {
5530                 yymsg = yymsgbuf;
5531                 yymsg_alloc = sizeof yymsgbuf;
5532               }
5533           }
5534
5535         if (0 < yysize && yysize <= yymsg_alloc)
5536           {
5537             (void) yysyntax_error (yymsg, yystate, yychar);
5538             yyerror (yymsg);
5539           }
5540         else
5541           {
5542             yyerror (YY_("syntax error"));
5543             if (yysize != 0)
5544               goto yyexhaustedlab;
5545           }
5546       }
5547 #endif
5548     }
5549
5550
5551
5552   if (yyerrstatus == 3)
5553     {
5554       /* If just tried and failed to reuse look-ahead token after an
5555          error, discard it.  */
5556
5557       if (yychar <= YYEOF)
5558         {
5559           /* Return failure if at end of input.  */
5560           if (yychar == YYEOF)
5561             YYABORT;
5562         }
5563       else
5564         {
5565           yydestruct ("Error: discarding",
5566                       yytoken, &yylval);
5567           yychar = YYEMPTY;
5568         }
5569     }
5570
5571   /* Else will try to reuse look-ahead token after shifting the error
5572      token.  */
5573   goto yyerrlab1;
5574
5575
5576 /*---------------------------------------------------.
5577 | yyerrorlab -- error raised explicitly by YYERROR.  |
5578 `---------------------------------------------------*/
5579 yyerrorlab:
5580
5581   /* Pacify compilers like GCC when the user code never invokes
5582      YYERROR and the label yyerrorlab therefore never appears in user
5583      code.  */
5584   if (/*CONSTCOND*/ 0)
5585      goto yyerrorlab;
5586
5587   /* Do not reclaim the symbols of the rule which action triggered
5588      this YYERROR.  */
5589   YYPOPSTACK (yylen);
5590   yylen = 0;
5591   YY_STACK_PRINT (yyss, yyssp);
5592   yystate = *yyssp;
5593   goto yyerrlab1;
5594
5595
5596 /*-------------------------------------------------------------.
5597 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
5598 `-------------------------------------------------------------*/
5599 yyerrlab1:
5600   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5601
5602   for (;;)
5603     {
5604       yyn = yypact[yystate];
5605       if (yyn != YYPACT_NINF)
5606         {
5607           yyn += YYTERROR;
5608           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5609             {
5610               yyn = yytable[yyn];
5611               if (0 < yyn)
5612                 break;
5613             }
5614         }
5615
5616       /* Pop the current state because it cannot handle the error token.  */
5617       if (yyssp == yyss)
5618         YYABORT;
5619
5620
5621       yydestruct ("Error: popping",
5622                   yystos[yystate], yyvsp);
5623       YYPOPSTACK (1);
5624       yystate = *yyssp;
5625       YY_STACK_PRINT (yyss, yyssp);
5626     }
5627
5628   if (yyn == YYFINAL)
5629     YYACCEPT;
5630
5631   *++yyvsp = yylval;
5632
5633
5634   /* Shift the error token.  */
5635   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
5636
5637   yystate = yyn;
5638   goto yynewstate;
5639
5640
5641 /*-------------------------------------.
5642 | yyacceptlab -- YYACCEPT comes here.  |
5643 `-------------------------------------*/
5644 yyacceptlab:
5645   yyresult = 0;
5646   goto yyreturn;
5647
5648 /*-----------------------------------.
5649 | yyabortlab -- YYABORT comes here.  |
5650 `-----------------------------------*/
5651 yyabortlab:
5652   yyresult = 1;
5653   goto yyreturn;
5654
5655 #ifndef yyoverflow
5656 /*-------------------------------------------------.
5657 | yyexhaustedlab -- memory exhaustion comes here.  |
5658 `-------------------------------------------------*/
5659 yyexhaustedlab:
5660   yyerror (YY_("memory exhausted"));
5661   yyresult = 2;
5662   /* Fall through.  */
5663 #endif
5664
5665 yyreturn:
5666   if (yychar != YYEOF && yychar != YYEMPTY)
5667      yydestruct ("Cleanup: discarding lookahead",
5668                  yytoken, &yylval);
5669   /* Do not reclaim the symbols of the rule which action triggered
5670      this YYABORT or YYACCEPT.  */
5671   YYPOPSTACK (yylen);
5672   YY_STACK_PRINT (yyss, yyssp);
5673   while (yyssp != yyss)
5674     {
5675       yydestruct ("Cleanup: popping",
5676                   yystos[*yyssp], yyvsp);
5677       YYPOPSTACK (1);
5678     }
5679 #ifndef yyoverflow
5680   if (yyss != yyssa)
5681     YYSTACK_FREE (yyss);
5682 #endif
5683 #if YYERROR_VERBOSE
5684   if (yymsg != yymsgbuf)
5685     YYSTACK_FREE (yymsg);
5686 #endif
5687   /* Make sure YYID is used.  */
5688   return YYID (yyresult);
5689 }
5690
5691
5692 #line 1697 "swf5compiler.y"
5693
5694
5695