Coverage Report

Created: 2023-11-19 07:07

/src/unbound/util/configparser.c
Line
Count
Source (jump to first uncovered line)
1
/* A Bison parser, made by GNU Bison 3.5.1.  */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 <http://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
/* All symbols defined below should begin with yy or YY, to avoid
38
   infringing on user name space.  This should be done even for local
39
   variables, as they might otherwise be expanded by user macros.
40
   There are some unavoidable exceptions within include files to
41
   define necessary library symbols; they are noted "INFRINGES ON
42
   USER NAME SPACE" below.  */
43
44
/* Undocumented macros, especially those whose name start with YY_,
45
   are private implementation details.  Do not rely on them.  */
46
47
/* Identify Bison output.  */
48
#define YYBISON 1
49
50
/* Bison version.  */
51
#define YYBISON_VERSION "3.5.1"
52
53
/* Skeleton name.  */
54
#define YYSKELETON_NAME "yacc.c"
55
56
/* Pure parsers.  */
57
#define YYPURE 0
58
59
/* Push parsers.  */
60
#define YYPUSH 0
61
62
/* Pull parsers.  */
63
#define YYPULL 1
64
65
66
67
68
/* First part of user prologue.  */
69
#line 38 "./util/configparser.y"
70
71
#include "config.h"
72
73
#include <stdarg.h>
74
#include <stdio.h>
75
#include <string.h>
76
#include <stdlib.h>
77
#include <assert.h>
78
79
#include "util/configyyrename.h"
80
#include "util/config_file.h"
81
#include "util/net_help.h"
82
#include "sldns/str2wire.h"
83
84
int ub_c_lex(void);
85
void ub_c_error(const char *message);
86
87
static void validate_respip_action(const char* action);
88
static void validate_acl_action(const char* action);
89
90
/* these need to be global, otherwise they cannot be used inside yacc */
91
extern struct config_parser_state* cfg_parser;
92
93
#if 0
94
#define OUTYY(s)  printf s /* used ONLY when debugging */
95
#else
96
#define OUTYY(s)
97
#endif
98
99
100
#line 101 "util/configparser.c"
101
102
# ifndef YY_CAST
103
#  ifdef __cplusplus
104
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
105
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
106
#  else
107
0
#   define YY_CAST(Type, Val) ((Type) (Val))
108
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
109
#  endif
110
# endif
111
# ifndef YY_NULLPTR
112
#  if defined __cplusplus
113
#   if 201103L <= __cplusplus
114
#    define YY_NULLPTR nullptr
115
#   else
116
#    define YY_NULLPTR 0
117
#   endif
118
#  else
119
#   define YY_NULLPTR ((void*)0)
120
#  endif
121
# endif
122
123
/* Enabling verbose error messages.  */
124
#ifdef YYERROR_VERBOSE
125
# undef YYERROR_VERBOSE
126
# define YYERROR_VERBOSE 1
127
#else
128
# define YYERROR_VERBOSE 0
129
#endif
130
131
/* Use api.header.include to #include this header
132
   instead of duplicating it here.  */
133
#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
134
# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED
135
/* Debug traces.  */
136
#ifndef YYDEBUG
137
# define YYDEBUG 0
138
#endif
139
#if YYDEBUG
140
extern int yydebug;
141
#endif
142
143
/* Token type.  */
144
#ifndef YYTOKENTYPE
145
# define YYTOKENTYPE
146
  enum yytokentype
147
  {
148
    SPACE = 258,
149
    LETTER = 259,
150
    NEWLINE = 260,
151
    COMMENT = 261,
152
    COLON = 262,
153
    ANY = 263,
154
    ZONESTR = 264,
155
    STRING_ARG = 265,
156
    VAR_FORCE_TOPLEVEL = 266,
157
    VAR_SERVER = 267,
158
    VAR_VERBOSITY = 268,
159
    VAR_NUM_THREADS = 269,
160
    VAR_PORT = 270,
161
    VAR_OUTGOING_RANGE = 271,
162
    VAR_INTERFACE = 272,
163
    VAR_PREFER_IP4 = 273,
164
    VAR_DO_IP4 = 274,
165
    VAR_DO_IP6 = 275,
166
    VAR_DO_NAT64 = 276,
167
    VAR_PREFER_IP6 = 277,
168
    VAR_DO_UDP = 278,
169
    VAR_DO_TCP = 279,
170
    VAR_TCP_MSS = 280,
171
    VAR_OUTGOING_TCP_MSS = 281,
172
    VAR_TCP_IDLE_TIMEOUT = 282,
173
    VAR_EDNS_TCP_KEEPALIVE = 283,
174
    VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 284,
175
    VAR_SOCK_QUEUE_TIMEOUT = 285,
176
    VAR_CHROOT = 286,
177
    VAR_USERNAME = 287,
178
    VAR_DIRECTORY = 288,
179
    VAR_LOGFILE = 289,
180
    VAR_PIDFILE = 290,
181
    VAR_MSG_CACHE_SIZE = 291,
182
    VAR_MSG_CACHE_SLABS = 292,
183
    VAR_NUM_QUERIES_PER_THREAD = 293,
184
    VAR_RRSET_CACHE_SIZE = 294,
185
    VAR_RRSET_CACHE_SLABS = 295,
186
    VAR_OUTGOING_NUM_TCP = 296,
187
    VAR_INFRA_HOST_TTL = 297,
188
    VAR_INFRA_LAME_TTL = 298,
189
    VAR_INFRA_CACHE_SLABS = 299,
190
    VAR_INFRA_CACHE_NUMHOSTS = 300,
191
    VAR_INFRA_CACHE_LAME_SIZE = 301,
192
    VAR_NAME = 302,
193
    VAR_STUB_ZONE = 303,
194
    VAR_STUB_HOST = 304,
195
    VAR_STUB_ADDR = 305,
196
    VAR_TARGET_FETCH_POLICY = 306,
197
    VAR_HARDEN_SHORT_BUFSIZE = 307,
198
    VAR_HARDEN_LARGE_QUERIES = 308,
199
    VAR_FORWARD_ZONE = 309,
200
    VAR_FORWARD_HOST = 310,
201
    VAR_FORWARD_ADDR = 311,
202
    VAR_DO_NOT_QUERY_ADDRESS = 312,
203
    VAR_HIDE_IDENTITY = 313,
204
    VAR_HIDE_VERSION = 314,
205
    VAR_IDENTITY = 315,
206
    VAR_VERSION = 316,
207
    VAR_HARDEN_GLUE = 317,
208
    VAR_MODULE_CONF = 318,
209
    VAR_TRUST_ANCHOR_FILE = 319,
210
    VAR_TRUST_ANCHOR = 320,
211
    VAR_VAL_OVERRIDE_DATE = 321,
212
    VAR_BOGUS_TTL = 322,
213
    VAR_VAL_CLEAN_ADDITIONAL = 323,
214
    VAR_VAL_PERMISSIVE_MODE = 324,
215
    VAR_INCOMING_NUM_TCP = 325,
216
    VAR_MSG_BUFFER_SIZE = 326,
217
    VAR_KEY_CACHE_SIZE = 327,
218
    VAR_KEY_CACHE_SLABS = 328,
219
    VAR_TRUSTED_KEYS_FILE = 329,
220
    VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 330,
221
    VAR_USE_SYSLOG = 331,
222
    VAR_OUTGOING_INTERFACE = 332,
223
    VAR_ROOT_HINTS = 333,
224
    VAR_DO_NOT_QUERY_LOCALHOST = 334,
225
    VAR_CACHE_MAX_TTL = 335,
226
    VAR_HARDEN_DNSSEC_STRIPPED = 336,
227
    VAR_ACCESS_CONTROL = 337,
228
    VAR_LOCAL_ZONE = 338,
229
    VAR_LOCAL_DATA = 339,
230
    VAR_INTERFACE_AUTOMATIC = 340,
231
    VAR_STATISTICS_INTERVAL = 341,
232
    VAR_DO_DAEMONIZE = 342,
233
    VAR_USE_CAPS_FOR_ID = 343,
234
    VAR_STATISTICS_CUMULATIVE = 344,
235
    VAR_OUTGOING_PORT_PERMIT = 345,
236
    VAR_OUTGOING_PORT_AVOID = 346,
237
    VAR_DLV_ANCHOR_FILE = 347,
238
    VAR_DLV_ANCHOR = 348,
239
    VAR_NEG_CACHE_SIZE = 349,
240
    VAR_HARDEN_REFERRAL_PATH = 350,
241
    VAR_PRIVATE_ADDRESS = 351,
242
    VAR_PRIVATE_DOMAIN = 352,
243
    VAR_REMOTE_CONTROL = 353,
244
    VAR_CONTROL_ENABLE = 354,
245
    VAR_CONTROL_INTERFACE = 355,
246
    VAR_CONTROL_PORT = 356,
247
    VAR_SERVER_KEY_FILE = 357,
248
    VAR_SERVER_CERT_FILE = 358,
249
    VAR_CONTROL_KEY_FILE = 359,
250
    VAR_CONTROL_CERT_FILE = 360,
251
    VAR_CONTROL_USE_CERT = 361,
252
    VAR_TCP_REUSE_TIMEOUT = 362,
253
    VAR_MAX_REUSE_TCP_QUERIES = 363,
254
    VAR_EXTENDED_STATISTICS = 364,
255
    VAR_LOCAL_DATA_PTR = 365,
256
    VAR_JOSTLE_TIMEOUT = 366,
257
    VAR_STUB_PRIME = 367,
258
    VAR_UNWANTED_REPLY_THRESHOLD = 368,
259
    VAR_LOG_TIME_ASCII = 369,
260
    VAR_DOMAIN_INSECURE = 370,
261
    VAR_PYTHON = 371,
262
    VAR_PYTHON_SCRIPT = 372,
263
    VAR_VAL_SIG_SKEW_MIN = 373,
264
    VAR_VAL_SIG_SKEW_MAX = 374,
265
    VAR_VAL_MAX_RESTART = 375,
266
    VAR_CACHE_MIN_TTL = 376,
267
    VAR_VAL_LOG_LEVEL = 377,
268
    VAR_AUTO_TRUST_ANCHOR_FILE = 378,
269
    VAR_KEEP_MISSING = 379,
270
    VAR_ADD_HOLDDOWN = 380,
271
    VAR_DEL_HOLDDOWN = 381,
272
    VAR_SO_RCVBUF = 382,
273
    VAR_EDNS_BUFFER_SIZE = 383,
274
    VAR_PREFETCH = 384,
275
    VAR_PREFETCH_KEY = 385,
276
    VAR_SO_SNDBUF = 386,
277
    VAR_SO_REUSEPORT = 387,
278
    VAR_HARDEN_BELOW_NXDOMAIN = 388,
279
    VAR_IGNORE_CD_FLAG = 389,
280
    VAR_LOG_QUERIES = 390,
281
    VAR_LOG_REPLIES = 391,
282
    VAR_LOG_LOCAL_ACTIONS = 392,
283
    VAR_TCP_UPSTREAM = 393,
284
    VAR_SSL_UPSTREAM = 394,
285
    VAR_TCP_AUTH_QUERY_TIMEOUT = 395,
286
    VAR_SSL_SERVICE_KEY = 396,
287
    VAR_SSL_SERVICE_PEM = 397,
288
    VAR_SSL_PORT = 398,
289
    VAR_FORWARD_FIRST = 399,
290
    VAR_STUB_SSL_UPSTREAM = 400,
291
    VAR_FORWARD_SSL_UPSTREAM = 401,
292
    VAR_TLS_CERT_BUNDLE = 402,
293
    VAR_STUB_TCP_UPSTREAM = 403,
294
    VAR_FORWARD_TCP_UPSTREAM = 404,
295
    VAR_HTTPS_PORT = 405,
296
    VAR_HTTP_ENDPOINT = 406,
297
    VAR_HTTP_MAX_STREAMS = 407,
298
    VAR_HTTP_QUERY_BUFFER_SIZE = 408,
299
    VAR_HTTP_RESPONSE_BUFFER_SIZE = 409,
300
    VAR_HTTP_NODELAY = 410,
301
    VAR_HTTP_NOTLS_DOWNSTREAM = 411,
302
    VAR_STUB_FIRST = 412,
303
    VAR_MINIMAL_RESPONSES = 413,
304
    VAR_RRSET_ROUNDROBIN = 414,
305
    VAR_MAX_UDP_SIZE = 415,
306
    VAR_DELAY_CLOSE = 416,
307
    VAR_UDP_CONNECT = 417,
308
    VAR_UNBLOCK_LAN_ZONES = 418,
309
    VAR_INSECURE_LAN_ZONES = 419,
310
    VAR_INFRA_CACHE_MIN_RTT = 420,
311
    VAR_INFRA_CACHE_MAX_RTT = 421,
312
    VAR_INFRA_KEEP_PROBING = 422,
313
    VAR_DNS64_PREFIX = 423,
314
    VAR_DNS64_SYNTHALL = 424,
315
    VAR_DNS64_IGNORE_AAAA = 425,
316
    VAR_NAT64_PREFIX = 426,
317
    VAR_DNSTAP = 427,
318
    VAR_DNSTAP_ENABLE = 428,
319
    VAR_DNSTAP_SOCKET_PATH = 429,
320
    VAR_DNSTAP_IP = 430,
321
    VAR_DNSTAP_TLS = 431,
322
    VAR_DNSTAP_TLS_SERVER_NAME = 432,
323
    VAR_DNSTAP_TLS_CERT_BUNDLE = 433,
324
    VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 434,
325
    VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 435,
326
    VAR_DNSTAP_SEND_IDENTITY = 436,
327
    VAR_DNSTAP_SEND_VERSION = 437,
328
    VAR_DNSTAP_BIDIRECTIONAL = 438,
329
    VAR_DNSTAP_IDENTITY = 439,
330
    VAR_DNSTAP_VERSION = 440,
331
    VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 441,
332
    VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 442,
333
    VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 443,
334
    VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 444,
335
    VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 445,
336
    VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 446,
337
    VAR_RESPONSE_IP_TAG = 447,
338
    VAR_RESPONSE_IP = 448,
339
    VAR_RESPONSE_IP_DATA = 449,
340
    VAR_HARDEN_ALGO_DOWNGRADE = 450,
341
    VAR_IP_TRANSPARENT = 451,
342
    VAR_IP_DSCP = 452,
343
    VAR_DISABLE_DNSSEC_LAME_CHECK = 453,
344
    VAR_IP_RATELIMIT = 454,
345
    VAR_IP_RATELIMIT_SLABS = 455,
346
    VAR_IP_RATELIMIT_SIZE = 456,
347
    VAR_RATELIMIT = 457,
348
    VAR_RATELIMIT_SLABS = 458,
349
    VAR_RATELIMIT_SIZE = 459,
350
    VAR_OUTBOUND_MSG_RETRY = 460,
351
    VAR_MAX_SENT_COUNT = 461,
352
    VAR_MAX_QUERY_RESTARTS = 462,
353
    VAR_RATELIMIT_FOR_DOMAIN = 463,
354
    VAR_RATELIMIT_BELOW_DOMAIN = 464,
355
    VAR_IP_RATELIMIT_FACTOR = 465,
356
    VAR_RATELIMIT_FACTOR = 466,
357
    VAR_IP_RATELIMIT_BACKOFF = 467,
358
    VAR_RATELIMIT_BACKOFF = 468,
359
    VAR_SEND_CLIENT_SUBNET = 469,
360
    VAR_CLIENT_SUBNET_ZONE = 470,
361
    VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 471,
362
    VAR_CLIENT_SUBNET_OPCODE = 472,
363
    VAR_MAX_CLIENT_SUBNET_IPV4 = 473,
364
    VAR_MAX_CLIENT_SUBNET_IPV6 = 474,
365
    VAR_MIN_CLIENT_SUBNET_IPV4 = 475,
366
    VAR_MIN_CLIENT_SUBNET_IPV6 = 476,
367
    VAR_MAX_ECS_TREE_SIZE_IPV4 = 477,
368
    VAR_MAX_ECS_TREE_SIZE_IPV6 = 478,
369
    VAR_CAPS_WHITELIST = 479,
370
    VAR_CACHE_MAX_NEGATIVE_TTL = 480,
371
    VAR_PERMIT_SMALL_HOLDDOWN = 481,
372
    VAR_QNAME_MINIMISATION = 482,
373
    VAR_QNAME_MINIMISATION_STRICT = 483,
374
    VAR_IP_FREEBIND = 484,
375
    VAR_DEFINE_TAG = 485,
376
    VAR_LOCAL_ZONE_TAG = 486,
377
    VAR_ACCESS_CONTROL_TAG = 487,
378
    VAR_LOCAL_ZONE_OVERRIDE = 488,
379
    VAR_ACCESS_CONTROL_TAG_ACTION = 489,
380
    VAR_ACCESS_CONTROL_TAG_DATA = 490,
381
    VAR_VIEW = 491,
382
    VAR_ACCESS_CONTROL_VIEW = 492,
383
    VAR_VIEW_FIRST = 493,
384
    VAR_SERVE_EXPIRED = 494,
385
    VAR_SERVE_EXPIRED_TTL = 495,
386
    VAR_SERVE_EXPIRED_TTL_RESET = 496,
387
    VAR_SERVE_EXPIRED_REPLY_TTL = 497,
388
    VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 498,
389
    VAR_EDE_SERVE_EXPIRED = 499,
390
    VAR_SERVE_ORIGINAL_TTL = 500,
391
    VAR_FAKE_DSA = 501,
392
    VAR_FAKE_SHA1 = 502,
393
    VAR_LOG_IDENTITY = 503,
394
    VAR_HIDE_TRUSTANCHOR = 504,
395
    VAR_HIDE_HTTP_USER_AGENT = 505,
396
    VAR_HTTP_USER_AGENT = 506,
397
    VAR_TRUST_ANCHOR_SIGNALING = 507,
398
    VAR_AGGRESSIVE_NSEC = 508,
399
    VAR_USE_SYSTEMD = 509,
400
    VAR_SHM_ENABLE = 510,
401
    VAR_SHM_KEY = 511,
402
    VAR_ROOT_KEY_SENTINEL = 512,
403
    VAR_DNSCRYPT = 513,
404
    VAR_DNSCRYPT_ENABLE = 514,
405
    VAR_DNSCRYPT_PORT = 515,
406
    VAR_DNSCRYPT_PROVIDER = 516,
407
    VAR_DNSCRYPT_SECRET_KEY = 517,
408
    VAR_DNSCRYPT_PROVIDER_CERT = 518,
409
    VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 519,
410
    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 520,
411
    VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 521,
412
    VAR_DNSCRYPT_NONCE_CACHE_SIZE = 522,
413
    VAR_DNSCRYPT_NONCE_CACHE_SLABS = 523,
414
    VAR_PAD_RESPONSES = 524,
415
    VAR_PAD_RESPONSES_BLOCK_SIZE = 525,
416
    VAR_PAD_QUERIES = 526,
417
    VAR_PAD_QUERIES_BLOCK_SIZE = 527,
418
    VAR_IPSECMOD_ENABLED = 528,
419
    VAR_IPSECMOD_HOOK = 529,
420
    VAR_IPSECMOD_IGNORE_BOGUS = 530,
421
    VAR_IPSECMOD_MAX_TTL = 531,
422
    VAR_IPSECMOD_WHITELIST = 532,
423
    VAR_IPSECMOD_STRICT = 533,
424
    VAR_CACHEDB = 534,
425
    VAR_CACHEDB_BACKEND = 535,
426
    VAR_CACHEDB_SECRETSEED = 536,
427
    VAR_CACHEDB_REDISHOST = 537,
428
    VAR_CACHEDB_REDISPORT = 538,
429
    VAR_CACHEDB_REDISTIMEOUT = 539,
430
    VAR_CACHEDB_REDISEXPIRERECORDS = 540,
431
    VAR_CACHEDB_REDISPATH = 541,
432
    VAR_CACHEDB_REDISPASSWORD = 542,
433
    VAR_CACHEDB_REDISLOGICALDB = 543,
434
    VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 544,
435
    VAR_FOR_UPSTREAM = 545,
436
    VAR_AUTH_ZONE = 546,
437
    VAR_ZONEFILE = 547,
438
    VAR_MASTER = 548,
439
    VAR_URL = 549,
440
    VAR_FOR_DOWNSTREAM = 550,
441
    VAR_FALLBACK_ENABLED = 551,
442
    VAR_TLS_ADDITIONAL_PORT = 552,
443
    VAR_LOW_RTT = 553,
444
    VAR_LOW_RTT_PERMIL = 554,
445
    VAR_FAST_SERVER_PERMIL = 555,
446
    VAR_FAST_SERVER_NUM = 556,
447
    VAR_ALLOW_NOTIFY = 557,
448
    VAR_TLS_WIN_CERT = 558,
449
    VAR_TCP_CONNECTION_LIMIT = 559,
450
    VAR_ANSWER_COOKIE = 560,
451
    VAR_COOKIE_SECRET = 561,
452
    VAR_IP_RATELIMIT_COOKIE = 562,
453
    VAR_FORWARD_NO_CACHE = 563,
454
    VAR_STUB_NO_CACHE = 564,
455
    VAR_LOG_SERVFAIL = 565,
456
    VAR_DENY_ANY = 566,
457
    VAR_UNKNOWN_SERVER_TIME_LIMIT = 567,
458
    VAR_LOG_TAG_QUERYREPLY = 568,
459
    VAR_STREAM_WAIT_SIZE = 569,
460
    VAR_TLS_CIPHERS = 570,
461
    VAR_TLS_CIPHERSUITES = 571,
462
    VAR_TLS_USE_SNI = 572,
463
    VAR_IPSET = 573,
464
    VAR_IPSET_NAME_V4 = 574,
465
    VAR_IPSET_NAME_V6 = 575,
466
    VAR_TLS_SESSION_TICKET_KEYS = 576,
467
    VAR_RPZ = 577,
468
    VAR_TAGS = 578,
469
    VAR_RPZ_ACTION_OVERRIDE = 579,
470
    VAR_RPZ_CNAME_OVERRIDE = 580,
471
    VAR_RPZ_LOG = 581,
472
    VAR_RPZ_LOG_NAME = 582,
473
    VAR_DYNLIB = 583,
474
    VAR_DYNLIB_FILE = 584,
475
    VAR_EDNS_CLIENT_STRING = 585,
476
    VAR_EDNS_CLIENT_STRING_OPCODE = 586,
477
    VAR_NSID = 587,
478
    VAR_ZONEMD_PERMISSIVE_MODE = 588,
479
    VAR_ZONEMD_CHECK = 589,
480
    VAR_ZONEMD_REJECT_ABSENCE = 590,
481
    VAR_RPZ_SIGNAL_NXDOMAIN_RA = 591,
482
    VAR_INTERFACE_AUTOMATIC_PORTS = 592,
483
    VAR_EDE = 593,
484
    VAR_INTERFACE_ACTION = 594,
485
    VAR_INTERFACE_VIEW = 595,
486
    VAR_INTERFACE_TAG = 596,
487
    VAR_INTERFACE_TAG_ACTION = 597,
488
    VAR_INTERFACE_TAG_DATA = 598,
489
    VAR_PROXY_PROTOCOL_PORT = 599,
490
    VAR_STATISTICS_INHIBIT_ZERO = 600,
491
    VAR_HARDEN_UNKNOWN_ADDITIONAL = 601,
492
    VAR_DISABLE_EDNS_DO = 602,
493
    VAR_CACHEDB_NO_STORE = 603
494
  };
495
#endif
496
/* Tokens.  */
497
#define SPACE 258
498
#define LETTER 259
499
#define NEWLINE 260
500
#define COMMENT 261
501
#define COLON 262
502
#define ANY 263
503
#define ZONESTR 264
504
#define STRING_ARG 265
505
#define VAR_FORCE_TOPLEVEL 266
506
#define VAR_SERVER 267
507
#define VAR_VERBOSITY 268
508
#define VAR_NUM_THREADS 269
509
#define VAR_PORT 270
510
#define VAR_OUTGOING_RANGE 271
511
#define VAR_INTERFACE 272
512
#define VAR_PREFER_IP4 273
513
#define VAR_DO_IP4 274
514
#define VAR_DO_IP6 275
515
#define VAR_DO_NAT64 276
516
#define VAR_PREFER_IP6 277
517
#define VAR_DO_UDP 278
518
#define VAR_DO_TCP 279
519
#define VAR_TCP_MSS 280
520
#define VAR_OUTGOING_TCP_MSS 281
521
#define VAR_TCP_IDLE_TIMEOUT 282
522
#define VAR_EDNS_TCP_KEEPALIVE 283
523
#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 284
524
#define VAR_SOCK_QUEUE_TIMEOUT 285
525
#define VAR_CHROOT 286
526
#define VAR_USERNAME 287
527
#define VAR_DIRECTORY 288
528
#define VAR_LOGFILE 289
529
#define VAR_PIDFILE 290
530
#define VAR_MSG_CACHE_SIZE 291
531
#define VAR_MSG_CACHE_SLABS 292
532
#define VAR_NUM_QUERIES_PER_THREAD 293
533
#define VAR_RRSET_CACHE_SIZE 294
534
#define VAR_RRSET_CACHE_SLABS 295
535
#define VAR_OUTGOING_NUM_TCP 296
536
#define VAR_INFRA_HOST_TTL 297
537
#define VAR_INFRA_LAME_TTL 298
538
#define VAR_INFRA_CACHE_SLABS 299
539
#define VAR_INFRA_CACHE_NUMHOSTS 300
540
#define VAR_INFRA_CACHE_LAME_SIZE 301
541
#define VAR_NAME 302
542
#define VAR_STUB_ZONE 303
543
#define VAR_STUB_HOST 304
544
#define VAR_STUB_ADDR 305
545
#define VAR_TARGET_FETCH_POLICY 306
546
#define VAR_HARDEN_SHORT_BUFSIZE 307
547
#define VAR_HARDEN_LARGE_QUERIES 308
548
#define VAR_FORWARD_ZONE 309
549
#define VAR_FORWARD_HOST 310
550
#define VAR_FORWARD_ADDR 311
551
#define VAR_DO_NOT_QUERY_ADDRESS 312
552
#define VAR_HIDE_IDENTITY 313
553
#define VAR_HIDE_VERSION 314
554
#define VAR_IDENTITY 315
555
#define VAR_VERSION 316
556
#define VAR_HARDEN_GLUE 317
557
#define VAR_MODULE_CONF 318
558
#define VAR_TRUST_ANCHOR_FILE 319
559
#define VAR_TRUST_ANCHOR 320
560
#define VAR_VAL_OVERRIDE_DATE 321
561
#define VAR_BOGUS_TTL 322
562
#define VAR_VAL_CLEAN_ADDITIONAL 323
563
#define VAR_VAL_PERMISSIVE_MODE 324
564
#define VAR_INCOMING_NUM_TCP 325
565
#define VAR_MSG_BUFFER_SIZE 326
566
#define VAR_KEY_CACHE_SIZE 327
567
#define VAR_KEY_CACHE_SLABS 328
568
#define VAR_TRUSTED_KEYS_FILE 329
569
#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 330
570
#define VAR_USE_SYSLOG 331
571
#define VAR_OUTGOING_INTERFACE 332
572
#define VAR_ROOT_HINTS 333
573
#define VAR_DO_NOT_QUERY_LOCALHOST 334
574
#define VAR_CACHE_MAX_TTL 335
575
#define VAR_HARDEN_DNSSEC_STRIPPED 336
576
#define VAR_ACCESS_CONTROL 337
577
#define VAR_LOCAL_ZONE 338
578
#define VAR_LOCAL_DATA 339
579
#define VAR_INTERFACE_AUTOMATIC 340
580
#define VAR_STATISTICS_INTERVAL 341
581
#define VAR_DO_DAEMONIZE 342
582
#define VAR_USE_CAPS_FOR_ID 343
583
#define VAR_STATISTICS_CUMULATIVE 344
584
#define VAR_OUTGOING_PORT_PERMIT 345
585
#define VAR_OUTGOING_PORT_AVOID 346
586
#define VAR_DLV_ANCHOR_FILE 347
587
#define VAR_DLV_ANCHOR 348
588
#define VAR_NEG_CACHE_SIZE 349
589
#define VAR_HARDEN_REFERRAL_PATH 350
590
#define VAR_PRIVATE_ADDRESS 351
591
#define VAR_PRIVATE_DOMAIN 352
592
#define VAR_REMOTE_CONTROL 353
593
#define VAR_CONTROL_ENABLE 354
594
#define VAR_CONTROL_INTERFACE 355
595
#define VAR_CONTROL_PORT 356
596
#define VAR_SERVER_KEY_FILE 357
597
#define VAR_SERVER_CERT_FILE 358
598
#define VAR_CONTROL_KEY_FILE 359
599
#define VAR_CONTROL_CERT_FILE 360
600
#define VAR_CONTROL_USE_CERT 361
601
#define VAR_TCP_REUSE_TIMEOUT 362
602
#define VAR_MAX_REUSE_TCP_QUERIES 363
603
#define VAR_EXTENDED_STATISTICS 364
604
#define VAR_LOCAL_DATA_PTR 365
605
#define VAR_JOSTLE_TIMEOUT 366
606
#define VAR_STUB_PRIME 367
607
#define VAR_UNWANTED_REPLY_THRESHOLD 368
608
#define VAR_LOG_TIME_ASCII 369
609
#define VAR_DOMAIN_INSECURE 370
610
#define VAR_PYTHON 371
611
#define VAR_PYTHON_SCRIPT 372
612
#define VAR_VAL_SIG_SKEW_MIN 373
613
#define VAR_VAL_SIG_SKEW_MAX 374
614
#define VAR_VAL_MAX_RESTART 375
615
#define VAR_CACHE_MIN_TTL 376
616
#define VAR_VAL_LOG_LEVEL 377
617
#define VAR_AUTO_TRUST_ANCHOR_FILE 378
618
#define VAR_KEEP_MISSING 379
619
#define VAR_ADD_HOLDDOWN 380
620
#define VAR_DEL_HOLDDOWN 381
621
#define VAR_SO_RCVBUF 382
622
#define VAR_EDNS_BUFFER_SIZE 383
623
#define VAR_PREFETCH 384
624
#define VAR_PREFETCH_KEY 385
625
#define VAR_SO_SNDBUF 386
626
#define VAR_SO_REUSEPORT 387
627
#define VAR_HARDEN_BELOW_NXDOMAIN 388
628
#define VAR_IGNORE_CD_FLAG 389
629
#define VAR_LOG_QUERIES 390
630
#define VAR_LOG_REPLIES 391
631
#define VAR_LOG_LOCAL_ACTIONS 392
632
#define VAR_TCP_UPSTREAM 393
633
#define VAR_SSL_UPSTREAM 394
634
#define VAR_TCP_AUTH_QUERY_TIMEOUT 395
635
#define VAR_SSL_SERVICE_KEY 396
636
#define VAR_SSL_SERVICE_PEM 397
637
#define VAR_SSL_PORT 398
638
#define VAR_FORWARD_FIRST 399
639
#define VAR_STUB_SSL_UPSTREAM 400
640
#define VAR_FORWARD_SSL_UPSTREAM 401
641
#define VAR_TLS_CERT_BUNDLE 402
642
#define VAR_STUB_TCP_UPSTREAM 403
643
#define VAR_FORWARD_TCP_UPSTREAM 404
644
#define VAR_HTTPS_PORT 405
645
#define VAR_HTTP_ENDPOINT 406
646
#define VAR_HTTP_MAX_STREAMS 407
647
#define VAR_HTTP_QUERY_BUFFER_SIZE 408
648
#define VAR_HTTP_RESPONSE_BUFFER_SIZE 409
649
#define VAR_HTTP_NODELAY 410
650
#define VAR_HTTP_NOTLS_DOWNSTREAM 411
651
#define VAR_STUB_FIRST 412
652
#define VAR_MINIMAL_RESPONSES 413
653
#define VAR_RRSET_ROUNDROBIN 414
654
#define VAR_MAX_UDP_SIZE 415
655
#define VAR_DELAY_CLOSE 416
656
#define VAR_UDP_CONNECT 417
657
#define VAR_UNBLOCK_LAN_ZONES 418
658
#define VAR_INSECURE_LAN_ZONES 419
659
#define VAR_INFRA_CACHE_MIN_RTT 420
660
#define VAR_INFRA_CACHE_MAX_RTT 421
661
#define VAR_INFRA_KEEP_PROBING 422
662
#define VAR_DNS64_PREFIX 423
663
#define VAR_DNS64_SYNTHALL 424
664
#define VAR_DNS64_IGNORE_AAAA 425
665
#define VAR_NAT64_PREFIX 426
666
#define VAR_DNSTAP 427
667
#define VAR_DNSTAP_ENABLE 428
668
#define VAR_DNSTAP_SOCKET_PATH 429
669
#define VAR_DNSTAP_IP 430
670
#define VAR_DNSTAP_TLS 431
671
#define VAR_DNSTAP_TLS_SERVER_NAME 432
672
#define VAR_DNSTAP_TLS_CERT_BUNDLE 433
673
#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 434
674
#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 435
675
#define VAR_DNSTAP_SEND_IDENTITY 436
676
#define VAR_DNSTAP_SEND_VERSION 437
677
#define VAR_DNSTAP_BIDIRECTIONAL 438
678
#define VAR_DNSTAP_IDENTITY 439
679
#define VAR_DNSTAP_VERSION 440
680
#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 441
681
#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 442
682
#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 443
683
#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 444
684
#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 445
685
#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 446
686
#define VAR_RESPONSE_IP_TAG 447
687
#define VAR_RESPONSE_IP 448
688
#define VAR_RESPONSE_IP_DATA 449
689
#define VAR_HARDEN_ALGO_DOWNGRADE 450
690
#define VAR_IP_TRANSPARENT 451
691
#define VAR_IP_DSCP 452
692
#define VAR_DISABLE_DNSSEC_LAME_CHECK 453
693
#define VAR_IP_RATELIMIT 454
694
#define VAR_IP_RATELIMIT_SLABS 455
695
#define VAR_IP_RATELIMIT_SIZE 456
696
#define VAR_RATELIMIT 457
697
#define VAR_RATELIMIT_SLABS 458
698
#define VAR_RATELIMIT_SIZE 459
699
#define VAR_OUTBOUND_MSG_RETRY 460
700
#define VAR_MAX_SENT_COUNT 461
701
#define VAR_MAX_QUERY_RESTARTS 462
702
#define VAR_RATELIMIT_FOR_DOMAIN 463
703
#define VAR_RATELIMIT_BELOW_DOMAIN 464
704
#define VAR_IP_RATELIMIT_FACTOR 465
705
#define VAR_RATELIMIT_FACTOR 466
706
#define VAR_IP_RATELIMIT_BACKOFF 467
707
#define VAR_RATELIMIT_BACKOFF 468
708
#define VAR_SEND_CLIENT_SUBNET 469
709
#define VAR_CLIENT_SUBNET_ZONE 470
710
#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 471
711
#define VAR_CLIENT_SUBNET_OPCODE 472
712
#define VAR_MAX_CLIENT_SUBNET_IPV4 473
713
#define VAR_MAX_CLIENT_SUBNET_IPV6 474
714
#define VAR_MIN_CLIENT_SUBNET_IPV4 475
715
#define VAR_MIN_CLIENT_SUBNET_IPV6 476
716
#define VAR_MAX_ECS_TREE_SIZE_IPV4 477
717
#define VAR_MAX_ECS_TREE_SIZE_IPV6 478
718
#define VAR_CAPS_WHITELIST 479
719
#define VAR_CACHE_MAX_NEGATIVE_TTL 480
720
#define VAR_PERMIT_SMALL_HOLDDOWN 481
721
#define VAR_QNAME_MINIMISATION 482
722
#define VAR_QNAME_MINIMISATION_STRICT 483
723
#define VAR_IP_FREEBIND 484
724
#define VAR_DEFINE_TAG 485
725
#define VAR_LOCAL_ZONE_TAG 486
726
#define VAR_ACCESS_CONTROL_TAG 487
727
#define VAR_LOCAL_ZONE_OVERRIDE 488
728
#define VAR_ACCESS_CONTROL_TAG_ACTION 489
729
#define VAR_ACCESS_CONTROL_TAG_DATA 490
730
#define VAR_VIEW 491
731
#define VAR_ACCESS_CONTROL_VIEW 492
732
#define VAR_VIEW_FIRST 493
733
#define VAR_SERVE_EXPIRED 494
734
#define VAR_SERVE_EXPIRED_TTL 495
735
#define VAR_SERVE_EXPIRED_TTL_RESET 496
736
#define VAR_SERVE_EXPIRED_REPLY_TTL 497
737
#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 498
738
#define VAR_EDE_SERVE_EXPIRED 499
739
#define VAR_SERVE_ORIGINAL_TTL 500
740
#define VAR_FAKE_DSA 501
741
#define VAR_FAKE_SHA1 502
742
#define VAR_LOG_IDENTITY 503
743
#define VAR_HIDE_TRUSTANCHOR 504
744
#define VAR_HIDE_HTTP_USER_AGENT 505
745
#define VAR_HTTP_USER_AGENT 506
746
#define VAR_TRUST_ANCHOR_SIGNALING 507
747
#define VAR_AGGRESSIVE_NSEC 508
748
#define VAR_USE_SYSTEMD 509
749
#define VAR_SHM_ENABLE 510
750
#define VAR_SHM_KEY 511
751
#define VAR_ROOT_KEY_SENTINEL 512
752
#define VAR_DNSCRYPT 513
753
#define VAR_DNSCRYPT_ENABLE 514
754
#define VAR_DNSCRYPT_PORT 515
755
#define VAR_DNSCRYPT_PROVIDER 516
756
#define VAR_DNSCRYPT_SECRET_KEY 517
757
#define VAR_DNSCRYPT_PROVIDER_CERT 518
758
#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 519
759
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 520
760
#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 521
761
#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 522
762
#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 523
763
#define VAR_PAD_RESPONSES 524
764
#define VAR_PAD_RESPONSES_BLOCK_SIZE 525
765
#define VAR_PAD_QUERIES 526
766
#define VAR_PAD_QUERIES_BLOCK_SIZE 527
767
#define VAR_IPSECMOD_ENABLED 528
768
#define VAR_IPSECMOD_HOOK 529
769
#define VAR_IPSECMOD_IGNORE_BOGUS 530
770
#define VAR_IPSECMOD_MAX_TTL 531
771
#define VAR_IPSECMOD_WHITELIST 532
772
#define VAR_IPSECMOD_STRICT 533
773
#define VAR_CACHEDB 534
774
#define VAR_CACHEDB_BACKEND 535
775
#define VAR_CACHEDB_SECRETSEED 536
776
#define VAR_CACHEDB_REDISHOST 537
777
#define VAR_CACHEDB_REDISPORT 538
778
#define VAR_CACHEDB_REDISTIMEOUT 539
779
#define VAR_CACHEDB_REDISEXPIRERECORDS 540
780
#define VAR_CACHEDB_REDISPATH 541
781
#define VAR_CACHEDB_REDISPASSWORD 542
782
#define VAR_CACHEDB_REDISLOGICALDB 543
783
#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 544
784
#define VAR_FOR_UPSTREAM 545
785
#define VAR_AUTH_ZONE 546
786
#define VAR_ZONEFILE 547
787
#define VAR_MASTER 548
788
#define VAR_URL 549
789
#define VAR_FOR_DOWNSTREAM 550
790
#define VAR_FALLBACK_ENABLED 551
791
#define VAR_TLS_ADDITIONAL_PORT 552
792
#define VAR_LOW_RTT 553
793
#define VAR_LOW_RTT_PERMIL 554
794
#define VAR_FAST_SERVER_PERMIL 555
795
#define VAR_FAST_SERVER_NUM 556
796
#define VAR_ALLOW_NOTIFY 557
797
#define VAR_TLS_WIN_CERT 558
798
#define VAR_TCP_CONNECTION_LIMIT 559
799
#define VAR_ANSWER_COOKIE 560
800
#define VAR_COOKIE_SECRET 561
801
#define VAR_IP_RATELIMIT_COOKIE 562
802
#define VAR_FORWARD_NO_CACHE 563
803
#define VAR_STUB_NO_CACHE 564
804
#define VAR_LOG_SERVFAIL 565
805
#define VAR_DENY_ANY 566
806
#define VAR_UNKNOWN_SERVER_TIME_LIMIT 567
807
#define VAR_LOG_TAG_QUERYREPLY 568
808
#define VAR_STREAM_WAIT_SIZE 569
809
#define VAR_TLS_CIPHERS 570
810
#define VAR_TLS_CIPHERSUITES 571
811
#define VAR_TLS_USE_SNI 572
812
#define VAR_IPSET 573
813
#define VAR_IPSET_NAME_V4 574
814
#define VAR_IPSET_NAME_V6 575
815
#define VAR_TLS_SESSION_TICKET_KEYS 576
816
#define VAR_RPZ 577
817
#define VAR_TAGS 578
818
#define VAR_RPZ_ACTION_OVERRIDE 579
819
#define VAR_RPZ_CNAME_OVERRIDE 580
820
#define VAR_RPZ_LOG 581
821
#define VAR_RPZ_LOG_NAME 582
822
#define VAR_DYNLIB 583
823
#define VAR_DYNLIB_FILE 584
824
#define VAR_EDNS_CLIENT_STRING 585
825
#define VAR_EDNS_CLIENT_STRING_OPCODE 586
826
#define VAR_NSID 587
827
#define VAR_ZONEMD_PERMISSIVE_MODE 588
828
#define VAR_ZONEMD_CHECK 589
829
#define VAR_ZONEMD_REJECT_ABSENCE 590
830
#define VAR_RPZ_SIGNAL_NXDOMAIN_RA 591
831
#define VAR_INTERFACE_AUTOMATIC_PORTS 592
832
#define VAR_EDE 593
833
#define VAR_INTERFACE_ACTION 594
834
#define VAR_INTERFACE_VIEW 595
835
#define VAR_INTERFACE_TAG 596
836
#define VAR_INTERFACE_TAG_ACTION 597
837
#define VAR_INTERFACE_TAG_DATA 598
838
#define VAR_PROXY_PROTOCOL_PORT 599
839
#define VAR_STATISTICS_INHIBIT_ZERO 600
840
#define VAR_HARDEN_UNKNOWN_ADDITIONAL 601
841
#define VAR_DISABLE_EDNS_DO 602
842
#define VAR_CACHEDB_NO_STORE 603
843
844
/* Value type.  */
845
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
846
union YYSTYPE
847
{
848
#line 68 "./util/configparser.y"
849
850
  char* str;
851
852
#line 853 "util/configparser.c"
853
854
};
855
typedef union YYSTYPE YYSTYPE;
856
# define YYSTYPE_IS_TRIVIAL 1
857
# define YYSTYPE_IS_DECLARED 1
858
#endif
859
860
861
extern YYSTYPE yylval;
862
863
int yyparse (void);
864
865
#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED  */
866
867
868
869
#ifdef short
870
# undef short
871
#endif
872
873
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
874
   <limits.h> and (if available) <stdint.h> are included
875
   so that the code can choose integer types of a good width.  */
876
877
#ifndef __PTRDIFF_MAX__
878
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
879
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
880
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
881
#  define YY_STDINT_H
882
# endif
883
#endif
884
885
/* Narrow types that promote to a signed type and that can represent a
886
   signed or unsigned integer of at least N bits.  In tables they can
887
   save space and decrease cache pressure.  Promoting to a signed type
888
   helps avoid bugs in integer arithmetic.  */
889
890
#ifdef __INT_LEAST8_MAX__
891
typedef __INT_LEAST8_TYPE__ yytype_int8;
892
#elif defined YY_STDINT_H
893
typedef int_least8_t yytype_int8;
894
#else
895
typedef signed char yytype_int8;
896
#endif
897
898
#ifdef __INT_LEAST16_MAX__
899
typedef __INT_LEAST16_TYPE__ yytype_int16;
900
#elif defined YY_STDINT_H
901
typedef int_least16_t yytype_int16;
902
#else
903
typedef short yytype_int16;
904
#endif
905
906
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
907
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
908
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
909
       && UINT_LEAST8_MAX <= INT_MAX)
910
typedef uint_least8_t yytype_uint8;
911
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
912
typedef unsigned char yytype_uint8;
913
#else
914
typedef short yytype_uint8;
915
#endif
916
917
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
918
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
919
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
920
       && UINT_LEAST16_MAX <= INT_MAX)
921
typedef uint_least16_t yytype_uint16;
922
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
923
typedef unsigned short yytype_uint16;
924
#else
925
typedef int yytype_uint16;
926
#endif
927
928
#ifndef YYPTRDIFF_T
929
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
930
0
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
931
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
932
# elif defined PTRDIFF_MAX
933
#  ifndef ptrdiff_t
934
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
935
#  endif
936
#  define YYPTRDIFF_T ptrdiff_t
937
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
938
# else
939
#  define YYPTRDIFF_T long
940
#  define YYPTRDIFF_MAXIMUM LONG_MAX
941
# endif
942
#endif
943
944
#ifndef YYSIZE_T
945
# ifdef __SIZE_TYPE__
946
#  define YYSIZE_T __SIZE_TYPE__
947
# elif defined size_t
948
#  define YYSIZE_T size_t
949
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
950
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
951
#  define YYSIZE_T size_t
952
# else
953
#  define YYSIZE_T unsigned
954
# endif
955
#endif
956
957
#define YYSIZE_MAXIMUM                                  \
958
  YY_CAST (YYPTRDIFF_T,                                 \
959
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
960
            ? YYPTRDIFF_MAXIMUM                         \
961
            : YY_CAST (YYSIZE_T, -1)))
962
963
0
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
964
965
/* Stored state numbers (used for stacks). */
966
typedef yytype_int16 yy_state_t;
967
968
/* State numbers in computations.  */
969
typedef int yy_state_fast_t;
970
971
#ifndef YY_
972
# if defined YYENABLE_NLS && YYENABLE_NLS
973
#  if ENABLE_NLS
974
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
975
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
976
#  endif
977
# endif
978
# ifndef YY_
979
0
#  define YY_(Msgid) Msgid
980
# endif
981
#endif
982
983
#ifndef YY_ATTRIBUTE_PURE
984
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
985
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
986
# else
987
#  define YY_ATTRIBUTE_PURE
988
# endif
989
#endif
990
991
#ifndef YY_ATTRIBUTE_UNUSED
992
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
993
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
994
# else
995
#  define YY_ATTRIBUTE_UNUSED
996
# endif
997
#endif
998
999
/* Suppress unused-variable warnings by "using" E.  */
1000
#if ! defined lint || defined __GNUC__
1001
0
# define YYUSE(E) ((void) (E))
1002
#else
1003
# define YYUSE(E) /* empty */
1004
#endif
1005
1006
#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1007
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
1008
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
1009
    _Pragma ("GCC diagnostic push")                                     \
1010
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
1011
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1012
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
1013
    _Pragma ("GCC diagnostic pop")
1014
#else
1015
# define YY_INITIAL_VALUE(Value) Value
1016
#endif
1017
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1018
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1019
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
1020
#endif
1021
#ifndef YY_INITIAL_VALUE
1022
# define YY_INITIAL_VALUE(Value) /* Nothing. */
1023
#endif
1024
1025
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1026
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
1027
    _Pragma ("GCC diagnostic push")                            \
1028
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1029
# define YY_IGNORE_USELESS_CAST_END            \
1030
    _Pragma ("GCC diagnostic pop")
1031
#endif
1032
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
1033
# define YY_IGNORE_USELESS_CAST_BEGIN
1034
# define YY_IGNORE_USELESS_CAST_END
1035
#endif
1036
1037
1038
0
#define YY_ASSERT(E) ((void) (0 && (E)))
1039
1040
#if ! defined yyoverflow || YYERROR_VERBOSE
1041
1042
/* The parser invokes alloca or malloc; define the necessary symbols.  */
1043
1044
# ifdef YYSTACK_USE_ALLOCA
1045
#  if YYSTACK_USE_ALLOCA
1046
#   ifdef __GNUC__
1047
#    define YYSTACK_ALLOC __builtin_alloca
1048
#   elif defined __BUILTIN_VA_ARG_INCR
1049
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1050
#   elif defined _AIX
1051
#    define YYSTACK_ALLOC __alloca
1052
#   elif defined _MSC_VER
1053
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1054
#    define alloca _alloca
1055
#   else
1056
#    define YYSTACK_ALLOC alloca
1057
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1058
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1059
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
1060
#     ifndef EXIT_SUCCESS
1061
#      define EXIT_SUCCESS 0
1062
#     endif
1063
#    endif
1064
#   endif
1065
#  endif
1066
# endif
1067
1068
# ifdef YYSTACK_ALLOC
1069
   /* Pacify GCC's 'empty if-body' warning.  */
1070
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1071
#  ifndef YYSTACK_ALLOC_MAXIMUM
1072
    /* The OS might guarantee only one guard page at the bottom of the stack,
1073
       and a page size can be as small as 4096 bytes.  So we cannot safely
1074
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
1075
       to allow for a few compiler-allocated temporary stack slots.  */
1076
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1077
#  endif
1078
# else
1079
#  define YYSTACK_ALLOC YYMALLOC
1080
0
#  define YYSTACK_FREE YYFREE
1081
#  ifndef YYSTACK_ALLOC_MAXIMUM
1082
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1083
#  endif
1084
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1085
       && ! ((defined YYMALLOC || defined malloc) \
1086
             && (defined YYFREE || defined free)))
1087
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1088
#   ifndef EXIT_SUCCESS
1089
#    define EXIT_SUCCESS 0
1090
#   endif
1091
#  endif
1092
#  ifndef YYMALLOC
1093
#   define YYMALLOC malloc
1094
#   if ! defined malloc && ! defined EXIT_SUCCESS
1095
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1096
#   endif
1097
#  endif
1098
#  ifndef YYFREE
1099
0
#   define YYFREE free
1100
#   if ! defined free && ! defined EXIT_SUCCESS
1101
void free (void *); /* INFRINGES ON USER NAME SPACE */
1102
#   endif
1103
#  endif
1104
# endif
1105
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1106
1107
1108
#if (! defined yyoverflow \
1109
     && (! defined __cplusplus \
1110
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1111
1112
/* A type that is properly aligned for any stack member.  */
1113
union yyalloc
1114
{
1115
  yy_state_t yyss_alloc;
1116
  YYSTYPE yyvs_alloc;
1117
};
1118
1119
/* The size of the maximum gap between one aligned stack and the next.  */
1120
0
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1121
1122
/* The size of an array large to enough to hold all stacks, each with
1123
   N elements.  */
1124
# define YYSTACK_BYTES(N) \
1125
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1126
      + YYSTACK_GAP_MAXIMUM)
1127
1128
# define YYCOPY_NEEDED 1
1129
1130
/* Relocate STACK from its old location to the new one.  The
1131
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
1132
   elements in the stack, and YYPTR gives the new location of the
1133
   stack.  Advance YYPTR to a properly aligned location for the next
1134
   stack.  */
1135
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1136
0
    do                                                                  \
1137
0
      {                                                                 \
1138
0
        YYPTRDIFF_T yynewbytes;                                         \
1139
0
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1140
0
        Stack = &yyptr->Stack_alloc;                                    \
1141
0
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1142
0
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1143
0
      }                                                                 \
1144
0
    while (0)
1145
1146
#endif
1147
1148
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1149
/* Copy COUNT objects from SRC to DST.  The source and destination do
1150
   not overlap.  */
1151
# ifndef YYCOPY
1152
#  if defined __GNUC__ && 1 < __GNUC__
1153
#   define YYCOPY(Dst, Src, Count) \
1154
0
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1155
#  else
1156
#   define YYCOPY(Dst, Src, Count)              \
1157
      do                                        \
1158
        {                                       \
1159
          YYPTRDIFF_T yyi;                      \
1160
          for (yyi = 0; yyi < (Count); yyi++)   \
1161
            (Dst)[yyi] = (Src)[yyi];            \
1162
        }                                       \
1163
      while (0)
1164
#  endif
1165
# endif
1166
#endif /* !YYCOPY_NEEDED */
1167
1168
/* YYFINAL -- State number of the termination state.  */
1169
0
#define YYFINAL  2
1170
/* YYLAST -- Last index in YYTABLE.  */
1171
0
#define YYLAST   744
1172
1173
/* YYNTOKENS -- Number of terminals.  */
1174
0
#define YYNTOKENS  349
1175
/* YYNNTS -- Number of nonterminals.  */
1176
#define YYNNTS  374
1177
/* YYNRULES -- Number of rules.  */
1178
#define YYNRULES  725
1179
/* YYNSTATES -- Number of states.  */
1180
#define YYNSTATES  1085
1181
1182
0
#define YYUNDEFTOK  2
1183
0
#define YYMAXUTOK   603
1184
1185
1186
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1187
   as returned by yylex, with out-of-bounds checking.  */
1188
#define YYTRANSLATE(YYX)                                                \
1189
0
  (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1190
1191
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1192
   as returned by yylex.  */
1193
static const yytype_int16 yytranslate[] =
1194
{
1195
       0,     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,     1,     2,     3,     4,
1221
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1222
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1223
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1224
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1225
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1226
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1227
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1228
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1229
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1230
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1231
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1232
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1233
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1234
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1235
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1236
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1237
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1238
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1239
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1240
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1241
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1242
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1243
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1244
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1245
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1246
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1247
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1248
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1249
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1250
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1251
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1252
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1253
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1254
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1255
     345,   346,   347,   348
1256
};
1257
1258
#if YYDEBUG
1259
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1260
static const yytype_int16 yyrline[] =
1261
{
1262
       0,   205,   205,   205,   206,   206,   207,   207,   208,   208,
1263
     208,   209,   209,   210,   210,   211,   211,   212,   214,   221,
1264
     227,   228,   229,   229,   229,   230,   230,   231,   231,   231,
1265
     232,   232,   232,   233,   233,   233,   234,   234,   235,   236,
1266
     236,   236,   237,   237,   237,   238,   238,   239,   239,   240,
1267
     240,   241,   241,   242,   242,   243,   243,   244,   244,   245,
1268
     245,   246,   246,   246,   247,   247,   248,   248,   248,   249,
1269
     249,   249,   250,   250,   251,   251,   252,   252,   253,   253,
1270
     254,   254,   254,   255,   255,   256,   256,   257,   257,   257,
1271
     258,   258,   259,   259,   260,   260,   261,   261,   261,   262,
1272
     262,   263,   263,   264,   264,   265,   265,   266,   266,   267,
1273
     267,   268,   268,   269,   269,   270,   270,   270,   271,   271,
1274
     271,   272,   272,   272,   273,   273,   273,   273,   274,   275,
1275
     275,   275,   276,   276,   276,   277,   277,   278,   278,   279,
1276
     279,   279,   280,   280,   280,   281,   281,   282,   282,   282,
1277
     283,   284,   284,   284,   285,   285,   285,   286,   286,   287,
1278
     287,   288,   288,   289,   290,   290,   291,   291,   292,   292,
1279
     293,   293,   294,   294,   295,   295,   296,   296,   297,   297,
1280
     298,   298,   299,   299,   300,   300,   301,   301,   301,   302,
1281
     302,   303,   303,   304,   304,   305,   305,   305,   306,   306,
1282
     307,   308,   308,   309,   309,   310,   311,   311,   312,   312,
1283
     313,   313,   313,   314,   314,   315,   315,   315,   316,   316,
1284
     316,   317,   317,   318,   319,   319,   320,   320,   321,   321,
1285
     322,   322,   323,   323,   323,   324,   324,   324,   325,   325,
1286
     325,   326,   326,   327,   327,   328,   328,   329,   329,   329,
1287
     330,   330,   331,   331,   332,   332,   333,   333,   334,   334,
1288
     335,   335,   336,   336,   338,   352,   353,   354,   354,   354,
1289
     354,   354,   355,   355,   355,   357,   371,   372,   373,   373,
1290
     373,   373,   374,   374,   374,   376,   392,   393,   394,   394,
1291
     394,   394,   395,   395,   395,   397,   418,   419,   420,   420,
1292
     420,   420,   421,   421,   421,   422,   422,   422,   425,   444,
1293
     461,   469,   479,   486,   496,   515,   516,   517,   517,   517,
1294
     517,   517,   518,   518,   518,   519,   519,   519,   519,   521,
1295
     530,   539,   550,   559,   568,   577,   586,   597,   606,   618,
1296
     632,   647,   658,   675,   692,   709,   726,   741,   756,   769,
1297
     784,   793,   802,   811,   820,   829,   838,   845,   854,   863,
1298
     872,   881,   890,   899,   908,   917,   926,   939,   950,   961,
1299
     972,   981,   994,  1007,  1016,  1025,  1034,  1041,  1048,  1057,
1300
    1064,  1073,  1081,  1088,  1095,  1103,  1112,  1120,  1136,  1144,
1301
    1152,  1160,  1168,  1176,  1185,  1194,  1208,  1217,  1226,  1235,
1302
    1244,  1253,  1262,  1269,  1276,  1302,  1310,  1317,  1324,  1331,
1303
    1338,  1346,  1354,  1362,  1369,  1380,  1391,  1398,  1407,  1416,
1304
    1425,  1434,  1441,  1448,  1455,  1471,  1479,  1487,  1497,  1507,
1305
    1517,  1531,  1539,  1552,  1563,  1571,  1584,  1593,  1602,  1611,
1306
    1620,  1630,  1640,  1648,  1661,  1670,  1678,  1687,  1695,  1708,
1307
    1717,  1726,  1736,  1743,  1753,  1763,  1773,  1783,  1793,  1803,
1308
    1813,  1823,  1833,  1840,  1847,  1854,  1863,  1872,  1881,  1890,
1309
    1897,  1907,  1915,  1924,  1931,  1949,  1962,  1975,  1988,  1997,
1310
    2006,  2015,  2024,  2034,  2044,  2055,  2064,  2073,  2082,  2091,
1311
    2100,  2109,  2118,  2127,  2136,  2149,  2162,  2171,  2178,  2187,
1312
    2196,  2205,  2214,  2224,  2232,  2245,  2253,  2309,  2316,  2331,
1313
    2341,  2351,  2358,  2365,  2372,  2381,  2389,  2396,  2410,  2431,
1314
    2452,  2464,  2476,  2488,  2497,  2518,  2530,  2542,  2551,  2572,
1315
    2581,  2590,  2599,  2607,  2615,  2628,  2641,  2656,  2671,  2680,
1316
    2689,  2699,  2709,  2718,  2727,  2736,  2742,  2751,  2760,  2770,
1317
    2780,  2790,  2799,  2809,  2818,  2831,  2844,  2856,  2870,  2882,
1318
    2896,  2905,  2916,  2925,  2932,  2942,  2949,  2956,  2965,  2974,
1319
    2984,  2994,  3004,  3014,  3021,  3028,  3037,  3046,  3056,  3066,
1320
    3076,  3083,  3090,  3097,  3105,  3115,  3125,  3135,  3145,  3155,
1321
    3165,  3221,  3231,  3239,  3247,  3262,  3271,  3277,  3278,  3279,
1322
    3279,  3279,  3280,  3280,  3280,  3281,  3281,  3283,  3293,  3302,
1323
    3309,  3316,  3323,  3330,  3337,  3344,  3350,  3351,  3352,  3352,
1324
    3352,  3353,  3353,  3353,  3354,  3355,  3355,  3356,  3356,  3357,
1325
    3357,  3358,  3359,  3360,  3361,  3362,  3363,  3365,  3374,  3384,
1326
    3391,  3398,  3407,  3414,  3421,  3428,  3435,  3444,  3453,  3460,
1327
    3467,  3477,  3487,  3497,  3507,  3517,  3527,  3533,  3534,  3535,
1328
    3537,  3544,  3550,  3551,  3552,  3554,  3561,  3571,  3578,  3587,
1329
    3595,  3601,  3602,  3604,  3604,  3604,  3605,  3605,  3606,  3607,
1330
    3608,  3609,  3610,  3612,  3621,  3630,  3637,  3646,  3653,  3662,
1331
    3670,  3683,  3691,  3704,  3710,  3711,  3712,  3712,  3713,  3713,
1332
    3713,  3714,  3714,  3714,  3715,  3715,  3717,  3729,  3741,  3754,
1333
    3766,  3781,  3793,  3805,  3818,  3831,  3846,  3857,  3866,  3882,
1334
    3888,  3889,  3890,  3890,  3892,  3907
1335
};
1336
#endif
1337
1338
#if YYDEBUG || YYERROR_VERBOSE || 0
1339
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1340
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1341
static const char *const yytname[] =
1342
{
1343
  "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
1344
  "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_FORCE_TOPLEVEL",
1345
  "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", "VAR_PORT",
1346
  "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", "VAR_DO_IP4",
1347
  "VAR_DO_IP6", "VAR_DO_NAT64", "VAR_PREFER_IP6", "VAR_DO_UDP",
1348
  "VAR_DO_TCP", "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS",
1349
  "VAR_TCP_IDLE_TIMEOUT", "VAR_EDNS_TCP_KEEPALIVE",
1350
  "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_SOCK_QUEUE_TIMEOUT", "VAR_CHROOT",
1351
  "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
1352
  "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
1353
  "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
1354
  "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
1355
  "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
1356
  "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
1357
  "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
1358
  "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
1359
  "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
1360
  "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
1361
  "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
1362
  "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
1363
  "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
1364
  "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
1365
  "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
1366
  "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
1367
  "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
1368
  "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL",
1369
  "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
1370
  "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
1371
  "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
1372
  "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
1373
  "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
1374
  "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
1375
  "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
1376
  "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
1377
  "VAR_CONTROL_USE_CERT", "VAR_TCP_REUSE_TIMEOUT",
1378
  "VAR_MAX_REUSE_TCP_QUERIES", "VAR_EXTENDED_STATISTICS",
1379
  "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME",
1380
  "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
1381
  "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
1382
  "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_VAL_MAX_RESTART",
1383
  "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE",
1384
  "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN",
1385
  "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH",
1386
  "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT",
1387
  "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES",
1388
  "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM",
1389
  "VAR_SSL_UPSTREAM", "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY",
1390
  "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST",
1391
  "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM",
1392
  "VAR_TLS_CERT_BUNDLE", "VAR_STUB_TCP_UPSTREAM",
1393
  "VAR_FORWARD_TCP_UPSTREAM", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT",
1394
  "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE",
1395
  "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY",
1396
  "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES",
1397
  "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE",
1398
  "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES",
1399
  "VAR_INFRA_CACHE_MIN_RTT", "VAR_INFRA_CACHE_MAX_RTT",
1400
  "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL",
1401
  "VAR_DNS64_IGNORE_AAAA", "VAR_NAT64_PREFIX", "VAR_DNSTAP",
1402
  "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP",
1403
  "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME",
1404
  "VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE",
1405
  "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY",
1406
  "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_BIDIRECTIONAL",
1407
  "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
1408
  "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES",
1409
  "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES",
1410
  "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES",
1411
  "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES",
1412
  "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES",
1413
  "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "VAR_RESPONSE_IP_TAG",
1414
  "VAR_RESPONSE_IP", "VAR_RESPONSE_IP_DATA", "VAR_HARDEN_ALGO_DOWNGRADE",
1415
  "VAR_IP_TRANSPARENT", "VAR_IP_DSCP", "VAR_DISABLE_DNSSEC_LAME_CHECK",
1416
  "VAR_IP_RATELIMIT", "VAR_IP_RATELIMIT_SLABS", "VAR_IP_RATELIMIT_SIZE",
1417
  "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE",
1418
  "VAR_OUTBOUND_MSG_RETRY", "VAR_MAX_SENT_COUNT", "VAR_MAX_QUERY_RESTARTS",
1419
  "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN",
1420
  "VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR",
1421
  "VAR_IP_RATELIMIT_BACKOFF", "VAR_RATELIMIT_BACKOFF",
1422
  "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE",
1423
  "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE",
1424
  "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6",
1425
  "VAR_MIN_CLIENT_SUBNET_IPV4", "VAR_MIN_CLIENT_SUBNET_IPV6",
1426
  "VAR_MAX_ECS_TREE_SIZE_IPV4", "VAR_MAX_ECS_TREE_SIZE_IPV6",
1427
  "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL",
1428
  "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION",
1429
  "VAR_QNAME_MINIMISATION_STRICT", "VAR_IP_FREEBIND", "VAR_DEFINE_TAG",
1430
  "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG",
1431
  "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION",
1432
  "VAR_ACCESS_CONTROL_TAG_DATA", "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW",
1433
  "VAR_VIEW_FIRST", "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL",
1434
  "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL",
1435
  "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_EDE_SERVE_EXPIRED",
1436
  "VAR_SERVE_ORIGINAL_TTL", "VAR_FAKE_DSA", "VAR_FAKE_SHA1",
1437
  "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_HIDE_HTTP_USER_AGENT",
1438
  "VAR_HTTP_USER_AGENT", "VAR_TRUST_ANCHOR_SIGNALING",
1439
  "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE",
1440
  "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT",
1441
  "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER",
1442
  "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT",
1443
  "VAR_DNSCRYPT_PROVIDER_CERT_ROTATED",
1444
  "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE",
1445
  "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS",
1446
  "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS",
1447
  "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES",
1448
  "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED",
1449
  "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL",
1450
  "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB",
1451
  "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST",
1452
  "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT",
1453
  "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_CACHEDB_REDISPATH",
1454
  "VAR_CACHEDB_REDISPASSWORD", "VAR_CACHEDB_REDISLOGICALDB",
1455
  "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM",
1456
  "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL",
1457
  "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT",
1458
  "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL",
1459
  "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT",
1460
  "VAR_TCP_CONNECTION_LIMIT", "VAR_ANSWER_COOKIE", "VAR_COOKIE_SECRET",
1461
  "VAR_IP_RATELIMIT_COOKIE", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE",
1462
  "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT",
1463
  "VAR_LOG_TAG_QUERYREPLY", "VAR_STREAM_WAIT_SIZE", "VAR_TLS_CIPHERS",
1464
  "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI", "VAR_IPSET",
1465
  "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS",
1466
  "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE",
1467
  "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME",
1468
  "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING",
1469
  "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID",
1470
  "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK",
1471
  "VAR_ZONEMD_REJECT_ABSENCE", "VAR_RPZ_SIGNAL_NXDOMAIN_RA",
1472
  "VAR_INTERFACE_AUTOMATIC_PORTS", "VAR_EDE", "VAR_INTERFACE_ACTION",
1473
  "VAR_INTERFACE_VIEW", "VAR_INTERFACE_TAG", "VAR_INTERFACE_TAG_ACTION",
1474
  "VAR_INTERFACE_TAG_DATA", "VAR_PROXY_PROTOCOL_PORT",
1475
  "VAR_STATISTICS_INHIBIT_ZERO", "VAR_HARDEN_UNKNOWN_ADDITIONAL",
1476
  "VAR_DISABLE_EDNS_DO", "VAR_CACHEDB_NO_STORE", "$accept", "toplevelvars",
1477
  "toplevelvar", "force_toplevel", "serverstart", "contents_server",
1478
  "content_server", "stubstart", "contents_stub", "content_stub",
1479
  "forwardstart", "contents_forward", "content_forward", "viewstart",
1480
  "contents_view", "content_view", "authstart", "contents_auth",
1481
  "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override",
1482
  "rpz_log", "rpz_log_name", "rpz_signal_nxdomain_ra", "rpzstart",
1483
  "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity",
1484
  "server_statistics_interval", "server_statistics_cumulative",
1485
  "server_extended_statistics", "server_statistics_inhibit_zero",
1486
  "server_shm_enable", "server_shm_key", "server_port",
1487
  "server_send_client_subnet", "server_client_subnet_zone",
1488
  "server_client_subnet_always_forward", "server_client_subnet_opcode",
1489
  "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6",
1490
  "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6",
1491
  "server_max_ecs_tree_size_ipv4", "server_max_ecs_tree_size_ipv6",
1492
  "server_interface", "server_outgoing_interface", "server_outgoing_range",
1493
  "server_outgoing_port_permit", "server_outgoing_port_avoid",
1494
  "server_outgoing_num_tcp", "server_incoming_num_tcp",
1495
  "server_interface_automatic", "server_interface_automatic_ports",
1496
  "server_do_ip4", "server_do_ip6", "server_do_nat64", "server_do_udp",
1497
  "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6",
1498
  "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_idle_timeout",
1499
  "server_max_reuse_tcp_queries", "server_tcp_reuse_timeout",
1500
  "server_tcp_auth_query_timeout", "server_tcp_keepalive",
1501
  "server_tcp_keepalive_timeout", "server_sock_queue_timeout",
1502
  "server_tcp_upstream", "server_udp_upstream_without_downstream",
1503
  "server_ssl_upstream", "server_ssl_service_key",
1504
  "server_ssl_service_pem", "server_ssl_port", "server_tls_cert_bundle",
1505
  "server_tls_win_cert", "server_tls_additional_port",
1506
  "server_tls_ciphers", "server_tls_ciphersuites",
1507
  "server_tls_session_ticket_keys", "server_tls_use_sni",
1508
  "server_https_port", "server_http_endpoint", "server_http_max_streams",
1509
  "server_http_query_buffer_size", "server_http_response_buffer_size",
1510
  "server_http_nodelay", "server_http_notls_downstream",
1511
  "server_use_systemd", "server_do_daemonize", "server_use_syslog",
1512
  "server_log_time_ascii", "server_log_queries", "server_log_replies",
1513
  "server_log_tag_queryreply", "server_log_servfail",
1514
  "server_log_local_actions", "server_chroot", "server_username",
1515
  "server_directory", "server_logfile", "server_pidfile",
1516
  "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor",
1517
  "server_auto_trust_anchor_file", "server_trust_anchor_file",
1518
  "server_trusted_keys_file", "server_trust_anchor",
1519
  "server_trust_anchor_signaling", "server_root_key_sentinel",
1520
  "server_domain_insecure", "server_hide_identity", "server_hide_version",
1521
  "server_hide_trustanchor", "server_hide_http_user_agent",
1522
  "server_identity", "server_version", "server_http_user_agent",
1523
  "server_nsid", "server_so_rcvbuf", "server_so_sndbuf",
1524
  "server_so_reuseport", "server_ip_transparent", "server_ip_freebind",
1525
  "server_ip_dscp", "server_stream_wait_size", "server_edns_buffer_size",
1526
  "server_msg_buffer_size", "server_msg_cache_size",
1527
  "server_msg_cache_slabs", "server_num_queries_per_thread",
1528
  "server_jostle_timeout", "server_delay_close", "server_udp_connect",
1529
  "server_unblock_lan_zones", "server_insecure_lan_zones",
1530
  "server_rrset_cache_size", "server_rrset_cache_slabs",
1531
  "server_infra_host_ttl", "server_infra_lame_ttl",
1532
  "server_infra_cache_numhosts", "server_infra_cache_lame_size",
1533
  "server_infra_cache_slabs", "server_infra_cache_min_rtt",
1534
  "server_infra_cache_max_rtt", "server_infra_keep_probing",
1535
  "server_target_fetch_policy", "server_harden_short_bufsize",
1536
  "server_harden_large_queries", "server_harden_glue",
1537
  "server_harden_dnssec_stripped", "server_harden_below_nxdomain",
1538
  "server_harden_referral_path", "server_harden_algo_downgrade",
1539
  "server_harden_unknown_additional", "server_use_caps_for_id",
1540
  "server_caps_whitelist", "server_private_address",
1541
  "server_private_domain", "server_prefetch", "server_prefetch_key",
1542
  "server_deny_any", "server_unwanted_reply_threshold",
1543
  "server_do_not_query_address", "server_do_not_query_localhost",
1544
  "server_access_control", "server_interface_action", "server_module_conf",
1545
  "server_val_override_date", "server_val_sig_skew_min",
1546
  "server_val_sig_skew_max", "server_val_max_restart",
1547
  "server_cache_max_ttl", "server_cache_max_negative_ttl",
1548
  "server_cache_min_ttl", "server_bogus_ttl",
1549
  "server_val_clean_additional", "server_val_permissive_mode",
1550
  "server_aggressive_nsec", "server_ignore_cd_flag",
1551
  "server_disable_edns_do", "server_serve_expired",
1552
  "server_serve_expired_ttl", "server_serve_expired_ttl_reset",
1553
  "server_serve_expired_reply_ttl", "server_serve_expired_client_timeout",
1554
  "server_ede_serve_expired", "server_serve_original_ttl",
1555
  "server_fake_dsa", "server_fake_sha1", "server_val_log_level",
1556
  "server_val_nsec3_keysize_iterations", "server_zonemd_permissive_mode",
1557
  "server_add_holddown", "server_del_holddown", "server_keep_missing",
1558
  "server_permit_small_holddown", "server_key_cache_size",
1559
  "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
1560
  "server_local_data", "server_local_data_ptr", "server_minimal_responses",
1561
  "server_rrset_roundrobin", "server_unknown_server_time_limit",
1562
  "server_max_udp_size", "server_dns64_prefix", "server_dns64_synthall",
1563
  "server_dns64_ignore_aaaa", "server_nat64_prefix", "server_define_tag",
1564
  "server_local_zone_tag", "server_access_control_tag",
1565
  "server_access_control_tag_action", "server_access_control_tag_data",
1566
  "server_local_zone_override", "server_access_control_view",
1567
  "server_interface_tag", "server_interface_tag_action",
1568
  "server_interface_tag_data", "server_interface_view",
1569
  "server_response_ip_tag", "server_ip_ratelimit",
1570
  "server_ip_ratelimit_cookie", "server_ratelimit",
1571
  "server_ip_ratelimit_size", "server_ratelimit_size",
1572
  "server_ip_ratelimit_slabs", "server_ratelimit_slabs",
1573
  "server_ratelimit_for_domain", "server_ratelimit_below_domain",
1574
  "server_ip_ratelimit_factor", "server_ratelimit_factor",
1575
  "server_ip_ratelimit_backoff", "server_ratelimit_backoff",
1576
  "server_outbound_msg_retry", "server_max_sent_count",
1577
  "server_max_query_restarts", "server_low_rtt", "server_fast_server_num",
1578
  "server_fast_server_permil", "server_qname_minimisation",
1579
  "server_qname_minimisation_strict", "server_pad_responses",
1580
  "server_pad_responses_block_size", "server_pad_queries",
1581
  "server_pad_queries_block_size", "server_ipsecmod_enabled",
1582
  "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook",
1583
  "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist",
1584
  "server_ipsecmod_strict", "server_edns_client_string",
1585
  "server_edns_client_string_opcode", "server_ede",
1586
  "server_proxy_protocol_port", "stub_name", "stub_host", "stub_addr",
1587
  "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_tcp_upstream",
1588
  "stub_prime", "forward_name", "forward_host", "forward_addr",
1589
  "forward_first", "forward_no_cache", "forward_ssl_upstream",
1590
  "forward_tcp_upstream", "auth_name", "auth_zonefile", "auth_master",
1591
  "auth_url", "auth_allow_notify", "auth_zonemd_check",
1592
  "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream",
1593
  "auth_fallback_enabled", "view_name", "view_local_zone",
1594
  "view_response_ip", "view_response_ip_data", "view_local_data",
1595
  "view_local_data_ptr", "view_first", "rcstart", "contents_rc",
1596
  "content_rc", "rc_control_enable", "rc_control_port",
1597
  "rc_control_interface", "rc_control_use_cert", "rc_server_key_file",
1598
  "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file",
1599
  "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable",
1600
  "dt_dnstap_bidirectional", "dt_dnstap_socket_path", "dt_dnstap_ip",
1601
  "dt_dnstap_tls", "dt_dnstap_tls_server_name",
1602
  "dt_dnstap_tls_cert_bundle", "dt_dnstap_tls_client_key_file",
1603
  "dt_dnstap_tls_client_cert_file", "dt_dnstap_send_identity",
1604
  "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version",
1605
  "dt_dnstap_log_resolver_query_messages",
1606
  "dt_dnstap_log_resolver_response_messages",
1607
  "dt_dnstap_log_client_query_messages",
1608
  "dt_dnstap_log_client_response_messages",
1609
  "dt_dnstap_log_forwarder_query_messages",
1610
  "dt_dnstap_log_forwarder_response_messages", "pythonstart",
1611
  "contents_py", "content_py", "py_script", "dynlibstart", "contents_dl",
1612
  "content_dl", "dl_file", "server_disable_dnssec_lame_check",
1613
  "server_log_identity", "server_response_ip", "server_response_ip_data",
1614
  "dnscstart", "contents_dnsc", "content_dnsc", "dnsc_dnscrypt_enable",
1615
  "dnsc_dnscrypt_port", "dnsc_dnscrypt_provider",
1616
  "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_provider_cert_rotated",
1617
  "dnsc_dnscrypt_secret_key", "dnsc_dnscrypt_shared_secret_cache_size",
1618
  "dnsc_dnscrypt_shared_secret_cache_slabs",
1619
  "dnsc_dnscrypt_nonce_cache_size", "dnsc_dnscrypt_nonce_cache_slabs",
1620
  "cachedbstart", "contents_cachedb", "content_cachedb",
1621
  "cachedb_backend_name", "cachedb_secret_seed", "cachedb_no_store",
1622
  "redis_server_host", "redis_server_port", "redis_server_path",
1623
  "redis_server_password", "redis_timeout", "redis_expire_records",
1624
  "redis_logical_db", "server_tcp_connection_limit",
1625
  "server_answer_cookie", "server_cookie_secret", "ipsetstart",
1626
  "contents_ipset", "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
1627
};
1628
#endif
1629
1630
# ifdef YYPRINT
1631
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
1632
   (internal) symbol number NUM (which must be that of a token).  */
1633
static const yytype_int16 yytoknum[] =
1634
{
1635
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1636
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1637
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1638
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1639
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1640
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1641
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1642
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1643
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1644
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1645
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1646
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1647
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1648
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1649
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1650
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1651
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1652
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1653
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1654
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1655
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1656
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1657
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1658
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1659
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1660
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1661
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1662
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
1663
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
1664
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
1665
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
1666
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
1667
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
1668
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
1669
     595,   596,   597,   598,   599,   600,   601,   602,   603
1670
};
1671
# endif
1672
1673
0
#define YYPACT_NINF (-293)
1674
1675
#define yypact_value_is_default(Yyn) \
1676
0
  ((Yyn) == YYPACT_NINF)
1677
1678
#define YYTABLE_NINF (-1)
1679
1680
#define yytable_value_is_error(Yyn) \
1681
0
  0
1682
1683
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1684
     STATE-NUM.  */
1685
static const yytype_int16 yypact[] =
1686
{
1687
    -293,   267,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1688
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1689
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1690
    -293,  -293,   -13,   199,   122,   230,    56,    43,   272,   228,
1691
     -81,  -292,  -100,   112,  -285,    31,    32,    33,    75,    76,
1692
      77,    78,    79,    81,    82,    83,    89,    94,   121,   123,
1693
     125,   126,   134,   160,   161,   162,   163,   164,   165,   166,
1694
     213,   215,   235,   237,   240,   241,   242,   243,   244,   245,
1695
     259,   260,   262,   263,   264,   265,   270,   271,   273,   276,
1696
     279,   285,   286,   295,   296,   297,   299,   300,   302,   306,
1697
     312,   313,   329,   331,   332,   333,   343,   344,   345,   347,
1698
     349,   350,   351,   352,   353,   354,   370,   371,   372,   374,
1699
     375,   376,   377,   378,   379,   410,   411,   412,   415,   416,
1700
     417,   418,   419,   421,   422,   423,   424,   425,   426,   427,
1701
     428,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1702
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1703
     449,   451,   452,   453,   454,   455,   456,   457,   459,   460,
1704
     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1705
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
1706
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
1707
     491,   492,   494,   495,   496,   497,   499,   500,   501,   502,
1708
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
1709
     513,   514,   516,   517,   518,   519,   520,   521,   522,   523,
1710
     524,   525,   526,   527,   528,   529,   530,   531,   532,   533,
1711
     534,   535,   537,   538,   539,   540,   541,   542,   543,   544,
1712
     545,   546,   547,   549,   550,   551,   552,   553,   554,   555,
1713
     556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
1714
     566,   567,   568,   569,   570,   571,   572,   573,   574,   576,
1715
     577,   578,   580,   581,   582,   583,   584,  -293,  -293,  -293,
1716
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1717
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1718
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1719
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1720
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1721
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1722
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1723
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1724
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1725
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1726
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1727
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1728
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1729
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1730
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1731
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1732
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1733
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1734
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1735
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1736
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1737
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1738
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1739
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1740
     586,   587,   588,   589,   590,   591,   592,   593,  -293,  -293,
1741
    -293,  -293,  -293,  -293,  -293,  -293,  -293,   594,   595,   596,
1742
     597,   598,   599,   600,  -293,  -293,  -293,  -293,  -293,  -293,
1743
    -293,  -293,   601,   602,   603,   604,   605,   606,   607,  -293,
1744
    -293,  -293,  -293,  -293,  -293,  -293,  -293,   608,   609,   610,
1745
     611,   612,   613,   614,   615,   616,   617,  -293,  -293,  -293,
1746
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,   618,   619,
1747
     620,   621,   622,   623,  -293,  -293,  -293,  -293,  -293,  -293,
1748
    -293,  -293,  -293,  -293,  -293,  -293,  -293,   624,   625,   626,
1749
     627,   628,   629,   630,   631,  -293,  -293,  -293,  -293,  -293,
1750
    -293,  -293,  -293,  -293,   632,   633,   634,   635,   636,   637,
1751
     638,   639,   640,   641,   642,   643,   644,   645,   646,   647,
1752
     648,   649,   650,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1753
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1754
    -293,  -293,  -293,   651,  -293,  -293,   652,  -293,  -293,   653,
1755
     654,   655,   656,   657,   658,   659,   660,   661,   662,  -293,
1756
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1757
     663,   664,   665,   666,   667,   668,   669,   670,   671,   672,
1758
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1759
    -293,   673,   674,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1760
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1761
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1762
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1763
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1764
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1765
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,   675,   676,
1766
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1767
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1768
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1769
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1770
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1771
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1772
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1773
     677,   678,   679,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1774
    -293,  -293,  -293,  -293,  -293,  -293,   680,   681,  -293,  -293,
1775
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1776
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,   682,
1777
     683,   684,   685,   686,   687,  -293,  -293,  -293,  -293,  -293,
1778
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1779
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1780
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1781
     688,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1782
    -293,  -293,  -293,   689,  -293,  -293,  -293,  -293,  -293,   690,
1783
     691,   692,   693,   694,  -293,  -293,  -293,  -293,  -293,  -293,
1784
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1785
    -293,  -293,  -293,  -293,   695,  -293,  -293,   696,   697,  -293,
1786
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1787
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1788
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1789
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1790
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1791
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1792
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1793
    -293,  -293,  -293,  -293,  -293,  -293,   698,   699,   700,  -293,
1794
    -293,  -293,  -293,  -293,  -293,   701,   702,  -293,  -293,  -293,
1795
    -293,  -293,  -293,  -293,  -293
1796
};
1797
1798
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1799
     Performed when YYTABLE does not specify something else to do.  Zero
1800
     means the default is an error.  */
1801
static const yytype_int16 yydefact[] =
1802
{
1803
       2,     0,     1,    18,    19,   264,   275,   596,   656,   615,
1804
     285,   670,   693,   295,   719,   314,   661,     3,    17,    21,
1805
     266,   277,   287,   297,   316,   598,   617,   658,   663,   672,
1806
     695,   721,     4,     5,     6,    10,    14,    15,     8,     9,
1807
       7,    16,    11,    12,    13,     0,     0,     0,     0,     0,
1808
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1809
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1810
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1811
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1812
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1813
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1814
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1817
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1818
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1819
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1820
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1821
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1822
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1823
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1825
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1826
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1827
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1828
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1829
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1831
       0,     0,     0,     0,     0,     0,     0,    20,    22,    23,
1832
      90,    93,   102,   261,   218,   219,    24,   172,   173,   174,
1833
     175,   176,   177,   178,   179,   180,   181,    39,    81,    25,
1834
      94,    95,    50,    74,    89,   258,    26,    27,    28,    31,
1835
      32,    29,    30,    33,    34,    35,   255,   256,   257,    36,
1836
      37,    38,   126,   230,   127,   129,   130,   131,   232,   237,
1837
     233,   244,   245,   246,   250,   132,   133,   134,   135,   136,
1838
     137,   138,   214,    91,    80,   106,   124,   125,   242,   239,
1839
     128,    40,    41,    42,    43,    44,    82,    96,    97,   113,
1840
      68,    78,    69,   222,   223,   107,    60,    61,   221,    64,
1841
      62,    63,    65,   253,   117,   121,   142,   154,   186,   157,
1842
     243,   118,    75,    45,    46,    47,   104,   143,   144,   145,
1843
     146,    48,    49,    51,    52,    54,    55,    53,   151,   152,
1844
     158,    56,    57,    58,    66,    85,   122,    99,   153,   262,
1845
      92,   182,   100,   101,   119,   120,   240,   105,    59,    83,
1846
      86,   195,    67,    70,   108,   109,   110,    84,   183,   111,
1847
      71,    72,    73,   231,   123,   263,   205,   206,   207,   208,
1848
     209,   210,   211,   212,   220,   112,    79,   254,   114,   115,
1849
     116,   184,    76,    77,    98,    87,    88,   103,   139,   140,
1850
     241,   141,   147,   148,   149,   150,   187,   188,   190,   192,
1851
     193,   191,   194,   197,   198,   199,   196,   215,   155,   249,
1852
     156,   161,   162,   159,   160,   163,   164,   166,   165,   168,
1853
     167,   169,   170,   171,   234,   236,   235,   185,   200,   201,
1854
     202,   203,   204,   224,   226,   225,   227,   228,   229,   251,
1855
     252,   259,   260,   189,   213,   216,   217,   238,   247,   248,
1856
       0,     0,     0,     0,     0,     0,     0,     0,   265,   267,
1857
     268,   269,   271,   272,   273,   274,   270,     0,     0,     0,
1858
       0,     0,     0,     0,   276,   278,   279,   280,   281,   282,
1859
     283,   284,     0,     0,     0,     0,     0,     0,     0,   286,
1860
     288,   289,   292,   293,   290,   294,   291,     0,     0,     0,
1861
       0,     0,     0,     0,     0,     0,     0,   296,   298,   299,
1862
     300,   301,   305,   306,   307,   302,   303,   304,     0,     0,
1863
       0,     0,     0,     0,   319,   323,   324,   325,   326,   327,
1864
     315,   317,   318,   320,   321,   322,   328,     0,     0,     0,
1865
       0,     0,     0,     0,     0,   597,   599,   601,   600,   606,
1866
     602,   603,   604,   605,     0,     0,     0,     0,     0,     0,
1867
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1868
       0,     0,     0,   616,   618,   620,   619,   621,   622,   623,
1869
     624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
1870
     634,   635,   636,     0,   657,   659,     0,   662,   664,     0,
1871
       0,     0,     0,     0,     0,     0,     0,     0,     0,   671,
1872
     673,   674,   675,   677,   678,   676,   679,   680,   681,   682,
1873
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1874
     694,   696,   697,   704,   698,   699,   702,   703,   700,   701,
1875
     705,     0,     0,   720,   722,   723,   330,   329,   337,   350,
1876
     348,   362,   357,   358,   359,   363,   360,   361,   364,   365,
1877
     366,   370,   371,   372,   402,   403,   404,   405,   406,   434,
1878
     435,   436,   442,   443,   353,   444,   445,   448,   446,   447,
1879
     452,   453,   454,   469,   417,   418,   421,   422,   455,   473,
1880
     411,   413,   474,   481,   482,   483,   354,   433,   503,   504,
1881
     412,   497,   395,   349,   407,   470,   478,   456,     0,     0,
1882
     507,   355,   331,   394,   461,   332,   351,   352,   408,   409,
1883
     505,   458,   463,   464,   368,   367,   333,   508,   437,   468,
1884
     396,   416,   475,   476,   477,   480,   496,   410,   501,   499,
1885
     500,   425,   432,   465,   466,   426,   427,   457,   485,   397,
1886
     398,   401,   373,   375,   369,   376,   377,   378,   379,   386,
1887
     387,   388,   389,   390,   391,   392,   509,   510,   512,   438,
1888
     439,   440,   441,   449,   450,   451,   513,   514,   515,   516,
1889
       0,     0,     0,   459,   428,   430,   666,   529,   534,   532,
1890
     531,   535,   533,   542,   543,   544,     0,     0,   538,   539,
1891
     540,   541,   338,   339,   340,   341,   342,   343,   344,   345,
1892
     346,   347,   462,   479,   502,   548,   549,   429,   517,     0,
1893
       0,     0,     0,     0,     0,   487,   488,   489,   490,   491,
1894
     492,   493,   494,   495,   667,   419,   420,   423,   414,   484,
1895
     393,   335,   336,   415,   550,   551,   552,   553,   554,   556,
1896
     555,   557,   558,   559,   374,   381,   545,   547,   546,   380,
1897
       0,   717,   718,   530,   400,   467,   511,   399,   431,   382,
1898
     383,   385,   384,     0,   561,   424,   498,   356,   562,     0,
1899
       0,     0,     0,     0,   563,   334,   460,   486,   564,   565,
1900
     566,   571,   569,   570,   567,   568,   572,   573,   574,   575,
1901
     577,   578,   576,   589,     0,   593,   594,     0,     0,   595,
1902
     579,   587,   580,   581,   582,   586,   588,   583,   584,   585,
1903
     308,   309,   310,   311,   312,   313,   607,   609,   608,   611,
1904
     612,   613,   614,   610,   637,   639,   640,   641,   642,   643,
1905
     644,   645,   646,   647,   638,   648,   649,   650,   651,   652,
1906
     653,   654,   655,   660,   665,   683,   684,   685,   688,   686,
1907
     687,   689,   690,   691,   692,   706,   707,   709,   710,   713,
1908
     714,   711,   712,   715,   708,   724,   725,   471,   506,   528,
1909
     668,   669,   536,   537,   518,   519,     0,     0,     0,   523,
1910
     716,   560,   472,   527,   524,     0,     0,   590,   591,   592,
1911
     522,   520,   521,   525,   526
1912
};
1913
1914
  /* YYPGOTO[NTERM-NUM].  */
1915
static const yytype_int16 yypgoto[] =
1916
{
1917
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1918
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1919
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1920
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1921
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1922
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1923
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1924
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1925
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1926
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1927
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1928
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1929
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1930
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1931
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1932
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1933
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1934
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1935
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1936
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1937
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1938
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1939
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1940
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1941
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1942
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1943
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1944
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,    95,   703,
1945
     704,   705,   706,  -293,  -293,   707,  -293,  -293,  -293,  -293,
1946
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1947
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1948
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1949
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1950
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1951
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1952
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1953
    -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,  -293,
1954
    -293,  -293,  -293,  -293
1955
};
1956
1957
  /* YYDEFGOTO[NTERM-NUM].  */
1958
static const yytype_int16 yydefgoto[] =
1959
{
1960
      -1,     1,    17,    18,    19,    32,   287,    20,    33,   538,
1961
      21,    34,   554,    22,    35,   569,    23,    36,   587,   604,
1962
     605,   606,   607,   608,   609,    24,    37,   610,   288,   289,
1963
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1964
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
1965
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
1966
     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
1967
     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
1968
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1969
     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
1970
     360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
1971
     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
1972
     380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
1973
     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
1974
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1975
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1976
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
1977
     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
1978
     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
1979
     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1980
     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1981
     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
1982
     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1983
     490,   491,   492,   493,   494,   495,   496,   497,   498,   499,
1984
     500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
1985
     510,   511,   512,   513,   514,   515,   516,   517,   518,   519,
1986
     520,   521,   522,   539,   540,   541,   542,   543,   544,   545,
1987
     546,   555,   556,   557,   558,   559,   560,   561,   588,   589,
1988
     590,   591,   592,   593,   594,   595,   596,   597,   570,   571,
1989
     572,   573,   574,   575,   576,    25,    38,   625,   626,   627,
1990
     628,   629,   630,   631,   632,   633,    26,    39,   653,   654,
1991
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
1992
     665,   666,   667,   668,   669,   670,   671,   672,    27,    40,
1993
     674,   675,    28,    41,   677,   678,   523,   524,   525,   526,
1994
      29,    42,   689,   690,   691,   692,   693,   694,   695,   696,
1995
     697,   698,   699,    30,    43,   710,   711,   712,   713,   714,
1996
     715,   716,   717,   718,   719,   720,   527,   528,   529,    31,
1997
      44,   723,   724,   725
1998
};
1999
2000
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2001
     positive, shift that token.  If negative, reduce the rule whose
2002
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
2003
static const yytype_int16 yytable[] =
2004
{
2005
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2006
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2007
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2008
      75,    76,    77,    78,   721,   722,   673,   676,    79,    80,
2009
      81,   726,   727,   728,    82,    83,    84,    85,    86,    87,
2010
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
2011
      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
2012
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
2013
     118,   119,   120,   121,   122,   729,   730,   731,   732,   733,
2014
     577,   734,   735,   736,   123,   124,   125,   126,   127,   737,
2015
     128,   129,   130,   577,   738,   131,   132,   133,   134,   135,
2016
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2017
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2018
     156,   739,   611,   740,   157,   741,   742,   158,   159,   160,
2019
     161,   162,   163,   164,   743,   165,   166,   167,   168,   169,
2020
     170,   171,   172,   173,   174,   175,   176,   177,   178,   679,
2021
     680,   681,   682,   683,   684,   685,   686,   687,   688,   547,
2022
     744,   745,   746,   747,   748,   749,   750,   548,   549,   179,
2023
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
2024
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
2025
     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
2026
     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
2027
     220,   221,   222,   751,   223,   752,   224,   225,   226,   227,
2028
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
2029
     238,   239,   240,   241,   242,   753,   530,   754,   531,   532,
2030
     755,   756,   757,   758,   759,   760,   243,   244,   245,   246,
2031
     247,   248,   249,   250,   251,   252,   550,     2,   551,   761,
2032
     762,   552,   763,   764,   765,   766,   253,   562,     3,     4,
2033
     767,   768,     0,   769,   254,   255,   770,   256,   257,   771,
2034
     258,   259,   260,   261,   262,   772,   773,   263,   264,   265,
2035
     266,   267,   268,   269,   270,   774,   775,   776,   271,   777,
2036
     778,   533,   779,   563,   564,     5,   780,   272,   273,   274,
2037
     275,     6,   781,   782,   276,   277,   278,   279,   280,   281,
2038
     282,   283,   284,   285,   286,   579,   580,   581,   582,   783,
2039
     565,   784,   785,   786,   534,   584,   578,   535,   579,   580,
2040
     581,   582,   583,   787,   788,   789,   536,   790,   584,   791,
2041
     792,   793,   794,   795,   796,     7,   598,   599,   600,   601,
2042
     602,   617,   618,   619,   620,   621,   622,   623,   624,   603,
2043
     797,   798,   799,     8,   800,   801,   802,   803,   804,   805,
2044
     585,   586,   700,   701,   702,   703,   704,   705,   706,   707,
2045
     708,   634,   635,   636,   637,   638,   639,   640,   641,   642,
2046
     643,   644,   645,   646,   647,   648,   649,   650,   651,   652,
2047
     806,   807,   808,   566,   567,   809,   810,   811,   812,   813,
2048
     553,   814,   815,   816,   817,   818,   819,   820,   821,     9,
2049
     822,   823,   824,   825,   826,   827,   828,   829,   830,   831,
2050
     832,   833,   834,   835,   836,   837,   838,   839,   840,   841,
2051
     709,   842,   843,   844,   845,   846,   847,   848,   568,   849,
2052
     850,   851,   852,   853,   854,   855,   856,   857,   858,   859,
2053
     860,   861,   862,   863,   864,   865,   866,   867,   868,   869,
2054
     870,   871,   872,   873,   874,   875,   876,   877,   878,   879,
2055
     880,   881,   882,    10,   883,   884,   885,   886,   537,   887,
2056
     888,   889,   890,   891,   892,   893,   894,   895,   896,   897,
2057
     898,   899,   900,   901,   902,    11,   903,   904,   905,   906,
2058
     907,   908,   909,   910,   911,   912,   913,   914,   915,   916,
2059
     917,   918,   919,   920,   921,   922,    12,   923,   924,   925,
2060
     926,   927,   928,   929,   930,   931,   932,   933,    13,   934,
2061
     935,   936,   937,   938,   939,   940,   941,   942,   943,   944,
2062
     945,   946,   947,   948,   949,   950,   951,   952,   953,   954,
2063
     955,   956,   957,   958,   959,    14,   960,   961,   962,    15,
2064
     963,   964,   965,   966,   967,    16,   968,   969,   970,   971,
2065
     972,   973,   974,   975,   976,   977,   978,   979,   980,   981,
2066
     982,   983,   984,   985,   986,   987,   988,   989,   990,   991,
2067
     992,   993,   994,   995,   996,   997,   998,   999,  1000,  1001,
2068
    1002,  1003,  1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,
2069
    1012,  1013,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,
2070
    1022,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1031,
2071
    1032,  1033,  1034,  1035,  1036,  1037,  1038,  1039,  1040,  1041,
2072
    1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,
2073
    1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
2074
    1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,  1070,  1071,
2075
    1072,  1073,  1074,  1075,  1076,  1077,  1078,  1079,  1080,  1081,
2076
    1082,  1083,  1084,     0,     0,     0,     0,     0,     0,     0,
2077
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2078
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2079
     612,   613,   614,   615,   616
2080
};
2081
2082
static const yytype_int16 yycheck[] =
2083
{
2084
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2085
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2086
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2087
      43,    44,    45,    46,   319,   320,   117,   329,    51,    52,
2088
      53,    10,    10,    10,    57,    58,    59,    60,    61,    62,
2089
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2090
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2091
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2092
      93,    94,    95,    96,    97,    10,    10,    10,    10,    10,
2093
      47,    10,    10,    10,   107,   108,   109,   110,   111,    10,
2094
     113,   114,   115,    47,    10,   118,   119,   120,   121,   122,
2095
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2096
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2097
     143,    10,    37,    10,   147,    10,    10,   150,   151,   152,
2098
     153,   154,   155,   156,    10,   158,   159,   160,   161,   162,
2099
     163,   164,   165,   166,   167,   168,   169,   170,   171,   259,
2100
     260,   261,   262,   263,   264,   265,   266,   267,   268,    47,
2101
      10,    10,    10,    10,    10,    10,    10,    55,    56,   192,
2102
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2103
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2104
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2105
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2106
     233,   234,   235,    10,   237,    10,   239,   240,   241,   242,
2107
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2108
     253,   254,   255,   256,   257,    10,    47,    10,    49,    50,
2109
      10,    10,    10,    10,    10,    10,   269,   270,   271,   272,
2110
     273,   274,   275,   276,   277,   278,   144,     0,   146,    10,
2111
      10,   149,    10,    10,    10,    10,   289,    47,    11,    12,
2112
      10,    10,    -1,    10,   297,   298,    10,   300,   301,    10,
2113
     303,   304,   305,   306,   307,    10,    10,   310,   311,   312,
2114
     313,   314,   315,   316,   317,    10,    10,    10,   321,    10,
2115
      10,   112,    10,    83,    84,    48,    10,   330,   331,   332,
2116
     333,    54,    10,    10,   337,   338,   339,   340,   341,   342,
2117
     343,   344,   345,   346,   347,   292,   293,   294,   295,    10,
2118
     110,    10,    10,    10,   145,   302,   290,   148,   292,   293,
2119
     294,   295,   296,    10,    10,    10,   157,    10,   302,    10,
2120
      10,    10,    10,    10,    10,    98,   323,   324,   325,   326,
2121
     327,    99,   100,   101,   102,   103,   104,   105,   106,   336,
2122
      10,    10,    10,   116,    10,    10,    10,    10,    10,    10,
2123
     334,   335,   280,   281,   282,   283,   284,   285,   286,   287,
2124
     288,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2125
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2126
      10,    10,    10,   193,   194,    10,    10,    10,    10,    10,
2127
     308,    10,    10,    10,    10,    10,    10,    10,    10,   172,
2128
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2129
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2130
     348,    10,    10,    10,    10,    10,    10,    10,   238,    10,
2131
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2132
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2133
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2134
      10,    10,    10,   236,    10,    10,    10,    10,   309,    10,
2135
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2136
      10,    10,    10,    10,    10,   258,    10,    10,    10,    10,
2137
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2138
      10,    10,    10,    10,    10,    10,   279,    10,    10,    10,
2139
      10,    10,    10,    10,    10,    10,    10,    10,   291,    10,
2140
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2141
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2142
      10,    10,    10,    10,    10,   318,    10,    10,    10,   322,
2143
      10,    10,    10,    10,    10,   328,    10,    10,    10,    10,
2144
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2145
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2146
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2147
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2148
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2149
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2150
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2151
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2152
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2153
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2154
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2155
      10,    10,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2156
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2157
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2158
      37,    37,    37,    37,    37
2159
};
2160
2161
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2162
     symbol of state STATE-NUM.  */
2163
static const yytype_int16 yystos[] =
2164
{
2165
       0,   350,     0,    11,    12,    48,    54,    98,   116,   172,
2166
     236,   258,   279,   291,   318,   322,   328,   351,   352,   353,
2167
     356,   359,   362,   365,   374,   644,   655,   677,   681,   689,
2168
     702,   718,   354,   357,   360,   363,   366,   375,   645,   656,
2169
     678,   682,   690,   703,   719,    13,    14,    15,    16,    17,
2170
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
2171
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
2172
      38,    39,    40,    41,    42,    43,    44,    45,    46,    51,
2173
      52,    53,    57,    58,    59,    60,    61,    62,    63,    64,
2174
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2175
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2176
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2177
      95,    96,    97,   107,   108,   109,   110,   111,   113,   114,
2178
     115,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2179
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2180
     137,   138,   139,   140,   141,   142,   143,   147,   150,   151,
2181
     152,   153,   154,   155,   156,   158,   159,   160,   161,   162,
2182
     163,   164,   165,   166,   167,   168,   169,   170,   171,   192,
2183
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2184
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2185
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2186
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2187
     233,   234,   235,   237,   239,   240,   241,   242,   243,   244,
2188
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2189
     255,   256,   257,   269,   270,   271,   272,   273,   274,   275,
2190
     276,   277,   278,   289,   297,   298,   300,   301,   303,   304,
2191
     305,   306,   307,   310,   311,   312,   313,   314,   315,   316,
2192
     317,   321,   330,   331,   332,   333,   337,   338,   339,   340,
2193
     341,   342,   343,   344,   345,   346,   347,   355,   377,   378,
2194
     379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
2195
     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
2196
     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
2197
     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
2198
     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
2199
     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
2200
     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
2201
     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
2202
     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
2203
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
2204
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2205
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
2206
     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
2207
     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
2208
     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
2209
     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
2210
     539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
2211
     549,   550,   551,   552,   553,   554,   555,   556,   557,   558,
2212
     559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
2213
     569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
2214
     579,   580,   581,   582,   583,   584,   585,   586,   587,   588,
2215
     589,   590,   591,   592,   593,   594,   595,   596,   597,   598,
2216
     599,   600,   601,   602,   603,   604,   605,   606,   607,   608,
2217
     609,   610,   611,   685,   686,   687,   688,   715,   716,   717,
2218
      47,    49,    50,   112,   145,   148,   157,   309,   358,   612,
2219
     613,   614,   615,   616,   617,   618,   619,    47,    55,    56,
2220
     144,   146,   149,   308,   361,   620,   621,   622,   623,   624,
2221
     625,   626,    47,    83,    84,   110,   193,   194,   238,   364,
2222
     637,   638,   639,   640,   641,   642,   643,    47,   290,   292,
2223
     293,   294,   295,   296,   302,   334,   335,   367,   627,   628,
2224
     629,   630,   631,   632,   633,   634,   635,   636,   323,   324,
2225
     325,   326,   327,   336,   368,   369,   370,   371,   372,   373,
2226
     376,   627,   628,   629,   630,   631,   634,    99,   100,   101,
2227
     102,   103,   104,   105,   106,   646,   647,   648,   649,   650,
2228
     651,   652,   653,   654,   173,   174,   175,   176,   177,   178,
2229
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2230
     189,   190,   191,   657,   658,   659,   660,   661,   662,   663,
2231
     664,   665,   666,   667,   668,   669,   670,   671,   672,   673,
2232
     674,   675,   676,   117,   679,   680,   329,   683,   684,   259,
2233
     260,   261,   262,   263,   264,   265,   266,   267,   268,   691,
2234
     692,   693,   694,   695,   696,   697,   698,   699,   700,   701,
2235
     280,   281,   282,   283,   284,   285,   286,   287,   288,   348,
2236
     704,   705,   706,   707,   708,   709,   710,   711,   712,   713,
2237
     714,   319,   320,   720,   721,   722,    10,    10,    10,    10,
2238
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2239
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2240
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2241
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2242
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2243
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2244
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2245
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2246
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2247
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2248
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2249
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2250
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2251
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2252
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2253
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2254
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2255
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2256
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2257
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2258
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2259
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2260
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2261
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2262
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2263
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2264
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2265
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2266
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2267
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2268
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2269
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2270
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2271
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2272
      10,    10,    10,    10,    10,    10,    10,    10,    10,    10,
2273
      10,    10,    10,    10,    10
2274
};
2275
2276
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2277
static const yytype_int16 yyr1[] =
2278
{
2279
       0,   349,   350,   350,   351,   351,   351,   351,   351,   351,
2280
     351,   351,   351,   351,   351,   351,   351,   351,   352,   353,
2281
     354,   354,   355,   355,   355,   355,   355,   355,   355,   355,
2282
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2283
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2284
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2285
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2286
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2287
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2288
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2289
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2290
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2291
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2292
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2293
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2294
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2295
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2296
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2297
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2298
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2299
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2300
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2301
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2302
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2303
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2304
     355,   355,   355,   355,   355,   355,   355,   355,   355,   355,
2305
     355,   355,   355,   355,   356,   357,   357,   358,   358,   358,
2306
     358,   358,   358,   358,   358,   359,   360,   360,   361,   361,
2307
     361,   361,   361,   361,   361,   362,   363,   363,   364,   364,
2308
     364,   364,   364,   364,   364,   365,   366,   366,   367,   367,
2309
     367,   367,   367,   367,   367,   367,   367,   367,   368,   369,
2310
     370,   371,   372,   373,   374,   375,   375,   376,   376,   376,
2311
     376,   376,   376,   376,   376,   376,   376,   376,   376,   377,
2312
     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
2313
     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
2314
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2315
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2316
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
2317
     428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
2318
     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
2319
     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
2320
     458,   459,   460,   461,   462,   463,   464,   465,   466,   467,
2321
     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
2322
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
2323
     488,   489,   490,   491,   492,   493,   494,   495,   496,   497,
2324
     498,   499,   500,   501,   502,   503,   504,   505,   506,   507,
2325
     508,   509,   510,   511,   512,   513,   514,   515,   516,   517,
2326
     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
2327
     528,   529,   530,   531,   532,   533,   534,   535,   536,   537,
2328
     538,   539,   540,   541,   542,   543,   544,   545,   546,   547,
2329
     548,   549,   550,   551,   552,   553,   554,   555,   556,   557,
2330
     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
2331
     568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
2332
     578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
2333
     588,   589,   590,   591,   592,   593,   594,   595,   596,   597,
2334
     598,   599,   600,   601,   602,   603,   604,   605,   606,   607,
2335
     608,   609,   610,   611,   612,   613,   614,   615,   616,   617,
2336
     618,   619,   620,   621,   622,   623,   624,   625,   626,   627,
2337
     628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
2338
     638,   639,   640,   641,   642,   643,   644,   645,   645,   646,
2339
     646,   646,   646,   646,   646,   646,   646,   647,   648,   649,
2340
     650,   651,   652,   653,   654,   655,   656,   656,   657,   657,
2341
     657,   657,   657,   657,   657,   657,   657,   657,   657,   657,
2342
     657,   657,   657,   657,   657,   657,   657,   658,   659,   660,
2343
     661,   662,   663,   664,   665,   666,   667,   668,   669,   670,
2344
     671,   672,   673,   674,   675,   676,   677,   678,   678,   679,
2345
     680,   681,   682,   682,   683,   684,   685,   686,   687,   688,
2346
     689,   690,   690,   691,   691,   691,   691,   691,   691,   691,
2347
     691,   691,   691,   692,   693,   694,   695,   696,   697,   698,
2348
     699,   700,   701,   702,   703,   703,   704,   704,   704,   704,
2349
     704,   704,   704,   704,   704,   704,   705,   706,   707,   708,
2350
     709,   710,   711,   712,   713,   714,   715,   716,   717,   718,
2351
     719,   719,   720,   720,   721,   722
2352
};
2353
2354
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2355
static const yytype_int8 yyr2[] =
2356
{
2357
       0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
2358
       2,     2,     2,     2,     2,     2,     2,     1,     1,     1,
2359
       2,     0,     1,     1,     1,     1,     1,     1,     1,     1,
2360
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2361
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2362
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2363
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2364
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2365
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2366
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2367
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2368
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2369
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2370
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2371
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2372
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2373
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2374
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2375
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2376
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2377
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2378
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2379
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2380
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2381
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2382
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2383
       1,     1,     1,     1,     1,     2,     0,     1,     1,     1,
2384
       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
2385
       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
2386
       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
2387
       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
2388
       2,     2,     2,     2,     1,     2,     0,     1,     1,     1,
2389
       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2390
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2391
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2392
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2393
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2394
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2395
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2396
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2397
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2398
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2399
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2400
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2401
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2402
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2403
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2404
       2,     3,     3,     2,     2,     2,     2,     2,     2,     2,
2405
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2406
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2407
       2,     2,     2,     2,     2,     2,     3,     2,     2,     2,
2408
       2,     2,     2,     2,     2,     2,     2,     2,     3,     3,
2409
       4,     4,     4,     3,     3,     4,     4,     3,     3,     2,
2410
       2,     2,     2,     2,     2,     2,     3,     3,     2,     2,
2411
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2412
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2413
       3,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2414
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2415
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2416
       3,     3,     3,     2,     2,     2,     1,     2,     0,     1,
2417
       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
2418
       2,     2,     2,     2,     2,     1,     2,     0,     1,     1,
2419
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2420
       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
2421
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2422
       2,     2,     2,     2,     2,     2,     1,     2,     0,     1,
2423
       2,     1,     2,     0,     1,     2,     2,     2,     3,     3,
2424
       1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
2425
       1,     1,     1,     2,     2,     2,     2,     2,     2,     2,
2426
       2,     2,     2,     1,     2,     0,     1,     1,     1,     1,
2427
       1,     1,     1,     1,     1,     1,     2,     2,     2,     2,
2428
       2,     2,     2,     2,     2,     2,     3,     2,     2,     1,
2429
       2,     0,     1,     1,     2,     2
2430
};
2431
2432
2433
#define yyerrok         (yyerrstatus = 0)
2434
#define yyclearin       (yychar = YYEMPTY)
2435
0
#define YYEMPTY         (-2)
2436
0
#define YYEOF           0
2437
2438
0
#define YYACCEPT        goto yyacceptlab
2439
0
#define YYABORT         goto yyabortlab
2440
0
#define YYERROR         goto yyerrorlab
2441
2442
2443
#define YYRECOVERING()  (!!yyerrstatus)
2444
2445
#define YYBACKUP(Token, Value)                                    \
2446
  do                                                              \
2447
    if (yychar == YYEMPTY)                                        \
2448
      {                                                           \
2449
        yychar = (Token);                                         \
2450
        yylval = (Value);                                         \
2451
        YYPOPSTACK (yylen);                                       \
2452
        yystate = *yyssp;                                         \
2453
        goto yybackup;                                            \
2454
      }                                                           \
2455
    else                                                          \
2456
      {                                                           \
2457
        yyerror (YY_("syntax error: cannot back up")); \
2458
        YYERROR;                                                  \
2459
      }                                                           \
2460
  while (0)
2461
2462
/* Error token number */
2463
0
#define YYTERROR        1
2464
#define YYERRCODE       256
2465
2466
2467
2468
/* Enable debugging if requested.  */
2469
#if YYDEBUG
2470
2471
# ifndef YYFPRINTF
2472
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2473
#  define YYFPRINTF fprintf
2474
# endif
2475
2476
# define YYDPRINTF(Args)                        \
2477
do {                                            \
2478
  if (yydebug)                                  \
2479
    YYFPRINTF Args;                             \
2480
} while (0)
2481
2482
/* This macro is provided for backward compatibility. */
2483
#ifndef YY_LOCATION_PRINT
2484
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2485
#endif
2486
2487
2488
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2489
do {                                                                      \
2490
  if (yydebug)                                                            \
2491
    {                                                                     \
2492
      YYFPRINTF (stderr, "%s ", Title);                                   \
2493
      yy_symbol_print (stderr,                                            \
2494
                  Type, Value); \
2495
      YYFPRINTF (stderr, "\n");                                           \
2496
    }                                                                     \
2497
} while (0)
2498
2499
2500
/*-----------------------------------.
2501
| Print this symbol's value on YYO.  |
2502
`-----------------------------------*/
2503
2504
static void
2505
yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2506
{
2507
  FILE *yyoutput = yyo;
2508
  YYUSE (yyoutput);
2509
  if (!yyvaluep)
2510
    return;
2511
# ifdef YYPRINT
2512
  if (yytype < YYNTOKENS)
2513
    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2514
# endif
2515
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2516
  YYUSE (yytype);
2517
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2518
}
2519
2520
2521
/*---------------------------.
2522
| Print this symbol on YYO.  |
2523
`---------------------------*/
2524
2525
static void
2526
yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2527
{
2528
  YYFPRINTF (yyo, "%s %s (",
2529
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2530
2531
  yy_symbol_value_print (yyo, yytype, yyvaluep);
2532
  YYFPRINTF (yyo, ")");
2533
}
2534
2535
/*------------------------------------------------------------------.
2536
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
2537
| TOP (included).                                                   |
2538
`------------------------------------------------------------------*/
2539
2540
static void
2541
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2542
{
2543
  YYFPRINTF (stderr, "Stack now");
2544
  for (; yybottom <= yytop; yybottom++)
2545
    {
2546
      int yybot = *yybottom;
2547
      YYFPRINTF (stderr, " %d", yybot);
2548
    }
2549
  YYFPRINTF (stderr, "\n");
2550
}
2551
2552
# define YY_STACK_PRINT(Bottom, Top)                            \
2553
do {                                                            \
2554
  if (yydebug)                                                  \
2555
    yy_stack_print ((Bottom), (Top));                           \
2556
} while (0)
2557
2558
2559
/*------------------------------------------------.
2560
| Report that the YYRULE is going to be reduced.  |
2561
`------------------------------------------------*/
2562
2563
static void
2564
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
2565
{
2566
  int yylno = yyrline[yyrule];
2567
  int yynrhs = yyr2[yyrule];
2568
  int yyi;
2569
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2570
             yyrule - 1, yylno);
2571
  /* The symbols being reduced.  */
2572
  for (yyi = 0; yyi < yynrhs; yyi++)
2573
    {
2574
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2575
      yy_symbol_print (stderr,
2576
                       yystos[+yyssp[yyi + 1 - yynrhs]],
2577
                       &yyvsp[(yyi + 1) - (yynrhs)]
2578
                                              );
2579
      YYFPRINTF (stderr, "\n");
2580
    }
2581
}
2582
2583
# define YY_REDUCE_PRINT(Rule)          \
2584
do {                                    \
2585
  if (yydebug)                          \
2586
    yy_reduce_print (yyssp, yyvsp, Rule); \
2587
} while (0)
2588
2589
/* Nonzero means print parse trace.  It is left uninitialized so that
2590
   multiple parsers can coexist.  */
2591
int yydebug;
2592
#else /* !YYDEBUG */
2593
# define YYDPRINTF(Args)
2594
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2595
# define YY_STACK_PRINT(Bottom, Top)
2596
# define YY_REDUCE_PRINT(Rule)
2597
#endif /* !YYDEBUG */
2598
2599
2600
/* YYINITDEPTH -- initial size of the parser's stacks.  */
2601
#ifndef YYINITDEPTH
2602
0
# define YYINITDEPTH 200
2603
#endif
2604
2605
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2606
   if the built-in stack extension method is used).
2607
2608
   Do not make this value too large; the results are undefined if
2609
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2610
   evaluated with infinite-precision integer arithmetic.  */
2611
2612
#ifndef YYMAXDEPTH
2613
0
# define YYMAXDEPTH 10000
2614
#endif
2615
2616
2617
#if YYERROR_VERBOSE
2618
2619
# ifndef yystrlen
2620
#  if defined __GLIBC__ && defined _STRING_H
2621
#   define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2622
#  else
2623
/* Return the length of YYSTR.  */
2624
static YYPTRDIFF_T
2625
yystrlen (const char *yystr)
2626
{
2627
  YYPTRDIFF_T yylen;
2628
  for (yylen = 0; yystr[yylen]; yylen++)
2629
    continue;
2630
  return yylen;
2631
}
2632
#  endif
2633
# endif
2634
2635
# ifndef yystpcpy
2636
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2637
#   define yystpcpy stpcpy
2638
#  else
2639
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2640
   YYDEST.  */
2641
static char *
2642
yystpcpy (char *yydest, const char *yysrc)
2643
{
2644
  char *yyd = yydest;
2645
  const char *yys = yysrc;
2646
2647
  while ((*yyd++ = *yys++) != '\0')
2648
    continue;
2649
2650
  return yyd - 1;
2651
}
2652
#  endif
2653
# endif
2654
2655
# ifndef yytnamerr
2656
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2657
   quotes and backslashes, so that it's suitable for yyerror.  The
2658
   heuristic is that double-quoting is unnecessary unless the string
2659
   contains an apostrophe, a comma, or backslash (other than
2660
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2661
   null, do not copy; instead, return the length of what the result
2662
   would have been.  */
2663
static YYPTRDIFF_T
2664
yytnamerr (char *yyres, const char *yystr)
2665
{
2666
  if (*yystr == '"')
2667
    {
2668
      YYPTRDIFF_T yyn = 0;
2669
      char const *yyp = yystr;
2670
2671
      for (;;)
2672
        switch (*++yyp)
2673
          {
2674
          case '\'':
2675
          case ',':
2676
            goto do_not_strip_quotes;
2677
2678
          case '\\':
2679
            if (*++yyp != '\\')
2680
              goto do_not_strip_quotes;
2681
            else
2682
              goto append;
2683
2684
          append:
2685
          default:
2686
            if (yyres)
2687
              yyres[yyn] = *yyp;
2688
            yyn++;
2689
            break;
2690
2691
          case '"':
2692
            if (yyres)
2693
              yyres[yyn] = '\0';
2694
            return yyn;
2695
          }
2696
    do_not_strip_quotes: ;
2697
    }
2698
2699
  if (yyres)
2700
    return yystpcpy (yyres, yystr) - yyres;
2701
  else
2702
    return yystrlen (yystr);
2703
}
2704
# endif
2705
2706
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2707
   about the unexpected token YYTOKEN for the state stack whose top is
2708
   YYSSP.
2709
2710
   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2711
   not large enough to hold the message.  In that case, also set
2712
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2713
   required number of bytes is too large to store.  */
2714
static int
2715
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2716
                yy_state_t *yyssp, int yytoken)
2717
{
2718
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2719
  /* Internationalized format string. */
2720
  const char *yyformat = YY_NULLPTR;
2721
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
2722
     one per "expected"). */
2723
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2724
  /* Actual size of YYARG. */
2725
  int yycount = 0;
2726
  /* Cumulated lengths of YYARG.  */
2727
  YYPTRDIFF_T yysize = 0;
2728
2729
  /* There are many possibilities here to consider:
2730
     - If this state is a consistent state with a default action, then
2731
       the only way this function was invoked is if the default action
2732
       is an error action.  In that case, don't check for expected
2733
       tokens because there are none.
2734
     - The only way there can be no lookahead present (in yychar) is if
2735
       this state is a consistent state with a default action.  Thus,
2736
       detecting the absence of a lookahead is sufficient to determine
2737
       that there is no unexpected or expected token to report.  In that
2738
       case, just report a simple "syntax error".
2739
     - Don't assume there isn't a lookahead just because this state is a
2740
       consistent state with a default action.  There might have been a
2741
       previous inconsistent state, consistent state with a non-default
2742
       action, or user semantic action that manipulated yychar.
2743
     - Of course, the expected token list depends on states to have
2744
       correct lookahead information, and it depends on the parser not
2745
       to perform extra reductions after fetching a lookahead from the
2746
       scanner and before detecting a syntax error.  Thus, state merging
2747
       (from LALR or IELR) and default reductions corrupt the expected
2748
       token list.  However, the list is correct for canonical LR with
2749
       one exception: it will still contain any token that will not be
2750
       accepted due to an error action in a later state.
2751
  */
2752
  if (yytoken != YYEMPTY)
2753
    {
2754
      int yyn = yypact[+*yyssp];
2755
      YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2756
      yysize = yysize0;
2757
      yyarg[yycount++] = yytname[yytoken];
2758
      if (!yypact_value_is_default (yyn))
2759
        {
2760
          /* Start YYX at -YYN if negative to avoid negative indexes in
2761
             YYCHECK.  In other words, skip the first -YYN actions for
2762
             this state because they are default actions.  */
2763
          int yyxbegin = yyn < 0 ? -yyn : 0;
2764
          /* Stay within bounds of both yycheck and yytname.  */
2765
          int yychecklim = YYLAST - yyn + 1;
2766
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2767
          int yyx;
2768
2769
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2770
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2771
                && !yytable_value_is_error (yytable[yyx + yyn]))
2772
              {
2773
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2774
                  {
2775
                    yycount = 1;
2776
                    yysize = yysize0;
2777
                    break;
2778
                  }
2779
                yyarg[yycount++] = yytname[yyx];
2780
                {
2781
                  YYPTRDIFF_T yysize1
2782
                    = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2783
                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2784
                    yysize = yysize1;
2785
                  else
2786
                    return 2;
2787
                }
2788
              }
2789
        }
2790
    }
2791
2792
  switch (yycount)
2793
    {
2794
# define YYCASE_(N, S)                      \
2795
      case N:                               \
2796
        yyformat = S;                       \
2797
      break
2798
    default: /* Avoid compiler warnings. */
2799
      YYCASE_(0, YY_("syntax error"));
2800
      YYCASE_(1, YY_("syntax error, unexpected %s"));
2801
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2802
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2803
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2804
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2805
# undef YYCASE_
2806
    }
2807
2808
  {
2809
    /* Don't count the "%s"s in the final size, but reserve room for
2810
       the terminator.  */
2811
    YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1;
2812
    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2813
      yysize = yysize1;
2814
    else
2815
      return 2;
2816
  }
2817
2818
  if (*yymsg_alloc < yysize)
2819
    {
2820
      *yymsg_alloc = 2 * yysize;
2821
      if (! (yysize <= *yymsg_alloc
2822
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2823
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2824
      return 1;
2825
    }
2826
2827
  /* Avoid sprintf, as that infringes on the user's name space.
2828
     Don't have undefined behavior even if the translation
2829
     produced a string with the wrong number of "%s"s.  */
2830
  {
2831
    char *yyp = *yymsg;
2832
    int yyi = 0;
2833
    while ((*yyp = *yyformat) != '\0')
2834
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2835
        {
2836
          yyp += yytnamerr (yyp, yyarg[yyi++]);
2837
          yyformat += 2;
2838
        }
2839
      else
2840
        {
2841
          ++yyp;
2842
          ++yyformat;
2843
        }
2844
  }
2845
  return 0;
2846
}
2847
#endif /* YYERROR_VERBOSE */
2848
2849
/*-----------------------------------------------.
2850
| Release the memory associated to this symbol.  |
2851
`-----------------------------------------------*/
2852
2853
static void
2854
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2855
0
{
2856
0
  YYUSE (yyvaluep);
2857
0
  if (!yymsg)
2858
0
    yymsg = "Deleting";
2859
0
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2860
2861
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2862
0
  YYUSE (yytype);
2863
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
2864
0
}
2865
2866
2867
2868
2869
/* The lookahead symbol.  */
2870
int yychar;
2871
2872
/* The semantic value of the lookahead symbol.  */
2873
YYSTYPE yylval;
2874
/* Number of syntax errors so far.  */
2875
int yynerrs;
2876
2877
2878
/*----------.
2879
| yyparse.  |
2880
`----------*/
2881
2882
int
2883
yyparse (void)
2884
0
{
2885
0
    yy_state_fast_t yystate;
2886
    /* Number of tokens to shift before error messages enabled.  */
2887
0
    int yyerrstatus;
2888
2889
    /* The stacks and their tools:
2890
       'yyss': related to states.
2891
       'yyvs': related to semantic values.
2892
2893
       Refer to the stacks through separate pointers, to allow yyoverflow
2894
       to reallocate them elsewhere.  */
2895
2896
    /* The state stack.  */
2897
0
    yy_state_t yyssa[YYINITDEPTH];
2898
0
    yy_state_t *yyss;
2899
0
    yy_state_t *yyssp;
2900
2901
    /* The semantic value stack.  */
2902
0
    YYSTYPE yyvsa[YYINITDEPTH];
2903
0
    YYSTYPE *yyvs;
2904
0
    YYSTYPE *yyvsp;
2905
2906
0
    YYPTRDIFF_T yystacksize;
2907
2908
0
  int yyn;
2909
0
  int yyresult;
2910
  /* Lookahead token as an internal (translated) token number.  */
2911
0
  int yytoken = 0;
2912
  /* The variables used to return semantic value and location from the
2913
     action routines.  */
2914
0
  YYSTYPE yyval;
2915
2916
#if YYERROR_VERBOSE
2917
  /* Buffer for error messages, and its allocated size.  */
2918
  char yymsgbuf[128];
2919
  char *yymsg = yymsgbuf;
2920
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2921
#endif
2922
2923
0
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
2924
2925
  /* The number of symbols on the RHS of the reduced rule.
2926
     Keep to zero when no symbol should be popped.  */
2927
0
  int yylen = 0;
2928
2929
0
  yyssp = yyss = yyssa;
2930
0
  yyvsp = yyvs = yyvsa;
2931
0
  yystacksize = YYINITDEPTH;
2932
2933
0
  YYDPRINTF ((stderr, "Starting parse\n"));
2934
2935
0
  yystate = 0;
2936
0
  yyerrstatus = 0;
2937
0
  yynerrs = 0;
2938
0
  yychar = YYEMPTY; /* Cause a token to be read.  */
2939
0
  goto yysetstate;
2940
2941
2942
/*------------------------------------------------------------.
2943
| yynewstate -- push a new state, which is found in yystate.  |
2944
`------------------------------------------------------------*/
2945
0
yynewstate:
2946
  /* In all cases, when you get here, the value and location stacks
2947
     have just been pushed.  So pushing a state here evens the stacks.  */
2948
0
  yyssp++;
2949
2950
2951
/*--------------------------------------------------------------------.
2952
| yysetstate -- set current state (the top of the stack) to yystate.  |
2953
`--------------------------------------------------------------------*/
2954
0
yysetstate:
2955
0
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2956
0
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2957
0
  YY_IGNORE_USELESS_CAST_BEGIN
2958
0
  *yyssp = YY_CAST (yy_state_t, yystate);
2959
0
  YY_IGNORE_USELESS_CAST_END
2960
2961
0
  if (yyss + yystacksize - 1 <= yyssp)
2962
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
2963
    goto yyexhaustedlab;
2964
#else
2965
0
    {
2966
      /* Get the current used size of the three stacks, in elements.  */
2967
0
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
2968
2969
# if defined yyoverflow
2970
      {
2971
        /* Give user a chance to reallocate the stack.  Use copies of
2972
           these so that the &'s don't force the real ones into
2973
           memory.  */
2974
        yy_state_t *yyss1 = yyss;
2975
        YYSTYPE *yyvs1 = yyvs;
2976
2977
        /* Each stack pointer address is followed by the size of the
2978
           data in use in that stack, in bytes.  This used to be a
2979
           conditional around just the two extra args, but that might
2980
           be undefined if yyoverflow is a macro.  */
2981
        yyoverflow (YY_("memory exhausted"),
2982
                    &yyss1, yysize * YYSIZEOF (*yyssp),
2983
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
2984
                    &yystacksize);
2985
        yyss = yyss1;
2986
        yyvs = yyvs1;
2987
      }
2988
# else /* defined YYSTACK_RELOCATE */
2989
      /* Extend the stack our own way.  */
2990
0
      if (YYMAXDEPTH <= yystacksize)
2991
0
        goto yyexhaustedlab;
2992
0
      yystacksize *= 2;
2993
0
      if (YYMAXDEPTH < yystacksize)
2994
0
        yystacksize = YYMAXDEPTH;
2995
2996
0
      {
2997
0
        yy_state_t *yyss1 = yyss;
2998
0
        union yyalloc *yyptr =
2999
0
          YY_CAST (union yyalloc *,
3000
0
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3001
0
        if (! yyptr)
3002
0
          goto yyexhaustedlab;
3003
0
        YYSTACK_RELOCATE (yyss_alloc, yyss);
3004
0
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3005
0
# undef YYSTACK_RELOCATE
3006
0
        if (yyss1 != yyssa)
3007
0
          YYSTACK_FREE (yyss1);
3008
0
      }
3009
0
# endif
3010
3011
0
      yyssp = yyss + yysize - 1;
3012
0
      yyvsp = yyvs + yysize - 1;
3013
3014
0
      YY_IGNORE_USELESS_CAST_BEGIN
3015
0
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3016
0
                  YY_CAST (long, yystacksize)));
3017
0
      YY_IGNORE_USELESS_CAST_END
3018
3019
0
      if (yyss + yystacksize - 1 <= yyssp)
3020
0
        YYABORT;
3021
0
    }
3022
0
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3023
3024
0
  if (yystate == YYFINAL)
3025
0
    YYACCEPT;
3026
3027
0
  goto yybackup;
3028
3029
3030
/*-----------.
3031
| yybackup.  |
3032
`-----------*/
3033
0
yybackup:
3034
  /* Do appropriate processing given the current state.  Read a
3035
     lookahead token if we need one and don't already have one.  */
3036
3037
  /* First try to decide what to do without reference to lookahead token.  */
3038
0
  yyn = yypact[yystate];
3039
0
  if (yypact_value_is_default (yyn))
3040
0
    goto yydefault;
3041
3042
  /* Not known => get a lookahead token if don't already have one.  */
3043
3044
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
3045
0
  if (yychar == YYEMPTY)
3046
0
    {
3047
0
      YYDPRINTF ((stderr, "Reading a token: "));
3048
0
      yychar = yylex ();
3049
0
    }
3050
3051
0
  if (yychar <= YYEOF)
3052
0
    {
3053
0
      yychar = yytoken = YYEOF;
3054
0
      YYDPRINTF ((stderr, "Now at end of input.\n"));
3055
0
    }
3056
0
  else
3057
0
    {
3058
0
      yytoken = YYTRANSLATE (yychar);
3059
0
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3060
0
    }
3061
3062
  /* If the proper action on seeing token YYTOKEN is to reduce or to
3063
     detect an error, take that action.  */
3064
0
  yyn += yytoken;
3065
0
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3066
0
    goto yydefault;
3067
0
  yyn = yytable[yyn];
3068
0
  if (yyn <= 0)
3069
0
    {
3070
0
      if (yytable_value_is_error (yyn))
3071
0
        goto yyerrlab;
3072
0
      yyn = -yyn;
3073
0
      goto yyreduce;
3074
0
    }
3075
3076
  /* Count tokens shifted since error; after three, turn off error
3077
     status.  */
3078
0
  if (yyerrstatus)
3079
0
    yyerrstatus--;
3080
3081
  /* Shift the lookahead token.  */
3082
0
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3083
0
  yystate = yyn;
3084
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3085
0
  *++yyvsp = yylval;
3086
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
3087
3088
  /* Discard the shifted token.  */
3089
0
  yychar = YYEMPTY;
3090
0
  goto yynewstate;
3091
3092
3093
/*-----------------------------------------------------------.
3094
| yydefault -- do the default action for the current state.  |
3095
`-----------------------------------------------------------*/
3096
0
yydefault:
3097
0
  yyn = yydefact[yystate];
3098
0
  if (yyn == 0)
3099
0
    goto yyerrlab;
3100
0
  goto yyreduce;
3101
3102
3103
/*-----------------------------.
3104
| yyreduce -- do a reduction.  |
3105
`-----------------------------*/
3106
0
yyreduce:
3107
  /* yyn is the number of a rule to reduce with.  */
3108
0
  yylen = yyr2[yyn];
3109
3110
  /* If YYLEN is nonzero, implement the default value of the action:
3111
     '$$ = $1'.
3112
3113
     Otherwise, the following line sets YYVAL to garbage.
3114
     This behavior is undocumented and Bison
3115
     users should not rely upon it.  Assigning to YYVAL
3116
     unconditionally makes the parser a bit smaller, and it avoids a
3117
     GCC warning that YYVAL may be used uninitialized.  */
3118
0
  yyval = yyvsp[1-yylen];
3119
3120
3121
0
  YY_REDUCE_PRINT (yyn);
3122
0
  switch (yyn)
3123
0
    {
3124
0
  case 18:
3125
0
#line 215 "./util/configparser.y"
3126
0
        {
3127
0
    OUTYY(("\nP(force-toplevel)\n"));
3128
0
    cfg_parser->started_toplevel = 0;
3129
0
  }
3130
0
#line 3131 "util/configparser.c"
3131
0
    break;
3132
3133
0
  case 19:
3134
0
#line 222 "./util/configparser.y"
3135
0
        {
3136
0
    OUTYY(("\nP(server:)\n"));
3137
0
    cfg_parser->started_toplevel = 1;
3138
0
  }
3139
0
#line 3140 "util/configparser.c"
3140
0
    break;
3141
3142
0
  case 264:
3143
0
#line 339 "./util/configparser.y"
3144
0
        {
3145
0
    struct config_stub* s;
3146
0
    OUTYY(("\nP(stub_zone:)\n"));
3147
0
    cfg_parser->started_toplevel = 1;
3148
0
    s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
3149
0
    if(s) {
3150
0
      s->next = cfg_parser->cfg->stubs;
3151
0
      cfg_parser->cfg->stubs = s;
3152
0
    } else {
3153
0
      yyerror("out of memory");
3154
0
    }
3155
0
  }
3156
0
#line 3157 "util/configparser.c"
3157
0
    break;
3158
3159
0
  case 275:
3160
0
#line 358 "./util/configparser.y"
3161
0
        {
3162
0
    struct config_stub* s;
3163
0
    OUTYY(("\nP(forward_zone:)\n"));
3164
0
    cfg_parser->started_toplevel = 1;
3165
0
    s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
3166
0
    if(s) {
3167
0
      s->next = cfg_parser->cfg->forwards;
3168
0
      cfg_parser->cfg->forwards = s;
3169
0
    } else {
3170
0
      yyerror("out of memory");
3171
0
    }
3172
0
  }
3173
0
#line 3174 "util/configparser.c"
3174
0
    break;
3175
3176
0
  case 285:
3177
0
#line 377 "./util/configparser.y"
3178
0
        {
3179
0
    struct config_view* s;
3180
0
    OUTYY(("\nP(view:)\n"));
3181
0
    cfg_parser->started_toplevel = 1;
3182
0
    s = (struct config_view*)calloc(1, sizeof(struct config_view));
3183
0
    if(s) {
3184
0
      s->next = cfg_parser->cfg->views;
3185
0
      if(s->next && !s->next->name)
3186
0
        yyerror("view without name");
3187
0
      cfg_parser->cfg->views = s;
3188
0
    } else {
3189
0
      yyerror("out of memory");
3190
0
    }
3191
0
  }
3192
0
#line 3193 "util/configparser.c"
3193
0
    break;
3194
3195
0
  case 295:
3196
0
#line 398 "./util/configparser.y"
3197
0
        {
3198
0
    struct config_auth* s;
3199
0
    OUTYY(("\nP(auth_zone:)\n"));
3200
0
    cfg_parser->started_toplevel = 1;
3201
0
    s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
3202
0
    if(s) {
3203
0
      s->next = cfg_parser->cfg->auths;
3204
0
      cfg_parser->cfg->auths = s;
3205
      /* defaults for auth zone */
3206
0
      s->for_downstream = 1;
3207
0
      s->for_upstream = 1;
3208
0
      s->fallback_enabled = 0;
3209
0
      s->zonemd_check = 0;
3210
0
      s->zonemd_reject_absence = 0;
3211
0
      s->isrpz = 0;
3212
0
    } else {
3213
0
      yyerror("out of memory");
3214
0
    }
3215
0
  }
3216
0
#line 3217 "util/configparser.c"
3217
0
    break;
3218
3219
0
  case 308:
3220
0
#line 426 "./util/configparser.y"
3221
0
        {
3222
0
    uint8_t* bitlist;
3223
0
    size_t len = 0;
3224
0
    OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str)));
3225
0
    bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
3226
0
      &len);
3227
0
    free((yyvsp[0].str));
3228
0
    if(!bitlist) {
3229
0
      yyerror("could not parse tags, (define-tag them first)");
3230
0
    }
3231
0
    if(bitlist) {
3232
0
      cfg_parser->cfg->auths->rpz_taglist = bitlist;
3233
0
      cfg_parser->cfg->auths->rpz_taglistlen = len;
3234
3235
0
    }
3236
0
  }
3237
0
#line 3238 "util/configparser.c"
3238
0
    break;
3239
3240
0
  case 309:
3241
0
#line 445 "./util/configparser.y"
3242
0
        {
3243
0
    OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
3244
0
    if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
3245
0
       strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 &&
3246
0
       strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) {
3247
0
      yyerror("rpz-action-override action: expected nxdomain, "
3248
0
        "nodata, passthru, drop, cname or disabled");
3249
0
      free((yyvsp[0].str));
3250
0
      cfg_parser->cfg->auths->rpz_action_override = NULL;
3251
0
    }
3252
0
    else {
3253
0
      cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
3254
0
    }
3255
0
  }
3256
0
#line 3257 "util/configparser.c"
3257
0
    break;
3258
3259
0
  case 310:
3260
0
#line 462 "./util/configparser.y"
3261
0
        {
3262
0
    OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
3263
0
    free(cfg_parser->cfg->auths->rpz_cname);
3264
0
    cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
3265
0
  }
3266
0
#line 3267 "util/configparser.c"
3267
0
    break;
3268
3269
0
  case 311:
3270
0
#line 470 "./util/configparser.y"
3271
0
        {
3272
0
    OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
3273
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3274
0
      yyerror("expected yes or no.");
3275
0
    else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
3276
0
    free((yyvsp[0].str));
3277
0
  }
3278
0
#line 3279 "util/configparser.c"
3279
0
    break;
3280
3281
0
  case 312:
3282
0
#line 480 "./util/configparser.y"
3283
0
        {
3284
0
    OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
3285
0
    free(cfg_parser->cfg->auths->rpz_log_name);
3286
0
    cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
3287
0
  }
3288
0
#line 3289 "util/configparser.c"
3289
0
    break;
3290
3291
0
  case 313:
3292
0
#line 487 "./util/configparser.y"
3293
0
        {
3294
0
    OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str)));
3295
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3296
0
      yyerror("expected yes or no.");
3297
0
    else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
3298
0
    free((yyvsp[0].str));
3299
0
  }
3300
0
#line 3301 "util/configparser.c"
3301
0
    break;
3302
3303
0
  case 314:
3304
0
#line 497 "./util/configparser.y"
3305
0
        {
3306
0
    struct config_auth* s;
3307
0
    OUTYY(("\nP(rpz:)\n"));
3308
0
    cfg_parser->started_toplevel = 1;
3309
0
    s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
3310
0
    if(s) {
3311
0
      s->next = cfg_parser->cfg->auths;
3312
0
      cfg_parser->cfg->auths = s;
3313
      /* defaults for RPZ auth zone */
3314
0
      s->for_downstream = 0;
3315
0
      s->for_upstream = 0;
3316
0
      s->fallback_enabled = 0;
3317
0
      s->isrpz = 1;
3318
0
    } else {
3319
0
      yyerror("out of memory");
3320
0
    }
3321
0
  }
3322
0
#line 3323 "util/configparser.c"
3323
0
    break;
3324
3325
0
  case 329:
3326
0
#line 522 "./util/configparser.y"
3327
0
        {
3328
0
    OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
3329
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3330
0
      yyerror("number expected");
3331
0
    else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
3332
0
    free((yyvsp[0].str));
3333
0
  }
3334
0
#line 3335 "util/configparser.c"
3335
0
    break;
3336
3337
0
  case 330:
3338
0
#line 531 "./util/configparser.y"
3339
0
        {
3340
0
    OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
3341
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3342
0
      yyerror("number expected");
3343
0
    else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
3344
0
    free((yyvsp[0].str));
3345
0
  }
3346
0
#line 3347 "util/configparser.c"
3347
0
    break;
3348
3349
0
  case 331:
3350
0
#line 540 "./util/configparser.y"
3351
0
        {
3352
0
    OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
3353
0
    if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3354
0
      cfg_parser->cfg->stat_interval = 0;
3355
0
    else if(atoi((yyvsp[0].str)) == 0)
3356
0
      yyerror("number expected");
3357
0
    else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
3358
0
    free((yyvsp[0].str));
3359
0
  }
3360
0
#line 3361 "util/configparser.c"
3361
0
    break;
3362
3363
0
  case 332:
3364
0
#line 551 "./util/configparser.y"
3365
0
        {
3366
0
    OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
3367
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3368
0
      yyerror("expected yes or no.");
3369
0
    else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
3370
0
    free((yyvsp[0].str));
3371
0
  }
3372
0
#line 3373 "util/configparser.c"
3373
0
    break;
3374
3375
0
  case 333:
3376
0
#line 560 "./util/configparser.y"
3377
0
        {
3378
0
    OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
3379
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3380
0
      yyerror("expected yes or no.");
3381
0
    else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
3382
0
    free((yyvsp[0].str));
3383
0
  }
3384
0
#line 3385 "util/configparser.c"
3385
0
    break;
3386
3387
0
  case 334:
3388
0
#line 569 "./util/configparser.y"
3389
0
        {
3390
0
    OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str)));
3391
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3392
0
      yyerror("expected yes or no.");
3393
0
    else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
3394
0
    free((yyvsp[0].str));
3395
0
  }
3396
0
#line 3397 "util/configparser.c"
3397
0
    break;
3398
3399
0
  case 335:
3400
0
#line 578 "./util/configparser.y"
3401
0
        {
3402
0
    OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
3403
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3404
0
      yyerror("expected yes or no.");
3405
0
    else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
3406
0
    free((yyvsp[0].str));
3407
0
  }
3408
0
#line 3409 "util/configparser.c"
3409
0
    break;
3410
3411
0
  case 336:
3412
0
#line 587 "./util/configparser.y"
3413
0
        {
3414
0
    OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
3415
0
    if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3416
0
      cfg_parser->cfg->shm_key = 0;
3417
0
    else if(atoi((yyvsp[0].str)) == 0)
3418
0
      yyerror("number expected");
3419
0
    else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
3420
0
    free((yyvsp[0].str));
3421
0
  }
3422
0
#line 3423 "util/configparser.c"
3423
0
    break;
3424
3425
0
  case 337:
3426
0
#line 598 "./util/configparser.y"
3427
0
        {
3428
0
    OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
3429
0
    if(atoi((yyvsp[0].str)) == 0)
3430
0
      yyerror("port number expected");
3431
0
    else cfg_parser->cfg->port = atoi((yyvsp[0].str));
3432
0
    free((yyvsp[0].str));
3433
0
  }
3434
0
#line 3435 "util/configparser.c"
3435
0
    break;
3436
3437
0
  case 338:
3438
0
#line 607 "./util/configparser.y"
3439
0
        {
3440
  #ifdef CLIENT_SUBNET
3441
    OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
3442
    if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
3443
      fatal_exit("out of memory adding client-subnet");
3444
  #else
3445
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3446
0
    free((yyvsp[0].str));
3447
0
  #endif
3448
0
  }
3449
0
#line 3450 "util/configparser.c"
3450
0
    break;
3451
3452
0
  case 339:
3453
0
#line 619 "./util/configparser.y"
3454
0
        {
3455
  #ifdef CLIENT_SUBNET
3456
    OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
3457
    if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
3458
      (yyvsp[0].str)))
3459
      fatal_exit("out of memory adding client-subnet-zone");
3460
  #else
3461
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3462
0
    free((yyvsp[0].str));
3463
0
  #endif
3464
0
  }
3465
0
#line 3466 "util/configparser.c"
3466
0
    break;
3467
3468
0
  case 340:
3469
0
#line 633 "./util/configparser.y"
3470
0
        {
3471
  #ifdef CLIENT_SUBNET
3472
    OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
3473
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3474
      yyerror("expected yes or no.");
3475
    else
3476
      cfg_parser->cfg->client_subnet_always_forward =
3477
        (strcmp((yyvsp[0].str), "yes")==0);
3478
  #else
3479
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3480
0
  #endif
3481
0
    free((yyvsp[0].str));
3482
0
  }
3483
0
#line 3484 "util/configparser.c"
3484
0
    break;
3485
3486
0
  case 341:
3487
0
#line 648 "./util/configparser.y"
3488
0
        {
3489
  #ifdef CLIENT_SUBNET
3490
    OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
3491
    OUTYY(("P(Deprecated option, ignoring)\n"));
3492
  #else
3493
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3494
0
  #endif
3495
0
    free((yyvsp[0].str));
3496
0
  }
3497
0
#line 3498 "util/configparser.c"
3498
0
    break;
3499
3500
0
  case 342:
3501
0
#line 659 "./util/configparser.y"
3502
0
        {
3503
  #ifdef CLIENT_SUBNET
3504
    OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3505
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3506
      yyerror("IPv4 subnet length expected");
3507
    else if (atoi((yyvsp[0].str)) > 32)
3508
      cfg_parser->cfg->max_client_subnet_ipv4 = 32;
3509
    else if (atoi((yyvsp[0].str)) < 0)
3510
      cfg_parser->cfg->max_client_subnet_ipv4 = 0;
3511
    else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3512
  #else
3513
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3514
0
  #endif
3515
0
    free((yyvsp[0].str));
3516
0
  }
3517
0
#line 3518 "util/configparser.c"
3518
0
    break;
3519
3520
0
  case 343:
3521
0
#line 676 "./util/configparser.y"
3522
0
        {
3523
  #ifdef CLIENT_SUBNET
3524
    OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3525
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3526
      yyerror("Ipv6 subnet length expected");
3527
    else if (atoi((yyvsp[0].str)) > 128)
3528
      cfg_parser->cfg->max_client_subnet_ipv6 = 128;
3529
    else if (atoi((yyvsp[0].str)) < 0)
3530
      cfg_parser->cfg->max_client_subnet_ipv6 = 0;
3531
    else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3532
  #else
3533
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3534
0
  #endif
3535
0
    free((yyvsp[0].str));
3536
0
  }
3537
0
#line 3538 "util/configparser.c"
3538
0
    break;
3539
3540
0
  case 344:
3541
0
#line 693 "./util/configparser.y"
3542
0
        {
3543
  #ifdef CLIENT_SUBNET
3544
    OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3545
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3546
      yyerror("IPv4 subnet length expected");
3547
    else if (atoi((yyvsp[0].str)) > 32)
3548
      cfg_parser->cfg->min_client_subnet_ipv4 = 32;
3549
    else if (atoi((yyvsp[0].str)) < 0)
3550
      cfg_parser->cfg->min_client_subnet_ipv4 = 0;
3551
    else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3552
  #else
3553
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3554
0
  #endif
3555
0
    free((yyvsp[0].str));
3556
0
  }
3557
0
#line 3558 "util/configparser.c"
3558
0
    break;
3559
3560
0
  case 345:
3561
0
#line 710 "./util/configparser.y"
3562
0
        {
3563
  #ifdef CLIENT_SUBNET
3564
    OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3565
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3566
      yyerror("Ipv6 subnet length expected");
3567
    else if (atoi((yyvsp[0].str)) > 128)
3568
      cfg_parser->cfg->min_client_subnet_ipv6 = 128;
3569
    else if (atoi((yyvsp[0].str)) < 0)
3570
      cfg_parser->cfg->min_client_subnet_ipv6 = 0;
3571
    else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3572
  #else
3573
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3574
0
  #endif
3575
0
    free((yyvsp[0].str));
3576
0
  }
3577
0
#line 3578 "util/configparser.c"
3578
0
    break;
3579
3580
0
  case 346:
3581
0
#line 727 "./util/configparser.y"
3582
0
        {
3583
  #ifdef CLIENT_SUBNET
3584
    OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
3585
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3586
      yyerror("IPv4 ECS tree size expected");
3587
    else if (atoi((yyvsp[0].str)) < 0)
3588
      cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
3589
    else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
3590
  #else
3591
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3592
0
  #endif
3593
0
    free((yyvsp[0].str));
3594
0
  }
3595
0
#line 3596 "util/configparser.c"
3596
0
    break;
3597
3598
0
  case 347:
3599
0
#line 742 "./util/configparser.y"
3600
0
        {
3601
  #ifdef CLIENT_SUBNET
3602
    OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
3603
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3604
      yyerror("IPv6 ECS tree size expected");
3605
    else if (atoi((yyvsp[0].str)) < 0)
3606
      cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
3607
    else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
3608
  #else
3609
0
    OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3610
0
  #endif
3611
0
    free((yyvsp[0].str));
3612
0
  }
3613
0
#line 3614 "util/configparser.c"
3614
0
    break;
3615
3616
0
  case 348:
3617
0
#line 757 "./util/configparser.y"
3618
0
        {
3619
0
    OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
3620
0
    if(cfg_parser->cfg->num_ifs == 0)
3621
0
      cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
3622
0
    else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
3623
0
        (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
3624
0
    if(!cfg_parser->cfg->ifs)
3625
0
      yyerror("out of memory");
3626
0
    else
3627
0
      cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
3628
0
  }
3629
0
#line 3630 "util/configparser.c"
3630
0
    break;
3631
3632
0
  case 349:
3633
0
#line 770 "./util/configparser.y"
3634
0
        {
3635
0
    OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
3636
0
    if(cfg_parser->cfg->num_out_ifs == 0)
3637
0
      cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
3638
0
    else cfg_parser->cfg->out_ifs = realloc(
3639
0
      cfg_parser->cfg->out_ifs,
3640
0
      (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
3641
0
    if(!cfg_parser->cfg->out_ifs)
3642
0
      yyerror("out of memory");
3643
0
    else
3644
0
      cfg_parser->cfg->out_ifs[
3645
0
        cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
3646
0
  }
3647
0
#line 3648 "util/configparser.c"
3648
0
    break;
3649
3650
0
  case 350:
3651
0
#line 785 "./util/configparser.y"
3652
0
        {
3653
0
    OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
3654
0
    if(atoi((yyvsp[0].str)) == 0)
3655
0
      yyerror("number expected");
3656
0
    else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
3657
0
    free((yyvsp[0].str));
3658
0
  }
3659
0
#line 3660 "util/configparser.c"
3660
0
    break;
3661
3662
0
  case 351:
3663
0
#line 794 "./util/configparser.y"
3664
0
        {
3665
0
    OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
3666
0
    if(!cfg_mark_ports((yyvsp[0].str), 1,
3667
0
      cfg_parser->cfg->outgoing_avail_ports, 65536))
3668
0
      yyerror("port number or range (\"low-high\") expected");
3669
0
    free((yyvsp[0].str));
3670
0
  }
3671
0
#line 3672 "util/configparser.c"
3672
0
    break;
3673
3674
0
  case 352:
3675
0
#line 803 "./util/configparser.y"
3676
0
        {
3677
0
    OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
3678
0
    if(!cfg_mark_ports((yyvsp[0].str), 0,
3679
0
      cfg_parser->cfg->outgoing_avail_ports, 65536))
3680
0
      yyerror("port number or range (\"low-high\") expected");
3681
0
    free((yyvsp[0].str));
3682
0
  }
3683
0
#line 3684 "util/configparser.c"
3684
0
    break;
3685
3686
0
  case 353:
3687
0
#line 812 "./util/configparser.y"
3688
0
        {
3689
0
    OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
3690
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3691
0
      yyerror("number expected");
3692
0
    else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
3693
0
    free((yyvsp[0].str));
3694
0
  }
3695
0
#line 3696 "util/configparser.c"
3696
0
    break;
3697
3698
0
  case 354:
3699
0
#line 821 "./util/configparser.y"
3700
0
        {
3701
0
    OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
3702
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3703
0
      yyerror("number expected");
3704
0
    else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
3705
0
    free((yyvsp[0].str));
3706
0
  }
3707
0
#line 3708 "util/configparser.c"
3708
0
    break;
3709
3710
0
  case 355:
3711
0
#line 830 "./util/configparser.y"
3712
0
        {
3713
0
    OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
3714
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3715
0
      yyerror("expected yes or no.");
3716
0
    else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
3717
0
    free((yyvsp[0].str));
3718
0
  }
3719
0
#line 3720 "util/configparser.c"
3720
0
    break;
3721
3722
0
  case 356:
3723
0
#line 839 "./util/configparser.y"
3724
0
        {
3725
0
    OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str)));
3726
0
    free(cfg_parser->cfg->if_automatic_ports);
3727
0
    cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
3728
0
  }
3729
0
#line 3730 "util/configparser.c"
3730
0
    break;
3731
3732
0
  case 357:
3733
0
#line 846 "./util/configparser.y"
3734
0
        {
3735
0
    OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
3736
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3737
0
      yyerror("expected yes or no.");
3738
0
    else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3739
0
    free((yyvsp[0].str));
3740
0
  }
3741
0
#line 3742 "util/configparser.c"
3742
0
    break;
3743
3744
0
  case 358:
3745
0
#line 855 "./util/configparser.y"
3746
0
        {
3747
0
    OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
3748
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3749
0
      yyerror("expected yes or no.");
3750
0
    else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3751
0
    free((yyvsp[0].str));
3752
0
  }
3753
0
#line 3754 "util/configparser.c"
3754
0
    break;
3755
3756
0
  case 359:
3757
0
#line 864 "./util/configparser.y"
3758
0
        {
3759
0
    OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str)));
3760
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3761
0
      yyerror("expected yes or no.");
3762
0
    else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
3763
0
    free((yyvsp[0].str));
3764
0
  }
3765
0
#line 3766 "util/configparser.c"
3766
0
    break;
3767
3768
0
  case 360:
3769
0
#line 873 "./util/configparser.y"
3770
0
        {
3771
0
    OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
3772
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3773
0
      yyerror("expected yes or no.");
3774
0
    else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
3775
0
    free((yyvsp[0].str));
3776
0
  }
3777
0
#line 3778 "util/configparser.c"
3778
0
    break;
3779
3780
0
  case 361:
3781
0
#line 882 "./util/configparser.y"
3782
0
        {
3783
0
    OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
3784
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3785
0
      yyerror("expected yes or no.");
3786
0
    else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
3787
0
    free((yyvsp[0].str));
3788
0
  }
3789
0
#line 3790 "util/configparser.c"
3790
0
    break;
3791
3792
0
  case 362:
3793
0
#line 891 "./util/configparser.y"
3794
0
        {
3795
0
    OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
3796
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3797
0
      yyerror("expected yes or no.");
3798
0
    else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3799
0
    free((yyvsp[0].str));
3800
0
  }
3801
0
#line 3802 "util/configparser.c"
3802
0
    break;
3803
3804
0
  case 363:
3805
0
#line 900 "./util/configparser.y"
3806
0
        {
3807
0
    OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
3808
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3809
0
      yyerror("expected yes or no.");
3810
0
    else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3811
0
    free((yyvsp[0].str));
3812
0
  }
3813
0
#line 3814 "util/configparser.c"
3814
0
    break;
3815
3816
0
  case 364:
3817
0
#line 909 "./util/configparser.y"
3818
0
        {
3819
0
    OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
3820
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3821
0
        yyerror("number expected");
3822
0
    else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
3823
0
    free((yyvsp[0].str));
3824
0
  }
3825
0
#line 3826 "util/configparser.c"
3826
0
    break;
3827
3828
0
  case 365:
3829
0
#line 918 "./util/configparser.y"
3830
0
        {
3831
0
    OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
3832
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3833
0
      yyerror("number expected");
3834
0
    else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
3835
0
    free((yyvsp[0].str));
3836
0
  }
3837
0
#line 3838 "util/configparser.c"
3838
0
    break;
3839
3840
0
  case 366:
3841
0
#line 927 "./util/configparser.y"
3842
0
        {
3843
0
    OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
3844
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3845
0
      yyerror("number expected");
3846
0
    else if (atoi((yyvsp[0].str)) > 120000)
3847
0
      cfg_parser->cfg->tcp_idle_timeout = 120000;
3848
0
    else if (atoi((yyvsp[0].str)) < 1)
3849
0
      cfg_parser->cfg->tcp_idle_timeout = 1;
3850
0
    else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
3851
0
    free((yyvsp[0].str));
3852
0
  }
3853
0
#line 3854 "util/configparser.c"
3854
0
    break;
3855
3856
0
  case 367:
3857
0
#line 940 "./util/configparser.y"
3858
0
        {
3859
0
    OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
3860
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3861
0
      yyerror("number expected");
3862
0
    else if (atoi((yyvsp[0].str)) < 1)
3863
0
      cfg_parser->cfg->max_reuse_tcp_queries = 0;
3864
0
    else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
3865
0
    free((yyvsp[0].str));
3866
0
  }
3867
0
#line 3868 "util/configparser.c"
3868
0
    break;
3869
3870
0
  case 368:
3871
0
#line 951 "./util/configparser.y"
3872
0
        {
3873
0
    OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
3874
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3875
0
      yyerror("number expected");
3876
0
    else if (atoi((yyvsp[0].str)) < 1)
3877
0
      cfg_parser->cfg->tcp_reuse_timeout = 0;
3878
0
    else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
3879
0
    free((yyvsp[0].str));
3880
0
  }
3881
0
#line 3882 "util/configparser.c"
3882
0
    break;
3883
3884
0
  case 369:
3885
0
#line 962 "./util/configparser.y"
3886
0
        {
3887
0
    OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
3888
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3889
0
      yyerror("number expected");
3890
0
    else if (atoi((yyvsp[0].str)) < 1)
3891
0
      cfg_parser->cfg->tcp_auth_query_timeout = 0;
3892
0
    else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
3893
0
    free((yyvsp[0].str));
3894
0
  }
3895
0
#line 3896 "util/configparser.c"
3896
0
    break;
3897
3898
0
  case 370:
3899
0
#line 973 "./util/configparser.y"
3900
0
        {
3901
0
    OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
3902
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3903
0
      yyerror("expected yes or no.");
3904
0
    else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
3905
0
    free((yyvsp[0].str));
3906
0
  }
3907
0
#line 3908 "util/configparser.c"
3908
0
    break;
3909
3910
0
  case 371:
3911
0
#line 982 "./util/configparser.y"
3912
0
        {
3913
0
    OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
3914
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3915
0
      yyerror("number expected");
3916
0
    else if (atoi((yyvsp[0].str)) > 6553500)
3917
0
      cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
3918
0
    else if (atoi((yyvsp[0].str)) < 1)
3919
0
      cfg_parser->cfg->tcp_keepalive_timeout = 0;
3920
0
    else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
3921
0
    free((yyvsp[0].str));
3922
0
  }
3923
0
#line 3924 "util/configparser.c"
3924
0
    break;
3925
3926
0
  case 372:
3927
0
#line 995 "./util/configparser.y"
3928
0
        {
3929
0
    OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str)));
3930
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3931
0
      yyerror("number expected");
3932
0
    else if (atoi((yyvsp[0].str)) > 6553500)
3933
0
      cfg_parser->cfg->sock_queue_timeout = 6553500;
3934
0
    else if (atoi((yyvsp[0].str)) < 1)
3935
0
      cfg_parser->cfg->sock_queue_timeout = 0;
3936
0
    else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
3937
0
    free((yyvsp[0].str));
3938
0
  }
3939
0
#line 3940 "util/configparser.c"
3940
0
    break;
3941
3942
0
  case 373:
3943
0
#line 1008 "./util/configparser.y"
3944
0
        {
3945
0
    OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
3946
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3947
0
      yyerror("expected yes or no.");
3948
0
    else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3949
0
    free((yyvsp[0].str));
3950
0
  }
3951
0
#line 3952 "util/configparser.c"
3952
0
    break;
3953
3954
0
  case 374:
3955
0
#line 1017 "./util/configparser.y"
3956
0
        {
3957
0
    OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
3958
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3959
0
      yyerror("expected yes or no.");
3960
0
    else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
3961
0
    free((yyvsp[0].str));
3962
0
  }
3963
0
#line 3964 "util/configparser.c"
3964
0
    break;
3965
3966
0
  case 375:
3967
0
#line 1026 "./util/configparser.y"
3968
0
        {
3969
0
    OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
3970
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3971
0
      yyerror("expected yes or no.");
3972
0
    else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3973
0
    free((yyvsp[0].str));
3974
0
  }
3975
0
#line 3976 "util/configparser.c"
3976
0
    break;
3977
3978
0
  case 376:
3979
0
#line 1035 "./util/configparser.y"
3980
0
        {
3981
0
    OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
3982
0
    free(cfg_parser->cfg->ssl_service_key);
3983
0
    cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
3984
0
  }
3985
0
#line 3986 "util/configparser.c"
3986
0
    break;
3987
3988
0
  case 377:
3989
0
#line 1042 "./util/configparser.y"
3990
0
        {
3991
0
    OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
3992
0
    free(cfg_parser->cfg->ssl_service_pem);
3993
0
    cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
3994
0
  }
3995
0
#line 3996 "util/configparser.c"
3996
0
    break;
3997
3998
0
  case 378:
3999
0
#line 1049 "./util/configparser.y"
4000
0
        {
4001
0
    OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
4002
0
    if(atoi((yyvsp[0].str)) == 0)
4003
0
      yyerror("port number expected");
4004
0
    else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
4005
0
    free((yyvsp[0].str));
4006
0
  }
4007
0
#line 4008 "util/configparser.c"
4008
0
    break;
4009
4010
0
  case 379:
4011
0
#line 1058 "./util/configparser.y"
4012
0
        {
4013
0
    OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
4014
0
    free(cfg_parser->cfg->tls_cert_bundle);
4015
0
    cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
4016
0
  }
4017
0
#line 4018 "util/configparser.c"
4018
0
    break;
4019
4020
0
  case 380:
4021
0
#line 1065 "./util/configparser.y"
4022
0
        {
4023
0
    OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
4024
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4025
0
      yyerror("expected yes or no.");
4026
0
    else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
4027
0
    free((yyvsp[0].str));
4028
0
  }
4029
0
#line 4030 "util/configparser.c"
4030
0
    break;
4031
4032
0
  case 381:
4033
0
#line 1074 "./util/configparser.y"
4034
0
        {
4035
0
    OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
4036
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
4037
0
      (yyvsp[0].str)))
4038
0
      yyerror("out of memory");
4039
0
  }
4040
0
#line 4041 "util/configparser.c"
4041
0
    break;
4042
4043
0
  case 382:
4044
0
#line 1082 "./util/configparser.y"
4045
0
        {
4046
0
    OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
4047
0
    free(cfg_parser->cfg->tls_ciphers);
4048
0
    cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
4049
0
  }
4050
0
#line 4051 "util/configparser.c"
4051
0
    break;
4052
4053
0
  case 383:
4054
0
#line 1089 "./util/configparser.y"
4055
0
        {
4056
0
    OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
4057
0
    free(cfg_parser->cfg->tls_ciphersuites);
4058
0
    cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
4059
0
  }
4060
0
#line 4061 "util/configparser.c"
4061
0
    break;
4062
4063
0
  case 384:
4064
0
#line 1096 "./util/configparser.y"
4065
0
        {
4066
0
    OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
4067
0
    if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
4068
0
      (yyvsp[0].str)))
4069
0
      yyerror("out of memory");
4070
0
  }
4071
0
#line 4072 "util/configparser.c"
4072
0
    break;
4073
4074
0
  case 385:
4075
0
#line 1104 "./util/configparser.y"
4076
0
        {
4077
0
    OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
4078
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4079
0
      yyerror("expected yes or no.");
4080
0
    else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
4081
0
    free((yyvsp[0].str));
4082
0
  }
4083
0
#line 4084 "util/configparser.c"
4084
0
    break;
4085
4086
0
  case 386:
4087
0
#line 1113 "./util/configparser.y"
4088
0
        {
4089
0
    OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
4090
0
    if(atoi((yyvsp[0].str)) == 0)
4091
0
      yyerror("port number expected");
4092
0
    else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
4093
0
    free((yyvsp[0].str));
4094
0
  }
4095
0
#line 4096 "util/configparser.c"
4096
0
    break;
4097
4098
0
  case 387:
4099
0
#line 1121 "./util/configparser.y"
4100
0
        {
4101
0
    OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
4102
0
    free(cfg_parser->cfg->http_endpoint);
4103
0
    if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') {
4104
0
      cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
4105
0
      if(!cfg_parser->cfg->http_endpoint)
4106
0
        yyerror("out of memory");
4107
0
      cfg_parser->cfg->http_endpoint[0] = '/';
4108
0
      memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
4109
0
        strlen((yyvsp[0].str))+1);
4110
0
      free((yyvsp[0].str));
4111
0
    } else {
4112
0
      cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
4113
0
    }
4114
0
  }
4115
0
#line 4116 "util/configparser.c"
4116
0
    break;
4117
4118
0
  case 388:
4119
0
#line 1137 "./util/configparser.y"
4120
0
        {
4121
0
    OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
4122
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4123
0
      yyerror("number expected");
4124
0
    else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
4125
0
    free((yyvsp[0].str));
4126
0
  }
4127
0
#line 4128 "util/configparser.c"
4128
0
    break;
4129
4130
0
  case 389:
4131
0
#line 1145 "./util/configparser.y"
4132
0
        {
4133
0
    OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
4134
0
    if(!cfg_parse_memsize((yyvsp[0].str),
4135
0
      &cfg_parser->cfg->http_query_buffer_size))
4136
0
      yyerror("memory size expected");
4137
0
    free((yyvsp[0].str));
4138
0
  }
