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