ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2248
Committed: Sun Jun 16 11:28:30 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 225729 byte(s)
Log Message:
- Add operator::ssl_connection_required configuration option

File Contents

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

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision