ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
(Generate patch)

Comparing:
ircd-hybrid-7.3/src/ircd_parser.c (file contents), Revision 1121 by michael, Sun Jan 9 11:03:03 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 3762 by michael, Sun Jun 1 19:35:16 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.4.3.  */
1 > /* A Bison parser, made by GNU Bison 3.0.2.  */
2 >
3 > /* Bison implementation for Yacc-like parsers in C
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6  
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
4  
5      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6   2009, 2010 Free Software Foundation, Inc.
7  
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 <  
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 <  
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  
# Line 27 | Line 26
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 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 45 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.3"
47 > #define YYBISON_VERSION "3.0.2"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 59 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
62 /* Using locations.  */
63 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
69 < /* Line 189 of yacc.c  */
70 < #line 25 "ircd_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 78 | Line 73
73   #include "stdinc.h"
74   #include "ircd.h"
75   #include "list.h"
76 < #include "s_conf.h"
76 > #include "conf.h"
77 > #include "conf_class.h"
78   #include "event.h"
79 < #include "s_log.h"
79 > #include "log.h"
80   #include "client.h"     /* for UMODE_ALL only */
81   #include "irc_string.h"
86 #include "irc_getaddrinfo.h"
87 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84 < #include "s_serv.h"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "user.h"
91 > #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
95   #include <openssl/bio.h>
96   #include <openssl/pem.h>
97 + #include <openssl/dh.h>
98   #endif
99  
100 < static char *class_name = NULL;
105 < static struct ConfItem *yy_conf = NULL;
106 < static struct AccessItem *yy_aconf = NULL;
107 < static struct MatchItem *yy_match_item = NULL;
108 < static struct ClassItem *yy_class = NULL;
109 < static char *yy_class_name = NULL;
110 <
111 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
112 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
113 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
114 < static unsigned int listener_flags = 0;
115 < static unsigned int regex_ban = 0;
116 < static char userbuf[IRCD_BUFSIZE];
117 < static char hostbuf[IRCD_BUFSIZE];
118 < static char reasonbuf[REASONLEN + 1];
119 < static char gecos_name[REALLEN * 4];
120 <
121 < static char *resv_reason = NULL;
122 < static char *listener_address = NULL;
123 < static int not_atom = 0;
100 > #include "rsa.h"
101  
102 < struct CollectItem
126 < {
127 <  dlink_node node;
128 <  char *name;
129 <  char *user;
130 <  char *host;
131 <  char *passwd;
132 <  int  port;
133 <  int  flags;
134 < #ifdef HAVE_LIBCRYPTO
135 <  char *rsa_public_key_file;
136 <  RSA *rsa_public_key;
137 < #endif
138 < };
102 > int yylex(void);
103  
104 < static void
141 < free_collect_item(struct CollectItem *item)
104 > static struct
105   {
106 <  MyFree(item->name);
107 <  MyFree(item->user);
108 <  MyFree(item->host);
109 <  MyFree(item->passwd);
110 < #ifdef HAVE_LIBCRYPTO
111 <  MyFree(item->rsa_public_key_file);
112 < #endif
113 <  MyFree(item);
114 < }
106 >  struct
107 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    cidr_bitlen_ipv4,
149 >    cidr_bitlen_ipv6,
150 >    number_per_cidr;
151 > } block_state;
152  
153   static void
154 < unhook_hub_leaf_confs(void)
154 > reset_block_state(void)
155   {
156 <  dlink_node *ptr;
157 <  dlink_node *next_ptr;
158 <  struct CollectItem *yy_hconf;
159 <  struct CollectItem *yy_lconf;
156 >  dlink_node *ptr = NULL, *ptr_next = NULL;
157  
158 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
159    {
160 <    yy_hconf = ptr->data;
161 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
162 <    free_collect_item(yy_hconf);
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.mask.list);
162 >    free_dlink_node(ptr);
163    }
164  
165 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
166    {
167 <    yy_lconf = ptr->data;
168 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
169 <    free_collect_item(yy_lconf);
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.leaf.list);
169 >    free_dlink_node(ptr);
170    }
174 }
171  
172 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
173 +  {
174 +    MyFree(ptr->data);
175 +    dlinkDelete(ptr, &block_state.hub.list);
176 +    free_dlink_node(ptr);
177 +  }
178  
179 +  memset(&block_state, 0, sizeof(block_state));
180 + }
181  
178 /* Line 189 of yacc.c  */
179 #line 180 "ircd_parser.c"
182  
183 < /* Enabling traces.  */
184 < #ifndef YYDEBUG
185 < # define YYDEBUG 0
186 < #endif
183 > #line 184 "conf_parser.c" /* yacc.c:339  */
184 >
185 > # ifndef YY_NULLPTR
186 > #  if defined __cplusplus && 201103L <= __cplusplus
187 > #   define YY_NULLPTR nullptr
188 > #  else
189 > #   define YY_NULLPTR 0
190 > #  endif
191 > # endif
192  
193   /* Enabling verbose error messages.  */
194   #ifdef YYERROR_VERBOSE
# Line 191 | Line 198 | unhook_hub_leaf_confs(void)
198   # define YYERROR_VERBOSE 0
199   #endif
200  
201 < /* Enabling the token table.  */
202 < #ifndef YYTOKEN_TABLE
203 < # define YYTOKEN_TABLE 0
201 > /* In a future release of Bison, this section will be replaced
202 >   by #include "y.tab.h".  */
203 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
204 > # define YY_YY_CONF_PARSER_H_INCLUDED
205 > /* Debug traces.  */
206 > #ifndef YYDEBUG
207 > # define YYDEBUG 0
208 > #endif
209 > #if YYDEBUG
210 > extern int yydebug;
211   #endif
212  
213 <
200 < /* Tokens.  */
213 > /* Token type.  */
214   #ifndef YYTOKENTYPE
215   # define YYTOKENTYPE
216 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
217 <      know about them.  */
218 <   enum yytokentype {
219 <     ACCEPT_PASSWORD = 258,
220 <     ACTION = 259,
221 <     ADMIN = 260,
222 <     AFTYPE = 261,
223 <     T_ALLOW = 262,
224 <     ANTI_NICK_FLOOD = 263,
225 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
226 <     AUTOCONN = 265,
227 <     T_BLOCK = 266,
228 <     BURST_AWAY = 267,
229 <     BURST_TOPICWHO = 268,
230 <     BYTES = 269,
231 <     KBYTES = 270,
232 <     MBYTES = 271,
233 <     GBYTES = 272,
234 <     TBYTES = 273,
235 <     CALLER_ID_WAIT = 274,
236 <     CAN_FLOOD = 275,
237 <     CAN_IDLE = 276,
238 <     CHANNEL = 277,
239 <     CIDR_BITLEN_IPV4 = 278,
240 <     CIDR_BITLEN_IPV6 = 279,
241 <     CIPHER_PREFERENCE = 280,
242 <     CLASS = 281,
243 <     COMPRESSED = 282,
244 <     COMPRESSION_LEVEL = 283,
245 <     CONNECT = 284,
246 <     CONNECTFREQ = 285,
247 <     CRYPTLINK = 286,
248 <     DEFAULT_CIPHER_PREFERENCE = 287,
249 <     DEFAULT_FLOODCOUNT = 288,
250 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
251 <     DEFAULT_SPLIT_USER_COUNT = 290,
252 <     DENY = 291,
253 <     DESCRIPTION = 292,
254 <     DIE = 293,
255 <     DISABLE_AUTH = 294,
256 <     DISABLE_FAKE_CHANNELS = 295,
257 <     DISABLE_HIDDEN = 296,
258 <     DISABLE_LOCAL_CHANNELS = 297,
259 <     DISABLE_REMOTE_COMMANDS = 298,
260 <     DOTS_IN_IDENT = 299,
261 <     DURATION = 300,
262 <     EGDPOOL_PATH = 301,
263 <     EMAIL = 302,
264 <     ENABLE = 303,
265 <     ENCRYPTED = 304,
266 <     EXCEED_LIMIT = 305,
267 <     EXEMPT = 306,
268 <     FAILED_OPER_NOTICE = 307,
269 <     IRCD_FLAGS = 308,
270 <     FLATTEN_LINKS = 309,
271 <     FFAILED_OPERLOG = 310,
272 <     FKILLLOG = 311,
273 <     FKLINELOG = 312,
274 <     FGLINELOG = 313,
275 <     FIOERRLOG = 314,
276 <     FOPERLOG = 315,
277 <     FOPERSPYLOG = 316,
278 <     FUSERLOG = 317,
279 <     GECOS = 318,
280 <     GENERAL = 319,
281 <     GLINE = 320,
282 <     GLINES = 321,
283 <     GLINE_EXEMPT = 322,
284 <     GLINE_LOG = 323,
285 <     GLINE_TIME = 324,
286 <     GLINE_MIN_CIDR = 325,
287 <     GLINE_MIN_CIDR6 = 326,
288 <     GLOBAL_KILL = 327,
289 <     IRCD_AUTH = 328,
290 <     NEED_IDENT = 329,
291 <     HAVENT_READ_CONF = 330,
292 <     HIDDEN = 331,
293 <     HIDDEN_ADMIN = 332,
294 <     HIDDEN_NAME = 333,
295 <     HIDDEN_OPER = 334,
296 <     HIDE_SERVER_IPS = 335,
297 <     HIDE_SERVERS = 336,
298 <     HIDE_SPOOF_IPS = 337,
299 <     HOST = 338,
300 <     HUB = 339,
301 <     HUB_MASK = 340,
302 <     IDLETIME = 341,
303 <     IGNORE_BOGUS_TS = 342,
304 <     INVISIBLE_ON_CONNECT = 343,
305 <     IP = 344,
306 <     KILL = 345,
307 <     KILL_CHASE_TIME_LIMIT = 346,
308 <     KLINE = 347,
309 <     KLINE_EXEMPT = 348,
310 <     KLINE_REASON = 349,
311 <     KLINE_WITH_REASON = 350,
312 <     KNOCK_DELAY = 351,
313 <     KNOCK_DELAY_CHANNEL = 352,
314 <     LEAF_MASK = 353,
315 <     LINKS_DELAY = 354,
316 <     LISTEN = 355,
317 <     T_LOG = 356,
318 <     LOGGING = 357,
319 <     LOG_LEVEL = 358,
320 <     MAX_ACCEPT = 359,
321 <     MAX_BANS = 360,
322 <     MAX_CHANS_PER_USER = 361,
323 <     MAX_GLOBAL = 362,
324 <     MAX_IDENT = 363,
325 <     MAX_LOCAL = 364,
326 <     MAX_NICK_CHANGES = 365,
327 <     MAX_NICK_TIME = 366,
328 <     MAX_NUMBER = 367,
329 <     MAX_TARGETS = 368,
330 <     MAX_WATCH = 369,
331 <     MESSAGE_LOCALE = 370,
332 <     MIN_NONWILDCARD = 371,
333 <     MIN_NONWILDCARD_SIMPLE = 372,
334 <     MODULE = 373,
335 <     MODULES = 374,
336 <     NAME = 375,
337 <     NEED_PASSWORD = 376,
338 <     NETWORK_DESC = 377,
339 <     NETWORK_NAME = 378,
340 <     NICK = 379,
341 <     NICK_CHANGES = 380,
342 <     NO_CREATE_ON_SPLIT = 381,
343 <     NO_JOIN_ON_SPLIT = 382,
344 <     NO_OPER_FLOOD = 383,
345 <     NO_TILDE = 384,
346 <     NOT = 385,
347 <     NUMBER = 386,
348 <     NUMBER_PER_IDENT = 387,
349 <     NUMBER_PER_CIDR = 388,
350 <     NUMBER_PER_IP = 389,
351 <     NUMBER_PER_IP_GLOBAL = 390,
352 <     OPERATOR = 391,
353 <     OPERS_BYPASS_CALLERID = 392,
354 <     OPER_LOG = 393,
355 <     OPER_ONLY_UMODES = 394,
356 <     OPER_PASS_RESV = 395,
357 <     OPER_SPY_T = 396,
358 <     OPER_UMODES = 397,
359 <     JOIN_FLOOD_COUNT = 398,
360 <     JOIN_FLOOD_TIME = 399,
361 <     PACE_WAIT = 400,
362 <     PACE_WAIT_SIMPLE = 401,
363 <     PASSWORD = 402,
364 <     PATH = 403,
365 <     PING_COOKIE = 404,
366 <     PING_TIME = 405,
367 <     PING_WARNING = 406,
368 <     PORT = 407,
369 <     QSTRING = 408,
370 <     QUIET_ON_BAN = 409,
371 <     REASON = 410,
372 <     REDIRPORT = 411,
373 <     REDIRSERV = 412,
374 <     REGEX_T = 413,
375 <     REHASH = 414,
376 <     TREJECT_HOLD_TIME = 415,
377 <     REMOTE = 416,
378 <     REMOTEBAN = 417,
379 <     RESTRICT_CHANNELS = 418,
380 <     RESTRICTED = 419,
381 <     RSA_PRIVATE_KEY_FILE = 420,
382 <     RSA_PUBLIC_KEY_FILE = 421,
383 <     SSL_CERTIFICATE_FILE = 422,
384 <     T_SSL_CONNECTION_METHOD = 423,
385 <     T_SSLV3 = 424,
386 <     T_TLSV1 = 425,
387 <     RESV = 426,
388 <     RESV_EXEMPT = 427,
389 <     SECONDS = 428,
390 <     MINUTES = 429,
391 <     HOURS = 430,
392 <     DAYS = 431,
393 <     WEEKS = 432,
394 <     SENDQ = 433,
395 <     SEND_PASSWORD = 434,
396 <     SERVERHIDE = 435,
397 <     SERVERINFO = 436,
398 <     SERVLINK_PATH = 437,
399 <     IRCD_SID = 438,
400 <     TKLINE_EXPIRE_NOTICES = 439,
401 <     T_SHARED = 440,
402 <     T_CLUSTER = 441,
403 <     TYPE = 442,
404 <     SHORT_MOTD = 443,
405 <     SILENT = 444,
406 <     SPOOF = 445,
407 <     SPOOF_NOTICE = 446,
408 <     STATS_E_DISABLED = 447,
409 <     STATS_I_OPER_ONLY = 448,
410 <     STATS_K_OPER_ONLY = 449,
411 <     STATS_O_OPER_ONLY = 450,
412 <     STATS_P_OPER_ONLY = 451,
413 <     TBOOL = 452,
414 <     TMASKED = 453,
415 <     T_REJECT = 454,
416 <     TS_MAX_DELTA = 455,
417 <     TS_WARN_DELTA = 456,
418 <     TWODOTS = 457,
419 <     T_ALL = 458,
420 <     T_BOTS = 459,
421 <     T_SOFTCALLERID = 460,
422 <     T_CALLERID = 461,
423 <     T_CCONN = 462,
424 <     T_CCONN_FULL = 463,
425 <     T_CLIENT_FLOOD = 464,
426 <     T_DEAF = 465,
427 <     T_DEBUG = 466,
428 <     T_DRONE = 467,
429 <     T_EXTERNAL = 468,
430 <     T_FULL = 469,
431 <     T_INVISIBLE = 470,
432 <     T_IPV4 = 471,
433 <     T_IPV6 = 472,
434 <     T_LOCOPS = 473,
435 <     T_LOGPATH = 474,
436 <     T_L_CRIT = 475,
437 <     T_L_DEBUG = 476,
438 <     T_L_ERROR = 477,
439 <     T_L_INFO = 478,
440 <     T_L_NOTICE = 479,
441 <     T_L_TRACE = 480,
442 <     T_L_WARN = 481,
443 <     T_MAX_CLIENTS = 482,
444 <     T_NCHANGE = 483,
445 <     T_OPERWALL = 484,
446 <     T_REJ = 485,
434 <     T_SERVER = 486,
435 <     T_SERVNOTICE = 487,
436 <     T_SKILL = 488,
437 <     T_SPY = 489,
438 <     T_SSL = 490,
439 <     T_UMODES = 491,
440 <     T_UNAUTH = 492,
441 <     T_UNRESV = 493,
442 <     T_UNXLINE = 494,
443 <     T_WALLOP = 495,
444 <     THROTTLE_TIME = 496,
445 <     TOPICBURST = 497,
446 <     TRUE_NO_OPER_FLOOD = 498,
447 <     TKLINE = 499,
448 <     TXLINE = 500,
449 <     TRESV = 501,
450 <     UNKLINE = 502,
451 <     USER = 503,
452 <     USE_EGD = 504,
453 <     USE_EXCEPT = 505,
454 <     USE_INVEX = 506,
455 <     USE_KNOCK = 507,
456 <     USE_LOGGING = 508,
457 <     USE_WHOIS_ACTUALLY = 509,
458 <     VHOST = 510,
459 <     VHOST6 = 511,
460 <     XLINE = 512,
461 <     WARN = 513,
462 <     WARN_NO_NLINE = 514
463 <   };
216 >  enum yytokentype
217 >  {
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 >    CYCLE_ON_HOST_CHANGE = 275,
236 >    DEFAULT_FLOODCOUNT = 276,
237 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
238 >    DEFAULT_SPLIT_USER_COUNT = 278,
239 >    DENY = 279,
240 >    DESCRIPTION = 280,
241 >    DIE = 281,
242 >    DISABLE_AUTH = 282,
243 >    DISABLE_FAKE_CHANNELS = 283,
244 >    DISABLE_REMOTE_COMMANDS = 284,
245 >    DOTS_IN_IDENT = 285,
246 >    EGDPOOL_PATH = 286,
247 >    EMAIL = 287,
248 >    ENCRYPTED = 288,
249 >    EXCEED_LIMIT = 289,
250 >    EXEMPT = 290,
251 >    FAILED_OPER_NOTICE = 291,
252 >    FLATTEN_LINKS = 292,
253 >    GECOS = 293,
254 >    GENERAL = 294,
255 >    GLINE = 295,
256 >    GLINE_DURATION = 296,
257 >    GLINE_ENABLE = 297,
258 >    GLINE_EXEMPT = 298,
259 >    GLINE_MIN_CIDR = 299,
260 >    GLINE_MIN_CIDR6 = 300,
261 >    GLINE_REQUEST_DURATION = 301,
262 >    GLOBAL_KILL = 302,
263 >    HAVENT_READ_CONF = 303,
264 >    HIDDEN = 304,
265 >    HIDDEN_NAME = 305,
266 >    HIDE_CHANS = 306,
267 >    HIDE_IDLE = 307,
268 >    HIDE_IDLE_FROM_OPERS = 308,
269 >    HIDE_SERVER_IPS = 309,
270 >    HIDE_SERVERS = 310,
271 >    HIDE_SERVICES = 311,
272 >    HIDE_SPOOF_IPS = 312,
273 >    HOST = 313,
274 >    HUB = 314,
275 >    HUB_MASK = 315,
276 >    IGNORE_BOGUS_TS = 316,
277 >    INVISIBLE_ON_CONNECT = 317,
278 >    INVITE_DELAY = 318,
279 >    INVITE_DELAY_CHANNEL = 319,
280 >    IP = 320,
281 >    IRCD_AUTH = 321,
282 >    IRCD_FLAGS = 322,
283 >    IRCD_SID = 323,
284 >    JOIN_FLOOD_COUNT = 324,
285 >    JOIN_FLOOD_TIME = 325,
286 >    KILL = 326,
287 >    KILL_CHASE_TIME_LIMIT = 327,
288 >    KLINE = 328,
289 >    KLINE_EXEMPT = 329,
290 >    KNOCK_DELAY = 330,
291 >    KNOCK_DELAY_CHANNEL = 331,
292 >    LEAF_MASK = 332,
293 >    LINKS_DELAY = 333,
294 >    LISTEN = 334,
295 >    MASK = 335,
296 >    MAX_ACCEPT = 336,
297 >    MAX_BANS = 337,
298 >    MAX_CHANS_PER_OPER = 338,
299 >    MAX_CHANS_PER_USER = 339,
300 >    MAX_GLOBAL = 340,
301 >    MAX_IDENT = 341,
302 >    MAX_IDLE = 342,
303 >    MAX_LOCAL = 343,
304 >    MAX_NICK_CHANGES = 344,
305 >    MAX_NICK_LENGTH = 345,
306 >    MAX_NICK_TIME = 346,
307 >    MAX_NUMBER = 347,
308 >    MAX_TARGETS = 348,
309 >    MAX_TOPIC_LENGTH = 349,
310 >    MAX_WATCH = 350,
311 >    MIN_IDLE = 351,
312 >    MIN_NONWILDCARD = 352,
313 >    MIN_NONWILDCARD_SIMPLE = 353,
314 >    MODULE = 354,
315 >    MODULES = 355,
316 >    MOTD = 356,
317 >    NAME = 357,
318 >    NEED_IDENT = 358,
319 >    NEED_PASSWORD = 359,
320 >    NETWORK_DESC = 360,
321 >    NETWORK_NAME = 361,
322 >    NICK = 362,
323 >    NO_CREATE_ON_SPLIT = 363,
324 >    NO_JOIN_ON_SPLIT = 364,
325 >    NO_OPER_FLOOD = 365,
326 >    NO_TILDE = 366,
327 >    NUMBER = 367,
328 >    NUMBER_PER_CIDR = 368,
329 >    NUMBER_PER_IP = 369,
330 >    OPER_ONLY_UMODES = 370,
331 >    OPER_PASS_RESV = 371,
332 >    OPER_UMODES = 372,
333 >    OPERATOR = 373,
334 >    OPERS_BYPASS_CALLERID = 374,
335 >    PACE_WAIT = 375,
336 >    PACE_WAIT_SIMPLE = 376,
337 >    PASSWORD = 377,
338 >    PATH = 378,
339 >    PING_COOKIE = 379,
340 >    PING_TIME = 380,
341 >    PORT = 381,
342 >    QSTRING = 382,
343 >    RANDOM_IDLE = 383,
344 >    REASON = 384,
345 >    REDIRPORT = 385,
346 >    REDIRSERV = 386,
347 >    REHASH = 387,
348 >    REMOTE = 388,
349 >    REMOTEBAN = 389,
350 >    RESV = 390,
351 >    RESV_EXEMPT = 391,
352 >    RSA_PRIVATE_KEY_FILE = 392,
353 >    RSA_PUBLIC_KEY_FILE = 393,
354 >    SECONDS = 394,
355 >    MINUTES = 395,
356 >    HOURS = 396,
357 >    DAYS = 397,
358 >    WEEKS = 398,
359 >    MONTHS = 399,
360 >    YEARS = 400,
361 >    SEND_PASSWORD = 401,
362 >    SENDQ = 402,
363 >    SERVERHIDE = 403,
364 >    SERVERINFO = 404,
365 >    SHORT_MOTD = 405,
366 >    SPOOF = 406,
367 >    SPOOF_NOTICE = 407,
368 >    SQUIT = 408,
369 >    SSL_CERTIFICATE_FILE = 409,
370 >    SSL_CERTIFICATE_FINGERPRINT = 410,
371 >    SSL_CONNECTION_REQUIRED = 411,
372 >    SSL_DH_PARAM_FILE = 412,
373 >    STATS_E_DISABLED = 413,
374 >    STATS_I_OPER_ONLY = 414,
375 >    STATS_K_OPER_ONLY = 415,
376 >    STATS_O_OPER_ONLY = 416,
377 >    STATS_P_OPER_ONLY = 417,
378 >    STATS_U_OPER_ONLY = 418,
379 >    T_ALL = 419,
380 >    T_BOTS = 420,
381 >    T_CALLERID = 421,
382 >    T_CCONN = 422,
383 >    T_CLUSTER = 423,
384 >    T_DEAF = 424,
385 >    T_DEBUG = 425,
386 >    T_DLINE = 426,
387 >    T_EXTERNAL = 427,
388 >    T_FARCONNECT = 428,
389 >    T_FILE = 429,
390 >    T_FULL = 430,
391 >    T_GLOBOPS = 431,
392 >    T_INVISIBLE = 432,
393 >    T_IPV4 = 433,
394 >    T_IPV6 = 434,
395 >    T_LOCOPS = 435,
396 >    T_LOG = 436,
397 >    T_MAX_CLIENTS = 437,
398 >    T_NCHANGE = 438,
399 >    T_NONONREG = 439,
400 >    T_OPERWALL = 440,
401 >    T_RECVQ = 441,
402 >    T_REJ = 442,
403 >    T_RESTART = 443,
404 >    T_SERVER = 444,
405 >    T_SERVICE = 445,
406 >    T_SERVICES_NAME = 446,
407 >    T_SERVNOTICE = 447,
408 >    T_SET = 448,
409 >    T_SHARED = 449,
410 >    T_SIZE = 450,
411 >    T_SKILL = 451,
412 >    T_SOFTCALLERID = 452,
413 >    T_SPY = 453,
414 >    T_SSL = 454,
415 >    T_SSL_CIPHER_LIST = 455,
416 >    T_SSL_CLIENT_METHOD = 456,
417 >    T_SSL_SERVER_METHOD = 457,
418 >    T_SSLV3 = 458,
419 >    T_TLSV1 = 459,
420 >    T_UMODES = 460,
421 >    T_UNAUTH = 461,
422 >    T_UNDLINE = 462,
423 >    T_UNLIMITED = 463,
424 >    T_UNRESV = 464,
425 >    T_UNXLINE = 465,
426 >    T_WALLOP = 466,
427 >    T_WALLOPS = 467,
428 >    T_WEBIRC = 468,
429 >    TBOOL = 469,
430 >    THROTTLE_TIME = 470,
431 >    TKLINE_EXPIRE_NOTICES = 471,
432 >    TMASKED = 472,
433 >    TRUE_NO_OPER_FLOOD = 473,
434 >    TS_MAX_DELTA = 474,
435 >    TS_WARN_DELTA = 475,
436 >    TWODOTS = 476,
437 >    TYPE = 477,
438 >    UNKLINE = 478,
439 >    USE_EGD = 479,
440 >    USE_LOGGING = 480,
441 >    USER = 481,
442 >    VHOST = 482,
443 >    VHOST6 = 483,
444 >    WARN_NO_CONNECT_BLOCK = 484,
445 >    XLINE = 485
446 >  };
447   #endif
448   /* Tokens.  */
449   #define ACCEPT_PASSWORD 258
450 < #define ACTION 259
451 < #define ADMIN 260
452 < #define AFTYPE 261
453 < #define T_ALLOW 262
454 < #define ANTI_NICK_FLOOD 263
455 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
456 < #define AUTOCONN 265
457 < #define T_BLOCK 266
458 < #define BURST_AWAY 267
459 < #define BURST_TOPICWHO 268
460 < #define BYTES 269
461 < #define KBYTES 270
462 < #define MBYTES 271
463 < #define GBYTES 272
464 < #define TBYTES 273
465 < #define CALLER_ID_WAIT 274
466 < #define CAN_FLOOD 275
467 < #define CAN_IDLE 276
468 < #define CHANNEL 277
469 < #define CIDR_BITLEN_IPV4 278
470 < #define CIDR_BITLEN_IPV6 279
471 < #define CIPHER_PREFERENCE 280
472 < #define CLASS 281
473 < #define COMPRESSED 282
474 < #define COMPRESSION_LEVEL 283
475 < #define CONNECT 284
476 < #define CONNECTFREQ 285
477 < #define CRYPTLINK 286
478 < #define DEFAULT_CIPHER_PREFERENCE 287
479 < #define DEFAULT_FLOODCOUNT 288
480 < #define DEFAULT_SPLIT_SERVER_COUNT 289
481 < #define DEFAULT_SPLIT_USER_COUNT 290
482 < #define DENY 291
483 < #define DESCRIPTION 292
484 < #define DIE 293
485 < #define DISABLE_AUTH 294
486 < #define DISABLE_FAKE_CHANNELS 295
487 < #define DISABLE_HIDDEN 296
488 < #define DISABLE_LOCAL_CHANNELS 297
489 < #define DISABLE_REMOTE_COMMANDS 298
490 < #define DOTS_IN_IDENT 299
491 < #define DURATION 300
492 < #define EGDPOOL_PATH 301
493 < #define EMAIL 302
494 < #define ENABLE 303
495 < #define ENCRYPTED 304
496 < #define EXCEED_LIMIT 305
497 < #define EXEMPT 306
498 < #define FAILED_OPER_NOTICE 307
499 < #define IRCD_FLAGS 308
500 < #define FLATTEN_LINKS 309
501 < #define FFAILED_OPERLOG 310
502 < #define FKILLLOG 311
503 < #define FKLINELOG 312
504 < #define FGLINELOG 313
505 < #define FIOERRLOG 314
506 < #define FOPERLOG 315
507 < #define FOPERSPYLOG 316
508 < #define FUSERLOG 317
509 < #define GECOS 318
510 < #define GENERAL 319
511 < #define GLINE 320
512 < #define GLINES 321
513 < #define GLINE_EXEMPT 322
514 < #define GLINE_LOG 323
515 < #define GLINE_TIME 324
516 < #define GLINE_MIN_CIDR 325
517 < #define GLINE_MIN_CIDR6 326
518 < #define GLOBAL_KILL 327
519 < #define IRCD_AUTH 328
520 < #define NEED_IDENT 329
521 < #define HAVENT_READ_CONF 330
522 < #define HIDDEN 331
523 < #define HIDDEN_ADMIN 332
524 < #define HIDDEN_NAME 333
525 < #define HIDDEN_OPER 334
526 < #define HIDE_SERVER_IPS 335
527 < #define HIDE_SERVERS 336
528 < #define HIDE_SPOOF_IPS 337
529 < #define HOST 338
530 < #define HUB 339
531 < #define HUB_MASK 340
532 < #define IDLETIME 341
533 < #define IGNORE_BOGUS_TS 342
534 < #define INVISIBLE_ON_CONNECT 343
535 < #define IP 344
536 < #define KILL 345
537 < #define KILL_CHASE_TIME_LIMIT 346
538 < #define KLINE 347
539 < #define KLINE_EXEMPT 348
540 < #define KLINE_REASON 349
541 < #define KLINE_WITH_REASON 350
542 < #define KNOCK_DELAY 351
543 < #define KNOCK_DELAY_CHANNEL 352
544 < #define LEAF_MASK 353
545 < #define LINKS_DELAY 354
546 < #define LISTEN 355
547 < #define T_LOG 356
548 < #define LOGGING 357
549 < #define LOG_LEVEL 358
550 < #define MAX_ACCEPT 359
551 < #define MAX_BANS 360
552 < #define MAX_CHANS_PER_USER 361
553 < #define MAX_GLOBAL 362
554 < #define MAX_IDENT 363
555 < #define MAX_LOCAL 364
556 < #define MAX_NICK_CHANGES 365
557 < #define MAX_NICK_TIME 366
558 < #define MAX_NUMBER 367
559 < #define MAX_TARGETS 368
560 < #define MAX_WATCH 369
561 < #define MESSAGE_LOCALE 370
562 < #define MIN_NONWILDCARD 371
563 < #define MIN_NONWILDCARD_SIMPLE 372
564 < #define MODULE 373
565 < #define MODULES 374
566 < #define NAME 375
567 < #define NEED_PASSWORD 376
568 < #define NETWORK_DESC 377
569 < #define NETWORK_NAME 378
570 < #define NICK 379
571 < #define NICK_CHANGES 380
572 < #define NO_CREATE_ON_SPLIT 381
573 < #define NO_JOIN_ON_SPLIT 382
574 < #define NO_OPER_FLOOD 383
575 < #define NO_TILDE 384
576 < #define NOT 385
577 < #define NUMBER 386
578 < #define NUMBER_PER_IDENT 387
579 < #define NUMBER_PER_CIDR 388
580 < #define NUMBER_PER_IP 389
581 < #define NUMBER_PER_IP_GLOBAL 390
582 < #define OPERATOR 391
583 < #define OPERS_BYPASS_CALLERID 392
584 < #define OPER_LOG 393
585 < #define OPER_ONLY_UMODES 394
586 < #define OPER_PASS_RESV 395
587 < #define OPER_SPY_T 396
588 < #define OPER_UMODES 397
589 < #define JOIN_FLOOD_COUNT 398
590 < #define JOIN_FLOOD_TIME 399
591 < #define PACE_WAIT 400
592 < #define PACE_WAIT_SIMPLE 401
593 < #define PASSWORD 402
594 < #define PATH 403
595 < #define PING_COOKIE 404
596 < #define PING_TIME 405
597 < #define PING_WARNING 406
598 < #define PORT 407
599 < #define QSTRING 408
600 < #define QUIET_ON_BAN 409
601 < #define REASON 410
602 < #define REDIRPORT 411
603 < #define REDIRSERV 412
604 < #define REGEX_T 413
605 < #define REHASH 414
606 < #define TREJECT_HOLD_TIME 415
607 < #define REMOTE 416
608 < #define REMOTEBAN 417
609 < #define RESTRICT_CHANNELS 418
610 < #define RESTRICTED 419
611 < #define RSA_PRIVATE_KEY_FILE 420
612 < #define RSA_PUBLIC_KEY_FILE 421
613 < #define SSL_CERTIFICATE_FILE 422
614 < #define T_SSL_CONNECTION_METHOD 423
615 < #define T_SSLV3 424
616 < #define T_TLSV1 425
617 < #define RESV 426
618 < #define RESV_EXEMPT 427
619 < #define SECONDS 428
620 < #define MINUTES 429
621 < #define HOURS 430
622 < #define DAYS 431
623 < #define WEEKS 432
624 < #define SENDQ 433
625 < #define SEND_PASSWORD 434
626 < #define SERVERHIDE 435
627 < #define SERVERINFO 436
628 < #define SERVLINK_PATH 437
629 < #define IRCD_SID 438
630 < #define TKLINE_EXPIRE_NOTICES 439
631 < #define T_SHARED 440
632 < #define T_CLUSTER 441
633 < #define TYPE 442
634 < #define SHORT_MOTD 443
635 < #define SILENT 444
636 < #define SPOOF 445
637 < #define SPOOF_NOTICE 446
638 < #define STATS_E_DISABLED 447
639 < #define STATS_I_OPER_ONLY 448
640 < #define STATS_K_OPER_ONLY 449
641 < #define STATS_O_OPER_ONLY 450
642 < #define STATS_P_OPER_ONLY 451
643 < #define TBOOL 452
644 < #define TMASKED 453
645 < #define T_REJECT 454
646 < #define TS_MAX_DELTA 455
647 < #define TS_WARN_DELTA 456
648 < #define TWODOTS 457
649 < #define T_ALL 458
650 < #define T_BOTS 459
651 < #define T_SOFTCALLERID 460
652 < #define T_CALLERID 461
653 < #define T_CCONN 462
654 < #define T_CCONN_FULL 463
655 < #define T_CLIENT_FLOOD 464
656 < #define T_DEAF 465
657 < #define T_DEBUG 466
658 < #define T_DRONE 467
659 < #define T_EXTERNAL 468
660 < #define T_FULL 469
661 < #define T_INVISIBLE 470
662 < #define T_IPV4 471
663 < #define T_IPV6 472
664 < #define T_LOCOPS 473
665 < #define T_LOGPATH 474
666 < #define T_L_CRIT 475
667 < #define T_L_DEBUG 476
668 < #define T_L_ERROR 477
669 < #define T_L_INFO 478
670 < #define T_L_NOTICE 479
671 < #define T_L_TRACE 480
672 < #define T_L_WARN 481
673 < #define T_MAX_CLIENTS 482
674 < #define T_NCHANGE 483
675 < #define T_OPERWALL 484
676 < #define T_REJ 485
694 < #define T_SERVER 486
695 < #define T_SERVNOTICE 487
696 < #define T_SKILL 488
697 < #define T_SPY 489
698 < #define T_SSL 490
699 < #define T_UMODES 491
700 < #define T_UNAUTH 492
701 < #define T_UNRESV 493
702 < #define T_UNXLINE 494
703 < #define T_WALLOP 495
704 < #define THROTTLE_TIME 496
705 < #define TOPICBURST 497
706 < #define TRUE_NO_OPER_FLOOD 498
707 < #define TKLINE 499
708 < #define TXLINE 500
709 < #define TRESV 501
710 < #define UNKLINE 502
711 < #define USER 503
712 < #define USE_EGD 504
713 < #define USE_EXCEPT 505
714 < #define USE_INVEX 506
715 < #define USE_KNOCK 507
716 < #define USE_LOGGING 508
717 < #define USE_WHOIS_ACTUALLY 509
718 < #define VHOST 510
719 < #define VHOST6 511
720 < #define XLINE 512
721 < #define WARN 513
722 < #define WARN_NO_NLINE 514
723 <
724 <
725 <
450 > #define ADMIN 259
451 > #define AFTYPE 260
452 > #define ANTI_NICK_FLOOD 261
453 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
454 > #define AUTOCONN 263
455 > #define BYTES 264
456 > #define KBYTES 265
457 > #define MBYTES 266
458 > #define CALLER_ID_WAIT 267
459 > #define CAN_FLOOD 268
460 > #define CHANNEL 269
461 > #define CIDR_BITLEN_IPV4 270
462 > #define CIDR_BITLEN_IPV6 271
463 > #define CLASS 272
464 > #define CONNECT 273
465 > #define CONNECTFREQ 274
466 > #define CYCLE_ON_HOST_CHANGE 275
467 > #define DEFAULT_FLOODCOUNT 276
468 > #define DEFAULT_SPLIT_SERVER_COUNT 277
469 > #define DEFAULT_SPLIT_USER_COUNT 278
470 > #define DENY 279
471 > #define DESCRIPTION 280
472 > #define DIE 281
473 > #define DISABLE_AUTH 282
474 > #define DISABLE_FAKE_CHANNELS 283
475 > #define DISABLE_REMOTE_COMMANDS 284
476 > #define DOTS_IN_IDENT 285
477 > #define EGDPOOL_PATH 286
478 > #define EMAIL 287
479 > #define ENCRYPTED 288
480 > #define EXCEED_LIMIT 289
481 > #define EXEMPT 290
482 > #define FAILED_OPER_NOTICE 291
483 > #define FLATTEN_LINKS 292
484 > #define GECOS 293
485 > #define GENERAL 294
486 > #define GLINE 295
487 > #define GLINE_DURATION 296
488 > #define GLINE_ENABLE 297
489 > #define GLINE_EXEMPT 298
490 > #define GLINE_MIN_CIDR 299
491 > #define GLINE_MIN_CIDR6 300
492 > #define GLINE_REQUEST_DURATION 301
493 > #define GLOBAL_KILL 302
494 > #define HAVENT_READ_CONF 303
495 > #define HIDDEN 304
496 > #define HIDDEN_NAME 305
497 > #define HIDE_CHANS 306
498 > #define HIDE_IDLE 307
499 > #define HIDE_IDLE_FROM_OPERS 308
500 > #define HIDE_SERVER_IPS 309
501 > #define HIDE_SERVERS 310
502 > #define HIDE_SERVICES 311
503 > #define HIDE_SPOOF_IPS 312
504 > #define HOST 313
505 > #define HUB 314
506 > #define HUB_MASK 315
507 > #define IGNORE_BOGUS_TS 316
508 > #define INVISIBLE_ON_CONNECT 317
509 > #define INVITE_DELAY 318
510 > #define INVITE_DELAY_CHANNEL 319
511 > #define IP 320
512 > #define IRCD_AUTH 321
513 > #define IRCD_FLAGS 322
514 > #define IRCD_SID 323
515 > #define JOIN_FLOOD_COUNT 324
516 > #define JOIN_FLOOD_TIME 325
517 > #define KILL 326
518 > #define KILL_CHASE_TIME_LIMIT 327
519 > #define KLINE 328
520 > #define KLINE_EXEMPT 329
521 > #define KNOCK_DELAY 330
522 > #define KNOCK_DELAY_CHANNEL 331
523 > #define LEAF_MASK 332
524 > #define LINKS_DELAY 333
525 > #define LISTEN 334
526 > #define MASK 335
527 > #define MAX_ACCEPT 336
528 > #define MAX_BANS 337
529 > #define MAX_CHANS_PER_OPER 338
530 > #define MAX_CHANS_PER_USER 339
531 > #define MAX_GLOBAL 340
532 > #define MAX_IDENT 341
533 > #define MAX_IDLE 342
534 > #define MAX_LOCAL 343
535 > #define MAX_NICK_CHANGES 344
536 > #define MAX_NICK_LENGTH 345
537 > #define MAX_NICK_TIME 346
538 > #define MAX_NUMBER 347
539 > #define MAX_TARGETS 348
540 > #define MAX_TOPIC_LENGTH 349
541 > #define MAX_WATCH 350
542 > #define MIN_IDLE 351
543 > #define MIN_NONWILDCARD 352
544 > #define MIN_NONWILDCARD_SIMPLE 353
545 > #define MODULE 354
546 > #define MODULES 355
547 > #define MOTD 356
548 > #define NAME 357
549 > #define NEED_IDENT 358
550 > #define NEED_PASSWORD 359
551 > #define NETWORK_DESC 360
552 > #define NETWORK_NAME 361
553 > #define NICK 362
554 > #define NO_CREATE_ON_SPLIT 363
555 > #define NO_JOIN_ON_SPLIT 364
556 > #define NO_OPER_FLOOD 365
557 > #define NO_TILDE 366
558 > #define NUMBER 367
559 > #define NUMBER_PER_CIDR 368
560 > #define NUMBER_PER_IP 369
561 > #define OPER_ONLY_UMODES 370
562 > #define OPER_PASS_RESV 371
563 > #define OPER_UMODES 372
564 > #define OPERATOR 373
565 > #define OPERS_BYPASS_CALLERID 374
566 > #define PACE_WAIT 375
567 > #define PACE_WAIT_SIMPLE 376
568 > #define PASSWORD 377
569 > #define PATH 378
570 > #define PING_COOKIE 379
571 > #define PING_TIME 380
572 > #define PORT 381
573 > #define QSTRING 382
574 > #define RANDOM_IDLE 383
575 > #define REASON 384
576 > #define REDIRPORT 385
577 > #define REDIRSERV 386
578 > #define REHASH 387
579 > #define REMOTE 388
580 > #define REMOTEBAN 389
581 > #define RESV 390
582 > #define RESV_EXEMPT 391
583 > #define RSA_PRIVATE_KEY_FILE 392
584 > #define RSA_PUBLIC_KEY_FILE 393
585 > #define SECONDS 394
586 > #define MINUTES 395
587 > #define HOURS 396
588 > #define DAYS 397
589 > #define WEEKS 398
590 > #define MONTHS 399
591 > #define YEARS 400
592 > #define SEND_PASSWORD 401
593 > #define SENDQ 402
594 > #define SERVERHIDE 403
595 > #define SERVERINFO 404
596 > #define SHORT_MOTD 405
597 > #define SPOOF 406
598 > #define SPOOF_NOTICE 407
599 > #define SQUIT 408
600 > #define SSL_CERTIFICATE_FILE 409
601 > #define SSL_CERTIFICATE_FINGERPRINT 410
602 > #define SSL_CONNECTION_REQUIRED 411
603 > #define SSL_DH_PARAM_FILE 412
604 > #define STATS_E_DISABLED 413
605 > #define STATS_I_OPER_ONLY 414
606 > #define STATS_K_OPER_ONLY 415
607 > #define STATS_O_OPER_ONLY 416
608 > #define STATS_P_OPER_ONLY 417
609 > #define STATS_U_OPER_ONLY 418
610 > #define T_ALL 419
611 > #define T_BOTS 420
612 > #define T_CALLERID 421
613 > #define T_CCONN 422
614 > #define T_CLUSTER 423
615 > #define T_DEAF 424
616 > #define T_DEBUG 425
617 > #define T_DLINE 426
618 > #define T_EXTERNAL 427
619 > #define T_FARCONNECT 428
620 > #define T_FILE 429
621 > #define T_FULL 430
622 > #define T_GLOBOPS 431
623 > #define T_INVISIBLE 432
624 > #define T_IPV4 433
625 > #define T_IPV6 434
626 > #define T_LOCOPS 435
627 > #define T_LOG 436
628 > #define T_MAX_CLIENTS 437
629 > #define T_NCHANGE 438
630 > #define T_NONONREG 439
631 > #define T_OPERWALL 440
632 > #define T_RECVQ 441
633 > #define T_REJ 442
634 > #define T_RESTART 443
635 > #define T_SERVER 444
636 > #define T_SERVICE 445
637 > #define T_SERVICES_NAME 446
638 > #define T_SERVNOTICE 447
639 > #define T_SET 448
640 > #define T_SHARED 449
641 > #define T_SIZE 450
642 > #define T_SKILL 451
643 > #define T_SOFTCALLERID 452
644 > #define T_SPY 453
645 > #define T_SSL 454
646 > #define T_SSL_CIPHER_LIST 455
647 > #define T_SSL_CLIENT_METHOD 456
648 > #define T_SSL_SERVER_METHOD 457
649 > #define T_SSLV3 458
650 > #define T_TLSV1 459
651 > #define T_UMODES 460
652 > #define T_UNAUTH 461
653 > #define T_UNDLINE 462
654 > #define T_UNLIMITED 463
655 > #define T_UNRESV 464
656 > #define T_UNXLINE 465
657 > #define T_WALLOP 466
658 > #define T_WALLOPS 467
659 > #define T_WEBIRC 468
660 > #define TBOOL 469
661 > #define THROTTLE_TIME 470
662 > #define TKLINE_EXPIRE_NOTICES 471
663 > #define TMASKED 472
664 > #define TRUE_NO_OPER_FLOOD 473
665 > #define TS_MAX_DELTA 474
666 > #define TS_WARN_DELTA 475
667 > #define TWODOTS 476
668 > #define TYPE 477
669 > #define UNKLINE 478
670 > #define USE_EGD 479
671 > #define USE_LOGGING 480
672 > #define USER 481
673 > #define VHOST 482
674 > #define VHOST6 483
675 > #define WARN_NO_CONNECT_BLOCK 484
676 > #define XLINE 485
677  
678 + /* Value type.  */
679   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
680 < typedef union YYSTYPE
680 > typedef union YYSTYPE YYSTYPE;
681 > union YYSTYPE
682   {
683 <
731 < /* Line 214 of yacc.c  */
732 < #line 132 "ircd_parser.y"
683 > #line 146 "conf_parser.y" /* yacc.c:355  */
684  
685    int number;
686    char *string;
687  
688 <
689 <
739 < /* Line 214 of yacc.c  */
740 < #line 741 "ircd_parser.c"
741 < } YYSTYPE;
688 > #line 689 "conf_parser.c" /* yacc.c:355  */
689 > };
690   # define YYSTYPE_IS_TRIVIAL 1
743 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
691   # define YYSTYPE_IS_DECLARED 1
692   #endif
693  
694  
695 < /* Copy the second part of user declarations.  */
695 > extern YYSTYPE yylval;
696  
697 + int yyparse (void);
698 +
699 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
700  
701 < /* Line 264 of yacc.c  */
702 < #line 753 "ircd_parser.c"
701 > /* Copy the second part of user declarations.  */
702 >
703 > #line 704 "conf_parser.c" /* yacc.c:358  */
704  
705   #ifdef short
706   # undef short
# Line 763 | Line 714 | typedef unsigned char yytype_uint8;
714  
715   #ifdef YYTYPE_INT8
716   typedef YYTYPE_INT8 yytype_int8;
766 #elif (defined __STDC__ || defined __C99__FUNC__ \
767     || defined __cplusplus || defined _MSC_VER)
768 typedef signed char yytype_int8;
717   #else
718 < typedef short int yytype_int8;
718 > typedef signed char yytype_int8;
719   #endif
720  
721   #ifdef YYTYPE_UINT16
# Line 787 | Line 735 | typedef short int yytype_int16;
735   #  define YYSIZE_T __SIZE_TYPE__
736   # elif defined size_t
737   #  define YYSIZE_T size_t
738 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
791 <     || defined __cplusplus || defined _MSC_VER)
738 > # elif ! defined YYSIZE_T
739   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
740   #  define YYSIZE_T size_t
741   # else
# Line 802 | Line 749 | typedef short int yytype_int16;
749   # if defined YYENABLE_NLS && YYENABLE_NLS
750   #  if ENABLE_NLS
751   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
752 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
752 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
753   #  endif
754   # endif
755   # ifndef YY_
756 < #  define YY_(msgid) msgid
756 > #  define YY_(Msgid) Msgid
757 > # endif
758 > #endif
759 >
760 > #ifndef YY_ATTRIBUTE
761 > # if (defined __GNUC__                                               \
762 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
763 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
764 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
765 > # else
766 > #  define YY_ATTRIBUTE(Spec) /* empty */
767 > # endif
768 > #endif
769 >
770 > #ifndef YY_ATTRIBUTE_PURE
771 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
772 > #endif
773 >
774 > #ifndef YY_ATTRIBUTE_UNUSED
775 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
776 > #endif
777 >
778 > #if !defined _Noreturn \
779 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
780 > # if defined _MSC_VER && 1200 <= _MSC_VER
781 > #  define _Noreturn __declspec (noreturn)
782 > # else
783 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
784   # endif
785   #endif
786  
787   /* Suppress unused-variable warnings by "using" E.  */
788   #if ! defined lint || defined __GNUC__
789 < # define YYUSE(e) ((void) (e))
789 > # define YYUSE(E) ((void) (E))
790   #else
791 < # define YYUSE(e) /* empty */
791 > # define YYUSE(E) /* empty */
792   #endif
793  
794 < /* Identity function, used to suppress warnings about constant conditions.  */
795 < #ifndef lint
796 < # define YYID(n) (n)
797 < #else
798 < #if (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
800 < static int
801 < YYID (int yyi)
794 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
795 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
796 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
797 >    _Pragma ("GCC diagnostic push") \
798 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
799 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
800 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
801 >    _Pragma ("GCC diagnostic pop")
802   #else
803 < static int
830 < YYID (yyi)
831 <    int yyi;
803 > # define YY_INITIAL_VALUE(Value) Value
804   #endif
805 < {
806 <  return yyi;
807 < }
805 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
806 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
807 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
808   #endif
809 + #ifndef YY_INITIAL_VALUE
810 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
811 + #endif
812 +
813  
814   #if ! defined yyoverflow || YYERROR_VERBOSE
815  
# Line 852 | Line 828 | YYID (yyi)
828   #    define alloca _alloca
829   #   else
830   #    define YYSTACK_ALLOC alloca
831 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
856 <     || defined __cplusplus || defined _MSC_VER)
831 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
832   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
833 < #     ifndef _STDLIB_H
834 < #      define _STDLIB_H 1
833 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
834 > #     ifndef EXIT_SUCCESS
835 > #      define EXIT_SUCCESS 0
836   #     endif
837   #    endif
838   #   endif
# Line 864 | Line 840 | YYID (yyi)
840   # endif
841  
842   # ifdef YYSTACK_ALLOC
843 <   /* Pacify GCC's `empty if-body' warning.  */
844 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
843 >   /* Pacify GCC's 'empty if-body' warning.  */
844 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
845   #  ifndef YYSTACK_ALLOC_MAXIMUM
846      /* The OS might guarantee only one guard page at the bottom of the stack,
847         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 879 | Line 855 | YYID (yyi)
855   #  ifndef YYSTACK_ALLOC_MAXIMUM
856   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
857   #  endif
858 < #  if (defined __cplusplus && ! defined _STDLIB_H \
858 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
859         && ! ((defined YYMALLOC || defined malloc) \
860 <             && (defined YYFREE || defined free)))
860 >             && (defined YYFREE || defined free)))
861   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
862 < #   ifndef _STDLIB_H
863 < #    define _STDLIB_H 1
862 > #   ifndef EXIT_SUCCESS
863 > #    define EXIT_SUCCESS 0
864   #   endif
865   #  endif
866   #  ifndef YYMALLOC
867   #   define YYMALLOC malloc
868 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
893 <     || defined __cplusplus || defined _MSC_VER)
868 > #   if ! defined malloc && ! defined EXIT_SUCCESS
869   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
870   #   endif
871   #  endif
872   #  ifndef YYFREE
873   #   define YYFREE free
874 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
900 <     || defined __cplusplus || defined _MSC_VER)
874 > #   if ! defined free && ! defined EXIT_SUCCESS
875   void free (void *); /* INFRINGES ON USER NAME SPACE */
876   #   endif
877   #  endif
# Line 907 | Line 881 | void free (void *); /* INFRINGES ON USER
881  
882   #if (! defined yyoverflow \
883       && (! defined __cplusplus \
884 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
884 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
885  
886   /* A type that is properly aligned for any stack member.  */
887   union yyalloc
# Line 925 | Line 899 | union yyalloc
899       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
900        + YYSTACK_GAP_MAXIMUM)
901  
902 < /* Copy COUNT objects from FROM to TO.  The source and destination do
929 <   not overlap.  */
930 < # ifndef YYCOPY
931 < #  if defined __GNUC__ && 1 < __GNUC__
932 < #   define YYCOPY(To, From, Count) \
933 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
934 < #  else
935 < #   define YYCOPY(To, From, Count)              \
936 <      do                                        \
937 <        {                                       \
938 <          YYSIZE_T yyi;                         \
939 <          for (yyi = 0; yyi < (Count); yyi++)   \
940 <            (To)[yyi] = (From)[yyi];            \
941 <        }                                       \
942 <      while (YYID (0))
943 < #  endif
944 < # endif
902 > # define YYCOPY_NEEDED 1
903  
904   /* Relocate STACK from its old location to the new one.  The
905     local variables YYSIZE and YYSTACKSIZE give the old and new number of
906     elements in the stack, and YYPTR gives the new location of the
907     stack.  Advance YYPTR to a properly aligned location for the next
908     stack.  */
909 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
910 <    do                                                                  \
911 <      {                                                                 \
912 <        YYSIZE_T yynewbytes;                                            \
913 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
914 <        Stack = &yyptr->Stack_alloc;                                    \
915 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
916 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
917 <      }                                                                 \
918 <    while (YYID (0))
909 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
910 >    do                                                                  \
911 >      {                                                                 \
912 >        YYSIZE_T yynewbytes;                                            \
913 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
914 >        Stack = &yyptr->Stack_alloc;                                    \
915 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
916 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
917 >      }                                                                 \
918 >    while (0)
919  
920   #endif
921  
922 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
923 + /* Copy COUNT objects from SRC to DST.  The source and destination do
924 +   not overlap.  */
925 + # ifndef YYCOPY
926 + #  if defined __GNUC__ && 1 < __GNUC__
927 + #   define YYCOPY(Dst, Src, Count) \
928 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
929 + #  else
930 + #   define YYCOPY(Dst, Src, Count)              \
931 +      do                                        \
932 +        {                                       \
933 +          YYSIZE_T yyi;                         \
934 +          for (yyi = 0; yyi < (Count); yyi++)   \
935 +            (Dst)[yyi] = (Src)[yyi];            \
936 +        }                                       \
937 +      while (0)
938 + #  endif
939 + # endif
940 + #endif /* !YYCOPY_NEEDED */
941 +
942   /* YYFINAL -- State number of the termination state.  */
943   #define YYFINAL  2
944   /* YYLAST -- Last index in YYTABLE.  */
945 < #define YYLAST   1258
945 > #define YYLAST   1264
946  
947   /* YYNTOKENS -- Number of terminals.  */
948 < #define YYNTOKENS  265
948 > #define YYNTOKENS  237
949   /* YYNNTS -- Number of nonterminals.  */
950 < #define YYNNTS  318
950 > #define YYNNTS  293
951   /* YYNRULES -- Number of rules.  */
952 < #define YYNRULES  687
953 < /* YYNRULES -- Number of states.  */
954 < #define YYNSTATES  1354
952 > #define YYNRULES  665
953 > /* YYNSTATES -- Number of states.  */
954 > #define YYNSTATES  1302
955  
956 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
956 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
957 >   by yylex, with out-of-bounds checking.  */
958   #define YYUNDEFTOK  2
959 < #define YYMAXUTOK   514
959 > #define YYMAXUTOK   485
960  
961 < #define YYTRANSLATE(YYX)                                                \
961 > #define YYTRANSLATE(YYX)                                                \
962    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
963  
964 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
965 < static const yytype_uint16 yytranslate[] =
964 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
965 >   as returned by yylex, without out-of-bounds checking.  */
966 > static const yytype_uint8 yytranslate[] =
967   {
968         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969         2,     2,     2,     2,     2,     2,     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,   264,     2,     2,     2,     2,     2,
973 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   260,
974 <       2,   263,     2,     2,     2,     2,     2,     2,     2,     2,
972 >       2,     2,     2,     2,   235,     2,     2,     2,     2,     2,
973 >       2,     2,     2,     2,     2,     2,     2,     2,   236,   231,
974 >       2,   234,     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,   262,     2,   261,     2,     2,     2,     2,
980 >       2,     2,     2,   233,     2,   232,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1033 | Line 1013 | static const yytype_uint16 yytranslate[]
1013       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1014       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1015       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1016 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1037 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1038 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1039 <     255,   256,   257,   258,   259
1016 >     225,   226,   227,   228,   229,   230
1017   };
1018  
1019   #if YYDEBUG
1020 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1044 <   YYRHS.  */
1045 < static const yytype_uint16 yyprhs[] =
1046 < {
1047 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1048 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1049 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1050 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1051 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1052 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1053 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1054 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1055 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1056 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1057 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1058 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1059 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1060 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1061 <     434,   439,   441,   446,   451,   456,   461,   466,   467,   473,
1062 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1063 <     497,   499,   501,   503,   505,   507,   509,   511,   513,   515,
1064 <     517,   518,   524,   528,   530,   531,   535,   536,   539,   541,
1065 <     543,   545,   547,   549,   551,   553,   555,   557,   559,   561,
1066 <     563,   565,   567,   569,   571,   572,   580,   581,   583,   586,
1067 <     588,   590,   592,   594,   596,   598,   600,   602,   604,   606,
1068 <     608,   610,   612,   614,   617,   622,   624,   629,   634,   639,
1069 <     644,   649,   654,   659,   664,   669,   674,   679,   684,   685,
1070 <     692,   693,   699,   703,   705,   707,   709,   711,   714,   716,
1071 <     718,   720,   722,   724,   727,   728,   734,   738,   740,   742,
1072 <     746,   751,   756,   757,   764,   767,   769,   771,   773,   775,
1073 <     777,   779,   781,   783,   785,   788,   793,   798,   803,   808,
1074 <     809,   815,   819,   821,   822,   826,   827,   830,   832,   834,
1075 <     836,   838,   840,   842,   844,   846,   848,   850,   855,   860,
1076 <     865,   866,   873,   876,   878,   880,   882,   884,   887,   892,
1077 <     897,   902,   903,   910,   913,   915,   917,   919,   921,   924,
1078 <     929,   934,   935,   941,   945,   947,   949,   951,   953,   955,
1079 <     957,   959,   961,   963,   965,   967,   969,   970,   977,   980,
1080 <     982,   984,   986,   989,   994,   995,  1001,  1005,  1007,  1009,
1081 <    1011,  1013,  1015,  1017,  1019,  1021,  1023,  1025,  1027,  1029,
1082 <    1030,  1038,  1039,  1041,  1044,  1046,  1048,  1050,  1052,  1054,
1083 <    1056,  1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,
1084 <    1077,  1082,  1084,  1089,  1094,  1099,  1104,  1109,  1114,  1119,
1085 <    1120,  1126,  1130,  1132,  1133,  1137,  1138,  1141,  1143,  1145,
1086 <    1147,  1149,  1151,  1156,  1161,  1166,  1171,  1176,  1181,  1182,
1087 <    1189,  1190,  1196,  1200,  1202,  1204,  1207,  1209,  1211,  1213,
1088 <    1215,  1217,  1222,  1227,  1228,  1235,  1238,  1240,  1242,  1244,
1089 <    1246,  1251,  1256,  1262,  1265,  1267,  1269,  1271,  1276,  1277,
1090 <    1284,  1285,  1291,  1295,  1297,  1299,  1302,  1304,  1306,  1308,
1091 <    1310,  1312,  1317,  1322,  1328,  1331,  1333,  1335,  1337,  1339,
1092 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1093 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1094 <    1381,  1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399,
1095 <    1401,  1403,  1405,  1407,  1409,  1411,  1413,  1415,  1417,  1419,
1096 <    1421,  1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,  1439,
1097 <    1441,  1443,  1445,  1450,  1455,  1460,  1465,  1470,  1475,  1480,
1098 <    1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,  1530,
1099 <    1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,  1580,
1100 <    1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,  1625,  1630,
1101 <    1635,  1640,  1645,  1650,  1655,  1660,  1665,  1670,  1675,  1680,
1102 <    1685,  1690,  1695,  1700,  1701,  1707,  1711,  1713,  1715,  1717,
1103 <    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1104 <    1739,  1741,  1743,  1745,  1747,  1749,  1751,  1752,  1758,  1762,
1105 <    1764,  1766,  1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,
1106 <    1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,  1800,  1802,
1107 <    1807,  1812,  1817,  1822,  1823,  1830,  1833,  1835,  1837,  1839,
1108 <    1841,  1843,  1845,  1847,  1849,  1854,  1859,  1860,  1866,  1870,
1109 <    1872,  1874,  1876,  1881,  1886,  1887,  1893,  1897,  1899,  1901,
1110 <    1903,  1909,  1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,
1111 <    1928,  1930,  1932,  1934,  1936,  1938,  1940,  1942,  1944,  1946,
1112 <    1948,  1950,  1952,  1957,  1962,  1967,  1972,  1977,  1982,  1987,
1113 <    1992,  1997,  2002,  2007,  2012,  2017,  2022,  2027,  2032,  2037,
1114 <    2042,  2048,  2051,  2053,  2055,  2057,  2059,  2061,  2063,  2065,
1115 <    2067,  2069,  2074,  2079,  2084,  2089,  2094,  2099
1116 < };
1117 <
1118 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1119 < static const yytype_int16 yyrhs[] =
1120 < {
1121 <     266,     0,    -1,    -1,   266,   267,    -1,   295,    -1,   301,
1122 <      -1,   316,    -1,   552,    -1,   339,    -1,   358,    -1,   372,
1123 <      -1,   277,    -1,   573,    -1,   390,    -1,   397,    -1,   407,
1124 <      -1,   416,    -1,   442,    -1,   452,    -1,   458,    -1,   472,
1125 <      -1,   536,    -1,   462,    -1,   272,    -1,     1,   260,    -1,
1126 <       1,   261,    -1,    -1,   269,    -1,   131,   268,    -1,   131,
1127 <     173,   268,    -1,   131,   174,   268,    -1,   131,   175,   268,
1128 <      -1,   131,   176,   268,    -1,   131,   177,   268,    -1,    -1,
1129 <     271,    -1,   131,   270,    -1,   131,    14,   270,    -1,   131,
1130 <      15,   270,    -1,   131,    16,   270,    -1,   119,   262,   273,
1131 <     261,   260,    -1,   273,   274,    -1,   274,    -1,   275,    -1,
1132 <     276,    -1,     1,   260,    -1,   118,   263,   153,   260,    -1,
1133 <     148,   263,   153,   260,    -1,   181,   262,   278,   261,   260,
1134 <      -1,   278,   279,    -1,   279,    -1,   286,    -1,   291,    -1,
1135 <     294,    -1,   288,    -1,   289,    -1,   290,    -1,   293,    -1,
1136 <     285,    -1,   292,    -1,   287,    -1,   284,    -1,   280,    -1,
1137 <       1,   260,    -1,    -1,   168,   281,   263,   282,   260,    -1,
1138 <     282,   264,   283,    -1,   283,    -1,   169,    -1,   170,    -1,
1139 <     167,   263,   153,   260,    -1,   165,   263,   153,   260,    -1,
1140 <     120,   263,   153,   260,    -1,   183,   263,   153,   260,    -1,
1141 <      37,   263,   153,   260,    -1,   123,   263,   153,   260,    -1,
1142 <     122,   263,   153,   260,    -1,   255,   263,   153,   260,    -1,
1143 <     256,   263,   153,   260,    -1,   227,   263,   131,   260,    -1,
1144 <      84,   263,   197,   260,    -1,     5,   262,   296,   261,   260,
1145 <      -1,   296,   297,    -1,   297,    -1,   298,    -1,   300,    -1,
1146 <     299,    -1,     1,   260,    -1,   120,   263,   153,   260,    -1,
1147 <      47,   263,   153,   260,    -1,    37,   263,   153,   260,    -1,
1148 <     102,   262,   302,   261,   260,    -1,   302,   303,    -1,   303,
1149 <      -1,   304,    -1,   305,    -1,   314,    -1,   315,    -1,   306,
1150 <      -1,   308,    -1,   310,    -1,   311,    -1,   313,    -1,   309,
1151 <      -1,   312,    -1,   307,    -1,     1,   260,    -1,   219,   263,
1152 <     153,   260,    -1,   138,   263,   153,   260,    -1,    62,   263,
1153 <     153,   260,    -1,    55,   263,   153,   260,    -1,    60,   263,
1154 <     153,   260,    -1,    61,   263,   153,   260,    -1,    58,   263,
1155 <     153,   260,    -1,    57,   263,   153,   260,    -1,    59,   263,
1156 <     153,   260,    -1,    56,   263,   153,   260,    -1,   103,   263,
1157 <     220,   260,    -1,   103,   263,   222,   260,    -1,   103,   263,
1158 <     226,   260,    -1,   103,   263,   224,   260,    -1,   103,   263,
1159 <     225,   260,    -1,   103,   263,   223,   260,    -1,   103,   263,
1160 <     221,   260,    -1,   253,   263,   197,   260,    -1,    -1,   136,
1161 <     317,   318,   262,   319,   261,   260,    -1,    -1,   322,    -1,
1162 <     319,   320,    -1,   320,    -1,   321,    -1,   323,    -1,   324,
1163 <      -1,   328,    -1,   327,    -1,   325,    -1,   326,    -1,   332,
1164 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   153,
1165 <      -1,   248,   263,   153,   260,    -1,   147,   263,   153,   260,
1166 <      -1,    49,   263,   197,   260,    -1,   166,   263,   153,   260,
1167 <      -1,    26,   263,   153,   260,    -1,    -1,   236,   329,   263,
1168 <     330,   260,    -1,   330,   264,   331,    -1,   331,    -1,   204,
1169 <      -1,   207,    -1,   208,    -1,   210,    -1,   211,    -1,   214,
1170 <      -1,   233,    -1,   228,    -1,   230,    -1,   237,    -1,   234,
1171 <      -1,   213,    -1,   229,    -1,   232,    -1,   215,    -1,   240,
1172 <      -1,   205,    -1,   206,    -1,   218,    -1,    -1,    53,   333,
1173 <     263,   334,   260,    -1,   334,   264,   335,    -1,   335,    -1,
1174 <      -1,   130,   336,   338,    -1,    -1,   337,   338,    -1,    72,
1175 <      -1,   161,    -1,    92,    -1,   247,    -1,   257,    -1,    65,
1176 <      -1,    38,    -1,   159,    -1,     5,    -1,    77,    -1,   125,
1177 <      -1,   229,    -1,   141,    -1,    79,    -1,   162,    -1,    49,
1178 <      -1,    -1,    26,   340,   341,   262,   342,   261,   260,    -1,
1179 <      -1,   345,    -1,   342,   343,    -1,   343,    -1,   344,    -1,
1180 <     355,    -1,   356,    -1,   346,    -1,   347,    -1,   357,    -1,
1181 <     348,    -1,   349,    -1,   350,    -1,   351,    -1,   352,    -1,
1182 <     353,    -1,   354,    -1,     1,   260,    -1,   120,   263,   153,
1183 <     260,    -1,   153,    -1,   150,   263,   269,   260,    -1,   151,
1184 <     263,   269,   260,    -1,   134,   263,   131,   260,    -1,    30,
1185 <     263,   269,   260,    -1,   112,   263,   131,   260,    -1,   107,
1186 <     263,   131,   260,    -1,   109,   263,   131,   260,    -1,   108,
1187 <     263,   131,   260,    -1,   178,   263,   271,   260,    -1,    23,
1188 <     263,   131,   260,    -1,    24,   263,   131,   260,    -1,   133,
1189 <     263,   131,   260,    -1,    -1,   100,   359,   262,   364,   261,
1190 <     260,    -1,    -1,    53,   361,   263,   362,   260,    -1,   362,
1191 <     264,   363,    -1,   363,    -1,   235,    -1,    76,    -1,   231,
1192 <      -1,   364,   365,    -1,   365,    -1,   366,    -1,   360,    -1,
1193 <     370,    -1,   371,    -1,     1,   260,    -1,    -1,   152,   263,
1194 <     368,   367,   260,    -1,   368,   264,   369,    -1,   369,    -1,
1195 <     131,    -1,   131,   202,   131,    -1,    89,   263,   153,   260,
1196 <      -1,    83,   263,   153,   260,    -1,    -1,    73,   373,   262,
1197 <     374,   261,   260,    -1,   374,   375,    -1,   375,    -1,   376,
1198 <      -1,   377,    -1,   378,    -1,   380,    -1,   387,    -1,   388,
1199 <      -1,   389,    -1,   379,    -1,     1,   260,    -1,   248,   263,
1200 <     153,   260,    -1,   147,   263,   153,   260,    -1,    26,   263,
1201 <     153,   260,    -1,    49,   263,   197,   260,    -1,    -1,    53,
1202 <     381,   263,   382,   260,    -1,   382,   264,   383,    -1,   383,
1203 <      -1,    -1,   130,   384,   386,    -1,    -1,   385,   386,    -1,
1204 <     191,    -1,    50,    -1,    93,    -1,    74,    -1,    20,    -1,
1205 <      21,    -1,   129,    -1,    67,    -1,   172,    -1,   121,    -1,
1206 <     190,   263,   153,   260,    -1,   157,   263,   153,   260,    -1,
1207 <     156,   263,   131,   260,    -1,    -1,   171,   391,   262,   392,
1208 <     261,   260,    -1,   392,   393,    -1,   393,    -1,   394,    -1,
1209 <     395,    -1,   396,    -1,     1,   260,    -1,   155,   263,   153,
1210 <     260,    -1,    22,   263,   153,   260,    -1,   124,   263,   153,
1211 <     260,    -1,    -1,   185,   398,   262,   399,   261,   260,    -1,
1212 <     399,   400,    -1,   400,    -1,   401,    -1,   402,    -1,   403,
1213 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   248,
1214 <     263,   153,   260,    -1,    -1,   187,   404,   263,   405,   260,
1215 <      -1,   405,   264,   406,    -1,   406,    -1,    92,    -1,   244,
1216 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1217 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1218 <     186,   408,   262,   409,   261,   260,    -1,   409,   410,    -1,
1219 <     410,    -1,   411,    -1,   412,    -1,     1,   260,    -1,   120,
1220 <     263,   153,   260,    -1,    -1,   187,   413,   263,   414,   260,
1221 <      -1,   414,   264,   415,    -1,   415,    -1,    92,    -1,   244,
1222 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1223 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1224 <      29,   417,   418,   262,   419,   261,   260,    -1,    -1,   422,
1225 <      -1,   419,   420,    -1,   420,    -1,   421,    -1,   423,    -1,
1226 <     424,    -1,   425,    -1,   426,    -1,   428,    -1,   427,    -1,
1227 <     429,    -1,   438,    -1,   439,    -1,   440,    -1,   437,    -1,
1228 <     436,    -1,   441,    -1,     1,   260,    -1,   120,   263,   153,
1229 <     260,    -1,   153,    -1,    83,   263,   153,   260,    -1,   255,
1230 <     263,   153,   260,    -1,   179,   263,   153,   260,    -1,     3,
1231 <     263,   153,   260,    -1,   152,   263,   131,   260,    -1,     6,
1232 <     263,   216,   260,    -1,     6,   263,   217,   260,    -1,    -1,
1233 <      53,   430,   263,   431,   260,    -1,   431,   264,   432,    -1,
1234 <     432,    -1,    -1,   130,   433,   435,    -1,    -1,   434,   435,
1235 <      -1,    27,    -1,    31,    -1,    10,    -1,    12,    -1,   242,
1236 <      -1,   166,   263,   153,   260,    -1,    49,   263,   197,   260,
1237 <      -1,    85,   263,   153,   260,    -1,    98,   263,   153,   260,
1238 <      -1,    26,   263,   153,   260,    -1,    25,   263,   153,   260,
1239 <      -1,    -1,    90,   443,   262,   448,   261,   260,    -1,    -1,
1240 <     187,   445,   263,   446,   260,    -1,   446,   264,   447,    -1,
1241 <     447,    -1,   158,    -1,   448,   449,    -1,   449,    -1,   450,
1242 <      -1,   451,    -1,   444,    -1,     1,    -1,   248,   263,   153,
1243 <     260,    -1,   155,   263,   153,   260,    -1,    -1,    36,   453,
1244 <     262,   454,   261,   260,    -1,   454,   455,    -1,   455,    -1,
1245 <     456,    -1,   457,    -1,     1,    -1,    89,   263,   153,   260,
1246 <      -1,   155,   263,   153,   260,    -1,    51,   262,   459,   261,
1247 <     260,    -1,   459,   460,    -1,   460,    -1,   461,    -1,     1,
1248 <      -1,    89,   263,   153,   260,    -1,    -1,    63,   463,   262,
1249 <     468,   261,   260,    -1,    -1,   187,   465,   263,   466,   260,
1250 <      -1,   466,   264,   467,    -1,   467,    -1,   158,    -1,   468,
1251 <     469,    -1,   469,    -1,   470,    -1,   471,    -1,   464,    -1,
1252 <       1,    -1,   120,   263,   153,   260,    -1,   155,   263,   153,
1253 <     260,    -1,    64,   262,   473,   261,   260,    -1,   473,   474,
1254 <      -1,   474,    -1,   483,    -1,   484,    -1,   486,    -1,   487,
1255 <      -1,   488,    -1,   489,    -1,   490,    -1,   491,    -1,   492,
1256 <      -1,   493,    -1,   482,    -1,   495,    -1,   496,    -1,   497,
1257 <      -1,   498,    -1,   514,    -1,   500,    -1,   502,    -1,   504,
1258 <      -1,   503,    -1,   507,    -1,   501,    -1,   508,    -1,   509,
1259 <      -1,   510,    -1,   511,    -1,   513,    -1,   512,    -1,   528,
1260 <      -1,   515,    -1,   519,    -1,   520,    -1,   524,    -1,   505,
1261 <      -1,   506,    -1,   534,    -1,   532,    -1,   533,    -1,   516,
1262 <      -1,   485,    -1,   517,    -1,   518,    -1,   535,    -1,   523,
1263 <      -1,   494,    -1,   521,    -1,   522,    -1,   478,    -1,   481,
1264 <      -1,   476,    -1,   477,    -1,   479,    -1,   480,    -1,   499,
1265 <      -1,   475,    -1,     1,    -1,   114,   263,   131,   260,    -1,
1266 <      70,   263,   131,   260,    -1,    71,   263,   131,   260,    -1,
1267 <      12,   263,   197,   260,    -1,   254,   263,   197,   260,    -1,
1268 <     160,   263,   269,   260,    -1,   184,   263,   197,   260,    -1,
1269 <      91,   263,   269,   260,    -1,    82,   263,   197,   260,    -1,
1270 <      87,   263,   197,   260,    -1,    43,   263,   197,   260,    -1,
1271 <      52,   263,   197,   260,    -1,     8,   263,   197,   260,    -1,
1272 <     111,   263,   269,   260,    -1,   110,   263,   131,   260,    -1,
1273 <     104,   263,   131,   260,    -1,     9,   263,   269,   260,    -1,
1274 <     201,   263,   269,   260,    -1,   200,   263,   269,   260,    -1,
1275 <      75,   263,   131,   260,    -1,    95,   263,   197,   260,    -1,
1276 <      94,   263,   153,   260,    -1,    88,   263,   197,   260,    -1,
1277 <     259,   263,   197,   260,    -1,   192,   263,   197,   260,    -1,
1278 <     195,   263,   197,   260,    -1,   196,   263,   197,   260,    -1,
1279 <     194,   263,   197,   260,    -1,   194,   263,   198,   260,    -1,
1280 <     193,   263,   197,   260,    -1,   193,   263,   198,   260,    -1,
1281 <     145,   263,   269,   260,    -1,    19,   263,   269,   260,    -1,
1282 <     137,   263,   197,   260,    -1,   146,   263,   269,   260,    -1,
1283 <     188,   263,   197,   260,    -1,   128,   263,   197,   260,    -1,
1284 <     243,   263,   197,   260,    -1,   140,   263,   197,   260,    -1,
1285 <     115,   263,   153,   260,    -1,    86,   263,   269,   260,    -1,
1286 <      44,   263,   131,   260,    -1,   113,   263,   131,   260,    -1,
1287 <     182,   263,   153,   260,    -1,    32,   263,   153,   260,    -1,
1288 <      28,   263,   131,   260,    -1,   249,   263,   197,   260,    -1,
1289 <      46,   263,   153,   260,    -1,   149,   263,   197,   260,    -1,
1290 <      39,   263,   197,   260,    -1,   241,   263,   269,   260,    -1,
1291 <      -1,   142,   525,   263,   526,   260,    -1,   526,   264,   527,
1292 <      -1,   527,    -1,   204,    -1,   207,    -1,   208,    -1,   210,
1293 <      -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,   230,
1294 <      -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,   232,
1295 <      -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,   218,
1296 <      -1,    -1,   139,   529,   263,   530,   260,    -1,   530,   264,
1297 <     531,    -1,   531,    -1,   204,    -1,   207,    -1,   208,    -1,
1298 <     210,    -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,
1299 <     230,    -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,
1300 <     232,    -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,
1301 <     218,    -1,   116,   263,   131,   260,    -1,   117,   263,   131,
1302 <     260,    -1,    33,   263,   131,   260,    -1,   209,   263,   271,
1303 <     260,    -1,    -1,    66,   537,   262,   538,   261,   260,    -1,
1304 <     538,   539,    -1,   539,    -1,   540,    -1,   541,    -1,   542,
1305 <      -1,   546,    -1,   547,    -1,   548,    -1,     1,    -1,    48,
1306 <     263,   197,   260,    -1,    45,   263,   269,   260,    -1,    -1,
1307 <     102,   543,   263,   544,   260,    -1,   544,   264,   545,    -1,
1308 <     545,    -1,   199,    -1,    11,    -1,   248,   263,   153,   260,
1309 <      -1,   120,   263,   153,   260,    -1,    -1,     4,   549,   263,
1310 <     550,   260,    -1,   550,   264,   551,    -1,   551,    -1,   199,
1311 <      -1,    11,    -1,    22,   262,   553,   261,   260,    -1,   553,
1312 <     554,    -1,   554,    -1,   557,    -1,   558,    -1,   559,    -1,
1313 <     560,    -1,   565,    -1,   561,    -1,   562,    -1,   563,    -1,
1314 <     564,    -1,   566,    -1,   567,    -1,   568,    -1,   556,    -1,
1315 <     569,    -1,   570,    -1,   571,    -1,   572,    -1,   555,    -1,
1316 <       1,    -1,    40,   263,   197,   260,    -1,   163,   263,   197,
1317 <     260,    -1,    42,   263,   197,   260,    -1,   250,   263,   197,
1318 <     260,    -1,   251,   263,   197,   260,    -1,   252,   263,   197,
1319 <     260,    -1,    96,   263,   269,   260,    -1,    97,   263,   269,
1320 <     260,    -1,   106,   263,   131,   260,    -1,   154,   263,   197,
1321 <     260,    -1,   105,   263,   131,   260,    -1,    35,   263,   131,
1322 <     260,    -1,    34,   263,   131,   260,    -1,   126,   263,   197,
1323 <     260,    -1,   127,   263,   197,   260,    -1,    13,   263,   197,
1324 <     260,    -1,   143,   263,   131,   260,    -1,   144,   263,   269,
1325 <     260,    -1,   180,   262,   574,   261,   260,    -1,   574,   575,
1326 <      -1,   575,    -1,   576,    -1,   577,    -1,   579,    -1,   581,
1327 <      -1,   580,    -1,   578,    -1,   582,    -1,     1,    -1,    54,
1328 <     263,   197,   260,    -1,    81,   263,   197,   260,    -1,    78,
1329 <     263,   153,   260,    -1,    99,   263,   269,   260,    -1,    76,
1330 <     263,   197,   260,    -1,    41,   263,   197,   260,    -1,    80,
1331 <     263,   197,   260,    -1
1332 < };
1333 <
1334 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1020 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1021   static const yytype_uint16 yyrline[] =
1022   {
1023 <       0,   395,   395,   396,   399,   400,   401,   402,   403,   404,
1024 <     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1025 <     415,   416,   417,   418,   419,   420,   424,   424,   425,   429,
1026 <     433,   437,   441,   445,   451,   451,   452,   453,   454,   455,
1027 <     462,   465,   465,   466,   466,   466,   468,   474,   481,   483,
1028 <     483,   484,   484,   485,   485,   486,   486,   487,   488,   488,
1029 <     489,   489,   490,   491,   495,   494,   513,   513,   514,   520,
1030 <     528,   562,   622,   637,   652,   661,   675,   684,   712,   742,
1031 <     765,   774,   776,   776,   777,   777,   778,   778,   780,   789,
1032 <     798,   811,   813,   814,   816,   816,   817,   818,   818,   819,
1033 <     819,   820,   820,   821,   821,   822,   823,   825,   829,   833,
1034 <     840,   847,   854,   861,   868,   875,   882,   889,   893,   897,
1035 <     901,   905,   909,   913,   919,   929,   928,  1022,  1022,  1023,
1036 <    1023,  1024,  1024,  1024,  1025,  1025,  1025,  1026,  1026,  1026,
1037 <    1028,  1040,  1052,  1086,  1098,  1109,  1151,  1161,  1160,  1166,
1038 <    1166,  1167,  1171,  1175,  1179,  1183,  1187,  1191,  1195,  1199,
1039 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1040 <    1246,  1245,  1249,  1249,  1250,  1250,  1251,  1251,  1253,  1260,
1041 <    1267,  1274,  1281,  1288,  1295,  1302,  1309,  1316,  1323,  1330,
1042 <    1337,  1344,  1351,  1358,  1372,  1371,  1421,  1421,  1423,  1423,
1043 <    1424,  1425,  1425,  1426,  1427,  1428,  1429,  1430,  1431,  1432,
1044 <    1433,  1434,  1435,  1436,  1438,  1447,  1456,  1462,  1468,  1474,
1045 <    1480,  1486,  1492,  1498,  1504,  1510,  1516,  1522,  1532,  1531,
1046 <    1548,  1547,  1552,  1552,  1553,  1557,  1561,  1569,  1569,  1570,
1047 <    1570,  1570,  1570,  1570,  1572,  1572,  1574,  1574,  1576,  1590,
1048 <    1610,  1619,  1632,  1631,  1700,  1700,  1701,  1701,  1701,  1701,
1049 <    1702,  1702,  1702,  1703,  1703,  1705,  1742,  1755,  1764,  1776,
1050 <    1775,  1779,  1779,  1780,  1780,  1781,  1781,  1783,  1790,  1797,
1051 <    1804,  1811,  1818,  1825,  1832,  1839,  1846,  1856,  1875,  1885,
1052 <    1899,  1898,  1914,  1914,  1915,  1915,  1915,  1915,  1917,  1926,
1053 <    1941,  1955,  1954,  1970,  1970,  1971,  1971,  1971,  1971,  1973,
1054 <    1982,  2005,  2004,  2010,  2010,  2011,  2015,  2019,  2023,  2027,
1055 <    2031,  2035,  2039,  2043,  2047,  2051,  2061,  2060,  2077,  2077,
1056 <    2078,  2078,  2078,  2080,  2087,  2086,  2092,  2092,  2093,  2097,
1057 <    2101,  2105,  2109,  2113,  2117,  2121,  2125,  2129,  2133,  2143,
1058 <    2142,  2288,  2288,  2289,  2289,  2290,  2290,  2290,  2291,  2291,
1059 <    2292,  2292,  2293,  2293,  2293,  2294,  2294,  2295,  2295,  2296,
1060 <    2298,  2310,  2322,  2331,  2357,  2375,  2393,  2399,  2403,  2412,
1061 <    2411,  2415,  2415,  2416,  2416,  2417,  2417,  2419,  2430,  2437,
1062 <    2444,  2451,  2461,  2502,  2513,  2526,  2539,  2548,  2584,  2583,
1063 <    2647,  2646,  2650,  2650,  2651,  2657,  2657,  2658,  2658,  2658,
1064 <    2658,  2660,  2679,  2689,  2688,  2711,  2711,  2712,  2712,  2712,
1065 <    2714,  2720,  2729,  2731,  2731,  2732,  2732,  2734,  2753,  2752,
1066 <    2800,  2799,  2803,  2803,  2804,  2810,  2810,  2811,  2811,  2811,
1067 <    2811,  2813,  2819,  2828,  2831,  2831,  2832,  2832,  2833,  2833,
1068 <    2834,  2834,  2835,  2835,  2836,  2836,  2837,  2837,  2838,  2838,
1069 <    2839,  2839,  2840,  2840,  2841,  2841,  2842,  2842,  2843,  2843,
1070 <    2844,  2844,  2845,  2845,  2846,  2846,  2847,  2847,  2848,  2848,
1071 <    2849,  2849,  2850,  2850,  2851,  2851,  2852,  2853,  2853,  2854,
1072 <    2854,  2855,  2856,  2856,  2857,  2857,  2858,  2858,  2859,  2859,
1073 <    2860,  2861,  2864,  2869,  2874,  2879,  2884,  2889,  2894,  2899,
1074 <    2904,  2909,  2914,  2919,  2924,  2929,  2934,  2939,  2944,  2949,
1075 <    2954,  2960,  2971,  2976,  2985,  2990,  2995,  3000,  3005,  3010,
1076 <    3013,  3018,  3021,  3026,  3031,  3036,  3041,  3046,  3051,  3056,
1077 <    3061,  3066,  3077,  3082,  3087,  3092,  3101,  3133,  3151,  3156,
1078 <    3165,  3170,  3175,  3181,  3180,  3185,  3185,  3186,  3189,  3192,
1079 <    3195,  3198,  3201,  3204,  3207,  3210,  3213,  3216,  3219,  3222,
1080 <    3225,  3228,  3231,  3234,  3237,  3240,  3246,  3245,  3250,  3250,
1081 <    3251,  3254,  3257,  3260,  3263,  3266,  3269,  3272,  3275,  3278,
1082 <    3281,  3284,  3287,  3290,  3293,  3296,  3299,  3302,  3305,  3310,
1083 <    3315,  3320,  3325,  3335,  3334,  3358,  3358,  3359,  3360,  3361,
1084 <    3362,  3363,  3364,  3365,  3367,  3373,  3380,  3379,  3384,  3384,
1085 <    3385,  3389,  3395,  3429,  3439,  3438,  3488,  3488,  3489,  3493,
1086 <    3502,  3505,  3505,  3506,  3506,  3507,  3507,  3508,  3508,  3509,
1087 <    3509,  3510,  3510,  3511,  3512,  3512,  3513,  3513,  3514,  3514,
1088 <    3515,  3515,  3517,  3522,  3527,  3532,  3537,  3542,  3547,  3552,
1089 <    3557,  3562,  3567,  3572,  3577,  3582,  3587,  3592,  3597,  3602,
1404 <    3610,  3613,  3613,  3614,  3614,  3615,  3616,  3617,  3617,  3618,
1405 <    3619,  3621,  3627,  3633,  3642,  3656,  3662,  3668
1023 >       0,   380,   380,   381,   384,   385,   386,   387,   388,   389,
1024 >     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
1025 >     400,   401,   402,   403,   404,   405,   406,   410,   410,   411,
1026 >     412,   413,   414,   415,   416,   417,   418,   421,   421,   422,
1027 >     423,   424,   425,   432,   435,   435,   436,   436,   436,   438,
1028 >     444,   451,   453,   453,   454,   455,   456,   457,   458,   459,
1029 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1030 >     470,   471,   474,   475,   477,   477,   478,   484,   492,   492,
1031 >     493,   499,   507,   549,   607,   635,   643,   658,   673,   682,
1032 >     696,   705,   733,   763,   788,   810,   832,   841,   843,   843,
1033 >     844,   845,   846,   847,   849,   858,   867,   880,   879,   897,
1034 >     897,   898,   898,   898,   900,   906,   915,   916,   916,   918,
1035 >     918,   919,   921,   928,   928,   941,   942,   944,   944,   945,
1036 >     945,   947,   955,   958,   964,   963,   969,   969,   970,   974,
1037 >     978,   982,   986,   990,   994,   998,  1002,  1013,  1012,  1092,
1038 >    1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,
1039 >    1102,  1103,  1105,  1111,  1117,  1123,  1134,  1140,  1146,  1157,
1040 >    1164,  1163,  1169,  1169,  1170,  1174,  1178,  1182,  1186,  1190,
1041 >    1194,  1198,  1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,
1042 >    1234,  1238,  1242,  1246,  1250,  1254,  1258,  1265,  1264,  1270,
1043 >    1270,  1271,  1275,  1279,  1283,  1287,  1291,  1295,  1299,  1303,
1044 >    1307,  1311,  1315,  1319,  1323,  1327,  1331,  1335,  1339,  1343,
1045 >    1347,  1351,  1355,  1359,  1363,  1374,  1373,  1434,  1434,  1435,
1046 >    1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,  1445,
1047 >    1446,  1446,  1447,  1448,  1449,  1450,  1452,  1458,  1464,  1470,
1048 >    1476,  1482,  1488,  1494,  1500,  1506,  1513,  1519,  1525,  1531,
1049 >    1540,  1550,  1549,  1555,  1555,  1556,  1560,  1571,  1570,  1577,
1050 >    1576,  1581,  1581,  1582,  1586,  1590,  1596,  1596,  1597,  1597,
1051 >    1597,  1597,  1597,  1599,  1599,  1601,  1601,  1603,  1617,  1635,
1052 >    1641,  1651,  1650,  1692,  1692,  1693,  1694,  1695,  1696,  1697,
1053 >    1698,  1699,  1700,  1701,  1703,  1709,  1715,  1721,  1733,  1732,
1054 >    1738,  1738,  1739,  1743,  1747,  1751,  1755,  1759,  1763,  1767,
1055 >    1771,  1775,  1781,  1795,  1804,  1818,  1817,  1832,  1832,  1833,
1056 >    1833,  1833,  1833,  1835,  1841,  1847,  1857,  1859,  1859,  1860,
1057 >    1860,  1862,  1878,  1877,  1902,  1902,  1903,  1903,  1903,  1903,
1058 >    1905,  1911,  1931,  1930,  1936,  1936,  1937,  1941,  1945,  1949,
1059 >    1953,  1957,  1961,  1965,  1969,  1973,  1983,  1982,  2003,  2003,
1060 >    2004,  2004,  2004,  2006,  2013,  2012,  2018,  2018,  2019,  2023,
1061 >    2027,  2031,  2035,  2039,  2043,  2047,  2051,  2055,  2065,  2064,
1062 >    2136,  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,  2144,
1063 >    2145,  2146,  2147,  2148,  2149,  2150,  2151,  2153,  2159,  2165,
1064 >    2171,  2184,  2197,  2203,  2209,  2213,  2222,  2221,  2226,  2226,
1065 >    2227,  2231,  2237,  2248,  2254,  2260,  2266,  2282,  2281,  2307,
1066 >    2307,  2308,  2308,  2308,  2310,  2330,  2340,  2339,  2366,  2366,
1067 >    2367,  2367,  2367,  2369,  2375,  2384,  2386,  2386,  2387,  2387,
1068 >    2389,  2407,  2406,  2429,  2429,  2430,  2430,  2430,  2432,  2438,
1069 >    2447,  2450,  2450,  2451,  2452,  2453,  2454,  2455,  2456,  2457,
1070 >    2458,  2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,
1071 >    2468,  2469,  2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,
1072 >    2478,  2479,  2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,
1073 >    2488,  2489,  2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,
1074 >    2498,  2499,  2500,  2503,  2508,  2514,  2520,  2526,  2532,  2537,
1075 >    2542,  2547,  2552,  2557,  2562,  2567,  2572,  2577,  2582,  2587,
1076 >    2592,  2597,  2603,  2614,  2619,  2624,  2629,  2634,  2639,  2644,
1077 >    2647,  2652,  2655,  2660,  2665,  2670,  2675,  2680,  2685,  2690,
1078 >    2695,  2700,  2705,  2710,  2715,  2724,  2733,  2738,  2743,  2749,
1079 >    2748,  2753,  2753,  2754,  2757,  2760,  2763,  2766,  2769,  2772,
1080 >    2775,  2778,  2781,  2784,  2787,  2790,  2793,  2796,  2799,  2802,
1081 >    2805,  2808,  2811,  2814,  2817,  2820,  2826,  2825,  2830,  2830,
1082 >    2831,  2834,  2837,  2840,  2843,  2846,  2849,  2852,  2855,  2858,
1083 >    2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,  2888,
1084 >    2891,  2896,  2901,  2906,  2915,  2918,  2918,  2919,  2920,  2921,
1085 >    2922,  2923,  2924,  2925,  2926,  2927,  2928,  2929,  2930,  2931,
1086 >    2932,  2933,  2935,  2940,  2945,  2950,  2955,  2960,  2965,  2970,
1087 >    2975,  2980,  2985,  2990,  2995,  3000,  3008,  3011,  3011,  3012,
1088 >    3013,  3014,  3015,  3016,  3017,  3018,  3019,  3020,  3022,  3028,
1089 >    3034,  3040,  3046,  3055,  3069,  3075
1090   };
1091   #endif
1092  
1093 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1093 > #if YYDEBUG || YYERROR_VERBOSE || 0
1094   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1095     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1096   static const char *const yytname[] =
1097   {
1098 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1099 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1100 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1101 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1102 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1419 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1420 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1098 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1099 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1100 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1101 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1102 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1103    "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1104    "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1105 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1424 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1105 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1106    "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1107 <  "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1108 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1109 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1110 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1111 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1112 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1113 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1114 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1115 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1116 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1117 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1118 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1119 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1120 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1121 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1122 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1107 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1108 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1109 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1110 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1111 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1112 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1113 >  "INVITE_DELAY", "INVITE_DELAY_CHANNEL", "IP", "IRCD_AUTH", "IRCD_FLAGS",
1114 >  "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1115 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1116 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1117 >  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1118 >  "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1119 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1120 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1121 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1122 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1123    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1124 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1125 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1126 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1127 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1128 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1129 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1130 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1131 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1132 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1133 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1134 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1135 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1136 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1137 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1138 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1139 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1140 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1141 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1142 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1143 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1144 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1145 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1146 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1147 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1148 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1149 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1150 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1151 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1152 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1153 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1154 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1155 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1156 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1124 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1125 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1126 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1127 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1128 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1129 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1130 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1131 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1132 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1133 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1134 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1135 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1136 >  "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1137 >  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1138 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1139 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1140 >  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1141 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1142 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1143 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1144 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1145 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1146 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1147 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1148 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1149 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1150 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1151 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1152 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1153 >  "serverinfo_ssl_server_method", "client_method_types",
1154 >  "client_method_type_item", "server_method_types",
1155 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1156 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1157 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1158    "serverinfo_description", "serverinfo_network_name",
1159    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1160 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1161 <  "admin_item", "admin_name", "admin_email", "admin_description",
1162 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1163 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1164 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1165 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1166 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1167 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1168 <  "oper_user", "oper_password", "oper_encrypted",
1169 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1170 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@4",
1171 <  "oper_flags_items", "oper_flags_item", "$@5", "$@6",
1172 <  "oper_flags_item_atom", "class_entry", "$@7", "class_name_b",
1173 <  "class_items", "class_item", "class_name", "class_name_t",
1174 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1160 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1161 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1162 >  "admin_items", "admin_item", "admin_name", "admin_email",
1163 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1164 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1165 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1166 >  "logging_file_items", "logging_file_item", "logging_file_name",
1167 >  "logging_file_size", "logging_file_type", "$@3",
1168 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1169 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1170 >  "oper_encrypted", "oper_rsa_public_key_file",
1171 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1172 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1173 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1174 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1175 >  "class_name", "class_ping_time", "class_number_per_ip",
1176    "class_connectfreq", "class_max_number", "class_max_global",
1177 <  "class_max_local", "class_max_ident", "class_sendq",
1177 >  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1178    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1179 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1180 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1181 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1182 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1183 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1184 <  "$@12", "auth_flags_items", "auth_flags_item", "$@13", "$@14",
1185 <  "auth_flags_item_atom", "auth_spoof", "auth_redir_serv",
1186 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1187 <  "resv_creason", "resv_channel", "resv_nick", "shared_entry", "$@16",
1179 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1180 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1181 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1182 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1183 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1184 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1185 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1186 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1187 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1188 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1189 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1190    "shared_items", "shared_item", "shared_name", "shared_user",
1191 <  "shared_type", "$@17", "shared_types", "shared_type_item",
1192 <  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1193 <  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1194 <  "connect_entry", "$@20", "connect_name_b", "connect_items",
1195 <  "connect_item", "connect_name", "connect_name_t", "connect_host",
1196 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1197 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1198 <  "connect_flags_items", "connect_flags_item", "$@22", "$@23",
1199 <  "connect_flags_item_atom", "connect_rsa_public_key_file",
1200 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1201 <  "connect_class", "connect_cipher_preference", "kill_entry", "$@24",
1517 <  "kill_type", "$@25", "kill_type_items", "kill_type_item", "kill_items",
1518 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@26",
1191 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1192 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1193 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1194 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1195 >  "connect_host", "connect_vhost", "connect_send_password",
1196 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1197 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1198 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1199 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1200 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1201 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1202    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1203 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@27",
1521 <  "gecos_flags", "$@28", "gecos_flags_items", "gecos_flags_item",
1203 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1204    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1205    "general_entry", "general_items", "general_item", "general_max_watch",
1206 +  "general_cycle_on_host_change", "general_gline_enable",
1207 +  "general_gline_duration", "general_gline_request_duration",
1208    "general_gline_min_cidr", "general_gline_min_cidr6",
1209 <  "general_burst_away", "general_use_whois_actually",
1210 <  "general_reject_hold_time", "general_tkline_expire_notices",
1527 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1528 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1209 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1210 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1211    "general_failed_oper_notice", "general_anti_nick_flood",
1212    "general_max_nick_time", "general_max_nick_changes",
1213    "general_max_accept", "general_anti_spam_exit_message_time",
1214    "general_ts_warn_delta", "general_ts_max_delta",
1215 <  "general_havent_read_conf", "general_kline_with_reason",
1216 <  "general_kline_reason", "general_invisible_on_connect",
1535 <  "general_warn_no_nline", "general_stats_e_disabled",
1215 >  "general_havent_read_conf", "general_invisible_on_connect",
1216 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1217    "general_stats_o_oper_only", "general_stats_P_oper_only",
1218 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1219 <  "general_pace_wait", "general_caller_id_wait",
1220 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1221 <  "general_short_motd", "general_no_oper_flood",
1222 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1223 <  "general_message_locale", "general_idletime", "general_dots_in_ident",
1224 <  "general_max_targets", "general_servlink_path",
1225 <  "general_default_cipher_preference", "general_compression_level",
1226 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1227 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1228 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1229 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1230 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1231 <  "general_client_flood", "gline_entry", "$@31", "gline_items",
1232 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@32",
1233 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1553 <  "gline_server", "gline_action", "$@33", "gdeny_types", "gdeny_type_item",
1554 <  "channel_entry", "channel_items", "channel_item",
1555 <  "channel_disable_fake_channels", "channel_restrict_channels",
1556 <  "channel_disable_local_channels", "channel_use_except",
1557 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1558 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1559 <  "channel_quiet_on_ban", "channel_max_bans",
1218 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1219 >  "general_stats_i_oper_only", "general_pace_wait",
1220 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1221 >  "general_pace_wait_simple", "general_short_motd",
1222 >  "general_no_oper_flood", "general_true_no_oper_flood",
1223 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1224 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1225 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1226 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1227 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1228 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1229 >  "general_default_floodcount", "channel_entry", "channel_items",
1230 >  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1231 >  "channel_knock_delay_channel", "channel_invite_delay",
1232 >  "channel_invite_delay_channel", "channel_max_chans_per_user",
1233 >  "channel_max_chans_per_oper", "channel_max_bans",
1234    "channel_default_split_user_count", "channel_default_split_server_count",
1235    "channel_no_create_on_split", "channel_no_join_on_split",
1236 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1237 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1238 <  "serverhide_flatten_links", "serverhide_hide_servers",
1239 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1240 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1236 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1237 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1238 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1239 >  "serverhide_hide_services", "serverhide_hidden_name",
1240 >  "serverhide_links_delay", "serverhide_hidden",
1241 >  "serverhide_hide_server_ips", YY_NULLPTR
1242   };
1243   #endif
1244  
1245   # ifdef YYPRINT
1246 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1247 <   token YYLEX-NUM.  */
1246 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1247 >   (internal) symbol number NUM (which must be that of a token).  */
1248   static const yytype_uint16 yytoknum[] =
1249   {
1250         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1595 | Line 1270 | static const yytype_uint16 yytoknum[] =
1270       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1271       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1272       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1273 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1599 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1600 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1601 <      59,   125,   123,    61,    44
1273 >     485,    59,   125,   123,    61,    44,    58
1274   };
1275   # endif
1276  
1277 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1606 < static const yytype_uint16 yyr1[] =
1607 < {
1608 <       0,   265,   266,   266,   267,   267,   267,   267,   267,   267,
1609 <     267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
1610 <     267,   267,   267,   267,   267,   267,   268,   268,   269,   269,
1611 <     269,   269,   269,   269,   270,   270,   271,   271,   271,   271,
1612 <     272,   273,   273,   274,   274,   274,   275,   276,   277,   278,
1613 <     278,   279,   279,   279,   279,   279,   279,   279,   279,   279,
1614 <     279,   279,   279,   279,   281,   280,   282,   282,   283,   283,
1615 <     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1616 <     294,   295,   296,   296,   297,   297,   297,   297,   298,   299,
1617 <     300,   301,   302,   302,   303,   303,   303,   303,   303,   303,
1618 <     303,   303,   303,   303,   303,   303,   303,   304,   305,   306,
1619 <     307,   308,   309,   310,   311,   312,   313,   314,   314,   314,
1620 <     314,   314,   314,   314,   315,   317,   316,   318,   318,   319,
1621 <     319,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1622 <     321,   322,   323,   324,   325,   326,   327,   329,   328,   330,
1623 <     330,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1624 <     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1625 <     333,   332,   334,   334,   336,   335,   337,   335,   338,   338,
1626 <     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
1627 <     338,   338,   338,   338,   340,   339,   341,   341,   342,   342,
1628 <     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
1629 <     343,   343,   343,   343,   344,   345,   346,   347,   348,   349,
1630 <     350,   351,   352,   353,   354,   355,   356,   357,   359,   358,
1631 <     361,   360,   362,   362,   363,   363,   363,   364,   364,   365,
1632 <     365,   365,   365,   365,   367,   366,   368,   368,   369,   369,
1633 <     370,   371,   373,   372,   374,   374,   375,   375,   375,   375,
1634 <     375,   375,   375,   375,   375,   376,   377,   378,   379,   381,
1635 <     380,   382,   382,   384,   383,   385,   383,   386,   386,   386,
1636 <     386,   386,   386,   386,   386,   386,   386,   387,   388,   389,
1637 <     391,   390,   392,   392,   393,   393,   393,   393,   394,   395,
1638 <     396,   398,   397,   399,   399,   400,   400,   400,   400,   401,
1639 <     402,   404,   403,   405,   405,   406,   406,   406,   406,   406,
1640 <     406,   406,   406,   406,   406,   406,   408,   407,   409,   409,
1641 <     410,   410,   410,   411,   413,   412,   414,   414,   415,   415,
1642 <     415,   415,   415,   415,   415,   415,   415,   415,   415,   417,
1643 <     416,   418,   418,   419,   419,   420,   420,   420,   420,   420,
1644 <     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1645 <     421,   422,   423,   424,   425,   426,   427,   428,   428,   430,
1646 <     429,   431,   431,   433,   432,   434,   432,   435,   435,   435,
1647 <     435,   435,   436,   437,   438,   439,   440,   441,   443,   442,
1648 <     445,   444,   446,   446,   447,   448,   448,   449,   449,   449,
1649 <     449,   450,   451,   453,   452,   454,   454,   455,   455,   455,
1650 <     456,   457,   458,   459,   459,   460,   460,   461,   463,   462,
1651 <     465,   464,   466,   466,   467,   468,   468,   469,   469,   469,
1652 <     469,   470,   471,   472,   473,   473,   474,   474,   474,   474,
1653 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1654 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1655 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1656 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1657 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1658 <     474,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1659 <     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1660 <     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
1661 <     502,   503,   503,   504,   505,   506,   507,   508,   509,   510,
1662 <     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
1663 <     521,   522,   523,   525,   524,   526,   526,   527,   527,   527,
1664 <     527,   527,   527,   527,   527,   527,   527,   527,   527,   527,
1665 <     527,   527,   527,   527,   527,   527,   529,   528,   530,   530,
1666 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   531,
1667 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   532,
1668 <     533,   534,   535,   537,   536,   538,   538,   539,   539,   539,
1669 <     539,   539,   539,   539,   540,   541,   543,   542,   544,   544,
1670 <     545,   545,   546,   547,   549,   548,   550,   550,   551,   551,
1671 <     552,   553,   553,   554,   554,   554,   554,   554,   554,   554,
1672 <     554,   554,   554,   554,   554,   554,   554,   554,   554,   554,
1673 <     554,   554,   555,   556,   557,   558,   559,   560,   561,   562,
1674 <     563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
1675 <     573,   574,   574,   575,   575,   575,   575,   575,   575,   575,
1676 <     575,   576,   577,   578,   579,   580,   581,   582
1677 < };
1277 > #define YYPACT_NINF -1009
1278  
1279 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1280 < static const yytype_uint8 yyr2[] =
1279 > #define yypact_value_is_default(Yystate) \
1280 >  (!!((Yystate) == (-1009)))
1281 >
1282 > #define YYTABLE_NINF -124
1283 >
1284 > #define yytable_value_is_error(Yytable_value) \
1285 >  0
1286 >
1287 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1288 >     STATE-NUM.  */
1289 > static const yytype_int16 yypact[] =
1290   {
1291 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1292 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1294 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1295 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1296 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1297 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1298 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1299 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1300 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1302 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1303 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1304 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1305 <       4,     1,     4,     4,     4,     4,     4,     0,     5,     3,
1306 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1307 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1308 <       0,     5,     3,     1,     0,     3,     0,     2,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1310 <       1,     1,     1,     1,     0,     7,     0,     1,     2,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1312 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1313 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1314 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1315 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1316 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1318 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1320 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1321 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1322 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1323 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1324 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1325 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1326 <       7,     0,     1,     2,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1328 <       4,     1,     4,     4,     4,     4,     4,     4,     4,     0,
1329 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1330 <       1,     1,     4,     4,     4,     4,     4,     4,     0,     6,
1331 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1332 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1333 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1334 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1335 <       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1337 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1338 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1339 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1342 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1343 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1344 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1347 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1348 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1349 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1351 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1352 <       1,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1353 <       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1354 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1356 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1357 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1358 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1359 <       1,     4,     4,     4,     4,     4,     4,     4
1291 >   -1009,   647, -1009,   -18,  -215,  -213, -1009, -1009, -1009,  -194,
1292 >   -1009,  -186, -1009, -1009, -1009,  -184, -1009, -1009, -1009,  -178,
1293 >    -176, -1009,  -168,  -115, -1009, -1009, -1009, -1009, -1009, -1009,
1294 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1295 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   351,
1296 >     903,  -113,  -106,   -97,    20,   -81,   400,   -71,   -62,   -60,
1297 >      16,   -25,    -7,    -6,   707,   369,    -1,    35,    72,    53,
1298 >     -43,   -36,   -29,    79,    10, -1009, -1009, -1009, -1009, -1009,
1299 >      91,   103,   106,   107,   109,   112,   114,   115,   119,   120,
1300 >     121,   124,   126,   137,   281, -1009, -1009, -1009, -1009, -1009,
1301 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1302 >     653,   532,   164, -1009,   141,    21, -1009, -1009,    70, -1009,
1303 >     143,   144,   145,   146,   148,   150,   151,   152,   153,   158,
1304 >     159,   161,   162,   163,   165,   166,   170,   171,   174,   175,
1305 >     177,   180,   183,   184,   185,   188,   189, -1009,   191, -1009,
1306 >     192,   195,   198,   199,   200,   204,   205,   209,   213,   215,
1307 >     216,   220,   221,   222,   224,   231,   232,   233,   236,    60,
1308 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1309 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1310 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1311 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1312 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1313 >      61,     9,   262,    68,   239,   243,    25, -1009, -1009, -1009,
1314 >      51,   451,   230, -1009,   244,   245,   246,   248,   249,   251,
1315 >     252,   253,    14, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1316 >   -1009, -1009,   101,   254,   256,   258,   260,   273,   277,   291,
1317 >     293,   294,   295,   297,   298,   300,   302,   305,   309,   311,
1318 >     134, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1319 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,    83,
1320 >     138,   313,    27, -1009, -1009, -1009,    80, -1009,   318,    24,
1321 >   -1009, -1009,     8, -1009,   241,   271,   288,   265, -1009,   352,
1322 >     436,   340,   443,   443,   444,   443,   443,   443,   445,   452,
1323 >     454,   354,   358,   345, -1009,   347,   346,   348,   350, -1009,
1324 >     359,   360,   364,   366,   367,   368,   371,   374,   377,   380,
1325 >     383,   387,   181, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1326 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1327 >     355,   388,   389,   391,   393,   394,   396, -1009,   397,   398,
1328 >     401,   407,   408,   409,   410,   314, -1009, -1009, -1009, -1009,
1329 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1330 >   -1009, -1009,   411,   412,    58, -1009, -1009, -1009,   458,   357,
1331 >   -1009, -1009,   415,   416,    40, -1009, -1009, -1009,   365,   443,
1332 >     443,   423,   540,   439,   543,   533,   448,   443,   453,   547,
1333 >     554,   443,   558,   460,   462,   465,   443,   569,   571,   443,
1334 >     576,   578,   579,   581,   480,   464,   482,   473,   495,   443,
1335 >     443,   496,   498,   501,   -54,   -28,   503,   505,   507,   595,
1336 >     443,   509,   510,   443,   443,   511,   515,   502, -1009,   506,
1337 >     508,   512, -1009,   516,   517,   518,   519,   520,    15, -1009,
1338 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   524,
1339 >     526,    32, -1009, -1009, -1009,   537,   530,   535, -1009,   536,
1340 >   -1009,    30, -1009, -1009, -1009, -1009, -1009,   608,   616,   541,
1341 >   -1009,   544,   542,   556,    29, -1009, -1009, -1009,   546,   559,
1342 >     568, -1009,   570,   573,   574,   575,   580, -1009,   582,    12,
1343 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1344 >   -1009,   557,   583,   584,   585,    18, -1009, -1009, -1009, -1009,
1345 >     589,   599,   607,   665,   609,   610,   612,   443,   591, -1009,
1346 >   -1009,   700,   615,   703,   719,   720,   706,   708,   709,   711,
1347 >     713,   715,   731,   723,    98,   135,   726,   728,   603, -1009,
1348 >     626,   613, -1009,    76, -1009, -1009, -1009, -1009,   644,   629,
1349 >   -1009,   628,   738,   637, -1009,   638,   636, -1009,   639,    23,
1350 >   -1009, -1009, -1009, -1009,   641,   643,   648, -1009,   649,   650,
1351 >     651,   561,   652,   655,   662,   667,   669,   670,   677,   680,
1352 >     682,   684,   685, -1009, -1009,   766,   772,   443,   676,   805,
1353 >     809,   443,   810,   811,   443,   797,   815,   817,   443,   818,
1354 >     818,   701, -1009, -1009,   807,    37,   808,   724,   813,   816,
1355 >     702,   819,   820,   825,   821,   822,   823,   824,   714, -1009,
1356 >     826,   827,   721, -1009,   725, -1009,   830,   831,   729, -1009,
1357 >     730,   733,   734,   737,   739,   740,   743,   744,   745,   746,
1358 >     749,   750,   751,   752,   753,   757,   758,   759,   760,   761,
1359 >     762,   763,   764,   765,   767,   768,   769,   614,   770,   679,
1360 >     771,   773,   774,   775,   776,   777,   778,   779,   782,   783,
1361 >     784,   785,   786,   787,   788,   789,   790,   791,   792,   793,
1362 >     794, -1009, -1009,   832,   755,   710,   836,   885,   876,   899,
1363 >     900,   798, -1009,   901,   904,   799, -1009, -1009,   905,   906,
1364 >     800,   923,   806, -1009,   812,   814, -1009, -1009,   909,   911,
1365 >     828, -1009, -1009,   912,   833,   829,   913,   914,   915,   917,
1366 >     834,   835,   919,   837, -1009, -1009,   922,   924,   925,   839,
1367 >   -1009,   840,   841,   842,   843,   844,   845,   846,   847, -1009,
1368 >     848,   849,   850,   851,   852,   853,   854,   855,   856,   857,
1369 >     858,   859,   860, -1009, -1009,  -208, -1009, -1009, -1009,  -197,
1370 >   -1009,   861,   862, -1009, -1009,   926,   863,   864, -1009,   865,
1371 >   -1009,   102,   867, -1009, -1009,   927,   866,   928,   868, -1009,
1372 >   -1009, -1009, -1009, -1009, -1009, -1009,   443,   443,   443,   443,
1373 >     443,   443,   443, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1374 >   -1009, -1009, -1009, -1009, -1009, -1009,   870,   871,   872,   -45,
1375 >     873,   874,   875,   877,   878,   879,   880,   881,   882,   883,
1376 >     312,   884,   886, -1009,   887,   888,   889,   890,   891,   892,
1377 >     893,    -4,   894,   895,   896,   897,   898,   902,   907, -1009,
1378 >     908,   910, -1009, -1009,   916,   918, -1009, -1009, -1009, -1009,
1379 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1380 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1381 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1382 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1383 >   -1009, -1009, -1009, -1009, -1009,  -191, -1009, -1009, -1009, -1009,
1384 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1385 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1386 >   -1009,  -185, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1387 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1388 >   -1009, -1009, -1009, -1009,   920,   921,   299,   929,   930,   931,
1389 >     932,   933, -1009,   934,   935, -1009,   936,   937,   -35,   938,
1390 >     939, -1009, -1009, -1009, -1009,   940,   941, -1009,   942,   944,
1391 >     504,   945,   946,   947,   948,   949,   722,   950, -1009,   951,
1392 >     952,   953, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1393 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1394 >   -1009, -1009, -1009, -1009, -1009,    98, -1009,   135, -1009, -1009,
1395 >     954,   403, -1009, -1009,   955,   956,   957, -1009,    11, -1009,
1396 >   -1009, -1009, -1009, -1009,   958,   732,   961, -1009, -1009, -1009,
1397 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1398 >    -177, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1399 >   -1009, -1009,   818,   818,   818, -1009, -1009, -1009, -1009, -1009,
1400 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -175, -1009,
1401 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1402 >   -1009, -1009,   614, -1009,   679, -1009, -1009, -1009, -1009, -1009,
1403 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -142, -1009, -1009,
1404 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1405 >   -1009,   -41, -1009,   982,   923,   962, -1009, -1009, -1009, -1009,
1406 >   -1009,   959, -1009, -1009,   960, -1009, -1009, -1009, -1009,   963,
1407 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1408 >   -1009,   -24, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1409 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1410 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1411 >   -1009,    39, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1412 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1413 >      50, -1009, -1009,   980,   -75,   964,   966, -1009, -1009, -1009,
1414 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,    65,
1415 >   -1009, -1009, -1009,   -45, -1009, -1009, -1009, -1009,    -4, -1009,
1416 >   -1009, -1009,   299, -1009,   -35, -1009, -1009, -1009,   983,   997,
1417 >     998, -1009,   504, -1009,   722, -1009,   403,   969,   970,   971,
1418 >     469, -1009, -1009,   732, -1009, -1009, -1009, -1009, -1009, -1009,
1419 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1420 >   -1009, -1009, -1009, -1009, -1009, -1009,    95, -1009, -1009, -1009,
1421 >     469, -1009
1422   };
1423  
1424 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1425 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1426 <   means the default is an error.  */
1424 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1425 >     Performed when YYTABLE does not specify something else to do.  Zero
1426 >     means the default is an error.  */
1427   static const yytype_uint16 yydefact[] =
1428   {
1429 <       2,     0,     1,     0,     0,     0,   194,   349,   413,     0,
1430 <     428,     0,   603,   252,   398,   228,     0,     0,   125,   290,
1431 <       0,     0,   301,   326,     3,    23,    11,     4,     5,     6,
1432 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1433 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   196,
1763 <     351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1765 <       0,     0,    83,    84,    86,    85,   651,     0,     0,     0,
1429 >       2,     0,     1,     0,     0,     0,   225,   388,   436,     0,
1430 >     451,     0,   291,   427,   267,     0,   107,   147,   325,     0,
1431 >       0,   366,     0,     0,   342,     3,    23,    11,     4,    24,
1432 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1433 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1434         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1767       0,     0,     0,     0,     0,     0,   632,   650,   645,   633,
1768     634,   635,   636,   638,   639,   640,   641,   637,   642,   643,
1769     644,   646,   647,   648,   649,   215,     0,   197,   371,     0,
1770     352,     0,   426,     0,     0,   424,   425,     0,   501,     0,
1435         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1436 +       0,     0,     0,     0,     0,    99,   100,   102,   101,   631,
1437         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1438 +       0,     0,     0,     0,     0,   616,   630,   620,   621,   618,
1439 +     619,   622,   623,   617,   624,   625,   626,   627,   628,   629,
1440 +       0,     0,     0,   449,     0,     0,   447,   448,     0,   512,
1441         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774       0,   576,     0,   553,     0,     0,     0,     0,     0,     0,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 <       0,     0,     0,     0,     0,   445,   500,   495,   496,   493,
1777 <     497,   498,   494,   456,   446,   447,   485,   448,   449,   450,
1778 <     451,   452,   453,   454,   455,   490,   457,   458,   459,   460,
1779 <     499,   462,   467,   463,   465,   464,   479,   480,   466,   468,
1780 <     469,   470,   471,   473,   472,   461,   475,   484,   486,   487,
1781 <     476,   477,   491,   492,   489,   478,   474,   482,   483,   481,
1782 <     488,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    93,
1784 <      94,    95,    98,   105,    99,   103,   100,   101,   104,   102,
1785 <      96,    97,     0,     0,     0,     0,    42,    43,    44,   141,
1786 <       0,   128,     0,   680,     0,     0,     0,     0,     0,     0,
1787 <       0,     0,   672,   673,   674,   678,   675,   677,   676,   679,
1788 <       0,     0,     0,     0,     0,     0,     0,     0,    64,     0,
1789 <       0,     0,     0,     0,    50,    62,    61,    58,    51,    60,
1790 <      54,    55,    56,    52,    59,    57,    53,     0,     0,    87,
1791 <       0,     0,     0,     0,    82,     0,     0,     0,     0,     0,
1443 >       0,     0,     0,     0,     0,     0,     0,   586,     0,   559,
1444         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1793       0,     0,     0,     0,   631,     0,     0,   419,     0,     0,
1794       0,   416,   417,   418,     0,     0,   423,   440,     0,     0,
1795     430,   439,     0,   436,   437,   438,     0,     0,     0,     0,
1445         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1446 +     462,   509,   511,   503,   504,   505,   506,   507,   502,   473,
1447 +     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1448 +     499,   474,   475,   508,   477,   482,   483,   478,   480,   479,
1449 +     493,   494,   481,   484,   485,   486,   487,   476,   489,   490,
1450 +     491,   510,   500,   501,   498,   492,   488,   496,   497,   495,
1451 +       0,     0,     0,     0,     0,     0,     0,    45,    46,    47,
1452 +       0,     0,     0,   657,     0,     0,     0,     0,     0,     0,
1453 +       0,     0,     0,   648,   649,   650,   651,   652,   655,   653,
1454 +     654,   656,     0,     0,     0,     0,     0,     0,     0,     0,
1455         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1456 +       0,    53,    68,    69,    67,    64,    63,    70,    54,    66,
1457 +      57,    58,    59,    55,    65,    60,    61,    62,    56,     0,
1458 +       0,     0,     0,   118,   119,   120,     0,   340,     0,     0,
1459 +     338,   339,     0,   103,     0,     0,     0,     0,    98,     0,
1460         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1461 +       0,     0,     0,     0,   615,     0,     0,     0,     0,   261,
1462         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1463 +       0,     0,     0,   228,   229,   232,   234,   235,   236,   237,
1464 +     238,   239,   240,   241,   230,   231,   233,   242,   243,   244,
1465 +       0,     0,     0,     0,     0,     0,     0,   416,     0,     0,
1466 +       0,     0,     0,     0,     0,     0,   391,   392,   393,   394,
1467 +     395,   396,   397,   399,   398,   401,   405,   402,   403,   404,
1468 +     400,   442,     0,     0,     0,   439,   440,   441,     0,     0,
1469 +     446,   457,     0,     0,     0,   454,   455,   456,     0,     0,
1470         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1801       0,     0,   444,   613,   624,     0,     0,   616,     0,     0,
1802       0,   606,   607,   608,   609,   610,   611,   612,     0,     0,
1803       0,   269,     0,     0,     0,     0,     0,     0,   255,   256,
1804     257,   258,   263,   259,   260,   261,   262,   410,     0,   400,
1805       0,   409,     0,   406,   407,   408,     0,   230,     0,     0,
1806       0,   240,     0,   238,   239,   241,   242,   106,     0,     0,
1471         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1808       0,    92,    45,     0,     0,     0,    41,     0,     0,     0,
1809       0,     0,     0,   293,   294,   295,   296,     0,     0,     0,
1810       0,     0,     0,     0,     0,   671,    63,     0,     0,     0,
1472         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1812      49,     0,     0,   311,     0,     0,   304,   305,   306,   307,
1813       0,     0,   334,     0,   329,   330,   331,     0,     0,     0,
1814      81,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1473         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474 <     630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475 <       0,     0,     0,     0,     0,     0,   199,   200,   203,   204,
1476 <     206,   207,   208,   209,   210,   211,   212,   201,   202,   205,
1477 <       0,     0,     0,     0,     0,     0,   379,     0,     0,     0,
1478 <       0,     0,     0,     0,     0,     0,   354,   355,   356,   357,
1479 <     358,   359,   361,   360,   362,   367,   366,   363,   364,   365,
1480 <     368,     0,     0,     0,   415,     0,   422,     0,     0,     0,
1481 <       0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
1474 >       0,     0,     0,     0,     0,     0,     0,     0,   461,     0,
1475 >       0,     0,   308,     0,     0,     0,     0,     0,     0,   294,
1476 >     295,   296,   297,   302,   298,   299,   300,   301,   433,     0,
1477 >       0,     0,   430,   431,   432,     0,     0,     0,   269,     0,
1478 >     279,     0,   277,   278,   280,   281,    48,     0,     0,     0,
1479 >      44,     0,     0,     0,     0,   110,   111,   112,     0,     0,
1480 >       0,   197,     0,     0,     0,     0,     0,   170,     0,     0,
1481 >     150,   151,   152,   153,   156,   157,   158,   159,   155,   154,
1482 >     160,     0,     0,     0,     0,     0,   328,   329,   330,   331,
1483 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   647,
1484 >      71,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    52,
1486 >       0,     0,   374,     0,   369,   370,   371,   121,     0,     0,
1487 >     117,     0,     0,     0,   337,     0,     0,   352,     0,     0,
1488 >     345,   346,   347,   348,     0,     0,     0,    97,     0,     0,
1489 >       0,    27,     0,     0,     0,     0,     0,     0,     0,     0,
1490 >       0,     0,     0,   614,   245,     0,     0,     0,     0,     0,
1491         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 +       0,     0,   227,   406,     0,     0,     0,     0,     0,     0,
1493 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   390,
1494 +       0,     0,     0,   438,     0,   445,     0,     0,     0,   453,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1828       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1829     443,     0,     0,     0,     0,     0,     0,     0,   605,   264,
1830       0,     0,     0,     0,     0,     0,     0,     0,     0,   254,
1831       0,     0,     0,     0,   405,   243,     0,     0,     0,     0,
1832       0,   237,     0,     0,     0,     0,     0,     0,     0,     0,
1498         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1834      91,     0,     0,    40,     0,     0,     0,   170,     0,     0,
1835       0,   147,     0,     0,   130,   131,   132,   133,   136,   137,
1836     135,   134,   138,   297,     0,     0,     0,     0,   292,     0,
1837       0,     0,     0,     0,     0,     0,   670,     0,     0,     0,
1838       0,     0,     0,     0,     0,     0,     0,     0,     0,    48,
1839     308,     0,     0,     0,     0,   303,   332,     0,     0,     0,
1840     328,    90,    89,    88,   667,   664,   663,   652,   654,    26,
1841      26,    26,    26,    26,    28,    27,   658,   659,   662,   660,
1842     665,   666,   668,   669,   661,   653,   655,   656,   657,   213,
1499         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1500 <       0,     0,     0,     0,   198,   369,     0,     0,     0,     0,
1500 >       0,   460,   303,     0,     0,     0,     0,     0,     0,     0,
1501 >       0,     0,   293,     0,     0,     0,   429,   282,     0,     0,
1502 >       0,     0,     0,   276,     0,     0,    43,   113,     0,     0,
1503 >       0,   109,   161,     0,     0,     0,     0,     0,     0,     0,
1504 >       0,     0,     0,     0,   149,   332,     0,     0,     0,     0,
1505 >     327,     0,     0,     0,     0,     0,     0,     0,     0,   646,
1506         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 <       0,   353,     0,     0,   414,   427,     0,     0,     0,   429,
1508 <     514,   518,   505,   534,   547,   546,   601,   551,   512,   543,
1509 <     549,   513,   503,   504,   521,   510,   542,   511,   524,   509,
1510 <     523,   522,   517,   516,   515,   544,   502,   541,   599,   600,
1511 <     538,   535,   580,   596,   597,   581,   582,   583,   584,   591,
1512 <     585,   594,   598,   587,   592,   588,   593,   586,   590,   589,
1852 <     595,     0,   579,   540,   557,   573,   574,   558,   559,   560,
1853 <     561,   568,   562,   571,   575,   564,   569,   565,   570,   563,
1854 <     567,   566,   572,     0,   556,   533,   536,   550,   507,   545,
1855 <     508,   537,   526,   531,   532,   529,   530,   527,   528,   520,
1856 <     519,    34,    34,    34,    36,    35,   602,   552,   539,   548,
1857 <     506,   525,     0,     0,     0,     0,     0,     0,   604,     0,
1858 <       0,   275,     0,     0,     0,     0,     0,   253,     0,     0,
1859 <       0,   399,     0,     0,     0,   248,   244,   247,   229,   110,
1860 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1861 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   139,
1862 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   129,
1863 <       0,     0,     0,   291,   686,   681,   685,   683,   687,   682,
1864 <     684,    74,    80,    72,    76,    75,    71,    70,    68,    69,
1865 <       0,    67,    73,    79,    77,    78,     0,     0,     0,   302,
1866 <       0,     0,   327,    29,    30,    31,    32,    33,     0,     0,
1507 >       0,     0,     0,    76,    77,     0,    75,    80,    81,     0,
1508 >      79,     0,     0,    51,   372,     0,     0,     0,   368,     0,
1509 >     116,     0,     0,   336,   349,     0,     0,     0,     0,   344,
1510 >     106,   105,   104,   641,   640,   632,    27,    27,    27,    27,
1511 >      27,    27,    27,    29,    28,   635,   636,   644,   645,   633,
1512 >     634,   639,   638,   637,   642,   643,     0,     0,     0,     0,
1513         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1514 <       0,   195,     0,     0,     0,     0,     0,     0,   385,     0,
1515 <       0,     0,     0,     0,     0,     0,     0,   350,   420,   421,
1516 <     441,   442,   434,     0,   433,   577,     0,   554,     0,    37,
1517 <      38,    39,   629,   628,     0,   627,   615,   614,   621,   620,
1518 <       0,   619,   623,   622,   267,   268,   273,     0,   272,     0,
1519 <     266,   289,   288,   287,   265,   412,   404,     0,   403,   411,
1520 <     235,   236,   234,     0,   233,   251,   250,     0,     0,     0,
1521 <       0,     0,   176,     0,     0,     0,     0,     0,   126,   299,
1522 <     300,   298,    65,     0,   309,   315,   321,   325,   324,   323,
1523 <     320,   316,   319,   322,   317,   318,     0,   314,   310,   333,
1524 <     338,   344,   348,   347,   346,   343,   339,   342,   345,   340,
1525 <     341,     0,   337,   225,   226,   219,   221,   223,   222,   220,
1526 <     214,   227,   218,   216,   217,   224,   375,   377,   378,   397,
1527 <     396,   393,   383,     0,   382,     0,   372,   394,   395,   370,
1528 <     376,   392,   374,   373,   431,     0,   578,   555,   625,     0,
1529 <     617,     0,     0,   270,   275,   281,   282,   278,   284,   280,
1530 <     279,   286,   283,   285,   277,   276,   401,     0,   231,     0,
1531 <     249,   246,   245,   146,   144,   174,     0,   173,     0,   140,
1532 <     143,   145,   151,   167,   168,   152,   153,   154,   155,   162,
1533 <     156,   165,   169,   158,   163,   159,   164,   157,   161,   160,
1534 <     166,     0,   150,   142,    66,   312,     0,   335,     0,     0,
1535 <     380,   385,   389,   390,   387,   388,   391,   386,   432,   626,
1536 <     618,   274,   271,   402,   232,     0,   171,   176,   186,   184,
1537 <     193,   183,   178,   187,   191,   180,   188,   190,   185,   179,
1538 <     192,   189,   181,   182,   177,   148,     0,   313,   336,   384,
1539 <     381,   175,   172,   149
1514 >      37,     0,     0,   226,     0,     0,     0,     0,     0,     0,
1515 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   389,
1516 >       0,     0,   437,   450,     0,     0,   452,   525,   529,   544,
1517 >     514,   613,   557,   551,   554,   524,   516,   515,   518,   519,
1518 >     517,   532,   522,   523,   533,   521,   528,   527,   526,   552,
1519 >     513,   611,   612,   548,   596,   590,   607,   591,   592,   593,
1520 >     601,   610,   594,   604,   608,   597,   609,   602,   598,   603,
1521 >     595,   606,   600,   599,   605,     0,   589,   550,   568,   569,
1522 >     570,   563,   582,   564,   565,   566,   576,   585,   567,   579,
1523 >     583,   572,   584,   577,   573,   578,   571,   581,   575,   574,
1524 >     580,     0,   562,   545,   543,   546,   556,   547,   535,   541,
1525 >     542,   539,   540,   536,   537,   538,   555,   558,   520,   549,
1526 >     531,   530,   553,   534,     0,     0,     0,     0,     0,     0,
1527 >       0,     0,   292,     0,     0,   428,     0,     0,     0,   287,
1528 >     283,   286,   268,    49,    50,     0,     0,   108,     0,     0,
1529 >       0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
1530 >       0,     0,   326,   659,   658,   664,   662,   665,   660,   661,
1531 >     663,    88,    96,    87,    94,    95,    86,    90,    89,    83,
1532 >      82,    84,    93,    85,    72,     0,    73,     0,    91,    92,
1533 >       0,     0,   367,   122,     0,     0,     0,   134,     0,   126,
1534 >     127,   129,   128,   341,     0,     0,     0,   343,    30,    31,
1535 >      32,    33,    34,    35,    36,   256,   257,   249,   266,   265,
1536 >       0,   264,   251,   253,   260,   252,   250,   259,   246,   258,
1537 >     248,   247,    37,    37,    37,    39,    38,   254,   255,   411,
1538 >     414,   415,   425,   422,   408,   423,   420,   421,     0,   419,
1539 >     424,   407,   413,   410,   412,   426,   409,   443,   444,   458,
1540 >     459,   587,     0,   560,     0,   306,   307,   316,   313,   318,
1541 >     314,   315,   321,   317,   319,   312,   320,     0,   311,   305,
1542 >     324,   323,   322,   304,   435,   434,   290,   289,   274,   275,
1543 >     273,     0,   272,     0,     0,     0,   114,   115,   169,   165,
1544 >     217,   204,   214,   213,   202,   207,   224,   216,   222,   206,
1545 >     209,   219,   221,   218,   215,   223,   210,   212,   220,   208,
1546 >     211,     0,   200,   162,   164,   166,   167,   168,   179,   180,
1547 >     181,   174,   193,   175,   176,   177,   187,   196,   178,   190,
1548 >     194,   183,   195,   188,   184,   189,   182,   192,   186,   185,
1549 >     191,     0,   173,   163,   335,   333,   334,    74,    78,   373,
1550 >     378,   384,   387,   380,   386,   381,   385,   383,   379,   382,
1551 >       0,   377,   130,     0,     0,     0,     0,   125,   350,   356,
1552 >     362,   365,   358,   364,   359,   363,   361,   357,   360,     0,
1553 >     355,   351,   262,     0,    40,    41,    42,   417,     0,   588,
1554 >     561,   309,     0,   270,     0,   288,   285,   284,     0,     0,
1555 >       0,   198,     0,   171,     0,   375,     0,     0,     0,     0,
1556 >       0,   124,   353,     0,   263,   418,   310,   271,   203,   201,
1557 >     205,   199,   172,   376,   131,   133,   132,   140,   145,   144,
1558 >     139,   142,   146,   143,   138,   141,     0,   137,   354,   135,
1559 >       0,   136
1560   };
1561  
1562 < /* YYDEFGOTO[NTERM-NUM].  */
1563 < static const yytype_int16 yydefgoto[] =
1898 < {
1899 <      -1,     1,    24,   834,   835,   984,   985,    25,   275,   276,
1900 <     277,   278,    26,   313,   314,   315,   534,  1070,  1071,   316,
1901 <     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1902 <      27,    71,    72,    73,    74,    75,    28,   258,   259,   260,
1903 <     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1904 <     271,    29,    61,   280,   773,   774,   775,   281,   776,   777,
1905 <     778,   779,   780,   781,  1046,  1301,  1302,   782,  1042,  1276,
1906 <    1277,  1325,  1278,  1344,    30,    49,   116,   595,   596,   597,
1907 <     117,   598,   599,   600,   601,   602,   603,   604,   605,   606,
1908 <     607,   608,   609,    31,    58,   481,   736,  1163,  1164,   482,
1909 <     483,   484,  1169,  1016,  1017,   485,   486,    32,    56,   457,
1910 <     458,   459,   460,   461,   462,   463,   722,  1147,  1148,  1252,
1911 <    1149,  1265,   464,   465,   466,    33,    62,   512,   513,   514,
1912 <     515,   516,    34,    65,   545,   546,   547,   548,   549,   812,
1913 <    1196,  1197,    35,    66,   553,   554,   555,   556,   818,  1211,
1914 <    1212,    36,    50,   119,   625,   626,   627,   120,   628,   629,
1915 <     630,   631,   632,   633,   634,   871,  1233,  1234,  1309,  1235,
1916 <    1317,   635,   636,   637,   638,   639,   640,    37,    57,   471,
1917 <     731,  1157,  1158,   472,   473,   474,   475,    38,    51,   360,
1918 <     361,   362,   363,    39,   124,   125,   126,    40,    53,   371,
1919 <     649,  1123,  1124,   372,   373,   374,   375,    41,   184,   185,
1920 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1921 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1922 <     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1923 <     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1924 <     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1925 <     410,   963,   964,   236,   408,   941,   942,   237,   238,   239,
1926 <     240,    42,    55,   440,   441,   442,   443,   444,   714,  1140,
1927 <    1141,   445,   446,   447,   711,  1134,  1135,    43,    95,    96,
1928 <      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1929 <     107,   108,   109,   110,   111,   112,   113,   114,    44,   291,
1930 <     292,   293,   294,   295,   296,   297,   298,   299
1931 < };
1932 <
1933 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1934 <   STATE-NUM.  */
1935 < #define YYPACT_NINF -949
1936 < static const yytype_int16 yypact[] =
1562 >  /* YYPGOTO[NTERM-NUM].  */
1563 > static const yytype_int16 yypgoto[] =
1564   {
1565 <    -949,   670,  -949,  -256,  -248,  -245,  -949,  -949,  -949,  -212,
1566 <    -949,  -205,  -949,  -949,  -949,  -949,  -189,  -183,  -949,  -949,
1567 <    -154,  -152,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1568 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1569 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,    22,   642,  -127,
1570 <     -31,  -132,     5,  -125,   415,  -119,   -98,   -89,   -86,   578,
1571 <      14,    -8,   -75,   664,   313,   -74,   -61,   -45,   -46,   -37,
1572 <     -23,    31,  -949,  -949,  -949,  -949,  -949,   -22,    15,    30,
1573 <      33,    41,    42,    47,    48,    50,    61,    62,    70,    78,
1574 <      79,    80,    86,    90,    93,    94,  -949,  -949,  -949,  -949,
1575 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1576 <    -949,  -949,  -949,  -949,  -949,  -949,   -44,  -949,  -949,    89,
1577 <    -949,    20,  -949,    99,     2,  -949,  -949,   140,  -949,   100,
1578 <     104,   106,   111,   113,   115,   122,   123,   126,   127,   128,
1579 <     129,   131,   133,   135,   136,   137,   145,   147,   148,   151,
1580 <     155,   156,   157,   159,   163,   165,   167,   169,   174,   175,
1581 <     177,  -949,   178,  -949,   186,   187,   188,   193,   194,   197,
1582 <     199,   200,   205,   206,   209,   210,   211,   212,   213,   214,
1583 <     219,   220,   225,   228,    10,  -949,  -949,  -949,  -949,  -949,
1584 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1585 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1586 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1587 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1588 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1589 <    -949,   364,   308,    92,   318,    17,   229,   230,   231,   232,
1590 <     236,   237,   241,   242,   244,   245,   248,   250,   226,  -949,
1591 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1592 <    -949,  -949,    63,   251,   252,    60,  -949,  -949,  -949,  -949,
1593 <     182,  -949,    24,  -949,   253,   254,   255,   260,   270,   271,
1594 <     272,   192,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1968 <      72,   273,   274,   275,   276,   279,   281,   282,  -949,   285,
1969 <     286,   287,   288,   132,  -949,  -949,  -949,  -949,  -949,  -949,
1970 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   183,   102,  -949,
1971 <     222,   293,   336,   299,  -949,   198,   431,   432,   368,   369,
1972 <     436,   436,   440,   441,   376,   379,   446,   436,   381,   390,
1973 <     391,   392,   393,   332,  -949,   726,   521,  -949,   330,   331,
1974 <      76,  -949,  -949,  -949,   442,   338,  -949,  -949,   333,   337,
1975 <    -949,  -949,    57,  -949,  -949,  -949,   404,   436,   408,   436,
1976 <     482,   461,   486,   423,   424,   491,   470,   429,   496,   497,
1977 <     498,   434,   436,   445,   447,   436,   493,   450,   517,   518,
1978 <     436,   522,   523,   499,   526,   528,   463,   464,   400,   469,
1979 <     405,   436,   436,   475,   436,   514,   488,   489,   492,  -131,
1980 <    -110,   494,   501,   436,   436,   548,   436,   504,   505,   506,
1981 <     510,   428,  -949,  -949,  -949,   420,   427,  -949,   430,   448,
1982 <     112,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   435,   454,
1983 <     457,  -949,   459,   462,   465,   466,   467,   118,  -949,  -949,
1984 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   468,  -949,
1985 <     472,  -949,    74,  -949,  -949,  -949,   449,  -949,   474,   483,
1986 <     490,  -949,    29,  -949,  -949,  -949,  -949,  -949,   555,   557,
1987 <     560,   571,   573,   579,   599,   601,   360,   602,   604,   561,
1988 <     502,  -949,  -949,   608,   611,   507,  -949,   305,   511,   503,
1989 <     512,   515,   152,  -949,  -949,  -949,  -949,   568,   577,   580,
1990 <     626,   583,   584,   436,   524,  -949,  -949,   634,   586,   637,
1991 <     638,   639,   640,   641,   532,   646,   672,   648,   651,   547,
1992 <    -949,   551,   549,  -949,   550,    69,  -949,  -949,  -949,  -949,
1993 <     558,   556,  -949,    75,  -949,  -949,  -949,   562,   563,   564,
1994 <    -949,   565,   566,   569,   572,   576,   207,   582,   587,   588,
1995 <     589,   592,   593,   594,   597,   598,   603,   607,   609,   610,
1996 <    -949,   615,   574,   581,   605,   616,   617,   618,   619,   620,
1997 <     622,   623,   624,   625,   628,   116,  -949,  -949,  -949,  -949,
1998 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1999 <     629,   632,   645,   649,   650,   652,  -949,   653,   654,   655,
2000 <     656,   660,   665,   667,   668,   160,  -949,  -949,  -949,  -949,
2001 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2002 <    -949,   675,   686,   678,  -949,   681,  -949,   687,   690,   682,
2003 <     688,  -949,   689,   691,   693,   694,   695,   696,   700,   704,
2004 <     705,   707,   708,   715,   718,   722,   723,   725,   727,   728,
2005 <     730,   731,   732,   733,   737,   741,   742,   744,   745,   747,
2006 <     748,   749,   750,   751,   692,   752,   729,   753,   754,   755,
2007 <     756,   757,   758,   759,   760,   761,   762,   763,   764,   765,
2008 <     767,   768,   769,    49,   770,   771,   772,   773,   774,   775,
2009 <    -949,   683,   436,   712,   776,   709,   711,   777,  -949,  -949,
2010 <     797,   714,   778,   799,   783,   833,   836,   873,   780,  -949,
2011 <     883,   779,   885,   784,  -949,  -949,   782,   890,   893,   796,
2012 <     787,  -949,   788,   789,   790,   791,   792,   793,   794,   795,
2013 <     798,   800,   801,   802,   803,   804,   805,   806,   807,   808,
2014 <    -949,   809,   810,  -949,   811,   812,   813,  -949,   814,   815,
2015 <     816,  -949,   817,   181,  -949,  -949,  -949,  -949,  -949,  -949,
2016 <    -949,  -949,  -949,  -949,   903,   904,   906,   821,  -949,   822,
2017 <     823,   824,   825,   826,   827,   828,  -949,   829,   830,   831,
2018 <     832,   834,   835,   837,   -80,   838,   839,   840,   841,  -949,
2019 <    -949,   919,   842,   920,   843,  -949,  -949,   921,   844,   846,
2020 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   436,
2021 <     436,   436,   436,   436,  -949,  -949,  -949,  -949,  -949,  -949,
2022 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2023 <     962,   965,   436,   971,   973,   977,   978,   957,   980,   981,
2024 <     436,   436,   548,   853,  -949,  -949,   961,  -117,   963,   964,
2025 <     918,   855,   966,   967,   968,   969,   992,   972,   974,   975,
2026 <     864,  -949,   866,   869,  -949,  -949,   870,   871,   662,  -949,
2027 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2028 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2029 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2030 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2031 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2032 <    -949,  -244,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2033 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2034 <    -949,  -949,  -949,  -236,  -949,  -949,  -949,  -949,  -949,  -949,
2035 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2036 <    -949,   548,   548,   548,  -949,  -949,  -949,  -949,  -949,  -949,
2037 <    -949,  -949,    -3,   872,   874,    -2,   875,   876,  -949,   877,
2038 <     878,  1003,   879,   880,   881,   882,   884,  -949,   886,   703,
2039 <     887,  -949,   -63,   888,   889,   676,   891,  -949,  -949,  -949,
2040 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2041 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2042 <     990,   948,   894,   997,   998,   999,   895,  1000,   896,  -949,
2043 <     899,   900,   901,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2044 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2045 <    -224,  -949,  -949,  -949,  -949,  -949,   902,   570,   905,  -949,
2046 <     907,   627,  -949,  -949,  -949,  -949,  -949,  -949,   908,   909,
2047 <     910,   911,   912,   913,   914,   915,   916,   917,   922,   923,
2048 <     924,  -949,   925,   926,   927,   928,   929,   930,  1024,   931,
2049 <     932,   933,   934,   935,   936,   937,   938,  -949,  -949,  -949,
2050 <    -949,  -949,  -949,  -219,  -949,  -949,   692,  -949,   729,  -949,
2051 <    -949,  -949,  -949,  -949,  -216,  -949,  -949,  -949,  -949,  -949,
2052 <    -213,  -949,  -949,  -949,  -949,  -949,  -949,  -158,  -949,   630,
2053 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -149,  -949,  -949,
2054 <    -949,  -949,  -949,  -129,  -949,  -949,  -949,  1032,   796,   939,
2055 <     940,   941,  1034,   942,   943,   944,   766,   945,  -949,  -949,
2056 <    -949,  -949,  -949,   -80,  -949,  -949,  -949,  -949,  -949,  -949,
2057 <    -949,  -949,  -949,  -949,  -949,  -949,  -106,  -949,  -949,  -949,
2058 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2059 <    -949,   -25,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2060 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2061 <    -949,  -949,  -949,    38,  -949,     0,  -949,  -949,  -949,  -949,
2062 <    -949,  -949,  -949,  -949,  -949,   662,  -949,  -949,  -949,    -3,
2063 <    -949,    -2,   630,  -949,  1003,  -949,  -949,  -949,  -949,  -949,
2064 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   703,  -949,   -63,
2065 <    -949,  -949,  -949,  -949,  -949,  -949,    56,  -949,   553,  -949,
2066 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2067 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2068 <    -949,    88,  -949,  -949,  -949,  -949,   570,  -949,   627,     0,
2069 <    -949,  1024,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2070 <    -949,  -949,  -949,  -949,  -949,   553,  -949,  1034,  -949,  -949,
2071 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2072 <    -949,  -949,  -949,  -949,  -949,  -949,   766,  -949,  -949,  -949,
2073 <    -949,  -949,  -949,  -949
1565 >   -1009, -1009, -1009,  -317,  -310, -1008,  -629, -1009, -1009,   838,
1566 >   -1009, -1009, -1009, -1009,   780, -1009, -1009, -1009,  -454, -1009,
1567 >      19, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1568 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   984, -1009,
1569 >   -1009, -1009, -1009, -1009, -1009,   553, -1009, -1009, -1009, -1009,
1570 >     943, -1009, -1009, -1009, -1009,    13, -1009, -1009, -1009, -1009,
1571 >   -1009,  -240, -1009, -1009, -1009,   548, -1009, -1009, -1009, -1009,
1572 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -202, -1009, -1009,
1573 >   -1009,  -196, -1009, -1009, -1009,   795, -1009, -1009, -1009, -1009,
1574 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1575 >   -1009, -1009, -1009, -1009,  -111, -1009, -1009, -1009, -1009, -1009,
1576 >    -189, -1009,   645, -1009, -1009, -1009,   -10, -1009, -1009, -1009,
1577 >   -1009, -1009,   672, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1578 >    -117, -1009, -1009, -1009, -1009, -1009, -1009,   611, -1009, -1009,
1579 >   -1009, -1009, -1009,   965, -1009, -1009, -1009, -1009,   555, -1009,
1580 >   -1009, -1009, -1009, -1009,  -131, -1009, -1009, -1009,   572, -1009,
1581 >   -1009, -1009, -1009,  -123, -1009, -1009, -1009,   781, -1009, -1009,
1582 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,  -100,
1583 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,   673, -1009,
1584 >   -1009, -1009, -1009, -1009,   756, -1009, -1009, -1009, -1009,  1038,
1585 >   -1009, -1009, -1009, -1009,   754, -1009, -1009, -1009, -1009,   986,
1586 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1587 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1588 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1589 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1590 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009,    43, -1009, -1009,
1591 >   -1009,    57, -1009, -1009, -1009, -1009, -1009,  1076, -1009, -1009,
1592 >   -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009,
1593 >   -1009, -1009, -1009, -1009,   967, -1009, -1009, -1009, -1009, -1009,
1594 >   -1009, -1009, -1009
1595   };
1596  
1597 < /* YYPGOTO[NTERM-NUM].  */
1598 < static const yytype_int16 yypgoto[] =
1597 >  /* YYDEFGOTO[NTERM-NUM].  */
1598 > static const yytype_int16 yydefgoto[] =
1599   {
1600 <    -949,  -949,  -949,  -427,  -340,  -948,  -423,  -949,  -949,   946,
1601 <    -949,  -949,  -949,  -949,   865,  -949,  -949,  -949,  -293,  -949,
1602 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1603 <    -949,  -949,  1095,  -949,  -949,  -949,  -949,  -949,   643,  -949,
1604 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1605 <    -949,  -949,  -949,  -949,  -949,   406,  -949,  -949,  -949,  -949,
1606 <    -949,  -949,  -949,  -949,  -949,  -949,  -166,  -949,  -949,  -949,
1607 <    -146,  -949,  -949,  -118,  -949,  -949,  -949,  -949,   613,  -949,
1608 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1609 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -60,  -949,
1610 <     724,  -949,  -949,  -949,    43,  -949,  -949,  -949,  -949,  -949,
1611 <     781,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -42,  -949,
1612 <    -949,   -39,  -949,  -949,  -949,  -949,  -949,  -949,   698,  -949,
1613 <    -949,  -949,  -949,  -949,  -949,   669,  -949,  -949,  -949,  -949,
1614 <    -949,   -91,  -949,  -949,  -949,   663,  -949,  -949,  -949,  -949,
1615 <     -90,  -949,  -949,  -949,  -949,   595,  -949,  -949,  -949,  -949,
1616 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   -94,  -949,  -949,
1617 <     -87,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1618 <    -949,  -949,   -48,  -949,   785,  -949,  -949,  -949,  -949,  -949,
1619 <     863,  -949,  -949,  -949,  -949,  1100,  -949,  -949,  -949,  -949,
1620 <    -949,  -949,   -20,  -949,   854,  -949,  -949,  -949,  -949,  1043,
1621 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1622 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1623 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1624 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1625 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1626 <    -949,  -949,   101,  -949,  -949,  -949,   105,  -949,  -949,  -949,
1627 <    -949,  -949,  -949,  -949,   818,  -949,  -949,  -949,  -949,  -949,
1628 <     -21,  -949,  -949,  -949,  -949,  -949,   -17,  -949,  -949,  1133,
1629 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2109 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2110 <     949,  -949,  -949,  -949,  -949,  -949,  -949,  -949
1600 >      -1,     1,    25,   823,   824,  1085,  1086,    26,   226,   227,
1601 >     228,   229,    27,   270,   271,   272,   273,   785,   786,   789,
1602 >     790,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1603 >     283,   284,   285,   286,   287,   288,    28,    74,    75,    76,
1604 >      77,    78,    29,    61,   504,   505,   506,   507,    30,   292,
1605 >     293,   294,   295,   296,  1048,  1049,  1050,  1051,  1052,  1225,
1606 >    1296,  1297,    31,    62,   519,   520,   521,   522,   523,   524,
1607 >     525,   526,   527,   528,   529,   751,  1201,  1202,   530,   745,
1608 >    1171,  1172,    32,    51,   342,   343,   344,   345,   346,   347,
1609 >     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1610 >     358,   359,   618,  1070,  1071,    33,    59,   490,   730,  1141,
1611 >    1142,   491,   492,   493,  1145,   990,   991,   494,   495,    34,
1612 >      57,   468,   469,   470,   471,   472,   473,   474,   715,  1127,
1613 >    1128,   475,   476,   477,    35,    63,   535,   536,   537,   538,
1614 >     539,    36,   299,   300,   301,    37,    69,   589,   590,   591,
1615 >     592,   593,   806,  1239,  1240,    38,    66,   573,   574,   575,
1616 >     576,   796,  1220,  1221,    39,    52,   375,   376,   377,   378,
1617 >     379,   380,   381,   382,   383,   384,   385,   640,  1098,  1099,
1618 >     386,   387,   388,   389,   390,    40,    58,   481,   482,   483,
1619 >     484,    41,    53,   394,   395,   396,   397,    42,   115,   116,
1620 >     117,    43,    55,   404,   405,   406,   407,    44,   169,   170,
1621 >     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1622 >     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1623 >     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1624 >     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1625 >     211,   212,   213,   214,   215,   437,   951,   952,   216,   435,
1626 >     925,   926,   217,   218,   219,    45,    94,    95,    96,    97,
1627 >      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1628 >     108,   109,    46,   242,   243,   244,   245,   246,   247,   248,
1629 >     249,   250,   251
1630   };
1631  
1632 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1633 <   positive, shift that token.  If negative, reduce the rule which
1634 <   number is the opposite.  If zero, do what YYDEFACT says.
1635 <   If YYTABLE_NINF, syntax error.  */
2117 < #define YYTABLE_NINF -1
2118 < static const yytype_uint16 yytable[] =
1632 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1633 >     positive, shift that token.  If negative, reduce the rule whose
1634 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1635 > static const yytype_int16 yytable[] =
1636   {
1637 <     567,   568,   704,   122,    45,    46,   122,   574,  1132,  1138,
1638 <    1312,   128,  1313,  1160,    47,   272,  1125,    48,   129,   130,
1639 <    1126,   357,   131,    67,  1127,   508,   115,  1314,  1128,   132,
1640 <     476,  1315,    67,  1129,  1130,  1131,  1182,   653,   133,   655,
1641 <    1183,  1244,   134,   135,  1248,  1245,   509,  1250,  1249,   136,
1642 <      52,  1251,   668,   137,   138,   671,   139,    54,   367,    68,
1643 <     676,   272,   140,   981,   982,   983,   695,   696,    68,    69,
1644 <     541,   687,   688,    59,   690,   467,   550,   357,    69,    60,
1645 <     141,   142,   477,   701,   702,   143,   705,   697,   698,  1068,
1646 <    1069,   123,   144,   467,   123,    76,   145,   146,   147,  1103,
1647 <    1104,   148,  1253,   550,   149,   150,  1254,    77,    63,   358,
1648 <      64,  1266,   478,   433,   151,  1267,   434,   581,   479,   448,
1649 <     152,   153,   118,   154,   155,   156,   157,   158,    78,    79,
1650 <     121,  1268,   273,   300,    80,  1269,    81,   127,   159,   582,
1651 <     583,   367,    70,   241,   449,   279,   584,   160,   510,   161,
1652 <     162,    70,   163,   508,  1305,   164,   165,   435,  1306,   166,
1653 <     436,   610,   274,   611,   242,   358,   612,   450,  1161,   301,
1654 <     167,   451,  1162,   243,   509,   359,   244,   368,   273,   511,
1655 <     703,   480,   764,   795,   541,   613,   614,   282,   327,   542,
1656 <      82,    83,   168,   283,   169,   551,  1133,  1139,   170,    84,
1657 <      85,   328,   171,   172,   173,   174,   175,   765,   274,   615,
1658 <     176,   177,   369,   616,   437,   329,   302,   330,   355,   178,
1659 <      86,    87,   551,   585,   586,   587,   331,   245,   588,   468,
1660 <     766,   359,   438,   284,   767,  1307,   589,    88,    89,  1308,
1661 <     332,   335,  1316,   617,   370,   618,   285,   468,    90,   590,
1662 <     591,   179,   303,   180,   304,   305,   543,    91,   619,   181,
1663 <     368,   469,   552,   365,   182,   452,   592,   593,   286,   183,
1664 <     287,   431,   288,   289,   453,   454,   510,   487,   336,   469,
1665 <     620,   246,   247,   248,   249,   250,   251,   252,   253,   552,
1666 <     740,   290,   333,   337,   594,   369,   338,   306,  1310,   307,
1667 <     308,   768,  1311,   542,   339,   340,   764,   511,   455,   448,
1668 <     341,   342,   621,   343,   300,   309,  1326,   544,   650,   476,
1669 <    1327,   505,   470,   502,   344,   345,   622,   370,   769,   254,
1670 <     814,   765,   526,   346,   449,   733,   819,   643,   566,   623,
1671 <     470,   347,   348,   349,    92,    93,    94,   770,  1345,   350,
1672 <     301,   356,  1346,   351,   766,   353,   352,   450,   767,   310,
1673 <     439,   451,   364,   376,   255,   433,   456,   377,   434,   378,
1674 <     543,   477,   993,   717,   379,   557,   380,   863,   381,   728,
1675 <     829,   830,   831,   832,   833,   382,   383,   311,   312,   384,
1676 <     385,   386,   387,   539,   388,   561,   389,   302,   390,   391,
1677 <     392,   478,  1083,  1084,  1085,  1086,  1087,   479,   393,   435,
1678 <     394,   395,   436,   787,   396,   624,   128,   771,   397,   398,
1679 <     399,   880,   400,   129,   130,   768,   401,   131,   402,   772,
1680 <     403,   544,   404,   303,   132,   304,   305,   405,   406,  1100,
1681 <     407,   409,  1048,   133,   507,   256,   558,   134,   135,   411,
1682 <     412,   413,   769,   524,   136,   452,   414,   415,   137,   138,
1683 <     416,   139,   417,   418,   453,   454,   437,   140,   419,   420,
1684 <     480,   770,   421,   422,   423,   424,   425,   426,   306,   257,
1685 <     307,   308,   427,   428,   438,   141,   142,   500,   429,   559,
1686 <     143,   430,   488,   489,   490,   491,   309,   144,   455,   492,
1687 <     493,   145,   146,   147,   494,   495,   148,   496,   497,   149,
1688 <     150,   498,  1090,   499,   503,   504,   517,   518,   519,   151,
1689 <    1098,  1099,   610,   520,   611,   152,   153,   612,   154,   155,
1690 <     156,   157,   158,   521,   522,   523,   527,   528,   529,   530,
1691 <     310,   771,   531,   159,   532,   533,   613,   614,   535,   536,
1692 <     537,   538,   160,   772,   161,   162,   456,   163,  1328,   560,
1693 <     164,   165,   562,   563,   166,   564,   565,   566,   311,   312,
1694 <     615,   569,   570,   571,   616,   167,   572,   573,   575,   245,
1695 <     750,   751,   752,   753,   754,   755,   756,   576,   577,   578,
1696 <     579,  1329,   580,   641,   642,   645,   647,   168,   646,   169,
1697 <     648,   652,  1330,   170,   617,   654,   618,   171,   172,   173,
1698 <     174,   175,   439,   656,   657,   176,   177,   658,  1331,   619,
1699 <     659,   660,   661,   662,   178,  1332,   663,   664,   665,   666,
1700 <    1333,   667,  1334,   246,   247,   248,   249,   250,   251,   252,
1701 <     253,   620,   669,    76,   670,  1335,   672,   673,   674,   675,
1702 <    1255,  1256,   679,   677,   678,    77,   179,   680,   180,   681,
1703 <     682,   683,  1185,   684,   181,   283,   685,   691,   686,   182,
1704 <       2,     3,   689,   621,   183,     4,    78,    79,  1336,   703,
1705 <    1257,   254,    80,   712,    81,   692,   693,   622,   710,   694,
1706 <     713,   699,     5,   715,  1337,   719,     6,  1258,   700,     7,
1707 <     623,   706,   707,   708,  1259,   284,     8,   709,   742,   735,
1708 <     743,   716,  1338,   744,  1339,  1340,   255,   720,   285,  1200,
1709 <     721,     9,   723,  1260,   745,   724,   746,   581,   725,   726,
1710 <     727,   730,   747,    10,    11,   732,    12,   737,    82,    83,
1711 <     286,  1186,   287,    13,   288,   289,   738,    84,    85,   582,
1712 <     583,  1261,   748,   739,   749,   757,   584,   758,   759,  1262,
1713 <      14,   761,   760,   290,   762,   789,   784,   763,    86,    87,
1714 <      15,   783,    16,  1187,   790,   785,   624,   791,   786,   792,
1715 <     793,   794,  1341,   798,   796,    88,    89,   797,  1188,    17,
1716 <     799,   800,   801,   802,   803,   804,    90,   256,  1201,   805,
1717 <    1342,   807,  1263,   806,   808,    91,    18,   809,  1189,  1190,
1718 <    1343,   810,   811,   813,  1191,  1192,  1193,  1194,   816,   817,
1719 <    1122,  1264,   821,   822,   823,   824,   825,  1195,   882,   826,
1720 <    1202,   257,   827,   585,   586,   587,   828,   850,   588,   883,
1721 <     886,    19,   836,   887,   851,  1203,   589,   837,   838,   839,
1722 <      20,    21,   840,   841,   842,    22,    23,   843,   844,   590,
1723 <     591,  1156,   996,   845,   997,  1204,  1205,   846,   852,   847,
1724 <     848,  1206,  1207,  1208,  1209,   849,   592,   593,  1167,   853,
1725 <     854,   855,   856,   857,  1210,   858,   859,   860,   861,   865,
1726 <    1304,   862,    92,    93,    94,   866,   922,   923,   924,   925,
1727 <     926,   501,   927,   928,   594,   929,   930,   931,   867,   994,
1728 <     932,  1000,   868,   869,  1003,   870,   872,   873,   874,   875,
1729 <     933,   934,   935,   876,   936,   937,   938,  1015,   877,   939,
1730 <     878,   879,   940,   944,   945,   946,   947,   948,   884,   949,
1731 <     950,   885,   951,   952,   953,   888,   992,   954,   889,   890,
1732 <     999,   891,  1002,   892,   893,   894,   895,   955,   956,   957,
1733 <     896,   958,   959,   960,   897,   898,   961,   899,   900,   962,
1734 <    1282,  1283,  1284,  1285,  1286,   901,  1287,  1288,   902,  1289,
1735 <    1290,  1291,   903,   904,  1292,   905,  1004,   906,   907,  1005,
1736 <     908,   909,   910,   911,  1293,  1294,  1295,   912,  1296,  1297,
1737 <    1298,   913,   914,  1299,   915,   916,  1300,   917,   918,   919,
1738 <     920,   921,   943,   965,   966,   967,   968,   969,   970,   971,
1739 <     972,   973,   974,   975,   976,   977,  1006,   978,   979,   980,
1740 <     986,   987,   988,   989,   990,   991,  1008,   998,  1010,   995,
1741 <    1007,  1001,  1009,  1013,  1011,  1012,  1014,  1018,  1019,  1020,
1742 <    1021,  1022,  1023,  1024,  1025,  1026,  1050,  1051,  1027,  1052,
1743 <    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1744 <    1038,  1039,  1076,  1078,  1080,  1040,  1041,  1043,  1044,  1045,
1745 <    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
1746 <    1062,  1063,  1064,  1088,  1065,  1066,  1089,  1067,  1072,  1073,
1747 <    1074,  1075,  1091,  1079,  1092,  1077,  1082,  1081,  1093,  1094,
1748 <    1095,  1096,  1097,  1101,  1102,  1107,  1105,  1106,  1108,  1109,
1749 <    1110,  1111,  1112,  1113,  1117,  1114,  1118,  1115,  1116,  1119,
1750 <    1120,  1121,  1136,  1146,  1137,  1142,  1143,  1144,  1145,  1150,
1751 <    1151,  1152,  1153,  1170,  1154,  1171,  1155,  1159,  1165,  1166,
1752 <    1173,  1174,  1175,  1177,  1232,  1168,  1178,  1172,  1176,  1179,
1753 <    1180,  1181,  1184,  1270,  1275,  1198,   334,  1199,  1213,  1214,
1754 <    1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,   540,  1049,
1755 <    1353,  1352,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
1756 <    1231,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1272,
1757 <    1273,  1274,  1279,  1280,  1281,  1303,   741,  1351,   864,  1324,
1758 <     788,  1271,  1322,  1321,   815,  1347,   820,  1350,  1348,  1323,
1759 <     881,   506,  1349,   644,   366,  1318,   651,   432,   354,  1247,
1760 <    1320,  1246,  1319,     0,     0,     0,     0,     0,   729,     0,
1761 <     525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1762 <       0,     0,     0,     0,     0,     0,     0,   734,   718
1637 >     851,   852,   602,   603,  1096,   605,   606,   607,  1068,   585,
1638 >     478,    70,  1044,   508,  1138,   233,   459,   223,    49,   531,
1639 >      50,   113,   113,  1034,   585,   297,   223,  1035,   290,   509,
1640 >     501,   485,   460,   478,  1036,    71,   290,   850,  1037,    54,
1641 >    1111,   401,    72,   234,  1112,   510,  1113,    56,   461,    60,
1642 >    1114,   235,   501,   532,  1242,    64,  1247,    65,  1243,   391,
1643 >    1248,   119,   459,   236,   237,    67,   120,   121,   238,   239,
1644 >     240,   401,   122,   297,  1244,  1245,  1246,   570,   460,   511,
1645 >     123,   124,   462,  1069,   570,   114,   114,   125,   486,  1251,
1646 >     126,   127,   241,  1252,   461,   487,   128,   488,   533,   661,
1647 >     662,   129,   130,  1044,   131,   132,   133,   669,   134,   502,
1648 >     586,   673,    73,  1045,   512,   224,   678,   135,    68,   681,
1649 >     110,   136,   137,   392,   224,   586,   298,   111,   462,   691,
1650 >     692,   502,   138,  1268,   513,   252,   112,   463,   479,   225,
1651 >     704,   139,   402,   707,   708,   464,   465,   534,   225,   140,
1652 >     514,   141,   118,   142,  1139,   143,   489,   144,   145,   253,
1653 >     696,   479,   220,   697,  1140,   391,   466,   515,   516,   403,
1654 >     146,   221,   402,   222,   298,   147,   148,   149,   571,   150,
1655 >     151,   152,   325,   463,   153,   571,   698,   393,   303,   699,
1656 >    1253,   464,   465,   254,  1254,  1097,   326,   327,   304,   403,
1657 >     328,  -123,   255,   503,  1045,   305,  1046,  1261,   230,  -123,
1658 >     154,  1262,   466,    47,    48,   855,   856,   517,   155,   156,
1659 >     157,   158,   159,   160,   256,   503,   231,   232,   257,   392,
1660 >     587,   531,   289,  1047,   588,   480,   258,   768,   518,   259,
1661 >     260,   467,   307,  1226,   753,   587,   548,   721,   329,   588,
1662 >     759,   161,   291,   399,   581,   808,   583,   499,   480,   579,
1663 >     291,   740,   732,   485,   725,   532,   330,   331,   332,   333,
1664 >    1263,   261,   658,   334,  1264,   162,   163,   335,   164,   165,
1665 >     166,  1265,    79,   336,   167,  1266,   302,   467,   262,   168,
1666 >     652,   263,   457,   393,   337,   338,  1272,  1046,   572,   496,
1667 >    1273,   783,   784,    80,    81,   572,   339,   838,   797,    82,
1668 >     533,   842,  1117,   306,   845,   360,   264,   361,   849,   362,
1669 >     486,  1082,  1083,  1084,  1047,   309,  1299,   487,   340,   488,
1670 >    1300,   363,   550,  1118,   265,   266,   267,   310,   787,   788,
1671 >     311,   312,  1119,   313,    83,    84,   314,   364,   315,   316,
1672 >      85,    86,    70,   317,   318,   319,    87,    88,   320,   534,
1673 >     321,   268,   269,    89,    90,    91,   568,   341,   594,   577,
1674 >     252,   322,   365,  1120,   366,   398,    71,   408,   409,   410,
1675 >     411,   367,   412,    72,   413,   414,   415,   416,   489,    92,
1676 >      93,   368,   417,   418,   253,   419,   420,   421,   595,   422,
1677 >     423,   119,  1121,  1122,   424,   425,   120,   121,   426,   427,
1678 >    1123,   428,   122,   631,   429,   596,   369,   430,   431,   432,
1679 >     123,   124,   433,   434,   850,   436,   438,   125,   254,   439,
1680 >     126,   127,   440,   441,   442,  1124,   128,   255,   443,   444,
1681 >     370,   129,   130,   445,   131,   132,   133,   446,   134,   447,
1682 >     448,  1125,   508,    73,   449,   450,   451,   135,   452,   256,
1683 >     371,   136,   137,   257,   598,   453,   454,   455,   509,   372,
1684 >     456,   258,   138,   497,   259,   260,  1210,   498,   540,   541,
1685 >     542,   139,   543,   544,   510,   545,   546,   547,   551,   140,
1686 >     552,   141,   553,   142,   554,   143,   597,   144,   145,  1058,
1687 >    1059,  1060,  1061,  1062,  1063,  1064,   261,   555,  1150,  1287,
1688 >     146,   556,  1126,   323,   373,   147,   148,   149,   511,   150,
1689 >     151,   152,  1151,   262,   153,   557,   263,   558,   559,   560,
1690 >    1152,   561,   562,   360,   563,   361,   564,   362,  1211,   565,
1691 >    1288,   374,  1289,   566,  1153,   567,   648,   578,   599,   363,
1692 >     154,   264,   582,   512,   600,   601,   604,   608,   155,   156,
1693 >     157,   158,   159,   160,   609,   364,   610,  1212,   611,   265,
1694 >     266,   267,   612,   513,  1213,  1154,   613,  1155,   614,   660,
1695 >     615,  1207,   616,  1214,   617,   654,   633,  1290,   655,   514,
1696 >     365,   161,   366,   619,   620,  1269,   268,   269,   621,   367,
1697 >     622,   623,   624,  1156,  1291,   625,   515,   516,   626,   368,
1698 >    1215,   627,  1216,  1217,   628,   162,   163,   629,   164,   165,
1699 >     166,   630,   634,   635,   167,   636,  1218,   637,   638,   168,
1700 >     639,   641,   642,  1219,   369,   643,  1157,   663,  1158,  1292,
1701 >    1293,   644,   645,   646,   647,   650,   651,     2,     3,   656,
1702 >     657,     4,   664,   665,   325,   666,   517,  1159,   370,   671,
1703 >     667,     5,   668,   904,     6,     7,   672,   670,   326,   327,
1704 >     674,     8,   328,   601,   675,  1160,   676,   518,   371,   677,
1705 >    1161,   679,     9,   680,  1162,    10,    11,   372,   682,  1163,
1706 >     683,   684,  1164,   685,   686,  1294,   688,  1165,   687,  1295,
1707 >     816,   817,   818,   819,   820,   821,   822,   689,   233,   690,
1708 >     693,  1166,   694,    12,  1167,   695,  1168,   700,    13,   701,
1709 >     329,   702,   703,   705,   706,   709,    14,  1169,   928,   710,
1710 >     929,   930,   373,   711,  1170,   734,   234,   712,   330,   331,
1711 >     332,   333,   713,   735,   235,   334,   714,    15,    16,   335,
1712 >     716,   717,   718,   719,   720,   336,   236,   237,   723,   374,
1713 >     724,   238,   239,   240,   728,    17,   337,   338,   727,   729,
1714 >     731,  1178,   736,  1179,  1180,   737,   738,   742,   339,   905,
1715 >     906,   907,    18,   908,   909,   241,   910,   911,   755,   912,
1716 >     739,   913,   764,   743,   914,    19,    20,   915,   916,   917,
1717 >     340,   918,   744,   761,   746,  1229,   919,   747,   748,   749,
1718 >     920,   921,   922,   762,   750,    21,   752,   756,   757,   758,
1719 >     923,   763,   769,   765,   766,   924,   767,   770,    22,   771,
1720 >     772,   773,   774,   775,   793,   776,   777,    23,   778,   341,
1721 >     779,    24,   780,   781,   931,   932,   933,   795,   934,   935,
1722 >     782,   936,   937,   791,   938,   792,   939,   794,   799,   940,
1723 >     800,   801,   941,   942,   943,   802,   944,  1230,   803,   804,
1724 >     805,   945,   810,   807,   811,   946,   947,   948,   836,   812,
1725 >     813,   814,   815,   825,   837,   949,   826,  1181,  1182,  1183,
1726 >     950,  1184,  1185,   827,  1186,  1187,  1231,  1188,   828,  1189,
1727 >     829,   830,  1190,  1232,    79,  1191,  1192,  1193,   831,  1194,
1728 >     839,   832,  1233,   833,  1195,   834,   835,   840,  1196,  1197,
1729 >    1198,   841,   843,   844,   846,    80,    81,   847,  1199,   848,
1730 >     850,    82,   853,  1200,   854,   857,   861,   864,   858,  1234,
1731 >     859,  1235,  1236,   860,   976,   869,   862,   863,   865,   866,
1732 >     867,   868,   872,   870,   871,  1237,   873,   874,   875,   974,
1733 >     876,   877,  1238,   977,   878,   879,    83,    84,   880,   975,
1734 >     881,   882,    85,    86,   883,   884,   885,   886,    87,    88,
1735 >     887,   888,   889,   890,   891,    89,    90,    91,   892,   893,
1736 >     894,   895,   896,   897,   898,   899,   900,   978,   901,   902,
1737 >     903,   927,   953,   979,   954,   955,   956,   957,   958,   959,
1738 >     960,    92,    93,   961,   962,   963,   964,   965,   966,   967,
1739 >     968,   969,   970,   971,   972,   973,   980,   981,   983,   982,
1740 >     985,   984,   986,   987,   988,   989,   995,   992,   996,   998,
1741 >    1001,  1002,  1003,   993,  1004,   994,  1007,   999,  1005,  1009,
1742 >     569,  1010,  1011,  1040,  1054,  1056,  1208,   741,   308,   997,
1743 >    1301,  1227,  1282,  1000,   500,  1277,  1281,   754,  1008,  1006,
1744 >    1012,  1013,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,
1745 >    1022,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,  1031,
1746 >    1032,  1033,  1038,  1039,  1255,  1042,  1043,  1041,  1053,  1057,
1747 >    1055,  1065,  1066,  1067,  1072,  1073,  1074,  1267,  1075,  1076,
1748 >    1077,  1078,  1079,  1080,  1081,  1087,  1278,  1088,  1089,  1090,
1749 >    1091,  1092,  1093,  1094,  1095,  1100,  1101,  1102,  1103,  1104,
1750 >    1279,  1280,  1274,  1105,  1256,  1276,   733,   632,  1106,  1107,
1751 >     722,  1108,  1298,  1283,   809,   798,   760,  1109,  1275,  1110,
1752 >     653,  1115,  1116,   400,   726,   458,   649,  1250,   659,  1143,
1753 >    1129,  1130,  1131,  1132,  1133,  1134,  1135,  1136,  1137,  1249,
1754 >     324,  1146,  1147,  1148,  1144,  1149,  1173,  1174,  1175,  1176,
1755 >    1177,  1203,  1204,  1205,  1206,  1209,  1222,     0,     0,  1228,
1756 >    1223,  1224,  1241,  1257,     0,  1258,  1259,  1271,  1270,  1260,
1757 >    1284,  1285,  1286,     0,     0,     0,     0,     0,     0,   549,
1758 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1759 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1760 >       0,     0,     0,     0,     0,   580,     0,     0,     0,     0,
1761 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1762 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1763 >       0,     0,     0,     0,   584
1764   };
1765  
1766   static const yytype_int16 yycheck[] =
1767   {
1768 <     340,   341,   425,     1,   260,   261,     1,   347,    11,    11,
1769 <      10,     1,    12,    76,   262,     1,   260,   262,     8,     9,
1770 <     264,     1,    12,     1,   260,     1,   153,    27,   264,    19,
1771 <       1,    31,     1,   981,   982,   983,   260,   377,    28,   379,
1772 <     264,   260,    32,    33,   260,   264,    22,   260,   264,    39,
1773 <     262,   264,   392,    43,    44,   395,    46,   262,     1,    37,
1774 <     400,     1,    52,    14,    15,    16,   197,   198,    37,    47,
1775 <       1,   411,   412,   262,   414,     1,     1,     1,    47,   262,
1776 <      70,    71,    53,   423,   424,    75,   426,   197,   198,   169,
1777 <     170,    89,    82,     1,    89,     1,    86,    87,    88,   216,
1778 <     217,    91,   260,     1,    94,    95,   264,    13,   262,    89,
1779 <     262,   260,    83,     1,   104,   264,     4,     1,    89,     1,
1780 <     110,   111,   153,   113,   114,   115,   116,   117,    34,    35,
1781 <     262,   260,   118,     1,    40,   264,    42,   262,   128,    23,
1782 <      24,     1,   120,   262,    26,   153,    30,   137,   124,   139,
1783 <     140,   120,   142,     1,   260,   145,   146,    45,   264,   149,
1784 <      48,     1,   148,     3,   262,    89,     6,    49,   231,    37,
1785 <     160,    53,   235,   262,    22,   155,   262,   120,   118,   155,
1786 <     131,   152,     1,   523,     1,    25,    26,   262,   262,   120,
1787 <      96,    97,   182,     1,   184,   120,   199,   199,   188,   105,
1788 <     106,   262,   192,   193,   194,   195,   196,    26,   148,    49,
1789 <     200,   201,   155,    53,   102,   260,    84,   263,   262,   209,
1790 <     126,   127,   120,   107,   108,   109,   263,     1,   112,   155,
1791 <      49,   155,   120,    41,    53,   260,   120,   143,   144,   264,
1792 <     263,   263,   242,    83,   187,    85,    54,   155,   154,   133,
1793 <     134,   241,   120,   243,   122,   123,   187,   163,    98,   249,
1794 <     120,   187,   187,   261,   254,   147,   150,   151,    76,   259,
1795 <      78,   261,    80,    81,   156,   157,   124,   260,   263,   187,
1796 <     120,    55,    56,    57,    58,    59,    60,    61,    62,   187,
1797 <     261,    99,   261,   263,   178,   155,   263,   165,   260,   167,
1798 <     168,   120,   264,   120,   263,   263,     1,   155,   190,     1,
1799 <     263,   263,   152,   263,     1,   183,   260,   248,   261,     1,
1800 <     264,   261,   248,   260,   263,   263,   166,   187,   147,   103,
1801 <     261,    26,   260,   263,    26,   261,   261,   261,   131,   179,
1802 <     248,   263,   263,   263,   250,   251,   252,   166,   260,   263,
1803 <      37,   262,   264,   263,    49,   261,   263,    49,    53,   227,
1804 <     248,    53,   263,   263,   138,     1,   248,   263,     4,   263,
1805 <     187,    53,   712,   261,   263,   153,   263,   261,   263,   261,
1806 <     173,   174,   175,   176,   177,   263,   263,   255,   256,   263,
1807 <     263,   263,   263,   261,   263,   197,   263,    84,   263,   263,
1808 <     263,    83,   829,   830,   831,   832,   833,    89,   263,    45,
1809 <     263,   263,    48,   261,   263,   255,     1,   236,   263,   263,
1810 <     263,   261,   263,     8,     9,   120,   263,    12,   263,   248,
1811 <     263,   248,   263,   120,    19,   122,   123,   263,   263,   862,
1812 <     263,   263,   261,    28,   262,   219,   153,    32,    33,   263,
1813 <     263,   263,   147,   261,    39,   147,   263,   263,    43,    44,
1814 <     263,    46,   263,   263,   156,   157,   102,    52,   263,   263,
1815 <     152,   166,   263,   263,   263,   263,   263,   263,   165,   253,
1816 <     167,   168,   263,   263,   120,    70,    71,   261,   263,   153,
1817 <      75,   263,   263,   263,   263,   263,   183,    82,   190,   263,
1818 <     263,    86,    87,    88,   263,   263,    91,   263,   263,    94,
1819 <      95,   263,   852,   263,   263,   263,   263,   263,   263,   104,
1820 <     860,   861,     1,   263,     3,   110,   111,     6,   113,   114,
1821 <     115,   116,   117,   263,   263,   263,   263,   263,   263,   263,
1822 <     227,   236,   263,   128,   263,   263,    25,    26,   263,   263,
1823 <     263,   263,   137,   248,   139,   140,   248,   142,     5,   260,
1824 <     145,   146,   131,   131,   149,   197,   197,   131,   255,   256,
1825 <      49,   131,   131,   197,    53,   160,   197,   131,   197,     1,
1826 <     220,   221,   222,   223,   224,   225,   226,   197,   197,   197,
1827 <     197,    38,   260,   263,   263,   153,   263,   182,   260,   184,
1828 <     263,   197,    49,   188,    83,   197,    85,   192,   193,   194,
1829 <     195,   196,   248,   131,   153,   200,   201,   131,    65,    98,
1830 <     197,   197,   131,   153,   209,    72,   197,   131,   131,   131,
1831 <      77,   197,    79,    55,    56,    57,    58,    59,    60,    61,
1832 <      62,   120,   197,     1,   197,    92,   153,   197,   131,   131,
1833 <      20,    21,   153,   131,   131,    13,   241,   131,   243,   131,
1834 <     197,   197,    92,   263,   249,     1,   197,   153,   263,   254,
1835 <       0,     1,   197,   152,   259,     5,    34,    35,   125,   131,
1836 <      50,   103,    40,   263,    42,   197,   197,   166,   260,   197,
1837 <     263,   197,    22,   263,   141,   260,    26,    67,   197,    29,
1838 <     179,   197,   197,   197,    74,    41,    36,   197,   153,   260,
1839 <     153,   263,   159,   153,   161,   162,   138,   263,    54,    92,
1840 <     263,    51,   263,    93,   153,   263,   153,     1,   263,   263,
1841 <     263,   263,   153,    63,    64,   263,    66,   263,    96,    97,
1842 <      76,   171,    78,    73,    80,    81,   263,   105,   106,    23,
1843 <      24,   121,   153,   263,   153,   153,    30,   153,   197,   129,
1844 <      90,   153,   260,    99,   153,   197,   263,   260,   126,   127,
1845 <     100,   260,   102,   203,   197,   263,   255,   197,   263,   153,
1846 <     197,   197,   229,   197,   260,   143,   144,   153,   218,   119,
1847 <     153,   153,   153,   153,   153,   263,   154,   219,   171,   153,
1848 <     247,   153,   172,   131,   153,   163,   136,   260,   238,   239,
1849 <     257,   260,   263,   263,   244,   245,   246,   247,   260,   263,
1850 <     158,   191,   260,   260,   260,   260,   260,   257,   153,   260,
1851 <     203,   253,   260,   107,   108,   109,   260,   263,   112,   153,
1852 <     153,   171,   260,   153,   263,   218,   120,   260,   260,   260,
1853 <     180,   181,   260,   260,   260,   185,   186,   260,   260,   133,
1854 <     134,   158,   153,   260,   153,   238,   239,   260,   263,   260,
1855 <     260,   244,   245,   246,   247,   260,   150,   151,   202,   263,
1856 <     263,   263,   263,   263,   257,   263,   263,   263,   263,   260,
1857 <    1183,   263,   250,   251,   252,   263,   204,   205,   206,   207,
1858 <     208,   258,   210,   211,   178,   213,   214,   215,   263,   197,
1859 <     218,   197,   263,   263,   131,   263,   263,   263,   263,   263,
1860 <     228,   229,   230,   263,   232,   233,   234,   131,   263,   237,
1861 <     263,   263,   240,   204,   205,   206,   207,   208,   260,   210,
1862 <     211,   260,   213,   214,   215,   263,   263,   218,   260,   260,
1863 <     153,   260,   153,   260,   260,   260,   260,   228,   229,   230,
1864 <     260,   232,   233,   234,   260,   260,   237,   260,   260,   240,
1865 <     204,   205,   206,   207,   208,   260,   210,   211,   260,   213,
1866 <     214,   215,   260,   260,   218,   260,   153,   260,   260,   153,
1867 <     260,   260,   260,   260,   228,   229,   230,   260,   232,   233,
1868 <     234,   260,   260,   237,   260,   260,   240,   260,   260,   260,
1869 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1870 <     260,   260,   260,   260,   260,   260,   153,   260,   260,   260,
1871 <     260,   260,   260,   260,   260,   260,   153,   260,   153,   263,
1872 <     260,   263,   263,   153,   260,   263,   153,   260,   260,   260,
1873 <     260,   260,   260,   260,   260,   260,   153,   153,   260,   153,
1874 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1875 <     260,   260,   153,   153,   153,   263,   263,   263,   263,   263,
1876 <     263,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1877 <     260,   260,   260,   131,   260,   260,   131,   260,   260,   260,
1878 <     260,   260,   131,   260,   131,   263,   260,   263,   131,   131,
1879 <     153,   131,   131,   260,   153,   197,   153,   153,   263,   153,
1880 <     153,   153,   153,   131,   260,   153,   260,   153,   153,   260,
1881 <     260,   260,   260,   130,   260,   260,   260,   260,   260,   260,
1882 <     260,   260,   260,   153,   260,   197,   260,   260,   260,   260,
1883 <     153,   153,   153,   153,   130,   264,   260,   263,   263,   260,
1884 <     260,   260,   260,   131,   130,   260,    71,   260,   260,   260,
1885 <     260,   260,   260,   260,   260,   260,   260,   260,   313,   773,
1886 <    1346,  1327,   260,   260,   260,   260,   260,   260,   260,   260,
1887 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1888 <     260,   260,   260,   260,   260,   260,   482,  1325,   595,  1269,
1889 <     512,  1168,  1254,  1252,   545,  1306,   553,  1311,  1308,  1267,
1890 <     625,   275,  1309,   360,   124,  1245,   372,   184,    95,  1128,
1891 <    1251,  1126,  1249,    -1,    -1,    -1,    -1,    -1,   457,    -1,
1892 <     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1893 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   440
1768 >     629,   630,   312,   313,     8,   315,   316,   317,    53,     1,
1769 >       1,     1,     1,     1,    49,     1,     1,     1,   233,     1,
1770 >     233,     1,     1,   231,     1,     1,     1,   235,     1,    17,
1771 >       1,     1,    17,     1,   231,    25,     1,   112,   235,   233,
1772 >     231,     1,    32,    29,   235,    33,   231,   233,    33,   233,
1773 >     235,    37,     1,    35,   231,   233,   231,   233,   235,     1,
1774 >     235,     1,     1,    49,    50,   233,     6,     7,    54,    55,
1775 >      56,     1,    12,     1,  1082,  1083,  1084,     1,    17,    67,
1776 >      20,    21,    67,   128,     1,    65,    65,    27,    58,   231,
1777 >      30,    31,    78,   235,    33,    65,    36,    67,    80,   409,
1778 >     410,    41,    42,     1,    44,    45,    46,   417,    48,    80,
1779 >     102,   421,   102,   102,   102,    99,   426,    57,   233,   429,
1780 >     233,    61,    62,    65,    99,   102,   102,   233,    67,   439,
1781 >     440,    80,    72,   208,   122,     1,   233,   122,   129,   123,
1782 >     450,    81,   102,   453,   454,   130,   131,   129,   123,    89,
1783 >     138,    91,   233,    93,   189,    95,   126,    97,    98,    25,
1784 >     214,   129,   233,   217,   199,     1,   151,   155,   156,   129,
1785 >     110,   233,   102,   233,   102,   115,   116,   117,   102,   119,
1786 >     120,   121,     1,   122,   124,   102,   214,   129,   231,   217,
1787 >     231,   130,   131,    59,   235,   199,    15,    16,   234,   129,
1788 >      19,   174,    68,   174,   102,   234,   195,   231,   233,   174,
1789 >     150,   235,   151,   231,   232,   178,   179,   205,   158,   159,
1790 >     160,   161,   162,   163,    90,   174,   233,   233,    94,    65,
1791 >     222,     1,   233,   222,   226,   226,   102,   547,   226,   105,
1792 >     106,   226,   232,   232,   232,   222,   232,   232,    67,   226,
1793 >     232,   191,   225,   232,   174,   232,   232,   232,   226,   232,
1794 >     225,   232,   232,     1,   232,    35,    85,    86,    87,    88,
1795 >     231,   137,   232,    92,   235,   215,   216,    96,   218,   219,
1796 >     220,   231,     1,   102,   224,   235,   233,   226,   154,   229,
1797 >     232,   157,   232,   129,   113,   114,   231,   195,   222,   231,
1798 >     235,   203,   204,    22,    23,   222,   125,   617,   232,    28,
1799 >      80,   621,    13,   234,   624,     1,   182,     3,   628,     5,
1800 >      58,     9,    10,    11,   222,   234,   231,    65,   147,    67,
1801 >     235,    17,   231,    34,   200,   201,   202,   234,   203,   204,
1802 >     234,   234,    43,   234,    63,    64,   234,    33,   234,   234,
1803 >      69,    70,     1,   234,   234,   234,    75,    76,   234,   129,
1804 >     234,   227,   228,    82,    83,    84,   232,   186,   127,   231,
1805 >       1,   234,    58,    74,    60,   234,    25,   234,   234,   234,
1806 >     234,    67,   234,    32,   234,   234,   234,   234,   126,   108,
1807 >     109,    77,   234,   234,    25,   234,   234,   234,   127,   234,
1808 >     234,     1,   103,   104,   234,   234,     6,     7,   234,   234,
1809 >     111,   234,    12,   232,   234,   127,   102,   234,   234,   234,
1810 >      20,    21,   234,   234,   112,   234,   234,    27,    59,   234,
1811 >      30,    31,   234,   234,   234,   136,    36,    68,   234,   234,
1812 >     126,    41,    42,   234,    44,    45,    46,   234,    48,   234,
1813 >     234,   152,     1,   102,   234,   234,   234,    57,   234,    90,
1814 >     146,    61,    62,    94,   112,   234,   234,   234,    17,   155,
1815 >     234,   102,    72,   234,   105,   106,    73,   234,   234,   234,
1816 >     234,    81,   234,   234,    33,   234,   234,   234,   234,    89,
1817 >     234,    91,   234,    93,   234,    95,   231,    97,    98,   816,
1818 >     817,   818,   819,   820,   821,   822,   137,   234,     4,    40,
1819 >     110,   234,   213,   232,   200,   115,   116,   117,    67,   119,
1820 >     120,   121,    18,   154,   124,   234,   157,   234,   234,   234,
1821 >      26,   234,   234,     1,   234,     3,   234,     5,   135,   234,
1822 >      71,   227,    73,   234,    40,   234,   232,   234,   112,    17,
1823 >     150,   182,   234,   102,   214,   112,   112,   112,   158,   159,
1824 >     160,   161,   162,   163,   112,    33,   112,   164,   214,   200,
1825 >     201,   202,   214,   122,   171,    71,   231,    73,   231,   214,
1826 >     234,  1035,   234,   180,   234,   127,   231,   118,   231,   138,
1827 >      58,   191,    60,   234,   234,  1224,   227,   228,   234,    67,
1828 >     234,   234,   234,    99,   135,   234,   155,   156,   234,    77,
1829 >     207,   234,   209,   210,   234,   215,   216,   234,   218,   219,
1830 >     220,   234,   234,   234,   224,   234,   223,   234,   234,   229,
1831 >     234,   234,   234,   230,   102,   234,   132,   214,   134,   170,
1832 >     171,   234,   234,   234,   234,   234,   234,     0,     1,   234,
1833 >     234,     4,   112,   214,     1,   112,   205,   153,   126,   112,
1834 >     127,    14,   214,    49,    17,    18,   112,   214,    15,    16,
1835 >     112,    24,    19,   112,   214,   171,   214,   226,   146,   214,
1836 >     176,   112,    35,   112,   180,    38,    39,   155,   112,   185,
1837 >     112,   112,   188,   112,   214,   226,   214,   193,   234,   230,
1838 >     139,   140,   141,   142,   143,   144,   145,   234,     1,   214,
1839 >     214,   207,   214,    66,   210,   214,   212,   214,    71,   214,
1840 >      67,   214,   127,   214,   214,   214,    79,   223,    49,   214,
1841 >      51,    52,   200,   231,   230,   127,    29,   231,    85,    86,
1842 >      87,    88,   234,   127,    37,    92,   234,   100,   101,    96,
1843 >     234,   234,   234,   234,   234,   102,    49,    50,   234,   227,
1844 >     234,    54,    55,    56,   234,   118,   113,   114,   231,   234,
1845 >     234,    49,   231,    51,    52,   231,   234,   231,   125,   165,
1846 >     166,   167,   135,   169,   170,    78,   172,   173,   231,   175,
1847 >     234,   177,   127,   234,   180,   148,   149,   183,   184,   185,
1848 >     147,   187,   234,   214,   234,    73,   192,   234,   234,   234,
1849 >     196,   197,   198,   214,   234,   168,   234,   234,   234,   234,
1850 >     206,   214,   231,   214,   214,   211,   214,   127,   181,   214,
1851 >     127,   112,   112,   127,   231,   127,   127,   190,   127,   186,
1852 >     127,   194,   127,   112,   165,   166,   167,   234,   169,   170,
1853 >     127,   172,   173,   127,   175,   127,   177,   231,   214,   180,
1854 >     231,   233,   183,   184,   185,   127,   187,   135,   231,   231,
1855 >     234,   192,   231,   234,   231,   196,   197,   198,   112,   231,
1856 >     231,   231,   231,   231,   112,   206,   231,   165,   166,   167,
1857 >     211,   169,   170,   231,   172,   173,   164,   175,   231,   177,
1858 >     231,   231,   180,   171,     1,   183,   184,   185,   231,   187,
1859 >     234,   231,   180,   231,   192,   231,   231,   112,   196,   197,
1860 >     198,   112,   112,   112,   127,    22,    23,   112,   206,   112,
1861 >     112,    28,   231,   211,   127,   127,   234,   112,   214,   207,
1862 >     127,   209,   210,   127,   234,   231,   127,   127,   127,   127,
1863 >     127,   127,   231,   127,   127,   223,   231,   127,   127,   127,
1864 >     231,   231,   230,   127,   231,   231,    63,    64,   231,   214,
1865 >     231,   231,    69,    70,   231,   231,   231,   231,    75,    76,
1866 >     231,   231,   231,   231,   231,    82,    83,    84,   231,   231,
1867 >     231,   231,   231,   231,   231,   231,   231,   112,   231,   231,
1868 >     231,   231,   231,   127,   231,   231,   231,   231,   231,   231,
1869 >     231,   108,   109,   231,   231,   231,   231,   231,   231,   231,
1870 >     231,   231,   231,   231,   231,   231,   127,   127,   127,   231,
1871 >     231,   127,   127,   127,   234,   112,   127,   231,   127,   127,
1872 >     127,   127,   127,   231,   127,   231,   127,   214,   214,   127,
1873 >     270,   127,   127,   127,   127,   127,  1037,   504,    74,   231,
1874 >    1300,  1048,  1264,   234,   226,  1254,  1262,   519,   231,   234,
1875 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1876 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1877 >     231,   231,   231,   231,   112,   231,   231,   234,   231,   231,
1878 >     234,   231,   231,   231,   231,   231,   231,   127,   231,   231,
1879 >     231,   231,   231,   231,   231,   231,   133,   231,   231,   231,
1880 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1881 >     133,   133,  1243,   231,  1144,  1252,   491,   342,   231,   231,
1882 >     468,   231,  1273,  1266,   589,   573,   535,   231,  1248,   231,
1883 >     394,   231,   231,   115,   481,   169,   375,  1114,   404,   221,
1884 >     231,   231,   231,   231,   231,   231,   231,   231,   231,  1112,
1885 >      94,   231,   231,   231,   235,   231,   231,   231,   231,   231,
1886 >     231,   231,   231,   231,   231,   231,   231,    -1,    -1,   231,
1887 >     234,   234,   231,   231,    -1,   236,   236,   231,   234,   236,
1888 >     231,   231,   231,    -1,    -1,    -1,    -1,    -1,    -1,   242,
1889 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1890 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1891 >      -1,    -1,    -1,    -1,    -1,   292,    -1,    -1,    -1,    -1,
1892 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1893 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1894 >      -1,    -1,    -1,    -1,   299
1895   };
1896  
1897 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1898 <   symbol of state STATE-NUM.  */
1897 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1898 >     symbol of state STATE-NUM.  */
1899   static const yytype_uint16 yystos[] =
1900   {
1901 <       0,   266,     0,     1,     5,    22,    26,    29,    36,    51,
1902 <      63,    64,    66,    73,    90,   100,   102,   119,   136,   171,
1903 <     180,   181,   185,   186,   267,   272,   277,   295,   301,   316,
1904 <     339,   358,   372,   390,   397,   407,   416,   442,   452,   458,
1905 <     462,   472,   536,   552,   573,   260,   261,   262,   262,   340,
1906 <     417,   453,   262,   463,   262,   537,   373,   443,   359,   262,
1907 <     262,   317,   391,   262,   262,   398,   408,     1,    37,    47,
1908 <     120,   296,   297,   298,   299,   300,     1,    13,    34,    35,
1909 <      40,    42,    96,    97,   105,   106,   126,   127,   143,   144,
1910 <     154,   163,   250,   251,   252,   553,   554,   555,   556,   557,
2392 <     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
2393 <     568,   569,   570,   571,   572,   153,   341,   345,   153,   418,
2394 <     422,   262,     1,    89,   459,   460,   461,   262,     1,     8,
2395 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    46,
2396 <      52,    70,    71,    75,    82,    86,    87,    88,    91,    94,
2397 <      95,   104,   110,   111,   113,   114,   115,   116,   117,   128,
2398 <     137,   139,   140,   142,   145,   146,   149,   160,   182,   184,
2399 <     188,   192,   193,   194,   195,   196,   200,   201,   209,   241,
2400 <     243,   249,   254,   259,   473,   474,   475,   476,   477,   478,
2401 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2402 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
2403 <     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
1901 >       0,   238,     0,     1,     4,    14,    17,    18,    24,    35,
1902 >      38,    39,    66,    71,    79,   100,   101,   118,   135,   148,
1903 >     149,   168,   181,   190,   194,   239,   244,   249,   273,   279,
1904 >     285,   299,   319,   342,   356,   371,   378,   382,   392,   401,
1905 >     422,   428,   434,   438,   444,   502,   519,   231,   232,   233,
1906 >     233,   320,   402,   429,   233,   439,   233,   357,   423,   343,
1907 >     233,   280,   300,   372,   233,   233,   393,   233,   233,   383,
1908 >       1,    25,    32,   102,   274,   275,   276,   277,   278,     1,
1909 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    82,
1910 >      83,    84,   108,   109,   503,   504,   505,   506,   507,   508,
1911       509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
1912 <     519,   520,   521,   522,   523,   524,   528,   532,   533,   534,
1913 <     535,   262,   262,   262,   262,     1,    55,    56,    57,    58,
1914 <      59,    60,    61,    62,   103,   138,   219,   253,   302,   303,
1915 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1916 <     314,   315,     1,   118,   148,   273,   274,   275,   276,   153,
1917 <     318,   322,   262,     1,    41,    54,    76,    78,    80,    81,
1918 <      99,   574,   575,   576,   577,   578,   579,   580,   581,   582,
1919 <       1,    37,    84,   120,   122,   123,   165,   167,   168,   183,
1920 <     227,   255,   256,   278,   279,   280,   284,   285,   286,   287,
1921 <     288,   289,   290,   291,   292,   293,   294,   262,   262,   260,
1922 <     263,   263,   263,   261,   297,   263,   263,   263,   263,   263,
1923 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1924 <     263,   263,   263,   261,   554,   262,   262,     1,    89,   155,
1925 <     454,   455,   456,   457,   263,   261,   460,     1,   120,   155,
1926 <     187,   464,   468,   469,   470,   471,   263,   263,   263,   263,
1927 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1928 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1929 <     263,   263,   263,   263,   263,   263,   263,   263,   529,   263,
1930 <     525,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1931 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1932 <     263,   261,   474,     1,     4,    45,    48,   102,   120,   248,
1933 <     538,   539,   540,   541,   542,   546,   547,   548,     1,    26,
1934 <      49,    53,   147,   156,   157,   190,   248,   374,   375,   376,
1935 <     377,   378,   379,   380,   387,   388,   389,     1,   155,   187,
1936 <     248,   444,   448,   449,   450,   451,     1,    53,    83,    89,
1937 <     152,   360,   364,   365,   366,   370,   371,   260,   263,   263,
1938 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1939 <     261,   303,   260,   263,   263,   261,   274,   262,     1,    22,
1940 <     124,   155,   392,   393,   394,   395,   396,   263,   263,   263,
1941 <     263,   263,   263,   263,   261,   575,   260,   263,   263,   263,
1942 <     263,   263,   263,   263,   281,   263,   263,   263,   263,   261,
1943 <     279,     1,   120,   187,   248,   399,   400,   401,   402,   403,
1944 <       1,   120,   187,   409,   410,   411,   412,   153,   153,   153,
1945 <     260,   197,   131,   131,   197,   197,   131,   269,   269,   131,
1946 <     131,   197,   197,   131,   269,   197,   197,   197,   197,   197,
1947 <     260,     1,    23,    24,    30,   107,   108,   109,   112,   120,
1948 <     133,   134,   150,   151,   178,   342,   343,   344,   346,   347,
1949 <     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1950 <       1,     3,     6,    25,    26,    49,    53,    83,    85,    98,
1951 <     120,   152,   166,   179,   255,   419,   420,   421,   423,   424,
1952 <     425,   426,   427,   428,   429,   436,   437,   438,   439,   440,
1953 <     441,   263,   263,   261,   455,   153,   260,   263,   263,   465,
1954 <     261,   469,   197,   269,   197,   269,   131,   153,   131,   197,
1955 <     197,   131,   153,   197,   131,   131,   131,   197,   269,   197,
1956 <     197,   269,   153,   197,   131,   131,   269,   131,   131,   153,
1957 <     131,   131,   197,   197,   263,   197,   263,   269,   269,   197,
1958 <     269,   153,   197,   197,   197,   197,   198,   197,   198,   197,
1959 <     197,   269,   269,   131,   271,   269,   197,   197,   197,   197,
1960 <     260,   549,   263,   263,   543,   263,   263,   261,   539,   260,
1961 <     263,   263,   381,   263,   263,   263,   263,   263,   261,   375,
1962 <     263,   445,   263,   261,   449,   260,   361,   263,   263,   263,
1963 <     261,   365,   153,   153,   153,   153,   153,   153,   153,   153,
1964 <     220,   221,   222,   223,   224,   225,   226,   153,   153,   197,
1965 <     260,   153,   153,   260,     1,    26,    49,    53,   120,   147,
1966 <     166,   236,   248,   319,   320,   321,   323,   324,   325,   326,
1967 <     327,   328,   332,   260,   263,   263,   263,   261,   393,   197,
1968 <     197,   197,   153,   197,   197,   269,   260,   153,   197,   153,
1969 <     153,   153,   153,   153,   263,   153,   131,   153,   153,   260,
1970 <     260,   263,   404,   263,   261,   400,   260,   263,   413,   261,
1971 <     410,   260,   260,   260,   260,   260,   260,   260,   260,   173,
1972 <     174,   175,   176,   177,   268,   269,   260,   260,   260,   260,
1973 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1974 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1975 <     263,   263,   263,   261,   343,   260,   263,   263,   263,   263,
1976 <     263,   430,   263,   263,   263,   263,   263,   263,   263,   263,
1977 <     261,   420,   153,   153,   260,   260,   153,   153,   263,   260,
1978 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1979 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1980 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1981 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
1982 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
1983 <     240,   530,   531,   260,   204,   205,   206,   207,   208,   210,
1984 <     211,   213,   214,   215,   218,   228,   229,   230,   232,   233,
1985 <     234,   237,   240,   526,   527,   260,   260,   260,   260,   260,
1986 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1987 <     260,    14,    15,    16,   270,   271,   260,   260,   260,   260,
1988 <     260,   260,   263,   269,   197,   263,   153,   153,   260,   153,
1989 <     197,   263,   153,   131,   153,   153,   153,   260,   153,   263,
1990 <     153,   260,   263,   153,   153,   131,   368,   369,   260,   260,
1991 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1992 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1993 <     263,   263,   333,   263,   263,   263,   329,   263,   261,   320,
1994 <     153,   153,   153,   260,   260,   260,   260,   260,   260,   260,
1995 <     260,   260,   260,   260,   260,   260,   260,   260,   169,   170,
1996 <     282,   283,   260,   260,   260,   260,   153,   263,   153,   260,
1997 <     153,   263,   260,   268,   268,   268,   268,   268,   131,   131,
1998 <     269,   131,   131,   131,   131,   153,   131,   131,   269,   269,
1999 <     271,   260,   153,   216,   217,   153,   153,   197,   263,   153,
2000 <     153,   153,   153,   131,   153,   153,   153,   260,   260,   260,
2001 <     260,   260,   158,   466,   467,   260,   264,   260,   264,   270,
2002 <     270,   270,    11,   199,   550,   551,   260,   260,    11,   199,
2003 <     544,   545,   260,   260,   260,   260,   130,   382,   383,   385,
2004 <     260,   260,   260,   260,   260,   260,   158,   446,   447,   260,
2005 <      76,   231,   235,   362,   363,   260,   260,   202,   264,   367,
2006 <     153,   197,   263,   153,   153,   153,   263,   153,   260,   260,
2007 <     260,   260,   260,   264,   260,    92,   171,   203,   218,   238,
2008 <     239,   244,   245,   246,   247,   257,   405,   406,   260,   260,
2009 <      92,   171,   203,   218,   238,   239,   244,   245,   246,   247,
2010 <     257,   414,   415,   260,   260,   260,   260,   260,   260,   260,
2011 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2012 <     260,   260,   130,   431,   432,   434,   260,   260,   260,   260,
2013 <     260,   260,   260,   260,   260,   264,   531,   527,   260,   264,
2014 <     260,   264,   384,   260,   264,    20,    21,    50,    67,    74,
2015 <      93,   121,   129,   172,   191,   386,   260,   264,   260,   264,
2016 <     131,   369,   260,   260,   260,   130,   334,   335,   337,   260,
2017 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2018 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2019 <     240,   330,   331,   260,   283,   260,   264,   260,   264,   433,
2020 <     260,   264,    10,    12,    27,    31,   242,   435,   467,   551,
2021 <     545,   386,   383,   447,   363,   336,   260,   264,     5,    38,
2022 <      49,    65,    72,    77,    79,    92,   125,   141,   159,   161,
2023 <     162,   229,   247,   257,   338,   260,   264,   406,   415,   435,
2024 <     432,   338,   335,   331
1912 >     233,   233,   233,     1,    65,   435,   436,   437,   233,     1,
1913 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1914 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    81,
1915 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1916 >     119,   120,   121,   124,   150,   158,   159,   160,   161,   162,
1917 >     163,   191,   215,   216,   218,   219,   220,   224,   229,   445,
1918 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1919 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1920 >     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1921 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1922 >     486,   487,   488,   489,   490,   491,   495,   499,   500,   501,
1923 >     233,   233,   233,     1,    99,   123,   245,   246,   247,   248,
1924 >     233,   233,   233,     1,    29,    37,    49,    50,    54,    55,
1925 >      56,    78,   520,   521,   522,   523,   524,   525,   526,   527,
1926 >     528,   529,     1,    25,    59,    68,    90,    94,   102,   105,
1927 >     106,   137,   154,   157,   182,   200,   201,   202,   227,   228,
1928 >     250,   251,   252,   253,   258,   259,   260,   261,   262,   263,
1929 >     264,   265,   266,   267,   268,   269,   270,   271,   272,   233,
1930 >       1,   225,   286,   287,   288,   289,   290,     1,   102,   379,
1931 >     380,   381,   233,   231,   234,   234,   234,   232,   275,   234,
1932 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1933 >     234,   234,   234,   232,   504,     1,    15,    16,    19,    67,
1934 >      85,    86,    87,    88,    92,    96,   102,   113,   114,   125,
1935 >     147,   186,   321,   322,   323,   324,   325,   326,   327,   328,
1936 >     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1937 >       1,     3,     5,    17,    33,    58,    60,    67,    77,   102,
1938 >     126,   146,   155,   200,   227,   403,   404,   405,   406,   407,
1939 >     408,   409,   410,   411,   412,   413,   417,   418,   419,   420,
1940 >     421,     1,    65,   129,   430,   431,   432,   433,   234,   232,
1941 >     436,     1,   102,   129,   440,   441,   442,   443,   234,   234,
1942 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1943 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1944 >     234,   234,   234,   234,   234,   496,   234,   492,   234,   234,
1945 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1946 >     234,   234,   234,   234,   234,   234,   234,   232,   446,     1,
1947 >      17,    33,    67,   122,   130,   131,   151,   226,   358,   359,
1948 >     360,   361,   362,   363,   364,   368,   369,   370,     1,   129,
1949 >     226,   424,   425,   426,   427,     1,    58,    65,    67,   126,
1950 >     344,   348,   349,   350,   354,   355,   231,   234,   234,   232,
1951 >     246,     1,    80,   174,   281,   282,   283,   284,     1,    17,
1952 >      33,    67,   102,   122,   138,   155,   156,   205,   226,   301,
1953 >     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1954 >     315,     1,    35,    80,   129,   373,   374,   375,   376,   377,
1955 >     234,   234,   234,   234,   234,   234,   234,   234,   232,   521,
1956 >     231,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1957 >     234,   234,   234,   234,   234,   234,   234,   234,   232,   251,
1958 >       1,   102,   222,   394,   395,   396,   397,   231,   234,   232,
1959 >     287,   174,   234,   232,   380,     1,   102,   222,   226,   384,
1960 >     385,   386,   387,   388,   127,   127,   127,   231,   112,   112,
1961 >     214,   112,   241,   241,   112,   241,   241,   241,   112,   112,
1962 >     112,   214,   214,   231,   231,   234,   234,   234,   339,   234,
1963 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1964 >     234,   232,   322,   231,   234,   234,   234,   234,   234,   234,
1965 >     414,   234,   234,   234,   234,   234,   234,   234,   232,   404,
1966 >     234,   234,   232,   431,   127,   231,   234,   234,   232,   441,
1967 >     214,   241,   241,   214,   112,   214,   112,   127,   214,   241,
1968 >     214,   112,   112,   241,   112,   214,   214,   214,   241,   112,
1969 >     112,   241,   112,   112,   112,   112,   214,   234,   214,   234,
1970 >     214,   241,   241,   214,   214,   214,   214,   217,   214,   217,
1971 >     214,   214,   214,   127,   241,   214,   214,   241,   241,   214,
1972 >     214,   231,   231,   234,   234,   365,   234,   234,   234,   234,
1973 >     234,   232,   359,   234,   234,   232,   425,   231,   234,   234,
1974 >     345,   234,   232,   349,   127,   127,   231,   231,   234,   234,
1975 >     232,   282,   231,   234,   234,   316,   234,   234,   234,   234,
1976 >     234,   312,   234,   232,   302,   231,   234,   234,   234,   232,
1977 >     374,   214,   214,   214,   127,   214,   214,   214,   241,   231,
1978 >     127,   214,   127,   112,   112,   127,   127,   127,   127,   127,
1979 >     127,   112,   127,   203,   204,   254,   255,   203,   204,   256,
1980 >     257,   127,   127,   231,   231,   234,   398,   232,   395,   214,
1981 >     231,   233,   127,   231,   231,   234,   389,   234,   232,   385,
1982 >     231,   231,   231,   231,   231,   231,   139,   140,   141,   142,
1983 >     143,   144,   145,   240,   241,   231,   231,   231,   231,   231,
1984 >     231,   231,   231,   231,   231,   231,   112,   112,   241,   234,
1985 >     112,   112,   241,   112,   112,   241,   127,   112,   112,   241,
1986 >     112,   243,   243,   231,   127,   178,   179,   127,   214,   127,
1987 >     127,   234,   127,   127,   112,   127,   127,   127,   127,   231,
1988 >     127,   127,   231,   231,   127,   127,   231,   231,   231,   231,
1989 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1990 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1991 >     231,   231,   231,   231,    49,   165,   166,   167,   169,   170,
1992 >     172,   173,   175,   177,   180,   183,   184,   185,   187,   192,
1993 >     196,   197,   198,   206,   211,   497,   498,   231,    49,    51,
1994 >      52,   165,   166,   167,   169,   170,   172,   173,   175,   177,
1995 >     180,   183,   184,   185,   187,   192,   196,   197,   198,   206,
1996 >     211,   493,   494,   231,   231,   231,   231,   231,   231,   231,
1997 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1998 >     231,   231,   231,   231,   127,   214,   234,   127,   112,   127,
1999 >     127,   127,   231,   127,   127,   231,   127,   127,   234,   112,
2000 >     352,   353,   231,   231,   231,   127,   127,   231,   127,   214,
2001 >     234,   127,   127,   127,   127,   214,   234,   127,   231,   127,
2002 >     127,   127,   231,   231,   231,   231,   231,   231,   231,   231,
2003 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2004 >     231,   231,   231,   231,   231,   235,   231,   235,   231,   231,
2005 >     127,   234,   231,   231,     1,   102,   195,   222,   291,   292,
2006 >     293,   294,   295,   231,   127,   234,   127,   231,   240,   240,
2007 >     240,   240,   240,   240,   240,   231,   231,   231,    53,   128,
2008 >     340,   341,   231,   231,   231,   231,   231,   231,   231,   231,
2009 >     231,   231,     9,    10,    11,   242,   243,   231,   231,   231,
2010 >     231,   231,   231,   231,   231,   231,     8,   199,   415,   416,
2011 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
2012 >     231,   231,   235,   231,   235,   231,   231,    13,    34,    43,
2013 >      74,   103,   104,   111,   136,   152,   213,   366,   367,   231,
2014 >     231,   231,   231,   231,   231,   231,   231,   231,    49,   189,
2015 >     199,   346,   347,   221,   235,   351,   231,   231,   231,   231,
2016 >       4,    18,    26,    40,    71,    73,    99,   132,   134,   153,
2017 >     171,   176,   180,   185,   188,   193,   207,   210,   212,   223,
2018 >     230,   317,   318,   231,   231,   231,   231,   231,    49,    51,
2019 >      52,   165,   166,   167,   169,   170,   172,   173,   175,   177,
2020 >     180,   183,   184,   185,   187,   192,   196,   197,   198,   206,
2021 >     211,   313,   314,   231,   231,   231,   231,   255,   257,   231,
2022 >      73,   135,   164,   171,   180,   207,   209,   210,   223,   230,
2023 >     399,   400,   231,   234,   234,   296,   232,   292,   231,    73,
2024 >     135,   164,   171,   180,   207,   209,   210,   223,   230,   390,
2025 >     391,   231,   231,   235,   242,   242,   242,   231,   235,   498,
2026 >     494,   231,   235,   231,   235,   112,   353,   231,   236,   236,
2027 >     236,   231,   235,   231,   235,   231,   235,   127,   208,   243,
2028 >     234,   231,   231,   235,   341,   416,   367,   347,   133,   133,
2029 >     133,   318,   314,   400,   231,   231,   231,    40,    71,    73,
2030 >     118,   135,   170,   171,   226,   230,   297,   298,   391,   231,
2031 >     235,   298
2032   };
2033  
2034 < #define yyerrok         (yyerrstatus = 0)
2035 < #define yyclearin       (yychar = YYEMPTY)
2036 < #define YYEMPTY         (-2)
2037 < #define YYEOF           0
2038 <
2039 < #define YYACCEPT        goto yyacceptlab
2040 < #define YYABORT         goto yyabortlab
2041 < #define YYERROR         goto yyerrorlab
2042 <
2043 <
2044 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2045 <   to ease the transition to the new meaning of YYERROR, for GCC.
2046 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2047 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2048 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2049 <   discussed.  */
2050 <
2051 < #define YYFAIL          goto yyerrlab
2052 < #if defined YYFAIL
2053 <  /* This is here to suppress warnings from the GCC cpp's
2054 <     -Wunused-macros.  Normally we don't worry about that warning, but
2055 <     some users do, and we want to make it easy for users to remove
2056 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2057 < #endif
2034 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2035 > static const yytype_uint16 yyr1[] =
2036 > {
2037 >       0,   237,   238,   238,   239,   239,   239,   239,   239,   239,
2038 >     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2039 >     239,   239,   239,   239,   239,   239,   239,   240,   240,   241,
2040 >     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2041 >     243,   243,   243,   244,   245,   245,   246,   246,   246,   247,
2042 >     248,   249,   250,   250,   251,   251,   251,   251,   251,   251,
2043 >     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
2044 >     251,   251,   252,   253,   254,   254,   255,   255,   256,   256,
2045 >     257,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2046 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   274,
2047 >     275,   275,   275,   275,   276,   277,   278,   280,   279,   281,
2048 >     281,   282,   282,   282,   283,   284,   285,   286,   286,   287,
2049 >     287,   287,   288,   290,   289,   291,   291,   292,   292,   292,
2050 >     292,   293,   294,   294,   296,   295,   297,   297,   298,   298,
2051 >     298,   298,   298,   298,   298,   298,   298,   300,   299,   301,
2052 >     301,   302,   302,   302,   302,   302,   302,   302,   302,   302,
2053 >     302,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2054 >     312,   311,   313,   313,   314,   314,   314,   314,   314,   314,
2055 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2056 >     314,   314,   314,   314,   314,   314,   314,   316,   315,   317,
2057 >     317,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2058 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2059 >     318,   318,   318,   318,   318,   320,   319,   321,   321,   322,
2060 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2061 >     322,   322,   322,   322,   322,   322,   323,   324,   325,   326,
2062 >     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2063 >     337,   339,   338,   340,   340,   341,   341,   343,   342,   345,
2064 >     344,   346,   346,   347,   347,   347,   348,   348,   349,   349,
2065 >     349,   349,   349,   351,   350,   352,   352,   353,   353,   354,
2066 >     355,   357,   356,   358,   358,   359,   359,   359,   359,   359,
2067 >     359,   359,   359,   359,   360,   361,   362,   363,   365,   364,
2068 >     366,   366,   367,   367,   367,   367,   367,   367,   367,   367,
2069 >     367,   367,   368,   369,   370,   372,   371,   373,   373,   374,
2070 >     374,   374,   374,   375,   376,   377,   378,   379,   379,   380,
2071 >     380,   381,   383,   382,   384,   384,   385,   385,   385,   385,
2072 >     386,   387,   389,   388,   390,   390,   391,   391,   391,   391,
2073 >     391,   391,   391,   391,   391,   391,   393,   392,   394,   394,
2074 >     395,   395,   395,   396,   398,   397,   399,   399,   400,   400,
2075 >     400,   400,   400,   400,   400,   400,   400,   400,   402,   401,
2076 >     403,   403,   404,   404,   404,   404,   404,   404,   404,   404,
2077 >     404,   404,   404,   404,   404,   404,   404,   405,   406,   407,
2078 >     408,   409,   410,   411,   412,   412,   414,   413,   415,   415,
2079 >     416,   416,   417,   418,   419,   420,   421,   423,   422,   424,
2080 >     424,   425,   425,   425,   426,   427,   429,   428,   430,   430,
2081 >     431,   431,   431,   432,   433,   434,   435,   435,   436,   436,
2082 >     437,   439,   438,   440,   440,   441,   441,   441,   442,   443,
2083 >     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
2084 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2085 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2086 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2087 >     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
2088 >     446,   446,   446,   447,   448,   449,   450,   451,   452,   453,
2089 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2090 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2091 >     473,   474,   474,   475,   476,   477,   478,   479,   480,   481,
2092 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   492,
2093 >     491,   493,   493,   494,   494,   494,   494,   494,   494,   494,
2094 >     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2095 >     494,   494,   494,   494,   494,   494,   496,   495,   497,   497,
2096 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2097 >     498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
2098 >     498,   499,   500,   501,   502,   503,   503,   504,   504,   504,
2099 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2100 >     504,   504,   505,   506,   507,   508,   509,   510,   511,   512,
2101 >     513,   514,   515,   516,   517,   518,   519,   520,   520,   521,
2102 >     521,   521,   521,   521,   521,   521,   521,   521,   522,   523,
2103 >     524,   525,   526,   527,   528,   529
2104 > };
2105  
2106 < #define YYRECOVERING()  (!!yyerrstatus)
2106 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2107 > static const yytype_uint8 yyr2[] =
2108 > {
2109 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2110 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2111 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2112 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2113 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2114 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2115 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2116 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2117 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2118 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2119 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2120 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2121 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2122 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2123 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2124 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2125 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2126 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2127 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2128 >       1,     1,     1,     1,     1,     1,     1,     0,     5,     3,
2129 >       1,     3,     1,     3,     1,     3,     1,     1,     1,     1,
2130 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2131 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2132 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2133 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2134 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2135 >       4,     0,     5,     3,     1,     1,     1,     0,     6,     0,
2136 >       5,     3,     1,     1,     1,     1,     2,     1,     1,     1,
2137 >       1,     1,     2,     0,     5,     3,     1,     1,     3,     4,
2138 >       4,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     2,     4,     4,     4,     4,     0,     5,
2140 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2141 >       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
2142 >       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
2143 >       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2144 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2145 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
2146 >       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
2147 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2148 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
2150 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2151 >       1,     1,     4,     4,     4,     4,     4,     0,     6,     2,
2152 >       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
2153 >       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
2154 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2155 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2156 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2158 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2159 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2160 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2161 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2162 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2163 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2164 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
2165 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2167 >       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
2168 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2169 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2170 >       1,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2171 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2172 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2173 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2175 >       4,     4,     4,     4,     4,     4
2176 > };
2177  
2547 #define YYBACKUP(Token, Value)                                  \
2548 do                                                              \
2549  if (yychar == YYEMPTY && yylen == 1)                          \
2550    {                                                           \
2551      yychar = (Token);                                         \
2552      yylval = (Value);                                         \
2553      yytoken = YYTRANSLATE (yychar);                           \
2554      YYPOPSTACK (1);                                           \
2555      goto yybackup;                                            \
2556    }                                                           \
2557  else                                                          \
2558    {                                                           \
2559      yyerror (YY_("syntax error: cannot back up")); \
2560      YYERROR;                                                  \
2561    }                                                           \
2562 while (YYID (0))
2563
2564
2565 #define YYTERROR        1
2566 #define YYERRCODE       256
2567
2568
2569 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2570   If N is 0, then set CURRENT to the empty location which ends
2571   the previous symbol: RHS[0] (always defined).  */
2572
2573 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2574 #ifndef YYLLOC_DEFAULT
2575 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2576    do                                                                  \
2577      if (YYID (N))                                                    \
2578        {                                                               \
2579          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2580          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2581          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2582          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2583        }                                                               \
2584      else                                                              \
2585        {                                                               \
2586          (Current).first_line   = (Current).last_line   =              \
2587            YYRHSLOC (Rhs, 0).last_line;                                \
2588          (Current).first_column = (Current).last_column =              \
2589            YYRHSLOC (Rhs, 0).last_column;                              \
2590        }                                                               \
2591    while (YYID (0))
2592 #endif
2178  
2179 + #define yyerrok         (yyerrstatus = 0)
2180 + #define yyclearin       (yychar = YYEMPTY)
2181 + #define YYEMPTY         (-2)
2182 + #define YYEOF           0
2183 +
2184 + #define YYACCEPT        goto yyacceptlab
2185 + #define YYABORT         goto yyabortlab
2186 + #define YYERROR         goto yyerrorlab
2187  
2595 /* YY_LOCATION_PRINT -- Print the location on the stream.
2596   This macro was not mandated originally: define only if we know
2597   we won't break user code: when these are the locations we know.  */
2188  
2189 < #ifndef YY_LOCATION_PRINT
2600 < # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
2601 < #  define YY_LOCATION_PRINT(File, Loc)                  \
2602 <     fprintf (File, "%d.%d-%d.%d",                      \
2603 <              (Loc).first_line, (Loc).first_column,     \
2604 <              (Loc).last_line,  (Loc).last_column)
2605 < # else
2606 < #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2607 < # endif
2608 < #endif
2189 > #define YYRECOVERING()  (!!yyerrstatus)
2190  
2191 + #define YYBACKUP(Token, Value)                                  \
2192 + do                                                              \
2193 +  if (yychar == YYEMPTY)                                        \
2194 +    {                                                           \
2195 +      yychar = (Token);                                         \
2196 +      yylval = (Value);                                         \
2197 +      YYPOPSTACK (yylen);                                       \
2198 +      yystate = *yyssp;                                         \
2199 +      goto yybackup;                                            \
2200 +    }                                                           \
2201 +  else                                                          \
2202 +    {                                                           \
2203 +      yyerror (YY_("syntax error: cannot back up")); \
2204 +      YYERROR;                                                  \
2205 +    }                                                           \
2206 + while (0)
2207 +
2208 + /* Error token number */
2209 + #define YYTERROR        1
2210 + #define YYERRCODE       256
2211  
2611 /* YYLEX -- calling `yylex' with the right arguments.  */
2212  
2613 #ifdef YYLEX_PARAM
2614 # define YYLEX yylex (YYLEX_PARAM)
2615 #else
2616 # define YYLEX yylex ()
2617 #endif
2213  
2214   /* Enable debugging if requested.  */
2215   #if YYDEBUG
# Line 2624 | Line 2219 | while (YYID (0))
2219   #  define YYFPRINTF fprintf
2220   # endif
2221  
2222 < # define YYDPRINTF(Args)                        \
2223 < do {                                            \
2224 <  if (yydebug)                                  \
2225 <    YYFPRINTF Args;                             \
2226 < } while (YYID (0))
2632 <
2633 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2634 < do {                                                                      \
2635 <  if (yydebug)                                                            \
2636 <    {                                                                     \
2637 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2638 <      yy_symbol_print (stderr,                                            \
2639 <                  Type, Value); \
2640 <      YYFPRINTF (stderr, "\n");                                           \
2641 <    }                                                                     \
2642 < } while (YYID (0))
2222 > # define YYDPRINTF(Args)                        \
2223 > do {                                            \
2224 >  if (yydebug)                                  \
2225 >    YYFPRINTF Args;                             \
2226 > } while (0)
2227  
2228 + /* This macro is provided for backward compatibility. */
2229 + #ifndef YY_LOCATION_PRINT
2230 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2231 + #endif
2232  
2645 /*--------------------------------.
2646 | Print this symbol on YYOUTPUT.  |
2647 `--------------------------------*/
2233  
2234 < /*ARGSUSED*/
2235 < #if (defined __STDC__ || defined __C99__FUNC__ \
2236 <     || defined __cplusplus || defined _MSC_VER)
2234 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2235 > do {                                                                      \
2236 >  if (yydebug)                                                            \
2237 >    {                                                                     \
2238 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2239 >      yy_symbol_print (stderr,                                            \
2240 >                  Type, Value); \
2241 >      YYFPRINTF (stderr, "\n");                                           \
2242 >    }                                                                     \
2243 > } while (0)
2244 >
2245 >
2246 > /*----------------------------------------.
2247 > | Print this symbol's value on YYOUTPUT.  |
2248 > `----------------------------------------*/
2249 >
2250   static void
2251   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2654 #else
2655 static void
2656 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2657    FILE *yyoutput;
2658    int yytype;
2659    YYSTYPE const * const yyvaluep;
2660 #endif
2252   {
2253 +  FILE *yyo = yyoutput;
2254 +  YYUSE (yyo);
2255    if (!yyvaluep)
2256      return;
2257   # ifdef YYPRINT
2258    if (yytype < YYNTOKENS)
2259      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2667 # else
2668  YYUSE (yyoutput);
2260   # endif
2261 <  switch (yytype)
2671 <    {
2672 <      default:
2673 <        break;
2674 <    }
2261 >  YYUSE (yytype);
2262   }
2263  
2264  
# Line 2679 | Line 2266 | yy_symbol_value_print (yyoutput, yytype,
2266   | Print this symbol on YYOUTPUT.  |
2267   `--------------------------------*/
2268  
2682 #if (defined __STDC__ || defined __C99__FUNC__ \
2683     || defined __cplusplus || defined _MSC_VER)
2269   static void
2270   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2686 #else
2687 static void
2688 yy_symbol_print (yyoutput, yytype, yyvaluep)
2689    FILE *yyoutput;
2690    int yytype;
2691    YYSTYPE const * const yyvaluep;
2692 #endif
2271   {
2272 <  if (yytype < YYNTOKENS)
2273 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2696 <  else
2697 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2272 >  YYFPRINTF (yyoutput, "%s %s (",
2273 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2274  
2275    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2276    YYFPRINTF (yyoutput, ")");
# Line 2705 | Line 2281 | yy_symbol_print (yyoutput, yytype, yyval
2281   | TOP (included).                                                   |
2282   `------------------------------------------------------------------*/
2283  
2708 #if (defined __STDC__ || defined __C99__FUNC__ \
2709     || defined __cplusplus || defined _MSC_VER)
2284   static void
2285   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2712 #else
2713 static void
2714 yy_stack_print (yybottom, yytop)
2715    yytype_int16 *yybottom;
2716    yytype_int16 *yytop;
2717 #endif
2286   {
2287    YYFPRINTF (stderr, "Stack now");
2288    for (; yybottom <= yytop; yybottom++)
# Line 2725 | Line 2293 | yy_stack_print (yybottom, yytop)
2293    YYFPRINTF (stderr, "\n");
2294   }
2295  
2296 < # define YY_STACK_PRINT(Bottom, Top)                            \
2297 < do {                                                            \
2298 <  if (yydebug)                                                  \
2299 <    yy_stack_print ((Bottom), (Top));                           \
2300 < } while (YYID (0))
2296 > # define YY_STACK_PRINT(Bottom, Top)                            \
2297 > do {                                                            \
2298 >  if (yydebug)                                                  \
2299 >    yy_stack_print ((Bottom), (Top));                           \
2300 > } while (0)
2301  
2302  
2303   /*------------------------------------------------.
2304   | Report that the YYRULE is going to be reduced.  |
2305   `------------------------------------------------*/
2306  
2739 #if (defined __STDC__ || defined __C99__FUNC__ \
2740     || defined __cplusplus || defined _MSC_VER)
2741 static void
2742 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2743 #else
2307   static void
2308 < yy_reduce_print (yyvsp, yyrule)
2746 <    YYSTYPE *yyvsp;
2747 <    int yyrule;
2748 < #endif
2308 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2309   {
2310 +  unsigned long int yylno = yyrline[yyrule];
2311    int yynrhs = yyr2[yyrule];
2312    int yyi;
2752  unsigned long int yylno = yyrline[yyrule];
2313    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2314 <             yyrule - 1, yylno);
2314 >             yyrule - 1, yylno);
2315    /* The symbols being reduced.  */
2316    for (yyi = 0; yyi < yynrhs; yyi++)
2317      {
2318        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2319 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2320 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2321 <                                       );
2319 >      yy_symbol_print (stderr,
2320 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2321 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2322 >                                              );
2323        YYFPRINTF (stderr, "\n");
2324      }
2325   }
2326  
2327 < # define YY_REDUCE_PRINT(Rule)          \
2328 < do {                                    \
2329 <  if (yydebug)                          \
2330 <    yy_reduce_print (yyvsp, Rule); \
2331 < } while (YYID (0))
2327 > # define YY_REDUCE_PRINT(Rule)          \
2328 > do {                                    \
2329 >  if (yydebug)                          \
2330 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2331 > } while (0)
2332  
2333   /* Nonzero means print parse trace.  It is left uninitialized so that
2334     multiple parsers can coexist.  */
# Line 2781 | Line 2342 | int yydebug;
2342  
2343  
2344   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2345 < #ifndef YYINITDEPTH
2345 > #ifndef YYINITDEPTH
2346   # define YYINITDEPTH 200
2347   #endif
2348  
# Line 2796 | Line 2357 | int yydebug;
2357   # define YYMAXDEPTH 10000
2358   #endif
2359  
2799
2360  
2361   #if YYERROR_VERBOSE
2362  
# Line 2805 | Line 2365 | int yydebug;
2365   #   define yystrlen strlen
2366   #  else
2367   /* Return the length of YYSTR.  */
2808 #if (defined __STDC__ || defined __C99__FUNC__ \
2809     || defined __cplusplus || defined _MSC_VER)
2368   static YYSIZE_T
2369   yystrlen (const char *yystr)
2812 #else
2813 static YYSIZE_T
2814 yystrlen (yystr)
2815    const char *yystr;
2816 #endif
2370   {
2371    YYSIZE_T yylen;
2372    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2829 | Line 2382 | yystrlen (yystr)
2382   #  else
2383   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2384     YYDEST.  */
2832 #if (defined __STDC__ || defined __C99__FUNC__ \
2833     || defined __cplusplus || defined _MSC_VER)
2385   static char *
2386   yystpcpy (char *yydest, const char *yysrc)
2836 #else
2837 static char *
2838 yystpcpy (yydest, yysrc)
2839    char *yydest;
2840    const char *yysrc;
2841 #endif
2387   {
2388    char *yyd = yydest;
2389    const char *yys = yysrc;
# Line 2868 | Line 2413 | yytnamerr (char *yyres, const char *yyst
2413        char const *yyp = yystr;
2414  
2415        for (;;)
2416 <        switch (*++yyp)
2417 <          {
2418 <          case '\'':
2419 <          case ',':
2420 <            goto do_not_strip_quotes;
2421 <
2422 <          case '\\':
2423 <            if (*++yyp != '\\')
2424 <              goto do_not_strip_quotes;
2425 <            /* Fall through.  */
2426 <          default:
2427 <            if (yyres)
2428 <              yyres[yyn] = *yyp;
2429 <            yyn++;
2430 <            break;
2431 <
2432 <          case '"':
2433 <            if (yyres)
2434 <              yyres[yyn] = '\0';
2435 <            return yyn;
2436 <          }
2416 >        switch (*++yyp)
2417 >          {
2418 >          case '\'':
2419 >          case ',':
2420 >            goto do_not_strip_quotes;
2421 >
2422 >          case '\\':
2423 >            if (*++yyp != '\\')
2424 >              goto do_not_strip_quotes;
2425 >            /* Fall through.  */
2426 >          default:
2427 >            if (yyres)
2428 >              yyres[yyn] = *yyp;
2429 >            yyn++;
2430 >            break;
2431 >
2432 >          case '"':
2433 >            if (yyres)
2434 >              yyres[yyn] = '\0';
2435 >            return yyn;
2436 >          }
2437      do_not_strip_quotes: ;
2438      }
2439  
# Line 2899 | Line 2444 | yytnamerr (char *yyres, const char *yyst
2444   }
2445   # endif
2446  
2447 < /* Copy into YYRESULT an error message about the unexpected token
2448 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2449 <   including the terminating null byte.  If YYRESULT is null, do not
2450 <   copy anything; just return the number of bytes that would be
2451 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2452 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2453 <   size calculation.  */
2454 < static YYSIZE_T
2455 < yysyntax_error (char *yyresult, int yystate, int yychar)
2447 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2448 >   about the unexpected token YYTOKEN for the state stack whose top is
2449 >   YYSSP.
2450 >
2451 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2452 >   not large enough to hold the message.  In that case, also set
2453 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2454 >   required number of bytes is too large to store.  */
2455 > static int
2456 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2457 >                yytype_int16 *yyssp, int yytoken)
2458   {
2459 <  int yyn = yypact[yystate];
2459 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2460 >  YYSIZE_T yysize = yysize0;
2461 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2462 >  /* Internationalized format string. */
2463 >  const char *yyformat = YY_NULLPTR;
2464 >  /* Arguments of yyformat. */
2465 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2466 >  /* Number of reported tokens (one for the "unexpected", one per
2467 >     "expected"). */
2468 >  int yycount = 0;
2469 >
2470 >  /* There are many possibilities here to consider:
2471 >     - If this state is a consistent state with a default action, then
2472 >       the only way this function was invoked is if the default action
2473 >       is an error action.  In that case, don't check for expected
2474 >       tokens because there are none.
2475 >     - The only way there can be no lookahead present (in yychar) is if
2476 >       this state is a consistent state with a default action.  Thus,
2477 >       detecting the absence of a lookahead is sufficient to determine
2478 >       that there is no unexpected or expected token to report.  In that
2479 >       case, just report a simple "syntax error".
2480 >     - Don't assume there isn't a lookahead just because this state is a
2481 >       consistent state with a default action.  There might have been a
2482 >       previous inconsistent state, consistent state with a non-default
2483 >       action, or user semantic action that manipulated yychar.
2484 >     - Of course, the expected token list depends on states to have
2485 >       correct lookahead information, and it depends on the parser not
2486 >       to perform extra reductions after fetching a lookahead from the
2487 >       scanner and before detecting a syntax error.  Thus, state merging
2488 >       (from LALR or IELR) and default reductions corrupt the expected
2489 >       token list.  However, the list is correct for canonical LR with
2490 >       one exception: it will still contain any token that will not be
2491 >       accepted due to an error action in a later state.
2492 >  */
2493 >  if (yytoken != YYEMPTY)
2494 >    {
2495 >      int yyn = yypact[*yyssp];
2496 >      yyarg[yycount++] = yytname[yytoken];
2497 >      if (!yypact_value_is_default (yyn))
2498 >        {
2499 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2500 >             YYCHECK.  In other words, skip the first -YYN actions for
2501 >             this state because they are default actions.  */
2502 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2503 >          /* Stay within bounds of both yycheck and yytname.  */
2504 >          int yychecklim = YYLAST - yyn + 1;
2505 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2506 >          int yyx;
2507 >
2508 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2509 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2510 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2511 >              {
2512 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2513 >                  {
2514 >                    yycount = 1;
2515 >                    yysize = yysize0;
2516 >                    break;
2517 >                  }
2518 >                yyarg[yycount++] = yytname[yyx];
2519 >                {
2520 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2521 >                  if (! (yysize <= yysize1
2522 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2523 >                    return 2;
2524 >                  yysize = yysize1;
2525 >                }
2526 >              }
2527 >        }
2528 >    }
2529  
2530 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2915 <    return 0;
2916 <  else
2530 >  switch (yycount)
2531      {
2532 <      int yytype = YYTRANSLATE (yychar);
2533 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2534 <      YYSIZE_T yysize = yysize0;
2535 <      YYSIZE_T yysize1;
2536 <      int yysize_overflow = 0;
2537 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2538 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2539 <      int yyx;
2540 <
2541 < # if 0
2542 <      /* This is so xgettext sees the translatable formats that are
2929 <         constructed on the fly.  */
2930 <      YY_("syntax error, unexpected %s");
2931 <      YY_("syntax error, unexpected %s, expecting %s");
2932 <      YY_("syntax error, unexpected %s, expecting %s or %s");
2933 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2934 <      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2935 < # endif
2936 <      char *yyfmt;
2937 <      char const *yyf;
2938 <      static char const yyunexpected[] = "syntax error, unexpected %s";
2939 <      static char const yyexpecting[] = ", expecting %s";
2940 <      static char const yyor[] = " or %s";
2941 <      char yyformat[sizeof yyunexpected
2942 <                    + sizeof yyexpecting - 1
2943 <                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2944 <                       * (sizeof yyor - 1))];
2945 <      char const *yyprefix = yyexpecting;
2946 <
2947 <      /* Start YYX at -YYN if negative to avoid negative indexes in
2948 <         YYCHECK.  */
2949 <      int yyxbegin = yyn < 0 ? -yyn : 0;
2950 <
2951 <      /* Stay within bounds of both yycheck and yytname.  */
2952 <      int yychecklim = YYLAST - yyn + 1;
2953 <      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2954 <      int yycount = 1;
2955 <
2956 <      yyarg[0] = yytname[yytype];
2957 <      yyfmt = yystpcpy (yyformat, yyunexpected);
2958 <
2959 <      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2960 <        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2961 <          {
2962 <            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2963 <              {
2964 <                yycount = 1;
2965 <                yysize = yysize0;
2966 <                yyformat[sizeof yyunexpected - 1] = '\0';
2967 <                break;
2968 <              }
2969 <            yyarg[yycount++] = yytname[yyx];
2970 <            yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2971 <            yysize_overflow |= (yysize1 < yysize);
2972 <            yysize = yysize1;
2973 <            yyfmt = yystpcpy (yyfmt, yyprefix);
2974 <            yyprefix = yyor;
2975 <          }
2976 <
2977 <      yyf = YY_(yyformat);
2978 <      yysize1 = yysize + yystrlen (yyf);
2979 <      yysize_overflow |= (yysize1 < yysize);
2980 <      yysize = yysize1;
2981 <
2982 <      if (yysize_overflow)
2983 <        return YYSIZE_MAXIMUM;
2984 <
2985 <      if (yyresult)
2986 <        {
2987 <          /* Avoid sprintf, as that infringes on the user's name space.
2988 <             Don't have undefined behavior even if the translation
2989 <             produced a string with the wrong number of "%s"s.  */
2990 <          char *yyp = yyresult;
2991 <          int yyi = 0;
2992 <          while ((*yyp = *yyf) != '\0')
2993 <            {
2994 <              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2995 <                {
2996 <                  yyp += yytnamerr (yyp, yyarg[yyi++]);
2997 <                  yyf += 2;
2998 <                }
2999 <              else
3000 <                {
3001 <                  yyp++;
3002 <                  yyf++;
3003 <                }
3004 <            }
3005 <        }
3006 <      return yysize;
2532 > # define YYCASE_(N, S)                      \
2533 >      case N:                               \
2534 >        yyformat = S;                       \
2535 >      break
2536 >      YYCASE_(0, YY_("syntax error"));
2537 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2538 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2539 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2540 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2541 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2542 > # undef YYCASE_
2543      }
2544 +
2545 +  {
2546 +    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2547 +    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2548 +      return 2;
2549 +    yysize = yysize1;
2550 +  }
2551 +
2552 +  if (*yymsg_alloc < yysize)
2553 +    {
2554 +      *yymsg_alloc = 2 * yysize;
2555 +      if (! (yysize <= *yymsg_alloc
2556 +             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2557 +        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2558 +      return 1;
2559 +    }
2560 +
2561 +  /* Avoid sprintf, as that infringes on the user's name space.
2562 +     Don't have undefined behavior even if the translation
2563 +     produced a string with the wrong number of "%s"s.  */
2564 +  {
2565 +    char *yyp = *yymsg;
2566 +    int yyi = 0;
2567 +    while ((*yyp = *yyformat) != '\0')
2568 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2569 +        {
2570 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2571 +          yyformat += 2;
2572 +        }
2573 +      else
2574 +        {
2575 +          yyp++;
2576 +          yyformat++;
2577 +        }
2578 +  }
2579 +  return 0;
2580   }
2581   #endif /* YYERROR_VERBOSE */
3010
2582  
2583   /*-----------------------------------------------.
2584   | Release the memory associated to this symbol.  |
2585   `-----------------------------------------------*/
2586  
3016 /*ARGSUSED*/
3017 #if (defined __STDC__ || defined __C99__FUNC__ \
3018     || defined __cplusplus || defined _MSC_VER)
2587   static void
2588   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3021 #else
3022 static void
3023 yydestruct (yymsg, yytype, yyvaluep)
3024    const char *yymsg;
3025    int yytype;
3026    YYSTYPE *yyvaluep;
3027 #endif
2589   {
2590    YYUSE (yyvaluep);
3030
2591    if (!yymsg)
2592      yymsg = "Deleting";
2593    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2594  
2595 <  switch (yytype)
2596 <    {
2597 <
3038 <      default:
3039 <        break;
3040 <    }
2595 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2596 >  YYUSE (yytype);
2597 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2598   }
2599  
2600 < /* Prevent warnings from -Wmissing-prototypes.  */
3044 < #ifdef YYPARSE_PARAM
3045 < #if defined __STDC__ || defined __cplusplus
3046 < int yyparse (void *YYPARSE_PARAM);
3047 < #else
3048 < int yyparse ();
3049 < #endif
3050 < #else /* ! YYPARSE_PARAM */
3051 < #if defined __STDC__ || defined __cplusplus
3052 < int yyparse (void);
3053 < #else
3054 < int yyparse ();
3055 < #endif
3056 < #endif /* ! YYPARSE_PARAM */
2600 >
2601  
2602  
2603   /* The lookahead symbol.  */
# Line 3061 | Line 2605 | int yychar;
2605  
2606   /* The semantic value of the lookahead symbol.  */
2607   YYSTYPE yylval;
3064
2608   /* Number of syntax errors so far.  */
2609   int yynerrs;
2610  
2611  
2612 + /*----------.
2613 + | yyparse.  |
2614 + `----------*/
2615  
3070 /*-------------------------.
3071 | yyparse or yypush_parse.  |
3072 `-------------------------*/
3073
3074 #ifdef YYPARSE_PARAM
3075 #if (defined __STDC__ || defined __C99__FUNC__ \
3076     || defined __cplusplus || defined _MSC_VER)
3077 int
3078 yyparse (void *YYPARSE_PARAM)
3079 #else
3080 int
3081 yyparse (YYPARSE_PARAM)
3082    void *YYPARSE_PARAM;
3083 #endif
3084 #else /* ! YYPARSE_PARAM */
3085 #if (defined __STDC__ || defined __C99__FUNC__ \
3086     || defined __cplusplus || defined _MSC_VER)
2616   int
2617   yyparse (void)
3089 #else
3090 int
3091 yyparse ()
3092
3093 #endif
3094 #endif
2618   {
3096
3097
2619      int yystate;
2620      /* Number of tokens to shift before error messages enabled.  */
2621      int yyerrstatus;
2622  
2623      /* The stacks and their tools:
2624 <       `yyss': related to states.
2625 <       `yyvs': related to semantic values.
2624 >       'yyss': related to states.
2625 >       'yyvs': related to semantic values.
2626  
2627 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2627 >       Refer to the stacks through separate pointers, to allow yyoverflow
2628         to reallocate them elsewhere.  */
2629  
2630      /* The state stack.  */
# Line 3121 | Line 2642 | yyparse ()
2642    int yyn;
2643    int yyresult;
2644    /* Lookahead token as an internal (translated) token number.  */
2645 <  int yytoken;
2645 >  int yytoken = 0;
2646    /* The variables used to return semantic value and location from the
2647       action routines.  */
2648    YYSTYPE yyval;
# Line 3139 | Line 2660 | yyparse ()
2660       Keep to zero when no symbol should be popped.  */
2661    int yylen = 0;
2662  
2663 <  yytoken = 0;
2664 <  yyss = yyssa;
3144 <  yyvs = yyvsa;
2663 >  yyssp = yyss = yyssa;
2664 >  yyvsp = yyvs = yyvsa;
2665    yystacksize = YYINITDEPTH;
2666  
2667    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3150 | Line 2670 | yyparse ()
2670    yyerrstatus = 0;
2671    yynerrs = 0;
2672    yychar = YYEMPTY; /* Cause a token to be read.  */
3153
3154  /* Initialize stack pointers.
3155     Waste one element of value and location stack
3156     so that they stay on the same level as the state stack.
3157     The wasted elements are never initialized.  */
3158  yyssp = yyss;
3159  yyvsp = yyvs;
3160
2673    goto yysetstate;
2674  
2675   /*------------------------------------------------------------.
# Line 3178 | Line 2690 | yyparse ()
2690  
2691   #ifdef yyoverflow
2692        {
2693 <        /* Give user a chance to reallocate the stack.  Use copies of
2694 <           these so that the &'s don't force the real ones into
2695 <           memory.  */
2696 <        YYSTYPE *yyvs1 = yyvs;
2697 <        yytype_int16 *yyss1 = yyss;
2698 <
2699 <        /* Each stack pointer address is followed by the size of the
2700 <           data in use in that stack, in bytes.  This used to be a
2701 <           conditional around just the two extra args, but that might
2702 <           be undefined if yyoverflow is a macro.  */
2703 <        yyoverflow (YY_("memory exhausted"),
2704 <                    &yyss1, yysize * sizeof (*yyssp),
2705 <                    &yyvs1, yysize * sizeof (*yyvsp),
2706 <                    &yystacksize);
2693 >        /* Give user a chance to reallocate the stack.  Use copies of
2694 >           these so that the &'s don't force the real ones into
2695 >           memory.  */
2696 >        YYSTYPE *yyvs1 = yyvs;
2697 >        yytype_int16 *yyss1 = yyss;
2698 >
2699 >        /* Each stack pointer address is followed by the size of the
2700 >           data in use in that stack, in bytes.  This used to be a
2701 >           conditional around just the two extra args, but that might
2702 >           be undefined if yyoverflow is a macro.  */
2703 >        yyoverflow (YY_("memory exhausted"),
2704 >                    &yyss1, yysize * sizeof (*yyssp),
2705 >                    &yyvs1, yysize * sizeof (*yyvsp),
2706 >                    &yystacksize);
2707  
2708 <        yyss = yyss1;
2709 <        yyvs = yyvs1;
2708 >        yyss = yyss1;
2709 >        yyvs = yyvs1;
2710        }
2711   #else /* no yyoverflow */
2712   # ifndef YYSTACK_RELOCATE
# Line 3202 | Line 2714 | yyparse ()
2714   # else
2715        /* Extend the stack our own way.  */
2716        if (YYMAXDEPTH <= yystacksize)
2717 <        goto yyexhaustedlab;
2717 >        goto yyexhaustedlab;
2718        yystacksize *= 2;
2719        if (YYMAXDEPTH < yystacksize)
2720 <        yystacksize = YYMAXDEPTH;
2720 >        yystacksize = YYMAXDEPTH;
2721  
2722        {
2723 <        yytype_int16 *yyss1 = yyss;
2724 <        union yyalloc *yyptr =
2725 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2726 <        if (! yyptr)
2727 <          goto yyexhaustedlab;
2728 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2729 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2723 >        yytype_int16 *yyss1 = yyss;
2724 >        union yyalloc *yyptr =
2725 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2726 >        if (! yyptr)
2727 >          goto yyexhaustedlab;
2728 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2729 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2730   #  undef YYSTACK_RELOCATE
2731 <        if (yyss1 != yyssa)
2732 <          YYSTACK_FREE (yyss1);
2731 >        if (yyss1 != yyssa)
2732 >          YYSTACK_FREE (yyss1);
2733        }
2734   # endif
2735   #endif /* no yyoverflow */
# Line 3226 | Line 2738 | yyparse ()
2738        yyvsp = yyvs + yysize - 1;
2739  
2740        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2741 <                  (unsigned long int) yystacksize));
2741 >                  (unsigned long int) yystacksize));
2742  
2743        if (yyss + yystacksize - 1 <= yyssp)
2744 <        YYABORT;
2744 >        YYABORT;
2745      }
2746  
2747    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3249 | Line 2761 | yybackup:
2761  
2762    /* First try to decide what to do without reference to lookahead token.  */
2763    yyn = yypact[yystate];
2764 <  if (yyn == YYPACT_NINF)
2764 >  if (yypact_value_is_default (yyn))
2765      goto yydefault;
2766  
2767    /* Not known => get a lookahead token if don't already have one.  */
# Line 3258 | Line 2770 | yybackup:
2770    if (yychar == YYEMPTY)
2771      {
2772        YYDPRINTF ((stderr, "Reading a token: "));
2773 <      yychar = YYLEX;
2773 >      yychar = yylex ();
2774      }
2775  
2776    if (yychar <= YYEOF)
# Line 3280 | Line 2792 | yybackup:
2792    yyn = yytable[yyn];
2793    if (yyn <= 0)
2794      {
2795 <      if (yyn == 0 || yyn == YYTABLE_NINF)
2796 <        goto yyerrlab;
2795 >      if (yytable_value_is_error (yyn))
2796 >        goto yyerrlab;
2797        yyn = -yyn;
2798        goto yyreduce;
2799      }
# Line 3298 | Line 2810 | yybackup:
2810    yychar = YYEMPTY;
2811  
2812    yystate = yyn;
2813 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2814    *++yyvsp = yylval;
2815 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2816  
2817    goto yynewstate;
2818  
# Line 3321 | Line 2835 | yyreduce:
2835    yylen = yyr2[yyn];
2836  
2837    /* If YYLEN is nonzero, implement the default value of the action:
2838 <     `$$ = $1'.
2838 >     '$$ = $1'.
2839  
2840       Otherwise, the following line sets YYVAL to garbage.
2841       This behavior is undocumented and Bison
# Line 3334 | Line 2848 | yyreduce:
2848    YY_REDUCE_PRINT (yyn);
2849    switch (yyn)
2850      {
2851 <        case 26:
2852 <
3339 < /* Line 1464 of yacc.c  */
3340 < #line 424 "ircd_parser.y"
2851 >        case 27:
2852 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2853      { (yyval.number) = 0; }
2854 <    break;
3343 <
3344 <  case 28:
3345 <
3346 < /* Line 1464 of yacc.c  */
3347 < #line 426 "ircd_parser.y"
3348 <    {
3349 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3350 <                }
2854 > #line 2855 "conf_parser.c" /* yacc.c:1646  */
2855      break;
2856  
2857    case 29:
2858 <
2859 < /* Line 1464 of yacc.c  */
2860 < #line 430 "ircd_parser.y"
3357 <    {
3358 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3359 <                }
2858 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2859 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2860 > #line 2861 "conf_parser.c" /* yacc.c:1646  */
2861      break;
2862  
2863    case 30:
2864 <
2865 < /* Line 1464 of yacc.c  */
2866 < #line 434 "ircd_parser.y"
3366 <    {
3367 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3368 <                }
2864 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2865 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2866 > #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 31:
2870 <
2871 < /* Line 1464 of yacc.c  */
2872 < #line 438 "ircd_parser.y"
3375 <    {
3376 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3377 <                }
2870 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2871 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2872 > #line 2873 "conf_parser.c" /* yacc.c:1646  */
2873      break;
2874  
2875    case 32:
2876 <
2877 < /* Line 1464 of yacc.c  */
2878 < #line 442 "ircd_parser.y"
3384 <    {
3385 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3386 <                }
2876 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2877 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2878 > #line 2879 "conf_parser.c" /* yacc.c:1646  */
2879      break;
2880  
2881    case 33:
2882 <
2883 < /* Line 1464 of yacc.c  */
2884 < #line 446 "ircd_parser.y"
3393 <    {
3394 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3395 <                }
2882 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2883 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2884 > #line 2885 "conf_parser.c" /* yacc.c:1646  */
2885      break;
2886  
2887    case 34:
2888 + #line 416 "conf_parser.y" /* yacc.c:1646  */
2889 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2890 + #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891 +    break;
2892  
2893 < /* Line 1464 of yacc.c  */
2894 < #line 451 "ircd_parser.y"
2895 <    { (yyval.number) = 0; }
2893 >  case 35:
2894 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2895 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899    case 36:
2900 <
2901 < /* Line 1464 of yacc.c  */
2902 < #line 452 "ircd_parser.y"
3409 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2900 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2901 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905    case 37:
2906 <
2907 < /* Line 1464 of yacc.c  */
2908 < #line 453 "ircd_parser.y"
3416 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2906 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2907 >    { (yyval.number) = 0; }
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909      break;
2910  
2911 <  case 38:
2912 <
2913 < /* Line 1464 of yacc.c  */
2914 < #line 454 "ircd_parser.y"
3423 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2911 >  case 39:
2912 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2913 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915      break;
2916  
2917 <  case 39:
2917 >  case 40:
2918 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2919 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921 >    break;
2922  
2923 < /* Line 1464 of yacc.c  */
2924 < #line 455 "ircd_parser.y"
2925 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2923 >  case 41:
2924 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2925 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2926 > #line 2927 "conf_parser.c" /* yacc.c:1646  */
2927      break;
2928  
2929 <  case 46:
2929 >  case 42:
2930 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2931 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2932 > #line 2933 "conf_parser.c" /* yacc.c:1646  */
2933 >    break;
2934  
2935 < /* Line 1464 of yacc.c  */
2936 < #line 469 "ircd_parser.y"
2935 >  case 49:
2936 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2937      {
2938    if (conf_parser_ctx.pass == 2)
2939      add_conf_module(libio_basename(yylval.string));
2940   }
2941 + #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944 <  case 47:
2945 <
3445 < /* Line 1464 of yacc.c  */
3446 < #line 475 "ircd_parser.y"
2944 >  case 50:
2945 > #line 445 "conf_parser.y" /* yacc.c:1646  */
2946      {
2947    if (conf_parser_ctx.pass == 2)
2948      mod_add_path(yylval.string);
2949   }
2950 + #line 2951 "conf_parser.c" /* yacc.c:1646  */
2951      break;
2952  
2953 <  case 64:
2954 <
3455 < /* Line 1464 of yacc.c  */
3456 < #line 495 "ircd_parser.y"
2953 >  case 76:
2954 > #line 479 "conf_parser.y" /* yacc.c:1646  */
2955      {
2956   #ifdef HAVE_LIBCRYPTO
2957 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2958 <    ServerInfo.tls_version = 0;
2957 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2958 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2959   #endif
2960   }
2961 + #line 2962 "conf_parser.c" /* yacc.c:1646  */
2962      break;
2963  
2964 <  case 65:
2965 <
3467 < /* Line 1464 of yacc.c  */
3468 < #line 501 "ircd_parser.y"
2964 >  case 77:
2965 > #line 485 "conf_parser.y" /* yacc.c:1646  */
2966      {
2967   #ifdef HAVE_LIBCRYPTO
2968 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2969 <  {
3473 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3474 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3475 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3476 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3477 <  }
2968 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2969 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2970   #endif
2971   }
2972 + #line 2973 "conf_parser.c" /* yacc.c:1646  */
2973      break;
2974  
2975 <  case 68:
2976 <
3484 < /* Line 1464 of yacc.c  */
3485 < #line 515 "ircd_parser.y"
2975 >  case 80:
2976 > #line 494 "conf_parser.y" /* yacc.c:1646  */
2977      {
2978   #ifdef HAVE_LIBCRYPTO
2979 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2980 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
2979 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2980 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2981   #endif
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 69:
2987 <
3496 < /* Line 1464 of yacc.c  */
3497 < #line 521 "ircd_parser.y"
2986 >  case 81:
2987 > #line 500 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989   #ifdef HAVE_LIBCRYPTO
2990 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2991 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
2990 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2991 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2992   #endif
2993   }
2994 + #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997 <  case 70:
2998 <
3508 < /* Line 1464 of yacc.c  */
3509 < #line 529 "ircd_parser.y"
2997 >  case 82:
2998 > #line 508 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000   #ifdef HAVE_LIBCRYPTO
3001 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3001 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3002    {
3003      if (!ServerInfo.rsa_private_key_file)
3004      {
3005 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3005 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3006        break;
3007      }
3008  
3009      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3010 +                                     SSL_FILETYPE_PEM) <= 0 ||
3011 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3012                                       SSL_FILETYPE_PEM) <= 0)
3013      {
3014 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3014 >      report_crypto_errors();
3015 >      conf_error_report("Could not open/read certificate file");
3016        break;
3017      }
3018  
3019      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3020 +                                    SSL_FILETYPE_PEM) <= 0 ||
3021 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3022                                      SSL_FILETYPE_PEM) <= 0)
3023      {
3024 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3024 >      report_crypto_errors();
3025 >      conf_error_report("Could not read RSA private key");
3026        break;
3027      }
3028  
3029 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3029 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3030 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3031      {
3032 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3032 >      report_crypto_errors();
3033 >      conf_error_report("Could not read RSA private key");
3034        break;
3035      }
3036    }
3037   #endif
3038   }
3039 + #line 3040 "conf_parser.c" /* yacc.c:1646  */
3040      break;
3041  
3042 <  case 71:
3043 <
3546 < /* Line 1464 of yacc.c  */
3547 < #line 563 "ircd_parser.y"
3042 >  case 83:
3043 > #line 550 "conf_parser.y" /* yacc.c:1646  */
3044      {
3045   #ifdef HAVE_LIBCRYPTO
3046 <  if (conf_parser_ctx.pass == 1)
3046 >  BIO *file = NULL;
3047 >
3048 >  if (conf_parser_ctx.pass != 1)
3049 >    break;
3050 >
3051 >  if (ServerInfo.rsa_private_key)
3052    {
3053 <    BIO *file;
3053 >    RSA_free(ServerInfo.rsa_private_key);
3054 >    ServerInfo.rsa_private_key = NULL;
3055 >  }
3056  
3057 <    if (ServerInfo.rsa_private_key)
3058 <    {
3059 <      RSA_free(ServerInfo.rsa_private_key);
3060 <      ServerInfo.rsa_private_key = NULL;
3061 <    }
3057 >  if (ServerInfo.rsa_private_key_file)
3058 >  {
3059 >    MyFree(ServerInfo.rsa_private_key_file);
3060 >    ServerInfo.rsa_private_key_file = NULL;
3061 >  }
3062  
3063 <    if (ServerInfo.rsa_private_key_file)
3561 <    {
3562 <      MyFree(ServerInfo.rsa_private_key_file);
3563 <      ServerInfo.rsa_private_key_file = NULL;
3564 <    }
3063 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3064  
3065 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3065 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3066 >  {
3067 >    conf_error_report("File open failed, ignoring");
3068 >    break;
3069 >  }
3070  
3071 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3072 <    {
3073 <      yyerror("File open failed, ignoring");
3074 <      break;
3572 <    }
3071 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3072 >
3073 >  BIO_set_close(file, BIO_CLOSE);
3074 >  BIO_free(file);
3075  
3076 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3077 <      0, NULL);
3076 >  if (ServerInfo.rsa_private_key == NULL)
3077 >  {
3078 >    conf_error_report("Couldn't extract key, ignoring");
3079 >    break;
3080 >  }
3081  
3082 <    BIO_set_close(file, BIO_CLOSE);
3083 <    BIO_free(file);
3082 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3083 >  {
3084 >    RSA_free(ServerInfo.rsa_private_key);
3085 >    ServerInfo.rsa_private_key = NULL;
3086  
3087 <    if (ServerInfo.rsa_private_key == NULL)
3087 >    conf_error_report("Invalid key, ignoring");
3088 >    break;
3089 >  }
3090 >
3091 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3092 >  {
3093 >    RSA_free(ServerInfo.rsa_private_key);
3094 >    ServerInfo.rsa_private_key = NULL;
3095 >
3096 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3097 >  }
3098 > #endif
3099 > }
3100 > #line 3101 "conf_parser.c" /* yacc.c:1646  */
3101 >    break;
3102 >
3103 >  case 84:
3104 > #line 608 "conf_parser.y" /* yacc.c:1646  */
3105      {
3106 <      yyerror("Couldn't extract key, ignoring");
3107 <      break;
3108 <    }
3106 > /* TBD - XXX: error reporting */
3107 > #ifdef HAVE_LIBCRYPTO
3108 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3109 >  {
3110 >    BIO *file = BIO_new_file(yylval.string, "r");
3111  
3112 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3112 >    if (file)
3113      {
3114 <      RSA_free(ServerInfo.rsa_private_key);
3589 <      ServerInfo.rsa_private_key = NULL;
3114 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3115  
3116 <      yyerror("Invalid key, ignoring");
3592 <      break;
3593 <    }
3116 >      BIO_free(file);
3117  
3118 <    /* require 2048 bit (256 byte) key */
3119 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3120 <    {
3121 <      RSA_free(ServerInfo.rsa_private_key);
3122 <      ServerInfo.rsa_private_key = NULL;
3118 >      if (dh)
3119 >      {
3120 >        if (DH_size(dh) < 128)
3121 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3122 >        else
3123 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3124  
3125 <      yyerror("Not a 2048 bit key, ignoring");
3125 >        DH_free(dh);
3126 >      }
3127      }
3128    }
3129   #endif
3130   }
3131 + #line 3132 "conf_parser.c" /* yacc.c:1646  */
3132      break;
3133  
3134 <  case 72:
3134 >  case 85:
3135 > #line 636 "conf_parser.y" /* yacc.c:1646  */
3136 >    {
3137 > #ifdef HAVE_LIBCRYPTO
3138 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3139 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3140 > #endif
3141 > }
3142 > #line 3143 "conf_parser.c" /* yacc.c:1646  */
3143 >    break;
3144  
3145 < /* Line 1464 of yacc.c  */
3146 < #line 623 "ircd_parser.y"
3145 >  case 86:
3146 > #line 644 "conf_parser.y" /* yacc.c:1646  */
3147      {
3148    /* this isn't rehashable */
3149    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3150    {
3151      if (valid_servname(yylval.string))
3152 <      DupString(ServerInfo.name, yylval.string);
3152 >      ServerInfo.name = xstrdup(yylval.string);
3153      else
3154      {
3155 <      ilog(L_ERROR, "Ignoring serverinfo::name -- invalid name. Aborting.");
3155 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3156        exit(0);
3157      }
3158    }
3159   }
3160 + #line 3161 "conf_parser.c" /* yacc.c:1646  */
3161      break;
3162  
3163 <  case 73:
3164 <
3629 < /* Line 1464 of yacc.c  */
3630 < #line 638 "ircd_parser.y"
3163 >  case 87:
3164 > #line 659 "conf_parser.y" /* yacc.c:1646  */
3165      {
3166    /* this isn't rehashable */
3167    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3168    {
3169      if (valid_sid(yylval.string))
3170 <      DupString(ServerInfo.sid, yylval.string);
3170 >      ServerInfo.sid = xstrdup(yylval.string);
3171      else
3172      {
3173 <      ilog(L_ERROR, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3173 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3174        exit(0);
3175      }
3176    }
3177   }
3178 + #line 3179 "conf_parser.c" /* yacc.c:1646  */
3179      break;
3180  
3181 <  case 74:
3182 <
3648 < /* Line 1464 of yacc.c  */
3649 < #line 653 "ircd_parser.y"
3181 >  case 88:
3182 > #line 674 "conf_parser.y" /* yacc.c:1646  */
3183      {
3184    if (conf_parser_ctx.pass == 2)
3185    {
3186      MyFree(ServerInfo.description);
3187 <    DupString(ServerInfo.description,yylval.string);
3187 >    ServerInfo.description = xstrdup(yylval.string);
3188    }
3189   }
3190 + #line 3191 "conf_parser.c" /* yacc.c:1646  */
3191      break;
3192  
3193 <  case 75:
3194 <
3661 < /* Line 1464 of yacc.c  */
3662 < #line 662 "ircd_parser.y"
3193 >  case 89:
3194 > #line 683 "conf_parser.y" /* yacc.c:1646  */
3195      {
3196    if (conf_parser_ctx.pass == 2)
3197    {
3198      char *p;
3199  
3200 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3200 >    if ((p = strchr(yylval.string, ' ')))
3201        p = '\0';
3202  
3203      MyFree(ServerInfo.network_name);
3204 <    DupString(ServerInfo.network_name, yylval.string);
3204 >    ServerInfo.network_name = xstrdup(yylval.string);
3205    }
3206   }
3207 + #line 3208 "conf_parser.c" /* yacc.c:1646  */
3208      break;
3209  
3210 <  case 76:
3211 <
3679 < /* Line 1464 of yacc.c  */
3680 < #line 676 "ircd_parser.y"
3210 >  case 90:
3211 > #line 697 "conf_parser.y" /* yacc.c:1646  */
3212      {
3213 <  if (conf_parser_ctx.pass == 2)
3683 <  {
3684 <    MyFree(ServerInfo.network_desc);
3685 <    DupString(ServerInfo.network_desc, yylval.string);
3686 <  }
3687 < }
3213 >  if (conf_parser_ctx.pass != 2)
3214      break;
3215  
3216 <  case 77:
3216 >  MyFree(ServerInfo.network_desc);
3217 >  ServerInfo.network_desc = xstrdup(yylval.string);
3218 > }
3219 > #line 3220 "conf_parser.c" /* yacc.c:1646  */
3220 >    break;
3221  
3222 < /* Line 1464 of yacc.c  */
3223 < #line 685 "ircd_parser.y"
3222 >  case 91:
3223 > #line 706 "conf_parser.y" /* yacc.c:1646  */
3224      {
3225    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3226    {
# Line 3702 | Line 3232 | yyreduce:
3232      hints.ai_socktype = SOCK_STREAM;
3233      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3234  
3235 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3236 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3235 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3236 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3237      else
3238      {
3239 <      assert(res != NULL);
3239 >      assert(res);
3240  
3241        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3242        ServerInfo.ip.ss.ss_family = res->ai_family;
3243        ServerInfo.ip.ss_len = res->ai_addrlen;
3244 <      irc_freeaddrinfo(res);
3244 >      freeaddrinfo(res);
3245  
3246        ServerInfo.specific_ipv4_vhost = 1;
3247      }
3248    }
3249   }
3250 + #line 3251 "conf_parser.c" /* yacc.c:1646  */
3251      break;
3252  
3253 <  case 78:
3254 <
3724 < /* Line 1464 of yacc.c  */
3725 < #line 713 "ircd_parser.y"
3253 >  case 92:
3254 > #line 734 "conf_parser.y" /* yacc.c:1646  */
3255      {
3256   #ifdef IPV6
3257    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3735 | Line 3264 | yyreduce:
3264      hints.ai_socktype = SOCK_STREAM;
3265      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3266  
3267 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3268 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3267 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3268 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3269      else
3270      {
3271 <      assert(res != NULL);
3271 >      assert(res);
3272  
3273        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3274        ServerInfo.ip6.ss.ss_family = res->ai_family;
3275        ServerInfo.ip6.ss_len = res->ai_addrlen;
3276 <      irc_freeaddrinfo(res);
3276 >      freeaddrinfo(res);
3277  
3278        ServerInfo.specific_ipv6_vhost = 1;
3279      }
3280    }
3281   #endif
3282   }
3283 + #line 3284 "conf_parser.c" /* yacc.c:1646  */
3284      break;
3285  
3286 <  case 79:
3287 <
3758 < /* Line 1464 of yacc.c  */
3759 < #line 743 "ircd_parser.y"
3286 >  case 93:
3287 > #line 764 "conf_parser.y" /* yacc.c:1646  */
3288      {
3289 <  if (conf_parser_ctx.pass == 2)
3289 >  if (conf_parser_ctx.pass != 2)
3290 >    break;
3291 >
3292 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3293    {
3294 <    recalc_fdlimit(NULL);
3294 >    char buf[IRCD_BUFSIZE] = "";
3295  
3296 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3297 <    {
3298 <      char buf[IRCD_BUFSIZE];
3299 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3300 <      yyerror(buf);
3301 <    }
3302 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3303 <    {
3304 <      char buf[IRCD_BUFSIZE];
3305 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3306 <      yyerror(buf);
3776 <    }
3777 <    else
3778 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3296 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3297 >    conf_error_report(buf);
3298 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3299 >  }
3300 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3301 >  {
3302 >    char buf[IRCD_BUFSIZE] = "";
3303 >
3304 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3305 >    conf_error_report(buf);
3306 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3307    }
3308 +  else
3309 +    ServerInfo.max_clients = (yyvsp[-1].number);
3310   }
3311 + #line 3312 "conf_parser.c" /* yacc.c:1646  */
3312      break;
3313  
3314 <  case 80:
3315 <
3785 < /* Line 1464 of yacc.c  */
3786 < #line 766 "ircd_parser.y"
3314 >  case 94:
3315 > #line 789 "conf_parser.y" /* yacc.c:1646  */
3316      {
3317 <  if (conf_parser_ctx.pass == 2)
3789 <    ServerInfo.hub = yylval.number;
3790 < }
3317 >  if (conf_parser_ctx.pass != 2)
3318      break;
3319  
3320 <  case 88:
3794 <
3795 < /* Line 1464 of yacc.c  */
3796 < #line 781 "ircd_parser.y"
3797 <    {
3798 <  if (conf_parser_ctx.pass == 2)
3320 >  if ((yyvsp[-1].number) < 9)
3321    {
3322 <    MyFree(AdminInfo.name);
3323 <    DupString(AdminInfo.name, yylval.string);
3322 >    conf_error_report("max_nick_length too low, setting to 9");
3323 >    ServerInfo.max_nick_length = 9;
3324    }
3325 +  else if ((yyvsp[-1].number) > NICKLEN)
3326 +  {
3327 +    char buf[IRCD_BUFSIZE] = "";
3328 +
3329 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3330 +    conf_error_report(buf);
3331 +    ServerInfo.max_nick_length = NICKLEN;
3332 +  }
3333 +  else
3334 +    ServerInfo.max_nick_length = (yyvsp[-1].number);
3335   }
3336 + #line 3337 "conf_parser.c" /* yacc.c:1646  */
3337      break;
3338  
3339 <  case 89:
3340 <
3808 < /* Line 1464 of yacc.c  */
3809 < #line 790 "ircd_parser.y"
3339 >  case 95:
3340 > #line 811 "conf_parser.y" /* yacc.c:1646  */
3341      {
3342 <  if (conf_parser_ctx.pass == 2)
3342 >  if (conf_parser_ctx.pass != 2)
3343 >    break;
3344 >
3345 >  if ((yyvsp[-1].number) < 80)
3346 >  {
3347 >    conf_error_report("max_topic_length too low, setting to 80");
3348 >    ServerInfo.max_topic_length = 80;
3349 >  }
3350 >  else if ((yyvsp[-1].number) > TOPICLEN)
3351    {
3352 <    MyFree(AdminInfo.email);
3353 <    DupString(AdminInfo.email, yylval.string);
3352 >    char buf[IRCD_BUFSIZE] = "";
3353 >
3354 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3355 >    conf_error_report(buf);
3356 >    ServerInfo.max_topic_length = TOPICLEN;
3357    }
3358 +  else
3359 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3360   }
3361 + #line 3362 "conf_parser.c" /* yacc.c:1646  */
3362      break;
3363  
3364 <  case 90:
3365 <
3821 < /* Line 1464 of yacc.c  */
3822 < #line 799 "ircd_parser.y"
3364 >  case 96:
3365 > #line 833 "conf_parser.y" /* yacc.c:1646  */
3366      {
3367    if (conf_parser_ctx.pass == 2)
3368 <  {
3826 <    MyFree(AdminInfo.description);
3827 <    DupString(AdminInfo.description, yylval.string);
3828 <  }
3368 >    ServerInfo.hub = yylval.number;
3369   }
3370 + #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371      break;
3372  
3373 <  case 107:
3374 <
3834 < /* Line 1464 of yacc.c  */
3835 < #line 826 "ircd_parser.y"
3373 >  case 104:
3374 > #line 850 "conf_parser.y" /* yacc.c:1646  */
3375      {
3376 <                        }
3376 >  if (conf_parser_ctx.pass != 2)
3377      break;
3378  
3379 <  case 108:
3379 >  MyFree(AdminInfo.name);
3380 >  AdminInfo.name = xstrdup(yylval.string);
3381 > }
3382 > #line 3383 "conf_parser.c" /* yacc.c:1646  */
3383 >    break;
3384  
3385 < /* Line 1464 of yacc.c  */
3386 < #line 830 "ircd_parser.y"
3385 >  case 105:
3386 > #line 859 "conf_parser.y" /* yacc.c:1646  */
3387      {
3388 <                        }
3388 >  if (conf_parser_ctx.pass != 2)
3389      break;
3390  
3391 <  case 109:
3391 >  MyFree(AdminInfo.email);
3392 >  AdminInfo.email = xstrdup(yylval.string);
3393 > }
3394 > #line 3395 "conf_parser.c" /* yacc.c:1646  */
3395 >    break;
3396  
3397 < /* Line 1464 of yacc.c  */
3398 < #line 834 "ircd_parser.y"
3397 >  case 106:
3398 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3399      {
3400 <  if (conf_parser_ctx.pass == 2)
3854 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3855 <            sizeof(ConfigLoggingEntry.userlog));
3856 < }
3400 >  if (conf_parser_ctx.pass != 2)
3401      break;
3402  
3403 <  case 110:
3403 >  MyFree(AdminInfo.description);
3404 >  AdminInfo.description = xstrdup(yylval.string);
3405 > }
3406 > #line 3407 "conf_parser.c" /* yacc.c:1646  */
3407 >    break;
3408  
3409 < /* Line 1464 of yacc.c  */
3410 < #line 841 "ircd_parser.y"
3409 >  case 107:
3410 > #line 880 "conf_parser.y" /* yacc.c:1646  */
3411      {
3412    if (conf_parser_ctx.pass == 2)
3413 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3866 <            sizeof(ConfigLoggingEntry.failed_operlog));
3413 >    reset_block_state();
3414   }
3415 + #line 3416 "conf_parser.c" /* yacc.c:1646  */
3416      break;
3417  
3418 <  case 111:
3418 >  case 108:
3419 > #line 884 "conf_parser.y" /* yacc.c:1646  */
3420 >    {
3421 >  dlink_node *ptr = NULL;
3422  
3423 < /* Line 1464 of yacc.c  */
3424 < #line 848 "ircd_parser.y"
3423 >  if (conf_parser_ctx.pass != 2)
3424 >    break;
3425 >
3426 >  if (!block_state.file.buf[0])
3427 >    break;
3428 >
3429 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3430 >    motd_add(ptr->data, block_state.file.buf);
3431 > }
3432 > #line 3433 "conf_parser.c" /* yacc.c:1646  */
3433 >    break;
3434 >
3435 >  case 114:
3436 > #line 901 "conf_parser.y" /* yacc.c:1646  */
3437      {
3438    if (conf_parser_ctx.pass == 2)
3439 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3877 <            sizeof(ConfigLoggingEntry.operlog));
3439 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3440   }
3441 + #line 3442 "conf_parser.c" /* yacc.c:1646  */
3442      break;
3443  
3444 <  case 112:
3445 <
3883 < /* Line 1464 of yacc.c  */
3884 < #line 855 "ircd_parser.y"
3444 >  case 115:
3445 > #line 907 "conf_parser.y" /* yacc.c:1646  */
3446      {
3447    if (conf_parser_ctx.pass == 2)
3448 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3888 <            sizeof(ConfigLoggingEntry.operspylog));
3448 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3449   }
3450 + #line 3451 "conf_parser.c" /* yacc.c:1646  */
3451      break;
3452  
3453 <  case 113:
3454 <
3894 < /* Line 1464 of yacc.c  */
3895 < #line 862 "ircd_parser.y"
3453 >  case 122:
3454 > #line 922 "conf_parser.y" /* yacc.c:1646  */
3455      {
3456    if (conf_parser_ctx.pass == 2)
3457 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
3899 <            sizeof(ConfigLoggingEntry.glinelog));
3457 >    ConfigLoggingEntry.use_logging = yylval.number;
3458   }
3459 + #line 3460 "conf_parser.c" /* yacc.c:1646  */
3460      break;
3461  
3462 <  case 114:
3463 <
3905 < /* Line 1464 of yacc.c  */
3906 < #line 869 "ircd_parser.y"
3462 >  case 123:
3463 > #line 928 "conf_parser.y" /* yacc.c:1646  */
3464      {
3465    if (conf_parser_ctx.pass == 2)
3466 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
3910 <            sizeof(ConfigLoggingEntry.klinelog));
3466 >    reset_block_state();
3467   }
3468 + #line 3469 "conf_parser.c" /* yacc.c:1646  */
3469      break;
3470  
3471 <  case 115:
3472 <
3916 < /* Line 1464 of yacc.c  */
3917 < #line 876 "ircd_parser.y"
3471 >  case 124:
3472 > #line 932 "conf_parser.y" /* yacc.c:1646  */
3473      {
3474 <  if (conf_parser_ctx.pass == 2)
3475 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
3476 <            sizeof(ConfigLoggingEntry.ioerrlog));
3474 >  if (conf_parser_ctx.pass != 2)
3475 >    break;
3476 >
3477 >  if (block_state.type.value && block_state.file.buf[0])
3478 >    log_set_file(block_state.type.value, block_state.size.value,
3479 >                 block_state.file.buf);
3480   }
3481 + #line 3482 "conf_parser.c" /* yacc.c:1646  */
3482      break;
3483  
3484 <  case 116:
3484 >  case 131:
3485 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3486 >    {
3487 >  if (conf_parser_ctx.pass != 2)
3488 >    break;
3489  
3490 < /* Line 1464 of yacc.c  */
3491 < #line 883 "ircd_parser.y"
3490 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3491 > }
3492 > #line 3493 "conf_parser.c" /* yacc.c:1646  */
3493 >    break;
3494 >
3495 >  case 132:
3496 > #line 956 "conf_parser.y" /* yacc.c:1646  */
3497      {
3498 <  if (conf_parser_ctx.pass == 2)
3931 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3932 <            sizeof(ConfigLoggingEntry.killlog));
3498 >  block_state.size.value = (yyvsp[-1].number);
3499   }
3500 + #line 3501 "conf_parser.c" /* yacc.c:1646  */
3501      break;
3502  
3503 <  case 117:
3503 >  case 133:
3504 > #line 959 "conf_parser.y" /* yacc.c:1646  */
3505 >    {
3506 >  block_state.size.value = 0;
3507 > }
3508 > #line 3509 "conf_parser.c" /* yacc.c:1646  */
3509 >    break;
3510  
3511 < /* Line 1464 of yacc.c  */
3512 < #line 890 "ircd_parser.y"
3513 <    {
3511 >  case 134:
3512 > #line 964 "conf_parser.y" /* yacc.c:1646  */
3513 >    {
3514    if (conf_parser_ctx.pass == 2)
3515 <    set_log_level(L_CRIT);
3515 >    block_state.type.value = 0;
3516   }
3517 + #line 3518 "conf_parser.c" /* yacc.c:1646  */
3518      break;
3519  
3520 <  case 118:
3521 <
3948 < /* Line 1464 of yacc.c  */
3949 < #line 894 "ircd_parser.y"
3520 >  case 138:
3521 > #line 971 "conf_parser.y" /* yacc.c:1646  */
3522      {
3523    if (conf_parser_ctx.pass == 2)
3524 <    set_log_level(L_ERROR);
3524 >    block_state.type.value = LOG_TYPE_USER;
3525   }
3526 + #line 3527 "conf_parser.c" /* yacc.c:1646  */
3527      break;
3528  
3529 <  case 119:
3530 <
3958 < /* Line 1464 of yacc.c  */
3959 < #line 898 "ircd_parser.y"
3529 >  case 139:
3530 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3531      {
3532    if (conf_parser_ctx.pass == 2)
3533 <    set_log_level(L_WARN);
3533 >    block_state.type.value = LOG_TYPE_OPER;
3534   }
3535 + #line 3536 "conf_parser.c" /* yacc.c:1646  */
3536      break;
3537  
3538 <  case 120:
3539 <
3968 < /* Line 1464 of yacc.c  */
3969 < #line 902 "ircd_parser.y"
3538 >  case 140:
3539 > #line 979 "conf_parser.y" /* yacc.c:1646  */
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542 <    set_log_level(L_NOTICE);
3542 >    block_state.type.value = LOG_TYPE_GLINE;
3543   }
3544 + #line 3545 "conf_parser.c" /* yacc.c:1646  */
3545      break;
3546  
3547 <  case 121:
3548 <
3978 < /* Line 1464 of yacc.c  */
3979 < #line 906 "ircd_parser.y"
3547 >  case 141:
3548 > #line 983 "conf_parser.y" /* yacc.c:1646  */
3549      {
3550    if (conf_parser_ctx.pass == 2)
3551 <    set_log_level(L_TRACE);
3551 >    block_state.type.value = LOG_TYPE_XLINE;
3552   }
3553 + #line 3554 "conf_parser.c" /* yacc.c:1646  */
3554      break;
3555  
3556 <  case 122:
3557 <
3988 < /* Line 1464 of yacc.c  */
3989 < #line 910 "ircd_parser.y"
3556 >  case 142:
3557 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3558      {
3559    if (conf_parser_ctx.pass == 2)
3560 <    set_log_level(L_INFO);
3560 >    block_state.type.value = LOG_TYPE_RESV;
3561   }
3562 + #line 3563 "conf_parser.c" /* yacc.c:1646  */
3563      break;
3564  
3565 <  case 123:
3566 <
3998 < /* Line 1464 of yacc.c  */
3999 < #line 914 "ircd_parser.y"
3565 >  case 143:
3566 > #line 991 "conf_parser.y" /* yacc.c:1646  */
3567      {
3568    if (conf_parser_ctx.pass == 2)
3569 <    set_log_level(L_DEBUG);
3569 >    block_state.type.value = LOG_TYPE_DLINE;
3570   }
3571 + #line 3572 "conf_parser.c" /* yacc.c:1646  */
3572      break;
3573  
3574 <  case 124:
3575 <
4008 < /* Line 1464 of yacc.c  */
4009 < #line 920 "ircd_parser.y"
3574 >  case 144:
3575 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3576      {
3577    if (conf_parser_ctx.pass == 2)
3578 <    ConfigLoggingEntry.use_logging = yylval.number;
3578 >    block_state.type.value = LOG_TYPE_KLINE;
3579   }
3580 + #line 3581 "conf_parser.c" /* yacc.c:1646  */
3581      break;
3582  
3583 <  case 125:
3584 <
4018 < /* Line 1464 of yacc.c  */
4019 < #line 929 "ircd_parser.y"
3583 >  case 145:
3584 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3585      {
3586    if (conf_parser_ctx.pass == 2)
3587 <  {
4023 <    yy_conf = make_conf_item(OPER_TYPE);
4024 <    yy_aconf = map_to_conf(yy_conf);
4025 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4026 <  }
4027 <  else
4028 <  {
4029 <    MyFree(class_name);
4030 <    class_name = NULL;
4031 <  }
3587 >    block_state.type.value = LOG_TYPE_KILL;
3588   }
3589 + #line 3590 "conf_parser.c" /* yacc.c:1646  */
3590      break;
3591  
3592 <  case 126:
3593 <
4037 < /* Line 1464 of yacc.c  */
4038 < #line 942 "ircd_parser.y"
3592 >  case 146:
3593 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3594      {
3595    if (conf_parser_ctx.pass == 2)
3596 <  {
3597 <    struct CollectItem *yy_tmp;
3598 <    dlink_node *ptr;
3599 <    dlink_node *next_ptr;
3596 >    block_state.type.value = LOG_TYPE_DEBUG;
3597 > }
3598 > #line 3599 "conf_parser.c" /* yacc.c:1646  */
3599 >    break;
3600  
3601 <    conf_add_class_to_conf(yy_conf, class_name);
3601 >  case 147:
3602 > #line 1013 "conf_parser.y" /* yacc.c:1646  */
3603 >    {
3604 >  if (conf_parser_ctx.pass != 2)
3605 >    break;
3606  
3607 <    /* Now, make sure there is a copy of the "base" given oper
3608 <     * block in each of the collected copies
3609 <     */
3607 >  reset_block_state();
3608 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3609 > }
3610 > #line 3611 "conf_parser.c" /* yacc.c:1646  */
3611 >    break;
3612  
3613 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3613 >  case 148:
3614 > #line 1020 "conf_parser.y" /* yacc.c:1646  */
3615      {
3616 <      struct AccessItem *new_aconf;
4055 <      struct ConfItem *new_conf;
4056 <      yy_tmp = ptr->data;
3616 >  dlink_node *ptr = NULL;
3617  
3618 <      new_conf = make_conf_item(OPER_TYPE);
3619 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3618 >  if (conf_parser_ctx.pass != 2)
3619 >    break;
3620  
3621 <      new_aconf->flags = yy_aconf->flags;
3621 >  if (!block_state.name.buf[0])
3622 >    break;
3623 > #ifdef HAVE_LIBCRYPTO
3624 >  if (!block_state.file.buf[0] &&
3625 >      !block_state.rpass.buf[0])
3626 >    break;
3627 > #else
3628 >  if (!block_state.rpass.buf[0])
3629 >    break;
3630 > #endif
3631  
3632 <      if (yy_conf->name != NULL)
3633 <        DupString(new_conf->name, yy_conf->name);
3634 <      if (yy_tmp->user != NULL)
3635 <        DupString(new_aconf->user, yy_tmp->user);
4067 <      else
4068 <        DupString(new_aconf->user, "*");
4069 <      if (yy_tmp->host != NULL)
4070 <        DupString(new_aconf->host, yy_tmp->host);
4071 <      else
4072 <        DupString(new_aconf->host, "*");
4073 <      conf_add_class_to_conf(new_conf, class_name);
4074 <      if (yy_aconf->passwd != NULL)
4075 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3632 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3633 >  {
3634 >    struct MaskItem *conf = NULL;
3635 >    struct split_nuh_item nuh;
3636  
3637 <      new_aconf->port = yy_aconf->port;
3638 < #ifdef HAVE_LIBCRYPTO
3639 <      if (yy_aconf->rsa_public_key_file != NULL)
3640 <      {
3641 <        BIO *file;
3637 >    nuh.nuhmask  = ptr->data;
3638 >    nuh.nickptr  = NULL;
3639 >    nuh.userptr  = block_state.user.buf;
3640 >    nuh.hostptr  = block_state.host.buf;
3641 >    nuh.nicksize = 0;
3642 >    nuh.usersize = sizeof(block_state.user.buf);
3643 >    nuh.hostsize = sizeof(block_state.host.buf);
3644 >    split_nuh(&nuh);
3645  
3646 <        DupString(new_aconf->rsa_public_key_file,
3647 <                  yy_aconf->rsa_public_key_file);
3646 >    conf         = conf_make(CONF_OPER);
3647 >    conf->name   = xstrdup(block_state.name.buf);
3648 >    conf->user   = xstrdup(block_state.user.buf);
3649 >    conf->host   = xstrdup(block_state.host.buf);
3650 >
3651 >    if (block_state.cert.buf[0])
3652 >      conf->certfp = xstrdup(block_state.cert.buf);
3653 >
3654 >    if (block_state.rpass.buf[0])
3655 >      conf->passwd = xstrdup(block_state.rpass.buf);
3656 >
3657 >    conf->flags = block_state.flags.value;
3658 >    conf->modes = block_state.modes.value;
3659 >    conf->port  = block_state.port.value;
3660 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3661  
3662 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4087 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4088 <                                                           NULL, 0, NULL);
4089 <        BIO_set_close(file, BIO_CLOSE);
4090 <        BIO_free(file);
4091 <      }
4092 < #endif
3662 >    conf_add_class_to_conf(conf, block_state.class.buf);
3663  
3664   #ifdef HAVE_LIBCRYPTO
3665 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3666 <          && yy_tmp->host)
3667 < #else
3668 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3669 < #endif
3665 >    if (block_state.file.buf[0])
3666 >    {
3667 >      BIO *file = NULL;
3668 >      RSA *pkey = NULL;
3669 >
3670 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3671        {
3672 <        conf_add_class_to_conf(new_conf, class_name);
3673 <        if (yy_tmp->name != NULL)
4103 <          DupString(new_conf->name, yy_tmp->name);
3672 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3673 >        break;
3674        }
3675  
3676 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3677 <      free_collect_item(yy_tmp);
4108 <    }
4109 <
4110 <    yy_conf = NULL;
4111 <    yy_aconf = NULL;
4112 <
3676 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3677 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3678  
3679 <    MyFree(class_name);
3680 <    class_name = NULL;
3679 >      conf->rsa_public_key = pkey;
3680 >      BIO_set_close(file, BIO_CLOSE);
3681 >      BIO_free(file);
3682 >    }
3683 > #endif /* HAVE_LIBCRYPTO */
3684    }
3685   }
3686 + #line 3687 "conf_parser.c" /* yacc.c:1646  */
3687      break;
3688  
3689 <  case 140:
3690 <
4122 < /* Line 1464 of yacc.c  */
4123 < #line 1029 "ircd_parser.y"
3689 >  case 162:
3690 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3691      {
3692    if (conf_parser_ctx.pass == 2)
3693 <  {
4127 <    if (strlen(yylval.string) > OPERNICKLEN)
4128 <      yylval.string[OPERNICKLEN] = '\0';
4129 <
4130 <    MyFree(yy_conf->name);
4131 <    DupString(yy_conf->name, yylval.string);
4132 <  }
3693 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3694   }
3695 + #line 3696 "conf_parser.c" /* yacc.c:1646  */
3696      break;
3697  
3698 <  case 141:
3699 <
4138 < /* Line 1464 of yacc.c  */
4139 < #line 1041 "ircd_parser.y"
3698 >  case 163:
3699 > #line 1112 "conf_parser.y" /* yacc.c:1646  */
3700      {
3701    if (conf_parser_ctx.pass == 2)
3702 <  {
4143 <    if (strlen(yylval.string) > OPERNICKLEN)
4144 <      yylval.string[OPERNICKLEN] = '\0';
4145 <
4146 <    MyFree(yy_conf->name);
4147 <    DupString(yy_conf->name, yylval.string);
4148 <  }
3702 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3703   }
3704 + #line 3705 "conf_parser.c" /* yacc.c:1646  */
3705      break;
3706  
3707 <  case 142:
3708 <
4154 < /* Line 1464 of yacc.c  */
4155 < #line 1053 "ircd_parser.y"
3707 >  case 164:
3708 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3709      {
3710    if (conf_parser_ctx.pass == 2)
3711 <  {
3712 <    struct split_nuh_item nuh;
3713 <
3714 <    nuh.nuhmask  = yylval.string;
4162 <    nuh.nickptr  = NULL;
4163 <    nuh.userptr  = userbuf;
4164 <    nuh.hostptr  = hostbuf;
3711 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3712 > }
3713 > #line 3714 "conf_parser.c" /* yacc.c:1646  */
3714 >    break;
3715  
3716 <    nuh.nicksize = 0;
3717 <    nuh.usersize = sizeof(userbuf);
3718 <    nuh.hostsize = sizeof(hostbuf);
3716 >  case 165:
3717 > #line 1124 "conf_parser.y" /* yacc.c:1646  */
3718 >    {
3719 >  if (conf_parser_ctx.pass != 2)
3720 >    break;
3721  
3722 <    split_nuh(&nuh);
3722 >  if (yylval.number)
3723 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3724 >  else
3725 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3726 > }
3727 > #line 3728 "conf_parser.c" /* yacc.c:1646  */
3728 >    break;
3729  
3730 <    if (yy_aconf->user == NULL)
3730 >  case 166:
3731 > #line 1135 "conf_parser.y" /* yacc.c:1646  */
3732      {
3733 <      DupString(yy_aconf->user, userbuf);
3734 <      DupString(yy_aconf->host, hostbuf);
3735 <    }
3736 <    else
3733 >  if (conf_parser_ctx.pass == 2)
3734 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3735 > }
3736 > #line 3737 "conf_parser.c" /* yacc.c:1646  */
3737 >    break;
3738 >
3739 >  case 167:
3740 > #line 1141 "conf_parser.y" /* yacc.c:1646  */
3741      {
3742 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3742 >  if (conf_parser_ctx.pass == 2)
3743 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3744 > }
3745 > #line 3746 "conf_parser.c" /* yacc.c:1646  */
3746 >    break;
3747  
3748 <      DupString(yy_tmp->user, userbuf);
3749 <      DupString(yy_tmp->host, hostbuf);
3748 >  case 168:
3749 > #line 1147 "conf_parser.y" /* yacc.c:1646  */
3750 >    {
3751 >  if (conf_parser_ctx.pass != 2)
3752 >    break;
3753  
3754 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3755 <    }
3756 <  }
3754 >  if (yylval.number)
3755 >    block_state.flags.value |= CONF_FLAGS_SSL;
3756 >  else
3757 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3758   }
3759 + #line 3760 "conf_parser.c" /* yacc.c:1646  */
3760      break;
3761  
3762 <  case 143:
3763 <
4192 < /* Line 1464 of yacc.c  */
4193 < #line 1087 "ircd_parser.y"
3762 >  case 169:
3763 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3764      {
3765    if (conf_parser_ctx.pass == 2)
3766 <  {
4197 <    if (yy_aconf->passwd != NULL)
4198 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4199 <
4200 <    MyFree(yy_aconf->passwd);
4201 <    DupString(yy_aconf->passwd, yylval.string);
4202 <  }
3766 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3767   }
3768 + #line 3769 "conf_parser.c" /* yacc.c:1646  */
3769      break;
3770  
3771 <  case 144:
3772 <
4208 < /* Line 1464 of yacc.c  */
4209 < #line 1099 "ircd_parser.y"
3771 >  case 170:
3772 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3773      {
3774    if (conf_parser_ctx.pass == 2)
3775 <  {
4213 <    if (yylval.number)
4214 <      SetConfEncrypted(yy_aconf);
4215 <    else
4216 <      ClearConfEncrypted(yy_aconf);
4217 <  }
3775 >    block_state.modes.value = 0;
3776   }
3777 + #line 3778 "conf_parser.c" /* yacc.c:1646  */
3778      break;
3779  
3780 <  case 145:
3781 <
4223 < /* Line 1464 of yacc.c  */
4224 < #line 1110 "ircd_parser.y"
3780 >  case 174:
3781 > #line 1171 "conf_parser.y" /* yacc.c:1646  */
3782      {
4226 #ifdef HAVE_LIBCRYPTO
3783    if (conf_parser_ctx.pass == 2)
3784 <  {
3785 <    BIO *file;
3784 >    block_state.modes.value |= UMODE_BOTS;
3785 > }
3786 > #line 3787 "conf_parser.c" /* yacc.c:1646  */
3787 >    break;
3788  
3789 <    if (yy_aconf->rsa_public_key != NULL)
3789 >  case 175:
3790 > #line 1175 "conf_parser.y" /* yacc.c:1646  */
3791      {
3792 <      RSA_free(yy_aconf->rsa_public_key);
3793 <      yy_aconf->rsa_public_key = NULL;
3794 <    }
3792 >  if (conf_parser_ctx.pass == 2)
3793 >    block_state.modes.value |= UMODE_CCONN;
3794 > }
3795 > #line 3796 "conf_parser.c" /* yacc.c:1646  */
3796 >    break;
3797  
3798 <    if (yy_aconf->rsa_public_key_file != NULL)
3798 >  case 176:
3799 > #line 1179 "conf_parser.y" /* yacc.c:1646  */
3800      {
3801 <      MyFree(yy_aconf->rsa_public_key_file);
3802 <      yy_aconf->rsa_public_key_file = NULL;
3803 <    }
3804 <
3805 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4244 <    file = BIO_new_file(yylval.string, "r");
3801 >  if (conf_parser_ctx.pass == 2)
3802 >    block_state.modes.value |= UMODE_DEAF;
3803 > }
3804 > #line 3805 "conf_parser.c" /* yacc.c:1646  */
3805 >    break;
3806  
3807 <    if (file == NULL)
3807 >  case 177:
3808 > #line 1183 "conf_parser.y" /* yacc.c:1646  */
3809      {
3810 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3811 <      break;
3812 <    }
3813 <
3814 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3810 >  if (conf_parser_ctx.pass == 2)
3811 >    block_state.modes.value |= UMODE_DEBUG;
3812 > }
3813 > #line 3814 "conf_parser.c" /* yacc.c:1646  */
3814 >    break;
3815  
3816 <    if (yy_aconf->rsa_public_key == NULL)
3816 >  case 178:
3817 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3818      {
3819 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3820 <      break;
4258 <    }
4259 <
4260 <    BIO_set_close(file, BIO_CLOSE);
4261 <    BIO_free(file);
4262 <  }
4263 < #endif /* HAVE_LIBCRYPTO */
3819 >  if (conf_parser_ctx.pass == 2)
3820 >    block_state.modes.value |= UMODE_FULL;
3821   }
3822 + #line 3823 "conf_parser.c" /* yacc.c:1646  */
3823      break;
3824  
3825 <  case 146:
3826 <
4269 < /* Line 1464 of yacc.c  */
4270 < #line 1152 "ircd_parser.y"
3825 >  case 179:
3826 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3827      {
3828    if (conf_parser_ctx.pass == 2)
3829 <  {
4274 <    MyFree(class_name);
4275 <    DupString(class_name, yylval.string);
4276 <  }
3829 >    block_state.modes.value |= UMODE_HIDDEN;
3830   }
3831 + #line 3832 "conf_parser.c" /* yacc.c:1646  */
3832      break;
3833  
3834 <  case 147:
3835 <
4282 < /* Line 1464 of yacc.c  */
4283 < #line 1161 "ircd_parser.y"
3834 >  case 180:
3835 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3836      {
3837    if (conf_parser_ctx.pass == 2)
3838 <    yy_aconf->modes = 0;
3838 >    block_state.modes.value |= UMODE_HIDECHANS;
3839   }
3840 + #line 3841 "conf_parser.c" /* yacc.c:1646  */
3841      break;
3842  
3843 <  case 151:
3844 <
4292 < /* Line 1464 of yacc.c  */
4293 < #line 1168 "ircd_parser.y"
3843 >  case 181:
3844 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3845      {
3846    if (conf_parser_ctx.pass == 2)
3847 <    yy_aconf->modes |= UMODE_BOTS;
3847 >    block_state.modes.value |= UMODE_HIDEIDLE;
3848   }
3849 + #line 3850 "conf_parser.c" /* yacc.c:1646  */
3850      break;
3851  
3852 <  case 152:
3853 <
4302 < /* Line 1464 of yacc.c  */
4303 < #line 1172 "ircd_parser.y"
3852 >  case 182:
3853 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3854      {
3855    if (conf_parser_ctx.pass == 2)
3856 <    yy_aconf->modes |= UMODE_CCONN;
3856 >    block_state.modes.value |= UMODE_SKILL;
3857   }
3858 + #line 3859 "conf_parser.c" /* yacc.c:1646  */
3859      break;
3860  
3861 <  case 153:
3862 <
4312 < /* Line 1464 of yacc.c  */
4313 < #line 1176 "ircd_parser.y"
3861 >  case 183:
3862 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3863      {
3864    if (conf_parser_ctx.pass == 2)
3865 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3865 >    block_state.modes.value |= UMODE_NCHANGE;
3866   }
3867 + #line 3868 "conf_parser.c" /* yacc.c:1646  */
3868      break;
3869  
3870 <  case 154:
3871 <
4322 < /* Line 1464 of yacc.c  */
4323 < #line 1180 "ircd_parser.y"
3870 >  case 184:
3871 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3872      {
3873    if (conf_parser_ctx.pass == 2)
3874 <    yy_aconf->modes |= UMODE_DEAF;
3874 >    block_state.modes.value |= UMODE_REJ;
3875   }
3876 + #line 3877 "conf_parser.c" /* yacc.c:1646  */
3877      break;
3878  
3879 <  case 155:
3880 <
4332 < /* Line 1464 of yacc.c  */
4333 < #line 1184 "ircd_parser.y"
3879 >  case 185:
3880 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3881      {
3882    if (conf_parser_ctx.pass == 2)
3883 <    yy_aconf->modes |= UMODE_DEBUG;
3883 >    block_state.modes.value |= UMODE_UNAUTH;
3884   }
3885 + #line 3886 "conf_parser.c" /* yacc.c:1646  */
3886      break;
3887  
3888 <  case 156:
3889 <
4342 < /* Line 1464 of yacc.c  */
4343 < #line 1188 "ircd_parser.y"
3888 >  case 186:
3889 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3890      {
3891    if (conf_parser_ctx.pass == 2)
3892 <    yy_aconf->modes |= UMODE_FULL;
3892 >    block_state.modes.value |= UMODE_SPY;
3893   }
3894 + #line 3895 "conf_parser.c" /* yacc.c:1646  */
3895      break;
3896  
3897 <  case 157:
3898 <
4352 < /* Line 1464 of yacc.c  */
4353 < #line 1192 "ircd_parser.y"
3897 >  case 187:
3898 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
3899      {
3900    if (conf_parser_ctx.pass == 2)
3901 <    yy_aconf->modes |= UMODE_SKILL;
3901 >    block_state.modes.value |= UMODE_EXTERNAL;
3902   }
3903 + #line 3904 "conf_parser.c" /* yacc.c:1646  */
3904      break;
3905  
3906 <  case 158:
3907 <
4362 < /* Line 1464 of yacc.c  */
4363 < #line 1196 "ircd_parser.y"
3906 >  case 188:
3907 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
3908      {
3909    if (conf_parser_ctx.pass == 2)
3910 <    yy_aconf->modes |= UMODE_NCHANGE;
3910 >    block_state.modes.value |= UMODE_OPERWALL;
3911   }
3912 + #line 3913 "conf_parser.c" /* yacc.c:1646  */
3913      break;
3914  
3915 <  case 159:
3916 <
4372 < /* Line 1464 of yacc.c  */
4373 < #line 1200 "ircd_parser.y"
3915 >  case 189:
3916 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
3917      {
3918    if (conf_parser_ctx.pass == 2)
3919 <    yy_aconf->modes |= UMODE_REJ;
3919 >    block_state.modes.value |= UMODE_SERVNOTICE;
3920   }
3921 + #line 3922 "conf_parser.c" /* yacc.c:1646  */
3922      break;
3923  
3924 <  case 160:
3925 <
4382 < /* Line 1464 of yacc.c  */
4383 < #line 1204 "ircd_parser.y"
3924 >  case 190:
3925 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
3926      {
3927    if (conf_parser_ctx.pass == 2)
3928 <    yy_aconf->modes |= UMODE_UNAUTH;
3928 >    block_state.modes.value |= UMODE_INVISIBLE;
3929   }
3930 + #line 3931 "conf_parser.c" /* yacc.c:1646  */
3931      break;
3932  
3933 <  case 161:
3934 <
4392 < /* Line 1464 of yacc.c  */
4393 < #line 1208 "ircd_parser.y"
3933 >  case 191:
3934 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
3935      {
3936    if (conf_parser_ctx.pass == 2)
3937 <    yy_aconf->modes |= UMODE_SPY;
3937 >    block_state.modes.value |= UMODE_WALLOP;
3938   }
3939 + #line 3940 "conf_parser.c" /* yacc.c:1646  */
3940      break;
3941  
3942 <  case 162:
3943 <
4402 < /* Line 1464 of yacc.c  */
4403 < #line 1212 "ircd_parser.y"
3942 >  case 192:
3943 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
3944      {
3945    if (conf_parser_ctx.pass == 2)
3946 <    yy_aconf->modes |= UMODE_EXTERNAL;
3946 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3947   }
3948 + #line 3949 "conf_parser.c" /* yacc.c:1646  */
3949      break;
3950  
3951 <  case 163:
3952 <
4412 < /* Line 1464 of yacc.c  */
4413 < #line 1216 "ircd_parser.y"
3951 >  case 193:
3952 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
3953      {
3954    if (conf_parser_ctx.pass == 2)
3955 <    yy_aconf->modes |= UMODE_OPERWALL;
3955 >    block_state.modes.value |= UMODE_CALLERID;
3956   }
3957 + #line 3958 "conf_parser.c" /* yacc.c:1646  */
3958      break;
3959  
3960 <  case 164:
3961 <
4422 < /* Line 1464 of yacc.c  */
4423 < #line 1220 "ircd_parser.y"
3960 >  case 194:
3961 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
3962      {
3963    if (conf_parser_ctx.pass == 2)
3964 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3964 >    block_state.modes.value |= UMODE_LOCOPS;
3965   }
3966 + #line 3967 "conf_parser.c" /* yacc.c:1646  */
3967      break;
3968  
3969 <  case 165:
3970 <
4432 < /* Line 1464 of yacc.c  */
4433 < #line 1224 "ircd_parser.y"
3969 >  case 195:
3970 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
3971      {
3972    if (conf_parser_ctx.pass == 2)
3973 <    yy_aconf->modes |= UMODE_INVISIBLE;
3973 >    block_state.modes.value |= UMODE_REGONLY;
3974   }
3975 + #line 3976 "conf_parser.c" /* yacc.c:1646  */
3976      break;
3977  
3978 <  case 166:
3979 <
4442 < /* Line 1464 of yacc.c  */
4443 < #line 1228 "ircd_parser.y"
3978 >  case 196:
3979 > #line 1259 "conf_parser.y" /* yacc.c:1646  */
3980      {
3981    if (conf_parser_ctx.pass == 2)
3982 <    yy_aconf->modes |= UMODE_WALLOP;
3982 >    block_state.modes.value |= UMODE_FARCONNECT;
3983   }
3984 + #line 3985 "conf_parser.c" /* yacc.c:1646  */
3985      break;
3986  
3987 <  case 167:
3988 <
4452 < /* Line 1464 of yacc.c  */
4453 < #line 1232 "ircd_parser.y"
3987 >  case 197:
3988 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
3989      {
3990    if (conf_parser_ctx.pass == 2)
3991 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3991 >    block_state.port.value = 0;
3992   }
3993 + #line 3994 "conf_parser.c" /* yacc.c:1646  */
3994      break;
3995  
3996 <  case 168:
3997 <
4462 < /* Line 1464 of yacc.c  */
4463 < #line 1236 "ircd_parser.y"
3996 >  case 201:
3997 > #line 1272 "conf_parser.y" /* yacc.c:1646  */
3998      {
3999    if (conf_parser_ctx.pass == 2)
4000 <    yy_aconf->modes |= UMODE_CALLERID;
4000 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4001   }
4002 + #line 4003 "conf_parser.c" /* yacc.c:1646  */
4003      break;
4004  
4005 <  case 169:
4006 <
4472 < /* Line 1464 of yacc.c  */
4473 < #line 1240 "ircd_parser.y"
4005 >  case 202:
4006 > #line 1276 "conf_parser.y" /* yacc.c:1646  */
4007      {
4008    if (conf_parser_ctx.pass == 2)
4009 <    yy_aconf->modes |= UMODE_LOCOPS;
4009 >    block_state.port.value |= OPER_FLAG_KILL;
4010   }
4011 + #line 4012 "conf_parser.c" /* yacc.c:1646  */
4012      break;
4013  
4014 <  case 170:
4015 <
4482 < /* Line 1464 of yacc.c  */
4483 < #line 1246 "ircd_parser.y"
4014 >  case 203:
4015 > #line 1280 "conf_parser.y" /* yacc.c:1646  */
4016      {
4017 +  if (conf_parser_ctx.pass == 2)
4018 +    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4019   }
4020 + #line 4021 "conf_parser.c" /* yacc.c:1646  */
4021      break;
4022  
4023 <  case 174:
4024 <
4025 < /* Line 1464 of yacc.c  */
4026 < #line 1250 "ircd_parser.y"
4027 <    { not_atom = 1; }
4023 >  case 204:
4024 > #line 1284 "conf_parser.y" /* yacc.c:1646  */
4025 >    {
4026 >  if (conf_parser_ctx.pass == 2)
4027 >    block_state.port.value |= OPER_FLAG_CONNECT;
4028 > }
4029 > #line 4030 "conf_parser.c" /* yacc.c:1646  */
4030      break;
4031  
4032 <  case 176:
4033 <
4034 < /* Line 1464 of yacc.c  */
4035 < #line 1251 "ircd_parser.y"
4036 <    { not_atom = 0; }
4032 >  case 205:
4033 > #line 1288 "conf_parser.y" /* yacc.c:1646  */
4034 >    {
4035 >  if (conf_parser_ctx.pass == 2)
4036 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4037 > }
4038 > #line 4039 "conf_parser.c" /* yacc.c:1646  */
4039      break;
4040  
4041 <  case 178:
4042 <
4504 < /* Line 1464 of yacc.c  */
4505 < #line 1254 "ircd_parser.y"
4041 >  case 206:
4042 > #line 1292 "conf_parser.y" /* yacc.c:1646  */
4043      {
4044    if (conf_parser_ctx.pass == 2)
4045 <  {
4509 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4510 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4511 <  }
4045 >    block_state.port.value |= OPER_FLAG_SQUIT;
4046   }
4047 + #line 4048 "conf_parser.c" /* yacc.c:1646  */
4048      break;
4049  
4050 <  case 179:
4051 <
4517 < /* Line 1464 of yacc.c  */
4518 < #line 1261 "ircd_parser.y"
4050 >  case 207:
4051 > #line 1296 "conf_parser.y" /* yacc.c:1646  */
4052      {
4053    if (conf_parser_ctx.pass == 2)
4054 <  {
4522 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4523 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4524 <  }
4054 >    block_state.port.value |= OPER_FLAG_K;
4055   }
4056 + #line 4057 "conf_parser.c" /* yacc.c:1646  */
4057      break;
4058  
4059 <  case 180:
4060 <
4530 < /* Line 1464 of yacc.c  */
4531 < #line 1268 "ircd_parser.y"
4059 >  case 208:
4060 > #line 1300 "conf_parser.y" /* yacc.c:1646  */
4061      {
4062    if (conf_parser_ctx.pass == 2)
4063 <  {
4535 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4536 <    else yy_aconf->port |= OPER_FLAG_K;
4537 <  }
4063 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4064   }
4065 + #line 4066 "conf_parser.c" /* yacc.c:1646  */
4066      break;
4067  
4068 <  case 181:
4069 <
4543 < /* Line 1464 of yacc.c  */
4544 < #line 1275 "ircd_parser.y"
4068 >  case 209:
4069 > #line 1304 "conf_parser.y" /* yacc.c:1646  */
4070      {
4071    if (conf_parser_ctx.pass == 2)
4072 <  {
4548 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4549 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4550 <  }
4072 >    block_state.port.value |= OPER_FLAG_DLINE;
4073   }
4074 + #line 4075 "conf_parser.c" /* yacc.c:1646  */
4075      break;
4076  
4077 <  case 182:
4078 <
4556 < /* Line 1464 of yacc.c  */
4557 < #line 1282 "ircd_parser.y"
4077 >  case 210:
4078 > #line 1308 "conf_parser.y" /* yacc.c:1646  */
4079      {
4080    if (conf_parser_ctx.pass == 2)
4081 <  {
4561 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4562 <    else yy_aconf->port |= OPER_FLAG_X;
4563 <  }
4081 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4082   }
4083 + #line 4084 "conf_parser.c" /* yacc.c:1646  */
4084      break;
4085  
4086 <  case 183:
4087 <
4569 < /* Line 1464 of yacc.c  */
4570 < #line 1289 "ircd_parser.y"
4086 >  case 211:
4087 > #line 1312 "conf_parser.y" /* yacc.c:1646  */
4088      {
4089    if (conf_parser_ctx.pass == 2)
4090 <  {
4574 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4575 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4576 <  }
4090 >    block_state.port.value |= OPER_FLAG_XLINE;
4091   }
4092 + #line 4093 "conf_parser.c" /* yacc.c:1646  */
4093      break;
4094  
4095 <  case 184:
4096 <
4582 < /* Line 1464 of yacc.c  */
4583 < #line 1296 "ircd_parser.y"
4095 >  case 212:
4096 > #line 1316 "conf_parser.y" /* yacc.c:1646  */
4097      {
4098    if (conf_parser_ctx.pass == 2)
4099 <  {
4587 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4588 <    else yy_aconf->port |= OPER_FLAG_DIE;
4589 <  }
4099 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4100   }
4101 + #line 4102 "conf_parser.c" /* yacc.c:1646  */
4102      break;
4103  
4104 <  case 185:
4105 <
4595 < /* Line 1464 of yacc.c  */
4596 < #line 1303 "ircd_parser.y"
4104 >  case 213:
4105 > #line 1320 "conf_parser.y" /* yacc.c:1646  */
4106      {
4107    if (conf_parser_ctx.pass == 2)
4108 <  {
4600 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4601 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4602 <  }
4108 >    block_state.port.value |= OPER_FLAG_GLINE;
4109   }
4110 + #line 4111 "conf_parser.c" /* yacc.c:1646  */
4111      break;
4112  
4113 <  case 186:
4114 <
4608 < /* Line 1464 of yacc.c  */
4609 < #line 1310 "ircd_parser.y"
4113 >  case 214:
4114 > #line 1324 "conf_parser.y" /* yacc.c:1646  */
4115      {
4116    if (conf_parser_ctx.pass == 2)
4117 <  {
4613 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4614 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4615 <  }
4117 >    block_state.port.value |= OPER_FLAG_DIE;
4118   }
4119 + #line 4120 "conf_parser.c" /* yacc.c:1646  */
4120      break;
4121  
4122 <  case 187:
4123 <
4621 < /* Line 1464 of yacc.c  */
4622 < #line 1317 "ircd_parser.y"
4122 >  case 215:
4123 > #line 1328 "conf_parser.y" /* yacc.c:1646  */
4124      {
4125    if (conf_parser_ctx.pass == 2)
4126 <  {
4626 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4627 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4628 <  }
4126 >    block_state.port.value |= OPER_FLAG_RESTART;
4127   }
4128 + #line 4129 "conf_parser.c" /* yacc.c:1646  */
4129      break;
4130  
4131 <  case 188:
4132 <
4634 < /* Line 1464 of yacc.c  */
4635 < #line 1324 "ircd_parser.y"
4131 >  case 216:
4132 > #line 1332 "conf_parser.y" /* yacc.c:1646  */
4133      {
4134    if (conf_parser_ctx.pass == 2)
4135 <  {
4639 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4640 <    else yy_aconf->port |= OPER_FLAG_N;
4641 <  }
4135 >    block_state.port.value |= OPER_FLAG_REHASH;
4136   }
4137 + #line 4138 "conf_parser.c" /* yacc.c:1646  */
4138      break;
4139  
4140 <  case 189:
4141 <
4647 < /* Line 1464 of yacc.c  */
4648 < #line 1331 "ircd_parser.y"
4140 >  case 217:
4141 > #line 1336 "conf_parser.y" /* yacc.c:1646  */
4142      {
4143    if (conf_parser_ctx.pass == 2)
4144 <  {
4652 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4653 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4654 <  }
4144 >    block_state.port.value |= OPER_FLAG_ADMIN;
4145   }
4146 + #line 4147 "conf_parser.c" /* yacc.c:1646  */
4147      break;
4148  
4149 <  case 190:
4150 <
4660 < /* Line 1464 of yacc.c  */
4661 < #line 1338 "ircd_parser.y"
4149 >  case 218:
4150 > #line 1340 "conf_parser.y" /* yacc.c:1646  */
4151      {
4152    if (conf_parser_ctx.pass == 2)
4153 <  {
4665 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
4666 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
4667 <  }
4153 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4154   }
4155 + #line 4156 "conf_parser.c" /* yacc.c:1646  */
4156      break;
4157  
4158 <  case 191:
4159 <
4673 < /* Line 1464 of yacc.c  */
4674 < #line 1345 "ircd_parser.y"
4158 >  case 219:
4159 > #line 1344 "conf_parser.y" /* yacc.c:1646  */
4160      {
4161    if (conf_parser_ctx.pass == 2)
4162 <  {
4678 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4679 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4680 <  }
4162 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4163   }
4164 + #line 4165 "conf_parser.c" /* yacc.c:1646  */
4165      break;
4166  
4167 <  case 192:
4168 <
4686 < /* Line 1464 of yacc.c  */
4687 < #line 1352 "ircd_parser.y"
4167 >  case 220:
4168 > #line 1348 "conf_parser.y" /* yacc.c:1646  */
4169      {
4170    if (conf_parser_ctx.pass == 2)
4171 <  {
4691 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4692 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4693 <  }
4171 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4172   }
4173 + #line 4174 "conf_parser.c" /* yacc.c:1646  */
4174      break;
4175  
4176 <  case 193:
4177 <
4699 < /* Line 1464 of yacc.c  */
4700 < #line 1359 "ircd_parser.y"
4176 >  case 221:
4177 > #line 1352 "conf_parser.y" /* yacc.c:1646  */
4178      {
4179    if (conf_parser_ctx.pass == 2)
4180 <  {
4704 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4705 <    else SetConfEncrypted(yy_aconf);
4706 <  }
4180 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4181   }
4182 + #line 4183 "conf_parser.c" /* yacc.c:1646  */
4183      break;
4184  
4185 <  case 194:
4186 <
4712 < /* Line 1464 of yacc.c  */
4713 < #line 1372 "ircd_parser.y"
4185 >  case 222:
4186 > #line 1356 "conf_parser.y" /* yacc.c:1646  */
4187      {
4188 <  if (conf_parser_ctx.pass == 1)
4189 <  {
4717 <    yy_conf = make_conf_item(CLASS_TYPE);
4718 <    yy_class = map_to_conf(yy_conf);
4719 <  }
4188 >  if (conf_parser_ctx.pass == 2)
4189 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4190   }
4191 + #line 4192 "conf_parser.c" /* yacc.c:1646  */
4192      break;
4193  
4194 <  case 195:
4194 >  case 223:
4195 > #line 1360 "conf_parser.y" /* yacc.c:1646  */
4196 >    {
4197 >  if (conf_parser_ctx.pass == 2)
4198 >    block_state.port.value |= OPER_FLAG_SET;
4199 > }
4200 > #line 4201 "conf_parser.c" /* yacc.c:1646  */
4201 >    break;
4202  
4203 < /* Line 1464 of yacc.c  */
4204 < #line 1379 "ircd_parser.y"
4203 >  case 224:
4204 > #line 1364 "conf_parser.y" /* yacc.c:1646  */
4205      {
4206 <  if (conf_parser_ctx.pass == 1)
4207 <  {
4208 <    struct ConfItem *cconf = NULL;
4209 <    struct ClassItem *class = NULL;
4206 >  if (conf_parser_ctx.pass == 2)
4207 >    block_state.port.value |= OPER_FLAG_MODULE;
4208 > }
4209 > #line 4210 "conf_parser.c" /* yacc.c:1646  */
4210 >    break;
4211  
4212 <    if (yy_class_name == NULL)
4213 <      delete_conf_item(yy_conf);
4735 <    else
4212 >  case 225:
4213 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4214      {
4215 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4215 >  if (conf_parser_ctx.pass != 1)
4216 >    break;
4217  
4218 <      if (cconf != NULL)                /* The class existed already */
4740 <      {
4741 <        int user_count = 0;
4218 >  reset_block_state();
4219  
4220 <        rebuild_cidr_class(cconf, yy_class);
4220 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4221 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4222 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4223 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4224 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4225 > }
4226 > #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227 >    break;
4228  
4229 <        class = map_to_conf(cconf);
4229 >  case 226:
4230 > #line 1386 "conf_parser.y" /* yacc.c:1646  */
4231 >    {
4232 >  struct ClassItem *class = NULL;
4233  
4234 <        user_count = class->curr_user_count;
4235 <        memcpy(class, yy_class, sizeof(*class));
4749 <        class->curr_user_count = user_count;
4750 <        class->active = 1;
4234 >  if (conf_parser_ctx.pass != 1)
4235 >    break;
4236  
4237 <        delete_conf_item(yy_conf);
4237 >  if (!block_state.class.buf[0])
4238 >    break;
4239  
4240 <        MyFree(cconf->name);            /* Allows case change of class name */
4241 <        cconf->name = yy_class_name;
4242 <      }
4243 <      else      /* Brand new class */
4244 <      {
4245 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4246 <        yy_conf->name = yy_class_name;
4247 <        yy_class->active = 1;
4248 <      }
4249 <    }
4240 >  if (!(class = class_find(block_state.class.buf, 0)))
4241 >    class = class_make();
4242 >
4243 >  class->active = 1;
4244 >  MyFree(class->name);
4245 >  class->name = xstrdup(block_state.class.buf);
4246 >  class->ping_freq = block_state.ping_freq.value;
4247 >  class->max_perip = block_state.max_perip.value;
4248 >  class->con_freq = block_state.con_freq.value;
4249 >  class->max_total = block_state.max_total.value;
4250 >  class->max_global = block_state.max_global.value;
4251 >  class->max_local = block_state.max_local.value;
4252 >  class->max_ident = block_state.max_ident.value;
4253 >  class->max_sendq = block_state.max_sendq.value;
4254 >  class->max_recvq = block_state.max_recvq.value;
4255  
4256 <    yy_class_name = NULL;
4256 >  if (block_state.min_idle.value > block_state.max_idle.value)
4257 >  {
4258 >    block_state.min_idle.value = 0;
4259 >    block_state.max_idle.value = 0;
4260 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4261    }
4262 +
4263 +  class->flags = block_state.flags.value;
4264 +  class->min_idle = block_state.min_idle.value;
4265 +  class->max_idle = block_state.max_idle.value;
4266 +
4267 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4268 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4269 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4270 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4271 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4272 +        rebuild_cidr_list(class);
4273 +
4274 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4275 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4276 +  class->number_per_cidr = block_state.number_per_cidr.value;
4277   }
4278 + #line 4279 "conf_parser.c" /* yacc.c:1646  */
4279      break;
4280  
4281 <  case 214:
4282 <
4772 < /* Line 1464 of yacc.c  */
4773 < #line 1439 "ircd_parser.y"
4281 >  case 246:
4282 > #line 1453 "conf_parser.y" /* yacc.c:1646  */
4283      {
4284    if (conf_parser_ctx.pass == 1)
4285 <  {
4777 <    MyFree(yy_class_name);
4778 <    DupString(yy_class_name, yylval.string);
4779 <  }
4285 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4286   }
4287 + #line 4288 "conf_parser.c" /* yacc.c:1646  */
4288      break;
4289  
4290 <  case 215:
4291 <
4785 < /* Line 1464 of yacc.c  */
4786 < #line 1448 "ircd_parser.y"
4290 >  case 247:
4291 > #line 1459 "conf_parser.y" /* yacc.c:1646  */
4292      {
4293    if (conf_parser_ctx.pass == 1)
4294 <  {
4790 <    MyFree(yy_class_name);
4791 <    DupString(yy_class_name, yylval.string);
4792 <  }
4294 >    block_state.ping_freq.value = (yyvsp[-1].number);
4295   }
4296 + #line 4297 "conf_parser.c" /* yacc.c:1646  */
4297      break;
4298  
4299 <  case 216:
4300 <
4798 < /* Line 1464 of yacc.c  */
4799 < #line 1457 "ircd_parser.y"
4299 >  case 248:
4300 > #line 1465 "conf_parser.y" /* yacc.c:1646  */
4301      {
4302    if (conf_parser_ctx.pass == 1)
4303 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4303 >    block_state.max_perip.value = (yyvsp[-1].number);
4304   }
4305 + #line 4306 "conf_parser.c" /* yacc.c:1646  */
4306      break;
4307  
4308 <  case 217:
4309 <
4808 < /* Line 1464 of yacc.c  */
4809 < #line 1463 "ircd_parser.y"
4308 >  case 249:
4309 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4310      {
4311    if (conf_parser_ctx.pass == 1)
4312 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4312 >    block_state.con_freq.value = (yyvsp[-1].number);
4313   }
4314 + #line 4315 "conf_parser.c" /* yacc.c:1646  */
4315      break;
4316  
4317 <  case 218:
4318 <
4818 < /* Line 1464 of yacc.c  */
4819 < #line 1469 "ircd_parser.y"
4317 >  case 250:
4318 > #line 1477 "conf_parser.y" /* yacc.c:1646  */
4319      {
4320    if (conf_parser_ctx.pass == 1)
4321 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4321 >    block_state.max_total.value = (yyvsp[-1].number);
4322   }
4323 + #line 4324 "conf_parser.c" /* yacc.c:1646  */
4324      break;
4325  
4326 <  case 219:
4327 <
4828 < /* Line 1464 of yacc.c  */
4829 < #line 1475 "ircd_parser.y"
4326 >  case 251:
4327 > #line 1483 "conf_parser.y" /* yacc.c:1646  */
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4330 >    block_state.max_global.value = (yyvsp[-1].number);
4331   }
4332 + #line 4333 "conf_parser.c" /* yacc.c:1646  */
4333      break;
4334  
4335 <  case 220:
4336 <
4838 < /* Line 1464 of yacc.c  */
4839 < #line 1481 "ircd_parser.y"
4335 >  case 252:
4336 > #line 1489 "conf_parser.y" /* yacc.c:1646  */
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4339 >    block_state.max_local.value = (yyvsp[-1].number);
4340   }
4341 + #line 4342 "conf_parser.c" /* yacc.c:1646  */
4342      break;
4343  
4344 <  case 221:
4345 <
4848 < /* Line 1464 of yacc.c  */
4849 < #line 1487 "ircd_parser.y"
4344 >  case 253:
4345 > #line 1495 "conf_parser.y" /* yacc.c:1646  */
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4348 >    block_state.max_ident.value = (yyvsp[-1].number);
4349   }
4350 + #line 4351 "conf_parser.c" /* yacc.c:1646  */
4351      break;
4352  
4353 <  case 222:
4354 <
4858 < /* Line 1464 of yacc.c  */
4859 < #line 1493 "ircd_parser.y"
4353 >  case 254:
4354 > #line 1501 "conf_parser.y" /* yacc.c:1646  */
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.max_sendq.value = (yyvsp[-1].number);
4358   }
4359 + #line 4360 "conf_parser.c" /* yacc.c:1646  */
4360      break;
4361  
4362 <  case 223:
4363 <
4868 < /* Line 1464 of yacc.c  */
4869 < #line 1499 "ircd_parser.y"
4362 >  case 255:
4363 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4367 >      block_state.max_recvq.value = (yyvsp[-1].number);
4368   }
4369 + #line 4370 "conf_parser.c" /* yacc.c:1646  */
4370      break;
4371  
4372 <  case 224:
4373 <
4878 < /* Line 1464 of yacc.c  */
4879 < #line 1505 "ircd_parser.y"
4372 >  case 256:
4373 > #line 1514 "conf_parser.y" /* yacc.c:1646  */
4374      {
4375    if (conf_parser_ctx.pass == 1)
4376 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4376 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4377   }
4378 + #line 4379 "conf_parser.c" /* yacc.c:1646  */
4379      break;
4380  
4381 <  case 225:
4382 <
4888 < /* Line 1464 of yacc.c  */
4889 < #line 1511 "ircd_parser.y"
4381 >  case 257:
4382 > #line 1520 "conf_parser.y" /* yacc.c:1646  */
4383      {
4384    if (conf_parser_ctx.pass == 1)
4385 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4385 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4386   }
4387 + #line 4388 "conf_parser.c" /* yacc.c:1646  */
4388      break;
4389  
4390 <  case 226:
4391 <
4898 < /* Line 1464 of yacc.c  */
4899 < #line 1517 "ircd_parser.y"
4390 >  case 258:
4391 > #line 1526 "conf_parser.y" /* yacc.c:1646  */
4392      {
4393    if (conf_parser_ctx.pass == 1)
4394 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4394 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4395   }
4396 + #line 4397 "conf_parser.c" /* yacc.c:1646  */
4397 +    break;
4398 +
4399 +  case 259:
4400 + #line 1532 "conf_parser.y" /* yacc.c:1646  */
4401 +    {
4402 +  if (conf_parser_ctx.pass != 1)
4403      break;
4404  
4405 <  case 227:
4405 >  block_state.min_idle.value = (yyvsp[-1].number);
4406 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4407 > }
4408 > #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409 >    break;
4410  
4411 < /* Line 1464 of yacc.c  */
4412 < #line 1523 "ircd_parser.y"
4411 >  case 260:
4412 > #line 1541 "conf_parser.y" /* yacc.c:1646  */
4413      {
4414 <  if (conf_parser_ctx.pass == 1)
4415 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4414 >  if (conf_parser_ctx.pass != 1)
4415 >    break;
4416 >
4417 >  block_state.max_idle.value = (yyvsp[-1].number);
4418 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4419   }
4420 + #line 4421 "conf_parser.c" /* yacc.c:1646  */
4421      break;
4422  
4423 <  case 228:
4423 >  case 261:
4424 > #line 1550 "conf_parser.y" /* yacc.c:1646  */
4425 >    {
4426 >  if (conf_parser_ctx.pass == 1)
4427 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4428 > }
4429 > #line 4430 "conf_parser.c" /* yacc.c:1646  */
4430 >    break;
4431  
4432 < /* Line 1464 of yacc.c  */
4433 < #line 1532 "ircd_parser.y"
4432 >  case 265:
4433 > #line 1557 "conf_parser.y" /* yacc.c:1646  */
4434      {
4435 <  if (conf_parser_ctx.pass == 2)
4436 <  {
4923 <    listener_address = NULL;
4924 <    listener_flags = 0;
4925 <  }
4435 >  if (conf_parser_ctx.pass == 1)
4436 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4437   }
4438 + #line 4439 "conf_parser.c" /* yacc.c:1646  */
4439      break;
4440  
4441 <  case 229:
4441 >  case 266:
4442 > #line 1561 "conf_parser.y" /* yacc.c:1646  */
4443 >    {
4444 >  if (conf_parser_ctx.pass == 1)
4445 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4446 > }
4447 > #line 4448 "conf_parser.c" /* yacc.c:1646  */
4448 >    break;
4449  
4450 < /* Line 1464 of yacc.c  */
4451 < #line 1539 "ircd_parser.y"
4450 >  case 267:
4451 > #line 1571 "conf_parser.y" /* yacc.c:1646  */
4452      {
4453    if (conf_parser_ctx.pass == 2)
4454 <  {
4936 <    MyFree(listener_address);
4937 <    listener_address = NULL;
4938 <  }
4454 >    reset_block_state();
4455   }
4456 + #line 4457 "conf_parser.c" /* yacc.c:1646  */
4457      break;
4458  
4459 <  case 230:
4460 <
4944 < /* Line 1464 of yacc.c  */
4945 < #line 1548 "ircd_parser.y"
4459 >  case 269:
4460 > #line 1577 "conf_parser.y" /* yacc.c:1646  */
4461      {
4462 <  listener_flags = 0;
4462 >  block_state.flags.value = 0;
4463   }
4464 + #line 4465 "conf_parser.c" /* yacc.c:1646  */
4465      break;
4466  
4467 <  case 234:
4468 <
4953 < /* Line 1464 of yacc.c  */
4954 < #line 1554 "ircd_parser.y"
4467 >  case 273:
4468 > #line 1583 "conf_parser.y" /* yacc.c:1646  */
4469      {
4470    if (conf_parser_ctx.pass == 2)
4471 <    listener_flags |= LISTENER_SSL;
4471 >    block_state.flags.value |= LISTENER_SSL;
4472   }
4473 + #line 4474 "conf_parser.c" /* yacc.c:1646  */
4474      break;
4475  
4476 <  case 235:
4477 <
4963 < /* Line 1464 of yacc.c  */
4964 < #line 1558 "ircd_parser.y"
4476 >  case 274:
4477 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4478      {
4479    if (conf_parser_ctx.pass == 2)
4480 <    listener_flags |= LISTENER_HIDDEN;
4480 >    block_state.flags.value |= LISTENER_HIDDEN;
4481   }
4482 + #line 4483 "conf_parser.c" /* yacc.c:1646  */
4483      break;
4484  
4485 <  case 236:
4486 <
4973 < /* Line 1464 of yacc.c  */
4974 < #line 1562 "ircd_parser.y"
4485 >  case 275:
4486 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4487      {
4488    if (conf_parser_ctx.pass == 2)
4489 <    listener_flags |= LISTENER_SERVER;
4489 >   block_state.flags.value |= LISTENER_SERVER;
4490   }
4491 + #line 4492 "conf_parser.c" /* yacc.c:1646  */
4492      break;
4493  
4494 <  case 244:
4495 <
4496 < /* Line 1464 of yacc.c  */
4497 < #line 1572 "ircd_parser.y"
4985 <    { listener_flags = 0; }
4494 >  case 283:
4495 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4496 >    { block_state.flags.value = 0; }
4497 > #line 4498 "conf_parser.c" /* yacc.c:1646  */
4498      break;
4499  
4500 <  case 248:
4501 <
4990 < /* Line 1464 of yacc.c  */
4991 < #line 1577 "ircd_parser.y"
4500 >  case 287:
4501 > #line 1604 "conf_parser.y" /* yacc.c:1646  */
4502      {
4503    if (conf_parser_ctx.pass == 2)
4504    {
4505 <    if ((listener_flags & LISTENER_SSL))
4505 >    if (block_state.flags.value & LISTENER_SSL)
4506   #ifdef HAVE_LIBCRYPTO
4507        if (!ServerInfo.server_ctx)
4508   #endif
4509        {
4510 <        yyerror("SSL not available - port closed");
4511 <        break;
4510 >        conf_error_report("SSL not available - port closed");
4511 >        break;
4512        }
4513 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4513 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4514    }
4515   }
4516 + #line 4517 "conf_parser.c" /* yacc.c:1646  */
4517      break;
4518  
4519 <  case 249:
4520 <
5010 < /* Line 1464 of yacc.c  */
5011 < #line 1591 "ircd_parser.y"
4519 >  case 288:
4520 > #line 1618 "conf_parser.y" /* yacc.c:1646  */
4521      {
4522    if (conf_parser_ctx.pass == 2)
4523    {
4524 <    int i;
5016 <
5017 <    if ((listener_flags & LISTENER_SSL))
4524 >    if (block_state.flags.value & LISTENER_SSL)
4525   #ifdef HAVE_LIBCRYPTO
4526        if (!ServerInfo.server_ctx)
4527   #endif
4528        {
4529 <        yyerror("SSL not available - port closed");
4530 <        break;
4529 >        conf_error_report("SSL not available - port closed");
4530 >        break;
4531        }
4532  
4533 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4534 <      add_listener(i, listener_address, listener_flags);
4533 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4534 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4535    }
4536   }
4537 + #line 4538 "conf_parser.c" /* yacc.c:1646  */
4538      break;
4539  
4540 <  case 250:
4541 <
5034 < /* Line 1464 of yacc.c  */
5035 < #line 1611 "ircd_parser.y"
4540 >  case 289:
4541 > #line 1636 "conf_parser.y" /* yacc.c:1646  */
4542      {
4543    if (conf_parser_ctx.pass == 2)
4544 <  {
5039 <    MyFree(listener_address);
5040 <    DupString(listener_address, yylval.string);
5041 <  }
4544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1646  */
4547      break;
4548  
4549 <  case 251:
4550 <
5047 < /* Line 1464 of yacc.c  */
5048 < #line 1620 "ircd_parser.y"
4549 >  case 290:
4550 > #line 1642 "conf_parser.y" /* yacc.c:1646  */
4551      {
4552    if (conf_parser_ctx.pass == 2)
4553 <  {
5052 <    MyFree(listener_address);
5053 <    DupString(listener_address, yylval.string);
5054 <  }
4553 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4554   }
4555 + #line 4556 "conf_parser.c" /* yacc.c:1646  */
4556      break;
4557  
4558 <  case 252:
4559 <
5060 < /* Line 1464 of yacc.c  */
5061 < #line 1632 "ircd_parser.y"
4558 >  case 291:
4559 > #line 1651 "conf_parser.y" /* yacc.c:1646  */
4560      {
4561    if (conf_parser_ctx.pass == 2)
4562 <  {
5065 <    yy_conf = make_conf_item(CLIENT_TYPE);
5066 <    yy_aconf = map_to_conf(yy_conf);
5067 <  }
5068 <  else
5069 <  {
5070 <    MyFree(class_name);
5071 <    class_name = NULL;
5072 <  }
4562 >    reset_block_state();
4563   }
4564 + #line 4565 "conf_parser.c" /* yacc.c:1646  */
4565      break;
4566  
4567 <  case 253:
4568 <
5078 < /* Line 1464 of yacc.c  */
5079 < #line 1644 "ircd_parser.y"
4567 >  case 292:
4568 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4569      {
4570 <  if (conf_parser_ctx.pass == 2)
5082 <  {
5083 <    struct CollectItem *yy_tmp = NULL;
5084 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5085 <
5086 <    if (yy_aconf->user && yy_aconf->host)
5087 <    {
5088 <      conf_add_class_to_conf(yy_conf, class_name);
5089 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5090 <    }
5091 <    else
5092 <      delete_conf_item(yy_conf);
5093 <
5094 <    /* copy over settings from first struct */
5095 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
5096 <    {
5097 <      struct AccessItem *new_aconf;
5098 <      struct ConfItem *new_conf;
5099 <
5100 <      new_conf = make_conf_item(CLIENT_TYPE);
5101 <      new_aconf = map_to_conf(new_conf);
4570 >  dlink_node *ptr = NULL;
4571  
4572 <      yy_tmp = ptr->data;
5104 <
5105 <      assert(yy_tmp->user && yy_tmp->host);
5106 <
5107 <      if (yy_aconf->passwd != NULL)
5108 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5109 <      if (yy_conf->name != NULL)
5110 <        DupString(new_conf->name, yy_conf->name);
5111 <      if (yy_aconf->passwd != NULL)
5112 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5113 <
5114 <      new_aconf->flags = yy_aconf->flags;
5115 <      new_aconf->port  = yy_aconf->port;
5116 <
5117 <      DupString(new_aconf->user, yy_tmp->user);
5118 <      collapse(new_aconf->user);
5119 <
5120 <      DupString(new_aconf->host, yy_tmp->host);
5121 <      collapse(new_aconf->host);
5122 <
5123 <      conf_add_class_to_conf(new_conf, class_name);
5124 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5125 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5126 <      free_collect_item(yy_tmp);
5127 <    }
5128 <
5129 <    MyFree(class_name);
5130 <    class_name = NULL;
5131 <    yy_conf = NULL;
5132 <    yy_aconf = NULL;
5133 <  }
5134 < }
4572 >  if (conf_parser_ctx.pass != 2)
4573      break;
4574  
4575 <  case 265:
5138 <
5139 < /* Line 1464 of yacc.c  */
5140 < #line 1706 "ircd_parser.y"
5141 <    {
5142 <  if (conf_parser_ctx.pass == 2)
4575 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4576    {
4577 <    struct CollectItem *yy_tmp = NULL;
4577 >    struct MaskItem *conf = NULL;
4578      struct split_nuh_item nuh;
4579  
4580 <    nuh.nuhmask  = yylval.string;
4580 >    nuh.nuhmask  = ptr->data;
4581      nuh.nickptr  = NULL;
4582 <    nuh.userptr  = userbuf;
4583 <    nuh.hostptr  = hostbuf;
5151 <
4582 >    nuh.userptr  = block_state.user.buf;
4583 >    nuh.hostptr  = block_state.host.buf;
4584      nuh.nicksize = 0;
4585 <    nuh.usersize = sizeof(userbuf);
4586 <    nuh.hostsize = sizeof(hostbuf);
5155 <
4585 >    nuh.usersize = sizeof(block_state.user.buf);
4586 >    nuh.hostsize = sizeof(block_state.host.buf);
4587      split_nuh(&nuh);
4588  
4589 <    if (yy_aconf->user == NULL)
4590 <    {
4591 <      DupString(yy_aconf->user, userbuf);
5161 <      DupString(yy_aconf->host, hostbuf);
5162 <    }
5163 <    else
5164 <    {
5165 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4589 >    conf        = conf_make(CONF_CLIENT);
4590 >    conf->user  = xstrdup(block_state.user.buf);
4591 >    conf->host  = xstrdup(block_state.host.buf);
4592  
4593 <      DupString(yy_tmp->user, userbuf);
4594 <      DupString(yy_tmp->host, hostbuf);
4593 >    if (block_state.rpass.buf[0])
4594 >      conf->passwd = xstrdup(block_state.rpass.buf);
4595 >    if (block_state.name.buf[0])
4596 >      conf->name = xstrdup(block_state.name.buf);
4597  
4598 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4599 <    }
4598 >    conf->flags = block_state.flags.value;
4599 >    conf->port  = block_state.port.value;
4600 >
4601 >    conf_add_class_to_conf(conf, block_state.class.buf);
4602 >    add_conf_by_address(CONF_CLIENT, conf);
4603    }
4604   }
4605 + #line 4606 "conf_parser.c" /* yacc.c:1646  */
4606      break;
4607  
4608 <  case 266:
4609 <
5178 < /* Line 1464 of yacc.c  */
5179 < #line 1743 "ircd_parser.y"
4608 >  case 304:
4609 > #line 1704 "conf_parser.y" /* yacc.c:1646  */
4610      {
4611    if (conf_parser_ctx.pass == 2)
4612 <  {
5183 <    /* be paranoid */
5184 <    if (yy_aconf->passwd != NULL)
5185 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5186 <
5187 <    MyFree(yy_aconf->passwd);
5188 <    DupString(yy_aconf->passwd, yylval.string);
5189 <  }
4612 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4613   }
4614 + #line 4615 "conf_parser.c" /* yacc.c:1646  */
4615      break;
4616  
4617 <  case 267:
4618 <
5195 < /* Line 1464 of yacc.c  */
5196 < #line 1756 "ircd_parser.y"
4617 >  case 305:
4618 > #line 1710 "conf_parser.y" /* yacc.c:1646  */
4619      {
4620    if (conf_parser_ctx.pass == 2)
4621 <  {
5200 <    MyFree(class_name);
5201 <    DupString(class_name, yylval.string);
5202 <  }
4621 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4622   }
4623 + #line 4624 "conf_parser.c" /* yacc.c:1646  */
4624      break;
4625  
4626 <  case 268:
4626 >  case 306:
4627 > #line 1716 "conf_parser.y" /* yacc.c:1646  */
4628 >    {
4629 >  if (conf_parser_ctx.pass == 2)
4630 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4631 > }
4632 > #line 4633 "conf_parser.c" /* yacc.c:1646  */
4633 >    break;
4634  
4635 < /* Line 1464 of yacc.c  */
4636 < #line 1765 "ircd_parser.y"
4635 >  case 307:
4636 > #line 1722 "conf_parser.y" /* yacc.c:1646  */
4637      {
4638    if (conf_parser_ctx.pass == 2)
4639    {
4640      if (yylval.number)
4641 <      SetConfEncrypted(yy_aconf);
4641 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4642      else
4643 <      ClearConfEncrypted(yy_aconf);
4643 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4644    }
4645   }
4646 + #line 4647 "conf_parser.c" /* yacc.c:1646  */
4647      break;
4648  
4649 <  case 269:
4650 <
5223 < /* Line 1464 of yacc.c  */
5224 < #line 1776 "ircd_parser.y"
4649 >  case 308:
4650 > #line 1733 "conf_parser.y" /* yacc.c:1646  */
4651      {
4652 +  if (conf_parser_ctx.pass == 2)
4653 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4654   }
4655 + #line 4656 "conf_parser.c" /* yacc.c:1646  */
4656      break;
4657  
4658 <  case 273:
4659 <
4660 < /* Line 1464 of yacc.c  */
4661 < #line 1780 "ircd_parser.y"
4662 <    { not_atom = 1; }
4663 <    break;
4664 <
5236 <  case 275:
5237 <
5238 < /* Line 1464 of yacc.c  */
5239 < #line 1781 "ircd_parser.y"
5240 <    { not_atom = 0; }
4658 >  case 312:
4659 > #line 1740 "conf_parser.y" /* yacc.c:1646  */
4660 >    {
4661 >  if (conf_parser_ctx.pass == 2)
4662 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4663 > }
4664 > #line 4665 "conf_parser.c" /* yacc.c:1646  */
4665      break;
4666  
4667 <  case 277:
4668 <
5245 < /* Line 1464 of yacc.c  */
5246 < #line 1784 "ircd_parser.y"
4667 >  case 313:
4668 > #line 1744 "conf_parser.y" /* yacc.c:1646  */
4669      {
4670    if (conf_parser_ctx.pass == 2)
4671 <  {
5250 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5251 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5252 <  }
4671 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4672   }
4673 + #line 4674 "conf_parser.c" /* yacc.c:1646  */
4674      break;
4675  
4676 <  case 278:
4677 <
5258 < /* Line 1464 of yacc.c  */
5259 < #line 1791 "ircd_parser.y"
4676 >  case 314:
4677 > #line 1748 "conf_parser.y" /* yacc.c:1646  */
4678      {
4679    if (conf_parser_ctx.pass == 2)
4680 <  {
5263 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5264 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5265 <  }
4680 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4681   }
4682 + #line 4683 "conf_parser.c" /* yacc.c:1646  */
4683      break;
4684  
4685 <  case 279:
4686 <
5271 < /* Line 1464 of yacc.c  */
5272 < #line 1798 "ircd_parser.y"
4685 >  case 315:
4686 > #line 1752 "conf_parser.y" /* yacc.c:1646  */
4687      {
4688    if (conf_parser_ctx.pass == 2)
4689 <  {
5276 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5277 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5278 <  }
4689 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4690   }
4691 + #line 4692 "conf_parser.c" /* yacc.c:1646  */
4692      break;
4693  
4694 <  case 280:
4695 <
5284 < /* Line 1464 of yacc.c  */
5285 < #line 1805 "ircd_parser.y"
4694 >  case 316:
4695 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4696      {
4697    if (conf_parser_ctx.pass == 2)
4698 <  {
5289 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5290 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5291 <  }
4698 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4699   }
4700 + #line 4701 "conf_parser.c" /* yacc.c:1646  */
4701      break;
4702  
4703 <  case 281:
4704 <
5297 < /* Line 1464 of yacc.c  */
5298 < #line 1812 "ircd_parser.y"
4703 >  case 317:
4704 > #line 1760 "conf_parser.y" /* yacc.c:1646  */
4705      {
4706    if (conf_parser_ctx.pass == 2)
4707 <  {
5302 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5303 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5304 <  }
4707 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4708   }
4709 + #line 4710 "conf_parser.c" /* yacc.c:1646  */
4710      break;
4711  
4712 <  case 282:
4713 <
5310 < /* Line 1464 of yacc.c  */
5311 < #line 1819 "ircd_parser.y"
4712 >  case 318:
4713 > #line 1764 "conf_parser.y" /* yacc.c:1646  */
4714      {
4715    if (conf_parser_ctx.pass == 2)
4716 <  {
5315 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5316 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5317 <  }
4716 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4717   }
4718 + #line 4719 "conf_parser.c" /* yacc.c:1646  */
4719      break;
4720  
4721 <  case 283:
4722 <
5323 < /* Line 1464 of yacc.c  */
5324 < #line 1826 "ircd_parser.y"
4721 >  case 319:
4722 > #line 1768 "conf_parser.y" /* yacc.c:1646  */
4723      {
4724    if (conf_parser_ctx.pass == 2)
4725 <  {
5328 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5329 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5330 <  }
4725 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4726   }
4727 + #line 4728 "conf_parser.c" /* yacc.c:1646  */
4728      break;
4729  
4730 <  case 284:
4731 <
5336 < /* Line 1464 of yacc.c  */
5337 < #line 1833 "ircd_parser.y"
4730 >  case 320:
4731 > #line 1772 "conf_parser.y" /* yacc.c:1646  */
4732      {
4733    if (conf_parser_ctx.pass == 2)
4734 <  {
5341 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5342 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5343 <  }
4734 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4735   }
4736 + #line 4737 "conf_parser.c" /* yacc.c:1646  */
4737      break;
4738  
4739 <  case 285:
4740 <
5349 < /* Line 1464 of yacc.c  */
5350 < #line 1840 "ircd_parser.y"
4739 >  case 321:
4740 > #line 1776 "conf_parser.y" /* yacc.c:1646  */
4741      {
4742    if (conf_parser_ctx.pass == 2)
4743 <  {
5354 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5355 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5356 <  }
4743 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4744   }
4745 + #line 4746 "conf_parser.c" /* yacc.c:1646  */
4746      break;
4747  
4748 <  case 286:
4749 <
5362 < /* Line 1464 of yacc.c  */
5363 < #line 1847 "ircd_parser.y"
4748 >  case 322:
4749 > #line 1782 "conf_parser.y" /* yacc.c:1646  */
4750      {
4751 <  if (conf_parser_ctx.pass == 2)
4751 >  if (conf_parser_ctx.pass != 2)
4752 >    break;
4753 >
4754 >  if (valid_hostname(yylval.string))
4755    {
4756 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
4757 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4756 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4757 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4758    }
4759 +  else
4760 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4761   }
4762 + #line 4763 "conf_parser.c" /* yacc.c:1646  */
4763      break;
4764  
4765 <  case 287:
4766 <
5375 < /* Line 1464 of yacc.c  */
5376 < #line 1857 "ircd_parser.y"
4765 >  case 323:
4766 > #line 1796 "conf_parser.y" /* yacc.c:1646  */
4767      {
4768 <  if (conf_parser_ctx.pass == 2)
4769 <  {
5380 <    MyFree(yy_conf->name);
4768 >  if (conf_parser_ctx.pass != 2)
4769 >    break;
4770  
4771 <    if (strlen(yylval.string) < HOSTLEN)
4772 <    {    
5384 <      DupString(yy_conf->name, yylval.string);
5385 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5386 <    }
5387 <    else
5388 <    {
5389 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5390 <      yy_conf->name = NULL;
5391 <    }
5392 <  }
4771 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4772 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4773   }
4774 + #line 4775 "conf_parser.c" /* yacc.c:1646  */
4775      break;
4776  
4777 <  case 288:
4778 <
5398 < /* Line 1464 of yacc.c  */
5399 < #line 1876 "ircd_parser.y"
4777 >  case 324:
4778 > #line 1805 "conf_parser.y" /* yacc.c:1646  */
4779      {
4780 <  if (conf_parser_ctx.pass == 2)
5402 <  {
5403 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5404 <    MyFree(yy_conf->name);
5405 <    DupString(yy_conf->name, yylval.string);
5406 <  }
5407 < }
4780 >  if (conf_parser_ctx.pass != 2)
4781      break;
4782  
4783 <  case 289:
4783 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4784 >  block_state.port.value = (yyvsp[-1].number);
4785 > }
4786 > #line 4787 "conf_parser.c" /* yacc.c:1646  */
4787 >    break;
4788  
4789 < /* Line 1464 of yacc.c  */
4790 < #line 1886 "ircd_parser.y"
4789 >  case 325:
4790 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4791      {
4792 <  if (conf_parser_ctx.pass == 2)
5416 <  {
5417 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5418 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5419 <  }
5420 < }
4792 >  if (conf_parser_ctx.pass != 2)
4793      break;
4794  
4795 <  case 290:
4795 >  reset_block_state();
4796 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4797 > }
4798 > #line 4799 "conf_parser.c" /* yacc.c:1646  */
4799 >    break;
4800  
4801 < /* Line 1464 of yacc.c  */
4802 < #line 1899 "ircd_parser.y"
4801 >  case 326:
4802 > #line 1825 "conf_parser.y" /* yacc.c:1646  */
4803      {
4804 <  if (conf_parser_ctx.pass == 2)
5429 <  {
5430 <    MyFree(resv_reason);
5431 <    resv_reason = NULL;
5432 <  }
5433 < }
4804 >  if (conf_parser_ctx.pass != 2)
4805      break;
4806  
4807 <  case 291:
4807 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4808 > }
4809 > #line 4810 "conf_parser.c" /* yacc.c:1646  */
4810 >    break;
4811  
4812 < /* Line 1464 of yacc.c  */
4813 < #line 1906 "ircd_parser.y"
4812 >  case 333:
4813 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4814      {
4815    if (conf_parser_ctx.pass == 2)
4816 <  {
5443 <    MyFree(resv_reason);
5444 <    resv_reason = NULL;
5445 <  }
4816 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4817   }
4818 + #line 4819 "conf_parser.c" /* yacc.c:1646  */
4819      break;
4820  
4821 <  case 298:
4822 <
5451 < /* Line 1464 of yacc.c  */
5452 < #line 1918 "ircd_parser.y"
4821 >  case 334:
4822 > #line 1842 "conf_parser.y" /* yacc.c:1646  */
4823      {
4824    if (conf_parser_ctx.pass == 2)
4825 <  {
5456 <    MyFree(resv_reason);
5457 <    DupString(resv_reason, yylval.string);
5458 <  }
4825 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4826   }
4827 + #line 4828 "conf_parser.c" /* yacc.c:1646  */
4828      break;
4829  
4830 <  case 299:
4831 <
5464 < /* Line 1464 of yacc.c  */
5465 < #line 1927 "ircd_parser.y"
4830 >  case 335:
4831 > #line 1848 "conf_parser.y" /* yacc.c:1646  */
4832      {
4833    if (conf_parser_ctx.pass == 2)
4834 <  {
5469 <    if (IsChanPrefix(*yylval.string))
5470 <    {
5471 <      char def_reason[] = "No reason";
5472 <
5473 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5474 <    }
5475 <  }
5476 <  /* ignore it for now.. but we really should make a warning if
5477 <   * its an erroneous name --fl_ */
4834 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4835   }
4836 + #line 4837 "conf_parser.c" /* yacc.c:1646  */
4837      break;
4838  
4839 <  case 300:
4840 <
5483 < /* Line 1464 of yacc.c  */
5484 < #line 1942 "ircd_parser.y"
4839 >  case 341:
4840 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4841      {
4842 <  if (conf_parser_ctx.pass == 2)
4843 <  {
5488 <    char def_reason[] = "No reason";
4842 >  if (conf_parser_ctx.pass != 2)
4843 >    break;
4844  
4845 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4845 >  if (valid_servname(yylval.string))
4846 >  {
4847 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4848 >    conf->name = xstrdup(yylval.string);
4849    }
4850   }
4851 + #line 4852 "conf_parser.c" /* yacc.c:1646  */
4852      break;
4853  
4854 <  case 301:
4855 <
5497 < /* Line 1464 of yacc.c  */
5498 < #line 1955 "ircd_parser.y"
4854 >  case 342:
4855 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4856      {
4857 <  if (conf_parser_ctx.pass == 2)
5501 <  {
5502 <    yy_conf = make_conf_item(ULINE_TYPE);
5503 <    yy_match_item = map_to_conf(yy_conf);
5504 <    yy_match_item->action = SHARED_ALL;
5505 <  }
5506 < }
4857 >  if (conf_parser_ctx.pass != 2)
4858      break;
4859  
4860 <  case 302:
4860 >  reset_block_state();
4861  
4862 < /* Line 1464 of yacc.c  */
4863 < #line 1963 "ircd_parser.y"
4864 <    {
4865 <  if (conf_parser_ctx.pass == 2)
5515 <  {
5516 <    yy_conf = NULL;
5517 <  }
4862 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4863 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4864 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4865 >  block_state.flags.value = SHARED_ALL;
4866   }
4867 + #line 4868 "conf_parser.c" /* yacc.c:1646  */
4868      break;
4869  
4870 <  case 309:
4870 >  case 343:
4871 > #line 1889 "conf_parser.y" /* yacc.c:1646  */
4872 >    {
4873 >  struct MaskItem *conf = NULL;
4874  
4875 < /* Line 1464 of yacc.c  */
4876 < #line 1974 "ircd_parser.y"
4875 >  if (conf_parser_ctx.pass != 2)
4876 >    break;
4877 >
4878 >  conf = conf_make(CONF_ULINE);
4879 >  conf->flags = block_state.flags.value;
4880 >  conf->name = xstrdup(block_state.name.buf);
4881 >  conf->user = xstrdup(block_state.user.buf);
4882 >  conf->host = xstrdup(block_state.host.buf);
4883 > }
4884 > #line 4885 "conf_parser.c" /* yacc.c:1646  */
4885 >    break;
4886 >
4887 >  case 350:
4888 > #line 1906 "conf_parser.y" /* yacc.c:1646  */
4889      {
4890    if (conf_parser_ctx.pass == 2)
4891 <  {
5528 <    MyFree(yy_conf->name);
5529 <    DupString(yy_conf->name, yylval.string);
5530 <  }
4891 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4892   }
4893 + #line 4894 "conf_parser.c" /* yacc.c:1646  */
4894      break;
4895  
4896 <  case 310:
4897 <
5536 < /* Line 1464 of yacc.c  */
5537 < #line 1983 "ircd_parser.y"
4896 >  case 351:
4897 > #line 1912 "conf_parser.y" /* yacc.c:1646  */
4898      {
4899    if (conf_parser_ctx.pass == 2)
4900    {
# Line 5542 | Line 4902 | yyreduce:
4902  
4903      nuh.nuhmask  = yylval.string;
4904      nuh.nickptr  = NULL;
4905 <    nuh.userptr  = userbuf;
4906 <    nuh.hostptr  = hostbuf;
4905 >    nuh.userptr  = block_state.user.buf;
4906 >    nuh.hostptr  = block_state.host.buf;
4907  
4908      nuh.nicksize = 0;
4909 <    nuh.usersize = sizeof(userbuf);
4910 <    nuh.hostsize = sizeof(hostbuf);
4909 >    nuh.usersize = sizeof(block_state.user.buf);
4910 >    nuh.hostsize = sizeof(block_state.host.buf);
4911  
4912      split_nuh(&nuh);
5553
5554    DupString(yy_match_item->user, userbuf);
5555    DupString(yy_match_item->host, hostbuf);
4913    }
4914   }
4915 + #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918 <  case 311:
4919 <
5562 < /* Line 1464 of yacc.c  */
5563 < #line 2005 "ircd_parser.y"
4918 >  case 352:
4919 > #line 1931 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922 <    yy_match_item->action = 0;
4922 >    block_state.flags.value = 0;
4923   }
4924 + #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927 <  case 315:
4928 <
5572 < /* Line 1464 of yacc.c  */
5573 < #line 2012 "ircd_parser.y"
4927 >  case 356:
4928 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931 <    yy_match_item->action |= SHARED_KLINE;
4931 >    block_state.flags.value |= SHARED_KLINE;
4932   }
4933 + #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936 <  case 316:
4937 <
5582 < /* Line 1464 of yacc.c  */
5583 < #line 2016 "ircd_parser.y"
4936 >  case 357:
4937 > #line 1942 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940 <    yy_match_item->action |= SHARED_TKLINE;
4940 >    block_state.flags.value |= SHARED_UNKLINE;
4941   }
4942 + #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945 <  case 317:
4946 <
5592 < /* Line 1464 of yacc.c  */
5593 < #line 2020 "ircd_parser.y"
4945 >  case 358:
4946 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949 <    yy_match_item->action |= SHARED_UNKLINE;
4949 >    block_state.flags.value |= SHARED_DLINE;
4950   }
4951 + #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954 <  case 318:
4955 <
5602 < /* Line 1464 of yacc.c  */
5603 < #line 2024 "ircd_parser.y"
4954 >  case 359:
4955 > #line 1950 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958 <    yy_match_item->action |= SHARED_XLINE;
4958 >    block_state.flags.value |= SHARED_UNDLINE;
4959   }
4960 + #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963 <  case 319:
4964 <
5612 < /* Line 1464 of yacc.c  */
5613 < #line 2028 "ircd_parser.y"
4963 >  case 360:
4964 > #line 1954 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967 <    yy_match_item->action |= SHARED_TXLINE;
4967 >    block_state.flags.value |= SHARED_XLINE;
4968   }
4969 + #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972 <  case 320:
4973 <
5622 < /* Line 1464 of yacc.c  */
5623 < #line 2032 "ircd_parser.y"
4972 >  case 361:
4973 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass == 2)
4976 <    yy_match_item->action |= SHARED_UNXLINE;
4976 >    block_state.flags.value |= SHARED_UNXLINE;
4977   }
4978 + #line 4979 "conf_parser.c" /* yacc.c:1646  */
4979      break;
4980  
4981 <  case 321:
4982 <
5632 < /* Line 1464 of yacc.c  */
5633 < #line 2036 "ircd_parser.y"
4981 >  case 362:
4982 > #line 1962 "conf_parser.y" /* yacc.c:1646  */
4983      {
4984    if (conf_parser_ctx.pass == 2)
4985 <    yy_match_item->action |= SHARED_RESV;
4985 >    block_state.flags.value |= SHARED_RESV;
4986   }
4987 + #line 4988 "conf_parser.c" /* yacc.c:1646  */
4988      break;
4989  
4990 <  case 322:
4991 <
5642 < /* Line 1464 of yacc.c  */
5643 < #line 2040 "ircd_parser.y"
4990 >  case 363:
4991 > #line 1966 "conf_parser.y" /* yacc.c:1646  */
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    yy_match_item->action |= SHARED_TRESV;
4994 >    block_state.flags.value |= SHARED_UNRESV;
4995   }
4996 + #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999 <  case 323:
5000 <
5652 < /* Line 1464 of yacc.c  */
5653 < #line 2044 "ircd_parser.y"
4999 >  case 364:
5000 > #line 1970 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action |= SHARED_UNRESV;
5003 >    block_state.flags.value |= SHARED_LOCOPS;
5004   }
5005 + #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 324:
5009 <
5662 < /* Line 1464 of yacc.c  */
5663 < #line 2048 "ircd_parser.y"
5008 >  case 365:
5009 > #line 1974 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action |= SHARED_LOCOPS;
5012 >    block_state.flags.value = SHARED_ALL;
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 325:
5018 <
5672 < /* Line 1464 of yacc.c  */
5673 < #line 2052 "ircd_parser.y"
5017 >  case 366:
5018 > #line 1983 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020 <  if (conf_parser_ctx.pass == 2)
5676 <    yy_match_item->action = SHARED_ALL;
5677 < }
5020 >  if (conf_parser_ctx.pass != 2)
5021      break;
5022  
5023 <  case 326:
5023 >  reset_block_state();
5024  
5025 < /* Line 1464 of yacc.c  */
5026 < #line 2061 "ircd_parser.y"
5684 <    {
5685 <  if (conf_parser_ctx.pass == 2)
5686 <  {
5687 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5688 <    yy_conf->flags = SHARED_ALL;
5689 <  }
5025 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5026 >  block_state.flags.value = SHARED_ALL;
5027   }
5028 + #line 5029 "conf_parser.c" /* yacc.c:1646  */
5029      break;
5030  
5031 <  case 327:
5032 <
5695 < /* Line 1464 of yacc.c  */
5696 < #line 2068 "ircd_parser.y"
5031 >  case 367:
5032 > #line 1992 "conf_parser.y" /* yacc.c:1646  */
5033      {
5034 <  if (conf_parser_ctx.pass == 2)
5699 <  {
5700 <    if (yy_conf->name == NULL)
5701 <      DupString(yy_conf->name, "*");
5702 <    yy_conf = NULL;
5703 <  }
5704 < }
5705 <    break;
5706 <
5707 <  case 333:
5034 >  struct MaskItem *conf = NULL;
5035  
5036 < /* Line 1464 of yacc.c  */
5710 < #line 2081 "ircd_parser.y"
5711 <    {
5712 <  if (conf_parser_ctx.pass == 2)
5713 <    DupString(yy_conf->name, yylval.string);
5714 < }
5036 >  if (conf_parser_ctx.pass != 2)
5037      break;
5038  
5039 <  case 334:
5040 <
5041 < /* Line 1464 of yacc.c  */
5720 < #line 2087 "ircd_parser.y"
5721 <    {
5722 <  if (conf_parser_ctx.pass == 2)
5723 <    yy_conf->flags = 0;
5039 >  conf = conf_make(CONF_CLUSTER);
5040 >  conf->flags = block_state.flags.value;
5041 >  conf->name = xstrdup(block_state.name.buf);
5042   }
5043 + #line 5044 "conf_parser.c" /* yacc.c:1646  */
5044      break;
5045  
5046 <  case 338:
5047 <
5729 < /* Line 1464 of yacc.c  */
5730 < #line 2094 "ircd_parser.y"
5046 >  case 373:
5047 > #line 2007 "conf_parser.y" /* yacc.c:1646  */
5048      {
5049    if (conf_parser_ctx.pass == 2)
5050 <    yy_conf->flags |= SHARED_KLINE;
5050 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5051   }
5052 + #line 5053 "conf_parser.c" /* yacc.c:1646  */
5053      break;
5054  
5055 <  case 339:
5056 <
5739 < /* Line 1464 of yacc.c  */
5740 < #line 2098 "ircd_parser.y"
5055 >  case 374:
5056 > #line 2013 "conf_parser.y" /* yacc.c:1646  */
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059 <    yy_conf->flags |= SHARED_TKLINE;
5059 >    block_state.flags.value = 0;
5060   }
5061 + #line 5062 "conf_parser.c" /* yacc.c:1646  */
5062      break;
5063  
5064 <  case 340:
5065 <
5749 < /* Line 1464 of yacc.c  */
5750 < #line 2102 "ircd_parser.y"
5064 >  case 378:
5065 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5066      {
5067    if (conf_parser_ctx.pass == 2)
5068 <    yy_conf->flags |= SHARED_UNKLINE;
5068 >    block_state.flags.value |= SHARED_KLINE;
5069   }
5070 + #line 5071 "conf_parser.c" /* yacc.c:1646  */
5071      break;
5072  
5073 <  case 341:
5074 <
5759 < /* Line 1464 of yacc.c  */
5760 < #line 2106 "ircd_parser.y"
5073 >  case 379:
5074 > #line 2024 "conf_parser.y" /* yacc.c:1646  */
5075      {
5076    if (conf_parser_ctx.pass == 2)
5077 <    yy_conf->flags |= SHARED_XLINE;
5077 >    block_state.flags.value |= SHARED_UNKLINE;
5078   }
5079 + #line 5080 "conf_parser.c" /* yacc.c:1646  */
5080      break;
5081  
5082 <  case 342:
5083 <
5769 < /* Line 1464 of yacc.c  */
5770 < #line 2110 "ircd_parser.y"
5082 >  case 380:
5083 > #line 2028 "conf_parser.y" /* yacc.c:1646  */
5084      {
5085    if (conf_parser_ctx.pass == 2)
5086 <    yy_conf->flags |= SHARED_TXLINE;
5086 >    block_state.flags.value |= SHARED_DLINE;
5087   }
5088 + #line 5089 "conf_parser.c" /* yacc.c:1646  */
5089      break;
5090  
5091 <  case 343:
5092 <
5779 < /* Line 1464 of yacc.c  */
5780 < #line 2114 "ircd_parser.y"
5091 >  case 381:
5092 > #line 2032 "conf_parser.y" /* yacc.c:1646  */
5093      {
5094    if (conf_parser_ctx.pass == 2)
5095 <    yy_conf->flags |= SHARED_UNXLINE;
5095 >    block_state.flags.value |= SHARED_UNDLINE;
5096   }
5097 + #line 5098 "conf_parser.c" /* yacc.c:1646  */
5098      break;
5099  
5100 <  case 344:
5101 <
5789 < /* Line 1464 of yacc.c  */
5790 < #line 2118 "ircd_parser.y"
5100 >  case 382:
5101 > #line 2036 "conf_parser.y" /* yacc.c:1646  */
5102      {
5103    if (conf_parser_ctx.pass == 2)
5104 <    yy_conf->flags |= SHARED_RESV;
5104 >    block_state.flags.value |= SHARED_XLINE;
5105   }
5106 + #line 5107 "conf_parser.c" /* yacc.c:1646  */
5107      break;
5108  
5109 <  case 345:
5110 <
5799 < /* Line 1464 of yacc.c  */
5800 < #line 2122 "ircd_parser.y"
5109 >  case 383:
5110 > #line 2040 "conf_parser.y" /* yacc.c:1646  */
5111      {
5112    if (conf_parser_ctx.pass == 2)
5113 <    yy_conf->flags |= SHARED_TRESV;
5113 >    block_state.flags.value |= SHARED_UNXLINE;
5114   }
5115 + #line 5116 "conf_parser.c" /* yacc.c:1646  */
5116      break;
5117  
5118 <  case 346:
5119 <
5809 < /* Line 1464 of yacc.c  */
5810 < #line 2126 "ircd_parser.y"
5118 >  case 384:
5119 > #line 2044 "conf_parser.y" /* yacc.c:1646  */
5120      {
5121    if (conf_parser_ctx.pass == 2)
5122 <    yy_conf->flags |= SHARED_UNRESV;
5122 >    block_state.flags.value |= SHARED_RESV;
5123   }
5124 + #line 5125 "conf_parser.c" /* yacc.c:1646  */
5125      break;
5126  
5127 <  case 347:
5128 <
5819 < /* Line 1464 of yacc.c  */
5820 < #line 2130 "ircd_parser.y"
5127 >  case 385:
5128 > #line 2048 "conf_parser.y" /* yacc.c:1646  */
5129      {
5130    if (conf_parser_ctx.pass == 2)
5131 <    yy_conf->flags |= SHARED_LOCOPS;
5131 >    block_state.flags.value |= SHARED_UNRESV;
5132   }
5133 + #line 5134 "conf_parser.c" /* yacc.c:1646  */
5134      break;
5135  
5136 <  case 348:
5137 <
5829 < /* Line 1464 of yacc.c  */
5830 < #line 2134 "ircd_parser.y"
5136 >  case 386:
5137 > #line 2052 "conf_parser.y" /* yacc.c:1646  */
5138      {
5139    if (conf_parser_ctx.pass == 2)
5140 <    yy_conf->flags = SHARED_ALL;
5140 >    block_state.flags.value |= SHARED_LOCOPS;
5141   }
5142 + #line 5143 "conf_parser.c" /* yacc.c:1646  */
5143      break;
5144  
5145 <  case 349:
5146 <
5839 < /* Line 1464 of yacc.c  */
5840 < #line 2143 "ircd_parser.y"
5145 >  case 387:
5146 > #line 2056 "conf_parser.y" /* yacc.c:1646  */
5147      {
5148    if (conf_parser_ctx.pass == 2)
5149 <  {
5844 <    yy_conf = make_conf_item(SERVER_TYPE);
5845 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
5846 <    yy_aconf->passwd = NULL;
5847 <    /* defaults */
5848 <    yy_aconf->port = PORTNUM;
5849 <
5850 <    if (ConfigFileEntry.burst_away)
5851 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
5852 <  }
5853 <  else
5854 <  {
5855 <    MyFree(class_name);
5856 <    class_name = NULL;
5857 <  }
5149 >    block_state.flags.value = SHARED_ALL;
5150   }
5151 + #line 5152 "conf_parser.c" /* yacc.c:1646  */
5152      break;
5153  
5154 <  case 350:
5155 <
5863 < /* Line 1464 of yacc.c  */
5864 < #line 2161 "ircd_parser.y"
5154 >  case 388:
5155 > #line 2065 "conf_parser.y" /* yacc.c:1646  */
5156      {
5866  if (conf_parser_ctx.pass == 2)
5867  {
5868    struct CollectItem *yy_hconf=NULL;
5869    struct CollectItem *yy_lconf=NULL;
5870    dlink_node *ptr;
5871    dlink_node *next_ptr;
5872 #ifdef HAVE_LIBCRYPTO
5873    if (yy_aconf->host &&
5874        ((yy_aconf->passwd && yy_aconf->spasswd) ||
5875         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
5876 #else /* !HAVE_LIBCRYPTO */
5877      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
5878          yy_aconf->passwd && yy_aconf->spasswd)
5879 #endif /* !HAVE_LIBCRYPTO */
5880        {
5881          if (conf_add_server(yy_conf, class_name) == -1)
5882          {
5883            delete_conf_item(yy_conf);
5884            yy_conf = NULL;
5885            yy_aconf = NULL;
5886          }
5887        }
5888        else
5889        {
5890          /* Even if yy_conf ->name is NULL
5891           * should still unhook any hub/leaf confs still pending
5892           */
5893          unhook_hub_leaf_confs();
5894
5895          if (yy_conf->name != NULL)
5896          {
5897 #ifndef HAVE_LIBCRYPTO
5898            if (IsConfCryptLink(yy_aconf))
5899              yyerror("Ignoring connect block -- no OpenSSL support");
5900 #else
5901            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
5902              yyerror("Ignoring connect block -- missing key");
5903 #endif
5904            if (yy_aconf->host == NULL)
5905              yyerror("Ignoring connect block -- missing host");
5906            else if (!IsConfCryptLink(yy_aconf) &&
5907                    (!yy_aconf->passwd || !yy_aconf->spasswd))
5908              yyerror("Ignoring connect block -- missing password");
5909          }
5910
5911
5912          /* XXX
5913           * This fixes a try_connections() core (caused by invalid class_ptr
5914           * pointers) reported by metalrock. That's an ugly fix, but there
5915           * is currently no better way. The entire config subsystem needs an
5916           * rewrite ASAP. make_conf_item() shouldn't really add things onto
5917           * a doubly linked list immediately without any sanity checks!  -Michael
5918           */
5919          delete_conf_item(yy_conf);
5920
5921          yy_aconf = NULL;
5922          yy_conf = NULL;
5923        }
5924
5925      /*
5926       * yy_conf is still pointing at the server that is having
5927       * a connect block built for it. This means, y_aconf->name
5928       * points to the actual irc name this server will be known as.
5929       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5930       * given in the link list at yy_hconf. Fill in the HUB confs
5931       * from this link list now.
5932       */        
5933      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5934      {
5935        struct ConfItem *new_hub_conf;
5936        struct MatchItem *match_item;
5937
5938        yy_hconf = ptr->data;
5939
5940        /* yy_conf == NULL is a fatal error for this connect block! */
5941        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5942        {
5943          new_hub_conf = make_conf_item(HUB_TYPE);
5944          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5945          DupString(new_hub_conf->name, yy_conf->name);
5946          if (yy_hconf->user != NULL)
5947            DupString(match_item->user, yy_hconf->user);
5948          else
5949            DupString(match_item->user, "*");
5950          if (yy_hconf->host != NULL)
5951            DupString(match_item->host, yy_hconf->host);
5952          else
5953            DupString(match_item->host, "*");
5954        }
5955        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5956        free_collect_item(yy_hconf);
5957      }
5958
5959      /* Ditto for the LEAF confs */
5960
5961      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5962      {
5963        struct ConfItem *new_leaf_conf;
5964        struct MatchItem *match_item;
5157  
5158 <        yy_lconf = ptr->data;
5158 >  if (conf_parser_ctx.pass != 2)
5159 >    break;
5160  
5161 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5162 <        {
5163 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5971 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5972 <          DupString(new_leaf_conf->name, yy_conf->name);
5973 <          if (yy_lconf->user != NULL)
5974 <            DupString(match_item->user, yy_lconf->user);
5975 <          else
5976 <            DupString(match_item->user, "*");
5977 <          if (yy_lconf->host != NULL)
5978 <            DupString(match_item->host, yy_lconf->host);
5979 <          else
5980 <            DupString(match_item->host, "*");
5981 <        }
5982 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5983 <        free_collect_item(yy_lconf);
5984 <      }
5985 <      MyFree(class_name);
5986 <      class_name = NULL;
5987 <      yy_conf = NULL;
5988 <      yy_aconf = NULL;
5989 <  }
5161 >  reset_block_state();
5162 >  block_state.aftype.value = AF_INET;
5163 >  block_state.port.value = PORTNUM;
5164   }
5165 + #line 5166 "conf_parser.c" /* yacc.c:1646  */
5166      break;
5167  
5168 <  case 370:
5169 <
5995 < /* Line 1464 of yacc.c  */
5996 < #line 2299 "ircd_parser.y"
5168 >  case 389:
5169 > #line 2074 "conf_parser.y" /* yacc.c:1646  */
5170      {
5171 <  if (conf_parser_ctx.pass == 2)
5172 <  {
6000 <    if (yy_conf->name != NULL)
6001 <      yyerror("Multiple connect name entry");
5171 >  struct MaskItem *conf = NULL;
5172 >  struct addrinfo hints, *res;
5173  
5174 <    MyFree(yy_conf->name);
6004 <    DupString(yy_conf->name, yylval.string);
6005 <  }
6006 < }
5174 >  if (conf_parser_ctx.pass != 2)
5175      break;
5176  
5177 <  case 371:
5177 >  if (!block_state.name.buf[0] ||
5178 >      !block_state.host.buf[0])
5179 >    break;
5180  
5181 < /* Line 1464 of yacc.c  */
5182 < #line 2311 "ircd_parser.y"
5183 <    {
6014 <  if (conf_parser_ctx.pass == 2)
6015 <  {
6016 <    if (yy_conf->name != NULL)
6017 <      yyerror("Multiple connect name entry");
5181 >  if (!block_state.rpass.buf[0] ||
5182 >      !block_state.spass.buf[0])
5183 >    break;
5184  
5185 <    MyFree(yy_conf->name);
5186 <    DupString(yy_conf->name, yylval.string);
6021 <  }
6022 < }
5185 >  if (has_wildcards(block_state.name.buf) ||
5186 >      has_wildcards(block_state.host.buf))
5187      break;
5188  
5189 <  case 372:
5189 >  conf = conf_make(CONF_SERVER);
5190 >  conf->port = block_state.port.value;
5191 >  conf->flags = block_state.flags.value;
5192 >  conf->aftype = block_state.aftype.value;
5193 >  conf->host = xstrdup(block_state.host.buf);
5194 >  conf->name = xstrdup(block_state.name.buf);
5195 >  conf->passwd = xstrdup(block_state.rpass.buf);
5196 >  conf->spasswd = xstrdup(block_state.spass.buf);
5197  
5198 < /* Line 1464 of yacc.c  */
5199 < #line 2323 "ircd_parser.y"
6029 <    {
6030 <  if (conf_parser_ctx.pass == 2)
6031 <  {
6032 <    MyFree(yy_aconf->host);
6033 <    DupString(yy_aconf->host, yylval.string);
6034 <  }
6035 < }
6036 <    break;
5198 >  if (block_state.cert.buf[0])
5199 >    conf->certfp = xstrdup(block_state.cert.buf);
5200  
5201 <  case 373:
5201 >  if (block_state.ciph.buf[0])
5202 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5203  
5204 < /* Line 1464 of yacc.c  */
5205 < #line 2332 "ircd_parser.y"
6042 <    {
6043 <  if (conf_parser_ctx.pass == 2)
6044 <  {
6045 <    struct addrinfo hints, *res;
5204 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5205 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5206  
5207 +  if (block_state.bind.buf[0])
5208 +  {
5209      memset(&hints, 0, sizeof(hints));
5210  
5211      hints.ai_family   = AF_UNSPEC;
5212      hints.ai_socktype = SOCK_STREAM;
5213      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5214  
5215 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5216 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5215 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5216 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5217      else
5218      {
5219 <      assert(res != NULL);
5219 >      assert(res);
5220  
5221 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5222 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5223 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5224 <      irc_freeaddrinfo(res);
5221 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5222 >      conf->bind.ss.ss_family = res->ai_family;
5223 >      conf->bind.ss_len = res->ai_addrlen;
5224 >      freeaddrinfo(res);
5225      }
5226    }
6065 }
6066    break;
6067
6068  case 374:
6069
6070 /* Line 1464 of yacc.c  */
6071 #line 2358 "ircd_parser.y"
6072    {
6073  if (conf_parser_ctx.pass == 2)
6074  {
6075    if ((yyvsp[(3) - (4)].string)[0] == ':')
6076      yyerror("Server passwords cannot begin with a colon");
6077    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6078      yyerror("Server passwords cannot contain spaces");
6079    else {
6080      if (yy_aconf->spasswd != NULL)
6081        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5227  
5228 <      MyFree(yy_aconf->spasswd);
5229 <      DupString(yy_aconf->spasswd, yylval.string);
6085 <    }
6086 <  }
5228 >  conf_add_class_to_conf(conf, block_state.class.buf);
5229 >  lookup_confhost(conf);
5230   }
5231 + #line 5232 "conf_parser.c" /* yacc.c:1646  */
5232      break;
5233  
5234 <  case 375:
5235 <
6092 < /* Line 1464 of yacc.c  */
6093 < #line 2376 "ircd_parser.y"
5234 >  case 407:
5235 > #line 2154 "conf_parser.y" /* yacc.c:1646  */
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <  {
6097 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6098 <      yyerror("Server passwords cannot begin with a colon");
6099 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6100 <      yyerror("Server passwords cannot contain spaces");
6101 <    else {
6102 <      if (yy_aconf->passwd != NULL)
6103 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6104 <
6105 <      MyFree(yy_aconf->passwd);
6106 <      DupString(yy_aconf->passwd, yylval.string);
6107 <    }
6108 <  }
5238 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5239   }
5240 + #line 5241 "conf_parser.c" /* yacc.c:1646  */
5241      break;
5242  
5243 <  case 376:
5244 <
6114 < /* Line 1464 of yacc.c  */
6115 < #line 2394 "ircd_parser.y"
5243 >  case 408:
5244 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5245      {
5246    if (conf_parser_ctx.pass == 2)
5247 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5247 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5248   }
5249 + #line 5250 "conf_parser.c" /* yacc.c:1646  */
5250      break;
5251  
5252 <  case 377:
5253 <
6124 < /* Line 1464 of yacc.c  */
6125 < #line 2400 "ircd_parser.y"
5252 >  case 409:
5253 > #line 2166 "conf_parser.y" /* yacc.c:1646  */
5254      {
5255    if (conf_parser_ctx.pass == 2)
5256 <    yy_aconf->aftype = AF_INET;
5256 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5257   }
5258 + #line 5259 "conf_parser.c" /* yacc.c:1646  */
5259      break;
5260  
5261 <  case 378:
5262 <
6134 < /* Line 1464 of yacc.c  */
6135 < #line 2404 "ircd_parser.y"
5261 >  case 410:
5262 > #line 2172 "conf_parser.y" /* yacc.c:1646  */
5263      {
5264 < #ifdef IPV6
6138 <  if (conf_parser_ctx.pass == 2)
6139 <    yy_aconf->aftype = AF_INET6;
6140 < #endif
6141 < }
5264 >  if (conf_parser_ctx.pass != 2)
5265      break;
5266  
5267 <  case 379:
5268 <
5269 < /* Line 1464 of yacc.c  */
5270 < #line 2412 "ircd_parser.y"
5271 <    {
5267 >  if ((yyvsp[-1].string)[0] == ':')
5268 >    conf_error_report("Server passwords cannot begin with a colon");
5269 >  else if (strchr((yyvsp[-1].string), ' '))
5270 >    conf_error_report("Server passwords cannot contain spaces");
5271 >  else
5272 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5273   }
5274 + #line 5275 "conf_parser.c" /* yacc.c:1646  */
5275      break;
5276  
5277 <  case 383:
5278 <
5279 < /* Line 1464 of yacc.c  */
5280 < #line 2416 "ircd_parser.y"
6156 <    { not_atom = 1; }
5277 >  case 411:
5278 > #line 2185 "conf_parser.y" /* yacc.c:1646  */
5279 >    {
5280 >  if (conf_parser_ctx.pass != 2)
5281      break;
5282  
5283 <  case 385:
5284 <
5285 < /* Line 1464 of yacc.c  */
5286 < #line 2417 "ircd_parser.y"
5287 <    { not_atom = 0; }
5283 >  if ((yyvsp[-1].string)[0] == ':')
5284 >    conf_error_report("Server passwords cannot begin with a colon");
5285 >  else if (strchr((yyvsp[-1].string), ' '))
5286 >    conf_error_report("Server passwords cannot contain spaces");
5287 >  else
5288 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5289 > }
5290 > #line 5291 "conf_parser.c" /* yacc.c:1646  */
5291      break;
5292  
5293 <  case 387:
5294 <
6168 < /* Line 1464 of yacc.c  */
6169 < #line 2420 "ircd_parser.y"
5293 >  case 412:
5294 > #line 2198 "conf_parser.y" /* yacc.c:1646  */
5295      {
5296    if (conf_parser_ctx.pass == 2)
5297 < #ifndef HAVE_LIBZ
6173 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6174 < #else
6175 < {
6176 <   if (not_atom)ClearConfCompressed(yy_aconf);
6177 <   else SetConfCompressed(yy_aconf);
6178 < }
6179 < #endif
5297 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5298   }
5299 + #line 5300 "conf_parser.c" /* yacc.c:1646  */
5300      break;
5301  
5302 <  case 388:
5303 <
6185 < /* Line 1464 of yacc.c  */
6186 < #line 2431 "ircd_parser.y"
5302 >  case 413:
5303 > #line 2204 "conf_parser.y" /* yacc.c:1646  */
5304      {
5305    if (conf_parser_ctx.pass == 2)
5306 <  {
6190 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6191 <    else SetConfCryptLink(yy_aconf);
6192 <  }
5306 >    block_state.port.value = (yyvsp[-1].number);
5307   }
5308 + #line 5309 "conf_parser.c" /* yacc.c:1646  */
5309      break;
5310  
5311 <  case 389:
5312 <
6198 < /* Line 1464 of yacc.c  */
6199 < #line 2438 "ircd_parser.y"
5311 >  case 414:
5312 > #line 2210 "conf_parser.y" /* yacc.c:1646  */
5313      {
5314    if (conf_parser_ctx.pass == 2)
5315 <  {
6203 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6204 <    else SetConfAllowAutoConn(yy_aconf);
6205 <  }
5315 >    block_state.aftype.value = AF_INET;
5316   }
5317 + #line 5318 "conf_parser.c" /* yacc.c:1646  */
5318      break;
5319  
5320 <  case 390:
5321 <
6211 < /* Line 1464 of yacc.c  */
6212 < #line 2445 "ircd_parser.y"
5320 >  case 415:
5321 > #line 2214 "conf_parser.y" /* yacc.c:1646  */
5322      {
5323 + #ifdef IPV6
5324    if (conf_parser_ctx.pass == 2)
5325 <  {
5326 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6217 <    else SetConfAwayBurst(yy_aconf);
6218 <  }
5325 >    block_state.aftype.value = AF_INET6;
5326 > #endif
5327   }
5328 + #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 391:
5332 <
6224 < /* Line 1464 of yacc.c  */
6225 < #line 2452 "ircd_parser.y"
5331 >  case 416:
5332 > #line 2222 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334 <  if (conf_parser_ctx.pass == 2)
6228 <  {
6229 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6230 <    else SetConfTopicBurst(yy_aconf);
6231 <  }
5334 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5335   }
5336 + #line 5337 "conf_parser.c" /* yacc.c:1646  */
5337      break;
5338  
5339 <  case 392:
5340 <
6237 < /* Line 1464 of yacc.c  */
6238 < #line 2462 "ircd_parser.y"
5339 >  case 420:
5340 > #line 2228 "conf_parser.y" /* yacc.c:1646  */
5341      {
6240 #ifdef HAVE_LIBCRYPTO
5342    if (conf_parser_ctx.pass == 2)
5343 <  {
5344 <    BIO *file;
5345 <
5346 <    if (yy_aconf->rsa_public_key != NULL)
6246 <    {
6247 <      RSA_free(yy_aconf->rsa_public_key);
6248 <      yy_aconf->rsa_public_key = NULL;
6249 <    }
6250 <
6251 <    if (yy_aconf->rsa_public_key_file != NULL)
6252 <    {
6253 <      MyFree(yy_aconf->rsa_public_key_file);
6254 <      yy_aconf->rsa_public_key_file = NULL;
6255 <    }
6256 <
6257 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6258 <
6259 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6260 <    {
6261 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6262 <      break;
6263 <    }
6264 <
6265 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
5343 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5344 > }
5345 > #line 5346 "conf_parser.c" /* yacc.c:1646  */
5346 >    break;
5347  
5348 <    if (yy_aconf->rsa_public_key == NULL)
5348 >  case 421:
5349 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5350      {
5351 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
5352 <      break;
6271 <    }
6272 <      
6273 <    BIO_set_close(file, BIO_CLOSE);
6274 <    BIO_free(file);
6275 <  }
6276 < #endif /* HAVE_LIBCRYPTO */
5351 >  if (conf_parser_ctx.pass == 2)
5352 >    block_state.flags.value |= CONF_FLAGS_SSL;
5353   }
5354 + #line 5355 "conf_parser.c" /* yacc.c:1646  */
5355      break;
5356  
5357 <  case 393:
5358 <
6282 < /* Line 1464 of yacc.c  */
6283 < #line 2503 "ircd_parser.y"
5357 >  case 422:
5358 > #line 2238 "conf_parser.y" /* yacc.c:1646  */
5359      {
5360    if (conf_parser_ctx.pass == 2)
5361    {
5362      if (yylval.number)
5363 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5363 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5364      else
5365 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5365 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5366    }
5367   }
5368 + #line 5369 "conf_parser.c" /* yacc.c:1646  */
5369      break;
5370  
5371 <  case 394:
5372 <
6297 < /* Line 1464 of yacc.c  */
6298 < #line 2514 "ircd_parser.y"
5371 >  case 423:
5372 > #line 2249 "conf_parser.y" /* yacc.c:1646  */
5373      {
5374    if (conf_parser_ctx.pass == 2)
5375 <  {
6302 <    struct CollectItem *yy_tmp;
6303 <
6304 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6305 <    DupString(yy_tmp->host, yylval.string);
6306 <    DupString(yy_tmp->user, "*");
6307 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6308 <  }
5375 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5376   }
5377 + #line 5378 "conf_parser.c" /* yacc.c:1646  */
5378      break;
5379  
5380 <  case 395:
5381 <
6314 < /* Line 1464 of yacc.c  */
6315 < #line 2527 "ircd_parser.y"
5380 >  case 424:
5381 > #line 2255 "conf_parser.y" /* yacc.c:1646  */
5382      {
5383    if (conf_parser_ctx.pass == 2)
5384 <  {
6319 <    struct CollectItem *yy_tmp;
6320 <
6321 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6322 <    DupString(yy_tmp->host, yylval.string);
6323 <    DupString(yy_tmp->user, "*");
6324 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6325 <  }
5384 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5385   }
5386 + #line 5387 "conf_parser.c" /* yacc.c:1646  */
5387      break;
5388  
5389 <  case 396:
5390 <
6331 < /* Line 1464 of yacc.c  */
6332 < #line 2540 "ircd_parser.y"
5389 >  case 425:
5390 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5391      {
5392    if (conf_parser_ctx.pass == 2)
5393 <  {
6336 <    MyFree(class_name);
6337 <    DupString(class_name, yylval.string);
6338 <  }
5393 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5394   }
5395 + #line 5396 "conf_parser.c" /* yacc.c:1646  */
5396      break;
5397  
5398 <  case 397:
5399 <
6344 < /* Line 1464 of yacc.c  */
6345 < #line 2549 "ircd_parser.y"
5398 >  case 426:
5399 > #line 2267 "conf_parser.y" /* yacc.c:1646  */
5400      {
5401   #ifdef HAVE_LIBCRYPTO
5402    if (conf_parser_ctx.pass == 2)
5403 <  {
6350 <    struct EncCapability *ecap;
6351 <    const char *cipher_name;
6352 <    int found = 0;
6353 <
6354 <    yy_aconf->cipher_preference = NULL;
6355 <    cipher_name = yylval.string;
6356 <
6357 <    for (ecap = CipherTable; ecap->name; ecap++)
6358 <    {
6359 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6360 <          (ecap->cap & CAP_ENC_MASK))
6361 <      {
6362 <        yy_aconf->cipher_preference = ecap;
6363 <        found = 1;
6364 <        break;
6365 <      }
6366 <    }
6367 <
6368 <    if (!found)
6369 <      yyerror("Invalid cipher");
6370 <  }
5403 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5404   #else
5405    if (conf_parser_ctx.pass == 2)
5406 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5406 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5407   #endif
5408   }
5409 + #line 5410 "conf_parser.c" /* yacc.c:1646  */
5410      break;
5411  
5412 <  case 398:
5413 <
6380 < /* Line 1464 of yacc.c  */
6381 < #line 2584 "ircd_parser.y"
5412 >  case 427:
5413 > #line 2282 "conf_parser.y" /* yacc.c:1646  */
5414      {
5415    if (conf_parser_ctx.pass == 2)
5416 <  {
6385 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6386 <    regex_ban = 0;
6387 <  }
5416 >    reset_block_state();
5417   }
5418 + #line 5419 "conf_parser.c" /* yacc.c:1646  */
5419      break;
5420  
5421 <  case 399:
5422 <
6393 < /* Line 1464 of yacc.c  */
6394 < #line 2591 "ircd_parser.y"
6395 <    {
6396 <  if (conf_parser_ctx.pass == 2)
6397 <  {
6398 <    if (userbuf[0] && hostbuf[0])
5421 >  case 428:
5422 > #line 2286 "conf_parser.y" /* yacc.c:1646  */
5423      {
5424 <      if (regex_ban)
6401 <      {
6402 < #ifdef HAVE_LIBPCRE
6403 <        void *exp_user = NULL;
6404 <        void *exp_host = NULL;
6405 <        const char *errptr = NULL;
5424 >  struct MaskItem *conf = NULL;
5425  
5426 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6408 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6409 <        {
6410 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6411 <               errptr);
6412 <          break;
6413 <        }
6414 <
6415 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6416 <        yy_aconf->regexuser = exp_user;
6417 <        yy_aconf->regexhost = exp_host;
6418 <
6419 <        DupString(yy_aconf->user, userbuf);
6420 <        DupString(yy_aconf->host, hostbuf);
6421 <
6422 <        if (reasonbuf[0])
6423 <          DupString(yy_aconf->reason, reasonbuf);
6424 <        else
6425 <          DupString(yy_aconf->reason, "No reason");
6426 < #else
6427 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6428 <        break;
6429 < #endif
6430 <      }
6431 <      else
6432 <      {
6433 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6434 <
6435 <        DupString(yy_aconf->user, userbuf);
6436 <        DupString(yy_aconf->host, hostbuf);
6437 <
6438 <        if (reasonbuf[0])
6439 <          DupString(yy_aconf->reason, reasonbuf);
6440 <        else
6441 <          DupString(yy_aconf->reason, "No reason");
6442 <        add_conf_by_address(CONF_KILL, yy_aconf);
6443 <      }
6444 <    }
6445 <
6446 <    yy_aconf = NULL;
6447 <  }
6448 < }
5426 >  if (conf_parser_ctx.pass != 2)
5427      break;
5428  
5429 <  case 400:
5430 <
6453 < /* Line 1464 of yacc.c  */
6454 < #line 2647 "ircd_parser.y"
6455 <    {
6456 < }
5429 >  if (!block_state.user.buf[0] ||
5430 >      !block_state.host.buf[0])
5431      break;
5432  
5433 <  case 404:
5433 >  conf = conf_make(CONF_KLINE);
5434 >  conf->user = xstrdup(block_state.user.buf);
5435 >  conf->host = xstrdup(block_state.host.buf);
5436  
5437 < /* Line 1464 of yacc.c  */
5438 < #line 2652 "ircd_parser.y"
5439 <    {
5440 <  if (conf_parser_ctx.pass == 2)
5441 <    regex_ban = 1;
5437 >  if (block_state.rpass.buf[0])
5438 >    conf->reason = xstrdup(block_state.rpass.buf);
5439 >  else
5440 >    conf->reason = xstrdup(CONF_NOREASON);
5441 >  add_conf_by_address(CONF_KLINE, conf);
5442   }
5443 + #line 5444 "conf_parser.c" /* yacc.c:1646  */
5444      break;
5445  
5446 <  case 411:
5447 <
6471 < /* Line 1464 of yacc.c  */
6472 < #line 2661 "ircd_parser.y"
5446 >  case 434:
5447 > #line 2311 "conf_parser.y" /* yacc.c:1646  */
5448      {
5449 +
5450    if (conf_parser_ctx.pass == 2)
5451    {
5452      struct split_nuh_item nuh;
5453  
5454      nuh.nuhmask  = yylval.string;
5455      nuh.nickptr  = NULL;
5456 <    nuh.userptr  = userbuf;
5457 <    nuh.hostptr  = hostbuf;
5456 >    nuh.userptr  = block_state.user.buf;
5457 >    nuh.hostptr  = block_state.host.buf;
5458  
5459      nuh.nicksize = 0;
5460 <    nuh.usersize = sizeof(userbuf);
5461 <    nuh.hostsize = sizeof(hostbuf);
5460 >    nuh.usersize = sizeof(block_state.user.buf);
5461 >    nuh.hostsize = sizeof(block_state.host.buf);
5462  
5463      split_nuh(&nuh);
5464    }
5465   }
5466 + #line 5467 "conf_parser.c" /* yacc.c:1646  */
5467      break;
5468  
5469 <  case 412:
5470 <
6494 < /* Line 1464 of yacc.c  */
6495 < #line 2680 "ircd_parser.y"
5469 >  case 435:
5470 > #line 2331 "conf_parser.y" /* yacc.c:1646  */
5471      {
5472    if (conf_parser_ctx.pass == 2)
5473 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5473 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5474   }
5475 + #line 5476 "conf_parser.c" /* yacc.c:1646  */
5476      break;
5477  
5478 <  case 413:
5479 <
6504 < /* Line 1464 of yacc.c  */
6505 < #line 2689 "ircd_parser.y"
5478 >  case 436:
5479 > #line 2340 "conf_parser.y" /* yacc.c:1646  */
5480      {
5481    if (conf_parser_ctx.pass == 2)
5482 <    hostbuf[0] = reasonbuf[0] = '\0';
5482 >    reset_block_state();
5483   }
5484 + #line 5485 "conf_parser.c" /* yacc.c:1646  */
5485      break;
5486  
5487 <  case 414:
5488 <
6514 < /* Line 1464 of yacc.c  */
6515 < #line 2693 "ircd_parser.y"
5487 >  case 437:
5488 > #line 2344 "conf_parser.y" /* yacc.c:1646  */
5489      {
5490 <  if (conf_parser_ctx.pass == 2)
6518 <  {
6519 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
6520 <    {
6521 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6522 <      DupString(yy_aconf->host, hostbuf);
5490 >  struct MaskItem *conf = NULL;
5491  
5492 <      if (reasonbuf[0])
6525 <        DupString(yy_aconf->reason, reasonbuf);
6526 <      else
6527 <        DupString(yy_aconf->reason, "No reason");
6528 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6529 <      yy_aconf = NULL;
6530 <    }
6531 <  }
6532 < }
5492 >  if (conf_parser_ctx.pass != 2)
5493      break;
5494  
5495 <  case 420:
6536 <
6537 < /* Line 1464 of yacc.c  */
6538 < #line 2715 "ircd_parser.y"
6539 <    {
6540 <  if (conf_parser_ctx.pass == 2)
6541 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
6542 < }
5495 >  if (!block_state.addr.buf[0])
5496      break;
5497  
5498 <  case 421:
5498 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5499 >  {
5500 >    conf = conf_make(CONF_DLINE);
5501 >    conf->host = xstrdup(block_state.addr.buf);
5502  
5503 < /* Line 1464 of yacc.c  */
5504 < #line 2721 "ircd_parser.y"
5505 <    {
5506 <  if (conf_parser_ctx.pass == 2)
5507 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5503 >    if (block_state.rpass.buf[0])
5504 >      conf->reason = xstrdup(block_state.rpass.buf);
5505 >    else
5506 >      conf->reason = xstrdup(CONF_NOREASON);
5507 >    add_conf_by_address(CONF_DLINE, conf);
5508 >  }
5509   }
5510 + #line 5511 "conf_parser.c" /* yacc.c:1646  */
5511      break;
5512  
5513 <  case 427:
5514 <
6557 < /* Line 1464 of yacc.c  */
6558 < #line 2735 "ircd_parser.y"
5513 >  case 443:
5514 > #line 2370 "conf_parser.y" /* yacc.c:1646  */
5515      {
5516    if (conf_parser_ctx.pass == 2)
5517 <  {
6562 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
6563 <    {
6564 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
6565 <      DupString(yy_aconf->host, yylval.string);
6566 <
6567 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6568 <      yy_aconf = NULL;
6569 <    }
6570 <  }
5517 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5518   }
5519 + #line 5520 "conf_parser.c" /* yacc.c:1646  */
5520      break;
5521  
5522 <  case 428:
5523 <
6576 < /* Line 1464 of yacc.c  */
6577 < #line 2753 "ircd_parser.y"
5522 >  case 444:
5523 > #line 2376 "conf_parser.y" /* yacc.c:1646  */
5524      {
5525    if (conf_parser_ctx.pass == 2)
5526 <  {
6581 <    regex_ban = 0;
6582 <    reasonbuf[0] = gecos_name[0] = '\0';
6583 <  }
5526 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5527   }
5528 + #line 5529 "conf_parser.c" /* yacc.c:1646  */
5529      break;
5530  
5531 <  case 429:
5532 <
6589 < /* Line 1464 of yacc.c  */
6590 < #line 2760 "ircd_parser.y"
5531 >  case 450:
5532 > #line 2390 "conf_parser.y" /* yacc.c:1646  */
5533      {
5534    if (conf_parser_ctx.pass == 2)
5535    {
5536 <    if (gecos_name[0])
5536 >    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5537      {
5538 <      if (regex_ban)
5539 <      {
6598 < #ifdef HAVE_LIBPCRE
6599 <        void *exp_p = NULL;
6600 <        const char *errptr = NULL;
6601 <
6602 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6603 <        {
6604 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
6605 <               errptr);
6606 <          break;
6607 <        }
6608 <
6609 <        yy_conf = make_conf_item(RXLINE_TYPE);
6610 <        yy_conf->regexpname = exp_p;
6611 < #else
6612 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
6613 <        break;
6614 < #endif
6615 <      }
6616 <      else
6617 <        yy_conf = make_conf_item(XLINE_TYPE);
6618 <
6619 <      yy_match_item = map_to_conf(yy_conf);
6620 <      DupString(yy_conf->name, gecos_name);
5538 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5539 >      conf->host = xstrdup(yylval.string);
5540  
5541 <      if (reasonbuf[0])
6623 <        DupString(yy_match_item->reason, reasonbuf);
6624 <      else
6625 <        DupString(yy_match_item->reason, "No reason");
5541 >      add_conf_by_address(CONF_EXEMPT, conf);
5542      }
5543    }
5544   }
5545 + #line 5546 "conf_parser.c" /* yacc.c:1646  */
5546      break;
5547  
5548 <  case 430:
5549 <
6633 < /* Line 1464 of yacc.c  */
6634 < #line 2800 "ircd_parser.y"
6635 <    {
6636 < }
6637 <    break;
6638 <
6639 <  case 434:
6640 <
6641 < /* Line 1464 of yacc.c  */
6642 < #line 2805 "ircd_parser.y"
6643 <    {
6644 <  if (conf_parser_ctx.pass == 2)
6645 <    regex_ban = 1;
6646 < }
6647 <    break;
6648 <
6649 <  case 441:
6650 <
6651 < /* Line 1464 of yacc.c  */
6652 < #line 2814 "ircd_parser.y"
6653 <    {
6654 <  if (conf_parser_ctx.pass == 2)
6655 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
6656 < }
6657 <    break;
6658 <
6659 <  case 442:
6660 <
6661 < /* Line 1464 of yacc.c  */
6662 < #line 2820 "ircd_parser.y"
5548 >  case 451:
5549 > #line 2407 "conf_parser.y" /* yacc.c:1646  */
5550      {
5551    if (conf_parser_ctx.pass == 2)
5552 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
6666 < }
6667 <    break;
6668 <
6669 <  case 502:
6670 <
6671 < /* Line 1464 of yacc.c  */
6672 < #line 2865 "ircd_parser.y"
6673 <    {
6674 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
6675 < }
6676 <    break;
6677 <
6678 <  case 503:
6679 <
6680 < /* Line 1464 of yacc.c  */
6681 < #line 2870 "ircd_parser.y"
6682 <    {
6683 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5552 >    reset_block_state();
5553   }
5554 + #line 5555 "conf_parser.c" /* yacc.c:1646  */
5555      break;
5556  
5557 <  case 504:
5558 <
6689 < /* Line 1464 of yacc.c  */
6690 < #line 2875 "ircd_parser.y"
5557 >  case 452:
5558 > #line 2411 "conf_parser.y" /* yacc.c:1646  */
5559      {
5560 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
6693 < }
6694 <    break;
5560 >  struct MaskItem *conf = NULL;
5561  
5562 <  case 505:
6697 <
6698 < /* Line 1464 of yacc.c  */
6699 < #line 2880 "ircd_parser.y"
6700 <    {
6701 <  ConfigFileEntry.burst_away = yylval.number;
6702 < }
5562 >  if (conf_parser_ctx.pass != 2)
5563      break;
5564  
5565 <  case 506:
6706 <
6707 < /* Line 1464 of yacc.c  */
6708 < #line 2885 "ircd_parser.y"
6709 <    {
6710 <  ConfigFileEntry.use_whois_actually = yylval.number;
6711 < }
6712 <    break;
6713 <
6714 <  case 507:
6715 <
6716 < /* Line 1464 of yacc.c  */
6717 < #line 2890 "ircd_parser.y"
6718 <    {
6719 <  GlobalSetOptions.rejecttime = yylval.number;
6720 < }
5565 >  if (!block_state.name.buf[0])
5566      break;
5567  
5568 <  case 508:
5568 >  conf = conf_make(CONF_XLINE);
5569 >  conf->name = xstrdup(block_state.name.buf);
5570  
5571 < /* Line 1464 of yacc.c  */
5572 < #line 2895 "ircd_parser.y"
5573 <    {
5574 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
6729 < }
6730 <    break;
6731 <
6732 <  case 509:
6733 <
6734 < /* Line 1464 of yacc.c  */
6735 < #line 2900 "ircd_parser.y"
6736 <    {
6737 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
6738 < }
6739 <    break;
6740 <
6741 <  case 510:
6742 <
6743 < /* Line 1464 of yacc.c  */
6744 < #line 2905 "ircd_parser.y"
6745 <    {
6746 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5571 >  if (block_state.rpass.buf[0])
5572 >    conf->reason = xstrdup(block_state.rpass.buf);
5573 >  else
5574 >    conf->reason = xstrdup(CONF_NOREASON);
5575   }
5576 + #line 5577 "conf_parser.c" /* yacc.c:1646  */
5577      break;
5578  
5579 <  case 511:
5580 <
6752 < /* Line 1464 of yacc.c  */
6753 < #line 2910 "ircd_parser.y"
5579 >  case 458:
5580 > #line 2433 "conf_parser.y" /* yacc.c:1646  */
5581      {
5582 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5582 >  if (conf_parser_ctx.pass == 2)
5583 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5584   }
5585 + #line 5586 "conf_parser.c" /* yacc.c:1646  */
5586      break;
5587  
5588 <  case 512:
5589 <
6761 < /* Line 1464 of yacc.c  */
6762 < #line 2915 "ircd_parser.y"
5588 >  case 459:
5589 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5590      {
5591 <  ConfigFileEntry.disable_remote = yylval.number;
5591 >  if (conf_parser_ctx.pass == 2)
5592 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5593   }
5594 + #line 5595 "conf_parser.c" /* yacc.c:1646  */
5595      break;
5596  
5597    case 513:
5598 <
6770 < /* Line 1464 of yacc.c  */
6771 < #line 2920 "ircd_parser.y"
5598 > #line 2504 "conf_parser.y" /* yacc.c:1646  */
5599      {
5600 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5600 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5601   }
5602 + #line 5603 "conf_parser.c" /* yacc.c:1646  */
5603      break;
5604  
5605    case 514:
5606 <
6779 < /* Line 1464 of yacc.c  */
6780 < #line 2925 "ircd_parser.y"
5606 > #line 2509 "conf_parser.y" /* yacc.c:1646  */
5607      {
5608 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5608 >  if (conf_parser_ctx.pass == 2)
5609 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5610   }
5611 + #line 5612 "conf_parser.c" /* yacc.c:1646  */
5612      break;
5613  
5614    case 515:
5615 <
6788 < /* Line 1464 of yacc.c  */
6789 < #line 2930 "ircd_parser.y"
5615 > #line 2515 "conf_parser.y" /* yacc.c:1646  */
5616      {
5617 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5617 >  if (conf_parser_ctx.pass == 2)
5618 >    ConfigFileEntry.glines = yylval.number;
5619   }
5620 + #line 5621 "conf_parser.c" /* yacc.c:1646  */
5621      break;
5622  
5623    case 516:
5624 <
6797 < /* Line 1464 of yacc.c  */
6798 < #line 2935 "ircd_parser.y"
5624 > #line 2521 "conf_parser.y" /* yacc.c:1646  */
5625      {
5626 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5626 >  if (conf_parser_ctx.pass == 2)
5627 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5628   }
5629 + #line 5630 "conf_parser.c" /* yacc.c:1646  */
5630      break;
5631  
5632    case 517:
5633 <
6806 < /* Line 1464 of yacc.c  */
6807 < #line 2940 "ircd_parser.y"
5633 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5634      {
5635 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5635 >  if (conf_parser_ctx.pass == 2)
5636 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5637   }
5638 + #line 5639 "conf_parser.c" /* yacc.c:1646  */
5639      break;
5640  
5641    case 518:
5642 <
6815 < /* Line 1464 of yacc.c  */
6816 < #line 2945 "ircd_parser.y"
5642 > #line 2533 "conf_parser.y" /* yacc.c:1646  */
5643      {
5644 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5644 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5645   }
5646 + #line 5647 "conf_parser.c" /* yacc.c:1646  */
5647      break;
5648  
5649    case 519:
5650 <
6824 < /* Line 1464 of yacc.c  */
6825 < #line 2950 "ircd_parser.y"
5650 > #line 2538 "conf_parser.y" /* yacc.c:1646  */
5651      {
5652 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5652 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5653   }
5654 + #line 5655 "conf_parser.c" /* yacc.c:1646  */
5655      break;
5656  
5657    case 520:
5658 <
6833 < /* Line 1464 of yacc.c  */
6834 < #line 2955 "ircd_parser.y"
5658 > #line 2543 "conf_parser.y" /* yacc.c:1646  */
5659      {
5660 <  if (conf_parser_ctx.pass == 2)
6837 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5660 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5661   }
5662 + #line 5663 "conf_parser.c" /* yacc.c:1646  */
5663      break;
5664  
5665    case 521:
5666 <
6843 < /* Line 1464 of yacc.c  */
6844 < #line 2961 "ircd_parser.y"
5666 > #line 2548 "conf_parser.y" /* yacc.c:1646  */
5667      {
5668 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6847 <  {
6848 <    ilog(L_CRIT, "You haven't read your config file properly.");
6849 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6850 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6851 <    exit(0);
6852 <  }
5668 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5669   }
5670 + #line 5671 "conf_parser.c" /* yacc.c:1646  */
5671      break;
5672  
5673    case 522:
5674 <
6858 < /* Line 1464 of yacc.c  */
6859 < #line 2972 "ircd_parser.y"
5674 > #line 2553 "conf_parser.y" /* yacc.c:1646  */
5675      {
5676 <  ConfigFileEntry.kline_with_reason = yylval.number;
5676 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5677   }
5678 + #line 5679 "conf_parser.c" /* yacc.c:1646  */
5679      break;
5680  
5681    case 523:
5682 <
6867 < /* Line 1464 of yacc.c  */
6868 < #line 2977 "ircd_parser.y"
5682 > #line 2558 "conf_parser.y" /* yacc.c:1646  */
5683      {
5684 <  if (conf_parser_ctx.pass == 2)
6871 <  {
6872 <    MyFree(ConfigFileEntry.kline_reason);
6873 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6874 <  }
5684 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5685   }
5686 + #line 5687 "conf_parser.c" /* yacc.c:1646  */
5687      break;
5688  
5689    case 524:
5690 <
6880 < /* Line 1464 of yacc.c  */
6881 < #line 2986 "ircd_parser.y"
5690 > #line 2563 "conf_parser.y" /* yacc.c:1646  */
5691      {
5692 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5692 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5693   }
5694 + #line 5695 "conf_parser.c" /* yacc.c:1646  */
5695      break;
5696  
5697    case 525:
5698 <
6889 < /* Line 1464 of yacc.c  */
6890 < #line 2991 "ircd_parser.y"
5698 > #line 2568 "conf_parser.y" /* yacc.c:1646  */
5699      {
5700 <  ConfigFileEntry.warn_no_nline = yylval.number;
5700 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5701   }
5702 + #line 5703 "conf_parser.c" /* yacc.c:1646  */
5703      break;
5704  
5705    case 526:
5706 <
6898 < /* Line 1464 of yacc.c  */
6899 < #line 2996 "ircd_parser.y"
5706 > #line 2573 "conf_parser.y" /* yacc.c:1646  */
5707      {
5708 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5708 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5709   }
5710 + #line 5711 "conf_parser.c" /* yacc.c:1646  */
5711      break;
5712  
5713    case 527:
5714 <
6907 < /* Line 1464 of yacc.c  */
6908 < #line 3001 "ircd_parser.y"
5714 > #line 2578 "conf_parser.y" /* yacc.c:1646  */
5715      {
5716 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5716 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5717   }
5718 + #line 5719 "conf_parser.c" /* yacc.c:1646  */
5719      break;
5720  
5721    case 528:
5722 <
6916 < /* Line 1464 of yacc.c  */
6917 < #line 3006 "ircd_parser.y"
5722 > #line 2583 "conf_parser.y" /* yacc.c:1646  */
5723      {
5724 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5724 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5725   }
5726 + #line 5727 "conf_parser.c" /* yacc.c:1646  */
5727      break;
5728  
5729    case 529:
5730 <
6925 < /* Line 1464 of yacc.c  */
6926 < #line 3011 "ircd_parser.y"
5730 > #line 2588 "conf_parser.y" /* yacc.c:1646  */
5731      {
5732 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5732 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5733   }
5734 + #line 5735 "conf_parser.c" /* yacc.c:1646  */
5735      break;
5736  
5737    case 530:
5738 <
6934 < /* Line 1464 of yacc.c  */
6935 < #line 3014 "ircd_parser.y"
5738 > #line 2593 "conf_parser.y" /* yacc.c:1646  */
5739      {
5740 <  ConfigFileEntry.stats_k_oper_only = 1;
5740 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5741   }
5742 + #line 5743 "conf_parser.c" /* yacc.c:1646  */
5743      break;
5744  
5745    case 531:
5746 <
6943 < /* Line 1464 of yacc.c  */
6944 < #line 3019 "ircd_parser.y"
5746 > #line 2598 "conf_parser.y" /* yacc.c:1646  */
5747      {
5748 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5748 >  if (conf_parser_ctx.pass == 2)
5749 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5750   }
5751 + #line 5752 "conf_parser.c" /* yacc.c:1646  */
5752      break;
5753  
5754    case 532:
5755 <
6952 < /* Line 1464 of yacc.c  */
6953 < #line 3022 "ircd_parser.y"
5755 > #line 2604 "conf_parser.y" /* yacc.c:1646  */
5756      {
5757 <  ConfigFileEntry.stats_i_oper_only = 1;
5757 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5758 >  {
5759 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5760 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5761 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5762 >    exit(0);
5763 >  }
5764   }
5765 + #line 5766 "conf_parser.c" /* yacc.c:1646  */
5766      break;
5767  
5768    case 533:
5769 <
6961 < /* Line 1464 of yacc.c  */
6962 < #line 3027 "ircd_parser.y"
5769 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5770      {
5771 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5771 >  ConfigFileEntry.invisible_on_connect = yylval.number;
5772   }
5773 + #line 5774 "conf_parser.c" /* yacc.c:1646  */
5774      break;
5775  
5776    case 534:
5777 <
6970 < /* Line 1464 of yacc.c  */
6971 < #line 3032 "ircd_parser.y"
5777 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5778      {
5779 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5779 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5780   }
5781 + #line 5782 "conf_parser.c" /* yacc.c:1646  */
5782      break;
5783  
5784    case 535:
5785 <
6979 < /* Line 1464 of yacc.c  */
6980 < #line 3037 "ircd_parser.y"
5785 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5786      {
5787 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5787 >  ConfigFileEntry.stats_e_disabled = yylval.number;
5788   }
5789 + #line 5790 "conf_parser.c" /* yacc.c:1646  */
5790      break;
5791  
5792    case 536:
5793 <
6988 < /* Line 1464 of yacc.c  */
6989 < #line 3042 "ircd_parser.y"
5793 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5794      {
5795 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5795 >  ConfigFileEntry.stats_o_oper_only = yylval.number;
5796   }
5797 + #line 5798 "conf_parser.c" /* yacc.c:1646  */
5798      break;
5799  
5800    case 537:
5801 <
6997 < /* Line 1464 of yacc.c  */
6998 < #line 3047 "ircd_parser.y"
5801 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5802      {
5803 <  ConfigFileEntry.short_motd = yylval.number;
5803 >  ConfigFileEntry.stats_P_oper_only = yylval.number;
5804   }
5805 + #line 5806 "conf_parser.c" /* yacc.c:1646  */
5806      break;
5807  
5808    case 538:
5809 <
7006 < /* Line 1464 of yacc.c  */
7007 < #line 3052 "ircd_parser.y"
5809 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5810      {
5811 <  ConfigFileEntry.no_oper_flood = yylval.number;
5811 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5812   }
5813 + #line 5814 "conf_parser.c" /* yacc.c:1646  */
5814      break;
5815  
5816    case 539:
5817 <
7015 < /* Line 1464 of yacc.c  */
7016 < #line 3057 "ircd_parser.y"
5817 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5818      {
5819 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5819 >  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5820   }
5821 + #line 5822 "conf_parser.c" /* yacc.c:1646  */
5822      break;
5823  
5824    case 540:
5825 <
7024 < /* Line 1464 of yacc.c  */
7025 < #line 3062 "ircd_parser.y"
5825 > #line 2648 "conf_parser.y" /* yacc.c:1646  */
5826      {
5827 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5827 >  ConfigFileEntry.stats_k_oper_only = 1;
5828   }
5829 + #line 5830 "conf_parser.c" /* yacc.c:1646  */
5830      break;
5831  
5832    case 541:
5833 <
7033 < /* Line 1464 of yacc.c  */
7034 < #line 3067 "ircd_parser.y"
5833 > #line 2653 "conf_parser.y" /* yacc.c:1646  */
5834      {
5835 <  if (conf_parser_ctx.pass == 2)
7037 <  {
7038 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7039 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7040 <
7041 <    set_locale(yylval.string);
7042 <  }
5835 >  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5836   }
5837 + #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840    case 542:
5841 <
7048 < /* Line 1464 of yacc.c  */
7049 < #line 3078 "ircd_parser.y"
5841 > #line 2656 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5843 >  ConfigFileEntry.stats_i_oper_only = 1;
5844   }
5845 + #line 5846 "conf_parser.c" /* yacc.c:1646  */
5846      break;
5847  
5848    case 543:
5849 <
7057 < /* Line 1464 of yacc.c  */
7058 < #line 3083 "ircd_parser.y"
5849 > #line 2661 "conf_parser.y" /* yacc.c:1646  */
5850      {
5851 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5851 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5852   }
5853 + #line 5854 "conf_parser.c" /* yacc.c:1646  */
5854      break;
5855  
5856    case 544:
5857 <
7066 < /* Line 1464 of yacc.c  */
7067 < #line 3088 "ircd_parser.y"
5857 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5858      {
5859 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5859 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5860   }
5861 + #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;
5863  
5864    case 545:
5865 <
7075 < /* Line 1464 of yacc.c  */
7076 < #line 3093 "ircd_parser.y"
5865 > #line 2671 "conf_parser.y" /* yacc.c:1646  */
5866      {
5867 <  if (conf_parser_ctx.pass == 2)
7079 <  {
7080 <    MyFree(ConfigFileEntry.servlink_path);
7081 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7082 <  }
5867 >  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5868   }
5869 + #line 5870 "conf_parser.c" /* yacc.c:1646  */
5870      break;
5871  
5872    case 546:
5873 <
7088 < /* Line 1464 of yacc.c  */
7089 < #line 3102 "ircd_parser.y"
5873 > #line 2676 "conf_parser.y" /* yacc.c:1646  */
5874      {
5875 < #ifdef HAVE_LIBCRYPTO
7092 <  if (conf_parser_ctx.pass == 2)
7093 <  {
7094 <    struct EncCapability *ecap;
7095 <    const char *cipher_name;
7096 <    int found = 0;
7097 <
7098 <    ConfigFileEntry.default_cipher_preference = NULL;
7099 <    cipher_name = yylval.string;
7100 <
7101 <    for (ecap = CipherTable; ecap->name; ecap++)
7102 <    {
7103 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7104 <          (ecap->cap & CAP_ENC_MASK))
7105 <      {
7106 <        ConfigFileEntry.default_cipher_preference = ecap;
7107 <        found = 1;
7108 <        break;
7109 <      }
7110 <    }
7111 <
7112 <    if (!found)
7113 <      yyerror("Invalid cipher");
7114 <  }
7115 < #else
7116 <  if (conf_parser_ctx.pass == 2)
7117 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7118 < #endif
5875 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5876   }
5877 + #line 5878 "conf_parser.c" /* yacc.c:1646  */
5878      break;
5879  
5880    case 547:
5881 <
7124 < /* Line 1464 of yacc.c  */
7125 < #line 3134 "ircd_parser.y"
7126 <    {
7127 <  if (conf_parser_ctx.pass == 2)
7128 <  {
7129 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
7130 < #ifndef HAVE_LIBZ
7131 <    yyerror("Ignoring compression_level -- no zlib support");
7132 < #else
7133 <    if ((ConfigFileEntry.compression_level < 1) ||
7134 <        (ConfigFileEntry.compression_level > 9))
5881 > #line 2681 "conf_parser.y" /* yacc.c:1646  */
5882      {
5883 <      yyerror("Ignoring invalid compression_level, using default");
7137 <      ConfigFileEntry.compression_level = 0;
7138 <    }
7139 < #endif
7140 <  }
5883 >  ConfigFileEntry.short_motd = yylval.number;
5884   }
5885 + #line 5886 "conf_parser.c" /* yacc.c:1646  */
5886      break;
5887  
5888    case 548:
5889 <
7146 < /* Line 1464 of yacc.c  */
7147 < #line 3152 "ircd_parser.y"
5889 > #line 2686 "conf_parser.y" /* yacc.c:1646  */
5890      {
5891 <  ConfigFileEntry.use_egd = yylval.number;
5891 >  ConfigFileEntry.no_oper_flood = yylval.number;
5892   }
5893 + #line 5894 "conf_parser.c" /* yacc.c:1646  */
5894      break;
5895  
5896    case 549:
5897 <
7155 < /* Line 1464 of yacc.c  */
7156 < #line 3157 "ircd_parser.y"
5897 > #line 2691 "conf_parser.y" /* yacc.c:1646  */
5898      {
5899 <  if (conf_parser_ctx.pass == 2)
7159 <  {
7160 <    MyFree(ConfigFileEntry.egdpool_path);
7161 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7162 <  }
5899 >  ConfigFileEntry.true_no_oper_flood = yylval.number;
5900   }
5901 + #line 5902 "conf_parser.c" /* yacc.c:1646  */
5902      break;
5903  
5904    case 550:
5905 <
7168 < /* Line 1464 of yacc.c  */
7169 < #line 3166 "ircd_parser.y"
5905 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
5906      {
5907 <  ConfigFileEntry.ping_cookie = yylval.number;
5907 >  ConfigFileEntry.oper_pass_resv = yylval.number;
5908   }
5909 + #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912    case 551:
5913 <
7177 < /* Line 1464 of yacc.c  */
7178 < #line 3171 "ircd_parser.y"
5913 > #line 2701 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915 <  ConfigFileEntry.disable_auth = yylval.number;
5915 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5916   }
5917 + #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920    case 552:
5921 <
7186 < /* Line 1464 of yacc.c  */
7187 < #line 3176 "ircd_parser.y"
5921 > #line 2706 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923 <  ConfigFileEntry.throttle_time = yylval.number;
5923 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5924   }
5925 + #line 5926 "conf_parser.c" /* yacc.c:1646  */
5926      break;
5927  
5928    case 553:
5929 <
7195 < /* Line 1464 of yacc.c  */
7196 < #line 3181 "ircd_parser.y"
5929 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
5930      {
5931 <  ConfigFileEntry.oper_umodes = 0;
5931 >  ConfigFileEntry.use_egd = yylval.number;
5932   }
5933 + #line 5934 "conf_parser.c" /* yacc.c:1646  */
5934      break;
5935  
5936 <  case 557:
5937 <
7204 < /* Line 1464 of yacc.c  */
7205 < #line 3187 "ircd_parser.y"
5936 >  case 554:
5937 > #line 2716 "conf_parser.y" /* yacc.c:1646  */
5938      {
5939 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5939 >  if (conf_parser_ctx.pass == 2)
5940 >  {
5941 >    MyFree(ConfigFileEntry.egdpool_path);
5942 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5943 >  }
5944   }
5945 + #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 558:
5949 <
7213 < /* Line 1464 of yacc.c  */
7214 < #line 3190 "ircd_parser.y"
5948 >  case 555:
5949 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5951 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5952 >  {
5953 >    MyFree(ConfigFileEntry.service_name);
5954 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5955 >  }
5956   }
5957 + #line 5958 "conf_parser.c" /* yacc.c:1646  */
5958      break;
5959  
5960 <  case 559:
5961 <
7222 < /* Line 1464 of yacc.c  */
7223 < #line 3193 "ircd_parser.y"
5960 >  case 556:
5961 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
5962      {
5963 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5963 >  ConfigFileEntry.ping_cookie = yylval.number;
5964   }
5965 + #line 5966 "conf_parser.c" /* yacc.c:1646  */
5966      break;
5967  
5968 <  case 560:
5969 <
7231 < /* Line 1464 of yacc.c  */
7232 < #line 3196 "ircd_parser.y"
5968 >  case 557:
5969 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
5970      {
5971 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5971 >  ConfigFileEntry.disable_auth = yylval.number;
5972   }
5973 + #line 5974 "conf_parser.c" /* yacc.c:1646  */
5974      break;
5975  
5976 <  case 561:
5977 <
7240 < /* Line 1464 of yacc.c  */
7241 < #line 3199 "ircd_parser.y"
5976 >  case 558:
5977 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
5978      {
5979 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5979 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
5980   }
5981 + #line 5982 "conf_parser.c" /* yacc.c:1646  */
5982      break;
5983  
5984 <  case 562:
5985 <
7249 < /* Line 1464 of yacc.c  */
7250 < #line 3202 "ircd_parser.y"
5984 >  case 559:
5985 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
5986      {
5987 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5987 >  ConfigFileEntry.oper_umodes = 0;
5988   }
5989 + #line 5990 "conf_parser.c" /* yacc.c:1646  */
5990      break;
5991  
5992    case 563:
5993 <
7258 < /* Line 1464 of yacc.c  */
7259 < #line 3205 "ircd_parser.y"
5993 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
5994      {
5995 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5995 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5996   }
5997 + #line 5998 "conf_parser.c" /* yacc.c:1646  */
5998      break;
5999  
6000    case 564:
6001 <
7267 < /* Line 1464 of yacc.c  */
7268 < #line 3208 "ircd_parser.y"
6001 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6002      {
6003 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6003 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6004   }
6005 + #line 6006 "conf_parser.c" /* yacc.c:1646  */
6006      break;
6007  
6008    case 565:
6009 <
7276 < /* Line 1464 of yacc.c  */
7277 < #line 3211 "ircd_parser.y"
6009 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
6010      {
6011 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6011 >  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6012   }
6013 + #line 6014 "conf_parser.c" /* yacc.c:1646  */
6014      break;
6015  
6016    case 566:
6017 <
7285 < /* Line 1464 of yacc.c  */
7286 < #line 3214 "ircd_parser.y"
6017 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6018      {
6019 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6019 >  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6020   }
6021 + #line 6022 "conf_parser.c" /* yacc.c:1646  */
6022      break;
6023  
6024    case 567:
6025 <
7294 < /* Line 1464 of yacc.c  */
7295 < #line 3217 "ircd_parser.y"
6025 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6026      {
6027 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6027 >  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6028   }
6029 + #line 6030 "conf_parser.c" /* yacc.c:1646  */
6030      break;
6031  
6032    case 568:
6033 <
7303 < /* Line 1464 of yacc.c  */
7304 < #line 3220 "ircd_parser.y"
6033 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6034      {
6035 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6035 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6036   }
6037 + #line 6038 "conf_parser.c" /* yacc.c:1646  */
6038      break;
6039  
6040    case 569:
6041 <
7312 < /* Line 1464 of yacc.c  */
7313 < #line 3223 "ircd_parser.y"
6041 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6042      {
6043 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6043 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6044   }
6045 + #line 6046 "conf_parser.c" /* yacc.c:1646  */
6046      break;
6047  
6048    case 570:
6049 <
7321 < /* Line 1464 of yacc.c  */
7322 < #line 3226 "ircd_parser.y"
6049 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6050      {
6051 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6051 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6052   }
6053 + #line 6054 "conf_parser.c" /* yacc.c:1646  */
6054      break;
6055  
6056    case 571:
6057 <
7330 < /* Line 1464 of yacc.c  */
7331 < #line 3229 "ircd_parser.y"
6057 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6058      {
6059 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6059 >  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6060   }
6061 + #line 6062 "conf_parser.c" /* yacc.c:1646  */
6062      break;
6063  
6064    case 572:
6065 <
7339 < /* Line 1464 of yacc.c  */
7340 < #line 3232 "ircd_parser.y"
6065 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6066      {
6067 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6067 >  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6068   }
6069 + #line 6070 "conf_parser.c" /* yacc.c:1646  */
6070      break;
6071  
6072    case 573:
6073 <
7348 < /* Line 1464 of yacc.c  */
7349 < #line 3235 "ircd_parser.y"
6073 > #line 2785 "conf_parser.y" /* yacc.c:1646  */
6074      {
6075 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6075 >  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6076   }
6077 + #line 6078 "conf_parser.c" /* yacc.c:1646  */
6078      break;
6079  
6080    case 574:
6081 <
7357 < /* Line 1464 of yacc.c  */
7358 < #line 3238 "ircd_parser.y"
6081 > #line 2788 "conf_parser.y" /* yacc.c:1646  */
6082      {
6083 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6083 >  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6084   }
6085 + #line 6086 "conf_parser.c" /* yacc.c:1646  */
6086      break;
6087  
6088    case 575:
6089 <
7366 < /* Line 1464 of yacc.c  */
7367 < #line 3241 "ircd_parser.y"
6089 > #line 2791 "conf_parser.y" /* yacc.c:1646  */
6090      {
6091 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6091 >  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6092   }
6093 + #line 6094 "conf_parser.c" /* yacc.c:1646  */
6094      break;
6095  
6096    case 576:
6097 <
7375 < /* Line 1464 of yacc.c  */
7376 < #line 3246 "ircd_parser.y"
6097 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6098      {
6099 <  ConfigFileEntry.oper_only_umodes = 0;
6099 >  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6100   }
6101 + #line 6102 "conf_parser.c" /* yacc.c:1646  */
6102      break;
6103  
6104 <  case 580:
6105 <
7384 < /* Line 1464 of yacc.c  */
7385 < #line 3252 "ircd_parser.y"
6104 >  case 577:
6105 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6106      {
6107 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6107 >  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6108   }
6109 + #line 6110 "conf_parser.c" /* yacc.c:1646  */
6110      break;
6111  
6112 <  case 581:
6113 <
7393 < /* Line 1464 of yacc.c  */
7394 < #line 3255 "ircd_parser.y"
6112 >  case 578:
6113 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6114      {
6115 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6115 >  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6116   }
6117 + #line 6118 "conf_parser.c" /* yacc.c:1646  */
6118      break;
6119  
6120 <  case 582:
6121 <
7402 < /* Line 1464 of yacc.c  */
7403 < #line 3258 "ircd_parser.y"
6120 >  case 579:
6121 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6122      {
6123 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6123 >  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6124   }
6125 + #line 6126 "conf_parser.c" /* yacc.c:1646  */
6126      break;
6127  
6128 <  case 583:
6129 <
7411 < /* Line 1464 of yacc.c  */
7412 < #line 3261 "ircd_parser.y"
6128 >  case 580:
6129 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6130      {
6131 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6131 >  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6132   }
6133 + #line 6134 "conf_parser.c" /* yacc.c:1646  */
6134      break;
6135  
6136 <  case 584:
6137 <
7420 < /* Line 1464 of yacc.c  */
7421 < #line 3264 "ircd_parser.y"
6136 >  case 581:
6137 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6138      {
6139 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6139 >  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6140   }
6141 + #line 6142 "conf_parser.c" /* yacc.c:1646  */
6142      break;
6143  
6144 <  case 585:
6145 <
6146 < /* Line 1464 of yacc.c  */
6147 < #line 3267 "ircd_parser.y"
7431 <    {
7432 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6144 >  case 582:
6145 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6146 >    {
6147 >  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6148   }
6149 + #line 6150 "conf_parser.c" /* yacc.c:1646  */
6150      break;
6151  
6152 <  case 586:
6153 <
7438 < /* Line 1464 of yacc.c  */
7439 < #line 3270 "ircd_parser.y"
6152 >  case 583:
6153 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6154      {
6155 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6155 >  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6156   }
6157 + #line 6158 "conf_parser.c" /* yacc.c:1646  */
6158      break;
6159  
6160 <  case 587:
6161 <
7447 < /* Line 1464 of yacc.c  */
7448 < #line 3273 "ircd_parser.y"
6160 >  case 584:
6161 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6162      {
6163 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6163 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6164   }
6165 + #line 6166 "conf_parser.c" /* yacc.c:1646  */
6166      break;
6167  
6168 <  case 588:
6169 <
7456 < /* Line 1464 of yacc.c  */
7457 < #line 3276 "ircd_parser.y"
6168 >  case 585:
6169 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6170      {
6171 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6171 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6172   }
6173 + #line 6174 "conf_parser.c" /* yacc.c:1646  */
6174      break;
6175  
6176 <  case 589:
6177 <
7465 < /* Line 1464 of yacc.c  */
7466 < #line 3279 "ircd_parser.y"
6176 >  case 586:
6177 > #line 2826 "conf_parser.y" /* yacc.c:1646  */
6178      {
6179 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6179 >  ConfigFileEntry.oper_only_umodes = 0;
6180   }
6181 + #line 6182 "conf_parser.c" /* yacc.c:1646  */
6182      break;
6183  
6184    case 590:
6185 <
7474 < /* Line 1464 of yacc.c  */
7475 < #line 3282 "ircd_parser.y"
6185 > #line 2832 "conf_parser.y" /* yacc.c:1646  */
6186      {
6187 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6187 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6188   }
6189 + #line 6190 "conf_parser.c" /* yacc.c:1646  */
6190      break;
6191  
6192    case 591:
6193 <
7483 < /* Line 1464 of yacc.c  */
7484 < #line 3285 "ircd_parser.y"
6193 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6194      {
6195 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6195 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6196   }
6197 + #line 6198 "conf_parser.c" /* yacc.c:1646  */
6198      break;
6199  
6200    case 592:
6201 <
7492 < /* Line 1464 of yacc.c  */
7493 < #line 3288 "ircd_parser.y"
6201 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6202      {
6203 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6203 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6204   }
6205 + #line 6206 "conf_parser.c" /* yacc.c:1646  */
6206      break;
6207  
6208    case 593:
6209 <
7501 < /* Line 1464 of yacc.c  */
7502 < #line 3291 "ircd_parser.y"
6209 > #line 2841 "conf_parser.y" /* yacc.c:1646  */
6210      {
6211 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6211 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6212   }
6213 + #line 6214 "conf_parser.c" /* yacc.c:1646  */
6214      break;
6215  
6216    case 594:
6217 <
7510 < /* Line 1464 of yacc.c  */
7511 < #line 3294 "ircd_parser.y"
6217 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6218      {
6219 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6219 >  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6220   }
6221 + #line 6222 "conf_parser.c" /* yacc.c:1646  */
6222      break;
6223  
6224    case 595:
6225 <
7519 < /* Line 1464 of yacc.c  */
7520 < #line 3297 "ircd_parser.y"
6225 > #line 2847 "conf_parser.y" /* yacc.c:1646  */
6226      {
6227 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6227 >  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6228   }
6229 + #line 6230 "conf_parser.c" /* yacc.c:1646  */
6230      break;
6231  
6232    case 596:
6233 <
7528 < /* Line 1464 of yacc.c  */
7529 < #line 3300 "ircd_parser.y"
6233 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6234      {
6235 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6235 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6236   }
6237 + #line 6238 "conf_parser.c" /* yacc.c:1646  */
6238      break;
6239  
6240    case 597:
6241 <
7537 < /* Line 1464 of yacc.c  */
7538 < #line 3303 "ircd_parser.y"
6241 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6242      {
6243 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6243 >  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6244   }
6245 + #line 6246 "conf_parser.c" /* yacc.c:1646  */
6246      break;
6247  
6248    case 598:
6249 <
7546 < /* Line 1464 of yacc.c  */
7547 < #line 3306 "ircd_parser.y"
6249 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6250      {
6251 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6251 >  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6252   }
6253 + #line 6254 "conf_parser.c" /* yacc.c:1646  */
6254      break;
6255  
6256    case 599:
6257 <
7555 < /* Line 1464 of yacc.c  */
7556 < #line 3311 "ircd_parser.y"
6257 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6258      {
6259 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6259 >  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6260   }
6261 + #line 6262 "conf_parser.c" /* yacc.c:1646  */
6262      break;
6263  
6264    case 600:
6265 <
7564 < /* Line 1464 of yacc.c  */
7565 < #line 3316 "ircd_parser.y"
6265 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6266      {
6267 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6267 >  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6268   }
6269 + #line 6270 "conf_parser.c" /* yacc.c:1646  */
6270      break;
6271  
6272    case 601:
6273 <
7573 < /* Line 1464 of yacc.c  */
7574 < #line 3321 "ircd_parser.y"
6273 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6274      {
6275 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6275 >  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6276   }
6277 + #line 6278 "conf_parser.c" /* yacc.c:1646  */
6278      break;
6279  
6280    case 602:
6281 <
7582 < /* Line 1464 of yacc.c  */
7583 < #line 3326 "ircd_parser.y"
6281 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6282      {
6283 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6283 >  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6284   }
6285 + #line 6286 "conf_parser.c" /* yacc.c:1646  */
6286      break;
6287  
6288    case 603:
6289 <
7591 < /* Line 1464 of yacc.c  */
7592 < #line 3335 "ircd_parser.y"
6289 > #line 2871 "conf_parser.y" /* yacc.c:1646  */
6290      {
6291 <  if (conf_parser_ctx.pass == 2)
7595 <  {
7596 <    yy_conf = make_conf_item(GDENY_TYPE);
7597 <    yy_aconf = map_to_conf(yy_conf);
7598 <  }
6291 >  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6292   }
6293 + #line 6294 "conf_parser.c" /* yacc.c:1646  */
6294      break;
6295  
6296    case 604:
6297 <
7604 < /* Line 1464 of yacc.c  */
7605 < #line 3342 "ircd_parser.y"
7606 <    {
7607 <  if (conf_parser_ctx.pass == 2)
7608 <  {
7609 <    /*
7610 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7611 <     * end we will have one extra, so we should free it.
7612 <     */
7613 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7614 <    {
7615 <      delete_conf_item(yy_conf);
7616 <      yy_conf = NULL;
7617 <      yy_aconf = NULL;
7618 <    }
7619 <  }
7620 < }
7621 <    break;
7622 <
7623 <  case 614:
7624 <
7625 < /* Line 1464 of yacc.c  */
7626 < #line 3368 "ircd_parser.y"
7627 <    {
7628 <  if (conf_parser_ctx.pass == 2)
7629 <    ConfigFileEntry.glines = yylval.number;
7630 < }
7631 <    break;
7632 <
7633 <  case 615:
7634 <
7635 < /* Line 1464 of yacc.c  */
7636 < #line 3374 "ircd_parser.y"
6297 > #line 2874 "conf_parser.y" /* yacc.c:1646  */
6298      {
6299 <  if (conf_parser_ctx.pass == 2)
7639 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6299 >  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6300   }
6301 + #line 6302 "conf_parser.c" /* yacc.c:1646  */
6302      break;
6303  
6304 <  case 616:
6305 <
7645 < /* Line 1464 of yacc.c  */
7646 < #line 3380 "ircd_parser.y"
6304 >  case 605:
6305 > #line 2877 "conf_parser.y" /* yacc.c:1646  */
6306      {
6307 <  if (conf_parser_ctx.pass == 2)
7649 <    ConfigFileEntry.gline_logging = 0;
6307 >  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6308   }
6309 + #line 6310 "conf_parser.c" /* yacc.c:1646  */
6310      break;
6311  
6312 <  case 620:
6313 <
7655 < /* Line 1464 of yacc.c  */
7656 < #line 3386 "ircd_parser.y"
6312 >  case 606:
6313 > #line 2880 "conf_parser.y" /* yacc.c:1646  */
6314      {
6315 <  if (conf_parser_ctx.pass == 2)
7659 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6315 >  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6316   }
6317 + #line 6318 "conf_parser.c" /* yacc.c:1646  */
6318      break;
6319  
6320 <  case 621:
6321 <
7665 < /* Line 1464 of yacc.c  */
7666 < #line 3390 "ircd_parser.y"
6320 >  case 607:
6321 > #line 2883 "conf_parser.y" /* yacc.c:1646  */
6322      {
6323 <  if (conf_parser_ctx.pass == 2)
7669 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6323 >  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6324   }
6325 + #line 6326 "conf_parser.c" /* yacc.c:1646  */
6326      break;
6327  
6328 <  case 622:
6329 <
7675 < /* Line 1464 of yacc.c  */
7676 < #line 3396 "ircd_parser.y"
6328 >  case 608:
6329 > #line 2886 "conf_parser.y" /* yacc.c:1646  */
6330      {
6331 <  if (conf_parser_ctx.pass == 2)
7679 <  {
7680 <    struct split_nuh_item nuh;
7681 <
7682 <    nuh.nuhmask  = yylval.string;
7683 <    nuh.nickptr  = NULL;
7684 <    nuh.userptr  = userbuf;
7685 <    nuh.hostptr  = hostbuf;
7686 <
7687 <    nuh.nicksize = 0;
7688 <    nuh.usersize = sizeof(userbuf);
7689 <    nuh.hostsize = sizeof(hostbuf);
7690 <
7691 <    split_nuh(&nuh);
7692 <
7693 <    if (yy_aconf->user == NULL)
7694 <    {
7695 <      DupString(yy_aconf->user, userbuf);
7696 <      DupString(yy_aconf->host, hostbuf);
7697 <    }
7698 <    else
7699 <    {
7700 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7701 <
7702 <      DupString(yy_tmp->user, userbuf);
7703 <      DupString(yy_tmp->host, hostbuf);
7704 <
7705 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7706 <    }
7707 <  }
6331 >  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6332   }
6333 + #line 6334 "conf_parser.c" /* yacc.c:1646  */
6334      break;
6335  
6336 <  case 623:
6337 <
7713 < /* Line 1464 of yacc.c  */
7714 < #line 3430 "ircd_parser.y"
6336 >  case 609:
6337 > #line 2889 "conf_parser.y" /* yacc.c:1646  */
6338      {
6339 <  if (conf_parser_ctx.pass == 2)  
7717 <  {
7718 <    MyFree(yy_conf->name);
7719 <    DupString(yy_conf->name, yylval.string);
7720 <  }
6339 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6340   }
6341 + #line 6342 "conf_parser.c" /* yacc.c:1646  */
6342      break;
6343  
6344 <  case 624:
6345 <
7726 < /* Line 1464 of yacc.c  */
7727 < #line 3439 "ircd_parser.y"
6344 >  case 610:
6345 > #line 2892 "conf_parser.y" /* yacc.c:1646  */
6346      {
6347 <  if (conf_parser_ctx.pass == 2)
7730 <    yy_aconf->flags = 0;
6347 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6348   }
6349 + #line 6350 "conf_parser.c" /* yacc.c:1646  */
6350      break;
6351  
6352 <  case 625:
6353 <
7736 < /* Line 1464 of yacc.c  */
7737 < #line 3443 "ircd_parser.y"
6352 >  case 611:
6353 > #line 2897 "conf_parser.y" /* yacc.c:1646  */
6354      {
6355 <  if (conf_parser_ctx.pass == 2)
7740 <  {
7741 <    struct CollectItem *yy_tmp = NULL;
7742 <    dlink_node *ptr, *next_ptr;
7743 <
7744 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7745 <    {
7746 <      struct AccessItem *new_aconf;
7747 <      struct ConfItem *new_conf;
7748 <
7749 <      yy_tmp = ptr->data;
7750 <      new_conf = make_conf_item(GDENY_TYPE);
7751 <      new_aconf = map_to_conf(new_conf);
7752 <
7753 <      new_aconf->flags = yy_aconf->flags;
7754 <
7755 <      if (yy_conf->name != NULL)
7756 <        DupString(new_conf->name, yy_conf->name);
7757 <      else
7758 <        DupString(new_conf->name, "*");
7759 <      if (yy_aconf->user != NULL)
7760 <         DupString(new_aconf->user, yy_tmp->user);
7761 <      else  
7762 <        DupString(new_aconf->user, "*");
7763 <      if (yy_aconf->host != NULL)
7764 <        DupString(new_aconf->host, yy_tmp->host);
7765 <      else
7766 <        DupString(new_aconf->host, "*");
7767 <
7768 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7769 <    }
7770 <
7771 <    /*
7772 <     * In case someone has fed us with more than one action= after user/name
7773 <     * which would leak memory  -Michael
7774 <     */
7775 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7776 <      delete_conf_item(yy_conf);
7777 <
7778 <    yy_conf = make_conf_item(GDENY_TYPE);
7779 <    yy_aconf = map_to_conf(yy_conf);
7780 <  }
6355 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6356   }
6357 + #line 6358 "conf_parser.c" /* yacc.c:1646  */
6358      break;
6359  
6360 <  case 628:
6361 <
7786 < /* Line 1464 of yacc.c  */
7787 < #line 3490 "ircd_parser.y"
6360 >  case 612:
6361 > #line 2902 "conf_parser.y" /* yacc.c:1646  */
6362      {
6363 <  if (conf_parser_ctx.pass == 2)
7790 <    yy_aconf->flags |= GDENY_REJECT;
6363 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6364   }
6365 + #line 6366 "conf_parser.c" /* yacc.c:1646  */
6366      break;
6367  
6368 <  case 629:
6369 <
7796 < /* Line 1464 of yacc.c  */
7797 < #line 3494 "ircd_parser.y"
6368 >  case 613:
6369 > #line 2907 "conf_parser.y" /* yacc.c:1646  */
6370      {
6371 <  if (conf_parser_ctx.pass == 2)
7800 <    yy_aconf->flags |= GDENY_BLOCK;
6371 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6372   }
6373 + #line 6374 "conf_parser.c" /* yacc.c:1646  */
6374      break;
6375  
6376 <  case 652:
6377 <
7806 < /* Line 1464 of yacc.c  */
7807 < #line 3518 "ircd_parser.y"
6376 >  case 632:
6377 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6378      {
6379    ConfigChannel.disable_fake_channels = yylval.number;
6380   }
6381 + #line 6382 "conf_parser.c" /* yacc.c:1646  */
6382      break;
6383  
6384 <  case 653:
6385 <
7815 < /* Line 1464 of yacc.c  */
7816 < #line 3523 "ircd_parser.y"
6384 >  case 633:
6385 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6386      {
6387 <  ConfigChannel.restrict_channels = yylval.number;
6387 >  ConfigChannel.knock_delay = (yyvsp[-1].number);
6388   }
6389 + #line 6390 "conf_parser.c" /* yacc.c:1646  */
6390      break;
6391  
6392 <  case 654:
6393 <
7824 < /* Line 1464 of yacc.c  */
7825 < #line 3528 "ircd_parser.y"
6392 >  case 634:
6393 > #line 2946 "conf_parser.y" /* yacc.c:1646  */
6394      {
6395 <  ConfigChannel.disable_local_channels = yylval.number;
6395 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6396   }
6397 + #line 6398 "conf_parser.c" /* yacc.c:1646  */
6398      break;
6399  
6400 <  case 655:
6401 <
7833 < /* Line 1464 of yacc.c  */
7834 < #line 3533 "ircd_parser.y"
6400 >  case 635:
6401 > #line 2951 "conf_parser.y" /* yacc.c:1646  */
6402      {
6403 <  ConfigChannel.use_except = yylval.number;
6403 >  ConfigChannel.invite_delay = (yyvsp[-1].number);
6404   }
6405 + #line 6406 "conf_parser.c" /* yacc.c:1646  */
6406      break;
6407  
6408 <  case 656:
6409 <
7842 < /* Line 1464 of yacc.c  */
7843 < #line 3538 "ircd_parser.y"
6408 >  case 636:
6409 > #line 2956 "conf_parser.y" /* yacc.c:1646  */
6410      {
6411 <  ConfigChannel.use_invex = yylval.number;
6411 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6412   }
6413 + #line 6414 "conf_parser.c" /* yacc.c:1646  */
6414      break;
6415  
6416 <  case 657:
6417 <
7851 < /* Line 1464 of yacc.c  */
7852 < #line 3543 "ircd_parser.y"
6416 >  case 637:
6417 > #line 2961 "conf_parser.y" /* yacc.c:1646  */
6418      {
6419 <  ConfigChannel.use_knock = yylval.number;
6419 >  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6420   }
6421 + #line 6422 "conf_parser.c" /* yacc.c:1646  */
6422      break;
6423  
6424 <  case 658:
6425 <
7860 < /* Line 1464 of yacc.c  */
7861 < #line 3548 "ircd_parser.y"
6424 >  case 638:
6425 > #line 2966 "conf_parser.y" /* yacc.c:1646  */
6426      {
6427 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6427 >  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6428   }
6429 + #line 6430 "conf_parser.c" /* yacc.c:1646  */
6430      break;
6431  
6432 <  case 659:
6433 <
7869 < /* Line 1464 of yacc.c  */
7870 < #line 3553 "ircd_parser.y"
7871 <    {
7872 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
7873 < }
7874 <    break;
7875 <
7876 <  case 660:
7877 <
7878 < /* Line 1464 of yacc.c  */
7879 < #line 3558 "ircd_parser.y"
6432 >  case 639:
6433 > #line 2971 "conf_parser.y" /* yacc.c:1646  */
6434      {
6435 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6435 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6436   }
6437 + #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440 <  case 661:
6441 <
7887 < /* Line 1464 of yacc.c  */
7888 < #line 3563 "ircd_parser.y"
6440 >  case 640:
6441 > #line 2976 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443 <  ConfigChannel.quiet_on_ban = yylval.number;
6443 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6444   }
6445 + #line 6446 "conf_parser.c" /* yacc.c:1646  */
6446      break;
6447  
6448 <  case 662:
6449 <
7896 < /* Line 1464 of yacc.c  */
7897 < #line 3568 "ircd_parser.y"
6448 >  case 641:
6449 > #line 2981 "conf_parser.y" /* yacc.c:1646  */
6450      {
6451 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6451 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6452   }
6453 + #line 6454 "conf_parser.c" /* yacc.c:1646  */
6454      break;
6455  
6456 <  case 663:
6457 <
7905 < /* Line 1464 of yacc.c  */
7906 < #line 3573 "ircd_parser.y"
7907 <    {
7908 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
7909 < }
7910 <    break;
7911 <
7912 <  case 664:
7913 <
7914 < /* Line 1464 of yacc.c  */
7915 < #line 3578 "ircd_parser.y"
7916 <    {
7917 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
7918 < }
7919 <    break;
7920 <
7921 <  case 665:
7922 <
7923 < /* Line 1464 of yacc.c  */
7924 < #line 3583 "ircd_parser.y"
6456 >  case 642:
6457 > #line 2986 "conf_parser.y" /* yacc.c:1646  */
6458      {
6459    ConfigChannel.no_create_on_split = yylval.number;
6460   }
6461 + #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 666:
6465 <
7932 < /* Line 1464 of yacc.c  */
7933 < #line 3588 "ircd_parser.y"
6464 >  case 643:
6465 > #line 2991 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467    ConfigChannel.no_join_on_split = yylval.number;
6468   }
6469 + #line 6470 "conf_parser.c" /* yacc.c:1646  */
6470      break;
6471  
6472 <  case 667:
6473 <
7941 < /* Line 1464 of yacc.c  */
7942 < #line 3593 "ircd_parser.y"
6472 >  case 644:
6473 > #line 2996 "conf_parser.y" /* yacc.c:1646  */
6474      {
6475 <  ConfigChannel.burst_topicwho = yylval.number;
6475 >  GlobalSetOptions.joinfloodcount = yylval.number;
6476   }
6477 + #line 6478 "conf_parser.c" /* yacc.c:1646  */
6478      break;
6479  
6480 <  case 668:
6481 <
7950 < /* Line 1464 of yacc.c  */
7951 < #line 3598 "ircd_parser.y"
6480 >  case 645:
6481 > #line 3001 "conf_parser.y" /* yacc.c:1646  */
6482      {
6483 <  GlobalSetOptions.joinfloodcount = yylval.number;
6483 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6484   }
6485 + #line 6486 "conf_parser.c" /* yacc.c:1646  */
6486      break;
6487  
6488 <  case 669:
6489 <
7959 < /* Line 1464 of yacc.c  */
7960 < #line 3603 "ircd_parser.y"
6488 >  case 658:
6489 > #line 3023 "conf_parser.y" /* yacc.c:1646  */
6490      {
6491 <  GlobalSetOptions.joinfloodtime = yylval.number;
6491 >  if (conf_parser_ctx.pass == 2)
6492 >    ConfigServerHide.flatten_links = yylval.number;
6493   }
6494 + #line 6495 "conf_parser.c" /* yacc.c:1646  */
6495      break;
6496  
6497 <  case 681:
6498 <
7968 < /* Line 1464 of yacc.c  */
7969 < #line 3622 "ircd_parser.y"
6497 >  case 659:
6498 > #line 3029 "conf_parser.y" /* yacc.c:1646  */
6499      {
6500    if (conf_parser_ctx.pass == 2)
6501 <    ConfigServerHide.flatten_links = yylval.number;
6501 >    ConfigServerHide.disable_remote_commands = yylval.number;
6502   }
6503 + #line 6504 "conf_parser.c" /* yacc.c:1646  */
6504      break;
6505  
6506 <  case 682:
6507 <
7978 < /* Line 1464 of yacc.c  */
7979 < #line 3628 "ircd_parser.y"
6506 >  case 660:
6507 > #line 3035 "conf_parser.y" /* yacc.c:1646  */
6508      {
6509    if (conf_parser_ctx.pass == 2)
6510      ConfigServerHide.hide_servers = yylval.number;
6511   }
6512 + #line 6513 "conf_parser.c" /* yacc.c:1646  */
6513      break;
6514  
6515 <  case 683:
6515 >  case 661:
6516 > #line 3041 "conf_parser.y" /* yacc.c:1646  */
6517 >    {
6518 >  if (conf_parser_ctx.pass == 2)
6519 >    ConfigServerHide.hide_services = yylval.number;
6520 > }
6521 > #line 6522 "conf_parser.c" /* yacc.c:1646  */
6522 >    break;
6523  
6524 < /* Line 1464 of yacc.c  */
6525 < #line 3634 "ircd_parser.y"
6524 >  case 662:
6525 > #line 3047 "conf_parser.y" /* yacc.c:1646  */
6526      {
6527    if (conf_parser_ctx.pass == 2)
6528    {
6529      MyFree(ConfigServerHide.hidden_name);
6530 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6530 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6531    }
6532   }
6533 + #line 6534 "conf_parser.c" /* yacc.c:1646  */
6534      break;
6535  
6536 <  case 684:
6537 <
8001 < /* Line 1464 of yacc.c  */
8002 < #line 3643 "ircd_parser.y"
6536 >  case 663:
6537 > #line 3056 "conf_parser.y" /* yacc.c:1646  */
6538      {
6539    if (conf_parser_ctx.pass == 2)
6540    {
6541 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6541 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6542      {
6543 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6543 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6544        ConfigServerHide.links_disabled = 0;
6545      }
6546  
6547 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6547 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6548    }
6549   }
6550 + #line 6551 "conf_parser.c" /* yacc.c:1646  */
6551      break;
6552  
6553 <  case 685:
6554 <
8019 < /* Line 1464 of yacc.c  */
8020 < #line 3657 "ircd_parser.y"
6553 >  case 664:
6554 > #line 3070 "conf_parser.y" /* yacc.c:1646  */
6555      {
6556    if (conf_parser_ctx.pass == 2)
6557      ConfigServerHide.hidden = yylval.number;
6558   }
6559 + #line 6560 "conf_parser.c" /* yacc.c:1646  */
6560      break;
6561  
6562 <  case 686:
6563 <
8029 < /* Line 1464 of yacc.c  */
8030 < #line 3663 "ircd_parser.y"
8031 <    {
8032 <  if (conf_parser_ctx.pass == 2)
8033 <    ConfigServerHide.disable_hidden = yylval.number;
8034 < }
8035 <    break;
8036 <
8037 <  case 687:
8038 <
8039 < /* Line 1464 of yacc.c  */
8040 < #line 3669 "ircd_parser.y"
6562 >  case 665:
6563 > #line 3076 "conf_parser.y" /* yacc.c:1646  */
6564      {
6565    if (conf_parser_ctx.pass == 2)
6566      ConfigServerHide.hide_server_ips = yylval.number;
6567   }
6568 + #line 6569 "conf_parser.c" /* yacc.c:1646  */
6569      break;
6570  
6571  
6572 <
8049 < /* Line 1464 of yacc.c  */
8050 < #line 8051 "ircd_parser.c"
6572 > #line 6573 "conf_parser.c" /* yacc.c:1646  */
6573        default: break;
6574      }
6575 +  /* User semantic actions sometimes alter yychar, and that requires
6576 +     that yytoken be updated with the new translation.  We take the
6577 +     approach of translating immediately before every use of yytoken.
6578 +     One alternative is translating here after every semantic action,
6579 +     but that translation would be missed if the semantic action invokes
6580 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6581 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6582 +     incorrect destructor might then be invoked immediately.  In the
6583 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6584 +     to an incorrect destructor call or verbose syntax error message
6585 +     before the lookahead is translated.  */
6586    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6587  
6588    YYPOPSTACK (yylen);
# Line 8058 | Line 6591 | yyreduce:
6591  
6592    *++yyvsp = yyval;
6593  
6594 <  /* Now `shift' the result of the reduction.  Determine what state
6594 >  /* Now 'shift' the result of the reduction.  Determine what state
6595       that goes to, based on the state we popped back to and the rule
6596       number reduced by.  */
6597  
# Line 8073 | Line 6606 | yyreduce:
6606    goto yynewstate;
6607  
6608  
6609 < /*------------------------------------.
6610 < | yyerrlab -- here on detecting error |
6611 < `------------------------------------*/
6609 > /*--------------------------------------.
6610 > | yyerrlab -- here on detecting error.  |
6611 > `--------------------------------------*/
6612   yyerrlab:
6613 +  /* Make sure we have latest lookahead translation.  See comments at
6614 +     user semantic actions for why this is necessary.  */
6615 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6616 +
6617    /* If not already recovering from an error, report this error.  */
6618    if (!yyerrstatus)
6619      {
# Line 8084 | Line 6621 | yyerrlab:
6621   #if ! YYERROR_VERBOSE
6622        yyerror (YY_("syntax error"));
6623   #else
6624 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6625 +                                        yyssp, yytoken)
6626        {
6627 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6628 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6629 <          {
6630 <            YYSIZE_T yyalloc = 2 * yysize;
6631 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6632 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6633 <            if (yymsg != yymsgbuf)
6634 <              YYSTACK_FREE (yymsg);
6635 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6636 <            if (yymsg)
6637 <              yymsg_alloc = yyalloc;
6638 <            else
6639 <              {
6640 <                yymsg = yymsgbuf;
6641 <                yymsg_alloc = sizeof yymsgbuf;
6642 <              }
6643 <          }
6644 <
6645 <        if (0 < yysize && yysize <= yymsg_alloc)
6646 <          {
6647 <            (void) yysyntax_error (yymsg, yystate, yychar);
6648 <            yyerror (yymsg);
6649 <          }
6650 <        else
6651 <          {
8113 <            yyerror (YY_("syntax error"));
8114 <            if (yysize != 0)
8115 <              goto yyexhaustedlab;
8116 <          }
6627 >        char const *yymsgp = YY_("syntax error");
6628 >        int yysyntax_error_status;
6629 >        yysyntax_error_status = YYSYNTAX_ERROR;
6630 >        if (yysyntax_error_status == 0)
6631 >          yymsgp = yymsg;
6632 >        else if (yysyntax_error_status == 1)
6633 >          {
6634 >            if (yymsg != yymsgbuf)
6635 >              YYSTACK_FREE (yymsg);
6636 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6637 >            if (!yymsg)
6638 >              {
6639 >                yymsg = yymsgbuf;
6640 >                yymsg_alloc = sizeof yymsgbuf;
6641 >                yysyntax_error_status = 2;
6642 >              }
6643 >            else
6644 >              {
6645 >                yysyntax_error_status = YYSYNTAX_ERROR;
6646 >                yymsgp = yymsg;
6647 >              }
6648 >          }
6649 >        yyerror (yymsgp);
6650 >        if (yysyntax_error_status == 2)
6651 >          goto yyexhaustedlab;
6652        }
6653 + # undef YYSYNTAX_ERROR
6654   #endif
6655      }
6656  
# Line 8123 | Line 6659 | yyerrlab:
6659    if (yyerrstatus == 3)
6660      {
6661        /* If just tried and failed to reuse lookahead token after an
6662 <         error, discard it.  */
6662 >         error, discard it.  */
6663  
6664        if (yychar <= YYEOF)
6665 <        {
6666 <          /* Return failure if at end of input.  */
6667 <          if (yychar == YYEOF)
6668 <            YYABORT;
6669 <        }
6665 >        {
6666 >          /* Return failure if at end of input.  */
6667 >          if (yychar == YYEOF)
6668 >            YYABORT;
6669 >        }
6670        else
6671 <        {
6672 <          yydestruct ("Error: discarding",
6673 <                      yytoken, &yylval);
6674 <          yychar = YYEMPTY;
6675 <        }
6671 >        {
6672 >          yydestruct ("Error: discarding",
6673 >                      yytoken, &yylval);
6674 >          yychar = YYEMPTY;
6675 >        }
6676      }
6677  
6678    /* Else will try to reuse lookahead token after shifting the error
# Line 8155 | Line 6691 | yyerrorlab:
6691    if (/*CONSTCOND*/ 0)
6692       goto yyerrorlab;
6693  
6694 <  /* Do not reclaim the symbols of the rule which action triggered
6694 >  /* Do not reclaim the symbols of the rule whose action triggered
6695       this YYERROR.  */
6696    YYPOPSTACK (yylen);
6697    yylen = 0;
# Line 8168 | Line 6704 | yyerrorlab:
6704   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6705   `-------------------------------------------------------------*/
6706   yyerrlab1:
6707 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6707 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6708  
6709    for (;;)
6710      {
6711        yyn = yypact[yystate];
6712 <      if (yyn != YYPACT_NINF)
6713 <        {
6714 <          yyn += YYTERROR;
6715 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6716 <            {
6717 <              yyn = yytable[yyn];
6718 <              if (0 < yyn)
6719 <                break;
6720 <            }
6721 <        }
6712 >      if (!yypact_value_is_default (yyn))
6713 >        {
6714 >          yyn += YYTERROR;
6715 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6716 >            {
6717 >              yyn = yytable[yyn];
6718 >              if (0 < yyn)
6719 >                break;
6720 >            }
6721 >        }
6722  
6723        /* Pop the current state because it cannot handle the error token.  */
6724        if (yyssp == yyss)
6725 <        YYABORT;
6725 >        YYABORT;
6726  
6727  
6728        yydestruct ("Error: popping",
6729 <                  yystos[yystate], yyvsp);
6729 >                  yystos[yystate], yyvsp);
6730        YYPOPSTACK (1);
6731        yystate = *yyssp;
6732        YY_STACK_PRINT (yyss, yyssp);
6733      }
6734  
6735 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6736    *++yyvsp = yylval;
6737 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6738  
6739  
6740    /* Shift the error token.  */
# Line 8220 | Line 6758 | yyabortlab:
6758    yyresult = 1;
6759    goto yyreturn;
6760  
6761 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6761 > #if !defined yyoverflow || YYERROR_VERBOSE
6762   /*-------------------------------------------------.
6763   | yyexhaustedlab -- memory exhaustion comes here.  |
6764   `-------------------------------------------------*/
# Line 8232 | Line 6770 | yyexhaustedlab:
6770  
6771   yyreturn:
6772    if (yychar != YYEMPTY)
6773 <     yydestruct ("Cleanup: discarding lookahead",
6774 <                 yytoken, &yylval);
6775 <  /* Do not reclaim the symbols of the rule which action triggered
6773 >    {
6774 >      /* Make sure we have latest lookahead translation.  See comments at
6775 >         user semantic actions for why this is necessary.  */
6776 >      yytoken = YYTRANSLATE (yychar);
6777 >      yydestruct ("Cleanup: discarding lookahead",
6778 >                  yytoken, &yylval);
6779 >    }
6780 >  /* Do not reclaim the symbols of the rule whose action triggered
6781       this YYABORT or YYACCEPT.  */
6782    YYPOPSTACK (yylen);
6783    YY_STACK_PRINT (yyss, yyssp);
6784    while (yyssp != yyss)
6785      {
6786        yydestruct ("Cleanup: popping",
6787 <                  yystos[*yyssp], yyvsp);
6787 >                  yystos[*yyssp], yyvsp);
6788        YYPOPSTACK (1);
6789      }
6790   #ifndef yyoverflow
# Line 8252 | Line 6795 | yyreturn:
6795    if (yymsg != yymsgbuf)
6796      YYSTACK_FREE (yymsg);
6797   #endif
6798 <  /* Make sure YYID is used.  */
8256 <  return YYID (yyresult);
6798 >  return yyresult;
6799   }
8258
8259
8260

Comparing:
ircd-hybrid-7.3/src/ircd_parser.c (property svn:keywords), Revision 1121 by michael, Sun Jan 9 11:03:03 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 3762 by michael, Sun Jun 1 19:35:16 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)