ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 7795
Committed: Mon Oct 17 19:30:40 2016 UTC (8 years, 10 months ago) by michael
Content type: text/x-csrc
File size: 223739 byte(s)
Log Message:
- Rebuilt parser files

File Contents

# Content
1 /* A Bison parser, made by GNU Bison 3.0.4. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.4"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 #line 28 "conf_parser.y" /* yacc.c:339 */
66
67
68 #include "config.h"
69 #include "stdinc.h"
70 #include "ircd.h"
71 #include "list.h"
72 #include "conf.h"
73 #include "conf_class.h"
74 #include "conf_cluster.h"
75 #include "conf_gecos.h"
76 #include "conf_pseudo.h"
77 #include "conf_resv.h"
78 #include "conf_service.h"
79 #include "conf_shared.h"
80 #include "event.h"
81 #include "id.h"
82 #include "log.h"
83 #include "irc_string.h"
84 #include "memory.h"
85 #include "modules.h"
86 #include "server.h"
87 #include "hostmask.h"
88 #include "listener.h"
89 #include "user.h"
90 #include "motd.h"
91
92 int yylex(void);
93
94 static struct
95 {
96 struct
97 {
98 dlink_list list;
99 } mask,
100 leaf,
101 hub;
102
103 struct
104 {
105 char buf[IRCD_BUFSIZE];
106 } name,
107 nick,
108 user,
109 host,
110 addr,
111 bind,
112 file,
113 ciph,
114 cert,
115 rpass,
116 spass,
117 whois,
118 class,
119 target,
120 prepend,
121 command;
122
123 struct
124 {
125 unsigned int value;
126 } flags,
127 modes,
128 size,
129 type,
130 port,
131 aftype,
132 ping_freq,
133 max_perip,
134 con_freq,
135 min_idle,
136 max_idle,
137 max_total,
138 max_global,
139 max_local,
140 max_sendq,
141 max_recvq,
142 max_channels,
143 cidr_bitlen_ipv4,
144 cidr_bitlen_ipv6,
145 number_per_cidr;
146 } block_state;
147
148 static void
149 reset_block_state(void)
150 {
151 dlink_node *node = NULL, *node_next = NULL;
152
153 DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154 {
155 xfree(node->data);
156 dlinkDelete(node, &block_state.mask.list);
157 free_dlink_node(node);
158 }
159
160 DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161 {
162 xfree(node->data);
163 dlinkDelete(node, &block_state.leaf.list);
164 free_dlink_node(node);
165 }
166
167 DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168 {
169 xfree(node->data);
170 dlinkDelete(node, &block_state.hub.list);
171 free_dlink_node(node);
172 }
173
174 memset(&block_state, 0, sizeof(block_state));
175 }
176
177
178 #line 179 "conf_parser.c" /* yacc.c:339 */
179
180 # ifndef YY_NULLPTR
181 # if defined __cplusplus && 201103L <= __cplusplus
182 # define YY_NULLPTR nullptr
183 # else
184 # define YY_NULLPTR 0
185 # endif
186 # endif
187
188 /* Enabling verbose error messages. */
189 #ifdef YYERROR_VERBOSE
190 # undef YYERROR_VERBOSE
191 # define YYERROR_VERBOSE 1
192 #else
193 # define YYERROR_VERBOSE 0
194 #endif
195
196 /* In a future release of Bison, this section will be replaced
197 by #include "y.tab.h". */
198 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
199 # define YY_YY_CONF_PARSER_H_INCLUDED
200 /* Debug traces. */
201 #ifndef YYDEBUG
202 # define YYDEBUG 0
203 #endif
204 #if YYDEBUG
205 extern int yydebug;
206 #endif
207
208 /* Token type. */
209 #ifndef YYTOKENTYPE
210 # define YYTOKENTYPE
211 enum yytokentype
212 {
213 ACCEPT_PASSWORD = 258,
214 ADMIN = 259,
215 AFTYPE = 260,
216 ANTI_NICK_FLOOD = 261,
217 ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 AUTOCONN = 263,
219 AWAY_COUNT = 264,
220 AWAY_TIME = 265,
221 BYTES = 266,
222 KBYTES = 267,
223 MBYTES = 268,
224 CALLER_ID_WAIT = 269,
225 CAN_FLOOD = 270,
226 CHANNEL = 271,
227 CHECK_CACHE = 272,
228 CIDR_BITLEN_IPV4 = 273,
229 CIDR_BITLEN_IPV6 = 274,
230 CLASS = 275,
231 CLOSE = 276,
232 CONNECT = 277,
233 CONNECTFREQ = 278,
234 CYCLE_ON_HOST_CHANGE = 279,
235 DEFAULT_FLOODCOUNT = 280,
236 DEFAULT_JOIN_FLOOD_COUNT = 281,
237 DEFAULT_JOIN_FLOOD_TIME = 282,
238 DEFAULT_MAX_CLIENTS = 283,
239 DENY = 284,
240 DESCRIPTION = 285,
241 DIE = 286,
242 DISABLE_AUTH = 287,
243 DISABLE_FAKE_CHANNELS = 288,
244 DISABLE_REMOTE_COMMANDS = 289,
245 DLINE_MIN_CIDR = 290,
246 DLINE_MIN_CIDR6 = 291,
247 DOTS_IN_IDENT = 292,
248 EMAIL = 293,
249 ENCRYPTED = 294,
250 EXCEED_LIMIT = 295,
251 EXEMPT = 296,
252 FAILED_OPER_NOTICE = 297,
253 FLATTEN_LINKS = 298,
254 FLATTEN_LINKS_DELAY = 299,
255 FLATTEN_LINKS_FILE = 300,
256 GECOS = 301,
257 GENERAL = 302,
258 HIDDEN = 303,
259 HIDDEN_NAME = 304,
260 HIDE_CHANS = 305,
261 HIDE_IDLE = 306,
262 HIDE_IDLE_FROM_OPERS = 307,
263 HIDE_SERVER_IPS = 308,
264 HIDE_SERVERS = 309,
265 HIDE_SERVICES = 310,
266 HOST = 311,
267 HUB = 312,
268 HUB_MASK = 313,
269 IGNORE_BOGUS_TS = 314,
270 INVISIBLE_ON_CONNECT = 315,
271 INVITE_CLIENT_COUNT = 316,
272 INVITE_CLIENT_TIME = 317,
273 INVITE_DELAY_CHANNEL = 318,
274 INVITE_EXPIRE_TIME = 319,
275 IP = 320,
276 IRCD_AUTH = 321,
277 IRCD_FLAGS = 322,
278 IRCD_SID = 323,
279 JOIN = 324,
280 KILL = 325,
281 KILL_CHASE_TIME_LIMIT = 326,
282 KLINE = 327,
283 KLINE_EXEMPT = 328,
284 KLINE_MIN_CIDR = 329,
285 KLINE_MIN_CIDR6 = 330,
286 KNOCK_CLIENT_COUNT = 331,
287 KNOCK_CLIENT_TIME = 332,
288 KNOCK_DELAY_CHANNEL = 333,
289 LEAF_MASK = 334,
290 LIBGEOIP_DATABASE_OPTIONS = 335,
291 LIBGEOIP_IPV4_DATABASE_FILE = 336,
292 LIBGEOIP_IPV6_DATABASE_FILE = 337,
293 LISTEN = 338,
294 MASK = 339,
295 MAX_ACCEPT = 340,
296 MAX_BANS = 341,
297 MAX_CHANNELS = 342,
298 MAX_GLOBAL = 343,
299 MAX_IDLE = 344,
300 MAX_INVITES = 345,
301 MAX_LOCAL = 346,
302 MAX_NICK_CHANGES = 347,
303 MAX_NICK_LENGTH = 348,
304 MAX_NICK_TIME = 349,
305 MAX_NUMBER = 350,
306 MAX_TARGETS = 351,
307 MAX_TOPIC_LENGTH = 352,
308 MAX_WATCH = 353,
309 MEMORY_CACHE = 354,
310 MIN_IDLE = 355,
311 MIN_NONWILDCARD = 356,
312 MIN_NONWILDCARD_SIMPLE = 357,
313 MMAP_CACHE = 358,
314 MODULE = 359,
315 MODULES = 360,
316 MOTD = 361,
317 NAME = 362,
318 NEED_IDENT = 363,
319 NEED_PASSWORD = 364,
320 NETWORK_DESC = 365,
321 NETWORK_NAME = 366,
322 NICK = 367,
323 NO_OPER_FLOOD = 368,
324 NO_TILDE = 369,
325 NUMBER = 370,
326 NUMBER_PER_CIDR = 371,
327 NUMBER_PER_IP = 372,
328 OPER_ONLY_UMODES = 373,
329 OPER_UMODES = 374,
330 OPERATOR = 375,
331 OPERS_BYPASS_CALLERID = 376,
332 PACE_WAIT = 377,
333 PACE_WAIT_SIMPLE = 378,
334 PASSWORD = 379,
335 PATH = 380,
336 PING_COOKIE = 381,
337 PING_TIME = 382,
338 PORT = 383,
339 QSTRING = 384,
340 RANDOM_IDLE = 385,
341 REASON = 386,
342 REDIRPORT = 387,
343 REDIRSERV = 388,
344 REHASH = 389,
345 REMOTE = 390,
346 REMOTEBAN = 391,
347 RESV = 392,
348 RESV_EXEMPT = 393,
349 RSA_PRIVATE_KEY_FILE = 394,
350 SECONDS = 395,
351 MINUTES = 396,
352 HOURS = 397,
353 DAYS = 398,
354 WEEKS = 399,
355 MONTHS = 400,
356 YEARS = 401,
357 SEND_PASSWORD = 402,
358 SENDQ = 403,
359 SERVERHIDE = 404,
360 SERVERINFO = 405,
361 SHORT_MOTD = 406,
362 SPOOF = 407,
363 SPOOF_NOTICE = 408,
364 SQUIT = 409,
365 SSL_CERTIFICATE_FILE = 410,
366 SSL_CERTIFICATE_FINGERPRINT = 411,
367 SSL_CONNECTION_REQUIRED = 412,
368 SSL_DH_ELLIPTIC_CURVE = 413,
369 SSL_DH_PARAM_FILE = 414,
370 SSL_MESSAGE_DIGEST_ALGORITHM = 415,
371 STANDARD = 416,
372 STATS_E_DISABLED = 417,
373 STATS_I_OPER_ONLY = 418,
374 STATS_K_OPER_ONLY = 419,
375 STATS_M_OPER_ONLY = 420,
376 STATS_O_OPER_ONLY = 421,
377 STATS_P_OPER_ONLY = 422,
378 STATS_U_OPER_ONLY = 423,
379 T_ALL = 424,
380 T_BOTS = 425,
381 T_CALLERID = 426,
382 T_CCONN = 427,
383 T_COMMAND = 428,
384 T_CLUSTER = 429,
385 T_DEAF = 430,
386 T_DEBUG = 431,
387 T_DLINE = 432,
388 T_EXTERNAL = 433,
389 T_FARCONNECT = 434,
390 T_FILE = 435,
391 T_FULL = 436,
392 T_GLOBOPS = 437,
393 T_INVISIBLE = 438,
394 T_IPV4 = 439,
395 T_IPV6 = 440,
396 T_LOCOPS = 441,
397 T_LOG = 442,
398 T_NCHANGE = 443,
399 T_NONONREG = 444,
400 T_OPME = 445,
401 T_PREPEND = 446,
402 T_PSEUDO = 447,
403 T_RECVQ = 448,
404 T_REJ = 449,
405 T_RESTART = 450,
406 T_SERVER = 451,
407 T_SERVICE = 452,
408 T_SERVNOTICE = 453,
409 T_SET = 454,
410 T_SHARED = 455,
411 T_SIZE = 456,
412 T_SKILL = 457,
413 T_SOFTCALLERID = 458,
414 T_SPY = 459,
415 T_SSL = 460,
416 T_SSL_CIPHER_LIST = 461,
417 T_TARGET = 462,
418 T_UMODES = 463,
419 T_UNAUTH = 464,
420 T_UNDLINE = 465,
421 T_UNLIMITED = 466,
422 T_UNRESV = 467,
423 T_UNXLINE = 468,
424 T_WALLOP = 469,
425 T_WALLOPS = 470,
426 T_WEBIRC = 471,
427 TBOOL = 472,
428 THROTTLE_COUNT = 473,
429 THROTTLE_TIME = 474,
430 TKLINE_EXPIRE_NOTICES = 475,
431 TMASKED = 476,
432 TS_MAX_DELTA = 477,
433 TS_WARN_DELTA = 478,
434 TWODOTS = 479,
435 TYPE = 480,
436 UNKLINE = 481,
437 USE_LOGGING = 482,
438 USER = 483,
439 VHOST = 484,
440 VHOST6 = 485,
441 WARN_NO_CONNECT_BLOCK = 486,
442 WHOIS = 487,
443 WHOWAS_HISTORY_LENGTH = 488,
444 XLINE = 489,
445 XLINE_EXEMPT = 490
446 };
447 #endif
448 /* Tokens. */
449 #define ACCEPT_PASSWORD 258
450 #define ADMIN 259
451 #define AFTYPE 260
452 #define ANTI_NICK_FLOOD 261
453 #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
454 #define AUTOCONN 263
455 #define AWAY_COUNT 264
456 #define AWAY_TIME 265
457 #define BYTES 266
458 #define KBYTES 267
459 #define MBYTES 268
460 #define CALLER_ID_WAIT 269
461 #define CAN_FLOOD 270
462 #define CHANNEL 271
463 #define CHECK_CACHE 272
464 #define CIDR_BITLEN_IPV4 273
465 #define CIDR_BITLEN_IPV6 274
466 #define CLASS 275
467 #define CLOSE 276
468 #define CONNECT 277
469 #define CONNECTFREQ 278
470 #define CYCLE_ON_HOST_CHANGE 279
471 #define DEFAULT_FLOODCOUNT 280
472 #define DEFAULT_JOIN_FLOOD_COUNT 281
473 #define DEFAULT_JOIN_FLOOD_TIME 282
474 #define DEFAULT_MAX_CLIENTS 283
475 #define DENY 284
476 #define DESCRIPTION 285
477 #define DIE 286
478 #define DISABLE_AUTH 287
479 #define DISABLE_FAKE_CHANNELS 288
480 #define DISABLE_REMOTE_COMMANDS 289
481 #define DLINE_MIN_CIDR 290
482 #define DLINE_MIN_CIDR6 291
483 #define DOTS_IN_IDENT 292
484 #define EMAIL 293
485 #define ENCRYPTED 294
486 #define EXCEED_LIMIT 295
487 #define EXEMPT 296
488 #define FAILED_OPER_NOTICE 297
489 #define FLATTEN_LINKS 298
490 #define FLATTEN_LINKS_DELAY 299
491 #define FLATTEN_LINKS_FILE 300
492 #define GECOS 301
493 #define GENERAL 302
494 #define HIDDEN 303
495 #define HIDDEN_NAME 304
496 #define HIDE_CHANS 305
497 #define HIDE_IDLE 306
498 #define HIDE_IDLE_FROM_OPERS 307
499 #define HIDE_SERVER_IPS 308
500 #define HIDE_SERVERS 309
501 #define HIDE_SERVICES 310
502 #define HOST 311
503 #define HUB 312
504 #define HUB_MASK 313
505 #define IGNORE_BOGUS_TS 314
506 #define INVISIBLE_ON_CONNECT 315
507 #define INVITE_CLIENT_COUNT 316
508 #define INVITE_CLIENT_TIME 317
509 #define INVITE_DELAY_CHANNEL 318
510 #define INVITE_EXPIRE_TIME 319
511 #define IP 320
512 #define IRCD_AUTH 321
513 #define IRCD_FLAGS 322
514 #define IRCD_SID 323
515 #define JOIN 324
516 #define KILL 325
517 #define KILL_CHASE_TIME_LIMIT 326
518 #define KLINE 327
519 #define KLINE_EXEMPT 328
520 #define KLINE_MIN_CIDR 329
521 #define KLINE_MIN_CIDR6 330
522 #define KNOCK_CLIENT_COUNT 331
523 #define KNOCK_CLIENT_TIME 332
524 #define KNOCK_DELAY_CHANNEL 333
525 #define LEAF_MASK 334
526 #define LIBGEOIP_DATABASE_OPTIONS 335
527 #define LIBGEOIP_IPV4_DATABASE_FILE 336
528 #define LIBGEOIP_IPV6_DATABASE_FILE 337
529 #define LISTEN 338
530 #define MASK 339
531 #define MAX_ACCEPT 340
532 #define MAX_BANS 341
533 #define MAX_CHANNELS 342
534 #define MAX_GLOBAL 343
535 #define MAX_IDLE 344
536 #define MAX_INVITES 345
537 #define MAX_LOCAL 346
538 #define MAX_NICK_CHANGES 347
539 #define MAX_NICK_LENGTH 348
540 #define MAX_NICK_TIME 349
541 #define MAX_NUMBER 350
542 #define MAX_TARGETS 351
543 #define MAX_TOPIC_LENGTH 352
544 #define MAX_WATCH 353
545 #define MEMORY_CACHE 354
546 #define MIN_IDLE 355
547 #define MIN_NONWILDCARD 356
548 #define MIN_NONWILDCARD_SIMPLE 357
549 #define MMAP_CACHE 358
550 #define MODULE 359
551 #define MODULES 360
552 #define MOTD 361
553 #define NAME 362
554 #define NEED_IDENT 363
555 #define NEED_PASSWORD 364
556 #define NETWORK_DESC 365
557 #define NETWORK_NAME 366
558 #define NICK 367
559 #define NO_OPER_FLOOD 368
560 #define NO_TILDE 369
561 #define NUMBER 370
562 #define NUMBER_PER_CIDR 371
563 #define NUMBER_PER_IP 372
564 #define OPER_ONLY_UMODES 373
565 #define OPER_UMODES 374
566 #define OPERATOR 375
567 #define OPERS_BYPASS_CALLERID 376
568 #define PACE_WAIT 377
569 #define PACE_WAIT_SIMPLE 378
570 #define PASSWORD 379
571 #define PATH 380
572 #define PING_COOKIE 381
573 #define PING_TIME 382
574 #define PORT 383
575 #define QSTRING 384
576 #define RANDOM_IDLE 385
577 #define REASON 386
578 #define REDIRPORT 387
579 #define REDIRSERV 388
580 #define REHASH 389
581 #define REMOTE 390
582 #define REMOTEBAN 391
583 #define RESV 392
584 #define RESV_EXEMPT 393
585 #define RSA_PRIVATE_KEY_FILE 394
586 #define SECONDS 395
587 #define MINUTES 396
588 #define HOURS 397
589 #define DAYS 398
590 #define WEEKS 399
591 #define MONTHS 400
592 #define YEARS 401
593 #define SEND_PASSWORD 402
594 #define SENDQ 403
595 #define SERVERHIDE 404
596 #define SERVERINFO 405
597 #define SHORT_MOTD 406
598 #define SPOOF 407
599 #define SPOOF_NOTICE 408
600 #define SQUIT 409
601 #define SSL_CERTIFICATE_FILE 410
602 #define SSL_CERTIFICATE_FINGERPRINT 411
603 #define SSL_CONNECTION_REQUIRED 412
604 #define SSL_DH_ELLIPTIC_CURVE 413
605 #define SSL_DH_PARAM_FILE 414
606 #define SSL_MESSAGE_DIGEST_ALGORITHM 415
607 #define STANDARD 416
608 #define STATS_E_DISABLED 417
609 #define STATS_I_OPER_ONLY 418
610 #define STATS_K_OPER_ONLY 419
611 #define STATS_M_OPER_ONLY 420
612 #define STATS_O_OPER_ONLY 421
613 #define STATS_P_OPER_ONLY 422
614 #define STATS_U_OPER_ONLY 423
615 #define T_ALL 424
616 #define T_BOTS 425
617 #define T_CALLERID 426
618 #define T_CCONN 427
619 #define T_COMMAND 428
620 #define T_CLUSTER 429
621 #define T_DEAF 430
622 #define T_DEBUG 431
623 #define T_DLINE 432
624 #define T_EXTERNAL 433
625 #define T_FARCONNECT 434
626 #define T_FILE 435
627 #define T_FULL 436
628 #define T_GLOBOPS 437
629 #define T_INVISIBLE 438
630 #define T_IPV4 439
631 #define T_IPV6 440
632 #define T_LOCOPS 441
633 #define T_LOG 442
634 #define T_NCHANGE 443
635 #define T_NONONREG 444
636 #define T_OPME 445
637 #define T_PREPEND 446
638 #define T_PSEUDO 447
639 #define T_RECVQ 448
640 #define T_REJ 449
641 #define T_RESTART 450
642 #define T_SERVER 451
643 #define T_SERVICE 452
644 #define T_SERVNOTICE 453
645 #define T_SET 454
646 #define T_SHARED 455
647 #define T_SIZE 456
648 #define T_SKILL 457
649 #define T_SOFTCALLERID 458
650 #define T_SPY 459
651 #define T_SSL 460
652 #define T_SSL_CIPHER_LIST 461
653 #define T_TARGET 462
654 #define T_UMODES 463
655 #define T_UNAUTH 464
656 #define T_UNDLINE 465
657 #define T_UNLIMITED 466
658 #define T_UNRESV 467
659 #define T_UNXLINE 468
660 #define T_WALLOP 469
661 #define T_WALLOPS 470
662 #define T_WEBIRC 471
663 #define TBOOL 472
664 #define THROTTLE_COUNT 473
665 #define THROTTLE_TIME 474
666 #define TKLINE_EXPIRE_NOTICES 475
667 #define TMASKED 476
668 #define TS_MAX_DELTA 477
669 #define TS_WARN_DELTA 478
670 #define TWODOTS 479
671 #define TYPE 480
672 #define UNKLINE 481
673 #define USE_LOGGING 482
674 #define USER 483
675 #define VHOST 484
676 #define VHOST6 485
677 #define WARN_NO_CONNECT_BLOCK 486
678 #define WHOIS 487
679 #define WHOWAS_HISTORY_LENGTH 488
680 #define XLINE 489
681 #define XLINE_EXEMPT 490
682
683 /* Value type. */
684 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
685
686 union YYSTYPE
687 {
688 #line 141 "conf_parser.y" /* yacc.c:355 */
689
690 int number;
691 char *string;
692
693 #line 694 "conf_parser.c" /* yacc.c:355 */
694 };
695
696 typedef union YYSTYPE YYSTYPE;
697 # define YYSTYPE_IS_TRIVIAL 1
698 # define YYSTYPE_IS_DECLARED 1
699 #endif
700
701
702 extern YYSTYPE yylval;
703
704 int yyparse (void);
705
706 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
707
708 /* Copy the second part of user declarations. */
709
710 #line 711 "conf_parser.c" /* yacc.c:358 */
711
712 #ifdef short
713 # undef short
714 #endif
715
716 #ifdef YYTYPE_UINT8
717 typedef YYTYPE_UINT8 yytype_uint8;
718 #else
719 typedef unsigned char yytype_uint8;
720 #endif
721
722 #ifdef YYTYPE_INT8
723 typedef YYTYPE_INT8 yytype_int8;
724 #else
725 typedef signed char yytype_int8;
726 #endif
727
728 #ifdef YYTYPE_UINT16
729 typedef YYTYPE_UINT16 yytype_uint16;
730 #else
731 typedef unsigned short int yytype_uint16;
732 #endif
733
734 #ifdef YYTYPE_INT16
735 typedef YYTYPE_INT16 yytype_int16;
736 #else
737 typedef short int yytype_int16;
738 #endif
739
740 #ifndef YYSIZE_T
741 # ifdef __SIZE_TYPE__
742 # define YYSIZE_T __SIZE_TYPE__
743 # elif defined size_t
744 # define YYSIZE_T size_t
745 # elif ! defined YYSIZE_T
746 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
747 # define YYSIZE_T size_t
748 # else
749 # define YYSIZE_T unsigned int
750 # endif
751 #endif
752
753 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
754
755 #ifndef YY_
756 # if defined YYENABLE_NLS && YYENABLE_NLS
757 # if ENABLE_NLS
758 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
759 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
760 # endif
761 # endif
762 # ifndef YY_
763 # define YY_(Msgid) Msgid
764 # endif
765 #endif
766
767 #ifndef YY_ATTRIBUTE
768 # if (defined __GNUC__ \
769 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
770 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
771 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
772 # else
773 # define YY_ATTRIBUTE(Spec) /* empty */
774 # endif
775 #endif
776
777 #ifndef YY_ATTRIBUTE_PURE
778 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
779 #endif
780
781 #ifndef YY_ATTRIBUTE_UNUSED
782 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
783 #endif
784
785 #if !defined _Noreturn \
786 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
787 # if defined _MSC_VER && 1200 <= _MSC_VER
788 # define _Noreturn __declspec (noreturn)
789 # else
790 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
791 # endif
792 #endif
793
794 /* Suppress unused-variable warnings by "using" E. */
795 #if ! defined lint || defined __GNUC__
796 # define YYUSE(E) ((void) (E))
797 #else
798 # define YYUSE(E) /* empty */
799 #endif
800
801 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
802 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
803 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
804 _Pragma ("GCC diagnostic push") \
805 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
806 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
807 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
808 _Pragma ("GCC diagnostic pop")
809 #else
810 # define YY_INITIAL_VALUE(Value) Value
811 #endif
812 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
813 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
814 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
815 #endif
816 #ifndef YY_INITIAL_VALUE
817 # define YY_INITIAL_VALUE(Value) /* Nothing. */
818 #endif
819
820
821 #if ! defined yyoverflow || YYERROR_VERBOSE
822
823 /* The parser invokes alloca or malloc; define the necessary symbols. */
824
825 # ifdef YYSTACK_USE_ALLOCA
826 # if YYSTACK_USE_ALLOCA
827 # ifdef __GNUC__
828 # define YYSTACK_ALLOC __builtin_alloca
829 # elif defined __BUILTIN_VA_ARG_INCR
830 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
831 # elif defined _AIX
832 # define YYSTACK_ALLOC __alloca
833 # elif defined _MSC_VER
834 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
835 # define alloca _alloca
836 # else
837 # define YYSTACK_ALLOC alloca
838 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
839 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
840 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
841 # ifndef EXIT_SUCCESS
842 # define EXIT_SUCCESS 0
843 # endif
844 # endif
845 # endif
846 # endif
847 # endif
848
849 # ifdef YYSTACK_ALLOC
850 /* Pacify GCC's 'empty if-body' warning. */
851 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
852 # ifndef YYSTACK_ALLOC_MAXIMUM
853 /* The OS might guarantee only one guard page at the bottom of the stack,
854 and a page size can be as small as 4096 bytes. So we cannot safely
855 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
856 to allow for a few compiler-allocated temporary stack slots. */
857 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
858 # endif
859 # else
860 # define YYSTACK_ALLOC YYMALLOC
861 # define YYSTACK_FREE YYFREE
862 # ifndef YYSTACK_ALLOC_MAXIMUM
863 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
864 # endif
865 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
866 && ! ((defined YYMALLOC || defined malloc) \
867 && (defined YYFREE || defined free)))
868 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
869 # ifndef EXIT_SUCCESS
870 # define EXIT_SUCCESS 0
871 # endif
872 # endif
873 # ifndef YYMALLOC
874 # define YYMALLOC malloc
875 # if ! defined malloc && ! defined EXIT_SUCCESS
876 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
877 # endif
878 # endif
879 # ifndef YYFREE
880 # define YYFREE free
881 # if ! defined free && ! defined EXIT_SUCCESS
882 void free (void *); /* INFRINGES ON USER NAME SPACE */
883 # endif
884 # endif
885 # endif
886 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
887
888
889 #if (! defined yyoverflow \
890 && (! defined __cplusplus \
891 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
892
893 /* A type that is properly aligned for any stack member. */
894 union yyalloc
895 {
896 yytype_int16 yyss_alloc;
897 YYSTYPE yyvs_alloc;
898 };
899
900 /* The size of the maximum gap between one aligned stack and the next. */
901 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
902
903 /* The size of an array large to enough to hold all stacks, each with
904 N elements. */
905 # define YYSTACK_BYTES(N) \
906 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
907 + YYSTACK_GAP_MAXIMUM)
908
909 # define YYCOPY_NEEDED 1
910
911 /* Relocate STACK from its old location to the new one. The
912 local variables YYSIZE and YYSTACKSIZE give the old and new number of
913 elements in the stack, and YYPTR gives the new location of the
914 stack. Advance YYPTR to a properly aligned location for the next
915 stack. */
916 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
917 do \
918 { \
919 YYSIZE_T yynewbytes; \
920 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
921 Stack = &yyptr->Stack_alloc; \
922 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
923 yyptr += yynewbytes / sizeof (*yyptr); \
924 } \
925 while (0)
926
927 #endif
928
929 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
930 /* Copy COUNT objects from SRC to DST. The source and destination do
931 not overlap. */
932 # ifndef YYCOPY
933 # if defined __GNUC__ && 1 < __GNUC__
934 # define YYCOPY(Dst, Src, Count) \
935 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
936 # else
937 # define YYCOPY(Dst, Src, Count) \
938 do \
939 { \
940 YYSIZE_T yyi; \
941 for (yyi = 0; yyi < (Count); yyi++) \
942 (Dst)[yyi] = (Src)[yyi]; \
943 } \
944 while (0)
945 # endif
946 # endif
947 #endif /* !YYCOPY_NEEDED */
948
949 /* YYFINAL -- State number of the termination state. */
950 #define YYFINAL 2
951 /* YYLAST -- Last index in YYTABLE. */
952 #define YYLAST 1363
953
954 /* YYNTOKENS -- Number of terminals. */
955 #define YYNTOKENS 242
956 /* YYNNTS -- Number of nonterminals. */
957 #define YYNNTS 300
958 /* YYNRULES -- Number of rules. */
959 #define YYNRULES 679
960 /* YYNSTATES -- Number of states. */
961 #define YYNSTATES 1337
962
963 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
964 by yylex, with out-of-bounds checking. */
965 #define YYUNDEFTOK 2
966 #define YYMAXUTOK 490
967
968 #define YYTRANSLATE(YYX) \
969 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
970
971 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
972 as returned by yylex, without out-of-bounds checking. */
973 static const yytype_uint8 yytranslate[] =
974 {
975 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
979 2, 2, 2, 2, 240, 2, 2, 2, 2, 2,
980 2, 2, 2, 2, 2, 2, 2, 2, 241, 236,
981 2, 239, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
985 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
986 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
987 2, 2, 2, 238, 2, 237, 2, 2, 2, 2,
988 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
989 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
990 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
991 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
992 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
993 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
994 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
995 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
996 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
997 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
998 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
999 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1000 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1001 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1002 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1003 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1004 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1005 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1006 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1007 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1008 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1009 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1010 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1011 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1012 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1013 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1014 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1015 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1016 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1017 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1018 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1019 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1020 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1021 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1022 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1023 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1024 235
1025 };
1026
1027 #if YYDEBUG
1028 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1029 static const yytype_uint16 yyrline[] =
1030 {
1031 0, 380, 380, 381, 384, 385, 386, 387, 388, 389,
1032 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
1033 400, 401, 402, 403, 404, 405, 406, 407, 411, 411,
1034 412, 413, 414, 415, 416, 417, 418, 419, 422, 422,
1035 423, 424, 425, 426, 433, 435, 435, 436, 436, 436,
1036 438, 444, 454, 456, 456, 457, 458, 459, 460, 461,
1037 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
1038 472, 473, 474, 475, 476, 477, 480, 489, 498, 507,
1039 516, 525, 535, 534, 540, 540, 541, 547, 553, 559,
1040 567, 582, 597, 612, 627, 637, 651, 660, 688, 716,
1041 741, 763, 785, 795, 797, 797, 798, 799, 800, 801,
1042 803, 812, 821, 835, 834, 852, 852, 853, 853, 853,
1043 855, 861, 872, 871, 890, 890, 891, 891, 891, 891,
1044 891, 893, 899, 905, 911, 933, 934, 934, 936, 936,
1045 937, 939, 946, 946, 959, 960, 962, 962, 963, 963,
1046 965, 973, 976, 982, 981, 987, 987, 988, 992, 996,
1047 1000, 1004, 1008, 1012, 1016, 1027, 1026, 1087, 1087, 1088,
1048 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
1049 1100, 1106, 1112, 1118, 1124, 1135, 1141, 1152, 1159, 1158,
1050 1164, 1164, 1165, 1169, 1173, 1177, 1181, 1185, 1189, 1193,
1051 1197, 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229, 1233,
1052 1237, 1241, 1245, 1249, 1256, 1255, 1261, 1261, 1262, 1266,
1053 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302, 1306,
1054 1310, 1314, 1318, 1322, 1326, 1330, 1334, 1338, 1342, 1346,
1055 1350, 1354, 1358, 1362, 1366, 1370, 1374, 1385, 1384, 1440,
1056 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
1057 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1459, 1465,
1058 1471, 1477, 1483, 1489, 1495, 1501, 1507, 1513, 1520, 1526,
1059 1532, 1538, 1547, 1557, 1556, 1562, 1562, 1563, 1567, 1578,
1060 1577, 1584, 1583, 1588, 1588, 1589, 1593, 1597, 1603, 1603,
1061 1604, 1604, 1604, 1604, 1604, 1606, 1606, 1608, 1608, 1610,
1062 1623, 1640, 1646, 1657, 1656, 1702, 1702, 1703, 1704, 1705,
1063 1706, 1707, 1708, 1709, 1710, 1711, 1713, 1719, 1725, 1731,
1064 1743, 1742, 1748, 1748, 1749, 1753, 1757, 1761, 1765, 1769,
1065 1773, 1777, 1781, 1785, 1791, 1805, 1814, 1828, 1827, 1842,
1066 1842, 1843, 1843, 1843, 1843, 1845, 1851, 1857, 1867, 1869,
1067 1869, 1870, 1870, 1872, 1889, 1888, 1911, 1911, 1912, 1912,
1068 1912, 1912, 1914, 1920, 1940, 1939, 1945, 1945, 1946, 1950,
1069 1954, 1958, 1962, 1966, 1970, 1974, 1978, 1982, 1993, 1992,
1070 2011, 2011, 2012, 2012, 2012, 2014, 2021, 2020, 2026, 2026,
1071 2027, 2031, 2035, 2039, 2043, 2047, 2051, 2055, 2059, 2063,
1072 2074, 2073, 2145, 2145, 2146, 2147, 2148, 2149, 2150, 2151,
1073 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2162,
1074 2168, 2174, 2180, 2193, 2206, 2212, 2218, 2222, 2229, 2228,
1075 2233, 2233, 2234, 2238, 2244, 2255, 2261, 2267, 2273, 2289,
1076 2288, 2314, 2314, 2315, 2315, 2315, 2317, 2337, 2348, 2347,
1077 2374, 2374, 2375, 2375, 2375, 2377, 2383, 2393, 2395, 2395,
1078 2396, 2396, 2398, 2416, 2415, 2436, 2436, 2437, 2437, 2437,
1079 2439, 2445, 2455, 2457, 2457, 2458, 2459, 2460, 2461, 2462,
1080 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472,
1081 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
1082 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492,
1083 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502,
1084 2503, 2504, 2507, 2512, 2517, 2522, 2527, 2533, 2538, 2543,
1085 2548, 2553, 2558, 2563, 2568, 2573, 2578, 2583, 2588, 2593,
1086 2598, 2603, 2609, 2614, 2619, 2624, 2629, 2634, 2639, 2644,
1087 2647, 2652, 2655, 2660, 2665, 2670, 2675, 2680, 2685, 2690,
1088 2695, 2700, 2705, 2710, 2715, 2721, 2720, 2725, 2725, 2726,
1089 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756,
1090 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786,
1091 2789, 2795, 2794, 2799, 2799, 2800, 2803, 2806, 2809, 2812,
1092 2815, 2818, 2821, 2824, 2827, 2830, 2833, 2836, 2839, 2842,
1093 2845, 2848, 2851, 2854, 2857, 2862, 2867, 2872, 2881, 2883,
1094 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892,
1095 2893, 2894, 2895, 2896, 2897, 2899, 2904, 2909, 2914, 2919,
1096 2924, 2929, 2934, 2939, 2944, 2949, 2954, 2959, 2968, 2970,
1097 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979,
1098 2980, 2982, 2988, 3004, 3013, 3019, 3025, 3031, 3040, 3046
1099 };
1100 #endif
1101
1102 #if YYDEBUG || YYERROR_VERBOSE || 0
1103 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1104 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1105 static const char *const yytname[] =
1106 {
1107 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1108 "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1109 "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1110 "CAN_FLOOD", "CHANNEL", "CHECK_CACHE", "CIDR_BITLEN_IPV4",
1111 "CIDR_BITLEN_IPV6", "CLASS", "CLOSE", "CONNECT", "CONNECTFREQ",
1112 "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT", "DEFAULT_JOIN_FLOOD_COUNT",
1113 "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1114 "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1115 "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1116 "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1117 "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1118 "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1119 "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1120 "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1121 "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1122 "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "INVITE_EXPIRE_TIME", "IP",
1123 "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL",
1124 "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR",
1125 "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME",
1126 "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LIBGEOIP_DATABASE_OPTIONS",
1127 "LIBGEOIP_IPV4_DATABASE_FILE", "LIBGEOIP_IPV6_DATABASE_FILE", "LISTEN",
1128 "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1129 "MAX_IDLE", "MAX_INVITES", "MAX_LOCAL", "MAX_NICK_CHANGES",
1130 "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1131 "MAX_TOPIC_LENGTH", "MAX_WATCH", "MEMORY_CACHE", "MIN_IDLE",
1132 "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MMAP_CACHE", "MODULE",
1133 "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC",
1134 "NETWORK_NAME", "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1135 "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_UMODES",
1136 "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1137 "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING",
1138 "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE",
1139 "REMOTEBAN", "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS",
1140 "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD",
1141 "SENDQ", "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF",
1142 "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1143 "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1144 "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1145 "SSL_MESSAGE_DIGEST_ALGORITHM", "STANDARD", "STATS_E_DISABLED",
1146 "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY",
1147 "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1148 "T_BOTS", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF",
1149 "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL",
1150 "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG",
1151 "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ",
1152 "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1153 "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1154 "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1155 "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1156 "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1157 "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1158 "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1159 "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1160 "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1161 "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1162 "modules_entry", "modules_items", "modules_item", "modules_module",
1163 "modules_path", "serverinfo_entry", "serverinfo_items",
1164 "serverinfo_item", "serverinfo_ssl_certificate_file",
1165 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1166 "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1167 "serverinfo_ssl_dh_elliptic_curve",
1168 "serverinfo_libgeoip_database_options", "$@1", "options_items",
1169 "options_item", "serverinfo_libgeoip_ipv4_database_file",
1170 "serverinfo_libgeoip_ipv6_database_file", "serverinfo_name",
1171 "serverinfo_sid", "serverinfo_description", "serverinfo_network_name",
1172 "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1173 "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1174 "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1175 "admin_items", "admin_item", "admin_name", "admin_email",
1176 "admin_description", "motd_entry", "$@2", "motd_items", "motd_item",
1177 "motd_mask", "motd_file", "pseudo_entry", "$@3", "pseudo_items",
1178 "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1179 "pseudo_target", "logging_entry", "logging_items", "logging_item",
1180 "logging_use_logging", "logging_file_entry", "$@4", "logging_file_items",
1181 "logging_file_item", "logging_file_name", "logging_file_size",
1182 "logging_file_type", "$@5", "logging_file_type_items",
1183 "logging_file_type_item", "oper_entry", "$@6", "oper_items", "oper_item",
1184 "oper_name", "oper_user", "oper_password", "oper_whois",
1185 "oper_encrypted", "oper_ssl_certificate_fingerprint",
1186 "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@7",
1187 "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@8",
1188 "oper_flags_items", "oper_flags_item", "class_entry", "$@9",
1189 "class_items", "class_item", "class_name", "class_ping_time",
1190 "class_number_per_ip", "class_connectfreq", "class_max_channels",
1191 "class_max_number", "class_max_global", "class_max_local", "class_sendq",
1192 "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1193 "class_number_per_cidr", "class_min_idle", "class_max_idle",
1194 "class_flags", "$@10", "class_flags_items", "class_flags_item",
1195 "listen_entry", "$@11", "listen_flags", "$@12", "listen_flags_items",
1196 "listen_flags_item", "listen_items", "listen_item", "listen_port",
1197 "$@13", "port_items", "port_item", "listen_address", "listen_host",
1198 "auth_entry", "$@14", "auth_items", "auth_item", "auth_user",
1199 "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@15",
1200 "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1201 "auth_redir_port", "resv_entry", "$@16", "resv_items", "resv_item",
1202 "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1203 "service_items", "service_item", "service_name", "shared_entry", "$@17",
1204 "shared_items", "shared_item", "shared_name", "shared_user",
1205 "shared_type", "$@18", "shared_types", "shared_type_item",
1206 "cluster_entry", "$@19", "cluster_items", "cluster_item", "cluster_name",
1207 "cluster_type", "$@20", "cluster_types", "cluster_type_item",
1208 "connect_entry", "$@21", "connect_items", "connect_item", "connect_name",
1209 "connect_host", "connect_vhost", "connect_send_password",
1210 "connect_accept_password", "connect_ssl_certificate_fingerprint",
1211 "connect_port", "connect_aftype", "connect_flags", "$@22",
1212 "connect_flags_items", "connect_flags_item", "connect_encrypted",
1213 "connect_hub_mask", "connect_leaf_mask", "connect_class",
1214 "connect_ssl_cipher_list", "kill_entry", "$@23", "kill_items",
1215 "kill_item", "kill_user", "kill_reason", "deny_entry", "$@24",
1216 "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1217 "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@25",
1218 "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1219 "general_entry", "general_items", "general_item", "general_away_count",
1220 "general_away_time", "general_max_watch",
1221 "general_whowas_history_length", "general_cycle_on_host_change",
1222 "general_dline_min_cidr", "general_dline_min_cidr6",
1223 "general_kline_min_cidr", "general_kline_min_cidr6",
1224 "general_tkline_expire_notices", "general_kill_chase_time_limit",
1225 "general_ignore_bogus_ts", "general_failed_oper_notice",
1226 "general_anti_nick_flood", "general_max_nick_time",
1227 "general_max_nick_changes", "general_max_accept",
1228 "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1229 "general_ts_max_delta", "general_invisible_on_connect",
1230 "general_warn_no_connect_block", "general_stats_e_disabled",
1231 "general_stats_m_oper_only", "general_stats_o_oper_only",
1232 "general_stats_P_oper_only", "general_stats_u_oper_only",
1233 "general_stats_k_oper_only", "general_stats_i_oper_only",
1234 "general_pace_wait", "general_caller_id_wait",
1235 "general_opers_bypass_callerid", "general_pace_wait_simple",
1236 "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1237 "general_max_targets", "general_ping_cookie", "general_disable_auth",
1238 "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1239 "$@26", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1240 "$@27", "umode_items", "umode_item", "general_min_nonwildcard",
1241 "general_min_nonwildcard_simple", "general_default_floodcount",
1242 "channel_entry", "channel_items", "channel_item",
1243 "channel_disable_fake_channels", "channel_invite_client_count",
1244 "channel_invite_client_time", "channel_invite_delay_channel",
1245 "channel_invite_expire_time", "channel_knock_client_count",
1246 "channel_knock_client_time", "channel_knock_delay_channel",
1247 "channel_max_channels", "channel_max_invites", "channel_max_bans",
1248 "channel_default_join_flood_count", "channel_default_join_flood_time",
1249 "serverhide_entry", "serverhide_items", "serverhide_item",
1250 "serverhide_flatten_links", "serverhide_flatten_links_delay",
1251 "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1252 "serverhide_hide_servers", "serverhide_hide_services",
1253 "serverhide_hidden_name", "serverhide_hidden",
1254 "serverhide_hide_server_ips", YY_NULLPTR
1255 };
1256 #endif
1257
1258 # ifdef YYPRINT
1259 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1260 (internal) symbol number NUM (which must be that of a token). */
1261 static const yytype_uint16 yytoknum[] =
1262 {
1263 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1264 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1265 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1266 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1267 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1268 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1269 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1270 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1271 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1272 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1273 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1274 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1275 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1276 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1277 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1278 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1279 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1280 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1281 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1282 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1283 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1284 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1285 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1286 485, 486, 487, 488, 489, 490, 59, 125, 123, 61,
1287 44, 58
1288 };
1289 # endif
1290
1291 #define YYPACT_NINF -1059
1292
1293 #define yypact_value_is_default(Yystate) \
1294 (!!((Yystate) == (-1059)))
1295
1296 #define YYTABLE_NINF -143
1297
1298 #define yytable_value_is_error(Yytable_value) \
1299 0
1300
1301 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1302 STATE-NUM. */
1303 static const yytype_int16 yypact[] =
1304 {
1305 -1059, 706, -1059, -155, -222, -216, -1059, -1059, -1059, -214,
1306 -1059, -208, -1059, -1059, -1059, -205, -1059, -1059, -1059, -199,
1307 -189, -1059, -184, -1059, -182, -1059, -1059, -1059, -1059, -1059,
1308 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1309 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1310 -1059, 309, 978, -179, -176, -148, 14, -131, 405, -124,
1311 -123, -115, 36, -106, -105, -90, 560, 561, -87, 2,
1312 -75, 13, -67, -56, -53, -34, -27, 12, -1059, -1059,
1313 -1059, -1059, -1059, -19, 39, 52, 54, 62, 79, 93,
1314 101, 117, 121, 123, 124, 126, 161, -1059, -1059, -1059,
1315 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1316 -1059, 741, 577, 27, -1059, 131, 31, -1059, -1059, 96,
1317 -1059, 132, 133, 136, 137, 138, 139, 140, 142, 146,
1318 147, 149, 150, 155, 156, 158, 168, 169, 171, 178,
1319 181, 182, 184, 189, 192, 193, -1059, -1059, 194, 196,
1320 197, 199, 204, 206, 207, 209, 210, 221, 222, 223,
1321 224, 228, 238, 239, 242, 243, 244, 51, -1059, -1059,
1322 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1323 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1324 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1325 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1326 -1059, -1059, -1059, -1059, -1059, 360, 37, 357, -44, 247,
1327 250, 40, -1059, -1059, -1059, 10, 302, 28, -1059, 252,
1328 256, 259, 263, 270, 272, 274, 276, 277, 251, -1059,
1329 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, 5,
1330 280, 281, 282, 283, -1059, 286, 290, 293, 297, 298,
1331 299, 300, 301, 303, 306, 307, 308, 310, 311, 312,
1332 153, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1333 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1334 -1059, -1059, 104, 99, 319, 16, -1059, -1059, -1059, 106,
1335 227, -1059, 320, 77, -1059, -1059, 100, -1059, 130, 214,
1336 275, 203, -1059, 175, 253, 249, 381, 253, 253, 253,
1337 433, 253, 253, 445, 448, 449, 330, -1059, 338, 336,
1338 337, 342, -1059, 345, 346, 347, 351, 353, 354, 359,
1339 362, 363, 368, 371, 372, 257, -1059, -1059, -1059, -1059,
1340 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1341 -1059, -1059, -1059, 341, 382, 383, 387, 391, 392, 393,
1342 -1059, 395, 406, 407, 410, 411, 412, 413, 50, -1059,
1343 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1344 -1059, -1059, -1059, -1059, -1059, 416, 418, 3, -1059, -1059,
1345 -1059, 467, 423, -1059, -1059, 422, 424, 24, -1059, -1059,
1346 -1059, 447, 253, 484, 253, 253, 450, 547, 453, 551,
1347 559, 564, 458, 459, 464, 253, 565, 568, 570, 571,
1348 253, 572, 573, 574, 575, 477, 460, 462, 485, 253,
1349 253, 486, 487, 491, -194, -177, 494, 495, 497, 498,
1350 603, 253, 506, 253, 253, 508, 612, 493, -1059, 496,
1351 492, 499, -1059, 500, 501, 502, 504, 505, 165, -1059,
1352 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, 507,
1353 509, 44, -1059, -1059, -1059, 513, 511, 512, -1059, 515,
1354 -1059, 7, -1059, -1059, -1059, -1059, -1059, 601, 605, 520,
1355 -1059, 521, 519, 522, 20, -1059, -1059, -1059, 526, 524,
1356 527, -1059, 529, 530, 531, 532, -1059, 534, 536, 159,
1357 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1358 -1059, 545, 543, 546, 548, 25, -1059, -1059, -1059, -1059,
1359 528, 567, 253, 607, 569, 608, 576, 578, 579, 552,
1360 -1059, -1059, 650, 663, 580, 665, 562, 669, 670, 685,
1361 687, 674, 675, 676, 678, 680, 684, 686, 692, 693,
1362 694, 695, 589, -1059, 595, 594, -1059, 84, -1059, -1059,
1363 -1059, -1059, 597, 598, -1059, 154, 599, 600, 606, 610,
1364 611, 129, -1059, -1059, -1059, -1059, -1059, 708, 602, -1059,
1365 604, 613, -1059, 620, 17, -1059, -1059, -1059, -1059, 624,
1366 625, 627, -1059, 628, 329, 629, 630, 633, 634, 635,
1367 636, 637, 638, 640, 642, 643, 645, -1059, -1059, 701,
1368 727, 253, 644, 731, 732, 253, 762, 767, 253, 715,
1369 770, 771, 253, 772, 772, 648, -1059, -1059, 759, -86,
1370 761, 677, 763, 766, 652, 768, 773, 781, 780, 782,
1371 784, 785, 683, -1059, 787, 791, 688, -1059, 689, -1059,
1372 792, 793, 690, -1059, 699, 700, 710, 713, 717, 718,
1373 720, 723, 724, 725, 726, 728, 730, 733, 734, 738,
1374 739, 740, 744, 745, 746, 751, 752, 755, 758, 814,
1375 729, 760, 765, 774, 777, 778, 779, 783, 786, 788,
1376 789, 790, 794, 795, 796, 797, 798, 799, 800, 801,
1377 802, 807, -1059, -1059, 808, 711, 691, 813, 836, 839,
1378 848, 869, 809, -1059, 870, 877, 810, -1059, -1059, 878,
1379 880, 805, 850, 811, -1059, 812, 815, -1059, -1059, 891,
1380 892, 816, -1059, -1059, 898, 712, 818, 900, 920, 921,
1381 841, 820, 924, 931, 825, -1059, -1059, 933, 934, 937,
1382 831, -1059, 833, 834, 835, 837, 838, 840, 842, 843,
1383 844, -1059, 845, 846, 847, 849, 47, 851, 852, 853,
1384 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1385 864, 865, -1059, -1059, 943, 866, 867, -1059, 868, -1059,
1386 200, -1059, 946, 948, 955, 957, 871, -1059, 872, -1059,
1387 -1059, 973, 873, 977, 874, -1059, -1059, -1059, -1059, -1059,
1388 253, 253, 253, 253, 253, 253, 253, -1059, -1059, -1059,
1389 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1390 -1059, 875, 879, 881, -9, 882, 883, 884, 885, 886,
1391 887, 888, 889, 890, 893, 23, 894, 895, -1059, 896,
1392 897, 899, 901, 902, 903, 904, 4, 905, 906, 907,
1393 908, 909, 910, 911, -1059, 912, 913, -1059, -1059, 914,
1394 915, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1395 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1396 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1397 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1398 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -169, -1059, -1059,
1399 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1400 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1401 -1059, -163, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1402 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1403 -1059, -1059, -1059, -1059, 916, 917, 539, 918, 919, 922,
1404 923, 925, -1059, 926, 927, -1059, 928, 929, -29, 932,
1405 876, -1059, -1059, -1059, -1059, 930, 935, -1059, 936, 938,
1406 483, 939, 940, 941, 942, 769, 944, 945, -1059, 947,
1407 949, 950, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1408 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1409 -156, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1410 -1059, -1059, -1059, -1059, -1059, -1059, -1059, 951, 331, -1059,
1411 -1059, 952, 953, 954, -1059, 30, -1059, -1059, -1059, -1059,
1412 958, 959, 960, 961, -1059, -1059, 962, 641, 963, -1059,
1413 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1414 -1059, -1059, -145, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1415 -1059, -1059, -1059, -1059, 772, 772, 772, -1059, -1059, -1059,
1416 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1417 -47, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1418 -1059, -1059, -1059, -1059, 814, -1059, 729, -1059, -1059, -1059,
1419 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -41,
1420 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1421 -1059, -1059, -1059, 91, -1059, 994, 850, 964, -1059, -1059,
1422 -1059, -1059, -1059, -1059, 965, -1059, 966, 967, -1059, -1059,
1423 968, 969, -1059, -1059, 970, -1059, -1059, -1059, -1059, -1059,
1424 -1059, -1059, -1059, -1059, -1059, -1059, -1059, 97, -1059, -1059,
1425 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1426 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1427 -1059, -1059, -1059, -1059, -1059, 102, -1059, -1059, -1059, -1059,
1428 -1059, -1059, -1059, 47, -1059, -1059, -1059, -1059, -1059, -1059,
1429 -1059, -1059, -1059, -1059, -1059, 113, -1059, -1059, 984, -95,
1430 974, 976, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1431 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, 114, -1059,
1432 -1059, -1059, -9, -1059, -1059, -1059, -1059, 4, -1059, -1059,
1433 -1059, 539, -1059, -29, -1059, -1059, -1059, 979, 990, 993,
1434 997, 1001, 1022, -1059, 483, -1059, 769, -1059, -1059, 331,
1435 980, 981, 982, 463, -1059, -1059, 641, -1059, -1059, -1059,
1436 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1437 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1438 -1059, 115, -1059, -1059, -1059, 463, -1059
1439 };
1440
1441 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1442 Performed when YYTABLE does not specify something else to do. Zero
1443 means the default is an error. */
1444 static const yytype_uint16 yydefact[] =
1445 {
1446 2, 0, 1, 0, 0, 0, 247, 410, 458, 0,
1447 473, 0, 313, 449, 289, 0, 113, 165, 347, 0,
1448 0, 388, 0, 122, 0, 364, 3, 23, 11, 4,
1449 24, 25, 5, 6, 8, 9, 10, 13, 14, 15,
1450 16, 17, 18, 19, 20, 22, 21, 7, 12, 26,
1451 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
1454 108, 107, 644, 0, 0, 0, 0, 0, 0, 0,
1455 0, 0, 0, 0, 0, 0, 0, 630, 643, 632,
1456 633, 634, 635, 636, 637, 638, 639, 640, 631, 641,
1457 642, 0, 0, 0, 471, 0, 0, 469, 470, 0,
1458 531, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1459 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460 0, 0, 0, 0, 0, 0, 601, 575, 0, 0,
1461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462 0, 0, 0, 0, 0, 0, 0, 0, 484, 485,
1463 486, 529, 493, 530, 524, 525, 526, 527, 523, 497,
1464 487, 488, 489, 490, 491, 492, 494, 495, 496, 498,
1465 499, 528, 503, 504, 505, 506, 502, 501, 507, 514,
1466 515, 508, 509, 510, 500, 512, 521, 522, 519, 520,
1467 513, 511, 517, 518, 516, 0, 0, 0, 0, 0,
1468 0, 0, 46, 47, 48, 0, 0, 0, 670, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0, 0, 660,
1470 661, 662, 663, 664, 665, 666, 668, 667, 669, 0,
1471 0, 0, 0, 0, 82, 0, 0, 0, 0, 0,
1472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473 0, 54, 69, 66, 64, 70, 71, 65, 72, 73,
1474 74, 55, 68, 58, 59, 60, 56, 67, 61, 62,
1475 63, 57, 0, 0, 0, 0, 137, 138, 139, 0,
1476 0, 362, 0, 0, 360, 361, 0, 109, 0, 0,
1477 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 629, 0, 0,
1479 0, 0, 283, 0, 0, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 250, 251, 254, 256,
1481 257, 258, 259, 260, 261, 262, 263, 252, 253, 255,
1482 264, 265, 266, 0, 0, 0, 0, 0, 0, 0,
1483 438, 0, 0, 0, 0, 0, 0, 0, 0, 413,
1484 414, 415, 416, 417, 418, 419, 421, 420, 423, 427,
1485 424, 425, 426, 422, 464, 0, 0, 0, 461, 462,
1486 463, 0, 0, 468, 479, 0, 0, 0, 476, 477,
1487 478, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 483, 0,
1492 0, 0, 330, 0, 0, 0, 0, 0, 0, 316,
1493 317, 318, 319, 324, 320, 321, 322, 323, 455, 0,
1494 0, 0, 452, 453, 454, 0, 0, 0, 291, 0,
1495 301, 0, 299, 300, 302, 303, 49, 0, 0, 0,
1496 45, 0, 0, 0, 0, 116, 117, 118, 0, 0,
1497 0, 214, 0, 0, 0, 0, 188, 0, 0, 0,
1498 168, 169, 170, 171, 172, 175, 176, 177, 174, 173,
1499 178, 0, 0, 0, 0, 0, 350, 351, 352, 353,
1500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501 659, 75, 0, 0, 0, 0, 0, 0, 0, 0,
1502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503 0, 0, 0, 53, 0, 0, 396, 0, 391, 392,
1504 393, 140, 0, 0, 136, 0, 0, 0, 0, 0,
1505 0, 0, 125, 126, 128, 127, 129, 0, 0, 359,
1506 0, 0, 374, 0, 0, 367, 368, 369, 370, 0,
1507 0, 0, 103, 0, 28, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 628, 267, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 249, 428, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512 0, 0, 0, 412, 0, 0, 0, 460, 0, 467,
1513 0, 0, 0, 475, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 482, 325, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 315, 0, 0, 0, 451, 304, 0,
1520 0, 0, 0, 0, 298, 0, 0, 44, 119, 0,
1521 0, 0, 115, 179, 0, 0, 0, 0, 0, 0,
1522 0, 0, 0, 0, 0, 167, 354, 0, 0, 0,
1523 0, 349, 0, 0, 0, 0, 0, 0, 0, 0,
1524 0, 658, 0, 0, 0, 0, 0, 0, 0, 0,
1525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1526 0, 0, 52, 394, 0, 0, 0, 390, 0, 135,
1527 0, 130, 0, 0, 0, 0, 0, 124, 0, 358,
1528 371, 0, 0, 0, 0, 366, 112, 111, 110, 656,
1529 28, 28, 28, 28, 28, 28, 28, 30, 29, 657,
1530 645, 646, 647, 648, 649, 650, 651, 652, 655, 653,
1531 654, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532 0, 0, 0, 0, 0, 38, 0, 0, 248, 0,
1533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1534 0, 0, 0, 0, 411, 0, 0, 459, 472, 0,
1535 0, 474, 545, 549, 532, 533, 564, 536, 627, 572,
1536 537, 538, 569, 544, 543, 552, 542, 539, 540, 548,
1537 547, 546, 570, 534, 625, 626, 568, 611, 605, 621,
1538 606, 607, 608, 616, 624, 609, 618, 622, 612, 623,
1539 613, 617, 610, 620, 615, 614, 619, 0, 604, 584,
1540 585, 586, 579, 597, 580, 581, 582, 592, 600, 583,
1541 594, 598, 588, 599, 589, 593, 587, 596, 591, 590,
1542 595, 0, 578, 565, 563, 566, 571, 567, 554, 561,
1543 562, 559, 560, 555, 556, 557, 558, 573, 574, 541,
1544 551, 550, 553, 535, 0, 0, 0, 0, 0, 0,
1545 0, 0, 314, 0, 0, 450, 0, 0, 0, 309,
1546 305, 308, 290, 50, 51, 0, 0, 114, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0, 166, 0,
1548 0, 0, 348, 674, 671, 672, 673, 678, 677, 679,
1549 675, 676, 99, 94, 102, 93, 89, 87, 88, 86,
1550 0, 85, 90, 91, 100, 101, 92, 96, 95, 77,
1551 76, 81, 78, 80, 79, 97, 98, 0, 0, 389,
1552 141, 0, 0, 0, 153, 0, 145, 146, 148, 147,
1553 0, 0, 0, 0, 123, 363, 0, 0, 0, 365,
1554 31, 32, 33, 34, 35, 36, 37, 278, 279, 271,
1555 288, 287, 0, 286, 272, 274, 282, 275, 273, 281,
1556 268, 280, 270, 269, 38, 38, 38, 40, 39, 276,
1557 277, 433, 436, 437, 447, 444, 430, 445, 442, 443,
1558 0, 441, 446, 429, 435, 432, 434, 448, 431, 465,
1559 466, 480, 481, 602, 0, 576, 0, 328, 329, 339,
1560 335, 336, 338, 343, 340, 341, 334, 342, 337, 0,
1561 333, 327, 346, 345, 344, 326, 457, 456, 312, 311,
1562 296, 297, 295, 0, 294, 0, 0, 0, 120, 121,
1563 187, 184, 234, 246, 221, 230, 0, 219, 224, 240,
1564 0, 233, 238, 244, 223, 226, 235, 237, 241, 231,
1565 239, 227, 245, 229, 236, 225, 228, 0, 217, 180,
1566 182, 185, 186, 197, 198, 199, 192, 210, 193, 194,
1567 195, 205, 213, 196, 207, 211, 201, 212, 202, 206,
1568 200, 209, 204, 203, 208, 0, 191, 181, 183, 357,
1569 355, 356, 83, 0, 395, 400, 406, 409, 402, 408,
1570 403, 407, 405, 401, 404, 0, 399, 149, 0, 0,
1571 0, 0, 144, 132, 131, 133, 134, 372, 378, 384,
1572 387, 380, 386, 381, 385, 383, 379, 382, 0, 377,
1573 373, 284, 0, 41, 42, 43, 439, 0, 603, 577,
1574 331, 0, 292, 0, 310, 307, 306, 0, 0, 0,
1575 0, 0, 0, 215, 0, 189, 0, 84, 397, 0,
1576 0, 0, 0, 0, 143, 375, 0, 285, 440, 332,
1577 293, 220, 243, 218, 242, 232, 222, 216, 190, 398,
1578 150, 152, 151, 163, 162, 158, 160, 164, 161, 157,
1579 159, 0, 156, 376, 154, 0, 155
1580 };
1581
1582 /* YYPGOTO[NTERM-NUM]. */
1583 static const yytype_int16 yypgoto[] =
1584 {
1585 -1059, -1059, -1059, -379, -312, -1058, -643, -1059, -1059, 983,
1586 -1059, -1059, -1059, -1059, 956, -1059, -1059, -1059, -1059, -1059,
1587 -1059, -1059, -1059, -1059, -73, -1059, -1059, -1059, -1059, -1059,
1588 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1589 1090, -1059, -1059, -1059, -1059, -1059, -1059, 664, -1059, -1059,
1590 -1059, -1059, -1059, 582, -1059, -1059, -1059, -1059, -1059, -1059,
1591 971, -1059, -1059, -1059, -1059, 105, -1059, -1059, -1059, -1059,
1592 -1059, -166, -1059, -1059, -1059, 660, -1059, -1059, -1059, -1059,
1593 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -114, -1059, -1059,
1594 -1059, -110, -1059, -1059, -1059, 972, -1059, -1059, -1059, -1059,
1595 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1596 -1059, -1059, -1059, -1059, -83, -1059, -1059, -1059, -1059, -1059,
1597 -93, -1059, 714, -1059, -1059, -1059, 35, -1059, -1059, -1059,
1598 -1059, -1059, 735, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1599 -79, -1059, -1059, -1059, -1059, -1059, -1059, 656, -1059, -1059,
1600 -1059, -1059, -1059, 975, -1059, -1059, -1059, -1059, 615, -1059,
1601 -1059, -1059, -1059, -1059, -92, -1059, -1059, -1059, 646, -1059,
1602 -1059, -1059, -1059, -84, -1059, -1059, -1059, 985, -1059, -1059,
1603 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -57,
1604 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, 743, -1059,
1605 -1059, -1059, -1059, -1059, 824, -1059, -1059, -1059, -1059, 1106,
1606 -1059, -1059, -1059, -1059, 821, -1059, -1059, -1059, -1059, 1058,
1607 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1608 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1609 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1610 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1611 -1059, -1059, -1059, -1059, 94, -1059, -1059, -1059, 95, -1059,
1612 -1059, -1059, -1059, -1059, 1131, -1059, -1059, -1059, -1059, -1059,
1613 -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059,
1614 995, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059, -1059
1615 };
1616
1617 /* YYDEFGOTO[NTERM-NUM]. */
1618 static const yytype_int16 yydefgoto[] =
1619 {
1620 -1, 1, 26, 837, 838, 1107, 1108, 27, 221, 222,
1621 223, 224, 28, 270, 271, 272, 273, 274, 275, 276,
1622 277, 278, 556, 1040, 1041, 279, 280, 281, 282, 283,
1623 284, 285, 286, 287, 288, 289, 290, 291, 29, 77,
1624 78, 79, 80, 81, 30, 63, 504, 505, 506, 507,
1625 31, 70, 591, 592, 593, 594, 595, 596, 32, 295,
1626 296, 297, 298, 299, 1065, 1066, 1067, 1068, 1069, 1250,
1627 1331, 1332, 33, 64, 519, 520, 521, 522, 523, 524,
1628 525, 526, 527, 528, 529, 761, 1225, 1226, 530, 756,
1629 1197, 1198, 34, 53, 345, 346, 347, 348, 349, 350,
1630 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
1631 361, 362, 632, 1092, 1093, 35, 61, 490, 741, 1163,
1632 1164, 491, 492, 493, 1167, 1000, 1001, 494, 495, 36,
1633 59, 468, 469, 470, 471, 472, 473, 474, 726, 1149,
1634 1150, 475, 476, 477, 37, 65, 535, 536, 537, 538,
1635 539, 38, 303, 304, 305, 39, 72, 604, 605, 606,
1636 607, 608, 822, 1268, 1269, 40, 68, 577, 578, 579,
1637 580, 805, 1245, 1246, 41, 54, 378, 379, 380, 381,
1638 382, 383, 384, 385, 386, 387, 388, 654, 1120, 1121,
1639 389, 390, 391, 392, 393, 42, 60, 481, 482, 483,
1640 484, 43, 55, 397, 398, 399, 400, 44, 116, 117,
1641 118, 45, 57, 407, 408, 409, 410, 46, 167, 168,
1642 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1643 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1644 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1645 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1646 209, 210, 437, 961, 962, 211, 436, 937, 938, 212,
1647 213, 214, 47, 96, 97, 98, 99, 100, 101, 102,
1648 103, 104, 105, 106, 107, 108, 109, 110, 48, 238,
1649 239, 240, 241, 242, 243, 244, 245, 246, 247, 248
1650 };
1651
1652 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1653 positive, shift that token. If negative, reduce the rule whose
1654 number is the opposite. If YYTABLE_NINF, syntax error. */
1655 static const yytype_int16 yytable[] =
1656 {
1657 866, 867, 615, 293, 394, 618, 619, 620, 485, 622,
1658 623, 501, 1118, 73, 301, 114, 51, 293, 600, 1160,
1659 865, 501, 52, 707, 56, 404, 531, 708, 394, 531,
1660 58, 1061, 114, 62, 1104, 1105, 1106, 218, 478, 66,
1661 709, 218, 74, 1090, 710, 478, 1273, 1274, 1275, 67,
1662 75, 363, 120, 364, 69, 365, 71, 121, 122, 111,
1663 123, 124, 112, 486, 1036, 125, 532, 1133, 395, 532,
1664 366, 1134, 487, 1135, 488, 126, 127, 1136, 301, 115,
1665 1232, 49, 50, 128, 1233, 574, 129, 130, 131, 367,
1666 113, 1271, 395, 132, 502, 1272, 115, 404, 870, 871,
1667 675, 600, 677, 678, 502, 574, 368, 119, 369, 533,
1668 133, 134, 533, 688, 215, 216, 1301, 370, 693, 76,
1669 302, 1091, 135, 217, 601, 136, 137, 702, 703, 371,
1670 586, 405, 225, 226, 396, 489, 138, 1062, 865, 716,
1671 219, 718, 719, 139, 219, 140, 1037, 141, 227, 142,
1672 1038, 292, 143, 144, 249, 406, 534, 372, 396, 534,
1673 508, 220, 82, 300, 145, 220, 459, 1161, 479, 146,
1674 147, 306, 148, 149, 150, 479, 1162, 151, 373, 509,
1675 307, 250, -142, 251, 302, 460, 308, 83, 84, 1276,
1676 503, 575, 496, 1277, 85, 1280, -142, 374, 510, 1281,
1677 503, 1061, 152, 405, 461, 309, 375, 601, 1039, 1119,
1678 252, 575, 310, 153, 154, 155, 156, 157, 158, 159,
1679 313, 253, 86, 87, 88, 89, 511, 406, 586, 294,
1680 774, 1063, 462, 254, 255, 256, 587, 90, 91, 92,
1681 666, 551, 602, 294, 743, 603, 257, 93, 94, 311,
1682 258, 95, 228, 583, 824, 1064, 376, 751, 328, 609,
1683 259, 672, 770, 260, 261, 480, 512, 1251, 402, 160,
1684 161, 162, 480, 163, 164, 329, 330, 499, 314, 377,
1685 331, 736, 165, 513, 166, 229, 585, 662, 457, 463,
1686 613, 315, 262, 316, 230, 231, 232, 464, 465, 233,
1687 234, 317, 588, 508, 235, 236, 237, 1062, 263, 576,
1688 73, 264, 265, 266, 598, 514, 515, 466, 318, 853,
1689 589, 806, 509, 857, 332, 602, 860, 1282, 603, 576,
1690 864, 1283, 319, 1293, 587, 581, 590, 1294, 1295, 74,
1691 320, 510, 1296, 610, 333, 334, 335, 75, 336, 1298,
1692 1305, 1334, 337, 1299, 1306, 1335, 321, 338, 485, 267,
1693 322, 459, 323, 324, 339, 325, 816, 516, 614, 511,
1694 401, 411, 412, 340, 341, 413, 414, 415, 416, 417,
1695 460, 418, 268, 269, 342, 419, 420, 517, 421, 422,
1696 572, 518, 810, 467, 423, 424, 764, 425, 326, 461,
1697 588, 1063, 732, 1235, 611, 343, 120, 426, 427, 512,
1698 428, 121, 122, 486, 123, 124, 76, 429, 589, 125,
1699 430, 431, 487, 432, 488, 1064, 513, 462, 433, 126,
1700 127, 434, 435, 438, 590, 439, 440, 128, 441, 612,
1701 129, 130, 131, 442, 614, 443, 444, 132, 445, 446,
1702 344, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 514, 515,
1703 447, 448, 449, 450, 133, 134, 616, 451, 1236, 830,
1704 831, 832, 833, 834, 835, 836, 135, 452, 453, 136,
1705 137, 454, 455, 456, 463, 489, 497, 1172, 549, 498,
1706 138, 540, 464, 465, 645, 541, 617, 139, 542, 140,
1707 1237, 141, 543, 142, 1173, 1174, 143, 144, 1238, 544,
1708 516, 545, 466, 546, 1175, 547, 548, 1239, 145, 552,
1709 553, 554, 555, 146, 147, 557, 148, 149, 150, 558,
1710 517, 151, 559, 1323, 518, 1324, 560, 561, 562, 563,
1711 564, 1240, 565, 1241, 1242, 566, 567, 568, 621, 569,
1712 570, 571, 1176, 1177, 1139, 1178, 152, 1243, 582, 597,
1713 624, 228, 249, 625, 626, 1244, 627, 153, 154, 155,
1714 156, 157, 158, 159, 628, 629, 630, 647, 363, 1140,
1715 364, 631, 365, 1325, 633, 634, 635, 1179, 467, 250,
1716 636, 251, 637, 638, 229, 1180, 668, 366, 639, 676,
1717 1326, 640, 641, 230, 231, 232, 1302, 642, 233, 234,
1718 643, 644, 1141, 235, 236, 237, 367, 1181, 252, 1182,
1719 1183, 648, 649, 160, 161, 162, 650, 163, 164, 253,
1720 651, 652, 653, 368, 655, 369, 165, 1184, 166, 1327,
1721 1328, 254, 255, 256, 370, 656, 657, 1142, 1143, 658,
1722 659, 660, 661, 1144, 257, 664, 371, 665, 258, 669,
1723 1185, 670, 680, 671, 674, 1186, 682, 679, 259, 1187,
1724 681, 260, 261, 1188, 683, 685, 686, 1145, 1189, 684,
1725 689, 687, 1190, 690, 372, 691, 692, 694, 695, 696,
1726 697, 1329, 1146, 1191, 698, 1192, 1193, 1330, 1194, 699,
1727 262, 700, 701, 704, 705, 373, 2, 3, 706, 1195,
1728 4, 711, 712, 1258, 713, 714, 263, 1196, 715, 264,
1729 265, 266, 5, 717, 374, 720, 6, 721, 7, 722,
1730 745, 724, 723, 375, 746, 8, 775, 777, 725, 727,
1731 728, 729, 328, 730, 731, 772, 734, 9, 735, 738,
1732 739, 740, 10, 11, 742, 1147, 747, 748, 749, 329,
1733 330, 750, 753, 754, 331, 782, 755, 267, 757, 758,
1734 759, 760, 12, 762, 1148, 763, 13, 939, 1259, 940,
1735 941, 766, 767, 376, 773, 768, 776, 769, 781, 14,
1736 268, 269, 783, 778, 785, 779, 780, 784, 787, 788,
1737 789, 786, 790, 791, 792, 793, 377, 794, 332, 795,
1738 1260, 15, 16, 796, 808, 797, 851, 1203, 1261, 1204,
1739 1205, 798, 799, 800, 801, 802, 17, 1262, 333, 334,
1740 335, 803, 336, 804, 809, 811, 337, 818, 819, 812,
1741 820, 338, 852, 18, 861, 813, 855, 856, 339, 814,
1742 815, 1263, 821, 1264, 1265, 19, 20, 340, 341, 823,
1743 826, 827, 917, 828, 829, 839, 840, 1266, 342, 841,
1744 842, 843, 844, 845, 846, 1267, 847, 858, 848, 849,
1745 21, 850, 859, 854, 868, 862, 863, 865, 869, 343,
1746 872, 876, 874, 22, 873, 875, 879, 877, 23, 942,
1747 943, 944, 878, 24, 945, 946, 25, 947, 948, 880,
1748 949, 881, 950, 882, 883, 951, 885, 952, 953, 884,
1749 886, 889, 890, 954, 887, 888, 891, 955, 985, 1009,
1750 986, 956, 957, 958, 344, 892, 893, 984, 959, 1206,
1751 1207, 1208, 987, 960, 1209, 1210, 894, 1211, 1212, 895,
1752 1213, 988, 1214, 896, 897, 1215, 898, 1216, 1217, 899,
1753 900, 901, 902, 1218, 903, 999, 904, 1219, 989, 905,
1754 906, 1220, 1221, 1222, 907, 908, 909, 990, 1223, 82,
1755 910, 911, 912, 1224, 918, 919, 920, 913, 914, 921,
1756 922, 915, 923, 924, 916, 925, 963, 926, 991, 993,
1757 927, 964, 928, 929, 83, 84, 994, 996, 930, 997,
1758 965, 85, 931, 966, 967, 968, 932, 933, 934, 969,
1759 1005, 1006, 970, 935, 971, 972, 973, 1008, 936, 1011,
1760 974, 975, 976, 977, 978, 979, 980, 981, 982, 86,
1761 87, 88, 89, 983, 998, 992, 995, 1002, 1003, 1012,
1762 1013, 1004, 1007, 1016, 90, 91, 92, 1010, 1014, 1015,
1763 1017, 1018, 1019, 1020, 93, 94, 1021, 1022, 95, 1023,
1764 1024, 1025, 1057, 1026, 1027, 1070, 1028, 1071, 1029, 1030,
1765 1031, 1032, 1033, 1034, 1072, 1035, 1073, 1042, 1043, 1044,
1766 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054,
1767 1055, 1056, 1076, 1059, 1060, 1058, 1078, 1074, 1075, 1284,
1768 1079, 1087, 1077, 1300, 1311, 1088, 1166, 1089, 1094, 1095,
1769 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1312, 1313, 1103,
1770 1109, 1110, 1111, 1112, 1314, 1113, 1315, 1114, 1115, 1116,
1771 1117, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1772 1131, 1132, 1137, 1138, 1151, 1152, 1165, 1316, 1153, 1154,
1773 1297, 1155, 1156, 1157, 1158, 1159, 1168, 312, 752, 1336,
1774 1252, 1169, 1170, 817, 1171, 1199, 1200, 1201, 1202, 765,
1775 1227, 1228, 1318, 1229, 1317, 1230, 1231, 1234, 1247, 1307,
1776 1310, 771, 1248, 1249, 1253, 1254, 1255, 1256, 1257, 1270,
1777 1286, 1285, 1309, 733, 500, 744, 1287, 1288, 1289, 1290,
1778 1291, 1292, 1304, 1303, 1333, 1319, 1320, 1321, 1322, 825,
1779 1308, 667, 403, 807, 737, 458, 573, 327, 673, 1278,
1780 1279, 0, 0, 550, 0, 0, 0, 0, 0, 0,
1781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 584, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0, 599, 0,
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1788 0, 0, 0, 0, 0, 0, 0, 646, 0, 0,
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793 0, 0, 0, 663
1794 };
1795
1796 static const yytype_int16 yycheck[] =
1797 {
1798 643, 644, 314, 1, 1, 317, 318, 319, 1, 321,
1799 322, 1, 8, 1, 1, 1, 238, 1, 1, 48,
1800 115, 1, 238, 217, 238, 1, 1, 221, 1, 1,
1801 238, 1, 1, 238, 11, 12, 13, 1, 1, 238,
1802 217, 1, 30, 52, 221, 1, 1104, 1105, 1106, 238,
1803 38, 1, 1, 3, 238, 5, 238, 6, 7, 238,
1804 9, 10, 238, 56, 17, 14, 41, 236, 65, 41,
1805 20, 240, 65, 236, 67, 24, 25, 240, 1, 65,
1806 236, 236, 237, 32, 240, 1, 35, 36, 37, 39,
1807 238, 236, 65, 42, 84, 240, 65, 1, 184, 185,
1808 412, 1, 414, 415, 84, 1, 56, 238, 58, 84,
1809 59, 60, 84, 425, 238, 238, 211, 67, 430, 107,
1810 107, 130, 71, 238, 107, 74, 75, 439, 440, 79,
1811 1, 107, 238, 238, 131, 128, 85, 107, 115, 451,
1812 104, 453, 454, 92, 104, 94, 99, 96, 238, 98,
1813 103, 238, 101, 102, 1, 131, 131, 107, 131, 131,
1814 1, 125, 1, 238, 113, 125, 1, 196, 131, 118,
1815 119, 238, 121, 122, 123, 131, 205, 126, 128, 20,
1816 236, 28, 180, 30, 107, 20, 239, 26, 27, 236,
1817 180, 107, 236, 240, 33, 236, 180, 147, 39, 240,
1818 180, 1, 151, 107, 39, 239, 156, 107, 161, 205,
1819 57, 107, 239, 162, 163, 164, 165, 166, 167, 168,
1820 239, 68, 61, 62, 63, 64, 67, 131, 1, 227,
1821 542, 201, 67, 80, 81, 82, 107, 76, 77, 78,
1822 237, 236, 225, 227, 237, 228, 93, 86, 87, 237,
1823 97, 90, 1, 237, 237, 225, 206, 237, 1, 129,
1824 107, 237, 237, 110, 111, 228, 107, 237, 237, 218,
1825 219, 220, 228, 222, 223, 18, 19, 237, 239, 229,
1826 23, 237, 231, 124, 233, 34, 180, 237, 237, 124,
1827 115, 239, 139, 239, 43, 44, 45, 132, 133, 48,
1828 49, 239, 173, 1, 53, 54, 55, 107, 155, 225,
1829 1, 158, 159, 160, 237, 156, 157, 152, 239, 631,
1830 191, 237, 20, 635, 67, 225, 638, 236, 228, 225,
1831 642, 240, 239, 236, 107, 236, 207, 240, 236, 30,
1832 239, 39, 240, 129, 87, 88, 89, 38, 91, 236,
1833 236, 236, 95, 240, 240, 240, 239, 100, 1, 206,
1834 239, 1, 239, 239, 107, 239, 237, 208, 115, 67,
1835 239, 239, 239, 116, 117, 239, 239, 239, 239, 239,
1836 20, 239, 229, 230, 127, 239, 239, 228, 239, 239,
1837 237, 232, 238, 228, 239, 239, 237, 239, 237, 39,
1838 173, 201, 237, 72, 129, 148, 1, 239, 239, 107,
1839 239, 6, 7, 56, 9, 10, 107, 239, 191, 14,
1840 239, 239, 65, 239, 67, 225, 124, 67, 239, 24,
1841 25, 239, 239, 239, 207, 239, 239, 32, 239, 236,
1842 35, 36, 37, 239, 115, 239, 239, 42, 239, 239,
1843 193, 830, 831, 832, 833, 834, 835, 836, 156, 157,
1844 239, 239, 239, 239, 59, 60, 217, 239, 137, 140,
1845 141, 142, 143, 144, 145, 146, 71, 239, 239, 74,
1846 75, 239, 239, 239, 124, 128, 239, 4, 237, 239,
1847 85, 239, 132, 133, 237, 239, 115, 92, 239, 94,
1848 169, 96, 239, 98, 21, 22, 101, 102, 177, 239,
1849 208, 239, 152, 239, 31, 239, 239, 186, 113, 239,
1850 239, 239, 239, 118, 119, 239, 121, 122, 123, 239,
1851 228, 126, 239, 70, 232, 72, 239, 239, 239, 239,
1852 239, 210, 239, 212, 213, 239, 239, 239, 115, 239,
1853 239, 239, 69, 70, 15, 72, 151, 226, 239, 239,
1854 115, 1, 1, 115, 115, 234, 236, 162, 163, 164,
1855 165, 166, 167, 168, 236, 239, 239, 236, 1, 40,
1856 3, 239, 5, 120, 239, 239, 239, 104, 228, 28,
1857 239, 30, 239, 239, 34, 112, 129, 20, 239, 115,
1858 137, 239, 239, 43, 44, 45, 1249, 239, 48, 49,
1859 239, 239, 73, 53, 54, 55, 39, 134, 57, 136,
1860 137, 239, 239, 218, 219, 220, 239, 222, 223, 68,
1861 239, 239, 239, 56, 239, 58, 231, 154, 233, 176,
1862 177, 80, 81, 82, 67, 239, 239, 108, 109, 239,
1863 239, 239, 239, 114, 93, 239, 79, 239, 97, 236,
1864 177, 239, 115, 239, 217, 182, 115, 217, 107, 186,
1865 217, 110, 111, 190, 115, 217, 217, 138, 195, 115,
1866 115, 217, 199, 115, 107, 115, 115, 115, 115, 115,
1867 115, 228, 153, 210, 217, 212, 213, 234, 215, 239,
1868 139, 239, 217, 217, 217, 128, 0, 1, 217, 226,
1869 4, 217, 217, 72, 217, 217, 155, 234, 115, 158,
1870 159, 160, 16, 217, 147, 217, 20, 115, 22, 236,
1871 129, 239, 236, 156, 129, 29, 129, 129, 239, 239,
1872 239, 239, 1, 239, 239, 217, 239, 41, 239, 236,
1873 239, 239, 46, 47, 239, 216, 236, 236, 239, 18,
1874 19, 239, 236, 239, 23, 115, 239, 206, 239, 239,
1875 239, 239, 66, 239, 235, 239, 70, 48, 137, 50,
1876 51, 236, 239, 206, 217, 239, 217, 239, 236, 83,
1877 229, 230, 129, 217, 129, 217, 217, 217, 129, 129,
1878 115, 239, 115, 129, 129, 129, 229, 129, 67, 129,
1879 169, 105, 106, 129, 217, 129, 115, 48, 177, 50,
1880 51, 129, 129, 129, 129, 236, 120, 186, 87, 88,
1881 89, 236, 91, 239, 236, 236, 95, 129, 236, 239,
1882 236, 100, 115, 137, 129, 239, 115, 115, 107, 239,
1883 239, 210, 239, 212, 213, 149, 150, 116, 117, 239,
1884 236, 236, 48, 236, 236, 236, 236, 226, 127, 236,
1885 236, 236, 236, 236, 236, 234, 236, 115, 236, 236,
1886 174, 236, 115, 239, 236, 115, 115, 115, 129, 148,
1887 129, 239, 129, 187, 217, 129, 115, 129, 192, 170,
1888 171, 172, 129, 197, 175, 176, 200, 178, 179, 129,
1889 181, 129, 183, 129, 129, 186, 129, 188, 189, 236,
1890 129, 129, 129, 194, 236, 236, 236, 198, 217, 217,
1891 239, 202, 203, 204, 193, 236, 236, 129, 209, 170,
1892 171, 172, 129, 214, 175, 176, 236, 178, 179, 236,
1893 181, 115, 183, 236, 236, 186, 236, 188, 189, 236,
1894 236, 236, 236, 194, 236, 115, 236, 198, 129, 236,
1895 236, 202, 203, 204, 236, 236, 236, 129, 209, 1,
1896 236, 236, 236, 214, 170, 171, 172, 236, 236, 175,
1897 176, 236, 178, 179, 236, 181, 236, 183, 129, 129,
1898 186, 236, 188, 189, 26, 27, 129, 129, 194, 129,
1899 236, 33, 198, 236, 236, 236, 202, 203, 204, 236,
1900 129, 129, 236, 209, 236, 236, 236, 129, 214, 129,
1901 236, 236, 236, 236, 236, 236, 236, 236, 236, 61,
1902 62, 63, 64, 236, 239, 236, 236, 236, 236, 129,
1903 129, 236, 236, 129, 76, 77, 78, 239, 217, 239,
1904 129, 236, 129, 129, 86, 87, 129, 236, 90, 236,
1905 236, 236, 129, 236, 236, 129, 236, 129, 236, 236,
1906 236, 236, 236, 236, 129, 236, 129, 236, 236, 236,
1907 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1908 236, 236, 129, 236, 236, 239, 129, 236, 236, 115,
1909 236, 236, 239, 129, 135, 236, 240, 236, 236, 236,
1910 236, 236, 236, 236, 236, 236, 236, 137, 135, 236,
1911 236, 236, 236, 236, 137, 236, 135, 236, 236, 236,
1912 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1913 236, 236, 236, 236, 236, 236, 224, 135, 236, 236,
1914 1233, 236, 236, 236, 236, 236, 236, 77, 504, 1335,
1915 1065, 236, 236, 591, 236, 236, 236, 236, 236, 519,
1916 236, 236, 1296, 236, 1294, 236, 236, 236, 236, 1272,
1917 1283, 535, 239, 239, 236, 236, 236, 236, 236, 236,
1918 236, 1166, 1281, 468, 221, 491, 241, 241, 241, 241,
1919 241, 241, 236, 239, 1306, 1299, 236, 236, 236, 604,
1920 1277, 397, 116, 577, 481, 167, 270, 96, 407, 1134,
1921 1136, -1, -1, 238, -1, -1, -1, -1, -1, -1,
1922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1923 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1924 -1, -1, -1, -1, -1, -1, 295, -1, -1, -1,
1925 -1, -1, -1, -1, -1, -1, -1, -1, 303, -1,
1926 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1928 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1929 -1, -1, -1, -1, -1, -1, -1, 345, -1, -1,
1930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1931 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1932 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1934 -1, -1, -1, 378
1935 };
1936
1937 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1938 symbol of state STATE-NUM. */
1939 static const yytype_uint16 yystos[] =
1940 {
1941 0, 243, 0, 1, 4, 16, 20, 22, 29, 41,
1942 46, 47, 66, 70, 83, 105, 106, 120, 137, 149,
1943 150, 174, 187, 192, 197, 200, 244, 249, 254, 280,
1944 286, 292, 300, 314, 334, 357, 371, 386, 393, 397,
1945 407, 416, 437, 443, 449, 453, 459, 514, 530, 236,
1946 237, 238, 238, 335, 417, 444, 238, 454, 238, 372,
1947 438, 358, 238, 287, 315, 387, 238, 238, 408, 238,
1948 293, 238, 398, 1, 30, 38, 107, 281, 282, 283,
1949 284, 285, 1, 26, 27, 33, 61, 62, 63, 64,
1950 76, 77, 78, 86, 87, 90, 515, 516, 517, 518,
1951 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
1952 529, 238, 238, 238, 1, 65, 450, 451, 452, 238,
1953 1, 6, 7, 9, 10, 14, 24, 25, 32, 35,
1954 36, 37, 42, 59, 60, 71, 74, 75, 85, 92,
1955 94, 96, 98, 101, 102, 113, 118, 119, 121, 122,
1956 123, 126, 151, 162, 163, 164, 165, 166, 167, 168,
1957 218, 219, 220, 222, 223, 231, 233, 460, 461, 462,
1958 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
1959 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1960 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
1961 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
1962 503, 507, 511, 512, 513, 238, 238, 238, 1, 104,
1963 125, 250, 251, 252, 253, 238, 238, 238, 1, 34,
1964 43, 44, 45, 48, 49, 53, 54, 55, 531, 532,
1965 533, 534, 535, 536, 537, 538, 539, 540, 541, 1,
1966 28, 30, 57, 68, 80, 81, 82, 93, 97, 107,
1967 110, 111, 139, 155, 158, 159, 160, 206, 229, 230,
1968 255, 256, 257, 258, 259, 260, 261, 262, 263, 267,
1969 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1970 278, 279, 238, 1, 227, 301, 302, 303, 304, 305,
1971 238, 1, 107, 394, 395, 396, 238, 236, 239, 239,
1972 239, 237, 282, 239, 239, 239, 239, 239, 239, 239,
1973 239, 239, 239, 239, 239, 239, 237, 516, 1, 18,
1974 19, 23, 67, 87, 88, 89, 91, 95, 100, 107,
1975 116, 117, 127, 148, 193, 336, 337, 338, 339, 340,
1976 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1977 351, 352, 353, 1, 3, 5, 20, 39, 56, 58,
1978 67, 79, 107, 128, 147, 156, 206, 229, 418, 419,
1979 420, 421, 422, 423, 424, 425, 426, 427, 428, 432,
1980 433, 434, 435, 436, 1, 65, 131, 445, 446, 447,
1981 448, 239, 237, 451, 1, 107, 131, 455, 456, 457,
1982 458, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1983 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1984 239, 239, 239, 239, 239, 239, 508, 504, 239, 239,
1985 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1986 239, 239, 239, 239, 239, 239, 239, 237, 461, 1,
1987 20, 39, 67, 124, 132, 133, 152, 228, 373, 374,
1988 375, 376, 377, 378, 379, 383, 384, 385, 1, 131,
1989 228, 439, 440, 441, 442, 1, 56, 65, 67, 128,
1990 359, 363, 364, 365, 369, 370, 236, 239, 239, 237,
1991 251, 1, 84, 180, 288, 289, 290, 291, 1, 20,
1992 39, 67, 107, 124, 156, 157, 208, 228, 232, 316,
1993 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
1994 330, 1, 41, 84, 131, 388, 389, 390, 391, 392,
1995 239, 239, 239, 239, 239, 239, 239, 239, 239, 237,
1996 532, 236, 239, 239, 239, 239, 264, 239, 239, 239,
1997 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
1998 239, 239, 237, 256, 1, 107, 225, 409, 410, 411,
1999 412, 236, 239, 237, 302, 180, 1, 107, 173, 191,
2000 207, 294, 295, 296, 297, 298, 299, 239, 237, 395,
2001 1, 107, 225, 228, 399, 400, 401, 402, 403, 129,
2002 129, 129, 236, 115, 115, 246, 217, 115, 246, 246,
2003 246, 115, 246, 246, 115, 115, 115, 236, 236, 239,
2004 239, 239, 354, 239, 239, 239, 239, 239, 239, 239,
2005 239, 239, 239, 239, 239, 237, 337, 236, 239, 239,
2006 239, 239, 239, 239, 429, 239, 239, 239, 239, 239,
2007 239, 239, 237, 419, 239, 239, 237, 446, 129, 236,
2008 239, 239, 237, 456, 217, 246, 115, 246, 246, 217,
2009 115, 217, 115, 115, 115, 217, 217, 217, 246, 115,
2010 115, 115, 115, 246, 115, 115, 115, 115, 217, 239,
2011 239, 217, 246, 246, 217, 217, 217, 217, 221, 217,
2012 221, 217, 217, 217, 217, 115, 246, 217, 246, 246,
2013 217, 115, 236, 236, 239, 239, 380, 239, 239, 239,
2014 239, 239, 237, 374, 239, 239, 237, 440, 236, 239,
2015 239, 360, 239, 237, 364, 129, 129, 236, 236, 239,
2016 239, 237, 289, 236, 239, 239, 331, 239, 239, 239,
2017 239, 327, 239, 239, 237, 317, 236, 239, 239, 239,
2018 237, 389, 217, 217, 246, 129, 217, 129, 217, 217,
2019 217, 236, 115, 129, 217, 129, 239, 129, 129, 115,
2020 115, 129, 129, 129, 129, 129, 129, 129, 129, 129,
2021 129, 129, 236, 236, 239, 413, 237, 410, 217, 236,
2022 238, 236, 239, 239, 239, 239, 237, 295, 129, 236,
2023 236, 239, 404, 239, 237, 400, 236, 236, 236, 236,
2024 140, 141, 142, 143, 144, 145, 146, 245, 246, 236,
2025 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
2026 236, 115, 115, 246, 239, 115, 115, 246, 115, 115,
2027 246, 129, 115, 115, 246, 115, 248, 248, 236, 129,
2028 184, 185, 129, 217, 129, 129, 239, 129, 129, 115,
2029 129, 129, 129, 129, 236, 129, 129, 236, 236, 129,
2030 129, 236, 236, 236, 236, 236, 236, 236, 236, 236,
2031 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
2032 236, 236, 236, 236, 236, 236, 236, 48, 170, 171,
2033 172, 175, 176, 178, 179, 181, 183, 186, 188, 189,
2034 194, 198, 202, 203, 204, 209, 214, 509, 510, 48,
2035 50, 51, 170, 171, 172, 175, 176, 178, 179, 181,
2036 183, 186, 188, 189, 194, 198, 202, 203, 204, 209,
2037 214, 505, 506, 236, 236, 236, 236, 236, 236, 236,
2038 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
2039 236, 236, 236, 236, 129, 217, 239, 129, 115, 129,
2040 129, 129, 236, 129, 129, 236, 129, 129, 239, 115,
2041 367, 368, 236, 236, 236, 129, 129, 236, 129, 217,
2042 239, 129, 129, 129, 217, 239, 129, 129, 236, 129,
2043 129, 129, 236, 236, 236, 236, 236, 236, 236, 236,
2044 236, 236, 236, 236, 236, 236, 17, 99, 103, 161,
2045 265, 266, 236, 236, 236, 236, 236, 236, 236, 236,
2046 236, 236, 236, 236, 236, 236, 236, 129, 239, 236,
2047 236, 1, 107, 201, 225, 306, 307, 308, 309, 310,
2048 129, 129, 129, 129, 236, 236, 129, 239, 129, 236,
2049 245, 245, 245, 245, 245, 245, 245, 236, 236, 236,
2050 52, 130, 355, 356, 236, 236, 236, 236, 236, 236,
2051 236, 236, 236, 236, 11, 12, 13, 247, 248, 236,
2052 236, 236, 236, 236, 236, 236, 236, 236, 8, 205,
2053 430, 431, 236, 236, 236, 236, 236, 236, 236, 236,
2054 236, 236, 236, 236, 240, 236, 240, 236, 236, 15,
2055 40, 73, 108, 109, 114, 138, 153, 216, 235, 381,
2056 382, 236, 236, 236, 236, 236, 236, 236, 236, 236,
2057 48, 196, 205, 361, 362, 224, 240, 366, 236, 236,
2058 236, 236, 4, 21, 22, 31, 69, 70, 72, 104,
2059 112, 134, 136, 137, 154, 177, 182, 186, 190, 195,
2060 199, 210, 212, 213, 215, 226, 234, 332, 333, 236,
2061 236, 236, 236, 48, 50, 51, 170, 171, 172, 175,
2062 176, 178, 179, 181, 183, 186, 188, 189, 194, 198,
2063 202, 203, 204, 209, 214, 328, 329, 236, 236, 236,
2064 236, 236, 236, 240, 236, 72, 137, 169, 177, 186,
2065 210, 212, 213, 226, 234, 414, 415, 236, 239, 239,
2066 311, 237, 307, 236, 236, 236, 236, 236, 72, 137,
2067 169, 177, 186, 210, 212, 213, 226, 234, 405, 406,
2068 236, 236, 240, 247, 247, 247, 236, 240, 510, 506,
2069 236, 240, 236, 240, 115, 368, 236, 241, 241, 241,
2070 241, 241, 241, 236, 240, 236, 240, 266, 236, 240,
2071 129, 211, 248, 239, 236, 236, 240, 356, 431, 382,
2072 362, 135, 137, 135, 137, 135, 135, 333, 329, 415,
2073 236, 236, 236, 70, 72, 120, 137, 176, 177, 228,
2074 234, 312, 313, 406, 236, 240, 313
2075 };
2076
2077 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2078 static const yytype_uint16 yyr1[] =
2079 {
2080 0, 242, 243, 243, 244, 244, 244, 244, 244, 244,
2081 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
2082 244, 244, 244, 244, 244, 244, 244, 244, 245, 245,
2083 246, 246, 246, 246, 246, 246, 246, 246, 247, 247,
2084 248, 248, 248, 248, 249, 250, 250, 251, 251, 251,
2085 252, 253, 254, 255, 255, 256, 256, 256, 256, 256,
2086 256, 256, 256, 256, 256, 256, 256, 256, 256, 256,
2087 256, 256, 256, 256, 256, 256, 257, 258, 259, 260,
2088 261, 262, 264, 263, 265, 265, 266, 266, 266, 266,
2089 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
2090 277, 278, 279, 280, 281, 281, 282, 282, 282, 282,
2091 283, 284, 285, 287, 286, 288, 288, 289, 289, 289,
2092 290, 291, 293, 292, 294, 294, 295, 295, 295, 295,
2093 295, 296, 297, 298, 299, 300, 301, 301, 302, 302,
2094 302, 303, 305, 304, 306, 306, 307, 307, 307, 307,
2095 308, 309, 309, 311, 310, 312, 312, 313, 313, 313,
2096 313, 313, 313, 313, 313, 315, 314, 316, 316, 317,
2097 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
2098 318, 319, 320, 321, 322, 323, 324, 325, 327, 326,
2099 328, 328, 329, 329, 329, 329, 329, 329, 329, 329,
2100 329, 329, 329, 329, 329, 329, 329, 329, 329, 329,
2101 329, 329, 329, 329, 331, 330, 332, 332, 333, 333,
2102 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
2103 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
2104 333, 333, 333, 333, 333, 333, 333, 335, 334, 336,
2105 336, 337, 337, 337, 337, 337, 337, 337, 337, 337,
2106 337, 337, 337, 337, 337, 337, 337, 337, 338, 339,
2107 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
2108 350, 351, 352, 354, 353, 355, 355, 356, 356, 358,
2109 357, 360, 359, 361, 361, 362, 362, 362, 363, 363,
2110 364, 364, 364, 364, 364, 366, 365, 367, 367, 368,
2111 368, 369, 370, 372, 371, 373, 373, 374, 374, 374,
2112 374, 374, 374, 374, 374, 374, 375, 376, 377, 378,
2113 380, 379, 381, 381, 382, 382, 382, 382, 382, 382,
2114 382, 382, 382, 382, 383, 384, 385, 387, 386, 388,
2115 388, 389, 389, 389, 389, 390, 391, 392, 393, 394,
2116 394, 395, 395, 396, 398, 397, 399, 399, 400, 400,
2117 400, 400, 401, 402, 404, 403, 405, 405, 406, 406,
2118 406, 406, 406, 406, 406, 406, 406, 406, 408, 407,
2119 409, 409, 410, 410, 410, 411, 413, 412, 414, 414,
2120 415, 415, 415, 415, 415, 415, 415, 415, 415, 415,
2121 417, 416, 418, 418, 419, 419, 419, 419, 419, 419,
2122 419, 419, 419, 419, 419, 419, 419, 419, 419, 420,
2123 421, 422, 423, 424, 425, 426, 427, 427, 429, 428,
2124 430, 430, 431, 431, 432, 433, 434, 435, 436, 438,
2125 437, 439, 439, 440, 440, 440, 441, 442, 444, 443,
2126 445, 445, 446, 446, 446, 447, 448, 449, 450, 450,
2127 451, 451, 452, 454, 453, 455, 455, 456, 456, 456,
2128 457, 458, 459, 460, 460, 461, 461, 461, 461, 461,
2129 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
2130 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
2131 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
2132 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
2133 461, 461, 462, 463, 464, 465, 466, 467, 468, 469,
2134 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
2135 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
2136 489, 490, 490, 491, 492, 493, 494, 495, 496, 497,
2137 498, 499, 500, 501, 502, 504, 503, 505, 505, 506,
2138 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
2139 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
2140 506, 508, 507, 509, 509, 510, 510, 510, 510, 510,
2141 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
2142 510, 510, 510, 510, 510, 511, 512, 513, 514, 515,
2143 515, 516, 516, 516, 516, 516, 516, 516, 516, 516,
2144 516, 516, 516, 516, 516, 517, 518, 519, 520, 521,
2145 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
2146 531, 532, 532, 532, 532, 532, 532, 532, 532, 532,
2147 532, 533, 534, 535, 536, 537, 538, 539, 540, 541
2148 };
2149
2150 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2151 static const yytype_uint8 yyr2[] =
2152 {
2153 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
2154 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2155 1, 1, 1, 1, 1, 1, 2, 2, 0, 1,
2156 2, 3, 3, 3, 3, 3, 3, 3, 0, 1,
2157 2, 3, 3, 3, 5, 2, 1, 1, 1, 2,
2158 4, 4, 5, 2, 1, 1, 1, 1, 1, 1,
2159 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2160 1, 1, 1, 1, 1, 2, 4, 4, 4, 4,
2161 4, 4, 0, 5, 3, 1, 1, 1, 1, 1,
2162 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2163 4, 4, 4, 5, 2, 1, 1, 1, 1, 2,
2164 4, 4, 4, 0, 6, 2, 1, 1, 1, 2,
2165 4, 4, 0, 6, 2, 1, 1, 1, 1, 1,
2166 2, 4, 4, 4, 4, 5, 2, 1, 1, 1,
2167 2, 4, 0, 6, 2, 1, 1, 1, 1, 2,
2168 4, 4, 4, 0, 5, 3, 1, 1, 1, 1,
2169 1, 1, 1, 1, 1, 0, 6, 2, 1, 1,
2170 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2171 4, 4, 4, 4, 4, 4, 4, 4, 0, 5,
2172 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2173 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2174 1, 1, 1, 1, 0, 5, 3, 1, 3, 1,
2175 3, 1, 3, 1, 1, 1, 1, 1, 1, 1,
2176 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
2177 1, 1, 3, 3, 1, 1, 1, 0, 6, 2,
2178 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2179 1, 1, 1, 1, 1, 1, 1, 2, 4, 4,
2180 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2181 4, 4, 4, 0, 5, 3, 1, 1, 1, 0,
2182 6, 0, 5, 3, 1, 1, 1, 1, 2, 1,
2183 1, 1, 1, 1, 2, 0, 5, 3, 1, 1,
2184 3, 4, 4, 0, 6, 2, 1, 1, 1, 1,
2185 1, 1, 1, 1, 1, 2, 4, 4, 4, 4,
2186 0, 5, 3, 1, 1, 1, 1, 1, 1, 1,
2187 1, 1, 1, 1, 4, 4, 4, 0, 6, 2,
2188 1, 1, 1, 1, 2, 4, 4, 4, 5, 2,
2189 1, 1, 1, 4, 0, 6, 2, 1, 1, 1,
2190 1, 2, 4, 4, 0, 5, 3, 1, 1, 1,
2191 1, 1, 1, 1, 1, 1, 1, 1, 0, 6,
2192 2, 1, 1, 1, 2, 4, 0, 5, 3, 1,
2193 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2194 0, 6, 2, 1, 1, 1, 1, 1, 1, 1,
2195 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
2196 4, 4, 4, 4, 4, 4, 4, 4, 0, 5,
2197 3, 1, 1, 1, 4, 4, 4, 4, 4, 0,
2198 6, 2, 1, 1, 1, 1, 4, 4, 0, 6,
2199 2, 1, 1, 1, 1, 4, 4, 5, 2, 1,
2200 1, 1, 4, 0, 6, 2, 1, 1, 1, 1,
2201 4, 4, 5, 2, 1, 1, 1, 1, 1, 1,
2202 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2203 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2204 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2205 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2206 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
2207 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2208 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2209 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2210 4, 4, 4, 4, 4, 0, 5, 3, 1, 1,
2211 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2212 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2213 1, 0, 5, 3, 1, 1, 1, 1, 1, 1,
2214 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2215 1, 1, 1, 1, 1, 4, 4, 4, 5, 2,
2216 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2217 1, 1, 1, 1, 1, 4, 4, 4, 4, 4,
2218 4, 4, 4, 4, 4, 4, 4, 4, 5, 2,
2219 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2220 1, 4, 4, 4, 4, 4, 4, 4, 4, 4
2221 };
2222
2223
2224 #define yyerrok (yyerrstatus = 0)
2225 #define yyclearin (yychar = YYEMPTY)
2226 #define YYEMPTY (-2)
2227 #define YYEOF 0
2228
2229 #define YYACCEPT goto yyacceptlab
2230 #define YYABORT goto yyabortlab
2231 #define YYERROR goto yyerrorlab
2232
2233
2234 #define YYRECOVERING() (!!yyerrstatus)
2235
2236 #define YYBACKUP(Token, Value) \
2237 do \
2238 if (yychar == YYEMPTY) \
2239 { \
2240 yychar = (Token); \
2241 yylval = (Value); \
2242 YYPOPSTACK (yylen); \
2243 yystate = *yyssp; \
2244 goto yybackup; \
2245 } \
2246 else \
2247 { \
2248 yyerror (YY_("syntax error: cannot back up")); \
2249 YYERROR; \
2250 } \
2251 while (0)
2252
2253 /* Error token number */
2254 #define YYTERROR 1
2255 #define YYERRCODE 256
2256
2257
2258
2259 /* Enable debugging if requested. */
2260 #if YYDEBUG
2261
2262 # ifndef YYFPRINTF
2263 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2264 # define YYFPRINTF fprintf
2265 # endif
2266
2267 # define YYDPRINTF(Args) \
2268 do { \
2269 if (yydebug) \
2270 YYFPRINTF Args; \
2271 } while (0)
2272
2273 /* This macro is provided for backward compatibility. */
2274 #ifndef YY_LOCATION_PRINT
2275 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2276 #endif
2277
2278
2279 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2280 do { \
2281 if (yydebug) \
2282 { \
2283 YYFPRINTF (stderr, "%s ", Title); \
2284 yy_symbol_print (stderr, \
2285 Type, Value); \
2286 YYFPRINTF (stderr, "\n"); \
2287 } \
2288 } while (0)
2289
2290
2291 /*----------------------------------------.
2292 | Print this symbol's value on YYOUTPUT. |
2293 `----------------------------------------*/
2294
2295 static void
2296 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2297 {
2298 FILE *yyo = yyoutput;
2299 YYUSE (yyo);
2300 if (!yyvaluep)
2301 return;
2302 # ifdef YYPRINT
2303 if (yytype < YYNTOKENS)
2304 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2305 # endif
2306 YYUSE (yytype);
2307 }
2308
2309
2310 /*--------------------------------.
2311 | Print this symbol on YYOUTPUT. |
2312 `--------------------------------*/
2313
2314 static void
2315 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2316 {
2317 YYFPRINTF (yyoutput, "%s %s (",
2318 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2319
2320 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2321 YYFPRINTF (yyoutput, ")");
2322 }
2323
2324 /*------------------------------------------------------------------.
2325 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2326 | TOP (included). |
2327 `------------------------------------------------------------------*/
2328
2329 static void
2330 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2331 {
2332 YYFPRINTF (stderr, "Stack now");
2333 for (; yybottom <= yytop; yybottom++)
2334 {
2335 int yybot = *yybottom;
2336 YYFPRINTF (stderr, " %d", yybot);
2337 }
2338 YYFPRINTF (stderr, "\n");
2339 }
2340
2341 # define YY_STACK_PRINT(Bottom, Top) \
2342 do { \
2343 if (yydebug) \
2344 yy_stack_print ((Bottom), (Top)); \
2345 } while (0)
2346
2347
2348 /*------------------------------------------------.
2349 | Report that the YYRULE is going to be reduced. |
2350 `------------------------------------------------*/
2351
2352 static void
2353 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2354 {
2355 unsigned long int yylno = yyrline[yyrule];
2356 int yynrhs = yyr2[yyrule];
2357 int yyi;
2358 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2359 yyrule - 1, yylno);
2360 /* The symbols being reduced. */
2361 for (yyi = 0; yyi < yynrhs; yyi++)
2362 {
2363 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2364 yy_symbol_print (stderr,
2365 yystos[yyssp[yyi + 1 - yynrhs]],
2366 &(yyvsp[(yyi + 1) - (yynrhs)])
2367 );
2368 YYFPRINTF (stderr, "\n");
2369 }
2370 }
2371
2372 # define YY_REDUCE_PRINT(Rule) \
2373 do { \
2374 if (yydebug) \
2375 yy_reduce_print (yyssp, yyvsp, Rule); \
2376 } while (0)
2377
2378 /* Nonzero means print parse trace. It is left uninitialized so that
2379 multiple parsers can coexist. */
2380 int yydebug;
2381 #else /* !YYDEBUG */
2382 # define YYDPRINTF(Args)
2383 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2384 # define YY_STACK_PRINT(Bottom, Top)
2385 # define YY_REDUCE_PRINT(Rule)
2386 #endif /* !YYDEBUG */
2387
2388
2389 /* YYINITDEPTH -- initial size of the parser's stacks. */
2390 #ifndef YYINITDEPTH
2391 # define YYINITDEPTH 200
2392 #endif
2393
2394 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2395 if the built-in stack extension method is used).
2396
2397 Do not make this value too large; the results are undefined if
2398 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2399 evaluated with infinite-precision integer arithmetic. */
2400
2401 #ifndef YYMAXDEPTH
2402 # define YYMAXDEPTH 10000
2403 #endif
2404
2405
2406 #if YYERROR_VERBOSE
2407
2408 # ifndef yystrlen
2409 # if defined __GLIBC__ && defined _STRING_H
2410 # define yystrlen strlen
2411 # else
2412 /* Return the length of YYSTR. */
2413 static YYSIZE_T
2414 yystrlen (const char *yystr)
2415 {
2416 YYSIZE_T yylen;
2417 for (yylen = 0; yystr[yylen]; yylen++)
2418 continue;
2419 return yylen;
2420 }
2421 # endif
2422 # endif
2423
2424 # ifndef yystpcpy
2425 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2426 # define yystpcpy stpcpy
2427 # else
2428 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2429 YYDEST. */
2430 static char *
2431 yystpcpy (char *yydest, const char *yysrc)
2432 {
2433 char *yyd = yydest;
2434 const char *yys = yysrc;
2435
2436 while ((*yyd++ = *yys++) != '\0')
2437 continue;
2438
2439 return yyd - 1;
2440 }
2441 # endif
2442 # endif
2443
2444 # ifndef yytnamerr
2445 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2446 quotes and backslashes, so that it's suitable for yyerror. The
2447 heuristic is that double-quoting is unnecessary unless the string
2448 contains an apostrophe, a comma, or backslash (other than
2449 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2450 null, do not copy; instead, return the length of what the result
2451 would have been. */
2452 static YYSIZE_T
2453 yytnamerr (char *yyres, const char *yystr)
2454 {
2455 if (*yystr == '"')
2456 {
2457 YYSIZE_T yyn = 0;
2458 char const *yyp = yystr;
2459
2460 for (;;)
2461 switch (*++yyp)
2462 {
2463 case '\'':
2464 case ',':
2465 goto do_not_strip_quotes;
2466
2467 case '\\':
2468 if (*++yyp != '\\')
2469 goto do_not_strip_quotes;
2470 /* Fall through. */
2471 default:
2472 if (yyres)
2473 yyres[yyn] = *yyp;
2474 yyn++;
2475 break;
2476
2477 case '"':
2478 if (yyres)
2479 yyres[yyn] = '\0';
2480 return yyn;
2481 }
2482 do_not_strip_quotes: ;
2483 }
2484
2485 if (! yyres)
2486 return yystrlen (yystr);
2487
2488 return yystpcpy (yyres, yystr) - yyres;
2489 }
2490 # endif
2491
2492 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2493 about the unexpected token YYTOKEN for the state stack whose top is
2494 YYSSP.
2495
2496 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2497 not large enough to hold the message. In that case, also set
2498 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2499 required number of bytes is too large to store. */
2500 static int
2501 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2502 yytype_int16 *yyssp, int yytoken)
2503 {
2504 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2505 YYSIZE_T yysize = yysize0;
2506 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2507 /* Internationalized format string. */
2508 const char *yyformat = YY_NULLPTR;
2509 /* Arguments of yyformat. */
2510 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2511 /* Number of reported tokens (one for the "unexpected", one per
2512 "expected"). */
2513 int yycount = 0;
2514
2515 /* There are many possibilities here to consider:
2516 - If this state is a consistent state with a default action, then
2517 the only way this function was invoked is if the default action
2518 is an error action. In that case, don't check for expected
2519 tokens because there are none.
2520 - The only way there can be no lookahead present (in yychar) is if
2521 this state is a consistent state with a default action. Thus,
2522 detecting the absence of a lookahead is sufficient to determine
2523 that there is no unexpected or expected token to report. In that
2524 case, just report a simple "syntax error".
2525 - Don't assume there isn't a lookahead just because this state is a
2526 consistent state with a default action. There might have been a
2527 previous inconsistent state, consistent state with a non-default
2528 action, or user semantic action that manipulated yychar.
2529 - Of course, the expected token list depends on states to have
2530 correct lookahead information, and it depends on the parser not
2531 to perform extra reductions after fetching a lookahead from the
2532 scanner and before detecting a syntax error. Thus, state merging
2533 (from LALR or IELR) and default reductions corrupt the expected
2534 token list. However, the list is correct for canonical LR with
2535 one exception: it will still contain any token that will not be
2536 accepted due to an error action in a later state.
2537 */
2538 if (yytoken != YYEMPTY)
2539 {
2540 int yyn = yypact[*yyssp];
2541 yyarg[yycount++] = yytname[yytoken];
2542 if (!yypact_value_is_default (yyn))
2543 {
2544 /* Start YYX at -YYN if negative to avoid negative indexes in
2545 YYCHECK. In other words, skip the first -YYN actions for
2546 this state because they are default actions. */
2547 int yyxbegin = yyn < 0 ? -yyn : 0;
2548 /* Stay within bounds of both yycheck and yytname. */
2549 int yychecklim = YYLAST - yyn + 1;
2550 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2551 int yyx;
2552
2553 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2554 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2555 && !yytable_value_is_error (yytable[yyx + yyn]))
2556 {
2557 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2558 {
2559 yycount = 1;
2560 yysize = yysize0;
2561 break;
2562 }
2563 yyarg[yycount++] = yytname[yyx];
2564 {
2565 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2566 if (! (yysize <= yysize1
2567 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2568 return 2;
2569 yysize = yysize1;
2570 }
2571 }
2572 }
2573 }
2574
2575 switch (yycount)
2576 {
2577 # define YYCASE_(N, S) \
2578 case N: \
2579 yyformat = S; \
2580 break
2581 YYCASE_(0, YY_("syntax error"));
2582 YYCASE_(1, YY_("syntax error, unexpected %s"));
2583 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2584 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2585 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2586 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2587 # undef YYCASE_
2588 }
2589
2590 {
2591 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2592 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2593 return 2;
2594 yysize = yysize1;
2595 }
2596
2597 if (*yymsg_alloc < yysize)
2598 {
2599 *yymsg_alloc = 2 * yysize;
2600 if (! (yysize <= *yymsg_alloc
2601 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2602 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2603 return 1;
2604 }
2605
2606 /* Avoid sprintf, as that infringes on the user's name space.
2607 Don't have undefined behavior even if the translation
2608 produced a string with the wrong number of "%s"s. */
2609 {
2610 char *yyp = *yymsg;
2611 int yyi = 0;
2612 while ((*yyp = *yyformat) != '\0')
2613 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2614 {
2615 yyp += yytnamerr (yyp, yyarg[yyi++]);
2616 yyformat += 2;
2617 }
2618 else
2619 {
2620 yyp++;
2621 yyformat++;
2622 }
2623 }
2624 return 0;
2625 }
2626 #endif /* YYERROR_VERBOSE */
2627
2628 /*-----------------------------------------------.
2629 | Release the memory associated to this symbol. |
2630 `-----------------------------------------------*/
2631
2632 static void
2633 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2634 {
2635 YYUSE (yyvaluep);
2636 if (!yymsg)
2637 yymsg = "Deleting";
2638 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2639
2640 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2641 YYUSE (yytype);
2642 YY_IGNORE_MAYBE_UNINITIALIZED_END
2643 }
2644
2645
2646
2647
2648 /* The lookahead symbol. */
2649 int yychar;
2650
2651 /* The semantic value of the lookahead symbol. */
2652 YYSTYPE yylval;
2653 /* Number of syntax errors so far. */
2654 int yynerrs;
2655
2656
2657 /*----------.
2658 | yyparse. |
2659 `----------*/
2660
2661 int
2662 yyparse (void)
2663 {
2664 int yystate;
2665 /* Number of tokens to shift before error messages enabled. */
2666 int yyerrstatus;
2667
2668 /* The stacks and their tools:
2669 'yyss': related to states.
2670 'yyvs': related to semantic values.
2671
2672 Refer to the stacks through separate pointers, to allow yyoverflow
2673 to reallocate them elsewhere. */
2674
2675 /* The state stack. */
2676 yytype_int16 yyssa[YYINITDEPTH];
2677 yytype_int16 *yyss;
2678 yytype_int16 *yyssp;
2679
2680 /* The semantic value stack. */
2681 YYSTYPE yyvsa[YYINITDEPTH];
2682 YYSTYPE *yyvs;
2683 YYSTYPE *yyvsp;
2684
2685 YYSIZE_T yystacksize;
2686
2687 int yyn;
2688 int yyresult;
2689 /* Lookahead token as an internal (translated) token number. */
2690 int yytoken = 0;
2691 /* The variables used to return semantic value and location from the
2692 action routines. */
2693 YYSTYPE yyval;
2694
2695 #if YYERROR_VERBOSE
2696 /* Buffer for error messages, and its allocated size. */
2697 char yymsgbuf[128];
2698 char *yymsg = yymsgbuf;
2699 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2700 #endif
2701
2702 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2703
2704 /* The number of symbols on the RHS of the reduced rule.
2705 Keep to zero when no symbol should be popped. */
2706 int yylen = 0;
2707
2708 yyssp = yyss = yyssa;
2709 yyvsp = yyvs = yyvsa;
2710 yystacksize = YYINITDEPTH;
2711
2712 YYDPRINTF ((stderr, "Starting parse\n"));
2713
2714 yystate = 0;
2715 yyerrstatus = 0;
2716 yynerrs = 0;
2717 yychar = YYEMPTY; /* Cause a token to be read. */
2718 goto yysetstate;
2719
2720 /*------------------------------------------------------------.
2721 | yynewstate -- Push a new state, which is found in yystate. |
2722 `------------------------------------------------------------*/
2723 yynewstate:
2724 /* In all cases, when you get here, the value and location stacks
2725 have just been pushed. So pushing a state here evens the stacks. */
2726 yyssp++;
2727
2728 yysetstate:
2729 *yyssp = yystate;
2730
2731 if (yyss + yystacksize - 1 <= yyssp)
2732 {
2733 /* Get the current used size of the three stacks, in elements. */
2734 YYSIZE_T yysize = yyssp - yyss + 1;
2735
2736 #ifdef yyoverflow
2737 {
2738 /* Give user a chance to reallocate the stack. Use copies of
2739 these so that the &'s don't force the real ones into
2740 memory. */
2741 YYSTYPE *yyvs1 = yyvs;
2742 yytype_int16 *yyss1 = yyss;
2743
2744 /* Each stack pointer address is followed by the size of the
2745 data in use in that stack, in bytes. This used to be a
2746 conditional around just the two extra args, but that might
2747 be undefined if yyoverflow is a macro. */
2748 yyoverflow (YY_("memory exhausted"),
2749 &yyss1, yysize * sizeof (*yyssp),
2750 &yyvs1, yysize * sizeof (*yyvsp),
2751 &yystacksize);
2752
2753 yyss = yyss1;
2754 yyvs = yyvs1;
2755 }
2756 #else /* no yyoverflow */
2757 # ifndef YYSTACK_RELOCATE
2758 goto yyexhaustedlab;
2759 # else
2760 /* Extend the stack our own way. */
2761 if (YYMAXDEPTH <= yystacksize)
2762 goto yyexhaustedlab;
2763 yystacksize *= 2;
2764 if (YYMAXDEPTH < yystacksize)
2765 yystacksize = YYMAXDEPTH;
2766
2767 {
2768 yytype_int16 *yyss1 = yyss;
2769 union yyalloc *yyptr =
2770 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2771 if (! yyptr)
2772 goto yyexhaustedlab;
2773 YYSTACK_RELOCATE (yyss_alloc, yyss);
2774 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2775 # undef YYSTACK_RELOCATE
2776 if (yyss1 != yyssa)
2777 YYSTACK_FREE (yyss1);
2778 }
2779 # endif
2780 #endif /* no yyoverflow */
2781
2782 yyssp = yyss + yysize - 1;
2783 yyvsp = yyvs + yysize - 1;
2784
2785 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2786 (unsigned long int) yystacksize));
2787
2788 if (yyss + yystacksize - 1 <= yyssp)
2789 YYABORT;
2790 }
2791
2792 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2793
2794 if (yystate == YYFINAL)
2795 YYACCEPT;
2796
2797 goto yybackup;
2798
2799 /*-----------.
2800 | yybackup. |
2801 `-----------*/
2802 yybackup:
2803
2804 /* Do appropriate processing given the current state. Read a
2805 lookahead token if we need one and don't already have one. */
2806
2807 /* First try to decide what to do without reference to lookahead token. */
2808 yyn = yypact[yystate];
2809 if (yypact_value_is_default (yyn))
2810 goto yydefault;
2811
2812 /* Not known => get a lookahead token if don't already have one. */
2813
2814 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2815 if (yychar == YYEMPTY)
2816 {
2817 YYDPRINTF ((stderr, "Reading a token: "));
2818 yychar = yylex ();
2819 }
2820
2821 if (yychar <= YYEOF)
2822 {
2823 yychar = yytoken = YYEOF;
2824 YYDPRINTF ((stderr, "Now at end of input.\n"));
2825 }
2826 else
2827 {
2828 yytoken = YYTRANSLATE (yychar);
2829 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2830 }
2831
2832 /* If the proper action on seeing token YYTOKEN is to reduce or to
2833 detect an error, take that action. */
2834 yyn += yytoken;
2835 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2836 goto yydefault;
2837 yyn = yytable[yyn];
2838 if (yyn <= 0)
2839 {
2840 if (yytable_value_is_error (yyn))
2841 goto yyerrlab;
2842 yyn = -yyn;
2843 goto yyreduce;
2844 }
2845
2846 /* Count tokens shifted since error; after three, turn off error
2847 status. */
2848 if (yyerrstatus)
2849 yyerrstatus--;
2850
2851 /* Shift the lookahead token. */
2852 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2853
2854 /* Discard the shifted token. */
2855 yychar = YYEMPTY;
2856
2857 yystate = yyn;
2858 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2859 *++yyvsp = yylval;
2860 YY_IGNORE_MAYBE_UNINITIALIZED_END
2861
2862 goto yynewstate;
2863
2864
2865 /*-----------------------------------------------------------.
2866 | yydefault -- do the default action for the current state. |
2867 `-----------------------------------------------------------*/
2868 yydefault:
2869 yyn = yydefact[yystate];
2870 if (yyn == 0)
2871 goto yyerrlab;
2872 goto yyreduce;
2873
2874
2875 /*-----------------------------.
2876 | yyreduce -- Do a reduction. |
2877 `-----------------------------*/
2878 yyreduce:
2879 /* yyn is the number of a rule to reduce with. */
2880 yylen = yyr2[yyn];
2881
2882 /* If YYLEN is nonzero, implement the default value of the action:
2883 '$$ = $1'.
2884
2885 Otherwise, the following line sets YYVAL to garbage.
2886 This behavior is undocumented and Bison
2887 users should not rely upon it. Assigning to YYVAL
2888 unconditionally makes the parser a bit smaller, and it avoids a
2889 GCC warning that YYVAL may be used uninitialized. */
2890 yyval = yyvsp[1-yylen];
2891
2892
2893 YY_REDUCE_PRINT (yyn);
2894 switch (yyn)
2895 {
2896 case 28:
2897 #line 411 "conf_parser.y" /* yacc.c:1646 */
2898 { (yyval.number) = 0; }
2899 #line 2900 "conf_parser.c" /* yacc.c:1646 */
2900 break;
2901
2902 case 30:
2903 #line 412 "conf_parser.y" /* yacc.c:1646 */
2904 { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2905 #line 2906 "conf_parser.c" /* yacc.c:1646 */
2906 break;
2907
2908 case 31:
2909 #line 413 "conf_parser.y" /* yacc.c:1646 */
2910 { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2911 #line 2912 "conf_parser.c" /* yacc.c:1646 */
2912 break;
2913
2914 case 32:
2915 #line 414 "conf_parser.y" /* yacc.c:1646 */
2916 { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2917 #line 2918 "conf_parser.c" /* yacc.c:1646 */
2918 break;
2919
2920 case 33:
2921 #line 415 "conf_parser.y" /* yacc.c:1646 */
2922 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2923 #line 2924 "conf_parser.c" /* yacc.c:1646 */
2924 break;
2925
2926 case 34:
2927 #line 416 "conf_parser.y" /* yacc.c:1646 */
2928 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2929 #line 2930 "conf_parser.c" /* yacc.c:1646 */
2930 break;
2931
2932 case 35:
2933 #line 417 "conf_parser.y" /* yacc.c:1646 */
2934 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2935 #line 2936 "conf_parser.c" /* yacc.c:1646 */
2936 break;
2937
2938 case 36:
2939 #line 418 "conf_parser.y" /* yacc.c:1646 */
2940 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2941 #line 2942 "conf_parser.c" /* yacc.c:1646 */
2942 break;
2943
2944 case 37:
2945 #line 419 "conf_parser.y" /* yacc.c:1646 */
2946 { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2947 #line 2948 "conf_parser.c" /* yacc.c:1646 */
2948 break;
2949
2950 case 38:
2951 #line 422 "conf_parser.y" /* yacc.c:1646 */
2952 { (yyval.number) = 0; }
2953 #line 2954 "conf_parser.c" /* yacc.c:1646 */
2954 break;
2955
2956 case 40:
2957 #line 423 "conf_parser.y" /* yacc.c:1646 */
2958 { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2959 #line 2960 "conf_parser.c" /* yacc.c:1646 */
2960 break;
2961
2962 case 41:
2963 #line 424 "conf_parser.y" /* yacc.c:1646 */
2964 { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2965 #line 2966 "conf_parser.c" /* yacc.c:1646 */
2966 break;
2967
2968 case 42:
2969 #line 425 "conf_parser.y" /* yacc.c:1646 */
2970 { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2971 #line 2972 "conf_parser.c" /* yacc.c:1646 */
2972 break;
2973
2974 case 43:
2975 #line 426 "conf_parser.y" /* yacc.c:1646 */
2976 { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2977 #line 2978 "conf_parser.c" /* yacc.c:1646 */
2978 break;
2979
2980 case 50:
2981 #line 439 "conf_parser.y" /* yacc.c:1646 */
2982 {
2983 if (conf_parser_ctx.pass == 2)
2984 add_conf_module(libio_basename(yylval.string));
2985 }
2986 #line 2987 "conf_parser.c" /* yacc.c:1646 */
2987 break;
2988
2989 case 51:
2990 #line 445 "conf_parser.y" /* yacc.c:1646 */
2991 {
2992 if (conf_parser_ctx.pass == 2)
2993 mod_add_path(yylval.string);
2994 }
2995 #line 2996 "conf_parser.c" /* yacc.c:1646 */
2996 break;
2997
2998 case 76:
2999 #line 481 "conf_parser.y" /* yacc.c:1646 */
3000 {
3001 if (conf_parser_ctx.pass == 2)
3002 {
3003 xfree(ConfigServerInfo.ssl_certificate_file);
3004 ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
3005 }
3006 }
3007 #line 3008 "conf_parser.c" /* yacc.c:1646 */
3008 break;
3009
3010 case 77:
3011 #line 490 "conf_parser.y" /* yacc.c:1646 */
3012 {
3013 if (conf_parser_ctx.pass == 2)
3014 {
3015 xfree(ConfigServerInfo.rsa_private_key_file);
3016 ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3017 }
3018 }
3019 #line 3020 "conf_parser.c" /* yacc.c:1646 */
3020 break;
3021
3022 case 78:
3023 #line 499 "conf_parser.y" /* yacc.c:1646 */
3024 {
3025 if (conf_parser_ctx.pass == 2)
3026 {
3027 xfree(ConfigServerInfo.ssl_dh_param_file);
3028 ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
3029 }
3030 }
3031 #line 3032 "conf_parser.c" /* yacc.c:1646 */
3032 break;
3033
3034 case 79:
3035 #line 508 "conf_parser.y" /* yacc.c:1646 */
3036 {
3037 if (conf_parser_ctx.pass == 2)
3038 {
3039 xfree(ConfigServerInfo.ssl_cipher_list);
3040 ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3041 }
3042 }
3043 #line 3044 "conf_parser.c" /* yacc.c:1646 */
3044 break;
3045
3046 case 80:
3047 #line 517 "conf_parser.y" /* yacc.c:1646 */
3048 {
3049 if (conf_parser_ctx.pass == 2)
3050 {
3051 xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3052 ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3053 }
3054 }
3055 #line 3056 "conf_parser.c" /* yacc.c:1646 */
3056 break;
3057
3058 case 81:
3059 #line 526 "conf_parser.y" /* yacc.c:1646 */
3060 {
3061 if (conf_parser_ctx.pass == 2)
3062 {
3063 xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3064 ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3065 }
3066 }
3067 #line 3068 "conf_parser.c" /* yacc.c:1646 */
3068 break;
3069
3070 case 82:
3071 #line 535 "conf_parser.y" /* yacc.c:1646 */
3072 {
3073 if (conf_parser_ctx.pass == 1)
3074 ConfigServerInfo.libgeoip_database_options = 0;
3075 }
3076 #line 3077 "conf_parser.c" /* yacc.c:1646 */
3077 break;
3078
3079 case 86:
3080 #line 542 "conf_parser.y" /* yacc.c:1646 */
3081 {
3082 #ifdef HAVE_LIBGEOIP
3083 if (conf_parser_ctx.pass == 1)
3084 ConfigServerInfo.libgeoip_database_options |= GEOIP_STANDARD;
3085 #endif
3086 }
3087 #line 3088 "conf_parser.c" /* yacc.c:1646 */
3088 break;
3089
3090 case 87:
3091 #line 548 "conf_parser.y" /* yacc.c:1646 */
3092 {
3093 #ifdef HAVE_LIBGEOIP
3094 if (conf_parser_ctx.pass == 1)
3095 ConfigServerInfo.libgeoip_database_options |= GEOIP_MEMORY_CACHE;
3096 #endif
3097 }
3098 #line 3099 "conf_parser.c" /* yacc.c:1646 */
3099 break;
3100
3101 case 88:
3102 #line 554 "conf_parser.y" /* yacc.c:1646 */
3103 {
3104 #ifdef HAVE_LIBGEOIP
3105 if (conf_parser_ctx.pass == 1)
3106 ConfigServerInfo.libgeoip_database_options |= GEOIP_MMAP_CACHE;
3107 #endif
3108 }
3109 #line 3110 "conf_parser.c" /* yacc.c:1646 */
3110 break;
3111
3112 case 89:
3113 #line 560 "conf_parser.y" /* yacc.c:1646 */
3114 {
3115 #ifdef HAVE_LIBGEOIP
3116 if (conf_parser_ctx.pass == 1)
3117 ConfigServerInfo.libgeoip_database_options |= GEOIP_CHECK_CACHE;
3118 #endif
3119 }
3120 #line 3121 "conf_parser.c" /* yacc.c:1646 */
3121 break;
3122
3123 case 90:
3124 #line 568 "conf_parser.y" /* yacc.c:1646 */
3125 {
3126 if (conf_parser_ctx.pass == 2)
3127 {
3128 xfree(ConfigServerInfo.libgeoip_ipv4_database_file);
3129 ConfigServerInfo.libgeoip_ipv4_database_file = xstrdup(yylval.string);
3130
3131 #ifdef HAVE_LIBGEOIP
3132 if (GeoIPv4_ctx)
3133 GeoIP_delete(GeoIPv4_ctx);
3134 GeoIPv4_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3135 #endif
3136 }
3137 }
3138 #line 3139 "conf_parser.c" /* yacc.c:1646 */
3139 break;
3140
3141 case 91:
3142 #line 583 "conf_parser.y" /* yacc.c:1646 */
3143 {
3144 if (conf_parser_ctx.pass == 2)
3145 {
3146 xfree(ConfigServerInfo.libgeoip_ipv6_database_file);
3147 ConfigServerInfo.libgeoip_ipv6_database_file = xstrdup(yylval.string);
3148
3149 #ifdef HAVE_LIBGEOIP
3150 if (GeoIPv6_ctx)
3151 GeoIP_delete(GeoIPv6_ctx);
3152 GeoIPv6_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3153 #endif
3154 }
3155 }
3156 #line 3157 "conf_parser.c" /* yacc.c:1646 */
3157 break;
3158
3159 case 92:
3160 #line 598 "conf_parser.y" /* yacc.c:1646 */
3161 {
3162 /* This isn't rehashable */
3163 if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3164 {
3165 if (valid_servname(yylval.string))
3166 ConfigServerInfo.name = xstrdup(yylval.string);
3167 else
3168 {
3169 conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3170 exit(EXIT_FAILURE);
3171 }
3172 }
3173 }
3174 #line 3175 "conf_parser.c" /* yacc.c:1646 */
3175 break;
3176
3177 case 93:
3178 #line 613 "conf_parser.y" /* yacc.c:1646 */
3179 {
3180 /* This isn't rehashable */
3181 if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3182 {
3183 if (valid_sid(yylval.string))
3184 ConfigServerInfo.sid = xstrdup(yylval.string);
3185 else
3186 {
3187 conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3188 exit(EXIT_FAILURE);
3189 }
3190 }
3191 }
3192 #line 3193 "conf_parser.c" /* yacc.c:1646 */
3193 break;
3194
3195 case 94:
3196 #line 628 "conf_parser.y" /* yacc.c:1646 */
3197 {
3198 if (conf_parser_ctx.pass == 2)
3199 {
3200 xfree(ConfigServerInfo.description);
3201 ConfigServerInfo.description = xstrdup(yylval.string);
3202 strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3203 }
3204 }
3205 #line 3206 "conf_parser.c" /* yacc.c:1646 */
3206 break;
3207
3208 case 95:
3209 #line 638 "conf_parser.y" /* yacc.c:1646 */
3210 {
3211 if (conf_parser_ctx.pass == 2)
3212 {
3213 char *p;
3214
3215 if ((p = strchr(yylval.string, ' ')))
3216 *p = '\0';
3217
3218 xfree(ConfigServerInfo.network_name);
3219 ConfigServerInfo.network_name = xstrdup(yylval.string);
3220 }
3221 }
3222 #line 3223 "conf_parser.c" /* yacc.c:1646 */
3223 break;
3224
3225 case 96:
3226 #line 652 "conf_parser.y" /* yacc.c:1646 */
3227 {
3228 if (conf_parser_ctx.pass != 2)
3229 break;
3230
3231 xfree(ConfigServerInfo.network_desc);
3232 ConfigServerInfo.network_desc = xstrdup(yylval.string);
3233 }
3234 #line 3235 "conf_parser.c" /* yacc.c:1646 */
3235 break;
3236
3237 case 97:
3238 #line 661 "conf_parser.y" /* yacc.c:1646 */
3239 {
3240 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3241 {
3242 struct addrinfo hints, *res;
3243
3244 memset(&hints, 0, sizeof(hints));
3245
3246 hints.ai_family = AF_UNSPEC;
3247 hints.ai_socktype = SOCK_STREAM;
3248 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3249
3250 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3251 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3252 else
3253 {
3254 assert(res);
3255
3256 memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3257 ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3258 ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3259 freeaddrinfo(res);
3260
3261 ConfigServerInfo.specific_ipv4_vhost = 1;
3262 }
3263 }
3264 }
3265 #line 3266 "conf_parser.c" /* yacc.c:1646 */
3266 break;
3267
3268 case 98:
3269 #line 689 "conf_parser.y" /* yacc.c:1646 */
3270 {
3271 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3272 {
3273 struct addrinfo hints, *res;
3274
3275 memset(&hints, 0, sizeof(hints));
3276
3277 hints.ai_family = AF_UNSPEC;
3278 hints.ai_socktype = SOCK_STREAM;
3279 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3280
3281 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3282 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3283 else
3284 {
3285 assert(res);
3286
3287 memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3288 ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3289 ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3290 freeaddrinfo(res);
3291
3292 ConfigServerInfo.specific_ipv6_vhost = 1;
3293 }
3294 }
3295 }
3296 #line 3297 "conf_parser.c" /* yacc.c:1646 */
3297 break;
3298
3299 case 99:
3300 #line 717 "conf_parser.y" /* yacc.c:1646 */
3301 {
3302 if (conf_parser_ctx.pass != 2)
3303 break;
3304
3305 if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3306 {
3307 char buf[IRCD_BUFSIZE] = "";
3308
3309 snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3310 conf_error_report(buf);
3311 ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3312 }
3313 else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3314 {
3315 char buf[IRCD_BUFSIZE] = "";
3316
3317 snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3318 conf_error_report(buf);
3319 ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3320 }
3321 else
3322 ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3323 }
3324 #line 3325 "conf_parser.c" /* yacc.c:1646 */
3325 break;
3326
3327 case 100:
3328 #line 742 "conf_parser.y" /* yacc.c:1646 */
3329 {
3330 if (conf_parser_ctx.pass != 2)
3331 break;
3332
3333 if ((yyvsp[-1].number) < 9)
3334 {
3335 conf_error_report("max_nick_length too low, setting to 9");
3336 ConfigServerInfo.max_nick_length = 9;
3337 }
3338 else if ((yyvsp[-1].number) > NICKLEN)
3339 {
3340 char buf[IRCD_BUFSIZE] = "";
3341
3342 snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3343 conf_error_report(buf);
3344 ConfigServerInfo.max_nick_length = NICKLEN;
3345 }
3346 else
3347 ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3348 }
3349 #line 3350 "conf_parser.c" /* yacc.c:1646 */
3350 break;
3351
3352 case 101:
3353 #line 764 "conf_parser.y" /* yacc.c:1646 */
3354 {
3355 if (conf_parser_ctx.pass != 2)
3356 break;
3357
3358 if ((yyvsp[-1].number) < 80)
3359 {
3360 conf_error_report("max_topic_length too low, setting to 80");
3361 ConfigServerInfo.max_topic_length = 80;
3362 }
3363 else if ((yyvsp[-1].number) > TOPICLEN)
3364 {
3365 char buf[IRCD_BUFSIZE] = "";
3366
3367 snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3368 conf_error_report(buf);
3369 ConfigServerInfo.max_topic_length = TOPICLEN;
3370 }
3371 else
3372 ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3373 }
3374 #line 3375 "conf_parser.c" /* yacc.c:1646 */
3375 break;
3376
3377 case 102:
3378 #line 786 "conf_parser.y" /* yacc.c:1646 */
3379 {
3380 if (conf_parser_ctx.pass == 2)
3381 ConfigServerInfo.hub = yylval.number;
3382 }
3383 #line 3384 "conf_parser.c" /* yacc.c:1646 */
3384 break;
3385
3386 case 110:
3387 #line 804 "conf_parser.y" /* yacc.c:1646 */
3388 {
3389 if (conf_parser_ctx.pass != 2)
3390 break;
3391
3392 xfree(ConfigAdminInfo.name);
3393 ConfigAdminInfo.name = xstrdup(yylval.string);
3394 }
3395 #line 3396 "conf_parser.c" /* yacc.c:1646 */
3396 break;
3397
3398 case 111:
3399 #line 813 "conf_parser.y" /* yacc.c:1646 */
3400 {
3401 if (conf_parser_ctx.pass != 2)
3402 break;
3403
3404 xfree(ConfigAdminInfo.email);
3405 ConfigAdminInfo.email = xstrdup(yylval.string);
3406 }
3407 #line 3408 "conf_parser.c" /* yacc.c:1646 */
3408 break;
3409
3410 case 112:
3411 #line 822 "conf_parser.y" /* yacc.c:1646 */
3412 {
3413 if (conf_parser_ctx.pass != 2)
3414 break;
3415
3416 xfree(ConfigAdminInfo.description);
3417 ConfigAdminInfo.description = xstrdup(yylval.string);
3418 }
3419 #line 3420 "conf_parser.c" /* yacc.c:1646 */
3420 break;
3421
3422 case 113:
3423 #line 835 "conf_parser.y" /* yacc.c:1646 */
3424 {
3425 if (conf_parser_ctx.pass == 2)
3426 reset_block_state();
3427 }
3428 #line 3429 "conf_parser.c" /* yacc.c:1646 */
3429 break;
3430
3431 case 114:
3432 #line 839 "conf_parser.y" /* yacc.c:1646 */
3433 {
3434 dlink_node *node = NULL;
3435
3436 if (conf_parser_ctx.pass != 2)
3437 break;
3438
3439 if (!block_state.file.buf[0])
3440 break;
3441
3442 DLINK_FOREACH(node, block_state.mask.list.head)
3443 motd_add(node->data, block_state.file.buf);
3444 }
3445 #line 3446 "conf_parser.c" /* yacc.c:1646 */
3446 break;
3447
3448 case 120:
3449 #line 856 "conf_parser.y" /* yacc.c:1646 */
3450 {
3451 if (conf_parser_ctx.pass == 2)
3452 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3453 }
3454 #line 3455 "conf_parser.c" /* yacc.c:1646 */
3455 break;
3456
3457 case 121:
3458 #line 862 "conf_parser.y" /* yacc.c:1646 */
3459 {
3460 if (conf_parser_ctx.pass == 2)
3461 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3462 }
3463 #line 3464 "conf_parser.c" /* yacc.c:1646 */
3464 break;
3465
3466 case 122:
3467 #line 872 "conf_parser.y" /* yacc.c:1646 */
3468 {
3469 if (conf_parser_ctx.pass == 2)
3470 reset_block_state();
3471 }
3472 #line 3473 "conf_parser.c" /* yacc.c:1646 */
3473 break;
3474
3475 case 123:
3476 #line 876 "conf_parser.y" /* yacc.c:1646 */
3477 {
3478 if (conf_parser_ctx.pass != 2)
3479 break;
3480
3481 if (!block_state.command.buf[0] ||
3482 !block_state.name.buf[0] ||
3483 !block_state.nick.buf[0] ||
3484 !block_state.host.buf[0])
3485 break;
3486
3487 pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3488 block_state.prepend.buf, block_state.command.buf);
3489 }
3490 #line 3491 "conf_parser.c" /* yacc.c:1646 */
3491 break;
3492
3493 case 131:
3494 #line 894 "conf_parser.y" /* yacc.c:1646 */
3495 {
3496 if (conf_parser_ctx.pass == 2)
3497 strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3498 }
3499 #line 3500 "conf_parser.c" /* yacc.c:1646 */
3500 break;
3501
3502 case 132:
3503 #line 900 "conf_parser.y" /* yacc.c:1646 */
3504 {
3505 if (conf_parser_ctx.pass == 2)
3506 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3507 }
3508 #line 3509 "conf_parser.c" /* yacc.c:1646 */
3509 break;
3510
3511 case 133:
3512 #line 906 "conf_parser.y" /* yacc.c:1646 */
3513 {
3514 if (conf_parser_ctx.pass == 2)
3515 strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3516 }
3517 #line 3518 "conf_parser.c" /* yacc.c:1646 */
3518 break;
3519
3520 case 134:
3521 #line 912 "conf_parser.y" /* yacc.c:1646 */
3522 {
3523 if (conf_parser_ctx.pass == 2)
3524 {
3525 struct split_nuh_item nuh;
3526
3527 nuh.nuhmask = yylval.string;
3528 nuh.nickptr = NULL;
3529 nuh.userptr = block_state.nick.buf;
3530 nuh.hostptr = block_state.host.buf;
3531 nuh.nicksize = 0;
3532 nuh.usersize = sizeof(block_state.nick.buf);
3533 nuh.hostsize = sizeof(block_state.host.buf);
3534
3535 split_nuh(&nuh);
3536 }
3537 }
3538 #line 3539 "conf_parser.c" /* yacc.c:1646 */
3539 break;
3540
3541 case 141:
3542 #line 940 "conf_parser.y" /* yacc.c:1646 */
3543 {
3544 if (conf_parser_ctx.pass == 2)
3545 ConfigLog.use_logging = yylval.number;
3546 }
3547 #line 3548 "conf_parser.c" /* yacc.c:1646 */
3548 break;
3549
3550 case 142:
3551 #line 946 "conf_parser.y" /* yacc.c:1646 */
3552 {
3553 if (conf_parser_ctx.pass == 2)
3554 reset_block_state();
3555 }
3556 #line 3557 "conf_parser.c" /* yacc.c:1646 */
3557 break;
3558
3559 case 143:
3560 #line 950 "conf_parser.y" /* yacc.c:1646 */
3561 {
3562 if (conf_parser_ctx.pass != 2)
3563 break;
3564
3565 if (block_state.type.value && block_state.file.buf[0])
3566 log_set_file(block_state.type.value, block_state.size.value,
3567 block_state.file.buf);
3568 }
3569 #line 3570 "conf_parser.c" /* yacc.c:1646 */
3570 break;
3571
3572 case 150:
3573 #line 966 "conf_parser.y" /* yacc.c:1646 */
3574 {
3575 if (conf_parser_ctx.pass != 2)
3576 break;
3577
3578 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3579 }
3580 #line 3581 "conf_parser.c" /* yacc.c:1646 */
3581 break;
3582
3583 case 151:
3584 #line 974 "conf_parser.y" /* yacc.c:1646 */
3585 {
3586 block_state.size.value = (yyvsp[-1].number);
3587 }
3588 #line 3589 "conf_parser.c" /* yacc.c:1646 */
3589 break;
3590
3591 case 152:
3592 #line 977 "conf_parser.y" /* yacc.c:1646 */
3593 {
3594 block_state.size.value = 0;
3595 }
3596 #line 3597 "conf_parser.c" /* yacc.c:1646 */
3597 break;
3598
3599 case 153:
3600 #line 982 "conf_parser.y" /* yacc.c:1646 */
3601 {
3602 if (conf_parser_ctx.pass == 2)
3603 block_state.type.value = 0;
3604 }
3605 #line 3606 "conf_parser.c" /* yacc.c:1646 */
3606 break;
3607
3608 case 157:
3609 #line 989 "conf_parser.y" /* yacc.c:1646 */
3610 {
3611 if (conf_parser_ctx.pass == 2)
3612 block_state.type.value = LOG_TYPE_USER;
3613 }
3614 #line 3615 "conf_parser.c" /* yacc.c:1646 */
3615 break;
3616
3617 case 158:
3618 #line 993 "conf_parser.y" /* yacc.c:1646 */
3619 {
3620 if (conf_parser_ctx.pass == 2)
3621 block_state.type.value = LOG_TYPE_OPER;
3622 }
3623 #line 3624 "conf_parser.c" /* yacc.c:1646 */
3624 break;
3625
3626 case 159:
3627 #line 997 "conf_parser.y" /* yacc.c:1646 */
3628 {
3629 if (conf_parser_ctx.pass == 2)
3630 block_state.type.value = LOG_TYPE_XLINE;
3631 }
3632 #line 3633 "conf_parser.c" /* yacc.c:1646 */
3633 break;
3634
3635 case 160:
3636 #line 1001 "conf_parser.y" /* yacc.c:1646 */
3637 {
3638 if (conf_parser_ctx.pass == 2)
3639 block_state.type.value = LOG_TYPE_RESV;
3640 }
3641 #line 3642 "conf_parser.c" /* yacc.c:1646 */
3642 break;
3643
3644 case 161:
3645 #line 1005 "conf_parser.y" /* yacc.c:1646 */
3646 {
3647 if (conf_parser_ctx.pass == 2)
3648 block_state.type.value = LOG_TYPE_DLINE;
3649 }
3650 #line 3651 "conf_parser.c" /* yacc.c:1646 */
3651 break;
3652
3653 case 162:
3654 #line 1009 "conf_parser.y" /* yacc.c:1646 */
3655 {
3656 if (conf_parser_ctx.pass == 2)
3657 block_state.type.value = LOG_TYPE_KLINE;
3658 }
3659 #line 3660 "conf_parser.c" /* yacc.c:1646 */
3660 break;
3661
3662 case 163:
3663 #line 1013 "conf_parser.y" /* yacc.c:1646 */
3664 {
3665 if (conf_parser_ctx.pass == 2)
3666 block_state.type.value = LOG_TYPE_KILL;
3667 }
3668 #line 3669 "conf_parser.c" /* yacc.c:1646 */
3669 break;
3670
3671 case 164:
3672 #line 1017 "conf_parser.y" /* yacc.c:1646 */
3673 {
3674 if (conf_parser_ctx.pass == 2)
3675 block_state.type.value = LOG_TYPE_DEBUG;
3676 }
3677 #line 3678 "conf_parser.c" /* yacc.c:1646 */
3678 break;
3679
3680 case 165:
3681 #line 1027 "conf_parser.y" /* yacc.c:1646 */
3682 {
3683 if (conf_parser_ctx.pass != 2)
3684 break;
3685
3686 reset_block_state();
3687 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3688 }
3689 #line 3690 "conf_parser.c" /* yacc.c:1646 */
3690 break;
3691
3692 case 166:
3693 #line 1034 "conf_parser.y" /* yacc.c:1646 */
3694 {
3695 dlink_node *node = NULL;
3696
3697 if (conf_parser_ctx.pass != 2)
3698 break;
3699
3700 if (!block_state.name.buf[0])
3701 break;
3702
3703 if (!block_state.rpass.buf[0])
3704 break;
3705
3706 DLINK_FOREACH(node, block_state.mask.list.head)
3707 {
3708 struct MaskItem *conf = NULL;
3709 struct split_nuh_item nuh;
3710 char *s = node->data;
3711
3712 if (EmptyString(s))
3713 continue;
3714
3715 nuh.nuhmask = s;
3716 nuh.nickptr = NULL;
3717 nuh.userptr = block_state.user.buf;
3718 nuh.hostptr = block_state.host.buf;
3719 nuh.nicksize = 0;
3720 nuh.usersize = sizeof(block_state.user.buf);
3721 nuh.hostsize = sizeof(block_state.host.buf);
3722 split_nuh(&nuh);
3723
3724 conf = conf_make(CONF_OPER);
3725 conf->name = xstrdup(block_state.name.buf);
3726 conf->user = xstrdup(block_state.user.buf);
3727 conf->host = xstrdup(block_state.host.buf);
3728
3729 if (block_state.cert.buf[0])
3730 conf->certfp = xstrdup(block_state.cert.buf);
3731
3732 if (block_state.rpass.buf[0])
3733 conf->passwd = xstrdup(block_state.rpass.buf);
3734
3735 if (block_state.whois.buf[0])
3736 conf->whois = xstrdup(block_state.whois.buf);
3737
3738 conf->flags = block_state.flags.value;
3739 conf->modes = block_state.modes.value;
3740 conf->port = block_state.port.value;
3741 conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3742
3743 conf_add_class_to_conf(conf, block_state.class.buf);
3744 }
3745 }
3746 #line 3747 "conf_parser.c" /* yacc.c:1646 */
3747 break;
3748
3749 case 180:
3750 #line 1101 "conf_parser.y" /* yacc.c:1646 */
3751 {
3752 if (conf_parser_ctx.pass == 2)
3753 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3754 }
3755 #line 3756 "conf_parser.c" /* yacc.c:1646 */
3756 break;
3757
3758 case 181:
3759 #line 1107 "conf_parser.y" /* yacc.c:1646 */
3760 {
3761 if (conf_parser_ctx.pass == 2)
3762 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3763 }
3764 #line 3765 "conf_parser.c" /* yacc.c:1646 */
3765 break;
3766
3767 case 182:
3768 #line 1113 "conf_parser.y" /* yacc.c:1646 */
3769 {
3770 if (conf_parser_ctx.pass == 2)
3771 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3772 }
3773 #line 3774 "conf_parser.c" /* yacc.c:1646 */
3774 break;
3775
3776 case 183:
3777 #line 1119 "conf_parser.y" /* yacc.c:1646 */
3778 {
3779 if (conf_parser_ctx.pass == 2)
3780 strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3781 }
3782 #line 3783 "conf_parser.c" /* yacc.c:1646 */
3783 break;
3784
3785 case 184:
3786 #line 1125 "conf_parser.y" /* yacc.c:1646 */
3787 {
3788 if (conf_parser_ctx.pass != 2)
3789 break;
3790
3791 if (yylval.number)
3792 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3793 else
3794 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3795 }
3796 #line 3797 "conf_parser.c" /* yacc.c:1646 */
3797 break;
3798
3799 case 185:
3800 #line 1136 "conf_parser.y" /* yacc.c:1646 */
3801 {
3802 if (conf_parser_ctx.pass == 2)
3803 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3804 }
3805 #line 3806 "conf_parser.c" /* yacc.c:1646 */
3806 break;
3807
3808 case 186:
3809 #line 1142 "conf_parser.y" /* yacc.c:1646 */
3810 {
3811 if (conf_parser_ctx.pass != 2)
3812 break;
3813
3814 if (yylval.number)
3815 block_state.flags.value |= CONF_FLAGS_SSL;
3816 else
3817 block_state.flags.value &= ~CONF_FLAGS_SSL;
3818 }
3819 #line 3820 "conf_parser.c" /* yacc.c:1646 */
3820 break;
3821
3822 case 187:
3823 #line 1153 "conf_parser.y" /* yacc.c:1646 */
3824 {
3825 if (conf_parser_ctx.pass == 2)
3826 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3827 }
3828 #line 3829 "conf_parser.c" /* yacc.c:1646 */
3829 break;
3830
3831 case 188:
3832 #line 1159 "conf_parser.y" /* yacc.c:1646 */
3833 {
3834 if (conf_parser_ctx.pass == 2)
3835 block_state.modes.value = 0;
3836 }
3837 #line 3838 "conf_parser.c" /* yacc.c:1646 */
3838 break;
3839
3840 case 192:
3841 #line 1166 "conf_parser.y" /* yacc.c:1646 */
3842 {
3843 if (conf_parser_ctx.pass == 2)
3844 block_state.modes.value |= UMODE_BOTS;
3845 }
3846 #line 3847 "conf_parser.c" /* yacc.c:1646 */
3847 break;
3848
3849 case 193:
3850 #line 1170 "conf_parser.y" /* yacc.c:1646 */
3851 {
3852 if (conf_parser_ctx.pass == 2)
3853 block_state.modes.value |= UMODE_CCONN;
3854 }
3855 #line 3856 "conf_parser.c" /* yacc.c:1646 */
3856 break;
3857
3858 case 194:
3859 #line 1174 "conf_parser.y" /* yacc.c:1646 */
3860 {
3861 if (conf_parser_ctx.pass == 2)
3862 block_state.modes.value |= UMODE_DEAF;
3863 }
3864 #line 3865 "conf_parser.c" /* yacc.c:1646 */
3865 break;
3866
3867 case 195:
3868 #line 1178 "conf_parser.y" /* yacc.c:1646 */
3869 {
3870 if (conf_parser_ctx.pass == 2)
3871 block_state.modes.value |= UMODE_DEBUG;
3872 }
3873 #line 3874 "conf_parser.c" /* yacc.c:1646 */
3874 break;
3875
3876 case 196:
3877 #line 1182 "conf_parser.y" /* yacc.c:1646 */
3878 {
3879 if (conf_parser_ctx.pass == 2)
3880 block_state.modes.value |= UMODE_FULL;
3881 }
3882 #line 3883 "conf_parser.c" /* yacc.c:1646 */
3883 break;
3884
3885 case 197:
3886 #line 1186 "conf_parser.y" /* yacc.c:1646 */
3887 {
3888 if (conf_parser_ctx.pass == 2)
3889 block_state.modes.value |= UMODE_HIDDEN;
3890 }
3891 #line 3892 "conf_parser.c" /* yacc.c:1646 */
3892 break;
3893
3894 case 198:
3895 #line 1190 "conf_parser.y" /* yacc.c:1646 */
3896 {
3897 if (conf_parser_ctx.pass == 2)
3898 block_state.modes.value |= UMODE_HIDECHANS;
3899 }
3900 #line 3901 "conf_parser.c" /* yacc.c:1646 */
3901 break;
3902
3903 case 199:
3904 #line 1194 "conf_parser.y" /* yacc.c:1646 */
3905 {
3906 if (conf_parser_ctx.pass == 2)
3907 block_state.modes.value |= UMODE_HIDEIDLE;
3908 }
3909 #line 3910 "conf_parser.c" /* yacc.c:1646 */
3910 break;
3911
3912 case 200:
3913 #line 1198 "conf_parser.y" /* yacc.c:1646 */
3914 {
3915 if (conf_parser_ctx.pass == 2)
3916 block_state.modes.value |= UMODE_SKILL;
3917 }
3918 #line 3919 "conf_parser.c" /* yacc.c:1646 */
3919 break;
3920
3921 case 201:
3922 #line 1202 "conf_parser.y" /* yacc.c:1646 */
3923 {
3924 if (conf_parser_ctx.pass == 2)
3925 block_state.modes.value |= UMODE_NCHANGE;
3926 }
3927 #line 3928 "conf_parser.c" /* yacc.c:1646 */
3928 break;
3929
3930 case 202:
3931 #line 1206 "conf_parser.y" /* yacc.c:1646 */
3932 {
3933 if (conf_parser_ctx.pass == 2)
3934 block_state.modes.value |= UMODE_REJ;
3935 }
3936 #line 3937 "conf_parser.c" /* yacc.c:1646 */
3937 break;
3938
3939 case 203:
3940 #line 1210 "conf_parser.y" /* yacc.c:1646 */
3941 {
3942 if (conf_parser_ctx.pass == 2)
3943 block_state.modes.value |= UMODE_UNAUTH;
3944 }
3945 #line 3946 "conf_parser.c" /* yacc.c:1646 */
3946 break;
3947
3948 case 204:
3949 #line 1214 "conf_parser.y" /* yacc.c:1646 */
3950 {
3951 if (conf_parser_ctx.pass == 2)
3952 block_state.modes.value |= UMODE_SPY;
3953 }
3954 #line 3955 "conf_parser.c" /* yacc.c:1646 */
3955 break;
3956
3957 case 205:
3958 #line 1218 "conf_parser.y" /* yacc.c:1646 */
3959 {
3960 if (conf_parser_ctx.pass == 2)
3961 block_state.modes.value |= UMODE_EXTERNAL;
3962 }
3963 #line 3964 "conf_parser.c" /* yacc.c:1646 */
3964 break;
3965
3966 case 206:
3967 #line 1222 "conf_parser.y" /* yacc.c:1646 */
3968 {
3969 if (conf_parser_ctx.pass == 2)
3970 block_state.modes.value |= UMODE_SERVNOTICE;
3971 }
3972 #line 3973 "conf_parser.c" /* yacc.c:1646 */
3973 break;
3974
3975 case 207:
3976 #line 1226 "conf_parser.y" /* yacc.c:1646 */
3977 {
3978 if (conf_parser_ctx.pass == 2)
3979 block_state.modes.value |= UMODE_INVISIBLE;
3980 }
3981 #line 3982 "conf_parser.c" /* yacc.c:1646 */
3982 break;
3983
3984 case 208:
3985 #line 1230 "conf_parser.y" /* yacc.c:1646 */
3986 {
3987 if (conf_parser_ctx.pass == 2)
3988 block_state.modes.value |= UMODE_WALLOP;
3989 }
3990 #line 3991 "conf_parser.c" /* yacc.c:1646 */
3991 break;
3992
3993 case 209:
3994 #line 1234 "conf_parser.y" /* yacc.c:1646 */
3995 {
3996 if (conf_parser_ctx.pass == 2)
3997 block_state.modes.value |= UMODE_SOFTCALLERID;
3998 }
3999 #line 4000 "conf_parser.c" /* yacc.c:1646 */
4000 break;
4001
4002 case 210:
4003 #line 1238 "conf_parser.y" /* yacc.c:1646 */
4004 {
4005 if (conf_parser_ctx.pass == 2)
4006 block_state.modes.value |= UMODE_CALLERID;
4007 }
4008 #line 4009 "conf_parser.c" /* yacc.c:1646 */
4009 break;
4010
4011 case 211:
4012 #line 1242 "conf_parser.y" /* yacc.c:1646 */
4013 {
4014 if (conf_parser_ctx.pass == 2)
4015 block_state.modes.value |= UMODE_LOCOPS;
4016 }
4017 #line 4018 "conf_parser.c" /* yacc.c:1646 */
4018 break;
4019
4020 case 212:
4021 #line 1246 "conf_parser.y" /* yacc.c:1646 */
4022 {
4023 if (conf_parser_ctx.pass == 2)
4024 block_state.modes.value |= UMODE_REGONLY;
4025 }
4026 #line 4027 "conf_parser.c" /* yacc.c:1646 */
4027 break;
4028
4029 case 213:
4030 #line 1250 "conf_parser.y" /* yacc.c:1646 */
4031 {
4032 if (conf_parser_ctx.pass == 2)
4033 block_state.modes.value |= UMODE_FARCONNECT;
4034 }
4035 #line 4036 "conf_parser.c" /* yacc.c:1646 */
4036 break;
4037
4038 case 214:
4039 #line 1256 "conf_parser.y" /* yacc.c:1646 */
4040 {
4041 if (conf_parser_ctx.pass == 2)
4042 block_state.port.value = 0;
4043 }
4044 #line 4045 "conf_parser.c" /* yacc.c:1646 */
4045 break;
4046
4047 case 218:
4048 #line 1263 "conf_parser.y" /* yacc.c:1646 */
4049 {
4050 if (conf_parser_ctx.pass == 2)
4051 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4052 }
4053 #line 4054 "conf_parser.c" /* yacc.c:1646 */
4054 break;
4055
4056 case 219:
4057 #line 1267 "conf_parser.y" /* yacc.c:1646 */
4058 {
4059 if (conf_parser_ctx.pass == 2)
4060 block_state.port.value |= OPER_FLAG_KILL;
4061 }
4062 #line 4063 "conf_parser.c" /* yacc.c:1646 */
4063 break;
4064
4065 case 220:
4066 #line 1271 "conf_parser.y" /* yacc.c:1646 */
4067 {
4068 if (conf_parser_ctx.pass == 2)
4069 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4070 }
4071 #line 4072 "conf_parser.c" /* yacc.c:1646 */
4072 break;
4073
4074 case 221:
4075 #line 1275 "conf_parser.y" /* yacc.c:1646 */
4076 {
4077 if (conf_parser_ctx.pass == 2)
4078 block_state.port.value |= OPER_FLAG_CONNECT;
4079 }
4080 #line 4081 "conf_parser.c" /* yacc.c:1646 */
4081 break;
4082
4083 case 222:
4084 #line 1279 "conf_parser.y" /* yacc.c:1646 */
4085 {
4086 if (conf_parser_ctx.pass == 2)
4087 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4088 }
4089 #line 4090 "conf_parser.c" /* yacc.c:1646 */
4090 break;
4091
4092 case 223:
4093 #line 1283 "conf_parser.y" /* yacc.c:1646 */
4094 {
4095 if (conf_parser_ctx.pass == 2)
4096 block_state.port.value |= OPER_FLAG_SQUIT;
4097 }
4098 #line 4099 "conf_parser.c" /* yacc.c:1646 */
4099 break;
4100
4101 case 224:
4102 #line 1287 "conf_parser.y" /* yacc.c:1646 */
4103 {
4104 if (conf_parser_ctx.pass == 2)
4105 block_state.port.value |= OPER_FLAG_KLINE;
4106 }
4107 #line 4108 "conf_parser.c" /* yacc.c:1646 */
4108 break;
4109
4110 case 225:
4111 #line 1291 "conf_parser.y" /* yacc.c:1646 */
4112 {
4113 if (conf_parser_ctx.pass == 2)
4114 block_state.port.value |= OPER_FLAG_UNKLINE;
4115 }
4116 #line 4117 "conf_parser.c" /* yacc.c:1646 */
4117 break;
4118
4119 case 226:
4120 #line 1295 "conf_parser.y" /* yacc.c:1646 */
4121 {
4122 if (conf_parser_ctx.pass == 2)
4123 block_state.port.value |= OPER_FLAG_DLINE;
4124 }
4125 #line 4126 "conf_parser.c" /* yacc.c:1646 */
4126 break;
4127
4128 case 227:
4129 #line 1299 "conf_parser.y" /* yacc.c:1646 */
4130 {
4131 if (conf_parser_ctx.pass == 2)
4132 block_state.port.value |= OPER_FLAG_UNDLINE;
4133 }
4134 #line 4135 "conf_parser.c" /* yacc.c:1646 */
4135 break;
4136
4137 case 228:
4138 #line 1303 "conf_parser.y" /* yacc.c:1646 */
4139 {
4140 if (conf_parser_ctx.pass == 2)
4141 block_state.port.value |= OPER_FLAG_XLINE;
4142 }
4143 #line 4144 "conf_parser.c" /* yacc.c:1646 */
4144 break;
4145
4146 case 229:
4147 #line 1307 "conf_parser.y" /* yacc.c:1646 */
4148 {
4149 if (conf_parser_ctx.pass == 2)
4150 block_state.port.value |= OPER_FLAG_UNXLINE;
4151 }
4152 #line 4153 "conf_parser.c" /* yacc.c:1646 */
4153 break;
4154
4155 case 230:
4156 #line 1311 "conf_parser.y" /* yacc.c:1646 */
4157 {
4158 if (conf_parser_ctx.pass == 2)
4159 block_state.port.value |= OPER_FLAG_DIE;
4160 }
4161 #line 4162 "conf_parser.c" /* yacc.c:1646 */
4162 break;
4163
4164 case 231:
4165 #line 1315 "conf_parser.y" /* yacc.c:1646 */
4166 {
4167 if (conf_parser_ctx.pass == 2)
4168 block_state.port.value |= OPER_FLAG_RESTART;
4169 }
4170 #line 4171 "conf_parser.c" /* yacc.c:1646 */
4171 break;
4172
4173 case 232:
4174 #line 1319 "conf_parser.y" /* yacc.c:1646 */
4175 {
4176 if (conf_parser_ctx.pass == 2)
4177 block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4178 }
4179 #line 4180 "conf_parser.c" /* yacc.c:1646 */
4180 break;
4181
4182 case 233:
4183 #line 1323 "conf_parser.y" /* yacc.c:1646 */
4184 {
4185 if (conf_parser_ctx.pass == 2)
4186 block_state.port.value |= OPER_FLAG_REHASH;
4187 }
4188 #line 4189 "conf_parser.c" /* yacc.c:1646 */
4189 break;
4190
4191 case 234:
4192 #line 1327 "conf_parser.y" /* yacc.c:1646 */
4193 {
4194 if (conf_parser_ctx.pass == 2)
4195 block_state.port.value |= OPER_FLAG_ADMIN;
4196 }
4197 #line 4198 "conf_parser.c" /* yacc.c:1646 */
4198 break;
4199
4200 case 235:
4201 #line 1331 "conf_parser.y" /* yacc.c:1646 */
4202 {
4203 if (conf_parser_ctx.pass == 2)
4204 block_state.port.value |= OPER_FLAG_GLOBOPS;
4205 }
4206 #line 4207 "conf_parser.c" /* yacc.c:1646 */
4207 break;
4208
4209 case 236:
4210 #line 1335 "conf_parser.y" /* yacc.c:1646 */
4211 {
4212 if (conf_parser_ctx.pass == 2)
4213 block_state.port.value |= OPER_FLAG_WALLOPS;
4214 }
4215 #line 4216 "conf_parser.c" /* yacc.c:1646 */
4216 break;
4217
4218 case 237:
4219 #line 1339 "conf_parser.y" /* yacc.c:1646 */
4220 {
4221 if (conf_parser_ctx.pass == 2)
4222 block_state.port.value |= OPER_FLAG_LOCOPS;
4223 }
4224 #line 4225 "conf_parser.c" /* yacc.c:1646 */
4225 break;
4226
4227 case 238:
4228 #line 1343 "conf_parser.y" /* yacc.c:1646 */
4229 {
4230 if (conf_parser_ctx.pass == 2)
4231 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4232 }
4233 #line 4234 "conf_parser.c" /* yacc.c:1646 */
4234 break;
4235
4236 case 239:
4237 #line 1347 "conf_parser.y" /* yacc.c:1646 */
4238 {
4239 if (conf_parser_ctx.pass == 2)
4240 block_state.port.value |= OPER_FLAG_SET;
4241 }
4242 #line 4243 "conf_parser.c" /* yacc.c:1646 */
4243 break;
4244
4245 case 240:
4246 #line 1351 "conf_parser.y" /* yacc.c:1646 */
4247 {
4248 if (conf_parser_ctx.pass == 2)
4249 block_state.port.value |= OPER_FLAG_MODULE;
4250 }
4251 #line 4252 "conf_parser.c" /* yacc.c:1646 */
4252 break;
4253
4254 case 241:
4255 #line 1355 "conf_parser.y" /* yacc.c:1646 */
4256 {
4257 if (conf_parser_ctx.pass == 2)
4258 block_state.port.value |= OPER_FLAG_OPME;
4259 }
4260 #line 4261 "conf_parser.c" /* yacc.c:1646 */
4261 break;
4262
4263 case 242:
4264 #line 1359 "conf_parser.y" /* yacc.c:1646 */
4265 {
4266 if (conf_parser_ctx.pass == 2)
4267 block_state.port.value |= OPER_FLAG_NICK_RESV;
4268 }
4269 #line 4270 "conf_parser.c" /* yacc.c:1646 */
4270 break;
4271
4272 case 243:
4273 #line 1363 "conf_parser.y" /* yacc.c:1646 */
4274 {
4275 if (conf_parser_ctx.pass == 2)
4276 block_state.port.value |= OPER_FLAG_JOIN_RESV;
4277 }
4278 #line 4279 "conf_parser.c" /* yacc.c:1646 */
4279 break;
4280
4281 case 244:
4282 #line 1367 "conf_parser.y" /* yacc.c:1646 */
4283 {
4284 if (conf_parser_ctx.pass == 2)
4285 block_state.port.value |= OPER_FLAG_RESV;
4286 }
4287 #line 4288 "conf_parser.c" /* yacc.c:1646 */
4288 break;
4289
4290 case 245:
4291 #line 1371 "conf_parser.y" /* yacc.c:1646 */
4292 {
4293 if (conf_parser_ctx.pass == 2)
4294 block_state.port.value |= OPER_FLAG_UNRESV;
4295 }
4296 #line 4297 "conf_parser.c" /* yacc.c:1646 */
4297 break;
4298
4299 case 246:
4300 #line 1375 "conf_parser.y" /* yacc.c:1646 */
4301 {
4302 if (conf_parser_ctx.pass == 2)
4303 block_state.port.value |= OPER_FLAG_CLOSE;
4304 }
4305 #line 4306 "conf_parser.c" /* yacc.c:1646 */
4306 break;
4307
4308 case 247:
4309 #line 1385 "conf_parser.y" /* yacc.c:1646 */
4310 {
4311 if (conf_parser_ctx.pass != 1)
4312 break;
4313
4314 reset_block_state();
4315
4316 block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4317 block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4318 block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4319 block_state.max_sendq.value = DEFAULT_SENDQ;
4320 block_state.max_recvq.value = DEFAULT_RECVQ;
4321 }
4322 #line 4323 "conf_parser.c" /* yacc.c:1646 */
4323 break;
4324
4325 case 248:
4326 #line 1397 "conf_parser.y" /* yacc.c:1646 */
4327 {
4328 struct ClassItem *class = NULL;
4329
4330 if (conf_parser_ctx.pass != 1)
4331 break;
4332
4333 if (!block_state.class.buf[0])
4334 break;
4335
4336 if (!(class = class_find(block_state.class.buf, 0)))
4337 class = class_make();
4338
4339 class->active = 1;
4340 xfree(class->name);
4341 class->name = xstrdup(block_state.class.buf);
4342 class->ping_freq = block_state.ping_freq.value;
4343 class->max_perip = block_state.max_perip.value;
4344 class->con_freq = block_state.con_freq.value;
4345 class->max_total = block_state.max_total.value;
4346 class->max_global = block_state.max_global.value;
4347 class->max_local = block_state.max_local.value;
4348 class->max_sendq = block_state.max_sendq.value;
4349 class->max_recvq = block_state.max_recvq.value;
4350 class->max_channels = block_state.max_channels.value;
4351
4352 if (block_state.min_idle.value > block_state.max_idle.value)
4353 {
4354 block_state.min_idle.value = 0;
4355 block_state.max_idle.value = 0;
4356 block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4357 }
4358
4359 class->flags = block_state.flags.value;
4360 class->min_idle = block_state.min_idle.value;
4361 class->max_idle = block_state.max_idle.value;
4362
4363 rebuild_cidr_list(class);
4364
4365 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4366 class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4367 class->number_per_cidr = block_state.number_per_cidr.value;
4368 }
4369 #line 4370 "conf_parser.c" /* yacc.c:1646 */
4370 break;
4371
4372 case 268:
4373 #line 1460 "conf_parser.y" /* yacc.c:1646 */
4374 {
4375 if (conf_parser_ctx.pass == 1)
4376 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4377 }
4378 #line 4379 "conf_parser.c" /* yacc.c:1646 */
4379 break;
4380
4381 case 269:
4382 #line 1466 "conf_parser.y" /* yacc.c:1646 */
4383 {
4384 if (conf_parser_ctx.pass == 1)
4385 block_state.ping_freq.value = (yyvsp[-1].number);
4386 }
4387 #line 4388 "conf_parser.c" /* yacc.c:1646 */
4388 break;
4389
4390 case 270:
4391 #line 1472 "conf_parser.y" /* yacc.c:1646 */
4392 {
4393 if (conf_parser_ctx.pass == 1)
4394 block_state.max_perip.value = (yyvsp[-1].number);
4395 }
4396 #line 4397 "conf_parser.c" /* yacc.c:1646 */
4397 break;
4398
4399 case 271:
4400 #line 1478 "conf_parser.y" /* yacc.c:1646 */
4401 {
4402 if (conf_parser_ctx.pass == 1)
4403 block_state.con_freq.value = (yyvsp[-1].number);
4404 }
4405 #line 4406 "conf_parser.c" /* yacc.c:1646 */
4406 break;
4407
4408 case 272:
4409 #line 1484 "conf_parser.y" /* yacc.c:1646 */
4410 {
4411 if (conf_parser_ctx.pass == 1)
4412 block_state.max_channels.value = (yyvsp[-1].number);
4413 }
4414 #line 4415 "conf_parser.c" /* yacc.c:1646 */
4415 break;
4416
4417 case 273:
4418 #line 1490 "conf_parser.y" /* yacc.c:1646 */
4419 {
4420 if (conf_parser_ctx.pass == 1)
4421 block_state.max_total.value = (yyvsp[-1].number);
4422 }
4423 #line 4424 "conf_parser.c" /* yacc.c:1646 */
4424 break;
4425
4426 case 274:
4427 #line 1496 "conf_parser.y" /* yacc.c:1646 */
4428 {
4429 if (conf_parser_ctx.pass == 1)
4430 block_state.max_global.value = (yyvsp[-1].number);
4431 }
4432 #line 4433 "conf_parser.c" /* yacc.c:1646 */
4433 break;
4434
4435 case 275:
4436 #line 1502 "conf_parser.y" /* yacc.c:1646 */
4437 {
4438 if (conf_parser_ctx.pass == 1)
4439 block_state.max_local.value = (yyvsp[-1].number);
4440 }
4441 #line 4442 "conf_parser.c" /* yacc.c:1646 */
4442 break;
4443
4444 case 276:
4445 #line 1508 "conf_parser.y" /* yacc.c:1646 */
4446 {
4447 if (conf_parser_ctx.pass == 1)
4448 block_state.max_sendq.value = (yyvsp[-1].number);
4449 }
4450 #line 4451 "conf_parser.c" /* yacc.c:1646 */
4451 break;
4452
4453 case 277:
4454 #line 1514 "conf_parser.y" /* yacc.c:1646 */
4455 {
4456 if (conf_parser_ctx.pass == 1)
4457 if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4458 block_state.max_recvq.value = (yyvsp[-1].number);
4459 }
4460 #line 4461 "conf_parser.c" /* yacc.c:1646 */
4461 break;
4462
4463 case 278:
4464 #line 1521 "conf_parser.y" /* yacc.c:1646 */
4465 {
4466 if (conf_parser_ctx.pass == 1)
4467 block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4468 }
4469 #line 4470 "conf_parser.c" /* yacc.c:1646 */
4470 break;
4471
4472 case 279:
4473 #line 1527 "conf_parser.y" /* yacc.c:1646 */
4474 {
4475 if (conf_parser_ctx.pass == 1)
4476 block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4477 }
4478 #line 4479 "conf_parser.c" /* yacc.c:1646 */
4479 break;
4480
4481 case 280:
4482 #line 1533 "conf_parser.y" /* yacc.c:1646 */
4483 {
4484 if (conf_parser_ctx.pass == 1)
4485 block_state.number_per_cidr.value = (yyvsp[-1].number);
4486 }
4487 #line 4488 "conf_parser.c" /* yacc.c:1646 */
4488 break;
4489
4490 case 281:
4491 #line 1539 "conf_parser.y" /* yacc.c:1646 */
4492 {
4493 if (conf_parser_ctx.pass != 1)
4494 break;
4495
4496 block_state.min_idle.value = (yyvsp[-1].number);
4497 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4498 }
4499 #line 4500 "conf_parser.c" /* yacc.c:1646 */
4500 break;
4501
4502 case 282:
4503 #line 1548 "conf_parser.y" /* yacc.c:1646 */
4504 {
4505 if (conf_parser_ctx.pass != 1)
4506 break;
4507
4508 block_state.max_idle.value = (yyvsp[-1].number);
4509 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4510 }
4511 #line 4512 "conf_parser.c" /* yacc.c:1646 */
4512 break;
4513
4514 case 283:
4515 #line 1557 "conf_parser.y" /* yacc.c:1646 */
4516 {
4517 if (conf_parser_ctx.pass == 1)
4518 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4519 }
4520 #line 4521 "conf_parser.c" /* yacc.c:1646 */
4521 break;
4522
4523 case 287:
4524 #line 1564 "conf_parser.y" /* yacc.c:1646 */
4525 {
4526 if (conf_parser_ctx.pass == 1)
4527 block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4528 }
4529 #line 4530 "conf_parser.c" /* yacc.c:1646 */
4530 break;
4531
4532 case 288:
4533 #line 1568 "conf_parser.y" /* yacc.c:1646 */
4534 {
4535 if (conf_parser_ctx.pass == 1)
4536 block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4537 }
4538 #line 4539 "conf_parser.c" /* yacc.c:1646 */
4539 break;
4540
4541 case 289:
4542 #line 1578 "conf_parser.y" /* yacc.c:1646 */
4543 {
4544 if (conf_parser_ctx.pass == 2)
4545 reset_block_state();
4546 }
4547 #line 4548 "conf_parser.c" /* yacc.c:1646 */
4548 break;
4549
4550 case 291:
4551 #line 1584 "conf_parser.y" /* yacc.c:1646 */
4552 {
4553 block_state.flags.value = 0;
4554 }
4555 #line 4556 "conf_parser.c" /* yacc.c:1646 */
4556 break;
4557
4558 case 295:
4559 #line 1590 "conf_parser.y" /* yacc.c:1646 */
4560 {
4561 if (conf_parser_ctx.pass == 2)
4562 block_state.flags.value |= LISTENER_SSL;
4563 }
4564 #line 4565 "conf_parser.c" /* yacc.c:1646 */
4565 break;
4566
4567 case 296:
4568 #line 1594 "conf_parser.y" /* yacc.c:1646 */
4569 {
4570 if (conf_parser_ctx.pass == 2)
4571 block_state.flags.value |= LISTENER_HIDDEN;
4572 }
4573 #line 4574 "conf_parser.c" /* yacc.c:1646 */
4574 break;
4575
4576 case 297:
4577 #line 1598 "conf_parser.y" /* yacc.c:1646 */
4578 {
4579 if (conf_parser_ctx.pass == 2)
4580 block_state.flags.value |= LISTENER_SERVER;
4581 }
4582 #line 4583 "conf_parser.c" /* yacc.c:1646 */
4583 break;
4584
4585 case 305:
4586 #line 1606 "conf_parser.y" /* yacc.c:1646 */
4587 { block_state.flags.value = 0; }
4588 #line 4589 "conf_parser.c" /* yacc.c:1646 */
4589 break;
4590
4591 case 309:
4592 #line 1611 "conf_parser.y" /* yacc.c:1646 */
4593 {
4594 if (conf_parser_ctx.pass == 2)
4595 {
4596 #ifndef HAVE_TLS
4597 if (block_state.flags.value & LISTENER_SSL)
4598 {
4599 conf_error_report("TLS not available - port closed");
4600 break;
4601 }
4602 #endif
4603 listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4604 }
4605 }
4606 #line 4607 "conf_parser.c" /* yacc.c:1646 */
4607 break;
4608
4609 case 310:
4610 #line 1624 "conf_parser.y" /* yacc.c:1646 */
4611 {
4612 if (conf_parser_ctx.pass == 2)
4613 {
4614 #ifndef HAVE_TLS
4615 if (block_state.flags.value & LISTENER_SSL)
4616 {
4617 conf_error_report("TLS not available - port closed");
4618 break;
4619 }
4620 #endif
4621
4622 for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4623 listener_add(i, block_state.addr.buf, block_state.flags.value);
4624 }
4625 }
4626 #line 4627 "conf_parser.c" /* yacc.c:1646 */
4627 break;
4628
4629 case 311:
4630 #line 1641 "conf_parser.y" /* yacc.c:1646 */
4631 {
4632 if (conf_parser_ctx.pass == 2)
4633 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4634 }
4635 #line 4636 "conf_parser.c" /* yacc.c:1646 */
4636 break;
4637
4638 case 312:
4639 #line 1647 "conf_parser.y" /* yacc.c:1646 */
4640 {
4641 if (conf_parser_ctx.pass == 2)
4642 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4643 }
4644 #line 4645 "conf_parser.c" /* yacc.c:1646 */
4645 break;
4646
4647 case 313:
4648 #line 1657 "conf_parser.y" /* yacc.c:1646 */
4649 {
4650 if (conf_parser_ctx.pass == 2)
4651 reset_block_state();
4652 }
4653 #line 4654 "conf_parser.c" /* yacc.c:1646 */
4654 break;
4655
4656 case 314:
4657 #line 1661 "conf_parser.y" /* yacc.c:1646 */
4658 {
4659 dlink_node *node = NULL;
4660
4661 if (conf_parser_ctx.pass != 2)
4662 break;
4663
4664 DLINK_FOREACH(node, block_state.mask.list.head)
4665 {
4666 struct MaskItem *conf = NULL;
4667 struct split_nuh_item nuh;
4668 char *s = node->data;
4669
4670 if (EmptyString(s))
4671 continue;
4672
4673 nuh.nuhmask = s;
4674 nuh.nickptr = NULL;
4675 nuh.userptr = block_state.user.buf;
4676 nuh.hostptr = block_state.host.buf;
4677 nuh.nicksize = 0;
4678 nuh.usersize = sizeof(block_state.user.buf);
4679 nuh.hostsize = sizeof(block_state.host.buf);
4680 split_nuh(&nuh);
4681
4682 conf = conf_make(CONF_CLIENT);
4683 conf->user = xstrdup(block_state.user.buf);
4684 conf->host = xstrdup(block_state.host.buf);
4685
4686 if (block_state.rpass.buf[0])
4687 conf->passwd = xstrdup(block_state.rpass.buf);
4688 if (block_state.name.buf[0])
4689 conf->name = xstrdup(block_state.name.buf);
4690
4691 conf->flags = block_state.flags.value;
4692 conf->port = block_state.port.value;
4693
4694 conf_add_class_to_conf(conf, block_state.class.buf);
4695 add_conf_by_address(CONF_CLIENT, conf);
4696 }
4697 }
4698 #line 4699 "conf_parser.c" /* yacc.c:1646 */
4699 break;
4700
4701 case 326:
4702 #line 1714 "conf_parser.y" /* yacc.c:1646 */
4703 {
4704 if (conf_parser_ctx.pass == 2)
4705 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4706 }
4707 #line 4708 "conf_parser.c" /* yacc.c:1646 */
4708 break;
4709
4710 case 327:
4711 #line 1720 "conf_parser.y" /* yacc.c:1646 */
4712 {
4713 if (conf_parser_ctx.pass == 2)
4714 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4715 }
4716 #line 4717 "conf_parser.c" /* yacc.c:1646 */
4717 break;
4718
4719 case 328:
4720 #line 1726 "conf_parser.y" /* yacc.c:1646 */
4721 {
4722 if (conf_parser_ctx.pass == 2)
4723 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4724 }
4725 #line 4726 "conf_parser.c" /* yacc.c:1646 */
4726 break;
4727
4728 case 329:
4729 #line 1732 "conf_parser.y" /* yacc.c:1646 */
4730 {
4731 if (conf_parser_ctx.pass == 2)
4732 {
4733 if (yylval.number)
4734 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4735 else
4736 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4737 }
4738 }
4739 #line 4740 "conf_parser.c" /* yacc.c:1646 */
4740 break;
4741
4742 case 330:
4743 #line 1743 "conf_parser.y" /* yacc.c:1646 */
4744 {
4745 if (conf_parser_ctx.pass == 2)
4746 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4747 }
4748 #line 4749 "conf_parser.c" /* yacc.c:1646 */
4749 break;
4750
4751 case 334:
4752 #line 1750 "conf_parser.y" /* yacc.c:1646 */
4753 {
4754 if (conf_parser_ctx.pass == 2)
4755 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4756 }
4757 #line 4758 "conf_parser.c" /* yacc.c:1646 */
4758 break;
4759
4760 case 335:
4761 #line 1754 "conf_parser.y" /* yacc.c:1646 */
4762 {
4763 if (conf_parser_ctx.pass == 2)
4764 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4765 }
4766 #line 4767 "conf_parser.c" /* yacc.c:1646 */
4767 break;
4768
4769 case 336:
4770 #line 1758 "conf_parser.y" /* yacc.c:1646 */
4771 {
4772 if (conf_parser_ctx.pass == 2)
4773 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4774 }
4775 #line 4776 "conf_parser.c" /* yacc.c:1646 */
4776 break;
4777
4778 case 337:
4779 #line 1762 "conf_parser.y" /* yacc.c:1646 */
4780 {
4781 if (conf_parser_ctx.pass == 2)
4782 block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4783 }
4784 #line 4785 "conf_parser.c" /* yacc.c:1646 */
4785 break;
4786
4787 case 338:
4788 #line 1766 "conf_parser.y" /* yacc.c:1646 */
4789 {
4790 if (conf_parser_ctx.pass == 2)
4791 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4792 }
4793 #line 4794 "conf_parser.c" /* yacc.c:1646 */
4794 break;
4795
4796 case 339:
4797 #line 1770 "conf_parser.y" /* yacc.c:1646 */
4798 {
4799 if (conf_parser_ctx.pass == 2)
4800 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4801 }
4802 #line 4803 "conf_parser.c" /* yacc.c:1646 */
4803 break;
4804
4805 case 340:
4806 #line 1774 "conf_parser.y" /* yacc.c:1646 */
4807 {
4808 if (conf_parser_ctx.pass == 2)
4809 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4810 }
4811 #line 4812 "conf_parser.c" /* yacc.c:1646 */
4812 break;
4813
4814 case 341:
4815 #line 1778 "conf_parser.y" /* yacc.c:1646 */
4816 {
4817 if (conf_parser_ctx.pass == 2)
4818 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4819 }
4820 #line 4821 "conf_parser.c" /* yacc.c:1646 */
4821 break;
4822
4823 case 342:
4824 #line 1782 "conf_parser.y" /* yacc.c:1646 */
4825 {
4826 if (conf_parser_ctx.pass == 2)
4827 block_state.flags.value |= CONF_FLAGS_WEBIRC;
4828 }
4829 #line 4830 "conf_parser.c" /* yacc.c:1646 */
4830 break;
4831
4832 case 343:
4833 #line 1786 "conf_parser.y" /* yacc.c:1646 */
4834 {
4835 if (conf_parser_ctx.pass == 2)
4836 block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4837 }
4838 #line 4839 "conf_parser.c" /* yacc.c:1646 */
4839 break;
4840
4841 case 344:
4842 #line 1792 "conf_parser.y" /* yacc.c:1646 */
4843 {
4844 if (conf_parser_ctx.pass != 2)
4845 break;
4846
4847 if (valid_hostname(yylval.string))
4848 {
4849 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4850 block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4851 }
4852 else
4853 ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4854 }
4855 #line 4856 "conf_parser.c" /* yacc.c:1646 */
4856 break;
4857
4858 case 345:
4859 #line 1806 "conf_parser.y" /* yacc.c:1646 */
4860 {
4861 if (conf_parser_ctx.pass != 2)
4862 break;
4863
4864 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4865 block_state.flags.value |= CONF_FLAGS_REDIR;
4866 }
4867 #line 4868 "conf_parser.c" /* yacc.c:1646 */
4868 break;
4869
4870 case 346:
4871 #line 1815 "conf_parser.y" /* yacc.c:1646 */
4872 {
4873 if (conf_parser_ctx.pass != 2)
4874 break;
4875
4876 block_state.flags.value |= CONF_FLAGS_REDIR;
4877 block_state.port.value = (yyvsp[-1].number);
4878 }
4879 #line 4880 "conf_parser.c" /* yacc.c:1646 */
4880 break;
4881
4882 case 347:
4883 #line 1828 "conf_parser.y" /* yacc.c:1646 */
4884 {
4885 if (conf_parser_ctx.pass != 2)
4886 break;
4887
4888 reset_block_state();
4889 strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4890 }
4891 #line 4892 "conf_parser.c" /* yacc.c:1646 */
4892 break;
4893
4894 case 348:
4895 #line 1835 "conf_parser.y" /* yacc.c:1646 */
4896 {
4897 if (conf_parser_ctx.pass != 2)
4898 break;
4899
4900 resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4901 }
4902 #line 4903 "conf_parser.c" /* yacc.c:1646 */
4903 break;
4904
4905 case 355:
4906 #line 1846 "conf_parser.y" /* yacc.c:1646 */
4907 {
4908 if (conf_parser_ctx.pass == 2)
4909 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4910 }
4911 #line 4912 "conf_parser.c" /* yacc.c:1646 */
4912 break;
4913
4914 case 356:
4915 #line 1852 "conf_parser.y" /* yacc.c:1646 */
4916 {
4917 if (conf_parser_ctx.pass == 2)
4918 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4919 }
4920 #line 4921 "conf_parser.c" /* yacc.c:1646 */
4921 break;
4922
4923 case 357:
4924 #line 1858 "conf_parser.y" /* yacc.c:1646 */
4925 {
4926 if (conf_parser_ctx.pass == 2)
4927 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4928 }
4929 #line 4930 "conf_parser.c" /* yacc.c:1646 */
4930 break;
4931
4932 case 363:
4933 #line 1873 "conf_parser.y" /* yacc.c:1646 */
4934 {
4935 if (conf_parser_ctx.pass != 2)
4936 break;
4937
4938 if (valid_servname(yylval.string))
4939 {
4940 struct ServiceItem *service = service_make();
4941 service->name = xstrdup(yylval.string);
4942 }
4943 }
4944 #line 4945 "conf_parser.c" /* yacc.c:1646 */
4945 break;
4946
4947 case 364:
4948 #line 1889 "conf_parser.y" /* yacc.c:1646 */
4949 {
4950 if (conf_parser_ctx.pass != 2)
4951 break;
4952
4953 reset_block_state();
4954
4955 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4956 strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4957 strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4958 block_state.flags.value = SHARED_ALL;
4959 }
4960 #line 4961 "conf_parser.c" /* yacc.c:1646 */
4961 break;
4962
4963 case 365:
4964 #line 1900 "conf_parser.y" /* yacc.c:1646 */
4965 {
4966 if (conf_parser_ctx.pass != 2)
4967 break;
4968
4969 struct SharedItem *shared = shared_make();
4970 shared->type = block_state.flags.value;
4971 shared->server = xstrdup(block_state.name.buf);
4972 shared->user = xstrdup(block_state.user.buf);
4973 shared->host = xstrdup(block_state.host.buf);
4974 }
4975 #line 4976 "conf_parser.c" /* yacc.c:1646 */
4976 break;
4977
4978 case 372:
4979 #line 1915 "conf_parser.y" /* yacc.c:1646 */
4980 {
4981 if (conf_parser_ctx.pass == 2)
4982 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4983 }
4984 #line 4985 "conf_parser.c" /* yacc.c:1646 */
4985 break;
4986
4987 case 373:
4988 #line 1921 "conf_parser.y" /* yacc.c:1646 */
4989 {
4990 if (conf_parser_ctx.pass == 2)
4991 {
4992 struct split_nuh_item nuh;
4993
4994 nuh.nuhmask = yylval.string;
4995 nuh.nickptr = NULL;
4996 nuh.userptr = block_state.user.buf;
4997 nuh.hostptr = block_state.host.buf;
4998
4999 nuh.nicksize = 0;
5000 nuh.usersize = sizeof(block_state.user.buf);
5001 nuh.hostsize = sizeof(block_state.host.buf);
5002
5003 split_nuh(&nuh);
5004 }
5005 }
5006 #line 5007 "conf_parser.c" /* yacc.c:1646 */
5007 break;
5008
5009 case 374:
5010 #line 1940 "conf_parser.y" /* yacc.c:1646 */
5011 {
5012 if (conf_parser_ctx.pass == 2)
5013 block_state.flags.value = 0;
5014 }
5015 #line 5016 "conf_parser.c" /* yacc.c:1646 */
5016 break;
5017
5018 case 378:
5019 #line 1947 "conf_parser.y" /* yacc.c:1646 */
5020 {
5021 if (conf_parser_ctx.pass == 2)
5022 block_state.flags.value |= SHARED_KLINE;
5023 }
5024 #line 5025 "conf_parser.c" /* yacc.c:1646 */
5025 break;
5026
5027 case 379:
5028 #line 1951 "conf_parser.y" /* yacc.c:1646 */
5029 {
5030 if (conf_parser_ctx.pass == 2)
5031 block_state.flags.value |= SHARED_UNKLINE;
5032 }
5033 #line 5034 "conf_parser.c" /* yacc.c:1646 */
5034 break;
5035
5036 case 380:
5037 #line 1955 "conf_parser.y" /* yacc.c:1646 */
5038 {
5039 if (conf_parser_ctx.pass == 2)
5040 block_state.flags.value |= SHARED_DLINE;
5041 }
5042 #line 5043 "conf_parser.c" /* yacc.c:1646 */
5043 break;
5044
5045 case 381:
5046 #line 1959 "conf_parser.y" /* yacc.c:1646 */
5047 {
5048 if (conf_parser_ctx.pass == 2)
5049 block_state.flags.value |= SHARED_UNDLINE;
5050 }
5051 #line 5052 "conf_parser.c" /* yacc.c:1646 */
5052 break;
5053
5054 case 382:
5055 #line 1963 "conf_parser.y" /* yacc.c:1646 */
5056 {
5057 if (conf_parser_ctx.pass == 2)
5058 block_state.flags.value |= SHARED_XLINE;
5059 }
5060 #line 5061 "conf_parser.c" /* yacc.c:1646 */
5061 break;
5062
5063 case 383:
5064 #line 1967 "conf_parser.y" /* yacc.c:1646 */
5065 {
5066 if (conf_parser_ctx.pass == 2)
5067 block_state.flags.value |= SHARED_UNXLINE;
5068 }
5069 #line 5070 "conf_parser.c" /* yacc.c:1646 */
5070 break;
5071
5072 case 384:
5073 #line 1971 "conf_parser.y" /* yacc.c:1646 */
5074 {
5075 if (conf_parser_ctx.pass == 2)
5076 block_state.flags.value |= SHARED_RESV;
5077 }
5078 #line 5079 "conf_parser.c" /* yacc.c:1646 */
5079 break;
5080
5081 case 385:
5082 #line 1975 "conf_parser.y" /* yacc.c:1646 */
5083 {
5084 if (conf_parser_ctx.pass == 2)
5085 block_state.flags.value |= SHARED_UNRESV;
5086 }
5087 #line 5088 "conf_parser.c" /* yacc.c:1646 */
5088 break;
5089
5090 case 386:
5091 #line 1979 "conf_parser.y" /* yacc.c:1646 */
5092 {
5093 if (conf_parser_ctx.pass == 2)
5094 block_state.flags.value |= SHARED_LOCOPS;
5095 }
5096 #line 5097 "conf_parser.c" /* yacc.c:1646 */
5097 break;
5098
5099 case 387:
5100 #line 1983 "conf_parser.y" /* yacc.c:1646 */
5101 {
5102 if (conf_parser_ctx.pass == 2)
5103 block_state.flags.value = SHARED_ALL;
5104 }
5105 #line 5106 "conf_parser.c" /* yacc.c:1646 */
5106 break;
5107
5108 case 388:
5109 #line 1993 "conf_parser.y" /* yacc.c:1646 */
5110 {
5111 if (conf_parser_ctx.pass != 2)
5112 break;
5113
5114 reset_block_state();
5115
5116 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5117 block_state.flags.value = CLUSTER_ALL;
5118 }
5119 #line 5120 "conf_parser.c" /* yacc.c:1646 */
5120 break;
5121
5122 case 389:
5123 #line 2002 "conf_parser.y" /* yacc.c:1646 */
5124 {
5125 if (conf_parser_ctx.pass != 2)
5126 break;
5127
5128 struct ClusterItem *cluster = cluster_make();
5129 cluster->type = block_state.flags.value;
5130 cluster->server = xstrdup(block_state.name.buf);
5131 }
5132 #line 5133 "conf_parser.c" /* yacc.c:1646 */
5133 break;
5134
5135 case 395:
5136 #line 2015 "conf_parser.y" /* yacc.c:1646 */
5137 {
5138 if (conf_parser_ctx.pass == 2)
5139 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5140 }
5141 #line 5142 "conf_parser.c" /* yacc.c:1646 */
5142 break;
5143
5144 case 396:
5145 #line 2021 "conf_parser.y" /* yacc.c:1646 */
5146 {
5147 if (conf_parser_ctx.pass == 2)
5148 block_state.flags.value = 0;
5149 }
5150 #line 5151 "conf_parser.c" /* yacc.c:1646 */
5151 break;
5152
5153 case 400:
5154 #line 2028 "conf_parser.y" /* yacc.c:1646 */
5155 {
5156 if (conf_parser_ctx.pass == 2)
5157 block_state.flags.value |= CLUSTER_KLINE;
5158 }
5159 #line 5160 "conf_parser.c" /* yacc.c:1646 */
5160 break;
5161
5162 case 401:
5163 #line 2032 "conf_parser.y" /* yacc.c:1646 */
5164 {
5165 if (conf_parser_ctx.pass == 2)
5166 block_state.flags.value |= CLUSTER_UNKLINE;
5167 }
5168 #line 5169 "conf_parser.c" /* yacc.c:1646 */
5169 break;
5170
5171 case 402:
5172 #line 2036 "conf_parser.y" /* yacc.c:1646 */
5173 {
5174 if (conf_parser_ctx.pass == 2)
5175 block_state.flags.value |= CLUSTER_DLINE;
5176 }
5177 #line 5178 "conf_parser.c" /* yacc.c:1646 */
5178 break;
5179
5180 case 403:
5181 #line 2040 "conf_parser.y" /* yacc.c:1646 */
5182 {
5183 if (conf_parser_ctx.pass == 2)
5184 block_state.flags.value |= CLUSTER_UNDLINE;
5185 }
5186 #line 5187 "conf_parser.c" /* yacc.c:1646 */
5187 break;
5188
5189 case 404:
5190 #line 2044 "conf_parser.y" /* yacc.c:1646 */
5191 {
5192 if (conf_parser_ctx.pass == 2)
5193 block_state.flags.value |= CLUSTER_XLINE;
5194 }
5195 #line 5196 "conf_parser.c" /* yacc.c:1646 */
5196 break;
5197
5198 case 405:
5199 #line 2048 "conf_parser.y" /* yacc.c:1646 */
5200 {
5201 if (conf_parser_ctx.pass == 2)
5202 block_state.flags.value |= CLUSTER_UNXLINE;
5203 }
5204 #line 5205 "conf_parser.c" /* yacc.c:1646 */
5205 break;
5206
5207 case 406:
5208 #line 2052 "conf_parser.y" /* yacc.c:1646 */
5209 {
5210 if (conf_parser_ctx.pass == 2)
5211 block_state.flags.value |= CLUSTER_RESV;
5212 }
5213 #line 5214 "conf_parser.c" /* yacc.c:1646 */
5214 break;
5215
5216 case 407:
5217 #line 2056 "conf_parser.y" /* yacc.c:1646 */
5218 {
5219 if (conf_parser_ctx.pass == 2)
5220 block_state.flags.value |= CLUSTER_UNRESV;
5221 }
5222 #line 5223 "conf_parser.c" /* yacc.c:1646 */
5223 break;
5224
5225 case 408:
5226 #line 2060 "conf_parser.y" /* yacc.c:1646 */
5227 {
5228 if (conf_parser_ctx.pass == 2)
5229 block_state.flags.value |= CLUSTER_LOCOPS;
5230 }
5231 #line 5232 "conf_parser.c" /* yacc.c:1646 */
5232 break;
5233
5234 case 409:
5235 #line 2064 "conf_parser.y" /* yacc.c:1646 */
5236 {
5237 if (conf_parser_ctx.pass == 2)
5238 block_state.flags.value = CLUSTER_ALL;
5239 }
5240 #line 5241 "conf_parser.c" /* yacc.c:1646 */
5241 break;
5242
5243 case 410:
5244 #line 2074 "conf_parser.y" /* yacc.c:1646 */
5245 {
5246
5247 if (conf_parser_ctx.pass != 2)
5248 break;
5249
5250 reset_block_state();
5251 block_state.aftype.value = AF_INET;
5252 block_state.port.value = PORTNUM;
5253 }
5254 #line 5255 "conf_parser.c" /* yacc.c:1646 */
5255 break;
5256
5257 case 411:
5258 #line 2083 "conf_parser.y" /* yacc.c:1646 */
5259 {
5260 struct MaskItem *conf = NULL;
5261 struct addrinfo hints, *res;
5262
5263 if (conf_parser_ctx.pass != 2)
5264 break;
5265
5266 if (!block_state.name.buf[0] ||
5267 !block_state.host.buf[0])
5268 break;
5269
5270 if (!block_state.rpass.buf[0] ||
5271 !block_state.spass.buf[0])
5272 break;
5273
5274 if (has_wildcards(block_state.name.buf) ||
5275 has_wildcards(block_state.host.buf))
5276 break;
5277
5278 conf = conf_make(CONF_SERVER);
5279 conf->port = block_state.port.value;
5280 conf->flags = block_state.flags.value;
5281 conf->aftype = block_state.aftype.value;
5282 conf->host = xstrdup(block_state.host.buf);
5283 conf->name = xstrdup(block_state.name.buf);
5284 conf->passwd = xstrdup(block_state.rpass.buf);
5285 conf->spasswd = xstrdup(block_state.spass.buf);
5286
5287 if (block_state.cert.buf[0])
5288 conf->certfp = xstrdup(block_state.cert.buf);
5289
5290 if (block_state.ciph.buf[0])
5291 conf->cipher_list = xstrdup(block_state.ciph.buf);
5292
5293 dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5294 dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5295
5296 if (block_state.bind.buf[0])
5297 {
5298 memset(&hints, 0, sizeof(hints));
5299
5300 hints.ai_family = AF_UNSPEC;
5301 hints.ai_socktype = SOCK_STREAM;
5302 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5303
5304 if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5305 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5306 else
5307 {
5308 assert(res);
5309
5310 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5311 conf->bind.ss.ss_family = res->ai_family;
5312 conf->bind.ss_len = res->ai_addrlen;
5313 freeaddrinfo(res);
5314 }
5315 }
5316
5317 conf_add_class_to_conf(conf, block_state.class.buf);
5318 lookup_confhost(conf);
5319 }
5320 #line 5321 "conf_parser.c" /* yacc.c:1646 */
5321 break;
5322
5323 case 429:
5324 #line 2163 "conf_parser.y" /* yacc.c:1646 */
5325 {
5326 if (conf_parser_ctx.pass == 2)
5327 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5328 }
5329 #line 5330 "conf_parser.c" /* yacc.c:1646 */
5330 break;
5331
5332 case 430:
5333 #line 2169 "conf_parser.y" /* yacc.c:1646 */
5334 {
5335 if (conf_parser_ctx.pass == 2)
5336 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5337 }
5338 #line 5339 "conf_parser.c" /* yacc.c:1646 */
5339 break;
5340
5341 case 431:
5342 #line 2175 "conf_parser.y" /* yacc.c:1646 */
5343 {
5344 if (conf_parser_ctx.pass == 2)
5345 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5346 }
5347 #line 5348 "conf_parser.c" /* yacc.c:1646 */
5348 break;
5349
5350 case 432:
5351 #line 2181 "conf_parser.y" /* yacc.c:1646 */
5352 {
5353 if (conf_parser_ctx.pass != 2)
5354 break;
5355
5356 if ((yyvsp[-1].string)[0] == ':')
5357 conf_error_report("Server passwords cannot begin with a colon");
5358 else if (strchr((yyvsp[-1].string), ' '))
5359 conf_error_report("Server passwords cannot contain spaces");
5360 else
5361 strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5362 }
5363 #line 5364 "conf_parser.c" /* yacc.c:1646 */
5364 break;
5365
5366 case 433:
5367 #line 2194 "conf_parser.y" /* yacc.c:1646 */
5368 {
5369 if (conf_parser_ctx.pass != 2)
5370 break;
5371
5372 if ((yyvsp[-1].string)[0] == ':')
5373 conf_error_report("Server passwords cannot begin with a colon");
5374 else if (strchr((yyvsp[-1].string), ' '))
5375 conf_error_report("Server passwords cannot contain spaces");
5376 else
5377 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5378 }
5379 #line 5380 "conf_parser.c" /* yacc.c:1646 */
5380 break;
5381
5382 case 434:
5383 #line 2207 "conf_parser.y" /* yacc.c:1646 */
5384 {
5385 if (conf_parser_ctx.pass == 2)
5386 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5387 }
5388 #line 5389 "conf_parser.c" /* yacc.c:1646 */
5389 break;
5390
5391 case 435:
5392 #line 2213 "conf_parser.y" /* yacc.c:1646 */
5393 {
5394 if (conf_parser_ctx.pass == 2)
5395 block_state.port.value = (yyvsp[-1].number);
5396 }
5397 #line 5398 "conf_parser.c" /* yacc.c:1646 */
5398 break;
5399
5400 case 436:
5401 #line 2219 "conf_parser.y" /* yacc.c:1646 */
5402 {
5403 if (conf_parser_ctx.pass == 2)
5404 block_state.aftype.value = AF_INET;
5405 }
5406 #line 5407 "conf_parser.c" /* yacc.c:1646 */
5407 break;
5408
5409 case 437:
5410 #line 2223 "conf_parser.y" /* yacc.c:1646 */
5411 {
5412 if (conf_parser_ctx.pass == 2)
5413 block_state.aftype.value = AF_INET6;
5414 }
5415 #line 5416 "conf_parser.c" /* yacc.c:1646 */
5416 break;
5417
5418 case 438:
5419 #line 2229 "conf_parser.y" /* yacc.c:1646 */
5420 {
5421 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5422 }
5423 #line 5424 "conf_parser.c" /* yacc.c:1646 */
5424 break;
5425
5426 case 442:
5427 #line 2235 "conf_parser.y" /* yacc.c:1646 */
5428 {
5429 if (conf_parser_ctx.pass == 2)
5430 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5431 }
5432 #line 5433 "conf_parser.c" /* yacc.c:1646 */
5433 break;
5434
5435 case 443:
5436 #line 2239 "conf_parser.y" /* yacc.c:1646 */
5437 {
5438 if (conf_parser_ctx.pass == 2)
5439 block_state.flags.value |= CONF_FLAGS_SSL;
5440 }
5441 #line 5442 "conf_parser.c" /* yacc.c:1646 */
5442 break;
5443
5444 case 444:
5445 #line 2245 "conf_parser.y" /* yacc.c:1646 */
5446 {
5447 if (conf_parser_ctx.pass == 2)
5448 {
5449 if (yylval.number)
5450 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5451 else
5452 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5453 }
5454 }
5455 #line 5456 "conf_parser.c" /* yacc.c:1646 */
5456 break;
5457
5458 case 445:
5459 #line 2256 "conf_parser.y" /* yacc.c:1646 */
5460 {
5461 if (conf_parser_ctx.pass == 2)
5462 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5463 }
5464 #line 5465 "conf_parser.c" /* yacc.c:1646 */
5465 break;
5466
5467 case 446:
5468 #line 2262 "conf_parser.y" /* yacc.c:1646 */
5469 {
5470 if (conf_parser_ctx.pass == 2)
5471 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5472 }
5473 #line 5474 "conf_parser.c" /* yacc.c:1646 */
5474 break;
5475
5476 case 447:
5477 #line 2268 "conf_parser.y" /* yacc.c:1646 */
5478 {
5479 if (conf_parser_ctx.pass == 2)
5480 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5481 }
5482 #line 5483 "conf_parser.c" /* yacc.c:1646 */
5483 break;
5484
5485 case 448:
5486 #line 2274 "conf_parser.y" /* yacc.c:1646 */
5487 {
5488 #ifdef HAVE_TLS
5489 if (conf_parser_ctx.pass == 2)
5490 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5491 #else
5492 if (conf_parser_ctx.pass == 2)
5493 conf_error_report("Ignoring connect::ciphers -- no TLS support");
5494 #endif
5495 }
5496 #line 5497 "conf_parser.c" /* yacc.c:1646 */
5497 break;
5498
5499 case 449:
5500 #line 2289 "conf_parser.y" /* yacc.c:1646 */
5501 {
5502 if (conf_parser_ctx.pass == 2)
5503 reset_block_state();
5504 }
5505 #line 5506 "conf_parser.c" /* yacc.c:1646 */
5506 break;
5507
5508 case 450:
5509 #line 2293 "conf_parser.y" /* yacc.c:1646 */
5510 {
5511 struct MaskItem *conf = NULL;
5512
5513 if (conf_parser_ctx.pass != 2)
5514 break;
5515
5516 if (!block_state.user.buf[0] ||
5517 !block_state.host.buf[0])
5518 break;
5519
5520 conf = conf_make(CONF_KLINE);
5521 conf->user = xstrdup(block_state.user.buf);
5522 conf->host = xstrdup(block_state.host.buf);
5523
5524 if (block_state.rpass.buf[0])
5525 conf->reason = xstrdup(block_state.rpass.buf);
5526 else
5527 conf->reason = xstrdup(CONF_NOREASON);
5528 add_conf_by_address(CONF_KLINE, conf);
5529 }
5530 #line 5531 "conf_parser.c" /* yacc.c:1646 */
5531 break;
5532
5533 case 456:
5534 #line 2318 "conf_parser.y" /* yacc.c:1646 */
5535 {
5536
5537 if (conf_parser_ctx.pass == 2)
5538 {
5539 struct split_nuh_item nuh;
5540
5541 nuh.nuhmask = yylval.string;
5542 nuh.nickptr = NULL;
5543 nuh.userptr = block_state.user.buf;
5544 nuh.hostptr = block_state.host.buf;
5545
5546 nuh.nicksize = 0;
5547 nuh.usersize = sizeof(block_state.user.buf);
5548 nuh.hostsize = sizeof(block_state.host.buf);
5549
5550 split_nuh(&nuh);
5551 }
5552 }
5553 #line 5554 "conf_parser.c" /* yacc.c:1646 */
5554 break;
5555
5556 case 457:
5557 #line 2338 "conf_parser.y" /* yacc.c:1646 */
5558 {
5559 if (conf_parser_ctx.pass == 2)
5560 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5561 }
5562 #line 5563 "conf_parser.c" /* yacc.c:1646 */
5563 break;
5564
5565 case 458:
5566 #line 2348 "conf_parser.y" /* yacc.c:1646 */
5567 {
5568 if (conf_parser_ctx.pass == 2)
5569 reset_block_state();
5570 }
5571 #line 5572 "conf_parser.c" /* yacc.c:1646 */
5572 break;
5573
5574 case 459:
5575 #line 2352 "conf_parser.y" /* yacc.c:1646 */
5576 {
5577 struct MaskItem *conf = NULL;
5578
5579 if (conf_parser_ctx.pass != 2)
5580 break;
5581
5582 if (!block_state.addr.buf[0])
5583 break;
5584
5585 if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5586 {
5587 conf = conf_make(CONF_DLINE);
5588 conf->host = xstrdup(block_state.addr.buf);
5589
5590 if (block_state.rpass.buf[0])
5591 conf->reason = xstrdup(block_state.rpass.buf);
5592 else
5593 conf->reason = xstrdup(CONF_NOREASON);
5594 add_conf_by_address(CONF_DLINE, conf);
5595 }
5596 }
5597 #line 5598 "conf_parser.c" /* yacc.c:1646 */
5598 break;
5599
5600 case 465:
5601 #line 2378 "conf_parser.y" /* yacc.c:1646 */
5602 {
5603 if (conf_parser_ctx.pass == 2)
5604 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5605 }
5606 #line 5607 "conf_parser.c" /* yacc.c:1646 */
5607 break;
5608
5609 case 466:
5610 #line 2384 "conf_parser.y" /* yacc.c:1646 */
5611 {
5612 if (conf_parser_ctx.pass == 2)
5613 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5614 }
5615 #line 5616 "conf_parser.c" /* yacc.c:1646 */
5616 break;
5617
5618 case 472:
5619 #line 2399 "conf_parser.y" /* yacc.c:1646 */
5620 {
5621 if (conf_parser_ctx.pass == 2)
5622 {
5623 if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5624 {
5625 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5626 conf->host = xstrdup(yylval.string);
5627
5628 add_conf_by_address(CONF_EXEMPT, conf);
5629 }
5630 }
5631 }
5632 #line 5633 "conf_parser.c" /* yacc.c:1646 */
5633 break;
5634
5635 case 473:
5636 #line 2416 "conf_parser.y" /* yacc.c:1646 */
5637 {
5638 if (conf_parser_ctx.pass == 2)
5639 reset_block_state();
5640 }
5641 #line 5642 "conf_parser.c" /* yacc.c:1646 */
5642 break;
5643
5644 case 474:
5645 #line 2420 "conf_parser.y" /* yacc.c:1646 */
5646 {
5647 if (conf_parser_ctx.pass != 2)
5648 break;
5649
5650 if (!block_state.name.buf[0])
5651 break;
5652
5653 struct GecosItem *gecos = gecos_make();
5654 gecos->mask = xstrdup(block_state.name.buf);
5655
5656 if (block_state.rpass.buf[0])
5657 gecos->reason = xstrdup(block_state.rpass.buf);
5658 else
5659 gecos->reason = xstrdup(CONF_NOREASON);
5660 }
5661 #line 5662 "conf_parser.c" /* yacc.c:1646 */
5662 break;
5663
5664 case 480:
5665 #line 2440 "conf_parser.y" /* yacc.c:1646 */
5666 {
5667 if (conf_parser_ctx.pass == 2)
5668 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5669 }
5670 #line 5671 "conf_parser.c" /* yacc.c:1646 */
5671 break;
5672
5673 case 481:
5674 #line 2446 "conf_parser.y" /* yacc.c:1646 */
5675 {
5676 if (conf_parser_ctx.pass == 2)
5677 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5678 }
5679 #line 5680 "conf_parser.c" /* yacc.c:1646 */
5680 break;
5681
5682 case 532:
5683 #line 2508 "conf_parser.y" /* yacc.c:1646 */
5684 {
5685 ConfigGeneral.away_count = (yyvsp[-1].number);
5686 }
5687 #line 5688 "conf_parser.c" /* yacc.c:1646 */
5688 break;
5689
5690 case 533:
5691 #line 2513 "conf_parser.y" /* yacc.c:1646 */
5692 {
5693 ConfigGeneral.away_time = (yyvsp[-1].number);
5694 }
5695 #line 5696 "conf_parser.c" /* yacc.c:1646 */
5696 break;
5697
5698 case 534:
5699 #line 2518 "conf_parser.y" /* yacc.c:1646 */
5700 {
5701 ConfigGeneral.max_watch = (yyvsp[-1].number);
5702 }
5703 #line 5704 "conf_parser.c" /* yacc.c:1646 */
5704 break;
5705
5706 case 535:
5707 #line 2523 "conf_parser.y" /* yacc.c:1646 */
5708 {
5709 ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5710 }
5711 #line 5712 "conf_parser.c" /* yacc.c:1646 */
5712 break;
5713
5714 case 536:
5715 #line 2528 "conf_parser.y" /* yacc.c:1646 */
5716 {
5717 if (conf_parser_ctx.pass == 2)
5718 ConfigGeneral.cycle_on_host_change = yylval.number;
5719 }
5720 #line 5721 "conf_parser.c" /* yacc.c:1646 */
5721 break;
5722
5723 case 537:
5724 #line 2534 "conf_parser.y" /* yacc.c:1646 */
5725 {
5726 ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5727 }
5728 #line 5729 "conf_parser.c" /* yacc.c:1646 */
5729 break;
5730
5731 case 538:
5732 #line 2539 "conf_parser.y" /* yacc.c:1646 */
5733 {
5734 ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5735 }
5736 #line 5737 "conf_parser.c" /* yacc.c:1646 */
5737 break;
5738
5739 case 539:
5740 #line 2544 "conf_parser.y" /* yacc.c:1646 */
5741 {
5742 ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5743 }
5744 #line 5745 "conf_parser.c" /* yacc.c:1646 */
5745 break;
5746
5747 case 540:
5748 #line 2549 "conf_parser.y" /* yacc.c:1646 */
5749 {
5750 ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5751 }
5752 #line 5753 "conf_parser.c" /* yacc.c:1646 */
5753 break;
5754
5755 case 541:
5756 #line 2554 "conf_parser.y" /* yacc.c:1646 */
5757 {
5758 ConfigGeneral.tkline_expire_notices = yylval.number;
5759 }
5760 #line 5761 "conf_parser.c" /* yacc.c:1646 */
5761 break;
5762
5763 case 542:
5764 #line 2559 "conf_parser.y" /* yacc.c:1646 */
5765 {
5766 ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5767 }
5768 #line 5769 "conf_parser.c" /* yacc.c:1646 */
5769 break;
5770
5771 case 543:
5772 #line 2564 "conf_parser.y" /* yacc.c:1646 */
5773 {
5774 ConfigGeneral.ignore_bogus_ts = yylval.number;
5775 }
5776 #line 5777 "conf_parser.c" /* yacc.c:1646 */
5777 break;
5778
5779 case 544:
5780 #line 2569 "conf_parser.y" /* yacc.c:1646 */
5781 {
5782 ConfigGeneral.failed_oper_notice = yylval.number;
5783 }
5784 #line 5785 "conf_parser.c" /* yacc.c:1646 */
5785 break;
5786
5787 case 545:
5788 #line 2574 "conf_parser.y" /* yacc.c:1646 */
5789 {
5790 ConfigGeneral.anti_nick_flood = yylval.number;
5791 }
5792 #line 5793 "conf_parser.c" /* yacc.c:1646 */
5793 break;
5794
5795 case 546:
5796 #line 2579 "conf_parser.y" /* yacc.c:1646 */
5797 {
5798 ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5799 }
5800 #line 5801 "conf_parser.c" /* yacc.c:1646 */
5801 break;
5802
5803 case 547:
5804 #line 2584 "conf_parser.y" /* yacc.c:1646 */
5805 {
5806 ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5807 }
5808 #line 5809 "conf_parser.c" /* yacc.c:1646 */
5809 break;
5810
5811 case 548:
5812 #line 2589 "conf_parser.y" /* yacc.c:1646 */
5813 {
5814 ConfigGeneral.max_accept = (yyvsp[-1].number);
5815 }
5816 #line 5817 "conf_parser.c" /* yacc.c:1646 */
5817 break;
5818
5819 case 549:
5820 #line 2594 "conf_parser.y" /* yacc.c:1646 */
5821 {
5822 ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5823 }
5824 #line 5825 "conf_parser.c" /* yacc.c:1646 */
5825 break;
5826
5827 case 550:
5828 #line 2599 "conf_parser.y" /* yacc.c:1646 */
5829 {
5830 ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5831 }
5832 #line 5833 "conf_parser.c" /* yacc.c:1646 */
5833 break;
5834
5835 case 551:
5836 #line 2604 "conf_parser.y" /* yacc.c:1646 */
5837 {
5838 if (conf_parser_ctx.pass == 2)
5839 ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5840 }
5841 #line 5842 "conf_parser.c" /* yacc.c:1646 */
5842 break;
5843
5844 case 552:
5845 #line 2610 "conf_parser.y" /* yacc.c:1646 */
5846 {
5847 ConfigGeneral.invisible_on_connect = yylval.number;
5848 }
5849 #line 5850 "conf_parser.c" /* yacc.c:1646 */
5850 break;
5851
5852 case 553:
5853 #line 2615 "conf_parser.y" /* yacc.c:1646 */
5854 {
5855 ConfigGeneral.warn_no_connect_block = yylval.number;
5856 }
5857 #line 5858 "conf_parser.c" /* yacc.c:1646 */
5858 break;
5859
5860 case 554:
5861 #line 2620 "conf_parser.y" /* yacc.c:1646 */
5862 {
5863 ConfigGeneral.stats_e_disabled = yylval.number;
5864 }
5865 #line 5866 "conf_parser.c" /* yacc.c:1646 */
5866 break;
5867
5868 case 555:
5869 #line 2625 "conf_parser.y" /* yacc.c:1646 */
5870 {
5871 ConfigGeneral.stats_m_oper_only = yylval.number;
5872 }
5873 #line 5874 "conf_parser.c" /* yacc.c:1646 */
5874 break;
5875
5876 case 556:
5877 #line 2630 "conf_parser.y" /* yacc.c:1646 */
5878 {
5879 ConfigGeneral.stats_o_oper_only = yylval.number;
5880 }
5881 #line 5882 "conf_parser.c" /* yacc.c:1646 */
5882 break;
5883
5884 case 557:
5885 #line 2635 "conf_parser.y" /* yacc.c:1646 */
5886 {
5887 ConfigGeneral.stats_P_oper_only = yylval.number;
5888 }
5889 #line 5890 "conf_parser.c" /* yacc.c:1646 */
5890 break;
5891
5892 case 558:
5893 #line 2640 "conf_parser.y" /* yacc.c:1646 */
5894 {
5895 ConfigGeneral.stats_u_oper_only = yylval.number;
5896 }
5897 #line 5898 "conf_parser.c" /* yacc.c:1646 */
5898 break;
5899
5900 case 559:
5901 #line 2645 "conf_parser.y" /* yacc.c:1646 */
5902 {
5903 ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5904 }
5905 #line 5906 "conf_parser.c" /* yacc.c:1646 */
5906 break;
5907
5908 case 560:
5909 #line 2648 "conf_parser.y" /* yacc.c:1646 */
5910 {
5911 ConfigGeneral.stats_k_oper_only = 1;
5912 }
5913 #line 5914 "conf_parser.c" /* yacc.c:1646 */
5914 break;
5915
5916 case 561:
5917 #line 2653 "conf_parser.y" /* yacc.c:1646 */
5918 {
5919 ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5920 }
5921 #line 5922 "conf_parser.c" /* yacc.c:1646 */
5922 break;
5923
5924 case 562:
5925 #line 2656 "conf_parser.y" /* yacc.c:1646 */
5926 {
5927 ConfigGeneral.stats_i_oper_only = 1;
5928 }
5929 #line 5930 "conf_parser.c" /* yacc.c:1646 */
5930 break;
5931
5932 case 563:
5933 #line 2661 "conf_parser.y" /* yacc.c:1646 */
5934 {
5935 ConfigGeneral.pace_wait = (yyvsp[-1].number);
5936 }
5937 #line 5938 "conf_parser.c" /* yacc.c:1646 */
5938 break;
5939
5940 case 564:
5941 #line 2666 "conf_parser.y" /* yacc.c:1646 */
5942 {
5943 ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5944 }
5945 #line 5946 "conf_parser.c" /* yacc.c:1646 */
5946 break;
5947
5948 case 565:
5949 #line 2671 "conf_parser.y" /* yacc.c:1646 */
5950 {
5951 ConfigGeneral.opers_bypass_callerid = yylval.number;
5952 }
5953 #line 5954 "conf_parser.c" /* yacc.c:1646 */
5954 break;
5955
5956 case 566:
5957 #line 2676 "conf_parser.y" /* yacc.c:1646 */
5958 {
5959 ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5960 }
5961 #line 5962 "conf_parser.c" /* yacc.c:1646 */
5962 break;
5963
5964 case 567:
5965 #line 2681 "conf_parser.y" /* yacc.c:1646 */
5966 {
5967 ConfigGeneral.short_motd = yylval.number;
5968 }
5969 #line 5970 "conf_parser.c" /* yacc.c:1646 */
5970 break;
5971
5972 case 568:
5973 #line 2686 "conf_parser.y" /* yacc.c:1646 */
5974 {
5975 ConfigGeneral.no_oper_flood = yylval.number;
5976 }
5977 #line 5978 "conf_parser.c" /* yacc.c:1646 */
5978 break;
5979
5980 case 569:
5981 #line 2691 "conf_parser.y" /* yacc.c:1646 */
5982 {
5983 ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5984 }
5985 #line 5986 "conf_parser.c" /* yacc.c:1646 */
5986 break;
5987
5988 case 570:
5989 #line 2696 "conf_parser.y" /* yacc.c:1646 */
5990 {
5991 ConfigGeneral.max_targets = (yyvsp[-1].number);
5992 }
5993 #line 5994 "conf_parser.c" /* yacc.c:1646 */
5994 break;
5995
5996 case 571:
5997 #line 2701 "conf_parser.y" /* yacc.c:1646 */
5998 {
5999 ConfigGeneral.ping_cookie = yylval.number;
6000 }
6001 #line 6002 "conf_parser.c" /* yacc.c:1646 */
6002 break;
6003
6004 case 572:
6005 #line 2706 "conf_parser.y" /* yacc.c:1646 */
6006 {
6007 ConfigGeneral.disable_auth = yylval.number;
6008 }
6009 #line 6010 "conf_parser.c" /* yacc.c:1646 */
6010 break;
6011
6012 case 573:
6013 #line 2711 "conf_parser.y" /* yacc.c:1646 */
6014 {
6015 ConfigGeneral.throttle_count = (yyvsp[-1].number);
6016 }
6017 #line 6018 "conf_parser.c" /* yacc.c:1646 */
6018 break;
6019
6020 case 574:
6021 #line 2716 "conf_parser.y" /* yacc.c:1646 */
6022 {
6023 ConfigGeneral.throttle_time = (yyvsp[-1].number);
6024 }
6025 #line 6026 "conf_parser.c" /* yacc.c:1646 */
6026 break;
6027
6028 case 575:
6029 #line 2721 "conf_parser.y" /* yacc.c:1646 */
6030 {
6031 ConfigGeneral.oper_umodes = 0;
6032 }
6033 #line 6034 "conf_parser.c" /* yacc.c:1646 */
6034 break;
6035
6036 case 579:
6037 #line 2727 "conf_parser.y" /* yacc.c:1646 */
6038 {
6039 ConfigGeneral.oper_umodes |= UMODE_BOTS;
6040 }
6041 #line 6042 "conf_parser.c" /* yacc.c:1646 */
6042 break;
6043
6044 case 580:
6045 #line 2730 "conf_parser.y" /* yacc.c:1646 */
6046 {
6047 ConfigGeneral.oper_umodes |= UMODE_CCONN;
6048 }
6049 #line 6050 "conf_parser.c" /* yacc.c:1646 */
6050 break;
6051
6052 case 581:
6053 #line 2733 "conf_parser.y" /* yacc.c:1646 */
6054 {
6055 ConfigGeneral.oper_umodes |= UMODE_DEAF;
6056 }
6057 #line 6058 "conf_parser.c" /* yacc.c:1646 */
6058 break;
6059
6060 case 582:
6061 #line 2736 "conf_parser.y" /* yacc.c:1646 */
6062 {
6063 ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6064 }
6065 #line 6066 "conf_parser.c" /* yacc.c:1646 */
6066 break;
6067
6068 case 583:
6069 #line 2739 "conf_parser.y" /* yacc.c:1646 */
6070 {
6071 ConfigGeneral.oper_umodes |= UMODE_FULL;
6072 }
6073 #line 6074 "conf_parser.c" /* yacc.c:1646 */
6074 break;
6075
6076 case 584:
6077 #line 2742 "conf_parser.y" /* yacc.c:1646 */
6078 {
6079 ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6080 }
6081 #line 6082 "conf_parser.c" /* yacc.c:1646 */
6082 break;
6083
6084 case 585:
6085 #line 2745 "conf_parser.y" /* yacc.c:1646 */
6086 {
6087 ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6088 }
6089 #line 6090 "conf_parser.c" /* yacc.c:1646 */
6090 break;
6091
6092 case 586:
6093 #line 2748 "conf_parser.y" /* yacc.c:1646 */
6094 {
6095 ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6096 }
6097 #line 6098 "conf_parser.c" /* yacc.c:1646 */
6098 break;
6099
6100 case 587:
6101 #line 2751 "conf_parser.y" /* yacc.c:1646 */
6102 {
6103 ConfigGeneral.oper_umodes |= UMODE_SKILL;
6104 }
6105 #line 6106 "conf_parser.c" /* yacc.c:1646 */
6106 break;
6107
6108 case 588:
6109 #line 2754 "conf_parser.y" /* yacc.c:1646 */
6110 {
6111 ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6112 }
6113 #line 6114 "conf_parser.c" /* yacc.c:1646 */
6114 break;
6115
6116 case 589:
6117 #line 2757 "conf_parser.y" /* yacc.c:1646 */
6118 {
6119 ConfigGeneral.oper_umodes |= UMODE_REJ;
6120 }
6121 #line 6122 "conf_parser.c" /* yacc.c:1646 */
6122 break;
6123
6124 case 590:
6125 #line 2760 "conf_parser.y" /* yacc.c:1646 */
6126 {
6127 ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6128 }
6129 #line 6130 "conf_parser.c" /* yacc.c:1646 */
6130 break;
6131
6132 case 591:
6133 #line 2763 "conf_parser.y" /* yacc.c:1646 */
6134 {
6135 ConfigGeneral.oper_umodes |= UMODE_SPY;
6136 }
6137 #line 6138 "conf_parser.c" /* yacc.c:1646 */
6138 break;
6139
6140 case 592:
6141 #line 2766 "conf_parser.y" /* yacc.c:1646 */
6142 {
6143 ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6144 }
6145 #line 6146 "conf_parser.c" /* yacc.c:1646 */
6146 break;
6147
6148 case 593:
6149 #line 2769 "conf_parser.y" /* yacc.c:1646 */
6150 {
6151 ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6152 }
6153 #line 6154 "conf_parser.c" /* yacc.c:1646 */
6154 break;
6155
6156 case 594:
6157 #line 2772 "conf_parser.y" /* yacc.c:1646 */
6158 {
6159 ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6160 }
6161 #line 6162 "conf_parser.c" /* yacc.c:1646 */
6162 break;
6163
6164 case 595:
6165 #line 2775 "conf_parser.y" /* yacc.c:1646 */
6166 {
6167 ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6168 }
6169 #line 6170 "conf_parser.c" /* yacc.c:1646 */
6170 break;
6171
6172 case 596:
6173 #line 2778 "conf_parser.y" /* yacc.c:1646 */
6174 {
6175 ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6176 }
6177 #line 6178 "conf_parser.c" /* yacc.c:1646 */
6178 break;
6179
6180 case 597:
6181 #line 2781 "conf_parser.y" /* yacc.c:1646 */
6182 {
6183 ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6184 }
6185 #line 6186 "conf_parser.c" /* yacc.c:1646 */
6186 break;
6187
6188 case 598:
6189 #line 2784 "conf_parser.y" /* yacc.c:1646 */
6190 {
6191 ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6192 }
6193 #line 6194 "conf_parser.c" /* yacc.c:1646 */
6194 break;
6195
6196 case 599:
6197 #line 2787 "conf_parser.y" /* yacc.c:1646 */
6198 {
6199 ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6200 }
6201 #line 6202 "conf_parser.c" /* yacc.c:1646 */
6202 break;
6203
6204 case 600:
6205 #line 2790 "conf_parser.y" /* yacc.c:1646 */
6206 {
6207 ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6208 }
6209 #line 6210 "conf_parser.c" /* yacc.c:1646 */
6210 break;
6211
6212 case 601:
6213 #line 2795 "conf_parser.y" /* yacc.c:1646 */
6214 {
6215 ConfigGeneral.oper_only_umodes = 0;
6216 }
6217 #line 6218 "conf_parser.c" /* yacc.c:1646 */
6218 break;
6219
6220 case 605:
6221 #line 2801 "conf_parser.y" /* yacc.c:1646 */
6222 {
6223 ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6224 }
6225 #line 6226 "conf_parser.c" /* yacc.c:1646 */
6226 break;
6227
6228 case 606:
6229 #line 2804 "conf_parser.y" /* yacc.c:1646 */
6230 {
6231 ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6232 }
6233 #line 6234 "conf_parser.c" /* yacc.c:1646 */
6234 break;
6235
6236 case 607:
6237 #line 2807 "conf_parser.y" /* yacc.c:1646 */
6238 {
6239 ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6240 }
6241 #line 6242 "conf_parser.c" /* yacc.c:1646 */
6242 break;
6243
6244 case 608:
6245 #line 2810 "conf_parser.y" /* yacc.c:1646 */
6246 {
6247 ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6248 }
6249 #line 6250 "conf_parser.c" /* yacc.c:1646 */
6250 break;
6251
6252 case 609:
6253 #line 2813 "conf_parser.y" /* yacc.c:1646 */
6254 {
6255 ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6256 }
6257 #line 6258 "conf_parser.c" /* yacc.c:1646 */
6258 break;
6259
6260 case 610:
6261 #line 2816 "conf_parser.y" /* yacc.c:1646 */
6262 {
6263 ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6264 }
6265 #line 6266 "conf_parser.c" /* yacc.c:1646 */
6266 break;
6267
6268 case 611:
6269 #line 2819 "conf_parser.y" /* yacc.c:1646 */
6270 {
6271 ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6272 }
6273 #line 6274 "conf_parser.c" /* yacc.c:1646 */
6274 break;
6275
6276 case 612:
6277 #line 2822 "conf_parser.y" /* yacc.c:1646 */
6278 {
6279 ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6280 }
6281 #line 6282 "conf_parser.c" /* yacc.c:1646 */
6282 break;
6283
6284 case 613:
6285 #line 2825 "conf_parser.y" /* yacc.c:1646 */
6286 {
6287 ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6288 }
6289 #line 6290 "conf_parser.c" /* yacc.c:1646 */
6290 break;
6291
6292 case 614:
6293 #line 2828 "conf_parser.y" /* yacc.c:1646 */
6294 {
6295 ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6296 }
6297 #line 6298 "conf_parser.c" /* yacc.c:1646 */
6298 break;
6299
6300 case 615:
6301 #line 2831 "conf_parser.y" /* yacc.c:1646 */
6302 {
6303 ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6304 }
6305 #line 6306 "conf_parser.c" /* yacc.c:1646 */
6306 break;
6307
6308 case 616:
6309 #line 2834 "conf_parser.y" /* yacc.c:1646 */
6310 {
6311 ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6312 }
6313 #line 6314 "conf_parser.c" /* yacc.c:1646 */
6314 break;
6315
6316 case 617:
6317 #line 2837 "conf_parser.y" /* yacc.c:1646 */
6318 {
6319 ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6320 }
6321 #line 6322 "conf_parser.c" /* yacc.c:1646 */
6322 break;
6323
6324 case 618:
6325 #line 2840 "conf_parser.y" /* yacc.c:1646 */
6326 {
6327 ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6328 }
6329 #line 6330 "conf_parser.c" /* yacc.c:1646 */
6330 break;
6331
6332 case 619:
6333 #line 2843 "conf_parser.y" /* yacc.c:1646 */
6334 {
6335 ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6336 }
6337 #line 6338 "conf_parser.c" /* yacc.c:1646 */
6338 break;
6339
6340 case 620:
6341 #line 2846 "conf_parser.y" /* yacc.c:1646 */
6342 {
6343 ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6344 }
6345 #line 6346 "conf_parser.c" /* yacc.c:1646 */
6346 break;
6347
6348 case 621:
6349 #line 2849 "conf_parser.y" /* yacc.c:1646 */
6350 {
6351 ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6352 }
6353 #line 6354 "conf_parser.c" /* yacc.c:1646 */
6354 break;
6355
6356 case 622:
6357 #line 2852 "conf_parser.y" /* yacc.c:1646 */
6358 {
6359 ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6360 }
6361 #line 6362 "conf_parser.c" /* yacc.c:1646 */
6362 break;
6363
6364 case 623:
6365 #line 2855 "conf_parser.y" /* yacc.c:1646 */
6366 {
6367 ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6368 }
6369 #line 6370 "conf_parser.c" /* yacc.c:1646 */
6370 break;
6371
6372 case 624:
6373 #line 2858 "conf_parser.y" /* yacc.c:1646 */
6374 {
6375 ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6376 }
6377 #line 6378 "conf_parser.c" /* yacc.c:1646 */
6378 break;
6379
6380 case 625:
6381 #line 2863 "conf_parser.y" /* yacc.c:1646 */
6382 {
6383 ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6384 }
6385 #line 6386 "conf_parser.c" /* yacc.c:1646 */
6386 break;
6387
6388 case 626:
6389 #line 2868 "conf_parser.y" /* yacc.c:1646 */
6390 {
6391 ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6392 }
6393 #line 6394 "conf_parser.c" /* yacc.c:1646 */
6394 break;
6395
6396 case 627:
6397 #line 2873 "conf_parser.y" /* yacc.c:1646 */
6398 {
6399 ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6400 }
6401 #line 6402 "conf_parser.c" /* yacc.c:1646 */
6402 break;
6403
6404 case 645:
6405 #line 2900 "conf_parser.y" /* yacc.c:1646 */
6406 {
6407 ConfigChannel.disable_fake_channels = yylval.number;
6408 }
6409 #line 6410 "conf_parser.c" /* yacc.c:1646 */
6410 break;
6411
6412 case 646:
6413 #line 2905 "conf_parser.y" /* yacc.c:1646 */
6414 {
6415 ConfigChannel.invite_client_count = (yyvsp[-1].number);
6416 }
6417 #line 6418 "conf_parser.c" /* yacc.c:1646 */
6418 break;
6419
6420 case 647:
6421 #line 2910 "conf_parser.y" /* yacc.c:1646 */
6422 {
6423 ConfigChannel.invite_client_time = (yyvsp[-1].number);
6424 }
6425 #line 6426 "conf_parser.c" /* yacc.c:1646 */
6426 break;
6427
6428 case 648:
6429 #line 2915 "conf_parser.y" /* yacc.c:1646 */
6430 {
6431 ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6432 }
6433 #line 6434 "conf_parser.c" /* yacc.c:1646 */
6434 break;
6435
6436 case 649:
6437 #line 2920 "conf_parser.y" /* yacc.c:1646 */
6438 {
6439 ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6440 }
6441 #line 6442 "conf_parser.c" /* yacc.c:1646 */
6442 break;
6443
6444 case 650:
6445 #line 2925 "conf_parser.y" /* yacc.c:1646 */
6446 {
6447 ConfigChannel.knock_client_count = (yyvsp[-1].number);
6448 }
6449 #line 6450 "conf_parser.c" /* yacc.c:1646 */
6450 break;
6451
6452 case 651:
6453 #line 2930 "conf_parser.y" /* yacc.c:1646 */
6454 {
6455 ConfigChannel.knock_client_time = (yyvsp[-1].number);
6456 }
6457 #line 6458 "conf_parser.c" /* yacc.c:1646 */
6458 break;
6459
6460 case 652:
6461 #line 2935 "conf_parser.y" /* yacc.c:1646 */
6462 {
6463 ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6464 }
6465 #line 6466 "conf_parser.c" /* yacc.c:1646 */
6466 break;
6467
6468 case 653:
6469 #line 2940 "conf_parser.y" /* yacc.c:1646 */
6470 {
6471 ConfigChannel.max_channels = (yyvsp[-1].number);
6472 }
6473 #line 6474 "conf_parser.c" /* yacc.c:1646 */
6474 break;
6475
6476 case 654:
6477 #line 2945 "conf_parser.y" /* yacc.c:1646 */
6478 {
6479 ConfigChannel.max_invites = (yyvsp[-1].number);
6480 }
6481 #line 6482 "conf_parser.c" /* yacc.c:1646 */
6482 break;
6483
6484 case 655:
6485 #line 2950 "conf_parser.y" /* yacc.c:1646 */
6486 {
6487 ConfigChannel.max_bans = (yyvsp[-1].number);
6488 }
6489 #line 6490 "conf_parser.c" /* yacc.c:1646 */
6490 break;
6491
6492 case 656:
6493 #line 2955 "conf_parser.y" /* yacc.c:1646 */
6494 {
6495 ConfigChannel.default_join_flood_count = yylval.number;
6496 }
6497 #line 6498 "conf_parser.c" /* yacc.c:1646 */
6498 break;
6499
6500 case 657:
6501 #line 2960 "conf_parser.y" /* yacc.c:1646 */
6502 {
6503 ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6504 }
6505 #line 6506 "conf_parser.c" /* yacc.c:1646 */
6506 break;
6507
6508 case 671:
6509 #line 2983 "conf_parser.y" /* yacc.c:1646 */
6510 {
6511 if (conf_parser_ctx.pass == 2)
6512 ConfigServerHide.flatten_links = yylval.number;
6513 }
6514 #line 6515 "conf_parser.c" /* yacc.c:1646 */
6515 break;
6516
6517 case 672:
6518 #line 2989 "conf_parser.y" /* yacc.c:1646 */
6519 {
6520 if (conf_parser_ctx.pass == 2)
6521 {
6522 if ((yyvsp[-1].number) > 0)
6523 {
6524 event_write_links_file.when = (yyvsp[-1].number);
6525 event_add(&event_write_links_file, NULL);
6526 }
6527 else
6528 event_delete(&event_write_links_file);
6529
6530 ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6531 }
6532 }
6533 #line 6534 "conf_parser.c" /* yacc.c:1646 */
6534 break;
6535
6536 case 673:
6537 #line 3005 "conf_parser.y" /* yacc.c:1646 */
6538 {
6539 if (conf_parser_ctx.pass == 2)
6540 {
6541 xfree(ConfigServerHide.flatten_links_file);
6542 ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6543 }
6544 }
6545 #line 6546 "conf_parser.c" /* yacc.c:1646 */
6546 break;
6547
6548 case 674:
6549 #line 3014 "conf_parser.y" /* yacc.c:1646 */
6550 {
6551 if (conf_parser_ctx.pass == 2)
6552 ConfigServerHide.disable_remote_commands = yylval.number;
6553 }
6554 #line 6555 "conf_parser.c" /* yacc.c:1646 */
6555 break;
6556
6557 case 675:
6558 #line 3020 "conf_parser.y" /* yacc.c:1646 */
6559 {
6560 if (conf_parser_ctx.pass == 2)
6561 ConfigServerHide.hide_servers = yylval.number;
6562 }
6563 #line 6564 "conf_parser.c" /* yacc.c:1646 */
6564 break;
6565
6566 case 676:
6567 #line 3026 "conf_parser.y" /* yacc.c:1646 */
6568 {
6569 if (conf_parser_ctx.pass == 2)
6570 ConfigServerHide.hide_services = yylval.number;
6571 }
6572 #line 6573 "conf_parser.c" /* yacc.c:1646 */
6573 break;
6574
6575 case 677:
6576 #line 3032 "conf_parser.y" /* yacc.c:1646 */
6577 {
6578 if (conf_parser_ctx.pass == 2)
6579 {
6580 xfree(ConfigServerHide.hidden_name);
6581 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6582 }
6583 }
6584 #line 6585 "conf_parser.c" /* yacc.c:1646 */
6585 break;
6586
6587 case 678:
6588 #line 3041 "conf_parser.y" /* yacc.c:1646 */
6589 {
6590 if (conf_parser_ctx.pass == 2)
6591 ConfigServerHide.hidden = yylval.number;
6592 }
6593 #line 6594 "conf_parser.c" /* yacc.c:1646 */
6594 break;
6595
6596 case 679:
6597 #line 3047 "conf_parser.y" /* yacc.c:1646 */
6598 {
6599 if (conf_parser_ctx.pass == 2)
6600 ConfigServerHide.hide_server_ips = yylval.number;
6601 }
6602 #line 6603 "conf_parser.c" /* yacc.c:1646 */
6603 break;
6604
6605
6606 #line 6607 "conf_parser.c" /* yacc.c:1646 */
6607 default: break;
6608 }
6609 /* User semantic actions sometimes alter yychar, and that requires
6610 that yytoken be updated with the new translation. We take the
6611 approach of translating immediately before every use of yytoken.
6612 One alternative is translating here after every semantic action,
6613 but that translation would be missed if the semantic action invokes
6614 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6615 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6616 incorrect destructor might then be invoked immediately. In the
6617 case of YYERROR or YYBACKUP, subsequent parser actions might lead
6618 to an incorrect destructor call or verbose syntax error message
6619 before the lookahead is translated. */
6620 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6621
6622 YYPOPSTACK (yylen);
6623 yylen = 0;
6624 YY_STACK_PRINT (yyss, yyssp);
6625
6626 *++yyvsp = yyval;
6627
6628 /* Now 'shift' the result of the reduction. Determine what state
6629 that goes to, based on the state we popped back to and the rule
6630 number reduced by. */
6631
6632 yyn = yyr1[yyn];
6633
6634 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6635 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6636 yystate = yytable[yystate];
6637 else
6638 yystate = yydefgoto[yyn - YYNTOKENS];
6639
6640 goto yynewstate;
6641
6642
6643 /*--------------------------------------.
6644 | yyerrlab -- here on detecting error. |
6645 `--------------------------------------*/
6646 yyerrlab:
6647 /* Make sure we have latest lookahead translation. See comments at
6648 user semantic actions for why this is necessary. */
6649 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6650
6651 /* If not already recovering from an error, report this error. */
6652 if (!yyerrstatus)
6653 {
6654 ++yynerrs;
6655 #if ! YYERROR_VERBOSE
6656 yyerror (YY_("syntax error"));
6657 #else
6658 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6659 yyssp, yytoken)
6660 {
6661 char const *yymsgp = YY_("syntax error");
6662 int yysyntax_error_status;
6663 yysyntax_error_status = YYSYNTAX_ERROR;
6664 if (yysyntax_error_status == 0)
6665 yymsgp = yymsg;
6666 else if (yysyntax_error_status == 1)
6667 {
6668 if (yymsg != yymsgbuf)
6669 YYSTACK_FREE (yymsg);
6670 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6671 if (!yymsg)
6672 {
6673 yymsg = yymsgbuf;
6674 yymsg_alloc = sizeof yymsgbuf;
6675 yysyntax_error_status = 2;
6676 }
6677 else
6678 {
6679 yysyntax_error_status = YYSYNTAX_ERROR;
6680 yymsgp = yymsg;
6681 }
6682 }
6683 yyerror (yymsgp);
6684 if (yysyntax_error_status == 2)
6685 goto yyexhaustedlab;
6686 }
6687 # undef YYSYNTAX_ERROR
6688 #endif
6689 }
6690
6691
6692
6693 if (yyerrstatus == 3)
6694 {
6695 /* If just tried and failed to reuse lookahead token after an
6696 error, discard it. */
6697
6698 if (yychar <= YYEOF)
6699 {
6700 /* Return failure if at end of input. */
6701 if (yychar == YYEOF)
6702 YYABORT;
6703 }
6704 else
6705 {
6706 yydestruct ("Error: discarding",
6707 yytoken, &yylval);
6708 yychar = YYEMPTY;
6709 }
6710 }
6711
6712 /* Else will try to reuse lookahead token after shifting the error
6713 token. */
6714 goto yyerrlab1;
6715
6716
6717 /*---------------------------------------------------.
6718 | yyerrorlab -- error raised explicitly by YYERROR. |
6719 `---------------------------------------------------*/
6720 yyerrorlab:
6721
6722 /* Pacify compilers like GCC when the user code never invokes
6723 YYERROR and the label yyerrorlab therefore never appears in user
6724 code. */
6725 if (/*CONSTCOND*/ 0)
6726 goto yyerrorlab;
6727
6728 /* Do not reclaim the symbols of the rule whose action triggered
6729 this YYERROR. */
6730 YYPOPSTACK (yylen);
6731 yylen = 0;
6732 YY_STACK_PRINT (yyss, yyssp);
6733 yystate = *yyssp;
6734 goto yyerrlab1;
6735
6736
6737 /*-------------------------------------------------------------.
6738 | yyerrlab1 -- common code for both syntax error and YYERROR. |
6739 `-------------------------------------------------------------*/
6740 yyerrlab1:
6741 yyerrstatus = 3; /* Each real token shifted decrements this. */
6742
6743 for (;;)
6744 {
6745 yyn = yypact[yystate];
6746 if (!yypact_value_is_default (yyn))
6747 {
6748 yyn += YYTERROR;
6749 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6750 {
6751 yyn = yytable[yyn];
6752 if (0 < yyn)
6753 break;
6754 }
6755 }
6756
6757 /* Pop the current state because it cannot handle the error token. */
6758 if (yyssp == yyss)
6759 YYABORT;
6760
6761
6762 yydestruct ("Error: popping",
6763 yystos[yystate], yyvsp);
6764 YYPOPSTACK (1);
6765 yystate = *yyssp;
6766 YY_STACK_PRINT (yyss, yyssp);
6767 }
6768
6769 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6770 *++yyvsp = yylval;
6771 YY_IGNORE_MAYBE_UNINITIALIZED_END
6772
6773
6774 /* Shift the error token. */
6775 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6776
6777 yystate = yyn;
6778 goto yynewstate;
6779
6780
6781 /*-------------------------------------.
6782 | yyacceptlab -- YYACCEPT comes here. |
6783 `-------------------------------------*/
6784 yyacceptlab:
6785 yyresult = 0;
6786 goto yyreturn;
6787
6788 /*-----------------------------------.
6789 | yyabortlab -- YYABORT comes here. |
6790 `-----------------------------------*/
6791 yyabortlab:
6792 yyresult = 1;
6793 goto yyreturn;
6794
6795 #if !defined yyoverflow || YYERROR_VERBOSE
6796 /*-------------------------------------------------.
6797 | yyexhaustedlab -- memory exhaustion comes here. |
6798 `-------------------------------------------------*/
6799 yyexhaustedlab:
6800 yyerror (YY_("memory exhausted"));
6801 yyresult = 2;
6802 /* Fall through. */
6803 #endif
6804
6805 yyreturn:
6806 if (yychar != YYEMPTY)
6807 {
6808 /* Make sure we have latest lookahead translation. See comments at
6809 user semantic actions for why this is necessary. */
6810 yytoken = YYTRANSLATE (yychar);
6811 yydestruct ("Cleanup: discarding lookahead",
6812 yytoken, &yylval);
6813 }
6814 /* Do not reclaim the symbols of the rule whose action triggered
6815 this YYABORT or YYACCEPT. */
6816 YYPOPSTACK (yylen);
6817 YY_STACK_PRINT (yyss, yyssp);
6818 while (yyssp != yyss)
6819 {
6820 yydestruct ("Cleanup: popping",
6821 yystos[*yyssp], yyvsp);
6822 YYPOPSTACK (1);
6823 }
6824 #ifndef yyoverflow
6825 if (yyss != yyssa)
6826 YYSTACK_FREE (yyss);
6827 #endif
6828 #if YYERROR_VERBOSE
6829 if (yymsg != yymsgbuf)
6830 YYSTACK_FREE (yymsg);
6831 #endif
6832 return yyresult;
6833 }

Properties

Name Value
svn:eol-style native