4139
0
#line 4140 "util/configparser.c"
4140
0
    break;
4141
4142
0
  case 390:
4143
0
#line 1153 "./util/configparser.y"
4144
0
        {
4145
0
    OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
4146
0
    if(!cfg_parse_memsize((yyvsp[0].str),
4147
0
      &cfg_parser->cfg->http_response_buffer_size))
4148
0
      yyerror("memory size expected");
4149
0
    free((yyvsp[0].str));
4150
0
  }
4151
0
#line 4152 "util/configparser.c"
4152
0
    break;
4153
4154
0
  case 391:
4155
0
#line 1161 "./util/configparser.y"
4156
0
        {
4157
0
    OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
4158
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4159
0
      yyerror("expected yes or no.");
4160
0
    else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
4161
0
    free((yyvsp[0].str));
4162
0
  }
4163
0
#line 4164 "util/configparser.c"
4164
0
    break;
4165
4166
0
  case 392:
4167
0
#line 1169 "./util/configparser.y"
4168
0
        {
4169
0
    OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
4170
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4171
0
      yyerror("expected yes or no.");
4172
0
    else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
4173
0
    free((yyvsp[0].str));
4174
0
  }
4175
0
#line 4176 "util/configparser.c"
4176
0
    break;
4177
4178
0
  case 393:
4179
0
#line 1177 "./util/configparser.y"
4180
0
        {
4181
0
    OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
4182
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4183
0
      yyerror("expected yes or no.");
4184
0
    else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
4185
0
    free((yyvsp[0].str));
4186
0
  }
4187
0
#line 4188 "util/configparser.c"
4188
0
    break;
4189
4190
0
  case 394:
4191
0
#line 1186 "./util/configparser.y"
4192
0
        {
4193
0
    OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
4194
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4195
0
      yyerror("expected yes or no.");
4196
0
    else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
4197
0
    free((yyvsp[0].str));
4198
0
  }
4199
0
#line 4200 "util/configparser.c"
4200
0
    break;
4201
4202
0
  case 395:
4203
0
#line 1195 "./util/configparser.y"
4204
0
        {
4205
0
    OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
4206
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4207
0
      yyerror("expected yes or no.");
4208
0
    else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
4209
#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
4210
    if(strcmp((yyvsp[0].str), "yes") == 0)
4211
      yyerror("no syslog services are available. "
4212
        "(reconfigure and compile to add)");
4213
#endif
4214
0
    free((yyvsp[0].str));
4215
0
  }
4216
0
#line 4217 "util/configparser.c"
4217
0
    break;
4218
4219
0
  case 396:
4220
0
#line 1209 "./util/configparser.y"
4221
0
        {
4222
0
    OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
4223
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4224
0
      yyerror("expected yes or no.");
4225
0
    else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
4226
0
    free((yyvsp[0].str));
4227
0
  }
4228
0
#line 4229 "util/configparser.c"
4229
0
    break;
4230
4231
0
  case 397:
4232
0
#line 1218 "./util/configparser.y"
4233
0
        {
4234
0
    OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
4235
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4236
0
      yyerror("expected yes or no.");
4237
0
    else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
4238
0
    free((yyvsp[0].str));
4239
0
  }
4240
0
#line 4241 "util/configparser.c"
4241
0
    break;
4242
4243
0
  case 398:
4244
0
#line 1227 "./util/configparser.y"
4245
0
        {
4246
0
    OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
4247
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4248
0
      yyerror("expected yes or no.");
4249
0
    else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
4250
0
    free((yyvsp[0].str));
4251
0
  }
4252
0
#line 4253 "util/configparser.c"
4253
0
    break;
4254
4255
0
  case 399:
4256
0
#line 1236 "./util/configparser.y"
4257
0
        {
4258
0
    OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
4259
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4260
0
      yyerror("expected yes or no.");
4261
0
    else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
4262
0
    free((yyvsp[0].str));
4263
0
  }
4264
0
#line 4265 "util/configparser.c"
4265
0
    break;
4266
4267
0
  case 400:
4268
0
#line 1245 "./util/configparser.y"
4269
0
        {
4270
0
    OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
4271
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4272
0
      yyerror("expected yes or no.");
4273
0
    else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
4274
0
    free((yyvsp[0].str));
4275
0
  }
4276
0
#line 4277 "util/configparser.c"
4277
0
    break;
4278
4279
0
  case 401:
4280
0
#line 1254 "./util/configparser.y"
4281
0
        {
4282
0
    OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
4283
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4284
0
      yyerror("expected yes or no.");
4285
0
    else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
4286
0
    free((yyvsp[0].str));
4287
0
  }
4288
0
#line 4289 "util/configparser.c"
4289
0
    break;
4290
4291
0
  case 402:
4292
0
#line 1263 "./util/configparser.y"
4293
0
        {
4294
0
    OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
4295
0
    free(cfg_parser->cfg->chrootdir);
4296
0
    cfg_parser->cfg->chrootdir = (yyvsp[0].str);
4297
0
  }
4298
0
#line 4299 "util/configparser.c"
4299
0
    break;
4300
4301
0
  case 403:
4302
0
#line 1270 "./util/configparser.y"
4303
0
        {
4304
0
    OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
4305
0
    free(cfg_parser->cfg->username);
4306
0
    cfg_parser->cfg->username = (yyvsp[0].str);
4307
0
  }
4308
0
#line 4309 "util/configparser.c"
4309
0
    break;
4310
4311
0
  case 404:
4312
0
#line 1277 "./util/configparser.y"
4313
0
        {
4314
0
    OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
4315
0
    free(cfg_parser->cfg->directory);
4316
0
    cfg_parser->cfg->directory = (yyvsp[0].str);
4317
    /* change there right away for includes relative to this */
4318
0
    if((yyvsp[0].str)[0]) {
4319
0
      char* d;
4320
#ifdef UB_ON_WINDOWS
4321
      w_config_adjust_directory(cfg_parser->cfg);
4322
#endif
4323
0
      d = cfg_parser->cfg->directory;
4324
      /* adjust directory if we have already chroot,
4325
       * like, we reread after sighup */
4326
0
      if(cfg_parser->chroot && cfg_parser->chroot[0] &&
4327
0
        strncmp(d, cfg_parser->chroot, strlen(
4328
0
        cfg_parser->chroot)) == 0)
4329
0
        d += strlen(cfg_parser->chroot);
4330
0
      if(d[0]) {
4331
0
        if(chdir(d))
4332
0
        log_err("cannot chdir to directory: %s (%s)",
4333
0
          d, strerror(errno));
4334
0
      }
4335
0
    }
4336
0
  }
4337
0
#line 4338 "util/configparser.c"
4338
0
    break;
4339
4340
0
  case 405:
4341
0
#line 1303 "./util/configparser.y"
4342
0
        {
4343
0
    OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
4344
0
    free(cfg_parser->cfg->logfile);
4345
0
    cfg_parser->cfg->logfile = (yyvsp[0].str);
4346
0
    cfg_parser->cfg->use_syslog = 0;
4347
0
  }
4348
0
#line 4349 "util/configparser.c"
4349
0
    break;
4350
4351
0
  case 406:
4352
0
#line 1311 "./util/configparser.y"
4353
0
        {
4354
0
    OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
4355
0
    free(cfg_parser->cfg->pidfile);
4356
0
    cfg_parser->cfg->pidfile = (yyvsp[0].str);
4357
0
  }
4358
0
#line 4359 "util/configparser.c"
4359
0
    break;
4360
4361
0
  case 407:
4362
0
#line 1318 "./util/configparser.y"
4363
0
        {
4364
0
    OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
4365
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
4366
0
      yyerror("out of memory");
4367
0
  }
4368
0
#line 4369 "util/configparser.c"
4369
0
    break;
4370
4371
0
  case 408:
4372
0
#line 1325 "./util/configparser.y"
4373
0
        {
4374
0
    OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
4375
0
    log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
4376
0
    free((yyvsp[0].str));
4377
0
  }
4378
0
#line 4379 "util/configparser.c"
4379
0
    break;
4380
4381
0
  case 409:
4382
0
#line 1332 "./util/configparser.y"
4383
0
        {
4384
0
    OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
4385
0
    log_warn("option dlv-anchor ignored: DLV is decommissioned");
4386
0
    free((yyvsp[0].str));
4387
0
  }
4388
0
#line 4389 "util/configparser.c"
4389
0
    break;
4390
4391
0
  case 410:
4392
0
#line 1339 "./util/configparser.y"
4393
0
        {
4394
0
    OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4395
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->
4396
0
      auto_trust_anchor_file_list, (yyvsp[0].str)))
4397
0
      yyerror("out of memory");
4398
0
  }
4399
0
#line 4400 "util/configparser.c"
4400
0
    break;
4401
4402
0
  case 411:
4403
0
#line 1347 "./util/configparser.y"
4404
0
        {
4405
0
    OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4406
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->
4407
0
      trust_anchor_file_list, (yyvsp[0].str)))
4408
0
      yyerror("out of memory");
4409
0
  }
4410
0
#line 4411 "util/configparser.c"
4411
0
    break;
4412
4413
0
  case 412:
4414
0
#line 1355 "./util/configparser.y"
4415
0
        {
4416
0
    OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
4417
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->
4418
0
      trusted_keys_file_list, (yyvsp[0].str)))
4419
0
      yyerror("out of memory");
4420
0
  }
4421
0
#line 4422 "util/configparser.c"
4422
0
    break;
4423
4424
0
  case 413:
4425
0
#line 1363 "./util/configparser.y"
4426
0
        {
4427
0
    OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
4428
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
4429
0
      yyerror("out of memory");
4430
0
  }
4431
0
#line 4432 "util/configparser.c"
4432
0
    break;
4433
4434
0
  case 414:
4435
0
#line 1370 "./util/configparser.y"
4436
0
        {
4437
0
    OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
4438
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4439
0
      yyerror("expected yes or no.");
4440
0
    else
4441
0
      cfg_parser->cfg->trust_anchor_signaling =
4442
0
        (strcmp((yyvsp[0].str), "yes")==0);
4443
0
    free((yyvsp[0].str));
4444
0
  }
4445
0
#line 4446 "util/configparser.c"
4446
0
    break;
4447
4448
0
  case 415:
4449
0
#line 1381 "./util/configparser.y"
4450
0
        {
4451
0
    OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
4452
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4453
0
      yyerror("expected yes or no.");
4454
0
    else
4455
0
      cfg_parser->cfg->root_key_sentinel =
4456
0
        (strcmp((yyvsp[0].str), "yes")==0);
4457
0
    free((yyvsp[0].str));
4458
0
  }
4459
0
#line 4460 "util/configparser.c"
4460
0
    break;
4461
4462
0
  case 416:
4463
0
#line 1392 "./util/configparser.y"
4464
0
        {
4465
0
    OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
4466
0
    if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
4467
0
      yyerror("out of memory");
4468
0
  }
4469
0
#line 4470 "util/configparser.c"
4470
0
    break;
4471
4472
0
  case 417:
4473
0
#line 1399 "./util/configparser.y"
4474
0
        {
4475
0
    OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
4476
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4477
0
      yyerror("expected yes or no.");
4478
0
    else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
4479
0
    free((yyvsp[0].str));
4480
0
  }
4481
0
#line 4482 "util/configparser.c"
4482
0
    break;
4483
4484
0
  case 418:
4485
0
#line 1408 "./util/configparser.y"
4486
0
        {
4487
0
    OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
4488
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4489
0
      yyerror("expected yes or no.");
4490
0
    else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
4491
0
    free((yyvsp[0].str));
4492
0
  }
4493
0
#line 4494 "util/configparser.c"
4494
0
    break;
4495
4496
0
  case 419:
4497
0
#line 1417 "./util/configparser.y"
4498
0
        {
4499
0
    OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
4500
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4501
0
      yyerror("expected yes or no.");
4502
0
    else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
4503
0
    free((yyvsp[0].str));
4504
0
  }
4505
0
#line 4506 "util/configparser.c"
4506
0
    break;
4507
4508
0
  case 420:
4509
0
#line 1426 "./util/configparser.y"
4510
0
        {
4511
0
    OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
4512
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4513
0
      yyerror("expected yes or no.");
4514
0
    else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
4515
0
    free((yyvsp[0].str));
4516
0
  }
4517
0
#line 4518 "util/configparser.c"
4518
0
    break;
4519
4520
0
  case 421:
4521
0
#line 1435 "./util/configparser.y"
4522
0
        {
4523
0
    OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
4524
0
    free(cfg_parser->cfg->identity);
4525
0
    cfg_parser->cfg->identity = (yyvsp[0].str);
4526
0
  }
4527
0
#line 4528 "util/configparser.c"
4528
0
    break;
4529
4530
0
  case 422:
4531
0
#line 1442 "./util/configparser.y"
4532
0
        {
4533
0
    OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
4534
0
    free(cfg_parser->cfg->version);
4535
0
    cfg_parser->cfg->version = (yyvsp[0].str);
4536
0
  }
4537
0
#line 4538 "util/configparser.c"
4538
0
    break;
4539
4540
0
  case 423:
4541
0
#line 1449 "./util/configparser.y"
4542
0
        {
4543
0
    OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
4544
0
    free(cfg_parser->cfg->http_user_agent);
4545
0
    cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
4546
0
  }
4547
0
#line 4548 "util/configparser.c"
4548
0
    break;
4549
4550
0
  case 424:
4551
0
#line 1456 "./util/configparser.y"
4552
0
        {
4553
0
    OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
4554
0
    free(cfg_parser->cfg->nsid_cfg_str);
4555
0
    cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4556
0
    free(cfg_parser->cfg->nsid);
4557
0
    cfg_parser->cfg->nsid = NULL;
4558
0
    cfg_parser->cfg->nsid_len = 0;
4559
0
    if (*(yyvsp[0].str) == 0)
4560
0
      ; /* pass; empty string is not setting nsid */
4561
0
    else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
4562
0
          (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4563
0
      yyerror("the NSID must be either a hex string or an "
4564
0
          "ascii character string prepended with ascii_.");
4565
0
  }
4566
0
#line 4567 "util/configparser.c"
4567
0
    break;
4568
4569
0
  case 425:
4570
0
#line 1472 "./util/configparser.y"
4571
0
        {
4572
0
    OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
4573
0
    if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
4574
0
      yyerror("buffer size expected");
4575
0
    free((yyvsp[0].str));
4576
0
  }
4577
0
#line 4578 "util/configparser.c"
4578
0
    break;
4579
4580
0
  case 426:
4581
0
#line 1480 "./util/configparser.y"
4582
0
        {
4583
0
    OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
4584
0
    if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
4585
0
      yyerror("buffer size expected");
4586
0
    free((yyvsp[0].str));
4587
0
  }
4588
0
#line 4589 "util/configparser.c"
4589
0
    break;
4590
4591
0
  case 427:
4592
0
#line 1488 "./util/configparser.y"
4593
0
        {
4594
0
    OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
4595
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4596
0
      yyerror("expected yes or no.");
4597
0
    else cfg_parser->cfg->so_reuseport =
4598
0
      (strcmp((yyvsp[0].str), "yes")==0);
4599
0
    free((yyvsp[0].str));
4600
0
  }
4601
0
#line 4602 "util/configparser.c"
4602
0
    break;
4603
4604
0
  case 428:
4605
0
#line 1498 "./util/configparser.y"
4606
0
        {
4607
0
    OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
4608
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4609
0
      yyerror("expected yes or no.");
4610
0
    else cfg_parser->cfg->ip_transparent =
4611
0
      (strcmp((yyvsp[0].str), "yes")==0);
4612
0
    free((yyvsp[0].str));
4613
0
  }
4614
0
#line 4615 "util/configparser.c"
4615
0
    break;
4616
4617
0
  case 429:
4618
0
#line 1508 "./util/configparser.y"
4619
0
        {
4620
0
    OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
4621
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4622
0
      yyerror("expected yes or no.");
4623
0
    else cfg_parser->cfg->ip_freebind =
4624
0
      (strcmp((yyvsp[0].str), "yes")==0);
4625
0
    free((yyvsp[0].str));
4626
0
  }
4627
0
#line 4628 "util/configparser.c"
4628
0
    break;
4629
4630
0
  case 430:
4631
0
#line 1518 "./util/configparser.y"
4632
0
        {
4633
0
    OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
4634
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4635
0
      yyerror("number expected");
4636
0
    else if (atoi((yyvsp[0].str)) > 63)
4637
0
      yyerror("value too large (max 63)");
4638
0
    else if (atoi((yyvsp[0].str)) < 0)
4639
0
      yyerror("value too small (min 0)");
4640
0
    else
4641
0
      cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
4642
0
    free((yyvsp[0].str));
4643
0
  }
4644
0
#line 4645 "util/configparser.c"
4645
0
    break;
4646
4647
0
  case 431:
4648
0
#line 1532 "./util/configparser.y"
4649
0
        {
4650
0
    OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
4651
0
    if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
4652
0
      yyerror("memory size expected");
4653
0
    free((yyvsp[0].str));
4654
0
  }
4655
0
#line 4656 "util/configparser.c"
4656
0
    break;
4657
4658
0
  case 432:
4659
0
#line 1540 "./util/configparser.y"
4660
0
        {
4661
0
    OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
4662
0
    if(atoi((yyvsp[0].str)) == 0)
4663
0
      yyerror("number expected");
4664
0
    else if (atoi((yyvsp[0].str)) < 12)
4665
0
      yyerror("edns buffer size too small");
4666
0
    else if (atoi((yyvsp[0].str)) > 65535)
4667
0
      cfg_parser->cfg->edns_buffer_size = 65535;
4668
0
    else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
4669
0
    free((yyvsp[0].str));
4670
0
  }
4671
0
#line 4672 "util/configparser.c"
4672
0
    break;
4673
4674
0
  case 433:
4675
0
#line 1553 "./util/configparser.y"
4676
0
        {
4677
0
    OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
4678
0
    if(atoi((yyvsp[0].str)) == 0)
4679
0
      yyerror("number expected");
4680
0
    else if (atoi((yyvsp[0].str)) < 4096)
4681
0
      yyerror("message buffer size too small (use 4096)");
4682
0
    else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
4683
0
    free((yyvsp[0].str));
4684
0
  }
4685
0
#line 4686 "util/configparser.c"
4686
0
    break;
4687
4688
0
  case 434:
4689
0
#line 1564 "./util/configparser.y"
4690
0
        {
4691
0
    OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
4692
0
    if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
4693
0
      yyerror("memory size expected");
4694
0
    free((yyvsp[0].str));
4695
0
  }
4696
0
#line 4697 "util/configparser.c"
4697
0
    break;
4698
4699
0
  case 435:
4700
0
#line 1572 "./util/configparser.y"
4701
0
        {
4702
0
    OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
4703
0
    if(atoi((yyvsp[0].str)) == 0) {
4704
0
      yyerror("number expected");
4705
0
    } else {
4706
0
      cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
4707
0
      if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
4708
0
        yyerror("must be a power of 2");
4709
0
    }
4710
0
    free((yyvsp[0].str));
4711
0
  }
4712
0
#line 4713 "util/configparser.c"
4713
0
    break;
4714
4715
0
  case 436:
4716
0
#line 1585 "./util/configparser.y"
4717
0
        {
4718
0
    OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
4719
0
    if(atoi((yyvsp[0].str)) == 0)
4720
0
      yyerror("number expected");
4721
0
    else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
4722
0
    free((yyvsp[0].str));
4723
0
  }
4724
0
#line 4725 "util/configparser.c"
4725
0
    break;
4726
4727
0
  case 437:
4728
0
#line 1594 "./util/configparser.y"
4729
0
        {
4730
0
    OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
4731
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4732
0
      yyerror("number expected");
4733
0
    else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
4734
0
    free((yyvsp[0].str));
4735
0
  }
4736
0
#line 4737 "util/configparser.c"
4737
0
    break;
4738
4739
0
  case 438:
4740
0
#line 1603 "./util/configparser.y"
4741
0
        {
4742
0
    OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
4743
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4744
0
      yyerror("number expected");
4745
0
    else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
4746
0
    free((yyvsp[0].str));
4747
0
  }
4748
0
#line 4749 "util/configparser.c"
4749
0
    break;
4750
4751
0
  case 439:
4752
0
#line 1612 "./util/configparser.y"
4753
0
        {
4754
0
    OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
4755
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4756
0
      yyerror("expected yes or no.");
4757
0
    else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
4758
0
    free((yyvsp[0].str));
4759
0
  }
4760
0
#line 4761 "util/configparser.c"
4761
0
    break;
4762
4763
0
  case 440:
4764
0
#line 1621 "./util/configparser.y"
4765
0
        {
4766
0
    OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
4767
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4768
0
      yyerror("expected yes or no.");
4769
0
    else cfg_parser->cfg->unblock_lan_zones =
4770
0
      (strcmp((yyvsp[0].str), "yes")==0);
4771
0
    free((yyvsp[0].str));
4772
0
  }
4773
0
#line 4774 "util/configparser.c"
4774
0
    break;
4775
4776
0
  case 441:
4777
0
#line 1631 "./util/configparser.y"
4778
0
        {
4779
0
    OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
4780
0
    if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4781
0
      yyerror("expected yes or no.");
4782
0
    else cfg_parser->cfg->insecure_lan_zones =
4783
0
      (strcmp((yyvsp[0].str), "yes")==0);
4784
0
    free((yyvsp[0].str));
4785
0
  }
4786
0
#line 4787 "util/configparser.c"
4787
0
    break;
4788
4789
0
  case 442:
4790
0
#line 1641 "./util/configparser.y"
4791
0
        {
4792
0
    OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
4793
0
    if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
4794
0
      yyerror("memory size expected");
4795
0
    free((yyvsp[0].str));
4796
0
  }
4797
0
#line 4798 "util/configparser.c"
4798
0
    break;
4799
4800
0
  case 443:
4801
0
#line 1649 "./util/configparser.y"
4802
0
        {
4803
0
    OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
4804
0
    if(atoi((yyvsp[0].str)) == 0) {
4805
0
      yyerror("number expected");
4806
0
    } else {
4807
0
      cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
4808
0
      if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
4809
0
        yyerror("must be a power of 2");
4810
0
    }
4811
0
    free((yyvsp[0].str));
4812
0
  }
4813
0
#line 4814 "util/configparser.c"
4814
0
    break;
4815
4816
0
  case 444:
4817
0
#line 1662 "./util/configparser.y"
4818
0
        {
4819
0
    OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
4820
0
    if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4821
0
      yyerror("number expected");
4822
0
    else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
4823
0
    free((yyvsp[0].str));
4824
0
  }
4825
0
#line 4826 "util/configparser.c"
4826
0
    break;
4827
4828
0
  case 445:
4829
0
#line 1671 "./util/configparser.y"
4830
0
        {
4831
0
    OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
4832
0
    verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
4833
0
      "removed, use infra-host-ttl)", (yyvsp[0].str));
4834
0
    free((yyvsp[0].str));
4835
0
  }
4836
0
#line 4837 "util/configparser.c"
4837
0
    break;
4838
4839
0
  case 446:
4840
0
#line 1679 "./util/configparser.y"
4841
0
        {
4842
0
    OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
4843
0
    if(atoi((yyvsp[0].str)) == 0)
4844
0
      yyerror("number expected");
4845
0
    else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
4846
0
    free((yyvsp[0].str));
4847
0
  }
4848
0
#line 4849 "util/configparser.c"
4849
0
    break;
4850
4851
0
  case 447:
4852
0
#line 1688 "./util/configparser.y"
4853
0
        {
4854
0
    OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
4855
0
    verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
4856
0
      "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
4857
0
    free((yyvsp[0].str));
4858
0
  }
4859
0
#line 4860 "util/configparser.c"
4860
0
    break;
4861
4862
0
  case 448:
4863
0
#line 1696 "./util/configparser.y"
4864
0
        {
4865
0
    OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
4866
0
    if(atoi((yyvsp[0].str)) == 0) {
4867