1 /* A Bison parser, made by GNU Bison 3.8.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36 
37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38    especially those whose name start with YY_ or yy_.  They are
39    private implementation details that can be changed or removed.  */
40 
41 /* All symbols defined below should begin with yy or YY, to avoid
42    infringing on user name space.  This should be done even for local
43    variables, as they might otherwise be expanded by user macros.
44    There are some unavoidable exceptions within include files to
45    define necessary library symbols; they are noted "INFRINGES ON
46    USER NAME SPACE" below.  */
47 
48 /* Identify Bison output, and Bison version.  */
49 #define YYBISON 30802
50 
51 /* Bison version string.  */
52 #define YYBISON_VERSION "3.8.2"
53 
54 /* Skeleton name.  */
55 #define YYSKELETON_NAME "yacc.c"
56 
57 /* Pure parsers.  */
58 #define YYPURE 1
59 
60 /* Push parsers.  */
61 #define YYPUSH 0
62 
63 /* Pull parsers.  */
64 #define YYPULL 1
65 
66 /* "%code top" blocks.  */
67 #line 24 "modules/tagsparser/tags-parser-grammar.y"
68 
69 #include "tags-parser-parser.h"
70 
71 
72 #line 73 "modules/tagsparser/tags-parser-grammar.c"
73 /* Substitute the type names.  */
74 #define YYSTYPE         TAGS_PARSER_STYPE
75 #define YYLTYPE         TAGS_PARSER_LTYPE
76 /* Substitute the variable and function names.  */
77 #define yyparse         tags_parser_parse
78 #define yylex           tags_parser_lex
79 #define yyerror         tags_parser_error
80 #define yydebug         tags_parser_debug
81 #define yynerrs         tags_parser_nerrs
82 
83 
84 # ifndef YY_CAST
85 #  ifdef __cplusplus
86 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
87 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
88 #  else
89 #   define YY_CAST(Type, Val) ((Type) (Val))
90 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
91 #  endif
92 # endif
93 # ifndef YY_NULLPTR
94 #  if defined __cplusplus
95 #   if 201103L <= __cplusplus
96 #    define YY_NULLPTR nullptr
97 #   else
98 #    define YY_NULLPTR 0
99 #   endif
100 #  else
101 #   define YY_NULLPTR ((void*)0)
102 #  endif
103 # endif
104 
105 /* Use api.header.include to #include this header
106    instead of duplicating it here.  */
107 #ifndef YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED
108 # define YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED
109 /* Debug traces.  */
110 #ifndef TAGS_PARSER_DEBUG
111 # if defined YYDEBUG
112 #if YYDEBUG
113 #   define TAGS_PARSER_DEBUG 1
114 #  else
115 #   define TAGS_PARSER_DEBUG 0
116 #  endif
117 # else /* ! defined YYDEBUG */
118 #  define TAGS_PARSER_DEBUG 0
119 # endif /* ! defined YYDEBUG */
120 #endif  /* ! defined TAGS_PARSER_DEBUG */
121 #if TAGS_PARSER_DEBUG
122 extern int tags_parser_debug;
123 #endif
124 
125 /* Token kinds.  */
126 #ifndef TAGS_PARSER_TOKENTYPE
127 # define TAGS_PARSER_TOKENTYPE
128   enum tags_parser_tokentype
129   {
130     TAGS_PARSER_EMPTY = -2,
131     TAGS_PARSER_EOF = 0,           /* "end of file"  */
132     TAGS_PARSER_error = 256,       /* error  */
133     TAGS_PARSER_UNDEF = 10514,     /* "invalid token"  */
134     LL_CONTEXT_ROOT = 1,           /* LL_CONTEXT_ROOT  */
135     LL_CONTEXT_DESTINATION = 2,    /* LL_CONTEXT_DESTINATION  */
136     LL_CONTEXT_SOURCE = 3,         /* LL_CONTEXT_SOURCE  */
137     LL_CONTEXT_PARSER = 4,         /* LL_CONTEXT_PARSER  */
138     LL_CONTEXT_REWRITE = 5,        /* LL_CONTEXT_REWRITE  */
139     LL_CONTEXT_FILTER = 6,         /* LL_CONTEXT_FILTER  */
140     LL_CONTEXT_LOG = 7,            /* LL_CONTEXT_LOG  */
141     LL_CONTEXT_BLOCK_DEF = 8,      /* LL_CONTEXT_BLOCK_DEF  */
142     LL_CONTEXT_BLOCK_REF = 9,      /* LL_CONTEXT_BLOCK_REF  */
143     LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT  */
144     LL_CONTEXT_BLOCK_ARG = 11,     /* LL_CONTEXT_BLOCK_ARG  */
145     LL_CONTEXT_PRAGMA = 12,        /* LL_CONTEXT_PRAGMA  */
146     LL_CONTEXT_FORMAT = 13,        /* LL_CONTEXT_FORMAT  */
147     LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC  */
148     LL_CONTEXT_INNER_DEST = 15,    /* LL_CONTEXT_INNER_DEST  */
149     LL_CONTEXT_INNER_SRC = 16,     /* LL_CONTEXT_INNER_SRC  */
150     LL_CONTEXT_CLIENT_PROTO = 17,  /* LL_CONTEXT_CLIENT_PROTO  */
151     LL_CONTEXT_SERVER_PROTO = 18,  /* LL_CONTEXT_SERVER_PROTO  */
152     LL_CONTEXT_OPTIONS = 19,       /* LL_CONTEXT_OPTIONS  */
153     LL_CONTEXT_CONFIG = 20,        /* LL_CONTEXT_CONFIG  */
154     LL_CONTEXT_MAX = 21,           /* LL_CONTEXT_MAX  */
155     KW_SOURCE = 10000,             /* KW_SOURCE  */
156     KW_FILTER = 10001,             /* KW_FILTER  */
157     KW_PARSER = 10002,             /* KW_PARSER  */
158     KW_DESTINATION = 10003,        /* KW_DESTINATION  */
159     KW_LOG = 10004,                /* KW_LOG  */
160     KW_OPTIONS = 10005,            /* KW_OPTIONS  */
161     KW_INCLUDE = 10006,            /* KW_INCLUDE  */
162     KW_BLOCK = 10007,              /* KW_BLOCK  */
163     KW_JUNCTION = 10008,           /* KW_JUNCTION  */
164     KW_CHANNEL = 10009,            /* KW_CHANNEL  */
165     KW_IF = 10010,                 /* KW_IF  */
166     KW_ELSE = 10011,               /* KW_ELSE  */
167     KW_ELIF = 10012,               /* KW_ELIF  */
168     KW_INTERNAL = 10020,           /* KW_INTERNAL  */
169     KW_SYSLOG = 10060,             /* KW_SYSLOG  */
170     KW_MARK_FREQ = 10071,          /* KW_MARK_FREQ  */
171     KW_STATS_FREQ = 10072,         /* KW_STATS_FREQ  */
172     KW_STATS_LEVEL = 10073,        /* KW_STATS_LEVEL  */
173     KW_STATS_LIFETIME = 10074,     /* KW_STATS_LIFETIME  */
174     KW_FLUSH_LINES = 10075,        /* KW_FLUSH_LINES  */
175     KW_SUPPRESS = 10076,           /* KW_SUPPRESS  */
176     KW_FLUSH_TIMEOUT = 10077,      /* KW_FLUSH_TIMEOUT  */
177     KW_LOG_MSG_SIZE = 10078,       /* KW_LOG_MSG_SIZE  */
178     KW_FILE_TEMPLATE = 10079,      /* KW_FILE_TEMPLATE  */
179     KW_PROTO_TEMPLATE = 10080,     /* KW_PROTO_TEMPLATE  */
180     KW_MARK_MODE = 10081,          /* KW_MARK_MODE  */
181     KW_ENCODING = 10082,           /* KW_ENCODING  */
182     KW_TYPE = 10083,               /* KW_TYPE  */
183     KW_STATS_MAX_DYNAMIC = 10084,  /* KW_STATS_MAX_DYNAMIC  */
184     KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER  */
185     KW_WORKERS = 10086,            /* KW_WORKERS  */
186     KW_BATCH_LINES = 10087,        /* KW_BATCH_LINES  */
187     KW_BATCH_TIMEOUT = 10088,      /* KW_BATCH_TIMEOUT  */
188     KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES  */
189     KW_CHAIN_HOSTNAMES = 10090,    /* KW_CHAIN_HOSTNAMES  */
190     KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES  */
191     KW_KEEP_HOSTNAME = 10092,      /* KW_KEEP_HOSTNAME  */
192     KW_CHECK_HOSTNAME = 10093,     /* KW_CHECK_HOSTNAME  */
193     KW_BAD_HOSTNAME = 10094,       /* KW_BAD_HOSTNAME  */
194     KW_KEEP_TIMESTAMP = 10100,     /* KW_KEEP_TIMESTAMP  */
195     KW_USE_DNS = 10110,            /* KW_USE_DNS  */
196     KW_USE_FQDN = 10111,           /* KW_USE_FQDN  */
197     KW_CUSTOM_DOMAIN = 10112,      /* KW_CUSTOM_DOMAIN  */
198     KW_DNS_CACHE = 10120,          /* KW_DNS_CACHE  */
199     KW_DNS_CACHE_SIZE = 10121,     /* KW_DNS_CACHE_SIZE  */
200     KW_DNS_CACHE_EXPIRE = 10130,   /* KW_DNS_CACHE_EXPIRE  */
201     KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED  */
202     KW_DNS_CACHE_HOSTS = 10132,    /* KW_DNS_CACHE_HOSTS  */
203     KW_PERSIST_ONLY = 10140,       /* KW_PERSIST_ONLY  */
204     KW_USE_RCPTID = 10141,         /* KW_USE_RCPTID  */
205     KW_USE_UNIQID = 10142,         /* KW_USE_UNIQID  */
206     KW_TZ_CONVERT = 10150,         /* KW_TZ_CONVERT  */
207     KW_TS_FORMAT = 10151,          /* KW_TS_FORMAT  */
208     KW_FRAC_DIGITS = 10152,        /* KW_FRAC_DIGITS  */
209     KW_LOG_FIFO_SIZE = 10160,      /* KW_LOG_FIFO_SIZE  */
210     KW_LOG_FETCH_LIMIT = 10162,    /* KW_LOG_FETCH_LIMIT  */
211     KW_LOG_IW_SIZE = 10163,        /* KW_LOG_IW_SIZE  */
212     KW_LOG_PREFIX = 10164,         /* KW_LOG_PREFIX  */
213     KW_PROGRAM_OVERRIDE = 10165,   /* KW_PROGRAM_OVERRIDE  */
214     KW_HOST_OVERRIDE = 10166,      /* KW_HOST_OVERRIDE  */
215     KW_THROTTLE = 10170,           /* KW_THROTTLE  */
216     KW_THREADED = 10171,           /* KW_THREADED  */
217     KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS  */
218     KW_PERSIST_NAME = 10302,       /* KW_PERSIST_NAME  */
219     KW_READ_OLD_RECORDS = 10304,   /* KW_READ_OLD_RECORDS  */
220     KW_USE_SYSLOGNG_PID = 10305,   /* KW_USE_SYSLOGNG_PID  */
221     KW_FLAGS = 10190,              /* KW_FLAGS  */
222     KW_PAD_SIZE = 10200,           /* KW_PAD_SIZE  */
223     KW_TIME_ZONE = 10201,          /* KW_TIME_ZONE  */
224     KW_RECV_TIME_ZONE = 10202,     /* KW_RECV_TIME_ZONE  */
225     KW_SEND_TIME_ZONE = 10203,     /* KW_SEND_TIME_ZONE  */
226     KW_LOCAL_TIME_ZONE = 10204,    /* KW_LOCAL_TIME_ZONE  */
227     KW_FORMAT = 10205,             /* KW_FORMAT  */
228     KW_TRUNCATE_SIZE = 10206,      /* KW_TRUNCATE_SIZE  */
229     KW_TIME_REOPEN = 10210,        /* KW_TIME_REOPEN  */
230     KW_TIME_REAP = 10211,          /* KW_TIME_REAP  */
231     KW_TIME_SLEEP = 10212,         /* KW_TIME_SLEEP  */
232     KW_TMPL_ESCAPE = 10220,        /* KW_TMPL_ESCAPE  */
233     KW_OPTIONAL = 10230,           /* KW_OPTIONAL  */
234     KW_CREATE_DIRS = 10240,        /* KW_CREATE_DIRS  */
235     KW_OWNER = 10250,              /* KW_OWNER  */
236     KW_GROUP = 10251,              /* KW_GROUP  */
237     KW_PERM = 10252,               /* KW_PERM  */
238     KW_DIR_OWNER = 10260,          /* KW_DIR_OWNER  */
239     KW_DIR_GROUP = 10261,          /* KW_DIR_GROUP  */
240     KW_DIR_PERM = 10262,           /* KW_DIR_PERM  */
241     KW_TEMPLATE = 10270,           /* KW_TEMPLATE  */
242     KW_TEMPLATE_ESCAPE = 10271,    /* KW_TEMPLATE_ESCAPE  */
243     KW_TEMPLATE_FUNCTION = 10272,  /* KW_TEMPLATE_FUNCTION  */
244     KW_DEFAULT_FACILITY = 10300,   /* KW_DEFAULT_FACILITY  */
245     KW_DEFAULT_SEVERITY = 10301,   /* KW_DEFAULT_SEVERITY  */
246     KW_PORT = 10323,               /* KW_PORT  */
247     KW_USE_TIME_RECVD = 10340,     /* KW_USE_TIME_RECVD  */
248     KW_FACILITY = 10350,           /* KW_FACILITY  */
249     KW_SEVERITY = 10351,           /* KW_SEVERITY  */
250     KW_HOST = 10352,               /* KW_HOST  */
251     KW_MATCH = 10353,              /* KW_MATCH  */
252     KW_MESSAGE = 10354,            /* KW_MESSAGE  */
253     KW_NETMASK = 10355,            /* KW_NETMASK  */
254     KW_TAGS = 10356,               /* KW_TAGS  */
255     KW_NETMASK6 = 10357,           /* KW_NETMASK6  */
256     KW_REWRITE = 10370,            /* KW_REWRITE  */
257     KW_CONDITION = 10371,          /* KW_CONDITION  */
258     KW_VALUE = 10372,              /* KW_VALUE  */
259     KW_YES = 10380,                /* KW_YES  */
260     KW_NO = 10381,                 /* KW_NO  */
261     KW_IFDEF = 10410,              /* KW_IFDEF  */
262     KW_ENDIF = 10411,              /* KW_ENDIF  */
263     LL_DOTDOT = 10420,             /* LL_DOTDOT  */
264     LL_DOTDOTDOT = 10421,          /* LL_DOTDOTDOT  */
265     LL_PRAGMA = 10422,             /* LL_PRAGMA  */
266     LL_EOL = 10423,                /* LL_EOL  */
267     LL_ERROR = 10424,              /* LL_ERROR  */
268     LL_ARROW = 10425,              /* LL_ARROW  */
269     LL_IDENTIFIER = 10430,         /* LL_IDENTIFIER  */
270     LL_NUMBER = 10431,             /* LL_NUMBER  */
271     LL_FLOAT = 10432,              /* LL_FLOAT  */
272     LL_STRING = 10433,             /* LL_STRING  */
273     LL_TOKEN = 10434,              /* LL_TOKEN  */
274     LL_BLOCK = 10435,              /* LL_BLOCK  */
275     KW_VALUE_PAIRS = 10500,        /* KW_VALUE_PAIRS  */
276     KW_EXCLUDE = 10502,            /* KW_EXCLUDE  */
277     KW_PAIR = 10503,               /* KW_PAIR  */
278     KW_KEY = 10504,                /* KW_KEY  */
279     KW_SCOPE = 10505,              /* KW_SCOPE  */
280     KW_SHIFT = 10506,              /* KW_SHIFT  */
281     KW_SHIFT_LEVELS = 10507,       /* KW_SHIFT_LEVELS  */
282     KW_REKEY = 10508,              /* KW_REKEY  */
283     KW_ADD_PREFIX = 10509,         /* KW_ADD_PREFIX  */
284     KW_REPLACE_PREFIX = 10510,     /* KW_REPLACE_PREFIX  */
285     KW_ON_ERROR = 10511,           /* KW_ON_ERROR  */
286     KW_RETRIES = 10512,            /* KW_RETRIES  */
287     KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY  */
288     KW_TAGS_PARSER = 10515         /* KW_TAGS_PARSER  */
289   };
290   typedef enum tags_parser_tokentype tags_parser_token_kind_t;
291 #endif
292 /* Token kinds.  */
293 #define TAGS_PARSER_EMPTY -2
294 #define TAGS_PARSER_EOF 0
295 #define TAGS_PARSER_error 256
296 #define TAGS_PARSER_UNDEF 10514
297 #define LL_CONTEXT_ROOT 1
298 #define LL_CONTEXT_DESTINATION 2
299 #define LL_CONTEXT_SOURCE 3
300 #define LL_CONTEXT_PARSER 4
301 #define LL_CONTEXT_REWRITE 5
302 #define LL_CONTEXT_FILTER 6
303 #define LL_CONTEXT_LOG 7
304 #define LL_CONTEXT_BLOCK_DEF 8
305 #define LL_CONTEXT_BLOCK_REF 9
306 #define LL_CONTEXT_BLOCK_CONTENT 10
307 #define LL_CONTEXT_BLOCK_ARG 11
308 #define LL_CONTEXT_PRAGMA 12
309 #define LL_CONTEXT_FORMAT 13
310 #define LL_CONTEXT_TEMPLATE_FUNC 14
311 #define LL_CONTEXT_INNER_DEST 15
312 #define LL_CONTEXT_INNER_SRC 16
313 #define LL_CONTEXT_CLIENT_PROTO 17
314 #define LL_CONTEXT_SERVER_PROTO 18
315 #define LL_CONTEXT_OPTIONS 19
316 #define LL_CONTEXT_CONFIG 20
317 #define LL_CONTEXT_MAX 21
318 #define KW_SOURCE 10000
319 #define KW_FILTER 10001
320 #define KW_PARSER 10002
321 #define KW_DESTINATION 10003
322 #define KW_LOG 10004
323 #define KW_OPTIONS 10005
324 #define KW_INCLUDE 10006
325 #define KW_BLOCK 10007
326 #define KW_JUNCTION 10008
327 #define KW_CHANNEL 10009
328 #define KW_IF 10010
329 #define KW_ELSE 10011
330 #define KW_ELIF 10012
331 #define KW_INTERNAL 10020
332 #define KW_SYSLOG 10060
333 #define KW_MARK_FREQ 10071
334 #define KW_STATS_FREQ 10072
335 #define KW_STATS_LEVEL 10073
336 #define KW_STATS_LIFETIME 10074
337 #define KW_FLUSH_LINES 10075
338 #define KW_SUPPRESS 10076
339 #define KW_FLUSH_TIMEOUT 10077
340 #define KW_LOG_MSG_SIZE 10078
341 #define KW_FILE_TEMPLATE 10079
342 #define KW_PROTO_TEMPLATE 10080
343 #define KW_MARK_MODE 10081
344 #define KW_ENCODING 10082
345 #define KW_TYPE 10083
346 #define KW_STATS_MAX_DYNAMIC 10084
347 #define KW_MIN_IW_SIZE_PER_READER 10085
348 #define KW_WORKERS 10086
349 #define KW_BATCH_LINES 10087
350 #define KW_BATCH_TIMEOUT 10088
351 #define KW_TRIM_LARGE_MESSAGES 10089
352 #define KW_CHAIN_HOSTNAMES 10090
353 #define KW_NORMALIZE_HOSTNAMES 10091
354 #define KW_KEEP_HOSTNAME 10092
355 #define KW_CHECK_HOSTNAME 10093
356 #define KW_BAD_HOSTNAME 10094
357 #define KW_KEEP_TIMESTAMP 10100
358 #define KW_USE_DNS 10110
359 #define KW_USE_FQDN 10111
360 #define KW_CUSTOM_DOMAIN 10112
361 #define KW_DNS_CACHE 10120
362 #define KW_DNS_CACHE_SIZE 10121
363 #define KW_DNS_CACHE_EXPIRE 10130
364 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
365 #define KW_DNS_CACHE_HOSTS 10132
366 #define KW_PERSIST_ONLY 10140
367 #define KW_USE_RCPTID 10141
368 #define KW_USE_UNIQID 10142
369 #define KW_TZ_CONVERT 10150
370 #define KW_TS_FORMAT 10151
371 #define KW_FRAC_DIGITS 10152
372 #define KW_LOG_FIFO_SIZE 10160
373 #define KW_LOG_FETCH_LIMIT 10162
374 #define KW_LOG_IW_SIZE 10163
375 #define KW_LOG_PREFIX 10164
376 #define KW_PROGRAM_OVERRIDE 10165
377 #define KW_HOST_OVERRIDE 10166
378 #define KW_THROTTLE 10170
379 #define KW_THREADED 10171
380 #define KW_PASS_UNIX_CREDENTIALS 10231
381 #define KW_PERSIST_NAME 10302
382 #define KW_READ_OLD_RECORDS 10304
383 #define KW_USE_SYSLOGNG_PID 10305
384 #define KW_FLAGS 10190
385 #define KW_PAD_SIZE 10200
386 #define KW_TIME_ZONE 10201
387 #define KW_RECV_TIME_ZONE 10202
388 #define KW_SEND_TIME_ZONE 10203
389 #define KW_LOCAL_TIME_ZONE 10204
390 #define KW_FORMAT 10205
391 #define KW_TRUNCATE_SIZE 10206
392 #define KW_TIME_REOPEN 10210
393 #define KW_TIME_REAP 10211
394 #define KW_TIME_SLEEP 10212
395 #define KW_TMPL_ESCAPE 10220
396 #define KW_OPTIONAL 10230
397 #define KW_CREATE_DIRS 10240
398 #define KW_OWNER 10250
399 #define KW_GROUP 10251
400 #define KW_PERM 10252
401 #define KW_DIR_OWNER 10260
402 #define KW_DIR_GROUP 10261
403 #define KW_DIR_PERM 10262
404 #define KW_TEMPLATE 10270
405 #define KW_TEMPLATE_ESCAPE 10271
406 #define KW_TEMPLATE_FUNCTION 10272
407 #define KW_DEFAULT_FACILITY 10300
408 #define KW_DEFAULT_SEVERITY 10301
409 #define KW_PORT 10323
410 #define KW_USE_TIME_RECVD 10340
411 #define KW_FACILITY 10350
412 #define KW_SEVERITY 10351
413 #define KW_HOST 10352
414 #define KW_MATCH 10353
415 #define KW_MESSAGE 10354
416 #define KW_NETMASK 10355
417 #define KW_TAGS 10356
418 #define KW_NETMASK6 10357
419 #define KW_REWRITE 10370
420 #define KW_CONDITION 10371
421 #define KW_VALUE 10372
422 #define KW_YES 10380
423 #define KW_NO 10381
424 #define KW_IFDEF 10410
425 #define KW_ENDIF 10411
426 #define LL_DOTDOT 10420
427 #define LL_DOTDOTDOT 10421
428 #define LL_PRAGMA 10422
429 #define LL_EOL 10423
430 #define LL_ERROR 10424
431 #define LL_ARROW 10425
432 #define LL_IDENTIFIER 10430
433 #define LL_NUMBER 10431
434 #define LL_FLOAT 10432
435 #define LL_STRING 10433
436 #define LL_TOKEN 10434
437 #define LL_BLOCK 10435
438 #define KW_VALUE_PAIRS 10500
439 #define KW_EXCLUDE 10502
440 #define KW_PAIR 10503
441 #define KW_KEY 10504
442 #define KW_SCOPE 10505
443 #define KW_SHIFT 10506
444 #define KW_SHIFT_LEVELS 10507
445 #define KW_REKEY 10508
446 #define KW_ADD_PREFIX 10509
447 #define KW_REPLACE_PREFIX 10510
448 #define KW_ON_ERROR 10511
449 #define KW_RETRIES 10512
450 #define KW_FETCH_NO_DATA_DELAY 10513
451 #define KW_TAGS_PARSER 10515
452 
453 /* Value type.  */
454 #if ! defined TAGS_PARSER_STYPE && ! defined TAGS_PARSER_STYPE_IS_DECLARED
455 typedef CFG_STYPE TAGS_PARSER_STYPE;
456 # define TAGS_PARSER_STYPE_IS_TRIVIAL 1
457 # define TAGS_PARSER_STYPE_IS_DECLARED 1
458 #endif
459 
460 /* Location type.  */
461 typedef CFG_LTYPE TAGS_PARSER_LTYPE;
462 
463 
464 
465 
466 int tags_parser_parse (CfgLexer *lexer, LogParser **instance, gpointer arg);
467 
468 
469 #endif /* !YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED  */
470 /* Symbol kind.  */
471 enum yysymbol_kind_t
472 {
473   YYSYMBOL_YYEMPTY = -2,
474   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
475   YYSYMBOL_YYerror = 1,                    /* error  */
476   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
477   YYSYMBOL_LL_CONTEXT_ROOT = 3,            /* LL_CONTEXT_ROOT  */
478   YYSYMBOL_LL_CONTEXT_DESTINATION = 4,     /* LL_CONTEXT_DESTINATION  */
479   YYSYMBOL_LL_CONTEXT_SOURCE = 5,          /* LL_CONTEXT_SOURCE  */
480   YYSYMBOL_LL_CONTEXT_PARSER = 6,          /* LL_CONTEXT_PARSER  */
481   YYSYMBOL_LL_CONTEXT_REWRITE = 7,         /* LL_CONTEXT_REWRITE  */
482   YYSYMBOL_LL_CONTEXT_FILTER = 8,          /* LL_CONTEXT_FILTER  */
483   YYSYMBOL_LL_CONTEXT_LOG = 9,             /* LL_CONTEXT_LOG  */
484   YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10,      /* LL_CONTEXT_BLOCK_DEF  */
485   YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11,      /* LL_CONTEXT_BLOCK_REF  */
486   YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12,  /* LL_CONTEXT_BLOCK_CONTENT  */
487   YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13,      /* LL_CONTEXT_BLOCK_ARG  */
488   YYSYMBOL_LL_CONTEXT_PRAGMA = 14,         /* LL_CONTEXT_PRAGMA  */
489   YYSYMBOL_LL_CONTEXT_FORMAT = 15,         /* LL_CONTEXT_FORMAT  */
490   YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16,  /* LL_CONTEXT_TEMPLATE_FUNC  */
491   YYSYMBOL_LL_CONTEXT_INNER_DEST = 17,     /* LL_CONTEXT_INNER_DEST  */
492   YYSYMBOL_LL_CONTEXT_INNER_SRC = 18,      /* LL_CONTEXT_INNER_SRC  */
493   YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19,   /* LL_CONTEXT_CLIENT_PROTO  */
494   YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20,   /* LL_CONTEXT_SERVER_PROTO  */
495   YYSYMBOL_LL_CONTEXT_OPTIONS = 21,        /* LL_CONTEXT_OPTIONS  */
496   YYSYMBOL_LL_CONTEXT_CONFIG = 22,         /* LL_CONTEXT_CONFIG  */
497   YYSYMBOL_LL_CONTEXT_MAX = 23,            /* LL_CONTEXT_MAX  */
498   YYSYMBOL_KW_SOURCE = 24,                 /* KW_SOURCE  */
499   YYSYMBOL_KW_FILTER = 25,                 /* KW_FILTER  */
500   YYSYMBOL_KW_PARSER = 26,                 /* KW_PARSER  */
501   YYSYMBOL_KW_DESTINATION = 27,            /* KW_DESTINATION  */
502   YYSYMBOL_KW_LOG = 28,                    /* KW_LOG  */
503   YYSYMBOL_KW_OPTIONS = 29,                /* KW_OPTIONS  */
504   YYSYMBOL_KW_INCLUDE = 30,                /* KW_INCLUDE  */
505   YYSYMBOL_KW_BLOCK = 31,                  /* KW_BLOCK  */
506   YYSYMBOL_KW_JUNCTION = 32,               /* KW_JUNCTION  */
507   YYSYMBOL_KW_CHANNEL = 33,                /* KW_CHANNEL  */
508   YYSYMBOL_KW_IF = 34,                     /* KW_IF  */
509   YYSYMBOL_KW_ELSE = 35,                   /* KW_ELSE  */
510   YYSYMBOL_KW_ELIF = 36,                   /* KW_ELIF  */
511   YYSYMBOL_KW_INTERNAL = 37,               /* KW_INTERNAL  */
512   YYSYMBOL_KW_SYSLOG = 38,                 /* KW_SYSLOG  */
513   YYSYMBOL_KW_MARK_FREQ = 39,              /* KW_MARK_FREQ  */
514   YYSYMBOL_KW_STATS_FREQ = 40,             /* KW_STATS_FREQ  */
515   YYSYMBOL_KW_STATS_LEVEL = 41,            /* KW_STATS_LEVEL  */
516   YYSYMBOL_KW_STATS_LIFETIME = 42,         /* KW_STATS_LIFETIME  */
517   YYSYMBOL_KW_FLUSH_LINES = 43,            /* KW_FLUSH_LINES  */
518   YYSYMBOL_KW_SUPPRESS = 44,               /* KW_SUPPRESS  */
519   YYSYMBOL_KW_FLUSH_TIMEOUT = 45,          /* KW_FLUSH_TIMEOUT  */
520   YYSYMBOL_KW_LOG_MSG_SIZE = 46,           /* KW_LOG_MSG_SIZE  */
521   YYSYMBOL_KW_FILE_TEMPLATE = 47,          /* KW_FILE_TEMPLATE  */
522   YYSYMBOL_KW_PROTO_TEMPLATE = 48,         /* KW_PROTO_TEMPLATE  */
523   YYSYMBOL_KW_MARK_MODE = 49,              /* KW_MARK_MODE  */
524   YYSYMBOL_KW_ENCODING = 50,               /* KW_ENCODING  */
525   YYSYMBOL_KW_TYPE = 51,                   /* KW_TYPE  */
526   YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52,      /* KW_STATS_MAX_DYNAMIC  */
527   YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER  */
528   YYSYMBOL_KW_WORKERS = 54,                /* KW_WORKERS  */
529   YYSYMBOL_KW_BATCH_LINES = 55,            /* KW_BATCH_LINES  */
530   YYSYMBOL_KW_BATCH_TIMEOUT = 56,          /* KW_BATCH_TIMEOUT  */
531   YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57,    /* KW_TRIM_LARGE_MESSAGES  */
532   YYSYMBOL_KW_CHAIN_HOSTNAMES = 58,        /* KW_CHAIN_HOSTNAMES  */
533   YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59,    /* KW_NORMALIZE_HOSTNAMES  */
534   YYSYMBOL_KW_KEEP_HOSTNAME = 60,          /* KW_KEEP_HOSTNAME  */
535   YYSYMBOL_KW_CHECK_HOSTNAME = 61,         /* KW_CHECK_HOSTNAME  */
536   YYSYMBOL_KW_BAD_HOSTNAME = 62,           /* KW_BAD_HOSTNAME  */
537   YYSYMBOL_KW_KEEP_TIMESTAMP = 63,         /* KW_KEEP_TIMESTAMP  */
538   YYSYMBOL_KW_USE_DNS = 64,                /* KW_USE_DNS  */
539   YYSYMBOL_KW_USE_FQDN = 65,               /* KW_USE_FQDN  */
540   YYSYMBOL_KW_CUSTOM_DOMAIN = 66,          /* KW_CUSTOM_DOMAIN  */
541   YYSYMBOL_KW_DNS_CACHE = 67,              /* KW_DNS_CACHE  */
542   YYSYMBOL_KW_DNS_CACHE_SIZE = 68,         /* KW_DNS_CACHE_SIZE  */
543   YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69,       /* KW_DNS_CACHE_EXPIRE  */
544   YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED  */
545   YYSYMBOL_KW_DNS_CACHE_HOSTS = 71,        /* KW_DNS_CACHE_HOSTS  */
546   YYSYMBOL_KW_PERSIST_ONLY = 72,           /* KW_PERSIST_ONLY  */
547   YYSYMBOL_KW_USE_RCPTID = 73,             /* KW_USE_RCPTID  */
548   YYSYMBOL_KW_USE_UNIQID = 74,             /* KW_USE_UNIQID  */
549   YYSYMBOL_KW_TZ_CONVERT = 75,             /* KW_TZ_CONVERT  */
550   YYSYMBOL_KW_TS_FORMAT = 76,              /* KW_TS_FORMAT  */
551   YYSYMBOL_KW_FRAC_DIGITS = 77,            /* KW_FRAC_DIGITS  */
552   YYSYMBOL_KW_LOG_FIFO_SIZE = 78,          /* KW_LOG_FIFO_SIZE  */
553   YYSYMBOL_KW_LOG_FETCH_LIMIT = 79,        /* KW_LOG_FETCH_LIMIT  */
554   YYSYMBOL_KW_LOG_IW_SIZE = 80,            /* KW_LOG_IW_SIZE  */
555   YYSYMBOL_KW_LOG_PREFIX = 81,             /* KW_LOG_PREFIX  */
556   YYSYMBOL_KW_PROGRAM_OVERRIDE = 82,       /* KW_PROGRAM_OVERRIDE  */
557   YYSYMBOL_KW_HOST_OVERRIDE = 83,          /* KW_HOST_OVERRIDE  */
558   YYSYMBOL_KW_THROTTLE = 84,               /* KW_THROTTLE  */
559   YYSYMBOL_KW_THREADED = 85,               /* KW_THREADED  */
560   YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86,  /* KW_PASS_UNIX_CREDENTIALS  */
561   YYSYMBOL_KW_PERSIST_NAME = 87,           /* KW_PERSIST_NAME  */
562   YYSYMBOL_KW_READ_OLD_RECORDS = 88,       /* KW_READ_OLD_RECORDS  */
563   YYSYMBOL_KW_USE_SYSLOGNG_PID = 89,       /* KW_USE_SYSLOGNG_PID  */
564   YYSYMBOL_KW_FLAGS = 90,                  /* KW_FLAGS  */
565   YYSYMBOL_KW_PAD_SIZE = 91,               /* KW_PAD_SIZE  */
566   YYSYMBOL_KW_TIME_ZONE = 92,              /* KW_TIME_ZONE  */
567   YYSYMBOL_KW_RECV_TIME_ZONE = 93,         /* KW_RECV_TIME_ZONE  */
568   YYSYMBOL_KW_SEND_TIME_ZONE = 94,         /* KW_SEND_TIME_ZONE  */
569   YYSYMBOL_KW_LOCAL_TIME_ZONE = 95,        /* KW_LOCAL_TIME_ZONE  */
570   YYSYMBOL_KW_FORMAT = 96,                 /* KW_FORMAT  */
571   YYSYMBOL_KW_TRUNCATE_SIZE = 97,          /* KW_TRUNCATE_SIZE  */
572   YYSYMBOL_KW_TIME_REOPEN = 98,            /* KW_TIME_REOPEN  */
573   YYSYMBOL_KW_TIME_REAP = 99,              /* KW_TIME_REAP  */
574   YYSYMBOL_KW_TIME_SLEEP = 100,            /* KW_TIME_SLEEP  */
575   YYSYMBOL_KW_TMPL_ESCAPE = 101,           /* KW_TMPL_ESCAPE  */
576   YYSYMBOL_KW_OPTIONAL = 102,              /* KW_OPTIONAL  */
577   YYSYMBOL_KW_CREATE_DIRS = 103,           /* KW_CREATE_DIRS  */
578   YYSYMBOL_KW_OWNER = 104,                 /* KW_OWNER  */
579   YYSYMBOL_KW_GROUP = 105,                 /* KW_GROUP  */
580   YYSYMBOL_KW_PERM = 106,                  /* KW_PERM  */
581   YYSYMBOL_KW_DIR_OWNER = 107,             /* KW_DIR_OWNER  */
582   YYSYMBOL_KW_DIR_GROUP = 108,             /* KW_DIR_GROUP  */
583   YYSYMBOL_KW_DIR_PERM = 109,              /* KW_DIR_PERM  */
584   YYSYMBOL_KW_TEMPLATE = 110,              /* KW_TEMPLATE  */
585   YYSYMBOL_KW_TEMPLATE_ESCAPE = 111,       /* KW_TEMPLATE_ESCAPE  */
586   YYSYMBOL_KW_TEMPLATE_FUNCTION = 112,     /* KW_TEMPLATE_FUNCTION  */
587   YYSYMBOL_KW_DEFAULT_FACILITY = 113,      /* KW_DEFAULT_FACILITY  */
588   YYSYMBOL_KW_DEFAULT_SEVERITY = 114,      /* KW_DEFAULT_SEVERITY  */
589   YYSYMBOL_KW_PORT = 115,                  /* KW_PORT  */
590   YYSYMBOL_KW_USE_TIME_RECVD = 116,        /* KW_USE_TIME_RECVD  */
591   YYSYMBOL_KW_FACILITY = 117,              /* KW_FACILITY  */
592   YYSYMBOL_KW_SEVERITY = 118,              /* KW_SEVERITY  */
593   YYSYMBOL_KW_HOST = 119,                  /* KW_HOST  */
594   YYSYMBOL_KW_MATCH = 120,                 /* KW_MATCH  */
595   YYSYMBOL_KW_MESSAGE = 121,               /* KW_MESSAGE  */
596   YYSYMBOL_KW_NETMASK = 122,               /* KW_NETMASK  */
597   YYSYMBOL_KW_TAGS = 123,                  /* KW_TAGS  */
598   YYSYMBOL_KW_NETMASK6 = 124,              /* KW_NETMASK6  */
599   YYSYMBOL_KW_REWRITE = 125,               /* KW_REWRITE  */
600   YYSYMBOL_KW_CONDITION = 126,             /* KW_CONDITION  */
601   YYSYMBOL_KW_VALUE = 127,                 /* KW_VALUE  */
602   YYSYMBOL_KW_YES = 128,                   /* KW_YES  */
603   YYSYMBOL_KW_NO = 129,                    /* KW_NO  */
604   YYSYMBOL_KW_IFDEF = 130,                 /* KW_IFDEF  */
605   YYSYMBOL_KW_ENDIF = 131,                 /* KW_ENDIF  */
606   YYSYMBOL_LL_DOTDOT = 132,                /* LL_DOTDOT  */
607   YYSYMBOL_LL_DOTDOTDOT = 133,             /* LL_DOTDOTDOT  */
608   YYSYMBOL_LL_PRAGMA = 134,                /* LL_PRAGMA  */
609   YYSYMBOL_LL_EOL = 135,                   /* LL_EOL  */
610   YYSYMBOL_LL_ERROR = 136,                 /* LL_ERROR  */
611   YYSYMBOL_LL_ARROW = 137,                 /* LL_ARROW  */
612   YYSYMBOL_LL_IDENTIFIER = 138,            /* LL_IDENTIFIER  */
613   YYSYMBOL_LL_NUMBER = 139,                /* LL_NUMBER  */
614   YYSYMBOL_LL_FLOAT = 140,                 /* LL_FLOAT  */
615   YYSYMBOL_LL_STRING = 141,                /* LL_STRING  */
616   YYSYMBOL_LL_TOKEN = 142,                 /* LL_TOKEN  */
617   YYSYMBOL_LL_BLOCK = 143,                 /* LL_BLOCK  */
618   YYSYMBOL_KW_VALUE_PAIRS = 144,           /* KW_VALUE_PAIRS  */
619   YYSYMBOL_KW_EXCLUDE = 145,               /* KW_EXCLUDE  */
620   YYSYMBOL_KW_PAIR = 146,                  /* KW_PAIR  */
621   YYSYMBOL_KW_KEY = 147,                   /* KW_KEY  */
622   YYSYMBOL_KW_SCOPE = 148,                 /* KW_SCOPE  */
623   YYSYMBOL_KW_SHIFT = 149,                 /* KW_SHIFT  */
624   YYSYMBOL_KW_SHIFT_LEVELS = 150,          /* KW_SHIFT_LEVELS  */
625   YYSYMBOL_KW_REKEY = 151,                 /* KW_REKEY  */
626   YYSYMBOL_KW_ADD_PREFIX = 152,            /* KW_ADD_PREFIX  */
627   YYSYMBOL_KW_REPLACE_PREFIX = 153,        /* KW_REPLACE_PREFIX  */
628   YYSYMBOL_KW_ON_ERROR = 154,              /* KW_ON_ERROR  */
629   YYSYMBOL_KW_RETRIES = 155,               /* KW_RETRIES  */
630   YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156,   /* KW_FETCH_NO_DATA_DELAY  */
631   YYSYMBOL_KW_TAGS_PARSER = 157,           /* KW_TAGS_PARSER  */
632   YYSYMBOL_158_ = 158,                     /* '('  */
633   YYSYMBOL_159_ = 159,                     /* ')'  */
634   YYSYMBOL_160_ = 160,                     /* '{'  */
635   YYSYMBOL_161_ = 161,                     /* '}'  */
636   YYSYMBOL_162_ = 162,                     /* ';'  */
637   YYSYMBOL_163_ = 163,                     /* ':'  */
638   YYSYMBOL_YYACCEPT = 164,                 /* $accept  */
639   YYSYMBOL_start = 165,                    /* start  */
640   YYSYMBOL_parser_expr_tags = 166,         /* parser_expr_tags  */
641   YYSYMBOL_167_1 = 167,                    /* $@1  */
642   YYSYMBOL_parser_tags_opts = 168,         /* parser_tags_opts  */
643   YYSYMBOL_parser_tags_opt = 169,          /* parser_tags_opt  */
644   YYSYMBOL_string = 170,                   /* string  */
645   YYSYMBOL_parser_opt = 171                /* parser_opt  */
646 };
647 typedef enum yysymbol_kind_t yysymbol_kind_t;
648 
649 
650 
651 /* Unqualified %code blocks.  */
652 #line 30 "modules/tagsparser/tags-parser-grammar.y"
653 
654 
655 #include "tags-parser.h"
656 #include "cfg-parser.h"
657 #include "cfg-grammar-internal.h"
658 #include "syslog-names.h"
659 #include "messages.h"
660 
661 #line 58 "modules/tagsparser/tags-parser-grammar.y"
662 
663 
664 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
665   do {                                                                  \
666     if (N)                                                              \
667       {                                                                 \
668         (Current).level = YYRHSLOC(Rhs, 1).level;                       \
669         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;          \
670         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;        \
671         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;           \
672         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;         \
673       }                                                                 \
674     else                                                                \
675       {                                                                 \
676         (Current).level = YYRHSLOC(Rhs, 0).level;                       \
677         (Current).first_line   = (Current).last_line   =                \
678           YYRHSLOC (Rhs, 0).last_line;                                  \
679         (Current).first_column = (Current).last_column =                \
680           YYRHSLOC (Rhs, 0).last_column;                                \
681       }                                                                 \
682   } while (0)
683 
684 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do {                    \
685     if (!(val))                                                         \
686       {                                                                 \
687         YYERROR;                                                        \
688       }                                                                 \
689   } while (0)
690 
691 #define CHECK_ERROR(val, token, errorfmt, ...) do {                     \
692     if (!(val))                                                         \
693       {                                                                 \
694         if (errorfmt)                                                   \
695           {                                                             \
696             gchar __buf[256];                                           \
697             g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
698             yyerror(& (token), lexer, NULL, NULL, __buf);               \
699           }                                                             \
700         YYERROR;                                                        \
701       }                                                                 \
702   } while (0)
703 
704 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do {       \
705     if (!(val))                                                         \
706       {                                                                 \
707         if (errorfmt)                                                   \
708           {                                                             \
709             gchar __buf[256];                                           \
710             g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
711             yyerror(& (token), lexer, NULL, NULL, __buf);               \
712           }                                                             \
713         g_clear_error(&error);						\
714         YYERROR;                                                        \
715       }                                                                 \
716   } while (0)
717 
718 #define YYMAXDEPTH 20000
719 
720 
721 
722 #line 723 "modules/tagsparser/tags-parser-grammar.c"
723 
724 #ifdef short
725 # undef short
726 #endif
727 
728 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
729    <limits.h> and (if available) <stdint.h> are included
730    so that the code can choose integer types of a good width.  */
731 
732 #ifndef __PTRDIFF_MAX__
733 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
734 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
735 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
736 #  define YY_STDINT_H
737 # endif
738 #endif
739 
740 /* Narrow types that promote to a signed type and that can represent a
741    signed or unsigned integer of at least N bits.  In tables they can
742    save space and decrease cache pressure.  Promoting to a signed type
743    helps avoid bugs in integer arithmetic.  */
744 
745 #ifdef __INT_LEAST8_MAX__
746 typedef __INT_LEAST8_TYPE__ yytype_int8;
747 #elif defined YY_STDINT_H
748 typedef int_least8_t yytype_int8;
749 #else
750 typedef signed char yytype_int8;
751 #endif
752 
753 #ifdef __INT_LEAST16_MAX__
754 typedef __INT_LEAST16_TYPE__ yytype_int16;
755 #elif defined YY_STDINT_H
756 typedef int_least16_t yytype_int16;
757 #else
758 typedef short yytype_int16;
759 #endif
760 
761 /* Work around bug in HP-UX 11.23, which defines these macros
762    incorrectly for preprocessor constants.  This workaround can likely
763    be removed in 2023, as HPE has promised support for HP-UX 11.23
764    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
765    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
766 #ifdef __hpux
767 # undef UINT_LEAST8_MAX
768 # undef UINT_LEAST16_MAX
769 # define UINT_LEAST8_MAX 255
770 # define UINT_LEAST16_MAX 65535
771 #endif
772 
773 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
774 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
775 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
776        && UINT_LEAST8_MAX <= INT_MAX)
777 typedef uint_least8_t yytype_uint8;
778 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
779 typedef unsigned char yytype_uint8;
780 #else
781 typedef short yytype_uint8;
782 #endif
783 
784 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
785 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
786 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
787        && UINT_LEAST16_MAX <= INT_MAX)
788 typedef uint_least16_t yytype_uint16;
789 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
790 typedef unsigned short yytype_uint16;
791 #else
792 typedef int yytype_uint16;
793 #endif
794 
795 #ifndef YYPTRDIFF_T
796 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
797 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
798 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
799 # elif defined PTRDIFF_MAX
800 #  ifndef ptrdiff_t
801 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
802 #  endif
803 #  define YYPTRDIFF_T ptrdiff_t
804 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
805 # else
806 #  define YYPTRDIFF_T long
807 #  define YYPTRDIFF_MAXIMUM LONG_MAX
808 # endif
809 #endif
810 
811 #ifndef YYSIZE_T
812 # ifdef __SIZE_TYPE__
813 #  define YYSIZE_T __SIZE_TYPE__
814 # elif defined size_t
815 #  define YYSIZE_T size_t
816 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
817 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
818 #  define YYSIZE_T size_t
819 # else
820 #  define YYSIZE_T unsigned
821 # endif
822 #endif
823 
824 #define YYSIZE_MAXIMUM                                  \
825   YY_CAST (YYPTRDIFF_T,                                 \
826            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
827             ? YYPTRDIFF_MAXIMUM                         \
828             : YY_CAST (YYSIZE_T, -1)))
829 
830 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
831 
832 
833 /* Stored state numbers (used for stacks). */
834 typedef yytype_int8 yy_state_t;
835 
836 /* State numbers in computations.  */
837 typedef int yy_state_fast_t;
838 
839 #ifndef YY_
840 # if defined YYENABLE_NLS && YYENABLE_NLS
841 #  if ENABLE_NLS
842 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
843 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
844 #  endif
845 # endif
846 # ifndef YY_
847 #  define YY_(Msgid) Msgid
848 # endif
849 #endif
850 
851 
852 #ifndef YY_ATTRIBUTE_PURE
853 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
854 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
855 # else
856 #  define YY_ATTRIBUTE_PURE
857 # endif
858 #endif
859 
860 #ifndef YY_ATTRIBUTE_UNUSED
861 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
862 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
863 # else
864 #  define YY_ATTRIBUTE_UNUSED
865 # endif
866 #endif
867 
868 /* Suppress unused-variable warnings by "using" E.  */
869 #if ! defined lint || defined __GNUC__
870 # define YY_USE(E) ((void) (E))
871 #else
872 # define YY_USE(E) /* empty */
873 #endif
874 
875 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
876 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
877 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
878 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
879     _Pragma ("GCC diagnostic push")                                     \
880     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
881 # else
882 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
883     _Pragma ("GCC diagnostic push")                                     \
884     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
885     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
886 # endif
887 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
888     _Pragma ("GCC diagnostic pop")
889 #else
890 # define YY_INITIAL_VALUE(Value) Value
891 #endif
892 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
893 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
894 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
895 #endif
896 #ifndef YY_INITIAL_VALUE
897 # define YY_INITIAL_VALUE(Value) /* Nothing. */
898 #endif
899 
900 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
901 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
902     _Pragma ("GCC diagnostic push")                            \
903     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
904 # define YY_IGNORE_USELESS_CAST_END            \
905     _Pragma ("GCC diagnostic pop")
906 #endif
907 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
908 # define YY_IGNORE_USELESS_CAST_BEGIN
909 # define YY_IGNORE_USELESS_CAST_END
910 #endif
911 
912 
913 #define YY_ASSERT(E) ((void) (0 && (E)))
914 
915 #if 1
916 
917 /* The parser invokes alloca or malloc; define the necessary symbols.  */
918 
919 # ifdef YYSTACK_USE_ALLOCA
920 #  if YYSTACK_USE_ALLOCA
921 #   ifdef __GNUC__
922 #    define YYSTACK_ALLOC __builtin_alloca
923 #   elif defined __BUILTIN_VA_ARG_INCR
924 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
925 #   elif defined _AIX
926 #    define YYSTACK_ALLOC __alloca
927 #   elif defined _MSC_VER
928 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
929 #    define alloca _alloca
930 #   else
931 #    define YYSTACK_ALLOC alloca
932 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
933 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
934       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
935 #     ifndef EXIT_SUCCESS
936 #      define EXIT_SUCCESS 0
937 #     endif
938 #    endif
939 #   endif
940 #  endif
941 # endif
942 
943 # ifdef YYSTACK_ALLOC
944    /* Pacify GCC's 'empty if-body' warning.  */
945 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
946 #  ifndef YYSTACK_ALLOC_MAXIMUM
947     /* The OS might guarantee only one guard page at the bottom of the stack,
948        and a page size can be as small as 4096 bytes.  So we cannot safely
949        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
950        to allow for a few compiler-allocated temporary stack slots.  */
951 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
952 #  endif
953 # else
954 #  define YYSTACK_ALLOC YYMALLOC
955 #  define YYSTACK_FREE YYFREE
956 #  ifndef YYSTACK_ALLOC_MAXIMUM
957 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
958 #  endif
959 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
960        && ! ((defined YYMALLOC || defined malloc) \
961              && (defined YYFREE || defined free)))
962 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
963 #   ifndef EXIT_SUCCESS
964 #    define EXIT_SUCCESS 0
965 #   endif
966 #  endif
967 #  ifndef YYMALLOC
968 #   define YYMALLOC malloc
969 #   if ! defined malloc && ! defined EXIT_SUCCESS
970 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
971 #   endif
972 #  endif
973 #  ifndef YYFREE
974 #   define YYFREE free
975 #   if ! defined free && ! defined EXIT_SUCCESS
976 void free (void *); /* INFRINGES ON USER NAME SPACE */
977 #   endif
978 #  endif
979 # endif
980 #endif /* 1 */
981 
982 #if (! defined yyoverflow \
983      && (! defined __cplusplus \
984          || (defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL \
985              && defined TAGS_PARSER_STYPE_IS_TRIVIAL && TAGS_PARSER_STYPE_IS_TRIVIAL)))
986 
987 /* A type that is properly aligned for any stack member.  */
988 union yyalloc
989 {
990   yy_state_t yyss_alloc;
991   YYSTYPE yyvs_alloc;
992   YYLTYPE yyls_alloc;
993 };
994 
995 /* The size of the maximum gap between one aligned stack and the next.  */
996 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
997 
998 /* The size of an array large to enough to hold all stacks, each with
999    N elements.  */
1000 # define YYSTACK_BYTES(N) \
1001      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1002              + YYSIZEOF (YYLTYPE)) \
1003       + 2 * YYSTACK_GAP_MAXIMUM)
1004 
1005 # define YYCOPY_NEEDED 1
1006 
1007 /* Relocate STACK from its old location to the new one.  The
1008    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1009    elements in the stack, and YYPTR gives the new location of the
1010    stack.  Advance YYPTR to a properly aligned location for the next
1011    stack.  */
1012 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1013     do                                                                  \
1014       {                                                                 \
1015         YYPTRDIFF_T yynewbytes;                                         \
1016         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1017         Stack = &yyptr->Stack_alloc;                                    \
1018         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1019         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1020       }                                                                 \
1021     while (0)
1022 
1023 #endif
1024 
1025 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1026 /* Copy COUNT objects from SRC to DST.  The source and destination do
1027    not overlap.  */
1028 # ifndef YYCOPY
1029 #  if defined __GNUC__ && 1 < __GNUC__
1030 #   define YYCOPY(Dst, Src, Count) \
1031       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1032 #  else
1033 #   define YYCOPY(Dst, Src, Count)              \
1034       do                                        \
1035         {                                       \
1036           YYPTRDIFF_T yyi;                      \
1037           for (yyi = 0; yyi < (Count); yyi++)   \
1038             (Dst)[yyi] = (Src)[yyi];            \
1039         }                                       \
1040       while (0)
1041 #  endif
1042 # endif
1043 #endif /* !YYCOPY_NEEDED */
1044 
1045 /* YYFINAL -- State number of the termination state.  */
1046 #define YYFINAL  5
1047 /* YYLAST -- Last index in YYTABLE.  */
1048 #define YYLAST   10
1049 
1050 /* YYNTOKENS -- Number of terminals.  */
1051 #define YYNTOKENS  164
1052 /* YYNNTS -- Number of nonterminals.  */
1053 #define YYNNTS  8
1054 /* YYNRULES -- Number of rules.  */
1055 #define YYNRULES  10
1056 /* YYNSTATES -- Number of states.  */
1057 #define YYNSTATES  19
1058 
1059 /* YYMAXUTOK -- Last valid token kind.  */
1060 #define YYMAXUTOK   10515
1061 
1062 
1063 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1064    as returned by yylex, with out-of-bounds checking.  */
1065 #define YYTRANSLATE(YYX)                                \
1066   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1067    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1068    : YYSYMBOL_YYUNDEF)
1069 
1070 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1071    as returned by yylex.  */
1072 static const yytype_uint8 yytranslate[] =
1073 {
1074        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1075       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1076       22,    23,     2,     2,     2,     2,     2,     2,     2,     2,
1077        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1078      158,   159,     2,     2,     2,     2,     2,     2,     2,     2,
1079        2,     2,     2,     2,     2,     2,     2,     2,   163,   162,
1080        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1081        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1082        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1083        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1084        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1085        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1086        2,     2,     2,   160,     2,   161,     2,     2,     2,     2,
1087        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1088        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1089        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1090        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1091        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1093        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1094        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1095        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1096        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1097        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1098        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1099        2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
1100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1104        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1106        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1108        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1109        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1110        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1111        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1112        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1113        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1114        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1115        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1116        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1117        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1118        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1120        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1121        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1122        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1123        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1124        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1125        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1126        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1127        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1128        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1129        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1130        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1131        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1132        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1133        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1134        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1135        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1136        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1137        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1138        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1139        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1140        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1141        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1142        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1143        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1144        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1145        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1146        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1147        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1148        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1149        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1150        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1151        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1152        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1153        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1154        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1155        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1156        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1157        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1158        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1159        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1160        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1161        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1162        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1163        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1164        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1165        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1166        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1167        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1168        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1169        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1170        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1171        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1172        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1173        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1174        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1175        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1176        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1177        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1178        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1179        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1180        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1181        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1182        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1183        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1184        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1185        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1186        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1187        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1188        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1189        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1190        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1191        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1192        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1193        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1194        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1195        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1196        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1197        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1198        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1199        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1200        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1201        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1202        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1203        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1204        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1205        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1206        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1207        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1208        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1209        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1210        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1211        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1212        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1213        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1214        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1215        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1216        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1217        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1218        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1219        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1220        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1221        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1222        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1223        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1224        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1225        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1226        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1227        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1228        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1229        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1230        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1231        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1232        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1233        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1234        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1235        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1236        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1237        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1238        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1239        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1240        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1241        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1242        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1243        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1244        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1245        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1246        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1247        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1248        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1249        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1250        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1251        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1252        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1253        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1254        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1255        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1256        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1257        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1258        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1259        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1260        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1261        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1262        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1263        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1264        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1265        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1266        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1267        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1268        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1269        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1270        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1271        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1272        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1273        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1274        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1275        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1276        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1277        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1278        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1279        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1280        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1281        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1282        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1283        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1284        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1285        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1286        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1287        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1288        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1289        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1290        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1291        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1292        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1293        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1294        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1295        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1296        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1297        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1298        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1299        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1300        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1301        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1302        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1303        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1304        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1305        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1306        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1307        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1308        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1309        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1310        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1311        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1312        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1313        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1314        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1315        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1316        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1317        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1318        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1319        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1320        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1321        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1322        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1323        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1324        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1325        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1326        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1327        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1328        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1329        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1330        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1331        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1332        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1333        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1334        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1335        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1336        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1337        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1338        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1339        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1340        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1341        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1342        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1343        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1344        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1345        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1346        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1347        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1348        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1349        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1350        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1351        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1352        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1353        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1354        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1355        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1356        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1357        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1358        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1359        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1360        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1361        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1362        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1363        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1364        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1365        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1366        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1367        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1368        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1369        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1370        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1371        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1372        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1373        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1374        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1375        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1376        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1377        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1378        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1379        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1380        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1381        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1382        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1383        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1384        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1385        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1386        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1387        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1388        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1389        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1390        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1391        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1392        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1393        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1394        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1395        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1396        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1397        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1398        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1399        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1400        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1401        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1402        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1405        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1406        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1407        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1408        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1409        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1410        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1411        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1412        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1413        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1414        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1415        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1416        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1417        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1418        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1419        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1420        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1421        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1422        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1423        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1424        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1425        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1426        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1427        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1428        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1429        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1430        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1431        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1432        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1433        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1434        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1435        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1436        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1437        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1438        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1439        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1440        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1441        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1442        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1444        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1445        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1446        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1447        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1448        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1449        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1450        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1451        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1452        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1453        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1454        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1455        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1456        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1457        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1458        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1459        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1460        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1461        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1462        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1463        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1464        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1465        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1466        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1467        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1468        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1469        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1470        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1471        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1472        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1473        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1474        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1475        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1476        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1477        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1478        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1479        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1480        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1481        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1482        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1483        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1484        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1485        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1486        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1487        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1488        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1489        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1490        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1491        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1492        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1493        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1494        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1495        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1496        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1497        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1498        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1499        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1500        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1501        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1502        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1503        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1504        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1505        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1506        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1507        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1508        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1509        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1510        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1511        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1515        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1516        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1517        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1518        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1519        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1520        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1521        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1522        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1523        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1524        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1525        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1528        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1531        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1536        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1537        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1538        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1539        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1544        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1550        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1569        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1582        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1591        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1592        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1593        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1594        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1595        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1596        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1597        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1598        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1599        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1600        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1601        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1602        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1603        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1604        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1605        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1606        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1607        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1608        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1609        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1610        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1611        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1612        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1613        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1614        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1615        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1616        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1617        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1618        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1619        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1620        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1621        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1622        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1623        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1624        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1625        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1626        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1627        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1628        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1629        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1630        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1631        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1632        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1633        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1634        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1635        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1636        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1637        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1638        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1639        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1640        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1641        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1642        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1643        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1644        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1645        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1646        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1647        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1648        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1649        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1650        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1651        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1652        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1653        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1654        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1655        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1656        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1657        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1658        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1659        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1660        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1661        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1662        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1663        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1664        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1665        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1666        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1667        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1668        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1669        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1670        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1671        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1672        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1673        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1674        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1675        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1676        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1677        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1678        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1679        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1680        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1681        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1682        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1683        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1684        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1685        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1686        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1687        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1688        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1689        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1690        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1691        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1692        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1693        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1694        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1695        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1696        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1697        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1698        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1699        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1700        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1701        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1702        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1703        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1704        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1705        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1706        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1707        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1708        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1709        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1710        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1711        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1712        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1713        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1714        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1715        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1716        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1717        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1718        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1719        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1720        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1721        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1722        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1723        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1724        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1725        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1726        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1727        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1728        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1729        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1730        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1731        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1732        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1733        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1734        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1735        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1736        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1737        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1738        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1739        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1740        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1741        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1742        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1743        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1744        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1745        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1746        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1747        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1748        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1749        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1750        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1751        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1752        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1753        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1754        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1755        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1756        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1757        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1766        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1769        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1782        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1783        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1784        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1785        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1786        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1787        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1788        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1789        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1790        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1791        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1792        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1793        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1794        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1795        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1796        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1797        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1798        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1799        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1800        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1801        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1802        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1803        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1804        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1805        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1806        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1807        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1808        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1809        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1810        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1811        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1812        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1813        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1814        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1815        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1816        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1817        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1818        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1819        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1820        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1821        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1822        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1823        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1824        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1825        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1826        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1827        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1828        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1829        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1830        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1831        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1832        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1833        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1834        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1835        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1836        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1837        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1838        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1839        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1840        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1841        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1842        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1843        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1844        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1845        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1846        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1847        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1848        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1849        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1850        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1851        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1852        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1853        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1854        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1855        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1856        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1857        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1858        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1859        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1860        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1861        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1862        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1863        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1864        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1865        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1866        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1867        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1868        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1869        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1870        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1871        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1897        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1898        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1900        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1901        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1902        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1903        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1904        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1905        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1906        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1907        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1908        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1909        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1910        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1911        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1912        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1913        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1914        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1915        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1916        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1917        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1918        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1919        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1920        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1921        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1922        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1923        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1924        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1925        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1926        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1927        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1928        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1929        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1930        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1931        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1932        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1933        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1934        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1935        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1936        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1937        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1938        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1939        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1940        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1941        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1942        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1943        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1944        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1945        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1946        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1947        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1948        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1949        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1950        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1951        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1952        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1953        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1954        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1955        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1956        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1957        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1958        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1959        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1960        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1961        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1962        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1963        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1964        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1965        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1966        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1967        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1968        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1969        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1970        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1971        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1972        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1973        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1974        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1975        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1976        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1977        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1978        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1979        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1980        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1981        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1982        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1983        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1984        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1985        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1986        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1987        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1988        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1989        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1990        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1991        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1992        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1993        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1994        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1995        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1996        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1997        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1998        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1999        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2000        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2001        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2002        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2003        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2004        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2005        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2006        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2007        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2008        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2009        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2010        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2011        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2012        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2013        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2014        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2015        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2016        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2017        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2018        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2019        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2020        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2021        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2022        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2023        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2024        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2025        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2026        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2027        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2028        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2029        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2030        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2031        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2032        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2033        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2034        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2035        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2036        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2037        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2038        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2039        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2040        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2041        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2042        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2043        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2044        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2045        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2046        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2047        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2048        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2049        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2050        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2051        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2052        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2053        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2054        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2055        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2056        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2057        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2058        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2059        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2060        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2061        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2062        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2063        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2064        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2065        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2066        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2067        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2068        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2069        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2070        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2071        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2072        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2073        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2074       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2075       34,    35,    36,     2,     2,     2,     2,     2,     2,     2,
2076       37,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2077        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2078        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2079        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2080       38,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2081        2,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2082       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2083       58,    59,    60,    61,    62,     2,     2,     2,     2,     2,
2084       63,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2085       64,    65,    66,     2,     2,     2,     2,     2,     2,     2,
2086       67,    68,     2,     2,     2,     2,     2,     2,     2,     2,
2087       69,    70,    71,     2,     2,     2,     2,     2,     2,     2,
2088       72,    73,    74,     2,     2,     2,     2,     2,     2,     2,
2089       75,    76,    77,     2,     2,     2,     2,     2,     2,     2,
2090       78,     2,    79,    80,    81,    82,    83,     2,     2,     2,
2091       84,    85,     2,     2,     2,     2,     2,     2,     2,     2,
2092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2093       90,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2094       91,    92,    93,    94,    95,    96,    97,     2,     2,     2,
2095       98,    99,   100,     2,     2,     2,     2,     2,     2,     2,
2096      101,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2097      102,    86,     2,     2,     2,     2,     2,     2,     2,     2,
2098      103,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2099      104,   105,   106,     2,     2,     2,     2,     2,     2,     2,
2100      107,   108,   109,     2,     2,     2,     2,     2,     2,     2,
2101      110,   111,   112,     2,     2,     2,     2,     2,     2,     2,
2102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2104      113,   114,    87,     2,    88,    89,     2,     2,     2,     2,
2105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2106        2,     2,     2,   115,     2,     2,     2,     2,     2,     2,
2107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2108      116,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2109      117,   118,   119,   120,   121,   122,   123,   124,     2,     2,
2110        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2111      125,   126,   127,     2,     2,     2,     2,     2,     2,     2,
2112      128,   129,     2,     2,     2,     2,     2,     2,     2,     2,
2113        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2114        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2115      130,   131,     2,     2,     2,     2,     2,     2,     2,     2,
2116      132,   133,   134,   135,   136,   137,     2,     2,     2,     2,
2117      138,   139,   140,   141,   142,   143,     2,     2,     2,     2,
2118        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2120        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2121        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2122        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2123        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2124      144,     2,   145,   146,   147,   148,   149,   150,   151,   152,
2125      153,   154,   155,   156,     2,   157
2126 };
2127 
2128 #if TAGS_PARSER_DEBUG
2129 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
2130 static const yytype_int16 yyrline[] =
2131 {
2132        0,   404,   404,   410,   409,   417,   418,   422,   689,   690,
2133      824
2134 };
2135 #endif
2136 
2137 /** Accessing symbol of state STATE.  */
2138 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2139 
2140 #if 1
2141 /* The user-facing name of the symbol whose (internal) number is
2142    YYSYMBOL.  No bounds checking.  */
2143 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2144 
2145 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2146    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
2147 static const char *const yytname[] =
2148 {
2149   "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2150   "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2151   "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2152   "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2153   "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2154   "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2155   "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2156   "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2157   "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2158   "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2159   "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2160   "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2161   "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2162   "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2163   "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2164   "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2165   "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2166   "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2167   "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2168   "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2169   "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2170   "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2171   "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2172   "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2173   "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2174   "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2175   "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2176   "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2177   "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2178   "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2179   "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2180   "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2181   "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2182   "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2183   "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2184   "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2185   "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2186   "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2187   "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2188   "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2189   "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2190   "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2191   "KW_FETCH_NO_DATA_DELAY", "KW_TAGS_PARSER", "'('", "')'", "'{'", "'}'",
2192   "';'", "':'", "$accept", "start", "parser_expr_tags", "$@1",
2193   "parser_tags_opts", "parser_tags_opt", "string", "parser_opt", YY_NULLPTR
2194 };
2195 
2196 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2197 yysymbol_name (yysymbol_kind_t yysymbol)
2198 {
2199   return yytname[yysymbol];
2200 }
2201 #endif
2202 
2203 #define YYPACT_NINF (-156)
2204 
2205 #define yypact_value_is_default(Yyn) \
2206   ((Yyn) == YYPACT_NINF)
2207 
2208 #define YYTABLE_NINF (-1)
2209 
2210 #define yytable_value_is_error(Yyn) \
2211   0
2212 
2213 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2214    STATE-NUM.  */
2215 static const yytype_int16 yypact[] =
2216 {
2217       -5,  -155,     4,  -153,  -156,  -156,  -156,  -104,  -151,  -150,
2218     -104,  -156,  -138,  -156,  -156,  -156,  -156,  -149,  -156
2219 };
2220 
2221 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2222    Performed when YYTABLE does not specify something else to do.  Zero
2223    means the default is an error.  */
2224 static const yytype_int8 yydefact[] =
2225 {
2226        0,     0,     0,     0,     2,     1,     3,     6,     0,     0,
2227        6,     7,     0,     4,     5,     8,     9,     0,    10
2228 };
2229 
2230 /* YYPGOTO[NTERM-NUM].  */
2231 static const yytype_int16 yypgoto[] =
2232 {
2233     -156,  -156,  -156,  -156,    -2,  -156,  -156,  -156
2234 };
2235 
2236 /* YYDEFGOTO[NTERM-NUM].  */
2237 static const yytype_int8 yydefgoto[] =
2238 {
2239        0,     2,     4,     7,     9,    10,    17,    11
2240 };
2241 
2242 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2243    positive, shift that token.  If negative, reduce the rule whose
2244    number is the opposite.  If YYTABLE_NINF, syntax error.  */
2245 static const yytype_int8 yytable[] =
2246 {
2247       15,     1,     3,    16,     5,     6,     8,    12,    14,    13,
2248       18
2249 };
2250 
2251 static const yytype_uint8 yycheck[] =
2252 {
2253      138,     6,   157,   141,     0,   158,   110,   158,    10,   159,
2254      159
2255 };
2256 
2257 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2258    state STATE-NUM.  */
2259 static const yytype_uint8 yystos[] =
2260 {
2261        0,     6,   165,   157,   166,     0,   158,   167,   110,   168,
2262      169,   171,   158,   159,   168,   138,   141,   170,   159
2263 };
2264 
2265 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
2266 static const yytype_uint8 yyr1[] =
2267 {
2268        0,   164,   165,   167,   166,   168,   168,   169,   170,   170,
2269      171
2270 };
2271 
2272 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
2273 static const yytype_int8 yyr2[] =
2274 {
2275        0,     2,     2,     0,     5,     2,     0,     1,     1,     1,
2276        4
2277 };
2278 
2279 
2280 enum { YYENOMEM = -2 };
2281 
2282 #define yyerrok         (yyerrstatus = 0)
2283 #define yyclearin       (yychar = TAGS_PARSER_EMPTY)
2284 
2285 #define YYACCEPT        goto yyacceptlab
2286 #define YYABORT         goto yyabortlab
2287 #define YYERROR         goto yyerrorlab
2288 #define YYNOMEM         goto yyexhaustedlab
2289 
2290 
2291 #define YYRECOVERING()  (!!yyerrstatus)
2292 
2293 #define YYBACKUP(Token, Value)                                    \
2294   do                                                              \
2295     if (yychar == TAGS_PARSER_EMPTY)                                        \
2296       {                                                           \
2297         yychar = (Token);                                         \
2298         yylval = (Value);                                         \
2299         YYPOPSTACK (yylen);                                       \
2300         yystate = *yyssp;                                         \
2301         goto yybackup;                                            \
2302       }                                                           \
2303     else                                                          \
2304       {                                                           \
2305         yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2306         YYERROR;                                                  \
2307       }                                                           \
2308   while (0)
2309 
2310 /* Backward compatibility with an undocumented macro.
2311    Use TAGS_PARSER_error or TAGS_PARSER_UNDEF. */
2312 #define YYERRCODE TAGS_PARSER_UNDEF
2313 
2314 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2315    If N is 0, then set CURRENT to the empty location which ends
2316    the previous symbol: RHS[0] (always defined).  */
2317 
2318 #ifndef YYLLOC_DEFAULT
2319 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2320     do                                                                  \
2321       if (N)                                                            \
2322         {                                                               \
2323           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2324           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2325           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2326           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2327         }                                                               \
2328       else                                                              \
2329         {                                                               \
2330           (Current).first_line   = (Current).last_line   =              \
2331             YYRHSLOC (Rhs, 0).last_line;                                \
2332           (Current).first_column = (Current).last_column =              \
2333             YYRHSLOC (Rhs, 0).last_column;                              \
2334         }                                                               \
2335     while (0)
2336 #endif
2337 
2338 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2339 
2340 
2341 /* Enable debugging if requested.  */
2342 #if TAGS_PARSER_DEBUG
2343 
2344 # ifndef YYFPRINTF
2345 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2346 #  define YYFPRINTF fprintf
2347 # endif
2348 
2349 # define YYDPRINTF(Args)                        \
2350 do {                                            \
2351   if (yydebug)                                  \
2352     YYFPRINTF Args;                             \
2353 } while (0)
2354 
2355 
2356 /* YYLOCATION_PRINT -- Print the location on the stream.
2357    This macro was not mandated originally: define only if we know
2358    we won't break user code: when these are the locations we know.  */
2359 
2360 # ifndef YYLOCATION_PRINT
2361 
2362 #  if defined YY_LOCATION_PRINT
2363 
2364    /* Temporary convenience wrapper in case some people defined the
2365       undocumented and private YY_LOCATION_PRINT macros.  */
2366 #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
2367 
2368 #  elif defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL
2369 
2370 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2371 
2372 YY_ATTRIBUTE_UNUSED
2373 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2374 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2375 {
2376   int res = 0;
2377   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2378   if (0 <= yylocp->first_line)
2379     {
2380       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2381       if (0 <= yylocp->first_column)
2382         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2383     }
2384   if (0 <= yylocp->last_line)
2385     {
2386       if (yylocp->first_line < yylocp->last_line)
2387         {
2388           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2389           if (0 <= end_col)
2390             res += YYFPRINTF (yyo, ".%d", end_col);
2391         }
2392       else if (0 <= end_col && yylocp->first_column < end_col)
2393         res += YYFPRINTF (yyo, "-%d", end_col);
2394     }
2395   return res;
2396 }
2397 
2398 #   define YYLOCATION_PRINT  yy_location_print_
2399 
2400     /* Temporary convenience wrapper in case some people defined the
2401        undocumented and private YY_LOCATION_PRINT macros.  */
2402 #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
2403 
2404 #  else
2405 
2406 #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
2407     /* Temporary convenience wrapper in case some people defined the
2408        undocumented and private YY_LOCATION_PRINT macros.  */
2409 #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
2410 
2411 #  endif
2412 # endif /* !defined YYLOCATION_PRINT */
2413 
2414 
2415 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2416 do {                                                                      \
2417   if (yydebug)                                                            \
2418     {                                                                     \
2419       YYFPRINTF (stderr, "%s ", Title);                                   \
2420       yy_symbol_print (stderr,                                            \
2421                   Kind, Value, Location, lexer, instance, arg); \
2422       YYFPRINTF (stderr, "\n");                                           \
2423     }                                                                     \
2424 } while (0)
2425 
2426 
2427 /*-----------------------------------.
2428 | Print this symbol's value on YYO.  |
2429 `-----------------------------------*/
2430 
2431 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2432 yy_symbol_value_print (FILE *yyo,
2433                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2434 {
2435   FILE *yyoutput = yyo;
2436   YY_USE (yyoutput);
2437   YY_USE (yylocationp);
2438   YY_USE (lexer);
2439   YY_USE (instance);
2440   YY_USE (arg);
2441   if (!yyvaluep)
2442     return;
2443   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2444   YY_USE (yykind);
2445   YY_IGNORE_MAYBE_UNINITIALIZED_END
2446 }
2447 
2448 
2449 /*---------------------------.
2450 | Print this symbol on YYO.  |
2451 `---------------------------*/
2452 
2453 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2454 yy_symbol_print (FILE *yyo,
2455                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2456 {
2457   YYFPRINTF (yyo, "%s %s (",
2458              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2459 
2460   YYLOCATION_PRINT (yyo, yylocationp);
2461   YYFPRINTF (yyo, ": ");
2462   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2463   YYFPRINTF (yyo, ")");
2464 }
2465 
2466 /*------------------------------------------------------------------.
2467 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2468 | TOP (included).                                                   |
2469 `------------------------------------------------------------------*/
2470 
2471 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2472 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2473 {
2474   YYFPRINTF (stderr, "Stack now");
2475   for (; yybottom <= yytop; yybottom++)
2476     {
2477       int yybot = *yybottom;
2478       YYFPRINTF (stderr, " %d", yybot);
2479     }
2480   YYFPRINTF (stderr, "\n");
2481 }
2482 
2483 # define YY_STACK_PRINT(Bottom, Top)                            \
2484 do {                                                            \
2485   if (yydebug)                                                  \
2486     yy_stack_print ((Bottom), (Top));                           \
2487 } while (0)
2488 
2489 
2490 /*------------------------------------------------.
2491 | Report that the YYRULE is going to be reduced.  |
2492 `------------------------------------------------*/
2493 
2494 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogParser ** instance,gpointer arg)2495 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2496                  int yyrule, CfgLexer *lexer, LogParser **instance, gpointer arg)
2497 {
2498   int yylno = yyrline[yyrule];
2499   int yynrhs = yyr2[yyrule];
2500   int yyi;
2501   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2502              yyrule - 1, yylno);
2503   /* The symbols being reduced.  */
2504   for (yyi = 0; yyi < yynrhs; yyi++)
2505     {
2506       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2507       yy_symbol_print (stderr,
2508                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2509                        &yyvsp[(yyi + 1) - (yynrhs)],
2510                        &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2511       YYFPRINTF (stderr, "\n");
2512     }
2513 }
2514 
2515 # define YY_REDUCE_PRINT(Rule)          \
2516 do {                                    \
2517   if (yydebug)                          \
2518     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2519 } while (0)
2520 
2521 /* Nonzero means print parse trace.  It is left uninitialized so that
2522    multiple parsers can coexist.  */
2523 int yydebug;
2524 #else /* !TAGS_PARSER_DEBUG */
2525 # define YYDPRINTF(Args) ((void) 0)
2526 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2527 # define YY_STACK_PRINT(Bottom, Top)
2528 # define YY_REDUCE_PRINT(Rule)
2529 #endif /* !TAGS_PARSER_DEBUG */
2530 
2531 
2532 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2533 #ifndef YYINITDEPTH
2534 # define YYINITDEPTH 200
2535 #endif
2536 
2537 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2538    if the built-in stack extension method is used).
2539 
2540    Do not make this value too large; the results are undefined if
2541    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2542    evaluated with infinite-precision integer arithmetic.  */
2543 
2544 #ifndef YYMAXDEPTH
2545 # define YYMAXDEPTH 10000
2546 #endif
2547 
2548 
2549 /* Context of a parse error.  */
2550 typedef struct
2551 {
2552   yy_state_t *yyssp;
2553   yysymbol_kind_t yytoken;
2554   YYLTYPE *yylloc;
2555 } yypcontext_t;
2556 
2557 /* Put in YYARG at most YYARGN of the expected tokens given the
2558    current YYCTX, and return the number of tokens stored in YYARG.  If
2559    YYARG is null, return the number of expected tokens (guaranteed to
2560    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
2561    Return 0 if there are more than YYARGN expected tokens, yet fill
2562    YYARG up to YYARGN. */
2563 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2564 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2565                             yysymbol_kind_t yyarg[], int yyargn)
2566 {
2567   /* Actual size of YYARG. */
2568   int yycount = 0;
2569   int yyn = yypact[+*yyctx->yyssp];
2570   if (!yypact_value_is_default (yyn))
2571     {
2572       /* Start YYX at -YYN if negative to avoid negative indexes in
2573          YYCHECK.  In other words, skip the first -YYN actions for
2574          this state because they are default actions.  */
2575       int yyxbegin = yyn < 0 ? -yyn : 0;
2576       /* Stay within bounds of both yycheck and yytname.  */
2577       int yychecklim = YYLAST - yyn + 1;
2578       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2579       int yyx;
2580       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2581         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2582             && !yytable_value_is_error (yytable[yyx + yyn]))
2583           {
2584             if (!yyarg)
2585               ++yycount;
2586             else if (yycount == yyargn)
2587               return 0;
2588             else
2589               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2590           }
2591     }
2592   if (yyarg && yycount == 0 && 0 < yyargn)
2593     yyarg[0] = YYSYMBOL_YYEMPTY;
2594   return yycount;
2595 }
2596 
2597 
2598 
2599 
2600 #ifndef yystrlen
2601 # if defined __GLIBC__ && defined _STRING_H
2602 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2603 # else
2604 /* Return the length of YYSTR.  */
2605 static YYPTRDIFF_T
yystrlen(const char * yystr)2606 yystrlen (const char *yystr)
2607 {
2608   YYPTRDIFF_T yylen;
2609   for (yylen = 0; yystr[yylen]; yylen++)
2610     continue;
2611   return yylen;
2612 }
2613 # endif
2614 #endif
2615 
2616 #ifndef yystpcpy
2617 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2618 #  define yystpcpy stpcpy
2619 # else
2620 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2621    YYDEST.  */
2622 static char *
yystpcpy(char * yydest,const char * yysrc)2623 yystpcpy (char *yydest, const char *yysrc)
2624 {
2625   char *yyd = yydest;
2626   const char *yys = yysrc;
2627 
2628   while ((*yyd++ = *yys++) != '\0')
2629     continue;
2630 
2631   return yyd - 1;
2632 }
2633 # endif
2634 #endif
2635 
2636 #ifndef yytnamerr
2637 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2638    quotes and backslashes, so that it's suitable for yyerror.  The
2639    heuristic is that double-quoting is unnecessary unless the string
2640    contains an apostrophe, a comma, or backslash (other than
2641    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2642    null, do not copy; instead, return the length of what the result
2643    would have been.  */
2644 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2645 yytnamerr (char *yyres, const char *yystr)
2646 {
2647   if (*yystr == '"')
2648     {
2649       YYPTRDIFF_T yyn = 0;
2650       char const *yyp = yystr;
2651       for (;;)
2652         switch (*++yyp)
2653           {
2654           case '\'':
2655           case ',':
2656             goto do_not_strip_quotes;
2657 
2658           case '\\':
2659             if (*++yyp != '\\')
2660               goto do_not_strip_quotes;
2661             else
2662               goto append;
2663 
2664           append:
2665           default:
2666             if (yyres)
2667               yyres[yyn] = *yyp;
2668             yyn++;
2669             break;
2670 
2671           case '"':
2672             if (yyres)
2673               yyres[yyn] = '\0';
2674             return yyn;
2675           }
2676     do_not_strip_quotes: ;
2677     }
2678 
2679   if (yyres)
2680     return yystpcpy (yyres, yystr) - yyres;
2681   else
2682     return yystrlen (yystr);
2683 }
2684 #endif
2685 
2686 
2687 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2688 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2689                            yysymbol_kind_t yyarg[], int yyargn)
2690 {
2691   /* Actual size of YYARG. */
2692   int yycount = 0;
2693   /* There are many possibilities here to consider:
2694      - If this state is a consistent state with a default action, then
2695        the only way this function was invoked is if the default action
2696        is an error action.  In that case, don't check for expected
2697        tokens because there are none.
2698      - The only way there can be no lookahead present (in yychar) is if
2699        this state is a consistent state with a default action.  Thus,
2700        detecting the absence of a lookahead is sufficient to determine
2701        that there is no unexpected or expected token to report.  In that
2702        case, just report a simple "syntax error".
2703      - Don't assume there isn't a lookahead just because this state is a
2704        consistent state with a default action.  There might have been a
2705        previous inconsistent state, consistent state with a non-default
2706        action, or user semantic action that manipulated yychar.
2707      - Of course, the expected token list depends on states to have
2708        correct lookahead information, and it depends on the parser not
2709        to perform extra reductions after fetching a lookahead from the
2710        scanner and before detecting a syntax error.  Thus, state merging
2711        (from LALR or IELR) and default reductions corrupt the expected
2712        token list.  However, the list is correct for canonical LR with
2713        one exception: it will still contain any token that will not be
2714        accepted due to an error action in a later state.
2715   */
2716   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2717     {
2718       int yyn;
2719       if (yyarg)
2720         yyarg[yycount] = yyctx->yytoken;
2721       ++yycount;
2722       yyn = yypcontext_expected_tokens (yyctx,
2723                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2724       if (yyn == YYENOMEM)
2725         return YYENOMEM;
2726       else
2727         yycount += yyn;
2728     }
2729   return yycount;
2730 }
2731 
2732 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2733    about the unexpected token YYTOKEN for the state stack whose top is
2734    YYSSP.
2735 
2736    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
2737    not large enough to hold the message.  In that case, also set
2738    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
2739    required number of bytes is too large to store.  */
2740 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2741 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2742                 const yypcontext_t *yyctx)
2743 {
2744   enum { YYARGS_MAX = 5 };
2745   /* Internationalized format string. */
2746   const char *yyformat = YY_NULLPTR;
2747   /* Arguments of yyformat: reported tokens (one for the "unexpected",
2748      one per "expected"). */
2749   yysymbol_kind_t yyarg[YYARGS_MAX];
2750   /* Cumulated lengths of YYARG.  */
2751   YYPTRDIFF_T yysize = 0;
2752 
2753   /* Actual size of YYARG. */
2754   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2755   if (yycount == YYENOMEM)
2756     return YYENOMEM;
2757 
2758   switch (yycount)
2759     {
2760 #define YYCASE_(N, S)                       \
2761       case N:                               \
2762         yyformat = S;                       \
2763         break
2764     default: /* Avoid compiler warnings. */
2765       YYCASE_(0, YY_("syntax error"));
2766       YYCASE_(1, YY_("syntax error, unexpected %s"));
2767       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2768       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2769       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2770       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2771 #undef YYCASE_
2772     }
2773 
2774   /* Compute error message size.  Don't count the "%s"s, but reserve
2775      room for the terminator.  */
2776   yysize = yystrlen (yyformat) - 2 * yycount + 1;
2777   {
2778     int yyi;
2779     for (yyi = 0; yyi < yycount; ++yyi)
2780       {
2781         YYPTRDIFF_T yysize1
2782           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2783         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2784           yysize = yysize1;
2785         else
2786           return YYENOMEM;
2787       }
2788   }
2789 
2790   if (*yymsg_alloc < yysize)
2791     {
2792       *yymsg_alloc = 2 * yysize;
2793       if (! (yysize <= *yymsg_alloc
2794              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2795         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2796       return -1;
2797     }
2798 
2799   /* Avoid sprintf, as that infringes on the user's name space.
2800      Don't have undefined behavior even if the translation
2801      produced a string with the wrong number of "%s"s.  */
2802   {
2803     char *yyp = *yymsg;
2804     int yyi = 0;
2805     while ((*yyp = *yyformat) != '\0')
2806       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2807         {
2808           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2809           yyformat += 2;
2810         }
2811       else
2812         {
2813           ++yyp;
2814           ++yyformat;
2815         }
2816   }
2817   return 0;
2818 }
2819 
2820 
2821 /*-----------------------------------------------.
2822 | Release the memory associated to this symbol.  |
2823 `-----------------------------------------------*/
2824 
2825 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2826 yydestruct (const char *yymsg,
2827             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2828 {
2829   YY_USE (yyvaluep);
2830   YY_USE (yylocationp);
2831   YY_USE (lexer);
2832   YY_USE (instance);
2833   YY_USE (arg);
2834   if (!yymsg)
2835     yymsg = "Deleting";
2836   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2837 
2838   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2839   switch (yykind)
2840     {
2841     case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER  */
2842 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2843             { free(((*yyvaluep).cptr)); }
2844 #line 2845 "modules/tagsparser/tags-parser-grammar.c"
2845         break;
2846 
2847     case YYSYMBOL_LL_STRING: /* LL_STRING  */
2848 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2849             { free(((*yyvaluep).cptr)); }
2850 #line 2851 "modules/tagsparser/tags-parser-grammar.c"
2851         break;
2852 
2853     case YYSYMBOL_LL_BLOCK: /* LL_BLOCK  */
2854 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2855             { free(((*yyvaluep).cptr)); }
2856 #line 2857 "modules/tagsparser/tags-parser-grammar.c"
2857         break;
2858 
2859     case YYSYMBOL_string: /* string  */
2860 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2861             { free(((*yyvaluep).cptr)); }
2862 #line 2863 "modules/tagsparser/tags-parser-grammar.c"
2863         break;
2864 
2865       default:
2866         break;
2867     }
2868   YY_IGNORE_MAYBE_UNINITIALIZED_END
2869 }
2870 
2871 
2872 
2873 
2874 
2875 
2876 /*----------.
2877 | yyparse.  |
2878 `----------*/
2879 
2880 int
yyparse(CfgLexer * lexer,LogParser ** instance,gpointer arg)2881 yyparse (CfgLexer *lexer, LogParser **instance, gpointer arg)
2882 {
2883 /* Lookahead token kind.  */
2884 int yychar;
2885 
2886 
2887 /* The semantic value of the lookahead symbol.  */
2888 /* Default value used for initialization, for pacifying older GCCs
2889    or non-GCC compilers.  */
2890 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2891 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2892 
2893 /* Location data for the lookahead symbol.  */
2894 static YYLTYPE yyloc_default
2895 # if defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL
2896   = { 1, 1, 1, 1 }
2897 # endif
2898 ;
2899 YYLTYPE yylloc = yyloc_default;
2900 
2901     /* Number of syntax errors so far.  */
2902     int yynerrs = 0;
2903 
2904     yy_state_fast_t yystate = 0;
2905     /* Number of tokens to shift before error messages enabled.  */
2906     int yyerrstatus = 0;
2907 
2908     /* Refer to the stacks through separate pointers, to allow yyoverflow
2909        to reallocate them elsewhere.  */
2910 
2911     /* Their size.  */
2912     YYPTRDIFF_T yystacksize = YYINITDEPTH;
2913 
2914     /* The state stack: array, bottom, top.  */
2915     yy_state_t yyssa[YYINITDEPTH];
2916     yy_state_t *yyss = yyssa;
2917     yy_state_t *yyssp = yyss;
2918 
2919     /* The semantic value stack: array, bottom, top.  */
2920     YYSTYPE yyvsa[YYINITDEPTH];
2921     YYSTYPE *yyvs = yyvsa;
2922     YYSTYPE *yyvsp = yyvs;
2923 
2924     /* The location stack: array, bottom, top.  */
2925     YYLTYPE yylsa[YYINITDEPTH];
2926     YYLTYPE *yyls = yylsa;
2927     YYLTYPE *yylsp = yyls;
2928 
2929   int yyn;
2930   /* The return value of yyparse.  */
2931   int yyresult;
2932   /* Lookahead symbol kind.  */
2933   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2934   /* The variables used to return semantic value and location from the
2935      action routines.  */
2936   YYSTYPE yyval;
2937   YYLTYPE yyloc;
2938 
2939   /* The locations where the error started and ended.  */
2940   YYLTYPE yyerror_range[3];
2941 
2942   /* Buffer for error messages, and its allocated size.  */
2943   char yymsgbuf[128];
2944   char *yymsg = yymsgbuf;
2945   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2946 
2947 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2948 
2949   /* The number of symbols on the RHS of the reduced rule.
2950      Keep to zero when no symbol should be popped.  */
2951   int yylen = 0;
2952 
2953   YYDPRINTF ((stderr, "Starting parse\n"));
2954 
2955   yychar = TAGS_PARSER_EMPTY; /* Cause a token to be read.  */
2956 
2957   yylsp[0] = yylloc;
2958   goto yysetstate;
2959 
2960 
2961 /*------------------------------------------------------------.
2962 | yynewstate -- push a new state, which is found in yystate.  |
2963 `------------------------------------------------------------*/
2964 yynewstate:
2965   /* In all cases, when you get here, the value and location stacks
2966      have just been pushed.  So pushing a state here evens the stacks.  */
2967   yyssp++;
2968 
2969 
2970 /*--------------------------------------------------------------------.
2971 | yysetstate -- set current state (the top of the stack) to yystate.  |
2972 `--------------------------------------------------------------------*/
2973 yysetstate:
2974   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2975   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2976   YY_IGNORE_USELESS_CAST_BEGIN
2977   *yyssp = YY_CAST (yy_state_t, yystate);
2978   YY_IGNORE_USELESS_CAST_END
2979   YY_STACK_PRINT (yyss, yyssp);
2980 
2981   if (yyss + yystacksize - 1 <= yyssp)
2982 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2983     YYNOMEM;
2984 #else
2985     {
2986       /* Get the current used size of the three stacks, in elements.  */
2987       YYPTRDIFF_T yysize = yyssp - yyss + 1;
2988 
2989 # if defined yyoverflow
2990       {
2991         /* Give user a chance to reallocate the stack.  Use copies of
2992            these so that the &'s don't force the real ones into
2993            memory.  */
2994         yy_state_t *yyss1 = yyss;
2995         YYSTYPE *yyvs1 = yyvs;
2996         YYLTYPE *yyls1 = yyls;
2997 
2998         /* Each stack pointer address is followed by the size of the
2999            data in use in that stack, in bytes.  This used to be a
3000            conditional around just the two extra args, but that might
3001            be undefined if yyoverflow is a macro.  */
3002         yyoverflow (YY_("memory exhausted"),
3003                     &yyss1, yysize * YYSIZEOF (*yyssp),
3004                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
3005                     &yyls1, yysize * YYSIZEOF (*yylsp),
3006                     &yystacksize);
3007         yyss = yyss1;
3008         yyvs = yyvs1;
3009         yyls = yyls1;
3010       }
3011 # else /* defined YYSTACK_RELOCATE */
3012       /* Extend the stack our own way.  */
3013       if (YYMAXDEPTH <= yystacksize)
3014         YYNOMEM;
3015       yystacksize *= 2;
3016       if (YYMAXDEPTH < yystacksize)
3017         yystacksize = YYMAXDEPTH;
3018 
3019       {
3020         yy_state_t *yyss1 = yyss;
3021         union yyalloc *yyptr =
3022           YY_CAST (union yyalloc *,
3023                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3024         if (! yyptr)
3025           YYNOMEM;
3026         YYSTACK_RELOCATE (yyss_alloc, yyss);
3027         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3028         YYSTACK_RELOCATE (yyls_alloc, yyls);
3029 #  undef YYSTACK_RELOCATE
3030         if (yyss1 != yyssa)
3031           YYSTACK_FREE (yyss1);
3032       }
3033 # endif
3034 
3035       yyssp = yyss + yysize - 1;
3036       yyvsp = yyvs + yysize - 1;
3037       yylsp = yyls + yysize - 1;
3038 
3039       YY_IGNORE_USELESS_CAST_BEGIN
3040       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3041                   YY_CAST (long, yystacksize)));
3042       YY_IGNORE_USELESS_CAST_END
3043 
3044       if (yyss + yystacksize - 1 <= yyssp)
3045         YYABORT;
3046     }
3047 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3048 
3049 
3050   if (yystate == YYFINAL)
3051     YYACCEPT;
3052 
3053   goto yybackup;
3054 
3055 
3056 /*-----------.
3057 | yybackup.  |
3058 `-----------*/
3059 yybackup:
3060   /* Do appropriate processing given the current state.  Read a
3061      lookahead token if we need one and don't already have one.  */
3062 
3063   /* First try to decide what to do without reference to lookahead token.  */
3064   yyn = yypact[yystate];
3065   if (yypact_value_is_default (yyn))
3066     goto yydefault;
3067 
3068   /* Not known => get a lookahead token if don't already have one.  */
3069 
3070   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
3071   if (yychar == TAGS_PARSER_EMPTY)
3072     {
3073       YYDPRINTF ((stderr, "Reading a token\n"));
3074       yychar = yylex (&yylval, &yylloc, lexer);
3075     }
3076 
3077   if (yychar <= TAGS_PARSER_EOF)
3078     {
3079       yychar = TAGS_PARSER_EOF;
3080       yytoken = YYSYMBOL_YYEOF;
3081       YYDPRINTF ((stderr, "Now at end of input.\n"));
3082     }
3083   else if (yychar == TAGS_PARSER_error)
3084     {
3085       /* The scanner already issued an error message, process directly
3086          to error recovery.  But do not keep the error token as
3087          lookahead, it is too special and may lead us to an endless
3088          loop in error recovery. */
3089       yychar = TAGS_PARSER_UNDEF;
3090       yytoken = YYSYMBOL_YYerror;
3091       yyerror_range[1] = yylloc;
3092       goto yyerrlab1;
3093     }
3094   else
3095     {
3096       yytoken = YYTRANSLATE (yychar);
3097       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3098     }
3099 
3100   /* If the proper action on seeing token YYTOKEN is to reduce or to
3101      detect an error, take that action.  */
3102   yyn += yytoken;
3103   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3104     goto yydefault;
3105   yyn = yytable[yyn];
3106   if (yyn <= 0)
3107     {
3108       if (yytable_value_is_error (yyn))
3109         goto yyerrlab;
3110       yyn = -yyn;
3111       goto yyreduce;
3112     }
3113 
3114   /* Count tokens shifted since error; after three, turn off error
3115      status.  */
3116   if (yyerrstatus)
3117     yyerrstatus--;
3118 
3119   /* Shift the lookahead token.  */
3120   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3121   yystate = yyn;
3122   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3123   *++yyvsp = yylval;
3124   YY_IGNORE_MAYBE_UNINITIALIZED_END
3125   *++yylsp = yylloc;
3126 
3127   /* Discard the shifted token.  */
3128   yychar = TAGS_PARSER_EMPTY;
3129   goto yynewstate;
3130 
3131 
3132 /*-----------------------------------------------------------.
3133 | yydefault -- do the default action for the current state.  |
3134 `-----------------------------------------------------------*/
3135 yydefault:
3136   yyn = yydefact[yystate];
3137   if (yyn == 0)
3138     goto yyerrlab;
3139   goto yyreduce;
3140 
3141 
3142 /*-----------------------------.
3143 | yyreduce -- do a reduction.  |
3144 `-----------------------------*/
3145 yyreduce:
3146   /* yyn is the number of a rule to reduce with.  */
3147   yylen = yyr2[yyn];
3148 
3149   /* If YYLEN is nonzero, implement the default value of the action:
3150      '$$ = $1'.
3151 
3152      Otherwise, the following line sets YYVAL to garbage.
3153      This behavior is undocumented and Bison
3154      users should not rely upon it.  Assigning to YYVAL
3155      unconditionally makes the parser a bit smaller, and it avoids a
3156      GCC warning that YYVAL may be used uninitialized.  */
3157   yyval = yyvsp[1-yylen];
3158 
3159   /* Default location. */
3160   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3161   yyerror_range[1] = yyloc;
3162   YY_REDUCE_PRINT (yyn);
3163   switch (yyn)
3164     {
3165   case 2: /* start: LL_CONTEXT_PARSER parser_expr_tags  */
3166 #line 404 "modules/tagsparser/tags-parser-grammar.y"
3167                                                               { YYACCEPT; }
3168 #line 3169 "modules/tagsparser/tags-parser-grammar.c"
3169     break;
3170 
3171   case 3: /* $@1: %empty  */
3172 #line 410 "modules/tagsparser/tags-parser-grammar.y"
3173           {
3174             last_parser = *instance = tags_parser_new(configuration);
3175           }
3176 #line 3177 "modules/tagsparser/tags-parser-grammar.c"
3177     break;
3178 
3179   case 4: /* parser_expr_tags: KW_TAGS_PARSER '(' $@1 parser_tags_opts ')'  */
3180 #line 413 "modules/tagsparser/tags-parser-grammar.y"
3181                                                               { (yyval.ptr) = last_parser; }
3182 #line 3183 "modules/tagsparser/tags-parser-grammar.c"
3183     break;
3184 
3185   case 10: /* parser_opt: KW_TEMPLATE '(' string ')'  */
3186 #line 824 "modules/tagsparser/tags-parser-grammar.y"
3187                                                 {
3188                                                   LogTemplate *template;
3189                                                   GError *error = NULL;
3190 
3191                                                   template = cfg_tree_check_inline_template(&configuration->tree, (yyvsp[-1].cptr), &error);
3192                                                   CHECK_ERROR_GERROR(template != NULL, (yylsp[-1]), error, "Error compiling template");
3193                                                   log_parser_set_template(last_parser, template);
3194                                                   free((yyvsp[-1].cptr));
3195                                                 }
3196 #line 3197 "modules/tagsparser/tags-parser-grammar.c"
3197     break;
3198 
3199 
3200 #line 3201 "modules/tagsparser/tags-parser-grammar.c"
3201 
3202       default: break;
3203     }
3204   /* User semantic actions sometimes alter yychar, and that requires
3205      that yytoken be updated with the new translation.  We take the
3206      approach of translating immediately before every use of yytoken.
3207      One alternative is translating here after every semantic action,
3208      but that translation would be missed if the semantic action invokes
3209      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3210      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3211      incorrect destructor might then be invoked immediately.  In the
3212      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3213      to an incorrect destructor call or verbose syntax error message
3214      before the lookahead is translated.  */
3215   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3216 
3217   YYPOPSTACK (yylen);
3218   yylen = 0;
3219 
3220   *++yyvsp = yyval;
3221   *++yylsp = yyloc;
3222 
3223   /* Now 'shift' the result of the reduction.  Determine what state
3224      that goes to, based on the state we popped back to and the rule
3225      number reduced by.  */
3226   {
3227     const int yylhs = yyr1[yyn] - YYNTOKENS;
3228     const int yyi = yypgoto[yylhs] + *yyssp;
3229     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3230                ? yytable[yyi]
3231                : yydefgoto[yylhs]);
3232   }
3233 
3234   goto yynewstate;
3235 
3236 
3237 /*--------------------------------------.
3238 | yyerrlab -- here on detecting error.  |
3239 `--------------------------------------*/
3240 yyerrlab:
3241   /* Make sure we have latest lookahead translation.  See comments at
3242      user semantic actions for why this is necessary.  */
3243   yytoken = yychar == TAGS_PARSER_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3244   /* If not already recovering from an error, report this error.  */
3245   if (!yyerrstatus)
3246     {
3247       ++yynerrs;
3248       {
3249         yypcontext_t yyctx
3250           = {yyssp, yytoken, &yylloc};
3251         char const *yymsgp = YY_("syntax error");
3252         int yysyntax_error_status;
3253         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3254         if (yysyntax_error_status == 0)
3255           yymsgp = yymsg;
3256         else if (yysyntax_error_status == -1)
3257           {
3258             if (yymsg != yymsgbuf)
3259               YYSTACK_FREE (yymsg);
3260             yymsg = YY_CAST (char *,
3261                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3262             if (yymsg)
3263               {
3264                 yysyntax_error_status
3265                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3266                 yymsgp = yymsg;
3267               }
3268             else
3269               {
3270                 yymsg = yymsgbuf;
3271                 yymsg_alloc = sizeof yymsgbuf;
3272                 yysyntax_error_status = YYENOMEM;
3273               }
3274           }
3275         yyerror (&yylloc, lexer, instance, arg, yymsgp);
3276         if (yysyntax_error_status == YYENOMEM)
3277           YYNOMEM;
3278       }
3279     }
3280 
3281   yyerror_range[1] = yylloc;
3282   if (yyerrstatus == 3)
3283     {
3284       /* If just tried and failed to reuse lookahead token after an
3285          error, discard it.  */
3286 
3287       if (yychar <= TAGS_PARSER_EOF)
3288         {
3289           /* Return failure if at end of input.  */
3290           if (yychar == TAGS_PARSER_EOF)
3291             YYABORT;
3292         }
3293       else
3294         {
3295           yydestruct ("Error: discarding",
3296                       yytoken, &yylval, &yylloc, lexer, instance, arg);
3297           yychar = TAGS_PARSER_EMPTY;
3298         }
3299     }
3300 
3301   /* Else will try to reuse lookahead token after shifting the error
3302      token.  */
3303   goto yyerrlab1;
3304 
3305 
3306 /*---------------------------------------------------.
3307 | yyerrorlab -- error raised explicitly by YYERROR.  |
3308 `---------------------------------------------------*/
3309 yyerrorlab:
3310   /* Pacify compilers when the user code never invokes YYERROR and the
3311      label yyerrorlab therefore never appears in user code.  */
3312   if (0)
3313     YYERROR;
3314   ++yynerrs;
3315 
3316   /* Do not reclaim the symbols of the rule whose action triggered
3317      this YYERROR.  */
3318   YYPOPSTACK (yylen);
3319   yylen = 0;
3320   YY_STACK_PRINT (yyss, yyssp);
3321   yystate = *yyssp;
3322   goto yyerrlab1;
3323 
3324 
3325 /*-------------------------------------------------------------.
3326 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3327 `-------------------------------------------------------------*/
3328 yyerrlab1:
3329   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3330 
3331   /* Pop stack until we find a state that shifts the error token.  */
3332   for (;;)
3333     {
3334       yyn = yypact[yystate];
3335       if (!yypact_value_is_default (yyn))
3336         {
3337           yyn += YYSYMBOL_YYerror;
3338           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3339             {
3340               yyn = yytable[yyn];
3341               if (0 < yyn)
3342                 break;
3343             }
3344         }
3345 
3346       /* Pop the current state because it cannot handle the error token.  */
3347       if (yyssp == yyss)
3348         YYABORT;
3349 
3350       yyerror_range[1] = *yylsp;
3351       yydestruct ("Error: popping",
3352                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3353       YYPOPSTACK (1);
3354       yystate = *yyssp;
3355       YY_STACK_PRINT (yyss, yyssp);
3356     }
3357 
3358   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3359   *++yyvsp = yylval;
3360   YY_IGNORE_MAYBE_UNINITIALIZED_END
3361 
3362   yyerror_range[2] = yylloc;
3363   ++yylsp;
3364   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3365 
3366   /* Shift the error token.  */
3367   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3368 
3369   yystate = yyn;
3370   goto yynewstate;
3371 
3372 
3373 /*-------------------------------------.
3374 | yyacceptlab -- YYACCEPT comes here.  |
3375 `-------------------------------------*/
3376 yyacceptlab:
3377   yyresult = 0;
3378   goto yyreturnlab;
3379 
3380 
3381 /*-----------------------------------.
3382 | yyabortlab -- YYABORT comes here.  |
3383 `-----------------------------------*/
3384 yyabortlab:
3385   yyresult = 1;
3386   goto yyreturnlab;
3387 
3388 
3389 /*-----------------------------------------------------------.
3390 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
3391 `-----------------------------------------------------------*/
3392 yyexhaustedlab:
3393   yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3394   yyresult = 2;
3395   goto yyreturnlab;
3396 
3397 
3398 /*----------------------------------------------------------.
3399 | yyreturnlab -- parsing is finished, clean up and return.  |
3400 `----------------------------------------------------------*/
3401 yyreturnlab:
3402   if (yychar != TAGS_PARSER_EMPTY)
3403     {
3404       /* Make sure we have latest lookahead translation.  See comments at
3405          user semantic actions for why this is necessary.  */
3406       yytoken = YYTRANSLATE (yychar);
3407       yydestruct ("Cleanup: discarding lookahead",
3408                   yytoken, &yylval, &yylloc, lexer, instance, arg);
3409     }
3410   /* Do not reclaim the symbols of the rule whose action triggered
3411      this YYABORT or YYACCEPT.  */
3412   YYPOPSTACK (yylen);
3413   YY_STACK_PRINT (yyss, yyssp);
3414   while (yyssp != yyss)
3415     {
3416       yydestruct ("Cleanup: popping",
3417                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3418       YYPOPSTACK (1);
3419     }
3420 #ifndef yyoverflow
3421   if (yyss != yyssa)
3422     YYSTACK_FREE (yyss);
3423 #endif
3424   if (yymsg != yymsgbuf)
3425     YYSTACK_FREE (yymsg);
3426   return yyresult;
3427 }
3428 
3429 #line 1190 "modules/tagsparser/tags-parser-grammar.y"
3430 
3431