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 1118 by michael, Thu Jan 6 13:39:10 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.4.3.  */
1 > /* A Bison parser, made by GNU Bison 2.7.  */
2  
3 < /* Skeleton implementation for Bison's Yacc-like parsers in C
3 > /* Bison implementation for 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.
5 >      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6    
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
# Line 45 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.4.3"
47 > #define YYBISON_VERSION "2.7"
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 <
66 < /* Line 189 of yacc.c  */
70 < #line 25 "ircd_parser.y"
65 > /* Line 371 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 78 | Line 74
74   #include "stdinc.h"
75   #include "ircd.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
86 #include "irc_getaddrinfo.h"
83   #include "sprintf_irc.h"
84   #include "memory.h"
85   #include "modules.h"
# Line 99 | Line 95
95   #include <openssl/rsa.h>
96   #include <openssl/bio.h>
97   #include <openssl/pem.h>
98 + #include <openssl/dh.h>
99   #endif
100  
101 < 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;
101 > int yylex(void);
102  
103 < struct CollectItem
103 > static struct
104   {
105 <  dlink_node node;
106 <  char *name;
107 <  char *user;
108 <  char *host;
109 <  char *passwd;
110 <  int  port;
111 <  int  flags;
112 < #ifdef HAVE_LIBCRYPTO
113 <  char *rsa_public_key_file;
114 <  RSA *rsa_public_key;
115 < #endif
116 < };
105 >  struct {
106 >    dlink_list list;
107 >  } mask,
108 >    leaf,
109 >    hub;
110 >
111 >  struct {
112 >    char buf[IRCD_BUFSIZE];
113 >  } name,
114 >    user,
115 >    host,
116 >    addr,
117 >    bind,
118 >    file,
119 >    ciph,
120 >    rpass,
121 >    spass,
122 >    class;
123 >
124 >  struct {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    max_total,
136 >    max_global,
137 >    max_local,
138 >    max_ident,
139 >    max_sendq,
140 >    max_recvq,
141 >    cidr_bitlen_ipv4,
142 >    cidr_bitlen_ipv6,
143 >    number_per_cidr;
144 > } block_state;
145  
146   static void
147 < free_collect_item(struct CollectItem *item)
147 > reset_block_state(void)
148   {
149 <  MyFree(item->name);
144 <  MyFree(item->user);
145 <  MyFree(item->host);
146 <  MyFree(item->passwd);
147 < #ifdef HAVE_LIBCRYPTO
148 <  MyFree(item->rsa_public_key_file);
149 < #endif
150 <  MyFree(item);
151 < }
149 >  dlink_node *ptr = NULL, *ptr_next = NULL;
150  
151 < static void
152 < unhook_hub_leaf_confs(void)
153 < {
154 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
159 <  struct CollectItem *yy_lconf;
151 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
152 >  {
153 >    MyFree(ptr->data);
154 >    dlinkDelete(ptr, &block_state.mask.list);
155 >    free_dlink_node(ptr);
156 >  }
157  
158 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.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.leaf.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.hub.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.hub.list);
169 >    free_dlink_node(ptr);
170    }
174 }
171  
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 189 of yacc.c  */
177 < #line 180 "ircd_parser.c"
176 > /* Line 371 of yacc.c  */
177 > #line 178 "conf_parser.c"
178  
179 < /* Enabling traces.  */
180 < #ifndef YYDEBUG
181 < # define YYDEBUG 0
182 < #endif
179 > # ifndef YY_NULL
180 > #  if defined __cplusplus && 201103L <= __cplusplus
181 > #   define YY_NULL nullptr
182 > #  else
183 > #   define YY_NULL 0
184 > #  endif
185 > # endif
186  
187   /* Enabling verbose error messages.  */
188   #ifdef YYERROR_VERBOSE
# Line 191 | Line 192 | unhook_hub_leaf_confs(void)
192   # define YYERROR_VERBOSE 0
193   #endif
194  
195 < /* Enabling the token table.  */
196 < #ifndef YYTOKEN_TABLE
197 < # define YYTOKEN_TABLE 0
195 > /* In a future release of Bison, this section will be replaced
196 >   by #include "y.tab.h".  */
197 > #ifndef YY_YY_Y_TAB_H_INCLUDED
198 > # define YY_YY_Y_TAB_H_INCLUDED
199 > /* Enabling traces.  */
200 > #ifndef YYDEBUG
201 > # define YYDEBUG 0
202 > #endif
203 > #if YYDEBUG
204 > extern int yydebug;
205   #endif
198
206  
207   /* Tokens.  */
208   #ifndef YYTOKENTYPE
# Line 204 | Line 211 | unhook_hub_leaf_confs(void)
211        know about them.  */
212     enum yytokentype {
213       ACCEPT_PASSWORD = 258,
214 <     ACTION = 259,
215 <     ADMIN = 260,
216 <     AFTYPE = 261,
217 <     T_ALLOW = 262,
218 <     ANTI_NICK_FLOOD = 263,
219 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
220 <     AUTOCONN = 265,
221 <     T_BLOCK = 266,
222 <     BURST_AWAY = 267,
223 <     BURST_TOPICWHO = 268,
224 <     BYTES = 269,
225 <     KBYTES = 270,
226 <     MBYTES = 271,
227 <     GBYTES = 272,
228 <     TBYTES = 273,
229 <     CALLER_ID_WAIT = 274,
230 <     CAN_FLOOD = 275,
231 <     CAN_IDLE = 276,
232 <     CHANNEL = 277,
233 <     CIDR_BITLEN_IPV4 = 278,
234 <     CIDR_BITLEN_IPV6 = 279,
235 <     CIPHER_PREFERENCE = 280,
236 <     CLASS = 281,
237 <     COMPRESSED = 282,
238 <     COMPRESSION_LEVEL = 283,
239 <     CONNECT = 284,
240 <     CONNECTFREQ = 285,
241 <     CRYPTLINK = 286,
242 <     DEFAULT_CIPHER_PREFERENCE = 287,
243 <     DEFAULT_FLOODCOUNT = 288,
244 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
245 <     DEFAULT_SPLIT_USER_COUNT = 290,
246 <     DENY = 291,
247 <     DESCRIPTION = 292,
248 <     DIE = 293,
249 <     DISABLE_AUTH = 294,
250 <     DISABLE_FAKE_CHANNELS = 295,
251 <     DISABLE_HIDDEN = 296,
252 <     DISABLE_LOCAL_CHANNELS = 297,
253 <     DISABLE_REMOTE_COMMANDS = 298,
254 <     DOTS_IN_IDENT = 299,
255 <     DURATION = 300,
256 <     EGDPOOL_PATH = 301,
257 <     EMAIL = 302,
258 <     ENABLE = 303,
259 <     ENCRYPTED = 304,
260 <     EXCEED_LIMIT = 305,
261 <     EXEMPT = 306,
262 <     FAILED_OPER_NOTICE = 307,
263 <     IRCD_FLAGS = 308,
264 <     FLATTEN_LINKS = 309,
265 <     FFAILED_OPERLOG = 310,
266 <     FKILLLOG = 311,
267 <     FKLINELOG = 312,
268 <     FGLINELOG = 313,
269 <     FIOERRLOG = 314,
270 <     FOPERLOG = 315,
271 <     FOPERSPYLOG = 316,
272 <     FUSERLOG = 317,
273 <     GECOS = 318,
274 <     GENERAL = 319,
275 <     GLINE = 320,
276 <     GLINES = 321,
277 <     GLINE_EXEMPT = 322,
278 <     GLINE_LOG = 323,
279 <     GLINE_TIME = 324,
280 <     GLINE_MIN_CIDR = 325,
281 <     GLINE_MIN_CIDR6 = 326,
282 <     GLOBAL_KILL = 327,
283 <     IRCD_AUTH = 328,
284 <     NEED_IDENT = 329,
285 <     HAVENT_READ_CONF = 330,
286 <     HIDDEN = 331,
287 <     HIDDEN_ADMIN = 332,
288 <     HIDDEN_NAME = 333,
289 <     HIDDEN_OPER = 334,
290 <     HIDE_SERVER_IPS = 335,
291 <     HIDE_SERVERS = 336,
292 <     HIDE_SPOOF_IPS = 337,
293 <     HOST = 338,
294 <     HUB = 339,
295 <     HUB_MASK = 340,
296 <     IDLETIME = 341,
297 <     IGNORE_BOGUS_TS = 342,
298 <     INVISIBLE_ON_CONNECT = 343,
299 <     IP = 344,
300 <     KILL = 345,
301 <     KILL_CHASE_TIME_LIMIT = 346,
302 <     KLINE = 347,
303 <     KLINE_EXEMPT = 348,
304 <     KLINE_REASON = 349,
305 <     KLINE_WITH_REASON = 350,
306 <     KNOCK_DELAY = 351,
307 <     KNOCK_DELAY_CHANNEL = 352,
308 <     LEAF_MASK = 353,
309 <     LINKS_DELAY = 354,
310 <     LISTEN = 355,
311 <     T_LOG = 356,
312 <     LOGGING = 357,
313 <     LOG_LEVEL = 358,
314 <     MAX_ACCEPT = 359,
315 <     MAX_BANS = 360,
316 <     MAX_CHANS_PER_USER = 361,
317 <     MAX_GLOBAL = 362,
318 <     MAX_IDENT = 363,
319 <     MAX_LOCAL = 364,
320 <     MAX_NICK_CHANGES = 365,
321 <     MAX_NICK_TIME = 366,
322 <     MAX_NUMBER = 367,
323 <     MAX_TARGETS = 368,
324 <     MAX_WATCH = 369,
325 <     MESSAGE_LOCALE = 370,
326 <     MIN_NONWILDCARD = 371,
327 <     MIN_NONWILDCARD_SIMPLE = 372,
328 <     MODULE = 373,
329 <     MODULES = 374,
330 <     NAME = 375,
331 <     NEED_PASSWORD = 376,
332 <     NETWORK_DESC = 377,
333 <     NETWORK_NAME = 378,
334 <     NICK = 379,
335 <     NICK_CHANGES = 380,
336 <     NO_CREATE_ON_SPLIT = 381,
337 <     NO_JOIN_ON_SPLIT = 382,
338 <     NO_OPER_FLOOD = 383,
339 <     NO_TILDE = 384,
340 <     NOT = 385,
341 <     NUMBER = 386,
342 <     NUMBER_PER_IDENT = 387,
343 <     NUMBER_PER_CIDR = 388,
344 <     NUMBER_PER_IP = 389,
345 <     NUMBER_PER_IP_GLOBAL = 390,
346 <     OPERATOR = 391,
347 <     OPERS_BYPASS_CALLERID = 392,
348 <     OPER_LOG = 393,
349 <     OPER_ONLY_UMODES = 394,
350 <     OPER_PASS_RESV = 395,
351 <     OPER_SPY_T = 396,
352 <     OPER_UMODES = 397,
353 <     JOIN_FLOOD_COUNT = 398,
354 <     JOIN_FLOOD_TIME = 399,
355 <     PACE_WAIT = 400,
356 <     PACE_WAIT_SIMPLE = 401,
357 <     PASSWORD = 402,
358 <     PATH = 403,
359 <     PING_COOKIE = 404,
360 <     PING_TIME = 405,
361 <     PING_WARNING = 406,
362 <     PORT = 407,
363 <     QSTRING = 408,
364 <     QUIET_ON_BAN = 409,
365 <     REASON = 410,
366 <     REDIRPORT = 411,
367 <     REDIRSERV = 412,
368 <     REGEX_T = 413,
369 <     REHASH = 414,
370 <     TREJECT_HOLD_TIME = 415,
371 <     REMOTE = 416,
372 <     REMOTEBAN = 417,
373 <     RESTRICT_CHANNELS = 418,
374 <     RESTRICTED = 419,
375 <     RSA_PRIVATE_KEY_FILE = 420,
376 <     RSA_PUBLIC_KEY_FILE = 421,
377 <     SSL_CERTIFICATE_FILE = 422,
378 <     T_SSL_CONNECTION_METHOD = 423,
379 <     T_SSLV3 = 424,
380 <     T_TLSV1 = 425,
381 <     RESV = 426,
382 <     RESV_EXEMPT = 427,
383 <     SECONDS = 428,
384 <     MINUTES = 429,
385 <     HOURS = 430,
386 <     DAYS = 431,
387 <     WEEKS = 432,
388 <     SENDQ = 433,
389 <     SEND_PASSWORD = 434,
390 <     SERVERHIDE = 435,
391 <     SERVERINFO = 436,
392 <     SERVLINK_PATH = 437,
393 <     IRCD_SID = 438,
394 <     TKLINE_EXPIRE_NOTICES = 439,
395 <     T_SHARED = 440,
396 <     T_CLUSTER = 441,
397 <     TYPE = 442,
398 <     SHORT_MOTD = 443,
399 <     SILENT = 444,
400 <     SPOOF = 445,
401 <     SPOOF_NOTICE = 446,
402 <     STATS_E_DISABLED = 447,
403 <     STATS_I_OPER_ONLY = 448,
404 <     STATS_K_OPER_ONLY = 449,
405 <     STATS_O_OPER_ONLY = 450,
406 <     STATS_P_OPER_ONLY = 451,
407 <     TBOOL = 452,
408 <     TMASKED = 453,
409 <     T_REJECT = 454,
410 <     TS_MAX_DELTA = 455,
411 <     TS_WARN_DELTA = 456,
412 <     TWODOTS = 457,
413 <     T_ALL = 458,
414 <     T_BOTS = 459,
415 <     T_SOFTCALLERID = 460,
416 <     T_CALLERID = 461,
417 <     T_CCONN = 462,
418 <     T_CCONN_FULL = 463,
419 <     T_CLIENT_FLOOD = 464,
420 <     T_DEAF = 465,
421 <     T_DEBUG = 466,
422 <     T_DRONE = 467,
423 <     T_EXTERNAL = 468,
424 <     T_FULL = 469,
418 <     T_INVISIBLE = 470,
419 <     T_IPV4 = 471,
420 <     T_IPV6 = 472,
421 <     T_LOCOPS = 473,
422 <     T_LOGPATH = 474,
423 <     T_L_CRIT = 475,
424 <     T_L_DEBUG = 476,
425 <     T_L_ERROR = 477,
426 <     T_L_INFO = 478,
427 <     T_L_NOTICE = 479,
428 <     T_L_TRACE = 480,
429 <     T_L_WARN = 481,
430 <     T_MAX_CLIENTS = 482,
431 <     T_NCHANGE = 483,
432 <     T_OPERWALL = 484,
433 <     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
214 >     ADMIN = 259,
215 >     AFTYPE = 260,
216 >     ANTI_NICK_FLOOD = 261,
217 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >     AUTOCONN = 263,
219 >     BYTES = 264,
220 >     KBYTES = 265,
221 >     MBYTES = 266,
222 >     CALLER_ID_WAIT = 267,
223 >     CAN_FLOOD = 268,
224 >     CHANNEL = 269,
225 >     CIDR_BITLEN_IPV4 = 270,
226 >     CIDR_BITLEN_IPV6 = 271,
227 >     CLASS = 272,
228 >     CONNECT = 273,
229 >     CONNECTFREQ = 274,
230 >     DEFAULT_FLOODCOUNT = 275,
231 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
232 >     DEFAULT_SPLIT_USER_COUNT = 277,
233 >     DENY = 278,
234 >     DESCRIPTION = 279,
235 >     DIE = 280,
236 >     DISABLE_AUTH = 281,
237 >     DISABLE_FAKE_CHANNELS = 282,
238 >     DISABLE_REMOTE_COMMANDS = 283,
239 >     DOTS_IN_IDENT = 284,
240 >     EGDPOOL_PATH = 285,
241 >     EMAIL = 286,
242 >     ENCRYPTED = 287,
243 >     EXCEED_LIMIT = 288,
244 >     EXEMPT = 289,
245 >     FAILED_OPER_NOTICE = 290,
246 >     IRCD_FLAGS = 291,
247 >     FLATTEN_LINKS = 292,
248 >     GECOS = 293,
249 >     GENERAL = 294,
250 >     GLINE = 295,
251 >     GLINE_DURATION = 296,
252 >     GLINE_ENABLE = 297,
253 >     GLINE_EXEMPT = 298,
254 >     GLINE_REQUEST_DURATION = 299,
255 >     GLINE_MIN_CIDR = 300,
256 >     GLINE_MIN_CIDR6 = 301,
257 >     GLOBAL_KILL = 302,
258 >     IRCD_AUTH = 303,
259 >     NEED_IDENT = 304,
260 >     HAVENT_READ_CONF = 305,
261 >     HIDDEN = 306,
262 >     HIDDEN_NAME = 307,
263 >     HIDE_SERVER_IPS = 308,
264 >     HIDE_SERVERS = 309,
265 >     HIDE_SPOOF_IPS = 310,
266 >     HOST = 311,
267 >     HUB = 312,
268 >     HUB_MASK = 313,
269 >     IGNORE_BOGUS_TS = 314,
270 >     INVISIBLE_ON_CONNECT = 315,
271 >     IP = 316,
272 >     KILL = 317,
273 >     KILL_CHASE_TIME_LIMIT = 318,
274 >     KLINE = 319,
275 >     KLINE_EXEMPT = 320,
276 >     KNOCK_DELAY = 321,
277 >     KNOCK_DELAY_CHANNEL = 322,
278 >     LEAF_MASK = 323,
279 >     LINKS_DELAY = 324,
280 >     LISTEN = 325,
281 >     T_LOG = 326,
282 >     MAX_ACCEPT = 327,
283 >     MAX_BANS = 328,
284 >     MAX_CHANS_PER_OPER = 329,
285 >     MAX_CHANS_PER_USER = 330,
286 >     MAX_GLOBAL = 331,
287 >     MAX_IDENT = 332,
288 >     MAX_LOCAL = 333,
289 >     MAX_NICK_CHANGES = 334,
290 >     MAX_NICK_TIME = 335,
291 >     MAX_NUMBER = 336,
292 >     MAX_TARGETS = 337,
293 >     MAX_WATCH = 338,
294 >     MESSAGE_LOCALE = 339,
295 >     MIN_NONWILDCARD = 340,
296 >     MIN_NONWILDCARD_SIMPLE = 341,
297 >     MODULE = 342,
298 >     MODULES = 343,
299 >     NAME = 344,
300 >     NEED_PASSWORD = 345,
301 >     NETWORK_DESC = 346,
302 >     NETWORK_NAME = 347,
303 >     NICK = 348,
304 >     NICK_CHANGES = 349,
305 >     NO_CREATE_ON_SPLIT = 350,
306 >     NO_JOIN_ON_SPLIT = 351,
307 >     NO_OPER_FLOOD = 352,
308 >     NO_TILDE = 353,
309 >     NUMBER = 354,
310 >     NUMBER_PER_CIDR = 355,
311 >     NUMBER_PER_IP = 356,
312 >     OPERATOR = 357,
313 >     OPERS_BYPASS_CALLERID = 358,
314 >     OPER_ONLY_UMODES = 359,
315 >     OPER_PASS_RESV = 360,
316 >     OPER_SPY_T = 361,
317 >     OPER_UMODES = 362,
318 >     JOIN_FLOOD_COUNT = 363,
319 >     JOIN_FLOOD_TIME = 364,
320 >     PACE_WAIT = 365,
321 >     PACE_WAIT_SIMPLE = 366,
322 >     PASSWORD = 367,
323 >     PATH = 368,
324 >     PING_COOKIE = 369,
325 >     PING_TIME = 370,
326 >     PORT = 371,
327 >     QSTRING = 372,
328 >     QUIET_ON_BAN = 373,
329 >     REASON = 374,
330 >     REDIRPORT = 375,
331 >     REDIRSERV = 376,
332 >     REGEX_T = 377,
333 >     REHASH = 378,
334 >     REMOTE = 379,
335 >     REMOTEBAN = 380,
336 >     RESTRICT_CHANNELS = 381,
337 >     RSA_PRIVATE_KEY_FILE = 382,
338 >     RSA_PUBLIC_KEY_FILE = 383,
339 >     SSL_CERTIFICATE_FILE = 384,
340 >     SSL_DH_PARAM_FILE = 385,
341 >     T_SSL_CLIENT_METHOD = 386,
342 >     T_SSL_SERVER_METHOD = 387,
343 >     T_SSLV3 = 388,
344 >     T_TLSV1 = 389,
345 >     RESV = 390,
346 >     RESV_EXEMPT = 391,
347 >     SECONDS = 392,
348 >     MINUTES = 393,
349 >     HOURS = 394,
350 >     DAYS = 395,
351 >     WEEKS = 396,
352 >     SENDQ = 397,
353 >     SEND_PASSWORD = 398,
354 >     SERVERHIDE = 399,
355 >     SERVERINFO = 400,
356 >     IRCD_SID = 401,
357 >     TKLINE_EXPIRE_NOTICES = 402,
358 >     T_SHARED = 403,
359 >     T_CLUSTER = 404,
360 >     TYPE = 405,
361 >     SHORT_MOTD = 406,
362 >     SPOOF = 407,
363 >     SPOOF_NOTICE = 408,
364 >     STATS_E_DISABLED = 409,
365 >     STATS_I_OPER_ONLY = 410,
366 >     STATS_K_OPER_ONLY = 411,
367 >     STATS_O_OPER_ONLY = 412,
368 >     STATS_P_OPER_ONLY = 413,
369 >     TBOOL = 414,
370 >     TMASKED = 415,
371 >     TS_MAX_DELTA = 416,
372 >     TS_WARN_DELTA = 417,
373 >     TWODOTS = 418,
374 >     T_ALL = 419,
375 >     T_BOTS = 420,
376 >     T_SOFTCALLERID = 421,
377 >     T_CALLERID = 422,
378 >     T_CCONN = 423,
379 >     T_CCONN_FULL = 424,
380 >     T_SSL_CIPHER_LIST = 425,
381 >     T_DEAF = 426,
382 >     T_DEBUG = 427,
383 >     T_DLINE = 428,
384 >     T_EXTERNAL = 429,
385 >     T_FULL = 430,
386 >     T_INVISIBLE = 431,
387 >     T_IPV4 = 432,
388 >     T_IPV6 = 433,
389 >     T_LOCOPS = 434,
390 >     T_MAX_CLIENTS = 435,
391 >     T_NCHANGE = 436,
392 >     T_OPERWALL = 437,
393 >     T_RECVQ = 438,
394 >     T_REJ = 439,
395 >     T_SERVER = 440,
396 >     T_SERVNOTICE = 441,
397 >     T_SET = 442,
398 >     T_SKILL = 443,
399 >     T_SPY = 444,
400 >     T_SSL = 445,
401 >     T_UMODES = 446,
402 >     T_UNAUTH = 447,
403 >     T_UNDLINE = 448,
404 >     T_UNLIMITED = 449,
405 >     T_UNRESV = 450,
406 >     T_UNXLINE = 451,
407 >     T_GLOBOPS = 452,
408 >     T_WALLOP = 453,
409 >     T_WEBIRC = 454,
410 >     T_RESTART = 455,
411 >     T_SERVICE = 456,
412 >     T_SERVICES_NAME = 457,
413 >     THROTTLE_TIME = 458,
414 >     TRUE_NO_OPER_FLOOD = 459,
415 >     UNKLINE = 460,
416 >     USER = 461,
417 >     USE_EGD = 462,
418 >     USE_LOGGING = 463,
419 >     VHOST = 464,
420 >     VHOST6 = 465,
421 >     XLINE = 466,
422 >     WARN_NO_NLINE = 467,
423 >     T_SIZE = 468,
424 >     T_FILE = 469
425     };
426   #endif
427   /* Tokens.  */
428   #define ACCEPT_PASSWORD 258
429 < #define ACTION 259
430 < #define ADMIN 260
431 < #define AFTYPE 261
432 < #define T_ALLOW 262
433 < #define ANTI_NICK_FLOOD 263
434 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
435 < #define AUTOCONN 265
436 < #define T_BLOCK 266
437 < #define BURST_AWAY 267
438 < #define BURST_TOPICWHO 268
439 < #define BYTES 269
440 < #define KBYTES 270
441 < #define MBYTES 271
442 < #define GBYTES 272
443 < #define TBYTES 273
444 < #define CALLER_ID_WAIT 274
445 < #define CAN_FLOOD 275
446 < #define CAN_IDLE 276
447 < #define CHANNEL 277
448 < #define CIDR_BITLEN_IPV4 278
449 < #define CIDR_BITLEN_IPV6 279
450 < #define CIPHER_PREFERENCE 280
451 < #define CLASS 281
452 < #define COMPRESSED 282
453 < #define COMPRESSION_LEVEL 283
454 < #define CONNECT 284
455 < #define CONNECTFREQ 285
456 < #define CRYPTLINK 286
457 < #define DEFAULT_CIPHER_PREFERENCE 287
458 < #define DEFAULT_FLOODCOUNT 288
459 < #define DEFAULT_SPLIT_SERVER_COUNT 289
460 < #define DEFAULT_SPLIT_USER_COUNT 290
461 < #define DENY 291
462 < #define DESCRIPTION 292
463 < #define DIE 293
464 < #define DISABLE_AUTH 294
465 < #define DISABLE_FAKE_CHANNELS 295
466 < #define DISABLE_HIDDEN 296
467 < #define DISABLE_LOCAL_CHANNELS 297
468 < #define DISABLE_REMOTE_COMMANDS 298
469 < #define DOTS_IN_IDENT 299
470 < #define DURATION 300
471 < #define EGDPOOL_PATH 301
472 < #define EMAIL 302
473 < #define ENABLE 303
474 < #define ENCRYPTED 304
475 < #define EXCEED_LIMIT 305
476 < #define EXEMPT 306
477 < #define FAILED_OPER_NOTICE 307
478 < #define IRCD_FLAGS 308
479 < #define FLATTEN_LINKS 309
480 < #define FFAILED_OPERLOG 310
481 < #define FKILLLOG 311
482 < #define FKLINELOG 312
483 < #define FGLINELOG 313
484 < #define FIOERRLOG 314
485 < #define FOPERLOG 315
486 < #define FOPERSPYLOG 316
487 < #define FUSERLOG 317
488 < #define GECOS 318
489 < #define GENERAL 319
490 < #define GLINE 320
491 < #define GLINES 321
492 < #define GLINE_EXEMPT 322
493 < #define GLINE_LOG 323
494 < #define GLINE_TIME 324
495 < #define GLINE_MIN_CIDR 325
496 < #define GLINE_MIN_CIDR6 326
497 < #define GLOBAL_KILL 327
498 < #define IRCD_AUTH 328
499 < #define NEED_IDENT 329
500 < #define HAVENT_READ_CONF 330
501 < #define HIDDEN 331
502 < #define HIDDEN_ADMIN 332
503 < #define HIDDEN_NAME 333
504 < #define HIDDEN_OPER 334
505 < #define HIDE_SERVER_IPS 335
506 < #define HIDE_SERVERS 336
507 < #define HIDE_SPOOF_IPS 337
508 < #define HOST 338
509 < #define HUB 339
510 < #define HUB_MASK 340
511 < #define IDLETIME 341
512 < #define IGNORE_BOGUS_TS 342
513 < #define INVISIBLE_ON_CONNECT 343
514 < #define IP 344
515 < #define KILL 345
516 < #define KILL_CHASE_TIME_LIMIT 346
517 < #define KLINE 347
518 < #define KLINE_EXEMPT 348
519 < #define KLINE_REASON 349
520 < #define KLINE_WITH_REASON 350
521 < #define KNOCK_DELAY 351
522 < #define KNOCK_DELAY_CHANNEL 352
523 < #define LEAF_MASK 353
524 < #define LINKS_DELAY 354
525 < #define LISTEN 355
526 < #define T_LOG 356
527 < #define LOGGING 357
528 < #define LOG_LEVEL 358
529 < #define MAX_ACCEPT 359
530 < #define MAX_BANS 360
531 < #define MAX_CHANS_PER_USER 361
532 < #define MAX_GLOBAL 362
533 < #define MAX_IDENT 363
534 < #define MAX_LOCAL 364
535 < #define MAX_NICK_CHANGES 365
536 < #define MAX_NICK_TIME 366
537 < #define MAX_NUMBER 367
538 < #define MAX_TARGETS 368
539 < #define MAX_WATCH 369
540 < #define MESSAGE_LOCALE 370
541 < #define MIN_NONWILDCARD 371
542 < #define MIN_NONWILDCARD_SIMPLE 372
543 < #define MODULE 373
544 < #define MODULES 374
545 < #define NAME 375
546 < #define NEED_PASSWORD 376
547 < #define NETWORK_DESC 377
548 < #define NETWORK_NAME 378
549 < #define NICK 379
550 < #define NICK_CHANGES 380
551 < #define NO_CREATE_ON_SPLIT 381
552 < #define NO_JOIN_ON_SPLIT 382
553 < #define NO_OPER_FLOOD 383
554 < #define NO_TILDE 384
555 < #define NOT 385
556 < #define NUMBER 386
557 < #define NUMBER_PER_IDENT 387
558 < #define NUMBER_PER_CIDR 388
559 < #define NUMBER_PER_IP 389
560 < #define NUMBER_PER_IP_GLOBAL 390
561 < #define OPERATOR 391
562 < #define OPERS_BYPASS_CALLERID 392
563 < #define OPER_LOG 393
564 < #define OPER_ONLY_UMODES 394
565 < #define OPER_PASS_RESV 395
566 < #define OPER_SPY_T 396
567 < #define OPER_UMODES 397
568 < #define JOIN_FLOOD_COUNT 398
569 < #define JOIN_FLOOD_TIME 399
570 < #define PACE_WAIT 400
571 < #define PACE_WAIT_SIMPLE 401
572 < #define PASSWORD 402
573 < #define PATH 403
574 < #define PING_COOKIE 404
575 < #define PING_TIME 405
576 < #define PING_WARNING 406
577 < #define PORT 407
578 < #define QSTRING 408
579 < #define QUIET_ON_BAN 409
580 < #define REASON 410
581 < #define REDIRPORT 411
582 < #define REDIRSERV 412
583 < #define REGEX_T 413
584 < #define REHASH 414
585 < #define TREJECT_HOLD_TIME 415
586 < #define REMOTE 416
587 < #define REMOTEBAN 417
588 < #define RESTRICT_CHANNELS 418
589 < #define RESTRICTED 419
590 < #define RSA_PRIVATE_KEY_FILE 420
591 < #define RSA_PUBLIC_KEY_FILE 421
592 < #define SSL_CERTIFICATE_FILE 422
593 < #define T_SSL_CONNECTION_METHOD 423
594 < #define T_SSLV3 424
595 < #define T_TLSV1 425
596 < #define RESV 426
597 < #define RESV_EXEMPT 427
598 < #define SECONDS 428
599 < #define MINUTES 429
600 < #define HOURS 430
601 < #define DAYS 431
602 < #define WEEKS 432
603 < #define SENDQ 433
604 < #define SEND_PASSWORD 434
605 < #define SERVERHIDE 435
606 < #define SERVERINFO 436
607 < #define SERVLINK_PATH 437
608 < #define IRCD_SID 438
609 < #define TKLINE_EXPIRE_NOTICES 439
610 < #define T_SHARED 440
611 < #define T_CLUSTER 441
612 < #define TYPE 442
613 < #define SHORT_MOTD 443
614 < #define SILENT 444
615 < #define SPOOF 445
616 < #define SPOOF_NOTICE 446
617 < #define STATS_E_DISABLED 447
618 < #define STATS_I_OPER_ONLY 448
619 < #define STATS_K_OPER_ONLY 449
620 < #define STATS_O_OPER_ONLY 450
621 < #define STATS_P_OPER_ONLY 451
622 < #define TBOOL 452
623 < #define TMASKED 453
624 < #define T_REJECT 454
625 < #define TS_MAX_DELTA 455
626 < #define TS_WARN_DELTA 456
627 < #define TWODOTS 457
628 < #define T_ALL 458
629 < #define T_BOTS 459
630 < #define T_SOFTCALLERID 460
631 < #define T_CALLERID 461
632 < #define T_CCONN 462
633 < #define T_CCONN_FULL 463
634 < #define T_CLIENT_FLOOD 464
635 < #define T_DEAF 465
636 < #define T_DEBUG 466
637 < #define T_DRONE 467
638 < #define T_EXTERNAL 468
639 < #define T_FULL 469
678 < #define T_INVISIBLE 470
679 < #define T_IPV4 471
680 < #define T_IPV6 472
681 < #define T_LOCOPS 473
682 < #define T_LOGPATH 474
683 < #define T_L_CRIT 475
684 < #define T_L_DEBUG 476
685 < #define T_L_ERROR 477
686 < #define T_L_INFO 478
687 < #define T_L_NOTICE 479
688 < #define T_L_TRACE 480
689 < #define T_L_WARN 481
690 < #define T_MAX_CLIENTS 482
691 < #define T_NCHANGE 483
692 < #define T_OPERWALL 484
693 < #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 <
429 > #define ADMIN 259
430 > #define AFTYPE 260
431 > #define ANTI_NICK_FLOOD 261
432 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
433 > #define AUTOCONN 263
434 > #define BYTES 264
435 > #define KBYTES 265
436 > #define MBYTES 266
437 > #define CALLER_ID_WAIT 267
438 > #define CAN_FLOOD 268
439 > #define CHANNEL 269
440 > #define CIDR_BITLEN_IPV4 270
441 > #define CIDR_BITLEN_IPV6 271
442 > #define CLASS 272
443 > #define CONNECT 273
444 > #define CONNECTFREQ 274
445 > #define DEFAULT_FLOODCOUNT 275
446 > #define DEFAULT_SPLIT_SERVER_COUNT 276
447 > #define DEFAULT_SPLIT_USER_COUNT 277
448 > #define DENY 278
449 > #define DESCRIPTION 279
450 > #define DIE 280
451 > #define DISABLE_AUTH 281
452 > #define DISABLE_FAKE_CHANNELS 282
453 > #define DISABLE_REMOTE_COMMANDS 283
454 > #define DOTS_IN_IDENT 284
455 > #define EGDPOOL_PATH 285
456 > #define EMAIL 286
457 > #define ENCRYPTED 287
458 > #define EXCEED_LIMIT 288
459 > #define EXEMPT 289
460 > #define FAILED_OPER_NOTICE 290
461 > #define IRCD_FLAGS 291
462 > #define FLATTEN_LINKS 292
463 > #define GECOS 293
464 > #define GENERAL 294
465 > #define GLINE 295
466 > #define GLINE_DURATION 296
467 > #define GLINE_ENABLE 297
468 > #define GLINE_EXEMPT 298
469 > #define GLINE_REQUEST_DURATION 299
470 > #define GLINE_MIN_CIDR 300
471 > #define GLINE_MIN_CIDR6 301
472 > #define GLOBAL_KILL 302
473 > #define IRCD_AUTH 303
474 > #define NEED_IDENT 304
475 > #define HAVENT_READ_CONF 305
476 > #define HIDDEN 306
477 > #define HIDDEN_NAME 307
478 > #define HIDE_SERVER_IPS 308
479 > #define HIDE_SERVERS 309
480 > #define HIDE_SPOOF_IPS 310
481 > #define HOST 311
482 > #define HUB 312
483 > #define HUB_MASK 313
484 > #define IGNORE_BOGUS_TS 314
485 > #define INVISIBLE_ON_CONNECT 315
486 > #define IP 316
487 > #define KILL 317
488 > #define KILL_CHASE_TIME_LIMIT 318
489 > #define KLINE 319
490 > #define KLINE_EXEMPT 320
491 > #define KNOCK_DELAY 321
492 > #define KNOCK_DELAY_CHANNEL 322
493 > #define LEAF_MASK 323
494 > #define LINKS_DELAY 324
495 > #define LISTEN 325
496 > #define T_LOG 326
497 > #define MAX_ACCEPT 327
498 > #define MAX_BANS 328
499 > #define MAX_CHANS_PER_OPER 329
500 > #define MAX_CHANS_PER_USER 330
501 > #define MAX_GLOBAL 331
502 > #define MAX_IDENT 332
503 > #define MAX_LOCAL 333
504 > #define MAX_NICK_CHANGES 334
505 > #define MAX_NICK_TIME 335
506 > #define MAX_NUMBER 336
507 > #define MAX_TARGETS 337
508 > #define MAX_WATCH 338
509 > #define MESSAGE_LOCALE 339
510 > #define MIN_NONWILDCARD 340
511 > #define MIN_NONWILDCARD_SIMPLE 341
512 > #define MODULE 342
513 > #define MODULES 343
514 > #define NAME 344
515 > #define NEED_PASSWORD 345
516 > #define NETWORK_DESC 346
517 > #define NETWORK_NAME 347
518 > #define NICK 348
519 > #define NICK_CHANGES 349
520 > #define NO_CREATE_ON_SPLIT 350
521 > #define NO_JOIN_ON_SPLIT 351
522 > #define NO_OPER_FLOOD 352
523 > #define NO_TILDE 353
524 > #define NUMBER 354
525 > #define NUMBER_PER_CIDR 355
526 > #define NUMBER_PER_IP 356
527 > #define OPERATOR 357
528 > #define OPERS_BYPASS_CALLERID 358
529 > #define OPER_ONLY_UMODES 359
530 > #define OPER_PASS_RESV 360
531 > #define OPER_SPY_T 361
532 > #define OPER_UMODES 362
533 > #define JOIN_FLOOD_COUNT 363
534 > #define JOIN_FLOOD_TIME 364
535 > #define PACE_WAIT 365
536 > #define PACE_WAIT_SIMPLE 366
537 > #define PASSWORD 367
538 > #define PATH 368
539 > #define PING_COOKIE 369
540 > #define PING_TIME 370
541 > #define PORT 371
542 > #define QSTRING 372
543 > #define QUIET_ON_BAN 373
544 > #define REASON 374
545 > #define REDIRPORT 375
546 > #define REDIRSERV 376
547 > #define REGEX_T 377
548 > #define REHASH 378
549 > #define REMOTE 379
550 > #define REMOTEBAN 380
551 > #define RESTRICT_CHANNELS 381
552 > #define RSA_PRIVATE_KEY_FILE 382
553 > #define RSA_PUBLIC_KEY_FILE 383
554 > #define SSL_CERTIFICATE_FILE 384
555 > #define SSL_DH_PARAM_FILE 385
556 > #define T_SSL_CLIENT_METHOD 386
557 > #define T_SSL_SERVER_METHOD 387
558 > #define T_SSLV3 388
559 > #define T_TLSV1 389
560 > #define RESV 390
561 > #define RESV_EXEMPT 391
562 > #define SECONDS 392
563 > #define MINUTES 393
564 > #define HOURS 394
565 > #define DAYS 395
566 > #define WEEKS 396
567 > #define SENDQ 397
568 > #define SEND_PASSWORD 398
569 > #define SERVERHIDE 399
570 > #define SERVERINFO 400
571 > #define IRCD_SID 401
572 > #define TKLINE_EXPIRE_NOTICES 402
573 > #define T_SHARED 403
574 > #define T_CLUSTER 404
575 > #define TYPE 405
576 > #define SHORT_MOTD 406
577 > #define SPOOF 407
578 > #define SPOOF_NOTICE 408
579 > #define STATS_E_DISABLED 409
580 > #define STATS_I_OPER_ONLY 410
581 > #define STATS_K_OPER_ONLY 411
582 > #define STATS_O_OPER_ONLY 412
583 > #define STATS_P_OPER_ONLY 413
584 > #define TBOOL 414
585 > #define TMASKED 415
586 > #define TS_MAX_DELTA 416
587 > #define TS_WARN_DELTA 417
588 > #define TWODOTS 418
589 > #define T_ALL 419
590 > #define T_BOTS 420
591 > #define T_SOFTCALLERID 421
592 > #define T_CALLERID 422
593 > #define T_CCONN 423
594 > #define T_CCONN_FULL 424
595 > #define T_SSL_CIPHER_LIST 425
596 > #define T_DEAF 426
597 > #define T_DEBUG 427
598 > #define T_DLINE 428
599 > #define T_EXTERNAL 429
600 > #define T_FULL 430
601 > #define T_INVISIBLE 431
602 > #define T_IPV4 432
603 > #define T_IPV6 433
604 > #define T_LOCOPS 434
605 > #define T_MAX_CLIENTS 435
606 > #define T_NCHANGE 436
607 > #define T_OPERWALL 437
608 > #define T_RECVQ 438
609 > #define T_REJ 439
610 > #define T_SERVER 440
611 > #define T_SERVNOTICE 441
612 > #define T_SET 442
613 > #define T_SKILL 443
614 > #define T_SPY 444
615 > #define T_SSL 445
616 > #define T_UMODES 446
617 > #define T_UNAUTH 447
618 > #define T_UNDLINE 448
619 > #define T_UNLIMITED 449
620 > #define T_UNRESV 450
621 > #define T_UNXLINE 451
622 > #define T_GLOBOPS 452
623 > #define T_WALLOP 453
624 > #define T_WEBIRC 454
625 > #define T_RESTART 455
626 > #define T_SERVICE 456
627 > #define T_SERVICES_NAME 457
628 > #define THROTTLE_TIME 458
629 > #define TRUE_NO_OPER_FLOOD 459
630 > #define UNKLINE 460
631 > #define USER 461
632 > #define USE_EGD 462
633 > #define USE_LOGGING 463
634 > #define VHOST 464
635 > #define VHOST6 465
636 > #define XLINE 466
637 > #define WARN_NO_NLINE 467
638 > #define T_SIZE 468
639 > #define T_FILE 469
640  
641  
642  
643   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
644   typedef union YYSTYPE
645   {
646 <
647 < /* Line 214 of yacc.c  */
732 < #line 132 "ircd_parser.y"
646 > /* Line 387 of yacc.c  */
647 > #line 135 "conf_parser.y"
648  
649    int number;
650    char *string;
651  
652  
653 <
654 < /* Line 214 of yacc.c  */
740 < #line 741 "ircd_parser.c"
653 > /* Line 387 of yacc.c  */
654 > #line 655 "conf_parser.c"
655   } YYSTYPE;
656   # define YYSTYPE_IS_TRIVIAL 1
657   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
658   # define YYSTYPE_IS_DECLARED 1
659   #endif
660  
661 + extern YYSTYPE yylval;
662  
663 < /* Copy the second part of user declarations.  */
663 > #ifdef YYPARSE_PARAM
664 > #if defined __STDC__ || defined __cplusplus
665 > int yyparse (void *YYPARSE_PARAM);
666 > #else
667 > int yyparse ();
668 > #endif
669 > #else /* ! YYPARSE_PARAM */
670 > #if defined __STDC__ || defined __cplusplus
671 > int yyparse (void);
672 > #else
673 > int yyparse ();
674 > #endif
675 > #endif /* ! YYPARSE_PARAM */
676 >
677 > #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
678  
679 + /* Copy the second part of user declarations.  */
680  
681 < /* Line 264 of yacc.c  */
682 < #line 753 "ircd_parser.c"
681 > /* Line 390 of yacc.c  */
682 > #line 683 "conf_parser.c"
683  
684   #ifdef short
685   # undef short
# Line 802 | Line 732 | typedef short int yytype_int16;
732   # if defined YYENABLE_NLS && YYENABLE_NLS
733   #  if ENABLE_NLS
734   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
735 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
735 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
736   #  endif
737   # endif
738   # ifndef YY_
739 < #  define YY_(msgid) msgid
739 > #  define YY_(Msgid) Msgid
740   # endif
741   #endif
742  
743   /* Suppress unused-variable warnings by "using" E.  */
744   #if ! defined lint || defined __GNUC__
745 < # define YYUSE(e) ((void) (e))
745 > # define YYUSE(E) ((void) (E))
746   #else
747 < # define YYUSE(e) /* empty */
747 > # define YYUSE(E) /* empty */
748   #endif
749  
750   /* Identity function, used to suppress warnings about constant conditions.  */
751   #ifndef lint
752 < # define YYID(n) (n)
752 > # define YYID(N) (N)
753   #else
754   #if (defined __STDC__ || defined __C99__FUNC__ \
755       || defined __cplusplus || defined _MSC_VER)
# Line 852 | Line 782 | YYID (yyi)
782   #    define alloca _alloca
783   #   else
784   #    define YYSTACK_ALLOC alloca
785 < #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
785 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
786       || defined __cplusplus || defined _MSC_VER)
787   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
788 < #     ifndef _STDLIB_H
789 < #      define _STDLIB_H 1
788 >      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
789 > #     ifndef EXIT_SUCCESS
790 > #      define EXIT_SUCCESS 0
791   #     endif
792   #    endif
793   #   endif
# Line 879 | Line 810 | YYID (yyi)
810   #  ifndef YYSTACK_ALLOC_MAXIMUM
811   #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
812   #  endif
813 < #  if (defined __cplusplus && ! defined _STDLIB_H \
813 > #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
814         && ! ((defined YYMALLOC || defined malloc) \
815               && (defined YYFREE || defined free)))
816   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
817 < #   ifndef _STDLIB_H
818 < #    define _STDLIB_H 1
817 > #   ifndef EXIT_SUCCESS
818 > #    define EXIT_SUCCESS 0
819   #   endif
820   #  endif
821   #  ifndef YYMALLOC
822   #   define YYMALLOC malloc
823 < #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
823 > #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
824       || defined __cplusplus || defined _MSC_VER)
825   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
826   #   endif
827   #  endif
828   #  ifndef YYFREE
829   #   define YYFREE free
830 < #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
830 > #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
831       || defined __cplusplus || defined _MSC_VER)
832   void free (void *); /* INFRINGES ON USER NAME SPACE */
833   #   endif
# Line 925 | Line 856 | union yyalloc
856       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
857        + YYSTACK_GAP_MAXIMUM)
858  
859 < /* 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
859 > # define YYCOPY_NEEDED 1
860  
861   /* Relocate STACK from its old location to the new one.  The
862     local variables YYSIZE and YYSTACKSIZE give the old and new number of
# Line 961 | Line 876 | union yyalloc
876  
877   #endif
878  
879 + #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
880 + /* Copy COUNT objects from SRC to DST.  The source and destination do
881 +   not overlap.  */
882 + # ifndef YYCOPY
883 + #  if defined __GNUC__ && 1 < __GNUC__
884 + #   define YYCOPY(Dst, Src, Count) \
885 +      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
886 + #  else
887 + #   define YYCOPY(Dst, Src, Count)              \
888 +      do                                        \
889 +        {                                       \
890 +          YYSIZE_T yyi;                         \
891 +          for (yyi = 0; yyi < (Count); yyi++)   \
892 +            (Dst)[yyi] = (Src)[yyi];            \
893 +        }                                       \
894 +      while (YYID (0))
895 + #  endif
896 + # endif
897 + #endif /* !YYCOPY_NEEDED */
898 +
899   /* YYFINAL -- State number of the termination state.  */
900   #define YYFINAL  2
901   /* YYLAST -- Last index in YYTABLE.  */
902 < #define YYLAST   1258
902 > #define YYLAST   1132
903  
904   /* YYNTOKENS -- Number of terminals.  */
905 < #define YYNTOKENS  265
905 > #define YYNTOKENS  220
906   /* YYNNTS -- Number of nonterminals.  */
907 < #define YYNNTS  318
907 > #define YYNNTS  282
908   /* YYNRULES -- Number of rules.  */
909 < #define YYNRULES  687
909 > #define YYNRULES  626
910   /* YYNRULES -- Number of states.  */
911 < #define YYNSTATES  1354
911 > #define YYNSTATES  1224
912  
913   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
914   #define YYUNDEFTOK  2
915 < #define YYMAXUTOK   514
915 > #define YYMAXUTOK   469
916  
917   #define YYTRANSLATE(YYX)                                                \
918    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
919  
920   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
921 < static const yytype_uint16 yytranslate[] =
921 > static const yytype_uint8 yytranslate[] =
922   {
923         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
924         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
925         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
926         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
927 <       2,     2,     2,     2,   264,     2,     2,     2,     2,     2,
928 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   260,
929 <       2,   263,     2,     2,     2,     2,     2,     2,     2,     2,
927 >       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
928 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
929 >       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
930         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
931         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
932         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
933         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935 <       2,     2,     2,   262,     2,   261,     2,     2,     2,     2,
935 >       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
938         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1031 | Line 966 | static const yytype_uint16 yytranslate[]
966       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
967       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
968       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
969 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1035 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1036 <     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
969 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
970   };
971  
972   #if YYDEBUG
# Line 1050 | Line 980 | static const yytype_uint16 yyprhs[] =
980        63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
981        97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
982       134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
984 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
985 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
986 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
987 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
988 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
989 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
990 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
991 <     434,   439,   441,   446,   451,   456,   461,   466,   467,   473,
983 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
984 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
985 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
986 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
987 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
988 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
989 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
990 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
991 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
992 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
993       477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
994 <     497,   499,   501,   503,   505,   507,   509,   511,   513,   515,
995 <     517,   518,   524,   528,   530,   531,   535,   536,   539,   541,
996 <     543,   545,   547,   549,   551,   553,   555,   557,   559,   561,
997 <     563,   565,   567,   569,   571,   572,   580,   581,   583,   586,
998 <     588,   590,   592,   594,   596,   598,   600,   602,   604,   606,
999 <     608,   610,   612,   614,   617,   622,   624,   629,   634,   639,
1000 <     644,   649,   654,   659,   664,   669,   674,   679,   684,   685,
1001 <     692,   693,   699,   703,   705,   707,   709,   711,   714,   716,
1002 <     718,   720,   722,   724,   727,   728,   734,   738,   740,   742,
1003 <     746,   751,   756,   757,   764,   767,   769,   771,   773,   775,
1004 <     777,   779,   781,   783,   785,   788,   793,   798,   803,   808,
1005 <     809,   815,   819,   821,   822,   826,   827,   830,   832,   834,
1006 <     836,   838,   840,   842,   844,   846,   848,   850,   855,   860,
1007 <     865,   866,   873,   876,   878,   880,   882,   884,   887,   892,
1008 <     897,   902,   903,   910,   913,   915,   917,   919,   921,   924,
1009 <     929,   934,   935,   941,   945,   947,   949,   951,   953,   955,
1010 <     957,   959,   961,   963,   965,   967,   969,   970,   977,   980,
1011 <     982,   984,   986,   989,   994,   995,  1001,  1005,  1007,  1009,
1012 <    1011,  1013,  1015,  1017,  1019,  1021,  1023,  1025,  1027,  1029,
1013 <    1030,  1038,  1039,  1041,  1044,  1046,  1048,  1050,  1052,  1054,
1014 <    1056,  1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,
1015 <    1077,  1082,  1084,  1089,  1094,  1099,  1104,  1109,  1114,  1119,
1016 <    1120,  1126,  1130,  1132,  1133,  1137,  1138,  1141,  1143,  1145,
1017 <    1147,  1149,  1151,  1156,  1161,  1166,  1171,  1176,  1181,  1182,
1018 <    1189,  1190,  1196,  1200,  1202,  1204,  1207,  1209,  1211,  1213,
1019 <    1215,  1217,  1222,  1227,  1228,  1235,  1238,  1240,  1242,  1244,
1020 <    1246,  1251,  1256,  1262,  1265,  1267,  1269,  1271,  1276,  1277,
1021 <    1284,  1285,  1291,  1295,  1297,  1299,  1302,  1304,  1306,  1308,
1022 <    1310,  1312,  1317,  1322,  1328,  1331,  1333,  1335,  1337,  1339,
1023 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1024 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1025 <    1381,  1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399,
1026 <    1401,  1403,  1405,  1407,  1409,  1411,  1413,  1415,  1417,  1419,
1027 <    1421,  1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,  1439,
1028 <    1441,  1443,  1445,  1450,  1455,  1460,  1465,  1470,  1475,  1480,
1029 <    1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,  1530,
1030 <    1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,  1580,
1031 <    1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,  1625,  1630,
1032 <    1635,  1640,  1645,  1650,  1655,  1660,  1665,  1670,  1675,  1680,
1033 <    1685,  1690,  1695,  1700,  1701,  1707,  1711,  1713,  1715,  1717,
1034 <    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1035 <    1739,  1741,  1743,  1745,  1747,  1749,  1751,  1752,  1758,  1762,
1036 <    1764,  1766,  1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,
1037 <    1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,  1800,  1802,
1038 <    1807,  1812,  1817,  1822,  1823,  1830,  1833,  1835,  1837,  1839,
1039 <    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
994 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
995 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
996 >     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
997 >     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
998 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
999 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1000 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1001 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1002 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1003 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1004 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1005 >     814,   816,   821,   826,   831,   832,   839,   842,   844,   846,
1006 >     848,   850,   853,   858,   863,   868,   874,   877,   879,   881,
1007 >     883,   888,   889,   896,   899,   901,   903,   905,   907,   910,
1008 >     915,   920,   921,   927,   931,   933,   935,   937,   939,   941,
1009 >     943,   945,   947,   949,   951,   953,   954,   961,   964,   966,
1010 >     968,   970,   973,   978,   979,   985,   989,   991,   993,   995,
1011 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1011,  1012,  1019,
1012 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1013 >    1042,  1044,  1046,  1048,  1050,  1053,  1058,  1063,  1068,  1073,
1014 >    1078,  1083,  1088,  1093,  1094,  1100,  1104,  1106,  1108,  1110,
1015 >    1115,  1120,  1125,  1130,  1135,  1136,  1143,  1144,  1150,  1154,
1016 >    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1176,  1181,
1017 >    1182,  1189,  1192,  1194,  1196,  1198,  1200,  1205,  1210,  1216,
1018 >    1219,  1221,  1223,  1225,  1230,  1231,  1238,  1239,  1245,  1249,
1019 >    1251,  1253,  1256,  1258,  1260,  1262,  1264,  1266,  1271,  1276,
1020 >    1282,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1021 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1022 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1023 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1024 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1025 >    1383,  1385,  1387,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1026 >    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1027 >    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1028 >    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1029 >    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1618,
1030 >    1624,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1031 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1032 >    1666,  1668,  1670,  1671,  1677,  1681,  1683,  1685,  1687,  1689,
1033 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1034 >    1711,  1713,  1715,  1717,  1719,  1721,  1723,  1728,  1733,  1738,
1035 >    1744,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1036 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1779,  1784,  1789,
1037 >    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1038 >    1844,  1849,  1855,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1039 >    1872,  1874,  1879,  1884,  1889,  1894,  1899
1040   };
1041  
1042   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1043   static const yytype_int16 yyrhs[] =
1044   {
1045 <     266,     0,    -1,    -1,   266,   267,    -1,   295,    -1,   301,
1046 <      -1,   316,    -1,   552,    -1,   339,    -1,   358,    -1,   372,
1047 <      -1,   277,    -1,   573,    -1,   390,    -1,   397,    -1,   407,
1048 <      -1,   416,    -1,   442,    -1,   452,    -1,   458,    -1,   472,
1049 <      -1,   536,    -1,   462,    -1,   272,    -1,     1,   260,    -1,
1050 <       1,   261,    -1,    -1,   269,    -1,   131,   268,    -1,   131,
1051 <     173,   268,    -1,   131,   174,   268,    -1,   131,   175,   268,
1052 <      -1,   131,   176,   268,    -1,   131,   177,   268,    -1,    -1,
1053 <     271,    -1,   131,   270,    -1,   131,    14,   270,    -1,   131,
1054 <      15,   270,    -1,   131,    16,   270,    -1,   119,   262,   273,
1055 <     261,   260,    -1,   273,   274,    -1,   274,    -1,   275,    -1,
1056 <     276,    -1,     1,   260,    -1,   118,   263,   153,   260,    -1,
1057 <     148,   263,   153,   260,    -1,   181,   262,   278,   261,   260,
1058 <      -1,   278,   279,    -1,   279,    -1,   286,    -1,   291,    -1,
1059 <     294,    -1,   288,    -1,   289,    -1,   290,    -1,   293,    -1,
1060 <     285,    -1,   292,    -1,   287,    -1,   284,    -1,   280,    -1,
1061 <       1,   260,    -1,    -1,   168,   281,   263,   282,   260,    -1,
1062 <     282,   264,   283,    -1,   283,    -1,   169,    -1,   170,    -1,
1063 <     167,   263,   153,   260,    -1,   165,   263,   153,   260,    -1,
1064 <     120,   263,   153,   260,    -1,   183,   263,   153,   260,    -1,
1065 <      37,   263,   153,   260,    -1,   123,   263,   153,   260,    -1,
1066 <     122,   263,   153,   260,    -1,   255,   263,   153,   260,    -1,
1067 <     256,   263,   153,   260,    -1,   227,   263,   131,   260,    -1,
1068 <      84,   263,   197,   260,    -1,     5,   262,   296,   261,   260,
1069 <      -1,   296,   297,    -1,   297,    -1,   298,    -1,   300,    -1,
1070 <     299,    -1,     1,   260,    -1,   120,   263,   153,   260,    -1,
1071 <      47,   263,   153,   260,    -1,    37,   263,   153,   260,    -1,
1072 <     102,   262,   302,   261,   260,    -1,   302,   303,    -1,   303,
1073 <      -1,   304,    -1,   305,    -1,   314,    -1,   315,    -1,   306,
1074 <      -1,   308,    -1,   310,    -1,   311,    -1,   313,    -1,   309,
1075 <      -1,   312,    -1,   307,    -1,     1,   260,    -1,   219,   263,
1076 <     153,   260,    -1,   138,   263,   153,   260,    -1,    62,   263,
1077 <     153,   260,    -1,    55,   263,   153,   260,    -1,    60,   263,
1078 <     153,   260,    -1,    61,   263,   153,   260,    -1,    58,   263,
1079 <     153,   260,    -1,    57,   263,   153,   260,    -1,    59,   263,
1080 <     153,   260,    -1,    56,   263,   153,   260,    -1,   103,   263,
1081 <     220,   260,    -1,   103,   263,   222,   260,    -1,   103,   263,
1082 <     226,   260,    -1,   103,   263,   224,   260,    -1,   103,   263,
1083 <     225,   260,    -1,   103,   263,   223,   260,    -1,   103,   263,
1084 <     221,   260,    -1,   253,   263,   197,   260,    -1,    -1,   136,
1085 <     317,   318,   262,   319,   261,   260,    -1,    -1,   322,    -1,
1086 <     319,   320,    -1,   320,    -1,   321,    -1,   323,    -1,   324,
1087 <      -1,   328,    -1,   327,    -1,   325,    -1,   326,    -1,   332,
1088 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   153,
1089 <      -1,   248,   263,   153,   260,    -1,   147,   263,   153,   260,
1090 <      -1,    49,   263,   197,   260,    -1,   166,   263,   153,   260,
1091 <      -1,    26,   263,   153,   260,    -1,    -1,   236,   329,   263,
1092 <     330,   260,    -1,   330,   264,   331,    -1,   331,    -1,   204,
1093 <      -1,   207,    -1,   208,    -1,   210,    -1,   211,    -1,   214,
1094 <      -1,   233,    -1,   228,    -1,   230,    -1,   237,    -1,   234,
1095 <      -1,   213,    -1,   229,    -1,   232,    -1,   215,    -1,   240,
1096 <      -1,   205,    -1,   206,    -1,   218,    -1,    -1,    53,   333,
1097 <     263,   334,   260,    -1,   334,   264,   335,    -1,   335,    -1,
1098 <      -1,   130,   336,   338,    -1,    -1,   337,   338,    -1,    72,
1099 <      -1,   161,    -1,    92,    -1,   247,    -1,   257,    -1,    65,
1100 <      -1,    38,    -1,   159,    -1,     5,    -1,    77,    -1,   125,
1101 <      -1,   229,    -1,   141,    -1,    79,    -1,   162,    -1,    49,
1102 <      -1,    -1,    26,   340,   341,   262,   342,   261,   260,    -1,
1103 <      -1,   345,    -1,   342,   343,    -1,   343,    -1,   344,    -1,
1104 <     355,    -1,   356,    -1,   346,    -1,   347,    -1,   357,    -1,
1105 <     348,    -1,   349,    -1,   350,    -1,   351,    -1,   352,    -1,
1106 <     353,    -1,   354,    -1,     1,   260,    -1,   120,   263,   153,
1107 <     260,    -1,   153,    -1,   150,   263,   269,   260,    -1,   151,
1108 <     263,   269,   260,    -1,   134,   263,   131,   260,    -1,    30,
1109 <     263,   269,   260,    -1,   112,   263,   131,   260,    -1,   107,
1110 <     263,   131,   260,    -1,   109,   263,   131,   260,    -1,   108,
1111 <     263,   131,   260,    -1,   178,   263,   271,   260,    -1,    23,
1112 <     263,   131,   260,    -1,    24,   263,   131,   260,    -1,   133,
1113 <     263,   131,   260,    -1,    -1,   100,   359,   262,   364,   261,
1114 <     260,    -1,    -1,    53,   361,   263,   362,   260,    -1,   362,
1115 <     264,   363,    -1,   363,    -1,   235,    -1,    76,    -1,   231,
1116 <      -1,   364,   365,    -1,   365,    -1,   366,    -1,   360,    -1,
1117 <     370,    -1,   371,    -1,     1,   260,    -1,    -1,   152,   263,
1118 <     368,   367,   260,    -1,   368,   264,   369,    -1,   369,    -1,
1119 <     131,    -1,   131,   202,   131,    -1,    89,   263,   153,   260,
1120 <      -1,    83,   263,   153,   260,    -1,    -1,    73,   373,   262,
1121 <     374,   261,   260,    -1,   374,   375,    -1,   375,    -1,   376,
1122 <      -1,   377,    -1,   378,    -1,   380,    -1,   387,    -1,   388,
1123 <      -1,   389,    -1,   379,    -1,     1,   260,    -1,   248,   263,
1124 <     153,   260,    -1,   147,   263,   153,   260,    -1,    26,   263,
1125 <     153,   260,    -1,    49,   263,   197,   260,    -1,    -1,    53,
1126 <     381,   263,   382,   260,    -1,   382,   264,   383,    -1,   383,
1127 <      -1,    -1,   130,   384,   386,    -1,    -1,   385,   386,    -1,
1128 <     191,    -1,    50,    -1,    93,    -1,    74,    -1,    20,    -1,
1129 <      21,    -1,   129,    -1,    67,    -1,   172,    -1,   121,    -1,
1130 <     190,   263,   153,   260,    -1,   157,   263,   153,   260,    -1,
1131 <     156,   263,   131,   260,    -1,    -1,   171,   391,   262,   392,
1132 <     261,   260,    -1,   392,   393,    -1,   393,    -1,   394,    -1,
1133 <     395,    -1,   396,    -1,     1,   260,    -1,   155,   263,   153,
1134 <     260,    -1,    22,   263,   153,   260,    -1,   124,   263,   153,
1135 <     260,    -1,    -1,   185,   398,   262,   399,   261,   260,    -1,
1136 <     399,   400,    -1,   400,    -1,   401,    -1,   402,    -1,   403,
1137 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   248,
1138 <     263,   153,   260,    -1,    -1,   187,   404,   263,   405,   260,
1139 <      -1,   405,   264,   406,    -1,   406,    -1,    92,    -1,   244,
1140 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1141 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1142 <     186,   408,   262,   409,   261,   260,    -1,   409,   410,    -1,
1143 <     410,    -1,   411,    -1,   412,    -1,     1,   260,    -1,   120,
1144 <     263,   153,   260,    -1,    -1,   187,   413,   263,   414,   260,
1145 <      -1,   414,   264,   415,    -1,   415,    -1,    92,    -1,   244,
1146 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1147 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1148 <      29,   417,   418,   262,   419,   261,   260,    -1,    -1,   422,
1149 <      -1,   419,   420,    -1,   420,    -1,   421,    -1,   423,    -1,
1150 <     424,    -1,   425,    -1,   426,    -1,   428,    -1,   427,    -1,
1151 <     429,    -1,   438,    -1,   439,    -1,   440,    -1,   437,    -1,
1152 <     436,    -1,   441,    -1,     1,   260,    -1,   120,   263,   153,
1153 <     260,    -1,   153,    -1,    83,   263,   153,   260,    -1,   255,
1154 <     263,   153,   260,    -1,   179,   263,   153,   260,    -1,     3,
1155 <     263,   153,   260,    -1,   152,   263,   131,   260,    -1,     6,
1156 <     263,   216,   260,    -1,     6,   263,   217,   260,    -1,    -1,
1157 <      53,   430,   263,   431,   260,    -1,   431,   264,   432,    -1,
1158 <     432,    -1,    -1,   130,   433,   435,    -1,    -1,   434,   435,
1159 <      -1,    27,    -1,    31,    -1,    10,    -1,    12,    -1,   242,
1160 <      -1,   166,   263,   153,   260,    -1,    49,   263,   197,   260,
1161 <      -1,    85,   263,   153,   260,    -1,    98,   263,   153,   260,
1162 <      -1,    26,   263,   153,   260,    -1,    25,   263,   153,   260,
1163 <      -1,    -1,    90,   443,   262,   448,   261,   260,    -1,    -1,
1164 <     187,   445,   263,   446,   260,    -1,   446,   264,   447,    -1,
1165 <     447,    -1,   158,    -1,   448,   449,    -1,   449,    -1,   450,
1166 <      -1,   451,    -1,   444,    -1,     1,    -1,   248,   263,   153,
1167 <     260,    -1,   155,   263,   153,   260,    -1,    -1,    36,   453,
1168 <     262,   454,   261,   260,    -1,   454,   455,    -1,   455,    -1,
1169 <     456,    -1,   457,    -1,     1,    -1,    89,   263,   153,   260,
1170 <      -1,   155,   263,   153,   260,    -1,    51,   262,   459,   261,
1171 <     260,    -1,   459,   460,    -1,   460,    -1,   461,    -1,     1,
1172 <      -1,    89,   263,   153,   260,    -1,    -1,    63,   463,   262,
1173 <     468,   261,   260,    -1,    -1,   187,   465,   263,   466,   260,
1174 <      -1,   466,   264,   467,    -1,   467,    -1,   158,    -1,   468,
1175 <     469,    -1,   469,    -1,   470,    -1,   471,    -1,   464,    -1,
1176 <       1,    -1,   120,   263,   153,   260,    -1,   155,   263,   153,
1177 <     260,    -1,    64,   262,   473,   261,   260,    -1,   473,   474,
1178 <      -1,   474,    -1,   483,    -1,   484,    -1,   486,    -1,   487,
1179 <      -1,   488,    -1,   489,    -1,   490,    -1,   491,    -1,   492,
1180 <      -1,   493,    -1,   482,    -1,   495,    -1,   496,    -1,   497,
1181 <      -1,   498,    -1,   514,    -1,   500,    -1,   502,    -1,   504,
1182 <      -1,   503,    -1,   507,    -1,   501,    -1,   508,    -1,   509,
1183 <      -1,   510,    -1,   511,    -1,   513,    -1,   512,    -1,   528,
1184 <      -1,   515,    -1,   519,    -1,   520,    -1,   524,    -1,   505,
1185 <      -1,   506,    -1,   534,    -1,   532,    -1,   533,    -1,   516,
1186 <      -1,   485,    -1,   517,    -1,   518,    -1,   535,    -1,   523,
1187 <      -1,   494,    -1,   521,    -1,   522,    -1,   478,    -1,   481,
1188 <      -1,   476,    -1,   477,    -1,   479,    -1,   480,    -1,   499,
1189 <      -1,   475,    -1,     1,    -1,   114,   263,   131,   260,    -1,
1190 <      70,   263,   131,   260,    -1,    71,   263,   131,   260,    -1,
1191 <      12,   263,   197,   260,    -1,   254,   263,   197,   260,    -1,
1192 <     160,   263,   269,   260,    -1,   184,   263,   197,   260,    -1,
1193 <      91,   263,   269,   260,    -1,    82,   263,   197,   260,    -1,
1194 <      87,   263,   197,   260,    -1,    43,   263,   197,   260,    -1,
1195 <      52,   263,   197,   260,    -1,     8,   263,   197,   260,    -1,
1196 <     111,   263,   269,   260,    -1,   110,   263,   131,   260,    -1,
1197 <     104,   263,   131,   260,    -1,     9,   263,   269,   260,    -1,
1198 <     201,   263,   269,   260,    -1,   200,   263,   269,   260,    -1,
1199 <      75,   263,   131,   260,    -1,    95,   263,   197,   260,    -1,
1200 <      94,   263,   153,   260,    -1,    88,   263,   197,   260,    -1,
1201 <     259,   263,   197,   260,    -1,   192,   263,   197,   260,    -1,
1202 <     195,   263,   197,   260,    -1,   196,   263,   197,   260,    -1,
1203 <     194,   263,   197,   260,    -1,   194,   263,   198,   260,    -1,
1204 <     193,   263,   197,   260,    -1,   193,   263,   198,   260,    -1,
1205 <     145,   263,   269,   260,    -1,    19,   263,   269,   260,    -1,
1206 <     137,   263,   197,   260,    -1,   146,   263,   269,   260,    -1,
1207 <     188,   263,   197,   260,    -1,   128,   263,   197,   260,    -1,
1208 <     243,   263,   197,   260,    -1,   140,   263,   197,   260,    -1,
1209 <     115,   263,   153,   260,    -1,    86,   263,   269,   260,    -1,
1210 <      44,   263,   131,   260,    -1,   113,   263,   131,   260,    -1,
1211 <     182,   263,   153,   260,    -1,    32,   263,   153,   260,    -1,
1212 <      28,   263,   131,   260,    -1,   249,   263,   197,   260,    -1,
1213 <      46,   263,   153,   260,    -1,   149,   263,   197,   260,    -1,
1214 <      39,   263,   197,   260,    -1,   241,   263,   269,   260,    -1,
1215 <      -1,   142,   525,   263,   526,   260,    -1,   526,   264,   527,
1216 <      -1,   527,    -1,   204,    -1,   207,    -1,   208,    -1,   210,
1217 <      -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,   230,
1218 <      -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,   232,
1219 <      -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,   218,
1220 <      -1,    -1,   139,   529,   263,   530,   260,    -1,   530,   264,
1221 <     531,    -1,   531,    -1,   204,    -1,   207,    -1,   208,    -1,
1222 <     210,    -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,
1223 <     230,    -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,
1224 <     232,    -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,
1225 <     218,    -1,   116,   263,   131,   260,    -1,   117,   263,   131,
1226 <     260,    -1,    33,   263,   131,   260,    -1,   209,   263,   271,
1227 <     260,    -1,    -1,    66,   537,   262,   538,   261,   260,    -1,
1228 <     538,   539,    -1,   539,    -1,   540,    -1,   541,    -1,   542,
1229 <      -1,   546,    -1,   547,    -1,   548,    -1,     1,    -1,    48,
1230 <     263,   197,   260,    -1,    45,   263,   269,   260,    -1,    -1,
1231 <     102,   543,   263,   544,   260,    -1,   544,   264,   545,    -1,
1232 <     545,    -1,   199,    -1,    11,    -1,   248,   263,   153,   260,
1233 <      -1,   120,   263,   153,   260,    -1,    -1,     4,   549,   263,
1234 <     550,   260,    -1,   550,   264,   551,    -1,   551,    -1,   199,
1235 <      -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
1045 >     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1046 >      -1,   274,    -1,   476,    -1,   292,    -1,   309,    -1,   323,
1047 >      -1,   232,    -1,   493,    -1,   338,    -1,   345,    -1,   349,
1048 >      -1,   359,    -1,   368,    -1,   388,    -1,   398,    -1,   404,
1049 >      -1,   418,    -1,   408,    -1,   227,    -1,     1,   215,    -1,
1050 >       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1051 >     137,   223,    -1,    99,   138,   223,    -1,    99,   139,   223,
1052 >      -1,    99,   140,   223,    -1,    99,   141,   223,    -1,    -1,
1053 >     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1054 >      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1055 >     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1056 >     231,    -1,     1,   215,    -1,    87,   218,   117,   215,    -1,
1057 >     113,   218,   117,   215,    -1,   145,   217,   233,   216,   215,
1058 >      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1059 >     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1060 >     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1061 >     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   131,
1062 >     218,   237,   215,    -1,   132,   218,   239,   215,    -1,   237,
1063 >     219,   238,    -1,   238,    -1,   133,    -1,   134,    -1,   239,
1064 >     219,   240,    -1,   240,    -1,   133,    -1,   134,    -1,   129,
1065 >     218,   117,   215,    -1,   127,   218,   117,   215,    -1,   130,
1066 >     218,   117,   215,    -1,   170,   218,   117,   215,    -1,    89,
1067 >     218,   117,   215,    -1,   146,   218,   117,   215,    -1,    24,
1068 >     218,   117,   215,    -1,    92,   218,   117,   215,    -1,    91,
1069 >     218,   117,   215,    -1,   209,   218,   117,   215,    -1,   210,
1070 >     218,   117,   215,    -1,   180,   218,    99,   215,    -1,    57,
1071 >     218,   159,   215,    -1,     4,   217,   255,   216,   215,    -1,
1072 >     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1073 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,    31,
1074 >     218,   117,   215,    -1,    24,   218,   117,   215,    -1,    71,
1075 >     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1076 >     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   159,
1077 >     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1078 >     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1079 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   213,
1080 >     218,   226,   215,    -1,   213,   218,   194,   215,    -1,    -1,
1081 >     150,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1082 >     273,    -1,   206,    -1,   102,    -1,    40,    -1,   173,    -1,
1083 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   275,   217,
1084 >     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1085 >      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1086 >      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1087 >     117,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1088 >     117,   215,    -1,    32,   218,   159,   215,    -1,   128,   218,
1089 >     117,   215,    -1,    17,   218,   117,   215,    -1,    -1,   191,
1090 >     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1091 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1092 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1093 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1094 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1095 >      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1096 >     291,    -1,   291,    -1,    47,    -1,   124,    -1,    64,    -1,
1097 >     205,    -1,   173,    -1,   193,    -1,   211,    -1,    40,    -1,
1098 >      25,    -1,   200,    -1,   123,    -1,     4,    -1,    94,    -1,
1099 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1100 >      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1101 >     294,   295,    -1,   295,    -1,   296,    -1,   306,    -1,   307,
1102 >      -1,   297,    -1,   308,    -1,   298,    -1,   299,    -1,   300,
1103 >      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1104 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   115,
1105 >     218,   224,   215,    -1,   101,   218,    99,   215,    -1,    19,
1106 >     218,   224,   215,    -1,    81,   218,    99,   215,    -1,    76,
1107 >     218,    99,   215,    -1,    78,   218,    99,   215,    -1,    77,
1108 >     218,    99,   215,    -1,   142,   218,   226,   215,    -1,   183,
1109 >     218,   226,   215,    -1,    15,   218,    99,   215,    -1,    16,
1110 >     218,    99,   215,    -1,   100,   218,    99,   215,    -1,    -1,
1111 >      70,   310,   217,   315,   216,   215,    -1,    -1,    36,   312,
1112 >     218,   313,   215,    -1,   313,   219,   314,    -1,   314,    -1,
1113 >     190,    -1,    51,    -1,   185,    -1,   315,   316,    -1,   316,
1114 >      -1,   317,    -1,   311,    -1,   321,    -1,   322,    -1,     1,
1115 >     215,    -1,    -1,   116,   218,   319,   318,   215,    -1,   319,
1116 >     219,   320,    -1,   320,    -1,    99,    -1,    99,   163,    99,
1117 >      -1,    61,   218,   117,   215,    -1,    56,   218,   117,   215,
1118 >      -1,    -1,    48,   324,   217,   325,   216,   215,    -1,   325,
1119 >     326,    -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,
1120 >     331,    -1,   335,    -1,   336,    -1,   337,    -1,   330,    -1,
1121 >       1,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1122 >     117,   215,    -1,    17,   218,   117,   215,    -1,    32,   218,
1123 >     159,   215,    -1,    -1,    36,   332,   218,   333,   215,    -1,
1124 >     333,   219,   334,    -1,   334,    -1,   153,    -1,    33,    -1,
1125 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1126 >     136,    -1,   199,    -1,    90,    -1,   152,   218,   117,   215,
1127 >      -1,   121,   218,   117,   215,    -1,   120,   218,    99,   215,
1128 >      -1,    -1,   135,   339,   217,   340,   216,   215,    -1,   340,
1129 >     341,    -1,   341,    -1,   342,    -1,   343,    -1,   344,    -1,
1130 >       1,   215,    -1,   119,   218,   117,   215,    -1,    14,   218,
1131 >     117,   215,    -1,    93,   218,   117,   215,    -1,   201,   217,
1132 >     346,   216,   215,    -1,   346,   347,    -1,   347,    -1,   348,
1133 >      -1,     1,    -1,    89,   218,   117,   215,    -1,    -1,   148,
1134 >     350,   217,   351,   216,   215,    -1,   351,   352,    -1,   352,
1135 >      -1,   353,    -1,   354,    -1,   355,    -1,     1,   215,    -1,
1136 >      89,   218,   117,   215,    -1,   206,   218,   117,   215,    -1,
1137 >      -1,   150,   356,   218,   357,   215,    -1,   357,   219,   358,
1138 >      -1,   358,    -1,    64,    -1,   205,    -1,   173,    -1,   193,
1139 >      -1,   211,    -1,   196,    -1,   135,    -1,   195,    -1,   179,
1140 >      -1,   164,    -1,    -1,   149,   360,   217,   361,   216,   215,
1141 >      -1,   361,   362,    -1,   362,    -1,   363,    -1,   364,    -1,
1142 >       1,   215,    -1,    89,   218,   117,   215,    -1,    -1,   150,
1143 >     365,   218,   366,   215,    -1,   366,   219,   367,    -1,   367,
1144 >      -1,    64,    -1,   205,    -1,   173,    -1,   193,    -1,   211,
1145 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1146 >      -1,    -1,    18,   369,   217,   370,   216,   215,    -1,   370,
1147 >     371,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1148 >     375,    -1,   376,    -1,   378,    -1,   377,    -1,   387,    -1,
1149 >     379,    -1,   384,    -1,   385,    -1,   386,    -1,   383,    -1,
1150 >       1,   215,    -1,    89,   218,   117,   215,    -1,    56,   218,
1151 >     117,   215,    -1,   209,   218,   117,   215,    -1,   143,   218,
1152 >     117,   215,    -1,     3,   218,   117,   215,    -1,   116,   218,
1153 >      99,   215,    -1,     5,   218,   177,   215,    -1,     5,   218,
1154 >     178,   215,    -1,    -1,    36,   380,   218,   381,   215,    -1,
1155 >     381,   219,   382,    -1,   382,    -1,     8,    -1,   190,    -1,
1156 >      32,   218,   159,   215,    -1,    58,   218,   117,   215,    -1,
1157 >      68,   218,   117,   215,    -1,    17,   218,   117,   215,    -1,
1158 >     170,   218,   117,   215,    -1,    -1,    62,   389,   217,   394,
1159 >     216,   215,    -1,    -1,   150,   391,   218,   392,   215,    -1,
1160 >     392,   219,   393,    -1,   393,    -1,   122,    -1,   394,   395,
1161 >      -1,   395,    -1,   396,    -1,   397,    -1,   390,    -1,     1,
1162 >      -1,   206,   218,   117,   215,    -1,   119,   218,   117,   215,
1163 >      -1,    -1,    23,   399,   217,   400,   216,   215,    -1,   400,
1164 >     401,    -1,   401,    -1,   402,    -1,   403,    -1,     1,    -1,
1165 >      61,   218,   117,   215,    -1,   119,   218,   117,   215,    -1,
1166 >      34,   217,   405,   216,   215,    -1,   405,   406,    -1,   406,
1167 >      -1,   407,    -1,     1,    -1,    61,   218,   117,   215,    -1,
1168 >      -1,    38,   409,   217,   414,   216,   215,    -1,    -1,   150,
1169 >     411,   218,   412,   215,    -1,   412,   219,   413,    -1,   413,
1170 >      -1,   122,    -1,   414,   415,    -1,   415,    -1,   416,    -1,
1171 >     417,    -1,   410,    -1,     1,    -1,    89,   218,   117,   215,
1172 >      -1,   119,   218,   117,   215,    -1,    39,   217,   419,   216,
1173 >     215,    -1,   419,   420,    -1,   420,    -1,   429,    -1,   430,
1174 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1175 >      -1,   437,    -1,   438,    -1,   439,    -1,   428,    -1,   441,
1176 >      -1,   442,    -1,   457,    -1,   444,    -1,   446,    -1,   448,
1177 >      -1,   447,    -1,   451,    -1,   445,    -1,   452,    -1,   453,
1178 >      -1,   454,    -1,   455,    -1,   456,    -1,   469,    -1,   458,
1179 >      -1,   459,    -1,   460,    -1,   465,    -1,   449,    -1,   450,
1180 >      -1,   475,    -1,   473,    -1,   474,    -1,   431,    -1,   464,
1181 >      -1,   440,    -1,   462,    -1,   463,    -1,   427,    -1,   422,
1182 >      -1,   423,    -1,   424,    -1,   425,    -1,   426,    -1,   443,
1183 >      -1,   421,    -1,   461,    -1,     1,    -1,    83,   218,    99,
1184 >     215,    -1,    42,   218,   159,   215,    -1,    41,   218,   224,
1185 >     215,    -1,    44,   218,   224,   215,    -1,    45,   218,    99,
1186 >     215,    -1,    46,   218,    99,   215,    -1,   147,   218,   159,
1187 >     215,    -1,    63,   218,   224,   215,    -1,    55,   218,   159,
1188 >     215,    -1,    59,   218,   159,   215,    -1,    28,   218,   159,
1189 >     215,    -1,    35,   218,   159,   215,    -1,     6,   218,   159,
1190 >     215,    -1,    80,   218,   224,   215,    -1,    79,   218,    99,
1191 >     215,    -1,    72,   218,    99,   215,    -1,     7,   218,   224,
1192 >     215,    -1,   162,   218,   224,   215,    -1,   161,   218,   224,
1193 >     215,    -1,    50,   218,    99,   215,    -1,    60,   218,   159,
1194 >     215,    -1,   212,   218,   159,   215,    -1,   154,   218,   159,
1195 >     215,    -1,   157,   218,   159,   215,    -1,   158,   218,   159,
1196 >     215,    -1,   156,   218,   159,   215,    -1,   156,   218,   160,
1197 >     215,    -1,   155,   218,   159,   215,    -1,   155,   218,   160,
1198 >     215,    -1,   110,   218,   224,   215,    -1,    12,   218,   224,
1199 >     215,    -1,   103,   218,   159,   215,    -1,   111,   218,   224,
1200 >     215,    -1,   151,   218,   159,   215,    -1,    97,   218,   159,
1201 >     215,    -1,   204,   218,   159,   215,    -1,   105,   218,   159,
1202 >     215,    -1,    84,   218,   117,   215,    -1,    29,   218,    99,
1203 >     215,    -1,    82,   218,    99,   215,    -1,   207,   218,   159,
1204 >     215,    -1,    30,   218,   117,   215,    -1,   202,   218,   117,
1205 >     215,    -1,   114,   218,   159,   215,    -1,    26,   218,   159,
1206 >     215,    -1,   203,   218,   224,   215,    -1,    -1,   107,   466,
1207 >     218,   467,   215,    -1,   467,   219,   468,    -1,   468,    -1,
1208 >     165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,    -1,
1209 >     175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,    -1,
1210 >     192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,    -1,
1211 >     176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,    -1,
1212 >      -1,   104,   470,   218,   471,   215,    -1,   471,   219,   472,
1213 >      -1,   472,    -1,   165,    -1,   168,    -1,   169,    -1,   171,
1214 >      -1,   172,    -1,   175,    -1,   188,    -1,    51,    -1,   181,
1215 >      -1,   184,    -1,   192,    -1,   189,    -1,   174,    -1,   182,
1216 >      -1,   186,    -1,   176,    -1,   198,    -1,   166,    -1,   167,
1217 >      -1,   179,    -1,    85,   218,    99,   215,    -1,    86,   218,
1218 >      99,   215,    -1,    20,   218,    99,   215,    -1,    14,   217,
1219 >     477,   216,   215,    -1,   477,   478,    -1,   478,    -1,   486,
1220 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   485,
1221 >      -1,   487,    -1,   488,    -1,   489,    -1,   480,    -1,   490,
1222 >      -1,   491,    -1,   492,    -1,   479,    -1,     1,    -1,    27,
1223 >     218,   159,   215,    -1,   126,   218,   159,   215,    -1,    66,
1224 >     218,   224,   215,    -1,    67,   218,   224,   215,    -1,    75,
1225 >     218,    99,   215,    -1,    74,   218,    99,   215,    -1,   118,
1226 >     218,   159,   215,    -1,    73,   218,    99,   215,    -1,    22,
1227 >     218,    99,   215,    -1,    21,   218,    99,   215,    -1,    95,
1228 >     218,   159,   215,    -1,    96,   218,   159,   215,    -1,   108,
1229 >     218,    99,   215,    -1,   109,   218,   224,   215,    -1,   144,
1230 >     217,   494,   216,   215,    -1,   494,   495,    -1,   495,    -1,
1231 >     496,    -1,   497,    -1,   499,    -1,   500,    -1,   498,    -1,
1232 >     501,    -1,     1,    -1,    37,   218,   159,   215,    -1,    54,
1233 >     218,   159,   215,    -1,    52,   218,   117,   215,    -1,    69,
1234 >     218,   224,   215,    -1,    51,   218,   159,   215,    -1,    53,
1235 >     218,   159,   215,    -1
1236   };
1237  
1238   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1239   static const yytype_uint16 yyrline[] =
1240   {
1241 <       0,   395,   395,   396,   399,   400,   401,   402,   403,   404,
1242 <     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1243 <     415,   416,   417,   418,   419,   420,   424,   424,   425,   429,
1244 <     433,   437,   441,   445,   451,   451,   452,   453,   454,   455,
1245 <     462,   465,   465,   466,   466,   466,   468,   476,   485,   487,
1246 <     487,   488,   488,   489,   489,   490,   490,   491,   492,   492,
1247 <     493,   493,   494,   495,   499,   498,   517,   517,   518,   524,
1248 <     532,   566,   626,   641,   656,   665,   679,   688,   716,   746,
1249 <     769,   791,   793,   793,   794,   794,   795,   795,   797,   806,
1250 <     815,   828,   830,   831,   833,   833,   834,   835,   835,   836,
1251 <     836,   837,   837,   838,   838,   839,   840,   842,   846,   850,
1252 <     857,   864,   871,   878,   885,   892,   899,   906,   910,   914,
1253 <     918,   922,   926,   930,   936,   946,   945,  1039,  1039,  1040,
1254 <    1040,  1041,  1041,  1041,  1042,  1042,  1042,  1043,  1043,  1043,
1255 <    1045,  1057,  1069,  1103,  1115,  1126,  1168,  1178,  1177,  1183,
1256 <    1183,  1184,  1188,  1192,  1196,  1200,  1204,  1208,  1212,  1216,
1257 <    1220,  1224,  1228,  1232,  1236,  1240,  1244,  1248,  1252,  1256,
1258 <    1263,  1262,  1266,  1266,  1267,  1267,  1268,  1268,  1270,  1277,
1259 <    1284,  1291,  1298,  1305,  1312,  1319,  1326,  1333,  1340,  1347,
1260 <    1354,  1361,  1368,  1375,  1389,  1388,  1438,  1438,  1440,  1440,
1261 <    1441,  1442,  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1449,
1262 <    1450,  1451,  1452,  1453,  1455,  1464,  1473,  1479,  1485,  1491,
1263 <    1497,  1503,  1509,  1515,  1521,  1527,  1533,  1539,  1549,  1548,
1264 <    1565,  1564,  1569,  1569,  1570,  1574,  1578,  1586,  1586,  1587,
1265 <    1587,  1587,  1587,  1587,  1589,  1589,  1591,  1591,  1593,  1607,
1266 <    1627,  1636,  1649,  1648,  1717,  1717,  1718,  1718,  1718,  1718,
1267 <    1719,  1719,  1719,  1720,  1720,  1722,  1759,  1772,  1781,  1793,
1268 <    1792,  1796,  1796,  1797,  1797,  1798,  1798,  1800,  1807,  1814,
1269 <    1821,  1828,  1835,  1842,  1849,  1856,  1863,  1873,  1892,  1902,
1270 <    1916,  1915,  1931,  1931,  1932,  1932,  1932,  1932,  1934,  1943,
1271 <    1958,  1972,  1971,  1987,  1987,  1988,  1988,  1988,  1988,  1990,
1272 <    1999,  2022,  2021,  2027,  2027,  2028,  2032,  2036,  2040,  2044,
1273 <    2048,  2052,  2056,  2060,  2064,  2068,  2078,  2077,  2094,  2094,
1274 <    2095,  2095,  2095,  2097,  2104,  2103,  2109,  2109,  2110,  2114,
1275 <    2118,  2122,  2126,  2130,  2134,  2138,  2142,  2146,  2150,  2160,
1276 <    2159,  2305,  2305,  2306,  2306,  2307,  2307,  2307,  2308,  2308,
1277 <    2309,  2309,  2310,  2310,  2310,  2311,  2311,  2312,  2312,  2313,
1278 <    2315,  2327,  2339,  2348,  2374,  2392,  2410,  2416,  2420,  2429,
1279 <    2428,  2432,  2432,  2433,  2433,  2434,  2434,  2436,  2447,  2454,
1280 <    2461,  2468,  2478,  2519,  2530,  2543,  2556,  2565,  2601,  2600,
1281 <    2664,  2663,  2667,  2667,  2668,  2674,  2674,  2675,  2675,  2675,
1282 <    2675,  2677,  2696,  2706,  2705,  2728,  2728,  2729,  2729,  2729,
1283 <    2731,  2737,  2746,  2748,  2748,  2749,  2749,  2751,  2770,  2769,
1284 <    2817,  2816,  2820,  2820,  2821,  2827,  2827,  2828,  2828,  2828,
1285 <    2828,  2830,  2836,  2845,  2848,  2848,  2849,  2849,  2850,  2850,
1286 <    2851,  2851,  2852,  2852,  2853,  2853,  2854,  2854,  2855,  2855,
1287 <    2856,  2856,  2857,  2857,  2858,  2858,  2859,  2859,  2860,  2860,
1288 <    2861,  2861,  2862,  2862,  2863,  2863,  2864,  2864,  2865,  2865,
1289 <    2866,  2866,  2867,  2867,  2868,  2868,  2869,  2870,  2870,  2871,
1290 <    2871,  2872,  2873,  2873,  2874,  2874,  2875,  2875,  2876,  2876,
1291 <    2877,  2878,  2881,  2886,  2891,  2896,  2901,  2906,  2911,  2916,
1292 <    2921,  2926,  2931,  2936,  2941,  2946,  2951,  2956,  2961,  2966,
1293 <    2971,  2977,  2988,  2993,  3002,  3007,  3012,  3017,  3022,  3027,
1294 <    3030,  3035,  3038,  3043,  3048,  3053,  3058,  3063,  3068,  3073,
1295 <    3078,  3083,  3094,  3099,  3104,  3109,  3118,  3150,  3168,  3173,
1296 <    3182,  3187,  3192,  3198,  3197,  3202,  3202,  3203,  3206,  3209,
1297 <    3212,  3215,  3218,  3221,  3224,  3227,  3230,  3233,  3236,  3239,
1298 <    3242,  3245,  3248,  3251,  3254,  3257,  3263,  3262,  3267,  3267,
1299 <    3268,  3271,  3274,  3277,  3280,  3283,  3286,  3289,  3292,  3295,
1300 <    3298,  3301,  3304,  3307,  3310,  3313,  3316,  3319,  3322,  3327,
1301 <    3332,  3337,  3342,  3352,  3351,  3375,  3375,  3376,  3377,  3378,
1302 <    3379,  3380,  3381,  3382,  3384,  3390,  3397,  3396,  3401,  3401,
1303 <    3402,  3406,  3412,  3446,  3456,  3455,  3505,  3505,  3506,  3510,
1400 <    3519,  3522,  3522,  3523,  3523,  3524,  3524,  3525,  3525,  3526,
1401 <    3526,  3527,  3527,  3528,  3529,  3529,  3530,  3530,  3531,  3531,
1402 <    3532,  3532,  3534,  3539,  3544,  3549,  3554,  3559,  3564,  3569,
1403 <    3574,  3579,  3584,  3589,  3594,  3599,  3604,  3609,  3614,  3619,
1404 <    3627,  3630,  3630,  3631,  3631,  3632,  3633,  3634,  3634,  3635,
1405 <    3636,  3638,  3644,  3650,  3659,  3673,  3679,  3685
1241 >       0,   355,   355,   356,   359,   360,   361,   362,   363,   364,
1242 >     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1243 >     375,   376,   377,   378,   379,   380,   384,   384,   385,   389,
1244 >     393,   397,   401,   405,   411,   411,   412,   413,   414,   415,
1245 >     422,   425,   425,   426,   426,   426,   428,   434,   441,   443,
1246 >     443,   444,   444,   445,   445,   446,   446,   447,   447,   448,
1247 >     448,   449,   449,   450,   450,   451,   452,   455,   456,   458,
1248 >     458,   459,   465,   473,   473,   474,   480,   488,   527,   586,
1249 >     614,   622,   637,   652,   661,   675,   684,   712,   742,   765,
1250 >     774,   776,   776,   777,   777,   778,   778,   780,   789,   798,
1251 >     810,   811,   811,   813,   813,   814,   816,   823,   823,   836,
1252 >     837,   839,   839,   840,   840,   842,   850,   853,   859,   858,
1253 >     864,   864,   865,   869,   873,   877,   881,   885,   889,   900,
1254 >     899,   979,   979,   980,   980,   980,   981,   981,   981,   982,
1255 >     982,   982,   984,   990,   996,  1002,  1013,  1019,  1026,  1025,
1256 >    1031,  1031,  1032,  1036,  1040,  1044,  1048,  1052,  1056,  1060,
1257 >    1064,  1068,  1072,  1076,  1080,  1084,  1088,  1092,  1096,  1100,
1258 >    1104,  1108,  1115,  1114,  1120,  1120,  1121,  1125,  1129,  1133,
1259 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1260 >    1177,  1181,  1185,  1189,  1193,  1204,  1203,  1254,  1254,  1255,
1261 >    1256,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,
1262 >    1265,  1265,  1266,  1268,  1274,  1280,  1286,  1292,  1298,  1304,
1263 >    1310,  1316,  1322,  1329,  1335,  1341,  1351,  1350,  1357,  1356,
1264 >    1361,  1361,  1362,  1366,  1370,  1376,  1376,  1377,  1377,  1377,
1265 >    1377,  1377,  1379,  1379,  1381,  1381,  1383,  1397,  1417,  1423,
1266 >    1433,  1432,  1474,  1474,  1475,  1475,  1475,  1475,  1476,  1476,
1267 >    1476,  1477,  1477,  1479,  1485,  1491,  1497,  1509,  1508,  1514,
1268 >    1514,  1515,  1519,  1523,  1527,  1531,  1535,  1539,  1543,  1547,
1269 >    1551,  1557,  1571,  1580,  1594,  1593,  1602,  1602,  1603,  1603,
1270 >    1603,  1603,  1605,  1611,  1620,  1629,  1631,  1631,  1632,  1632,
1271 >    1634,  1650,  1649,  1674,  1674,  1675,  1675,  1675,  1675,  1677,
1272 >    1683,  1703,  1702,  1708,  1708,  1709,  1713,  1717,  1721,  1725,
1273 >    1729,  1733,  1737,  1741,  1745,  1755,  1754,  1775,  1775,  1776,
1274 >    1776,  1776,  1778,  1785,  1784,  1790,  1790,  1791,  1795,  1799,
1275 >    1803,  1807,  1811,  1815,  1819,  1823,  1827,  1837,  1836,  1902,
1276 >    1902,  1903,  1903,  1903,  1904,  1904,  1905,  1905,  1905,  1906,
1277 >    1906,  1906,  1907,  1907,  1908,  1910,  1916,  1922,  1928,  1941,
1278 >    1954,  1960,  1964,  1973,  1972,  1977,  1977,  1978,  1982,  1988,
1279 >    1999,  2005,  2011,  2017,  2033,  2032,  2095,  2094,  2100,  2100,
1280 >    2101,  2107,  2107,  2108,  2108,  2108,  2108,  2110,  2130,  2140,
1281 >    2139,  2166,  2166,  2167,  2167,  2167,  2169,  2175,  2184,  2186,
1282 >    2186,  2187,  2187,  2189,  2207,  2206,  2252,  2251,  2257,  2257,
1283 >    2258,  2264,  2264,  2265,  2265,  2265,  2265,  2267,  2273,  2282,
1284 >    2285,  2285,  2286,  2286,  2287,  2287,  2288,  2288,  2289,  2289,
1285 >    2290,  2290,  2291,  2292,  2293,  2293,  2294,  2294,  2295,  2295,
1286 >    2296,  2296,  2297,  2297,  2298,  2298,  2299,  2300,  2300,  2301,
1287 >    2301,  2302,  2302,  2303,  2303,  2304,  2304,  2305,  2306,  2306,
1288 >    2307,  2308,  2309,  2309,  2310,  2310,  2311,  2312,  2313,  2314,
1289 >    2314,  2315,  2318,  2323,  2329,  2335,  2341,  2346,  2351,  2356,
1290 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1291 >    2411,  2417,  2428,  2433,  2438,  2443,  2448,  2453,  2456,  2461,
1292 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2509,
1293 >    2520,  2525,  2530,  2535,  2544,  2553,  2558,  2563,  2569,  2568,
1294 >    2573,  2573,  2574,  2577,  2580,  2583,  2586,  2589,  2592,  2595,
1295 >    2598,  2601,  2604,  2607,  2610,  2613,  2616,  2619,  2622,  2625,
1296 >    2628,  2631,  2637,  2636,  2641,  2641,  2642,  2645,  2648,  2651,
1297 >    2654,  2657,  2660,  2663,  2666,  2669,  2672,  2675,  2678,  2681,
1298 >    2684,  2687,  2690,  2693,  2696,  2699,  2704,  2709,  2714,  2723,
1299 >    2726,  2726,  2727,  2728,  2728,  2729,  2729,  2730,  2730,  2731,
1300 >    2732,  2732,  2733,  2734,  2734,  2735,  2735,  2737,  2742,  2747,
1301 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1302 >    2802,  2810,  2813,  2813,  2814,  2814,  2815,  2816,  2816,  2817,
1303 >    2818,  2820,  2826,  2832,  2841,  2855,  2861
1304   };
1305   #endif
1306  
1307 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1307 > #if YYDEBUG || YYERROR_VERBOSE || 0
1308   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1309     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1310   static const char *const yytname[] =
1311   {
1312 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1313 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1314 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1315 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1316 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1317 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1318 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1319 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1320 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1321 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1322 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1425 <  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1426 <  "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1427 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1428 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1429 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1312 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1313 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1314 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1315 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1316 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1317 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1318 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1319 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1320 >  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1321 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1322 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1323    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1324 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1325 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1326 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1327 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1328 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1329 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1437 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1324 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1325 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1326 >  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1327 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1328 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1329 >  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1330    "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1331    "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1332    "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1333    "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1334    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1335 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1336 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1337 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1338 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1339 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1340 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1341 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1342 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1343 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1344 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1345 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1346 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1347 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1348 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1349 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1350 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1351 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1352 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1353 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1354 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1355 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1356 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1357 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1358 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1359 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1468 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1469 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1335 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1336 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1337 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1338 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1339 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1340 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1341 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1342 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1343 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1344 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1345 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1346 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1347 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1348 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1349 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1350 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1351 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1352 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1353 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1354 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1355 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1356 >  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1357 >  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1358 >  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1359 >  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1360    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1361    "sizespec", "modules_entry", "modules_items", "modules_item",
1362    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1363 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1364 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1365 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1363 >  "serverinfo_item", "serverinfo_ssl_client_method",
1364 >  "serverinfo_ssl_server_method", "client_method_types",
1365 >  "client_method_type_item", "server_method_types",
1366 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1367 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1368 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1369    "serverinfo_description", "serverinfo_network_name",
1370    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1371    "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1372    "admin_item", "admin_name", "admin_email", "admin_description",
1373 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1374 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1375 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1376 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1377 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1378 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1379 <  "oper_user", "oper_password", "oper_encrypted",
1380 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1381 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@4",
1382 <  "oper_flags_items", "oper_flags_item", "$@5", "$@6",
1383 <  "oper_flags_item_atom", "class_entry", "$@7", "class_name_b",
1384 <  "class_items", "class_item", "class_name", "class_name_t",
1492 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1493 <  "class_connectfreq", "class_max_number", "class_max_global",
1494 <  "class_max_local", "class_max_ident", "class_sendq",
1373 >  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1374 >  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1375 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1376 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1377 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1378 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1379 >  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1380 >  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1381 >  "class_entry", "$@6", "class_items", "class_item", "class_name",
1382 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1383 >  "class_max_number", "class_max_global", "class_max_local",
1384 >  "class_max_ident", "class_sendq", "class_recvq",
1385    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1386 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1386 >  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1387    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1388 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1389 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1388 >  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1389 >  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1390    "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1391 <  "$@12", "auth_flags_items", "auth_flags_item", "$@13", "$@14",
1392 <  "auth_flags_item_atom", "auth_spoof", "auth_redir_serv",
1393 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1394 <  "resv_creason", "resv_channel", "resv_nick", "shared_entry", "$@16",
1395 <  "shared_items", "shared_item", "shared_name", "shared_user",
1396 <  "shared_type", "$@17", "shared_types", "shared_type_item",
1397 <  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1398 <  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1399 <  "connect_entry", "$@20", "connect_name_b", "connect_items",
1400 <  "connect_item", "connect_name", "connect_name_t", "connect_host",
1401 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1402 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1513 <  "connect_flags_items", "connect_flags_item", "$@22", "$@23",
1514 <  "connect_flags_item_atom", "connect_rsa_public_key_file",
1391 >  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1392 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1393 >  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1394 >  "service_entry", "service_items", "service_item", "service_name",
1395 >  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1396 >  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1397 >  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1398 >  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1399 >  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1400 >  "connect_host", "connect_vhost", "connect_send_password",
1401 >  "connect_accept_password", "connect_port", "connect_aftype",
1402 >  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1403    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1404 <  "connect_class", "connect_cipher_preference", "kill_entry", "$@24",
1405 <  "kill_type", "$@25", "kill_type_items", "kill_type_item", "kill_items",
1406 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@26",
1404 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1405 >  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1406 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1407    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1408 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@27",
1409 <  "gecos_flags", "$@28", "gecos_flags_items", "gecos_flags_item",
1408 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1409 >  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1410    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1411    "general_entry", "general_items", "general_item", "general_max_watch",
1412 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1413 <  "general_burst_away", "general_use_whois_actually",
1414 <  "general_reject_hold_time", "general_tkline_expire_notices",
1412 >  "general_gline_enable", "general_gline_duration",
1413 >  "general_gline_request_duration", "general_gline_min_cidr",
1414 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1415    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1416    "general_ignore_bogus_ts", "general_disable_remote_commands",
1417    "general_failed_oper_notice", "general_anti_nick_flood",
1418    "general_max_nick_time", "general_max_nick_changes",
1419    "general_max_accept", "general_anti_spam_exit_message_time",
1420    "general_ts_warn_delta", "general_ts_max_delta",
1421 <  "general_havent_read_conf", "general_kline_with_reason",
1534 <  "general_kline_reason", "general_invisible_on_connect",
1421 >  "general_havent_read_conf", "general_invisible_on_connect",
1422    "general_warn_no_nline", "general_stats_e_disabled",
1423    "general_stats_o_oper_only", "general_stats_P_oper_only",
1424    "general_stats_k_oper_only", "general_stats_i_oper_only",
# Line 1539 | Line 1426 | static const char *const yytname[] =
1426    "general_opers_bypass_callerid", "general_pace_wait_simple",
1427    "general_short_motd", "general_no_oper_flood",
1428    "general_true_no_oper_flood", "general_oper_pass_resv",
1429 <  "general_message_locale", "general_idletime", "general_dots_in_ident",
1430 <  "general_max_targets", "general_servlink_path",
1431 <  "general_default_cipher_preference", "general_compression_level",
1432 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1433 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1434 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1435 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1436 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1437 <  "general_client_flood", "gline_entry", "$@31", "gline_items",
1551 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@32",
1552 <  "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",
1429 >  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1430 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1431 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1432 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1433 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1434 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1435 >  "general_default_floodcount", "channel_entry", "channel_items",
1436 >  "channel_item", "channel_disable_fake_channels",
1437 >  "channel_restrict_channels", "channel_knock_delay",
1438    "channel_knock_delay_channel", "channel_max_chans_per_user",
1439 <  "channel_quiet_on_ban", "channel_max_bans",
1439 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1440    "channel_default_split_user_count", "channel_default_split_server_count",
1441    "channel_no_create_on_split", "channel_no_join_on_split",
1442 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1443 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1444 <  "serverhide_flatten_links", "serverhide_hide_servers",
1445 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1446 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1442 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1443 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1444 >  "serverhide_hide_servers", "serverhide_hidden_name",
1445 >  "serverhide_links_delay", "serverhide_hidden",
1446 >  "serverhide_hide_server_ips", YY_NULL
1447   };
1448   #endif
1449  
# Line 1593 | Line 1473 | static const yytype_uint16 yytoknum[] =
1473       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1474       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1475       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1476 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1597 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1598 <     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
1476 >     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1477   };
1478   # endif
1479  
1480   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1481   static const yytype_uint16 yyr1[] =
1482   {
1483 <       0,   265,   266,   266,   267,   267,   267,   267,   267,   267,
1484 <     267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
1485 <     267,   267,   267,   267,   267,   267,   268,   268,   269,   269,
1486 <     269,   269,   269,   269,   270,   270,   271,   271,   271,   271,
1487 <     272,   273,   273,   274,   274,   274,   275,   276,   277,   278,
1488 <     278,   279,   279,   279,   279,   279,   279,   279,   279,   279,
1489 <     279,   279,   279,   279,   281,   280,   282,   282,   283,   283,
1490 <     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1491 <     294,   295,   296,   296,   297,   297,   297,   297,   298,   299,
1492 <     300,   301,   302,   302,   303,   303,   303,   303,   303,   303,
1493 <     303,   303,   303,   303,   303,   303,   303,   304,   305,   306,
1494 <     307,   308,   309,   310,   311,   312,   313,   314,   314,   314,
1495 <     314,   314,   314,   314,   315,   317,   316,   318,   318,   319,
1496 <     319,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1497 <     321,   322,   323,   324,   325,   326,   327,   329,   328,   330,
1498 <     330,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1499 <     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1500 <     333,   332,   334,   334,   336,   335,   337,   335,   338,   338,
1501 <     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
1502 <     338,   338,   338,   338,   340,   339,   341,   341,   342,   342,
1503 <     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
1504 <     343,   343,   343,   343,   344,   345,   346,   347,   348,   349,
1505 <     350,   351,   352,   353,   354,   355,   356,   357,   359,   358,
1506 <     361,   360,   362,   362,   363,   363,   363,   364,   364,   365,
1507 <     365,   365,   365,   365,   367,   366,   368,   368,   369,   369,
1508 <     370,   371,   373,   372,   374,   374,   375,   375,   375,   375,
1509 <     375,   375,   375,   375,   375,   376,   377,   378,   379,   381,
1510 <     380,   382,   382,   384,   383,   385,   383,   386,   386,   386,
1511 <     386,   386,   386,   386,   386,   386,   386,   387,   388,   389,
1512 <     391,   390,   392,   392,   393,   393,   393,   393,   394,   395,
1513 <     396,   398,   397,   399,   399,   400,   400,   400,   400,   401,
1514 <     402,   404,   403,   405,   405,   406,   406,   406,   406,   406,
1515 <     406,   406,   406,   406,   406,   406,   408,   407,   409,   409,
1516 <     410,   410,   410,   411,   413,   412,   414,   414,   415,   415,
1517 <     415,   415,   415,   415,   415,   415,   415,   415,   415,   417,
1518 <     416,   418,   418,   419,   419,   420,   420,   420,   420,   420,
1483 >       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1484 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1485 >     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1486 >     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1487 >     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1488 >     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1489 >     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1490 >     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1491 >     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1492 >     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1493 >     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1494 >     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1495 >     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1496 >     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1497 >     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1498 >     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1499 >     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1500 >     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1501 >     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1502 >     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1503 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1504 >     295,   295,   295,   296,   297,   298,   299,   300,   301,   302,
1505 >     303,   304,   305,   306,   307,   308,   310,   309,   312,   311,
1506 >     313,   313,   314,   314,   314,   315,   315,   316,   316,   316,
1507 >     316,   316,   318,   317,   319,   319,   320,   320,   321,   322,
1508 >     324,   323,   325,   325,   326,   326,   326,   326,   326,   326,
1509 >     326,   326,   326,   327,   328,   329,   330,   332,   331,   333,
1510 >     333,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1511 >     334,   335,   336,   337,   339,   338,   340,   340,   341,   341,
1512 >     341,   341,   342,   343,   344,   345,   346,   346,   347,   347,
1513 >     348,   350,   349,   351,   351,   352,   352,   352,   352,   353,
1514 >     354,   356,   355,   357,   357,   358,   358,   358,   358,   358,
1515 >     358,   358,   358,   358,   358,   360,   359,   361,   361,   362,
1516 >     362,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1517 >     367,   367,   367,   367,   367,   367,   367,   369,   368,   370,
1518 >     370,   371,   371,   371,   371,   371,   371,   371,   371,   371,
1519 >     371,   371,   371,   371,   371,   372,   373,   374,   375,   376,
1520 >     377,   378,   378,   380,   379,   381,   381,   382,   382,   383,
1521 >     384,   385,   386,   387,   389,   388,   391,   390,   392,   392,
1522 >     393,   394,   394,   395,   395,   395,   395,   396,   397,   399,
1523 >     398,   400,   400,   401,   401,   401,   402,   403,   404,   405,
1524 >     405,   406,   406,   407,   409,   408,   411,   410,   412,   412,
1525 >     413,   414,   414,   415,   415,   415,   415,   416,   417,   418,
1526 >     419,   419,   420,   420,   420,   420,   420,   420,   420,   420,
1527 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1528       420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1529 <     421,   422,   423,   424,   425,   426,   427,   428,   428,   430,
1530 <     429,   431,   431,   433,   432,   434,   432,   435,   435,   435,
1531 <     435,   435,   436,   437,   438,   439,   440,   441,   443,   442,
1532 <     445,   444,   446,   446,   447,   448,   448,   449,   449,   449,
1533 <     449,   450,   451,   453,   452,   454,   454,   455,   455,   455,
1534 <     456,   457,   458,   459,   459,   460,   460,   461,   463,   462,
1535 <     465,   464,   466,   466,   467,   468,   468,   469,   469,   469,
1536 <     469,   470,   471,   472,   473,   473,   474,   474,   474,   474,
1537 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1538 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1539 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1540 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1541 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1542 <     474,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1543 <     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1544 <     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
1545 <     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
1529 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1530 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1531 >     420,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1532 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1533 >     439,   440,   441,   442,   443,   444,   445,   446,   446,   447,
1534 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1535 >     457,   458,   459,   460,   461,   462,   463,   464,   466,   465,
1536 >     467,   467,   468,   468,   468,   468,   468,   468,   468,   468,
1537 >     468,   468,   468,   468,   468,   468,   468,   468,   468,   468,
1538 >     468,   468,   470,   469,   471,   471,   472,   472,   472,   472,
1539 >     472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
1540 >     472,   472,   472,   472,   472,   472,   473,   474,   475,   476,
1541 >     477,   477,   478,   478,   478,   478,   478,   478,   478,   478,
1542 >     478,   478,   478,   478,   478,   478,   478,   479,   480,   481,
1543 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1544 >     492,   493,   494,   494,   495,   495,   495,   495,   495,   495,
1545 >     495,   496,   497,   498,   499,   500,   501
1546   };
1547  
1548   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1685 | Line 1554 | static const yytype_uint8 yyr2[] =
1554         3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1555         5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1556         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1558 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1690 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1691 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1692 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1557 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1558 >       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1559         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1560 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1561 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1562 <       4,     1,     4,     4,     4,     4,     4,     0,     5,     3,
1560 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1561 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1562 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1563 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1564 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1565 >       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1566 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568 +       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570 <       0,     5,     3,     1,     0,     3,     0,     2,     1,     1,
1570 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1571         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1572 <       1,     1,     1,     1,     0,     7,     0,     1,     2,     1,
1572 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1573 >       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1574 >       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1575 >       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1576 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1577 >       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1578         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1579 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1580 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1705 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1706 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1707 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1708 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1709 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1710 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1711 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1579 >       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1580 >       1,     2,     4,     4,     4,     5,     2,     1,     1,     1,
1581         4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1582         4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1583 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1584 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1585 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1717 <       7,     0,     1,     2,     1,     1,     1,     1,     1,     1,
1718 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1719 <       4,     1,     4,     4,     4,     4,     4,     4,     4,     0,
1720 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1721 <       1,     1,     4,     4,     4,     4,     4,     4,     0,     6,
1722 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1723 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1724 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1725 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1726 <       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1584 >       1,     2,     4,     0,     5,     3,     1,     1,     1,     1,
1585 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1586         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 +       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
1588 +       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
1589 +       4,     4,     4,     4,     0,     6,     0,     5,     3,     1,
1590 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     0,
1591 +       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
1592 +       1,     1,     1,     4,     0,     6,     0,     5,     3,     1,
1593 +       1,     2,     1,     1,     1,     1,     1,     4,     4,     5,
1594 +       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1596         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
# Line 1733 | Line 1600 | static const yytype_uint8 yyr2[] =
1600         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1601         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1602         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1603 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1604 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1603 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1604 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1606 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1609 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1610 <       1,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1744 <       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1745 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1746 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1747 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1608 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1609 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1610 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1611         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1612 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1613 <       1,     4,     4,     4,     4,     4,     4,     4
1612 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1613 >       1,     4,     4,     4,     4,     4,     4
1614   };
1615  
1616 < /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1617 <   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
1616 > /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1617 >   Performed when YYTABLE doesn't specify something else to do.  Zero
1618     means the default is an error.  */
1619   static const yytype_uint16 yydefact[] =
1620   {
1621 <       2,     0,     1,     0,     0,     0,   194,   349,   413,     0,
1622 <     428,     0,   603,   252,   398,   228,     0,     0,   125,   290,
1623 <       0,     0,   301,   326,     3,    23,    11,     4,     5,     6,
1621 >       2,     0,     1,     0,     0,     0,   195,   347,   399,     0,
1622 >     414,     0,   250,   384,   226,     0,     0,   129,   284,     0,
1623 >       0,   301,   325,     0,     3,    23,    11,     4,     5,     6,
1624         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1625 <      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,
1766 <       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,
1771 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1625 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1626         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 <       0,   576,     0,   553,     0,     0,     0,     0,     0,     0,
1628 >       0,     0,    92,    93,    95,    94,   596,     0,     0,     0,
1629         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630 <       0,     0,     0,     0,     0,   445,   500,   495,   496,   493,
1631 <     497,   498,   494,   456,   446,   447,   485,   448,   449,   450,
1632 <     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,
1630 >       0,     0,   581,   595,   591,   583,   584,   585,   586,   587,
1631 >     582,   588,   589,   590,   592,   593,   594,     0,     0,     0,
1632 >     412,     0,     0,   410,   411,     0,   481,     0,     0,     0,
1633         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,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 +       0,     0,     0,     0,     0,     0,   552,     0,   528,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637 +       0,     0,     0,     0,     0,     0,     0,   431,   479,   473,
1638 +     474,   475,   476,   477,   472,   442,   432,   433,   467,   434,
1639 +     435,   436,   437,   438,   439,   440,   441,   469,   443,   444,
1640 +     478,   446,   451,   447,   449,   448,   462,   463,   450,   452,
1641 +     453,   454,   455,   456,   445,   458,   459,   460,   480,   470,
1642 +     471,   468,   461,   457,   465,   466,   464,     0,     0,     0,
1643 +       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1644 +       0,    42,    43,    44,     0,     0,   620,     0,     0,     0,
1645 +       0,     0,     0,     0,   613,   614,   615,   618,   616,   617,
1646 +     619,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 +       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1648 +      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1649 +      52,    60,    57,    53,     0,     0,   299,     0,     0,   297,
1650 +     298,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1651         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652 +       0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1653 +       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1654 +     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1655 +     201,   203,     0,     0,     0,     0,     0,   373,     0,     0,
1656 +       0,     0,     0,     0,     0,     0,     0,   350,   351,   352,
1657 +     353,   354,   355,   357,   356,   359,   363,   360,   361,   362,
1658 +     358,   405,     0,     0,     0,   402,   403,   404,     0,     0,
1659 +     409,   426,     0,     0,   416,   425,     0,   422,   423,   424,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         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,
1662         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,
1663         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,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1665 <     630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1666 <       0,     0,     0,     0,     0,     0,   199,   200,   203,   204,
1667 <     206,   207,   208,   209,   210,   211,   212,   201,   202,   205,
1668 <       0,     0,     0,     0,     0,     0,   379,     0,     0,     0,
1669 <       0,     0,     0,     0,     0,     0,   354,   355,   356,   357,
1670 <     358,   359,   361,   360,   362,   367,   366,   363,   364,   365,
1671 <     368,     0,     0,     0,   415,     0,   422,     0,     0,     0,
1672 <       0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
1665 >     430,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1666 >       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1667 >     396,     0,   386,     0,   395,     0,   392,   393,   394,     0,
1668 >     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1669 >     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1670 >       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1671 >     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1672 >       0,     0,     0,     0,   287,   288,   289,   290,     0,     0,
1673 >       0,     0,     0,     0,     0,   612,    66,     0,     0,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 +       0,     0,     0,    49,     0,     0,   311,     0,     0,   304,
1676 +     305,   306,   307,     0,     0,   333,     0,   328,   329,   330,
1677 +       0,     0,   296,     0,     0,     0,    90,     0,     0,     0,
1678 +      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 +       0,     0,   579,   212,     0,     0,     0,     0,     0,     0,
1680 +       0,     0,     0,     0,     0,     0,     0,     0,   197,   364,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682 +       0,     0,     0,     0,   349,     0,     0,     0,   401,     0,
1683 +     408,     0,     0,     0,     0,   421,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685         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,
1686         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,
1687         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 <       0,     0,     0,     0,   198,   369,     0,     0,     0,     0,
1688 >       0,     0,     0,     0,     0,     0,     0,   429,   262,     0,
1689 >       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1690 >       0,     0,     0,   391,   241,     0,     0,     0,     0,     0,
1691 >     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1692 >       0,     0,     0,     0,     0,     0,     0,   131,   291,     0,
1693 >       0,     0,     0,   286,     0,     0,     0,     0,     0,     0,
1694 >     611,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1695 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1696 >       0,     0,    48,   308,     0,     0,     0,     0,   303,   331,
1697 >       0,     0,     0,   327,     0,   295,    99,    98,    97,   606,
1698 >     605,   597,    26,    26,    26,    26,    26,    28,    27,   599,
1699 >     600,   604,   602,   601,   607,   608,   609,   610,   603,   598,
1700         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701 <       0,   353,     0,     0,   414,   427,     0,     0,     0,   429,
1702 <     514,   518,   505,   534,   547,   546,   601,   551,   512,   543,
1703 <     549,   513,   503,   504,   521,   510,   542,   511,   524,   509,
1704 <     523,   522,   517,   516,   515,   544,   502,   541,   599,   600,
1705 <     538,   535,   580,   596,   597,   581,   582,   583,   584,   591,
1706 <     585,   594,   598,   587,   592,   588,   593,   586,   590,   589,
1707 <     595,     0,   579,   540,   557,   573,   574,   558,   559,   560,
1708 <     561,   568,   562,   571,   575,   564,   569,   565,   570,   563,
1709 <     567,   566,   572,     0,   556,   533,   536,   550,   507,   545,
1710 <     508,   537,   526,   531,   532,   529,   530,   527,   528,   520,
1711 <     519,    34,    34,    34,    36,    35,   602,   552,   539,   548,
1712 <     506,   525,     0,     0,     0,     0,     0,     0,   604,     0,
1713 <       0,   275,     0,     0,     0,     0,     0,   253,     0,     0,
1714 <       0,   399,     0,     0,     0,   248,   244,   247,   229,   110,
1715 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1716 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   139,
1717 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   129,
1718 <       0,     0,     0,   291,   686,   681,   685,   683,   687,   682,
1719 <     684,    74,    80,    72,    76,    75,    71,    70,    68,    69,
1720 <       0,    67,    73,    79,    77,    78,     0,     0,     0,   302,
1721 <       0,     0,   327,    29,    30,    31,    32,    33,     0,     0,
1722 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1723 <       0,   195,     0,     0,     0,     0,     0,     0,   385,     0,
1724 <       0,     0,     0,     0,     0,     0,     0,   350,   420,   421,
1725 <     441,   442,   434,     0,   433,   577,     0,   554,     0,    37,
1726 <      38,    39,   629,   628,     0,   627,   615,   614,   621,   620,
1727 <       0,   619,   623,   622,   267,   268,   273,     0,   272,     0,
1728 <     266,   289,   288,   287,   265,   412,   404,     0,   403,   411,
1729 <     235,   236,   234,     0,   233,   251,   250,     0,     0,     0,
1730 <       0,     0,   176,     0,     0,     0,     0,     0,   126,   299,
1731 <     300,   298,    65,     0,   309,   315,   321,   325,   324,   323,
1732 <     320,   316,   319,   322,   317,   318,     0,   314,   310,   333,
1733 <     338,   344,   348,   347,   346,   343,   339,   342,   345,   340,
1734 <     341,     0,   337,   225,   226,   219,   221,   223,   222,   220,
1735 <     214,   227,   218,   216,   217,   224,   375,   377,   378,   397,
1736 <     396,   393,   383,     0,   382,     0,   372,   394,   395,   370,
1737 <     376,   392,   374,   373,   431,     0,   578,   555,   625,     0,
1738 <     617,     0,     0,   270,   275,   281,   282,   278,   284,   280,
1739 <     279,   286,   283,   285,   277,   276,   401,     0,   231,     0,
1740 <     249,   246,   245,   146,   144,   174,     0,   173,     0,   140,
1741 <     143,   145,   151,   167,   168,   152,   153,   154,   155,   162,
1742 <     156,   165,   169,   158,   163,   159,   164,   157,   161,   160,
1743 <     166,     0,   150,   142,    66,   312,     0,   335,     0,     0,
1889 <     380,   385,   389,   390,   387,   388,   391,   386,   432,   626,
1890 <     618,   274,   271,   402,   232,     0,   171,   176,   186,   184,
1891 <     193,   183,   178,   187,   191,   180,   188,   190,   185,   179,
1892 <     192,   189,   181,   182,   177,   148,     0,   313,   336,   384,
1893 <     381,   175,   172,   149
1701 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   348,
1703 >       0,     0,   400,   413,     0,     0,     0,   415,   494,   498,
1704 >     512,   578,   526,   492,   520,   523,   493,   484,   483,   485,
1705 >     486,   487,   501,   490,   491,   502,   489,   497,   496,   495,
1706 >     521,   482,   519,   576,   577,   516,   513,   563,   556,   573,
1707 >     574,   557,   558,   559,   560,   568,   561,   571,   575,   564,
1708 >     569,   565,   570,   562,   567,   566,   572,     0,   555,   518,
1709 >     538,   532,   549,   550,   533,   534,   535,   536,   544,   537,
1710 >     547,   551,   540,   545,   541,   546,   539,   543,   542,   548,
1711 >       0,   531,   511,   514,   525,   488,   515,   504,   509,   510,
1712 >     507,   508,   505,   506,   500,   499,   524,   527,   517,   522,
1713 >     503,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1714 >       0,     0,     0,   385,     0,     0,     0,   246,   242,   245,
1715 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1716 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1717 >       0,   130,     0,     0,     0,   285,   621,   625,   623,   626,
1718 >     622,   624,    83,    89,    81,    85,    84,    78,    77,    79,
1719 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1720 >       0,     0,   302,     0,     0,   326,   300,    29,    30,    31,
1721 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1722 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1723 >     369,   371,   372,   382,   379,   377,   378,     0,   376,   366,
1724 >     380,   381,   365,   370,   368,   383,   367,   406,   407,   427,
1725 >     428,   420,     0,   419,   553,     0,   529,     0,   265,   266,
1726 >     275,   272,   277,   274,   273,   280,   276,   278,   271,   279,
1727 >       0,   270,   264,   283,   282,   281,   263,   398,   390,     0,
1728 >     389,   397,   233,   234,   232,     0,   231,   249,   248,     0,
1729 >       0,     0,   114,     0,     0,     0,     0,   109,   147,   145,
1730 >     187,   184,   183,   176,   178,   194,   188,   191,   186,   177,
1731 >     192,   180,   189,   193,   181,   190,   185,   179,   182,     0,
1732 >     175,   142,   144,   146,   158,   152,   169,   170,   153,   154,
1733 >     155,   156,   164,   157,   167,   171,   160,   165,   161,   166,
1734 >     159,   163,   162,   168,     0,   151,   143,   293,   294,   292,
1735 >      69,    73,   309,   315,   321,   324,   317,   323,   318,   322,
1736 >     320,   316,   319,     0,   314,   310,   332,   337,   343,   346,
1737 >     339,   345,   340,   344,   342,   338,   341,     0,   336,    37,
1738 >      38,    39,   374,     0,   417,     0,   554,   530,   268,     0,
1739 >     387,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1740 >       0,   108,   173,     0,   149,     0,   312,     0,   334,     0,
1741 >     375,   418,   269,   388,   230,   115,   124,   127,   126,   123,
1742 >     128,   125,   122,     0,   121,   117,   116,   174,   150,   313,
1743 >     335,   119,     0,   120
1744   };
1745  
1746   /* YYDEFGOTO[NTERM-NUM].  */
1747   static const yytype_int16 yydefgoto[] =
1748   {
1749 <      -1,     1,    24,   834,   835,   984,   985,    25,   275,   276,
1750 <     277,   278,    26,   313,   314,   315,   534,  1070,  1071,   316,
1751 <     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1752 <      27,    71,    72,    73,    74,    75,    28,   258,   259,   260,
1753 <     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1754 <     271,    29,    61,   280,   773,   774,   775,   281,   776,   777,
1755 <     778,   779,   780,   781,  1046,  1301,  1302,   782,  1042,  1276,
1756 <    1277,  1325,  1278,  1344,    30,    49,   116,   595,   596,   597,
1757 <     117,   598,   599,   600,   601,   602,   603,   604,   605,   606,
1758 <     607,   608,   609,    31,    58,   481,   736,  1163,  1164,   482,
1759 <     483,   484,  1169,  1016,  1017,   485,   486,    32,    56,   457,
1760 <     458,   459,   460,   461,   462,   463,   722,  1147,  1148,  1252,
1761 <    1149,  1265,   464,   465,   466,    33,    62,   512,   513,   514,
1762 <     515,   516,    34,    65,   545,   546,   547,   548,   549,   812,
1763 <    1196,  1197,    35,    66,   553,   554,   555,   556,   818,  1211,
1764 <    1212,    36,    50,   119,   625,   626,   627,   120,   628,   629,
1765 <     630,   631,   632,   633,   634,   871,  1233,  1234,  1309,  1235,
1766 <    1317,   635,   636,   637,   638,   639,   640,    37,    57,   471,
1767 <     731,  1157,  1158,   472,   473,   474,   475,    38,    51,   360,
1768 <     361,   362,   363,    39,   124,   125,   126,    40,    53,   371,
1769 <     649,  1123,  1124,   372,   373,   374,   375,    41,   184,   185,
1770 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1771 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1772 <     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1773 <     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1774 <     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1775 <     410,   963,   964,   236,   408,   941,   942,   237,   238,   239,
1776 <     240,    42,    55,   440,   441,   442,   443,   444,   714,  1140,
1777 <    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
1749 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1750 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1751 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1752 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1753 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1754 >     950,  1084,  1213,  1214,    29,    60,   499,   500,   501,   502,
1755 >     503,   504,   505,   506,   507,   714,  1134,  1135,   508,   710,
1756 >    1109,  1110,    30,    49,   327,   328,   329,   330,   331,   332,
1757 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1758 >      57,   474,   695,  1075,  1076,   475,   476,   477,  1081,   938,
1759 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1760 >     455,   456,   681,  1060,  1061,   457,   458,   459,    33,    61,
1761 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1762 >      64,   548,   549,   550,   551,   552,   755,  1153,  1154,    36,
1763 >      65,   556,   557,   558,   559,   761,  1167,  1168,    37,    50,
1764 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1765 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1766 >     464,   690,  1069,  1070,   465,   466,   467,   468,    39,    51,
1767 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1768 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1769 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1770 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1771 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1772 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1773 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1774 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1775 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1776 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1777 >     249,   250
1778   };
1779  
1780   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1781     STATE-NUM.  */
1782 < #define YYPACT_NINF -949
1782 > #define YYPACT_NINF -678
1783   static const yytype_int16 yypact[] =
1784   {
1785 <    -949,   670,  -949,  -256,  -248,  -245,  -949,  -949,  -949,  -212,
1786 <    -949,  -205,  -949,  -949,  -949,  -949,  -189,  -183,  -949,  -949,
1787 <    -154,  -152,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1788 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1789 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,    22,   642,  -127,
1790 <     -31,  -132,     5,  -125,   415,  -119,   -98,   -89,   -86,   578,
1791 <      14,    -8,   -75,   664,   313,   -74,   -61,   -45,   -46,   -37,
1792 <     -23,    31,  -949,  -949,  -949,  -949,  -949,   -22,    15,    30,
1793 <      33,    41,    42,    47,    48,    50,    61,    62,    70,    78,
1794 <      79,    80,    86,    90,    93,    94,  -949,  -949,  -949,  -949,
1795 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1796 <    -949,  -949,  -949,  -949,  -949,  -949,   -44,  -949,  -949,    89,
1797 <    -949,    20,  -949,    99,     2,  -949,  -949,   140,  -949,   100,
1798 <     104,   106,   111,   113,   115,   122,   123,   126,   127,   128,
1799 <     129,   131,   133,   135,   136,   137,   145,   147,   148,   151,
1800 <     155,   156,   157,   159,   163,   165,   167,   169,   174,   175,
1801 <     177,  -949,   178,  -949,   186,   187,   188,   193,   194,   197,
1802 <     199,   200,   205,   206,   209,   210,   211,   212,   213,   214,
1803 <     219,   220,   225,   228,    10,  -949,  -949,  -949,  -949,  -949,
1804 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1805 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1806 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1807 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1808 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1809 <    -949,   364,   308,    92,   318,    17,   229,   230,   231,   232,
1810 <     236,   237,   241,   242,   244,   245,   248,   250,   226,  -949,
1811 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1812 <    -949,  -949,    63,   251,   252,    60,  -949,  -949,  -949,  -949,
1813 <     182,  -949,    24,  -949,   253,   254,   255,   260,   270,   271,
1814 <     272,   192,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1815 <      72,   273,   274,   275,   276,   279,   281,   282,  -949,   285,
1816 <     286,   287,   288,   132,  -949,  -949,  -949,  -949,  -949,  -949,
1817 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   183,   102,  -949,
1818 <     222,   293,   336,   299,  -949,   198,   431,   432,   368,   369,
1819 <     436,   436,   440,   441,   376,   379,   446,   436,   381,   390,
1820 <     391,   392,   393,   332,  -949,   726,   521,  -949,   330,   331,
1821 <      76,  -949,  -949,  -949,   442,   338,  -949,  -949,   333,   337,
1822 <    -949,  -949,    57,  -949,  -949,  -949,   404,   436,   408,   436,
1823 <     482,   461,   486,   423,   424,   491,   470,   429,   496,   497,
1824 <     498,   434,   436,   445,   447,   436,   493,   450,   517,   518,
1825 <     436,   522,   523,   499,   526,   528,   463,   464,   400,   469,
1826 <     405,   436,   436,   475,   436,   514,   488,   489,   492,  -131,
1827 <    -110,   494,   501,   436,   436,   548,   436,   504,   505,   506,
1828 <     510,   428,  -949,  -949,  -949,   420,   427,  -949,   430,   448,
1829 <     112,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   435,   454,
1830 <     457,  -949,   459,   462,   465,   466,   467,   118,  -949,  -949,
1831 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   468,  -949,
1832 <     472,  -949,    74,  -949,  -949,  -949,   449,  -949,   474,   483,
1833 <     490,  -949,    29,  -949,  -949,  -949,  -949,  -949,   555,   557,
1834 <     560,   571,   573,   579,   599,   601,   360,   602,   604,   561,
1835 <     502,  -949,  -949,   608,   611,   507,  -949,   305,   511,   503,
1836 <     512,   515,   152,  -949,  -949,  -949,  -949,   568,   577,   580,
1837 <     626,   583,   584,   436,   524,  -949,  -949,   634,   586,   637,
1838 <     638,   639,   640,   641,   532,   646,   672,   648,   651,   547,
1839 <    -949,   551,   549,  -949,   550,    69,  -949,  -949,  -949,  -949,
1840 <     558,   556,  -949,    75,  -949,  -949,  -949,   562,   563,   564,
1841 <    -949,   565,   566,   569,   572,   576,   207,   582,   587,   588,
1842 <     589,   592,   593,   594,   597,   598,   603,   607,   609,   610,
1843 <    -949,   615,   574,   581,   605,   616,   617,   618,   619,   620,
1844 <     622,   623,   624,   625,   628,   116,  -949,  -949,  -949,  -949,
1845 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1846 <     629,   632,   645,   649,   650,   652,  -949,   653,   654,   655,
1847 <     656,   660,   665,   667,   668,   160,  -949,  -949,  -949,  -949,
1848 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1849 <    -949,   675,   686,   678,  -949,   681,  -949,   687,   690,   682,
1850 <     688,  -949,   689,   691,   693,   694,   695,   696,   700,   704,
1851 <     705,   707,   708,   715,   718,   722,   723,   725,   727,   728,
1852 <     730,   731,   732,   733,   737,   741,   742,   744,   745,   747,
1853 <     748,   749,   750,   751,   692,   752,   729,   753,   754,   755,
1854 <     756,   757,   758,   759,   760,   761,   762,   763,   764,   765,
1855 <     767,   768,   769,    49,   770,   771,   772,   773,   774,   775,
1856 <    -949,   683,   436,   712,   776,   709,   711,   777,  -949,  -949,
1857 <     797,   714,   778,   799,   783,   833,   836,   873,   780,  -949,
1858 <     883,   779,   885,   784,  -949,  -949,   782,   890,   893,   796,
1859 <     787,  -949,   788,   789,   790,   791,   792,   793,   794,   795,
1860 <     798,   800,   801,   802,   803,   804,   805,   806,   807,   808,
1861 <    -949,   809,   810,  -949,   811,   812,   813,  -949,   814,   815,
1862 <     816,  -949,   817,   181,  -949,  -949,  -949,  -949,  -949,  -949,
1863 <    -949,  -949,  -949,  -949,   903,   904,   906,   821,  -949,   822,
1864 <     823,   824,   825,   826,   827,   828,  -949,   829,   830,   831,
1865 <     832,   834,   835,   837,   -80,   838,   839,   840,   841,  -949,
1866 <    -949,   919,   842,   920,   843,  -949,  -949,   921,   844,   846,
1867 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   436,
1868 <     436,   436,   436,   436,  -949,  -949,  -949,  -949,  -949,  -949,
1869 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1870 <     962,   965,   436,   971,   973,   977,   978,   957,   980,   981,
1871 <     436,   436,   548,   853,  -949,  -949,   961,  -117,   963,   964,
1872 <     918,   855,   966,   967,   968,   969,   992,   972,   974,   975,
1873 <     864,  -949,   866,   869,  -949,  -949,   870,   871,   662,  -949,
1874 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1875 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1876 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1877 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1878 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1879 <    -949,  -244,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1880 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1881 <    -949,  -949,  -949,  -236,  -949,  -949,  -949,  -949,  -949,  -949,
1882 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1883 <    -949,   548,   548,   548,  -949,  -949,  -949,  -949,  -949,  -949,
1884 <    -949,  -949,    -3,   872,   874,    -2,   875,   876,  -949,   877,
1885 <     878,  1003,   879,   880,   881,   882,   884,  -949,   886,   703,
1886 <     887,  -949,   -63,   888,   889,   676,   891,  -949,  -949,  -949,
1887 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1888 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1889 <     990,   948,   894,   997,   998,   999,   895,  1000,   896,  -949,
1890 <     899,   900,   901,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1891 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1892 <    -224,  -949,  -949,  -949,  -949,  -949,   902,   570,   905,  -949,
1893 <     907,   627,  -949,  -949,  -949,  -949,  -949,  -949,   908,   909,
1894 <     910,   911,   912,   913,   914,   915,   916,   917,   922,   923,
1895 <     924,  -949,   925,   926,   927,   928,   929,   930,  1024,   931,
1896 <     932,   933,   934,   935,   936,   937,   938,  -949,  -949,  -949,
1897 <    -949,  -949,  -949,  -219,  -949,  -949,   692,  -949,   729,  -949,
1898 <    -949,  -949,  -949,  -949,  -216,  -949,  -949,  -949,  -949,  -949,
1899 <    -213,  -949,  -949,  -949,  -949,  -949,  -949,  -158,  -949,   630,
1900 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -149,  -949,  -949,
1901 <    -949,  -949,  -949,  -129,  -949,  -949,  -949,  1032,   796,   939,
1902 <     940,   941,  1034,   942,   943,   944,   766,   945,  -949,  -949,
1903 <    -949,  -949,  -949,   -80,  -949,  -949,  -949,  -949,  -949,  -949,
1904 <    -949,  -949,  -949,  -949,  -949,  -949,  -106,  -949,  -949,  -949,
1905 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1906 <    -949,   -25,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1907 <    -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
1785 >    -678,   581,  -678,  -132,  -213,  -211,  -678,  -678,  -678,  -200,
1786 >    -678,  -194,  -678,  -678,  -678,  -191,  -189,  -678,  -678,  -181,
1787 >    -179,  -678,  -678,  -176,  -678,  -678,  -678,  -678,  -678,  -678,
1788 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1789 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   285,   812,  -143,
1790 >    -106,  -103,    18,   -88,   349,   -79,   -73,   -68,    62,    68,
1791 >     -66,   -57,   388,   387,   -43,   -21,    15,  -182,   -16,   -11,
1792 >      -9,     8,  -678,  -678,  -678,  -678,  -678,    -4,    59,    71,
1793 >      94,    97,   110,   131,   134,   136,   141,   142,   144,   145,
1794 >     146,   155,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1795 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   622,   419,    29,
1796 >    -678,   147,    44,  -678,  -678,   198,  -678,   148,   158,   163,
1797 >     164,   165,   167,   168,   169,   174,   179,   182,   183,   188,
1798 >     189,   192,   195,   196,   200,   205,   212,   227,   229,   230,
1799 >     232,   243,   246,   248,   249,   250,  -678,   251,  -678,   252,
1800 >     254,   255,   256,   263,   264,   267,   268,   271,   273,   274,
1801 >     275,   276,   277,   279,   280,   281,    36,  -678,  -678,  -678,
1802 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1803 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1804 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1805 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1806 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   448,     4,   257,
1807 >      65,   283,    45,  -678,  -678,  -678,    80,    88,   284,   294,
1808 >      49,  -678,  -678,  -678,   426,    13,  -678,   295,   302,   303,
1809 >     304,   305,   307,     7,  -678,  -678,  -678,  -678,  -678,  -678,
1810 >    -678,   187,   308,   309,   310,   311,   312,   314,   316,   318,
1811 >     319,   321,   322,   323,   324,   325,   326,    74,  -678,  -678,
1812 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1813 >    -678,  -678,  -678,  -678,    11,    28,  -678,   327,    53,  -678,
1814 >    -678,  -678,   253,   286,   299,   202,  -678,   384,   447,   390,
1815 >     456,   456,   459,   460,   464,   405,   406,   467,   456,   413,
1816 >     414,   332,  -678,   359,   357,   358,   361,   365,   366,   369,
1817 >     370,   373,   374,   375,   376,   383,   385,   156,  -678,  -678,
1818 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1819 >    -678,  -678,   362,   392,   393,   394,   395,  -678,   396,   398,
1820 >     400,   403,   404,   407,   408,   412,   210,  -678,  -678,  -678,
1821 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1822 >    -678,  -678,   415,   416,    66,  -678,  -678,  -678,   488,   391,
1823 >    -678,  -678,   418,   421,  -678,  -678,    39,  -678,  -678,  -678,
1824 >     472,   456,   456,   541,   483,   485,   546,   529,   489,   456,
1825 >     490,   456,   548,   551,   554,   496,   497,   499,   456,   560,
1826 >     562,   456,   563,   564,   547,   566,   568,   509,   511,   454,
1827 >     515,   457,   456,   456,   517,   519,   520,   521,   181,   184,
1828 >     523,   526,   456,   456,   569,   456,   528,   532,   533,   473,
1829 >    -678,   478,   479,   486,  -678,   487,   491,   492,   494,   495,
1830 >     199,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1831 >    -678,   500,  -678,   501,  -678,    69,  -678,  -678,  -678,   481,
1832 >    -678,   502,   506,   513,  -678,    51,  -678,  -678,  -678,  -678,
1833 >    -678,   542,   493,  -678,   498,  -678,   585,   589,   512,  -678,
1834 >     518,   514,   516,  -678,   525,   535,   538,  -678,   540,    56,
1835 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,   531,
1836 >     545,   549,   550,    33,  -678,  -678,  -678,  -678,   555,   558,
1837 >     590,   576,   591,   456,   536,  -678,  -678,   649,   601,   652,
1838 >     653,   655,   656,   662,   669,    46,   213,   670,   672,   695,
1839 >     679,   683,   587,  -678,   588,   586,  -678,   598,    20,  -678,
1840 >    -678,  -678,  -678,   605,   608,  -678,   152,  -678,  -678,  -678,
1841 >     689,   623,  -678,   625,   627,   629,  -678,   630,   631,   632,
1842 >     193,   633,   634,   636,   639,   640,   641,   646,   648,   650,
1843 >     651,   658,  -678,  -678,   724,   759,   456,   765,   768,   771,
1844 >     772,   755,   775,   777,   456,   778,   778,   665,  -678,  -678,
1845 >     764,   180,   766,   723,   666,   773,   774,   776,   779,   789,
1846 >     780,   781,   782,   674,  -678,   783,   784,   677,  -678,   680,
1847 >    -678,   785,   786,   676,   690,  -678,   691,   694,   696,   697,
1848 >     698,   699,   700,   701,   702,   703,   704,   707,   708,   709,
1849 >     710,   711,   712,   713,   714,   716,   717,   718,   719,   720,
1850 >     721,   722,   725,   726,   727,   573,   728,   609,   729,   730,
1851 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1852 >     741,   742,   743,   744,   745,   746,   747,  -678,  -678,   787,
1853 >     751,   748,   822,   864,   847,   848,   850,   753,  -678,   852,
1854 >     752,   854,   757,  -678,  -678,   756,   856,   858,   877,   762,
1855 >    -678,   763,  -678,   185,   767,   769,  -678,  -678,   862,   821,
1856 >     770,   866,   868,   869,   788,   870,   790,  -678,  -678,   872,
1857 >     873,   874,   792,  -678,   793,   794,   795,   796,   797,   798,
1858 >    -678,   799,   800,   801,   802,   803,   804,   805,   806,  -678,
1859 >    -678,  -204,  -678,  -678,  -678,  -197,  -678,   807,   808,   809,
1860 >     810,   811,  -678,  -678,   875,   813,   876,   814,  -678,  -678,
1861 >     878,   815,   817,  -678,   819,  -678,  -678,  -678,  -678,  -678,
1862 >    -678,  -678,   456,   456,   456,   456,   456,  -678,  -678,  -678,
1863 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1864 >     820,   823,   824,   825,   826,   827,   828,   829,   830,   831,
1865 >     832,   297,   833,   834,  -678,   835,   836,   837,   838,   839,
1866 >       5,   840,   841,   842,   843,   844,   845,   846,   849,  -678,
1867 >     851,   853,  -678,  -678,   855,   857,   859,  -678,  -678,  -678,
1868 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1869 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1870 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1871 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1872 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -195,  -678,  -678,
1873 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1874 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1875 >    -184,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1876 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1877 >    -678,   860,   861,   537,   863,   865,   867,   871,   879,  -678,
1878 >     880,   881,   882,  -678,   -26,   883,   884,   899,   818,  -678,
1879 >    -678,  -678,   885,   886,  -678,   887,   129,  -678,  -678,  -678,
1880 >    -678,  -678,  -678,   888,   891,   484,   892,   893,   894,   643,
1881 >     895,  -678,   896,   897,   898,  -678,  -678,  -678,  -678,  -678,
1882 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1883 >    -678,    46,  -678,   213,  -678,  -678,  -678,  -678,  -678,   900,
1884 >     657,   901,  -678,   902,   664,  -678,  -678,  -678,  -678,  -678,
1885 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1886 >    -678,  -678,  -678,   778,   778,   778,  -678,  -678,  -678,  -678,
1887 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -166,  -678,  -678,
1888 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1889 >    -678,  -678,  -164,  -678,  -678,   573,  -678,   609,  -678,  -678,
1890 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1891 >    -147,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -130,
1892 >    -678,  -678,  -678,  -678,  -678,   -46,  -678,  -678,  -678,   903,
1893 >     877,   904,  -678,   910,   905,   -92,   906,  -678,  -678,  -678,
1894 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1895 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    -7,
1896 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1897 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1898 >    -678,  -678,  -678,  -678,    76,  -678,  -678,  -678,  -678,  -678,
1899 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1900 >    -678,  -678,  -678,    82,  -678,  -678,  -678,  -678,  -678,  -678,
1901 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,    85,  -678,  -678,
1902 >    -678,  -678,  -678,     5,  -678,   859,  -678,  -678,  -678,   537,
1903 >    -678,   881,  -678,   -26,  -678,  -678,  -678,   907,   265,   909,
1904 >     911,  -678,  -678,   484,  -678,   643,  -678,   657,  -678,   664,
1905 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1906 >    -678,  -678,  -678,    95,  -678,  -678,  -678,  -678,  -678,  -678,
1907 >    -678,  -678,   265,  -678
1908   };
1909  
1910   /* YYPGOTO[NTERM-NUM].  */
1911   static const yytype_int16 yypgoto[] =
1912   {
1913 <    -949,  -949,  -949,  -427,  -340,  -948,  -423,  -949,  -949,   946,
1914 <    -949,  -949,  -949,  -949,   865,  -949,  -949,  -949,  -293,  -949,
1915 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1916 <    -949,  -949,  1095,  -949,  -949,  -949,  -949,  -949,   643,  -949,
1917 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1918 <    -949,  -949,  -949,  -949,  -949,   406,  -949,  -949,  -949,  -949,
1919 <    -949,  -949,  -949,  -949,  -949,  -949,  -166,  -949,  -949,  -949,
1920 <    -146,  -949,  -949,  -118,  -949,  -949,  -949,  -949,   613,  -949,
1921 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1922 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -60,  -949,
1923 <     724,  -949,  -949,  -949,    43,  -949,  -949,  -949,  -949,  -949,
1924 <     781,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -42,  -949,
1925 <    -949,   -39,  -949,  -949,  -949,  -949,  -949,  -949,   698,  -949,
1926 <    -949,  -949,  -949,  -949,  -949,   669,  -949,  -949,  -949,  -949,
1927 <    -949,   -91,  -949,  -949,  -949,   663,  -949,  -949,  -949,  -949,
1928 <     -90,  -949,  -949,  -949,  -949,   595,  -949,  -949,  -949,  -949,
1929 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   -94,  -949,  -949,
1930 <     -87,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1931 <    -949,  -949,   -48,  -949,   785,  -949,  -949,  -949,  -949,  -949,
1932 <     863,  -949,  -949,  -949,  -949,  1100,  -949,  -949,  -949,  -949,
1933 <    -949,  -949,   -20,  -949,   854,  -949,  -949,  -949,  -949,  1043,
1934 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1935 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1936 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1937 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1938 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1939 <    -949,  -949,   101,  -949,  -949,  -949,   105,  -949,  -949,  -949,
1940 <    -949,  -949,  -949,  -949,   818,  -949,  -949,  -949,  -949,  -949,
1941 <     -21,  -949,  -949,  -949,  -949,  -949,   -17,  -949,  -949,  1133,
2108 <    -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
1913 >    -678,  -678,  -678,  -451,  -298,  -677,  -595,  -678,  -678,   890,
1914 >    -678,  -678,  -678,  -678,   761,  -678,  -678,  -678,    16,  -678,
1915 >      17,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1916 >    -678,  -678,  -678,  -678,  -678,  -678,   923,  -678,  -678,  -678,
1917 >    -678,  -678,   908,  -678,  -678,  -678,  -678,    50,  -678,  -678,
1918 >    -678,  -678,  -678,  -224,  -678,  -678,  -678,   505,  -678,  -678,
1919 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -196,  -678,  -678,
1920 >    -678,  -192,  -678,  -678,  -678,   750,  -678,  -678,  -678,  -678,
1921 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1922 >    -678,  -678,  -678,  -678,  -153,  -678,   561,  -678,  -678,  -678,
1923 >     -17,  -678,  -678,  -678,  -678,  -678,   615,  -678,  -678,  -678,
1924 >    -678,  -678,  -678,  -678,  -112,  -678,  -678,  -678,  -678,  -678,
1925 >    -678,   556,  -678,  -678,  -678,  -678,  -678,   791,  -678,  -678,
1926 >    -678,  -678,   539,  -678,  -678,  -678,  -678,  -678,  -126,  -678,
1927 >    -678,  -678,   527,  -678,  -678,  -678,  -678,  -125,  -678,  -678,
1928 >    -678,   758,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1929 >    -678,  -678,  -100,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1930 >    -678,  -678,  -678,   -97,  -678,   616,  -678,  -678,  -678,  -678,
1931 >    -678,   715,  -678,  -678,  -678,  -678,   973,  -678,  -678,  -678,
1932 >    -678,  -678,  -678,   -87,  -678,   705,  -678,  -678,  -678,  -678,
1933 >     924,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1934 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1935 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1936 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1937 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    54,  -678,
1938 >    -678,  -678,    47,  -678,  -678,  -678,  -678,  -678,  1002,  -678,
1939 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1940 >    -678,  -678,  -678,  -678,  -678,   889,  -678,  -678,  -678,  -678,
1941 >    -678,  -678
1942   };
1943  
1944   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1945     positive, shift that token.  If negative, reduce the rule which
1946 <   number is the opposite.  If zero, do what YYDEFACT says.
1947 <   If YYTABLE_NINF, syntax error.  */
1948 < #define YYTABLE_NINF -1
2118 < static const yytype_uint16 yytable[] =
1946 >   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1947 > #define YYTABLE_NINF -108
1948 > static const yytype_int16 yytable[] =
1949   {
1950 <     567,   568,   704,   122,    45,    46,   122,   574,  1132,  1138,
1951 <    1312,   128,  1313,  1160,    47,   272,  1125,    48,   129,   130,
1952 <    1126,   357,   131,    67,  1127,   508,   115,  1314,  1128,   132,
1953 <     476,  1315,    67,  1129,  1130,  1131,  1182,   653,   133,   655,
1954 <    1183,  1244,   134,   135,  1248,  1245,   509,  1250,  1249,   136,
1955 <      52,  1251,   668,   137,   138,   671,   139,    54,   367,    68,
1956 <     676,   272,   140,   981,   982,   983,   695,   696,    68,    69,
1957 <     541,   687,   688,    59,   690,   467,   550,   357,    69,    60,
1958 <     141,   142,   477,   701,   702,   143,   705,   697,   698,  1068,
1959 <    1069,   123,   144,   467,   123,    76,   145,   146,   147,  1103,
1960 <    1104,   148,  1253,   550,   149,   150,  1254,    77,    63,   358,
1961 <      64,  1266,   478,   433,   151,  1267,   434,   581,   479,   448,
1962 <     152,   153,   118,   154,   155,   156,   157,   158,    78,    79,
1963 <     121,  1268,   273,   300,    80,  1269,    81,   127,   159,   582,
1964 <     583,   367,    70,   241,   449,   279,   584,   160,   510,   161,
1965 <     162,    70,   163,   508,  1305,   164,   165,   435,  1306,   166,
1966 <     436,   610,   274,   611,   242,   358,   612,   450,  1161,   301,
1967 <     167,   451,  1162,   243,   509,   359,   244,   368,   273,   511,
1968 <     703,   480,   764,   795,   541,   613,   614,   282,   327,   542,
1969 <      82,    83,   168,   283,   169,   551,  1133,  1139,   170,    84,
1970 <      85,   328,   171,   172,   173,   174,   175,   765,   274,   615,
1971 <     176,   177,   369,   616,   437,   329,   302,   330,   355,   178,
1972 <      86,    87,   551,   585,   586,   587,   331,   245,   588,   468,
1973 <     766,   359,   438,   284,   767,  1307,   589,    88,    89,  1308,
1974 <     332,   335,  1316,   617,   370,   618,   285,   468,    90,   590,
1975 <     591,   179,   303,   180,   304,   305,   543,    91,   619,   181,
1976 <     368,   469,   552,   365,   182,   452,   592,   593,   286,   183,
1977 <     287,   431,   288,   289,   453,   454,   510,   487,   336,   469,
1978 <     620,   246,   247,   248,   249,   250,   251,   252,   253,   552,
1979 <     740,   290,   333,   337,   594,   369,   338,   306,  1310,   307,
1980 <     308,   768,  1311,   542,   339,   340,   764,   511,   455,   448,
1981 <     341,   342,   621,   343,   300,   309,  1326,   544,   650,   476,
1982 <    1327,   505,   470,   502,   344,   345,   622,   370,   769,   254,
1983 <     814,   765,   526,   346,   449,   733,   819,   643,   566,   623,
1984 <     470,   347,   348,   349,    92,    93,    94,   770,  1345,   350,
1985 <     301,   356,  1346,   351,   766,   353,   352,   450,   767,   310,
1986 <     439,   451,   364,   376,   255,   433,   456,   377,   434,   378,
1987 <     543,   477,   993,   717,   379,   557,   380,   863,   381,   728,
1988 <     829,   830,   831,   832,   833,   382,   383,   311,   312,   384,
1989 <     385,   386,   387,   539,   388,   561,   389,   302,   390,   391,
1990 <     392,   478,  1083,  1084,  1085,  1086,  1087,   479,   393,   435,
1991 <     394,   395,   436,   787,   396,   624,   128,   771,   397,   398,
1992 <     399,   880,   400,   129,   130,   768,   401,   131,   402,   772,
1993 <     403,   544,   404,   303,   132,   304,   305,   405,   406,  1100,
1994 <     407,   409,  1048,   133,   507,   256,   558,   134,   135,   411,
1995 <     412,   413,   769,   524,   136,   452,   414,   415,   137,   138,
1996 <     416,   139,   417,   418,   453,   454,   437,   140,   419,   420,
1997 <     480,   770,   421,   422,   423,   424,   425,   426,   306,   257,
1998 <     307,   308,   427,   428,   438,   141,   142,   500,   429,   559,
1999 <     143,   430,   488,   489,   490,   491,   309,   144,   455,   492,
2000 <     493,   145,   146,   147,   494,   495,   148,   496,   497,   149,
2001 <     150,   498,  1090,   499,   503,   504,   517,   518,   519,   151,
2002 <    1098,  1099,   610,   520,   611,   152,   153,   612,   154,   155,
2003 <     156,   157,   158,   521,   522,   523,   527,   528,   529,   530,
2004 <     310,   771,   531,   159,   532,   533,   613,   614,   535,   536,
2005 <     537,   538,   160,   772,   161,   162,   456,   163,  1328,   560,
2006 <     164,   165,   562,   563,   166,   564,   565,   566,   311,   312,
2007 <     615,   569,   570,   571,   616,   167,   572,   573,   575,   245,
2008 <     750,   751,   752,   753,   754,   755,   756,   576,   577,   578,
2009 <     579,  1329,   580,   641,   642,   645,   647,   168,   646,   169,
2010 <     648,   652,  1330,   170,   617,   654,   618,   171,   172,   173,
2011 <     174,   175,   439,   656,   657,   176,   177,   658,  1331,   619,
2012 <     659,   660,   661,   662,   178,  1332,   663,   664,   665,   666,
2013 <    1333,   667,  1334,   246,   247,   248,   249,   250,   251,   252,
2014 <     253,   620,   669,    76,   670,  1335,   672,   673,   674,   675,
2015 <    1255,  1256,   679,   677,   678,    77,   179,   680,   180,   681,
2016 <     682,   683,  1185,   684,   181,   283,   685,   691,   686,   182,
2017 <       2,     3,   689,   621,   183,     4,    78,    79,  1336,   703,
2018 <    1257,   254,    80,   712,    81,   692,   693,   622,   710,   694,
2019 <     713,   699,     5,   715,  1337,   719,     6,  1258,   700,     7,
2020 <     623,   706,   707,   708,  1259,   284,     8,   709,   742,   735,
2021 <     743,   716,  1338,   744,  1339,  1340,   255,   720,   285,  1200,
2022 <     721,     9,   723,  1260,   745,   724,   746,   581,   725,   726,
2023 <     727,   730,   747,    10,    11,   732,    12,   737,    82,    83,
2024 <     286,  1186,   287,    13,   288,   289,   738,    84,    85,   582,
2025 <     583,  1261,   748,   739,   749,   757,   584,   758,   759,  1262,
2026 <      14,   761,   760,   290,   762,   789,   784,   763,    86,    87,
2027 <      15,   783,    16,  1187,   790,   785,   624,   791,   786,   792,
2028 <     793,   794,  1341,   798,   796,    88,    89,   797,  1188,    17,
2029 <     799,   800,   801,   802,   803,   804,    90,   256,  1201,   805,
2030 <    1342,   807,  1263,   806,   808,    91,    18,   809,  1189,  1190,
2031 <    1343,   810,   811,   813,  1191,  1192,  1193,  1194,   816,   817,
2032 <    1122,  1264,   821,   822,   823,   824,   825,  1195,   882,   826,
2033 <    1202,   257,   827,   585,   586,   587,   828,   850,   588,   883,
2034 <     886,    19,   836,   887,   851,  1203,   589,   837,   838,   839,
2035 <      20,    21,   840,   841,   842,    22,    23,   843,   844,   590,
2036 <     591,  1156,   996,   845,   997,  1204,  1205,   846,   852,   847,
2037 <     848,  1206,  1207,  1208,  1209,   849,   592,   593,  1167,   853,
2038 <     854,   855,   856,   857,  1210,   858,   859,   860,   861,   865,
2039 <    1304,   862,    92,    93,    94,   866,   922,   923,   924,   925,
2040 <     926,   501,   927,   928,   594,   929,   930,   931,   867,   994,
2041 <     932,  1000,   868,   869,  1003,   870,   872,   873,   874,   875,
2042 <     933,   934,   935,   876,   936,   937,   938,  1015,   877,   939,
2043 <     878,   879,   940,   944,   945,   946,   947,   948,   884,   949,
2044 <     950,   885,   951,   952,   953,   888,   992,   954,   889,   890,
2045 <     999,   891,  1002,   892,   893,   894,   895,   955,   956,   957,
2046 <     896,   958,   959,   960,   897,   898,   961,   899,   900,   962,
2047 <    1282,  1283,  1284,  1285,  1286,   901,  1287,  1288,   902,  1289,
2048 <    1290,  1291,   903,   904,  1292,   905,  1004,   906,   907,  1005,
2049 <     908,   909,   910,   911,  1293,  1294,  1295,   912,  1296,  1297,
2050 <    1298,   913,   914,  1299,   915,   916,  1300,   917,   918,   919,
2051 <     920,   921,   943,   965,   966,   967,   968,   969,   970,   971,
2052 <     972,   973,   974,   975,   976,   977,  1006,   978,   979,   980,
2053 <     986,   987,   988,   989,   990,   991,  1008,   998,  1010,   995,
2054 <    1007,  1001,  1009,  1013,  1011,  1012,  1014,  1018,  1019,  1020,
2055 <    1021,  1022,  1023,  1024,  1025,  1026,  1050,  1051,  1027,  1052,
2056 <    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
2057 <    1038,  1039,  1076,  1078,  1080,  1040,  1041,  1043,  1044,  1045,
2058 <    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
2059 <    1062,  1063,  1064,  1088,  1065,  1066,  1089,  1067,  1072,  1073,
2060 <    1074,  1075,  1091,  1079,  1092,  1077,  1082,  1081,  1093,  1094,
2061 <    1095,  1096,  1097,  1101,  1102,  1107,  1105,  1106,  1108,  1109,
2062 <    1110,  1111,  1112,  1113,  1117,  1114,  1118,  1115,  1116,  1119,
2063 <    1120,  1121,  1136,  1146,  1137,  1142,  1143,  1144,  1145,  1150,
2234 <    1151,  1152,  1153,  1170,  1154,  1171,  1155,  1159,  1165,  1166,
2235 <    1173,  1174,  1175,  1177,  1232,  1168,  1178,  1172,  1176,  1179,
2236 <    1180,  1181,  1184,  1270,  1275,  1198,   334,  1199,  1213,  1214,
2237 <    1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,   540,  1049,
2238 <    1353,  1352,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
2239 <    1231,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1272,
2240 <    1273,  1274,  1279,  1280,  1281,  1303,   741,  1351,   864,  1324,
2241 <     788,  1271,  1322,  1321,   815,  1347,   820,  1350,  1348,  1323,
2242 <     881,   506,  1349,   644,   366,  1318,   651,   432,   354,  1247,
2243 <    1320,  1246,  1319,     0,     0,     0,     0,     0,   729,     0,
2244 <     525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2245 <       0,     0,     0,     0,     0,     0,     0,   734,   718
1950 >     802,   803,   571,   572,    47,   460,    48,   801,   236,    67,
1951 >     579,   980,   544,  1025,   509,   981,   286,    52,   982,   110,
1952 >    1044,   544,   983,    54,  1045,  1072,    58,   510,    59,   553,
1953 >     371,  1046,    68,   291,   509,  1047,    62,   116,    63,    69,
1954 >     381,    66,   117,   118,   237,   110,   220,   510,   119,  1172,
1955 >     227,  1174,   469,  1173,   286,  1175,   120,   490,   238,   239,
1956 >     240,   241,   121,   220,   122,   123,   124,   371,  1178,   227,
1957 >     460,   125,  1179,   491,   107,   251,   242,   126,   127,   111,
1958 >     128,   129,   130,    45,    46,  1180,   131,   470,   492,  1181,
1959 >     372,   132,   493,   627,   628,   133,   134,    70,   252,   135,
1960 >     545,   635,  1189,   637,   287,   111,   511,   471,   136,   545,
1961 >     644,   108,   472,   647,   109,   137,   138,   554,   139,   140,
1962 >     141,   142,   143,   461,   658,   659,   511,   372,   382,   115,
1963 >     942,   253,   512,   144,   670,   671,   228,   673,   217,   145,
1964 >     146,   147,   287,   148,   218,   494,   149,   150,   373,   219,
1965 >     151,   234,   512,   553,   462,   228,    76,   313,   383,  1073,
1966 >     235,   546,   229,   254,  1074,   255,   256,   473,   495,  1182,
1967 >     546,   314,   315,  1183,   284,   316,    77,    78,   555,   739,
1968 >     740,   229,    79,   152,   496,   373,   942,   153,   461,   384,
1969 >     154,   155,   156,   157,   158,  1026,   285,   159,   160,   381,
1970 >     441,   257,   292,   258,   259,   260,   261,   293,  1192,   294,
1971 >     463,   342,  1193,   343,   297,   344,   442,   547,   943,   462,
1972 >     262,    80,    81,   524,   295,   729,   547,   345,    82,    83,
1973 >      84,   443,   317,   318,   319,   444,   757,   320,   161,   162,
1974 >     163,   554,   346,   164,   263,   321,   347,   497,   165,   722,
1975 >      85,    86,   439,   221,   264,   624,   322,   323,   469,  -107,
1976 >     379,   482,   498,    87,    88,   488,   348,   699,   349,   561,
1977 >     221,   324,   716,    89,   943,   463,  -107,   298,   350,   944,
1978 >     480,    90,   617,   265,   266,   692,    67,   382,   792,   299,
1979 >     542,  1194,   570,   470,   484,  1195,   800,  1196,   325,   351,
1980 >    1198,  1197,   555,   485,  1199,  1206,  1013,  1014,  1015,    68,
1981 >    1221,   445,   300,   471,  1222,   301,    69,   383,   472,   446,
1982 >     447,   997,   998,   999,  1000,  1001,   352,  1207,   302,  1208,
1983 >     772,   773,   774,   775,   776,   944,  1169,  1170,  1171,   326,
1984 >     664,   665,   945,   666,   667,  1086,   743,   744,   384,   303,
1985 >     116,   448,   304,   353,   305,   117,   118,   806,   807,   306,
1986 >     307,   119,   308,   309,   310,   378,   390,  1209,   762,   120,
1987 >     563,   311,   597,   473,    70,   121,   391,   122,   123,   124,
1988 >     354,   392,   393,   394,   125,   395,   396,   397,   251,   236,
1989 >     126,   127,   398,   128,   129,   130,   801,   399,   945,   131,
1990 >     400,   401,   526,   564,   132,   449,   402,   403,   133,   134,
1991 >     404,   252,   135,   405,   406,   687,   565,   566,   407,   355,
1992 >     342,   136,   343,   408,   344,   237,   613,   490,   137,   138,
1993 >     409,   139,   140,   141,   142,   143,   345,  1210,  1211,   238,
1994 >     239,   240,   241,   491,   253,   410,   144,   411,   412,   441,
1995 >     413,   346,   145,   146,   147,   347,   148,   242,   492,   149,
1996 >     150,   414,   493,   151,   415,   442,   416,   417,   418,   420,
1997 >     422,  1212,   423,   424,   425,   348,   254,   349,   255,   256,
1998 >     443,   426,   427,   567,   444,   428,   429,   350,  1090,   430,
1999 >    1190,   431,   432,   433,   434,   435,   152,   436,   437,   438,
2000 >     153,   481,   486,   154,   155,   156,   157,   158,   351,  1091,
2001 >     159,   160,   487,   518,   257,   494,   258,   259,   260,   261,
2002 >     519,   520,   521,   522,  1092,   523,   527,   528,   529,   530,
2003 >     531,  1093,   532,   262,   533,   352,   534,   535,   495,   536,
2004 >     537,   538,   539,   540,   541,   560,   568,   582,  1094,   569,
2005 >    1050,   161,   162,   163,   496,   570,   164,   263,   573,   574,
2006 >     445,   165,   353,   575,   576,   577,   578,   264,   446,   447,
2007 >    1051,  1095,   580,   581,   583,   584,   585,   599,  1096,   586,
2008 >    1052,     2,     3,   587,   588,     4,  1053,   589,   590,   354,
2009 >    1097,   591,   592,   593,   594,     5,   265,   266,     6,     7,
2010 >     448,   595,  1054,   596,     8,   619,   620,  1098,  1099,  1100,
2011 >     600,   601,   602,   603,   605,     9,   606,   497,   607,    10,
2012 >      11,   608,   609,   313,   857,   610,   611,  1055,   355,    12,
2013 >     612,   626,   498,   615,   616,  1056,   621,   314,   315,   622,
2014 >     629,   316,   630,    13,   631,   632,   633,   638,   634,   636,
2015 >     639,    14,    15,   640,   449,   641,   642,  1101,   643,   645,
2016 >     880,   646,   648,   649,   650,   651,  1102,   652,   653,    16,
2017 >     654,  1103,   655,  1057,   656,   657,   660,  1104,   661,   662,
2018 >     663,  1105,   668,    17,  1106,   669,   672,   674,   677,  1107,
2019 >    1058,   675,   676,   678,  1114,  1108,   694,   679,   317,   318,
2020 >     319,   701,   704,   320,   680,   682,   705,   726,   702,   683,
2021 >     684,   321,   685,   686,   724,   703,    18,   725,   689,   691,
2022 >     696,  1143,   322,   323,   697,    19,    20,   706,  1157,    21,
2023 >      22,   698,   708,   707,   709,   727,  1059,   324,   858,   859,
2024 >     860,   861,   862,   711,   863,   864,   718,   865,   866,   867,
2025 >     728,   730,   868,   712,   869,   870,   713,   871,   715,   872,
2026 >     732,   873,   874,   719,   325,   875,   731,   720,   721,   733,
2027 >     734,   876,   735,   736,   881,   882,   883,   884,   885,   737,
2028 >     886,   887,    23,   888,   889,   890,   738,   747,   891,   748,
2029 >     892,   893,  1144,   894,   749,   895,   750,   896,   897,  1158,
2030 >     751,   898,   752,   753,   754,   326,   764,   899,  1115,  1116,
2031 >    1117,  1118,  1119,    76,  1120,  1121,   756,  1122,  1123,  1124,
2032 >     759,  1145,  1125,   790,  1126,  1127,   760,  1128,  1159,  1129,
2033 >    1146,  1130,  1131,    77,    78,  1132,  1147,  1160,   765,    79,
2034 >     766,  1133,   767,  1161,   768,   769,   770,   771,   779,   780,
2035 >    1148,   781,  1149,  1150,   782,   783,   784,  1162,   791,  1163,
2036 >    1164,   785,  1151,   786,   793,   787,   788,   794,  1152,  1165,
2037 >     795,   796,   797,   789,   798,  1166,   799,   801,    80,    81,
2038 >     804,   805,   809,   808,   810,    82,    83,    84,   815,   819,
2039 >     811,   812,   822,   813,   826,   823,   814,   816,   817,   818,
2040 >     820,   821,   824,   825,   921,   827,   828,    85,    86,   829,
2041 >     922,   830,   831,   832,   833,   834,   835,   836,   837,   838,
2042 >      87,    88,   839,   840,   841,   842,   843,   844,   845,   846,
2043 >      89,   847,   848,   849,   850,   851,   852,   853,    90,   924,
2044 >     854,   855,   856,   879,   902,   903,   904,   905,   906,   907,
2045 >     908,   909,   910,   911,   912,   913,   914,   915,   916,   917,
2046 >     918,   919,   920,   925,   926,   927,   923,   928,   929,   930,
2047 >     931,   932,   933,   935,   934,   936,   937,   940,   941,   953,
2048 >     954,  1041,   951,   956,   952,   957,   958,   960,   955,   962,
2049 >     963,   964,   989,   991,   296,   993,  1087,  1140,  1223,  1218,
2050 >    1141,  1217,  1184,  1068,   717,   961,   959,   965,   966,   967,
2051 >     968,   969,   970,   971,   972,   973,   974,   975,   976,   977,
2052 >     978,   979,   984,   985,   986,   987,   988,  1187,   543,   992,
2053 >    1204,   990,   995,   994,   996,  1002,   700,  1080,  1003,  1004,
2054 >    1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,  1019,
2055 >    1020,  1021,  1022,  1023,  1024,  1029,  1030,  1031,  1032,  1033,
2056 >    1034,  1035,  1079,  1185,  1036,   688,  1037,  1202,  1038,   723,
2057 >    1039,  1219,  1040,  1200,  1220,  1048,  1049,   598,  1062,   562,
2058 >    1063,   693,  1064,   763,  1203,   380,  1065,   758,  1201,   618,
2059 >     440,   625,  1176,   312,  1066,  1067,     0,  1071,  1077,  1078,
2060 >    1082,  1177,     0,  1088,  1083,  1085,  1089,  1111,  1112,  1113,
2061 >    1136,  1137,  1138,  1139,   614,  1142,  1155,  1156,     0,  1186,
2062 >     489,  1191,  1205,  1188,  1215,     0,  1216,     0,     0,     0,
2063 >     483,     0,   525
2064   };
2065  
2066 + #define yypact_value_is_default(Yystate) \
2067 +  (!!((Yystate) == (-678)))
2068 +
2069 + #define yytable_value_is_error(Yytable_value) \
2070 +  YYID (0)
2071 +
2072   static const yytype_int16 yycheck[] =
2073   {
2074 <     340,   341,   425,     1,   260,   261,     1,   347,    11,    11,
2075 <      10,     1,    12,    76,   262,     1,   260,   262,     8,     9,
2076 <     264,     1,    12,     1,   260,     1,   153,    27,   264,    19,
2077 <       1,    31,     1,   981,   982,   983,   260,   377,    28,   379,
2078 <     264,   260,    32,    33,   260,   264,    22,   260,   264,    39,
2079 <     262,   264,   392,    43,    44,   395,    46,   262,     1,    37,
2080 <     400,     1,    52,    14,    15,    16,   197,   198,    37,    47,
2081 <       1,   411,   412,   262,   414,     1,     1,     1,    47,   262,
2082 <      70,    71,    53,   423,   424,    75,   426,   197,   198,   169,
2083 <     170,    89,    82,     1,    89,     1,    86,    87,    88,   216,
2084 <     217,    91,   260,     1,    94,    95,   264,    13,   262,    89,
2085 <     262,   260,    83,     1,   104,   264,     4,     1,    89,     1,
2086 <     110,   111,   153,   113,   114,   115,   116,   117,    34,    35,
2087 <     262,   260,   118,     1,    40,   264,    42,   262,   128,    23,
2088 <      24,     1,   120,   262,    26,   153,    30,   137,   124,   139,
2089 <     140,   120,   142,     1,   260,   145,   146,    45,   264,   149,
2090 <      48,     1,   148,     3,   262,    89,     6,    49,   231,    37,
2091 <     160,    53,   235,   262,    22,   155,   262,   120,   118,   155,
2092 <     131,   152,     1,   523,     1,    25,    26,   262,   262,   120,
2093 <      96,    97,   182,     1,   184,   120,   199,   199,   188,   105,
2094 <     106,   262,   192,   193,   194,   195,   196,    26,   148,    49,
2095 <     200,   201,   155,    53,   102,   260,    84,   263,   262,   209,
2096 <     126,   127,   120,   107,   108,   109,   263,     1,   112,   155,
2097 <      49,   155,   120,    41,    53,   260,   120,   143,   144,   264,
2098 <     263,   263,   242,    83,   187,    85,    54,   155,   154,   133,
2099 <     134,   241,   120,   243,   122,   123,   187,   163,    98,   249,
2100 <     120,   187,   187,   261,   254,   147,   150,   151,    76,   259,
2101 <      78,   261,    80,    81,   156,   157,   124,   260,   263,   187,
2102 <     120,    55,    56,    57,    58,    59,    60,    61,    62,   187,
2103 <     261,    99,   261,   263,   178,   155,   263,   165,   260,   167,
2104 <     168,   120,   264,   120,   263,   263,     1,   155,   190,     1,
2105 <     263,   263,   152,   263,     1,   183,   260,   248,   261,     1,
2106 <     264,   261,   248,   260,   263,   263,   166,   187,   147,   103,
2107 <     261,    26,   260,   263,    26,   261,   261,   261,   131,   179,
2108 <     248,   263,   263,   263,   250,   251,   252,   166,   260,   263,
2109 <      37,   262,   264,   263,    49,   261,   263,    49,    53,   227,
2110 <     248,    53,   263,   263,   138,     1,   248,   263,     4,   263,
2111 <     187,    53,   712,   261,   263,   153,   263,   261,   263,   261,
2112 <     173,   174,   175,   176,   177,   263,   263,   255,   256,   263,
2113 <     263,   263,   263,   261,   263,   197,   263,    84,   263,   263,
2114 <     263,    83,   829,   830,   831,   832,   833,    89,   263,    45,
2115 <     263,   263,    48,   261,   263,   255,     1,   236,   263,   263,
2116 <     263,   261,   263,     8,     9,   120,   263,    12,   263,   248,
2117 <     263,   248,   263,   120,    19,   122,   123,   263,   263,   862,
2118 <     263,   263,   261,    28,   262,   219,   153,    32,    33,   263,
2119 <     263,   263,   147,   261,    39,   147,   263,   263,    43,    44,
2120 <     263,    46,   263,   263,   156,   157,   102,    52,   263,   263,
2121 <     152,   166,   263,   263,   263,   263,   263,   263,   165,   253,
2122 <     167,   168,   263,   263,   120,    70,    71,   261,   263,   153,
2123 <      75,   263,   263,   263,   263,   263,   183,    82,   190,   263,
2124 <     263,    86,    87,    88,   263,   263,    91,   263,   263,    94,
2125 <      95,   263,   852,   263,   263,   263,   263,   263,   263,   104,
2126 <     860,   861,     1,   263,     3,   110,   111,     6,   113,   114,
2127 <     115,   116,   117,   263,   263,   263,   263,   263,   263,   263,
2128 <     227,   236,   263,   128,   263,   263,    25,    26,   263,   263,
2129 <     263,   263,   137,   248,   139,   140,   248,   142,     5,   260,
2130 <     145,   146,   131,   131,   149,   197,   197,   131,   255,   256,
2131 <      49,   131,   131,   197,    53,   160,   197,   131,   197,     1,
2132 <     220,   221,   222,   223,   224,   225,   226,   197,   197,   197,
2133 <     197,    38,   260,   263,   263,   153,   263,   182,   260,   184,
2134 <     263,   197,    49,   188,    83,   197,    85,   192,   193,   194,
2135 <     195,   196,   248,   131,   153,   200,   201,   131,    65,    98,
2136 <     197,   197,   131,   153,   209,    72,   197,   131,   131,   131,
2137 <      77,   197,    79,    55,    56,    57,    58,    59,    60,    61,
2138 <      62,   120,   197,     1,   197,    92,   153,   197,   131,   131,
2139 <      20,    21,   153,   131,   131,    13,   241,   131,   243,   131,
2140 <     197,   197,    92,   263,   249,     1,   197,   153,   263,   254,
2141 <       0,     1,   197,   152,   259,     5,    34,    35,   125,   131,
2142 <      50,   103,    40,   263,    42,   197,   197,   166,   260,   197,
2143 <     263,   197,    22,   263,   141,   260,    26,    67,   197,    29,
2144 <     179,   197,   197,   197,    74,    41,    36,   197,   153,   260,
2145 <     153,   263,   159,   153,   161,   162,   138,   263,    54,    92,
2146 <     263,    51,   263,    93,   153,   263,   153,     1,   263,   263,
2147 <     263,   263,   153,    63,    64,   263,    66,   263,    96,    97,
2148 <      76,   171,    78,    73,    80,    81,   263,   105,   106,    23,
2149 <      24,   121,   153,   263,   153,   153,    30,   153,   197,   129,
2150 <      90,   153,   260,    99,   153,   197,   263,   260,   126,   127,
2151 <     100,   260,   102,   203,   197,   263,   255,   197,   263,   153,
2152 <     197,   197,   229,   197,   260,   143,   144,   153,   218,   119,
2153 <     153,   153,   153,   153,   153,   263,   154,   219,   171,   153,
2154 <     247,   153,   172,   131,   153,   163,   136,   260,   238,   239,
2155 <     257,   260,   263,   263,   244,   245,   246,   247,   260,   263,
2156 <     158,   191,   260,   260,   260,   260,   260,   257,   153,   260,
2157 <     203,   253,   260,   107,   108,   109,   260,   263,   112,   153,
2158 <     153,   171,   260,   153,   263,   218,   120,   260,   260,   260,
2159 <     180,   181,   260,   260,   260,   185,   186,   260,   260,   133,
2160 <     134,   158,   153,   260,   153,   238,   239,   260,   263,   260,
2161 <     260,   244,   245,   246,   247,   260,   150,   151,   202,   263,
2162 <     263,   263,   263,   263,   257,   263,   263,   263,   263,   260,
2163 <    1183,   263,   250,   251,   252,   263,   204,   205,   206,   207,
2164 <     208,   258,   210,   211,   178,   213,   214,   215,   263,   197,
2165 <     218,   197,   263,   263,   131,   263,   263,   263,   263,   263,
2166 <     228,   229,   230,   263,   232,   233,   234,   131,   263,   237,
2167 <     263,   263,   240,   204,   205,   206,   207,   208,   260,   210,
2168 <     211,   260,   213,   214,   215,   263,   263,   218,   260,   260,
2169 <     153,   260,   153,   260,   260,   260,   260,   228,   229,   230,
2170 <     260,   232,   233,   234,   260,   260,   237,   260,   260,   240,
2171 <     204,   205,   206,   207,   208,   260,   210,   211,   260,   213,
2172 <     214,   215,   260,   260,   218,   260,   153,   260,   260,   153,
2173 <     260,   260,   260,   260,   228,   229,   230,   260,   232,   233,
2174 <     234,   260,   260,   237,   260,   260,   240,   260,   260,   260,
2175 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2176 <     260,   260,   260,   260,   260,   260,   153,   260,   260,   260,
2177 <     260,   260,   260,   260,   260,   260,   153,   260,   153,   263,
2178 <     260,   263,   263,   153,   260,   263,   153,   260,   260,   260,
2179 <     260,   260,   260,   260,   260,   260,   153,   153,   260,   153,
2180 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2181 <     260,   260,   153,   153,   153,   263,   263,   263,   263,   263,
2182 <     263,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2183 <     260,   260,   260,   131,   260,   260,   131,   260,   260,   260,
2184 <     260,   260,   131,   260,   131,   263,   260,   263,   131,   131,
2185 <     153,   131,   131,   260,   153,   197,   153,   153,   263,   153,
2186 <     153,   153,   153,   131,   260,   153,   260,   153,   153,   260,
2187 <     260,   260,   260,   130,   260,   260,   260,   260,   260,   260,
2364 <     260,   260,   260,   153,   260,   197,   260,   260,   260,   260,
2365 <     153,   153,   153,   153,   130,   264,   260,   263,   263,   260,
2366 <     260,   260,   260,   131,   130,   260,    71,   260,   260,   260,
2367 <     260,   260,   260,   260,   260,   260,   260,   260,   313,   773,
2368 <    1346,  1327,   260,   260,   260,   260,   260,   260,   260,   260,
2369 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2370 <     260,   260,   260,   260,   260,   260,   482,  1325,   595,  1269,
2371 <     512,  1168,  1254,  1252,   545,  1306,   553,  1311,  1308,  1267,
2372 <     625,   275,  1309,   360,   124,  1245,   372,   184,    95,  1128,
2373 <    1251,  1126,  1249,    -1,    -1,    -1,    -1,    -1,   457,    -1,
2374 <     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2375 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   440
2074 >     595,   596,   300,   301,   217,     1,   217,    99,     1,     1,
2075 >     308,   215,     1,     8,     1,   219,     1,   217,   215,     1,
2076 >     215,     1,   219,   217,   219,    51,   217,    14,   217,     1,
2077 >       1,   215,    24,   215,     1,   219,   217,     1,   217,    31,
2078 >       1,   217,     6,     7,    37,     1,     1,    14,    12,   215,
2079 >       1,   215,     1,   219,     1,   219,    20,     1,    51,    52,
2080 >      53,    54,    26,     1,    28,    29,    30,     1,   215,     1,
2081 >       1,    35,   219,    17,   217,     1,    69,    41,    42,    61,
2082 >      44,    45,    46,   215,   216,   215,    50,    36,    32,   219,
2083 >      61,    55,    36,   391,   392,    59,    60,    89,    24,    63,
2084 >      89,   399,   194,   401,    89,    61,    93,    56,    72,    89,
2085 >     408,   217,    61,   411,   217,    79,    80,    89,    82,    83,
2086 >      84,    85,    86,   119,   422,   423,    93,    61,    89,   217,
2087 >       1,    57,   119,    97,   432,   433,    87,   435,   217,   103,
2088 >     104,   105,    89,   107,   217,    89,   110,   111,   119,   217,
2089 >     114,   217,   119,     1,   150,    87,     1,     1,   119,   185,
2090 >     217,   150,   113,    89,   190,    91,    92,   116,   112,   215,
2091 >     150,    15,    16,   219,   217,    19,    21,    22,   150,   133,
2092 >     134,   113,    27,   147,   128,   119,     1,   151,   119,   150,
2093 >     154,   155,   156,   157,   158,   190,   217,   161,   162,     1,
2094 >       1,   127,   218,   129,   130,   131,   132,   218,   215,   218,
2095 >     206,     1,   219,     3,   218,     5,    17,   206,    89,   150,
2096 >     146,    66,    67,   216,   216,   523,   206,    17,    73,    74,
2097 >      75,    32,    76,    77,    78,    36,   216,    81,   202,   203,
2098 >     204,    89,    32,   207,   170,    89,    36,   191,   212,   216,
2099 >      95,    96,   216,   208,   180,   216,   100,   101,     1,   214,
2100 >     216,   216,   206,   108,   109,   216,    56,   216,    58,   216,
2101 >     208,   115,   216,   118,    89,   206,   214,   218,    68,   150,
2102 >     215,   126,   216,   209,   210,   216,     1,    89,   586,   218,
2103 >     216,   215,    99,    36,   214,   219,   594,   215,   142,    89,
2104 >     215,   219,   150,   215,   219,    40,     9,    10,    11,    24,
2105 >     215,   112,   218,    56,   219,   218,    31,   119,    61,   120,
2106 >     121,   772,   773,   774,   775,   776,   116,    62,   218,    64,
2107 >     137,   138,   139,   140,   141,   150,  1013,  1014,  1015,   183,
2108 >     159,   160,   213,   159,   160,   216,   133,   134,   150,   218,
2109 >       1,   152,   218,   143,   218,     6,     7,   177,   178,   218,
2110 >     218,    12,   218,   218,   218,   218,   218,   102,   216,    20,
2111 >     117,   216,   216,   116,    89,    26,   218,    28,    29,    30,
2112 >     170,   218,   218,   218,    35,   218,   218,   218,     1,     1,
2113 >      41,    42,   218,    44,    45,    46,    99,   218,   213,    50,
2114 >     218,   218,   215,   117,    55,   206,   218,   218,    59,    60,
2115 >     218,    24,    63,   218,   218,   216,   117,   215,   218,   209,
2116 >       1,    72,     3,   218,     5,    37,   216,     1,    79,    80,
2117 >     218,    82,    83,    84,    85,    86,    17,   172,   173,    51,
2118 >      52,    53,    54,    17,    57,   218,    97,   218,   218,     1,
2119 >     218,    32,   103,   104,   105,    36,   107,    69,    32,   110,
2120 >     111,   218,    36,   114,   218,    17,   218,   218,   218,   218,
2121 >     218,   206,   218,   218,   218,    56,    89,    58,    91,    92,
2122 >      32,   218,   218,    99,    36,   218,   218,    68,     4,   218,
2123 >    1085,   218,   218,   218,   218,   218,   147,   218,   218,   218,
2124 >     151,   218,   218,   154,   155,   156,   157,   158,    89,    25,
2125 >     161,   162,   218,   218,   127,    89,   129,   130,   131,   132,
2126 >     218,   218,   218,   218,    40,   218,   218,   218,   218,   218,
2127 >     218,    47,   218,   146,   218,   116,   218,   218,   112,   218,
2128 >     218,   218,   218,   218,   218,   218,    99,   215,    64,   159,
2129 >      13,   202,   203,   204,   128,    99,   207,   170,    99,    99,
2130 >     112,   212,   143,    99,   159,   159,    99,   180,   120,   121,
2131 >      33,    87,   159,   159,   215,   218,   218,   215,    94,   218,
2132 >      43,     0,     1,   218,   218,     4,    49,   218,   218,   170,
2133 >     106,   218,   218,   218,   218,    14,   209,   210,    17,    18,
2134 >     152,   218,    65,   218,    23,   117,   215,   123,   124,   125,
2135 >     218,   218,   218,   218,   218,    34,   218,   191,   218,    38,
2136 >      39,   218,   218,     1,    51,   218,   218,    90,   209,    48,
2137 >     218,   159,   206,   218,   218,    98,   218,    15,    16,   218,
2138 >      99,    19,   159,    62,   159,    99,   117,    99,   159,   159,
2139 >      99,    70,    71,    99,   206,   159,   159,   173,   159,    99,
2140 >      51,    99,    99,    99,   117,    99,   182,    99,   159,    88,
2141 >     159,   187,   218,   136,   159,   218,   159,   193,   159,   159,
2142 >     159,   197,   159,   102,   200,   159,   117,   159,   215,   205,
2143 >     153,   159,   159,   215,    51,   211,   215,   218,    76,    77,
2144 >      78,   159,   117,    81,   218,   218,   117,   117,   215,   218,
2145 >     218,    89,   218,   218,   159,   217,   135,   159,   218,   218,
2146 >     218,    64,   100,   101,   218,   144,   145,   215,    64,   148,
2147 >     149,   218,   218,   215,   218,   159,   199,   115,   165,   166,
2148 >     167,   168,   169,   218,   171,   172,   215,   174,   175,   176,
2149 >     159,   215,   179,   218,   181,   182,   218,   184,   218,   186,
2150 >     159,   188,   189,   218,   142,   192,   117,   218,   218,   117,
2151 >     117,   198,   117,   117,   165,   166,   167,   168,   169,   117,
2152 >     171,   172,   201,   174,   175,   176,   117,   117,   179,   117,
2153 >     181,   182,   135,   184,    99,   186,   117,   188,   189,   135,
2154 >     117,   192,   215,   215,   218,   183,   117,   198,   165,   166,
2155 >     167,   168,   169,     1,   171,   172,   218,   174,   175,   176,
2156 >     215,   164,   179,    99,   181,   182,   218,   184,   164,   186,
2157 >     173,   188,   189,    21,    22,   192,   179,   173,   215,    27,
2158 >     215,   198,   215,   179,   215,   215,   215,   215,   215,   215,
2159 >     193,   215,   195,   196,   215,   215,   215,   193,    99,   195,
2160 >     196,   215,   205,   215,    99,   215,   215,    99,   211,   205,
2161 >      99,    99,   117,   215,    99,   211,    99,    99,    66,    67,
2162 >     215,   117,   159,   117,   218,    73,    74,    75,    99,   215,
2163 >     117,   117,   215,   117,   218,   215,   117,   117,   117,   117,
2164 >     117,   117,   117,   117,   117,   215,   215,    95,    96,   215,
2165 >     159,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2166 >     108,   109,   215,   215,   215,   215,   215,   215,   215,   215,
2167 >     118,   215,   215,   215,   215,   215,   215,   215,   126,   117,
2168 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2169 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2170 >     215,   215,   215,    99,   117,   117,   218,   117,   215,   117,
2171 >     218,   117,   215,   117,   218,   117,    99,   215,   215,   117,
2172 >     159,   122,   215,   117,   215,   117,   117,   117,   218,   117,
2173 >     117,   117,   117,   117,    71,   117,   946,   981,  1222,  1195,
2174 >     983,  1193,    99,   122,   499,   215,   218,   215,   215,   215,
2175 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2176 >     215,   215,   215,   215,   215,   215,   215,   117,   267,   215,
2177 >    1183,   218,   215,   218,   215,   215,   475,   219,   215,   215,
2178 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2179 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2180 >     215,   215,   163,  1080,   215,   450,   215,  1179,   215,   513,
2181 >     215,  1197,   215,  1173,  1199,   215,   215,   327,   215,   288,
2182 >     215,   465,   215,   556,  1181,   112,   215,   548,  1175,   374,
2183 >     166,   386,  1045,    91,   215,   215,    -1,   215,   215,   215,
2184 >     215,  1047,    -1,   215,   218,   218,   215,   215,   215,   215,
2185 >     215,   215,   215,   215,   356,   215,   215,   215,    -1,   215,
2186 >     230,   215,   215,   218,   215,    -1,   215,    -1,    -1,    -1,
2187 >     222,    -1,   243
2188   };
2189  
2190   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2191     symbol of state STATE-NUM.  */
2192   static const yytype_uint16 yystos[] =
2193   {
2194 <       0,   266,     0,     1,     5,    22,    26,    29,    36,    51,
2195 <      63,    64,    66,    73,    90,   100,   102,   119,   136,   171,
2196 <     180,   181,   185,   186,   267,   272,   277,   295,   301,   316,
2197 <     339,   358,   372,   390,   397,   407,   416,   442,   452,   458,
2198 <     462,   472,   536,   552,   573,   260,   261,   262,   262,   340,
2199 <     417,   453,   262,   463,   262,   537,   373,   443,   359,   262,
2200 <     262,   317,   391,   262,   262,   398,   408,     1,    37,    47,
2201 <     120,   296,   297,   298,   299,   300,     1,    13,    34,    35,
2202 <      40,    42,    96,    97,   105,   106,   126,   127,   143,   144,
2203 <     154,   163,   250,   251,   252,   553,   554,   555,   556,   557,
2204 <     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
2205 <     568,   569,   570,   571,   572,   153,   341,   345,   153,   418,
2206 <     422,   262,     1,    89,   459,   460,   461,   262,     1,     8,
2207 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    46,
2208 <      52,    70,    71,    75,    82,    86,    87,    88,    91,    94,
2209 <      95,   104,   110,   111,   113,   114,   115,   116,   117,   128,
2210 <     137,   139,   140,   142,   145,   146,   149,   160,   182,   184,
2211 <     188,   192,   193,   194,   195,   196,   200,   201,   209,   241,
2212 <     243,   249,   254,   259,   473,   474,   475,   476,   477,   478,
2213 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2214 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
2215 <     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
2216 <     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
2217 <     519,   520,   521,   522,   523,   524,   528,   532,   533,   534,
2218 <     535,   262,   262,   262,   262,     1,    55,    56,    57,    58,
2219 <      59,    60,    61,    62,   103,   138,   219,   253,   302,   303,
2220 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2221 <     314,   315,     1,   118,   148,   273,   274,   275,   276,   153,
2222 <     318,   322,   262,     1,    41,    54,    76,    78,    80,    81,
2223 <      99,   574,   575,   576,   577,   578,   579,   580,   581,   582,
2224 <       1,    37,    84,   120,   122,   123,   165,   167,   168,   183,
2225 <     227,   255,   256,   278,   279,   280,   284,   285,   286,   287,
2226 <     288,   289,   290,   291,   292,   293,   294,   262,   262,   260,
2227 <     263,   263,   263,   261,   297,   263,   263,   263,   263,   263,
2228 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2229 <     263,   263,   263,   261,   554,   262,   262,     1,    89,   155,
2230 <     454,   455,   456,   457,   263,   261,   460,     1,   120,   155,
2231 <     187,   464,   468,   469,   470,   471,   263,   263,   263,   263,
2232 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2233 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2234 <     263,   263,   263,   263,   263,   263,   263,   263,   529,   263,
2235 <     525,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2236 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2237 <     263,   261,   474,     1,     4,    45,    48,   102,   120,   248,
2238 <     538,   539,   540,   541,   542,   546,   547,   548,     1,    26,
2239 <      49,    53,   147,   156,   157,   190,   248,   374,   375,   376,
2240 <     377,   378,   379,   380,   387,   388,   389,     1,   155,   187,
2241 <     248,   444,   448,   449,   450,   451,     1,    53,    83,    89,
2242 <     152,   360,   364,   365,   366,   370,   371,   260,   263,   263,
2243 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2244 <     261,   303,   260,   263,   263,   261,   274,   262,     1,    22,
2245 <     124,   155,   392,   393,   394,   395,   396,   263,   263,   263,
2246 <     263,   263,   263,   263,   261,   575,   260,   263,   263,   263,
2247 <     263,   263,   263,   263,   281,   263,   263,   263,   263,   261,
2248 <     279,     1,   120,   187,   248,   399,   400,   401,   402,   403,
2249 <       1,   120,   187,   409,   410,   411,   412,   153,   153,   153,
2250 <     260,   197,   131,   131,   197,   197,   131,   269,   269,   131,
2251 <     131,   197,   197,   131,   269,   197,   197,   197,   197,   197,
2252 <     260,     1,    23,    24,    30,   107,   108,   109,   112,   120,
2253 <     133,   134,   150,   151,   178,   342,   343,   344,   346,   347,
2254 <     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
2255 <       1,     3,     6,    25,    26,    49,    53,    83,    85,    98,
2256 <     120,   152,   166,   179,   255,   419,   420,   421,   423,   424,
2257 <     425,   426,   427,   428,   429,   436,   437,   438,   439,   440,
2258 <     441,   263,   263,   261,   455,   153,   260,   263,   263,   465,
2259 <     261,   469,   197,   269,   197,   269,   131,   153,   131,   197,
2260 <     197,   131,   153,   197,   131,   131,   131,   197,   269,   197,
2261 <     197,   269,   153,   197,   131,   131,   269,   131,   131,   153,
2262 <     131,   131,   197,   197,   263,   197,   263,   269,   269,   197,
2263 <     269,   153,   197,   197,   197,   197,   198,   197,   198,   197,
2264 <     197,   269,   269,   131,   271,   269,   197,   197,   197,   197,
2265 <     260,   549,   263,   263,   543,   263,   263,   261,   539,   260,
2266 <     263,   263,   381,   263,   263,   263,   263,   263,   261,   375,
2267 <     263,   445,   263,   261,   449,   260,   361,   263,   263,   263,
2268 <     261,   365,   153,   153,   153,   153,   153,   153,   153,   153,
2269 <     220,   221,   222,   223,   224,   225,   226,   153,   153,   197,
2270 <     260,   153,   153,   260,     1,    26,    49,    53,   120,   147,
2271 <     166,   236,   248,   319,   320,   321,   323,   324,   325,   326,
2272 <     327,   328,   332,   260,   263,   263,   263,   261,   393,   197,
2273 <     197,   197,   153,   197,   197,   269,   260,   153,   197,   153,
2274 <     153,   153,   153,   153,   263,   153,   131,   153,   153,   260,
2275 <     260,   263,   404,   263,   261,   400,   260,   263,   413,   261,
2276 <     410,   260,   260,   260,   260,   260,   260,   260,   260,   173,
2277 <     174,   175,   176,   177,   268,   269,   260,   260,   260,   260,
2278 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2279 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2280 <     263,   263,   263,   261,   343,   260,   263,   263,   263,   263,
2281 <     263,   430,   263,   263,   263,   263,   263,   263,   263,   263,
2282 <     261,   420,   153,   153,   260,   260,   153,   153,   263,   260,
2283 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2284 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2285 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2286 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2287 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2288 <     240,   530,   531,   260,   204,   205,   206,   207,   208,   210,
2289 <     211,   213,   214,   215,   218,   228,   229,   230,   232,   233,
2290 <     234,   237,   240,   526,   527,   260,   260,   260,   260,   260,
2291 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2292 <     260,    14,    15,    16,   270,   271,   260,   260,   260,   260,
2293 <     260,   260,   263,   269,   197,   263,   153,   153,   260,   153,
2294 <     197,   263,   153,   131,   153,   153,   153,   260,   153,   263,
2295 <     153,   260,   263,   153,   153,   131,   368,   369,   260,   260,
2296 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2297 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2298 <     263,   263,   333,   263,   263,   263,   329,   263,   261,   320,
2299 <     153,   153,   153,   260,   260,   260,   260,   260,   260,   260,
2300 <     260,   260,   260,   260,   260,   260,   260,   260,   169,   170,
2301 <     282,   283,   260,   260,   260,   260,   153,   263,   153,   260,
2302 <     153,   263,   260,   268,   268,   268,   268,   268,   131,   131,
2303 <     269,   131,   131,   131,   131,   153,   131,   131,   269,   269,
2304 <     271,   260,   153,   216,   217,   153,   153,   197,   263,   153,
2305 <     153,   153,   153,   131,   153,   153,   153,   260,   260,   260,
2306 <     260,   260,   158,   466,   467,   260,   264,   260,   264,   270,
2307 <     270,   270,    11,   199,   550,   551,   260,   260,    11,   199,
2308 <     544,   545,   260,   260,   260,   260,   130,   382,   383,   385,
2309 <     260,   260,   260,   260,   260,   260,   158,   446,   447,   260,
2310 <      76,   231,   235,   362,   363,   260,   260,   202,   264,   367,
2311 <     153,   197,   263,   153,   153,   153,   263,   153,   260,   260,
2312 <     260,   260,   260,   264,   260,    92,   171,   203,   218,   238,
2313 <     239,   244,   245,   246,   247,   257,   405,   406,   260,   260,
2314 <      92,   171,   203,   218,   238,   239,   244,   245,   246,   247,
2315 <     257,   414,   415,   260,   260,   260,   260,   260,   260,   260,
2316 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2505 <     260,   260,   130,   431,   432,   434,   260,   260,   260,   260,
2506 <     260,   260,   260,   260,   260,   264,   531,   527,   260,   264,
2507 <     260,   264,   384,   260,   264,    20,    21,    50,    67,    74,
2508 <      93,   121,   129,   172,   191,   386,   260,   264,   260,   264,
2509 <     131,   369,   260,   260,   260,   130,   334,   335,   337,   260,
2510 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2511 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2512 <     240,   330,   331,   260,   283,   260,   264,   260,   264,   433,
2513 <     260,   264,    10,    12,    27,    31,   242,   435,   467,   551,
2514 <     545,   386,   383,   447,   363,   336,   260,   264,     5,    38,
2515 <      49,    65,    72,    77,    79,    92,   125,   141,   159,   161,
2516 <     162,   229,   247,   257,   338,   260,   264,   406,   415,   435,
2517 <     432,   338,   335,   331
2194 >       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2195 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2196 >     145,   148,   149,   201,   222,   227,   232,   254,   260,   274,
2197 >     292,   309,   323,   338,   345,   349,   359,   368,   388,   398,
2198 >     404,   408,   418,   476,   493,   215,   216,   217,   217,   293,
2199 >     369,   399,   217,   409,   217,   324,   389,   310,   217,   217,
2200 >     275,   339,   217,   217,   350,   360,   217,     1,    24,    31,
2201 >      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2202 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2203 >     126,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2204 >     486,   487,   488,   489,   490,   491,   492,   217,   217,   217,
2205 >       1,    61,   405,   406,   407,   217,     1,     6,     7,    12,
2206 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2207 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2208 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2209 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2210 >     162,   202,   203,   204,   207,   212,   419,   420,   421,   422,
2211 >     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
2212 >     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
2213 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2214 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2215 >     463,   464,   465,   469,   473,   474,   475,   217,   217,   217,
2216 >       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2217 >     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2218 >      53,    54,    69,   494,   495,   496,   497,   498,   499,   500,
2219 >     501,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2220 >     131,   132,   146,   170,   180,   209,   210,   233,   234,   235,
2221 >     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2222 >     250,   251,   252,   253,   217,   217,     1,    89,   346,   347,
2223 >     348,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2224 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2225 >     218,   216,   478,     1,    15,    16,    19,    76,    77,    78,
2226 >      81,    89,   100,   101,   115,   142,   183,   294,   295,   296,
2227 >     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2228 >     307,   308,     1,     3,     5,    17,    32,    36,    56,    58,
2229 >      68,    89,   116,   143,   170,   209,   370,   371,   372,   373,
2230 >     374,   375,   376,   377,   378,   379,   383,   384,   385,   386,
2231 >     387,     1,    61,   119,   400,   401,   402,   403,   218,   216,
2232 >     406,     1,    89,   119,   150,   410,   414,   415,   416,   417,
2233 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2234 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2235 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   470,
2236 >     218,   466,   218,   218,   218,   218,   218,   218,   218,   218,
2237 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   216,
2238 >     420,     1,    17,    32,    36,   112,   120,   121,   152,   206,
2239 >     325,   326,   327,   328,   329,   330,   331,   335,   336,   337,
2240 >       1,   119,   150,   206,   390,   394,   395,   396,   397,     1,
2241 >      36,    56,    61,   116,   311,   315,   316,   317,   321,   322,
2242 >     215,   218,   216,   262,   214,   215,   218,   218,   216,   229,
2243 >       1,    17,    32,    36,    89,   112,   128,   191,   206,   276,
2244 >     277,   278,   279,   280,   281,   282,   283,   284,   288,     1,
2245 >      14,    93,   119,   340,   341,   342,   343,   344,   218,   218,
2246 >     218,   218,   218,   218,   216,   495,   215,   218,   218,   218,
2247 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2248 >     218,   218,   216,   234,     1,    89,   150,   206,   351,   352,
2249 >     353,   354,   355,     1,    89,   150,   361,   362,   363,   364,
2250 >     218,   216,   347,   117,   117,   117,   215,    99,    99,   159,
2251 >      99,   224,   224,    99,    99,    99,   159,   159,    99,   224,
2252 >     159,   159,   215,   215,   218,   218,   218,   218,   218,   218,
2253 >     218,   218,   218,   218,   218,   218,   218,   216,   295,   215,
2254 >     218,   218,   218,   218,   380,   218,   218,   218,   218,   218,
2255 >     218,   218,   218,   216,   371,   218,   218,   216,   401,   117,
2256 >     215,   218,   218,   411,   216,   415,   159,   224,   224,    99,
2257 >     159,   159,    99,   117,   159,   224,   159,   224,    99,    99,
2258 >      99,   159,   159,   159,   224,    99,    99,   224,    99,    99,
2259 >     117,    99,    99,   159,   159,   218,   159,   218,   224,   224,
2260 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2261 >     224,   224,   117,   224,   159,   159,   159,   215,   215,   218,
2262 >     218,   332,   218,   218,   218,   218,   218,   216,   326,   218,
2263 >     391,   218,   216,   395,   215,   312,   218,   218,   218,   216,
2264 >     316,   159,   215,   217,   117,   117,   215,   215,   218,   218,
2265 >     289,   218,   218,   218,   285,   218,   216,   277,   215,   218,
2266 >     218,   218,   216,   341,   159,   159,   117,   159,   159,   224,
2267 >     215,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2268 >     134,   237,   238,   133,   134,   239,   240,   117,   117,    99,
2269 >     117,   117,   215,   215,   218,   356,   218,   216,   352,   215,
2270 >     218,   365,   216,   362,   117,   215,   215,   215,   215,   215,
2271 >     215,   215,   137,   138,   139,   140,   141,   223,   224,   215,
2272 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2273 >      99,    99,   224,    99,    99,    99,    99,   117,    99,    99,
2274 >     224,    99,   226,   226,   215,   117,   177,   178,   117,   159,
2275 >     218,   117,   117,   117,   117,    99,   117,   117,   117,   215,
2276 >     117,   117,   215,   215,   117,   117,   218,   215,   215,   215,
2277 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2278 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2279 >     215,   215,   215,   215,   215,   215,   215,    51,   165,   166,
2280 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2281 >     182,   184,   186,   188,   189,   192,   198,   471,   472,   215,
2282 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2283 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2284 >     467,   468,   215,   215,   215,   215,   215,   215,   215,   215,
2285 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2286 >     215,   117,   159,   218,   117,    99,   117,   117,   117,   215,
2287 >     117,   218,   117,   215,   218,   117,   117,    99,   319,   320,
2288 >     215,   215,     1,    89,   150,   213,   266,   267,   268,   269,
2289 >     270,   215,   215,   117,   159,   218,   117,   117,   117,   218,
2290 >     117,   215,   117,   117,   117,   215,   215,   215,   215,   215,
2291 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2292 >     215,   219,   215,   219,   215,   215,   215,   215,   215,   117,
2293 >     218,   117,   215,   117,   218,   215,   215,   223,   223,   223,
2294 >     223,   223,   215,   215,   215,   215,   215,   215,   215,   215,
2295 >     215,   215,   215,     9,    10,    11,   225,   226,   215,   215,
2296 >     215,   215,   215,   215,   215,     8,   190,   381,   382,   215,
2297 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2298 >     215,   122,   412,   413,   215,   219,   215,   219,   215,   215,
2299 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   199,
2300 >     333,   334,   215,   215,   215,   215,   215,   215,   122,   392,
2301 >     393,   215,    51,   185,   190,   313,   314,   215,   215,   163,
2302 >     219,   318,   215,   218,   271,   218,   216,   267,   215,   215,
2303 >       4,    25,    40,    47,    64,    87,    94,   106,   123,   124,
2304 >     125,   173,   182,   187,   193,   197,   200,   205,   211,   290,
2305 >     291,   215,   215,   215,    51,   165,   166,   167,   168,   169,
2306 >     171,   172,   174,   175,   176,   179,   181,   182,   184,   186,
2307 >     188,   189,   192,   198,   286,   287,   215,   215,   215,   215,
2308 >     238,   240,   215,    64,   135,   164,   173,   179,   193,   195,
2309 >     196,   205,   211,   357,   358,   215,   215,    64,   135,   164,
2310 >     173,   179,   193,   195,   196,   205,   211,   366,   367,   225,
2311 >     225,   225,   215,   219,   215,   219,   472,   468,   215,   219,
2312 >     215,   219,   215,   219,    99,   320,   215,   117,   218,   194,
2313 >     226,   215,   215,   219,   215,   219,   215,   219,   215,   219,
2314 >     382,   413,   334,   393,   314,   215,    40,    62,    64,   102,
2315 >     172,   173,   206,   272,   273,   215,   215,   291,   287,   358,
2316 >     367,   215,   219,   273
2317   };
2318  
2319   #define yyerrok         (yyerrstatus = 0)
# Line 2544 | Line 2343 | static const yytype_uint16 yystos[] =
2343  
2344   #define YYRECOVERING()  (!!yyerrstatus)
2345  
2346 < #define YYBACKUP(Token, Value)                                  \
2347 < do                                                              \
2348 <  if (yychar == YYEMPTY && yylen == 1)                          \
2349 <    {                                                           \
2350 <      yychar = (Token);                                         \
2351 <      yylval = (Value);                                         \
2352 <      yytoken = YYTRANSLATE (yychar);                           \
2353 <      YYPOPSTACK (1);                                           \
2354 <      goto yybackup;                                            \
2355 <    }                                                           \
2356 <  else                                                          \
2357 <    {                                                           \
2346 > #define YYBACKUP(Token, Value)                                  \
2347 > do                                                              \
2348 >  if (yychar == YYEMPTY)                                        \
2349 >    {                                                           \
2350 >      yychar = (Token);                                         \
2351 >      yylval = (Value);                                         \
2352 >      YYPOPSTACK (yylen);                                       \
2353 >      yystate = *yyssp;                                         \
2354 >      goto yybackup;                                            \
2355 >    }                                                           \
2356 >  else                                                          \
2357 >    {                                                           \
2358        yyerror (YY_("syntax error: cannot back up")); \
2359        YYERROR;                                                  \
2360      }                                                           \
2361   while (YYID (0))
2362  
2363 <
2363 > /* Error token number */
2364   #define YYTERROR        1
2365   #define YYERRCODE       256
2366  
2367  
2368 < /* 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
2593 <
2594 <
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.  */
2598 <
2368 > /* This macro is provided for backward compatibility. */
2369   #ifndef YY_LOCATION_PRINT
2370 < # 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
2370 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2371   #endif
2372  
2373  
2374   /* YYLEX -- calling `yylex' with the right arguments.  */
2612
2375   #ifdef YYLEX_PARAM
2376   # define YYLEX yylex (YYLEX_PARAM)
2377   #else
# Line 2659 | Line 2421 | yy_symbol_value_print (yyoutput, yytype,
2421      YYSTYPE const * const yyvaluep;
2422   #endif
2423   {
2424 +  FILE *yyo = yyoutput;
2425 +  YYUSE (yyo);
2426    if (!yyvaluep)
2427      return;
2428   # ifdef YYPRINT
# Line 2670 | Line 2434 | yy_symbol_value_print (yyoutput, yytype,
2434    switch (yytype)
2435      {
2436        default:
2437 <        break;
2437 >        break;
2438      }
2439   }
2440  
# Line 2796 | Line 2560 | int yydebug;
2560   # define YYMAXDEPTH 10000
2561   #endif
2562  
2799
2563  
2564   #if YYERROR_VERBOSE
2565  
# Line 2899 | Line 2662 | yytnamerr (char *yyres, const char *yyst
2662   }
2663   # endif
2664  
2665 < /* Copy into YYRESULT an error message about the unexpected token
2666 <   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
2667 <   including the terminating null byte.  If YYRESULT is null, do not
2668 <   copy anything; just return the number of bytes that would be
2669 <   copied.  As a special case, return 0 if an ordinary "syntax error"
2670 <   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
2671 <   size calculation.  */
2672 < static YYSIZE_T
2673 < yysyntax_error (char *yyresult, int yystate, int yychar)
2665 > /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2666 >   about the unexpected token YYTOKEN for the state stack whose top is
2667 >   YYSSP.
2668 >
2669 >   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
2670 >   not large enough to hold the message.  In that case, also set
2671 >   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
2672 >   required number of bytes is too large to store.  */
2673 > static int
2674 > yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2675 >                yytype_int16 *yyssp, int yytoken)
2676   {
2677 <  int yyn = yypact[yystate];
2677 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2678 >  YYSIZE_T yysize = yysize0;
2679 >  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2680 >  /* Internationalized format string. */
2681 >  const char *yyformat = YY_NULL;
2682 >  /* Arguments of yyformat. */
2683 >  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2684 >  /* Number of reported tokens (one for the "unexpected", one per
2685 >     "expected"). */
2686 >  int yycount = 0;
2687 >
2688 >  /* There are many possibilities here to consider:
2689 >     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2690 >       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2691 >       for details.  YYERROR is fine as it does not invoke this
2692 >       function.
2693 >     - If this state is a consistent state with a default action, then
2694 >       the only way this function was invoked is if the default action
2695 >       is an error action.  In that case, don't check for expected
2696 >       tokens because there are none.
2697 >     - The only way there can be no lookahead present (in yychar) is if
2698 >       this state is a consistent state with a default action.  Thus,
2699 >       detecting the absence of a lookahead is sufficient to determine
2700 >       that there is no unexpected or expected token to report.  In that
2701 >       case, just report a simple "syntax error".
2702 >     - Don't assume there isn't a lookahead just because this state is a
2703 >       consistent state with a default action.  There might have been a
2704 >       previous inconsistent state, consistent state with a non-default
2705 >       action, or user semantic action that manipulated yychar.
2706 >     - Of course, the expected token list depends on states to have
2707 >       correct lookahead information, and it depends on the parser not
2708 >       to perform extra reductions after fetching a lookahead from the
2709 >       scanner and before detecting a syntax error.  Thus, state merging
2710 >       (from LALR or IELR) and default reductions corrupt the expected
2711 >       token list.  However, the list is correct for canonical LR with
2712 >       one exception: it will still contain any token that will not be
2713 >       accepted due to an error action in a later state.
2714 >  */
2715 >  if (yytoken != YYEMPTY)
2716 >    {
2717 >      int yyn = yypact[*yyssp];
2718 >      yyarg[yycount++] = yytname[yytoken];
2719 >      if (!yypact_value_is_default (yyn))
2720 >        {
2721 >          /* Start YYX at -YYN if negative to avoid negative indexes in
2722 >             YYCHECK.  In other words, skip the first -YYN actions for
2723 >             this state because they are default actions.  */
2724 >          int yyxbegin = yyn < 0 ? -yyn : 0;
2725 >          /* Stay within bounds of both yycheck and yytname.  */
2726 >          int yychecklim = YYLAST - yyn + 1;
2727 >          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2728 >          int yyx;
2729 >
2730 >          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2731 >            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2732 >                && !yytable_value_is_error (yytable[yyx + yyn]))
2733 >              {
2734 >                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2735 >                  {
2736 >                    yycount = 1;
2737 >                    yysize = yysize0;
2738 >                    break;
2739 >                  }
2740 >                yyarg[yycount++] = yytname[yyx];
2741 >                {
2742 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2743 >                  if (! (yysize <= yysize1
2744 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2745 >                    return 2;
2746 >                  yysize = yysize1;
2747 >                }
2748 >              }
2749 >        }
2750 >    }
2751  
2752 <  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2915 <    return 0;
2916 <  else
2752 >  switch (yycount)
2753      {
2754 <      int yytype = YYTRANSLATE (yychar);
2755 <      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2756 <      YYSIZE_T yysize = yysize0;
2757 <      YYSIZE_T yysize1;
2758 <      int yysize_overflow = 0;
2759 <      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2760 <      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2761 <      int yyx;
2762 <
2763 < # if 0
2764 <      /* This is so xgettext sees the translatable formats that are
2765 <         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;
2754 > # define YYCASE_(N, S)                      \
2755 >      case N:                               \
2756 >        yyformat = S;                       \
2757 >      break
2758 >      YYCASE_(0, YY_("syntax error"));
2759 >      YYCASE_(1, YY_("syntax error, unexpected %s"));
2760 >      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2761 >      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2762 >      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2763 >      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2764 > # undef YYCASE_
2765 >    }
2766  
2767 <      if (yysize_overflow)
2768 <        return YYSIZE_MAXIMUM;
2767 >  {
2768 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2769 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2770 >      return 2;
2771 >    yysize = yysize1;
2772 >  }
2773  
2774 <      if (yyresult)
2775 <        {
2776 <          /* Avoid sprintf, as that infringes on the user's name space.
2777 <             Don't have undefined behavior even if the translation
2778 <             produced a string with the wrong number of "%s"s.  */
2779 <          char *yyp = yyresult;
2780 <          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;
2774 >  if (*yymsg_alloc < yysize)
2775 >    {
2776 >      *yymsg_alloc = 2 * yysize;
2777 >      if (! (yysize <= *yymsg_alloc
2778 >             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2779 >        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2780 >      return 1;
2781      }
2782 +
2783 +  /* Avoid sprintf, as that infringes on the user's name space.
2784 +     Don't have undefined behavior even if the translation
2785 +     produced a string with the wrong number of "%s"s.  */
2786 +  {
2787 +    char *yyp = *yymsg;
2788 +    int yyi = 0;
2789 +    while ((*yyp = *yyformat) != '\0')
2790 +      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2791 +        {
2792 +          yyp += yytnamerr (yyp, yyarg[yyi++]);
2793 +          yyformat += 2;
2794 +        }
2795 +      else
2796 +        {
2797 +          yyp++;
2798 +          yyformat++;
2799 +        }
2800 +  }
2801 +  return 0;
2802   }
2803   #endif /* YYERROR_VERBOSE */
3010
2804  
2805   /*-----------------------------------------------.
2806   | Release the memory associated to this symbol.  |
# Line 3036 | Line 2829 | yydestruct (yymsg, yytype, yyvaluep)
2829      {
2830  
2831        default:
2832 <        break;
2832 >        break;
2833      }
2834   }
2835  
2836 < /* 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 */
2836 >
2837  
2838  
2839   /* The lookahead symbol.  */
2840   int yychar;
2841  
2842 +
2843 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2844 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2845 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2846 + #endif
2847 + #ifndef YY_INITIAL_VALUE
2848 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2849 + #endif
2850 +
2851   /* The semantic value of the lookahead symbol.  */
2852 < YYSTYPE yylval;
2852 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2853  
2854   /* Number of syntax errors so far.  */
2855   int yynerrs;
2856  
2857  
2858 <
2859 < /*-------------------------.
2860 < | yyparse or yypush_parse.  |
3072 < `-------------------------*/
2858 > /*----------.
2859 > | yyparse.  |
2860 > `----------*/
2861  
2862   #ifdef YYPARSE_PARAM
2863   #if (defined __STDC__ || defined __C99__FUNC__ \
# Line 3093 | Line 2881 | yyparse ()
2881   #endif
2882   #endif
2883   {
3096
3097
2884      int yystate;
2885      /* Number of tokens to shift before error messages enabled.  */
2886      int yyerrstatus;
# Line 3103 | Line 2889 | yyparse ()
2889         `yyss': related to states.
2890         `yyvs': related to semantic values.
2891  
2892 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2892 >       Refer to the stacks through separate pointers, to allow yyoverflow
2893         to reallocate them elsewhere.  */
2894  
2895      /* The state stack.  */
# Line 3121 | Line 2907 | yyparse ()
2907    int yyn;
2908    int yyresult;
2909    /* Lookahead token as an internal (translated) token number.  */
2910 <  int yytoken;
2910 >  int yytoken = 0;
2911    /* The variables used to return semantic value and location from the
2912       action routines.  */
2913    YYSTYPE yyval;
# Line 3139 | Line 2925 | yyparse ()
2925       Keep to zero when no symbol should be popped.  */
2926    int yylen = 0;
2927  
2928 <  yytoken = 0;
2929 <  yyss = yyssa;
3144 <  yyvs = yyvsa;
2928 >  yyssp = yyss = yyssa;
2929 >  yyvsp = yyvs = yyvsa;
2930    yystacksize = YYINITDEPTH;
2931  
2932    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3150 | Line 2935 | yyparse ()
2935    yyerrstatus = 0;
2936    yynerrs = 0;
2937    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
2938    goto yysetstate;
2939  
2940   /*------------------------------------------------------------.
# Line 3249 | Line 3026 | yybackup:
3026  
3027    /* First try to decide what to do without reference to lookahead token.  */
3028    yyn = yypact[yystate];
3029 <  if (yyn == YYPACT_NINF)
3029 >  if (yypact_value_is_default (yyn))
3030      goto yydefault;
3031  
3032    /* Not known => get a lookahead token if don't already have one.  */
# Line 3280 | Line 3057 | yybackup:
3057    yyn = yytable[yyn];
3058    if (yyn <= 0)
3059      {
3060 <      if (yyn == 0 || yyn == YYTABLE_NINF)
3061 <        goto yyerrlab;
3060 >      if (yytable_value_is_error (yyn))
3061 >        goto yyerrlab;
3062        yyn = -yyn;
3063        goto yyreduce;
3064      }
# Line 3298 | Line 3075 | yybackup:
3075    yychar = YYEMPTY;
3076  
3077    yystate = yyn;
3078 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3079    *++yyvsp = yylval;
3080 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3081  
3082    goto yynewstate;
3083  
# Line 3335 | Line 3114 | yyreduce:
3114    switch (yyn)
3115      {
3116          case 26:
3117 <
3118 < /* Line 1464 of yacc.c  */
3340 < #line 424 "ircd_parser.y"
3117 > /* Line 1792 of yacc.c  */
3118 > #line 384 "conf_parser.y"
3119      { (yyval.number) = 0; }
3120      break;
3121  
3122    case 28:
3123 <
3124 < /* Line 1464 of yacc.c  */
3347 < #line 426 "ircd_parser.y"
3123 > /* Line 1792 of yacc.c  */
3124 > #line 386 "conf_parser.y"
3125      {
3126                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3127                  }
3128      break;
3129  
3130    case 29:
3131 <
3132 < /* Line 1464 of yacc.c  */
3356 < #line 430 "ircd_parser.y"
3131 > /* Line 1792 of yacc.c  */
3132 > #line 390 "conf_parser.y"
3133      {
3134                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3135                  }
3136      break;
3137  
3138    case 30:
3139 <
3140 < /* Line 1464 of yacc.c  */
3365 < #line 434 "ircd_parser.y"
3139 > /* Line 1792 of yacc.c  */
3140 > #line 394 "conf_parser.y"
3141      {
3142                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3143                  }
3144      break;
3145  
3146    case 31:
3147 <
3148 < /* Line 1464 of yacc.c  */
3374 < #line 438 "ircd_parser.y"
3147 > /* Line 1792 of yacc.c  */
3148 > #line 398 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3151                  }
3152      break;
3153  
3154    case 32:
3155 <
3156 < /* Line 1464 of yacc.c  */
3383 < #line 442 "ircd_parser.y"
3155 > /* Line 1792 of yacc.c  */
3156 > #line 402 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162    case 33:
3163 <
3164 < /* Line 1464 of yacc.c  */
3392 < #line 446 "ircd_parser.y"
3163 > /* Line 1792 of yacc.c  */
3164 > #line 406 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170    case 34:
3171 <
3172 < /* Line 1464 of yacc.c  */
3401 < #line 451 "ircd_parser.y"
3171 > /* Line 1792 of yacc.c  */
3172 > #line 411 "conf_parser.y"
3173      { (yyval.number) = 0; }
3174      break;
3175  
3176    case 36:
3177 <
3178 < /* Line 1464 of yacc.c  */
3408 < #line 452 "ircd_parser.y"
3177 > /* Line 1792 of yacc.c  */
3178 > #line 412 "conf_parser.y"
3179      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3180      break;
3181  
3182    case 37:
3183 <
3184 < /* Line 1464 of yacc.c  */
3415 < #line 453 "ircd_parser.y"
3183 > /* Line 1792 of yacc.c  */
3184 > #line 413 "conf_parser.y"
3185      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3186      break;
3187  
3188    case 38:
3189 <
3190 < /* Line 1464 of yacc.c  */
3422 < #line 454 "ircd_parser.y"
3189 > /* Line 1792 of yacc.c  */
3190 > #line 414 "conf_parser.y"
3191      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3192      break;
3193  
3194    case 39:
3195 <
3196 < /* Line 1464 of yacc.c  */
3429 < #line 455 "ircd_parser.y"
3195 > /* Line 1792 of yacc.c  */
3196 > #line 415 "conf_parser.y"
3197      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3198      break;
3199  
3200    case 46:
3201 <
3202 < /* Line 1464 of yacc.c  */
3436 < #line 469 "ircd_parser.y"
3201 > /* Line 1792 of yacc.c  */
3202 > #line 429 "conf_parser.y"
3203      {
3438 #ifndef STATIC_MODULES /* NOOP in the static case */
3204    if (conf_parser_ctx.pass == 2)
3205      add_conf_module(libio_basename(yylval.string));
3441 #endif
3206   }
3207      break;
3208  
3209    case 47:
3210 <
3211 < /* Line 1464 of yacc.c  */
3448 < #line 477 "ircd_parser.y"
3210 > /* Line 1792 of yacc.c  */
3211 > #line 435 "conf_parser.y"
3212      {
3450 #ifndef STATIC_MODULES
3213    if (conf_parser_ctx.pass == 2)
3214      mod_add_path(yylval.string);
3453 #endif
3215   }
3216      break;
3217  
3218 <  case 64:
3219 <
3220 < /* Line 1464 of yacc.c  */
3460 < #line 499 "ircd_parser.y"
3218 >  case 71:
3219 > /* Line 1792 of yacc.c  */
3220 > #line 460 "conf_parser.y"
3221      {
3222   #ifdef HAVE_LIBCRYPTO
3223 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3224 <    ServerInfo.tls_version = 0;
3223 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3224 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3225   #endif
3226   }
3227      break;
3228  
3229 <  case 65:
3230 <
3231 < /* Line 1464 of yacc.c  */
3472 < #line 505 "ircd_parser.y"
3229 >  case 72:
3230 > /* Line 1792 of yacc.c  */
3231 > #line 466 "conf_parser.y"
3232      {
3233   #ifdef HAVE_LIBCRYPTO
3234 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3235 <  {
3477 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3478 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3479 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3480 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3481 <  }
3234 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3235 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3236   #endif
3237   }
3238      break;
3239  
3240 <  case 68:
3241 <
3242 < /* Line 1464 of yacc.c  */
3489 < #line 519 "ircd_parser.y"
3240 >  case 75:
3241 > /* Line 1792 of yacc.c  */
3242 > #line 475 "conf_parser.y"
3243      {
3244   #ifdef HAVE_LIBCRYPTO
3245 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3246 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3245 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3246 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3247   #endif
3248   }
3249      break;
3250  
3251 <  case 69:
3252 <
3253 < /* Line 1464 of yacc.c  */
3501 < #line 525 "ircd_parser.y"
3251 >  case 76:
3252 > /* Line 1792 of yacc.c  */
3253 > #line 481 "conf_parser.y"
3254      {
3255   #ifdef HAVE_LIBCRYPTO
3256 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3257 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3256 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3257 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3258   #endif
3259   }
3260      break;
3261  
3262 <  case 70:
3263 <
3264 < /* Line 1464 of yacc.c  */
3513 < #line 533 "ircd_parser.y"
3262 >  case 77:
3263 > /* Line 1792 of yacc.c  */
3264 > #line 489 "conf_parser.y"
3265      {
3266   #ifdef HAVE_LIBCRYPTO
3267    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3522 | Line 3273 | yyreduce:
3273      }
3274  
3275      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3276 +                                     SSL_FILETYPE_PEM) <= 0 ||
3277 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3278                                       SSL_FILETYPE_PEM) <= 0)
3279      {
3280        yyerror(ERR_lib_error_string(ERR_get_error()));
# Line 3529 | Line 3282 | yyreduce:
3282      }
3283  
3284      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3285 +                                    SSL_FILETYPE_PEM) <= 0 ||
3286 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3287                                      SSL_FILETYPE_PEM) <= 0)
3288      {
3289        yyerror(ERR_lib_error_string(ERR_get_error()));
3290        break;
3291      }
3292  
3293 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3293 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3294 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3295      {
3296        yyerror(ERR_lib_error_string(ERR_get_error()));
3297        break;
# Line 3545 | Line 3301 | yyreduce:
3301   }
3302      break;
3303  
3304 <  case 71:
3305 <
3306 < /* Line 1464 of yacc.c  */
3551 < #line 567 "ircd_parser.y"
3304 >  case 78:
3305 > /* Line 1792 of yacc.c  */
3306 > #line 528 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309    if (conf_parser_ctx.pass == 1)
# Line 3567 | Line 3322 | yyreduce:
3322        ServerInfo.rsa_private_key_file = NULL;
3323      }
3324  
3325 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3325 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3326  
3327      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3328      {
# Line 3575 | Line 3330 | yyreduce:
3330        break;
3331      }
3332  
3333 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3579 <      0, NULL);
3333 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3334  
3335      BIO_set_close(file, BIO_CLOSE);
3336      BIO_free(file);
# Line 3609 | Line 3363 | yyreduce:
3363   }
3364      break;
3365  
3366 <  case 72:
3366 >  case 79:
3367 > /* Line 1792 of yacc.c  */
3368 > #line 587 "conf_parser.y"
3369 >    {
3370 > /* TBD - XXX: error reporting */
3371 > #ifdef HAVE_LIBCRYPTO
3372 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3373 >  {
3374 >    BIO *file = BIO_new_file(yylval.string, "r");
3375  
3376 < /* Line 1464 of yacc.c  */
3377 < #line 627 "ircd_parser.y"
3376 >    if (file)
3377 >    {
3378 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3379 >
3380 >      BIO_free(file);
3381 >
3382 >      if (dh)
3383 >      {
3384 >        if (DH_size(dh) < 128)
3385 >          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3386 >        else
3387 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3388 >
3389 >        DH_free(dh);
3390 >      }
3391 >    }
3392 >  }
3393 > #endif
3394 > }
3395 >    break;
3396 >
3397 >  case 80:
3398 > /* Line 1792 of yacc.c  */
3399 > #line 615 "conf_parser.y"
3400 >    {
3401 > #ifdef HAVE_LIBCRYPTO
3402 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3403 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3404 > #endif
3405 > }
3406 >    break;
3407 >
3408 >  case 81:
3409 > /* Line 1792 of yacc.c  */
3410 > #line 623 "conf_parser.y"
3411      {
3412    /* this isn't rehashable */
3413    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3414    {
3415      if (valid_servname(yylval.string))
3416 <      DupString(ServerInfo.name, yylval.string);
3416 >      ServerInfo.name = xstrdup(yylval.string);
3417      else
3418      {
3419 <      ilog(L_ERROR, "Ignoring serverinfo::name -- invalid name. Aborting.");
3419 >      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3420        exit(0);
3421      }
3422    }
3423   }
3424      break;
3425  
3426 <  case 73:
3427 <
3428 < /* Line 1464 of yacc.c  */
3634 < #line 642 "ircd_parser.y"
3426 >  case 82:
3427 > /* Line 1792 of yacc.c  */
3428 > #line 638 "conf_parser.y"
3429      {
3430    /* this isn't rehashable */
3431    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3432    {
3433      if (valid_sid(yylval.string))
3434 <      DupString(ServerInfo.sid, yylval.string);
3434 >      ServerInfo.sid = xstrdup(yylval.string);
3435      else
3436      {
3437 <      ilog(L_ERROR, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3437 >      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3438        exit(0);
3439      }
3440    }
3441   }
3442      break;
3443  
3444 <  case 74:
3445 <
3446 < /* Line 1464 of yacc.c  */
3653 < #line 657 "ircd_parser.y"
3444 >  case 83:
3445 > /* Line 1792 of yacc.c  */
3446 > #line 653 "conf_parser.y"
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449    {
3450      MyFree(ServerInfo.description);
3451 <    DupString(ServerInfo.description,yylval.string);
3451 >    ServerInfo.description = xstrdup(yylval.string);
3452    }
3453   }
3454      break;
3455  
3456 <  case 75:
3457 <
3458 < /* Line 1464 of yacc.c  */
3666 < #line 666 "ircd_parser.y"
3456 >  case 84:
3457 > /* Line 1792 of yacc.c  */
3458 > #line 662 "conf_parser.y"
3459      {
3460    if (conf_parser_ctx.pass == 2)
3461    {
# Line 3673 | Line 3465 | yyreduce:
3465        p = '\0';
3466  
3467      MyFree(ServerInfo.network_name);
3468 <    DupString(ServerInfo.network_name, yylval.string);
3468 >    ServerInfo.network_name = xstrdup(yylval.string);
3469    }
3470   }
3471      break;
3472  
3473 <  case 76:
3474 <
3475 < /* Line 1464 of yacc.c  */
3684 < #line 680 "ircd_parser.y"
3473 >  case 85:
3474 > /* Line 1792 of yacc.c  */
3475 > #line 676 "conf_parser.y"
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478    {
3479      MyFree(ServerInfo.network_desc);
3480 <    DupString(ServerInfo.network_desc, yylval.string);
3480 >    ServerInfo.network_desc = xstrdup(yylval.string);
3481    }
3482   }
3483      break;
3484  
3485 <  case 77:
3486 <
3487 < /* Line 1464 of yacc.c  */
3697 < #line 689 "ircd_parser.y"
3485 >  case 86:
3486 > /* Line 1792 of yacc.c  */
3487 > #line 685 "conf_parser.y"
3488      {
3489    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3490    {
# Line 3706 | Line 3496 | yyreduce:
3496      hints.ai_socktype = SOCK_STREAM;
3497      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3498  
3499 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3500 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3499 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3500 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3501      else
3502      {
3503        assert(res != NULL);
# Line 3715 | Line 3505 | yyreduce:
3505        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3506        ServerInfo.ip.ss.ss_family = res->ai_family;
3507        ServerInfo.ip.ss_len = res->ai_addrlen;
3508 <      irc_freeaddrinfo(res);
3508 >      freeaddrinfo(res);
3509  
3510        ServerInfo.specific_ipv4_vhost = 1;
3511      }
# Line 3723 | Line 3513 | yyreduce:
3513   }
3514      break;
3515  
3516 <  case 78:
3517 <
3518 < /* Line 1464 of yacc.c  */
3729 < #line 717 "ircd_parser.y"
3516 >  case 87:
3517 > /* Line 1792 of yacc.c  */
3518 > #line 713 "conf_parser.y"
3519      {
3520   #ifdef IPV6
3521    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3739 | Line 3528 | yyreduce:
3528      hints.ai_socktype = SOCK_STREAM;
3529      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3530  
3531 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
3532 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3531 >    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3532 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3533      else
3534      {
3535        assert(res != NULL);
# Line 3748 | Line 3537 | yyreduce:
3537        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3538        ServerInfo.ip6.ss.ss_family = res->ai_family;
3539        ServerInfo.ip6.ss_len = res->ai_addrlen;
3540 <      irc_freeaddrinfo(res);
3540 >      freeaddrinfo(res);
3541  
3542        ServerInfo.specific_ipv6_vhost = 1;
3543      }
# Line 3757 | Line 3546 | yyreduce:
3546   }
3547      break;
3548  
3549 <  case 79:
3550 <
3551 < /* Line 1464 of yacc.c  */
3763 < #line 747 "ircd_parser.y"
3549 >  case 88:
3550 > /* Line 1792 of yacc.c  */
3551 > #line 743 "conf_parser.y"
3552      {
3553    if (conf_parser_ctx.pass == 2)
3554    {
# Line 3784 | Line 3572 | yyreduce:
3572   }
3573      break;
3574  
3575 <  case 80:
3576 <
3577 < /* Line 1464 of yacc.c  */
3790 < #line 770 "ircd_parser.y"
3575 >  case 89:
3576 > /* Line 1792 of yacc.c  */
3577 > #line 766 "conf_parser.y"
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580 <  {
3794 <    if (yylval.number)
3795 <    {
3796 <      ServerInfo.hub = 1;
3797 <      delete_capability("HUB");
3798 <      add_capability("HUB", CAP_HUB, 1);
3799 <    }
3800 <    else if (ServerInfo.hub)
3801 <    {
3802 <
3803 <      ServerInfo.hub = 0;
3804 <      delete_capability("HUB");
3805 <    }
3806 <  }
3580 >    ServerInfo.hub = yylval.number;
3581   }
3582      break;
3583  
3584 <  case 88:
3585 <
3586 < /* Line 1464 of yacc.c  */
3813 < #line 798 "ircd_parser.y"
3584 >  case 97:
3585 > /* Line 1792 of yacc.c  */
3586 > #line 781 "conf_parser.y"
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589    {
3590      MyFree(AdminInfo.name);
3591 <    DupString(AdminInfo.name, yylval.string);
3591 >    AdminInfo.name = xstrdup(yylval.string);
3592    }
3593   }
3594      break;
3595  
3596 <  case 89:
3597 <
3598 < /* Line 1464 of yacc.c  */
3826 < #line 807 "ircd_parser.y"
3596 >  case 98:
3597 > /* Line 1792 of yacc.c  */
3598 > #line 790 "conf_parser.y"
3599      {
3600    if (conf_parser_ctx.pass == 2)
3601    {
3602      MyFree(AdminInfo.email);
3603 <    DupString(AdminInfo.email, yylval.string);
3603 >    AdminInfo.email = xstrdup(yylval.string);
3604    }
3605   }
3606      break;
3607  
3608 <  case 90:
3609 <
3610 < /* Line 1464 of yacc.c  */
3839 < #line 816 "ircd_parser.y"
3608 >  case 99:
3609 > /* Line 1792 of yacc.c  */
3610 > #line 799 "conf_parser.y"
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613    {
3614      MyFree(AdminInfo.description);
3615 <    DupString(AdminInfo.description, yylval.string);
3615 >    AdminInfo.description = xstrdup(yylval.string);
3616    }
3617   }
3618      break;
3619  
3620 <  case 107:
3621 <
3622 < /* Line 1464 of yacc.c  */
3852 < #line 843 "ircd_parser.y"
3853 <    {
3854 <                        }
3855 <    break;
3856 <
3857 <  case 108:
3858 <
3859 < /* Line 1464 of yacc.c  */
3860 < #line 847 "ircd_parser.y"
3861 <    {
3862 <                        }
3863 <    break;
3864 <
3865 <  case 109:
3866 <
3867 < /* Line 1464 of yacc.c  */
3868 < #line 851 "ircd_parser.y"
3869 <    {
3870 <  if (conf_parser_ctx.pass == 2)
3871 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3872 <            sizeof(ConfigLoggingEntry.userlog));
3873 < }
3874 <    break;
3875 <
3876 <  case 110:
3877 <
3878 < /* Line 1464 of yacc.c  */
3879 < #line 858 "ircd_parser.y"
3620 >  case 106:
3621 > /* Line 1792 of yacc.c  */
3622 > #line 817 "conf_parser.y"
3623      {
3624    if (conf_parser_ctx.pass == 2)
3625 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3883 <            sizeof(ConfigLoggingEntry.failed_operlog));
3625 >    ConfigLoggingEntry.use_logging = yylval.number;
3626   }
3627      break;
3628  
3629 <  case 111:
3630 <
3631 < /* Line 1464 of yacc.c  */
3890 < #line 865 "ircd_parser.y"
3629 >  case 107:
3630 > /* Line 1792 of yacc.c  */
3631 > #line 823 "conf_parser.y"
3632      {
3633    if (conf_parser_ctx.pass == 2)
3634 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3894 <            sizeof(ConfigLoggingEntry.operlog));
3634 >    reset_block_state();
3635   }
3636      break;
3637  
3638 <  case 112:
3639 <
3640 < /* Line 1464 of yacc.c  */
3901 < #line 872 "ircd_parser.y"
3638 >  case 108:
3639 > /* Line 1792 of yacc.c  */
3640 > #line 827 "conf_parser.y"
3641      {
3642 <  if (conf_parser_ctx.pass == 2)
3904 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3905 <            sizeof(ConfigLoggingEntry.operspylog));
3906 < }
3642 >  if (conf_parser_ctx.pass != 2)
3643      break;
3644  
3645 <  case 113:
3646 <
3647 < /* Line 1464 of yacc.c  */
3912 < #line 879 "ircd_parser.y"
3913 <    {
3914 <  if (conf_parser_ctx.pass == 2)
3915 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
3916 <            sizeof(ConfigLoggingEntry.glinelog));
3645 >  if (block_state.type.value && block_state.file.buf[0])
3646 >    log_add_file(block_state.type.value, block_state.size.value,
3647 >                 block_state.file.buf);
3648   }
3649      break;
3650  
3651 <  case 114:
3652 <
3653 < /* Line 1464 of yacc.c  */
3923 < #line 886 "ircd_parser.y"
3651 >  case 115:
3652 > /* Line 1792 of yacc.c  */
3653 > #line 843 "conf_parser.y"
3654      {
3655 <  if (conf_parser_ctx.pass == 2)
3926 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
3927 <            sizeof(ConfigLoggingEntry.klinelog));
3928 < }
3655 >  if (conf_parser_ctx.pass != 2)
3656      break;
3657  
3658 <  case 115:
3932 <
3933 < /* Line 1464 of yacc.c  */
3934 < #line 893 "ircd_parser.y"
3935 <    {
3936 <  if (conf_parser_ctx.pass == 2)
3937 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
3938 <            sizeof(ConfigLoggingEntry.ioerrlog));
3658 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3659   }
3660      break;
3661  
3662    case 116:
3663 <
3664 < /* Line 1464 of yacc.c  */
3945 < #line 900 "ircd_parser.y"
3663 > /* Line 1792 of yacc.c  */
3664 > #line 851 "conf_parser.y"
3665      {
3666 <  if (conf_parser_ctx.pass == 2)
3948 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3949 <            sizeof(ConfigLoggingEntry.killlog));
3666 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670    case 117:
3671 <
3672 < /* Line 1464 of yacc.c  */
3673 < #line 907 "ircd_parser.y"
3674 <    {
3958 <  if (conf_parser_ctx.pass == 2)
3959 <    set_log_level(L_CRIT);
3671 > /* Line 1792 of yacc.c  */
3672 > #line 854 "conf_parser.y"
3673 >    {
3674 >  block_state.size.value = 0;
3675   }
3676      break;
3677  
3678    case 118:
3679 <
3680 < /* Line 1464 of yacc.c  */
3966 < #line 911 "ircd_parser.y"
3679 > /* Line 1792 of yacc.c  */
3680 > #line 859 "conf_parser.y"
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683 <    set_log_level(L_ERROR);
3683 >    block_state.type.value = 0;
3684   }
3685      break;
3686  
3687 <  case 119:
3688 <
3689 < /* Line 1464 of yacc.c  */
3976 < #line 915 "ircd_parser.y"
3687 >  case 122:
3688 > /* Line 1792 of yacc.c  */
3689 > #line 866 "conf_parser.y"
3690      {
3691    if (conf_parser_ctx.pass == 2)
3692 <    set_log_level(L_WARN);
3692 >    block_state.type.value = LOG_TYPE_USER;
3693   }
3694      break;
3695  
3696 <  case 120:
3697 <
3698 < /* Line 1464 of yacc.c  */
3986 < #line 919 "ircd_parser.y"
3696 >  case 123:
3697 > /* Line 1792 of yacc.c  */
3698 > #line 870 "conf_parser.y"
3699      {
3700    if (conf_parser_ctx.pass == 2)
3701 <    set_log_level(L_NOTICE);
3701 >    block_state.type.value = LOG_TYPE_OPER;
3702   }
3703      break;
3704  
3705 <  case 121:
3706 <
3707 < /* Line 1464 of yacc.c  */
3996 < #line 923 "ircd_parser.y"
3705 >  case 124:
3706 > /* Line 1792 of yacc.c  */
3707 > #line 874 "conf_parser.y"
3708      {
3709    if (conf_parser_ctx.pass == 2)
3710 <    set_log_level(L_TRACE);
3710 >    block_state.type.value = LOG_TYPE_GLINE;
3711   }
3712      break;
3713  
3714 <  case 122:
3715 <
3716 < /* Line 1464 of yacc.c  */
4006 < #line 927 "ircd_parser.y"
3714 >  case 125:
3715 > /* Line 1792 of yacc.c  */
3716 > #line 878 "conf_parser.y"
3717      {
3718    if (conf_parser_ctx.pass == 2)
3719 <    set_log_level(L_INFO);
3719 >    block_state.type.value = LOG_TYPE_DLINE;
3720   }
3721      break;
3722  
3723 <  case 123:
3724 <
3725 < /* Line 1464 of yacc.c  */
4016 < #line 931 "ircd_parser.y"
3723 >  case 126:
3724 > /* Line 1792 of yacc.c  */
3725 > #line 882 "conf_parser.y"
3726      {
3727    if (conf_parser_ctx.pass == 2)
3728 <    set_log_level(L_DEBUG);
3728 >    block_state.type.value = LOG_TYPE_KLINE;
3729   }
3730      break;
3731  
3732 <  case 124:
3733 <
3734 < /* Line 1464 of yacc.c  */
4026 < #line 937 "ircd_parser.y"
3732 >  case 127:
3733 > /* Line 1792 of yacc.c  */
3734 > #line 886 "conf_parser.y"
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737 <    ConfigLoggingEntry.use_logging = yylval.number;
3737 >    block_state.type.value = LOG_TYPE_KILL;
3738   }
3739      break;
3740  
3741 <  case 125:
3742 <
3743 < /* Line 1464 of yacc.c  */
4036 < #line 946 "ircd_parser.y"
3741 >  case 128:
3742 > /* Line 1792 of yacc.c  */
3743 > #line 890 "conf_parser.y"
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746 <  {
4040 <    yy_conf = make_conf_item(OPER_TYPE);
4041 <    yy_aconf = map_to_conf(yy_conf);
4042 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4043 <  }
4044 <  else
4045 <  {
4046 <    MyFree(class_name);
4047 <    class_name = NULL;
4048 <  }
3746 >    block_state.type.value = LOG_TYPE_DEBUG;
3747   }
3748      break;
3749  
3750 <  case 126:
3751 <
3752 < /* Line 1464 of yacc.c  */
4055 < #line 959 "ircd_parser.y"
3750 >  case 129:
3751 > /* Line 1792 of yacc.c  */
3752 > #line 900 "conf_parser.y"
3753      {
3754 <  if (conf_parser_ctx.pass == 2)
3755 <  {
4059 <    struct CollectItem *yy_tmp;
4060 <    dlink_node *ptr;
4061 <    dlink_node *next_ptr;
4062 <
4063 <    conf_add_class_to_conf(yy_conf, class_name);
3754 >  if (conf_parser_ctx.pass != 2)
3755 >    break;
3756  
3757 <    /* Now, make sure there is a copy of the "base" given oper
3758 <     * block in each of the collected copies
3759 <     */
3757 >  reset_block_state();
3758 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3759 > }
3760 >    break;
3761  
3762 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3762 >  case 130:
3763 > /* Line 1792 of yacc.c  */
3764 > #line 907 "conf_parser.y"
3765      {
3766 <      struct AccessItem *new_aconf;
4072 <      struct ConfItem *new_conf;
4073 <      yy_tmp = ptr->data;
4074 <
4075 <      new_conf = make_conf_item(OPER_TYPE);
4076 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4077 <
4078 <      new_aconf->flags = yy_aconf->flags;
4079 <
4080 <      if (yy_conf->name != NULL)
4081 <        DupString(new_conf->name, yy_conf->name);
4082 <      if (yy_tmp->user != NULL)
4083 <        DupString(new_aconf->user, yy_tmp->user);
4084 <      else
4085 <        DupString(new_aconf->user, "*");
4086 <      if (yy_tmp->host != NULL)
4087 <        DupString(new_aconf->host, yy_tmp->host);
4088 <      else
4089 <        DupString(new_aconf->host, "*");
4090 <      conf_add_class_to_conf(new_conf, class_name);
4091 <      if (yy_aconf->passwd != NULL)
4092 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4093 <
4094 <      new_aconf->port = yy_aconf->port;
4095 < #ifdef HAVE_LIBCRYPTO
4096 <      if (yy_aconf->rsa_public_key_file != NULL)
4097 <      {
4098 <        BIO *file;
4099 <
4100 <        DupString(new_aconf->rsa_public_key_file,
4101 <                  yy_aconf->rsa_public_key_file);
3766 >  dlink_node *ptr = NULL;
3767  
3768 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3769 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4105 <                                                           NULL, 0, NULL);
4106 <        BIO_set_close(file, BIO_CLOSE);
4107 <        BIO_free(file);
4108 <      }
4109 < #endif
3768 >  if (conf_parser_ctx.pass != 2)
3769 >    break;
3770  
3771 +  if (!block_state.name.buf[0])
3772 +    break;
3773   #ifdef HAVE_LIBCRYPTO
3774 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3775 <          && yy_tmp->host)
3774 >  if (!(block_state.file.buf[0] ||
3775 >        block_state.rpass.buf[0]))
3776 >    break;
3777   #else
3778 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3778 >  if (!block_state.rpass.buf[0])
3779 >    break;
3780   #endif
4117      {
4118        conf_add_class_to_conf(new_conf, class_name);
4119        if (yy_tmp->name != NULL)
4120          DupString(new_conf->name, yy_tmp->name);
4121      }
4122
4123      dlinkDelete(&yy_tmp->node, &col_conf_list);
4124      free_collect_item(yy_tmp);
4125    }
3781  
3782 <    yy_conf = NULL;
3783 <    yy_aconf = NULL;
3782 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3783 >  {
3784 >    struct MaskItem *conf = NULL;
3785 >    struct split_nuh_item nuh;
3786  
3787 +    nuh.nuhmask  = ptr->data;
3788 +    nuh.nickptr  = NULL;
3789 +    nuh.userptr  = block_state.user.buf;
3790 +    nuh.hostptr  = block_state.host.buf;
3791 +    nuh.nicksize = 0;
3792 +    nuh.usersize = sizeof(block_state.user.buf);
3793 +    nuh.hostsize = sizeof(block_state.host.buf);
3794 +    split_nuh(&nuh);
3795  
3796 <    MyFree(class_name);
3797 <    class_name = NULL;
3798 <  }
3799 < }
3800 <    break;
3796 >    conf        = conf_make(CONF_OPER);
3797 >    conf->name  = xstrdup(block_state.name.buf);
3798 >    conf->user  = xstrdup(block_state.user.buf);
3799 >    conf->host  = xstrdup(block_state.host.buf);
3800 >
3801 >    if (block_state.rpass.buf[0])
3802 >      conf->passwd = xstrdup(block_state.rpass.buf);
3803 >
3804 >    conf->flags = block_state.flags.value;
3805 >    conf->modes = block_state.modes.value;
3806 >    conf->port  = block_state.port.value;
3807 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3808  
3809 <  case 140:
3809 >    conf_add_class_to_conf(conf, block_state.class.buf);
3810  
3811 < /* Line 1464 of yacc.c  */
3812 < #line 1046 "ircd_parser.y"
3811 > #ifdef HAVE_LIBCRYPTO
3812 >    if (block_state.file.buf[0])
3813      {
3814 <  if (conf_parser_ctx.pass == 2)
3815 <  {
4144 <    if (strlen(yylval.string) > OPERNICKLEN)
4145 <      yylval.string[OPERNICKLEN] = '\0';
4146 <
4147 <    MyFree(yy_conf->name);
4148 <    DupString(yy_conf->name, yylval.string);
4149 <  }
4150 < }
4151 <    break;
3814 >      BIO *file = NULL;
3815 >      RSA *pkey = NULL;
3816  
3817 <  case 141:
3817 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3818 >      {
3819 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3820 >        break;
3821 >      }
3822  
3823 < /* Line 1464 of yacc.c  */
3824 < #line 1058 "ircd_parser.y"
3825 <    {
3826 <  if (conf_parser_ctx.pass == 2)
3827 <  {
4160 <    if (strlen(yylval.string) > OPERNICKLEN)
4161 <      yylval.string[OPERNICKLEN] = '\0';
3823 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3824 >      {
3825 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3826 >        break;
3827 >      }
3828  
3829 <    MyFree(yy_conf->name);
3830 <    DupString(yy_conf->name, yylval.string);
3829 >      conf->rsa_public_key = pkey;
3830 >      BIO_set_close(file, BIO_CLOSE);
3831 >      BIO_free(file);
3832 >    }
3833 > #endif /* HAVE_LIBCRYPTO */
3834    }
3835   }
3836      break;
3837  
3838    case 142:
3839 <
3840 < /* Line 1464 of yacc.c  */
4172 < #line 1070 "ircd_parser.y"
3839 > /* Line 1792 of yacc.c  */
3840 > #line 985 "conf_parser.y"
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <  {
4176 <    struct split_nuh_item nuh;
4177 <
4178 <    nuh.nuhmask  = yylval.string;
4179 <    nuh.nickptr  = NULL;
4180 <    nuh.userptr  = userbuf;
4181 <    nuh.hostptr  = hostbuf;
4182 <
4183 <    nuh.nicksize = 0;
4184 <    nuh.usersize = sizeof(userbuf);
4185 <    nuh.hostsize = sizeof(hostbuf);
4186 <
4187 <    split_nuh(&nuh);
4188 <
4189 <    if (yy_aconf->user == NULL)
4190 <    {
4191 <      DupString(yy_aconf->user, userbuf);
4192 <      DupString(yy_aconf->host, hostbuf);
4193 <    }
4194 <    else
4195 <    {
4196 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4197 <
4198 <      DupString(yy_tmp->user, userbuf);
4199 <      DupString(yy_tmp->host, hostbuf);
4200 <
4201 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4202 <    }
4203 <  }
3843 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3844   }
3845      break;
3846  
3847    case 143:
3848 <
3849 < /* Line 1464 of yacc.c  */
4210 < #line 1104 "ircd_parser.y"
3848 > /* Line 1792 of yacc.c  */
3849 > #line 991 "conf_parser.y"
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <  {
4214 <    if (yy_aconf->passwd != NULL)
4215 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4216 <
4217 <    MyFree(yy_aconf->passwd);
4218 <    DupString(yy_aconf->passwd, yylval.string);
4219 <  }
3852 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3853   }
3854      break;
3855  
3856    case 144:
3857 <
3858 < /* Line 1464 of yacc.c  */
4226 < #line 1116 "ircd_parser.y"
3857 > /* Line 1792 of yacc.c  */
3858 > #line 997 "conf_parser.y"
3859      {
3860    if (conf_parser_ctx.pass == 2)
3861 <  {
4230 <    if (yylval.number)
4231 <      SetConfEncrypted(yy_aconf);
4232 <    else
4233 <      ClearConfEncrypted(yy_aconf);
4234 <  }
3861 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3862   }
3863      break;
3864  
3865    case 145:
3866 <
3867 < /* Line 1464 of yacc.c  */
4241 < #line 1127 "ircd_parser.y"
3866 > /* Line 1792 of yacc.c  */
3867 > #line 1003 "conf_parser.y"
3868      {
4243 #ifdef HAVE_LIBCRYPTO
3869    if (conf_parser_ctx.pass == 2)
3870    {
3871 <    BIO *file;
3872 <
3873 <    if (yy_aconf->rsa_public_key != NULL)
3874 <    {
4250 <      RSA_free(yy_aconf->rsa_public_key);
4251 <      yy_aconf->rsa_public_key = NULL;
4252 <    }
4253 <
4254 <    if (yy_aconf->rsa_public_key_file != NULL)
4255 <    {
4256 <      MyFree(yy_aconf->rsa_public_key_file);
4257 <      yy_aconf->rsa_public_key_file = NULL;
4258 <    }
4259 <
4260 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4261 <    file = BIO_new_file(yylval.string, "r");
4262 <
4263 <    if (file == NULL)
4264 <    {
4265 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4266 <      break;
4267 <    }
4268 <
4269 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4270 <
4271 <    if (yy_aconf->rsa_public_key == NULL)
4272 <    {
4273 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4274 <      break;
4275 <    }
4276 <
4277 <    BIO_set_close(file, BIO_CLOSE);
4278 <    BIO_free(file);
3871 >    if (yylval.number)
3872 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3873 >    else
3874 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3875    }
4280 #endif /* HAVE_LIBCRYPTO */
3876   }
3877      break;
3878  
3879    case 146:
3880 <
3881 < /* Line 1464 of yacc.c  */
4287 < #line 1169 "ircd_parser.y"
3880 > /* Line 1792 of yacc.c  */
3881 > #line 1014 "conf_parser.y"
3882      {
3883    if (conf_parser_ctx.pass == 2)
3884 <  {
4291 <    MyFree(class_name);
4292 <    DupString(class_name, yylval.string);
4293 <  }
3884 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3885   }
3886      break;
3887  
3888    case 147:
3889 <
3890 < /* Line 1464 of yacc.c  */
4300 < #line 1178 "ircd_parser.y"
3889 > /* Line 1792 of yacc.c  */
3890 > #line 1020 "conf_parser.y"
3891      {
3892    if (conf_parser_ctx.pass == 2)
3893 <    yy_aconf->modes = 0;
3893 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3894   }
3895      break;
3896  
3897 <  case 151:
3898 <
3899 < /* Line 1464 of yacc.c  */
4310 < #line 1185 "ircd_parser.y"
3897 >  case 148:
3898 > /* Line 1792 of yacc.c  */
3899 > #line 1026 "conf_parser.y"
3900      {
3901    if (conf_parser_ctx.pass == 2)
3902 <    yy_aconf->modes |= UMODE_BOTS;
3902 >    block_state.modes.value = 0;
3903   }
3904      break;
3905  
3906    case 152:
3907 <
3908 < /* Line 1464 of yacc.c  */
4320 < #line 1189 "ircd_parser.y"
3907 > /* Line 1792 of yacc.c  */
3908 > #line 1033 "conf_parser.y"
3909      {
3910    if (conf_parser_ctx.pass == 2)
3911 <    yy_aconf->modes |= UMODE_CCONN;
3911 >    block_state.modes.value |= UMODE_BOTS;
3912   }
3913      break;
3914  
3915    case 153:
3916 <
3917 < /* Line 1464 of yacc.c  */
4330 < #line 1193 "ircd_parser.y"
3916 > /* Line 1792 of yacc.c  */
3917 > #line 1037 "conf_parser.y"
3918      {
3919    if (conf_parser_ctx.pass == 2)
3920 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3920 >    block_state.modes.value |= UMODE_CCONN;
3921   }
3922      break;
3923  
3924    case 154:
3925 <
3926 < /* Line 1464 of yacc.c  */
4340 < #line 1197 "ircd_parser.y"
3925 > /* Line 1792 of yacc.c  */
3926 > #line 1041 "conf_parser.y"
3927      {
3928    if (conf_parser_ctx.pass == 2)
3929 <    yy_aconf->modes |= UMODE_DEAF;
3929 >    block_state.modes.value |= UMODE_CCONN_FULL;
3930   }
3931      break;
3932  
3933    case 155:
3934 <
3935 < /* Line 1464 of yacc.c  */
4350 < #line 1201 "ircd_parser.y"
3934 > /* Line 1792 of yacc.c  */
3935 > #line 1045 "conf_parser.y"
3936      {
3937    if (conf_parser_ctx.pass == 2)
3938 <    yy_aconf->modes |= UMODE_DEBUG;
3938 >    block_state.modes.value |= UMODE_DEAF;
3939   }
3940      break;
3941  
3942    case 156:
3943 <
3944 < /* Line 1464 of yacc.c  */
4360 < #line 1205 "ircd_parser.y"
3943 > /* Line 1792 of yacc.c  */
3944 > #line 1049 "conf_parser.y"
3945      {
3946    if (conf_parser_ctx.pass == 2)
3947 <    yy_aconf->modes |= UMODE_FULL;
3947 >    block_state.modes.value |= UMODE_DEBUG;
3948   }
3949      break;
3950  
3951    case 157:
3952 <
3953 < /* Line 1464 of yacc.c  */
4370 < #line 1209 "ircd_parser.y"
3952 > /* Line 1792 of yacc.c  */
3953 > #line 1053 "conf_parser.y"
3954      {
3955    if (conf_parser_ctx.pass == 2)
3956 <    yy_aconf->modes |= UMODE_SKILL;
3956 >    block_state.modes.value |= UMODE_FULL;
3957   }
3958      break;
3959  
3960    case 158:
3961 <
3962 < /* Line 1464 of yacc.c  */
4380 < #line 1213 "ircd_parser.y"
3961 > /* Line 1792 of yacc.c  */
3962 > #line 1057 "conf_parser.y"
3963      {
3964    if (conf_parser_ctx.pass == 2)
3965 <    yy_aconf->modes |= UMODE_NCHANGE;
3965 >    block_state.modes.value |= UMODE_HIDDEN;
3966   }
3967      break;
3968  
3969    case 159:
3970 <
3971 < /* Line 1464 of yacc.c  */
4390 < #line 1217 "ircd_parser.y"
3970 > /* Line 1792 of yacc.c  */
3971 > #line 1061 "conf_parser.y"
3972      {
3973    if (conf_parser_ctx.pass == 2)
3974 <    yy_aconf->modes |= UMODE_REJ;
3974 >    block_state.modes.value |= UMODE_SKILL;
3975   }
3976      break;
3977  
3978    case 160:
3979 <
3980 < /* Line 1464 of yacc.c  */
4400 < #line 1221 "ircd_parser.y"
3979 > /* Line 1792 of yacc.c  */
3980 > #line 1065 "conf_parser.y"
3981      {
3982    if (conf_parser_ctx.pass == 2)
3983 <    yy_aconf->modes |= UMODE_UNAUTH;
3983 >    block_state.modes.value |= UMODE_NCHANGE;
3984   }
3985      break;
3986  
3987    case 161:
3988 <
3989 < /* Line 1464 of yacc.c  */
4410 < #line 1225 "ircd_parser.y"
3988 > /* Line 1792 of yacc.c  */
3989 > #line 1069 "conf_parser.y"
3990      {
3991    if (conf_parser_ctx.pass == 2)
3992 <    yy_aconf->modes |= UMODE_SPY;
3992 >    block_state.modes.value |= UMODE_REJ;
3993   }
3994      break;
3995  
3996    case 162:
3997 <
3998 < /* Line 1464 of yacc.c  */
4420 < #line 1229 "ircd_parser.y"
3997 > /* Line 1792 of yacc.c  */
3998 > #line 1073 "conf_parser.y"
3999      {
4000    if (conf_parser_ctx.pass == 2)
4001 <    yy_aconf->modes |= UMODE_EXTERNAL;
4001 >    block_state.modes.value |= UMODE_UNAUTH;
4002   }
4003      break;
4004  
4005    case 163:
4006 <
4007 < /* Line 1464 of yacc.c  */
4430 < #line 1233 "ircd_parser.y"
4006 > /* Line 1792 of yacc.c  */
4007 > #line 1077 "conf_parser.y"
4008      {
4009    if (conf_parser_ctx.pass == 2)
4010 <    yy_aconf->modes |= UMODE_OPERWALL;
4010 >    block_state.modes.value |= UMODE_SPY;
4011   }
4012      break;
4013  
4014    case 164:
4015 <
4016 < /* Line 1464 of yacc.c  */
4440 < #line 1237 "ircd_parser.y"
4015 > /* Line 1792 of yacc.c  */
4016 > #line 1081 "conf_parser.y"
4017      {
4018    if (conf_parser_ctx.pass == 2)
4019 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4019 >    block_state.modes.value |= UMODE_EXTERNAL;
4020   }
4021      break;
4022  
4023    case 165:
4024 <
4025 < /* Line 1464 of yacc.c  */
4450 < #line 1241 "ircd_parser.y"
4024 > /* Line 1792 of yacc.c  */
4025 > #line 1085 "conf_parser.y"
4026      {
4027    if (conf_parser_ctx.pass == 2)
4028 <    yy_aconf->modes |= UMODE_INVISIBLE;
4028 >    block_state.modes.value |= UMODE_OPERWALL;
4029   }
4030      break;
4031  
4032    case 166:
4033 <
4034 < /* Line 1464 of yacc.c  */
4460 < #line 1245 "ircd_parser.y"
4033 > /* Line 1792 of yacc.c  */
4034 > #line 1089 "conf_parser.y"
4035      {
4036    if (conf_parser_ctx.pass == 2)
4037 <    yy_aconf->modes |= UMODE_WALLOP;
4037 >    block_state.modes.value |= UMODE_SERVNOTICE;
4038   }
4039      break;
4040  
4041    case 167:
4042 <
4043 < /* Line 1464 of yacc.c  */
4470 < #line 1249 "ircd_parser.y"
4042 > /* Line 1792 of yacc.c  */
4043 > #line 1093 "conf_parser.y"
4044      {
4045    if (conf_parser_ctx.pass == 2)
4046 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4046 >    block_state.modes.value |= UMODE_INVISIBLE;
4047   }
4048      break;
4049  
4050    case 168:
4051 <
4052 < /* Line 1464 of yacc.c  */
4480 < #line 1253 "ircd_parser.y"
4051 > /* Line 1792 of yacc.c  */
4052 > #line 1097 "conf_parser.y"
4053      {
4054    if (conf_parser_ctx.pass == 2)
4055 <    yy_aconf->modes |= UMODE_CALLERID;
4055 >    block_state.modes.value |= UMODE_WALLOP;
4056   }
4057      break;
4058  
4059    case 169:
4060 <
4061 < /* Line 1464 of yacc.c  */
4490 < #line 1257 "ircd_parser.y"
4060 > /* Line 1792 of yacc.c  */
4061 > #line 1101 "conf_parser.y"
4062      {
4063    if (conf_parser_ctx.pass == 2)
4064 <    yy_aconf->modes |= UMODE_LOCOPS;
4064 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4065   }
4066      break;
4067  
4068    case 170:
4069 <
4070 < /* Line 1464 of yacc.c  */
4500 < #line 1263 "ircd_parser.y"
4069 > /* Line 1792 of yacc.c  */
4070 > #line 1105 "conf_parser.y"
4071      {
4072 +  if (conf_parser_ctx.pass == 2)
4073 +    block_state.modes.value |= UMODE_CALLERID;
4074   }
4075      break;
4076  
4077 <  case 174:
4077 >  case 171:
4078 > /* Line 1792 of yacc.c  */
4079 > #line 1109 "conf_parser.y"
4080 >    {
4081 >  if (conf_parser_ctx.pass == 2)
4082 >    block_state.modes.value |= UMODE_LOCOPS;
4083 > }
4084 >    break;
4085  
4086 < /* Line 1464 of yacc.c  */
4087 < #line 1267 "ircd_parser.y"
4088 <    { not_atom = 1; }
4086 >  case 172:
4087 > /* Line 1792 of yacc.c  */
4088 > #line 1115 "conf_parser.y"
4089 >    {
4090 >  if (conf_parser_ctx.pass == 2)
4091 >    block_state.port.value = 0;
4092 > }
4093      break;
4094  
4095    case 176:
4096 + /* Line 1792 of yacc.c  */
4097 + #line 1122 "conf_parser.y"
4098 +    {
4099 +  if (conf_parser_ctx.pass == 2)
4100 +    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4101 + }
4102 +    break;
4103  
4104 < /* Line 1464 of yacc.c  */
4105 < #line 1268 "ircd_parser.y"
4106 <    { not_atom = 0; }
4104 >  case 177:
4105 > /* Line 1792 of yacc.c  */
4106 > #line 1126 "conf_parser.y"
4107 >    {
4108 >  if (conf_parser_ctx.pass == 2)
4109 >    block_state.port.value |= OPER_FLAG_REMOTE;
4110 > }
4111      break;
4112  
4113    case 178:
4114 <
4115 < /* Line 1464 of yacc.c  */
4522 < #line 1271 "ircd_parser.y"
4114 > /* Line 1792 of yacc.c  */
4115 > #line 1130 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <  {
4526 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4527 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4528 <  }
4118 >    block_state.port.value |= OPER_FLAG_K;
4119   }
4120      break;
4121  
4122    case 179:
4123 <
4124 < /* Line 1464 of yacc.c  */
4535 < #line 1278 "ircd_parser.y"
4123 > /* Line 1792 of yacc.c  */
4124 > #line 1134 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <  {
4539 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4540 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4541 <  }
4127 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4128   }
4129      break;
4130  
4131    case 180:
4132 <
4133 < /* Line 1464 of yacc.c  */
4548 < #line 1285 "ircd_parser.y"
4132 > /* Line 1792 of yacc.c  */
4133 > #line 1138 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <  {
4552 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4553 <    else yy_aconf->port |= OPER_FLAG_K;
4554 <  }
4136 >    block_state.port.value |= OPER_FLAG_DLINE;
4137   }
4138      break;
4139  
4140    case 181:
4141 <
4142 < /* Line 1464 of yacc.c  */
4561 < #line 1292 "ircd_parser.y"
4141 > /* Line 1792 of yacc.c  */
4142 > #line 1142 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <  {
4565 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4566 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4567 <  }
4145 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4146   }
4147      break;
4148  
4149    case 182:
4150 <
4151 < /* Line 1464 of yacc.c  */
4574 < #line 1299 "ircd_parser.y"
4150 > /* Line 1792 of yacc.c  */
4151 > #line 1146 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <  {
4578 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4579 <    else yy_aconf->port |= OPER_FLAG_X;
4580 <  }
4154 >    block_state.port.value |= OPER_FLAG_X;
4155   }
4156      break;
4157  
4158    case 183:
4159 <
4160 < /* Line 1464 of yacc.c  */
4587 < #line 1306 "ircd_parser.y"
4159 > /* Line 1792 of yacc.c  */
4160 > #line 1150 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <  {
4591 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4592 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4593 <  }
4163 >    block_state.port.value |= OPER_FLAG_GLINE;
4164   }
4165      break;
4166  
4167    case 184:
4168 <
4169 < /* Line 1464 of yacc.c  */
4600 < #line 1313 "ircd_parser.y"
4168 > /* Line 1792 of yacc.c  */
4169 > #line 1154 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <  {
4604 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4605 <    else yy_aconf->port |= OPER_FLAG_DIE;
4606 <  }
4172 >    block_state.port.value |= OPER_FLAG_DIE;
4173   }
4174      break;
4175  
4176    case 185:
4177 <
4178 < /* Line 1464 of yacc.c  */
4613 < #line 1320 "ircd_parser.y"
4177 > /* Line 1792 of yacc.c  */
4178 > #line 1158 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <  {
4617 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4618 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4619 <  }
4181 >    block_state.port.value |= OPER_FLAG_RESTART;
4182   }
4183      break;
4184  
4185    case 186:
4186 <
4187 < /* Line 1464 of yacc.c  */
4626 < #line 1327 "ircd_parser.y"
4186 > /* Line 1792 of yacc.c  */
4187 > #line 1162 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <  {
4630 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4631 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4632 <  }
4190 >    block_state.port.value |= OPER_FLAG_REHASH;
4191   }
4192      break;
4193  
4194    case 187:
4195 <
4196 < /* Line 1464 of yacc.c  */
4639 < #line 1334 "ircd_parser.y"
4195 > /* Line 1792 of yacc.c  */
4196 > #line 1166 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <  {
4643 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4644 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4645 <  }
4199 >    block_state.port.value |= OPER_FLAG_ADMIN;
4200   }
4201      break;
4202  
4203    case 188:
4204 <
4205 < /* Line 1464 of yacc.c  */
4652 < #line 1341 "ircd_parser.y"
4204 > /* Line 1792 of yacc.c  */
4205 > #line 1170 "conf_parser.y"
4206      {
4207    if (conf_parser_ctx.pass == 2)
4208 <  {
4656 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4657 <    else yy_aconf->port |= OPER_FLAG_N;
4658 <  }
4208 >    block_state.port.value |= OPER_FLAG_N;
4209   }
4210      break;
4211  
4212    case 189:
4213 <
4214 < /* Line 1464 of yacc.c  */
4665 < #line 1348 "ircd_parser.y"
4213 > /* Line 1792 of yacc.c  */
4214 > #line 1174 "conf_parser.y"
4215      {
4216    if (conf_parser_ctx.pass == 2)
4217 <  {
4669 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4670 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4671 <  }
4217 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4218   }
4219      break;
4220  
4221    case 190:
4222 <
4223 < /* Line 1464 of yacc.c  */
4678 < #line 1355 "ircd_parser.y"
4222 > /* Line 1792 of yacc.c  */
4223 > #line 1178 "conf_parser.y"
4224      {
4225    if (conf_parser_ctx.pass == 2)
4226 <  {
4682 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
4683 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
4684 <  }
4226 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4227   }
4228      break;
4229  
4230    case 191:
4231 <
4232 < /* Line 1464 of yacc.c  */
4691 < #line 1362 "ircd_parser.y"
4231 > /* Line 1792 of yacc.c  */
4232 > #line 1182 "conf_parser.y"
4233      {
4234    if (conf_parser_ctx.pass == 2)
4235 <  {
4695 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4696 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4697 <  }
4235 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4236   }
4237      break;
4238  
4239    case 192:
4240 <
4241 < /* Line 1464 of yacc.c  */
4704 < #line 1369 "ircd_parser.y"
4240 > /* Line 1792 of yacc.c  */
4241 > #line 1186 "conf_parser.y"
4242      {
4243    if (conf_parser_ctx.pass == 2)
4244 <  {
4708 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4709 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4710 <  }
4244 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4245   }
4246      break;
4247  
4248    case 193:
4249 <
4250 < /* Line 1464 of yacc.c  */
4717 < #line 1376 "ircd_parser.y"
4249 > /* Line 1792 of yacc.c  */
4250 > #line 1190 "conf_parser.y"
4251      {
4252    if (conf_parser_ctx.pass == 2)
4253 <  {
4721 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4722 <    else SetConfEncrypted(yy_aconf);
4723 <  }
4253 >    block_state.port.value |= OPER_FLAG_SET;
4254   }
4255      break;
4256  
4257    case 194:
4258 <
4259 < /* Line 1464 of yacc.c  */
4730 < #line 1389 "ircd_parser.y"
4258 > /* Line 1792 of yacc.c  */
4259 > #line 1194 "conf_parser.y"
4260      {
4261 <  if (conf_parser_ctx.pass == 1)
4262 <  {
4734 <    yy_conf = make_conf_item(CLASS_TYPE);
4735 <    yy_class = map_to_conf(yy_conf);
4736 <  }
4261 >  if (conf_parser_ctx.pass == 2)
4262 >    block_state.port.value |= OPER_FLAG_MODULE;
4263   }
4264      break;
4265  
4266    case 195:
4267 <
4268 < /* Line 1464 of yacc.c  */
4743 < #line 1396 "ircd_parser.y"
4267 > /* Line 1792 of yacc.c  */
4268 > #line 1204 "conf_parser.y"
4269      {
4270 <  if (conf_parser_ctx.pass == 1)
4271 <  {
4747 <    struct ConfItem *cconf = NULL;
4748 <    struct ClassItem *class = NULL;
4270 >  if (conf_parser_ctx.pass != 1)
4271 >    break;
4272  
4273 <    if (yy_class_name == NULL)
4274 <      delete_conf_item(yy_conf);
4275 <    else
4273 >  reset_block_state();
4274 >
4275 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4276 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4277 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4278 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4279 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4280 >
4281 > }
4282 >    break;
4283 >
4284 >  case 196:
4285 > /* Line 1792 of yacc.c  */
4286 > #line 1217 "conf_parser.y"
4287      {
4288 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4288 >  struct ClassItem *class = NULL;
4289  
4290 <      if (cconf != NULL)                /* The class existed already */
4291 <      {
4758 <        int user_count = 0;
4290 >  if (conf_parser_ctx.pass != 1)
4291 >    break;
4292  
4293 <        rebuild_cidr_class(cconf, yy_class);
4293 >  if (!block_state.class.buf[0])
4294 >    break;
4295  
4296 <        class = map_to_conf(cconf);
4296 >  if (!(class = class_find(block_state.class.buf, 0)))
4297 >    class = class_make();
4298  
4299 <        user_count = class->curr_user_count;
4300 <        memcpy(class, yy_class, sizeof(*class));
4301 <        class->curr_user_count = user_count;
4302 <        class->active = 1;
4299 >  class->active = 1;
4300 >  MyFree(class->name);
4301 >  class->name = xstrdup(block_state.class.buf);
4302 >  class->ping_freq = block_state.ping_freq.value;
4303 >  class->max_perip = block_state.max_perip.value;
4304 >  class->con_freq = block_state.con_freq.value;
4305 >  class->max_total = block_state.max_total.value;
4306 >  class->max_global = block_state.max_global.value;
4307 >  class->max_local = block_state.max_local.value;
4308 >  class->max_ident = block_state.max_ident.value;
4309 >  class->max_sendq = block_state.max_sendq.value;
4310 >  class->max_recvq = block_state.max_recvq.value;
4311  
4312 <        delete_conf_item(yy_conf);
4312 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4313 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4314 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4315 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4316 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4317 >        rebuild_cidr_list(class);
4318  
4319 <        MyFree(cconf->name);            /* Allows case change of class name */
4320 <        cconf->name = yy_class_name;
4321 <      }
4322 <      else      /* Brand new class */
4323 <      {
4776 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4777 <        yy_conf->name = yy_class_name;
4778 <        yy_class->active = 1;
4779 <      }
4780 <    }
4319 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4320 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4321 >  class->number_per_cidr = block_state.number_per_cidr.value;
4322 > }
4323 >    break;
4324  
4325 <    yy_class_name = NULL;
4326 <  }
4325 >  case 213:
4326 > /* Line 1792 of yacc.c  */
4327 > #line 1269 "conf_parser.y"
4328 >    {
4329 >  if (conf_parser_ctx.pass == 1)
4330 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4331   }
4332      break;
4333  
4334    case 214:
4335 <
4336 < /* Line 1464 of yacc.c  */
4790 < #line 1456 "ircd_parser.y"
4335 > /* Line 1792 of yacc.c  */
4336 > #line 1275 "conf_parser.y"
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <  {
4794 <    MyFree(yy_class_name);
4795 <    DupString(yy_class_name, yylval.string);
4796 <  }
4339 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4340   }
4341      break;
4342  
4343    case 215:
4344 <
4345 < /* Line 1464 of yacc.c  */
4803 < #line 1465 "ircd_parser.y"
4344 > /* Line 1792 of yacc.c  */
4345 > #line 1281 "conf_parser.y"
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <  {
4807 <    MyFree(yy_class_name);
4808 <    DupString(yy_class_name, yylval.string);
4809 <  }
4348 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4349   }
4350      break;
4351  
4352    case 216:
4353 <
4354 < /* Line 1464 of yacc.c  */
4816 < #line 1474 "ircd_parser.y"
4353 > /* Line 1792 of yacc.c  */
4354 > #line 1287 "conf_parser.y"
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4358   }
4359      break;
4360  
4361    case 217:
4362 <
4363 < /* Line 1464 of yacc.c  */
4826 < #line 1480 "ircd_parser.y"
4362 > /* Line 1792 of yacc.c  */
4363 > #line 1293 "conf_parser.y"
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4367   }
4368      break;
4369  
4370    case 218:
4371 <
4372 < /* Line 1464 of yacc.c  */
4836 < #line 1486 "ircd_parser.y"
4371 > /* Line 1792 of yacc.c  */
4372 > #line 1299 "conf_parser.y"
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4376   }
4377      break;
4378  
4379    case 219:
4380 <
4381 < /* Line 1464 of yacc.c  */
4846 < #line 1492 "ircd_parser.y"
4380 > /* Line 1792 of yacc.c  */
4381 > #line 1305 "conf_parser.y"
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4385   }
4386      break;
4387  
4388    case 220:
4389 <
4390 < /* Line 1464 of yacc.c  */
4856 < #line 1498 "ircd_parser.y"
4389 > /* Line 1792 of yacc.c  */
4390 > #line 1311 "conf_parser.y"
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4394   }
4395      break;
4396  
4397    case 221:
4398 <
4399 < /* Line 1464 of yacc.c  */
4866 < #line 1504 "ircd_parser.y"
4398 > /* Line 1792 of yacc.c  */
4399 > #line 1317 "conf_parser.y"
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4403   }
4404      break;
4405  
4406    case 222:
4407 <
4408 < /* Line 1464 of yacc.c  */
4876 < #line 1510 "ircd_parser.y"
4407 > /* Line 1792 of yacc.c  */
4408 > #line 1323 "conf_parser.y"
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4412 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4413   }
4414      break;
4415  
4416    case 223:
4417 <
4418 < /* Line 1464 of yacc.c  */
4886 < #line 1516 "ircd_parser.y"
4417 > /* Line 1792 of yacc.c  */
4418 > #line 1330 "conf_parser.y"
4419      {
4420    if (conf_parser_ctx.pass == 1)
4421 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4421 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4422   }
4423      break;
4424  
4425    case 224:
4426 <
4427 < /* Line 1464 of yacc.c  */
4896 < #line 1522 "ircd_parser.y"
4426 > /* Line 1792 of yacc.c  */
4427 > #line 1336 "conf_parser.y"
4428      {
4429    if (conf_parser_ctx.pass == 1)
4430 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4430 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4431   }
4432      break;
4433  
4434    case 225:
4435 <
4436 < /* Line 1464 of yacc.c  */
4906 < #line 1528 "ircd_parser.y"
4435 > /* Line 1792 of yacc.c  */
4436 > #line 1342 "conf_parser.y"
4437      {
4438    if (conf_parser_ctx.pass == 1)
4439 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4439 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443    case 226:
4444 <
4445 < /* Line 1464 of yacc.c  */
4916 < #line 1534 "ircd_parser.y"
4917 <    {
4918 <  if (conf_parser_ctx.pass == 1)
4919 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4920 < }
4921 <    break;
4922 <
4923 <  case 227:
4924 <
4925 < /* Line 1464 of yacc.c  */
4926 < #line 1540 "ircd_parser.y"
4927 <    {
4928 <  if (conf_parser_ctx.pass == 1)
4929 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4930 < }
4931 <    break;
4932 <
4933 <  case 228:
4934 <
4935 < /* Line 1464 of yacc.c  */
4936 < #line 1549 "ircd_parser.y"
4937 <    {
4938 <  if (conf_parser_ctx.pass == 2)
4939 <  {
4940 <    listener_address = NULL;
4941 <    listener_flags = 0;
4942 <  }
4943 < }
4944 <    break;
4945 <
4946 <  case 229:
4947 <
4948 < /* Line 1464 of yacc.c  */
4949 < #line 1556 "ircd_parser.y"
4444 > /* Line 1792 of yacc.c  */
4445 > #line 1351 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 2)
4448 <  {
4953 <    MyFree(listener_address);
4954 <    listener_address = NULL;
4955 <  }
4448 >    reset_block_state();
4449   }
4450      break;
4451  
4452 <  case 230:
4453 <
4454 < /* Line 1464 of yacc.c  */
4962 < #line 1565 "ircd_parser.y"
4452 >  case 228:
4453 > /* Line 1792 of yacc.c  */
4454 > #line 1357 "conf_parser.y"
4455      {
4456 <  listener_flags = 0;
4456 >  block_state.flags.value = 0;
4457   }
4458      break;
4459  
4460 <  case 234:
4461 <
4462 < /* Line 1464 of yacc.c  */
4971 < #line 1571 "ircd_parser.y"
4460 >  case 232:
4461 > /* Line 1792 of yacc.c  */
4462 > #line 1363 "conf_parser.y"
4463      {
4464    if (conf_parser_ctx.pass == 2)
4465 <    listener_flags |= LISTENER_SSL;
4465 >    block_state.flags.value |= LISTENER_SSL;
4466   }
4467      break;
4468  
4469 <  case 235:
4470 <
4471 < /* Line 1464 of yacc.c  */
4981 < #line 1575 "ircd_parser.y"
4469 >  case 233:
4470 > /* Line 1792 of yacc.c  */
4471 > #line 1367 "conf_parser.y"
4472      {
4473    if (conf_parser_ctx.pass == 2)
4474 <    listener_flags |= LISTENER_HIDDEN;
4474 >    block_state.flags.value |= LISTENER_HIDDEN;
4475   }
4476      break;
4477  
4478 <  case 236:
4479 <
4480 < /* Line 1464 of yacc.c  */
4991 < #line 1579 "ircd_parser.y"
4478 >  case 234:
4479 > /* Line 1792 of yacc.c  */
4480 > #line 1371 "conf_parser.y"
4481      {
4482    if (conf_parser_ctx.pass == 2)
4483 <    listener_flags |= LISTENER_SERVER;
4483 >   block_state.flags.value |= LISTENER_SERVER;
4484   }
4485      break;
4486  
4487 <  case 244:
4488 <
4489 < /* Line 1464 of yacc.c  */
4490 < #line 1589 "ircd_parser.y"
5002 <    { listener_flags = 0; }
4487 >  case 242:
4488 > /* Line 1792 of yacc.c  */
4489 > #line 1379 "conf_parser.y"
4490 >    { block_state.flags.value = 0; }
4491      break;
4492  
4493 <  case 248:
4494 <
4495 < /* Line 1464 of yacc.c  */
5008 < #line 1594 "ircd_parser.y"
4493 >  case 246:
4494 > /* Line 1792 of yacc.c  */
4495 > #line 1384 "conf_parser.y"
4496      {
4497    if (conf_parser_ctx.pass == 2)
4498    {
4499 <    if ((listener_flags & LISTENER_SSL))
4499 >    if (block_state.flags.value & LISTENER_SSL)
4500   #ifdef HAVE_LIBCRYPTO
4501        if (!ServerInfo.server_ctx)
4502   #endif
# Line 5017 | Line 4504 | yyreduce:
4504          yyerror("SSL not available - port closed");
4505          break;
4506        }
4507 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4507 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4508    }
4509   }
4510      break;
4511  
4512 <  case 249:
4513 <
4514 < /* Line 1464 of yacc.c  */
5028 < #line 1608 "ircd_parser.y"
4512 >  case 247:
4513 > /* Line 1792 of yacc.c  */
4514 > #line 1398 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517    {
4518      int i;
4519  
4520 <    if ((listener_flags & LISTENER_SSL))
4520 >    if (block_state.flags.value & LISTENER_SSL)
4521   #ifdef HAVE_LIBCRYPTO
4522        if (!ServerInfo.server_ctx)
4523   #endif
# Line 5041 | Line 4527 | yyreduce:
4527        }
4528  
4529      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4530 <      add_listener(i, listener_address, listener_flags);
4530 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4531    }
4532   }
4533      break;
4534  
4535 <  case 250:
4536 <
4537 < /* Line 1464 of yacc.c  */
5052 < #line 1628 "ircd_parser.y"
4535 >  case 248:
4536 > /* Line 1792 of yacc.c  */
4537 > #line 1418 "conf_parser.y"
4538      {
4539    if (conf_parser_ctx.pass == 2)
4540 <  {
5056 <    MyFree(listener_address);
5057 <    DupString(listener_address, yylval.string);
5058 <  }
4540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4541   }
4542      break;
4543  
4544 <  case 251:
4545 <
4546 < /* Line 1464 of yacc.c  */
5065 < #line 1637 "ircd_parser.y"
4544 >  case 249:
4545 > /* Line 1792 of yacc.c  */
4546 > #line 1424 "conf_parser.y"
4547      {
4548    if (conf_parser_ctx.pass == 2)
4549 <  {
5069 <    MyFree(listener_address);
5070 <    DupString(listener_address, yylval.string);
5071 <  }
4549 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4550   }
4551      break;
4552  
4553 <  case 252:
4554 <
4555 < /* Line 1464 of yacc.c  */
5078 < #line 1649 "ircd_parser.y"
4553 >  case 250:
4554 > /* Line 1792 of yacc.c  */
4555 > #line 1433 "conf_parser.y"
4556      {
4557    if (conf_parser_ctx.pass == 2)
4558 <  {
5082 <    yy_conf = make_conf_item(CLIENT_TYPE);
5083 <    yy_aconf = map_to_conf(yy_conf);
5084 <  }
5085 <  else
5086 <  {
5087 <    MyFree(class_name);
5088 <    class_name = NULL;
5089 <  }
4558 >    reset_block_state();
4559   }
4560      break;
4561  
4562 <  case 253:
4563 <
4564 < /* Line 1464 of yacc.c  */
5096 < #line 1661 "ircd_parser.y"
5097 <    {
5098 <  if (conf_parser_ctx.pass == 2)
5099 <  {
5100 <    struct CollectItem *yy_tmp = NULL;
5101 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5102 <
5103 <    if (yy_aconf->user && yy_aconf->host)
5104 <    {
5105 <      conf_add_class_to_conf(yy_conf, class_name);
5106 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5107 <    }
5108 <    else
5109 <      delete_conf_item(yy_conf);
5110 <
5111 <    /* copy over settings from first struct */
5112 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4562 >  case 251:
4563 > /* Line 1792 of yacc.c  */
4564 > #line 1437 "conf_parser.y"
4565      {
4566 <      struct AccessItem *new_aconf;
5115 <      struct ConfItem *new_conf;
5116 <
5117 <      new_conf = make_conf_item(CLIENT_TYPE);
5118 <      new_aconf = map_to_conf(new_conf);
5119 <
5120 <      yy_tmp = ptr->data;
5121 <
5122 <      assert(yy_tmp->user && yy_tmp->host);
5123 <
5124 <      if (yy_aconf->passwd != NULL)
5125 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5126 <      if (yy_conf->name != NULL)
5127 <        DupString(new_conf->name, yy_conf->name);
5128 <      if (yy_aconf->passwd != NULL)
5129 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5130 <
5131 <      new_aconf->flags = yy_aconf->flags;
5132 <      new_aconf->port  = yy_aconf->port;
4566 >  dlink_node *ptr = NULL;
4567  
4568 <      DupString(new_aconf->user, yy_tmp->user);
5135 <      collapse(new_aconf->user);
5136 <
5137 <      DupString(new_aconf->host, yy_tmp->host);
5138 <      collapse(new_aconf->host);
5139 <
5140 <      conf_add_class_to_conf(new_conf, class_name);
5141 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5142 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5143 <      free_collect_item(yy_tmp);
5144 <    }
5145 <
5146 <    MyFree(class_name);
5147 <    class_name = NULL;
5148 <    yy_conf = NULL;
5149 <    yy_aconf = NULL;
5150 <  }
5151 < }
4568 >  if (conf_parser_ctx.pass != 2)
4569      break;
4570  
4571 <  case 265:
5155 <
5156 < /* Line 1464 of yacc.c  */
5157 < #line 1723 "ircd_parser.y"
5158 <    {
5159 <  if (conf_parser_ctx.pass == 2)
4571 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4572    {
4573 <    struct CollectItem *yy_tmp = NULL;
4573 >    struct MaskItem *conf = NULL;
4574      struct split_nuh_item nuh;
4575  
4576 <    nuh.nuhmask  = yylval.string;
4576 >    nuh.nuhmask  = ptr->data;
4577      nuh.nickptr  = NULL;
4578 <    nuh.userptr  = userbuf;
4579 <    nuh.hostptr  = hostbuf;
5168 <
4578 >    nuh.userptr  = block_state.user.buf;
4579 >    nuh.hostptr  = block_state.host.buf;
4580      nuh.nicksize = 0;
4581 <    nuh.usersize = sizeof(userbuf);
4582 <    nuh.hostsize = sizeof(hostbuf);
5172 <
4581 >    nuh.usersize = sizeof(block_state.user.buf);
4582 >    nuh.hostsize = sizeof(block_state.host.buf);
4583      split_nuh(&nuh);
4584  
4585 <    if (yy_aconf->user == NULL)
4586 <    {
4587 <      DupString(yy_aconf->user, userbuf);
5178 <      DupString(yy_aconf->host, hostbuf);
5179 <    }
5180 <    else
5181 <    {
5182 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4585 >    conf        = conf_make(CONF_CLIENT);
4586 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4587 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4588  
4589 <      DupString(yy_tmp->user, userbuf);
4590 <      DupString(yy_tmp->host, hostbuf);
4589 >    if (block_state.rpass.buf[0])
4590 >      conf->passwd = xstrdup(block_state.rpass.buf);
4591 >    if (block_state.name.buf[0])
4592 >      conf->passwd = xstrdup(block_state.name.buf);
4593  
4594 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4595 <    }
4594 >    conf->flags = block_state.flags.value;
4595 >    conf->port  = block_state.port.value;
4596 >
4597 >    conf_add_class_to_conf(conf, block_state.class.buf);
4598 >    add_conf_by_address(CONF_CLIENT, conf);
4599    }
4600   }
4601      break;
4602  
4603 <  case 266:
4604 <
4605 < /* Line 1464 of yacc.c  */
5196 < #line 1760 "ircd_parser.y"
4603 >  case 263:
4604 > /* Line 1792 of yacc.c  */
4605 > #line 1480 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608 <  {
5200 <    /* be paranoid */
5201 <    if (yy_aconf->passwd != NULL)
5202 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5203 <
5204 <    MyFree(yy_aconf->passwd);
5205 <    DupString(yy_aconf->passwd, yylval.string);
5206 <  }
4608 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4609   }
4610      break;
4611  
4612 <  case 267:
4613 <
4614 < /* Line 1464 of yacc.c  */
5213 < #line 1773 "ircd_parser.y"
4612 >  case 264:
4613 > /* Line 1792 of yacc.c  */
4614 > #line 1486 "conf_parser.y"
4615      {
4616    if (conf_parser_ctx.pass == 2)
4617 <  {
5217 <    MyFree(class_name);
5218 <    DupString(class_name, yylval.string);
5219 <  }
4617 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4618   }
4619      break;
4620  
4621 <  case 268:
4621 >  case 265:
4622 > /* Line 1792 of yacc.c  */
4623 > #line 1492 "conf_parser.y"
4624 >    {
4625 >  if (conf_parser_ctx.pass == 2)
4626 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4627 > }
4628 >    break;
4629  
4630 < /* Line 1464 of yacc.c  */
4631 < #line 1782 "ircd_parser.y"
4630 >  case 266:
4631 > /* Line 1792 of yacc.c  */
4632 > #line 1498 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635    {
4636      if (yylval.number)
4637 <      SetConfEncrypted(yy_aconf);
4637 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4638      else
4639 <      ClearConfEncrypted(yy_aconf);
4639 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4640    }
4641   }
4642      break;
4643  
4644 <  case 269:
4645 <
4646 < /* Line 1464 of yacc.c  */
5241 < #line 1793 "ircd_parser.y"
4644 >  case 267:
4645 > /* Line 1792 of yacc.c  */
4646 > #line 1509 "conf_parser.y"
4647      {
4648 +  if (conf_parser_ctx.pass == 2)
4649 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4650   }
4651      break;
4652  
4653 <  case 273:
4654 <
4655 < /* Line 1464 of yacc.c  */
4656 < #line 1797 "ircd_parser.y"
4657 <    { not_atom = 1; }
4658 <    break;
4659 <
5253 <  case 275:
5254 <
5255 < /* Line 1464 of yacc.c  */
5256 < #line 1798 "ircd_parser.y"
5257 <    { not_atom = 0; }
4653 >  case 271:
4654 > /* Line 1792 of yacc.c  */
4655 > #line 1516 "conf_parser.y"
4656 >    {
4657 >  if (conf_parser_ctx.pass == 2)
4658 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4659 > }
4660      break;
4661  
4662 <  case 277:
4663 <
4664 < /* Line 1464 of yacc.c  */
5263 < #line 1801 "ircd_parser.y"
4662 >  case 272:
4663 > /* Line 1792 of yacc.c  */
4664 > #line 1520 "conf_parser.y"
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667 <  {
5267 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5268 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5269 <  }
4667 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4668   }
4669      break;
4670  
4671 <  case 278:
4672 <
4673 < /* Line 1464 of yacc.c  */
5276 < #line 1808 "ircd_parser.y"
4671 >  case 273:
4672 > /* Line 1792 of yacc.c  */
4673 > #line 1524 "conf_parser.y"
4674      {
4675    if (conf_parser_ctx.pass == 2)
4676 <  {
5280 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5281 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5282 <  }
4676 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4677   }
4678      break;
4679  
4680 <  case 279:
4681 <
4682 < /* Line 1464 of yacc.c  */
5289 < #line 1815 "ircd_parser.y"
4680 >  case 274:
4681 > /* Line 1792 of yacc.c  */
4682 > #line 1528 "conf_parser.y"
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685 <  {
5293 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5294 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5295 <  }
4685 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4686   }
4687      break;
4688  
4689 <  case 280:
4690 <
4691 < /* Line 1464 of yacc.c  */
5302 < #line 1822 "ircd_parser.y"
4689 >  case 275:
4690 > /* Line 1792 of yacc.c  */
4691 > #line 1532 "conf_parser.y"
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694 <  {
5306 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5307 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5308 <  }
4694 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4695   }
4696      break;
4697  
4698 <  case 281:
4699 <
4700 < /* Line 1464 of yacc.c  */
5315 < #line 1829 "ircd_parser.y"
4698 >  case 276:
4699 > /* Line 1792 of yacc.c  */
4700 > #line 1536 "conf_parser.y"
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703 <  {
5319 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5320 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5321 <  }
4703 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4704   }
4705      break;
4706  
4707 <  case 282:
4708 <
4709 < /* Line 1464 of yacc.c  */
5328 < #line 1836 "ircd_parser.y"
4707 >  case 277:
4708 > /* Line 1792 of yacc.c  */
4709 > #line 1540 "conf_parser.y"
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712 <  {
5332 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5333 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5334 <  }
4712 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4713   }
4714      break;
4715  
4716 <  case 283:
4717 <
4718 < /* Line 1464 of yacc.c  */
5341 < #line 1843 "ircd_parser.y"
4716 >  case 278:
4717 > /* Line 1792 of yacc.c  */
4718 > #line 1544 "conf_parser.y"
4719      {
4720    if (conf_parser_ctx.pass == 2)
4721 <  {
5345 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5346 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5347 <  }
4721 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4722   }
4723      break;
4724  
4725 <  case 284:
4726 <
4727 < /* Line 1464 of yacc.c  */
5354 < #line 1850 "ircd_parser.y"
4725 >  case 279:
4726 > /* Line 1792 of yacc.c  */
4727 > #line 1548 "conf_parser.y"
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730 <  {
5358 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5359 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5360 <  }
4730 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4731   }
4732      break;
4733  
4734 <  case 285:
4735 <
4736 < /* Line 1464 of yacc.c  */
5367 < #line 1857 "ircd_parser.y"
4734 >  case 280:
4735 > /* Line 1792 of yacc.c  */
4736 > #line 1552 "conf_parser.y"
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739 <  {
5371 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5372 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5373 <  }
4739 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4740   }
4741      break;
4742  
4743 <  case 286:
4744 <
4745 < /* Line 1464 of yacc.c  */
5380 < #line 1864 "ircd_parser.y"
4743 >  case 281:
4744 > /* Line 1792 of yacc.c  */
4745 > #line 1558 "conf_parser.y"
4746      {
4747 <  if (conf_parser_ctx.pass == 2)
4747 >  if (conf_parser_ctx.pass != 2)
4748 >    break;
4749 >
4750 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4751    {
4752 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
4753 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4752 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4753 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4754    }
4755 +  else
4756 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4757   }
4758      break;
4759  
4760 <  case 287:
4761 <
4762 < /* Line 1464 of yacc.c  */
5393 < #line 1874 "ircd_parser.y"
4760 >  case 282:
4761 > /* Line 1792 of yacc.c  */
4762 > #line 1572 "conf_parser.y"
4763      {
4764 <  if (conf_parser_ctx.pass == 2)
4765 <  {
5397 <    MyFree(yy_conf->name);
4764 >  if (conf_parser_ctx.pass != 2)
4765 >    break;
4766  
4767 <    if (strlen(yylval.string) < HOSTLEN)
4768 <    {    
5401 <      DupString(yy_conf->name, yylval.string);
5402 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5403 <    }
5404 <    else
5405 <    {
5406 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5407 <      yy_conf->name = NULL;
5408 <    }
5409 <  }
4767 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4768 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4769   }
4770      break;
4771  
4772 <  case 288:
4773 <
4774 < /* Line 1464 of yacc.c  */
5416 < #line 1893 "ircd_parser.y"
4772 >  case 283:
4773 > /* Line 1792 of yacc.c  */
4774 > #line 1581 "conf_parser.y"
4775      {
4776 <  if (conf_parser_ctx.pass == 2)
5419 <  {
5420 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5421 <    MyFree(yy_conf->name);
5422 <    DupString(yy_conf->name, yylval.string);
5423 <  }
5424 < }
4776 >  if (conf_parser_ctx.pass != 2)
4777      break;
4778  
4779 <  case 289:
4779 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4780 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4781 > }
4782 >    break;
4783  
4784 < /* Line 1464 of yacc.c  */
4785 < #line 1903 "ircd_parser.y"
4784 >  case 284:
4785 > /* Line 1792 of yacc.c  */
4786 > #line 1594 "conf_parser.y"
4787      {
4788 <  if (conf_parser_ctx.pass == 2)
5433 <  {
5434 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5435 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5436 <  }
5437 < }
4788 >  if (conf_parser_ctx.pass != 2)
4789      break;
4790  
4791 <  case 290:
4791 >  reset_block_state();
4792 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4793 > }
4794 >    break;
4795  
4796 < /* Line 1464 of yacc.c  */
4797 < #line 1916 "ircd_parser.y"
4796 >  case 292:
4797 > /* Line 1792 of yacc.c  */
4798 > #line 1606 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801 <  {
5447 <    MyFree(resv_reason);
5448 <    resv_reason = NULL;
5449 <  }
4801 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4802   }
4803      break;
4804  
4805 <  case 291:
4806 <
4807 < /* Line 1464 of yacc.c  */
5456 < #line 1923 "ircd_parser.y"
4805 >  case 293:
4806 > /* Line 1792 of yacc.c  */
4807 > #line 1612 "conf_parser.y"
4808      {
4809 <  if (conf_parser_ctx.pass == 2)
5459 <  {
5460 <    MyFree(resv_reason);
5461 <    resv_reason = NULL;
5462 <  }
5463 < }
4809 >  if (conf_parser_ctx.pass != 2)
4810      break;
4811  
4812 <  case 298:
4812 >  if (IsChanPrefix(*yylval.string))
4813 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4814 > }
4815 >    break;
4816  
4817 < /* Line 1464 of yacc.c  */
4818 < #line 1935 "ircd_parser.y"
4817 >  case 294:
4818 > /* Line 1792 of yacc.c  */
4819 > #line 1621 "conf_parser.y"
4820      {
4821    if (conf_parser_ctx.pass == 2)
4822 <  {
5473 <    MyFree(resv_reason);
5474 <    DupString(resv_reason, yylval.string);
5475 <  }
4822 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4823   }
4824      break;
4825  
4826 <  case 299:
4827 <
4828 < /* Line 1464 of yacc.c  */
5482 < #line 1944 "ircd_parser.y"
4826 >  case 300:
4827 > /* Line 1792 of yacc.c  */
4828 > #line 1635 "conf_parser.y"
4829      {
4830    if (conf_parser_ctx.pass == 2)
4831    {
4832 <    if (IsChanPrefix(*yylval.string))
4832 >    if (valid_servname(yylval.string))
4833      {
4834 <      char def_reason[] = "No reason";
4835 <
5490 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4834 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4835 >      conf->name = xstrdup(yylval.string);
4836      }
4837    }
5493  /* ignore it for now.. but we really should make a warning if
5494   * its an erroneous name --fl_ */
4838   }
4839      break;
4840  
4841 <  case 300:
4842 <
4843 < /* Line 1464 of yacc.c  */
5501 < #line 1959 "ircd_parser.y"
4841 >  case 301:
4842 > /* Line 1792 of yacc.c  */
4843 > #line 1650 "conf_parser.y"
4844      {
4845 <  if (conf_parser_ctx.pass == 2)
5504 <  {
5505 <    char def_reason[] = "No reason";
5506 <
5507 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5508 <  }
5509 < }
4845 >  if (conf_parser_ctx.pass != 2)
4846      break;
4847  
4848 <  case 301:
4848 >  reset_block_state();
4849  
4850 < /* Line 1464 of yacc.c  */
4851 < #line 1972 "ircd_parser.y"
4852 <    {
4853 <  if (conf_parser_ctx.pass == 2)
5518 <  {
5519 <    yy_conf = make_conf_item(ULINE_TYPE);
5520 <    yy_match_item = map_to_conf(yy_conf);
5521 <    yy_match_item->action = SHARED_ALL;
5522 <  }
4850 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4851 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4852 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4853 >  block_state.flags.value = SHARED_ALL;
4854   }
4855      break;
4856  
4857    case 302:
4858 <
4859 < /* Line 1464 of yacc.c  */
5529 < #line 1980 "ircd_parser.y"
4858 > /* Line 1792 of yacc.c  */
4859 > #line 1661 "conf_parser.y"
4860      {
4861 <  if (conf_parser_ctx.pass == 2)
4862 <  {
4863 <    yy_conf = NULL;
4864 <  }
4861 >  struct MaskItem *conf = NULL;
4862 >
4863 >  if (conf_parser_ctx.pass != 2)
4864 >    break;
4865 >
4866 >  conf = conf_make(CONF_ULINE);
4867 >  conf->flags = block_state.flags.value;
4868 >  conf->name = xstrdup(block_state.name.buf);
4869 >  conf->user = xstrdup(block_state.user.buf);
4870 >  conf->user = xstrdup(block_state.host.buf);
4871   }
4872      break;
4873  
4874    case 309:
4875 <
4876 < /* Line 1464 of yacc.c  */
5541 < #line 1991 "ircd_parser.y"
4875 > /* Line 1792 of yacc.c  */
4876 > #line 1678 "conf_parser.y"
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879 <  {
5545 <    MyFree(yy_conf->name);
5546 <    DupString(yy_conf->name, yylval.string);
5547 <  }
4879 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4880   }
4881      break;
4882  
4883    case 310:
4884 <
4885 < /* Line 1464 of yacc.c  */
5554 < #line 2000 "ircd_parser.y"
4884 > /* Line 1792 of yacc.c  */
4885 > #line 1684 "conf_parser.y"
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888    {
# Line 5559 | Line 4890 | yyreduce:
4890  
4891      nuh.nuhmask  = yylval.string;
4892      nuh.nickptr  = NULL;
4893 <    nuh.userptr  = userbuf;
4894 <    nuh.hostptr  = hostbuf;
4893 >    nuh.userptr  = block_state.user.buf;
4894 >    nuh.hostptr  = block_state.host.buf;
4895  
4896      nuh.nicksize = 0;
4897 <    nuh.usersize = sizeof(userbuf);
4898 <    nuh.hostsize = sizeof(hostbuf);
4897 >    nuh.usersize = sizeof(block_state.user.buf);
4898 >    nuh.hostsize = sizeof(block_state.host.buf);
4899  
4900      split_nuh(&nuh);
5570
5571    DupString(yy_match_item->user, userbuf);
5572    DupString(yy_match_item->host, hostbuf);
4901    }
4902   }
4903      break;
4904  
4905    case 311:
4906 <
4907 < /* Line 1464 of yacc.c  */
5580 < #line 2022 "ircd_parser.y"
4906 > /* Line 1792 of yacc.c  */
4907 > #line 1703 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <    yy_match_item->action = 0;
4910 >    block_state.flags.value = 0;
4911   }
4912      break;
4913  
4914    case 315:
4915 <
4916 < /* Line 1464 of yacc.c  */
5590 < #line 2029 "ircd_parser.y"
4915 > /* Line 1792 of yacc.c  */
4916 > #line 1710 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919 <    yy_match_item->action |= SHARED_KLINE;
4919 >    block_state.flags.value |= SHARED_KLINE;
4920   }
4921      break;
4922  
4923    case 316:
4924 <
4925 < /* Line 1464 of yacc.c  */
5600 < #line 2033 "ircd_parser.y"
4924 > /* Line 1792 of yacc.c  */
4925 > #line 1714 "conf_parser.y"
4926      {
4927    if (conf_parser_ctx.pass == 2)
4928 <    yy_match_item->action |= SHARED_TKLINE;
4928 >    block_state.flags.value |= SHARED_UNKLINE;
4929   }
4930      break;
4931  
4932    case 317:
4933 <
4934 < /* Line 1464 of yacc.c  */
5610 < #line 2037 "ircd_parser.y"
4933 > /* Line 1792 of yacc.c  */
4934 > #line 1718 "conf_parser.y"
4935      {
4936    if (conf_parser_ctx.pass == 2)
4937 <    yy_match_item->action |= SHARED_UNKLINE;
4937 >    block_state.flags.value |= SHARED_DLINE;
4938   }
4939      break;
4940  
4941    case 318:
4942 <
4943 < /* Line 1464 of yacc.c  */
5620 < #line 2041 "ircd_parser.y"
4942 > /* Line 1792 of yacc.c  */
4943 > #line 1722 "conf_parser.y"
4944      {
4945    if (conf_parser_ctx.pass == 2)
4946 <    yy_match_item->action |= SHARED_XLINE;
4946 >    block_state.flags.value |= SHARED_UNDLINE;
4947   }
4948      break;
4949  
4950    case 319:
4951 <
4952 < /* Line 1464 of yacc.c  */
5630 < #line 2045 "ircd_parser.y"
4951 > /* Line 1792 of yacc.c  */
4952 > #line 1726 "conf_parser.y"
4953      {
4954    if (conf_parser_ctx.pass == 2)
4955 <    yy_match_item->action |= SHARED_TXLINE;
4955 >    block_state.flags.value |= SHARED_XLINE;
4956   }
4957      break;
4958  
4959    case 320:
4960 <
4961 < /* Line 1464 of yacc.c  */
5640 < #line 2049 "ircd_parser.y"
4960 > /* Line 1792 of yacc.c  */
4961 > #line 1730 "conf_parser.y"
4962      {
4963    if (conf_parser_ctx.pass == 2)
4964 <    yy_match_item->action |= SHARED_UNXLINE;
4964 >    block_state.flags.value |= SHARED_UNXLINE;
4965   }
4966      break;
4967  
4968    case 321:
4969 <
4970 < /* Line 1464 of yacc.c  */
5650 < #line 2053 "ircd_parser.y"
4969 > /* Line 1792 of yacc.c  */
4970 > #line 1734 "conf_parser.y"
4971      {
4972    if (conf_parser_ctx.pass == 2)
4973 <    yy_match_item->action |= SHARED_RESV;
4973 >    block_state.flags.value |= SHARED_RESV;
4974   }
4975      break;
4976  
4977    case 322:
4978 <
4979 < /* Line 1464 of yacc.c  */
5660 < #line 2057 "ircd_parser.y"
4978 > /* Line 1792 of yacc.c  */
4979 > #line 1738 "conf_parser.y"
4980      {
4981    if (conf_parser_ctx.pass == 2)
4982 <    yy_match_item->action |= SHARED_TRESV;
4982 >    block_state.flags.value |= SHARED_UNRESV;
4983   }
4984      break;
4985  
4986    case 323:
4987 <
4988 < /* Line 1464 of yacc.c  */
5670 < #line 2061 "ircd_parser.y"
4987 > /* Line 1792 of yacc.c  */
4988 > #line 1742 "conf_parser.y"
4989      {
4990    if (conf_parser_ctx.pass == 2)
4991 <    yy_match_item->action |= SHARED_UNRESV;
4991 >    block_state.flags.value |= SHARED_LOCOPS;
4992   }
4993      break;
4994  
4995    case 324:
4996 <
4997 < /* Line 1464 of yacc.c  */
5680 < #line 2065 "ircd_parser.y"
4996 > /* Line 1792 of yacc.c  */
4997 > #line 1746 "conf_parser.y"
4998      {
4999    if (conf_parser_ctx.pass == 2)
5000 <    yy_match_item->action |= SHARED_LOCOPS;
5000 >    block_state.flags.value = SHARED_ALL;
5001   }
5002      break;
5003  
5004    case 325:
5005 <
5006 < /* Line 1464 of yacc.c  */
5690 < #line 2069 "ircd_parser.y"
5005 > /* Line 1792 of yacc.c  */
5006 > #line 1755 "conf_parser.y"
5007      {
5008 <  if (conf_parser_ctx.pass == 2)
5009 <    yy_match_item->action = SHARED_ALL;
5008 >  if (conf_parser_ctx.pass != 2)
5009 >    break;
5010 >
5011 >  reset_block_state();
5012 >
5013 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015   }
5016      break;
5017  
5018    case 326:
5019 <
5020 < /* Line 1464 of yacc.c  */
5700 < #line 2078 "ircd_parser.y"
5019 > /* Line 1792 of yacc.c  */
5020 > #line 1764 "conf_parser.y"
5021      {
5022 <  if (conf_parser_ctx.pass == 2)
5023 <  {
5024 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5705 <    yy_conf->flags = SHARED_ALL;
5706 <  }
5707 < }
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025      break;
5026  
5027 <  case 327:
5027 >  conf = conf_make(CONF_CLUSTER);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030 > }
5031 >    break;
5032  
5033 < /* Line 1464 of yacc.c  */
5034 < #line 2085 "ircd_parser.y"
5033 >  case 332:
5034 > /* Line 1792 of yacc.c  */
5035 > #line 1779 "conf_parser.y"
5036      {
5037    if (conf_parser_ctx.pass == 2)
5038 <  {
5717 <    if (yy_conf->name == NULL)
5718 <      DupString(yy_conf->name, "*");
5719 <    yy_conf = NULL;
5720 <  }
5038 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5039   }
5040      break;
5041  
5042    case 333:
5043 <
5044 < /* Line 1464 of yacc.c  */
5727 < #line 2098 "ircd_parser.y"
5043 > /* Line 1792 of yacc.c  */
5044 > #line 1785 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047 <    DupString(yy_conf->name, yylval.string);
5047 >    block_state.flags.value = 0;
5048   }
5049      break;
5050  
5051 <  case 334:
5052 <
5053 < /* Line 1464 of yacc.c  */
5737 < #line 2104 "ircd_parser.y"
5051 >  case 337:
5052 > /* Line 1792 of yacc.c  */
5053 > #line 1792 "conf_parser.y"
5054      {
5055    if (conf_parser_ctx.pass == 2)
5056 <    yy_conf->flags = 0;
5056 >    block_state.flags.value |= SHARED_KLINE;
5057   }
5058      break;
5059  
5060    case 338:
5061 <
5062 < /* Line 1464 of yacc.c  */
5747 < #line 2111 "ircd_parser.y"
5061 > /* Line 1792 of yacc.c  */
5062 > #line 1796 "conf_parser.y"
5063      {
5064    if (conf_parser_ctx.pass == 2)
5065 <    yy_conf->flags |= SHARED_KLINE;
5065 >    block_state.flags.value |= SHARED_UNKLINE;
5066   }
5067      break;
5068  
5069    case 339:
5070 <
5071 < /* Line 1464 of yacc.c  */
5757 < #line 2115 "ircd_parser.y"
5070 > /* Line 1792 of yacc.c  */
5071 > #line 1800 "conf_parser.y"
5072      {
5073    if (conf_parser_ctx.pass == 2)
5074 <    yy_conf->flags |= SHARED_TKLINE;
5074 >    block_state.flags.value |= SHARED_DLINE;
5075   }
5076      break;
5077  
5078    case 340:
5079 <
5080 < /* Line 1464 of yacc.c  */
5767 < #line 2119 "ircd_parser.y"
5079 > /* Line 1792 of yacc.c  */
5080 > #line 1804 "conf_parser.y"
5081      {
5082    if (conf_parser_ctx.pass == 2)
5083 <    yy_conf->flags |= SHARED_UNKLINE;
5083 >    block_state.flags.value |= SHARED_UNDLINE;
5084   }
5085      break;
5086  
5087    case 341:
5088 <
5089 < /* Line 1464 of yacc.c  */
5777 < #line 2123 "ircd_parser.y"
5088 > /* Line 1792 of yacc.c  */
5089 > #line 1808 "conf_parser.y"
5090      {
5091    if (conf_parser_ctx.pass == 2)
5092 <    yy_conf->flags |= SHARED_XLINE;
5092 >    block_state.flags.value |= SHARED_XLINE;
5093   }
5094      break;
5095  
5096    case 342:
5097 <
5098 < /* Line 1464 of yacc.c  */
5787 < #line 2127 "ircd_parser.y"
5097 > /* Line 1792 of yacc.c  */
5098 > #line 1812 "conf_parser.y"
5099      {
5100    if (conf_parser_ctx.pass == 2)
5101 <    yy_conf->flags |= SHARED_TXLINE;
5101 >    block_state.flags.value |= SHARED_UNXLINE;
5102   }
5103      break;
5104  
5105    case 343:
5106 <
5107 < /* Line 1464 of yacc.c  */
5797 < #line 2131 "ircd_parser.y"
5106 > /* Line 1792 of yacc.c  */
5107 > #line 1816 "conf_parser.y"
5108      {
5109    if (conf_parser_ctx.pass == 2)
5110 <    yy_conf->flags |= SHARED_UNXLINE;
5110 >    block_state.flags.value |= SHARED_RESV;
5111   }
5112      break;
5113  
5114    case 344:
5115 <
5116 < /* Line 1464 of yacc.c  */
5807 < #line 2135 "ircd_parser.y"
5115 > /* Line 1792 of yacc.c  */
5116 > #line 1820 "conf_parser.y"
5117      {
5118    if (conf_parser_ctx.pass == 2)
5119 <    yy_conf->flags |= SHARED_RESV;
5119 >    block_state.flags.value |= SHARED_UNRESV;
5120   }
5121      break;
5122  
5123    case 345:
5124 <
5125 < /* Line 1464 of yacc.c  */
5817 < #line 2139 "ircd_parser.y"
5124 > /* Line 1792 of yacc.c  */
5125 > #line 1824 "conf_parser.y"
5126      {
5127    if (conf_parser_ctx.pass == 2)
5128 <    yy_conf->flags |= SHARED_TRESV;
5128 >    block_state.flags.value |= SHARED_LOCOPS;
5129   }
5130      break;
5131  
5132    case 346:
5133 <
5134 < /* Line 1464 of yacc.c  */
5827 < #line 2143 "ircd_parser.y"
5133 > /* Line 1792 of yacc.c  */
5134 > #line 1828 "conf_parser.y"
5135      {
5136    if (conf_parser_ctx.pass == 2)
5137 <    yy_conf->flags |= SHARED_UNRESV;
5137 >    block_state.flags.value = SHARED_ALL;
5138   }
5139      break;
5140  
5141    case 347:
5142 <
5143 < /* Line 1464 of yacc.c  */
5837 < #line 2147 "ircd_parser.y"
5142 > /* Line 1792 of yacc.c  */
5143 > #line 1837 "conf_parser.y"
5144      {
5839  if (conf_parser_ctx.pass == 2)
5840    yy_conf->flags |= SHARED_LOCOPS;
5841 }
5842    break;
5145  
5146 <  case 348:
5845 <
5846 < /* Line 1464 of yacc.c  */
5847 < #line 2151 "ircd_parser.y"
5848 <    {
5849 <  if (conf_parser_ctx.pass == 2)
5850 <    yy_conf->flags = SHARED_ALL;
5851 < }
5146 >  if (conf_parser_ctx.pass != 2)
5147      break;
5148  
5149 <  case 349:
5150 <
5856 < /* Line 1464 of yacc.c  */
5857 < #line 2160 "ircd_parser.y"
5858 <    {
5859 <  if (conf_parser_ctx.pass == 2)
5860 <  {
5861 <    yy_conf = make_conf_item(SERVER_TYPE);
5862 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
5863 <    yy_aconf->passwd = NULL;
5864 <    /* defaults */
5865 <    yy_aconf->port = PORTNUM;
5866 <
5867 <    if (ConfigFileEntry.burst_away)
5868 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
5869 <  }
5870 <  else
5871 <  {
5872 <    MyFree(class_name);
5873 <    class_name = NULL;
5874 <  }
5149 >  reset_block_state();
5150 >  block_state.port.value = PORTNUM;
5151   }
5152      break;
5153  
5154 <  case 350:
5155 <
5156 < /* Line 1464 of yacc.c  */
5881 < #line 2178 "ircd_parser.y"
5154 >  case 348:
5155 > /* Line 1792 of yacc.c  */
5156 > #line 1845 "conf_parser.y"
5157      {
5158 <  if (conf_parser_ctx.pass == 2)
5159 <  {
5885 <    struct CollectItem *yy_hconf=NULL;
5886 <    struct CollectItem *yy_lconf=NULL;
5887 <    dlink_node *ptr;
5888 <    dlink_node *next_ptr;
5889 < #ifdef HAVE_LIBCRYPTO
5890 <    if (yy_aconf->host &&
5891 <        ((yy_aconf->passwd && yy_aconf->spasswd) ||
5892 <         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
5893 < #else /* !HAVE_LIBCRYPTO */
5894 <      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
5895 <          yy_aconf->passwd && yy_aconf->spasswd)
5896 < #endif /* !HAVE_LIBCRYPTO */
5897 <        {
5898 <          if (conf_add_server(yy_conf, class_name) == -1)
5899 <          {
5900 <            delete_conf_item(yy_conf);
5901 <            yy_conf = NULL;
5902 <            yy_aconf = NULL;
5903 <          }
5904 <        }
5905 <        else
5906 <        {
5907 <          /* Even if yy_conf ->name is NULL
5908 <           * should still unhook any hub/leaf confs still pending
5909 <           */
5910 <          unhook_hub_leaf_confs();
5911 <
5912 <          if (yy_conf->name != NULL)
5913 <          {
5914 < #ifndef HAVE_LIBCRYPTO
5915 <            if (IsConfCryptLink(yy_aconf))
5916 <              yyerror("Ignoring connect block -- no OpenSSL support");
5917 < #else
5918 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
5919 <              yyerror("Ignoring connect block -- missing key");
5920 < #endif
5921 <            if (yy_aconf->host == NULL)
5922 <              yyerror("Ignoring connect block -- missing host");
5923 <            else if (!IsConfCryptLink(yy_aconf) &&
5924 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
5925 <              yyerror("Ignoring connect block -- missing password");
5926 <          }
5927 <
5928 <
5929 <          /* XXX
5930 <           * This fixes a try_connections() core (caused by invalid class_ptr
5931 <           * pointers) reported by metalrock. That's an ugly fix, but there
5932 <           * is currently no better way. The entire config subsystem needs an
5933 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
5934 <           * a doubly linked list immediately without any sanity checks!  -Michael
5935 <           */
5936 <          delete_conf_item(yy_conf);
5937 <
5938 <          yy_aconf = NULL;
5939 <          yy_conf = NULL;
5940 <        }
5941 <
5942 <      /*
5943 <       * yy_conf is still pointing at the server that is having
5944 <       * a connect block built for it. This means, y_aconf->name
5945 <       * points to the actual irc name this server will be known as.
5946 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5947 <       * given in the link list at yy_hconf. Fill in the HUB confs
5948 <       * from this link list now.
5949 <       */        
5950 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5951 <      {
5952 <        struct ConfItem *new_hub_conf;
5953 <        struct MatchItem *match_item;
5954 <
5955 <        yy_hconf = ptr->data;
5956 <
5957 <        /* yy_conf == NULL is a fatal error for this connect block! */
5958 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5959 <        {
5960 <          new_hub_conf = make_conf_item(HUB_TYPE);
5961 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5962 <          DupString(new_hub_conf->name, yy_conf->name);
5963 <          if (yy_hconf->user != NULL)
5964 <            DupString(match_item->user, yy_hconf->user);
5965 <          else
5966 <            DupString(match_item->user, "*");
5967 <          if (yy_hconf->host != NULL)
5968 <            DupString(match_item->host, yy_hconf->host);
5969 <          else
5970 <            DupString(match_item->host, "*");
5971 <        }
5972 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5973 <        free_collect_item(yy_hconf);
5974 <      }
5975 <
5976 <      /* Ditto for the LEAF confs */
5158 >  struct MaskItem *conf = NULL;
5159 >  struct addrinfo hints, *res;
5160  
5161 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5979 <      {
5980 <        struct ConfItem *new_leaf_conf;
5981 <        struct MatchItem *match_item;
5982 <
5983 <        yy_lconf = ptr->data;
5984 <
5985 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5986 <        {
5987 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5988 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5989 <          DupString(new_leaf_conf->name, yy_conf->name);
5990 <          if (yy_lconf->user != NULL)
5991 <            DupString(match_item->user, yy_lconf->user);
5992 <          else
5993 <            DupString(match_item->user, "*");
5994 <          if (yy_lconf->host != NULL)
5995 <            DupString(match_item->host, yy_lconf->host);
5996 <          else
5997 <            DupString(match_item->host, "*");
5998 <        }
5999 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6000 <        free_collect_item(yy_lconf);
6001 <      }
6002 <      MyFree(class_name);
6003 <      class_name = NULL;
6004 <      yy_conf = NULL;
6005 <      yy_aconf = NULL;
6006 <  }
6007 < }
5161 >  if (conf_parser_ctx.pass != 2)
5162      break;
5163  
5164 <  case 370:
5165 <
6012 < /* Line 1464 of yacc.c  */
6013 < #line 2316 "ircd_parser.y"
6014 <    {
6015 <  if (conf_parser_ctx.pass == 2)
6016 <  {
6017 <    if (yy_conf->name != NULL)
6018 <      yyerror("Multiple connect name entry");
6019 <
6020 <    MyFree(yy_conf->name);
6021 <    DupString(yy_conf->name, yylval.string);
6022 <  }
6023 < }
5164 >  if (!block_state.name.buf[0] ||
5165 >      !block_state.host.buf[0])
5166      break;
5167  
5168 <  case 371:
5169 <
6028 < /* Line 1464 of yacc.c  */
6029 < #line 2328 "ircd_parser.y"
6030 <    {
6031 <  if (conf_parser_ctx.pass == 2)
6032 <  {
6033 <    if (yy_conf->name != NULL)
6034 <      yyerror("Multiple connect name entry");
6035 <
6036 <    MyFree(yy_conf->name);
6037 <    DupString(yy_conf->name, yylval.string);
6038 <  }
6039 < }
5168 >  if (!(block_state.rpass.buf[0] ||
5169 >        block_state.spass.buf[0]))
5170      break;
5171  
5172 <  case 372:
5173 <
6044 < /* Line 1464 of yacc.c  */
6045 < #line 2340 "ircd_parser.y"
6046 <    {
6047 <  if (conf_parser_ctx.pass == 2)
6048 <  {
6049 <    MyFree(yy_aconf->host);
6050 <    DupString(yy_aconf->host, yylval.string);
6051 <  }
6052 < }
5172 >  if (has_wildcards(block_state.name.buf) ||
5173 >      has_wildcards(block_state.host.buf))
5174      break;
5175  
5176 <  case 373:
5176 >  conf = conf_make(CONF_SERVER);
5177 >  conf->port = block_state.port.value;
5178 >  conf->flags = block_state.flags.value;
5179 >  conf->aftype = block_state.aftype.value;
5180 >  conf->host = xstrdup(block_state.host.buf);
5181 >  conf->name = xstrdup(block_state.name.buf);
5182 >  conf->passwd = xstrdup(block_state.rpass.buf);
5183 >  conf->spasswd = xstrdup(block_state.spass.buf);
5184 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5185  
5186 < /* Line 1464 of yacc.c  */
5187 < #line 2349 "ircd_parser.y"
6059 <    {
6060 <  if (conf_parser_ctx.pass == 2)
6061 <  {
6062 <    struct addrinfo hints, *res;
5186 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5187 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5188  
5189 +  if (block_state.bind.buf[0])
5190 +  {
5191      memset(&hints, 0, sizeof(hints));
5192  
5193      hints.ai_family   = AF_UNSPEC;
5194      hints.ai_socktype = SOCK_STREAM;
5195      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5196  
5197 <    if (irc_getaddrinfo(yylval.string, NULL, &hints, &res))
5198 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5197 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5198 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5199      else
5200      {
5201        assert(res != NULL);
5202  
5203 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5204 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5205 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5206 <      irc_freeaddrinfo(res);
5203 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5204 >      conf->bind.ss.ss_family = res->ai_family;
5205 >      conf->bind.ss_len = res->ai_addrlen;
5206 >      freeaddrinfo(res);
5207      }
5208    }
6082 }
6083    break;
6084
6085  case 374:
6086
6087 /* Line 1464 of yacc.c  */
6088 #line 2375 "ircd_parser.y"
6089    {
6090  if (conf_parser_ctx.pass == 2)
6091  {
6092    if ((yyvsp[(3) - (4)].string)[0] == ':')
6093      yyerror("Server passwords cannot begin with a colon");
6094    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6095      yyerror("Server passwords cannot contain spaces");
6096    else {
6097      if (yy_aconf->spasswd != NULL)
6098        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5209  
5210 <      MyFree(yy_aconf->spasswd);
5211 <      DupString(yy_aconf->spasswd, yylval.string);
6102 <    }
6103 <  }
5210 >  conf_add_class_to_conf(conf, block_state.class.buf);
5211 >  lookup_confhost(conf);
5212   }
5213      break;
5214  
5215 <  case 375:
5216 <
5217 < /* Line 1464 of yacc.c  */
6110 < #line 2393 "ircd_parser.y"
5215 >  case 365:
5216 > /* Line 1792 of yacc.c  */
5217 > #line 1911 "conf_parser.y"
5218      {
5219    if (conf_parser_ctx.pass == 2)
5220 <  {
6114 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6115 <      yyerror("Server passwords cannot begin with a colon");
6116 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6117 <      yyerror("Server passwords cannot contain spaces");
6118 <    else {
6119 <      if (yy_aconf->passwd != NULL)
6120 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6121 <
6122 <      MyFree(yy_aconf->passwd);
6123 <      DupString(yy_aconf->passwd, yylval.string);
6124 <    }
6125 <  }
5220 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5221   }
5222      break;
5223  
5224 <  case 376:
5225 <
5226 < /* Line 1464 of yacc.c  */
6132 < #line 2411 "ircd_parser.y"
5224 >  case 366:
5225 > /* Line 1792 of yacc.c  */
5226 > #line 1917 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5229 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5230   }
5231      break;
5232  
5233 <  case 377:
5234 <
5235 < /* Line 1464 of yacc.c  */
6142 < #line 2417 "ircd_parser.y"
5233 >  case 367:
5234 > /* Line 1792 of yacc.c  */
5235 > #line 1923 "conf_parser.y"
5236      {
5237    if (conf_parser_ctx.pass == 2)
5238 <    yy_aconf->aftype = AF_INET;
5238 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5239   }
5240      break;
5241  
5242 <  case 378:
5243 <
5244 < /* Line 1464 of yacc.c  */
6152 < #line 2421 "ircd_parser.y"
5242 >  case 368:
5243 > /* Line 1792 of yacc.c  */
5244 > #line 1929 "conf_parser.y"
5245      {
5246 < #ifdef IPV6
6155 <  if (conf_parser_ctx.pass == 2)
6156 <    yy_aconf->aftype = AF_INET6;
6157 < #endif
6158 < }
5246 >  if (conf_parser_ctx.pass != 2)
5247      break;
5248  
5249 <  case 379:
5250 <
5251 < /* Line 1464 of yacc.c  */
5252 < #line 2429 "ircd_parser.y"
5253 <    {
5249 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5250 >    yyerror("Server passwords cannot begin with a colon");
5251 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5252 >    yyerror("Server passwords cannot contain spaces");
5253 >  else
5254 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5255   }
5256      break;
5257  
5258 <  case 383:
5259 <
5260 < /* Line 1464 of yacc.c  */
5261 < #line 2433 "ircd_parser.y"
5262 <    { not_atom = 1; }
5258 >  case 369:
5259 > /* Line 1792 of yacc.c  */
5260 > #line 1942 "conf_parser.y"
5261 >    {
5262 >  if (conf_parser_ctx.pass != 2)
5263      break;
5264  
5265 <  case 385:
5266 <
5267 < /* Line 1464 of yacc.c  */
5268 < #line 2434 "ircd_parser.y"
5269 <    { not_atom = 0; }
5265 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5266 >    yyerror("Server passwords cannot begin with a colon");
5267 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5268 >    yyerror("Server passwords cannot contain spaces");
5269 >  else
5270 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5271 > }
5272      break;
5273  
5274 <  case 387:
5275 <
5276 < /* Line 1464 of yacc.c  */
6186 < #line 2437 "ircd_parser.y"
5274 >  case 370:
5275 > /* Line 1792 of yacc.c  */
5276 > #line 1955 "conf_parser.y"
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279 < #ifndef HAVE_LIBZ
6190 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6191 < #else
6192 < {
6193 <   if (not_atom)ClearConfCompressed(yy_aconf);
6194 <   else SetConfCompressed(yy_aconf);
6195 < }
6196 < #endif
5279 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5280   }
5281      break;
5282  
5283 <  case 388:
5284 <
5285 < /* Line 1464 of yacc.c  */
6203 < #line 2448 "ircd_parser.y"
5283 >  case 371:
5284 > /* Line 1792 of yacc.c  */
5285 > #line 1961 "conf_parser.y"
5286      {
5287    if (conf_parser_ctx.pass == 2)
5288 <  {
6207 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6208 <    else SetConfCryptLink(yy_aconf);
6209 <  }
5288 >    block_state.aftype.value = AF_INET;
5289   }
5290      break;
5291  
5292 <  case 389:
5293 <
5294 < /* Line 1464 of yacc.c  */
6216 < #line 2455 "ircd_parser.y"
5292 >  case 372:
5293 > /* Line 1792 of yacc.c  */
5294 > #line 1965 "conf_parser.y"
5295      {
5296 + #ifdef IPV6
5297    if (conf_parser_ctx.pass == 2)
5298 <  {
5299 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6221 <    else SetConfAllowAutoConn(yy_aconf);
6222 <  }
5298 >    block_state.aftype.value = AF_INET6;
5299 > #endif
5300   }
5301      break;
5302  
5303 <  case 390:
5304 <
5305 < /* Line 1464 of yacc.c  */
6229 < #line 2462 "ircd_parser.y"
5303 >  case 373:
5304 > /* Line 1792 of yacc.c  */
5305 > #line 1973 "conf_parser.y"
5306      {
5307 <  if (conf_parser_ctx.pass == 2)
6232 <  {
6233 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6234 <    else SetConfAwayBurst(yy_aconf);
6235 <  }
5307 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5308   }
5309      break;
5310  
5311 <  case 391:
5312 <
5313 < /* Line 1464 of yacc.c  */
6242 < #line 2469 "ircd_parser.y"
5311 >  case 377:
5312 > /* Line 1792 of yacc.c  */
5313 > #line 1979 "conf_parser.y"
5314      {
5315    if (conf_parser_ctx.pass == 2)
5316 <  {
6246 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6247 <    else SetConfTopicBurst(yy_aconf);
6248 <  }
5316 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5317   }
5318      break;
5319  
5320 <  case 392:
5321 <
5322 < /* Line 1464 of yacc.c  */
6255 < #line 2479 "ircd_parser.y"
5320 >  case 378:
5321 > /* Line 1792 of yacc.c  */
5322 > #line 1983 "conf_parser.y"
5323      {
6257 #ifdef HAVE_LIBCRYPTO
5324    if (conf_parser_ctx.pass == 2)
5325 <  {
6260 <    BIO *file;
6261 <
6262 <    if (yy_aconf->rsa_public_key != NULL)
6263 <    {
6264 <      RSA_free(yy_aconf->rsa_public_key);
6265 <      yy_aconf->rsa_public_key = NULL;
6266 <    }
6267 <
6268 <    if (yy_aconf->rsa_public_key_file != NULL)
6269 <    {
6270 <      MyFree(yy_aconf->rsa_public_key_file);
6271 <      yy_aconf->rsa_public_key_file = NULL;
6272 <    }
6273 <
6274 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6275 <
6276 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6277 <    {
6278 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6279 <      break;
6280 <    }
6281 <
6282 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6283 <
6284 <    if (yy_aconf->rsa_public_key == NULL)
6285 <    {
6286 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6287 <      break;
6288 <    }
6289 <      
6290 <    BIO_set_close(file, BIO_CLOSE);
6291 <    BIO_free(file);
6292 <  }
6293 < #endif /* HAVE_LIBCRYPTO */
5325 >    block_state.flags.value |= CONF_FLAGS_SSL;
5326   }
5327      break;
5328  
5329 <  case 393:
5330 <
5331 < /* Line 1464 of yacc.c  */
6300 < #line 2520 "ircd_parser.y"
5329 >  case 379:
5330 > /* Line 1792 of yacc.c  */
5331 > #line 1989 "conf_parser.y"
5332      {
5333    if (conf_parser_ctx.pass == 2)
5334    {
5335      if (yylval.number)
5336 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5336 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5337      else
5338 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5338 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5339    }
5340   }
5341      break;
5342  
5343 <  case 394:
5344 <
5345 < /* Line 1464 of yacc.c  */
6315 < #line 2531 "ircd_parser.y"
5343 >  case 380:
5344 > /* Line 1792 of yacc.c  */
5345 > #line 2000 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <  {
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, &hub_conf_list);
6325 <  }
5348 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5349   }
5350      break;
5351  
5352 <  case 395:
5353 <
5354 < /* Line 1464 of yacc.c  */
6332 < #line 2544 "ircd_parser.y"
5352 >  case 381:
5353 > /* Line 1792 of yacc.c  */
5354 > #line 2006 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <  {
6336 <    struct CollectItem *yy_tmp;
6337 <
6338 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6339 <    DupString(yy_tmp->host, yylval.string);
6340 <    DupString(yy_tmp->user, "*");
6341 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6342 <  }
5357 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5358   }
5359      break;
5360  
5361 <  case 396:
5362 <
5363 < /* Line 1464 of yacc.c  */
6349 < #line 2557 "ircd_parser.y"
5361 >  case 382:
5362 > /* Line 1792 of yacc.c  */
5363 > #line 2012 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <  {
6353 <    MyFree(class_name);
6354 <    DupString(class_name, yylval.string);
6355 <  }
5366 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5367   }
5368      break;
5369  
5370 <  case 397:
5371 <
5372 < /* Line 1464 of yacc.c  */
6362 < #line 2566 "ircd_parser.y"
5370 >  case 383:
5371 > /* Line 1792 of yacc.c  */
5372 > #line 2018 "conf_parser.y"
5373      {
5374   #ifdef HAVE_LIBCRYPTO
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
6367 <    struct EncCapability *ecap;
6368 <    const char *cipher_name;
6369 <    int found = 0;
6370 <
6371 <    yy_aconf->cipher_preference = NULL;
6372 <    cipher_name = yylval.string;
6373 <
6374 <    for (ecap = CipherTable; ecap->name; ecap++)
6375 <    {
6376 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6377 <          (ecap->cap & CAP_ENC_MASK))
6378 <      {
6379 <        yy_aconf->cipher_preference = ecap;
6380 <        found = 1;
6381 <        break;
6382 <      }
6383 <    }
6384 <
6385 <    if (!found)
6386 <      yyerror("Invalid cipher");
6387 <  }
5376 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5377   #else
5378    if (conf_parser_ctx.pass == 2)
5379 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5379 >    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5380   #endif
5381   }
5382      break;
5383  
5384 <  case 398:
5385 <
5386 < /* Line 1464 of yacc.c  */
6398 < #line 2601 "ircd_parser.y"
5384 >  case 384:
5385 > /* Line 1792 of yacc.c  */
5386 > #line 2033 "conf_parser.y"
5387      {
5388    if (conf_parser_ctx.pass == 2)
5389 <  {
6402 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6403 <    regex_ban = 0;
6404 <  }
5389 >    reset_block_state();
5390   }
5391      break;
5392  
5393 <  case 399:
5394 <
5395 < /* Line 1464 of yacc.c  */
6411 < #line 2608 "ircd_parser.y"
5393 >  case 385:
5394 > /* Line 1792 of yacc.c  */
5395 > #line 2037 "conf_parser.y"
5396      {
5397 <  if (conf_parser_ctx.pass == 2)
5397 >  struct MaskItem *conf = NULL;
5398 >
5399 >  if (conf_parser_ctx.pass != 2)
5400 >    break;
5401 >
5402 >  if (!block_state.user.buf[0] ||
5403 >      !block_state.host.buf[0])
5404 >    break;
5405 >
5406 >
5407 >  if (block_state.port.value == 1)
5408    {
6415    if (userbuf[0] && hostbuf[0])
6416    {
6417      if (regex_ban)
6418      {
5409   #ifdef HAVE_LIBPCRE
5410 <        void *exp_user = NULL;
5411 <        void *exp_host = NULL;
5412 <        const char *errptr = NULL;
5413 <
5414 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5415 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5416 <        {
5417 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
5418 <               errptr);
5419 <          break;
5420 <        }
5410 >    void *exp_user = NULL;
5411 >    void *exp_host = NULL;
5412 >    const char *errptr = NULL;
5413 >
5414 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5415 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5416 >    {
5417 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 >           errptr);
5419 >      break;
5420 >    }
5421  
5422 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5423 <        yy_aconf->regexuser = exp_user;
5424 <        yy_aconf->regexhost = exp_host;
5422 >    conf = conf_make(CONF_RKLINE);
5423 >    conf->regexuser = exp_user;
5424 >    conf->regexhost = exp_host;
5425  
5426 <        DupString(yy_aconf->user, userbuf);
5427 <        DupString(yy_aconf->host, hostbuf);
5426 >    conf->user = xstrdup(block_state.user.buf);
5427 >    conf->host = xstrdup(block_state.host.buf);
5428  
5429 <        if (reasonbuf[0])
5430 <          DupString(yy_aconf->reason, reasonbuf);
5431 <        else
5432 <          DupString(yy_aconf->reason, "No reason");
5429 >    if (block_state.rpass.buf[0])
5430 >      conf->reason = xstrdup(block_state.rpass.buf);
5431 >    else
5432 >      conf->reason = xstrdup(CONF_NOREASON);
5433   #else
5434 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
5435 <        break;
5434 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 >    break;
5436   #endif
5437 <      }
5438 <      else
5439 <      {
5440 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6451 <
6452 <        DupString(yy_aconf->user, userbuf);
6453 <        DupString(yy_aconf->host, hostbuf);
5437 >  }
5438 >  else
5439 >  {
5440 >    conf = conf_make(CONF_KLINE);
5441  
5442 <        if (reasonbuf[0])
5443 <          DupString(yy_aconf->reason, reasonbuf);
6457 <        else
6458 <          DupString(yy_aconf->reason, "No reason");
6459 <        add_conf_by_address(CONF_KILL, yy_aconf);
6460 <      }
6461 <    }
5442 >    conf->user = xstrdup(block_state.user.buf);
5443 >    conf->host = xstrdup(block_state.host.buf);
5444  
5445 <    yy_aconf = NULL;
5445 >    if (block_state.rpass.buf[0])
5446 >      conf->reason = xstrdup(block_state.rpass.buf);
5447 >    else
5448 >      conf->reason = xstrdup(CONF_NOREASON);
5449 >    add_conf_by_address(CONF_KLINE, conf);
5450    }
5451   }
5452      break;
5453  
5454 <  case 400:
5455 <
5456 < /* Line 1464 of yacc.c  */
6471 < #line 2664 "ircd_parser.y"
5454 >  case 386:
5455 > /* Line 1792 of yacc.c  */
5456 > #line 2095 "conf_parser.y"
5457      {
5458 +  if (conf_parser_ctx.pass == 2)
5459 +    block_state.port.value = 0;
5460   }
5461      break;
5462  
5463 <  case 404:
5464 <
5465 < /* Line 1464 of yacc.c  */
6479 < #line 2669 "ircd_parser.y"
5463 >  case 390:
5464 > /* Line 1792 of yacc.c  */
5465 > #line 2102 "conf_parser.y"
5466      {
5467    if (conf_parser_ctx.pass == 2)
5468 <    regex_ban = 1;
5468 >    block_state.port.value = 1;
5469   }
5470      break;
5471  
5472 <  case 411:
5473 <
5474 < /* Line 1464 of yacc.c  */
6489 < #line 2678 "ircd_parser.y"
5472 >  case 397:
5473 > /* Line 1792 of yacc.c  */
5474 > #line 2111 "conf_parser.y"
5475      {
5476 +
5477    if (conf_parser_ctx.pass == 2)
5478    {
5479      struct split_nuh_item nuh;
5480  
5481      nuh.nuhmask  = yylval.string;
5482      nuh.nickptr  = NULL;
5483 <    nuh.userptr  = userbuf;
5484 <    nuh.hostptr  = hostbuf;
5483 >    nuh.userptr  = block_state.user.buf;
5484 >    nuh.hostptr  = block_state.host.buf;
5485  
5486      nuh.nicksize = 0;
5487 <    nuh.usersize = sizeof(userbuf);
5488 <    nuh.hostsize = sizeof(hostbuf);
5487 >    nuh.usersize = sizeof(block_state.user.buf);
5488 >    nuh.hostsize = sizeof(block_state.host.buf);
5489  
5490      split_nuh(&nuh);
5491    }
5492   }
5493      break;
5494  
5495 <  case 412:
5496 <
5497 < /* Line 1464 of yacc.c  */
6512 < #line 2697 "ircd_parser.y"
5495 >  case 398:
5496 > /* Line 1792 of yacc.c  */
5497 > #line 2131 "conf_parser.y"
5498      {
5499    if (conf_parser_ctx.pass == 2)
5500 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5500 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5501   }
5502      break;
5503  
5504 <  case 413:
5505 <
5506 < /* Line 1464 of yacc.c  */
6522 < #line 2706 "ircd_parser.y"
5504 >  case 399:
5505 > /* Line 1792 of yacc.c  */
5506 > #line 2140 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <    hostbuf[0] = reasonbuf[0] = '\0';
5509 >    reset_block_state();
5510   }
5511      break;
5512  
5513 <  case 414:
5514 <
5515 < /* Line 1464 of yacc.c  */
6532 < #line 2710 "ircd_parser.y"
5513 >  case 400:
5514 > /* Line 1792 of yacc.c  */
5515 > #line 2144 "conf_parser.y"
5516      {
5517 <  if (conf_parser_ctx.pass == 2)
5517 >  struct MaskItem *conf = NULL;
5518 >
5519 >  if (conf_parser_ctx.pass != 2)
5520 >    break;
5521 >
5522 >  if (!block_state.addr.buf[0])
5523 >    break;
5524 >
5525 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5526    {
5527 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5528 <    {
6538 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6539 <      DupString(yy_aconf->host, hostbuf);
5527 >    conf = conf_make(CONF_DLINE);
5528 >    conf->host = xstrdup(block_state.addr.buf);
5529  
5530 <      if (reasonbuf[0])
5531 <        DupString(yy_aconf->reason, reasonbuf);
5532 <      else
5533 <        DupString(yy_aconf->reason, "No reason");
5534 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6546 <      yy_aconf = NULL;
6547 <    }
5530 >    if (block_state.rpass.buf[0])
5531 >      conf->reason = xstrdup(block_state.rpass.buf);
5532 >    else
5533 >      conf->reason = xstrdup(CONF_NOREASON);
5534 >    add_conf_by_address(CONF_DLINE, conf);
5535    }
5536   }
5537      break;
5538  
5539 <  case 420:
5540 <
5541 < /* Line 1464 of yacc.c  */
6555 < #line 2732 "ircd_parser.y"
5539 >  case 406:
5540 > /* Line 1792 of yacc.c  */
5541 > #line 2170 "conf_parser.y"
5542      {
5543    if (conf_parser_ctx.pass == 2)
5544 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5545   }
5546      break;
5547  
5548 <  case 421:
5549 <
5550 < /* Line 1464 of yacc.c  */
6565 < #line 2738 "ircd_parser.y"
5548 >  case 407:
5549 > /* Line 1792 of yacc.c  */
5550 > #line 2176 "conf_parser.y"
5551      {
5552    if (conf_parser_ctx.pass == 2)
5553 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5553 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5554   }
5555      break;
5556  
5557 <  case 427:
5558 <
5559 < /* Line 1464 of yacc.c  */
6575 < #line 2752 "ircd_parser.y"
5557 >  case 413:
5558 > /* Line 1792 of yacc.c  */
5559 > #line 2190 "conf_parser.y"
5560      {
5561    if (conf_parser_ctx.pass == 2)
5562    {
5563      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5564      {
5565 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5566 <      DupString(yy_aconf->host, yylval.string);
5565 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5566 >      conf->host = xstrdup(yylval.string);
5567  
5568 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6585 <      yy_aconf = NULL;
5568 >      add_conf_by_address(CONF_EXEMPT, conf);
5569      }
5570    }
5571   }
5572      break;
5573  
5574 <  case 428:
5575 <
5576 < /* Line 1464 of yacc.c  */
6594 < #line 2770 "ircd_parser.y"
5574 >  case 414:
5575 > /* Line 1792 of yacc.c  */
5576 > #line 2207 "conf_parser.y"
5577      {
5578    if (conf_parser_ctx.pass == 2)
5579 <  {
6598 <    regex_ban = 0;
6599 <    reasonbuf[0] = gecos_name[0] = '\0';
6600 <  }
5579 >    reset_block_state();
5580   }
5581      break;
5582  
5583 <  case 429:
5584 <
5585 < /* Line 1464 of yacc.c  */
6607 < #line 2777 "ircd_parser.y"
5583 >  case 415:
5584 > /* Line 1792 of yacc.c  */
5585 > #line 2211 "conf_parser.y"
5586      {
5587 <  if (conf_parser_ctx.pass == 2)
5587 >  struct MaskItem *conf = NULL;
5588 >
5589 >  if (conf_parser_ctx.pass != 2)
5590 >    break;
5591 >
5592 >  if (!block_state.name.buf[0])
5593 >    break;
5594 >
5595 >  if (block_state.port.value == 1)
5596    {
6611    if (gecos_name[0])
6612    {
6613      if (regex_ban)
6614      {
5597   #ifdef HAVE_LIBPCRE
5598 <        void *exp_p = NULL;
5599 <        const char *errptr = NULL;
5598 >    void *exp_p = NULL;
5599 >    const char *errptr = NULL;
5600  
5601 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5602 <        {
5603 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
5604 <               errptr);
5605 <          break;
5606 <        }
5601 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5602 >    {
5603 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 >           errptr);
5605 >      break;
5606 >    }
5607  
5608 <        yy_conf = make_conf_item(RXLINE_TYPE);
5609 <        yy_conf->regexpname = exp_p;
5608 >    conf = conf_make(CONF_RXLINE);
5609 >    conf->regexuser = exp_p;
5610   #else
5611 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
5612 <        break;
5611 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 >    break;
5613   #endif
5614 <      }
5615 <      else
5616 <        yy_conf = make_conf_item(XLINE_TYPE);
5614 >  }
5615 >  else
5616 >    conf = conf_make(CONF_XLINE);
5617  
5618 <      yy_match_item = map_to_conf(yy_conf);
6637 <      DupString(yy_conf->name, gecos_name);
5618 >  conf->name = xstrdup(block_state.name.buf);
5619  
5620 <      if (reasonbuf[0])
5621 <        DupString(yy_match_item->reason, reasonbuf);
5622 <      else
5623 <        DupString(yy_match_item->reason, "No reason");
6643 <    }
6644 <  }
5620 >  if (block_state.rpass.buf[0])
5621 >    conf->reason = xstrdup(block_state.rpass.buf);
5622 >  else
5623 >    conf->reason = xstrdup(CONF_NOREASON);
5624   }
5625      break;
5626  
5627 <  case 430:
5628 <
5629 < /* Line 1464 of yacc.c  */
6651 < #line 2817 "ircd_parser.y"
5627 >  case 416:
5628 > /* Line 1792 of yacc.c  */
5629 > #line 2252 "conf_parser.y"
5630      {
5631 +  if (conf_parser_ctx.pass == 2)
5632 +    block_state.port.value = 0;
5633   }
5634      break;
5635  
5636 <  case 434:
5637 <
5638 < /* Line 1464 of yacc.c  */
6659 < #line 2822 "ircd_parser.y"
5636 >  case 420:
5637 > /* Line 1792 of yacc.c  */
5638 > #line 2259 "conf_parser.y"
5639      {
5640    if (conf_parser_ctx.pass == 2)
5641 <    regex_ban = 1;
5641 >    block_state.port.value = 1;
5642   }
5643      break;
5644  
5645 <  case 441:
5646 <
5647 < /* Line 1464 of yacc.c  */
6669 < #line 2831 "ircd_parser.y"
5645 >  case 427:
5646 > /* Line 1792 of yacc.c  */
5647 > #line 2268 "conf_parser.y"
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5650 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5651   }
5652      break;
5653  
5654 <  case 442:
5655 <
5656 < /* Line 1464 of yacc.c  */
6679 < #line 2837 "ircd_parser.y"
5654 >  case 428:
5655 > /* Line 1792 of yacc.c  */
5656 > #line 2274 "conf_parser.y"
5657      {
5658    if (conf_parser_ctx.pass == 2)
5659 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5659 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5660   }
5661      break;
5662  
5663 <  case 502:
5664 <
5665 < /* Line 1464 of yacc.c  */
6689 < #line 2882 "ircd_parser.y"
5663 >  case 482:
5664 > /* Line 1792 of yacc.c  */
5665 > #line 2319 "conf_parser.y"
5666      {
5667    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5668   }
5669      break;
5670  
5671 <  case 503:
5672 <
5673 < /* Line 1464 of yacc.c  */
6698 < #line 2887 "ircd_parser.y"
5671 >  case 483:
5672 > /* Line 1792 of yacc.c  */
5673 > #line 2324 "conf_parser.y"
5674      {
5675 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5675 >  if (conf_parser_ctx.pass == 2)
5676 >    ConfigFileEntry.glines = yylval.number;
5677   }
5678      break;
5679  
5680 <  case 504:
5681 <
5682 < /* Line 1464 of yacc.c  */
6707 < #line 2892 "ircd_parser.y"
5680 >  case 484:
5681 > /* Line 1792 of yacc.c  */
5682 > #line 2330 "conf_parser.y"
5683      {
5684 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5684 >  if (conf_parser_ctx.pass == 2)
5685 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5686   }
5687      break;
5688  
5689 <  case 505:
5690 <
5691 < /* Line 1464 of yacc.c  */
6716 < #line 2897 "ircd_parser.y"
5689 >  case 485:
5690 > /* Line 1792 of yacc.c  */
5691 > #line 2336 "conf_parser.y"
5692      {
5693 <  ConfigFileEntry.burst_away = yylval.number;
5693 >  if (conf_parser_ctx.pass == 2)
5694 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5695   }
5696      break;
5697  
5698 <  case 506:
5699 <
5700 < /* Line 1464 of yacc.c  */
6725 < #line 2902 "ircd_parser.y"
5698 >  case 486:
5699 > /* Line 1792 of yacc.c  */
5700 > #line 2342 "conf_parser.y"
5701      {
5702 <  ConfigFileEntry.use_whois_actually = yylval.number;
5702 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5703   }
5704      break;
5705  
5706 <  case 507:
5707 <
5708 < /* Line 1464 of yacc.c  */
6734 < #line 2907 "ircd_parser.y"
5706 >  case 487:
5707 > /* Line 1792 of yacc.c  */
5708 > #line 2347 "conf_parser.y"
5709      {
5710 <  GlobalSetOptions.rejecttime = yylval.number;
5710 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5711   }
5712      break;
5713  
5714 <  case 508:
5715 <
5716 < /* Line 1464 of yacc.c  */
6743 < #line 2912 "ircd_parser.y"
5714 >  case 488:
5715 > /* Line 1792 of yacc.c  */
5716 > #line 2352 "conf_parser.y"
5717      {
5718    ConfigFileEntry.tkline_expire_notices = yylval.number;
5719   }
5720      break;
5721  
5722 <  case 509:
5723 <
5724 < /* Line 1464 of yacc.c  */
6752 < #line 2917 "ircd_parser.y"
5722 >  case 489:
5723 > /* Line 1792 of yacc.c  */
5724 > #line 2357 "conf_parser.y"
5725      {
5726    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5727   }
5728      break;
5729  
5730 <  case 510:
5731 <
5732 < /* Line 1464 of yacc.c  */
6761 < #line 2922 "ircd_parser.y"
5730 >  case 490:
5731 > /* Line 1792 of yacc.c  */
5732 > #line 2362 "conf_parser.y"
5733      {
5734    ConfigFileEntry.hide_spoof_ips = yylval.number;
5735   }
5736      break;
5737  
5738 <  case 511:
5739 <
5740 < /* Line 1464 of yacc.c  */
6770 < #line 2927 "ircd_parser.y"
5738 >  case 491:
5739 > /* Line 1792 of yacc.c  */
5740 > #line 2367 "conf_parser.y"
5741      {
5742    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5743   }
5744      break;
5745  
5746 <  case 512:
5747 <
5748 < /* Line 1464 of yacc.c  */
6779 < #line 2932 "ircd_parser.y"
5746 >  case 492:
5747 > /* Line 1792 of yacc.c  */
5748 > #line 2372 "conf_parser.y"
5749      {
5750    ConfigFileEntry.disable_remote = yylval.number;
5751   }
5752      break;
5753  
5754 <  case 513:
5755 <
5756 < /* Line 1464 of yacc.c  */
6788 < #line 2937 "ircd_parser.y"
5754 >  case 493:
5755 > /* Line 1792 of yacc.c  */
5756 > #line 2377 "conf_parser.y"
5757      {
5758    ConfigFileEntry.failed_oper_notice = yylval.number;
5759   }
5760      break;
5761  
5762 <  case 514:
5763 <
5764 < /* Line 1464 of yacc.c  */
6797 < #line 2942 "ircd_parser.y"
5762 >  case 494:
5763 > /* Line 1792 of yacc.c  */
5764 > #line 2382 "conf_parser.y"
5765      {
5766    ConfigFileEntry.anti_nick_flood = yylval.number;
5767   }
5768      break;
5769  
5770 <  case 515:
5771 <
5772 < /* Line 1464 of yacc.c  */
6806 < #line 2947 "ircd_parser.y"
5770 >  case 495:
5771 > /* Line 1792 of yacc.c  */
5772 > #line 2387 "conf_parser.y"
5773      {
5774    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778 <  case 516:
5779 <
5780 < /* Line 1464 of yacc.c  */
6815 < #line 2952 "ircd_parser.y"
5778 >  case 496:
5779 > /* Line 1792 of yacc.c  */
5780 > #line 2392 "conf_parser.y"
5781      {
5782    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786 <  case 517:
5787 <
5788 < /* Line 1464 of yacc.c  */
6824 < #line 2957 "ircd_parser.y"
5786 >  case 497:
5787 > /* Line 1792 of yacc.c  */
5788 > #line 2397 "conf_parser.y"
5789      {
5790    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794 <  case 518:
5795 <
5796 < /* Line 1464 of yacc.c  */
6833 < #line 2962 "ircd_parser.y"
5794 >  case 498:
5795 > /* Line 1792 of yacc.c  */
5796 > #line 2402 "conf_parser.y"
5797      {
5798    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5799   }
5800      break;
5801  
5802 <  case 519:
5803 <
5804 < /* Line 1464 of yacc.c  */
6842 < #line 2967 "ircd_parser.y"
5802 >  case 499:
5803 > /* Line 1792 of yacc.c  */
5804 > #line 2407 "conf_parser.y"
5805      {
5806    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5807   }
5808      break;
5809  
5810 <  case 520:
5811 <
5812 < /* Line 1464 of yacc.c  */
6851 < #line 2972 "ircd_parser.y"
5810 >  case 500:
5811 > /* Line 1792 of yacc.c  */
5812 > #line 2412 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5816   }
5817      break;
5818  
5819 <  case 521:
5820 <
5821 < /* Line 1464 of yacc.c  */
6861 < #line 2978 "ircd_parser.y"
5819 >  case 501:
5820 > /* Line 1792 of yacc.c  */
5821 > #line 2418 "conf_parser.y"
5822      {
5823    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5824    {
5825 <    ilog(L_CRIT, "You haven't read your config file properly.");
5826 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
5827 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
5825 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5826 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5827 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5828      exit(0);
5829    }
5830   }
5831      break;
5832  
5833 <  case 522:
5834 <
5835 < /* Line 1464 of yacc.c  */
6876 < #line 2989 "ircd_parser.y"
6877 <    {
6878 <  ConfigFileEntry.kline_with_reason = yylval.number;
6879 < }
6880 <    break;
6881 <
6882 <  case 523:
6883 <
6884 < /* Line 1464 of yacc.c  */
6885 < #line 2994 "ircd_parser.y"
6886 <    {
6887 <  if (conf_parser_ctx.pass == 2)
6888 <  {
6889 <    MyFree(ConfigFileEntry.kline_reason);
6890 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6891 <  }
6892 < }
6893 <    break;
6894 <
6895 <  case 524:
6896 <
6897 < /* Line 1464 of yacc.c  */
6898 < #line 3003 "ircd_parser.y"
5833 >  case 502:
5834 > /* Line 1792 of yacc.c  */
5835 > #line 2429 "conf_parser.y"
5836      {
5837    ConfigFileEntry.invisible_on_connect = yylval.number;
5838   }
5839      break;
5840  
5841 <  case 525:
5842 <
5843 < /* Line 1464 of yacc.c  */
6907 < #line 3008 "ircd_parser.y"
5841 >  case 503:
5842 > /* Line 1792 of yacc.c  */
5843 > #line 2434 "conf_parser.y"
5844      {
5845    ConfigFileEntry.warn_no_nline = yylval.number;
5846   }
5847      break;
5848  
5849 <  case 526:
5850 <
5851 < /* Line 1464 of yacc.c  */
6916 < #line 3013 "ircd_parser.y"
5849 >  case 504:
5850 > /* Line 1792 of yacc.c  */
5851 > #line 2439 "conf_parser.y"
5852      {
5853    ConfigFileEntry.stats_e_disabled = yylval.number;
5854   }
5855      break;
5856  
5857 <  case 527:
5858 <
5859 < /* Line 1464 of yacc.c  */
6925 < #line 3018 "ircd_parser.y"
5857 >  case 505:
5858 > /* Line 1792 of yacc.c  */
5859 > #line 2444 "conf_parser.y"
5860      {
5861    ConfigFileEntry.stats_o_oper_only = yylval.number;
5862   }
5863      break;
5864  
5865 <  case 528:
5866 <
5867 < /* Line 1464 of yacc.c  */
6934 < #line 3023 "ircd_parser.y"
5865 >  case 506:
5866 > /* Line 1792 of yacc.c  */
5867 > #line 2449 "conf_parser.y"
5868      {
5869    ConfigFileEntry.stats_P_oper_only = yylval.number;
5870   }
5871      break;
5872  
5873 <  case 529:
5874 <
5875 < /* Line 1464 of yacc.c  */
6943 < #line 3028 "ircd_parser.y"
5873 >  case 507:
5874 > /* Line 1792 of yacc.c  */
5875 > #line 2454 "conf_parser.y"
5876      {
5877    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5878   }
5879      break;
5880  
5881 <  case 530:
5882 <
5883 < /* Line 1464 of yacc.c  */
6952 < #line 3031 "ircd_parser.y"
5881 >  case 508:
5882 > /* Line 1792 of yacc.c  */
5883 > #line 2457 "conf_parser.y"
5884      {
5885    ConfigFileEntry.stats_k_oper_only = 1;
5886   }
5887      break;
5888  
5889 <  case 531:
5890 <
5891 < /* Line 1464 of yacc.c  */
6961 < #line 3036 "ircd_parser.y"
5889 >  case 509:
5890 > /* Line 1792 of yacc.c  */
5891 > #line 2462 "conf_parser.y"
5892      {
5893    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5894   }
5895      break;
5896  
5897 <  case 532:
5898 <
5899 < /* Line 1464 of yacc.c  */
6970 < #line 3039 "ircd_parser.y"
5897 >  case 510:
5898 > /* Line 1792 of yacc.c  */
5899 > #line 2465 "conf_parser.y"
5900      {
5901    ConfigFileEntry.stats_i_oper_only = 1;
5902   }
5903      break;
5904  
5905 <  case 533:
5906 <
5907 < /* Line 1464 of yacc.c  */
6979 < #line 3044 "ircd_parser.y"
5905 >  case 511:
5906 > /* Line 1792 of yacc.c  */
5907 > #line 2470 "conf_parser.y"
5908      {
5909    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5910   }
5911      break;
5912  
5913 <  case 534:
5914 <
5915 < /* Line 1464 of yacc.c  */
6988 < #line 3049 "ircd_parser.y"
5913 >  case 512:
5914 > /* Line 1792 of yacc.c  */
5915 > #line 2475 "conf_parser.y"
5916      {
5917    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5918   }
5919      break;
5920  
5921 <  case 535:
5922 <
5923 < /* Line 1464 of yacc.c  */
6997 < #line 3054 "ircd_parser.y"
5921 >  case 513:
5922 > /* Line 1792 of yacc.c  */
5923 > #line 2480 "conf_parser.y"
5924      {
5925    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5926   }
5927      break;
5928  
5929 <  case 536:
5930 <
5931 < /* Line 1464 of yacc.c  */
7006 < #line 3059 "ircd_parser.y"
5929 >  case 514:
5930 > /* Line 1792 of yacc.c  */
5931 > #line 2485 "conf_parser.y"
5932      {
5933    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5934   }
5935      break;
5936  
5937 <  case 537:
5938 <
5939 < /* Line 1464 of yacc.c  */
7015 < #line 3064 "ircd_parser.y"
5937 >  case 515:
5938 > /* Line 1792 of yacc.c  */
5939 > #line 2490 "conf_parser.y"
5940      {
5941    ConfigFileEntry.short_motd = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 538:
5946 <
5947 < /* Line 1464 of yacc.c  */
7024 < #line 3069 "ircd_parser.y"
5945 >  case 516:
5946 > /* Line 1792 of yacc.c  */
5947 > #line 2495 "conf_parser.y"
5948      {
5949    ConfigFileEntry.no_oper_flood = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 539:
5954 <
5955 < /* Line 1464 of yacc.c  */
7033 < #line 3074 "ircd_parser.y"
5953 >  case 517:
5954 > /* Line 1792 of yacc.c  */
5955 > #line 2500 "conf_parser.y"
5956      {
5957    ConfigFileEntry.true_no_oper_flood = yylval.number;
5958   }
5959      break;
5960  
5961 <  case 540:
5962 <
5963 < /* Line 1464 of yacc.c  */
7042 < #line 3079 "ircd_parser.y"
5961 >  case 518:
5962 > /* Line 1792 of yacc.c  */
5963 > #line 2505 "conf_parser.y"
5964      {
5965    ConfigFileEntry.oper_pass_resv = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 541:
5970 <
5971 < /* Line 1464 of yacc.c  */
7051 < #line 3084 "ircd_parser.y"
5969 >  case 519:
5970 > /* Line 1792 of yacc.c  */
5971 > #line 2510 "conf_parser.y"
5972      {
5973    if (conf_parser_ctx.pass == 2)
5974    {
# Line 7060 | Line 5980 | yyreduce:
5980   }
5981      break;
5982  
5983 <  case 542:
5984 <
5985 < /* Line 1464 of yacc.c  */
7066 < #line 3095 "ircd_parser.y"
7067 <    {
7068 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
7069 < }
7070 <    break;
7071 <
7072 <  case 543:
7073 <
7074 < /* Line 1464 of yacc.c  */
7075 < #line 3100 "ircd_parser.y"
5983 >  case 520:
5984 > /* Line 1792 of yacc.c  */
5985 > #line 2521 "conf_parser.y"
5986      {
5987    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5988   }
5989      break;
5990  
5991 <  case 544:
5992 <
5993 < /* Line 1464 of yacc.c  */
7084 < #line 3105 "ircd_parser.y"
5991 >  case 521:
5992 > /* Line 1792 of yacc.c  */
5993 > #line 2526 "conf_parser.y"
5994      {
5995    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5996   }
5997      break;
5998  
5999 <  case 545:
6000 <
6001 < /* Line 1464 of yacc.c  */
7093 < #line 3110 "ircd_parser.y"
7094 <    {
7095 <  if (conf_parser_ctx.pass == 2)
7096 <  {
7097 <    MyFree(ConfigFileEntry.servlink_path);
7098 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7099 <  }
7100 < }
7101 <    break;
7102 <
7103 <  case 546:
7104 <
7105 < /* Line 1464 of yacc.c  */
7106 < #line 3119 "ircd_parser.y"
7107 <    {
7108 < #ifdef HAVE_LIBCRYPTO
7109 <  if (conf_parser_ctx.pass == 2)
7110 <  {
7111 <    struct EncCapability *ecap;
7112 <    const char *cipher_name;
7113 <    int found = 0;
7114 <
7115 <    ConfigFileEntry.default_cipher_preference = NULL;
7116 <    cipher_name = yylval.string;
7117 <
7118 <    for (ecap = CipherTable; ecap->name; ecap++)
5999 >  case 522:
6000 > /* Line 1792 of yacc.c  */
6001 > #line 2531 "conf_parser.y"
6002      {
6003 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7121 <          (ecap->cap & CAP_ENC_MASK))
7122 <      {
7123 <        ConfigFileEntry.default_cipher_preference = ecap;
7124 <        found = 1;
7125 <        break;
7126 <      }
7127 <    }
7128 <
7129 <    if (!found)
7130 <      yyerror("Invalid cipher");
7131 <  }
7132 < #else
7133 <  if (conf_parser_ctx.pass == 2)
7134 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7135 < #endif
6003 >  ConfigFileEntry.use_egd = yylval.number;
6004   }
6005      break;
6006  
6007 <  case 547:
6008 <
6009 < /* Line 1464 of yacc.c  */
7142 < #line 3151 "ircd_parser.y"
6007 >  case 523:
6008 > /* Line 1792 of yacc.c  */
6009 > #line 2536 "conf_parser.y"
6010      {
6011    if (conf_parser_ctx.pass == 2)
6012    {
6013 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6014 < #ifndef HAVE_LIBZ
7148 <    yyerror("Ignoring compression_level -- no zlib support");
7149 < #else
7150 <    if ((ConfigFileEntry.compression_level < 1) ||
7151 <        (ConfigFileEntry.compression_level > 9))
7152 <    {
7153 <      yyerror("Ignoring invalid compression_level, using default");
7154 <      ConfigFileEntry.compression_level = 0;
7155 <    }
7156 < #endif
6013 >    MyFree(ConfigFileEntry.egdpool_path);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015    }
6016   }
6017      break;
6018  
6019 <  case 548:
6020 <
6021 < /* Line 1464 of yacc.c  */
7164 < #line 3169 "ircd_parser.y"
7165 <    {
7166 <  ConfigFileEntry.use_egd = yylval.number;
7167 < }
7168 <    break;
7169 <
7170 <  case 549:
7171 <
7172 < /* Line 1464 of yacc.c  */
7173 < #line 3174 "ircd_parser.y"
6019 >  case 524:
6020 > /* Line 1792 of yacc.c  */
6021 > #line 2545 "conf_parser.y"
6022      {
6023 <  if (conf_parser_ctx.pass == 2)
6023 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024    {
6025 <    MyFree(ConfigFileEntry.egdpool_path);
6026 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6025 >    MyFree(ConfigFileEntry.service_name);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027    }
6028   }
6029      break;
6030  
6031 <  case 550:
6032 <
6033 < /* Line 1464 of yacc.c  */
7186 < #line 3183 "ircd_parser.y"
6031 >  case 525:
6032 > /* Line 1792 of yacc.c  */
6033 > #line 2554 "conf_parser.y"
6034      {
6035    ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 551:
6040 <
6041 < /* Line 1464 of yacc.c  */
7195 < #line 3188 "ircd_parser.y"
6039 >  case 526:
6040 > /* Line 1792 of yacc.c  */
6041 > #line 2559 "conf_parser.y"
6042      {
6043    ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 552:
6048 <
6049 < /* Line 1464 of yacc.c  */
7204 < #line 3193 "ircd_parser.y"
6047 >  case 527:
6048 > /* Line 1792 of yacc.c  */
6049 > #line 2564 "conf_parser.y"
6050      {
6051    ConfigFileEntry.throttle_time = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 553:
6056 <
6057 < /* Line 1464 of yacc.c  */
7213 < #line 3198 "ircd_parser.y"
6055 >  case 528:
6056 > /* Line 1792 of yacc.c  */
6057 > #line 2569 "conf_parser.y"
6058      {
6059    ConfigFileEntry.oper_umodes = 0;
6060   }
6061      break;
6062  
6063 <  case 557:
6064 <
6065 < /* Line 1464 of yacc.c  */
7222 < #line 3204 "ircd_parser.y"
6063 >  case 532:
6064 > /* Line 1792 of yacc.c  */
6065 > #line 2575 "conf_parser.y"
6066      {
6067    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068   }
6069      break;
6070  
6071 <  case 558:
6072 <
6073 < /* Line 1464 of yacc.c  */
7231 < #line 3207 "ircd_parser.y"
6071 >  case 533:
6072 > /* Line 1792 of yacc.c  */
6073 > #line 2578 "conf_parser.y"
6074      {
6075    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076   }
6077      break;
6078  
6079 <  case 559:
6080 <
6081 < /* Line 1464 of yacc.c  */
7240 < #line 3210 "ircd_parser.y"
6079 >  case 534:
6080 > /* Line 1792 of yacc.c  */
6081 > #line 2581 "conf_parser.y"
6082      {
6083    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084   }
6085      break;
6086  
6087 <  case 560:
6088 <
6089 < /* Line 1464 of yacc.c  */
7249 < #line 3213 "ircd_parser.y"
6087 >  case 535:
6088 > /* Line 1792 of yacc.c  */
6089 > #line 2584 "conf_parser.y"
6090      {
6091    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093      break;
6094  
6095 <  case 561:
6096 <
6097 < /* Line 1464 of yacc.c  */
7258 < #line 3216 "ircd_parser.y"
6095 >  case 536:
6096 > /* Line 1792 of yacc.c  */
6097 > #line 2587 "conf_parser.y"
6098      {
6099    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101      break;
6102  
6103 <  case 562:
6104 <
6105 < /* Line 1464 of yacc.c  */
7267 < #line 3219 "ircd_parser.y"
6103 >  case 537:
6104 > /* Line 1792 of yacc.c  */
6105 > #line 2590 "conf_parser.y"
6106      {
6107    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109      break;
6110  
6111 <  case 563:
6111 >  case 538:
6112 > /* Line 1792 of yacc.c  */
6113 > #line 2593 "conf_parser.y"
6114 >    {
6115 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116 > }
6117 >    break;
6118  
6119 < /* Line 1464 of yacc.c  */
6120 < #line 3222 "ircd_parser.y"
6119 >  case 539:
6120 > /* Line 1792 of yacc.c  */
6121 > #line 2596 "conf_parser.y"
6122      {
6123    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6124   }
6125      break;
6126  
6127 <  case 564:
6128 <
6129 < /* Line 1464 of yacc.c  */
7285 < #line 3225 "ircd_parser.y"
6127 >  case 540:
6128 > /* Line 1792 of yacc.c  */
6129 > #line 2599 "conf_parser.y"
6130      {
6131    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6132   }
6133      break;
6134  
6135 <  case 565:
6136 <
6137 < /* Line 1464 of yacc.c  */
7294 < #line 3228 "ircd_parser.y"
6135 >  case 541:
6136 > /* Line 1792 of yacc.c  */
6137 > #line 2602 "conf_parser.y"
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6140   }
6141      break;
6142  
6143 <  case 566:
6144 <
6145 < /* Line 1464 of yacc.c  */
7303 < #line 3231 "ircd_parser.y"
6143 >  case 542:
6144 > /* Line 1792 of yacc.c  */
6145 > #line 2605 "conf_parser.y"
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6148   }
6149      break;
6150  
6151 <  case 567:
6152 <
6153 < /* Line 1464 of yacc.c  */
7312 < #line 3234 "ircd_parser.y"
6151 >  case 543:
6152 > /* Line 1792 of yacc.c  */
6153 > #line 2608 "conf_parser.y"
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6156   }
6157      break;
6158  
6159 <  case 568:
6160 <
6161 < /* Line 1464 of yacc.c  */
7321 < #line 3237 "ircd_parser.y"
6159 >  case 544:
6160 > /* Line 1792 of yacc.c  */
6161 > #line 2611 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6164   }
6165      break;
6166  
6167 <  case 569:
6168 <
6169 < /* Line 1464 of yacc.c  */
7330 < #line 3240 "ircd_parser.y"
6167 >  case 545:
6168 > /* Line 1792 of yacc.c  */
6169 > #line 2614 "conf_parser.y"
6170      {
6171    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6172   }
6173      break;
6174  
6175 <  case 570:
6176 <
6177 < /* Line 1464 of yacc.c  */
7339 < #line 3243 "ircd_parser.y"
6175 >  case 546:
6176 > /* Line 1792 of yacc.c  */
6177 > #line 2617 "conf_parser.y"
6178      {
6179    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6180   }
6181      break;
6182  
6183 <  case 571:
6184 <
6185 < /* Line 1464 of yacc.c  */
7348 < #line 3246 "ircd_parser.y"
6183 >  case 547:
6184 > /* Line 1792 of yacc.c  */
6185 > #line 2620 "conf_parser.y"
6186      {
6187    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6188   }
6189      break;
6190  
6191 <  case 572:
6192 <
6193 < /* Line 1464 of yacc.c  */
7357 < #line 3249 "ircd_parser.y"
6191 >  case 548:
6192 > /* Line 1792 of yacc.c  */
6193 > #line 2623 "conf_parser.y"
6194      {
6195    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6196   }
6197      break;
6198  
6199 <  case 573:
6200 <
6201 < /* Line 1464 of yacc.c  */
7366 < #line 3252 "ircd_parser.y"
6199 >  case 549:
6200 > /* Line 1792 of yacc.c  */
6201 > #line 2626 "conf_parser.y"
6202      {
6203    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6204   }
6205      break;
6206  
6207 <  case 574:
6208 <
6209 < /* Line 1464 of yacc.c  */
7375 < #line 3255 "ircd_parser.y"
6207 >  case 550:
6208 > /* Line 1792 of yacc.c  */
6209 > #line 2629 "conf_parser.y"
6210      {
6211    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6212   }
6213      break;
6214  
6215 <  case 575:
6216 <
6217 < /* Line 1464 of yacc.c  */
7384 < #line 3258 "ircd_parser.y"
6215 >  case 551:
6216 > /* Line 1792 of yacc.c  */
6217 > #line 2632 "conf_parser.y"
6218      {
6219    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6220   }
6221      break;
6222  
6223 <  case 576:
6224 <
6225 < /* Line 1464 of yacc.c  */
7393 < #line 3263 "ircd_parser.y"
6223 >  case 552:
6224 > /* Line 1792 of yacc.c  */
6225 > #line 2637 "conf_parser.y"
6226      {
6227    ConfigFileEntry.oper_only_umodes = 0;
6228   }
6229      break;
6230  
6231 <  case 580:
6232 <
6233 < /* Line 1464 of yacc.c  */
7402 < #line 3269 "ircd_parser.y"
6231 >  case 556:
6232 > /* Line 1792 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6236   }
6237      break;
6238  
6239 <  case 581:
6240 <
6241 < /* Line 1464 of yacc.c  */
7411 < #line 3272 "ircd_parser.y"
6239 >  case 557:
6240 > /* Line 1792 of yacc.c  */
6241 > #line 2646 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6244   }
6245      break;
6246  
6247 <  case 582:
6248 <
6249 < /* Line 1464 of yacc.c  */
7420 < #line 3275 "ircd_parser.y"
6247 >  case 558:
6248 > /* Line 1792 of yacc.c  */
6249 > #line 2649 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6252   }
6253      break;
6254  
6255 <  case 583:
6256 <
6257 < /* Line 1464 of yacc.c  */
7429 < #line 3278 "ircd_parser.y"
6255 >  case 559:
6256 > /* Line 1792 of yacc.c  */
6257 > #line 2652 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6260   }
6261      break;
6262  
6263 <  case 584:
6264 <
6265 < /* Line 1464 of yacc.c  */
7438 < #line 3281 "ircd_parser.y"
6263 >  case 560:
6264 > /* Line 1792 of yacc.c  */
6265 > #line 2655 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6268   }
6269      break;
6270  
6271 <  case 585:
6272 <
6273 < /* Line 1464 of yacc.c  */
7447 < #line 3284 "ircd_parser.y"
6271 >  case 561:
6272 > /* Line 1792 of yacc.c  */
6273 > #line 2658 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6276   }
6277      break;
6278  
6279 <  case 586:
6280 <
6281 < /* Line 1464 of yacc.c  */
7456 < #line 3287 "ircd_parser.y"
6279 >  case 562:
6280 > /* Line 1792 of yacc.c  */
6281 > #line 2661 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6284   }
6285      break;
6286  
6287 <  case 587:
6287 >  case 563:
6288 > /* Line 1792 of yacc.c  */
6289 > #line 2664 "conf_parser.y"
6290 >    {
6291 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6292 > }
6293 >    break;
6294  
6295 < /* Line 1464 of yacc.c  */
6296 < #line 3290 "ircd_parser.y"
6295 >  case 564:
6296 > /* Line 1792 of yacc.c  */
6297 > #line 2667 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6300   }
6301      break;
6302  
6303 <  case 588:
6304 <
6305 < /* Line 1464 of yacc.c  */
7474 < #line 3293 "ircd_parser.y"
6303 >  case 565:
6304 > /* Line 1792 of yacc.c  */
6305 > #line 2670 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6308   }
6309      break;
6310  
6311 <  case 589:
6312 <
6313 < /* Line 1464 of yacc.c  */
7483 < #line 3296 "ircd_parser.y"
6311 >  case 566:
6312 > /* Line 1792 of yacc.c  */
6313 > #line 2673 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6316   }
6317      break;
6318  
6319 <  case 590:
6320 <
6321 < /* Line 1464 of yacc.c  */
7492 < #line 3299 "ircd_parser.y"
6319 >  case 567:
6320 > /* Line 1792 of yacc.c  */
6321 > #line 2676 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6324   }
6325      break;
6326  
6327 <  case 591:
6328 <
6329 < /* Line 1464 of yacc.c  */
7501 < #line 3302 "ircd_parser.y"
6327 >  case 568:
6328 > /* Line 1792 of yacc.c  */
6329 > #line 2679 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6332   }
6333      break;
6334  
6335 <  case 592:
6336 <
6337 < /* Line 1464 of yacc.c  */
7510 < #line 3305 "ircd_parser.y"
6335 >  case 569:
6336 > /* Line 1792 of yacc.c  */
6337 > #line 2682 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6340   }
6341      break;
6342  
6343 <  case 593:
6344 <
6345 < /* Line 1464 of yacc.c  */
7519 < #line 3308 "ircd_parser.y"
6343 >  case 570:
6344 > /* Line 1792 of yacc.c  */
6345 > #line 2685 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6348   }
6349      break;
6350  
6351 <  case 594:
6352 <
6353 < /* Line 1464 of yacc.c  */
7528 < #line 3311 "ircd_parser.y"
6351 >  case 571:
6352 > /* Line 1792 of yacc.c  */
6353 > #line 2688 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6356   }
6357      break;
6358  
6359 <  case 595:
6360 <
6361 < /* Line 1464 of yacc.c  */
7537 < #line 3314 "ircd_parser.y"
6359 >  case 572:
6360 > /* Line 1792 of yacc.c  */
6361 > #line 2691 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6364   }
6365      break;
6366  
6367 <  case 596:
6368 <
6369 < /* Line 1464 of yacc.c  */
7546 < #line 3317 "ircd_parser.y"
6367 >  case 573:
6368 > /* Line 1792 of yacc.c  */
6369 > #line 2694 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6372   }
6373      break;
6374  
6375 <  case 597:
6376 <
6377 < /* Line 1464 of yacc.c  */
7555 < #line 3320 "ircd_parser.y"
6375 >  case 574:
6376 > /* Line 1792 of yacc.c  */
6377 > #line 2697 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6380   }
6381      break;
6382  
6383 <  case 598:
6384 <
6385 < /* Line 1464 of yacc.c  */
7564 < #line 3323 "ircd_parser.y"
6383 >  case 575:
6384 > /* Line 1792 of yacc.c  */
6385 > #line 2700 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6388   }
6389      break;
6390  
6391 <  case 599:
6392 <
6393 < /* Line 1464 of yacc.c  */
7573 < #line 3328 "ircd_parser.y"
6391 >  case 576:
6392 > /* Line 1792 of yacc.c  */
6393 > #line 2705 "conf_parser.y"
6394      {
6395    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6396   }
6397      break;
6398  
6399 <  case 600:
6400 <
6401 < /* Line 1464 of yacc.c  */
7582 < #line 3333 "ircd_parser.y"
6399 >  case 577:
6400 > /* Line 1792 of yacc.c  */
6401 > #line 2710 "conf_parser.y"
6402      {
6403    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6404   }
6405      break;
6406  
6407 <  case 601:
6408 <
6409 < /* Line 1464 of yacc.c  */
7591 < #line 3338 "ircd_parser.y"
6407 >  case 578:
6408 > /* Line 1792 of yacc.c  */
6409 > #line 2715 "conf_parser.y"
6410      {
6411    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6412   }
6413      break;
6414  
6415 <  case 602:
6416 <
6417 < /* Line 1464 of yacc.c  */
7600 < #line 3343 "ircd_parser.y"
7601 <    {
7602 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7603 < }
7604 <    break;
7605 <
7606 <  case 603:
7607 <
7608 < /* Line 1464 of yacc.c  */
7609 < #line 3352 "ircd_parser.y"
7610 <    {
7611 <  if (conf_parser_ctx.pass == 2)
7612 <  {
7613 <    yy_conf = make_conf_item(GDENY_TYPE);
7614 <    yy_aconf = map_to_conf(yy_conf);
7615 <  }
7616 < }
7617 <    break;
7618 <
7619 <  case 604:
7620 <
7621 < /* Line 1464 of yacc.c  */
7622 < #line 3359 "ircd_parser.y"
7623 <    {
7624 <  if (conf_parser_ctx.pass == 2)
7625 <  {
7626 <    /*
7627 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7628 <     * end we will have one extra, so we should free it.
7629 <     */
7630 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7631 <    {
7632 <      delete_conf_item(yy_conf);
7633 <      yy_conf = NULL;
7634 <      yy_aconf = NULL;
7635 <    }
7636 <  }
7637 < }
7638 <    break;
7639 <
7640 <  case 614:
7641 <
7642 < /* Line 1464 of yacc.c  */
7643 < #line 3385 "ircd_parser.y"
7644 <    {
7645 <  if (conf_parser_ctx.pass == 2)
7646 <    ConfigFileEntry.glines = yylval.number;
7647 < }
7648 <    break;
7649 <
7650 <  case 615:
7651 <
7652 < /* Line 1464 of yacc.c  */
7653 < #line 3391 "ircd_parser.y"
7654 <    {
7655 <  if (conf_parser_ctx.pass == 2)
7656 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7657 < }
7658 <    break;
7659 <
7660 <  case 616:
7661 <
7662 < /* Line 1464 of yacc.c  */
7663 < #line 3397 "ircd_parser.y"
7664 <    {
7665 <  if (conf_parser_ctx.pass == 2)
7666 <    ConfigFileEntry.gline_logging = 0;
7667 < }
7668 <    break;
7669 <
7670 <  case 620:
7671 <
7672 < /* Line 1464 of yacc.c  */
7673 < #line 3403 "ircd_parser.y"
7674 <    {
7675 <  if (conf_parser_ctx.pass == 2)
7676 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7677 < }
7678 <    break;
7679 <
7680 <  case 621:
7681 <
7682 < /* Line 1464 of yacc.c  */
7683 < #line 3407 "ircd_parser.y"
7684 <    {
7685 <  if (conf_parser_ctx.pass == 2)
7686 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7687 < }
7688 <    break;
7689 <
7690 <  case 622:
7691 <
7692 < /* Line 1464 of yacc.c  */
7693 < #line 3413 "ircd_parser.y"
7694 <    {
7695 <  if (conf_parser_ctx.pass == 2)
7696 <  {
7697 <    struct split_nuh_item nuh;
7698 <
7699 <    nuh.nuhmask  = yylval.string;
7700 <    nuh.nickptr  = NULL;
7701 <    nuh.userptr  = userbuf;
7702 <    nuh.hostptr  = hostbuf;
7703 <
7704 <    nuh.nicksize = 0;
7705 <    nuh.usersize = sizeof(userbuf);
7706 <    nuh.hostsize = sizeof(hostbuf);
7707 <
7708 <    split_nuh(&nuh);
7709 <
7710 <    if (yy_aconf->user == NULL)
7711 <    {
7712 <      DupString(yy_aconf->user, userbuf);
7713 <      DupString(yy_aconf->host, hostbuf);
7714 <    }
7715 <    else
7716 <    {
7717 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7718 <
7719 <      DupString(yy_tmp->user, userbuf);
7720 <      DupString(yy_tmp->host, hostbuf);
7721 <
7722 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7723 <    }
7724 <  }
7725 < }
7726 <    break;
7727 <
7728 <  case 623:
7729 <
7730 < /* Line 1464 of yacc.c  */
7731 < #line 3447 "ircd_parser.y"
7732 <    {
7733 <  if (conf_parser_ctx.pass == 2)  
7734 <  {
7735 <    MyFree(yy_conf->name);
7736 <    DupString(yy_conf->name, yylval.string);
7737 <  }
7738 < }
7739 <    break;
7740 <
7741 <  case 624:
7742 <
7743 < /* Line 1464 of yacc.c  */
7744 < #line 3456 "ircd_parser.y"
7745 <    {
7746 <  if (conf_parser_ctx.pass == 2)
7747 <    yy_aconf->flags = 0;
7748 < }
7749 <    break;
7750 <
7751 <  case 625:
7752 <
7753 < /* Line 1464 of yacc.c  */
7754 < #line 3460 "ircd_parser.y"
7755 <    {
7756 <  if (conf_parser_ctx.pass == 2)
7757 <  {
7758 <    struct CollectItem *yy_tmp = NULL;
7759 <    dlink_node *ptr, *next_ptr;
7760 <
7761 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7762 <    {
7763 <      struct AccessItem *new_aconf;
7764 <      struct ConfItem *new_conf;
7765 <
7766 <      yy_tmp = ptr->data;
7767 <      new_conf = make_conf_item(GDENY_TYPE);
7768 <      new_aconf = map_to_conf(new_conf);
7769 <
7770 <      new_aconf->flags = yy_aconf->flags;
7771 <
7772 <      if (yy_conf->name != NULL)
7773 <        DupString(new_conf->name, yy_conf->name);
7774 <      else
7775 <        DupString(new_conf->name, "*");
7776 <      if (yy_aconf->user != NULL)
7777 <         DupString(new_aconf->user, yy_tmp->user);
7778 <      else  
7779 <        DupString(new_aconf->user, "*");
7780 <      if (yy_aconf->host != NULL)
7781 <        DupString(new_aconf->host, yy_tmp->host);
7782 <      else
7783 <        DupString(new_aconf->host, "*");
7784 <
7785 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7786 <    }
7787 <
7788 <    /*
7789 <     * In case someone has fed us with more than one action= after user/name
7790 <     * which would leak memory  -Michael
7791 <     */
7792 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7793 <      delete_conf_item(yy_conf);
7794 <
7795 <    yy_conf = make_conf_item(GDENY_TYPE);
7796 <    yy_aconf = map_to_conf(yy_conf);
7797 <  }
7798 < }
7799 <    break;
7800 <
7801 <  case 628:
7802 <
7803 < /* Line 1464 of yacc.c  */
7804 < #line 3507 "ircd_parser.y"
7805 <    {
7806 <  if (conf_parser_ctx.pass == 2)
7807 <    yy_aconf->flags |= GDENY_REJECT;
7808 < }
7809 <    break;
7810 <
7811 <  case 629:
7812 <
7813 < /* Line 1464 of yacc.c  */
7814 < #line 3511 "ircd_parser.y"
7815 <    {
7816 <  if (conf_parser_ctx.pass == 2)
7817 <    yy_aconf->flags |= GDENY_BLOCK;
7818 < }
7819 <    break;
7820 <
7821 <  case 652:
7822 <
7823 < /* Line 1464 of yacc.c  */
7824 < #line 3535 "ircd_parser.y"
6415 >  case 597:
6416 > /* Line 1792 of yacc.c  */
6417 > #line 2738 "conf_parser.y"
6418      {
6419    ConfigChannel.disable_fake_channels = yylval.number;
6420   }
6421      break;
6422  
6423 <  case 653:
6424 <
6425 < /* Line 1464 of yacc.c  */
7833 < #line 3540 "ircd_parser.y"
6423 >  case 598:
6424 > /* Line 1792 of yacc.c  */
6425 > #line 2743 "conf_parser.y"
6426      {
6427    ConfigChannel.restrict_channels = yylval.number;
6428   }
6429      break;
6430  
6431 <  case 654:
6432 <
6433 < /* Line 1464 of yacc.c  */
7842 < #line 3545 "ircd_parser.y"
7843 <    {
7844 <  ConfigChannel.disable_local_channels = yylval.number;
7845 < }
7846 <    break;
7847 <
7848 <  case 655:
7849 <
7850 < /* Line 1464 of yacc.c  */
7851 < #line 3550 "ircd_parser.y"
7852 <    {
7853 <  ConfigChannel.use_except = yylval.number;
7854 < }
7855 <    break;
7856 <
7857 <  case 656:
7858 <
7859 < /* Line 1464 of yacc.c  */
7860 < #line 3555 "ircd_parser.y"
7861 <    {
7862 <  ConfigChannel.use_invex = yylval.number;
7863 < }
7864 <    break;
7865 <
7866 <  case 657:
7867 <
7868 < /* Line 1464 of yacc.c  */
7869 < #line 3560 "ircd_parser.y"
7870 <    {
7871 <  ConfigChannel.use_knock = yylval.number;
7872 < }
7873 <    break;
7874 <
7875 <  case 658:
7876 <
7877 < /* Line 1464 of yacc.c  */
7878 < #line 3565 "ircd_parser.y"
6431 >  case 599:
6432 > /* Line 1792 of yacc.c  */
6433 > #line 2748 "conf_parser.y"
6434      {
6435    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6436   }
6437      break;
6438  
6439 <  case 659:
6440 <
6441 < /* Line 1464 of yacc.c  */
7887 < #line 3570 "ircd_parser.y"
6439 >  case 600:
6440 > /* Line 1792 of yacc.c  */
6441 > #line 2753 "conf_parser.y"
6442      {
6443    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6444   }
6445      break;
6446  
6447 <  case 660:
6448 <
6449 < /* Line 1464 of yacc.c  */
7896 < #line 3575 "ircd_parser.y"
6447 >  case 601:
6448 > /* Line 1792 of yacc.c  */
6449 > #line 2758 "conf_parser.y"
6450      {
6451    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6452   }
6453      break;
6454  
6455 <  case 661:
6455 >  case 602:
6456 > /* Line 1792 of yacc.c  */
6457 > #line 2763 "conf_parser.y"
6458 >    {
6459 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6460 > }
6461 >    break;
6462  
6463 < /* Line 1464 of yacc.c  */
6464 < #line 3580 "ircd_parser.y"
6463 >  case 603:
6464 > /* Line 1792 of yacc.c  */
6465 > #line 2768 "conf_parser.y"
6466      {
6467    ConfigChannel.quiet_on_ban = yylval.number;
6468   }
6469      break;
6470  
6471 <  case 662:
6472 <
6473 < /* Line 1464 of yacc.c  */
7914 < #line 3585 "ircd_parser.y"
6471 >  case 604:
6472 > /* Line 1792 of yacc.c  */
6473 > #line 2773 "conf_parser.y"
6474      {
6475    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6476   }
6477      break;
6478  
6479 <  case 663:
6480 <
6481 < /* Line 1464 of yacc.c  */
7923 < #line 3590 "ircd_parser.y"
6479 >  case 605:
6480 > /* Line 1792 of yacc.c  */
6481 > #line 2778 "conf_parser.y"
6482      {
6483    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6484   }
6485      break;
6486  
6487 <  case 664:
6488 <
6489 < /* Line 1464 of yacc.c  */
7932 < #line 3595 "ircd_parser.y"
6487 >  case 606:
6488 > /* Line 1792 of yacc.c  */
6489 > #line 2783 "conf_parser.y"
6490      {
6491    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6492   }
6493      break;
6494  
6495 <  case 665:
6496 <
6497 < /* Line 1464 of yacc.c  */
7941 < #line 3600 "ircd_parser.y"
6495 >  case 607:
6496 > /* Line 1792 of yacc.c  */
6497 > #line 2788 "conf_parser.y"
6498      {
6499    ConfigChannel.no_create_on_split = yylval.number;
6500   }
6501      break;
6502  
6503 <  case 666:
6504 <
6505 < /* Line 1464 of yacc.c  */
7950 < #line 3605 "ircd_parser.y"
6503 >  case 608:
6504 > /* Line 1792 of yacc.c  */
6505 > #line 2793 "conf_parser.y"
6506      {
6507    ConfigChannel.no_join_on_split = yylval.number;
6508   }
6509      break;
6510  
6511 <  case 667:
6512 <
6513 < /* Line 1464 of yacc.c  */
7959 < #line 3610 "ircd_parser.y"
7960 <    {
7961 <  ConfigChannel.burst_topicwho = yylval.number;
7962 < }
7963 <    break;
7964 <
7965 <  case 668:
7966 <
7967 < /* Line 1464 of yacc.c  */
7968 < #line 3615 "ircd_parser.y"
6511 >  case 609:
6512 > /* Line 1792 of yacc.c  */
6513 > #line 2798 "conf_parser.y"
6514      {
6515    GlobalSetOptions.joinfloodcount = yylval.number;
6516   }
6517      break;
6518  
6519 <  case 669:
6520 <
6521 < /* Line 1464 of yacc.c  */
7977 < #line 3620 "ircd_parser.y"
6519 >  case 610:
6520 > /* Line 1792 of yacc.c  */
6521 > #line 2803 "conf_parser.y"
6522      {
6523    GlobalSetOptions.joinfloodtime = yylval.number;
6524   }
6525      break;
6526  
6527 <  case 681:
6528 <
6529 < /* Line 1464 of yacc.c  */
7986 < #line 3639 "ircd_parser.y"
6527 >  case 621:
6528 > /* Line 1792 of yacc.c  */
6529 > #line 2821 "conf_parser.y"
6530      {
6531    if (conf_parser_ctx.pass == 2)
6532      ConfigServerHide.flatten_links = yylval.number;
6533   }
6534      break;
6535  
6536 <  case 682:
6537 <
6538 < /* Line 1464 of yacc.c  */
7996 < #line 3645 "ircd_parser.y"
6536 >  case 622:
6537 > /* Line 1792 of yacc.c  */
6538 > #line 2827 "conf_parser.y"
6539      {
6540    if (conf_parser_ctx.pass == 2)
6541      ConfigServerHide.hide_servers = yylval.number;
6542   }
6543      break;
6544  
6545 <  case 683:
6546 <
6547 < /* Line 1464 of yacc.c  */
8006 < #line 3651 "ircd_parser.y"
6545 >  case 623:
6546 > /* Line 1792 of yacc.c  */
6547 > #line 2833 "conf_parser.y"
6548      {
6549    if (conf_parser_ctx.pass == 2)
6550    {
6551      MyFree(ConfigServerHide.hidden_name);
6552 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6552 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6553    }
6554   }
6555      break;
6556  
6557 <  case 684:
6558 <
6559 < /* Line 1464 of yacc.c  */
8019 < #line 3660 "ircd_parser.y"
6557 >  case 624:
6558 > /* Line 1792 of yacc.c  */
6559 > #line 2842 "conf_parser.y"
6560      {
6561    if (conf_parser_ctx.pass == 2)
6562    {
# Line 8031 | Line 6571 | yyreduce:
6571   }
6572      break;
6573  
6574 <  case 685:
6575 <
6576 < /* Line 1464 of yacc.c  */
8037 < #line 3674 "ircd_parser.y"
6574 >  case 625:
6575 > /* Line 1792 of yacc.c  */
6576 > #line 2856 "conf_parser.y"
6577      {
6578    if (conf_parser_ctx.pass == 2)
6579      ConfigServerHide.hidden = yylval.number;
6580   }
6581      break;
6582  
6583 <  case 686:
6584 <
6585 < /* Line 1464 of yacc.c  */
8047 < #line 3680 "ircd_parser.y"
8048 <    {
8049 <  if (conf_parser_ctx.pass == 2)
8050 <    ConfigServerHide.disable_hidden = yylval.number;
8051 < }
8052 <    break;
8053 <
8054 <  case 687:
8055 <
8056 < /* Line 1464 of yacc.c  */
8057 < #line 3686 "ircd_parser.y"
6583 >  case 626:
6584 > /* Line 1792 of yacc.c  */
6585 > #line 2862 "conf_parser.y"
6586      {
6587    if (conf_parser_ctx.pass == 2)
6588      ConfigServerHide.hide_server_ips = yylval.number;
# Line 8062 | Line 6590 | yyreduce:
6590      break;
6591  
6592  
6593 <
6594 < /* Line 1464 of yacc.c  */
8067 < #line 8068 "ircd_parser.c"
6593 > /* Line 1792 of yacc.c  */
6594 > #line 6595 "conf_parser.c"
6595        default: break;
6596      }
6597 +  /* User semantic actions sometimes alter yychar, and that requires
6598 +     that yytoken be updated with the new translation.  We take the
6599 +     approach of translating immediately before every use of yytoken.
6600 +     One alternative is translating here after every semantic action,
6601 +     but that translation would be missed if the semantic action invokes
6602 +     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6603 +     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6604 +     incorrect destructor might then be invoked immediately.  In the
6605 +     case of YYERROR or YYBACKUP, subsequent parser actions might lead
6606 +     to an incorrect destructor call or verbose syntax error message
6607 +     before the lookahead is translated.  */
6608    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6609  
6610    YYPOPSTACK (yylen);
# Line 8094 | Line 6632 | yyreduce:
6632   | yyerrlab -- here on detecting error |
6633   `------------------------------------*/
6634   yyerrlab:
6635 +  /* Make sure we have latest lookahead translation.  See comments at
6636 +     user semantic actions for why this is necessary.  */
6637 +  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6638 +
6639    /* If not already recovering from an error, report this error.  */
6640    if (!yyerrstatus)
6641      {
# Line 8101 | Line 6643 | yyerrlab:
6643   #if ! YYERROR_VERBOSE
6644        yyerror (YY_("syntax error"));
6645   #else
6646 + # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6647 +                                        yyssp, yytoken)
6648        {
6649 <        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
6650 <        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
6651 <          {
6652 <            YYSIZE_T yyalloc = 2 * yysize;
6653 <            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
6654 <              yyalloc = YYSTACK_ALLOC_MAXIMUM;
6655 <            if (yymsg != yymsgbuf)
6656 <              YYSTACK_FREE (yymsg);
6657 <            yymsg = (char *) YYSTACK_ALLOC (yyalloc);
6658 <            if (yymsg)
6659 <              yymsg_alloc = yyalloc;
6660 <            else
6661 <              {
6662 <                yymsg = yymsgbuf;
6663 <                yymsg_alloc = sizeof yymsgbuf;
6664 <              }
6665 <          }
6666 <
6667 <        if (0 < yysize && yysize <= yymsg_alloc)
6668 <          {
6669 <            (void) yysyntax_error (yymsg, yystate, yychar);
6670 <            yyerror (yymsg);
6671 <          }
6672 <        else
6673 <          {
8130 <            yyerror (YY_("syntax error"));
8131 <            if (yysize != 0)
8132 <              goto yyexhaustedlab;
8133 <          }
6649 >        char const *yymsgp = YY_("syntax error");
6650 >        int yysyntax_error_status;
6651 >        yysyntax_error_status = YYSYNTAX_ERROR;
6652 >        if (yysyntax_error_status == 0)
6653 >          yymsgp = yymsg;
6654 >        else if (yysyntax_error_status == 1)
6655 >          {
6656 >            if (yymsg != yymsgbuf)
6657 >              YYSTACK_FREE (yymsg);
6658 >            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6659 >            if (!yymsg)
6660 >              {
6661 >                yymsg = yymsgbuf;
6662 >                yymsg_alloc = sizeof yymsgbuf;
6663 >                yysyntax_error_status = 2;
6664 >              }
6665 >            else
6666 >              {
6667 >                yysyntax_error_status = YYSYNTAX_ERROR;
6668 >                yymsgp = yymsg;
6669 >              }
6670 >          }
6671 >        yyerror (yymsgp);
6672 >        if (yysyntax_error_status == 2)
6673 >          goto yyexhaustedlab;
6674        }
6675 + # undef YYSYNTAX_ERROR
6676   #endif
6677      }
6678  
# Line 8190 | Line 6731 | yyerrlab1:
6731    for (;;)
6732      {
6733        yyn = yypact[yystate];
6734 <      if (yyn != YYPACT_NINF)
6734 >      if (!yypact_value_is_default (yyn))
6735          {
6736            yyn += YYTERROR;
6737            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
# Line 8213 | Line 6754 | yyerrlab1:
6754        YY_STACK_PRINT (yyss, yyssp);
6755      }
6756  
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6758    *++yyvsp = yylval;
6759 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6760  
6761  
6762    /* Shift the error token.  */
# Line 8237 | Line 6780 | yyabortlab:
6780    yyresult = 1;
6781    goto yyreturn;
6782  
6783 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6783 > #if !defined yyoverflow || YYERROR_VERBOSE
6784   /*-------------------------------------------------.
6785   | yyexhaustedlab -- memory exhaustion comes here.  |
6786   `-------------------------------------------------*/
# Line 8249 | Line 6792 | yyexhaustedlab:
6792  
6793   yyreturn:
6794    if (yychar != YYEMPTY)
6795 <     yydestruct ("Cleanup: discarding lookahead",
6796 <                 yytoken, &yylval);
6795 >    {
6796 >      /* Make sure we have latest lookahead translation.  See comments at
6797 >         user semantic actions for why this is necessary.  */
6798 >      yytoken = YYTRANSLATE (yychar);
6799 >      yydestruct ("Cleanup: discarding lookahead",
6800 >                  yytoken, &yylval);
6801 >    }
6802    /* Do not reclaim the symbols of the rule which action triggered
6803       this YYABORT or YYACCEPT.  */
6804    YYPOPSTACK (yylen);
# Line 8274 | Line 6822 | yyreturn:
6822   }
6823  
6824  
8277

Comparing:
ircd-hybrid-7.3/src/ircd_parser.c (property svn:keywords), Revision 1118 by michael, Thu Jan 6 13:39:10 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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