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 /* Substitute the type names.  */
67 #define YYSTYPE         KAFKA_STYPE
68 #define YYLTYPE         KAFKA_LTYPE
69 /* Substitute the variable and function names.  */
70 #define yyparse         kafka_parse
71 #define yylex           kafka_lex
72 #define yyerror         kafka_error
73 #define yydebug         kafka_debug
74 #define yynerrs         kafka_nerrs
75 
76 
77 # ifndef YY_CAST
78 #  ifdef __cplusplus
79 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
80 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
81 #  else
82 #   define YY_CAST(Type, Val) ((Type) (Val))
83 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
84 #  endif
85 # endif
86 # ifndef YY_NULLPTR
87 #  if defined __cplusplus
88 #   if 201103L <= __cplusplus
89 #    define YY_NULLPTR nullptr
90 #   else
91 #    define YY_NULLPTR 0
92 #   endif
93 #  else
94 #   define YY_NULLPTR ((void*)0)
95 #  endif
96 # endif
97 
98 /* Use api.header.include to #include this header
99    instead of duplicating it here.  */
100 #ifndef YY_KAFKA_MODULES_KAFKA_KAFKA_GRAMMAR_H_INCLUDED
101 # define YY_KAFKA_MODULES_KAFKA_KAFKA_GRAMMAR_H_INCLUDED
102 /* Debug traces.  */
103 #ifndef KAFKA_DEBUG
104 # if defined YYDEBUG
105 #if YYDEBUG
106 #   define KAFKA_DEBUG 1
107 #  else
108 #   define KAFKA_DEBUG 0
109 #  endif
110 # else /* ! defined YYDEBUG */
111 #  define KAFKA_DEBUG 0
112 # endif /* ! defined YYDEBUG */
113 #endif  /* ! defined KAFKA_DEBUG */
114 #if KAFKA_DEBUG
115 extern int kafka_debug;
116 #endif
117 /* "%code requires" blocks.  */
118 #line 27 "modules/kafka/kafka-grammar.y"
119 
120 
121 #include "kafka-parser.h"
122 
123 
124 #line 125 "modules/kafka/kafka-grammar.c"
125 
126 /* Token kinds.  */
127 #ifndef KAFKA_TOKENTYPE
128 # define KAFKA_TOKENTYPE
129   enum kafka_tokentype
130   {
131     KAFKA_EMPTY = -2,
132     KAFKA_EOF = 0,                 /* "end of file"  */
133     KAFKA_error = 256,             /* error  */
134     KAFKA_UNDEF = 10514,           /* "invalid token"  */
135     LL_CONTEXT_ROOT = 1,           /* LL_CONTEXT_ROOT  */
136     LL_CONTEXT_DESTINATION = 2,    /* LL_CONTEXT_DESTINATION  */
137     LL_CONTEXT_SOURCE = 3,         /* LL_CONTEXT_SOURCE  */
138     LL_CONTEXT_PARSER = 4,         /* LL_CONTEXT_PARSER  */
139     LL_CONTEXT_REWRITE = 5,        /* LL_CONTEXT_REWRITE  */
140     LL_CONTEXT_FILTER = 6,         /* LL_CONTEXT_FILTER  */
141     LL_CONTEXT_LOG = 7,            /* LL_CONTEXT_LOG  */
142     LL_CONTEXT_BLOCK_DEF = 8,      /* LL_CONTEXT_BLOCK_DEF  */
143     LL_CONTEXT_BLOCK_REF = 9,      /* LL_CONTEXT_BLOCK_REF  */
144     LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT  */
145     LL_CONTEXT_BLOCK_ARG = 11,     /* LL_CONTEXT_BLOCK_ARG  */
146     LL_CONTEXT_PRAGMA = 12,        /* LL_CONTEXT_PRAGMA  */
147     LL_CONTEXT_FORMAT = 13,        /* LL_CONTEXT_FORMAT  */
148     LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC  */
149     LL_CONTEXT_INNER_DEST = 15,    /* LL_CONTEXT_INNER_DEST  */
150     LL_CONTEXT_INNER_SRC = 16,     /* LL_CONTEXT_INNER_SRC  */
151     LL_CONTEXT_CLIENT_PROTO = 17,  /* LL_CONTEXT_CLIENT_PROTO  */
152     LL_CONTEXT_SERVER_PROTO = 18,  /* LL_CONTEXT_SERVER_PROTO  */
153     LL_CONTEXT_OPTIONS = 19,       /* LL_CONTEXT_OPTIONS  */
154     LL_CONTEXT_CONFIG = 20,        /* LL_CONTEXT_CONFIG  */
155     LL_CONTEXT_MAX = 21,           /* LL_CONTEXT_MAX  */
156     KW_SOURCE = 10000,             /* KW_SOURCE  */
157     KW_FILTER = 10001,             /* KW_FILTER  */
158     KW_PARSER = 10002,             /* KW_PARSER  */
159     KW_DESTINATION = 10003,        /* KW_DESTINATION  */
160     KW_LOG = 10004,                /* KW_LOG  */
161     KW_OPTIONS = 10005,            /* KW_OPTIONS  */
162     KW_INCLUDE = 10006,            /* KW_INCLUDE  */
163     KW_BLOCK = 10007,              /* KW_BLOCK  */
164     KW_JUNCTION = 10008,           /* KW_JUNCTION  */
165     KW_CHANNEL = 10009,            /* KW_CHANNEL  */
166     KW_IF = 10010,                 /* KW_IF  */
167     KW_ELSE = 10011,               /* KW_ELSE  */
168     KW_ELIF = 10012,               /* KW_ELIF  */
169     KW_INTERNAL = 10020,           /* KW_INTERNAL  */
170     KW_SYSLOG = 10060,             /* KW_SYSLOG  */
171     KW_MARK_FREQ = 10071,          /* KW_MARK_FREQ  */
172     KW_STATS_FREQ = 10072,         /* KW_STATS_FREQ  */
173     KW_STATS_LEVEL = 10073,        /* KW_STATS_LEVEL  */
174     KW_STATS_LIFETIME = 10074,     /* KW_STATS_LIFETIME  */
175     KW_FLUSH_LINES = 10075,        /* KW_FLUSH_LINES  */
176     KW_SUPPRESS = 10076,           /* KW_SUPPRESS  */
177     KW_FLUSH_TIMEOUT = 10077,      /* KW_FLUSH_TIMEOUT  */
178     KW_LOG_MSG_SIZE = 10078,       /* KW_LOG_MSG_SIZE  */
179     KW_FILE_TEMPLATE = 10079,      /* KW_FILE_TEMPLATE  */
180     KW_PROTO_TEMPLATE = 10080,     /* KW_PROTO_TEMPLATE  */
181     KW_MARK_MODE = 10081,          /* KW_MARK_MODE  */
182     KW_ENCODING = 10082,           /* KW_ENCODING  */
183     KW_TYPE = 10083,               /* KW_TYPE  */
184     KW_STATS_MAX_DYNAMIC = 10084,  /* KW_STATS_MAX_DYNAMIC  */
185     KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER  */
186     KW_WORKERS = 10086,            /* KW_WORKERS  */
187     KW_BATCH_LINES = 10087,        /* KW_BATCH_LINES  */
188     KW_BATCH_TIMEOUT = 10088,      /* KW_BATCH_TIMEOUT  */
189     KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES  */
190     KW_CHAIN_HOSTNAMES = 10090,    /* KW_CHAIN_HOSTNAMES  */
191     KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES  */
192     KW_KEEP_HOSTNAME = 10092,      /* KW_KEEP_HOSTNAME  */
193     KW_CHECK_HOSTNAME = 10093,     /* KW_CHECK_HOSTNAME  */
194     KW_BAD_HOSTNAME = 10094,       /* KW_BAD_HOSTNAME  */
195     KW_KEEP_TIMESTAMP = 10100,     /* KW_KEEP_TIMESTAMP  */
196     KW_USE_DNS = 10110,            /* KW_USE_DNS  */
197     KW_USE_FQDN = 10111,           /* KW_USE_FQDN  */
198     KW_CUSTOM_DOMAIN = 10112,      /* KW_CUSTOM_DOMAIN  */
199     KW_DNS_CACHE = 10120,          /* KW_DNS_CACHE  */
200     KW_DNS_CACHE_SIZE = 10121,     /* KW_DNS_CACHE_SIZE  */
201     KW_DNS_CACHE_EXPIRE = 10130,   /* KW_DNS_CACHE_EXPIRE  */
202     KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED  */
203     KW_DNS_CACHE_HOSTS = 10132,    /* KW_DNS_CACHE_HOSTS  */
204     KW_PERSIST_ONLY = 10140,       /* KW_PERSIST_ONLY  */
205     KW_USE_RCPTID = 10141,         /* KW_USE_RCPTID  */
206     KW_USE_UNIQID = 10142,         /* KW_USE_UNIQID  */
207     KW_TZ_CONVERT = 10150,         /* KW_TZ_CONVERT  */
208     KW_TS_FORMAT = 10151,          /* KW_TS_FORMAT  */
209     KW_FRAC_DIGITS = 10152,        /* KW_FRAC_DIGITS  */
210     KW_LOG_FIFO_SIZE = 10160,      /* KW_LOG_FIFO_SIZE  */
211     KW_LOG_FETCH_LIMIT = 10162,    /* KW_LOG_FETCH_LIMIT  */
212     KW_LOG_IW_SIZE = 10163,        /* KW_LOG_IW_SIZE  */
213     KW_LOG_PREFIX = 10164,         /* KW_LOG_PREFIX  */
214     KW_PROGRAM_OVERRIDE = 10165,   /* KW_PROGRAM_OVERRIDE  */
215     KW_HOST_OVERRIDE = 10166,      /* KW_HOST_OVERRIDE  */
216     KW_THROTTLE = 10170,           /* KW_THROTTLE  */
217     KW_THREADED = 10171,           /* KW_THREADED  */
218     KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS  */
219     KW_PERSIST_NAME = 10302,       /* KW_PERSIST_NAME  */
220     KW_READ_OLD_RECORDS = 10304,   /* KW_READ_OLD_RECORDS  */
221     KW_USE_SYSLOGNG_PID = 10305,   /* KW_USE_SYSLOGNG_PID  */
222     KW_FLAGS = 10190,              /* KW_FLAGS  */
223     KW_PAD_SIZE = 10200,           /* KW_PAD_SIZE  */
224     KW_TIME_ZONE = 10201,          /* KW_TIME_ZONE  */
225     KW_RECV_TIME_ZONE = 10202,     /* KW_RECV_TIME_ZONE  */
226     KW_SEND_TIME_ZONE = 10203,     /* KW_SEND_TIME_ZONE  */
227     KW_LOCAL_TIME_ZONE = 10204,    /* KW_LOCAL_TIME_ZONE  */
228     KW_FORMAT = 10205,             /* KW_FORMAT  */
229     KW_TRUNCATE_SIZE = 10206,      /* KW_TRUNCATE_SIZE  */
230     KW_TIME_REOPEN = 10210,        /* KW_TIME_REOPEN  */
231     KW_TIME_REAP = 10211,          /* KW_TIME_REAP  */
232     KW_TIME_SLEEP = 10212,         /* KW_TIME_SLEEP  */
233     KW_TMPL_ESCAPE = 10220,        /* KW_TMPL_ESCAPE  */
234     KW_OPTIONAL = 10230,           /* KW_OPTIONAL  */
235     KW_CREATE_DIRS = 10240,        /* KW_CREATE_DIRS  */
236     KW_OWNER = 10250,              /* KW_OWNER  */
237     KW_GROUP = 10251,              /* KW_GROUP  */
238     KW_PERM = 10252,               /* KW_PERM  */
239     KW_DIR_OWNER = 10260,          /* KW_DIR_OWNER  */
240     KW_DIR_GROUP = 10261,          /* KW_DIR_GROUP  */
241     KW_DIR_PERM = 10262,           /* KW_DIR_PERM  */
242     KW_TEMPLATE = 10270,           /* KW_TEMPLATE  */
243     KW_TEMPLATE_ESCAPE = 10271,    /* KW_TEMPLATE_ESCAPE  */
244     KW_TEMPLATE_FUNCTION = 10272,  /* KW_TEMPLATE_FUNCTION  */
245     KW_DEFAULT_FACILITY = 10300,   /* KW_DEFAULT_FACILITY  */
246     KW_DEFAULT_SEVERITY = 10301,   /* KW_DEFAULT_SEVERITY  */
247     KW_PORT = 10323,               /* KW_PORT  */
248     KW_USE_TIME_RECVD = 10340,     /* KW_USE_TIME_RECVD  */
249     KW_FACILITY = 10350,           /* KW_FACILITY  */
250     KW_SEVERITY = 10351,           /* KW_SEVERITY  */
251     KW_HOST = 10352,               /* KW_HOST  */
252     KW_MATCH = 10353,              /* KW_MATCH  */
253     KW_MESSAGE = 10354,            /* KW_MESSAGE  */
254     KW_NETMASK = 10355,            /* KW_NETMASK  */
255     KW_TAGS = 10356,               /* KW_TAGS  */
256     KW_NETMASK6 = 10357,           /* KW_NETMASK6  */
257     KW_REWRITE = 10370,            /* KW_REWRITE  */
258     KW_CONDITION = 10371,          /* KW_CONDITION  */
259     KW_VALUE = 10372,              /* KW_VALUE  */
260     KW_YES = 10380,                /* KW_YES  */
261     KW_NO = 10381,                 /* KW_NO  */
262     KW_IFDEF = 10410,              /* KW_IFDEF  */
263     KW_ENDIF = 10411,              /* KW_ENDIF  */
264     LL_DOTDOT = 10420,             /* LL_DOTDOT  */
265     LL_DOTDOTDOT = 10421,          /* LL_DOTDOTDOT  */
266     LL_PRAGMA = 10422,             /* LL_PRAGMA  */
267     LL_EOL = 10423,                /* LL_EOL  */
268     LL_ERROR = 10424,              /* LL_ERROR  */
269     LL_ARROW = 10425,              /* LL_ARROW  */
270     LL_IDENTIFIER = 10430,         /* LL_IDENTIFIER  */
271     LL_NUMBER = 10431,             /* LL_NUMBER  */
272     LL_FLOAT = 10432,              /* LL_FLOAT  */
273     LL_STRING = 10433,             /* LL_STRING  */
274     LL_TOKEN = 10434,              /* LL_TOKEN  */
275     LL_BLOCK = 10435,              /* LL_BLOCK  */
276     KW_VALUE_PAIRS = 10500,        /* KW_VALUE_PAIRS  */
277     KW_EXCLUDE = 10502,            /* KW_EXCLUDE  */
278     KW_PAIR = 10503,               /* KW_PAIR  */
279     KW_KEY = 10504,                /* KW_KEY  */
280     KW_SCOPE = 10505,              /* KW_SCOPE  */
281     KW_SHIFT = 10506,              /* KW_SHIFT  */
282     KW_SHIFT_LEVELS = 10507,       /* KW_SHIFT_LEVELS  */
283     KW_REKEY = 10508,              /* KW_REKEY  */
284     KW_ADD_PREFIX = 10509,         /* KW_ADD_PREFIX  */
285     KW_REPLACE_PREFIX = 10510,     /* KW_REPLACE_PREFIX  */
286     KW_ON_ERROR = 10511,           /* KW_ON_ERROR  */
287     KW_RETRIES = 10512,            /* KW_RETRIES  */
288     KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY  */
289     KW_KAFKA = 10515,              /* KW_KAFKA  */
290     KW_TOPIC = 10516,              /* KW_TOPIC  */
291     KW_FALLBACK_TOPIC = 10517,     /* KW_FALLBACK_TOPIC  */
292     KW_CONFIG = 10518,             /* KW_CONFIG  */
293     KW_FLUSH_TIMEOUT_ON_SHUTDOWN = 10519, /* KW_FLUSH_TIMEOUT_ON_SHUTDOWN  */
294     KW_FLUSH_TIMEOUT_ON_RELOAD = 10520, /* KW_FLUSH_TIMEOUT_ON_RELOAD  */
295     KW_POLL_TIMEOUT = 10521,       /* KW_POLL_TIMEOUT  */
296     KW_BOOTSTRAP_SERVERS = 10522,  /* KW_BOOTSTRAP_SERVERS  */
297     KW_SYNC_SEND = 10523           /* KW_SYNC_SEND  */
298   };
299   typedef enum kafka_tokentype kafka_token_kind_t;
300 #endif
301 /* Token kinds.  */
302 #define KAFKA_EMPTY -2
303 #define KAFKA_EOF 0
304 #define KAFKA_error 256
305 #define KAFKA_UNDEF 10514
306 #define LL_CONTEXT_ROOT 1
307 #define LL_CONTEXT_DESTINATION 2
308 #define LL_CONTEXT_SOURCE 3
309 #define LL_CONTEXT_PARSER 4
310 #define LL_CONTEXT_REWRITE 5
311 #define LL_CONTEXT_FILTER 6
312 #define LL_CONTEXT_LOG 7
313 #define LL_CONTEXT_BLOCK_DEF 8
314 #define LL_CONTEXT_BLOCK_REF 9
315 #define LL_CONTEXT_BLOCK_CONTENT 10
316 #define LL_CONTEXT_BLOCK_ARG 11
317 #define LL_CONTEXT_PRAGMA 12
318 #define LL_CONTEXT_FORMAT 13
319 #define LL_CONTEXT_TEMPLATE_FUNC 14
320 #define LL_CONTEXT_INNER_DEST 15
321 #define LL_CONTEXT_INNER_SRC 16
322 #define LL_CONTEXT_CLIENT_PROTO 17
323 #define LL_CONTEXT_SERVER_PROTO 18
324 #define LL_CONTEXT_OPTIONS 19
325 #define LL_CONTEXT_CONFIG 20
326 #define LL_CONTEXT_MAX 21
327 #define KW_SOURCE 10000
328 #define KW_FILTER 10001
329 #define KW_PARSER 10002
330 #define KW_DESTINATION 10003
331 #define KW_LOG 10004
332 #define KW_OPTIONS 10005
333 #define KW_INCLUDE 10006
334 #define KW_BLOCK 10007
335 #define KW_JUNCTION 10008
336 #define KW_CHANNEL 10009
337 #define KW_IF 10010
338 #define KW_ELSE 10011
339 #define KW_ELIF 10012
340 #define KW_INTERNAL 10020
341 #define KW_SYSLOG 10060
342 #define KW_MARK_FREQ 10071
343 #define KW_STATS_FREQ 10072
344 #define KW_STATS_LEVEL 10073
345 #define KW_STATS_LIFETIME 10074
346 #define KW_FLUSH_LINES 10075
347 #define KW_SUPPRESS 10076
348 #define KW_FLUSH_TIMEOUT 10077
349 #define KW_LOG_MSG_SIZE 10078
350 #define KW_FILE_TEMPLATE 10079
351 #define KW_PROTO_TEMPLATE 10080
352 #define KW_MARK_MODE 10081
353 #define KW_ENCODING 10082
354 #define KW_TYPE 10083
355 #define KW_STATS_MAX_DYNAMIC 10084
356 #define KW_MIN_IW_SIZE_PER_READER 10085
357 #define KW_WORKERS 10086
358 #define KW_BATCH_LINES 10087
359 #define KW_BATCH_TIMEOUT 10088
360 #define KW_TRIM_LARGE_MESSAGES 10089
361 #define KW_CHAIN_HOSTNAMES 10090
362 #define KW_NORMALIZE_HOSTNAMES 10091
363 #define KW_KEEP_HOSTNAME 10092
364 #define KW_CHECK_HOSTNAME 10093
365 #define KW_BAD_HOSTNAME 10094
366 #define KW_KEEP_TIMESTAMP 10100
367 #define KW_USE_DNS 10110
368 #define KW_USE_FQDN 10111
369 #define KW_CUSTOM_DOMAIN 10112
370 #define KW_DNS_CACHE 10120
371 #define KW_DNS_CACHE_SIZE 10121
372 #define KW_DNS_CACHE_EXPIRE 10130
373 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
374 #define KW_DNS_CACHE_HOSTS 10132
375 #define KW_PERSIST_ONLY 10140
376 #define KW_USE_RCPTID 10141
377 #define KW_USE_UNIQID 10142
378 #define KW_TZ_CONVERT 10150
379 #define KW_TS_FORMAT 10151
380 #define KW_FRAC_DIGITS 10152
381 #define KW_LOG_FIFO_SIZE 10160
382 #define KW_LOG_FETCH_LIMIT 10162
383 #define KW_LOG_IW_SIZE 10163
384 #define KW_LOG_PREFIX 10164
385 #define KW_PROGRAM_OVERRIDE 10165
386 #define KW_HOST_OVERRIDE 10166
387 #define KW_THROTTLE 10170
388 #define KW_THREADED 10171
389 #define KW_PASS_UNIX_CREDENTIALS 10231
390 #define KW_PERSIST_NAME 10302
391 #define KW_READ_OLD_RECORDS 10304
392 #define KW_USE_SYSLOGNG_PID 10305
393 #define KW_FLAGS 10190
394 #define KW_PAD_SIZE 10200
395 #define KW_TIME_ZONE 10201
396 #define KW_RECV_TIME_ZONE 10202
397 #define KW_SEND_TIME_ZONE 10203
398 #define KW_LOCAL_TIME_ZONE 10204
399 #define KW_FORMAT 10205
400 #define KW_TRUNCATE_SIZE 10206
401 #define KW_TIME_REOPEN 10210
402 #define KW_TIME_REAP 10211
403 #define KW_TIME_SLEEP 10212
404 #define KW_TMPL_ESCAPE 10220
405 #define KW_OPTIONAL 10230
406 #define KW_CREATE_DIRS 10240
407 #define KW_OWNER 10250
408 #define KW_GROUP 10251
409 #define KW_PERM 10252
410 #define KW_DIR_OWNER 10260
411 #define KW_DIR_GROUP 10261
412 #define KW_DIR_PERM 10262
413 #define KW_TEMPLATE 10270
414 #define KW_TEMPLATE_ESCAPE 10271
415 #define KW_TEMPLATE_FUNCTION 10272
416 #define KW_DEFAULT_FACILITY 10300
417 #define KW_DEFAULT_SEVERITY 10301
418 #define KW_PORT 10323
419 #define KW_USE_TIME_RECVD 10340
420 #define KW_FACILITY 10350
421 #define KW_SEVERITY 10351
422 #define KW_HOST 10352
423 #define KW_MATCH 10353
424 #define KW_MESSAGE 10354
425 #define KW_NETMASK 10355
426 #define KW_TAGS 10356
427 #define KW_NETMASK6 10357
428 #define KW_REWRITE 10370
429 #define KW_CONDITION 10371
430 #define KW_VALUE 10372
431 #define KW_YES 10380
432 #define KW_NO 10381
433 #define KW_IFDEF 10410
434 #define KW_ENDIF 10411
435 #define LL_DOTDOT 10420
436 #define LL_DOTDOTDOT 10421
437 #define LL_PRAGMA 10422
438 #define LL_EOL 10423
439 #define LL_ERROR 10424
440 #define LL_ARROW 10425
441 #define LL_IDENTIFIER 10430
442 #define LL_NUMBER 10431
443 #define LL_FLOAT 10432
444 #define LL_STRING 10433
445 #define LL_TOKEN 10434
446 #define LL_BLOCK 10435
447 #define KW_VALUE_PAIRS 10500
448 #define KW_EXCLUDE 10502
449 #define KW_PAIR 10503
450 #define KW_KEY 10504
451 #define KW_SCOPE 10505
452 #define KW_SHIFT 10506
453 #define KW_SHIFT_LEVELS 10507
454 #define KW_REKEY 10508
455 #define KW_ADD_PREFIX 10509
456 #define KW_REPLACE_PREFIX 10510
457 #define KW_ON_ERROR 10511
458 #define KW_RETRIES 10512
459 #define KW_FETCH_NO_DATA_DELAY 10513
460 #define KW_KAFKA 10515
461 #define KW_TOPIC 10516
462 #define KW_FALLBACK_TOPIC 10517
463 #define KW_CONFIG 10518
464 #define KW_FLUSH_TIMEOUT_ON_SHUTDOWN 10519
465 #define KW_FLUSH_TIMEOUT_ON_RELOAD 10520
466 #define KW_POLL_TIMEOUT 10521
467 #define KW_BOOTSTRAP_SERVERS 10522
468 #define KW_SYNC_SEND 10523
469 
470 /* Value type.  */
471 #if ! defined KAFKA_STYPE && ! defined KAFKA_STYPE_IS_DECLARED
472 typedef CFG_STYPE KAFKA_STYPE;
473 # define KAFKA_STYPE_IS_TRIVIAL 1
474 # define KAFKA_STYPE_IS_DECLARED 1
475 #endif
476 
477 /* Location type.  */
478 typedef CFG_LTYPE KAFKA_LTYPE;
479 
480 
481 
482 
483 int kafka_parse (CfgLexer *lexer, LogDriver **instance, gpointer arg);
484 
485 
486 #endif /* !YY_KAFKA_MODULES_KAFKA_KAFKA_GRAMMAR_H_INCLUDED  */
487 /* Symbol kind.  */
488 enum yysymbol_kind_t
489 {
490   YYSYMBOL_YYEMPTY = -2,
491   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
492   YYSYMBOL_YYerror = 1,                    /* error  */
493   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
494   YYSYMBOL_LL_CONTEXT_ROOT = 3,            /* LL_CONTEXT_ROOT  */
495   YYSYMBOL_LL_CONTEXT_DESTINATION = 4,     /* LL_CONTEXT_DESTINATION  */
496   YYSYMBOL_LL_CONTEXT_SOURCE = 5,          /* LL_CONTEXT_SOURCE  */
497   YYSYMBOL_LL_CONTEXT_PARSER = 6,          /* LL_CONTEXT_PARSER  */
498   YYSYMBOL_LL_CONTEXT_REWRITE = 7,         /* LL_CONTEXT_REWRITE  */
499   YYSYMBOL_LL_CONTEXT_FILTER = 8,          /* LL_CONTEXT_FILTER  */
500   YYSYMBOL_LL_CONTEXT_LOG = 9,             /* LL_CONTEXT_LOG  */
501   YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10,      /* LL_CONTEXT_BLOCK_DEF  */
502   YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11,      /* LL_CONTEXT_BLOCK_REF  */
503   YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12,  /* LL_CONTEXT_BLOCK_CONTENT  */
504   YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13,      /* LL_CONTEXT_BLOCK_ARG  */
505   YYSYMBOL_LL_CONTEXT_PRAGMA = 14,         /* LL_CONTEXT_PRAGMA  */
506   YYSYMBOL_LL_CONTEXT_FORMAT = 15,         /* LL_CONTEXT_FORMAT  */
507   YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16,  /* LL_CONTEXT_TEMPLATE_FUNC  */
508   YYSYMBOL_LL_CONTEXT_INNER_DEST = 17,     /* LL_CONTEXT_INNER_DEST  */
509   YYSYMBOL_LL_CONTEXT_INNER_SRC = 18,      /* LL_CONTEXT_INNER_SRC  */
510   YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19,   /* LL_CONTEXT_CLIENT_PROTO  */
511   YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20,   /* LL_CONTEXT_SERVER_PROTO  */
512   YYSYMBOL_LL_CONTEXT_OPTIONS = 21,        /* LL_CONTEXT_OPTIONS  */
513   YYSYMBOL_LL_CONTEXT_CONFIG = 22,         /* LL_CONTEXT_CONFIG  */
514   YYSYMBOL_LL_CONTEXT_MAX = 23,            /* LL_CONTEXT_MAX  */
515   YYSYMBOL_KW_SOURCE = 24,                 /* KW_SOURCE  */
516   YYSYMBOL_KW_FILTER = 25,                 /* KW_FILTER  */
517   YYSYMBOL_KW_PARSER = 26,                 /* KW_PARSER  */
518   YYSYMBOL_KW_DESTINATION = 27,            /* KW_DESTINATION  */
519   YYSYMBOL_KW_LOG = 28,                    /* KW_LOG  */
520   YYSYMBOL_KW_OPTIONS = 29,                /* KW_OPTIONS  */
521   YYSYMBOL_KW_INCLUDE = 30,                /* KW_INCLUDE  */
522   YYSYMBOL_KW_BLOCK = 31,                  /* KW_BLOCK  */
523   YYSYMBOL_KW_JUNCTION = 32,               /* KW_JUNCTION  */
524   YYSYMBOL_KW_CHANNEL = 33,                /* KW_CHANNEL  */
525   YYSYMBOL_KW_IF = 34,                     /* KW_IF  */
526   YYSYMBOL_KW_ELSE = 35,                   /* KW_ELSE  */
527   YYSYMBOL_KW_ELIF = 36,                   /* KW_ELIF  */
528   YYSYMBOL_KW_INTERNAL = 37,               /* KW_INTERNAL  */
529   YYSYMBOL_KW_SYSLOG = 38,                 /* KW_SYSLOG  */
530   YYSYMBOL_KW_MARK_FREQ = 39,              /* KW_MARK_FREQ  */
531   YYSYMBOL_KW_STATS_FREQ = 40,             /* KW_STATS_FREQ  */
532   YYSYMBOL_KW_STATS_LEVEL = 41,            /* KW_STATS_LEVEL  */
533   YYSYMBOL_KW_STATS_LIFETIME = 42,         /* KW_STATS_LIFETIME  */
534   YYSYMBOL_KW_FLUSH_LINES = 43,            /* KW_FLUSH_LINES  */
535   YYSYMBOL_KW_SUPPRESS = 44,               /* KW_SUPPRESS  */
536   YYSYMBOL_KW_FLUSH_TIMEOUT = 45,          /* KW_FLUSH_TIMEOUT  */
537   YYSYMBOL_KW_LOG_MSG_SIZE = 46,           /* KW_LOG_MSG_SIZE  */
538   YYSYMBOL_KW_FILE_TEMPLATE = 47,          /* KW_FILE_TEMPLATE  */
539   YYSYMBOL_KW_PROTO_TEMPLATE = 48,         /* KW_PROTO_TEMPLATE  */
540   YYSYMBOL_KW_MARK_MODE = 49,              /* KW_MARK_MODE  */
541   YYSYMBOL_KW_ENCODING = 50,               /* KW_ENCODING  */
542   YYSYMBOL_KW_TYPE = 51,                   /* KW_TYPE  */
543   YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52,      /* KW_STATS_MAX_DYNAMIC  */
544   YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER  */
545   YYSYMBOL_KW_WORKERS = 54,                /* KW_WORKERS  */
546   YYSYMBOL_KW_BATCH_LINES = 55,            /* KW_BATCH_LINES  */
547   YYSYMBOL_KW_BATCH_TIMEOUT = 56,          /* KW_BATCH_TIMEOUT  */
548   YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57,    /* KW_TRIM_LARGE_MESSAGES  */
549   YYSYMBOL_KW_CHAIN_HOSTNAMES = 58,        /* KW_CHAIN_HOSTNAMES  */
550   YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59,    /* KW_NORMALIZE_HOSTNAMES  */
551   YYSYMBOL_KW_KEEP_HOSTNAME = 60,          /* KW_KEEP_HOSTNAME  */
552   YYSYMBOL_KW_CHECK_HOSTNAME = 61,         /* KW_CHECK_HOSTNAME  */
553   YYSYMBOL_KW_BAD_HOSTNAME = 62,           /* KW_BAD_HOSTNAME  */
554   YYSYMBOL_KW_KEEP_TIMESTAMP = 63,         /* KW_KEEP_TIMESTAMP  */
555   YYSYMBOL_KW_USE_DNS = 64,                /* KW_USE_DNS  */
556   YYSYMBOL_KW_USE_FQDN = 65,               /* KW_USE_FQDN  */
557   YYSYMBOL_KW_CUSTOM_DOMAIN = 66,          /* KW_CUSTOM_DOMAIN  */
558   YYSYMBOL_KW_DNS_CACHE = 67,              /* KW_DNS_CACHE  */
559   YYSYMBOL_KW_DNS_CACHE_SIZE = 68,         /* KW_DNS_CACHE_SIZE  */
560   YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69,       /* KW_DNS_CACHE_EXPIRE  */
561   YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED  */
562   YYSYMBOL_KW_DNS_CACHE_HOSTS = 71,        /* KW_DNS_CACHE_HOSTS  */
563   YYSYMBOL_KW_PERSIST_ONLY = 72,           /* KW_PERSIST_ONLY  */
564   YYSYMBOL_KW_USE_RCPTID = 73,             /* KW_USE_RCPTID  */
565   YYSYMBOL_KW_USE_UNIQID = 74,             /* KW_USE_UNIQID  */
566   YYSYMBOL_KW_TZ_CONVERT = 75,             /* KW_TZ_CONVERT  */
567   YYSYMBOL_KW_TS_FORMAT = 76,              /* KW_TS_FORMAT  */
568   YYSYMBOL_KW_FRAC_DIGITS = 77,            /* KW_FRAC_DIGITS  */
569   YYSYMBOL_KW_LOG_FIFO_SIZE = 78,          /* KW_LOG_FIFO_SIZE  */
570   YYSYMBOL_KW_LOG_FETCH_LIMIT = 79,        /* KW_LOG_FETCH_LIMIT  */
571   YYSYMBOL_KW_LOG_IW_SIZE = 80,            /* KW_LOG_IW_SIZE  */
572   YYSYMBOL_KW_LOG_PREFIX = 81,             /* KW_LOG_PREFIX  */
573   YYSYMBOL_KW_PROGRAM_OVERRIDE = 82,       /* KW_PROGRAM_OVERRIDE  */
574   YYSYMBOL_KW_HOST_OVERRIDE = 83,          /* KW_HOST_OVERRIDE  */
575   YYSYMBOL_KW_THROTTLE = 84,               /* KW_THROTTLE  */
576   YYSYMBOL_KW_THREADED = 85,               /* KW_THREADED  */
577   YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86,  /* KW_PASS_UNIX_CREDENTIALS  */
578   YYSYMBOL_KW_PERSIST_NAME = 87,           /* KW_PERSIST_NAME  */
579   YYSYMBOL_KW_READ_OLD_RECORDS = 88,       /* KW_READ_OLD_RECORDS  */
580   YYSYMBOL_KW_USE_SYSLOGNG_PID = 89,       /* KW_USE_SYSLOGNG_PID  */
581   YYSYMBOL_KW_FLAGS = 90,                  /* KW_FLAGS  */
582   YYSYMBOL_KW_PAD_SIZE = 91,               /* KW_PAD_SIZE  */
583   YYSYMBOL_KW_TIME_ZONE = 92,              /* KW_TIME_ZONE  */
584   YYSYMBOL_KW_RECV_TIME_ZONE = 93,         /* KW_RECV_TIME_ZONE  */
585   YYSYMBOL_KW_SEND_TIME_ZONE = 94,         /* KW_SEND_TIME_ZONE  */
586   YYSYMBOL_KW_LOCAL_TIME_ZONE = 95,        /* KW_LOCAL_TIME_ZONE  */
587   YYSYMBOL_KW_FORMAT = 96,                 /* KW_FORMAT  */
588   YYSYMBOL_KW_TRUNCATE_SIZE = 97,          /* KW_TRUNCATE_SIZE  */
589   YYSYMBOL_KW_TIME_REOPEN = 98,            /* KW_TIME_REOPEN  */
590   YYSYMBOL_KW_TIME_REAP = 99,              /* KW_TIME_REAP  */
591   YYSYMBOL_KW_TIME_SLEEP = 100,            /* KW_TIME_SLEEP  */
592   YYSYMBOL_KW_TMPL_ESCAPE = 101,           /* KW_TMPL_ESCAPE  */
593   YYSYMBOL_KW_OPTIONAL = 102,              /* KW_OPTIONAL  */
594   YYSYMBOL_KW_CREATE_DIRS = 103,           /* KW_CREATE_DIRS  */
595   YYSYMBOL_KW_OWNER = 104,                 /* KW_OWNER  */
596   YYSYMBOL_KW_GROUP = 105,                 /* KW_GROUP  */
597   YYSYMBOL_KW_PERM = 106,                  /* KW_PERM  */
598   YYSYMBOL_KW_DIR_OWNER = 107,             /* KW_DIR_OWNER  */
599   YYSYMBOL_KW_DIR_GROUP = 108,             /* KW_DIR_GROUP  */
600   YYSYMBOL_KW_DIR_PERM = 109,              /* KW_DIR_PERM  */
601   YYSYMBOL_KW_TEMPLATE = 110,              /* KW_TEMPLATE  */
602   YYSYMBOL_KW_TEMPLATE_ESCAPE = 111,       /* KW_TEMPLATE_ESCAPE  */
603   YYSYMBOL_KW_TEMPLATE_FUNCTION = 112,     /* KW_TEMPLATE_FUNCTION  */
604   YYSYMBOL_KW_DEFAULT_FACILITY = 113,      /* KW_DEFAULT_FACILITY  */
605   YYSYMBOL_KW_DEFAULT_SEVERITY = 114,      /* KW_DEFAULT_SEVERITY  */
606   YYSYMBOL_KW_PORT = 115,                  /* KW_PORT  */
607   YYSYMBOL_KW_USE_TIME_RECVD = 116,        /* KW_USE_TIME_RECVD  */
608   YYSYMBOL_KW_FACILITY = 117,              /* KW_FACILITY  */
609   YYSYMBOL_KW_SEVERITY = 118,              /* KW_SEVERITY  */
610   YYSYMBOL_KW_HOST = 119,                  /* KW_HOST  */
611   YYSYMBOL_KW_MATCH = 120,                 /* KW_MATCH  */
612   YYSYMBOL_KW_MESSAGE = 121,               /* KW_MESSAGE  */
613   YYSYMBOL_KW_NETMASK = 122,               /* KW_NETMASK  */
614   YYSYMBOL_KW_TAGS = 123,                  /* KW_TAGS  */
615   YYSYMBOL_KW_NETMASK6 = 124,              /* KW_NETMASK6  */
616   YYSYMBOL_KW_REWRITE = 125,               /* KW_REWRITE  */
617   YYSYMBOL_KW_CONDITION = 126,             /* KW_CONDITION  */
618   YYSYMBOL_KW_VALUE = 127,                 /* KW_VALUE  */
619   YYSYMBOL_KW_YES = 128,                   /* KW_YES  */
620   YYSYMBOL_KW_NO = 129,                    /* KW_NO  */
621   YYSYMBOL_KW_IFDEF = 130,                 /* KW_IFDEF  */
622   YYSYMBOL_KW_ENDIF = 131,                 /* KW_ENDIF  */
623   YYSYMBOL_LL_DOTDOT = 132,                /* LL_DOTDOT  */
624   YYSYMBOL_LL_DOTDOTDOT = 133,             /* LL_DOTDOTDOT  */
625   YYSYMBOL_LL_PRAGMA = 134,                /* LL_PRAGMA  */
626   YYSYMBOL_LL_EOL = 135,                   /* LL_EOL  */
627   YYSYMBOL_LL_ERROR = 136,                 /* LL_ERROR  */
628   YYSYMBOL_LL_ARROW = 137,                 /* LL_ARROW  */
629   YYSYMBOL_LL_IDENTIFIER = 138,            /* LL_IDENTIFIER  */
630   YYSYMBOL_LL_NUMBER = 139,                /* LL_NUMBER  */
631   YYSYMBOL_LL_FLOAT = 140,                 /* LL_FLOAT  */
632   YYSYMBOL_LL_STRING = 141,                /* LL_STRING  */
633   YYSYMBOL_LL_TOKEN = 142,                 /* LL_TOKEN  */
634   YYSYMBOL_LL_BLOCK = 143,                 /* LL_BLOCK  */
635   YYSYMBOL_KW_VALUE_PAIRS = 144,           /* KW_VALUE_PAIRS  */
636   YYSYMBOL_KW_EXCLUDE = 145,               /* KW_EXCLUDE  */
637   YYSYMBOL_KW_PAIR = 146,                  /* KW_PAIR  */
638   YYSYMBOL_KW_KEY = 147,                   /* KW_KEY  */
639   YYSYMBOL_KW_SCOPE = 148,                 /* KW_SCOPE  */
640   YYSYMBOL_KW_SHIFT = 149,                 /* KW_SHIFT  */
641   YYSYMBOL_KW_SHIFT_LEVELS = 150,          /* KW_SHIFT_LEVELS  */
642   YYSYMBOL_KW_REKEY = 151,                 /* KW_REKEY  */
643   YYSYMBOL_KW_ADD_PREFIX = 152,            /* KW_ADD_PREFIX  */
644   YYSYMBOL_KW_REPLACE_PREFIX = 153,        /* KW_REPLACE_PREFIX  */
645   YYSYMBOL_KW_ON_ERROR = 154,              /* KW_ON_ERROR  */
646   YYSYMBOL_KW_RETRIES = 155,               /* KW_RETRIES  */
647   YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156,   /* KW_FETCH_NO_DATA_DELAY  */
648   YYSYMBOL_KW_KAFKA = 157,                 /* KW_KAFKA  */
649   YYSYMBOL_KW_TOPIC = 158,                 /* KW_TOPIC  */
650   YYSYMBOL_KW_FALLBACK_TOPIC = 159,        /* KW_FALLBACK_TOPIC  */
651   YYSYMBOL_KW_CONFIG = 160,                /* KW_CONFIG  */
652   YYSYMBOL_KW_FLUSH_TIMEOUT_ON_SHUTDOWN = 161, /* KW_FLUSH_TIMEOUT_ON_SHUTDOWN  */
653   YYSYMBOL_KW_FLUSH_TIMEOUT_ON_RELOAD = 162, /* KW_FLUSH_TIMEOUT_ON_RELOAD  */
654   YYSYMBOL_KW_POLL_TIMEOUT = 163,          /* KW_POLL_TIMEOUT  */
655   YYSYMBOL_KW_BOOTSTRAP_SERVERS = 164,     /* KW_BOOTSTRAP_SERVERS  */
656   YYSYMBOL_KW_SYNC_SEND = 165,             /* KW_SYNC_SEND  */
657   YYSYMBOL_166_ = 166,                     /* '('  */
658   YYSYMBOL_167_ = 167,                     /* ')'  */
659   YYSYMBOL_168_ = 168,                     /* '{'  */
660   YYSYMBOL_169_ = 169,                     /* '}'  */
661   YYSYMBOL_170_ = 170,                     /* ';'  */
662   YYSYMBOL_171_ = 171,                     /* ':'  */
663   YYSYMBOL_YYACCEPT = 172,                 /* $accept  */
664   YYSYMBOL_start = 173,                    /* start  */
665   YYSYMBOL_174_1 = 174,                    /* $@1  */
666   YYSYMBOL_kafka_options = 175,            /* kafka_options  */
667   YYSYMBOL_kafka_option = 176,             /* kafka_option  */
668   YYSYMBOL_177_2 = 177,                    /* $@2  */
669   YYSYMBOL_kafka_properties = 178,         /* kafka_properties  */
670   YYSYMBOL_179_3 = 179,                    /* $@3  */
671   YYSYMBOL_kafka_properties_list = 180,    /* kafka_properties_list  */
672   YYSYMBOL_kafka_property = 181,           /* kafka_property  */
673   YYSYMBOL_template_content_inner = 182,   /* template_content_inner  */
674   YYSYMBOL_template_content = 183,         /* template_content  */
675   YYSYMBOL_184_9 = 184,                    /* $@9  */
676   YYSYMBOL_string = 185,                   /* string  */
677   YYSYMBOL_yesno = 186,                    /* yesno  */
678   YYSYMBOL_nonnegative_integer64 = 187,    /* nonnegative_integer64  */
679   YYSYMBOL_nonnegative_integer = 188,      /* nonnegative_integer  */
680   YYSYMBOL_positive_integer64 = 189,       /* positive_integer64  */
681   YYSYMBOL_positive_integer = 190,         /* positive_integer  */
682   YYSYMBOL_string_or_number = 191,         /* string_or_number  */
683   YYSYMBOL_driver_option = 192,            /* driver_option  */
684   YYSYMBOL_inner_dest = 193,               /* inner_dest  */
685   YYSYMBOL_dest_driver_option = 194,       /* dest_driver_option  */
686   YYSYMBOL_threaded_dest_driver_batch_option = 195, /* threaded_dest_driver_batch_option  */
687   YYSYMBOL_threaded_dest_driver_workers_option = 196, /* threaded_dest_driver_workers_option  */
688   YYSYMBOL_threaded_dest_driver_general_option = 197, /* threaded_dest_driver_general_option  */
689   YYSYMBOL_template_option = 198           /* template_option  */
690 };
691 typedef enum yysymbol_kind_t yysymbol_kind_t;
692 
693 
694 
695 /* Unqualified %code blocks.  */
696 #line 33 "modules/kafka/kafka-grammar.y"
697 
698 
699 #include "cfg-grammar-internal.h"
700 #include "plugin.h"
701 #include "kafka-dest-driver.h"
702 #include "kafka-props.h"
703 
704 #line 60 "modules/kafka/kafka-grammar.y"
705 
706 
707 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
708   do {                                                                  \
709     if (N)                                                              \
710       {                                                                 \
711         (Current).level = YYRHSLOC(Rhs, 1).level;                       \
712         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;          \
713         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;        \
714         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;           \
715         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;         \
716       }                                                                 \
717     else                                                                \
718       {                                                                 \
719         (Current).level = YYRHSLOC(Rhs, 0).level;                       \
720         (Current).first_line   = (Current).last_line   =                \
721           YYRHSLOC (Rhs, 0).last_line;                                  \
722         (Current).first_column = (Current).last_column =                \
723           YYRHSLOC (Rhs, 0).last_column;                                \
724       }                                                                 \
725   } while (0)
726 
727 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do {                    \
728     if (!(val))                                                         \
729       {                                                                 \
730         YYERROR;                                                        \
731       }                                                                 \
732   } while (0)
733 
734 #define CHECK_ERROR(val, token, errorfmt, ...) do {                     \
735     if (!(val))                                                         \
736       {                                                                 \
737         if (errorfmt)                                                   \
738           {                                                             \
739             gchar __buf[256];                                           \
740             g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
741             yyerror(& (token), lexer, NULL, NULL, __buf);               \
742           }                                                             \
743         YYERROR;                                                        \
744       }                                                                 \
745   } while (0)
746 
747 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do {       \
748     if (!(val))                                                         \
749       {                                                                 \
750         if (errorfmt)                                                   \
751           {                                                             \
752             gchar __buf[256];                                           \
753             g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
754             yyerror(& (token), lexer, NULL, NULL, __buf);               \
755           }                                                             \
756         g_clear_error(&error);						\
757         YYERROR;                                                        \
758       }                                                                 \
759   } while (0)
760 
761 #define YYMAXDEPTH 20000
762 
763 
764 
765 #line 766 "modules/kafka/kafka-grammar.c"
766 
767 #ifdef short
768 # undef short
769 #endif
770 
771 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
772    <limits.h> and (if available) <stdint.h> are included
773    so that the code can choose integer types of a good width.  */
774 
775 #ifndef __PTRDIFF_MAX__
776 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
777 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
778 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
779 #  define YY_STDINT_H
780 # endif
781 #endif
782 
783 /* Narrow types that promote to a signed type and that can represent a
784    signed or unsigned integer of at least N bits.  In tables they can
785    save space and decrease cache pressure.  Promoting to a signed type
786    helps avoid bugs in integer arithmetic.  */
787 
788 #ifdef __INT_LEAST8_MAX__
789 typedef __INT_LEAST8_TYPE__ yytype_int8;
790 #elif defined YY_STDINT_H
791 typedef int_least8_t yytype_int8;
792 #else
793 typedef signed char yytype_int8;
794 #endif
795 
796 #ifdef __INT_LEAST16_MAX__
797 typedef __INT_LEAST16_TYPE__ yytype_int16;
798 #elif defined YY_STDINT_H
799 typedef int_least16_t yytype_int16;
800 #else
801 typedef short yytype_int16;
802 #endif
803 
804 /* Work around bug in HP-UX 11.23, which defines these macros
805    incorrectly for preprocessor constants.  This workaround can likely
806    be removed in 2023, as HPE has promised support for HP-UX 11.23
807    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
808    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
809 #ifdef __hpux
810 # undef UINT_LEAST8_MAX
811 # undef UINT_LEAST16_MAX
812 # define UINT_LEAST8_MAX 255
813 # define UINT_LEAST16_MAX 65535
814 #endif
815 
816 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
817 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
818 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
819        && UINT_LEAST8_MAX <= INT_MAX)
820 typedef uint_least8_t yytype_uint8;
821 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
822 typedef unsigned char yytype_uint8;
823 #else
824 typedef short yytype_uint8;
825 #endif
826 
827 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
828 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
829 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
830        && UINT_LEAST16_MAX <= INT_MAX)
831 typedef uint_least16_t yytype_uint16;
832 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
833 typedef unsigned short yytype_uint16;
834 #else
835 typedef int yytype_uint16;
836 #endif
837 
838 #ifndef YYPTRDIFF_T
839 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
840 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
841 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
842 # elif defined PTRDIFF_MAX
843 #  ifndef ptrdiff_t
844 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
845 #  endif
846 #  define YYPTRDIFF_T ptrdiff_t
847 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
848 # else
849 #  define YYPTRDIFF_T long
850 #  define YYPTRDIFF_MAXIMUM LONG_MAX
851 # endif
852 #endif
853 
854 #ifndef YYSIZE_T
855 # ifdef __SIZE_TYPE__
856 #  define YYSIZE_T __SIZE_TYPE__
857 # elif defined size_t
858 #  define YYSIZE_T size_t
859 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
860 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
861 #  define YYSIZE_T size_t
862 # else
863 #  define YYSIZE_T unsigned
864 # endif
865 #endif
866 
867 #define YYSIZE_MAXIMUM                                  \
868   YY_CAST (YYPTRDIFF_T,                                 \
869            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
870             ? YYPTRDIFF_MAXIMUM                         \
871             : YY_CAST (YYSIZE_T, -1)))
872 
873 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
874 
875 
876 /* Stored state numbers (used for stacks). */
877 typedef yytype_uint8 yy_state_t;
878 
879 /* State numbers in computations.  */
880 typedef int yy_state_fast_t;
881 
882 #ifndef YY_
883 # if defined YYENABLE_NLS && YYENABLE_NLS
884 #  if ENABLE_NLS
885 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
886 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
887 #  endif
888 # endif
889 # ifndef YY_
890 #  define YY_(Msgid) Msgid
891 # endif
892 #endif
893 
894 
895 #ifndef YY_ATTRIBUTE_PURE
896 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
897 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
898 # else
899 #  define YY_ATTRIBUTE_PURE
900 # endif
901 #endif
902 
903 #ifndef YY_ATTRIBUTE_UNUSED
904 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
905 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
906 # else
907 #  define YY_ATTRIBUTE_UNUSED
908 # endif
909 #endif
910 
911 /* Suppress unused-variable warnings by "using" E.  */
912 #if ! defined lint || defined __GNUC__
913 # define YY_USE(E) ((void) (E))
914 #else
915 # define YY_USE(E) /* empty */
916 #endif
917 
918 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
919 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
920 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
921 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
922     _Pragma ("GCC diagnostic push")                                     \
923     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
924 # else
925 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
926     _Pragma ("GCC diagnostic push")                                     \
927     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
928     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
929 # endif
930 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
931     _Pragma ("GCC diagnostic pop")
932 #else
933 # define YY_INITIAL_VALUE(Value) Value
934 #endif
935 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
936 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
937 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
938 #endif
939 #ifndef YY_INITIAL_VALUE
940 # define YY_INITIAL_VALUE(Value) /* Nothing. */
941 #endif
942 
943 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
944 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
945     _Pragma ("GCC diagnostic push")                            \
946     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
947 # define YY_IGNORE_USELESS_CAST_END            \
948     _Pragma ("GCC diagnostic pop")
949 #endif
950 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
951 # define YY_IGNORE_USELESS_CAST_BEGIN
952 # define YY_IGNORE_USELESS_CAST_END
953 #endif
954 
955 
956 #define YY_ASSERT(E) ((void) (0 && (E)))
957 
958 #if 1
959 
960 /* The parser invokes alloca or malloc; define the necessary symbols.  */
961 
962 # ifdef YYSTACK_USE_ALLOCA
963 #  if YYSTACK_USE_ALLOCA
964 #   ifdef __GNUC__
965 #    define YYSTACK_ALLOC __builtin_alloca
966 #   elif defined __BUILTIN_VA_ARG_INCR
967 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
968 #   elif defined _AIX
969 #    define YYSTACK_ALLOC __alloca
970 #   elif defined _MSC_VER
971 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
972 #    define alloca _alloca
973 #   else
974 #    define YYSTACK_ALLOC alloca
975 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
976 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
977       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
978 #     ifndef EXIT_SUCCESS
979 #      define EXIT_SUCCESS 0
980 #     endif
981 #    endif
982 #   endif
983 #  endif
984 # endif
985 
986 # ifdef YYSTACK_ALLOC
987    /* Pacify GCC's 'empty if-body' warning.  */
988 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
989 #  ifndef YYSTACK_ALLOC_MAXIMUM
990     /* The OS might guarantee only one guard page at the bottom of the stack,
991        and a page size can be as small as 4096 bytes.  So we cannot safely
992        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
993        to allow for a few compiler-allocated temporary stack slots.  */
994 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
995 #  endif
996 # else
997 #  define YYSTACK_ALLOC YYMALLOC
998 #  define YYSTACK_FREE YYFREE
999 #  ifndef YYSTACK_ALLOC_MAXIMUM
1000 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1001 #  endif
1002 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1003        && ! ((defined YYMALLOC || defined malloc) \
1004              && (defined YYFREE || defined free)))
1005 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1006 #   ifndef EXIT_SUCCESS
1007 #    define EXIT_SUCCESS 0
1008 #   endif
1009 #  endif
1010 #  ifndef YYMALLOC
1011 #   define YYMALLOC malloc
1012 #   if ! defined malloc && ! defined EXIT_SUCCESS
1013 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1014 #   endif
1015 #  endif
1016 #  ifndef YYFREE
1017 #   define YYFREE free
1018 #   if ! defined free && ! defined EXIT_SUCCESS
1019 void free (void *); /* INFRINGES ON USER NAME SPACE */
1020 #   endif
1021 #  endif
1022 # endif
1023 #endif /* 1 */
1024 
1025 #if (! defined yyoverflow \
1026      && (! defined __cplusplus \
1027          || (defined KAFKA_LTYPE_IS_TRIVIAL && KAFKA_LTYPE_IS_TRIVIAL \
1028              && defined KAFKA_STYPE_IS_TRIVIAL && KAFKA_STYPE_IS_TRIVIAL)))
1029 
1030 /* A type that is properly aligned for any stack member.  */
1031 union yyalloc
1032 {
1033   yy_state_t yyss_alloc;
1034   YYSTYPE yyvs_alloc;
1035   YYLTYPE yyls_alloc;
1036 };
1037 
1038 /* The size of the maximum gap between one aligned stack and the next.  */
1039 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1040 
1041 /* The size of an array large to enough to hold all stacks, each with
1042    N elements.  */
1043 # define YYSTACK_BYTES(N) \
1044      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1045              + YYSIZEOF (YYLTYPE)) \
1046       + 2 * YYSTACK_GAP_MAXIMUM)
1047 
1048 # define YYCOPY_NEEDED 1
1049 
1050 /* Relocate STACK from its old location to the new one.  The
1051    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1052    elements in the stack, and YYPTR gives the new location of the
1053    stack.  Advance YYPTR to a properly aligned location for the next
1054    stack.  */
1055 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1056     do                                                                  \
1057       {                                                                 \
1058         YYPTRDIFF_T yynewbytes;                                         \
1059         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1060         Stack = &yyptr->Stack_alloc;                                    \
1061         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1062         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1063       }                                                                 \
1064     while (0)
1065 
1066 #endif
1067 
1068 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1069 /* Copy COUNT objects from SRC to DST.  The source and destination do
1070    not overlap.  */
1071 # ifndef YYCOPY
1072 #  if defined __GNUC__ && 1 < __GNUC__
1073 #   define YYCOPY(Dst, Src, Count) \
1074       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1075 #  else
1076 #   define YYCOPY(Dst, Src, Count)              \
1077       do                                        \
1078         {                                       \
1079           YYPTRDIFF_T yyi;                      \
1080           for (yyi = 0; yyi < (Count); yyi++)   \
1081             (Dst)[yyi] = (Src)[yyi];            \
1082         }                                       \
1083       while (0)
1084 #  endif
1085 # endif
1086 #endif /* !YYCOPY_NEEDED */
1087 
1088 /* YYFINAL -- State number of the termination state.  */
1089 #define YYFINAL  4
1090 /* YYLAST -- Last index in YYTABLE.  */
1091 #define YYLAST   128
1092 
1093 /* YYNTOKENS -- Number of terminals.  */
1094 #define YYNTOKENS  172
1095 /* YYNNTS -- Number of nonterminals.  */
1096 #define YYNNTS  27
1097 /* YYNRULES -- Number of rules.  */
1098 #define YYNRULES  61
1099 /* YYNSTATES -- Number of states.  */
1100 #define YYNSTATES  146
1101 
1102 /* YYMAXUTOK -- Last valid token kind.  */
1103 #define YYMAXUTOK   10523
1104 
1105 
1106 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1107    as returned by yylex, with out-of-bounds checking.  */
1108 #define YYTRANSLATE(YYX)                                \
1109   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1110    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1111    : YYSYMBOL_YYUNDEF)
1112 
1113 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1114    as returned by yylex.  */
1115 static const yytype_uint8 yytranslate[] =
1116 {
1117        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1118       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1119       22,    23,     2,     2,     2,     2,     2,     2,     2,     2,
1120        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1121      166,   167,     2,     2,     2,     2,     2,     2,     2,     2,
1122        2,     2,     2,     2,     2,     2,     2,     2,   171,   170,
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,   168,     2,   169,     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,     1,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2075        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2076        2,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2081        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2082        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2083        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2084        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2085        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2086        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2087        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2088        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2089        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2090        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2091        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2093        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2094        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2095        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2096        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2097        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2098        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2099        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2101        2,     2,     2,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2106        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2108        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2109        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2110        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2111        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2112        2,     2,     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        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2116        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2117       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2118       34,    35,    36,     2,     2,     2,     2,     2,     2,     2,
2119       37,     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       38,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2124        2,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2125       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2126       58,    59,    60,    61,    62,     2,     2,     2,     2,     2,
2127       63,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2128       64,    65,    66,     2,     2,     2,     2,     2,     2,     2,
2129       67,    68,     2,     2,     2,     2,     2,     2,     2,     2,
2130       69,    70,    71,     2,     2,     2,     2,     2,     2,     2,
2131       72,    73,    74,     2,     2,     2,     2,     2,     2,     2,
2132       75,    76,    77,     2,     2,     2,     2,     2,     2,     2,
2133       78,     2,    79,    80,    81,    82,    83,     2,     2,     2,
2134       84,    85,     2,     2,     2,     2,     2,     2,     2,     2,
2135        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2136       90,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2137       91,    92,    93,    94,    95,    96,    97,     2,     2,     2,
2138       98,    99,   100,     2,     2,     2,     2,     2,     2,     2,
2139      101,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2140      102,    86,     2,     2,     2,     2,     2,     2,     2,     2,
2141      103,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2142      104,   105,   106,     2,     2,     2,     2,     2,     2,     2,
2143      107,   108,   109,     2,     2,     2,     2,     2,     2,     2,
2144      110,   111,   112,     2,     2,     2,     2,     2,     2,     2,
2145        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2146        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2147      113,   114,    87,     2,    88,    89,     2,     2,     2,     2,
2148        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2149        2,     2,     2,   115,     2,     2,     2,     2,     2,     2,
2150        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2151      116,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2152      117,   118,   119,   120,   121,   122,   123,   124,     2,     2,
2153        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2154      125,   126,   127,     2,     2,     2,     2,     2,     2,     2,
2155      128,   129,     2,     2,     2,     2,     2,     2,     2,     2,
2156        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2157        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2158      130,   131,     2,     2,     2,     2,     2,     2,     2,     2,
2159      132,   133,   134,   135,   136,   137,     2,     2,     2,     2,
2160      138,   139,   140,   141,   142,   143,     2,     2,     2,     2,
2161        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2162        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2163        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2164        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2165        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2166        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2167      144,     2,   145,   146,   147,   148,   149,   150,   151,   152,
2168      153,   154,   155,   156,     2,   157,   158,   159,   160,   161,
2169      162,   163,   164,   165
2170 };
2171 
2172 #if KAFKA_DEBUG
2173 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
2174 static const yytype_int16 yyrline[] =
2175 {
2176        0,   417,   417,   416,   424,   425,   429,   433,   438,   442,
2177      446,   450,   451,   452,   453,   454,   455,   456,   457,   458,
2178      458,   463,   463,   475,   476,   480,   487,   494,   736,   743,
2179      756,   756,   767,   768,   772,   773,   774,   783,   790,   797,
2180      804,   833,   834,   835,   914,   949,   977,   978,   979,   980,
2181      984,   985,   989,   994,   998,   999,  1151,  1152,  1153,  1154,
2182     1155,  1156
2183 };
2184 #endif
2185 
2186 /** Accessing symbol of state STATE.  */
2187 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2188 
2189 #if 1
2190 /* The user-facing name of the symbol whose (internal) number is
2191    YYSYMBOL.  No bounds checking.  */
2192 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2193 
2194 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2195    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
2196 static const char *const yytname[] =
2197 {
2198   "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2199   "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2200   "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2201   "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2202   "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2203   "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2204   "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2205   "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2206   "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2207   "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2208   "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2209   "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2210   "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2211   "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2212   "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2213   "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2214   "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2215   "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2216   "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2217   "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2218   "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2219   "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2220   "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2221   "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2222   "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2223   "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2224   "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2225   "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2226   "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2227   "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2228   "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2229   "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2230   "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2231   "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2232   "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2233   "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2234   "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2235   "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2236   "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2237   "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2238   "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2239   "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2240   "KW_FETCH_NO_DATA_DELAY", "KW_KAFKA", "KW_TOPIC", "KW_FALLBACK_TOPIC",
2241   "KW_CONFIG", "KW_FLUSH_TIMEOUT_ON_SHUTDOWN",
2242   "KW_FLUSH_TIMEOUT_ON_RELOAD", "KW_POLL_TIMEOUT", "KW_BOOTSTRAP_SERVERS",
2243   "KW_SYNC_SEND", "'('", "')'", "'{'", "'}'", "';'", "':'", "$accept",
2244   "start", "$@1", "kafka_options", "kafka_option", "$@2",
2245   "kafka_properties", "$@3", "kafka_properties_list", "kafka_property",
2246   "template_content_inner", "template_content", "$@9", "string", "yesno",
2247   "nonnegative_integer64", "nonnegative_integer", "positive_integer64",
2248   "positive_integer", "string_or_number", "driver_option", "inner_dest",
2249   "dest_driver_option", "threaded_dest_driver_batch_option",
2250   "threaded_dest_driver_workers_option",
2251   "threaded_dest_driver_general_option", "template_option", YY_NULLPTR
2252 };
2253 
2254 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2255 yysymbol_name (yysymbol_kind_t yysymbol)
2256 {
2257   return yytname[yysymbol];
2258 }
2259 #endif
2260 
2261 #define YYPACT_NINF (-150)
2262 
2263 #define yypact_value_is_default(Yyn) \
2264   ((Yyn) == YYPACT_NINF)
2265 
2266 #define YYTABLE_NINF (-6)
2267 
2268 #define yytable_value_is_error(Yyn) \
2269   0
2270 
2271 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2272    STATE-NUM.  */
2273 static const yytype_int16 yypact[] =
2274 {
2275        2,  -149,    13,  -150,  -150,  -147,   -54,  -139,  -119,  -115,
2276     -114,  -113,  -111,  -105,  -104,  -150,  -102,  -101,  -100,   -97,
2277      -96,   -95,   -94,   -93,   -92,   -91,   -99,   -54,   -72,  -150,
2278     -150,  -150,  -150,  -150,  -150,   -63,   -61,   -63,   -63,   -61,
2279     -126,   -63,  -150,  -150,   -63,  -150,  -126,  -150,   -61,   -61,
2280      -61,  -126,  -118,  -150,  -150,   -87,   -86,   -85,   -81,   -80,
2281      -79,  -150,  -150,  -150,   -84,  -150,  -150,   -78,   -76,   -75,
2282      -73,  -150,  -150,   -71,   -70,   -69,  -110,   -68,   -67,   -65,
2283      -64,   -55,  -126,   -53,   -52,   -51,   -50,  -150,  -150,  -150,
2284      -49,  -126,   -61,  -126,  -126,  -126,  -126,  -150,  -150,  -150,
2285     -150,  -150,  -150,  -150,  -150,   -47,  -150,  -150,  -150,  -150,
2286     -150,  -150,  -150,  -150,  -126,  -103,  -150,  -150,  -150,  -150,
2287     -150,   -46,   -45,   -44,   -43,   -42,   -41,  -126,  -150,   -98,
2288     -150,  -150,   -98,  -150,  -150,  -150,  -150,  -150,  -150,  -150,
2289     -150,   -40,  -150,   -39,  -150,  -150
2290 };
2291 
2292 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2293    Performed when YYTABLE does not specify something else to do.  Zero
2294    means the default is an error.  */
2295 static const yytype_int8 yydefact[] =
2296 {
2297        0,     0,     0,     2,     1,     0,    19,     0,     0,     0,
2298        0,     0,     0,     0,     0,    45,     0,     0,     0,     0,
2299        0,     0,     0,     0,     0,     0,     0,    19,     0,    49,
2300       48,    55,    17,    18,    16,     0,     0,     0,     0,     0,
2301        0,     0,    30,    30,     0,    30,     0,    21,     0,     0,
2302        0,     0,     0,     3,     4,     0,     0,     0,     0,     0,
2303        0,    20,    39,    40,     0,    37,    38,     0,     0,     0,
2304        0,    32,    33,     0,     0,     0,     0,     0,     0,     0,
2305        0,     0,    24,     0,     0,     0,     0,    34,    35,    36,
2306        0,     0,     0,     0,     0,     0,     0,    52,    50,    51,
2307       46,    47,    44,    54,    10,    32,    31,    28,     9,    53,
2308        6,     7,     8,    22,    24,     0,    11,    12,    13,    14,
2309       15,     0,     0,     0,     0,     0,     0,     0,    23,     0,
2310       42,    43,     0,    41,    27,    56,    57,    58,    59,    60,
2311       61,     0,    26,     0,    29,    25
2312 };
2313 
2314 /* YYPGOTO[NTERM-NUM].  */
2315 static const yytype_int16 yypgoto[] =
2316 {
2317     -150,  -150,  -150,    61,  -150,  -150,  -150,  -150,   -19,  -150,
2318     -150,     5,  -150,   -37,  -150,  -150,   -32,  -150,   -12,   -83,
2319     -150,  -150,  -150,  -150,  -150,  -150,  -150
2320 };
2321 
2322 /* YYDEFGOTO[NTERM-NUM].  */
2323 static const yytype_uint8 yydefgoto[] =
2324 {
2325        0,     2,     5,    26,    27,    28,    81,    82,   113,   114,
2326      106,    75,    76,   133,    90,    66,    67,    63,    64,   134,
2327       29,    30,    31,    32,    33,    34,    61
2328 };
2329 
2330 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2331    positive, shift that token.  If negative, reduce the rule whose
2332    number is the opposite.  If YYTABLE_NINF, syntax error.  */
2333 static const yytype_int16 yytable[] =
2334 {
2335        7,     8,     9,    73,    55,    56,     1,    70,     3,    80,
2336       87,    88,    71,     4,    86,    72,    83,    84,    85,     6,
2337       57,    89,    58,    59,    10,    68,    69,    35,   105,    74,
2338       11,    72,    78,    12,   129,    71,   130,   131,    72,   107,
2339       71,   130,   131,    72,    13,   115,   142,    36,    77,   143,
2340       79,    37,    38,    39,   121,    40,   123,   124,   125,   126,
2341      122,    41,    42,   132,    43,    44,    45,    14,    53,    46,
2342       47,    48,    49,    50,    51,    52,    62,   115,    65,    91,
2343       92,    93,    60,    97,    15,    94,    95,    96,    54,    98,
2344      141,    99,   100,    16,   101,   128,   102,   103,   104,   108,
2345      109,    17,   110,   111,    18,    19,    20,    21,    22,    23,
2346       24,    25,   112,    -5,   116,   117,   118,   119,   120,   127,
2347        0,   135,   136,   137,   138,   139,   140,   144,   145
2348 };
2349 
2350 static const yytype_int16 yycheck[] =
2351 {
2352       54,    55,    56,    40,    76,    77,     4,    39,   157,    46,
2353      128,   129,   138,     0,    51,   141,    48,    49,    50,   166,
2354       92,   139,    94,    95,    78,    37,    38,   166,   138,    41,
2355       84,   141,    44,    87,   137,   138,   139,   140,   141,    76,
2356      138,   139,   140,   141,    98,    82,   129,   166,    43,   132,
2357       45,   166,   166,   166,    91,   166,    93,    94,    95,    96,
2358       92,   166,   166,   166,   166,   166,   166,   121,   167,   166,
2359      166,   166,   166,   166,   166,   166,   139,   114,   139,   166,
2360      166,   166,   154,   167,   138,   166,   166,   166,    27,   167,
2361      127,   167,   167,   147,   167,   114,   167,   167,   167,   167,
2362      167,   155,   167,   167,   158,   159,   160,   161,   162,   163,
2363      164,   165,   167,   167,   167,   167,   167,   167,   167,   166,
2364       -1,   167,   167,   167,   167,   167,   167,   167,   167
2365 };
2366 
2367 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2368    state STATE-NUM.  */
2369 static const yytype_uint8 yystos[] =
2370 {
2371        0,     4,   173,   157,     0,   174,   166,    54,    55,    56,
2372       78,    84,    87,    98,   121,   138,   147,   155,   158,   159,
2373      160,   161,   162,   163,   164,   165,   175,   176,   177,   192,
2374      193,   194,   195,   196,   197,   166,   166,   166,   166,   166,
2375      166,   166,   166,   166,   166,   166,   166,   166,   166,   166,
2376      166,   166,   166,   167,   175,    76,    77,    92,    94,    95,
2377      154,   198,   139,   189,   190,   139,   187,   188,   190,   190,
2378      188,   138,   141,   185,   190,   183,   184,   183,   190,   183,
2379      185,   178,   179,   188,   188,   188,   185,   128,   129,   139,
2380      186,   166,   166,   166,   166,   166,   166,   167,   167,   167,
2381      167,   167,   167,   167,   167,   138,   182,   185,   167,   167,
2382      167,   167,   167,   180,   181,   185,   167,   167,   167,   167,
2383      167,   185,   188,   185,   185,   185,   185,   166,   180,   137,
2384      139,   140,   166,   185,   191,   167,   167,   167,   167,   167,
2385      167,   185,   191,   191,   167,   167
2386 };
2387 
2388 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
2389 static const yytype_uint8 yyr1[] =
2390 {
2391        0,   172,   174,   173,   175,   175,   176,   176,   176,   176,
2392      176,   176,   176,   176,   176,   176,   176,   176,   176,   177,
2393      176,   179,   178,   180,   180,   181,   181,   181,   182,   182,
2394      184,   183,   185,   185,   186,   186,   186,   187,   188,   189,
2395      190,   191,   191,   191,   192,   193,   194,   194,   194,   194,
2396      195,   195,   196,   197,   197,   197,   198,   198,   198,   198,
2397      198,   198
2398 };
2399 
2400 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
2401 static const yytype_int8 yyr2[] =
2402 {
2403        0,     2,     0,     6,     2,     0,     4,     4,     4,     4,
2404        4,     4,     4,     4,     4,     4,     1,     1,     1,     0,
2405        2,     0,     2,     2,     0,     4,     3,     2,     1,     4,
2406        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2407        1,     1,     1,     1,     4,     1,     4,     4,     1,     1,
2408        4,     4,     4,     4,     4,     1,     4,     4,     4,     4,
2409        4,     4
2410 };
2411 
2412 
2413 enum { YYENOMEM = -2 };
2414 
2415 #define yyerrok         (yyerrstatus = 0)
2416 #define yyclearin       (yychar = KAFKA_EMPTY)
2417 
2418 #define YYACCEPT        goto yyacceptlab
2419 #define YYABORT         goto yyabortlab
2420 #define YYERROR         goto yyerrorlab
2421 #define YYNOMEM         goto yyexhaustedlab
2422 
2423 
2424 #define YYRECOVERING()  (!!yyerrstatus)
2425 
2426 #define YYBACKUP(Token, Value)                                    \
2427   do                                                              \
2428     if (yychar == KAFKA_EMPTY)                                        \
2429       {                                                           \
2430         yychar = (Token);                                         \
2431         yylval = (Value);                                         \
2432         YYPOPSTACK (yylen);                                       \
2433         yystate = *yyssp;                                         \
2434         goto yybackup;                                            \
2435       }                                                           \
2436     else                                                          \
2437       {                                                           \
2438         yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2439         YYERROR;                                                  \
2440       }                                                           \
2441   while (0)
2442 
2443 /* Backward compatibility with an undocumented macro.
2444    Use KAFKA_error or KAFKA_UNDEF. */
2445 #define YYERRCODE KAFKA_UNDEF
2446 
2447 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2448    If N is 0, then set CURRENT to the empty location which ends
2449    the previous symbol: RHS[0] (always defined).  */
2450 
2451 #ifndef YYLLOC_DEFAULT
2452 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2453     do                                                                  \
2454       if (N)                                                            \
2455         {                                                               \
2456           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2457           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2458           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2459           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2460         }                                                               \
2461       else                                                              \
2462         {                                                               \
2463           (Current).first_line   = (Current).last_line   =              \
2464             YYRHSLOC (Rhs, 0).last_line;                                \
2465           (Current).first_column = (Current).last_column =              \
2466             YYRHSLOC (Rhs, 0).last_column;                              \
2467         }                                                               \
2468     while (0)
2469 #endif
2470 
2471 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2472 
2473 
2474 /* Enable debugging if requested.  */
2475 #if KAFKA_DEBUG
2476 
2477 # ifndef YYFPRINTF
2478 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2479 #  define YYFPRINTF fprintf
2480 # endif
2481 
2482 # define YYDPRINTF(Args)                        \
2483 do {                                            \
2484   if (yydebug)                                  \
2485     YYFPRINTF Args;                             \
2486 } while (0)
2487 
2488 
2489 /* YYLOCATION_PRINT -- Print the location on the stream.
2490    This macro was not mandated originally: define only if we know
2491    we won't break user code: when these are the locations we know.  */
2492 
2493 # ifndef YYLOCATION_PRINT
2494 
2495 #  if defined YY_LOCATION_PRINT
2496 
2497    /* Temporary convenience wrapper in case some people defined the
2498       undocumented and private YY_LOCATION_PRINT macros.  */
2499 #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
2500 
2501 #  elif defined KAFKA_LTYPE_IS_TRIVIAL && KAFKA_LTYPE_IS_TRIVIAL
2502 
2503 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2504 
2505 YY_ATTRIBUTE_UNUSED
2506 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2507 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2508 {
2509   int res = 0;
2510   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2511   if (0 <= yylocp->first_line)
2512     {
2513       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2514       if (0 <= yylocp->first_column)
2515         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2516     }
2517   if (0 <= yylocp->last_line)
2518     {
2519       if (yylocp->first_line < yylocp->last_line)
2520         {
2521           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2522           if (0 <= end_col)
2523             res += YYFPRINTF (yyo, ".%d", end_col);
2524         }
2525       else if (0 <= end_col && yylocp->first_column < end_col)
2526         res += YYFPRINTF (yyo, "-%d", end_col);
2527     }
2528   return res;
2529 }
2530 
2531 #   define YYLOCATION_PRINT  yy_location_print_
2532 
2533     /* Temporary convenience wrapper in case some people defined the
2534        undocumented and private YY_LOCATION_PRINT macros.  */
2535 #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
2536 
2537 #  else
2538 
2539 #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
2540     /* Temporary convenience wrapper in case some people defined the
2541        undocumented and private YY_LOCATION_PRINT macros.  */
2542 #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
2543 
2544 #  endif
2545 # endif /* !defined YYLOCATION_PRINT */
2546 
2547 
2548 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2549 do {                                                                      \
2550   if (yydebug)                                                            \
2551     {                                                                     \
2552       YYFPRINTF (stderr, "%s ", Title);                                   \
2553       yy_symbol_print (stderr,                                            \
2554                   Kind, Value, Location, lexer, instance, arg); \
2555       YYFPRINTF (stderr, "\n");                                           \
2556     }                                                                     \
2557 } while (0)
2558 
2559 
2560 /*-----------------------------------.
2561 | Print this symbol's value on YYO.  |
2562 `-----------------------------------*/
2563 
2564 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2565 yy_symbol_value_print (FILE *yyo,
2566                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2567 {
2568   FILE *yyoutput = yyo;
2569   YY_USE (yyoutput);
2570   YY_USE (yylocationp);
2571   YY_USE (lexer);
2572   YY_USE (instance);
2573   YY_USE (arg);
2574   if (!yyvaluep)
2575     return;
2576   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2577   YY_USE (yykind);
2578   YY_IGNORE_MAYBE_UNINITIALIZED_END
2579 }
2580 
2581 
2582 /*---------------------------.
2583 | Print this symbol on YYO.  |
2584 `---------------------------*/
2585 
2586 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2587 yy_symbol_print (FILE *yyo,
2588                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2589 {
2590   YYFPRINTF (yyo, "%s %s (",
2591              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2592 
2593   YYLOCATION_PRINT (yyo, yylocationp);
2594   YYFPRINTF (yyo, ": ");
2595   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2596   YYFPRINTF (yyo, ")");
2597 }
2598 
2599 /*------------------------------------------------------------------.
2600 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2601 | TOP (included).                                                   |
2602 `------------------------------------------------------------------*/
2603 
2604 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2605 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2606 {
2607   YYFPRINTF (stderr, "Stack now");
2608   for (; yybottom <= yytop; yybottom++)
2609     {
2610       int yybot = *yybottom;
2611       YYFPRINTF (stderr, " %d", yybot);
2612     }
2613   YYFPRINTF (stderr, "\n");
2614 }
2615 
2616 # define YY_STACK_PRINT(Bottom, Top)                            \
2617 do {                                                            \
2618   if (yydebug)                                                  \
2619     yy_stack_print ((Bottom), (Top));                           \
2620 } while (0)
2621 
2622 
2623 /*------------------------------------------------.
2624 | Report that the YYRULE is going to be reduced.  |
2625 `------------------------------------------------*/
2626 
2627 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2628 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2629                  int yyrule, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2630 {
2631   int yylno = yyrline[yyrule];
2632   int yynrhs = yyr2[yyrule];
2633   int yyi;
2634   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2635              yyrule - 1, yylno);
2636   /* The symbols being reduced.  */
2637   for (yyi = 0; yyi < yynrhs; yyi++)
2638     {
2639       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2640       yy_symbol_print (stderr,
2641                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2642                        &yyvsp[(yyi + 1) - (yynrhs)],
2643                        &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2644       YYFPRINTF (stderr, "\n");
2645     }
2646 }
2647 
2648 # define YY_REDUCE_PRINT(Rule)          \
2649 do {                                    \
2650   if (yydebug)                          \
2651     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2652 } while (0)
2653 
2654 /* Nonzero means print parse trace.  It is left uninitialized so that
2655    multiple parsers can coexist.  */
2656 int yydebug;
2657 #else /* !KAFKA_DEBUG */
2658 # define YYDPRINTF(Args) ((void) 0)
2659 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2660 # define YY_STACK_PRINT(Bottom, Top)
2661 # define YY_REDUCE_PRINT(Rule)
2662 #endif /* !KAFKA_DEBUG */
2663 
2664 
2665 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2666 #ifndef YYINITDEPTH
2667 # define YYINITDEPTH 200
2668 #endif
2669 
2670 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2671    if the built-in stack extension method is used).
2672 
2673    Do not make this value too large; the results are undefined if
2674    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2675    evaluated with infinite-precision integer arithmetic.  */
2676 
2677 #ifndef YYMAXDEPTH
2678 # define YYMAXDEPTH 10000
2679 #endif
2680 
2681 
2682 /* Context of a parse error.  */
2683 typedef struct
2684 {
2685   yy_state_t *yyssp;
2686   yysymbol_kind_t yytoken;
2687   YYLTYPE *yylloc;
2688 } yypcontext_t;
2689 
2690 /* Put in YYARG at most YYARGN of the expected tokens given the
2691    current YYCTX, and return the number of tokens stored in YYARG.  If
2692    YYARG is null, return the number of expected tokens (guaranteed to
2693    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
2694    Return 0 if there are more than YYARGN expected tokens, yet fill
2695    YYARG up to YYARGN. */
2696 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2697 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2698                             yysymbol_kind_t yyarg[], int yyargn)
2699 {
2700   /* Actual size of YYARG. */
2701   int yycount = 0;
2702   int yyn = yypact[+*yyctx->yyssp];
2703   if (!yypact_value_is_default (yyn))
2704     {
2705       /* Start YYX at -YYN if negative to avoid negative indexes in
2706          YYCHECK.  In other words, skip the first -YYN actions for
2707          this state because they are default actions.  */
2708       int yyxbegin = yyn < 0 ? -yyn : 0;
2709       /* Stay within bounds of both yycheck and yytname.  */
2710       int yychecklim = YYLAST - yyn + 1;
2711       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2712       int yyx;
2713       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2714         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2715             && !yytable_value_is_error (yytable[yyx + yyn]))
2716           {
2717             if (!yyarg)
2718               ++yycount;
2719             else if (yycount == yyargn)
2720               return 0;
2721             else
2722               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2723           }
2724     }
2725   if (yyarg && yycount == 0 && 0 < yyargn)
2726     yyarg[0] = YYSYMBOL_YYEMPTY;
2727   return yycount;
2728 }
2729 
2730 
2731 
2732 
2733 #ifndef yystrlen
2734 # if defined __GLIBC__ && defined _STRING_H
2735 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2736 # else
2737 /* Return the length of YYSTR.  */
2738 static YYPTRDIFF_T
yystrlen(const char * yystr)2739 yystrlen (const char *yystr)
2740 {
2741   YYPTRDIFF_T yylen;
2742   for (yylen = 0; yystr[yylen]; yylen++)
2743     continue;
2744   return yylen;
2745 }
2746 # endif
2747 #endif
2748 
2749 #ifndef yystpcpy
2750 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2751 #  define yystpcpy stpcpy
2752 # else
2753 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2754    YYDEST.  */
2755 static char *
yystpcpy(char * yydest,const char * yysrc)2756 yystpcpy (char *yydest, const char *yysrc)
2757 {
2758   char *yyd = yydest;
2759   const char *yys = yysrc;
2760 
2761   while ((*yyd++ = *yys++) != '\0')
2762     continue;
2763 
2764   return yyd - 1;
2765 }
2766 # endif
2767 #endif
2768 
2769 #ifndef yytnamerr
2770 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2771    quotes and backslashes, so that it's suitable for yyerror.  The
2772    heuristic is that double-quoting is unnecessary unless the string
2773    contains an apostrophe, a comma, or backslash (other than
2774    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2775    null, do not copy; instead, return the length of what the result
2776    would have been.  */
2777 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2778 yytnamerr (char *yyres, const char *yystr)
2779 {
2780   if (*yystr == '"')
2781     {
2782       YYPTRDIFF_T yyn = 0;
2783       char const *yyp = yystr;
2784       for (;;)
2785         switch (*++yyp)
2786           {
2787           case '\'':
2788           case ',':
2789             goto do_not_strip_quotes;
2790 
2791           case '\\':
2792             if (*++yyp != '\\')
2793               goto do_not_strip_quotes;
2794             else
2795               goto append;
2796 
2797           append:
2798           default:
2799             if (yyres)
2800               yyres[yyn] = *yyp;
2801             yyn++;
2802             break;
2803 
2804           case '"':
2805             if (yyres)
2806               yyres[yyn] = '\0';
2807             return yyn;
2808           }
2809     do_not_strip_quotes: ;
2810     }
2811 
2812   if (yyres)
2813     return yystpcpy (yyres, yystr) - yyres;
2814   else
2815     return yystrlen (yystr);
2816 }
2817 #endif
2818 
2819 
2820 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2821 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2822                            yysymbol_kind_t yyarg[], int yyargn)
2823 {
2824   /* Actual size of YYARG. */
2825   int yycount = 0;
2826   /* There are many possibilities here to consider:
2827      - If this state is a consistent state with a default action, then
2828        the only way this function was invoked is if the default action
2829        is an error action.  In that case, don't check for expected
2830        tokens because there are none.
2831      - The only way there can be no lookahead present (in yychar) is if
2832        this state is a consistent state with a default action.  Thus,
2833        detecting the absence of a lookahead is sufficient to determine
2834        that there is no unexpected or expected token to report.  In that
2835        case, just report a simple "syntax error".
2836      - Don't assume there isn't a lookahead just because this state is a
2837        consistent state with a default action.  There might have been a
2838        previous inconsistent state, consistent state with a non-default
2839        action, or user semantic action that manipulated yychar.
2840      - Of course, the expected token list depends on states to have
2841        correct lookahead information, and it depends on the parser not
2842        to perform extra reductions after fetching a lookahead from the
2843        scanner and before detecting a syntax error.  Thus, state merging
2844        (from LALR or IELR) and default reductions corrupt the expected
2845        token list.  However, the list is correct for canonical LR with
2846        one exception: it will still contain any token that will not be
2847        accepted due to an error action in a later state.
2848   */
2849   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2850     {
2851       int yyn;
2852       if (yyarg)
2853         yyarg[yycount] = yyctx->yytoken;
2854       ++yycount;
2855       yyn = yypcontext_expected_tokens (yyctx,
2856                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2857       if (yyn == YYENOMEM)
2858         return YYENOMEM;
2859       else
2860         yycount += yyn;
2861     }
2862   return yycount;
2863 }
2864 
2865 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2866    about the unexpected token YYTOKEN for the state stack whose top is
2867    YYSSP.
2868 
2869    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
2870    not large enough to hold the message.  In that case, also set
2871    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
2872    required number of bytes is too large to store.  */
2873 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2874 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2875                 const yypcontext_t *yyctx)
2876 {
2877   enum { YYARGS_MAX = 5 };
2878   /* Internationalized format string. */
2879   const char *yyformat = YY_NULLPTR;
2880   /* Arguments of yyformat: reported tokens (one for the "unexpected",
2881      one per "expected"). */
2882   yysymbol_kind_t yyarg[YYARGS_MAX];
2883   /* Cumulated lengths of YYARG.  */
2884   YYPTRDIFF_T yysize = 0;
2885 
2886   /* Actual size of YYARG. */
2887   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2888   if (yycount == YYENOMEM)
2889     return YYENOMEM;
2890 
2891   switch (yycount)
2892     {
2893 #define YYCASE_(N, S)                       \
2894       case N:                               \
2895         yyformat = S;                       \
2896         break
2897     default: /* Avoid compiler warnings. */
2898       YYCASE_(0, YY_("syntax error"));
2899       YYCASE_(1, YY_("syntax error, unexpected %s"));
2900       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2901       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2902       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2903       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2904 #undef YYCASE_
2905     }
2906 
2907   /* Compute error message size.  Don't count the "%s"s, but reserve
2908      room for the terminator.  */
2909   yysize = yystrlen (yyformat) - 2 * yycount + 1;
2910   {
2911     int yyi;
2912     for (yyi = 0; yyi < yycount; ++yyi)
2913       {
2914         YYPTRDIFF_T yysize1
2915           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2916         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2917           yysize = yysize1;
2918         else
2919           return YYENOMEM;
2920       }
2921   }
2922 
2923   if (*yymsg_alloc < yysize)
2924     {
2925       *yymsg_alloc = 2 * yysize;
2926       if (! (yysize <= *yymsg_alloc
2927              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2928         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2929       return -1;
2930     }
2931 
2932   /* Avoid sprintf, as that infringes on the user's name space.
2933      Don't have undefined behavior even if the translation
2934      produced a string with the wrong number of "%s"s.  */
2935   {
2936     char *yyp = *yymsg;
2937     int yyi = 0;
2938     while ((*yyp = *yyformat) != '\0')
2939       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2940         {
2941           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2942           yyformat += 2;
2943         }
2944       else
2945         {
2946           ++yyp;
2947           ++yyformat;
2948         }
2949   }
2950   return 0;
2951 }
2952 
2953 
2954 /*-----------------------------------------------.
2955 | Release the memory associated to this symbol.  |
2956 `-----------------------------------------------*/
2957 
2958 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2959 yydestruct (const char *yymsg,
2960             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2961 {
2962   YY_USE (yyvaluep);
2963   YY_USE (yylocationp);
2964   YY_USE (lexer);
2965   YY_USE (instance);
2966   YY_USE (arg);
2967   if (!yymsg)
2968     yymsg = "Deleting";
2969   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2970 
2971   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2972   switch (yykind)
2973     {
2974     case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER  */
2975 #line 318 "modules/kafka/kafka-grammar.y"
2976             { free(((*yyvaluep).cptr)); }
2977 #line 2978 "modules/kafka/kafka-grammar.c"
2978         break;
2979 
2980     case YYSYMBOL_LL_STRING: /* LL_STRING  */
2981 #line 318 "modules/kafka/kafka-grammar.y"
2982             { free(((*yyvaluep).cptr)); }
2983 #line 2984 "modules/kafka/kafka-grammar.c"
2984         break;
2985 
2986     case YYSYMBOL_LL_BLOCK: /* LL_BLOCK  */
2987 #line 318 "modules/kafka/kafka-grammar.y"
2988             { free(((*yyvaluep).cptr)); }
2989 #line 2990 "modules/kafka/kafka-grammar.c"
2990         break;
2991 
2992     case YYSYMBOL_string: /* string  */
2993 #line 318 "modules/kafka/kafka-grammar.y"
2994             { free(((*yyvaluep).cptr)); }
2995 #line 2996 "modules/kafka/kafka-grammar.c"
2996         break;
2997 
2998     case YYSYMBOL_string_or_number: /* string_or_number  */
2999 #line 318 "modules/kafka/kafka-grammar.y"
3000             { free(((*yyvaluep).cptr)); }
3001 #line 3002 "modules/kafka/kafka-grammar.c"
3002         break;
3003 
3004       default:
3005         break;
3006     }
3007   YY_IGNORE_MAYBE_UNINITIALIZED_END
3008 }
3009 
3010 
3011 
3012 
3013 
3014 
3015 /*----------.
3016 | yyparse.  |
3017 `----------*/
3018 
3019 int
yyparse(CfgLexer * lexer,LogDriver ** instance,gpointer arg)3020 yyparse (CfgLexer *lexer, LogDriver **instance, gpointer arg)
3021 {
3022 /* Lookahead token kind.  */
3023 int yychar;
3024 
3025 
3026 /* The semantic value of the lookahead symbol.  */
3027 /* Default value used for initialization, for pacifying older GCCs
3028    or non-GCC compilers.  */
3029 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3030 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3031 
3032 /* Location data for the lookahead symbol.  */
3033 static YYLTYPE yyloc_default
3034 # if defined KAFKA_LTYPE_IS_TRIVIAL && KAFKA_LTYPE_IS_TRIVIAL
3035   = { 1, 1, 1, 1 }
3036 # endif
3037 ;
3038 YYLTYPE yylloc = yyloc_default;
3039 
3040     /* Number of syntax errors so far.  */
3041     int yynerrs = 0;
3042 
3043     yy_state_fast_t yystate = 0;
3044     /* Number of tokens to shift before error messages enabled.  */
3045     int yyerrstatus = 0;
3046 
3047     /* Refer to the stacks through separate pointers, to allow yyoverflow
3048        to reallocate them elsewhere.  */
3049 
3050     /* Their size.  */
3051     YYPTRDIFF_T yystacksize = YYINITDEPTH;
3052 
3053     /* The state stack: array, bottom, top.  */
3054     yy_state_t yyssa[YYINITDEPTH];
3055     yy_state_t *yyss = yyssa;
3056     yy_state_t *yyssp = yyss;
3057 
3058     /* The semantic value stack: array, bottom, top.  */
3059     YYSTYPE yyvsa[YYINITDEPTH];
3060     YYSTYPE *yyvs = yyvsa;
3061     YYSTYPE *yyvsp = yyvs;
3062 
3063     /* The location stack: array, bottom, top.  */
3064     YYLTYPE yylsa[YYINITDEPTH];
3065     YYLTYPE *yyls = yylsa;
3066     YYLTYPE *yylsp = yyls;
3067 
3068   int yyn;
3069   /* The return value of yyparse.  */
3070   int yyresult;
3071   /* Lookahead symbol kind.  */
3072   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
3073   /* The variables used to return semantic value and location from the
3074      action routines.  */
3075   YYSTYPE yyval;
3076   YYLTYPE yyloc;
3077 
3078   /* The locations where the error started and ended.  */
3079   YYLTYPE yyerror_range[3];
3080 
3081   /* Buffer for error messages, and its allocated size.  */
3082   char yymsgbuf[128];
3083   char *yymsg = yymsgbuf;
3084   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
3085 
3086 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
3087 
3088   /* The number of symbols on the RHS of the reduced rule.
3089      Keep to zero when no symbol should be popped.  */
3090   int yylen = 0;
3091 
3092   YYDPRINTF ((stderr, "Starting parse\n"));
3093 
3094   yychar = KAFKA_EMPTY; /* Cause a token to be read.  */
3095 
3096   yylsp[0] = yylloc;
3097   goto yysetstate;
3098 
3099 
3100 /*------------------------------------------------------------.
3101 | yynewstate -- push a new state, which is found in yystate.  |
3102 `------------------------------------------------------------*/
3103 yynewstate:
3104   /* In all cases, when you get here, the value and location stacks
3105      have just been pushed.  So pushing a state here evens the stacks.  */
3106   yyssp++;
3107 
3108 
3109 /*--------------------------------------------------------------------.
3110 | yysetstate -- set current state (the top of the stack) to yystate.  |
3111 `--------------------------------------------------------------------*/
3112 yysetstate:
3113   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3114   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3115   YY_IGNORE_USELESS_CAST_BEGIN
3116   *yyssp = YY_CAST (yy_state_t, yystate);
3117   YY_IGNORE_USELESS_CAST_END
3118   YY_STACK_PRINT (yyss, yyssp);
3119 
3120   if (yyss + yystacksize - 1 <= yyssp)
3121 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3122     YYNOMEM;
3123 #else
3124     {
3125       /* Get the current used size of the three stacks, in elements.  */
3126       YYPTRDIFF_T yysize = yyssp - yyss + 1;
3127 
3128 # if defined yyoverflow
3129       {
3130         /* Give user a chance to reallocate the stack.  Use copies of
3131            these so that the &'s don't force the real ones into
3132            memory.  */
3133         yy_state_t *yyss1 = yyss;
3134         YYSTYPE *yyvs1 = yyvs;
3135         YYLTYPE *yyls1 = yyls;
3136 
3137         /* Each stack pointer address is followed by the size of the
3138            data in use in that stack, in bytes.  This used to be a
3139            conditional around just the two extra args, but that might
3140            be undefined if yyoverflow is a macro.  */
3141         yyoverflow (YY_("memory exhausted"),
3142                     &yyss1, yysize * YYSIZEOF (*yyssp),
3143                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
3144                     &yyls1, yysize * YYSIZEOF (*yylsp),
3145                     &yystacksize);
3146         yyss = yyss1;
3147         yyvs = yyvs1;
3148         yyls = yyls1;
3149       }
3150 # else /* defined YYSTACK_RELOCATE */
3151       /* Extend the stack our own way.  */
3152       if (YYMAXDEPTH <= yystacksize)
3153         YYNOMEM;
3154       yystacksize *= 2;
3155       if (YYMAXDEPTH < yystacksize)
3156         yystacksize = YYMAXDEPTH;
3157 
3158       {
3159         yy_state_t *yyss1 = yyss;
3160         union yyalloc *yyptr =
3161           YY_CAST (union yyalloc *,
3162                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3163         if (! yyptr)
3164           YYNOMEM;
3165         YYSTACK_RELOCATE (yyss_alloc, yyss);
3166         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3167         YYSTACK_RELOCATE (yyls_alloc, yyls);
3168 #  undef YYSTACK_RELOCATE
3169         if (yyss1 != yyssa)
3170           YYSTACK_FREE (yyss1);
3171       }
3172 # endif
3173 
3174       yyssp = yyss + yysize - 1;
3175       yyvsp = yyvs + yysize - 1;
3176       yylsp = yyls + yysize - 1;
3177 
3178       YY_IGNORE_USELESS_CAST_BEGIN
3179       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3180                   YY_CAST (long, yystacksize)));
3181       YY_IGNORE_USELESS_CAST_END
3182 
3183       if (yyss + yystacksize - 1 <= yyssp)
3184         YYABORT;
3185     }
3186 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3187 
3188 
3189   if (yystate == YYFINAL)
3190     YYACCEPT;
3191 
3192   goto yybackup;
3193 
3194 
3195 /*-----------.
3196 | yybackup.  |
3197 `-----------*/
3198 yybackup:
3199   /* Do appropriate processing given the current state.  Read a
3200      lookahead token if we need one and don't already have one.  */
3201 
3202   /* First try to decide what to do without reference to lookahead token.  */
3203   yyn = yypact[yystate];
3204   if (yypact_value_is_default (yyn))
3205     goto yydefault;
3206 
3207   /* Not known => get a lookahead token if don't already have one.  */
3208 
3209   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
3210   if (yychar == KAFKA_EMPTY)
3211     {
3212       YYDPRINTF ((stderr, "Reading a token\n"));
3213       yychar = yylex (&yylval, &yylloc, lexer);
3214     }
3215 
3216   if (yychar <= KAFKA_EOF)
3217     {
3218       yychar = KAFKA_EOF;
3219       yytoken = YYSYMBOL_YYEOF;
3220       YYDPRINTF ((stderr, "Now at end of input.\n"));
3221     }
3222   else if (yychar == KAFKA_error)
3223     {
3224       /* The scanner already issued an error message, process directly
3225          to error recovery.  But do not keep the error token as
3226          lookahead, it is too special and may lead us to an endless
3227          loop in error recovery. */
3228       yychar = KAFKA_UNDEF;
3229       yytoken = YYSYMBOL_YYerror;
3230       yyerror_range[1] = yylloc;
3231       goto yyerrlab1;
3232     }
3233   else
3234     {
3235       yytoken = YYTRANSLATE (yychar);
3236       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3237     }
3238 
3239   /* If the proper action on seeing token YYTOKEN is to reduce or to
3240      detect an error, take that action.  */
3241   yyn += yytoken;
3242   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3243     goto yydefault;
3244   yyn = yytable[yyn];
3245   if (yyn <= 0)
3246     {
3247       if (yytable_value_is_error (yyn))
3248         goto yyerrlab;
3249       yyn = -yyn;
3250       goto yyreduce;
3251     }
3252 
3253   /* Count tokens shifted since error; after three, turn off error
3254      status.  */
3255   if (yyerrstatus)
3256     yyerrstatus--;
3257 
3258   /* Shift the lookahead token.  */
3259   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3260   yystate = yyn;
3261   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3262   *++yyvsp = yylval;
3263   YY_IGNORE_MAYBE_UNINITIALIZED_END
3264   *++yylsp = yylloc;
3265 
3266   /* Discard the shifted token.  */
3267   yychar = KAFKA_EMPTY;
3268   goto yynewstate;
3269 
3270 
3271 /*-----------------------------------------------------------.
3272 | yydefault -- do the default action for the current state.  |
3273 `-----------------------------------------------------------*/
3274 yydefault:
3275   yyn = yydefact[yystate];
3276   if (yyn == 0)
3277     goto yyerrlab;
3278   goto yyreduce;
3279 
3280 
3281 /*-----------------------------.
3282 | yyreduce -- do a reduction.  |
3283 `-----------------------------*/
3284 yyreduce:
3285   /* yyn is the number of a rule to reduce with.  */
3286   yylen = yyr2[yyn];
3287 
3288   /* If YYLEN is nonzero, implement the default value of the action:
3289      '$$ = $1'.
3290 
3291      Otherwise, the following line sets YYVAL to garbage.
3292      This behavior is undocumented and Bison
3293      users should not rely upon it.  Assigning to YYVAL
3294      unconditionally makes the parser a bit smaller, and it avoids a
3295      GCC warning that YYVAL may be used uninitialized.  */
3296   yyval = yyvsp[1-yylen];
3297 
3298   /* Default location. */
3299   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3300   yyerror_range[1] = yyloc;
3301   YY_REDUCE_PRINT (yyn);
3302   switch (yyn)
3303     {
3304   case 2: /* $@1: %empty  */
3305 #line 417 "modules/kafka/kafka-grammar.y"
3306           {
3307             last_driver = *instance = kafka_dd_new(configuration);
3308           }
3309 #line 3310 "modules/kafka/kafka-grammar.c"
3310     break;
3311 
3312   case 3: /* start: LL_CONTEXT_DESTINATION KW_KAFKA $@1 '(' kafka_options ')'  */
3313 #line 420 "modules/kafka/kafka-grammar.y"
3314                                 { YYACCEPT; }
3315 #line 3316 "modules/kafka/kafka-grammar.c"
3316     break;
3317 
3318   case 6: /* kafka_option: KW_TOPIC '(' template_content ')'  */
3319 #line 430 "modules/kafka/kafka-grammar.y"
3320         {
3321             kafka_dd_set_topic(last_driver, (yyvsp[-1].ptr));
3322         }
3323 #line 3324 "modules/kafka/kafka-grammar.c"
3324     break;
3325 
3326   case 7: /* kafka_option: KW_FALLBACK_TOPIC '(' string ')'  */
3327 #line 434 "modules/kafka/kafka-grammar.y"
3328         {
3329             kafka_dd_set_fallback_topic(last_driver, (yyvsp[-1].cptr));
3330             free((yyvsp[-1].cptr));
3331         }
3332 #line 3333 "modules/kafka/kafka-grammar.c"
3333     break;
3334 
3335   case 8: /* kafka_option: KW_CONFIG '(' kafka_properties ')'  */
3336 #line 439 "modules/kafka/kafka-grammar.y"
3337         {
3338             kafka_dd_merge_config(last_driver, (yyvsp[-1].ptr));
3339         }
3340 #line 3341 "modules/kafka/kafka-grammar.c"
3341     break;
3342 
3343   case 9: /* kafka_option: KW_KEY '(' template_content ')'  */
3344 #line 443 "modules/kafka/kafka-grammar.y"
3345         {
3346             kafka_dd_set_key_ref(last_driver, (yyvsp[-1].ptr));
3347         }
3348 #line 3349 "modules/kafka/kafka-grammar.c"
3349     break;
3350 
3351   case 10: /* kafka_option: KW_MESSAGE '(' template_content ')'  */
3352 #line 447 "modules/kafka/kafka-grammar.y"
3353         {
3354             kafka_dd_set_message_ref(last_driver, (yyvsp[-1].ptr));
3355         }
3356 #line 3357 "modules/kafka/kafka-grammar.c"
3357     break;
3358 
3359   case 11: /* kafka_option: KW_FLUSH_TIMEOUT_ON_SHUTDOWN '(' nonnegative_integer ')'  */
3360 #line 450 "modules/kafka/kafka-grammar.y"
3361                                                                       { kafka_dd_set_flush_timeout_on_shutdown(last_driver, (yyvsp[-1].num)); }
3362 #line 3363 "modules/kafka/kafka-grammar.c"
3363     break;
3364 
3365   case 12: /* kafka_option: KW_FLUSH_TIMEOUT_ON_RELOAD '(' nonnegative_integer ')'  */
3366 #line 451 "modules/kafka/kafka-grammar.y"
3367                                                                       { kafka_dd_set_flush_timeout_on_reload(last_driver, (yyvsp[-1].num)); }
3368 #line 3369 "modules/kafka/kafka-grammar.c"
3369     break;
3370 
3371   case 13: /* kafka_option: KW_POLL_TIMEOUT '(' nonnegative_integer ')'  */
3372 #line 452 "modules/kafka/kafka-grammar.y"
3373                                                                       { kafka_dd_set_poll_timeout(last_driver, (yyvsp[-1].num)); }
3374 #line 3375 "modules/kafka/kafka-grammar.c"
3375     break;
3376 
3377   case 14: /* kafka_option: KW_BOOTSTRAP_SERVERS '(' string ')'  */
3378 #line 453 "modules/kafka/kafka-grammar.y"
3379                                                                       { kafka_dd_set_bootstrap_servers(last_driver, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3380 #line 3381 "modules/kafka/kafka-grammar.c"
3381     break;
3382 
3383   case 15: /* kafka_option: KW_SYNC_SEND '(' yesno ')'  */
3384 #line 454 "modules/kafka/kafka-grammar.y"
3385                                                                       { kafka_dd_set_transaction_commit(last_driver, (yyvsp[-1].num)); }
3386 #line 3387 "modules/kafka/kafka-grammar.c"
3387     break;
3388 
3389   case 19: /* $@2: %empty  */
3390 #line 458 "modules/kafka/kafka-grammar.y"
3391           { last_template_options = kafka_dd_get_template_options(last_driver); }
3392 #line 3393 "modules/kafka/kafka-grammar.c"
3393     break;
3394 
3395   case 21: /* $@3: %empty  */
3396 #line 463 "modules/kafka/kafka-grammar.y"
3397         {
3398 		static CfgLexerKeyword empty_keywords[] = {{ CFG_KEYWORD_STOP }};
3399 		cfg_lexer_push_context(lexer, LL_CONTEXT_CONFIG, empty_keywords, "kafka_config_block");
3400 	}
3401 #line 3402 "modules/kafka/kafka-grammar.c"
3402     break;
3403 
3404   case 22: /* kafka_properties: $@3 kafka_properties_list  */
3405 #line 468 "modules/kafka/kafka-grammar.y"
3406         {
3407 		cfg_lexer_pop_context(lexer);
3408 		(yyval.ptr) = (yyvsp[0].ptr);
3409 	}
3410 #line 3411 "modules/kafka/kafka-grammar.c"
3411     break;
3412 
3413   case 23: /* kafka_properties_list: kafka_property kafka_properties_list  */
3414 #line 475 "modules/kafka/kafka-grammar.y"
3415                                                                 { (yyval.ptr) = g_list_prepend((yyvsp[0].ptr), (yyvsp[-1].ptr)); }
3416 #line 3417 "modules/kafka/kafka-grammar.c"
3417     break;
3418 
3419   case 24: /* kafka_properties_list: %empty  */
3420 #line 476 "modules/kafka/kafka-grammar.y"
3421                                                                 { (yyval.ptr) = NULL; }
3422 #line 3423 "modules/kafka/kafka-grammar.c"
3423     break;
3424 
3425   case 25: /* kafka_property: string '(' string_or_number ')'  */
3426 #line 481 "modules/kafka/kafka-grammar.y"
3427         {
3428             KafkaProperty *prop = kafka_property_new((yyvsp[-3].cptr), (yyvsp[-1].cptr));
3429             free((yyvsp[-3].cptr));
3430             free((yyvsp[-1].cptr));
3431 	    (yyval.ptr) = prop;
3432         }
3433 #line 3434 "modules/kafka/kafka-grammar.c"
3434     break;
3435 
3436   case 26: /* kafka_property: string LL_ARROW string_or_number  */
3437 #line 488 "modules/kafka/kafka-grammar.y"
3438         {
3439             KafkaProperty *prop = kafka_property_new((yyvsp[-2].cptr), (yyvsp[0].cptr));
3440             free((yyvsp[-2].cptr));
3441             free((yyvsp[0].cptr));
3442 	    (yyval.ptr) = prop;
3443         }
3444 #line 3445 "modules/kafka/kafka-grammar.c"
3445     break;
3446 
3447   case 27: /* kafka_property: string string_or_number  */
3448 #line 495 "modules/kafka/kafka-grammar.y"
3449         {
3450             KafkaProperty *prop = kafka_property_new((yyvsp[-1].cptr), (yyvsp[0].cptr));
3451             free((yyvsp[-1].cptr));
3452             free((yyvsp[0].cptr));
3453 	    (yyval.ptr) = prop;
3454         }
3455 #line 3456 "modules/kafka/kafka-grammar.c"
3456     break;
3457 
3458   case 28: /* template_content_inner: string  */
3459 #line 737 "modules/kafka/kafka-grammar.y"
3460         {
3461           GError *error = NULL;
3462 
3463           CHECK_ERROR_GERROR(log_template_compile(last_template, (yyvsp[0].cptr), &error), (yylsp[0]), error, "Error compiling template");
3464           free((yyvsp[0].cptr));
3465         }
3466 #line 3467 "modules/kafka/kafka-grammar.c"
3467     break;
3468 
3469   case 29: /* template_content_inner: LL_IDENTIFIER '(' string ')'  */
3470 #line 744 "modules/kafka/kafka-grammar.y"
3471         {
3472           GError *error = NULL;
3473 
3474           CHECK_ERROR_GERROR(log_template_compile(last_template, (yyvsp[-1].cptr), &error), (yylsp[-1]), error, "Error compiling template");
3475           free((yyvsp[-1].cptr));
3476 
3477           CHECK_ERROR_GERROR(log_template_set_type_hint(last_template, (yyvsp[-3].cptr), &error), (yylsp[-3]), error, "Error setting the template type-hint \"%s\"", (yyvsp[-3].cptr));
3478           free((yyvsp[-3].cptr));
3479         }
3480 #line 3481 "modules/kafka/kafka-grammar.c"
3481     break;
3482 
3483   case 30: /* $@9: %empty  */
3484 #line 756 "modules/kafka/kafka-grammar.y"
3485           { last_template = log_template_new(configuration, NULL); }
3486 #line 3487 "modules/kafka/kafka-grammar.c"
3487     break;
3488 
3489   case 31: /* template_content: $@9 template_content_inner  */
3490 #line 756 "modules/kafka/kafka-grammar.y"
3491                                                                                                 { (yyval.ptr) = last_template; }
3492 #line 3493 "modules/kafka/kafka-grammar.c"
3493     break;
3494 
3495   case 34: /* yesno: KW_YES  */
3496 #line 772 "modules/kafka/kafka-grammar.y"
3497                                                 { (yyval.num) = 1; }
3498 #line 3499 "modules/kafka/kafka-grammar.c"
3499     break;
3500 
3501   case 35: /* yesno: KW_NO  */
3502 #line 773 "modules/kafka/kafka-grammar.y"
3503                                                 { (yyval.num) = 0; }
3504 #line 3505 "modules/kafka/kafka-grammar.c"
3505     break;
3506 
3507   case 36: /* yesno: LL_NUMBER  */
3508 #line 774 "modules/kafka/kafka-grammar.y"
3509                                                 { (yyval.num) = (yyvsp[0].num); }
3510 #line 3511 "modules/kafka/kafka-grammar.c"
3511     break;
3512 
3513   case 37: /* nonnegative_integer64: LL_NUMBER  */
3514 #line 784 "modules/kafka/kafka-grammar.y"
3515           {
3516             CHECK_ERROR(((yyvsp[0].num) >= 0), (yylsp[0]), "It cannot be negative");
3517           }
3518 #line 3519 "modules/kafka/kafka-grammar.c"
3519     break;
3520 
3521   case 38: /* nonnegative_integer: nonnegative_integer64  */
3522 #line 791 "modules/kafka/kafka-grammar.y"
3523           {
3524             CHECK_ERROR(((yyvsp[0].num) <= G_MAXINT32), (yylsp[0]), "Must be smaller than 2^31");
3525           }
3526 #line 3527 "modules/kafka/kafka-grammar.c"
3527     break;
3528 
3529   case 39: /* positive_integer64: LL_NUMBER  */
3530 #line 798 "modules/kafka/kafka-grammar.y"
3531           {
3532             CHECK_ERROR(((yyvsp[0].num) > 0), (yylsp[0]), "Must be positive");
3533           }
3534 #line 3535 "modules/kafka/kafka-grammar.c"
3535     break;
3536 
3537   case 40: /* positive_integer: positive_integer64  */
3538 #line 805 "modules/kafka/kafka-grammar.y"
3539           {
3540             CHECK_ERROR(((yyvsp[0].num) <= G_MAXINT32), (yylsp[0]), "Must be smaller than 2^31");
3541           }
3542 #line 3543 "modules/kafka/kafka-grammar.c"
3543     break;
3544 
3545   case 41: /* string_or_number: string  */
3546 #line 833 "modules/kafka/kafka-grammar.y"
3547                                                 { (yyval.cptr) = (yyvsp[0].cptr); }
3548 #line 3549 "modules/kafka/kafka-grammar.c"
3549     break;
3550 
3551   case 42: /* string_or_number: LL_NUMBER  */
3552 #line 834 "modules/kafka/kafka-grammar.y"
3553                                                 { (yyval.cptr) = strdup(lexer->token_text->str); }
3554 #line 3555 "modules/kafka/kafka-grammar.c"
3555     break;
3556 
3557   case 43: /* string_or_number: LL_FLOAT  */
3558 #line 835 "modules/kafka/kafka-grammar.y"
3559                                                 { (yyval.cptr) = strdup(lexer->token_text->str); }
3560 #line 3561 "modules/kafka/kafka-grammar.c"
3561     break;
3562 
3563   case 44: /* driver_option: KW_PERSIST_NAME '(' string ')'  */
3564 #line 914 "modules/kafka/kafka-grammar.y"
3565                                          { log_pipe_set_persist_name(&last_driver->super, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3566 #line 3567 "modules/kafka/kafka-grammar.c"
3567     break;
3568 
3569   case 45: /* inner_dest: LL_IDENTIFIER  */
3570 #line 950 "modules/kafka/kafka-grammar.y"
3571           {
3572             Plugin *p;
3573             gint context = LL_CONTEXT_INNER_DEST;
3574             gpointer value;
3575 
3576             p = cfg_find_plugin(configuration, context, (yyvsp[0].cptr));
3577             CHECK_ERROR(p, (yylsp[0]), "%s plugin %s not found", cfg_lexer_lookup_context_name_by_type(context), (yyvsp[0].cptr));
3578 
3579             value = cfg_parse_plugin(configuration, p, &(yylsp[0]), last_driver);
3580 
3581             free((yyvsp[0].cptr));
3582             if (!value)
3583               {
3584                 YYERROR;
3585               }
3586             if (!log_driver_add_plugin(last_driver, (LogDriverPlugin *) value))
3587               {
3588                 log_driver_plugin_free(value);
3589                 CHECK_ERROR(TRUE, (yylsp[0]), "Error while registering the plugin %s in this destination", (yyvsp[0].cptr));
3590               }
3591           }
3592 #line 3593 "modules/kafka/kafka-grammar.c"
3593     break;
3594 
3595   case 46: /* dest_driver_option: KW_LOG_FIFO_SIZE '(' positive_integer ')'  */
3596 #line 977 "modules/kafka/kafka-grammar.y"
3597                                                         { ((LogDestDriver *) last_driver)->log_fifo_size = (yyvsp[-1].num); }
3598 #line 3599 "modules/kafka/kafka-grammar.c"
3599     break;
3600 
3601   case 47: /* dest_driver_option: KW_THROTTLE '(' nonnegative_integer ')'  */
3602 #line 978 "modules/kafka/kafka-grammar.y"
3603                                                           { ((LogDestDriver *) last_driver)->throttle = (yyvsp[-1].num); }
3604 #line 3605 "modules/kafka/kafka-grammar.c"
3605     break;
3606 
3607   case 50: /* threaded_dest_driver_batch_option: KW_BATCH_LINES '(' nonnegative_integer ')'  */
3608 #line 984 "modules/kafka/kafka-grammar.y"
3609                                                      { log_threaded_dest_driver_set_batch_lines(last_driver, (yyvsp[-1].num)); }
3610 #line 3611 "modules/kafka/kafka-grammar.c"
3611     break;
3612 
3613   case 51: /* threaded_dest_driver_batch_option: KW_BATCH_TIMEOUT '(' positive_integer ')'  */
3614 #line 985 "modules/kafka/kafka-grammar.y"
3615                                                     { log_threaded_dest_driver_set_batch_timeout(last_driver, (yyvsp[-1].num)); }
3616 #line 3617 "modules/kafka/kafka-grammar.c"
3617     break;
3618 
3619   case 52: /* threaded_dest_driver_workers_option: KW_WORKERS '(' positive_integer ')'  */
3620 #line 989 "modules/kafka/kafka-grammar.y"
3621                                                { log_threaded_dest_driver_set_num_workers(last_driver, (yyvsp[-1].num)); }
3622 #line 3623 "modules/kafka/kafka-grammar.c"
3623     break;
3624 
3625   case 53: /* threaded_dest_driver_general_option: KW_RETRIES '(' positive_integer ')'  */
3626 #line 995 "modules/kafka/kafka-grammar.y"
3627         {
3628           log_threaded_dest_driver_set_max_retries_on_error(last_driver, (yyvsp[-1].num));
3629         }
3630 #line 3631 "modules/kafka/kafka-grammar.c"
3631     break;
3632 
3633   case 54: /* threaded_dest_driver_general_option: KW_TIME_REOPEN '(' positive_integer ')'  */
3634 #line 998 "modules/kafka/kafka-grammar.y"
3635                                                   { log_threaded_dest_driver_set_time_reopen(last_driver, (yyvsp[-1].num)); }
3636 #line 3637 "modules/kafka/kafka-grammar.c"
3637     break;
3638 
3639   case 56: /* template_option: KW_TS_FORMAT '(' string ')'  */
3640 #line 1151 "modules/kafka/kafka-grammar.y"
3641                                                 { last_template_options->ts_format = cfg_ts_format_value((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3642 #line 3643 "modules/kafka/kafka-grammar.c"
3643     break;
3644 
3645   case 57: /* template_option: KW_FRAC_DIGITS '(' nonnegative_integer ')'  */
3646 #line 1152 "modules/kafka/kafka-grammar.y"
3647                                                         { last_template_options->frac_digits = (yyvsp[-1].num); }
3648 #line 3649 "modules/kafka/kafka-grammar.c"
3649     break;
3650 
3651   case 58: /* template_option: KW_TIME_ZONE '(' string ')'  */
3652 #line 1153 "modules/kafka/kafka-grammar.y"
3653                                                 { last_template_options->time_zone[LTZ_SEND] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3654 #line 3655 "modules/kafka/kafka-grammar.c"
3655     break;
3656 
3657   case 59: /* template_option: KW_SEND_TIME_ZONE '(' string ')'  */
3658 #line 1154 "modules/kafka/kafka-grammar.y"
3659                                                 { last_template_options->time_zone[LTZ_SEND] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3660 #line 3661 "modules/kafka/kafka-grammar.c"
3661     break;
3662 
3663   case 60: /* template_option: KW_LOCAL_TIME_ZONE '(' string ')'  */
3664 #line 1155 "modules/kafka/kafka-grammar.y"
3665                                                 { last_template_options->time_zone[LTZ_LOCAL] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3666 #line 3667 "modules/kafka/kafka-grammar.c"
3667     break;
3668 
3669   case 61: /* template_option: KW_ON_ERROR '(' string ')'  */
3670 #line 1157 "modules/kafka/kafka-grammar.y"
3671         {
3672           gint on_error;
3673 
3674           CHECK_ERROR(log_template_on_error_parse((yyvsp[-1].cptr), &on_error), (yylsp[-1]), "Invalid on-error() setting \"%s\"", (yyvsp[-1].cptr));
3675           free((yyvsp[-1].cptr));
3676 
3677           log_template_options_set_on_error(last_template_options, on_error);
3678         }
3679 #line 3680 "modules/kafka/kafka-grammar.c"
3680     break;
3681 
3682 
3683 #line 3684 "modules/kafka/kafka-grammar.c"
3684 
3685       default: break;
3686     }
3687   /* User semantic actions sometimes alter yychar, and that requires
3688      that yytoken be updated with the new translation.  We take the
3689      approach of translating immediately before every use of yytoken.
3690      One alternative is translating here after every semantic action,
3691      but that translation would be missed if the semantic action invokes
3692      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3693      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3694      incorrect destructor might then be invoked immediately.  In the
3695      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3696      to an incorrect destructor call or verbose syntax error message
3697      before the lookahead is translated.  */
3698   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3699 
3700   YYPOPSTACK (yylen);
3701   yylen = 0;
3702 
3703   *++yyvsp = yyval;
3704   *++yylsp = yyloc;
3705 
3706   /* Now 'shift' the result of the reduction.  Determine what state
3707      that goes to, based on the state we popped back to and the rule
3708      number reduced by.  */
3709   {
3710     const int yylhs = yyr1[yyn] - YYNTOKENS;
3711     const int yyi = yypgoto[yylhs] + *yyssp;
3712     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3713                ? yytable[yyi]
3714                : yydefgoto[yylhs]);
3715   }
3716 
3717   goto yynewstate;
3718 
3719 
3720 /*--------------------------------------.
3721 | yyerrlab -- here on detecting error.  |
3722 `--------------------------------------*/
3723 yyerrlab:
3724   /* Make sure we have latest lookahead translation.  See comments at
3725      user semantic actions for why this is necessary.  */
3726   yytoken = yychar == KAFKA_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3727   /* If not already recovering from an error, report this error.  */
3728   if (!yyerrstatus)
3729     {
3730       ++yynerrs;
3731       {
3732         yypcontext_t yyctx
3733           = {yyssp, yytoken, &yylloc};
3734         char const *yymsgp = YY_("syntax error");
3735         int yysyntax_error_status;
3736         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3737         if (yysyntax_error_status == 0)
3738           yymsgp = yymsg;
3739         else if (yysyntax_error_status == -1)
3740           {
3741             if (yymsg != yymsgbuf)
3742               YYSTACK_FREE (yymsg);
3743             yymsg = YY_CAST (char *,
3744                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3745             if (yymsg)
3746               {
3747                 yysyntax_error_status
3748                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3749                 yymsgp = yymsg;
3750               }
3751             else
3752               {
3753                 yymsg = yymsgbuf;
3754                 yymsg_alloc = sizeof yymsgbuf;
3755                 yysyntax_error_status = YYENOMEM;
3756               }
3757           }
3758         yyerror (&yylloc, lexer, instance, arg, yymsgp);
3759         if (yysyntax_error_status == YYENOMEM)
3760           YYNOMEM;
3761       }
3762     }
3763 
3764   yyerror_range[1] = yylloc;
3765   if (yyerrstatus == 3)
3766     {
3767       /* If just tried and failed to reuse lookahead token after an
3768          error, discard it.  */
3769 
3770       if (yychar <= KAFKA_EOF)
3771         {
3772           /* Return failure if at end of input.  */
3773           if (yychar == KAFKA_EOF)
3774             YYABORT;
3775         }
3776       else
3777         {
3778           yydestruct ("Error: discarding",
3779                       yytoken, &yylval, &yylloc, lexer, instance, arg);
3780           yychar = KAFKA_EMPTY;
3781         }
3782     }
3783 
3784   /* Else will try to reuse lookahead token after shifting the error
3785      token.  */
3786   goto yyerrlab1;
3787 
3788 
3789 /*---------------------------------------------------.
3790 | yyerrorlab -- error raised explicitly by YYERROR.  |
3791 `---------------------------------------------------*/
3792 yyerrorlab:
3793   /* Pacify compilers when the user code never invokes YYERROR and the
3794      label yyerrorlab therefore never appears in user code.  */
3795   if (0)
3796     YYERROR;
3797   ++yynerrs;
3798 
3799   /* Do not reclaim the symbols of the rule whose action triggered
3800      this YYERROR.  */
3801   YYPOPSTACK (yylen);
3802   yylen = 0;
3803   YY_STACK_PRINT (yyss, yyssp);
3804   yystate = *yyssp;
3805   goto yyerrlab1;
3806 
3807 
3808 /*-------------------------------------------------------------.
3809 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3810 `-------------------------------------------------------------*/
3811 yyerrlab1:
3812   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3813 
3814   /* Pop stack until we find a state that shifts the error token.  */
3815   for (;;)
3816     {
3817       yyn = yypact[yystate];
3818       if (!yypact_value_is_default (yyn))
3819         {
3820           yyn += YYSYMBOL_YYerror;
3821           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3822             {
3823               yyn = yytable[yyn];
3824               if (0 < yyn)
3825                 break;
3826             }
3827         }
3828 
3829       /* Pop the current state because it cannot handle the error token.  */
3830       if (yyssp == yyss)
3831         YYABORT;
3832 
3833       yyerror_range[1] = *yylsp;
3834       yydestruct ("Error: popping",
3835                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3836       YYPOPSTACK (1);
3837       yystate = *yyssp;
3838       YY_STACK_PRINT (yyss, yyssp);
3839     }
3840 
3841   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3842   *++yyvsp = yylval;
3843   YY_IGNORE_MAYBE_UNINITIALIZED_END
3844 
3845   yyerror_range[2] = yylloc;
3846   ++yylsp;
3847   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3848 
3849   /* Shift the error token.  */
3850   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3851 
3852   yystate = yyn;
3853   goto yynewstate;
3854 
3855 
3856 /*-------------------------------------.
3857 | yyacceptlab -- YYACCEPT comes here.  |
3858 `-------------------------------------*/
3859 yyacceptlab:
3860   yyresult = 0;
3861   goto yyreturnlab;
3862 
3863 
3864 /*-----------------------------------.
3865 | yyabortlab -- YYABORT comes here.  |
3866 `-----------------------------------*/
3867 yyabortlab:
3868   yyresult = 1;
3869   goto yyreturnlab;
3870 
3871 
3872 /*-----------------------------------------------------------.
3873 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
3874 `-----------------------------------------------------------*/
3875 yyexhaustedlab:
3876   yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3877   yyresult = 2;
3878   goto yyreturnlab;
3879 
3880 
3881 /*----------------------------------------------------------.
3882 | yyreturnlab -- parsing is finished, clean up and return.  |
3883 `----------------------------------------------------------*/
3884 yyreturnlab:
3885   if (yychar != KAFKA_EMPTY)
3886     {
3887       /* Make sure we have latest lookahead translation.  See comments at
3888          user semantic actions for why this is necessary.  */
3889       yytoken = YYTRANSLATE (yychar);
3890       yydestruct ("Cleanup: discarding lookahead",
3891                   yytoken, &yylval, &yylloc, lexer, instance, arg);
3892     }
3893   /* Do not reclaim the symbols of the rule whose action triggered
3894      this YYABORT or YYACCEPT.  */
3895   YYPOPSTACK (yylen);
3896   YY_STACK_PRINT (yyss, yyssp);
3897   while (yyssp != yyss)
3898     {
3899       yydestruct ("Cleanup: popping",
3900                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3901       YYPOPSTACK (1);
3902     }
3903 #ifndef yyoverflow
3904   if (yyss != yyssa)
3905     YYSTACK_FREE (yyss);
3906 #endif
3907   if (yymsg != yymsgbuf)
3908     YYSTACK_FREE (yymsg);
3909   return yyresult;
3910 }
3911 
3912 #line 1268 "modules/kafka/kafka-grammar.y"
3913 
3914