1 /* A Bison parser, made by GNU Bison 3.0.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29 
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42 
43 /* Identify Bison output.  */
44 #define YYBISON 1
45 
46 /* Bison version.  */
47 #define YYBISON_VERSION "3.0.2"
48 
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers.  */
53 #define YYPURE 1
54 
55 /* Push parsers.  */
56 #define YYPUSH 0
57 
58 /* Pull parsers.  */
59 #define YYPULL 1
60 
61 
62 
63 
64 /* Copy the first part of user declarations.  */
65 
66 
67 #if USE_WINDOWS
68 #pragma warning(push,1)
69 #pragma warning(disable:4702) // unreachable code
70 #endif
71 
72 
73 
74 // some helpers
75 #include <float.h> // for FLT_MAX
76 
AddInsval(SqlParser_c * pParser,CSphVector<SqlInsert_t> & dVec,const SqlNode_t & tNode)77 static void AddInsval ( SqlParser_c * pParser, CSphVector<SqlInsert_t> & dVec, const SqlNode_t & tNode )
78 {
79 	SqlInsert_t & tIns = dVec.Add();
80 	tIns.m_iType = tNode.m_iType;
81 	tIns.m_iVal = tNode.m_iValue; // OPTIMIZE? copy conditionally based on type?
82 	tIns.m_fVal = tNode.m_fValue;
83 	if ( tIns.m_iType==TOK_QUOTED_STRING )
84 		pParser->ToStringUnescape ( tIns.m_sVal, tNode );
85 	tIns.m_pVals = tNode.m_pValues;
86 }
87 
88 #define TRACK_BOUNDS(_res,_left,_right) \
89 	_res = _left; \
90 	if ( _res.m_iStart>0 && pParser->m_pBuf[_res.m_iStart-1]=='`' ) \
91 		_res.m_iStart--; \
92 	_res.m_iEnd = _right.m_iEnd; \
93 	_res.m_iType = 0;
94 
95 
96 
97 
98 # ifndef YY_NULLPTR
99 #  if defined __cplusplus && 201103L <= __cplusplus
100 #   define YY_NULLPTR nullptr
101 #  else
102 #   define YY_NULLPTR 0
103 #  endif
104 # endif
105 
106 /* Enabling verbose error messages.  */
107 #ifdef YYERROR_VERBOSE
108 # undef YYERROR_VERBOSE
109 # define YYERROR_VERBOSE 1
110 #else
111 # define YYERROR_VERBOSE 1
112 #endif
113 
114 /* In a future release of Bison, this section will be replaced
115    by #include "yysphinxql.h".  */
116 #ifndef YY_YY_YYSPHINXQL_H_INCLUDED
117 # define YY_YY_YYSPHINXQL_H_INCLUDED
118 /* Debug traces.  */
119 #ifndef YYDEBUG
120 # define YYDEBUG 0
121 #endif
122 #if YYDEBUG
123 extern int yydebug;
124 #endif
125 
126 /* Token type.  */
127 #ifndef YYTOKENTYPE
128 # define YYTOKENTYPE
129   enum yytokentype
130   {
131     TOK_IDENT = 258,
132     TOK_ATIDENT = 259,
133     TOK_CONST_INT = 260,
134     TOK_CONST_FLOAT = 261,
135     TOK_CONST_MVA = 262,
136     TOK_QUOTED_STRING = 263,
137     TOK_USERVAR = 264,
138     TOK_SYSVAR = 265,
139     TOK_CONST_STRINGS = 266,
140     TOK_BAD_NUMERIC = 267,
141     TOK_SUBKEY = 268,
142     TOK_DOT_NUMBER = 269,
143     TOK_ADD = 270,
144     TOK_AGENT = 271,
145     TOK_ALTER = 272,
146     TOK_AS = 273,
147     TOK_ASC = 274,
148     TOK_ATTACH = 275,
149     TOK_ATTRIBUTES = 276,
150     TOK_AVG = 277,
151     TOK_BEGIN = 278,
152     TOK_BETWEEN = 279,
153     TOK_BIGINT = 280,
154     TOK_BOOL = 281,
155     TOK_BY = 282,
156     TOK_CALL = 283,
157     TOK_CHARACTER = 284,
158     TOK_CHUNK = 285,
159     TOK_COLLATION = 286,
160     TOK_COLUMN = 287,
161     TOK_COMMIT = 288,
162     TOK_COMMITTED = 289,
163     TOK_COUNT = 290,
164     TOK_CREATE = 291,
165     TOK_DATABASES = 292,
166     TOK_DELETE = 293,
167     TOK_DESC = 294,
168     TOK_DESCRIBE = 295,
169     TOK_DISTINCT = 296,
170     TOK_DIV = 297,
171     TOK_DOUBLE = 298,
172     TOK_DROP = 299,
173     TOK_FACET = 300,
174     TOK_FALSE = 301,
175     TOK_FLOAT = 302,
176     TOK_FLUSH = 303,
177     TOK_FOR = 304,
178     TOK_FROM = 305,
179     TOK_FUNCTION = 306,
180     TOK_GLOBAL = 307,
181     TOK_GROUP = 308,
182     TOK_GROUPBY = 309,
183     TOK_GROUP_CONCAT = 310,
184     TOK_HAVING = 311,
185     TOK_ID = 312,
186     TOK_IN = 313,
187     TOK_INDEX = 314,
188     TOK_INSERT = 315,
189     TOK_INT = 316,
190     TOK_INTEGER = 317,
191     TOK_INTO = 318,
192     TOK_IS = 319,
193     TOK_ISOLATION = 320,
194     TOK_JSON = 321,
195     TOK_LEVEL = 322,
196     TOK_LIKE = 323,
197     TOK_LIMIT = 324,
198     TOK_MATCH = 325,
199     TOK_MAX = 326,
200     TOK_META = 327,
201     TOK_MIN = 328,
202     TOK_MOD = 329,
203     TOK_MULTI = 330,
204     TOK_MULTI64 = 331,
205     TOK_NAMES = 332,
206     TOK_NULL = 333,
207     TOK_OPTION = 334,
208     TOK_ORDER = 335,
209     TOK_OPTIMIZE = 336,
210     TOK_PLAN = 337,
211     TOK_PLUGIN = 338,
212     TOK_PLUGINS = 339,
213     TOK_PROFILE = 340,
214     TOK_RAND = 341,
215     TOK_RAMCHUNK = 342,
216     TOK_READ = 343,
217     TOK_RECONFIGURE = 344,
218     TOK_REPEATABLE = 345,
219     TOK_REPLACE = 346,
220     TOK_REMAP = 347,
221     TOK_RETURNS = 348,
222     TOK_ROLLBACK = 349,
223     TOK_RTINDEX = 350,
224     TOK_SELECT = 351,
225     TOK_SERIALIZABLE = 352,
226     TOK_SET = 353,
227     TOK_SETTINGS = 354,
228     TOK_SESSION = 355,
229     TOK_SHOW = 356,
230     TOK_SONAME = 357,
231     TOK_START = 358,
232     TOK_STATUS = 359,
233     TOK_STRING = 360,
234     TOK_SUM = 361,
235     TOK_TABLE = 362,
236     TOK_TABLES = 363,
237     TOK_THREADS = 364,
238     TOK_TO = 365,
239     TOK_TRANSACTION = 366,
240     TOK_TRUE = 367,
241     TOK_TRUNCATE = 368,
242     TOK_TYPE = 369,
243     TOK_UNCOMMITTED = 370,
244     TOK_UPDATE = 371,
245     TOK_VALUES = 372,
246     TOK_VARIABLES = 373,
247     TOK_WARNINGS = 374,
248     TOK_WEIGHT = 375,
249     TOK_WHERE = 376,
250     TOK_WITHIN = 377,
251     TOK_OR = 378,
252     TOK_AND = 379,
253     TOK_NE = 380,
254     TOK_LTE = 381,
255     TOK_GTE = 382,
256     TOK_NOT = 383,
257     TOK_NEG = 384
258   };
259 #endif
260 
261 /* Value type.  */
262 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
263 typedef int YYSTYPE;
264 # define YYSTYPE_IS_TRIVIAL 1
265 # define YYSTYPE_IS_DECLARED 1
266 #endif
267 
268 
269 
270 int yyparse (SqlParser_c * pParser);
271 
272 #endif /* !YY_YY_YYSPHINXQL_H_INCLUDED  */
273 
274 /* Copy the second part of user declarations.  */
275 
276 
277 
278 #ifdef short
279 # undef short
280 #endif
281 
282 #ifdef YYTYPE_UINT8
283 typedef YYTYPE_UINT8 yytype_uint8;
284 #else
285 typedef unsigned char yytype_uint8;
286 #endif
287 
288 #ifdef YYTYPE_INT8
289 typedef YYTYPE_INT8 yytype_int8;
290 #else
291 typedef signed char yytype_int8;
292 #endif
293 
294 #ifdef YYTYPE_UINT16
295 typedef YYTYPE_UINT16 yytype_uint16;
296 #else
297 typedef unsigned short int yytype_uint16;
298 #endif
299 
300 #ifdef YYTYPE_INT16
301 typedef YYTYPE_INT16 yytype_int16;
302 #else
303 typedef short int yytype_int16;
304 #endif
305 
306 #ifndef YYSIZE_T
307 # ifdef __SIZE_TYPE__
308 #  define YYSIZE_T __SIZE_TYPE__
309 # elif defined size_t
310 #  define YYSIZE_T size_t
311 # elif ! defined YYSIZE_T
312 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
313 #  define YYSIZE_T size_t
314 # else
315 #  define YYSIZE_T unsigned int
316 # endif
317 #endif
318 
319 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
320 
321 #ifndef YY_
322 # if defined YYENABLE_NLS && YYENABLE_NLS
323 #  if ENABLE_NLS
324 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
325 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
326 #  endif
327 # endif
328 # ifndef YY_
329 #  define YY_(Msgid) Msgid
330 # endif
331 #endif
332 
333 #ifndef YY_ATTRIBUTE
334 # if (defined __GNUC__                                               \
335       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
336      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
337 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
338 # else
339 #  define YY_ATTRIBUTE(Spec) /* empty */
340 # endif
341 #endif
342 
343 #ifndef YY_ATTRIBUTE_PURE
344 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
345 #endif
346 
347 #ifndef YY_ATTRIBUTE_UNUSED
348 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
349 #endif
350 
351 #if !defined _Noreturn \
352      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
353 # if defined _MSC_VER && 1200 <= _MSC_VER
354 #  define _Noreturn __declspec (noreturn)
355 # else
356 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
357 # endif
358 #endif
359 
360 /* Suppress unused-variable warnings by "using" E.  */
361 #if ! defined lint || defined __GNUC__
362 # define YYUSE(E) ((void) (E))
363 #else
364 # define YYUSE(E) /* empty */
365 #endif
366 
367 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
368 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
369 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
370     _Pragma ("GCC diagnostic push") \
371     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
372     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
373 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
374     _Pragma ("GCC diagnostic pop")
375 #else
376 # define YY_INITIAL_VALUE(Value) Value
377 #endif
378 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
379 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
380 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
381 #endif
382 #ifndef YY_INITIAL_VALUE
383 # define YY_INITIAL_VALUE(Value) /* Nothing. */
384 #endif
385 
386 
387 #if ! defined yyoverflow || YYERROR_VERBOSE
388 
389 /* The parser invokes alloca or malloc; define the necessary symbols.  */
390 
391 # ifdef YYSTACK_USE_ALLOCA
392 #  if YYSTACK_USE_ALLOCA
393 #   ifdef __GNUC__
394 #    define YYSTACK_ALLOC __builtin_alloca
395 #   elif defined __BUILTIN_VA_ARG_INCR
396 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
397 #   elif defined _AIX
398 #    define YYSTACK_ALLOC __alloca
399 #   elif defined _MSC_VER
400 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
401 #    define alloca _alloca
402 #   else
403 #    define YYSTACK_ALLOC alloca
404 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
405 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
406       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
407 #     ifndef EXIT_SUCCESS
408 #      define EXIT_SUCCESS 0
409 #     endif
410 #    endif
411 #   endif
412 #  endif
413 # endif
414 
415 # ifdef YYSTACK_ALLOC
416    /* Pacify GCC's 'empty if-body' warning.  */
417 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
418 #  ifndef YYSTACK_ALLOC_MAXIMUM
419     /* The OS might guarantee only one guard page at the bottom of the stack,
420        and a page size can be as small as 4096 bytes.  So we cannot safely
421        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
422        to allow for a few compiler-allocated temporary stack slots.  */
423 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
424 #  endif
425 # else
426 #  define YYSTACK_ALLOC YYMALLOC
427 #  define YYSTACK_FREE YYFREE
428 #  ifndef YYSTACK_ALLOC_MAXIMUM
429 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
430 #  endif
431 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
432        && ! ((defined YYMALLOC || defined malloc) \
433              && (defined YYFREE || defined free)))
434 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
435 #   ifndef EXIT_SUCCESS
436 #    define EXIT_SUCCESS 0
437 #   endif
438 #  endif
439 #  ifndef YYMALLOC
440 #   define YYMALLOC malloc
441 #   if ! defined malloc && ! defined EXIT_SUCCESS
442 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
443 #   endif
444 #  endif
445 #  ifndef YYFREE
446 #   define YYFREE free
447 #   if ! defined free && ! defined EXIT_SUCCESS
448 void free (void *); /* INFRINGES ON USER NAME SPACE */
449 #   endif
450 #  endif
451 # endif
452 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
453 
454 
455 #if (! defined yyoverflow \
456      && (! defined __cplusplus \
457          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
458 
459 /* A type that is properly aligned for any stack member.  */
460 union yyalloc
461 {
462   yytype_int16 yyss_alloc;
463   YYSTYPE yyvs_alloc;
464 };
465 
466 /* The size of the maximum gap between one aligned stack and the next.  */
467 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
468 
469 /* The size of an array large to enough to hold all stacks, each with
470    N elements.  */
471 # define YYSTACK_BYTES(N) \
472      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
473       + YYSTACK_GAP_MAXIMUM)
474 
475 # define YYCOPY_NEEDED 1
476 
477 /* Relocate STACK from its old location to the new one.  The
478    local variables YYSIZE and YYSTACKSIZE give the old and new number of
479    elements in the stack, and YYPTR gives the new location of the
480    stack.  Advance YYPTR to a properly aligned location for the next
481    stack.  */
482 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
483     do                                                                  \
484       {                                                                 \
485         YYSIZE_T yynewbytes;                                            \
486         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
487         Stack = &yyptr->Stack_alloc;                                    \
488         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
489         yyptr += yynewbytes / sizeof (*yyptr);                          \
490       }                                                                 \
491     while (0)
492 
493 #endif
494 
495 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
496 /* Copy COUNT objects from SRC to DST.  The source and destination do
497    not overlap.  */
498 # ifndef YYCOPY
499 #  if defined __GNUC__ && 1 < __GNUC__
500 #   define YYCOPY(Dst, Src, Count) \
501       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
502 #  else
503 #   define YYCOPY(Dst, Src, Count)              \
504       do                                        \
505         {                                       \
506           YYSIZE_T yyi;                         \
507           for (yyi = 0; yyi < (Count); yyi++)   \
508             (Dst)[yyi] = (Src)[yyi];            \
509         }                                       \
510       while (0)
511 #  endif
512 # endif
513 #endif /* !YYCOPY_NEEDED */
514 
515 /* YYFINAL -- State number of the termination state.  */
516 #define YYFINAL  240
517 /* YYLAST -- Last index in YYTABLE.  */
518 #define YYLAST   4778
519 
520 /* YYNTOKENS -- Number of terminals.  */
521 #define YYNTOKENS  148
522 /* YYNNTS -- Number of nonterminals.  */
523 #define YYNNTS  138
524 /* YYNRULES -- Number of rules.  */
525 #define YYNRULES  485
526 /* YYNSTATES -- Number of states.  */
527 #define YYNSTATES  845
528 
529 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
530    by yylex, with out-of-bounds checking.  */
531 #define YYUNDEFTOK  2
532 #define YYMAXUTOK   384
533 
534 #define YYTRANSLATE(YYX)                                                \
535   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
536 
537 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
538    as returned by yylex, without out-of-bounds checking.  */
539 static const yytype_uint8 yytranslate[] =
540 {
541        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544        2,     2,     2,     2,     2,     2,     2,   137,   126,     2,
545      141,   142,   135,   133,   143,   134,     2,   136,     2,     2,
546        2,     2,     2,     2,     2,     2,     2,     2,     2,   140,
547      129,   127,   130,     2,     2,     2,     2,     2,     2,     2,
548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550        2,   146,     2,   147,     2,     2,     2,     2,     2,     2,
551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553        2,     2,     2,   144,   125,   145,     2,     2,     2,     2,
554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
566        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
567        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
568       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
569       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
570       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
571       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
572       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
573       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
574       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
575       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
576       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
577      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
578      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
579      128,   131,   132,   138,   139
580 };
581 
582 #if YYDEBUG
583   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
584 static const yytype_uint16 yyrline[] =
585 {
586        0,   174,   174,   175,   176,   180,   181,   182,   183,   184,
587      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
588      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
589      205,   220,   221,   221,   221,   221,   221,   221,   222,   222,
590      222,   222,   222,   222,   223,   223,   223,   223,   223,   224,
591      224,   224,   224,   224,   225,   225,   225,   225,   225,   226,
592      226,   226,   226,   226,   226,   227,   227,   227,   227,   227,
593      228,   228,   228,   228,   228,   228,   229,   229,   229,   229,
594      229,   229,   230,   230,   230,   230,   230,   231,   231,   231,
595      231,   231,   232,   232,   232,   232,   232,   233,   233,   233,
596      233,   233,   234,   234,   234,   234,   234,   234,   235,   235,
597      235,   235,   235,   235,   236,   236,   236,   236,   236,   237,
598      237,   237,   237,   241,   241,   241,   247,   248,   249,   253,
599      254,   255,   259,   260,   268,   269,   276,   278,   282,   286,
600      293,   294,   295,   299,   312,   319,   321,   326,   335,   351,
601      352,   356,   357,   360,   362,   363,   367,   368,   369,   370,
602      371,   372,   373,   374,   375,   379,   380,   383,   385,   389,
603      393,   394,   395,   399,   404,   408,   415,   423,   431,   440,
604      445,   450,   455,   460,   465,   470,   475,   480,   485,   490,
605      495,   500,   505,   510,   515,   520,   525,   530,   535,   540,
606      545,   553,   554,   559,   565,   571,   577,   583,   584,   585,
607      586,   587,   591,   592,   603,   604,   605,   609,   615,   622,
608      628,   634,   636,   639,   641,   648,   652,   658,   660,   666,
609      668,   672,   683,   685,   689,   693,   700,   701,   705,   706,
610      707,   710,   712,   716,   721,   728,   730,   734,   738,   739,
611      743,   748,   753,   759,   764,   772,   777,   784,   794,   795,
612      796,   797,   798,   799,   800,   801,   802,   804,   805,   806,
613      807,   808,   809,   810,   811,   812,   813,   814,   815,   816,
614      817,   818,   819,   820,   821,   822,   823,   824,   825,   826,
615      827,   831,   832,   833,   834,   835,   836,   837,   838,   839,
616      840,   841,   842,   846,   847,   851,   852,   856,   857,   861,
617      862,   866,   867,   873,   876,   878,   882,   883,   884,   885,
618      886,   887,   888,   889,   890,   895,   900,   905,   910,   919,
619      920,   923,   925,   933,   938,   943,   948,   949,   950,   954,
620      959,   964,   969,   978,   979,   983,   984,   985,   997,   998,
621     1002,  1003,  1004,  1005,  1006,  1013,  1014,  1015,  1019,  1020,
622     1026,  1034,  1035,  1038,  1040,  1044,  1045,  1049,  1050,  1054,
623     1055,  1059,  1063,  1064,  1068,  1069,  1070,  1071,  1072,  1075,
624     1076,  1080,  1081,  1085,  1091,  1101,  1109,  1113,  1120,  1121,
625     1128,  1138,  1144,  1146,  1150,  1155,  1159,  1166,  1168,  1172,
626     1173,  1179,  1187,  1188,  1194,  1198,  1204,  1212,  1213,  1217,
627     1231,  1237,  1241,  1246,  1260,  1271,  1272,  1273,  1274,  1275,
628     1276,  1277,  1278,  1279,  1283,  1291,  1298,  1309,  1313,  1320,
629     1321,  1325,  1329,  1330,  1334,  1338,  1345,  1352,  1358,  1359,
630     1360,  1364,  1365,  1366,  1367,  1373,  1384,  1385,  1386,  1387,
631     1388,  1393,  1404,  1416,  1425,  1434,  1444,  1452,  1453,  1457,
632     1461,  1465,  1475,  1486,  1497,  1508,  1519,  1520,  1524,  1527,
633     1528,  1532,  1533,  1534,  1535,  1539,  1540,  1544,  1549,  1551,
634     1555,  1564,  1568,  1576,  1577,  1581
635 };
636 #endif
637 
638 #if YYDEBUG || YYERROR_VERBOSE || 1
639 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
640    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
641 static const char *const yytname[] =
642 {
643   "$end", "error", "$undefined", "TOK_IDENT", "TOK_ATIDENT",
644   "TOK_CONST_INT", "TOK_CONST_FLOAT", "TOK_CONST_MVA", "TOK_QUOTED_STRING",
645   "TOK_USERVAR", "TOK_SYSVAR", "TOK_CONST_STRINGS", "TOK_BAD_NUMERIC",
646   "TOK_SUBKEY", "TOK_DOT_NUMBER", "TOK_ADD", "TOK_AGENT", "TOK_ALTER",
647   "TOK_AS", "TOK_ASC", "TOK_ATTACH", "TOK_ATTRIBUTES", "TOK_AVG",
648   "TOK_BEGIN", "TOK_BETWEEN", "TOK_BIGINT", "TOK_BOOL", "TOK_BY",
649   "TOK_CALL", "TOK_CHARACTER", "TOK_CHUNK", "TOK_COLLATION", "TOK_COLUMN",
650   "TOK_COMMIT", "TOK_COMMITTED", "TOK_COUNT", "TOK_CREATE",
651   "TOK_DATABASES", "TOK_DELETE", "TOK_DESC", "TOK_DESCRIBE",
652   "TOK_DISTINCT", "TOK_DIV", "TOK_DOUBLE", "TOK_DROP", "TOK_FACET",
653   "TOK_FALSE", "TOK_FLOAT", "TOK_FLUSH", "TOK_FOR", "TOK_FROM",
654   "TOK_FUNCTION", "TOK_GLOBAL", "TOK_GROUP", "TOK_GROUPBY",
655   "TOK_GROUP_CONCAT", "TOK_HAVING", "TOK_ID", "TOK_IN", "TOK_INDEX",
656   "TOK_INSERT", "TOK_INT", "TOK_INTEGER", "TOK_INTO", "TOK_IS",
657   "TOK_ISOLATION", "TOK_JSON", "TOK_LEVEL", "TOK_LIKE", "TOK_LIMIT",
658   "TOK_MATCH", "TOK_MAX", "TOK_META", "TOK_MIN", "TOK_MOD", "TOK_MULTI",
659   "TOK_MULTI64", "TOK_NAMES", "TOK_NULL", "TOK_OPTION", "TOK_ORDER",
660   "TOK_OPTIMIZE", "TOK_PLAN", "TOK_PLUGIN", "TOK_PLUGINS", "TOK_PROFILE",
661   "TOK_RAND", "TOK_RAMCHUNK", "TOK_READ", "TOK_RECONFIGURE",
662   "TOK_REPEATABLE", "TOK_REPLACE", "TOK_REMAP", "TOK_RETURNS",
663   "TOK_ROLLBACK", "TOK_RTINDEX", "TOK_SELECT", "TOK_SERIALIZABLE",
664   "TOK_SET", "TOK_SETTINGS", "TOK_SESSION", "TOK_SHOW", "TOK_SONAME",
665   "TOK_START", "TOK_STATUS", "TOK_STRING", "TOK_SUM", "TOK_TABLE",
666   "TOK_TABLES", "TOK_THREADS", "TOK_TO", "TOK_TRANSACTION", "TOK_TRUE",
667   "TOK_TRUNCATE", "TOK_TYPE", "TOK_UNCOMMITTED", "TOK_UPDATE",
668   "TOK_VALUES", "TOK_VARIABLES", "TOK_WARNINGS", "TOK_WEIGHT", "TOK_WHERE",
669   "TOK_WITHIN", "TOK_OR", "TOK_AND", "'|'", "'&'", "'='", "TOK_NE", "'<'",
670   "'>'", "TOK_LTE", "TOK_GTE", "'+'", "'-'", "'*'", "'/'", "'%'",
671   "TOK_NOT", "TOK_NEG", "';'", "'('", "')'", "','", "'{'", "'}'", "'['",
672   "']'", "$accept", "request", "statement", "ident_set", "ident",
673   "multi_stmt_list", "multi_stmt", "select", "select1",
674   "opt_tablefunc_args", "tablefunc_args_list", "tablefunc_arg",
675   "subselect_start", "opt_outer_order", "opt_outer_limit", "select_from",
676   "select_items_list", "select_item", "opt_alias", "select_expr",
677   "ident_list", "opt_where_clause", "where_clause", "where_expr",
678   "where_item", "filter_item", "expr_ident", "const_int", "const_float",
679   "const_list", "string_list", "opt_group_clause", "opt_int",
680   "group_items_list", "opt_having_clause", "opt_group_order_clause",
681   "group_order_clause", "opt_order_clause", "order_clause",
682   "order_items_list", "order_item", "opt_limit_clause", "limit_clause",
683   "opt_option_clause", "option_clause", "option_list", "option_item",
684   "named_const_list", "named_const", "expr", "function", "arglist", "arg",
685   "consthash", "hash_key", "hash_val", "show_stmt", "like_filter",
686   "show_what", "index_or_table", "opt_chunk", "set_stmt",
687   "set_global_stmt", "set_string_value", "boolean_value", "set_value",
688   "simple_set_value", "transact_op", "start_transaction", "insert_into",
689   "insert_or_replace", "opt_column_list", "column_ident", "column_list",
690   "insert_rows_list", "insert_row", "insert_vals_list", "insert_val",
691   "opt_insert_options", "insert_options_list", "insert_option",
692   "delete_from", "call_proc", "call_args_list", "call_arg",
693   "const_string_list", "opt_call_opts_list", "call_opts_list", "call_opt",
694   "opt_as", "call_opt_name", "describe", "describe_tok", "show_tables",
695   "show_databases", "update", "update_items_list", "update_item",
696   "alter_col_type", "alter", "show_variables", "opt_show_variables_where",
697   "show_variables_where", "show_variables_where_list",
698   "show_variables_where_entry", "show_collation", "show_character_set",
699   "set_transaction", "opt_scope", "isolation_level", "create_function",
700   "udf_type", "drop_function", "attach_index", "flush_rtindex",
701   "flush_ramchunk", "flush_index", "select_sysvar", "sysvar_list",
702   "sysvar_item", "sysvar_name", "select_dual", "truncate",
703   "optimize_index", "create_plugin", "drop_plugin", "json_field",
704   "json_expr", "subscript", "subkey", "streq", "strval",
705   "opt_facet_by_items_list", "facet_by", "facet_item", "facet_expr",
706   "facet_items_list", "facet_stmt", YY_NULLPTR
707 };
708 #endif
709 
710 # ifdef YYPRINT
711 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
712    (internal) symbol number NUM (which must be that of a token).  */
713 static const yytype_uint16 yytoknum[] =
714 {
715        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
716      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
717      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
718      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
719      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
720      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
721      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
722      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
723      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
724      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
725      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
726      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
727      375,   376,   377,   378,   379,   124,    38,    61,   380,    60,
728       62,   381,   382,    43,    45,    42,    47,    37,   383,   384,
729       59,    40,    41,    44,   123,   125,    91,    93
730 };
731 # endif
732 
733 #define YYPACT_NINF -660
734 
735 #define yypact_value_is_default(Yystate) \
736   (!!((Yystate) == (-660)))
737 
738 #define YYTABLE_NINF -478
739 
740 #define yytable_value_is_error(Yytable_value) \
741   0
742 
743   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
744      STATE-NUM.  */
745 static const yytype_int16 yypact[] =
746 {
747     4598,    95,    74,  -660,  3854,  -660,    48,    88,  -660,  -660,
748       51,    89,  -660,   124,  -660,  -660,   832,  3974,   532,    18,
749       91,  3854,   143,  -660,   -19,  -660,  -660,  -660,  -660,  -660,
750     -660,  -660,  -660,  -660,  -660,   154,  -660,  -660,  -660,  3854,
751     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
752     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
753     3854,  3854,  3854,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
754     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
755     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
756     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
757     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
758     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
759     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
760     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
761     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
762     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,    97,  3854,
763     3854,  3854,  3854,  3854,  -660,  3854,  3854,  3854,   100,  -660,
764     -660,  -660,  -660,  -660,  -660,  -660,   107,   131,   144,   162,
765      177,   193,   194,  -660,   200,   216,   217,   218,   219,   222,
766      223,  1684,  -660,  1684,  1684,  3298,    59,   -11,  -660,  3407,
767      165,  -660,   -39,  -660,  3407,   159,   172,  -660,    99,   116,
768      167,  4094,  3854,  2709,   176,   180,   254,  3527,   269,  -660,
769      161,  -660,  -660,   161,  -660,  -660,  -660,  -660,   161,  -660,
770      161,   289,  -660,  -660,  3854,   252,  -660,  3854,  -660,   -34,
771     -660,  1684,   105,  -660,  3854,   161,   284,    72,   264,    41,
772      287,   263,   -29,  -660,   267,  -660,  -660,  -660,   974,  1684,
773     1826,    -5,  1826,  1826,   240,  1684,  1826,  1826,  1684,  1684,
774     1684,  1684,   242,   244,   245,   246,  -660,  -660,  4316,  -660,
775     -660,   -40,   261,  -660,  -660,  1968,    66,  -660,  2346,  1116,
776     3854,  -660,  -660,  1684,  1684,  1684,  1684,  1684,  1684,  1684,
777     1684,  1684,  1684,  1684,  1684,  1684,  1684,  1684,  1684,  1684,
778      385,   389,  -660,  -660,  -660,   -47,  1684,  2709,  2709,   277,
779      278,   355,  -660,  -660,  -660,  -660,  -660,   274,  -660,  2469,
780      344,   306,     9,   307,  -660,   404,  -660,  -660,  -660,  -660,
781     3854,  -660,  -660,    31,    50,  -660,  3854,  3854,  4614,  -660,
782     3407,    -7,  1258,  4214,   294,  -660,   273,  -660,  -660,   383,
783      384,   323,  -660,  -660,  -660,  -660,   101,    32,  -660,  -660,
784     -660,   295,  -660,    34,   432,  2100,  -660,   433,   316,  1400,
785     -660,  4599,    79,  -660,  4349,  4614,    82,  3854,   304,    85,
786       92,  -660,  4380,   102,   115,   544,   582,   680,  4413,  -660,
787     1542,  1684,  1684,  -660,  3298,  -660,  2589,   300,   298,  -660,
788     -660,   -29,  -660,  4614,  -660,  -660,  -660,  4628,  4641,   658,
789      561,   146,  -660,   146,   118,   118,   118,   118,    -9,    -9,
790     -660,  -660,  -660,   305,  -660,  -660,   371,   146,   274,   274,
791      309,  3069,   442,  2709,  -660,  -660,  -660,  -660,   447,  -660,
792     -660,  -660,  -660,   387,   161,  -660,   161,  -660,   329,   314,
793     -660,   359,   454,  -660,   361,   453,  3854,  -660,  -660,    69,
794      -24,  -660,   336,  -660,  -660,  -660,  1684,   386,  1684,  3636,
795      347,  3854,  3854,  3854,  -660,  -660,  -660,  -660,  -660,   117,
796      119,    41,   326,  -660,  -660,  -660,  -660,  -660,   363,   367,
797     -660,   330,   331,   332,   335,   339,  -660,   340,   341,   342,
798     2100,    66,   346,  -660,  -660,   192,  -660,  -660,  1116,   345,
799     3854,  -660,  1826,  -660,  -660,   348,  -660,  -660,  -660,  -660,
800     -660,  -660,  -660,  1684,  -660,  1684,  1684,  -660,  4218,  4252,
801      362,  -660,  -660,  -660,  -660,  -660,   390,   435,  -660,   487,
802     -660,    14,  -660,  -660,   366,  -660,    52,  -660,  -660,  2223,
803     3854,  -660,  -660,  -660,  -660,   373,   378,  -660,    36,  3854,
804      289,    84,  -660,   475,   434,  -660,   364,  -660,  -660,  -660,
805      125,   368,   286,  -660,  -660,  -660,    14,  -660,   496,    56,
806     -660,   365,  -660,  -660,   497,   502,  3854,   379,  3854,   375,
807      376,  3854,   505,   396,   -31,  2100,    84,     4,   -16,    70,
808       80,    84,    84,    84,    84,   481,   397,   483,  -660,  -660,
809     4446,  4477,  4283,  2589,  1116,   401,   539,   423,  -660,   128,
810      405,     0,   459,  -660,  -660,  -660,  -660,  3854,   408,  -660,
811      542,  3854,    10,  -660,  -660,  -660,  -660,  -660,  -660,  2829,
812     -660,  -660,  3636,    46,   -26,  -660,  -660,  -660,  -660,  -660,
813     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  3745,
814       46,  -660,  -660,    66,   409,   410,   411,  -660,  -660,   412,
815      415,  -660,  -660,  -660,   436,   440,  -660,    19,  -660,   480,
816     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
817     -660,  -660,  -660,  -660,    13,  3189,   417,  3854,  -660,  -660,
818      425,  -660,    -2,   488,  -660,   540,   517,   515,  -660,  -660,
819       14,  -660,  -660,  -660,   446,   163,  -660,   566,  -660,  -660,
820     -660,   166,   438,    81,   437,  -660,  -660,    39,   173,  -660,
821      572,   368,  -660,  -660,  -660,  -660,   558,  -660,  -660,  -660,
822     -660,  -660,  -660,    84,    84,  -660,   184,   186,  -660,  -660,
823       19,  -660,  -660,  -660,   444,  -660,  -660,    66,   439,  -660,
824     1826,  3854,   550,   514,  2949,   508,  2949,   386,   189,    14,
825     -660,  3854,   443,  -660,   448,  -660,  -660,  2949,  -660,    46,
826      462,   450,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,
827      587,   195,   202,  3189,  -660,   207,  2949,   591,  -660,  -660,
828      455,   573,  -660,   434,  -660,  -660,  -660,  -660,  -660,  -660,
829     -660,   594,   572,  -660,  -660,  -660,  -660,   456,   437,   463,
830     2949,  2949,   289,  -660,  -660,   466,   603,  -660,   437,  -660,
831     1826,  -660,   213,   467,  -660
832 };
833 
834   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
835      Performed when YYTABLE does not specify something else to do.  Zero
836      means the default is an error.  */
837 static const yytype_uint16 yydefact[] =
838 {
839        0,     0,     0,   358,     0,   355,     0,     0,   403,   402,
840        0,     0,   361,     0,   362,   356,     0,   438,   438,     0,
841        0,     0,     0,     2,     3,   126,   129,   132,   134,   130,
842      131,     7,     8,   357,     5,     0,     6,     9,    10,     0,
843       11,    12,    13,    28,    14,    15,    16,    23,    17,    18,
844       19,    20,    21,    22,    24,    25,    26,    27,    29,    30,
845        0,     0,     0,    31,    32,    33,    34,    35,    36,    37,
846       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
847       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
848       58,    59,    60,    61,    62,    63,    64,    66,    65,    67,
849       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
850       78,    79,    80,    81,    82,   124,    84,    83,    85,    86,
851       87,    88,    90,    89,    91,    92,    94,    95,    93,    96,
852       97,    98,    99,   101,   102,   100,   103,   104,   105,   106,
853      107,   108,   109,   110,   111,   112,   125,   113,   114,   115,
854      116,   117,   118,   119,   120,   121,   122,   123,     0,     0,
855        0,     0,     0,     0,   455,     0,     0,     0,    31,   259,
856      261,   262,   477,   264,   460,   263,    38,    41,    50,    57,
857       59,    66,    65,   260,     0,    71,    78,    80,    93,   108,
858      120,     0,   151,     0,     0,     0,   258,     0,   149,   153,
859      156,   286,   241,   457,   153,     0,   287,   288,     0,     0,
860       44,    63,    68,     0,   100,     0,     0,     0,     0,   435,
861      314,   439,   329,   314,   321,   322,   320,   440,   314,   330,
862      314,   245,   316,   313,     0,     0,   359,     0,   165,     0,
863        1,     0,     4,   128,     0,   314,     0,     0,     0,     0,
864        0,     0,     0,   451,     0,   454,   453,   463,     0,     0,
865        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
866        0,     0,     0,    31,    78,    80,   265,   266,     0,   310,
867      309,     0,     0,   471,   472,     0,   468,   469,     0,     0,
868        0,   154,   152,     0,     0,     0,     0,     0,     0,     0,
869        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
870        0,     0,   456,   242,   459,     0,     0,     0,     0,     0,
871        0,     0,   353,   354,   352,   351,   350,   336,   348,     0,
872        0,     0,   314,     0,   436,     0,   405,   318,   317,   404,
873        0,   323,   246,   331,   429,   462,     0,     0,   482,   483,
874      153,   478,     0,     0,     0,   127,   363,   401,   426,     0,
875        0,     0,   212,   214,   376,   216,     0,     0,   374,   375,
876      388,   392,   386,     0,     0,     0,   384,     0,   306,     0,
877      297,   305,     0,   303,     0,   305,     0,     0,     0,     0,
878        0,   163,     0,     0,     0,     0,     0,     0,     0,   300,
879        0,     0,     0,   284,     0,   285,     0,   477,     0,   470,
880      143,   167,   150,   156,   155,   276,   277,   283,   282,   274,
881      273,   280,   475,   281,   271,   272,   278,   279,   267,   268,
882      269,   270,   275,   243,   458,   289,     0,   476,   337,   338,
883        0,     0,     0,     0,   344,   346,   335,   345,     0,   343,
884      347,   334,   333,     0,   314,   319,   314,   315,     0,   247,
885      248,     0,     0,   326,     0,     0,     0,   427,   430,     0,
886        0,   407,     0,   166,   481,   480,     0,   232,     0,     0,
887        0,     0,     0,     0,   213,   215,   390,   378,   217,     0,
888        0,     0,     0,   447,   448,   446,   450,   449,     0,     0,
889      202,    41,    50,    57,     0,    66,   206,    71,    77,   120,
890        0,   201,   169,   170,   174,     0,   207,   465,     0,     0,
891        0,   291,     0,   157,   294,     0,   162,   296,   295,   161,
892      292,   293,   158,     0,   159,     0,     0,   160,     0,     0,
893        0,   312,   311,   307,   474,   473,     0,   221,   168,     0,
894      290,     0,   341,   340,     0,   349,     0,   324,   325,     0,
895        0,   328,   332,   327,   428,     0,   431,   432,     0,     0,
896      245,     0,   484,     0,   241,   233,   479,   366,   365,   367,
897        0,     0,     0,   425,   452,   377,     0,   389,     0,   397,
898      387,   393,   394,   385,     0,     0,     0,     0,     0,     0,
899        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
900        0,     0,     0,     0,     0,     0,   136,     0,   304,   164,
901        0,     0,     0,     0,     0,     0,   223,   229,   244,     0,
902        0,     0,     0,   444,   437,   251,   254,     0,   250,   249,
903        0,     0,     0,   409,   410,   408,   406,   413,   414,     0,
904      485,   364,     0,     0,   379,   369,   416,   418,   417,   423,
905      415,   421,   419,   420,   422,   424,   218,   391,   398,     0,
906        0,   445,   464,     0,     0,     0,     0,   211,   204,     0,
907        0,   205,   172,   171,     0,     0,   181,     0,   199,     0,
908      197,   175,   188,   198,   176,   189,   185,   194,   184,   193,
909      187,   196,   186,   195,     0,     0,     0,     0,   299,   298,
910        0,   308,     0,     0,   224,     0,     0,   227,   230,   339,
911        0,   442,   441,   443,     0,     0,   255,     0,   434,   433,
912      412,     0,    90,   238,   234,   236,   368,     0,     0,   372,
913        0,     0,   360,   400,   399,   396,   397,   395,   210,   203,
914      209,   208,   173,     0,     0,   219,     0,     0,   200,   182,
915        0,   141,   142,   140,   137,   138,   133,   467,     0,   466,
916        0,     0,     0,   145,     0,     0,     0,   232,     0,     0,
917      252,     0,     0,   411,     0,   239,   240,     0,   371,     0,
918        0,   380,   381,   370,   183,   191,   192,   190,   177,   179,
919        0,     0,     0,     0,   301,     0,     0,     0,   135,   225,
920      222,     0,   228,   241,   342,   257,   256,   253,   235,   237,
921      373,     0,     0,   220,   178,   180,   139,     0,   144,   146,
922        0,     0,   245,   383,   382,     0,     0,   226,   231,   148,
923        0,   147,     0,     0,   302
924 };
925 
926   /* YYPGOTO[NTERM-NUM].  */
927 static const yytype_int16 yypgoto[] =
928 {
929     -660,  -660,  -660,   -14,    -4,  -660,   369,  -660,   231,  -660,
930     -660,  -191,  -660,  -660,  -660,    67,    -3,   333,  -186,  -660,
931      -10,  -660,  -303,  -481,  -660,  -161,  -637,  -217,  -543,  -541,
932     -140,  -660,  -660,  -660,  -660,  -660,  -660,  -154,  -660,  -659,
933     -162,  -567,  -660,  -569,  -660,  -660,    71,  -660,  -152,   226,
934     -660,  -258,   108,  -660,   230,    15,  -660,  -207,  -660,  -660,
935     -660,  -660,  -660,   201,  -660,   -86,   203,  -660,  -660,  -660,
936     -660,  -660,    -8,  -660,  -660,   -98,  -660,  -485,  -660,  -660,
937     -175,  -660,  -660,  -660,   158,  -660,  -660,  -660,   -20,  -660,
938     -660,  -660,  -660,  -660,  -660,  -660,  -660,    83,  -660,  -660,
939     -660,  -660,  -660,  -660,    12,  -660,  -660,  -660,   636,  -660,
940     -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,  -660,   349,
941     -660,  -660,  -660,  -660,  -660,  -660,   -52,  -332,  -660,   372,
942     -660,   358,  -660,  -660,   183,  -660,   185,  -660
943 };
944 
945   /* YYDEFGOTO[NTERM-NUM].  */
946 static const yytype_int16 yydefgoto[] =
947 {
948       -1,    22,    23,   157,   196,    24,    25,    26,    27,   706,
949      764,   765,   546,   773,   808,    28,   197,   198,   292,   199,
950      411,   547,   376,   512,   513,   514,   515,   488,   369,   489,
951      757,   627,   715,   810,   777,   717,   718,   574,   575,   734,
952      735,   312,   313,   341,   342,   459,   460,   725,   726,   385,
953      201,   382,   383,   281,   282,   543,    29,   336,   233,   234,
954      464,    30,    31,   451,   452,   327,   328,    32,    33,    34,
955       35,   480,   579,   580,   654,   655,   738,   370,   742,   791,
956      792,    36,    37,   371,   372,   490,   492,   591,   592,   669,
957      745,    38,    39,    40,    41,    42,   470,   471,   665,    43,
958       44,   467,   468,   566,   567,    45,    46,    47,   216,   634,
959       48,   498,    49,    50,    51,    52,    53,    54,   202,   203,
960      204,    55,    56,    57,    58,    59,   205,   206,   286,   287,
961      207,   208,   477,   478,   349,   350,   351,   243
962 };
963 
964   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
965      positive, shift that token.  If negative, reduce the rule whose
966      number is the opposite.  If YYTABLE_NINF, syntax error.  */
967 static const yytype_int16 yytable[] =
968 {
969      158,   646,   386,   215,   389,   390,   589,   650,   393,   394,
970      629,   239,   733,   686,   472,   362,   337,   238,   314,   362,
971      475,   338,   759,   339,   362,   644,   241,   755,   648,   604,
972      310,   435,   368,   293,   721,   245,   387,   362,   357,   288,
973      486,   362,   363,   516,   362,   461,   362,   363,   771,   364,
974      365,   362,   363,   740,   364,   365,   246,   247,   248,   493,
975      365,   462,   688,   685,   346,   294,   692,   695,   697,   699,
976      701,   703,   283,   284,   668,   362,   363,   335,   690,   283,
977      284,   494,   283,   284,   365,   362,   363,   359,   693,   362,
978      363,   436,   375,   605,   365,   495,   496,   375,   365,   159,
979      785,   731,   162,   404,   311,   405,   484,   485,   548,   347,
980      164,   682,   450,  -106,   347,   722,   360,   741,   465,   569,
981      786,   242,   689,  -467,   683,   455,   307,   308,   309,   236,
982      388,   160,   289,    62,   163,   463,   476,   809,   161,   497,
983      631,   289,   632,   240,   448,   687,   756,   828,   448,   633,
984      733,   252,   730,   448,   760,   250,   251,   238,   253,   254,
985      293,   255,   256,   257,   474,  -461,   448,   570,   739,   733,
986      366,   466,   838,   448,   487,   366,   165,   642,   516,   778,
987      366,   487,   367,   167,   166,   746,   237,   737,   293,   542,
988       60,   280,   294,   837,   733,   291,   568,   320,  -388,  -388,
989      291,   352,    61,   353,   366,   285,   354,   293,   321,   326,
990      795,   797,   285,   333,   366,   285,   606,   244,   366,   801,
991      294,   521,   522,   315,   524,   522,   316,   527,   522,   335,
992      343,   438,   439,   345,   528,   522,  -466,   472,   249,   294,
993      356,   258,   200,   317,   530,   522,   832,   557,   259,   558,
994      607,   305,   306,   307,   308,   309,   608,   531,   522,   585,
995      586,   587,   588,   839,   674,   318,   676,   651,   652,   679,
996      719,   586,   260,   516,   368,   301,   302,   303,   304,   305,
997      306,   307,   308,   309,   238,   261,   414,  -440,   295,   296,
998      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
999      307,   308,   309,   262,   820,   780,   781,   329,   783,   586,
1000      217,   656,   657,   326,   326,   788,   789,   516,   263,   609,
1001      610,   611,   612,   613,   614,   449,   798,   586,   799,   800,
1002      615,   814,   586,   658,   264,   265,   458,   824,   586,   215,
1003      293,   266,   469,   473,   825,   800,   291,   659,   660,   827,
1004      522,   643,   661,   222,   647,   843,   522,   267,   268,   269,
1005      270,   662,   663,   271,   272,   330,   223,   334,   340,   666,
1006      344,   511,   294,   358,   361,   769,   224,   374,   225,   226,
1007      373,   377,   391,   525,   399,   400,   401,   402,   406,   684,
1008      433,   664,   691,   694,   696,   698,   700,   702,   228,   174,
1009      280,   229,   541,   231,   440,   441,   542,   442,   443,   453,
1010      454,   456,   457,   232,   479,   481,   482,   276,   483,   277,
1011      278,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1012      304,   305,   306,   307,   308,   309,   368,   449,   491,   326,
1013      499,   517,   516,  -477,   516,   545,   526,   544,   549,   550,
1014      551,   554,   484,   368,   556,   516,   559,   560,   561,   562,
1015      563,   564,   565,   571,   581,   594,   573,   348,   593,   595,
1016      605,   596,   597,   598,   516,   578,   599,   582,   583,   584,
1017      600,   601,   602,   603,   381,   384,   624,   616,   626,   623,
1018      619,   392,   628,   630,   395,   396,   397,   398,   516,   516,
1019      640,   641,   649,   310,   667,   671,   511,   476,   670,   653,
1020      672,   408,   805,   680,   675,   413,   617,   677,   678,   415,
1021      416,   417,   418,   419,   420,   421,   423,   424,   425,   426,
1022      427,   428,   429,   430,   431,   432,   794,   796,   681,   704,
1023      705,   707,   437,   713,   714,   716,   720,   723,   217,   727,
1024      728,   748,   749,   750,   751,   638,   458,   752,   758,   766,
1025      753,   218,   815,   219,   754,   469,   770,   774,   772,   220,
1026      775,   776,   368,   779,   782,   790,   668,   806,   413,   784,
1027      787,   804,   842,   807,   221,   817,   293,   803,   811,   821,
1028      818,   222,   673,   822,   673,   823,   829,   673,   830,   835,
1029      831,   511,   833,   293,   223,   278,   836,   840,   841,   844,
1030      519,   355,   826,   625,   224,   812,   225,   226,   294,   541,
1031      802,   712,   412,   813,   293,   819,   381,   538,   539,   816,
1032      618,   639,   227,   724,   540,   294,   228,   565,   711,   229,
1033      230,   231,   553,   793,   736,   511,   555,   834,   578,   590,
1034      747,   232,   645,   729,   235,   768,   294,   422,   409,   572,
1035      434,     0,     0,   576,     0,   744,     0,   295,   296,   297,
1036      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1037      308,   309,     0,     0,     0,     0,   532,   533,   299,   300,
1038      301,   302,   303,   304,   305,   306,   307,   308,   309,     0,
1039      293,   763,   348,   767,   348,   295,   296,   297,   298,   299,
1040      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1041        0,     0,   293,     0,   534,   535,     0,     0,     0,     0,
1042        0,     0,   294,     0,     0,     0,     0,     0,     0,     0,
1043        0,     0,     0,     0,   413,     0,     0,     0,     0,     0,
1044        0,     0,     0,     0,   294,     0,     0,     0,     0,   620,
1045        0,   621,   622,     0,     0,     0,     0,   238,     0,     0,
1046      511,     0,   511,     0,     0,     0,     0,   724,     0,     0,
1047        0,     0,     0,   511,   298,   299,   300,   301,   302,   303,
1048      304,   305,   306,   307,   308,   309,     0,     0,     0,   763,
1049        0,     0,   511,   295,   296,   297,   298,   299,   300,   301,
1050      302,   303,   304,   305,   306,   307,   308,   309,     0,     0,
1051        0,     0,     0,   536,     0,     0,   511,   511,     0,     0,
1052        0,     0,     0,     0,     0,   168,   169,   170,   171,     0,
1053      172,   173,   174,     0,     0,     0,   175,    64,    65,    66,
1054      413,    67,    68,    69,   176,    71,    72,   177,    74,     0,
1055       75,    76,    77,    78,    79,    80,    81,   178,    83,    84,
1056       85,    86,    87,    88,     0,   179,    90,     0,     0,   180,
1057       92,    93,     0,    94,    95,    96,   181,   182,    99,   183,
1058      184,   100,   101,   102,   185,   104,     0,   105,   106,   107,
1059      108,     0,   109,   186,   111,   187,     0,   113,   114,   115,
1060        0,   116,     0,   117,   118,   119,   120,   121,   122,   123,
1061      124,   125,   126,   127,   188,   129,   130,   131,     0,   132,
1062      133,   134,   135,   136,   137,   138,   139,   140,   189,   142,
1063      143,   144,   145,   146,     0,   147,   148,   149,   150,   151,
1064      152,   153,   190,   155,   156,     0,     0,     0,     0,     0,
1065        0,     0,     0,     0,     0,     0,   191,   192,     0,     0,
1066      193,     0,     0,   194,     0,     0,   195,   273,   169,   170,
1067      171,     0,   378,   173,     0,     0,     0,     0,   175,    64,
1068       65,    66,     0,    67,    68,    69,    70,    71,    72,   177,
1069       74,     0,    75,    76,    77,    78,    79,    80,    81,    82,
1070       83,    84,    85,    86,    87,    88,     0,   179,    90,     0,
1071        0,   180,    92,    93,     0,    94,    95,    96,    97,    98,
1072       99,   183,   184,   100,   101,   102,   185,   104,     0,   105,
1073      106,   107,   108,     0,   109,   274,   111,   275,     0,   113,
1074      114,   115,     0,   116,     0,   117,   118,   119,   120,   121,
1075      122,   123,   124,   125,   126,   127,   188,   129,   130,   131,
1076        0,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1077      141,   142,   143,   144,   145,   146,     0,   147,   148,   149,
1078      150,   151,   152,   153,   190,   155,   156,     0,     0,     0,
1079        0,     0,     0,     0,     0,     0,     0,     0,   191,     0,
1080        0,     0,   193,     0,     0,   379,   380,     0,   195,   273,
1081      169,   170,   171,     0,   172,   173,     0,     0,     0,     0,
1082      175,    64,    65,    66,     0,    67,    68,    69,   176,    71,
1083       72,   177,    74,     0,    75,    76,    77,    78,    79,    80,
1084       81,   178,    83,    84,    85,    86,    87,    88,     0,   179,
1085       90,     0,     0,   180,    92,    93,     0,    94,    95,    96,
1086      181,   182,    99,   183,   184,   100,   101,   102,   185,   104,
1087        0,   105,   106,   107,   108,     0,   109,   186,   111,   187,
1088        0,   113,   114,   115,     0,   116,     0,   117,   118,   119,
1089      120,   121,   122,   123,   124,   125,   126,   127,   188,   129,
1090      130,   131,     0,   132,   133,   134,   135,   136,   137,   138,
1091      139,   140,   189,   142,   143,   144,   145,   146,     0,   147,
1092      148,   149,   150,   151,   152,   153,   190,   155,   156,     0,
1093        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1094      191,   192,     0,     0,   193,     0,     0,   194,     0,     0,
1095      195,   168,   169,   170,   171,     0,   172,   173,     0,     0,
1096        0,     0,   175,    64,    65,    66,     0,    67,    68,    69,
1097      176,    71,    72,   177,    74,     0,    75,    76,    77,    78,
1098       79,    80,    81,   178,    83,    84,    85,    86,    87,    88,
1099        0,   179,    90,     0,     0,   180,    92,    93,     0,    94,
1100       95,    96,   181,   182,    99,   183,   184,   100,   101,   102,
1101      185,   104,     0,   105,   106,   107,   108,     0,   109,   186,
1102      111,   187,     0,   113,   114,   115,     0,   116,     0,   117,
1103      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1104      188,   129,   130,   131,     0,   132,   133,   134,   135,   136,
1105      137,   138,   139,   140,   189,   142,   143,   144,   145,   146,
1106        0,   147,   148,   149,   150,   151,   152,   153,   190,   155,
1107      156,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1108        0,     0,   191,   192,     0,     0,   193,     0,     0,   194,
1109        0,     0,   195,   273,   169,   170,   171,     0,   172,   173,
1110        0,     0,     0,     0,   175,    64,    65,    66,     0,    67,
1111       68,    69,    70,    71,    72,   177,    74,     0,    75,    76,
1112       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1113       87,    88,     0,   179,    90,     0,     0,   180,    92,    93,
1114        0,    94,    95,    96,    97,    98,    99,   183,   184,   100,
1115      101,   102,   185,   104,     0,   105,   106,   107,   108,     0,
1116      109,   274,   111,   275,     0,   113,   114,   115,     0,   116,
1117        0,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1118      126,   127,   188,   129,   130,   131,   518,   132,   133,   134,
1119      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1120      145,   146,     0,   147,   148,   149,   150,   151,   152,   153,
1121      190,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1122        0,     0,     0,     0,   191,     0,     0,     0,   193,     0,
1123        0,   194,     0,     0,   195,   273,   169,   170,   171,     0,
1124      378,   173,     0,     0,     0,     0,   175,    64,    65,    66,
1125        0,    67,    68,    69,    70,    71,    72,   177,    74,     0,
1126       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1127       85,    86,    87,    88,     0,   179,    90,     0,     0,   180,
1128       92,    93,     0,    94,    95,    96,    97,    98,    99,   183,
1129      184,   100,   101,   102,   185,   104,     0,   105,   106,   107,
1130      108,     0,   109,   274,   111,   275,     0,   113,   114,   115,
1131        0,   116,     0,   117,   118,   119,   120,   121,   122,   123,
1132      124,   125,   126,   127,   188,   129,   130,   131,     0,   132,
1133      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1134      143,   144,   145,   146,     0,   147,   148,   149,   150,   151,
1135      152,   153,   190,   155,   156,     0,     0,     0,     0,     0,
1136        0,     0,     0,     0,     0,     0,   191,     0,     0,     0,
1137      193,     0,     0,   194,   380,     0,   195,   273,   169,   170,
1138      171,     0,   172,   173,     0,     0,     0,     0,   175,    64,
1139       65,    66,     0,    67,    68,    69,    70,    71,    72,   177,
1140       74,     0,    75,    76,    77,    78,    79,    80,    81,    82,
1141       83,    84,    85,    86,    87,    88,     0,   179,    90,     0,
1142        0,   180,    92,    93,     0,    94,    95,    96,    97,    98,
1143       99,   183,   184,   100,   101,   102,   185,   104,     0,   105,
1144      106,   107,   108,     0,   109,   274,   111,   275,     0,   113,
1145      114,   115,     0,   116,     0,   117,   118,   119,   120,   121,
1146      122,   123,   124,   125,   126,   127,   188,   129,   130,   131,
1147        0,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1148      141,   142,   143,   144,   145,   146,     0,   147,   148,   149,
1149      150,   151,   152,   153,   190,   155,   156,     0,     0,     0,
1150        0,     0,     0,     0,     0,     0,     0,     0,   191,     0,
1151        0,     0,   193,     0,     0,   194,     0,     0,   195,   273,
1152      169,   170,   171,     0,   378,   173,     0,     0,     0,     0,
1153      175,    64,    65,    66,     0,    67,    68,    69,    70,    71,
1154       72,   177,    74,     0,    75,    76,    77,    78,    79,    80,
1155       81,    82,    83,    84,    85,    86,    87,    88,     0,   179,
1156       90,     0,     0,   180,    92,    93,     0,    94,    95,    96,
1157       97,    98,    99,   183,   184,   100,   101,   102,   185,   104,
1158        0,   105,   106,   107,   108,     0,   109,   274,   111,   275,
1159        0,   113,   114,   115,     0,   116,     0,   117,   118,   119,
1160      120,   121,   122,   123,   124,   125,   126,   127,   188,   129,
1161      130,   131,     0,   132,   133,   134,   135,   136,   137,   138,
1162      139,   140,   141,   142,   143,   144,   145,   146,     0,   147,
1163      148,   149,   150,   151,   152,   153,   190,   155,   156,     0,
1164        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1165      191,     0,     0,     0,   193,     0,     0,   194,     0,     0,
1166      195,   273,   169,   170,   171,     0,   407,   173,     0,     0,
1167        0,     0,   175,    64,    65,    66,     0,    67,    68,    69,
1168       70,    71,    72,   177,    74,     0,    75,    76,    77,    78,
1169       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1170        0,   179,    90,     0,     0,   180,    92,    93,     0,    94,
1171       95,    96,    97,    98,    99,   183,   184,   100,   101,   102,
1172      185,   104,     0,   105,   106,   107,   108,     0,   109,   274,
1173      111,   275,     0,   113,   114,   115,     0,   116,     0,   117,
1174      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1175      188,   129,   130,   131,     0,   132,   133,   134,   135,   136,
1176      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1177        0,   147,   148,   149,   150,   151,   152,   153,   190,   155,
1178      156,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1179        0,     0,   191,    63,   500,     0,   193,     0,     0,   194,
1180        0,     0,   195,     0,     0,    64,    65,    66,     0,    67,
1181       68,    69,    70,    71,    72,   501,    74,     0,    75,    76,
1182       77,    78,    79,    80,    81,   502,    83,    84,    85,    86,
1183       87,    88,     0,   503,    90,   504,     0,    91,    92,    93,
1184        0,    94,    95,    96,   505,    98,    99,   506,     0,   100,
1185      101,   102,   507,   104,     0,   105,   106,   107,   108,     0,
1186      508,   110,   111,   112,     0,   113,   114,   115,     0,   116,
1187        0,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1188      126,   127,   128,   129,   130,   131,     0,   132,   133,   134,
1189      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1190      145,   146,     0,   147,   148,   149,   150,   151,   152,   153,
1191      509,   155,   156,     0,     0,     0,    63,     0,   635,     0,
1192        0,   636,     0,     0,     0,     0,     0,     0,    64,    65,
1193       66,   510,    67,    68,    69,    70,    71,    72,    73,    74,
1194        0,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1195       84,    85,    86,    87,    88,     0,    89,    90,     0,     0,
1196       91,    92,    93,     0,    94,    95,    96,    97,    98,    99,
1197        0,     0,   100,   101,   102,   103,   104,     0,   105,   106,
1198      107,   108,     0,   109,   110,   111,   112,     0,   113,   114,
1199      115,     0,   116,     0,   117,   118,   119,   120,   121,   122,
1200      123,   124,   125,   126,   127,   128,   129,   130,   131,     0,
1201      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1202      142,   143,   144,   145,   146,     0,   147,   148,   149,   150,
1203      151,   152,   153,   154,   155,   156,     0,     0,     0,    63,
1204        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1205        0,    64,    65,    66,   637,    67,    68,    69,    70,    71,
1206       72,    73,    74,     0,    75,    76,    77,    78,    79,    80,
1207       81,    82,    83,    84,    85,    86,    87,    88,     0,    89,
1208       90,     0,     0,    91,    92,    93,     0,    94,    95,    96,
1209       97,    98,    99,     0,     0,   100,   101,   102,   103,   104,
1210        0,   105,   106,   107,   108,     0,   109,   110,   111,   112,
1211        0,   113,   114,   115,     0,   116,     0,   117,   118,   119,
1212      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1213      130,   131,     0,   132,   133,   134,   135,   136,   137,   138,
1214      139,   140,   141,   142,   143,   144,   145,   146,     0,   147,
1215      148,   149,   150,   151,   152,   153,   154,   155,   156,     0,
1216        0,     0,    63,     0,   362,     0,     0,   444,     0,     0,
1217        0,     0,     0,     0,    64,    65,    66,   410,    67,    68,
1218       69,    70,    71,    72,    73,    74,     0,    75,    76,    77,
1219       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1220       88,     0,    89,    90,     0,   445,    91,    92,    93,     0,
1221       94,    95,    96,    97,    98,    99,     0,     0,   100,   101,
1222      102,   103,   104,     0,   105,   106,   107,   108,     0,   109,
1223      110,   111,   112,     0,   113,   114,   115,   446,   116,     0,
1224      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1225      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1226      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1227      146,   447,   147,   148,   149,   150,   151,   152,   153,   154,
1228      155,   156,    63,     0,   362,     0,     0,     0,     0,     0,
1229        0,     0,     0,   448,    64,    65,    66,     0,    67,    68,
1230       69,    70,    71,    72,    73,    74,     0,    75,    76,    77,
1231       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1232       88,     0,    89,    90,     0,     0,    91,    92,    93,     0,
1233       94,    95,    96,    97,    98,    99,     0,     0,   100,   101,
1234      102,   103,   104,     0,   105,   106,   107,   108,     0,   109,
1235      110,   111,   112,     0,   113,   114,   115,     0,   116,     0,
1236      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1237      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1238      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1239      146,     0,   147,   148,   149,   150,   151,   152,   153,   154,
1240      155,   156,    63,     0,   322,   323,     0,   324,     0,     0,
1241        0,     0,     0,   448,    64,    65,    66,     0,    67,    68,
1242       69,    70,    71,    72,    73,    74,     0,    75,    76,    77,
1243       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1244       88,     0,    89,    90,     0,     0,    91,    92,    93,     0,
1245       94,    95,    96,    97,    98,    99,     0,     0,   100,   101,
1246      102,   103,   104,     0,   105,   106,   107,   108,     0,   109,
1247      110,   111,   112,     0,   113,   114,   115,   325,   116,     0,
1248      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1249      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1250      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1251      146,     0,   147,   148,   149,   150,   151,   152,   153,   154,
1252      155,   156,    63,   500,     0,     0,     0,     0,     0,     0,
1253        0,     0,     0,     0,    64,    65,    66,     0,    67,    68,
1254       69,    70,    71,    72,   501,    74,     0,    75,    76,    77,
1255       78,    79,    80,    81,   502,    83,    84,    85,    86,    87,
1256       88,     0,   503,    90,   504,     0,    91,    92,    93,     0,
1257       94,    95,    96,   505,    98,    99,   506,     0,   100,   101,
1258      102,   507,   104,     0,   105,   106,   107,   108,     0,   109,
1259      110,   111,   112,     0,   113,   114,   115,     0,   116,     0,
1260      117,   118,   119,   120,   121,   732,   123,   124,   125,   126,
1261      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1262      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1263      146,     0,   147,   148,   149,   150,   151,   152,   153,   509,
1264      155,   156,    63,   500,     0,     0,     0,     0,     0,     0,
1265        0,     0,     0,     0,    64,    65,    66,     0,    67,    68,
1266       69,    70,    71,    72,   501,    74,     0,    75,    76,    77,
1267       78,    79,    80,    81,   502,    83,    84,    85,    86,    87,
1268       88,     0,   503,    90,   504,     0,    91,    92,    93,     0,
1269       94,    95,    96,   505,    98,    99,   506,     0,   100,   101,
1270      102,   507,   104,     0,   105,   106,   107,   108,     0,   109,
1271      110,   111,   112,     0,   113,   114,   115,     0,   116,     0,
1272      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1273      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1274      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1275      146,     0,   147,   148,   149,   150,   151,   152,   153,   509,
1276      155,   156,    63,     0,   552,     0,     0,   444,     0,     0,
1277        0,     0,     0,     0,    64,    65,    66,     0,    67,    68,
1278       69,    70,    71,    72,    73,    74,     0,    75,    76,    77,
1279       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1280       88,     0,    89,    90,     0,     0,    91,    92,    93,     0,
1281       94,    95,    96,    97,    98,    99,     0,     0,   100,   101,
1282      102,   103,   104,     0,   105,   106,   107,   108,     0,   109,
1283      110,   111,   112,     0,   113,   114,   115,     0,   116,     0,
1284      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1285      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1286      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1287      146,     0,   147,   148,   149,   150,   151,   152,   153,   154,
1288      155,   156,    63,     0,   761,     0,     0,     0,     0,     0,
1289        0,     0,     0,     0,    64,    65,    66,     0,    67,    68,
1290       69,    70,    71,    72,    73,    74,     0,    75,    76,    77,
1291       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1292       88,     0,    89,    90,     0,     0,    91,    92,    93,     0,
1293       94,    95,    96,    97,    98,    99,   762,     0,   100,   101,
1294      102,   103,   104,     0,   105,   106,   107,   108,     0,   109,
1295      110,   111,   112,     0,   113,   114,   115,     0,   116,     0,
1296      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1297      127,   128,   129,   130,   131,     0,   132,   133,   134,   135,
1298      136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1299      146,    63,   147,   148,   149,   150,   151,   152,   153,   154,
1300      155,   156,     0,    64,    65,    66,     0,    67,    68,    69,
1301       70,    71,    72,    73,    74,     0,    75,    76,    77,    78,
1302       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1303        0,    89,    90,     0,     0,    91,    92,    93,     0,    94,
1304       95,    96,    97,    98,    99,     0,   279,   100,   101,   102,
1305      103,   104,     0,   105,   106,   107,   108,     0,   109,   110,
1306      111,   112,     0,   113,   114,   115,     0,   116,     0,   117,
1307      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1308      128,   129,   130,   131,     0,   132,   133,   134,   135,   136,
1309      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1310       63,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1311      156,     0,    64,    65,    66,   290,    67,    68,    69,    70,
1312       71,    72,    73,    74,     0,    75,    76,    77,    78,    79,
1313       80,    81,    82,    83,    84,    85,    86,    87,    88,     0,
1314       89,    90,     0,     0,    91,    92,    93,     0,    94,    95,
1315       96,    97,    98,    99,     0,     0,   100,   101,   102,   103,
1316      104,     0,   105,   106,   107,   108,     0,   109,   110,   111,
1317      112,     0,   113,   114,   115,     0,   116,     0,   117,   118,
1318      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1319      129,   130,   131,     0,   132,   133,   134,   135,   136,   137,
1320      138,   139,   140,   141,   142,   143,   144,   145,   146,     0,
1321      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1322       63,     0,     0,     0,     0,   331,     0,     0,     0,     0,
1323        0,     0,    64,    65,    66,     0,    67,    68,    69,    70,
1324       71,    72,    73,    74,     0,    75,    76,    77,    78,    79,
1325       80,    81,    82,    83,    84,    85,    86,    87,    88,     0,
1326       89,    90,     0,     0,    91,    92,    93,     0,    94,    95,
1327       96,    97,    98,    99,     0,     0,   100,   101,   102,   103,
1328      104,     0,   105,   106,   107,   108,     0,   109,   110,   111,
1329      112,     0,   113,   114,   115,     0,   116,     0,   117,   118,
1330      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1331      129,   130,   131,     0,   132,   133,   134,   135,   136,   137,
1332      138,   332,   140,   141,   142,   143,   144,   145,   146,    63,
1333      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1334        0,    64,    65,    66,     0,    67,    68,    69,    70,    71,
1335       72,    73,    74,     0,    75,    76,    77,    78,    79,    80,
1336       81,    82,    83,    84,    85,    86,    87,    88,     0,    89,
1337       90,     0,     0,    91,    92,    93,     0,    94,    95,    96,
1338       97,    98,    99,   577,     0,   100,   101,   102,   103,   104,
1339        0,   105,   106,   107,   108,     0,   109,   110,   111,   112,
1340        0,   113,   114,   115,     0,   116,     0,   117,   118,   119,
1341      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1342      130,   131,     0,   132,   133,   134,   135,   136,   137,   138,
1343      139,   140,   141,   142,   143,   144,   145,   146,    63,   147,
1344      148,   149,   150,   151,   152,   153,   154,   155,   156,     0,
1345       64,    65,    66,     0,    67,    68,    69,    70,    71,    72,
1346       73,    74,     0,    75,    76,    77,    78,    79,    80,    81,
1347       82,    83,    84,    85,    86,    87,    88,     0,    89,    90,
1348        0,     0,    91,    92,    93,     0,    94,    95,    96,    97,
1349       98,    99,     0,     0,   100,   101,   102,   103,   104,     0,
1350      105,   106,   107,   108,   743,   109,   110,   111,   112,     0,
1351      113,   114,   115,     0,   116,     0,   117,   118,   119,   120,
1352      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1353      131,     0,   132,   133,   134,   135,   136,   137,   138,   139,
1354      140,   141,   142,   143,   144,   145,   146,    63,   147,   148,
1355      149,   150,   151,   152,   153,   154,   155,   156,     0,    64,
1356       65,    66,     0,    67,    68,    69,    70,    71,    72,    73,
1357       74,     0,    75,    76,    77,    78,    79,    80,    81,    82,
1358       83,    84,    85,    86,    87,    88,     0,    89,    90,     0,
1359        0,    91,    92,    93,     0,    94,    95,    96,    97,    98,
1360       99,     0,     0,   100,   101,   102,   103,   104,     0,   105,
1361      106,   107,   108,     0,   109,   110,   111,   112,     0,   113,
1362      114,   115,     0,   116,     0,   117,   118,   119,   120,   121,
1363      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1364        0,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1365      141,   142,   143,   144,   145,   146,     0,   147,   148,   149,
1366      150,   151,   152,   153,   154,   155,   156,    63,     0,     0,
1367        0,     0,     0,     0,   209,     0,     0,     0,     0,    64,
1368       65,    66,     0,    67,    68,    69,    70,    71,    72,    73,
1369       74,     0,    75,   210,    77,    78,    79,    80,    81,    82,
1370       83,    84,    85,    86,    87,    88,     0,    89,    90,     0,
1371        0,    91,    92,    93,     0,    94,   211,    96,    97,    98,
1372       99,     0,     0,   212,   101,   102,   103,   104,     0,   105,
1373      106,   107,   108,     0,   109,   110,   111,   112,     0,   113,
1374      114,   213,     0,   116,     0,   117,   118,   119,   120,   121,
1375      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1376        0,   132,   133,   134,   214,   136,   137,   138,   139,   140,
1377      141,   142,   143,   144,   145,     0,     0,   147,   148,   149,
1378      150,   151,   152,   153,   154,   155,   156,    63,     0,     0,
1379        0,     0,     0,   319,     0,     0,     0,     0,     0,    64,
1380       65,    66,     0,    67,    68,    69,    70,    71,    72,    73,
1381       74,     0,    75,    76,    77,    78,    79,    80,    81,    82,
1382       83,    84,    85,    86,    87,    88,     0,    89,    90,     0,
1383        0,    91,    92,    93,     0,    94,    95,    96,    97,    98,
1384       99,     0,     0,   100,   101,   102,   103,   104,     0,   105,
1385      106,   107,   108,     0,   109,   110,   111,   112,     0,   113,
1386      114,     0,     0,   116,     0,   117,   118,   119,   120,   121,
1387      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1388        0,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1389      141,   142,   143,   144,   145,  -439,     0,   147,   148,   149,
1390      150,   151,   152,   153,   154,   155,   156,    63,     0,     0,
1391        0,     0,     0,     0,   209,     0,     0,     0,     0,    64,
1392       65,    66,     0,    67,    68,    69,    70,    71,    72,    73,
1393       74,     0,    75,   210,    77,    78,    79,    80,    81,    82,
1394       83,    84,    85,    86,    87,    88,     0,    89,    90,     0,
1395      293,    91,    92,    93,     0,    94,    95,    96,    97,    98,
1396       99,     0,     0,   100,   101,   102,   103,   104,     0,   105,
1397      106,   107,   108,     0,   109,   110,   111,   112,     0,   113,
1398      114,   213,   294,   116,   293,   117,   118,   119,   120,   121,
1399      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1400        0,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1401      141,   142,   143,   144,   145,   293,   294,   147,   148,   149,
1402      150,   151,   152,   153,   154,   155,   156,     0,     0,     0,
1403        0,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1404      304,   305,   306,   307,   308,   309,     0,   294,   293,     0,
1405        0,   533,     0,     0,     0,     0,     0,     0,     0,     0,
1406        0,     0,     0,     0,     0,   295,   296,   297,   298,   299,
1407      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1408      294,   293,     0,     0,     0,   535,     0,     0,     0,     0,
1409        0,     0,     0,     0,     0,     0,   295,   296,   297,   298,
1410      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1411      309,     0,   293,   294,     0,     0,   710,     0,     0,     0,
1412        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
1413      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1414      306,   307,   308,   309,   294,   293,     0,     0,   403,     0,
1415        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1416        0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
1417      303,   304,   305,   306,   307,   308,   309,   294,   293,     0,
1418        0,   523,     0,     0,     0,     0,     0,     0,     0,     0,
1419        0,     0,     0,   295,   296,   297,   298,   299,   300,   301,
1420      302,   303,   304,   305,   306,   307,   308,   309,     0,   293,
1421      294,     0,   529,     0,     0,     0,     0,     0,     0,     0,
1422        0,     0,     0,     0,     0,     0,   295,   296,   297,   298,
1423      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1424      309,   294,     0,     0,     0,   537,     0,     0,     0,     0,
1425        0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
1426      296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1427      306,   307,   308,   309,     0,     0,     0,     0,   708,     0,
1428        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1429      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1430      305,   306,   307,   308,   309,     1,     0,     0,     2,   709,
1431        0,     3,     0,     0,     0,     0,     4,     0,     0,     0,
1432        0,     5,     0,     0,     6,     0,     7,     8,     9,     0,
1433        0,   293,    10,     0,     0,     0,    11,     0,   520,     0,
1434        0,     0,     0,     0,     0,     0,   293,     0,    12,     0,
1435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436      293,     0,     0,   294,     0,     0,     0,     0,     0,    13,
1437        0,     0,     0,   293,     0,     0,     0,     0,   294,    14,
1438        0,     0,    15,     0,    16,     0,    17,     0,     0,    18,
1439        0,    19,   294,     0,     0,     0,     0,     0,     0,     0,
1440        0,    20,     0,     0,    21,   294,     0,     0,     0,     0,
1441        0,     0,   295,   296,   297,   298,   299,   300,   301,   302,
1442      303,   304,   305,   306,   307,   308,   309,   295,   296,   297,
1443      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
1444      308,   309,   296,   297,   298,   299,   300,   301,   302,   303,
1445      304,   305,   306,   307,   308,   309,   297,   298,   299,   300,
1446      301,   302,   303,   304,   305,   306,   307,   308,   309
1447 };
1448 
1449 static const yytype_int16 yycheck[] =
1450 {
1451        4,   570,   260,    17,   262,   263,   491,   574,   266,   267,
1452      551,    21,   649,     9,   346,     5,   223,    21,   204,     5,
1453       27,   228,     9,   230,     5,   568,    45,     8,   571,   510,
1454       69,    78,   249,    42,    34,    39,    41,     5,   245,    50,
1455        8,     5,     6,   375,     5,    14,     5,     6,    50,     8,
1456       14,     5,     6,    79,     8,    14,    60,    61,    62,    25,
1457       14,    30,    78,   606,    98,    74,   609,   610,   611,   612,
1458      613,   614,    13,    14,    18,     5,     6,    68,     8,    13,
1459       14,    47,    13,    14,    14,     5,     6,    15,     8,     5,
1460        6,   138,   121,   124,    14,    61,    62,   121,    14,    51,
1461       19,   642,    51,   143,   143,   145,     5,     6,   411,   143,
1462       21,   142,   329,   104,   143,   115,    44,   143,    68,   143,
1463       39,   140,   138,    64,   605,   332,   135,   136,   137,   111,
1464      135,    83,   143,    59,    83,   104,   143,   774,    50,   105,
1465       88,   143,    90,     0,   134,   141,   687,   806,   134,    97,
1466      787,   161,   142,   134,   141,   159,   160,   161,   162,   163,
1467       42,   165,   166,   167,   350,     0,   134,   470,   653,   806,
1468      134,   121,   831,   134,   142,   134,    87,   141,   510,   720,
1469      134,   142,   141,    59,    95,   670,    95,   141,    42,   406,
1470       95,   195,    74,   830,   831,   199,   127,   211,   142,   143,
1471      204,    96,   107,    98,   134,   146,   101,    42,   212,   213,
1472      753,   754,   146,   217,   134,   146,    24,    63,   134,   760,
1473       74,   142,   143,    64,   142,   143,   127,   142,   143,    68,
1474      234,   317,   318,   237,   142,   143,    64,   569,   141,    74,
1475      244,   141,    16,   127,   142,   143,   813,   454,   141,   456,
1476       58,   133,   134,   135,   136,   137,    64,   142,   143,   142,
1477      143,   142,   143,   832,   596,    98,   598,   142,   143,   601,
1478      142,   143,   141,   605,   491,   129,   130,   131,   132,   133,
1479      134,   135,   136,   137,   288,   141,   290,   111,   123,   124,
1480      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1481      135,   136,   137,   141,   789,   142,   143,   127,   142,   143,
1482       16,    25,    26,   317,   318,   142,   143,   649,   141,   127,
1483      128,   129,   130,   131,   132,   329,   142,   143,   142,   143,
1484      138,   142,   143,    47,   141,   141,   340,   142,   143,   353,
1485       42,   141,   346,   347,   142,   143,   350,    61,    62,   142,
1486      143,   568,    66,    59,   571,   142,   143,   141,   141,   141,
1487      141,    75,    76,   141,   141,   111,    72,    98,    79,   586,
1488      118,   375,    74,    89,   110,   707,    82,   114,    84,    85,
1489       93,   114,   142,   387,   142,   141,   141,   141,   127,   606,
1490        5,   105,   609,   610,   611,   612,   613,   614,   104,    10,
1491      404,   107,   406,   109,   127,   127,   623,    52,   134,    65,
1492      104,   104,     8,   119,   141,    32,    32,   191,    95,   193,
1493      194,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1494      132,   133,   134,   135,   136,   137,   653,   441,   143,   443,
1495        8,     8,   774,   127,   776,   147,   142,   147,   143,    78,
1496      141,     9,     5,   670,    67,   787,   127,   143,    99,     5,
1497       99,     8,   466,   127,   117,   102,    80,   241,   142,   102,
1498      124,   141,   141,   141,   806,   479,   141,   481,   482,   483,
1499      141,   141,   141,   141,   258,   259,    96,   142,    53,   127,
1500      142,   265,     5,   127,   268,   269,   270,   271,   830,   831,
1501      127,   123,    27,    69,     8,     8,   510,   143,   143,   141,
1502        8,   285,   770,     8,   135,   289,   520,   142,   142,   293,
1503      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1504      304,   305,   306,   307,   308,   309,   753,   754,   142,    58,
1505      143,    58,   316,   142,     5,   122,   141,    88,    16,   141,
1506        8,   142,   142,   142,   142,   559,   560,   142,    78,   142,
1507      124,    29,   779,    31,   124,   569,   141,    27,    80,    37,
1508       53,    56,   789,   127,     8,     3,    18,    27,   352,   141,
1509      143,   142,   840,    69,    52,   142,    42,   143,    80,   127,
1510      142,    59,   596,   143,   598,     8,     5,   601,   143,   143,
1511       27,   605,     8,    42,    72,   379,   143,   141,     5,   142,
1512      379,   242,   803,   546,    82,   776,    84,    85,    74,   623,
1513      760,   624,   289,   777,    42,   787,   400,   401,   402,   781,
1514      522,   560,   100,   637,   404,    74,   104,   641,   623,   107,
1515      108,   109,   441,   741,   652,   649,   443,   822,   652,   491,
1516      670,   119,   569,   641,    18,   707,    74,   299,   286,   476,
1517      311,    -1,    -1,   478,    -1,   669,    -1,   123,   124,   125,
1518      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1519      136,   137,    -1,    -1,    -1,    -1,   142,   143,   127,   128,
1520      129,   130,   131,   132,   133,   134,   135,   136,   137,    -1,
1521       42,   705,   476,   707,   478,   123,   124,   125,   126,   127,
1522      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1523       -1,    -1,    42,    -1,   142,   143,    -1,    -1,    -1,    -1,
1524       -1,    -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1525       -1,    -1,    -1,    -1,   518,    -1,    -1,    -1,    -1,    -1,
1526       -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,   533,
1527       -1,   535,   536,    -1,    -1,    -1,    -1,   771,    -1,    -1,
1528      774,    -1,   776,    -1,    -1,    -1,    -1,   781,    -1,    -1,
1529       -1,    -1,    -1,   787,   126,   127,   128,   129,   130,   131,
1530      132,   133,   134,   135,   136,   137,    -1,    -1,    -1,   803,
1531       -1,    -1,   806,   123,   124,   125,   126,   127,   128,   129,
1532      130,   131,   132,   133,   134,   135,   136,   137,    -1,    -1,
1533       -1,    -1,    -1,   143,    -1,    -1,   830,   831,    -1,    -1,
1534       -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,    -1,
1535        8,     9,    10,    -1,    -1,    -1,    14,    15,    16,    17,
1536      624,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
1537       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1538       38,    39,    40,    41,    -1,    43,    44,    -1,    -1,    47,
1539       48,    49,    -1,    51,    52,    53,    54,    55,    56,    57,
1540       58,    59,    60,    61,    62,    63,    -1,    65,    66,    67,
1541       68,    -1,    70,    71,    72,    73,    -1,    75,    76,    77,
1542       -1,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
1543       88,    89,    90,    91,    92,    93,    94,    95,    -1,    97,
1544       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1545      108,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
1546      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
1547       -1,    -1,    -1,    -1,    -1,    -1,   134,   135,    -1,    -1,
1548      138,    -1,    -1,   141,    -1,    -1,   144,     3,     4,     5,
1549        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    14,    15,
1550       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1551       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1552       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1553       -1,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1554       56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
1555       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1556       76,    77,    -1,    79,    -1,    81,    82,    83,    84,    85,
1557       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1558       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1559      106,   107,   108,   109,   110,   111,    -1,   113,   114,   115,
1560      116,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
1561       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
1562       -1,    -1,   138,    -1,    -1,   141,   142,    -1,   144,     3,
1563        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
1564       14,    15,    16,    17,    -1,    19,    20,    21,    22,    23,
1565       24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
1566       34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
1567       44,    -1,    -1,    47,    48,    49,    -1,    51,    52,    53,
1568       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1569       -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1570       -1,    75,    76,    77,    -1,    79,    -1,    81,    82,    83,
1571       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1572       94,    95,    -1,    97,    98,    99,   100,   101,   102,   103,
1573      104,   105,   106,   107,   108,   109,   110,   111,    -1,   113,
1574      114,   115,   116,   117,   118,   119,   120,   121,   122,    -1,
1575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1576      134,   135,    -1,    -1,   138,    -1,    -1,   141,    -1,    -1,
1577      144,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
1578       -1,    -1,    14,    15,    16,    17,    -1,    19,    20,    21,
1579       22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
1580       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1581       -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,    51,
1582       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1583       62,    63,    -1,    65,    66,    67,    68,    -1,    70,    71,
1584       72,    73,    -1,    75,    76,    77,    -1,    79,    -1,    81,
1585       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1586       92,    93,    94,    95,    -1,    97,    98,    99,   100,   101,
1587      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1588       -1,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1589      122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1590       -1,    -1,   134,   135,    -1,    -1,   138,    -1,    -1,   141,
1591       -1,    -1,   144,     3,     4,     5,     6,    -1,     8,     9,
1592       -1,    -1,    -1,    -1,    14,    15,    16,    17,    -1,    19,
1593       20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
1594       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1595       40,    41,    -1,    43,    44,    -1,    -1,    47,    48,    49,
1596       -1,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1597       60,    61,    62,    63,    -1,    65,    66,    67,    68,    -1,
1598       70,    71,    72,    73,    -1,    75,    76,    77,    -1,    79,
1599       -1,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1600       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1601      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1602      110,   111,    -1,   113,   114,   115,   116,   117,   118,   119,
1603      120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1604       -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,   138,    -1,
1605       -1,   141,    -1,    -1,   144,     3,     4,     5,     6,    -1,
1606        8,     9,    -1,    -1,    -1,    -1,    14,    15,    16,    17,
1607       -1,    19,    20,    21,    22,    23,    24,    25,    26,    -1,
1608       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1609       38,    39,    40,    41,    -1,    43,    44,    -1,    -1,    47,
1610       48,    49,    -1,    51,    52,    53,    54,    55,    56,    57,
1611       58,    59,    60,    61,    62,    63,    -1,    65,    66,    67,
1612       68,    -1,    70,    71,    72,    73,    -1,    75,    76,    77,
1613       -1,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
1614       88,    89,    90,    91,    92,    93,    94,    95,    -1,    97,
1615       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1616      108,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
1617      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
1618       -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,
1619      138,    -1,    -1,   141,   142,    -1,   144,     3,     4,     5,
1620        6,    -1,     8,     9,    -1,    -1,    -1,    -1,    14,    15,
1621       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1622       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1623       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1624       -1,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1625       56,    57,    58,    59,    60,    61,    62,    63,    -1,    65,
1626       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1627       76,    77,    -1,    79,    -1,    81,    82,    83,    84,    85,
1628       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1629       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1630      106,   107,   108,   109,   110,   111,    -1,   113,   114,   115,
1631      116,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
1632       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,
1633       -1,    -1,   138,    -1,    -1,   141,    -1,    -1,   144,     3,
1634        4,     5,     6,    -1,     8,     9,    -1,    -1,    -1,    -1,
1635       14,    15,    16,    17,    -1,    19,    20,    21,    22,    23,
1636       24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
1637       34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
1638       44,    -1,    -1,    47,    48,    49,    -1,    51,    52,    53,
1639       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1640       -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1641       -1,    75,    76,    77,    -1,    79,    -1,    81,    82,    83,
1642       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1643       94,    95,    -1,    97,    98,    99,   100,   101,   102,   103,
1644      104,   105,   106,   107,   108,   109,   110,   111,    -1,   113,
1645      114,   115,   116,   117,   118,   119,   120,   121,   122,    -1,
1646       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1647      134,    -1,    -1,    -1,   138,    -1,    -1,   141,    -1,    -1,
1648      144,     3,     4,     5,     6,    -1,     8,     9,    -1,    -1,
1649       -1,    -1,    14,    15,    16,    17,    -1,    19,    20,    21,
1650       22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
1651       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1652       -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,    51,
1653       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1654       62,    63,    -1,    65,    66,    67,    68,    -1,    70,    71,
1655       72,    73,    -1,    75,    76,    77,    -1,    79,    -1,    81,
1656       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1657       92,    93,    94,    95,    -1,    97,    98,    99,   100,   101,
1658      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1659       -1,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1660      122,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1661       -1,    -1,   134,     3,     4,    -1,   138,    -1,    -1,   141,
1662       -1,    -1,   144,    -1,    -1,    15,    16,    17,    -1,    19,
1663       20,    21,    22,    23,    24,    25,    26,    -1,    28,    29,
1664       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1665       40,    41,    -1,    43,    44,    45,    -1,    47,    48,    49,
1666       -1,    51,    52,    53,    54,    55,    56,    57,    -1,    59,
1667       60,    61,    62,    63,    -1,    65,    66,    67,    68,    -1,
1668       70,    71,    72,    73,    -1,    75,    76,    77,    -1,    79,
1669       -1,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1670       90,    91,    92,    93,    94,    95,    -1,    97,    98,    99,
1671      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1672      110,   111,    -1,   113,   114,   115,   116,   117,   118,   119,
1673      120,   121,   122,    -1,    -1,    -1,     3,    -1,     5,    -1,
1674       -1,     8,    -1,    -1,    -1,    -1,    -1,    -1,    15,    16,
1675       17,   141,    19,    20,    21,    22,    23,    24,    25,    26,
1676       -1,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1677       37,    38,    39,    40,    41,    -1,    43,    44,    -1,    -1,
1678       47,    48,    49,    -1,    51,    52,    53,    54,    55,    56,
1679       -1,    -1,    59,    60,    61,    62,    63,    -1,    65,    66,
1680       67,    68,    -1,    70,    71,    72,    73,    -1,    75,    76,
1681       77,    -1,    79,    -1,    81,    82,    83,    84,    85,    86,
1682       87,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
1683       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1684      107,   108,   109,   110,   111,    -1,   113,   114,   115,   116,
1685      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,     3,
1686       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1687       -1,    15,    16,    17,   141,    19,    20,    21,    22,    23,
1688       24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
1689       34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
1690       44,    -1,    -1,    47,    48,    49,    -1,    51,    52,    53,
1691       54,    55,    56,    -1,    -1,    59,    60,    61,    62,    63,
1692       -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1693       -1,    75,    76,    77,    -1,    79,    -1,    81,    82,    83,
1694       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1695       94,    95,    -1,    97,    98,    99,   100,   101,   102,   103,
1696      104,   105,   106,   107,   108,   109,   110,   111,    -1,   113,
1697      114,   115,   116,   117,   118,   119,   120,   121,   122,    -1,
1698       -1,    -1,     3,    -1,     5,    -1,    -1,     8,    -1,    -1,
1699       -1,    -1,    -1,    -1,    15,    16,    17,   141,    19,    20,
1700       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1701       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1702       41,    -1,    43,    44,    -1,    46,    47,    48,    49,    -1,
1703       51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
1704       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1705       71,    72,    73,    -1,    75,    76,    77,    78,    79,    -1,
1706       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1707       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1708      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1709      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1710      121,   122,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
1711       -1,    -1,    -1,   134,    15,    16,    17,    -1,    19,    20,
1712       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1713       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1714       41,    -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,
1715       51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
1716       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1717       71,    72,    73,    -1,    75,    76,    77,    -1,    79,    -1,
1718       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1719       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1720      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1721      111,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
1722      121,   122,     3,    -1,     5,     6,    -1,     8,    -1,    -1,
1723       -1,    -1,    -1,   134,    15,    16,    17,    -1,    19,    20,
1724       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1725       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1726       41,    -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,
1727       51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
1728       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1729       71,    72,    73,    -1,    75,    76,    77,    78,    79,    -1,
1730       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1731       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1732      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1733      111,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
1734      121,   122,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,
1735       -1,    -1,    -1,    -1,    15,    16,    17,    -1,    19,    20,
1736       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1737       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1738       41,    -1,    43,    44,    45,    -1,    47,    48,    49,    -1,
1739       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
1740       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1741       71,    72,    73,    -1,    75,    76,    77,    -1,    79,    -1,
1742       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1743       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1744      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1745      111,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
1746      121,   122,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,
1747       -1,    -1,    -1,    -1,    15,    16,    17,    -1,    19,    20,
1748       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1749       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1750       41,    -1,    43,    44,    45,    -1,    47,    48,    49,    -1,
1751       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
1752       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1753       71,    72,    73,    -1,    75,    76,    77,    -1,    79,    -1,
1754       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1755       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1756      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1757      111,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
1758      121,   122,     3,    -1,     5,    -1,    -1,     8,    -1,    -1,
1759       -1,    -1,    -1,    -1,    15,    16,    17,    -1,    19,    20,
1760       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1761       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1762       41,    -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,
1763       51,    52,    53,    54,    55,    56,    -1,    -1,    59,    60,
1764       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1765       71,    72,    73,    -1,    75,    76,    77,    -1,    79,    -1,
1766       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1767       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1768      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1769      111,    -1,   113,   114,   115,   116,   117,   118,   119,   120,
1770      121,   122,     3,    -1,     5,    -1,    -1,    -1,    -1,    -1,
1771       -1,    -1,    -1,    -1,    15,    16,    17,    -1,    19,    20,
1772       21,    22,    23,    24,    25,    26,    -1,    28,    29,    30,
1773       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1774       41,    -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,
1775       51,    52,    53,    54,    55,    56,    57,    -1,    59,    60,
1776       61,    62,    63,    -1,    65,    66,    67,    68,    -1,    70,
1777       71,    72,    73,    -1,    75,    76,    77,    -1,    79,    -1,
1778       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1779       91,    92,    93,    94,    95,    -1,    97,    98,    99,   100,
1780      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1781      111,     3,   113,   114,   115,   116,   117,   118,   119,   120,
1782      121,   122,    -1,    15,    16,    17,    -1,    19,    20,    21,
1783       22,    23,    24,    25,    26,    -1,    28,    29,    30,    31,
1784       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1785       -1,    43,    44,    -1,    -1,    47,    48,    49,    -1,    51,
1786       52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
1787       62,    63,    -1,    65,    66,    67,    68,    -1,    70,    71,
1788       72,    73,    -1,    75,    76,    77,    -1,    79,    -1,    81,
1789       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1790       92,    93,    94,    95,    -1,    97,    98,    99,   100,   101,
1791      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1792        3,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1793      122,    -1,    15,    16,    17,    18,    19,    20,    21,    22,
1794       23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
1795       33,    34,    35,    36,    37,    38,    39,    40,    41,    -1,
1796       43,    44,    -1,    -1,    47,    48,    49,    -1,    51,    52,
1797       53,    54,    55,    56,    -1,    -1,    59,    60,    61,    62,
1798       63,    -1,    65,    66,    67,    68,    -1,    70,    71,    72,
1799       73,    -1,    75,    76,    77,    -1,    79,    -1,    81,    82,
1800       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1801       93,    94,    95,    -1,    97,    98,    99,   100,   101,   102,
1802      103,   104,   105,   106,   107,   108,   109,   110,   111,    -1,
1803      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1804        3,    -1,    -1,    -1,    -1,     8,    -1,    -1,    -1,    -1,
1805       -1,    -1,    15,    16,    17,    -1,    19,    20,    21,    22,
1806       23,    24,    25,    26,    -1,    28,    29,    30,    31,    32,
1807       33,    34,    35,    36,    37,    38,    39,    40,    41,    -1,
1808       43,    44,    -1,    -1,    47,    48,    49,    -1,    51,    52,
1809       53,    54,    55,    56,    -1,    -1,    59,    60,    61,    62,
1810       63,    -1,    65,    66,    67,    68,    -1,    70,    71,    72,
1811       73,    -1,    75,    76,    77,    -1,    79,    -1,    81,    82,
1812       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1813       93,    94,    95,    -1,    97,    98,    99,   100,   101,   102,
1814      103,   104,   105,   106,   107,   108,   109,   110,   111,     3,
1815      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1816       -1,    15,    16,    17,    -1,    19,    20,    21,    22,    23,
1817       24,    25,    26,    -1,    28,    29,    30,    31,    32,    33,
1818       34,    35,    36,    37,    38,    39,    40,    41,    -1,    43,
1819       44,    -1,    -1,    47,    48,    49,    -1,    51,    52,    53,
1820       54,    55,    56,    57,    -1,    59,    60,    61,    62,    63,
1821       -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1822       -1,    75,    76,    77,    -1,    79,    -1,    81,    82,    83,
1823       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1824       94,    95,    -1,    97,    98,    99,   100,   101,   102,   103,
1825      104,   105,   106,   107,   108,   109,   110,   111,     3,   113,
1826      114,   115,   116,   117,   118,   119,   120,   121,   122,    -1,
1827       15,    16,    17,    -1,    19,    20,    21,    22,    23,    24,
1828       25,    26,    -1,    28,    29,    30,    31,    32,    33,    34,
1829       35,    36,    37,    38,    39,    40,    41,    -1,    43,    44,
1830       -1,    -1,    47,    48,    49,    -1,    51,    52,    53,    54,
1831       55,    56,    -1,    -1,    59,    60,    61,    62,    63,    -1,
1832       65,    66,    67,    68,    69,    70,    71,    72,    73,    -1,
1833       75,    76,    77,    -1,    79,    -1,    81,    82,    83,    84,
1834       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1835       95,    -1,    97,    98,    99,   100,   101,   102,   103,   104,
1836      105,   106,   107,   108,   109,   110,   111,     3,   113,   114,
1837      115,   116,   117,   118,   119,   120,   121,   122,    -1,    15,
1838       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1839       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1840       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1841       -1,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1842       56,    -1,    -1,    59,    60,    61,    62,    63,    -1,    65,
1843       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1844       76,    77,    -1,    79,    -1,    81,    82,    83,    84,    85,
1845       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1846       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1847      106,   107,   108,   109,   110,   111,    -1,   113,   114,   115,
1848      116,   117,   118,   119,   120,   121,   122,     3,    -1,    -1,
1849       -1,    -1,    -1,    -1,    10,    -1,    -1,    -1,    -1,    15,
1850       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1851       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1852       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1853       -1,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1854       56,    -1,    -1,    59,    60,    61,    62,    63,    -1,    65,
1855       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1856       76,    77,    -1,    79,    -1,    81,    82,    83,    84,    85,
1857       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1858       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1859      106,   107,   108,   109,   110,    -1,    -1,   113,   114,   115,
1860      116,   117,   118,   119,   120,   121,   122,     3,    -1,    -1,
1861       -1,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,    15,
1862       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1863       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1864       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1865       -1,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1866       56,    -1,    -1,    59,    60,    61,    62,    63,    -1,    65,
1867       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1868       76,    -1,    -1,    79,    -1,    81,    82,    83,    84,    85,
1869       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1870       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1871      106,   107,   108,   109,   110,   111,    -1,   113,   114,   115,
1872      116,   117,   118,   119,   120,   121,   122,     3,    -1,    -1,
1873       -1,    -1,    -1,    -1,    10,    -1,    -1,    -1,    -1,    15,
1874       16,    17,    -1,    19,    20,    21,    22,    23,    24,    25,
1875       26,    -1,    28,    29,    30,    31,    32,    33,    34,    35,
1876       36,    37,    38,    39,    40,    41,    -1,    43,    44,    -1,
1877       42,    47,    48,    49,    -1,    51,    52,    53,    54,    55,
1878       56,    -1,    -1,    59,    60,    61,    62,    63,    -1,    65,
1879       66,    67,    68,    -1,    70,    71,    72,    73,    -1,    75,
1880       76,    77,    74,    79,    42,    81,    82,    83,    84,    85,
1881       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1882       -1,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1883      106,   107,   108,   109,   110,    42,    74,   113,   114,   115,
1884      116,   117,   118,   119,   120,   121,   122,    -1,    -1,    -1,
1885       -1,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1886      132,   133,   134,   135,   136,   137,    -1,    74,    42,    -1,
1887       -1,   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1888       -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,   127,
1889      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1890       74,    42,    -1,    -1,    -1,   143,    -1,    -1,    -1,    -1,
1891       -1,    -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,
1892      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1893      137,    -1,    42,    74,    -1,    -1,   143,    -1,    -1,    -1,
1894       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,
1895      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1896      134,   135,   136,   137,    74,    42,    -1,    -1,   142,    -1,
1897       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1898       -1,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
1899      131,   132,   133,   134,   135,   136,   137,    74,    42,    -1,
1900       -1,   142,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1901       -1,    -1,    -1,   123,   124,   125,   126,   127,   128,   129,
1902      130,   131,   132,   133,   134,   135,   136,   137,    -1,    42,
1903       74,    -1,   142,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1904       -1,    -1,    -1,    -1,    -1,    -1,   123,   124,   125,   126,
1905      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1906      137,    74,    -1,    -1,    -1,   142,    -1,    -1,    -1,    -1,
1907       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   123,
1908      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1909      134,   135,   136,   137,    -1,    -1,    -1,    -1,   142,    -1,
1910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1912      133,   134,   135,   136,   137,    17,    -1,    -1,    20,   142,
1913       -1,    23,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
1914       -1,    33,    -1,    -1,    36,    -1,    38,    39,    40,    -1,
1915       -1,    42,    44,    -1,    -1,    -1,    48,    -1,    49,    -1,
1916       -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    60,    -1,
1917       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918       42,    -1,    -1,    74,    -1,    -1,    -1,    -1,    -1,    81,
1919       -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,    74,    91,
1920       -1,    -1,    94,    -1,    96,    -1,    98,    -1,    -1,   101,
1921       -1,   103,    74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922       -1,   113,    -1,    -1,   116,    74,    -1,    -1,    -1,    -1,
1923       -1,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
1924      131,   132,   133,   134,   135,   136,   137,   123,   124,   125,
1925      126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1926      136,   137,   124,   125,   126,   127,   128,   129,   130,   131,
1927      132,   133,   134,   135,   136,   137,   125,   126,   127,   128,
1928      129,   130,   131,   132,   133,   134,   135,   136,   137
1929 };
1930 
1931   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1932      symbol of state STATE-NUM.  */
1933 static const yytype_uint16 yystos[] =
1934 {
1935        0,    17,    20,    23,    28,    33,    36,    38,    39,    40,
1936       44,    48,    60,    81,    91,    94,    96,    98,   101,   103,
1937      113,   116,   149,   150,   153,   154,   155,   156,   163,   204,
1938      209,   210,   215,   216,   217,   218,   229,   230,   239,   240,
1939      241,   242,   243,   247,   248,   253,   254,   255,   258,   260,
1940      261,   262,   263,   264,   265,   269,   270,   271,   272,   273,
1941       95,   107,    59,     3,    15,    16,    17,    19,    20,    21,
1942       22,    23,    24,    25,    26,    28,    29,    30,    31,    32,
1943       33,    34,    35,    36,    37,    38,    39,    40,    41,    43,
1944       44,    47,    48,    49,    51,    52,    53,    54,    55,    56,
1945       59,    60,    61,    62,    63,    65,    66,    67,    68,    70,
1946       71,    72,    73,    75,    76,    77,    79,    81,    82,    83,
1947       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1948       94,    95,    97,    98,    99,   100,   101,   102,   103,   104,
1949      105,   106,   107,   108,   109,   110,   111,   113,   114,   115,
1950      116,   117,   118,   119,   120,   121,   122,   151,   152,    51,
1951       83,    50,    51,    83,    21,    87,    95,    59,     3,     4,
1952        5,     6,     8,     9,    10,    14,    22,    25,    35,    43,
1953       47,    54,    55,    57,    58,    62,    71,    73,    92,   106,
1954      120,   134,   135,   138,   141,   144,   152,   164,   165,   167,
1955      197,   198,   266,   267,   268,   274,   275,   278,   279,    10,
1956       29,    52,    59,    77,   100,   151,   256,    16,    29,    31,
1957       37,    52,    59,    72,    82,    84,    85,   100,   104,   107,
1958      108,   109,   119,   206,   207,   256,   111,    95,   152,   168,
1959        0,    45,   140,   285,    63,   152,   152,   152,   152,   141,
1960      152,   152,   168,   152,   152,   152,   152,   152,   141,   141,
1961      141,   141,   141,   141,   141,   141,   141,   141,   141,   141,
1962      141,   141,   141,     3,    71,    73,   197,   197,   197,    58,
1963      152,   201,   202,    13,    14,   146,   276,   277,    50,   143,
1964       18,   152,   166,    42,    74,   123,   124,   125,   126,   127,
1965      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1966       69,   143,   189,   190,   166,    64,   127,   127,    98,     9,
1967      151,   152,     5,     6,     8,    78,   152,   213,   214,   127,
1968      111,     8,   104,   152,    98,    68,   205,   205,   205,   205,
1969       79,   191,   192,   152,   118,   152,    98,   143,   197,   282,
1970      283,   284,    96,    98,   101,   154,   152,   205,    89,    15,
1971       44,   110,     5,     6,     8,    14,   134,   141,   175,   176,
1972      225,   231,   232,    93,   114,   121,   170,   114,     8,   141,
1973      142,   197,   199,   200,   197,   197,   199,    41,   135,   199,
1974      199,   142,   197,   199,   199,   197,   197,   197,   197,   142,
1975      141,   141,   141,   142,   143,   145,   127,     8,   197,   277,
1976      141,   168,   165,   197,   152,   197,   197,   197,   197,   197,
1977      197,   197,   279,   197,   197,   197,   197,   197,   197,   197,
1978      197,   197,   197,     5,   267,    78,   138,   197,   213,   213,
1979      127,   127,    52,   134,     8,    46,    78,   112,   134,   152,
1980      175,   211,   212,    65,   104,   205,   104,     8,   152,   193,
1981      194,    14,    30,   104,   208,    68,   121,   249,   250,   152,
1982      244,   245,   275,   152,   166,    27,   143,   280,   281,   141,
1983      219,    32,    32,    95,     5,     6,     8,   142,   175,   177,
1984      233,   143,   234,    25,    47,    61,    62,   105,   259,     8,
1985        4,    25,    35,    43,    45,    54,    57,    62,    70,   120,
1986      141,   152,   171,   172,   173,   174,   275,     8,    96,   156,
1987       49,   142,   143,   142,   142,   152,   142,   142,   142,   142,
1988      142,   142,   142,   143,   142,   143,   143,   142,   197,   197,
1989      202,   152,   175,   203,   147,   147,   160,   169,   170,   143,
1990       78,   141,     5,   211,     9,   214,    67,   205,   205,   127,
1991      143,    99,     5,    99,     8,   152,   251,   252,   127,   143,
1992      170,   127,   282,    80,   185,   186,   284,    57,   152,   220,
1993      221,   117,   152,   152,   152,   142,   143,   142,   143,   225,
1994      232,   235,   236,   142,   102,   102,   141,   141,   141,   141,
1995      141,   141,   141,   141,   171,   124,    24,    58,    64,   127,
1996      128,   129,   130,   131,   132,   138,   142,   152,   200,   142,
1997      197,   197,   197,   127,    96,   163,    53,   179,     5,   177,
1998      127,    88,    90,    97,   257,     5,     8,   141,   152,   194,
1999      127,   123,   141,   175,   176,   245,   191,   175,   176,    27,
2000      189,   142,   143,   141,   222,   223,    25,    26,    47,    61,
2001       62,    66,    75,    76,   105,   246,   175,     8,    18,   237,
2002      143,     8,     8,   152,   275,   135,   275,   142,   142,   275,
2003        8,   142,   142,   171,   175,   176,     9,   141,    78,   138,
2004        8,   175,   176,     8,   175,   176,   175,   176,   175,   176,
2005      175,   176,   175,   176,    58,   143,   157,    58,   142,   142,
2006      143,   203,   164,   142,     5,   180,   122,   183,   184,   142,
2007      141,    34,   115,    88,   152,   195,   196,   141,     8,   252,
2008      142,   177,    86,   174,   187,   188,   220,   141,   224,   225,
2009       79,   143,   226,    69,   152,   238,   225,   236,   142,   142,
2010      142,   142,   142,   124,   124,     8,   177,   178,    78,     9,
2011      141,     5,    57,   152,   158,   159,   142,   152,   274,   275,
2012      141,    50,    80,   161,    27,    53,    56,   182,   177,   127,
2013      142,   143,     8,   142,   141,    19,    39,   143,   142,   143,
2014        3,   227,   228,   223,   175,   176,   175,   176,   142,   142,
2015      143,   177,   178,   143,   142,   199,    27,    69,   162,   174,
2016      181,    80,   173,   185,   142,   175,   196,   142,   142,   188,
2017      225,   127,   143,     8,   142,   142,   159,   142,   187,     5,
2018      143,    27,   189,     8,   228,   143,   143,   174,   187,   191,
2019      141,     5,   199,   142,   142
2020 };
2021 
2022   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2023 static const yytype_uint16 yyr1[] =
2024 {
2025        0,   148,   149,   149,   149,   150,   150,   150,   150,   150,
2026      150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
2027      150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
2028      150,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2029      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2030      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2031      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2032      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2033      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2034      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2035      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2036      151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
2037      151,   151,   151,   152,   152,   152,   153,   153,   153,   154,
2038      154,   154,   155,   155,   156,   156,   157,   157,   158,   158,
2039      159,   159,   159,   160,   161,   162,   162,   162,   163,   164,
2040      164,   165,   165,   166,   166,   166,   167,   167,   167,   167,
2041      167,   167,   167,   167,   167,   168,   168,   169,   169,   170,
2042      171,   171,   171,   172,   172,   173,   173,   173,   173,   173,
2043      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
2044      173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
2045      173,   174,   174,   174,   174,   174,   174,   174,   174,   174,
2046      174,   174,   175,   175,   176,   176,   176,   177,   177,   178,
2047      178,   179,   179,   180,   180,   181,   181,   182,   182,   183,
2048      183,   184,   185,   185,   186,   186,   187,   187,   188,   188,
2049      188,   189,   189,   190,   190,   191,   191,   192,   193,   193,
2050      194,   194,   194,   194,   194,   195,   195,   196,   197,   197,
2051      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
2052      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
2053      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
2054      197,   198,   198,   198,   198,   198,   198,   198,   198,   198,
2055      198,   198,   198,   199,   199,   200,   200,   201,   201,   202,
2056      202,   203,   203,   204,   205,   205,   206,   206,   206,   206,
2057      206,   206,   206,   206,   206,   206,   206,   206,   206,   207,
2058      207,   208,   208,   209,   209,   209,   209,   209,   209,   210,
2059      210,   210,   210,   211,   211,   212,   212,   212,   213,   213,
2060      214,   214,   214,   214,   214,   215,   215,   215,   216,   216,
2061      217,   218,   218,   219,   219,   220,   220,   221,   221,   222,
2062      222,   223,   224,   224,   225,   225,   225,   225,   225,   226,
2063      226,   227,   227,   228,   229,   230,   231,   231,   232,   232,
2064      233,   233,   234,   234,   235,   235,   236,   237,   237,   238,
2065      238,   239,   240,   240,   241,   242,   243,   244,   244,   245,
2066      245,   245,   245,   245,   245,   246,   246,   246,   246,   246,
2067      246,   246,   246,   246,   247,   247,   247,   248,   248,   249,
2068      249,   250,   251,   251,   252,   253,   254,   255,   256,   256,
2069      256,   257,   257,   257,   257,   258,   259,   259,   259,   259,
2070      259,   260,   261,   262,   263,   264,   265,   266,   266,   267,
2071      268,   269,   270,   271,   272,   273,   274,   274,   275,   276,
2072      276,   277,   277,   277,   277,   278,   278,   279,   280,   280,
2073      281,   282,   283,   284,   284,   285
2074 };
2075 
2076   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2077 static const yytype_uint8 yyr2[] =
2078 {
2079        0,     2,     1,     1,     2,     1,     1,     1,     1,     1,
2080        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2081        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2082        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2083        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2084        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2085        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2086        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2087        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2088        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2089        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2090        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2091        1,     1,     1,     1,     1,     1,     1,     3,     2,     1,
2092        1,     1,     1,     8,     1,     9,     0,     2,     1,     3,
2093        1,     1,     1,     0,     3,     0,     2,     4,    11,     1,
2094        3,     1,     2,     0,     1,     2,     1,     4,     4,     4,
2095        4,     4,     4,     3,     5,     1,     3,     0,     1,     2,
2096        1,     3,     3,     4,     1,     3,     3,     5,     6,     5,
2097        6,     3,     4,     5,     3,     3,     3,     3,     3,     3,
2098        5,     5,     5,     3,     3,     3,     3,     3,     3,     3,
2099        4,     1,     1,     4,     3,     3,     1,     1,     4,     4,
2100        4,     3,     1,     2,     1,     2,     1,     1,     3,     1,
2101        3,     0,     4,     0,     1,     1,     3,     0,     2,     0,
2102        1,     5,     0,     1,     3,     5,     1,     3,     1,     2,
2103        2,     0,     1,     2,     4,     0,     1,     2,     1,     3,
2104        3,     3,     5,     6,     3,     1,     3,     3,     1,     1,
2105        1,     1,     1,     1,     1,     2,     2,     3,     3,     3,
2106        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2107        3,     3,     3,     3,     3,     3,     1,     1,     1,     3,
2108        4,     4,     4,     4,     4,     4,     4,     3,     6,     6,
2109        3,     8,    14,     1,     3,     1,     1,     3,     5,     1,
2110        1,     1,     1,     2,     0,     2,     1,     2,     2,     3,
2111        1,     1,     1,     2,     4,     4,     3,     4,     4,     1,
2112        1,     0,     2,     4,     4,     4,     3,     4,     4,     7,
2113        5,     5,     9,     1,     1,     1,     1,     1,     1,     3,
2114        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2115        7,     1,     1,     0,     3,     1,     1,     1,     3,     1,
2116        3,     3,     1,     3,     1,     1,     1,     3,     2,     0,
2117        2,     1,     3,     3,     4,     6,     1,     3,     1,     3,
2118        1,     3,     0,     2,     1,     3,     3,     0,     1,     1,
2119        1,     3,     1,     1,     3,     3,     6,     1,     3,     3,
2120        3,     5,     4,     3,     3,     1,     1,     1,     1,     1,
2121        1,     1,     1,     1,     7,     6,     4,     4,     5,     0,
2122        1,     2,     1,     3,     3,     2,     3,     6,     0,     1,
2123        1,     2,     2,     2,     1,     7,     1,     1,     1,     1,
2124        1,     3,     6,     3,     3,     2,     3,     1,     3,     2,
2125        1,     2,     3,     3,     7,     5,     1,     1,     2,     1,
2126        2,     1,     1,     3,     3,     3,     3,     1,     0,     2,
2127        1,     2,     1,     1,     3,     5
2128 };
2129 
2130 
2131 #define yyerrok         (yyerrstatus = 0)
2132 #define yyclearin       (yychar = YYEMPTY)
2133 #define YYEMPTY         (-2)
2134 #define YYEOF           0
2135 
2136 #define YYACCEPT        goto yyacceptlab
2137 #define YYABORT         goto yyabortlab
2138 #define YYERROR         goto yyerrorlab
2139 
2140 
2141 #define YYRECOVERING()  (!!yyerrstatus)
2142 
2143 #define YYBACKUP(Token, Value)                                  \
2144 do                                                              \
2145   if (yychar == YYEMPTY)                                        \
2146     {                                                           \
2147       yychar = (Token);                                         \
2148       yylval = (Value);                                         \
2149       YYPOPSTACK (yylen);                                       \
2150       yystate = *yyssp;                                         \
2151       goto yybackup;                                            \
2152     }                                                           \
2153   else                                                          \
2154     {                                                           \
2155       yyerror (pParser, YY_("syntax error: cannot back up")); \
2156       YYERROR;                                                  \
2157     }                                                           \
2158 while (0)
2159 
2160 /* Error token number */
2161 #define YYTERROR        1
2162 #define YYERRCODE       256
2163 
2164 
2165 
2166 /* Enable debugging if requested.  */
2167 #if YYDEBUG
2168 
2169 # ifndef YYFPRINTF
2170 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2171 #  define YYFPRINTF fprintf
2172 # endif
2173 
2174 # define YYDPRINTF(Args)                        \
2175 do {                                            \
2176   if (yydebug)                                  \
2177     YYFPRINTF Args;                             \
2178 } while (0)
2179 
2180 /* This macro is provided for backward compatibility. */
2181 #ifndef YY_LOCATION_PRINT
2182 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2183 #endif
2184 
2185 
2186 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2187 do {                                                                      \
2188   if (yydebug)                                                            \
2189     {                                                                     \
2190       YYFPRINTF (stderr, "%s ", Title);                                   \
2191       yy_symbol_print (stderr,                                            \
2192                   Type, Value, pParser); \
2193       YYFPRINTF (stderr, "\n");                                           \
2194     }                                                                     \
2195 } while (0)
2196 
2197 
2198 /*----------------------------------------.
2199 | Print this symbol's value on YYOUTPUT.  |
2200 `----------------------------------------*/
2201 
2202 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,SqlParser_c * pParser)2203 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SqlParser_c * pParser)
2204 {
2205   FILE *yyo = yyoutput;
2206   YYUSE (yyo);
2207   YYUSE (pParser);
2208   if (!yyvaluep)
2209     return;
2210 # ifdef YYPRINT
2211   if (yytype < YYNTOKENS)
2212     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2213 # endif
2214   YYUSE (yytype);
2215 }
2216 
2217 
2218 /*--------------------------------.
2219 | Print this symbol on YYOUTPUT.  |
2220 `--------------------------------*/
2221 
2222 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,SqlParser_c * pParser)2223 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SqlParser_c * pParser)
2224 {
2225   YYFPRINTF (yyoutput, "%s %s (",
2226              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2227 
2228   yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParser);
2229   YYFPRINTF (yyoutput, ")");
2230 }
2231 
2232 /*------------------------------------------------------------------.
2233 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2234 | TOP (included).                                                   |
2235 `------------------------------------------------------------------*/
2236 
2237 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2238 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2239 {
2240   YYFPRINTF (stderr, "Stack now");
2241   for (; yybottom <= yytop; yybottom++)
2242     {
2243       int yybot = *yybottom;
2244       YYFPRINTF (stderr, " %d", yybot);
2245     }
2246   YYFPRINTF (stderr, "\n");
2247 }
2248 
2249 # define YY_STACK_PRINT(Bottom, Top)                            \
2250 do {                                                            \
2251   if (yydebug)                                                  \
2252     yy_stack_print ((Bottom), (Top));                           \
2253 } while (0)
2254 
2255 
2256 /*------------------------------------------------.
2257 | Report that the YYRULE is going to be reduced.  |
2258 `------------------------------------------------*/
2259 
2260 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,SqlParser_c * pParser)2261 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SqlParser_c * pParser)
2262 {
2263   unsigned long int yylno = yyrline[yyrule];
2264   int yynrhs = yyr2[yyrule];
2265   int yyi;
2266   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2267              yyrule - 1, yylno);
2268   /* The symbols being reduced.  */
2269   for (yyi = 0; yyi < yynrhs; yyi++)
2270     {
2271       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2272       yy_symbol_print (stderr,
2273                        yystos[yyssp[yyi + 1 - yynrhs]],
2274                        &(yyvsp[(yyi + 1) - (yynrhs)])
2275                                               , pParser);
2276       YYFPRINTF (stderr, "\n");
2277     }
2278 }
2279 
2280 # define YY_REDUCE_PRINT(Rule)          \
2281 do {                                    \
2282   if (yydebug)                          \
2283     yy_reduce_print (yyssp, yyvsp, Rule, pParser); \
2284 } while (0)
2285 
2286 /* Nonzero means print parse trace.  It is left uninitialized so that
2287    multiple parsers can coexist.  */
2288 int yydebug;
2289 #else /* !YYDEBUG */
2290 # define YYDPRINTF(Args)
2291 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2292 # define YY_STACK_PRINT(Bottom, Top)
2293 # define YY_REDUCE_PRINT(Rule)
2294 #endif /* !YYDEBUG */
2295 
2296 
2297 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2298 #ifndef YYINITDEPTH
2299 # define YYINITDEPTH 200
2300 #endif
2301 
2302 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2303    if the built-in stack extension method is used).
2304 
2305    Do not make this value too large; the results are undefined if
2306    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2307    evaluated with infinite-precision integer arithmetic.  */
2308 
2309 #ifndef YYMAXDEPTH
2310 # define YYMAXDEPTH 10000
2311 #endif
2312 
2313 
2314 #if YYERROR_VERBOSE
2315 
2316 # ifndef yystrlen
2317 #  if defined __GLIBC__ && defined _STRING_H
2318 #   define yystrlen strlen
2319 #  else
2320 /* Return the length of YYSTR.  */
2321 static YYSIZE_T
yystrlen(const char * yystr)2322 yystrlen (const char *yystr)
2323 {
2324   YYSIZE_T yylen;
2325   for (yylen = 0; yystr[yylen]; yylen++)
2326     continue;
2327   return yylen;
2328 }
2329 #  endif
2330 # endif
2331 
2332 # ifndef yystpcpy
2333 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2334 #   define yystpcpy stpcpy
2335 #  else
2336 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2337    YYDEST.  */
2338 static char *
yystpcpy(char * yydest,const char * yysrc)2339 yystpcpy (char *yydest, const char *yysrc)
2340 {
2341   char *yyd = yydest;
2342   const char *yys = yysrc;
2343 
2344   while ((*yyd++ = *yys++) != '\0')
2345     continue;
2346 
2347   return yyd - 1;
2348 }
2349 #  endif
2350 # endif
2351 
2352 # ifndef yytnamerr
2353 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2354    quotes and backslashes, so that it's suitable for yyerror.  The
2355    heuristic is that double-quoting is unnecessary unless the string
2356    contains an apostrophe, a comma, or backslash (other than
2357    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2358    null, do not copy; instead, return the length of what the result
2359    would have been.  */
2360 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)2361 yytnamerr (char *yyres, const char *yystr)
2362 {
2363   if (*yystr == '"')
2364     {
2365       YYSIZE_T yyn = 0;
2366       char const *yyp = yystr;
2367 
2368       for (;;)
2369         switch (*++yyp)
2370           {
2371           case '\'':
2372           case ',':
2373             goto do_not_strip_quotes;
2374 
2375           case '\\':
2376             if (*++yyp != '\\')
2377               goto do_not_strip_quotes;
2378             /* Fall through.  */
2379           default:
2380             if (yyres)
2381               yyres[yyn] = *yyp;
2382             yyn++;
2383             break;
2384 
2385           case '"':
2386             if (yyres)
2387               yyres[yyn] = '\0';
2388             return yyn;
2389           }
2390     do_not_strip_quotes: ;
2391     }
2392 
2393   if (! yyres)
2394     return yystrlen (yystr);
2395 
2396   return yystpcpy (yyres, yystr) - yyres;
2397 }
2398 # endif
2399 
2400 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2401    about the unexpected token YYTOKEN for the state stack whose top is
2402    YYSSP.
2403 
2404    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2405    not large enough to hold the message.  In that case, also set
2406    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2407    required number of bytes is too large to store.  */
2408 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)2409 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2410                 yytype_int16 *yyssp, int yytoken)
2411 {
2412   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2413   YYSIZE_T yysize = yysize0;
2414   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2415   /* Internationalized format string. */
2416   const char *yyformat = YY_NULLPTR;
2417   /* Arguments of yyformat. */
2418   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2419   /* Number of reported tokens (one for the "unexpected", one per
2420      "expected"). */
2421   int yycount = 0;
2422 
2423   /* There are many possibilities here to consider:
2424      - If this state is a consistent state with a default action, then
2425        the only way this function was invoked is if the default action
2426        is an error action.  In that case, don't check for expected
2427        tokens because there are none.
2428      - The only way there can be no lookahead present (in yychar) is if
2429        this state is a consistent state with a default action.  Thus,
2430        detecting the absence of a lookahead is sufficient to determine
2431        that there is no unexpected or expected token to report.  In that
2432        case, just report a simple "syntax error".
2433      - Don't assume there isn't a lookahead just because this state is a
2434        consistent state with a default action.  There might have been a
2435        previous inconsistent state, consistent state with a non-default
2436        action, or user semantic action that manipulated yychar.
2437      - Of course, the expected token list depends on states to have
2438        correct lookahead information, and it depends on the parser not
2439        to perform extra reductions after fetching a lookahead from the
2440        scanner and before detecting a syntax error.  Thus, state merging
2441        (from LALR or IELR) and default reductions corrupt the expected
2442        token list.  However, the list is correct for canonical LR with
2443        one exception: it will still contain any token that will not be
2444        accepted due to an error action in a later state.
2445   */
2446   if (yytoken != YYEMPTY)
2447     {
2448       int yyn = yypact[*yyssp];
2449       yyarg[yycount++] = yytname[yytoken];
2450       if (!yypact_value_is_default (yyn))
2451         {
2452           /* Start YYX at -YYN if negative to avoid negative indexes in
2453              YYCHECK.  In other words, skip the first -YYN actions for
2454              this state because they are default actions.  */
2455           int yyxbegin = yyn < 0 ? -yyn : 0;
2456           /* Stay within bounds of both yycheck and yytname.  */
2457           int yychecklim = YYLAST - yyn + 1;
2458           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2459           int yyx;
2460 
2461           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2462             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2463                 && !yytable_value_is_error (yytable[yyx + yyn]))
2464               {
2465                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2466                   {
2467                     yycount = 1;
2468                     yysize = yysize0;
2469                     break;
2470                   }
2471                 yyarg[yycount++] = yytname[yyx];
2472                 {
2473                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2474                   if (! (yysize <= yysize1
2475                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2476                     return 2;
2477                   yysize = yysize1;
2478                 }
2479               }
2480         }
2481     }
2482 
2483   switch (yycount)
2484     {
2485 # define YYCASE_(N, S)                      \
2486       case N:                               \
2487         yyformat = S;                       \
2488       break
2489       YYCASE_(0, YY_("syntax error"));
2490       YYCASE_(1, YY_("syntax error, unexpected %s"));
2491       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2492       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2493       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2494       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2495 # undef YYCASE_
2496     }
2497 
2498   {
2499     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2500     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2501       return 2;
2502     yysize = yysize1;
2503   }
2504 
2505   if (*yymsg_alloc < yysize)
2506     {
2507       *yymsg_alloc = 2 * yysize;
2508       if (! (yysize <= *yymsg_alloc
2509              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2510         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2511       return 1;
2512     }
2513 
2514   /* Avoid sprintf, as that infringes on the user's name space.
2515      Don't have undefined behavior even if the translation
2516      produced a string with the wrong number of "%s"s.  */
2517   {
2518     char *yyp = *yymsg;
2519     int yyi = 0;
2520     while ((*yyp = *yyformat) != '\0')
2521       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2522         {
2523           yyp += yytnamerr (yyp, yyarg[yyi++]);
2524           yyformat += 2;
2525         }
2526       else
2527         {
2528           yyp++;
2529           yyformat++;
2530         }
2531   }
2532   return 0;
2533 }
2534 #endif /* YYERROR_VERBOSE */
2535 
2536 /*-----------------------------------------------.
2537 | Release the memory associated to this symbol.  |
2538 `-----------------------------------------------*/
2539 
2540 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,SqlParser_c * pParser)2541 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, SqlParser_c * pParser)
2542 {
2543   YYUSE (yyvaluep);
2544   YYUSE (pParser);
2545   if (!yymsg)
2546     yymsg = "Deleting";
2547   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2548 
2549   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2550   YYUSE (yytype);
2551   YY_IGNORE_MAYBE_UNINITIALIZED_END
2552 }
2553 
2554 
2555 
2556 
2557 /*----------.
2558 | yyparse.  |
2559 `----------*/
2560 
2561 int
yyparse(SqlParser_c * pParser)2562 yyparse (SqlParser_c * pParser)
2563 {
2564 /* The lookahead symbol.  */
2565 int yychar;
2566 
2567 
2568 /* The semantic value of the lookahead symbol.  */
2569 /* Default value used for initialization, for pacifying older GCCs
2570    or non-GCC compilers.  */
2571 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2572 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2573 
2574     /* Number of syntax errors so far.  */
2575     int yynerrs;
2576 
2577     int yystate;
2578     /* Number of tokens to shift before error messages enabled.  */
2579     int yyerrstatus;
2580 
2581     /* The stacks and their tools:
2582        'yyss': related to states.
2583        'yyvs': related to semantic values.
2584 
2585        Refer to the stacks through separate pointers, to allow yyoverflow
2586        to reallocate them elsewhere.  */
2587 
2588     /* The state stack.  */
2589     yytype_int16 yyssa[YYINITDEPTH];
2590     yytype_int16 *yyss;
2591     yytype_int16 *yyssp;
2592 
2593     /* The semantic value stack.  */
2594     YYSTYPE yyvsa[YYINITDEPTH];
2595     YYSTYPE *yyvs;
2596     YYSTYPE *yyvsp;
2597 
2598     YYSIZE_T yystacksize;
2599 
2600   int yyn;
2601   int yyresult;
2602   /* Lookahead token as an internal (translated) token number.  */
2603   int yytoken = 0;
2604   /* The variables used to return semantic value and location from the
2605      action routines.  */
2606   YYSTYPE yyval;
2607 
2608 #if YYERROR_VERBOSE
2609   /* Buffer for error messages, and its allocated size.  */
2610   char yymsgbuf[128];
2611   char *yymsg = yymsgbuf;
2612   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2613 #endif
2614 
2615 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2616 
2617   /* The number of symbols on the RHS of the reduced rule.
2618      Keep to zero when no symbol should be popped.  */
2619   int yylen = 0;
2620 
2621   yyssp = yyss = yyssa;
2622   yyvsp = yyvs = yyvsa;
2623   yystacksize = YYINITDEPTH;
2624 
2625   YYDPRINTF ((stderr, "Starting parse\n"));
2626 
2627   yystate = 0;
2628   yyerrstatus = 0;
2629   yynerrs = 0;
2630   yychar = YYEMPTY; /* Cause a token to be read.  */
2631   goto yysetstate;
2632 
2633 /*------------------------------------------------------------.
2634 | yynewstate -- Push a new state, which is found in yystate.  |
2635 `------------------------------------------------------------*/
2636  yynewstate:
2637   /* In all cases, when you get here, the value and location stacks
2638      have just been pushed.  So pushing a state here evens the stacks.  */
2639   yyssp++;
2640 
2641  yysetstate:
2642   *yyssp = yystate;
2643 
2644   if (yyss + yystacksize - 1 <= yyssp)
2645     {
2646       /* Get the current used size of the three stacks, in elements.  */
2647       YYSIZE_T yysize = yyssp - yyss + 1;
2648 
2649 #ifdef yyoverflow
2650       {
2651         /* Give user a chance to reallocate the stack.  Use copies of
2652            these so that the &'s don't force the real ones into
2653            memory.  */
2654         YYSTYPE *yyvs1 = yyvs;
2655         yytype_int16 *yyss1 = yyss;
2656 
2657         /* Each stack pointer address is followed by the size of the
2658            data in use in that stack, in bytes.  This used to be a
2659            conditional around just the two extra args, but that might
2660            be undefined if yyoverflow is a macro.  */
2661         yyoverflow (YY_("memory exhausted"),
2662                     &yyss1, yysize * sizeof (*yyssp),
2663                     &yyvs1, yysize * sizeof (*yyvsp),
2664                     &yystacksize);
2665 
2666         yyss = yyss1;
2667         yyvs = yyvs1;
2668       }
2669 #else /* no yyoverflow */
2670 # ifndef YYSTACK_RELOCATE
2671       goto yyexhaustedlab;
2672 # else
2673       /* Extend the stack our own way.  */
2674       if (YYMAXDEPTH <= yystacksize)
2675         goto yyexhaustedlab;
2676       yystacksize *= 2;
2677       if (YYMAXDEPTH < yystacksize)
2678         yystacksize = YYMAXDEPTH;
2679 
2680       {
2681         yytype_int16 *yyss1 = yyss;
2682         union yyalloc *yyptr =
2683           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2684         if (! yyptr)
2685           goto yyexhaustedlab;
2686         YYSTACK_RELOCATE (yyss_alloc, yyss);
2687         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2688 #  undef YYSTACK_RELOCATE
2689         if (yyss1 != yyssa)
2690           YYSTACK_FREE (yyss1);
2691       }
2692 # endif
2693 #endif /* no yyoverflow */
2694 
2695       yyssp = yyss + yysize - 1;
2696       yyvsp = yyvs + yysize - 1;
2697 
2698       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2699                   (unsigned long int) yystacksize));
2700 
2701       if (yyss + yystacksize - 1 <= yyssp)
2702         YYABORT;
2703     }
2704 
2705   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2706 
2707   if (yystate == YYFINAL)
2708     YYACCEPT;
2709 
2710   goto yybackup;
2711 
2712 /*-----------.
2713 | yybackup.  |
2714 `-----------*/
2715 yybackup:
2716 
2717   /* Do appropriate processing given the current state.  Read a
2718      lookahead token if we need one and don't already have one.  */
2719 
2720   /* First try to decide what to do without reference to lookahead token.  */
2721   yyn = yypact[yystate];
2722   if (yypact_value_is_default (yyn))
2723     goto yydefault;
2724 
2725   /* Not known => get a lookahead token if don't already have one.  */
2726 
2727   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2728   if (yychar == YYEMPTY)
2729     {
2730       YYDPRINTF ((stderr, "Reading a token: "));
2731       yychar = yylex (&yylval, pParser);
2732     }
2733 
2734   if (yychar <= YYEOF)
2735     {
2736       yychar = yytoken = YYEOF;
2737       YYDPRINTF ((stderr, "Now at end of input.\n"));
2738     }
2739   else
2740     {
2741       yytoken = YYTRANSLATE (yychar);
2742       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2743     }
2744 
2745   /* If the proper action on seeing token YYTOKEN is to reduce or to
2746      detect an error, take that action.  */
2747   yyn += yytoken;
2748   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2749     goto yydefault;
2750   yyn = yytable[yyn];
2751   if (yyn <= 0)
2752     {
2753       if (yytable_value_is_error (yyn))
2754         goto yyerrlab;
2755       yyn = -yyn;
2756       goto yyreduce;
2757     }
2758 
2759   /* Count tokens shifted since error; after three, turn off error
2760      status.  */
2761   if (yyerrstatus)
2762     yyerrstatus--;
2763 
2764   /* Shift the lookahead token.  */
2765   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2766 
2767   /* Discard the shifted token.  */
2768   yychar = YYEMPTY;
2769 
2770   yystate = yyn;
2771   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2772   *++yyvsp = yylval;
2773   YY_IGNORE_MAYBE_UNINITIALIZED_END
2774 
2775   goto yynewstate;
2776 
2777 
2778 /*-----------------------------------------------------------.
2779 | yydefault -- do the default action for the current state.  |
2780 `-----------------------------------------------------------*/
2781 yydefault:
2782   yyn = yydefact[yystate];
2783   if (yyn == 0)
2784     goto yyerrlab;
2785   goto yyreduce;
2786 
2787 
2788 /*-----------------------------.
2789 | yyreduce -- Do a reduction.  |
2790 `-----------------------------*/
2791 yyreduce:
2792   /* yyn is the number of a rule to reduce with.  */
2793   yylen = yyr2[yyn];
2794 
2795   /* If YYLEN is nonzero, implement the default value of the action:
2796      '$$ = $1'.
2797 
2798      Otherwise, the following line sets YYVAL to garbage.
2799      This behavior is undocumented and Bison
2800      users should not rely upon it.  Assigning to YYVAL
2801      unconditionally makes the parser a bit smaller, and it avoids a
2802      GCC warning that YYVAL may be used uninitialized.  */
2803   yyval = yyvsp[1-yylen];
2804 
2805 
2806   YY_REDUCE_PRINT (yyn);
2807   switch (yyn)
2808     {
2809         case 2:
2810 
2811     { pParser->PushQuery(); }
2812 
2813     break;
2814 
2815   case 126:
2816 
2817     { pParser->PushQuery(); }
2818 
2819     break;
2820 
2821   case 127:
2822 
2823     { pParser->PushQuery(); }
2824 
2825     break;
2826 
2827   case 128:
2828 
2829     { pParser->PushQuery(); }
2830 
2831     break;
2832 
2833   case 133:
2834 
2835     {
2836 			assert ( pParser->m_pStmt->m_eStmt==STMT_SELECT ); // set by table argument
2837 			pParser->ToString ( pParser->m_pStmt->m_sTableFunc, (yyvsp[-6]) );
2838 		}
2839 
2840     break;
2841 
2842   case 135:
2843 
2844     {
2845 			assert ( pParser->m_pStmt->m_eStmt==STMT_SELECT ); // set by subselect
2846 		}
2847 
2848     break;
2849 
2850   case 138:
2851 
2852     {
2853 			pParser->ToString ( pParser->m_pStmt->m_dTableFuncArgs.Add(), (yyvsp[0]) );
2854 		}
2855 
2856     break;
2857 
2858   case 139:
2859 
2860     {
2861 			pParser->ToString ( pParser->m_pStmt->m_dTableFuncArgs.Add(), (yyvsp[0]) );
2862 		}
2863 
2864     break;
2865 
2866   case 143:
2867 
2868     {
2869 		CSphVector<CSphQueryItem> & dItems = pParser->m_pQuery->m_dItems;
2870 		if ( dItems.GetLength()!=1 || dItems[0].m_sExpr!="*" )
2871 		{
2872 			yyerror ( pParser, "outer select list must be a single star" );
2873 			YYERROR;
2874 		}
2875 		dItems.Reset();
2876 		pParser->ResetSelect();
2877 	}
2878 
2879     break;
2880 
2881   case 144:
2882 
2883     {
2884 			pParser->ToString ( pParser->m_pQuery->m_sOuterOrderBy, (yyvsp[0]) );
2885 			pParser->m_pQuery->m_bHasOuter = true;
2886 		}
2887 
2888     break;
2889 
2890   case 146:
2891 
2892     {
2893 			pParser->m_pQuery->m_iOuterLimit = (yyvsp[0]).m_iValue;
2894 			pParser->m_pQuery->m_bHasOuter = true;
2895 		}
2896 
2897     break;
2898 
2899   case 147:
2900 
2901     {
2902 			pParser->m_pQuery->m_iOuterOffset = (yyvsp[-2]).m_iValue;
2903 			pParser->m_pQuery->m_iOuterLimit = (yyvsp[0]).m_iValue;
2904 			pParser->m_pQuery->m_bHasOuter = true;
2905 		}
2906 
2907     break;
2908 
2909   case 148:
2910 
2911     {
2912 			pParser->m_pStmt->m_eStmt = STMT_SELECT;
2913 			pParser->ToString ( pParser->m_pQuery->m_sIndexes, (yyvsp[-7]) );
2914 		}
2915 
2916     break;
2917 
2918   case 151:
2919 
2920     { pParser->AddItem ( &(yyvsp[0]) ); }
2921 
2922     break;
2923 
2924   case 154:
2925 
2926     { pParser->AliasLastItem ( &(yyvsp[0]) ); }
2927 
2928     break;
2929 
2930   case 155:
2931 
2932     { pParser->AliasLastItem ( &(yyvsp[0]) ); }
2933 
2934     break;
2935 
2936   case 156:
2937 
2938     { pParser->AddItem ( &(yyvsp[0]) ); }
2939 
2940     break;
2941 
2942   case 157:
2943 
2944     { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_AVG, &(yyvsp[-3]), &(yyvsp[0]) ); }
2945 
2946     break;
2947 
2948   case 158:
2949 
2950     { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_MAX, &(yyvsp[-3]), &(yyvsp[0]) ); }
2951 
2952     break;
2953 
2954   case 159:
2955 
2956     { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_MIN, &(yyvsp[-3]), &(yyvsp[0]) ); }
2957 
2958     break;
2959 
2960   case 160:
2961 
2962     { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_SUM, &(yyvsp[-3]), &(yyvsp[0]) ); }
2963 
2964     break;
2965 
2966   case 161:
2967 
2968     { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_CAT, &(yyvsp[-3]), &(yyvsp[0]) ); }
2969 
2970     break;
2971 
2972   case 162:
2973 
2974     { if ( !pParser->AddItem ( "count(*)", &(yyvsp[-3]), &(yyvsp[0]) ) ) YYERROR; }
2975 
2976     break;
2977 
2978   case 163:
2979 
2980     { if ( !pParser->AddItem ( "groupby()", &(yyvsp[-2]), &(yyvsp[0]) ) ) YYERROR; }
2981 
2982     break;
2983 
2984   case 164:
2985 
2986     { if ( !pParser->AddDistinct ( &(yyvsp[-1]), &(yyvsp[-4]), &(yyvsp[0]) ) ) YYERROR; }
2987 
2988     break;
2989 
2990   case 166:
2991 
2992     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
2993 
2994     break;
2995 
2996   case 173:
2997 
2998     {
2999 			if ( !pParser->SetMatch((yyvsp[-1])) )
3000 				YYERROR;
3001 		}
3002 
3003     break;
3004 
3005   case 175:
3006 
3007     {
3008 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-2]) );
3009 			if ( !pFilter )
3010 				YYERROR;
3011 			pFilter->m_dValues.Add ( (yyvsp[0]).m_iValue );
3012 		}
3013 
3014     break;
3015 
3016   case 176:
3017 
3018     {
3019 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-2]) );
3020 			if ( !pFilter )
3021 				YYERROR;
3022 			pFilter->m_dValues.Add ( (yyvsp[0]).m_iValue );
3023 			pFilter->m_bExclude = true;
3024 		}
3025 
3026     break;
3027 
3028   case 177:
3029 
3030     {
3031 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-4]) );
3032 			if ( !pFilter )
3033 				YYERROR;
3034 			pFilter->m_dValues = *(yyvsp[-1]).m_pValues.Ptr();
3035 			pFilter->m_dValues.Uniq();
3036 		}
3037 
3038     break;
3039 
3040   case 178:
3041 
3042     {
3043 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-5]) );
3044 			if ( !pFilter )
3045 				YYERROR;
3046 			pFilter->m_dValues = *(yyvsp[-1]).m_pValues.Ptr();
3047 			pFilter->m_dValues.Uniq();
3048 			pFilter->m_bExclude = true;
3049 		}
3050 
3051     break;
3052 
3053   case 179:
3054 
3055     {
3056 			if ( !pParser->AddStringListFilter ( (yyvsp[-4]), (yyvsp[-1]), false ) )
3057 				YYERROR;
3058 		}
3059 
3060     break;
3061 
3062   case 180:
3063 
3064     {
3065 			if ( !pParser->AddStringListFilter ( (yyvsp[-5]), (yyvsp[-1]), true ) )
3066 				YYERROR;
3067 		}
3068 
3069     break;
3070 
3071   case 181:
3072 
3073     {
3074 			if ( !pParser->AddUservarFilter ( (yyvsp[-2]), (yyvsp[0]), false ) )
3075 				YYERROR;
3076 		}
3077 
3078     break;
3079 
3080   case 182:
3081 
3082     {
3083 			if ( !pParser->AddUservarFilter ( (yyvsp[-3]), (yyvsp[0]), true ) )
3084 				YYERROR;
3085 		}
3086 
3087     break;
3088 
3089   case 183:
3090 
3091     {
3092 			if ( !pParser->AddIntRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_iValue, (yyvsp[0]).m_iValue ) )
3093 				YYERROR;
3094 		}
3095 
3096     break;
3097 
3098   case 184:
3099 
3100     {
3101 			if ( !pParser->AddIntFilterGreater ( (yyvsp[-2]), (yyvsp[0]).m_iValue, false ) )
3102 				YYERROR;
3103 		}
3104 
3105     break;
3106 
3107   case 185:
3108 
3109     {
3110 			if ( !pParser->AddIntFilterLesser ( (yyvsp[-2]), (yyvsp[0]).m_iValue, false ) )
3111 				YYERROR;
3112 		}
3113 
3114     break;
3115 
3116   case 186:
3117 
3118     {
3119 			if ( !pParser->AddIntFilterGreater ( (yyvsp[-2]), (yyvsp[0]).m_iValue, true ) )
3120 				YYERROR;
3121 		}
3122 
3123     break;
3124 
3125   case 187:
3126 
3127     {
3128 			if ( !pParser->AddIntFilterLesser ( (yyvsp[-2]), (yyvsp[0]).m_iValue, true ) )
3129 				YYERROR;
3130 		}
3131 
3132     break;
3133 
3134   case 188:
3135 
3136     {
3137 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, (yyvsp[0]).m_fValue, true ) )
3138 				YYERROR;
3139 		}
3140 
3141     break;
3142 
3143   case 189:
3144 
3145     {
3146 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, (yyvsp[0]).m_fValue, true, true ) )
3147 				YYERROR;
3148 		}
3149 
3150     break;
3151 
3152   case 190:
3153 
3154     {
3155 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_fValue, (yyvsp[0]).m_fValue, true ) )
3156 				YYERROR;
3157 		}
3158 
3159     break;
3160 
3161   case 191:
3162 
3163     {
3164 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_iValue, (yyvsp[0]).m_fValue, true ) )
3165 				YYERROR;
3166 		}
3167 
3168     break;
3169 
3170   case 192:
3171 
3172     {
3173 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_fValue, (yyvsp[0]).m_iValue, true ) )
3174 				YYERROR;
3175 		}
3176 
3177     break;
3178 
3179   case 193:
3180 
3181     {
3182 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, FLT_MAX, false ) )
3183 				YYERROR;
3184 		}
3185 
3186     break;
3187 
3188   case 194:
3189 
3190     {
3191 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), -FLT_MAX, (yyvsp[0]).m_fValue, false ) )
3192 				YYERROR;
3193 		}
3194 
3195     break;
3196 
3197   case 195:
3198 
3199     {
3200 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, FLT_MAX, true ) )
3201 				YYERROR;
3202 		}
3203 
3204     break;
3205 
3206   case 196:
3207 
3208     {
3209 			if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), -FLT_MAX, (yyvsp[0]).m_fValue, true ) )
3210 				YYERROR;
3211 		}
3212 
3213     break;
3214 
3215   case 197:
3216 
3217     {
3218 			if ( !pParser->AddStringFilter ( (yyvsp[-2]), (yyvsp[0]), false ) )
3219 				YYERROR;
3220 		}
3221 
3222     break;
3223 
3224   case 198:
3225 
3226     {
3227 			if ( !pParser->AddStringFilter ( (yyvsp[-2]), (yyvsp[0]), true ) )
3228 				YYERROR;
3229 		}
3230 
3231     break;
3232 
3233   case 199:
3234 
3235     {
3236 			if ( !pParser->AddNullFilter ( (yyvsp[-2]), true ) )
3237 				YYERROR;
3238 		}
3239 
3240     break;
3241 
3242   case 200:
3243 
3244     {
3245 			if ( !pParser->AddNullFilter ( (yyvsp[-3]), false ) )
3246 				YYERROR;
3247 		}
3248 
3249     break;
3250 
3251   case 202:
3252 
3253     {
3254 			if ( !pParser->SetOldSyntax() )
3255 				YYERROR;
3256 		}
3257 
3258     break;
3259 
3260   case 203:
3261 
3262     {
3263 			(yyval).m_iType = SPHINXQL_TOK_COUNT;
3264 			if ( !pParser->SetNewSyntax() )
3265 				YYERROR;
3266 		}
3267 
3268     break;
3269 
3270   case 204:
3271 
3272     {
3273 			(yyval).m_iType = SPHINXQL_TOK_GROUPBY;
3274 			if ( !pParser->SetNewSyntax() )
3275 				YYERROR;
3276 		}
3277 
3278     break;
3279 
3280   case 205:
3281 
3282     {
3283 			(yyval).m_iType = SPHINXQL_TOK_WEIGHT;
3284 			if ( !pParser->SetNewSyntax() )
3285 				YYERROR;
3286 		}
3287 
3288     break;
3289 
3290   case 206:
3291 
3292     {
3293 			(yyval).m_iType = SPHINXQL_TOK_ID;
3294 			if ( !pParser->SetNewSyntax() )
3295 				YYERROR;
3296 		}
3297 
3298     break;
3299 
3300   case 212:
3301 
3302     { (yyval).m_iType = TOK_CONST_INT; (yyval).m_iValue = (yyvsp[0]).m_iValue; }
3303 
3304     break;
3305 
3306   case 213:
3307 
3308     {
3309 			(yyval).m_iType = TOK_CONST_INT;
3310 			if ( (uint64_t)(yyvsp[0]).m_iValue > (uint64_t)LLONG_MAX )
3311 				(yyval).m_iValue = LLONG_MIN;
3312 			else
3313 				(yyval).m_iValue = -(yyvsp[0]).m_iValue;
3314 		}
3315 
3316     break;
3317 
3318   case 214:
3319 
3320     { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
3321 
3322     break;
3323 
3324   case 215:
3325 
3326     { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = -(yyvsp[0]).m_fValue; }
3327 
3328     break;
3329 
3330   case 216:
3331 
3332     { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
3333 
3334     break;
3335 
3336   case 217:
3337 
3338     {
3339 			assert ( !(yyval).m_pValues.Ptr() );
3340 			(yyval).m_pValues = new RefcountedVector_c<SphAttr_t> ();
3341 			(yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3342 		}
3343 
3344     break;
3345 
3346   case 218:
3347 
3348     {
3349 			(yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3350 		}
3351 
3352     break;
3353 
3354   case 219:
3355 
3356     {
3357 			assert ( !(yyval).m_pValues.Ptr() );
3358 			(yyval).m_pValues = new RefcountedVector_c<SphAttr_t> ();
3359 			(yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3360 		}
3361 
3362     break;
3363 
3364   case 220:
3365 
3366     {
3367 			(yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3368 		}
3369 
3370     break;
3371 
3372   case 224:
3373 
3374     {
3375 			pParser->SetGroupbyLimit ( (yyvsp[0]).m_iValue );
3376 		}
3377 
3378     break;
3379 
3380   case 225:
3381 
3382     {
3383 			pParser->AddGroupBy ( (yyvsp[0]) );
3384 		}
3385 
3386     break;
3387 
3388   case 226:
3389 
3390     {
3391 			pParser->AddGroupBy ( (yyvsp[0]) );
3392 		}
3393 
3394     break;
3395 
3396   case 228:
3397 
3398     {
3399 			pParser->AddHaving();
3400 		}
3401 
3402     break;
3403 
3404   case 231:
3405 
3406     {
3407 			if ( pParser->m_pQuery->m_sGroupBy.IsEmpty() )
3408 			{
3409 				yyerror ( pParser, "you must specify GROUP BY element in order to use WITHIN GROUP ORDER BY clause" );
3410 				YYERROR;
3411 			}
3412 			pParser->ToString ( pParser->m_pQuery->m_sSortBy, (yyvsp[0]) );
3413 		}
3414 
3415     break;
3416 
3417   case 234:
3418 
3419     {
3420 			pParser->ToString ( pParser->m_pQuery->m_sOrderBy, (yyvsp[0]) );
3421 		}
3422 
3423     break;
3424 
3425   case 235:
3426 
3427     {
3428 			pParser->m_pQuery->m_sOrderBy = "@random";
3429 		}
3430 
3431     break;
3432 
3433   case 237:
3434 
3435     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3436 
3437     break;
3438 
3439   case 239:
3440 
3441     { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3442 
3443     break;
3444 
3445   case 240:
3446 
3447     { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3448 
3449     break;
3450 
3451   case 243:
3452 
3453     {
3454 			pParser->m_pQuery->m_iOffset = 0;
3455 			pParser->m_pQuery->m_iLimit = (yyvsp[0]).m_iValue;
3456 		}
3457 
3458     break;
3459 
3460   case 244:
3461 
3462     {
3463 			pParser->m_pQuery->m_iOffset = (yyvsp[-2]).m_iValue;
3464 			pParser->m_pQuery->m_iLimit = (yyvsp[0]).m_iValue;
3465 		}
3466 
3467     break;
3468 
3469   case 250:
3470 
3471     {
3472 			if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3473 				YYERROR;
3474 		}
3475 
3476     break;
3477 
3478   case 251:
3479 
3480     {
3481 			if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3482 				YYERROR;
3483 		}
3484 
3485     break;
3486 
3487   case 252:
3488 
3489     {
3490 			if ( !pParser->AddOption ( (yyvsp[-4]), pParser->GetNamedVec ( (yyvsp[-1]).m_iValue ) ) )
3491 				YYERROR;
3492 			pParser->FreeNamedVec ( (yyvsp[-1]).m_iValue );
3493 		}
3494 
3495     break;
3496 
3497   case 253:
3498 
3499     {
3500 			if ( !pParser->AddOption ( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ) )
3501 				YYERROR;
3502 		}
3503 
3504     break;
3505 
3506   case 254:
3507 
3508     {
3509 			if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3510 				YYERROR;
3511 		}
3512 
3513     break;
3514 
3515   case 255:
3516 
3517     {
3518 			(yyval).m_iValue = pParser->AllocNamedVec ();
3519 			pParser->AddConst ( (yyval).m_iValue, (yyvsp[0]) );
3520 		}
3521 
3522     break;
3523 
3524   case 256:
3525 
3526     {
3527 			pParser->AddConst( (yyval).m_iValue, (yyvsp[0]) );
3528 		}
3529 
3530     break;
3531 
3532   case 257:
3533 
3534     {
3535 			(yyval) = (yyvsp[-2]);
3536 			(yyval).m_iValue = (yyvsp[0]).m_iValue;
3537 		}
3538 
3539     break;
3540 
3541   case 259:
3542 
3543     { if ( !pParser->SetOldSyntax() ) YYERROR; }
3544 
3545     break;
3546 
3547   case 260:
3548 
3549     { if ( !pParser->SetNewSyntax() ) YYERROR; }
3550 
3551     break;
3552 
3553   case 265:
3554 
3555     { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3556 
3557     break;
3558 
3559   case 266:
3560 
3561     { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3562 
3563     break;
3564 
3565   case 267:
3566 
3567     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3568 
3569     break;
3570 
3571   case 268:
3572 
3573     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3574 
3575     break;
3576 
3577   case 269:
3578 
3579     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3580 
3581     break;
3582 
3583   case 270:
3584 
3585     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3586 
3587     break;
3588 
3589   case 271:
3590 
3591     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3592 
3593     break;
3594 
3595   case 272:
3596 
3597     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3598 
3599     break;
3600 
3601   case 273:
3602 
3603     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3604 
3605     break;
3606 
3607   case 274:
3608 
3609     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3610 
3611     break;
3612 
3613   case 275:
3614 
3615     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3616 
3617     break;
3618 
3619   case 276:
3620 
3621     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3622 
3623     break;
3624 
3625   case 277:
3626 
3627     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3628 
3629     break;
3630 
3631   case 278:
3632 
3633     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3634 
3635     break;
3636 
3637   case 279:
3638 
3639     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3640 
3641     break;
3642 
3643   case 280:
3644 
3645     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3646 
3647     break;
3648 
3649   case 281:
3650 
3651     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3652 
3653     break;
3654 
3655   case 282:
3656 
3657     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3658 
3659     break;
3660 
3661   case 283:
3662 
3663     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3664 
3665     break;
3666 
3667   case 284:
3668 
3669     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3670 
3671     break;
3672 
3673   case 285:
3674 
3675     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3676 
3677     break;
3678 
3679   case 289:
3680 
3681     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3682 
3683     break;
3684 
3685   case 290:
3686 
3687     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3688 
3689     break;
3690 
3691   case 291:
3692 
3693     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3694 
3695     break;
3696 
3697   case 292:
3698 
3699     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3700 
3701     break;
3702 
3703   case 293:
3704 
3705     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3706 
3707     break;
3708 
3709   case 294:
3710 
3711     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3712 
3713     break;
3714 
3715   case 295:
3716 
3717     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3718 
3719     break;
3720 
3721   case 296:
3722 
3723     { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3724 
3725     break;
3726 
3727   case 297:
3728 
3729     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3730 
3731     break;
3732 
3733   case 298:
3734 
3735     { TRACK_BOUNDS ( (yyval), (yyvsp[-5]), (yyvsp[0]) ); }
3736 
3737     break;
3738 
3739   case 299:
3740 
3741     { TRACK_BOUNDS ( (yyval), (yyvsp[-5]), (yyvsp[0]) ); }
3742 
3743     break;
3744 
3745   case 300:
3746 
3747     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3748 
3749     break;
3750 
3751   case 301:
3752 
3753     { TRACK_BOUNDS ( (yyval), (yyvsp[-7]), (yyvsp[0]) ); }
3754 
3755     break;
3756 
3757   case 302:
3758 
3759     { TRACK_BOUNDS ( (yyval), (yyvsp[-13]), (yyvsp[0]) ); }
3760 
3761     break;
3762 
3763   case 307:
3764 
3765     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3766 
3767     break;
3768 
3769   case 308:
3770 
3771     { TRACK_BOUNDS ( (yyval), (yyvsp[-4]), (yyvsp[0]) ); }
3772 
3773     break;
3774 
3775   case 315:
3776 
3777     { pParser->ToStringUnescape ( pParser->m_pStmt->m_sStringParam, (yyvsp[0]) ); }
3778 
3779     break;
3780 
3781   case 316:
3782 
3783     { pParser->m_pStmt->m_eStmt = STMT_SHOW_WARNINGS; }
3784 
3785     break;
3786 
3787   case 317:
3788 
3789     { pParser->m_pStmt->m_eStmt = STMT_SHOW_STATUS; }
3790 
3791     break;
3792 
3793   case 318:
3794 
3795     { pParser->m_pStmt->m_eStmt = STMT_SHOW_META; }
3796 
3797     break;
3798 
3799   case 319:
3800 
3801     { pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS; }
3802 
3803     break;
3804 
3805   case 320:
3806 
3807     { pParser->m_pStmt->m_eStmt = STMT_SHOW_PROFILE; }
3808 
3809     break;
3810 
3811   case 321:
3812 
3813     { pParser->m_pStmt->m_eStmt = STMT_SHOW_PLAN; }
3814 
3815     break;
3816 
3817   case 322:
3818 
3819     { pParser->m_pStmt->m_eStmt = STMT_SHOW_PLUGINS; }
3820 
3821     break;
3822 
3823   case 323:
3824 
3825     { pParser->m_pStmt->m_eStmt = STMT_SHOW_THREADS; }
3826 
3827     break;
3828 
3829   case 324:
3830 
3831     {
3832 			pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS;
3833 			pParser->ToStringUnescape ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3834 		}
3835 
3836     break;
3837 
3838   case 325:
3839 
3840     {
3841 			pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS;
3842 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3843 		}
3844 
3845     break;
3846 
3847   case 326:
3848 
3849     {
3850 			pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_STATUS;
3851 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-1]) );
3852 		}
3853 
3854     break;
3855 
3856   case 327:
3857 
3858     {
3859 			pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_SETTINGS;
3860 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3861 		}
3862 
3863     break;
3864 
3865   case 328:
3866 
3867     {
3868 			pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_SETTINGS;
3869 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3870 			pParser->m_pStmt->m_iIntParam = int((yyvsp[-1]).m_fValue*10);
3871 		}
3872 
3873     break;
3874 
3875   case 332:
3876 
3877     {
3878 			pParser->m_pStmt->m_iIntParam = (yyvsp[0]).m_iValue;
3879 		}
3880 
3881     break;
3882 
3883   case 333:
3884 
3885     {
3886 			pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3887 			pParser->m_pStmt->m_iSetValue = (yyvsp[0]).m_iValue;
3888 		}
3889 
3890     break;
3891 
3892   case 334:
3893 
3894     {
3895 			pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3896 			pParser->ToString ( pParser->m_pStmt->m_sSetValue, (yyvsp[0]) );
3897 		}
3898 
3899     break;
3900 
3901   case 335:
3902 
3903     {
3904 			pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3905 			pParser->m_pStmt->m_bSetNull = true;
3906 		}
3907 
3908     break;
3909 
3910   case 336:
3911 
3912     { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3913 
3914     break;
3915 
3916   case 337:
3917 
3918     { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3919 
3920     break;
3921 
3922   case 338:
3923 
3924     { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3925 
3926     break;
3927 
3928   case 339:
3929 
3930     {
3931 			pParser->SetStatement ( (yyvsp[-4]), SET_GLOBAL_UVAR );
3932 			pParser->m_pStmt->m_dSetValues = *(yyvsp[-1]).m_pValues.Ptr();
3933 		}
3934 
3935     break;
3936 
3937   case 340:
3938 
3939     {
3940 			pParser->SetStatement ( (yyvsp[-2]), SET_GLOBAL_SVAR );
3941 			pParser->ToString ( pParser->m_pStmt->m_sSetValue, (yyvsp[0]) ).Unquote();
3942 		}
3943 
3944     break;
3945 
3946   case 341:
3947 
3948     {
3949 			pParser->SetStatement ( (yyvsp[-2]), SET_GLOBAL_SVAR );
3950 			pParser->m_pStmt->m_iSetValue = (yyvsp[0]).m_iValue;
3951 		}
3952 
3953     break;
3954 
3955   case 342:
3956 
3957     {
3958 			pParser->SetStatement ( (yyvsp[-4]), SET_INDEX_UVAR );
3959 			pParser->m_pStmt->m_dSetValues = *(yyvsp[-1]).m_pValues.Ptr();
3960 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-6]) );
3961 		}
3962 
3963     break;
3964 
3965   case 345:
3966 
3967     { (yyval).m_iValue = 1; }
3968 
3969     break;
3970 
3971   case 346:
3972 
3973     { (yyval).m_iValue = 0; }
3974 
3975     break;
3976 
3977   case 347:
3978 
3979     {
3980 			(yyval).m_iValue = (yyvsp[0]).m_iValue;
3981 			if ( (yyval).m_iValue!=0 && (yyval).m_iValue!=1 )
3982 			{
3983 				yyerror ( pParser, "only 0 and 1 could be used as boolean values" );
3984 				YYERROR;
3985 			}
3986 		}
3987 
3988     break;
3989 
3990   case 355:
3991 
3992     { pParser->m_pStmt->m_eStmt = STMT_COMMIT; }
3993 
3994     break;
3995 
3996   case 356:
3997 
3998     { pParser->m_pStmt->m_eStmt = STMT_ROLLBACK; }
3999 
4000     break;
4001 
4002   case 357:
4003 
4004     { pParser->m_pStmt->m_eStmt = STMT_BEGIN; }
4005 
4006     break;
4007 
4008   case 360:
4009 
4010     {
4011 			// everything else is pushed directly into parser within the rules
4012 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-4]) );
4013 		}
4014 
4015     break;
4016 
4017   case 361:
4018 
4019     { pParser->m_pStmt->m_eStmt = STMT_INSERT; }
4020 
4021     break;
4022 
4023   case 362:
4024 
4025     { pParser->m_pStmt->m_eStmt = STMT_REPLACE; }
4026 
4027     break;
4028 
4029   case 367:
4030 
4031     { if ( !pParser->AddSchemaItem ( &(yyvsp[0]) ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } }
4032 
4033     break;
4034 
4035   case 368:
4036 
4037     { if ( !pParser->AddSchemaItem ( &(yyvsp[0]) ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } }
4038 
4039     break;
4040 
4041   case 371:
4042 
4043     { if ( !pParser->m_pStmt->CheckInsertIntegrity() ) { yyerror ( pParser, "wrong number of values here" ); YYERROR; } }
4044 
4045     break;
4046 
4047   case 372:
4048 
4049     { AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) ); }
4050 
4051     break;
4052 
4053   case 373:
4054 
4055     { AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) ); }
4056 
4057     break;
4058 
4059   case 374:
4060 
4061     { (yyval).m_iType = TOK_CONST_INT; (yyval).m_iValue = (yyvsp[0]).m_iValue; }
4062 
4063     break;
4064 
4065   case 375:
4066 
4067     { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
4068 
4069     break;
4070 
4071   case 376:
4072 
4073     { (yyval).m_iType = TOK_QUOTED_STRING; (yyval).m_iStart = (yyvsp[0]).m_iStart; (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4074 
4075     break;
4076 
4077   case 377:
4078 
4079     { (yyval).m_iType = TOK_CONST_MVA; (yyval).m_pValues = (yyvsp[-1]).m_pValues; }
4080 
4081     break;
4082 
4083   case 378:
4084 
4085     { (yyval).m_iType = TOK_CONST_MVA; }
4086 
4087     break;
4088 
4089   case 383:
4090 
4091     { if ( !pParser->AddInsertOption ( (yyvsp[-2]), (yyvsp[0]) ) ) YYERROR; }
4092 
4093     break;
4094 
4095   case 384:
4096 
4097     {
4098 		if ( !pParser->DeleteStatement ( &(yyvsp[-1]) ) )
4099 			YYERROR;
4100 	}
4101 
4102     break;
4103 
4104   case 385:
4105 
4106     {
4107 			pParser->m_pStmt->m_eStmt = STMT_CALL;
4108 			pParser->ToString ( pParser->m_pStmt->m_sCallProc, (yyvsp[-4]) );
4109 		}
4110 
4111     break;
4112 
4113   case 386:
4114 
4115     {
4116 			AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) );
4117 		}
4118 
4119     break;
4120 
4121   case 387:
4122 
4123     {
4124 			AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) );
4125 		}
4126 
4127     break;
4128 
4129   case 389:
4130 
4131     {
4132 			(yyval).m_iType = TOK_CONST_STRINGS;
4133 		}
4134 
4135     break;
4136 
4137   case 390:
4138 
4139     {
4140 			// FIXME? for now, one such array per CALL statement, tops
4141 			if ( pParser->m_pStmt->m_dCallStrings.GetLength() )
4142 			{
4143 				yyerror ( pParser, "unexpected constant string list" );
4144 				YYERROR;
4145 			}
4146 			pParser->ToStringUnescape ( pParser->m_pStmt->m_dCallStrings.Add(), (yyvsp[0]) );
4147 		}
4148 
4149     break;
4150 
4151   case 391:
4152 
4153     {
4154 			pParser->ToStringUnescape ( pParser->m_pStmt->m_dCallStrings.Add(), (yyvsp[0]) );
4155 		}
4156 
4157     break;
4158 
4159   case 394:
4160 
4161     {
4162 			assert ( pParser->m_pStmt->m_dCallOptNames.GetLength()==1 );
4163 			assert ( pParser->m_pStmt->m_dCallOptValues.GetLength()==1 );
4164 		}
4165 
4166     break;
4167 
4168   case 396:
4169 
4170     {
4171 			pParser->ToString ( pParser->m_pStmt->m_dCallOptNames.Add(), (yyvsp[0]) );
4172 			AddInsval ( pParser, pParser->m_pStmt->m_dCallOptValues, (yyvsp[-2]) );
4173 		}
4174 
4175     break;
4176 
4177   case 401:
4178 
4179     {
4180 			pParser->m_pStmt->m_eStmt = STMT_DESCRIBE;
4181 			pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-1]) );
4182 		}
4183 
4184     break;
4185 
4186   case 404:
4187 
4188     { pParser->m_pStmt->m_eStmt = STMT_SHOW_TABLES; }
4189 
4190     break;
4191 
4192   case 405:
4193 
4194     { pParser->m_pStmt->m_eStmt = STMT_SHOW_DATABASES; }
4195 
4196     break;
4197 
4198   case 406:
4199 
4200     {
4201 			if ( !pParser->UpdateStatement ( &(yyvsp[-4]) ) )
4202 				YYERROR;
4203 		}
4204 
4205     break;
4206 
4207   case 409:
4208 
4209     {
4210 			// it is performance-critical to forcibly inline this
4211 			pParser->m_pStmt->m_tUpdate.m_dPool.Add ( (DWORD)(yyvsp[0]).m_iValue );
4212 			DWORD uHi = (DWORD)( (yyvsp[0]).m_iValue>>32 );
4213 			if ( uHi )
4214 			{
4215 				pParser->m_pStmt->m_tUpdate.m_dPool.Add ( uHi );
4216 				pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_BIGINT );
4217 			} else
4218 			{
4219 				pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_INTEGER );
4220 			}
4221 		}
4222 
4223     break;
4224 
4225   case 410:
4226 
4227     {
4228 			// it is performance-critical to forcibly inline this
4229 			pParser->m_pStmt->m_tUpdate.m_dPool.Add ( sphF2DW ( (yyvsp[0]).m_fValue ) );
4230 			pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_FLOAT );
4231 		}
4232 
4233     break;
4234 
4235   case 411:
4236 
4237     {
4238 			pParser->UpdateMVAAttr ( (yyvsp[-4]), (yyvsp[-1]) );
4239 		}
4240 
4241     break;
4242 
4243   case 412:
4244 
4245     {
4246 			SqlNode_t tNoValues;
4247 			pParser->UpdateMVAAttr ( (yyvsp[-3]), tNoValues );
4248 		}
4249 
4250     break;
4251 
4252   case 413:
4253 
4254     {
4255 			// it is performance-critical to forcibly inline this
4256 			pParser->m_pStmt->m_tUpdate.m_dPool.Add ( (DWORD)(yyvsp[0]).m_iValue );
4257 			DWORD uHi = (DWORD)( (yyvsp[0]).m_iValue>>32 );
4258 			if ( uHi )
4259 			{
4260 				pParser->m_pStmt->m_tUpdate.m_dPool.Add ( uHi );
4261 				pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_BIGINT );
4262 			} else
4263 			{
4264 				pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_INTEGER );
4265 			}
4266 		}
4267 
4268     break;
4269 
4270   case 414:
4271 
4272     {
4273 			// it is performance-critical to forcibly inline this
4274 			pParser->m_pStmt->m_tUpdate.m_dPool.Add ( sphF2DW ( (yyvsp[0]).m_fValue ) );
4275 			pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_FLOAT );
4276 		}
4277 
4278     break;
4279 
4280   case 415:
4281 
4282     { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4283 
4284     break;
4285 
4286   case 416:
4287 
4288     { (yyval).m_iValue = SPH_ATTR_BIGINT; }
4289 
4290     break;
4291 
4292   case 417:
4293 
4294     { (yyval).m_iValue = SPH_ATTR_FLOAT; }
4295 
4296     break;
4297 
4298   case 418:
4299 
4300     { (yyval).m_iValue = SPH_ATTR_BOOL; }
4301 
4302     break;
4303 
4304   case 419:
4305 
4306     { (yyval).m_iValue = SPH_ATTR_UINT32SET; }
4307 
4308     break;
4309 
4310   case 420:
4311 
4312     { (yyval).m_iValue = SPH_ATTR_INT64SET; }
4313 
4314     break;
4315 
4316   case 421:
4317 
4318     { (yyval).m_iValue = SPH_ATTR_JSON; }
4319 
4320     break;
4321 
4322   case 422:
4323 
4324     { (yyval).m_iValue = SPH_ATTR_STRING; }
4325 
4326     break;
4327 
4328   case 423:
4329 
4330     { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4331 
4332     break;
4333 
4334   case 424:
4335 
4336     {
4337 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4338 			tStmt.m_eStmt = STMT_ALTER_ADD;
4339 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[-4]) );
4340 			pParser->ToString ( tStmt.m_sAlterAttr, (yyvsp[-1]) );
4341 			tStmt.m_eAlterColType = (ESphAttr)(yyvsp[0]).m_iValue;
4342 		}
4343 
4344     break;
4345 
4346   case 425:
4347 
4348     {
4349 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4350 			tStmt.m_eStmt = STMT_ALTER_DROP;
4351 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[-3]) );
4352 			pParser->ToString ( tStmt.m_sAlterAttr, (yyvsp[0]) );
4353 		}
4354 
4355     break;
4356 
4357   case 426:
4358 
4359     {
4360 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4361 			tStmt.m_eStmt = STMT_ALTER_RECONFIGURE;
4362 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[-1]) );
4363 		}
4364 
4365     break;
4366 
4367   case 427:
4368 
4369     {
4370 			pParser->m_pStmt->m_eStmt = STMT_SHOW_VARIABLES;
4371 		}
4372 
4373     break;
4374 
4375   case 428:
4376 
4377     {
4378 			pParser->m_pStmt->m_eStmt = STMT_SHOW_VARIABLES;
4379 			pParser->ToStringUnescape ( pParser->m_pStmt->m_sStringParam, (yyvsp[0]) );
4380 		}
4381 
4382     break;
4383 
4384   case 435:
4385 
4386     {
4387 			pParser->m_pStmt->m_eStmt = STMT_SHOW_COLLATION;
4388 		}
4389 
4390     break;
4391 
4392   case 436:
4393 
4394     {
4395 			pParser->m_pStmt->m_eStmt = STMT_SHOW_CHARACTER_SET;
4396 		}
4397 
4398     break;
4399 
4400   case 437:
4401 
4402     {
4403 			pParser->m_pStmt->m_eStmt = STMT_DUMMY;
4404 		}
4405 
4406     break;
4407 
4408   case 445:
4409 
4410     {
4411 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4412 			tStmt.m_eStmt = STMT_CREATE_FUNCTION;
4413 			pParser->ToString ( tStmt.m_sUdfName, (yyvsp[-4]) );
4414 			pParser->ToStringUnescape ( tStmt.m_sUdfLib, (yyvsp[0]) );
4415 			tStmt.m_eUdfType = (ESphAttr) (yyvsp[-2]).m_iValue;
4416 		}
4417 
4418     break;
4419 
4420   case 446:
4421 
4422     { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4423 
4424     break;
4425 
4426   case 447:
4427 
4428     { (yyval).m_iValue = SPH_ATTR_BIGINT; }
4429 
4430     break;
4431 
4432   case 448:
4433 
4434     { (yyval).m_iValue = SPH_ATTR_FLOAT; }
4435 
4436     break;
4437 
4438   case 449:
4439 
4440     { (yyval).m_iValue = SPH_ATTR_STRINGPTR; }
4441 
4442     break;
4443 
4444   case 450:
4445 
4446     { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4447 
4448     break;
4449 
4450   case 451:
4451 
4452     {
4453 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4454 			tStmt.m_eStmt = STMT_DROP_FUNCTION;
4455 			pParser->ToString ( tStmt.m_sUdfName, (yyvsp[0]) );
4456 		}
4457 
4458     break;
4459 
4460   case 452:
4461 
4462     {
4463 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4464 			tStmt.m_eStmt = STMT_ATTACH_INDEX;
4465 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[-3]) );
4466 			pParser->ToString ( tStmt.m_sStringParam, (yyvsp[0]) );
4467 		}
4468 
4469     break;
4470 
4471   case 453:
4472 
4473     {
4474 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4475 			tStmt.m_eStmt = STMT_FLUSH_RTINDEX;
4476 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4477 		}
4478 
4479     break;
4480 
4481   case 454:
4482 
4483     {
4484 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4485 			tStmt.m_eStmt = STMT_FLUSH_RAMCHUNK;
4486 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4487 		}
4488 
4489     break;
4490 
4491   case 455:
4492 
4493     {
4494 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4495 			tStmt.m_eStmt = STMT_FLUSH_INDEX;
4496 		}
4497 
4498     break;
4499 
4500   case 456:
4501 
4502     {
4503 			pParser->m_pStmt->m_eStmt = STMT_SELECT_SYSVAR;
4504 			pParser->ToString ( pParser->m_pStmt->m_tQuery.m_sQuery, (yyvsp[-1]) );
4505 		}
4506 
4507     break;
4508 
4509   case 460:
4510 
4511     { pParser->AddItem ( &(yyvsp[0]) ); }
4512 
4513     break;
4514 
4515   case 461:
4516 
4517     {
4518 			pParser->m_pStmt->m_eStmt = STMT_SELECT_DUAL;
4519 			pParser->ToString ( pParser->m_pStmt->m_tQuery.m_sQuery, (yyvsp[0]) );
4520 		}
4521 
4522     break;
4523 
4524   case 462:
4525 
4526     {
4527 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4528 			tStmt.m_eStmt = STMT_TRUNCATE_RTINDEX;
4529 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4530 		}
4531 
4532     break;
4533 
4534   case 463:
4535 
4536     {
4537 			SqlStmt_t & tStmt = *pParser->m_pStmt;
4538 			tStmt.m_eStmt = STMT_OPTIMIZE_INDEX;
4539 			pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4540 		}
4541 
4542     break;
4543 
4544   case 464:
4545 
4546     {
4547 			SqlStmt_t & s = *pParser->m_pStmt;
4548 			s.m_eStmt = STMT_CREATE_PLUGIN;
4549 			pParser->ToString ( s.m_sUdfName, (yyvsp[-4]) );
4550 			pParser->ToStringUnescape ( s.m_sStringParam, (yyvsp[-2]) );
4551 			pParser->ToStringUnescape ( s.m_sUdfLib, (yyvsp[0]) );
4552 		}
4553 
4554     break;
4555 
4556   case 465:
4557 
4558     {
4559 			SqlStmt_t & s = *pParser->m_pStmt;
4560 			s.m_eStmt = STMT_DROP_PLUGIN;
4561 			pParser->ToString ( s.m_sUdfName, (yyvsp[-2]) );
4562 			pParser->ToStringUnescape ( s.m_sStringParam, (yyvsp[0]) );
4563 		}
4564 
4565     break;
4566 
4567   case 468:
4568 
4569     { (yyval) = (yyvsp[-1]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4570 
4571     break;
4572 
4573   case 470:
4574 
4575     { (yyval) = (yyvsp[-1]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4576 
4577     break;
4578 
4579   case 471:
4580 
4581     { (yyval) = (yyvsp[0]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4582 
4583     break;
4584 
4585   case 472:
4586 
4587     { (yyval) = (yyvsp[0]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4588 
4589     break;
4590 
4591   case 473:
4592 
4593     { (yyval) = (yyvsp[-2]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4594 
4595     break;
4596 
4597   case 474:
4598 
4599     { (yyval) = (yyvsp[-2]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4600 
4601     break;
4602 
4603   case 475:
4604 
4605     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
4606 
4607     break;
4608 
4609   case 476:
4610 
4611     { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
4612 
4613     break;
4614 
4615   case 480:
4616 
4617     {
4618 			pParser->m_pQuery->m_sFacetBy = pParser->m_pQuery->m_sGroupBy;
4619 			pParser->m_pQuery->m_sGroupBy = "";
4620 			pParser->AddCount ();
4621 		}
4622 
4623     break;
4624 
4625   case 482:
4626 
4627     {
4628 			pParser->AddItem ( &(yyvsp[0]) );
4629 			pParser->AddGroupBy ( (yyvsp[0]) );
4630 		}
4631 
4632     break;
4633 
4634   case 485:
4635 
4636     {
4637 			pParser->m_pStmt->m_eStmt = STMT_FACET;
4638 			if ( pParser->m_pQuery->m_sFacetBy.IsEmpty() )
4639 			{
4640 				pParser->m_pQuery->m_sFacetBy = pParser->m_pQuery->m_sGroupBy;
4641 				pParser->AddCount ();
4642 			}
4643 		}
4644 
4645     break;
4646 
4647 
4648 
4649       default: break;
4650     }
4651   /* User semantic actions sometimes alter yychar, and that requires
4652      that yytoken be updated with the new translation.  We take the
4653      approach of translating immediately before every use of yytoken.
4654      One alternative is translating here after every semantic action,
4655      but that translation would be missed if the semantic action invokes
4656      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4657      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
4658      incorrect destructor might then be invoked immediately.  In the
4659      case of YYERROR or YYBACKUP, subsequent parser actions might lead
4660      to an incorrect destructor call or verbose syntax error message
4661      before the lookahead is translated.  */
4662   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4663 
4664   YYPOPSTACK (yylen);
4665   yylen = 0;
4666   YY_STACK_PRINT (yyss, yyssp);
4667 
4668   *++yyvsp = yyval;
4669 
4670   /* Now 'shift' the result of the reduction.  Determine what state
4671      that goes to, based on the state we popped back to and the rule
4672      number reduced by.  */
4673 
4674   yyn = yyr1[yyn];
4675 
4676   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4677   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4678     yystate = yytable[yystate];
4679   else
4680     yystate = yydefgoto[yyn - YYNTOKENS];
4681 
4682   goto yynewstate;
4683 
4684 
4685 /*--------------------------------------.
4686 | yyerrlab -- here on detecting error.  |
4687 `--------------------------------------*/
4688 yyerrlab:
4689   /* Make sure we have latest lookahead translation.  See comments at
4690      user semantic actions for why this is necessary.  */
4691   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4692 
4693   /* If not already recovering from an error, report this error.  */
4694   if (!yyerrstatus)
4695     {
4696       ++yynerrs;
4697 #if ! YYERROR_VERBOSE
4698       yyerror (pParser, YY_("syntax error"));
4699 #else
4700 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4701                                         yyssp, yytoken)
4702       {
4703         char const *yymsgp = YY_("syntax error");
4704         int yysyntax_error_status;
4705         yysyntax_error_status = YYSYNTAX_ERROR;
4706         if (yysyntax_error_status == 0)
4707           yymsgp = yymsg;
4708         else if (yysyntax_error_status == 1)
4709           {
4710             if (yymsg != yymsgbuf)
4711               YYSTACK_FREE (yymsg);
4712             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4713             if (!yymsg)
4714               {
4715                 yymsg = yymsgbuf;
4716                 yymsg_alloc = sizeof yymsgbuf;
4717                 yysyntax_error_status = 2;
4718               }
4719             else
4720               {
4721                 yysyntax_error_status = YYSYNTAX_ERROR;
4722                 yymsgp = yymsg;
4723               }
4724           }
4725         yyerror (pParser, yymsgp);
4726         if (yysyntax_error_status == 2)
4727           goto yyexhaustedlab;
4728       }
4729 # undef YYSYNTAX_ERROR
4730 #endif
4731     }
4732 
4733 
4734 
4735   if (yyerrstatus == 3)
4736     {
4737       /* If just tried and failed to reuse lookahead token after an
4738          error, discard it.  */
4739 
4740       if (yychar <= YYEOF)
4741         {
4742           /* Return failure if at end of input.  */
4743           if (yychar == YYEOF)
4744             YYABORT;
4745         }
4746       else
4747         {
4748           yydestruct ("Error: discarding",
4749                       yytoken, &yylval, pParser);
4750           yychar = YYEMPTY;
4751         }
4752     }
4753 
4754   /* Else will try to reuse lookahead token after shifting the error
4755      token.  */
4756   goto yyerrlab1;
4757 
4758 
4759 /*---------------------------------------------------.
4760 | yyerrorlab -- error raised explicitly by YYERROR.  |
4761 `---------------------------------------------------*/
4762 yyerrorlab:
4763 
4764   /* Pacify compilers like GCC when the user code never invokes
4765      YYERROR and the label yyerrorlab therefore never appears in user
4766      code.  */
4767   if (/*CONSTCOND*/ 0)
4768      goto yyerrorlab;
4769 
4770   /* Do not reclaim the symbols of the rule whose action triggered
4771      this YYERROR.  */
4772   YYPOPSTACK (yylen);
4773   yylen = 0;
4774   YY_STACK_PRINT (yyss, yyssp);
4775   yystate = *yyssp;
4776   goto yyerrlab1;
4777 
4778 
4779 /*-------------------------------------------------------------.
4780 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
4781 `-------------------------------------------------------------*/
4782 yyerrlab1:
4783   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
4784 
4785   for (;;)
4786     {
4787       yyn = yypact[yystate];
4788       if (!yypact_value_is_default (yyn))
4789         {
4790           yyn += YYTERROR;
4791           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4792             {
4793               yyn = yytable[yyn];
4794               if (0 < yyn)
4795                 break;
4796             }
4797         }
4798 
4799       /* Pop the current state because it cannot handle the error token.  */
4800       if (yyssp == yyss)
4801         YYABORT;
4802 
4803 
4804       yydestruct ("Error: popping",
4805                   yystos[yystate], yyvsp, pParser);
4806       YYPOPSTACK (1);
4807       yystate = *yyssp;
4808       YY_STACK_PRINT (yyss, yyssp);
4809     }
4810 
4811   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4812   *++yyvsp = yylval;
4813   YY_IGNORE_MAYBE_UNINITIALIZED_END
4814 
4815 
4816   /* Shift the error token.  */
4817   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4818 
4819   yystate = yyn;
4820   goto yynewstate;
4821 
4822 
4823 /*-------------------------------------.
4824 | yyacceptlab -- YYACCEPT comes here.  |
4825 `-------------------------------------*/
4826 yyacceptlab:
4827   yyresult = 0;
4828   goto yyreturn;
4829 
4830 /*-----------------------------------.
4831 | yyabortlab -- YYABORT comes here.  |
4832 `-----------------------------------*/
4833 yyabortlab:
4834   yyresult = 1;
4835   goto yyreturn;
4836 
4837 #if !defined yyoverflow || YYERROR_VERBOSE
4838 /*-------------------------------------------------.
4839 | yyexhaustedlab -- memory exhaustion comes here.  |
4840 `-------------------------------------------------*/
4841 yyexhaustedlab:
4842   yyerror (pParser, YY_("memory exhausted"));
4843   yyresult = 2;
4844   /* Fall through.  */
4845 #endif
4846 
4847 yyreturn:
4848   if (yychar != YYEMPTY)
4849     {
4850       /* Make sure we have latest lookahead translation.  See comments at
4851          user semantic actions for why this is necessary.  */
4852       yytoken = YYTRANSLATE (yychar);
4853       yydestruct ("Cleanup: discarding lookahead",
4854                   yytoken, &yylval, pParser);
4855     }
4856   /* Do not reclaim the symbols of the rule whose action triggered
4857      this YYABORT or YYACCEPT.  */
4858   YYPOPSTACK (yylen);
4859   YY_STACK_PRINT (yyss, yyssp);
4860   while (yyssp != yyss)
4861     {
4862       yydestruct ("Cleanup: popping",
4863                   yystos[*yyssp], yyvsp, pParser);
4864       YYPOPSTACK (1);
4865     }
4866 #ifndef yyoverflow
4867   if (yyss != yyssa)
4868     YYSTACK_FREE (yyss);
4869 #endif
4870 #if YYERROR_VERBOSE
4871   if (yymsg != yymsgbuf)
4872     YYSTACK_FREE (yymsg);
4873 #endif
4874   return yyresult;
4875 }
4876 
4877 
4878 
4879 #if USE_WINDOWS
4880 #pragma warning(pop)
4881 #endif
4882